@formio/angular 5.5.0-rc.7 → 5.5.0-rc.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"FormioBaseComponent.d.ts","sourceRoot":"","sources":["../../projects/angular-formio/src/FormioBaseComponent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FormioBaseComponent.d.ts","sourceRoot":"","sources":["../../projects/angular-formio/src/FormioBaseComponent.ts"],"names":[],"mappings":"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"}
@@ -92,7 +92,9 @@ export class FormioBaseComponent {
92
92
  this.formioElement.nativeElement.innerHTML = '';
93
93
  }
94
94
  this.formio = this.createRenderer();
95
- this.formio.submission = this.submission;
95
+ this.formio.setSubmission(this.submission, {
96
+ fromSubmission: false
97
+ });
96
98
  if (this.renderOptions && this.renderOptions.validateOnInit) {
97
99
  this.formio.setValue(this.submission, { validateOnInit: true });
98
100
  }
@@ -524,4 +526,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImpor
524
526
  type: ViewChild,
525
527
  args: ['formio', { static: true }]
526
528
  }] } });
527
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybWlvQmFzZUNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZm9ybWlvL3NyYy9Gb3JtaW9CYXNlQ29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBd0MsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUksT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUdqRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFOUMsT0FBTyxTQUFTLE1BQU0sMEJBQTBCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUt6RCxNQUFNLE9BQU8sbUJBQW1CO0lBeUQ5QixZQUNTLE1BQWMsRUFDRixNQUF1QixFQUN2QixVQUE4QjtRQUYxQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ0YsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFDdkIsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUExRDFDLGVBQVUsR0FBUyxFQUFFLENBQUM7UUFLdEIsV0FBTSxHQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFHNUIsYUFBUSxHQUFLLEtBQUssQ0FBQztRQUNuQixhQUFRLEdBQUssS0FBSyxDQUFDO1FBQ25CLGdCQUFXLEdBQUssS0FBSyxDQUFDO1FBTXRCLFVBQUssR0FBUyxFQUFFLENBQUM7UUFFakIsMEJBQXFCLEdBQUssS0FBSyxDQUFDO1FBQ2hDLHFCQUFnQixHQUFVLEVBQUUsQ0FBQTtRQUMzQixXQUFNLEdBQUcs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QUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFJLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQWMsRUFBRSxFQUFFLENBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xHLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQVMsRUFBRSxTQUFjLEVBQUUsRUFBRSxDQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5SCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFTLEVBQUUsUUFBZ0IsRUFBRSxLQUFhLEVBQUUsU0FBYyxFQUFFLEVBQUUsQ0FBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5SyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFTLEVBQUUsUUFBZ0IsRUFBRSxTQUFjLEVBQUUsRUFBRSxDQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUMsU0FBUyxFQUFFLEdBQUcs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TUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUNnQyxhQUFhO3NCQUFuRCxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE5nWm9uZSwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtaW9TZXJ2aWNlIH0gZnJvbSAnLi9mb3JtaW8uc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtaW9BbGVydHMgfSBmcm9tICcuL2NvbXBvbmVudHMvYWxlcnRzL2Zvcm1pby5hbGVydHMnO1xuaW1wb3J0IHsgRm9ybWlvQXBwQ29uZmlnIH0gZnJvbSAnLi9mb3JtaW8uY29uZmlnJztcbmltcG9ydCB7IEZvcm1pb0Vycm9yLCBGb3JtaW9Gb3JtLCBGb3JtaW9PcHRpb25zLCBGb3JtaW9SZWZyZXNoVmFsdWUgfSBmcm9tICcuL2Zvcm1pby5jb21tb24nO1xuaW1wb3J0IHsgYXNzaWduLCBnZXQsIGlzRW1wdHkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQ3VzdG9tVGFnc1NlcnZpY2UgfSBmcm9tICcuL2N1c3RvbS1jb21wb25lbnQvY3VzdG9tLXRhZ3Muc2VydmljZSc7XG5pbXBvcnQgRXZhbHVhdG9yIGZyb20gJ2Zvcm1pb2pzL3V0aWxzL0V2YWx1YXRvcic7XG5pbXBvcnQgeyBmYXN0Q2xvbmVEZWVwIH0gZnJvbSAnZm9ybWlvanMvdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgQWxlcnRzUG9zaXRpb24gfSBmcm9tICcuL3R5cGVzL2FsZXJ0cy1wb3NpdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgY2xhc3MgRm9ybWlvQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBmb3JtPzogRm9ybWlvRm9ybTtcbiAgQElucHV0KCkgc3VibWlzc2lvbj86IGFueSA9IHt9O1xuICBASW5wdXQoKSBzcmM/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHVybD86IHN0cmluZztcbiAgQElucHV0KCkgc2VydmljZT86IEZvcm1pb1NlcnZpY2U7XG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBGb3JtaW9PcHRpb25zO1xuICBASW5wdXQoKSBub2V2YWwgPyA9IEV2YWx1YXRvci5ub2V2YWw7XG4gIEBJbnB1dCgpIGZvcm1pb09wdGlvbnM/OiBhbnk7XG4gIEBJbnB1dCgpIHJlbmRlck9wdGlvbnM/OiBhbnk7XG4gIEBJbnB1dCgpIHJlYWRPbmx5ID8gPSBmYWxzZTtcbiAgQElucHV0KCkgdmlld09ubHkgPyA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlTG9hZGluZyA/ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhpZGVDb21wb25lbnRzPzogc3RyaW5nW107XG4gIEBJbnB1dCgpIHJlZnJlc2g/OiBFdmVudEVtaXR0ZXI8Rm9ybWlvUmVmcmVzaFZhbHVlPjtcbiAgQElucHV0KCkgZXJyb3I/OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQElucHV0KCkgc3VjY2Vzcz86IEV2ZW50RW1pdHRlcjxvYmplY3Q+O1xuICBASW5wdXQoKSBsYW5ndWFnZT86IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xuICBASW5wdXQoKSBob29rcz86IGFueSA9IHt9O1xuICBASW5wdXQoKSByZW5kZXJlcj86IGFueTtcbiAgQElucHV0KCkgd2F0Y2hTdWJtaXNzaW9uRXJyb3JzID8gPSBmYWxzZTtcbiAgQElucHV0KCkgZGF0YVRhYmxlQWN0aW9ucz8gOiBhbnkgPSBbXVxuICBAT3V0cHV0KCkgcmVuZGVyID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3Q+KCk7XG4gIEBPdXRwdXQoKSBjdXN0b21FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0PigpO1xuICBAT3V0cHV0KCkgZmlsZVVwbG9hZGluZ1N0YXR1cyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgc3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3Q+KCk7XG4gIEBPdXRwdXQoKSBwcmV2UGFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0PigpO1xuICBAT3V0cHV0KCkgbmV4dFBhZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG9iamVjdD4oKTtcbiAgQE91dHB1dCgpIGJlZm9yZVN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0PigpO1xuICBAT3V0cHV0KCkgcm93QWRkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSByb3dBZGRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcm93RWRpdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcm93RWRpdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSByb3dEZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHJvd0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSByb3dTZWxlY3RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0PigpO1xuICBAT3V0cHV0KCkgaW52YWxpZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGVycm9yQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBmb3JtTG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgc3VibWlzc2lvbkxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtaW9CYXNlQ29tcG9uZW50PigpO1xuICBAVmlld0NoaWxkKCdmb3JtaW8nLCB7IHN0YXRpYzogdHJ1ZSB9KSBmb3JtaW9FbGVtZW50PzogRWxlbWVudFJlZjxhbnk+O1xuXG4gIHB1YmxpYyBBbGVydHNQb3NpdGlvbiA9IEFsZXJ0c1Bvc2l0aW9uO1xuICBwdWJsaWMgZm9ybWlvOiBhbnk7XG4gIHB1YmxpYyBpbml0aWFsaXplZCA9IGZhbHNlO1xuICBwdWJsaWMgYWxlcnRzID0gbmV3IEZvcm1pb0FsZXJ0cygpO1xuICBwdWJsaWMgZm9ybWlvUmVhZHk6IFByb21pc2U8YW55PjtcblxuICBwcml2YXRlIGZvcm1pb1JlYWR5UmVzb2x2ZTogYW55O1xuICBwcml2YXRlIHN1Ym1pdHRpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBzdWJtaXNzaW9uU3VjY2VzcyA9IGZhbHNlO1xuICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuO1xuICBwdWJsaWMgbm9BbGVydHM6IGJvb2xlYW47XG4gIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBuZ1pvbmU6IE5nWm9uZSxcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgY29uZmlnOiBGb3JtaW9BcHBDb25maWcsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIGN1c3RvbVRhZ3M/OiBDdXN0b21UYWdzU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuZm9ybWlvUmVhZHkgPSBuZXcgUHJvbWlzZSgocmVhZHkpID0+IHtcbiAgICAgIHRoaXMuZm9ybWlvUmVhZHlSZXNvbHZlID0gcmVhZHk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRSZW5kZXJlcigpIHtcbiAgICByZXR1cm4gdGhpcy5yZW5kZXJlcjtcbiAgfVxuXG4gIGdldFJlbmRlcmVyT3B0aW9ucygpIHtcbiAgICBjb25zdCBleHRyYVRhZ3MgPSB0aGlzLmN1c3RvbVRhZ3MgPyB0aGlzLmN1c3RvbVRhZ3MudGFncyA6IFtdO1xuICAgIHJldHVybiBhc3NpZ24oe30sIHtcbiAgICAgIGljb25zOiBnZXQodGhpcy5jb25maWcsICdpY29ucycsICdmb250YXdlc29tZScpLFxuICAgICAgbm9BbGVydHM6IGdldCh0aGlzLm9wdGlvbnMsICdub0FsZXJ0cycsIHRydWUpLFxuICAgICAgcmVhZE9ubHk6IHRoaXMucmVhZE9ubHksXG4gICAgICB2aWV3QXNIdG1sOiB0aGlzLnZpZXdPbmx5LFxuICAgICAgLi4uKHRoaXMudmlld09ubHkgJiYgeyByZW5kZXJNb2RlOiBcImh0bWxcIiB9KSxcbiAgICAgIGkxOG46IGdldCh0aGlzLm9wdGlvbnMsICdpMThuJywgbnVsbCksXG4gICAgICBmaWxlU2VydmljZTogZ2V0KHRoaXMub3B0aW9ucywgJ2ZpbGVTZXJ2aWNlJywgbnVsbCksXG4gICAgICBob29rczogdGhpcy5ob29rcyxcbiAgICAgIHNhbml0aXplQ29uZmlnOiB7XG4gICAgICAgIGFkZFRhZ3M6IGV4dHJhVGFnc1xuICAgICAgfSxcbiAgICAgIGRhdGFUYWJsZUFjdGlvbnM6IHRoaXMuZGF0YVRhYmxlQWN0aW9uc1xuICAgIH0sIHRoaXMucmVuZGVyT3B0aW9ucyB8fCB7fSk7XG4gIH1cblxuICBjcmVhdGVSZW5kZXJlcigpIHtcbiAgICBjb25zdCBSZW5kZXJlciA9IHRoaXMuZ2V0UmVuZGVyZXIoKTtcbiAgICBjb25zdCBmb3JtID0gKG5ldyBSZW5kZXJlcihcbiAgICAgIHRoaXMuZm9ybWlvRWxlbWVudCA/IHRoaXMuZm9ybWlvRWxlbWVudC5uYXRpdmVFbGVtZW50IDogbnVsbCxcbiAgICAgIHRoaXMuZm9ybSxcbiAgICAgIHRoaXMuZ2V0UmVuZGVyZXJPcHRpb25zKClcbiAgICApKTtcbiAgICByZXR1cm4gZm9ybS5pbnN0YW5jZTtcbiAgfVxuXG4gIHNldEZvcm0oZm9ybTogRm9ybWlvRm9ybSkge1xuICAgIHRoaXMuZm9ybSA9IGZvcm07XG4gICAgaWYgKHRoaXMuZm9ybWlvKSB7XG4gICAgICB0aGlzLmZvcm1pby5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZm9ybS50aXRsZSkge1xuICAgICAgdGhpcy5sYWJlbCA9IHRoaXMuZm9ybS50aXRsZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZm9ybS5jb21wb25lbnRzICYmIHRoaXMuZm9ybS5jb21wb25lbnRzWzBdKSB7XG4gICAgICB0aGlzLmxhYmVsID0gdGhpcy5mb3JtLmNvbXBvbmVudHNbMF0ubGFiZWw7XG4gICAgfVxuXG4gICAgLy8gQ2xlYXIgb3V0IHRoZSBlbGVtZW50IHRvIHJlbmRlciB0aGUgbmV3IGZvcm0uXG4gICAgaWYgKHRoaXMuZm9ybWlvRWxlbWVudCAmJiB0aGlzLmZvcm1pb0VsZW1lbnQubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy5mb3JtaW9FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gJyc7XG4gICAgfVxuICAgIHRoaXMuZm9ybWlvID0gdGhpcy5jcmVhdGVSZW5kZXJlcigpO1xuICAgIHRoaXMuZm9ybWlvLnN1Ym1pc3Npb24gPSB0aGlzLnN1Ym1pc3Npb247XG4gICAgaWYgKHRoaXMucmVuZGVyT3B0aW9ucyAmJiB0aGlzLnJlbmRlck9wdGlvbnMudmFsaWRhdGVPbkluaXQpIHtcbiAgICAgIHRoaXMuZm9ybWlvLnNldFZhbHVlKHRoaXMuc3VibWlzc2lvbiwge3ZhbGlkYXRlT25Jbml0OiB0cnVlfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnVybCkge1xuICAgICAgdGhpcy5mb3JtaW8uc2V0VXJsKHRoaXMudXJsLCB0aGlzLmZvcm1pb09wdGlvbnMgfHwge30pO1xuICAgIH1cbiAgICBpZiAodGhpcy5zcmMpIHtcbiAgICAgIHRoaXMuZm9ybWlvLnNldFVybCh0aGlzLnNyYywgdGhpcy5mb3JtaW9PcHRpb25zIHx8IHt9KTtcbiAgICB9XG4gICAgdGhpcy5mb3JtaW8ubm9zdWJtaXQgPSB0cnVlO1xuICAgIHRoaXMuZm9ybWlvLm9uKCdwcmV2UGFnZScsIChkYXRhOiBhbnkpID0+IHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLm9uUHJldlBhZ2UoZGF0YSkpKTtcbiAgICB0aGlzLmZvcm1pby5vbignbmV4dFBhZ2UnLCAoZGF0YTogYW55KSA9PiB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5vbk5leHRQYWdlKGRhdGEpKSk7XG4gICAgdGhpcy5mb3JtaW8ub24oJ2NoYW5nZScsICh2YWx1ZTogYW55LCBmbGFnczogYW55LCBpc01vZGlmaWVkOiBib29sZWFuKSA9PiB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5vbkNoYW5nZSh2YWx1ZSwgZmxhZ3MsIGlzTW9kaWZpZWQpKSk7XG4gICAgdGhpcy5mb3JtaW8ub24oJ3Jvd0FkZCcsIChjb21wb25lbnQ6IGFueSkgPT4gIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLnJvd0FkZC5lbWl0KGNvbXBvbmVudCkpKTtcbiAgICB0aGlzLmZvcm1pby5vbigncm93QWRkZWQnLCAoZGF0YTogYW55LCBjb21wb25lbnQ6IGFueSkgPT4gIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLnJvd0FkZGVkLmVtaXQoe2NvbXBvbmVudCwgcm93OiBkYXRhfSkpKTtcbiAgICB0aGlzLmZvcm1pby5vbigncm93RWRpdCcsIChkYXRhOiBhbnksIHJvd0luZGV4OiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGNvbXBvbmVudDogYW55KSA9PiAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMucm93RWRpdC5lbWl0KHtjb21wb25lbnQsIHJvdzogZGF0YSwgcm93SW5kZXgsIGluZGV4fSkpKTtcbiAgICB0aGlzLmZvcm1pby5vbigncm93RWRpdGVkJywgKGRhdGE6IGFueSwgcm93SW5kZXg6IG51bWJlciwgY29tcG9uZW50OiBhbnkpID0+ICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5yb3dFZGl0ZWQuZW1pdCh7Y29tcG9uZW50LCByb3c6IGRhdGEsIHJvd0luZGV4fSkpKTtcbiAgICB0aGlzLmZvcm1pby5vbigncm93RGVsZXRlJywgKGRhdGE6IGFueSwgcm93SW5kZXg6IG51bWJlciwgaW5kZXg6IG51bWJlciwgY29tcG9uZW50OiBhbnkpID0+ICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5yb3dEZWxldGUuZW1pdCh7Y29tcG9uZW50LCByb3c6IGRhdGEsIHJvd0luZGV4LCBpbmRleH0pKSk7XG4gICAgdGhpcy5mb3JtaW8ub24oJ3Jvd0NsaWNrJywgKHJvdzogYW55LCByb3dJbmRleDogbnVtYmVyLCBpbmRleDogbnVtYmVyLGNvbXBvbmVudDogYW55KSA9PiAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMucm93Q2xpY2suZW1pdCh7Y29tcG9uZW50LCByb3csIHJvd0luZGV4LCBpbmRleH0pKSk7XG4gICAgdGhpcy5mb3JtaW8ub24oJ3Jvd1NlbGVjdENoYW5nZScsIChzZWxlY3RlZFJvd3M6IGFueVtdLCBjb21wb25lbnQ6IGFueSkgPT4gIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLnJvd1NlbGVjdENoYW5nZS5lbWl0KHtzZWxlY3RlZFJvd3MsIGNvbXBvbmVudH0pKSk7XG4gICAgdGhpcy5mb3JtaW8ub24oJ2N1c3RvbUV2ZW50JywgKGV2ZW50OiBhbnkpID0+XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5jdXN0b21FdmVudC5lbWl0KGV2ZW50KSlcbiAgICApO1xuXG4gICAgWydmaWxlVXBsb2FkaW5nU3RhcnQnLCAnZmlsZVVwbG9hZGluZ0VuZCddLmZvckVhY2goKGV2ZW50TmFtZSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHN0YXR1cyA9ICEhaW5kZXggPyAnZW5kJyA6ICdzdGFydCc7XG4gICAgICB0aGlzLmZvcm1pby5vbihldmVudE5hbWUsICgpID0+XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLmZpbGVVcGxvYWRpbmdTdGF0dXMuZW1pdChzdGF0dXMpKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZm9ybWlvLm9uKCdzdWJtaXQnLCAoc3VibWlzc2lvbjogYW55LCBzYXZlZDogYm9vbGVhbikgPT5cbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLnN1Ym1pdEZvcm0oc3VibWlzc2lvbiwgc2F2ZWQpKVxuICAgICk7XG4gICAgdGhpcy5mb3JtaW8ub24oJ2Vycm9yJywgKGVycjogYW55KSA9PiB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5zdWJtaXNzaW9uU3VjY2VzcyA9IGZhbHNlO1xuICAgICAgcmV0dXJuIHRoaXMub25FcnJvcihlcnIpO1xuICAgIH0pKTtcbiAgICB0aGlzLmZvcm1pby5vbigncmVuZGVyJywgKCkgPT4gdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMucmVuZGVyLmVtaXQoKSkpO1xuICAgIHRoaXMuZm9ybWlvLm9uKCdmb3JtTG9hZCcsIChsb2FkZWRGb3JtOiBhbnkpID0+XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5mb3JtTG9hZC5lbWl0KGxvYWRlZEZvcm0pKVxuICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy5mb3JtaW8ucmVhZHkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJlYWR5LmVtaXQodGhpcyk7XG4gICAgICAgIHRoaXMuZm9ybWlvUmVhZHlSZXNvbHZlKHRoaXMuZm9ybWlvKTtcbiAgICAgICAgaWYgKHRoaXMuZm9ybWlvLnN1Ym1pc3Npb25SZWFkeSkge1xuICAgICAgICAgIHRoaXMuZm9ybWlvLnN1Ym1pc3Npb25SZWFkeS50aGVuKChzdWJtaXNzaW9uKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN1Ym1pc3Npb25Mb2FkLmVtaXQoc3VibWlzc2lvbik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybWlvO1xuICAgIH0pO1xuICB9XG5cbiAgaW5pdGlhbGl6ZSgpIHtcbiAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGV4dHJhVGFncyA9IHRoaXMuY3VzdG9tVGFncyA/IHRoaXMuY3VzdG9tVGFncy50YWdzIDogW107XG4gICAgY29uc3QgZGVmYXVsdE9wdGlvbnM6IEZvcm1pb09wdGlvbnMgPSB7XG4gICAgICBlcnJvcnM6IHtcbiAgICAgICAgbWVzc2FnZTogJ1BsZWFzZSBmaXggdGhlIGZvbGxvd2luZyBlcnJvcnMgYmVmb3JlIHN1Ym1pdHRpbmcuJ1xuICAgICAgfSxcbiAgICAgIGFsZXJ0czoge1xuICAgICAgICBzdWJtaXRNZXNzYWdlOiAnU3VibWlzc2lvbiBDb21wbGV0ZS4nXG4gICAgICB9LFxuICAgICAgZGlzYWJsZUFsZXJ0czogZmFsc2UsXG4gICAgICBob29rczoge1xuICAgICAgICBiZWZvcmVTdWJtaXQ6IG51bGxcbiAgICAgIH0sXG4gICAgICBzYW5pdGl6ZUNvbmZpZzoge1xuICAgICAgICBhZGRUYWdzOiBleHRyYVRhZ3NcbiAgICAgIH0sXG4gICAgICBhbGVydHNQb3NpdGlvbjogQWxlcnRzUG9zaXRpb24udG9wLFxuICAgIH07XG4gICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbihkZWZhdWx0T3B0aW9ucywgdGhpcy5vcHRpb25zKTtcbiAgICBpZiAodGhpcy5vcHRpb25zLmRpc2FibGVBbGVydHMpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5hbGVydHNQb3NpdGlvbiA9IEFsZXJ0c1Bvc2l0aW9uLm5vbmU7XG4gICAgfVxuICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgRXZhbHVhdG9yLm5vZXZhbCA9IHRoaXMubm9ldmFsO1xuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuXG4gICAgaWYgKHRoaXMubGFuZ3VhZ2UpIHtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5sYW5ndWFnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhpcy5mb3JtaW8ubGFuZ3VhZ2UgPSB0aGlzLmxhbmd1YWdlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sYW5ndWFnZS5zdWJzY3JpYmUoKGxhbmc6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHRoaXMuZm9ybWlvLmxhbmd1YWdlID0gbGFuZztcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVmcmVzaCkge1xuICAgICAgdGhpcy5yZWZyZXNoLnN1YnNjcmliZSgocmVmcmVzaDogRm9ybWlvUmVmcmVzaFZhbHVlKSA9PlxuICAgICAgICB0aGlzLm9uUmVmcmVzaChyZWZyZXNoKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5lcnJvcikge1xuICAgICAgdGhpcy5lcnJvci5zdWJzY3JpYmUoKGVycjogYW55KSA9PiB0aGlzLm9uRXJyb3IoZXJyKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3VjY2Vzcykge1xuICAgICAgdGhpcy5zdWNjZXNzLnN1YnNjcmliZSgobWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuYWxlcnRzLnNldEFsZXJ0KHtcbiAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXG4gICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSB8fCBnZXQodGhpcy5vcHRpb25zLCAnYWxlcnRzLnN1Ym1pdE1lc3NhZ2UnKVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNyYykge1xuICAgICAgaWYgKCF0aGlzLnNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlID0gbmV3IEZvcm1pb1NlcnZpY2UodGhpcy5zcmMpO1xuICAgICAgfVxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5zZXJ2aWNlLmxvYWRGb3JtKHsgcGFyYW1zOiB7IGxpdmU6IDEgfSB9KS5zdWJzY3JpYmUoXG4gICAgICAgIChmb3JtOiBGb3JtaW9Gb3JtKSA9PiB7XG4gICAgICAgICAgaWYgKGZvcm0gJiYgZm9ybS5jb21wb25lbnRzKSB7XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0Rm9ybShmb3JtKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIGlmIGEgc3VibWlzc2lvbiBpcyBhbHNvIHByb3ZpZGVkLlxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGlzRW1wdHkodGhpcy5zdWJtaXNzaW9uKSAmJlxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlICYmXG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuZm9ybWlvLnN1Ym1pc3Npb25JZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmxvYWRTdWJtaXNzaW9uKCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAoc3VibWlzc2lvbjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybWlvLm9wdGlvbnMucmVhZE9ubHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pc3Npb24gPSB0aGlzLmZvcm1pby5zdWJtaXNzaW9uID0gc3VibWlzc2lvbjtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZXJyID0+IHRoaXMub25FcnJvcihlcnIpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyID0+IHRoaXMub25FcnJvcihlcnIpXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy51cmwgJiYgIXRoaXMuc2VydmljZSkge1xuICAgICAgdGhpcy5zZXJ2aWNlID0gbmV3IEZvcm1pb1NlcnZpY2UodGhpcy51cmwpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmZvcm1pbykge1xuICAgICAgdGhpcy5mb3JtaW8uZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uUmVmcmVzaChyZWZyZXNoOiBGb3JtaW9SZWZyZXNoVmFsdWUpIHtcbiAgICB0aGlzLmZvcm1pb1JlYWR5LnRoZW4oKCkgPT4ge1xuICAgICAgaWYgKHJlZnJlc2guZm9ybSkge1xuICAgICAgICB0aGlzLmZvcm1pby5zZXRGb3JtKHJlZnJlc2guZm9ybSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgaWYgKHJlZnJlc2guc3VibWlzc2lvbikge1xuICAgICAgICAgICAgdGhpcy5mb3JtaW8uc2V0U3VibWlzc2lvbihyZWZyZXNoLnN1Ym1pc3Npb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKHJlZnJlc2guc3VibWlzc2lvbikge1xuICAgICAgICB0aGlzLmZvcm1pby5zZXRTdWJtaXNzaW9uKHJlZnJlc2guc3VibWlzc2lvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKHJlZnJlc2gucHJvcGVydHkpIHtcbiAgICAgICAgICBjYXNlICdzdWJtaXNzaW9uJzpcbiAgICAgICAgICAgIHRoaXMuZm9ybWlvLnN1Ym1pc3Npb24gPSByZWZyZXNoLnZhbHVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnZm9ybSc6XG4gICAgICAgICAgICB0aGlzLmZvcm1pby5mb3JtID0gcmVmcmVzaC52YWx1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpIHtcbiAgICBFdmFsdWF0b3Iubm9ldmFsID0gdGhpcy5ub2V2YWw7XG4gICAgdGhpcy5pbml0aWFsaXplKCk7XG5cbiAgICBpZiAoY2hhbmdlcy5mb3JtICYmIGNoYW5nZXMuZm9ybS5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRGb3JtKGNoYW5nZXMuZm9ybS5jdXJyZW50VmFsdWUpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5mb3JtaW9SZWFkeS50aGVuKCgpID0+IHtcbiAgICAgIGlmIChjaGFuZ2VzLnN1Ym1pc3Npb24gJiYgY2hhbmdlcy5zdWJtaXNzaW9uLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICB0aGlzLmZvcm1pby5zZXRTdWJtaXNzaW9uKGNoYW5nZXMuc3VibWlzc2lvbi5jdXJyZW50VmFsdWUsIHtcbiAgICAgICAgICBmcm9tU3VibWlzc2lvbjogIWNoYW5nZXMuc3VibWlzc2lvbi5maXJzdENoYW5nZVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNoYW5nZXMuaGlkZUNvbXBvbmVudHMgJiYgY2hhbmdlcy5oaWRlQ29tcG9uZW50cy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgY29uc3QgaGlkZGVuQ29tcG9uZW50cyA9IGNoYW5nZXMuaGlkZUNvbXBvbmVudHMuY3VycmVudFZhbHVlO1xuICAgICAgICB0aGlzLmZvcm1pby5vcHRpb25zLmhpZGUgPSBoaWRkZW5Db21wb25lbnRzO1xuICAgICAgICB0aGlzLmZvcm1pby5ldmVyeUNvbXBvbmVudCgoY29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgY29tcG9uZW50Lm9wdGlvbnMuaGlkZSA9IGhpZGRlbkNvbXBvbmVudHM7XG4gICAgICAgICAgaWYgKGhpZGRlbkNvbXBvbmVudHMuaW5jbHVkZXMoY29tcG9uZW50LmNvbXBvbmVudC5rZXkpKSB7XG4gICAgICAgICAgICBjb21wb25lbnQudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBvblByZXZQYWdlKGRhdGE6IGFueSkge1xuICAgIHRoaXMuYWxlcnRzLnNldEFsZXJ0cyhbXSk7XG4gICAgdGhpcy5wcmV2UGFnZS5lbWl0KGRhdGEpO1xuICB9XG5cbiAgb25OZXh0UGFnZShkYXRhOiBhbnkpIHtcbiAgICB0aGlzLmFsZXJ0cy5zZXRBbGVydHMoW10pO1xuICAgIHRoaXMubmV4dFBhZ2UuZW1pdChkYXRhKTtcbiAgfVxuXG4gIG9uU3VibWl0KHN1Ym1pc3Npb246IGFueSwgc2F2ZWQ6IGJvb2xlYW4sIG5vZW1pdD86IGJvb2xlYW4pIHtcbiAgICB0aGlzLnN1Ym1pdHRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLnN1Ym1pc3Npb25TdWNjZXNzID0gdHJ1ZTtcblxuICAgIHRoaXMuZm9ybWlvLnNldFZhbHVlKGZhc3RDbG9uZURlZXAoc3VibWlzc2lvbiksIHtcbiAgICAgIG5vVmFsaWRhdGU6IHRydWUsXG4gICAgICBub0NoZWNrOiB0cnVlXG4gICAgfSk7XG5cbiAgICBpZiAoc2F2ZWQpIHtcbiAgICAgIHRoaXMuZm9ybWlvLmVtaXQoJ3N1Ym1pdERvbmUnLCBzdWJtaXNzaW9uKTtcbiAgICB9XG4gICAgaWYgKCFub2VtaXQpIHtcbiAgICAgIHRoaXMuc3VibWl0LmVtaXQoc3VibWlzc2lvbik7XG4gICAgfVxuICAgIGlmICghdGhpcy5zdWNjZXNzKSB7XG4gICAgICB0aGlzLmFsZXJ0cy5zZXRBbGVydCh7XG4gICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcbiAgICAgICAgbWVzc2FnZTogZ2V0KHRoaXMub3B0aW9ucywgJ2FsZXJ0cy5zdWJtaXRNZXNzYWdlJylcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uRXJyb3IoZXJyOiBhbnkpIHtcbiAgICB0aGlzLmFsZXJ0cy5zZXRBbGVydHMoW10pO1xuICAgIHRoaXMuc3VibWl0dGluZyA9IGZhbHNlO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgICBpZiAoIWVycikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIE1ha2Ugc3VyZSBpdCBpcyBhbiBhcnJheS5cbiAgICBjb25zdCBlcnJvcnMgPSBBcnJheS5pc0FycmF5KGVycikgPyBlcnIgOiBbZXJyXTtcblxuICAgIC8vIEVtaXQgdGhlc2UgZXJyb3JzIGFnYWluLlxuICAgIHRoaXMuZXJyb3JDaGFuZ2UuZW1pdChlcnJvcnMpO1xuXG4gICAgaWYgKGVyci5zaWxlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5mb3JtaW8gJiYgZXJyb3JzLmxlbmd0aCkge1xuICAgICAgdGhpcy5mb3JtaW8uZW1pdCgnc3VibWl0RXJyb3InLCBlcnJvcnMpO1xuICAgIH1cblxuICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIG9uZSBhbmQgc2V0IHRoZSBhbGVydHMgYXJyYXkuXG4gICAgZXJyb3JzLmZvckVhY2goKGVycm9yOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgcGF0aHMsXG4gICAgICB9ID0gZXJyb3JcbiAgICAgICAgPyBlcnJvci5kZXRhaWxzXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvci5kZXRhaWxzLm1hcCgoZGV0YWlsKSA9PiBkZXRhaWwubWVzc2FnZSksXG4gICAgICAgICAgICBwYXRoczogZXJyb3IuZGV0YWlscy5tYXAoKGRldGFpbCkgPT4gZGV0YWlsLnBhdGgpLFxuICAgICAgICAgIH1cbiAgICAgICAgICA6IHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UgfHwgZXJyb3IudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHBhdGhzOiBlcnJvci5wYXRoID8gW2Vycm9yLnBhdGhdIDogW10sXG4gICAgICAgICAgfVxuICAgICAgICA6IHtcbiAgICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICAgICAgICBwYXRoczogW10sXG4gICAgICAgIH07XG5cbiAgICAgIGxldCBzaG91bGRFcnJvckRpc3BsYXkgPSB0cnVlO1xuXG4gICAgICBpZiAodGhpcy5mb3JtaW8pIHtcbiAgICAgICAgcGF0aHMuZm9yRWFjaCgocGF0aCwgaW5kZXgpID0+IHtcbiAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmZvcm1pby5nZXRDb21wb25lbnQocGF0aCk7XG4gICAgICAgICAgaWYgKGNvbXBvbmVudCkge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50cyA9IEFycmF5LmlzQXJyYXkoY29tcG9uZW50KSA/IGNvbXBvbmVudCA6IFtjb21wb25lbnRdO1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZVRleHQgPSBBcnJheS5pc0FycmF5KG1lc3NhZ2UpID8gbWVzc2FnZVtpbmRleF0gOiBtZXNzYWdlO1xuICAgICAgICAgICAgY29tcG9uZW50cy5mb3JFYWNoKChjb21wKSA9PiBjb21wLnNldEN1c3RvbVZhbGlkaXR5KG1lc3NhZ2VUZXh0LCB0cnVlKSk7XG4gICAgICAgICAgICB0aGlzLmFsZXJ0cy5hZGRBbGVydCh7XG4gICAgICAgICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlW2luZGV4XSxcbiAgICAgICAgICAgICAgY29tcG9uZW50LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBzaG91bGRFcnJvckRpc3BsYXkgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICgod2luZG93IGFzIGFueSkuVlBBVF9FTkFCTEVEKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBlcnJvciA9PT0nc3RyaW5nJyAmJiB0aGlzLmZvcm1pby5jb21wb25lbnRzKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1pby5jb21wb25lbnRzLmZvckVhY2goKGNvbXApID0+IHtcbiAgICAgICAgICAgICAgaWYgKGNvbXAgJiYgY29tcC50eXBlICE9PSAnYnV0dG9uJykge1xuICAgICAgICAgICAgICAgIGNvbXAuc2V0Q3VzdG9tVmFsaWRpdHkobWVzc2FnZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5ub0FsZXJ0cykge1xuICAgICAgICAgIHRoaXMuZm9ybWlvLnNob3dFcnJvcnMoKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoc2hvdWxkRXJyb3JEaXNwbGF5KSB7XG4gICAgICAgIHRoaXMuYWxlcnRzLmFkZEFsZXJ0KHtcbiAgICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgIGNvbXBvbmVudDogZXJyb3IuY29tcG9uZW50LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGZvY3VzT25Db21wb25ldChrZXk6IGFueSkge1xuICAgIGlmICh0aGlzLmZvcm1pbykge1xuICAgICAgdGhpcy5mb3JtaW8uZm9jdXNPbkNvbXBvbmVudChrZXkpO1xuICAgIH1cbiAgfVxuXG4gIHN1Ym1pdEV4ZWN1dGUoc3VibWlzc2lvbjogb2JqZWN0LCBzYXZlZCA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMuc2VydmljZSAmJiAhdGhpcy51cmwgJiYgIXNhdmVkKSB7XG4gICAgICB0aGlzLnNlcnZpY2VcbiAgICAgICAgLnNhdmVTdWJtaXNzaW9uKHN1Ym1pc3Npb24pXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgKHN1Yjoge30pID0+IHRoaXMub25TdWJtaXQoc3ViLCB0cnVlKSxcbiAgICAgICAgICBlcnIgPT4gdGhpcy5vbkVycm9yKGVycilcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vblN1Ym1pdChzdWJtaXNzaW9uLCBmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgc3VibWl0Rm9ybShzdWJtaXNzaW9uOiBhbnksIHNhdmVkID0gZmFsc2UpIHtcbiAgICAvLyBLZWVwIGRvdWJsZSBzdWJtaXRzIGZyb20gb2NjdXJyaW5nLi4uXG4gICAgaWYgKHRoaXMuc3VibWl0dGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZvcm1pby5zZXRNZXRhZGF0YShzdWJtaXNzaW9uKTtcbiAgICB0aGlzLnN1Ym1pc3Npb25TdWNjZXNzID0gZmFsc2U7XG4gICAgdGhpcy5zdWJtaXR0aW5nID0gdHJ1ZTtcbiAgICB0aGlzLmJlZm9yZVN1Ym1pdC5lbWl0KHN1Ym1pc3Npb24pO1xuXG4gICAgLy8gaWYgdGhleSBwcm92aWRlIGEgYmVmb3JlU3VibWl0IGhvb2ssIHRoZW4gYWxsb3cgdGhlbSB0byBhbHRlciB0aGUgc3VibWlzc2lvbiBhc3luY2hyb25vdXNseVxuICAgIC8vIG9yIGV2ZW4gcHJvdmlkZSBhIGN1c3RvbSBFcnJvciBtZXRob2QuXG4gICAgY29uc3QgYmVmb3JlU3VibWl0ID0gZ2V0KHRoaXMub3B0aW9ucywgJ2hvb2tzLmJlZm9yZVN1Ym1pdCcpO1xuICAgIGlmIChiZWZvcmVTdWJtaXQpIHtcbiAgICAgIGJlZm9yZVN1Ym1pdChzdWJtaXNzaW9uLCAoZXJyOiBGb3JtaW9FcnJvciwgc3ViOiBvYmplY3QpID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHRoaXMub25FcnJvcihlcnIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN1Ym1pdEV4ZWN1dGUoc3ViLCBzYXZlZCk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdWJtaXRFeGVjdXRlKHN1Ym1pc3Npb24sIHNhdmVkKTtcbiAgICB9XG4gIH1cblxuICBvbkNoYW5nZSh2YWx1ZTogYW55LCBmbGFnczogYW55LCBpc01vZGlmaWVkOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMud2F0Y2hTdWJtaXNzaW9uRXJyb3JzICYmICF0aGlzLnN1Ym1pc3Npb25TdWNjZXNzKSB7XG4gICAgICBjb25zdCBlcnJvcnMgPSBnZXQodGhpcywgJ2Zvcm1pby5lcnJvcnMnLCBbXSk7XG4gICAgICBjb25zdCBhbGVydHMgPSBnZXQodGhpcywgJ2FsZXJ0cy5hbGVydHMnLCBbXSk7XG4gICAgICBjb25zdCBzdWJtaXR0ZWQgPSBnZXQodGhpcywgJ2Zvcm1pby5zdWJtaXR0ZWQnLCBmYWxzZSk7XG4gICAgICBpZiAoc3VibWl0dGVkICYmIChlcnJvcnMubGVuZ3RoIHx8IGFsZXJ0cy5sZW5ndGgpKSB7XG4gICAgICAgIHRoaXMub25FcnJvcihlcnJvcnMpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jaGFuZ2UuZW1pdCh7Li4udmFsdWUsIGZsYWdzLCBpc01vZGlmaWVkfSk7XG4gIH1cbn1cbiJdfQ==
529
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybWlvQmFzZUNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZm9ybWlvL3NyYy9Gb3JtaW9CYXNlQ29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBd0MsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUksT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUdqRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFOUMsT0FBTyxTQUFTLE1BQU0sMEJBQTBCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUt6RCxNQUFNLE9BQU8sbUJBQW1CO0lBeUQ5QixZQUNTLE1BQWMsRUFDRixNQUF1QixFQUN2QixVQUE4QjtRQUYxQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ0YsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFDdkIsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUExRDFDLGVBQVUsR0FBUyxFQUFFLENBQUM7UUFLdEIsV0FBTSxHQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFHNUIsYUFBUSxHQUFLLEtBQUssQ0FBQztRQUNuQixhQUFRLEdBQUssS0FBSyxDQUFDO1FBQ25CLGdCQUFXLEdBQUssS0FBSyxDQUFDO1FBTXRCLFVBQUssR0FBUyxFQUFFLENBQUM7UUFFakIsMEJBQXFCLEdBQUssS0FBSyxDQUFDO1FBQ2hDLHFCQUFnQixHQUFVLEVBQUUsQ0FBQTtRQUMzQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNwQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDekMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNqRCxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNwQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN0QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN0QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDMUMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDakMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDbkMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDbEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDcEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDcEMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDbkMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzFDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3BDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3RDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN0QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNuQyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDekMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBR25ELG1CQUFjLEdBQUcsY0FBYyxDQUFDO1FBRWhDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSTNCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBVWhDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlELE9BQU8sTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUNoQixLQUFLLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQztZQUMvQyxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQztZQUM3QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3pCLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzVDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQ3JDLFdBQVcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDO1lBQ25ELEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixjQUFjLEVBQUU7Z0JBQ2QsT0FBTyxFQUFFLFNBQVM7YUFDbkI7WUFDRCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1NBQ3hDLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQyxNQUFNLElBQUksR0FBRyxDQUFDLElBQUksUUFBUSxDQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUM1RCxJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUMxQixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFnQjtRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3ZCO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQzlCO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztTQUM1QztRQUVELGdEQUFnRDtRQUNoRCxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUU7WUFDMUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztTQUNqRDtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDekMsY0FBYyxFQUFFLEtBQUs7U0FDdEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFO1lBQzNELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBQyxjQUFjLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztTQUMvRDtRQUNELElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUN4RDtRQUNELElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUN4RDtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBVSxFQUFFLEtBQVUsRUFBRSxVQUFtQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFJLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQWMsRUFBRSxFQUFFLENBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xHLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQVMsRUFBRSxTQUFjLEVBQUUsRUFBRSxDQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5SCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFTLEVBQUUsUUFBZ0IsRUFBRSxLQUFhLEVBQUUsU0FBYyxFQUFFLEVBQUUsQ0FBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5SyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFTLEVBQUUsUUFBZ0IsRUFBRSxTQUFjLEVBQUUsRUFBRSxDQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFT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LFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUNnQyxhQUFhO3NCQUFuRCxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE5nWm9uZSwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtaW9TZXJ2aWNlIH0gZnJvbSAnLi9mb3JtaW8uc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtaW9BbGVydHMgfSBmcm9tICcuL2NvbXBvbmVudHMvYWxlcnRzL2Zvcm1pby5hbGVydHMnO1xuaW1wb3J0IHsgRm9ybWlvQXBwQ29uZmlnIH0gZnJvbSAnLi9mb3JtaW8uY29uZmlnJztcbmltcG9ydCB7IEZvcm1pb0Vycm9yLCBGb3JtaW9Gb3JtLCBGb3JtaW9PcHRpb25zLCBGb3JtaW9SZWZyZXNoVmFsdWUgfSBmcm9tICcuL2Zvcm1pby5jb21tb24nO1xuaW1wb3J0IHsgYXNzaWduLCBnZXQsIGlzRW1wdHkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQ3VzdG9tVGFnc1NlcnZpY2UgfSBmcm9tICcuL2N1c3RvbS1jb21wb25lbnQvY3VzdG9tLXRhZ3Muc2VydmljZSc7XG5pbXBvcnQgRXZhbHVhdG9yIGZyb20gJ2Zvcm1pb2pzL3V0aWxzL0V2YWx1YXRvcic7XG5pbXBvcnQgeyBmYXN0Q2xvbmVEZWVwIH0gZnJvbSAnZm9ybWlvanMvdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgQWxlcnRzUG9zaXRpb24gfSBmcm9tICcuL3R5cGVzL2FsZXJ0cy1wb3NpdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgY2xhc3MgRm9ybWlvQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBmb3JtPzogRm9ybWlvRm9ybTtcbiAgQElucHV0KCkgc3VibWlzc2lvbj86IGFueSA9IHt9O1xuICBASW5wdXQoKSBzcmM/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHVybD86IHN0cmluZztcbiAgQElucHV0KCkgc2VydmljZT86IEZvcm1pb1NlcnZpY2U7XG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBGb3JtaW9PcHRpb25zO1xuICBASW5wdXQoKSBub2V2YWwgPyA9IEV2YWx1YXRvci5ub2V2YWw7XG4gIEBJbnB1dCgpIGZvcm1pb09wdGlvbnM/OiBhbnk7XG4gIEBJbnB1dCgpIHJlbmRlck9wdGlvbnM/OiBhbnk7XG4gIEBJbnB1dCgpIHJlYWRPbmx5ID8gPSBmYWxzZTtcbiAgQElucHV0KCkgdmlld09ubHkgPyA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlTG9hZGluZyA/ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhpZGVDb21wb25lbnRzPzogc3RyaW5nW107XG4gIEBJbnB1dCgpIHJlZnJlc2g/OiBFdmVudEVtaXR0ZXI8Rm9ybWlvUmVmcmVzaFZhbHVlPjtcbiAgQElucHV0KCkgZXJyb3I/OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQElucHV0KCkgc3VjY2Vzcz86IEV2ZW50RW1pdHRlcjxvYmplY3Q+O1xuICBASW5wdXQoKSBsYW5ndWFnZT86IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xuICBASW5wdXQoKSBob29rcz86IGFueSA9IHt9O1xuICBASW5wdXQoKSByZW5kZXJlcj86IGFueTtcbiAgQElucHV0KCkgd2F0Y2hTdWJtaXNzaW9uRXJyb3JzID8gPSBmYWxzZTtcbiAgQElucHV0KCkgZGF0YVRhYmxlQWN0aW9ucz8gOiBhbnkgPSBbXVxuICBAT3V0cHV0KCkgcmVuZGVyID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3Q+KCk7XG4gIEBPdXRwdXQoKSBjdXN0b21FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0PigpO1xuICBAT3V0cHV0KCkgZmlsZVVwbG9hZGluZ1N0YXR1cyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgc3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3Q+KCk7XG4gIEBPdXRwdXQoKSBwcmV2UGFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0PigpO1xuICBAT3V0cHV0KCkgbmV4dFBhZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG9iamVjdD4oKTtcbiAgQE91dHB1dCgpIGJlZm9yZVN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0PigpO1xuICBAT3V0cHV0KCkgcm93QWRkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSByb3dBZGRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcm93RWRpdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcm93RWRpdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSByb3dEZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHJvd0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSByb3dTZWxlY3RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0PigpO1xuICBAT3V0cHV0KCkgaW52YWxpZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGVycm9yQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBmb3JtTG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgc3VibWlzc2lvbkxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtaW9CYXNlQ29tcG9uZW50PigpO1xuICBAVmlld0NoaWxkKCdmb3JtaW8nLCB7IHN0YXRpYzogdHJ1ZSB9KSBmb3JtaW9FbGVtZW50PzogRWxlbWVudFJlZjxhbnk+O1xuXG4gIHB1YmxpYyBBbGVydHNQb3NpdGlvbiA9IEFsZXJ0c1Bvc2l0aW9uO1xuICBwdWJsaWMgZm9ybWlvOiBhbnk7XG4gIHB1YmxpYyBpbml0aWFsaXplZCA9IGZhbHNlO1xuICBwdWJsaWMgYWxlcnRzID0gbmV3IEZvcm1pb0FsZXJ0cygpO1xuICBwdWJsaWMgZm9ybWlvUmVhZHk6IFByb21pc2U8YW55PjtcblxuICBwcml2YXRlIGZvcm1pb1JlYWR5UmVzb2x2ZTogYW55O1xuICBwcml2YXRlIHN1Ym1pdHRpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBzdWJtaXNzaW9uU3VjY2VzcyA9IGZhbHNlO1xuICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuO1xuICBwdWJsaWMgbm9BbGVydHM6IGJvb2xlYW47XG4gIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBuZ1pvbmU6IE5nWm9uZSxcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgY29uZmlnOiBGb3JtaW9BcHBDb25maWcsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIGN1c3RvbVRhZ3M/OiBDdXN0b21UYWdzU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuZm9ybWlvUmVhZHkgPSBuZXcgUHJvbWlzZSgocmVhZHkpID0+IHtcbiAgICAgIHRoaXMuZm9ybWlvUmVhZHlSZXNvbHZlID0gcmVhZHk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRSZW5kZXJlcigpIHtcbiAgICByZXR1cm4gdGhpcy5yZW5kZXJlcjtcbiAgfVxuXG4gIGdldFJlbmRlcmVyT3B0aW9ucygpIHtcbiAgICBjb25zdCBleHRyYVRhZ3MgPSB0aGlzLmN1c3RvbVRhZ3MgPyB0aGlzLmN1c3RvbVRhZ3MudGFncyA6IFtdO1xuICAgIHJldHVybiBhc3NpZ24oe30sIHtcbiAgICAgIGljb25zOiBnZXQodGhpcy5jb25maWcsICdpY29ucycsICdmb250YXdlc29tZScpLFxuICAgICAgbm9BbGVydHM6IGdldCh0aGlzLm9wdGlvbnMsICdub0FsZXJ0cycsIHRydWUpLFxuICAgICAgcmVhZE9ubHk6IHRoaXMucmVhZE9ubHksXG4gICAgICB2aWV3QXNIdG1sOiB0aGlzLnZpZXdPbmx5LFxuICAgICAgLi4uKHRoaXMudmlld09ubHkgJiYgeyByZW5kZXJNb2RlOiBcImh0bWxcIiB9KSxcbiAgICAgIGkxOG46IGdldCh0aGlzLm9wdGlvbnMsICdpMThuJywgbnVsbCksXG4gICAgICBmaWxlU2VydmljZTogZ2V0KHRoaXMub3B0aW9ucywgJ2ZpbGVTZXJ2aWNlJywgbnVsbCksXG4gICAgICBob29rczogdGhpcy5ob29rcyxcbiAgICAgIHNhbml0aXplQ29uZmlnOiB7XG4gICAgICAgIGFkZFRhZ3M6IGV4dHJhVGFnc1xuICAgICAgfSxcbiAgICAgIGRhdGFUYWJsZUFjdGlvbnM6IHRoaXMuZGF0YVRhYmxlQWN0aW9uc1xuICAgIH0sIHRoaXMucmVuZGVyT3B0aW9ucyB8fCB7fSk7XG4gIH1cblxuICBjcmVhdGVSZW5kZXJlcigpIHtcbiAgICBjb25zdCBSZW5kZXJlciA9IHRoaXMuZ2V0UmVuZGVyZXIoKTtcbiAgICBjb25zdCBmb3JtID0gKG5ldyBSZW5kZXJlcihcbiAgICAgIHRoaXMuZm9ybWlvRWxlbWVudCA/IHRoaXMuZm9ybWlvRWxlbWVudC5uYXRpdmVFbGVtZW50IDogbnVsbCxcbiAgICAgIHRoaXMuZm9ybSxcbiAgICAgIHRoaXMuZ2V0UmVuZGVyZXJPcHRpb25zKClcbiAgICApKTtcbiAgICByZXR1cm4gZm9ybS5pbnN0YW5jZTtcbiAgfVxuXG4gIHNldEZvcm0oZm9ybTogRm9ybWlvRm9ybSkge1xuICAgIHRoaXMuZm9ybSA9IGZvcm07XG4gICAgaWYgKHRoaXMuZm9ybWlvKSB7XG4gICAgICB0aGlzLmZvcm1pby5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZm9ybS50aXRsZSkge1xuICAgICAgdGhpcy5sYWJlbCA9IHRoaXMuZm9ybS50aXRsZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZm9ybS5jb21wb25lbnRzICYmIHRoaXMuZm9ybS5jb21wb25lbnRzWzBdKSB7XG4gICAgICB0aGlzLmxhYmVsID0gdGhpcy5mb3JtLmNvbXBvbmVudHNbMF0ubGFiZWw7XG4gICAgfVxuXG4gICAgLy8gQ2xlYXIgb3V0IHRoZSBlbGVtZW50IHRvIHJlbmRlciB0aGUgbmV3IGZvcm0uXG4gICAgaWYgKHRoaXMuZm9ybWlvRWxlbWVudCAmJiB0aGlzLmZvcm1pb0VsZW1lbnQubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy5mb3JtaW9FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gJyc7XG4gICAgfVxuICAgIHRoaXMuZm9ybWlvID0gdGhpcy5jcmVhdGVSZW5kZXJlcigpO1xuICAgIHRoaXMuZm9ybWlvLnNldFN1Ym1pc3Npb24odGhpcy5zdWJtaXNzaW9uLCB7XG4gICAgICBmcm9tU3VibWlzc2lvbjogZmFsc2VcbiAgICB9KTtcbiAgICBpZiAodGhpcy5yZW5kZXJPcHRpb25zICYmIHRoaXMucmVuZGVyT3B0aW9ucy52YWxpZGF0ZU9uSW5pdCkge1xuICAgICAgdGhpcy5mb3JtaW8uc2V0VmFsdWUodGhpcy5zdWJtaXNzaW9uLCB7dmFsaWRhdGVPbkluaXQ6IHRydWV9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMudXJsKSB7XG4gICAgICB0aGlzLmZvcm1pby5zZXRVcmwodGhpcy51cmwsIHRoaXMuZm9ybWlvT3B0aW9ucyB8fCB7fSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNyYykge1xuICAgICAgdGhpcy5mb3JtaW8uc2V0VXJsKHRoaXMuc3JjLCB0aGlzLmZvcm1pb09wdGlvbnMgfHwge30pO1xuICAgIH1cbiAgICB0aGlzLmZvcm1pby5ub3N1Ym1pdCA9IHRydWU7XG4gICAgdGhpcy5mb3JtaW8ub24oJ3ByZXZQYWdlJywgKGRhdGE6IGFueSkgPT4gdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMub25QcmV2UGFnZShkYXRhKSkpO1xuICAgIHRoaXMuZm9ybWlvLm9uKCduZXh0UGFnZScsIChkYXRhOiBhbnkpID0+IHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLm9uTmV4dFBhZ2UoZGF0YSkpKTtcbiAgICB0aGlzLmZvcm1pby5vbignY2hhbmdlJywgKHZhbHVlOiBhbnksIGZsYWdzOiBhbnksIGlzTW9kaWZpZWQ6IGJvb2xlYW4pID0+IHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLm9uQ2hhbmdlKHZhbHVlLCBmbGFncywgaXNNb2RpZmllZCkpKTtcbiAgICB0aGlzLmZvcm1pby5vbigncm93QWRkJywgKGNvbXBvbmVudDogYW55KSA9PiAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMucm93QWRkLmVtaXQoY29tcG9uZW50KSkpO1xuICAgIHRoaXMuZm9ybWlvLm9uKCdyb3dBZGRlZCcsIChkYXRhOiBhbnksIGNvbXBvbmVudDogYW55KSA9PiAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMucm93QWRkZWQuZW1pdCh7Y29tcG9uZW50LCByb3c6IGRhdGF9KSkpO1xuICAgIHRoaXMuZm9ybWlvLm9uKCdyb3dFZGl0JywgKGRhdGE6IGFueSwgcm93SW5kZXg6IG51bWJlciwgaW5kZXg6IG51bWJlciwgY29tcG9uZW50OiBhbnkpID0+ICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5yb3dFZGl0LmVtaXQoe2NvbXBvbmVudCwgcm93OiBkYXRhLCByb3dJbmRleCwgaW5kZXh9KSkpO1xuICAgIHRoaXMuZm9ybWlvLm9uKCdyb3dFZGl0ZWQnLCAoZGF0YTogYW55LCByb3dJbmRleDogbnVtYmVyLCBjb21wb25lbnQ6IGFueSkgPT4gIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLnJvd0VkaXRlZC5lbWl0KHtjb21wb25lbnQsIHJvdzogZGF0YSwgcm93SW5kZXh9KSkpO1xuICAgIHRoaXMuZm9ybWlvLm9uKCdyb3dEZWxldGUnLCAoZGF0YTogYW55LCByb3dJbmRleDogbnVtYmVyLCBpbmRleDogbnVtYmVyLCBjb21wb25lbnQ6IGFueSkgPT4gIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLnJvd0RlbGV0ZS5lbWl0KHtjb21wb25lbnQsIHJvdzogZGF0YSwgcm93SW5kZXgsIGluZGV4fSkpKTtcbiAgICB0aGlzLmZvcm1pby5vbigncm93Q2xpY2snLCAocm93OiBhbnksIHJvd0luZGV4OiBudW1iZXIsIGluZGV4OiBudW1iZXIsY29tcG9uZW50OiBhbnkpID0+ICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5yb3dDbGljay5lbWl0KHtjb21wb25lbnQsIHJvdywgcm93SW5kZXgsIGluZGV4fSkpKTtcbiAgICB0aGlzLmZvcm1pby5vbigncm93U2VsZWN0Q2hhbmdlJywgKHNlbGVjdGVkUm93czogYW55W10sIGNvbXBvbmVudDogYW55KSA9PiAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMucm93U2VsZWN0Q2hhbmdlLmVtaXQoe3NlbGVjdGVkUm93cywgY29tcG9uZW50fSkpKTtcbiAgICB0aGlzLmZvcm1pby5vbignY3VzdG9tRXZlbnQnLCAoZXZlbnQ6IGFueSkgPT5cbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLmN1c3RvbUV2ZW50LmVtaXQoZXZlbnQpKVxuICAgICk7XG5cbiAgICBbJ2ZpbGVVcGxvYWRpbmdTdGFydCcsICdmaWxlVXBsb2FkaW5nRW5kJ10uZm9yRWFjaCgoZXZlbnROYW1lLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3Qgc3RhdHVzID0gISFpbmRleCA/ICdlbmQnIDogJ3N0YXJ0JztcbiAgICAgIHRoaXMuZm9ybWlvLm9uKGV2ZW50TmFtZSwgKCkgPT5cbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuZmlsZVVwbG9hZGluZ1N0YXR1cy5lbWl0KHN0YXR1cykpXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgdGhpcy5mb3JtaW8ub24oJ3N1Ym1pdCcsIChzdWJtaXNzaW9uOiBhbnksIHNhdmVkOiBib29sZWFuKSA9PlxuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuc3VibWl0Rm9ybShzdWJtaXNzaW9uLCBzYXZlZCkpXG4gICAgKTtcbiAgICB0aGlzLmZvcm1pby5vbignZXJyb3InLCAoZXJyOiBhbnkpID0+IHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICB0aGlzLnN1Ym1pc3Npb25TdWNjZXNzID0gZmFsc2U7XG4gICAgICByZXR1cm4gdGhpcy5vbkVycm9yKGVycik7XG4gICAgfSkpO1xuICAgIHRoaXMuZm9ybWlvLm9uKCdyZW5kZXInLCAoKSA9PiB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5yZW5kZXIuZW1pdCgpKSk7XG4gICAgdGhpcy5mb3JtaW8ub24oJ2Zvcm1Mb2FkJywgKGxvYWRlZEZvcm06IGFueSkgPT5cbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLmZvcm1Mb2FkLmVtaXQobG9hZGVkRm9ybSkpXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLmZvcm1pby5yZWFkeS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMucmVhZHkuZW1pdCh0aGlzKTtcbiAgICAgICAgdGhpcy5mb3JtaW9SZWFkeVJlc29sdmUodGhpcy5mb3JtaW8pO1xuICAgICAgICBpZiAodGhpcy5mb3JtaW8uc3VibWlzc2lvblJlYWR5KSB7XG4gICAgICAgICAgdGhpcy5mb3JtaW8uc3VibWlzc2lvblJlYWR5LnRoZW4oKHN1Ym1pc3Npb24pID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3VibWlzc2lvbkxvYWQuZW1pdChzdWJtaXNzaW9uKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtaW87XG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXplKCkge1xuICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXh0cmFUYWdzID0gdGhpcy5jdXN0b21UYWdzID8gdGhpcy5jdXN0b21UYWdzLnRhZ3MgOiBbXTtcbiAgICBjb25zdCBkZWZhdWx0T3B0aW9uczogRm9ybWlvT3B0aW9ucyA9IHtcbiAgICAgIGVycm9yczoge1xuICAgICAgICBtZXNzYWdlOiAnUGxlYXNlIGZpeCB0aGUgZm9sbG93aW5nIGVycm9ycyBiZWZvcmUgc3VibWl0dGluZy4nXG4gICAgICB9LFxuICAgICAgYWxlcnRzOiB7XG4gICAgICAgIHN1Ym1pdE1lc3NhZ2U6ICdTdWJtaXNzaW9uIENvbXBsZXRlLidcbiAgICAgIH0sXG4gICAgICBkaXNhYmxlQWxlcnRzOiBmYWxzZSxcbiAgICAgIGhvb2tzOiB7XG4gICAgICAgIGJlZm9yZVN1Ym1pdDogbnVsbFxuICAgICAgfSxcbiAgICAgIHNhbml0aXplQ29uZmlnOiB7XG4gICAgICAgIGFkZFRhZ3M6IGV4dHJhVGFnc1xuICAgICAgfSxcbiAgICAgIGFsZXJ0c1Bvc2l0aW9uOiBBbGVydHNQb3NpdGlvbi50b3AsXG4gICAgfTtcbiAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKGRlZmF1bHRPcHRpb25zLCB0aGlzLm9wdGlvbnMpO1xuICAgIGlmICh0aGlzLm9wdGlvbnMuZGlzYWJsZUFsZXJ0cykge1xuICAgICAgdGhpcy5vcHRpb25zLmFsZXJ0c1Bvc2l0aW9uID0gQWxlcnRzUG9zaXRpb24ubm9uZTtcbiAgICB9XG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBFdmFsdWF0b3Iubm9ldmFsID0gdGhpcy5ub2V2YWw7XG4gICAgdGhpcy5pbml0aWFsaXplKCk7XG5cbiAgICBpZiAodGhpcy5sYW5ndWFnZSkge1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLmxhbmd1YWdlID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLmZvcm1pby5sYW5ndWFnZSA9IHRoaXMubGFuZ3VhZ2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxhbmd1YWdlLnN1YnNjcmliZSgobGFuZzogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5mb3JtaW8ubGFuZ3VhZ2UgPSBsYW5nO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5yZWZyZXNoKSB7XG4gICAgICB0aGlzLnJlZnJlc2guc3Vic2NyaWJlKChyZWZyZXNoOiBGb3JtaW9SZWZyZXNoVmFsdWUpID0+XG4gICAgICAgIHRoaXMub25SZWZyZXNoKHJlZnJlc2gpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmVycm9yKSB7XG4gICAgICB0aGlzLmVycm9yLnN1YnNjcmliZSgoZXJyOiBhbnkpID0+IHRoaXMub25FcnJvcihlcnIpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdWNjZXNzKSB7XG4gICAgICB0aGlzLnN1Y2Nlc3Muc3Vic2NyaWJlKChtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5hbGVydHMuc2V0QWxlcnQoe1xuICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlIHx8IGdldCh0aGlzLm9wdGlvbnMsICdhbGVydHMuc3VibWl0TWVzc2FnZScpXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3JjKSB7XG4gICAgICBpZiAoIXRoaXMuc2VydmljZSkge1xuICAgICAgICB0aGlzLnNlcnZpY2UgPSBuZXcgRm9ybWlvU2VydmljZSh0aGlzLnNyYyk7XG4gICAgICB9XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnNlcnZpY2UubG9hZEZvcm0oeyBwYXJhbXM6IHsgbGl2ZTogMSB9IH0pLnN1YnNjcmliZShcbiAgICAgICAgKGZvcm06IEZvcm1pb0Zvcm0pID0+IHtcbiAgICAgICAgICBpZiAoZm9ybSAmJiBmb3JtLmNvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zZXRGb3JtKGZvcm0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gaWYgYSBzdWJtaXNzaW9uIGlzIGFsc28gcHJvdmlkZWQuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgaXNFbXB0eSh0aGlzLnN1Ym1pc3Npb24pICYmXG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UgJiZcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5mb3JtaW8uc3VibWlzc2lvbklkXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UubG9hZFN1Ym1pc3Npb24oKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIChzdWJtaXNzaW9uOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtaW8ub3B0aW9ucy5yZWFkT25seSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc3VibWlzc2lvbiA9IHRoaXMuZm9ybWlvLnN1Ym1pc3Npb24gPSBzdWJtaXNzaW9uO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBlcnIgPT4gdGhpcy5vbkVycm9yKGVycilcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnIgPT4gdGhpcy5vbkVycm9yKGVycilcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0aGlzLnVybCAmJiAhdGhpcy5zZXJ2aWNlKSB7XG4gICAgICB0aGlzLnNlcnZpY2UgPSBuZXcgRm9ybWlvU2VydmljZSh0aGlzLnVybCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuZm9ybWlvKSB7XG4gICAgICB0aGlzLmZvcm1pby5kZXN0cm95KCk7XG4gICAgfVxuICB9XG5cbiAgb25SZWZyZXNoKHJlZnJlc2g6IEZvcm1pb1JlZnJlc2hWYWx1ZSkge1xuICAgIHRoaXMuZm9ybWlvUmVhZHkudGhlbigoKSA9PiB7XG4gICAgICBpZiAocmVmcmVzaC5mb3JtKSB7XG4gICAgICAgIHRoaXMuZm9ybWlvLnNldEZvcm0ocmVmcmVzaC5mb3JtKS50aGVuKCgpID0+IHtcbiAgICAgICAgICBpZiAocmVmcmVzaC5zdWJtaXNzaW9uKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1pby5zZXRTdWJtaXNzaW9uKHJlZnJlc2guc3VibWlzc2lvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAocmVmcmVzaC5zdWJtaXNzaW9uKSB7XG4gICAgICAgIHRoaXMuZm9ybWlvLnNldFN1Ym1pc3Npb24ocmVmcmVzaC5zdWJtaXNzaW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAocmVmcmVzaC5wcm9wZXJ0eSkge1xuICAgICAgICAgIGNhc2UgJ3N1Ym1pc3Npb24nOlxuICAgICAgICAgICAgdGhpcy5mb3JtaW8uc3VibWlzc2lvbiA9IHJlZnJlc2gudmFsdWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdmb3JtJzpcbiAgICAgICAgICAgIHRoaXMuZm9ybWlvLmZvcm0gPSByZWZyZXNoLnZhbHVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IGFueSkge1xuICAgIEV2YWx1YXRvci5ub2V2YWwgPSB0aGlzLm5vZXZhbDtcbiAgICB0aGlzLmluaXRpYWxpemUoKTtcblxuICAgIGlmIChjaGFuZ2VzLmZvcm0gJiYgY2hhbmdlcy5mb3JtLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldEZvcm0oY2hhbmdlcy5mb3JtLmN1cnJlbnRWYWx1ZSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmZvcm1pb1JlYWR5LnRoZW4oKCkgPT4ge1xuICAgICAgaWYgKGNoYW5nZXMuc3VibWlzc2lvbiAmJiBjaGFuZ2VzLnN1Ym1pc3Npb24uY3VycmVudFZhbHVlKSB7XG4gICAgICAgIHRoaXMuZm9ybWlvLnNldFN1Ym1pc3Npb24oY2hhbmdlcy5zdWJtaXNzaW9uLmN1cnJlbnRWYWx1ZSwge1xuICAgICAgICAgIGZyb21TdWJtaXNzaW9uOiAhY2hhbmdlcy5zdWJtaXNzaW9uLmZpcnN0Q2hhbmdlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoY2hhbmdlcy5oaWRlQ29tcG9uZW50cyAmJiBjaGFuZ2VzLmhpZGVDb21wb25lbnRzLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICBjb25zdCBoaWRkZW5Db21wb25lbnRzID0gY2hhbmdlcy5oaWRlQ29tcG9uZW50cy5jdXJyZW50VmFsdWU7XG4gICAgICAgIHRoaXMuZm9ybWlvLm9wdGlvbnMuaGlkZSA9IGhpZGRlbkNvbXBvbmVudHM7XG4gICAgICAgIHRoaXMuZm9ybWlvLmV2ZXJ5Q29tcG9uZW50KChjb21wb25lbnQpID0+IHtcbiAgICAgICAgICBjb21wb25lbnQub3B0aW9ucy5oaWRlID0gaGlkZGVuQ29tcG9uZW50cztcbiAgICAgICAgICBpZiAoaGlkZGVuQ29tcG9uZW50cy5pbmNsdWRlcyhjb21wb25lbnQuY29tcG9uZW50LmtleSkpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudC52aXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG9uUHJldlBhZ2UoZGF0YTogYW55KSB7XG4gICAgdGhpcy5hbGVydHMuc2V0QWxlcnRzKFtdKTtcbiAgICB0aGlzLnByZXZQYWdlLmVtaXQoZGF0YSk7XG4gIH1cblxuICBvbk5leHRQYWdlKGRhdGE6IGFueSkge1xuICAgIHRoaXMuYWxlcnRzLnNldEFsZXJ0cyhbXSk7XG4gICAgdGhpcy5uZXh0UGFnZS5lbWl0KGRhdGEpO1xuICB9XG5cbiAgb25TdWJtaXQoc3VibWlzc2lvbjogYW55LCBzYXZlZDogYm9vbGVhbiwgbm9lbWl0PzogYm9vbGVhbikge1xuICAgIHRoaXMuc3VibWl0dGluZyA9IGZhbHNlO1xuICAgIHRoaXMuc3VibWlzc2lvblN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgdGhpcy5mb3JtaW8uc2V0VmFsdWUoZmFzdENsb25lRGVlcChzdWJtaXNzaW9uKSwge1xuICAgICAgbm9WYWxpZGF0ZTogdHJ1ZSxcbiAgICAgIG5vQ2hlY2s6IHRydWVcbiAgICB9KTtcblxuICAgIGlmIChzYXZlZCkge1xuICAgICAgdGhpcy5mb3JtaW8uZW1pdCgnc3VibWl0RG9uZScsIHN1Ym1pc3Npb24pO1xuICAgIH1cbiAgICBpZiAoIW5vZW1pdCkge1xuICAgICAgdGhpcy5zdWJtaXQuZW1pdChzdWJtaXNzaW9uKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnN1Y2Nlc3MpIHtcbiAgICAgIHRoaXMuYWxlcnRzLnNldEFsZXJ0KHtcbiAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxuICAgICAgICBtZXNzYWdlOiBnZXQodGhpcy5vcHRpb25zLCAnYWxlcnRzLnN1Ym1pdE1lc3NhZ2UnKVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25FcnJvcihlcnI6IGFueSkge1xuICAgIHRoaXMuYWxlcnRzLnNldEFsZXJ0cyhbXSk7XG4gICAgdGhpcy5zdWJtaXR0aW5nID0gZmFsc2U7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcblxuICAgIGlmICghZXJyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gTWFrZSBzdXJlIGl0IGlzIGFuIGFycmF5LlxuICAgIGNvbnN0IGVycm9ycyA9IEFycmF5LmlzQXJyYXkoZXJyKSA/IGVyciA6IFtlcnJdO1xuXG4gICAgLy8gRW1pdCB0aGVzZSBlcnJvcnMgYWdhaW4uXG4gICAgdGhpcy5lcnJvckNoYW5nZS5lbWl0KGVycm9ycyk7XG5cbiAgICBpZiAoZXJyLnNpbGVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcm1pbyAmJiBlcnJvcnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZvcm1pby5lbWl0KCdzdWJtaXRFcnJvcicsIGVycm9ycyk7XG4gICAgfVxuXG4gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2ggb25lIGFuZCBzZXQgdGhlIGFsZXJ0cyBhcnJheS5cbiAgICBlcnJvcnMuZm9yRWFjaCgoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgY29uc3Qge1xuICAgICAgICBtZXNzYWdlLFxuICAgICAgICBwYXRocyxcbiAgICAgIH0gPSBlcnJvclxuICAgICAgICA/IGVycm9yLmRldGFpbHNcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLmRldGFpbHMubWFwKChkZXRhaWwpID0+IGRldGFpbC5tZXNzYWdlKSxcbiAgICAgICAgICAgIHBhdGhzOiBlcnJvci5kZXRhaWxzLm1hcCgoZGV0YWlsKSA9PiBkZXRhaWwucGF0aCksXG4gICAgICAgICAgfVxuICAgICAgICAgIDoge1xuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSB8fCBlcnJvci50b1N0cmluZygpLFxuICAgICAgICAgICAgcGF0aHM6IGVycm9yLnBhdGggPyBbZXJyb3IucGF0aF0gOiBbXSxcbiAgICAgICAgICB9XG4gICAgICAgIDoge1xuICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgICAgIHBhdGhzOiBbXSxcbiAgICAgICAgfTtcblxuICAgICAgbGV0IHNob3VsZEVycm9yRGlzcGxheSA9IHRydWU7XG5cbiAgICAgIGlmICh0aGlzLmZvcm1pbykge1xuICAgICAgICBwYXRocy5mb3JFYWNoKChwYXRoLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuZm9ybWlvLmdldENvbXBvbmVudChwYXRoKTtcbiAgICAgICAgICBpZiAoY29tcG9uZW50KSB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRzID0gQXJyYXkuaXNBcnJheShjb21wb25lbnQpID8gY29tcG9uZW50IDogW2NvbXBvbmVudF07XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlVGV4dCA9IEFycmF5LmlzQXJyYXkobWVzc2FnZSkgPyBtZXNzYWdlW2luZGV4XSA6IG1lc3NhZ2U7XG4gICAgICAgICAgICBjb21wb25lbnRzLmZvckVhY2goKGNvbXApID0+IGNvbXAuc2V0Q3VzdG9tVmFsaWRpdHkobWVzc2FnZVRleHQsIHRydWUpKTtcbiAgICAgICAgICAgIHRoaXMuYWxlcnRzLmFkZEFsZXJ0KHtcbiAgICAgICAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2VbaW5kZXhdLFxuICAgICAgICAgICAgICBjb21wb25lbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHNob3VsZEVycm9yRGlzcGxheSA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCh3aW5kb3cgYXMgYW55KS5WUEFUX0VOQUJMRUQpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIGVycm9yID09PSdzdHJpbmcnICYmIHRoaXMuZm9ybWlvLmNvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybWlvLmNvbXBvbmVudHMuZm9yRWFjaCgoY29tcCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoY29tcCAmJiBjb21wLnR5cGUgIT09ICdidXR0b24nKSB7XG4gICAgICAgICAgICAgICAgY29tcC5zZXRDdXN0b21WYWxpZGl0eShtZXNzYWdlLCB0cnVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLm5vQWxlcnRzKSB7XG4gICAgICAgICAgdGhpcy5mb3JtaW8uc2hvd0Vycm9ycygpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChzaG91bGRFcnJvckRpc3BsYXkpIHtcbiAgICAgICAgdGhpcy5hbGVydHMuYWRkQWxlcnQoe1xuICAgICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgY29tcG9uZW50OiBlcnJvci5jb21wb25lbnQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZm9jdXNPbkNvbXBvbmV0KGtleTogYW55KSB7XG4gICAgaWYgKHRoaXMuZm9ybWlvKSB7XG4gICAgICB0aGlzLmZvcm1pby5mb2N1c09uQ29tcG9uZW50KGtleSk7XG4gICAgfVxuICB9XG5cbiAgc3VibWl0RXhlY3V0ZShzdWJtaXNzaW9uOiBvYmplY3QsIHNhdmVkID0gZmFsc2UpIHtcbiAgICBpZiAodGhpcy5zZXJ2aWNlICYmICF0aGlzLnVybCAmJiAhc2F2ZWQpIHtcbiAgICAgIHRoaXMuc2VydmljZVxuICAgICAgICAuc2F2ZVN1Ym1pc3Npb24oc3VibWlzc2lvbilcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAoc3ViOiB7fSkgPT4gdGhpcy5vblN1Ym1pdChzdWIsIHRydWUpLFxuICAgICAgICAgIGVyciA9PiB0aGlzLm9uRXJyb3IoZXJyKVxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uU3VibWl0KHN1Ym1pc3Npb24sIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBzdWJtaXRGb3JtKHN1Ym1pc3Npb246IGFueSwgc2F2ZWQgPSBmYWxzZSkge1xuICAgIC8vIEtlZXAgZG91YmxlIHN1Ym1pdHMgZnJvbSBvY2N1cnJpbmcuLi5cbiAgICBpZiAodGhpcy5zdWJtaXR0aW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZm9ybWlvLnNldE1ldGFkYXRhKHN1Ym1pc3Npb24pO1xuICAgIHRoaXMuc3VibWlzc2lvblN1Y2Nlc3MgPSBmYWxzZTtcbiAgICB0aGlzLnN1Ym1pdHRpbmcgPSB0cnVlO1xuICAgIHRoaXMuYmVmb3JlU3VibWl0LmVtaXQoc3VibWlzc2lvbik7XG5cbiAgICAvLyBpZiB0aGV5IHByb3ZpZGUgYSBiZWZvcmVTdWJtaXQgaG9vaywgdGhlbiBhbGxvdyB0aGVtIHRvIGFsdGVyIHRoZSBzdWJtaXNzaW9uIGFzeW5jaHJvbm91c2x5XG4gICAgLy8gb3IgZXZlbiBwcm92aWRlIGEgY3VzdG9tIEVycm9yIG1ldGhvZC5cbiAgICBjb25zdCBiZWZvcmVTdWJtaXQgPSBnZXQodGhpcy5vcHRpb25zLCAnaG9va3MuYmVmb3JlU3VibWl0Jyk7XG4gICAgaWYgKGJlZm9yZVN1Ym1pdCkge1xuICAgICAgYmVmb3JlU3VibWl0KHN1Ym1pc3Npb24sIChlcnI6IEZvcm1pb0Vycm9yLCBzdWI6IG9iamVjdCkgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgdGhpcy5vbkVycm9yKGVycik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3VibWl0RXhlY3V0ZShzdWIsIHNhdmVkKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN1Ym1pdEV4ZWN1dGUoc3VibWlzc2lvbiwgc2F2ZWQpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlKHZhbHVlOiBhbnksIGZsYWdzOiBhbnksIGlzTW9kaWZpZWQ6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy53YXRjaFN1Ym1pc3Npb25FcnJvcnMgJiYgIXRoaXMuc3VibWlzc2lvblN1Y2Nlc3MpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IGdldCh0aGlzLCAnZm9ybWlvLmVycm9ycycsIFtdKTtcbiAgICAgIGNvbnN0IGFsZXJ0cyA9IGdldCh0aGlzLCAnYWxlcnRzLmFsZXJ0cycsIFtdKTtcbiAgICAgIGNvbnN0IHN1Ym1pdHRlZCA9IGdldCh0aGlzLCAnZm9ybWlvLnN1Ym1pdHRlZCcsIGZhbHNlKTtcbiAgICAgIGlmIChzdWJtaXR0ZWQgJiYgKGVycm9ycy5sZW5ndGggfHwgYWxlcnRzLmxlbmd0aCkpIHtcbiAgICAgICAgdGhpcy5vbkVycm9yKGVycm9ycyk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNoYW5nZS5lbWl0KHsuLi52YWx1ZSwgZmxhZ3MsIGlzTW9kaWZpZWR9KTtcbiAgfVxufVxuIl19
@@ -4,9 +4,9 @@ import * as i1 from "@angular/router";
4
4
  export class FormioAuthComponent {
5
5
  }
6
6
  FormioAuthComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: FormioAuthComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
- FormioAuthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.1", type: FormioAuthComponent, selector: "ng-component", ngImport: i0, template: "<div class=\"card card-primary panel panel-default\">\n <div class=\"card-header panel-heading\">\n <ul class=\"nav nav-tabs card-header-tabs\">\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"login\" routerLinkActive=\"active\">Login</a></li>\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"register\" routerLinkActive=\"active\">Register</a></li>\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"resetpass\" routerLinkActive=\"active\">Reset Password</a></li>\n </ul>\n </div>\n <div class=\"card-body panel-body\">\n <router-outlet></router-outlet>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] });
7
+ FormioAuthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.1", type: FormioAuthComponent, selector: "ng-component", ngImport: i0, template: "<div class=\"card card-primary panel panel-default\">\n <div class=\"card-header panel-heading\">\n <ul class=\"nav nav-tabs card-header-tabs\">\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"login\" routerLinkActive=\"active\">Login</a></li>\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"register\" routerLinkActive=\"active\">Register</a></li>\n </ul>\n </div>\n <div class=\"card-body panel-body\">\n <router-outlet></router-outlet>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] });
8
8
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: FormioAuthComponent, decorators: [{
9
9
  type: Component,
10
- args: [{ template: "<div class=\"card card-primary panel panel-default\">\n <div class=\"card-header panel-heading\">\n <ul class=\"nav nav-tabs card-header-tabs\">\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"login\" routerLinkActive=\"active\">Login</a></li>\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"register\" routerLinkActive=\"active\">Register</a></li>\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"resetpass\" routerLinkActive=\"active\">Reset Password</a></li>\n </ul>\n </div>\n <div class=\"card-body panel-body\">\n <router-outlet></router-outlet>\n </div>\n</div>\n" }]
10
+ args: [{ template: "<div class=\"card card-primary panel panel-default\">\n <div class=\"card-header panel-heading\">\n <ul class=\"nav nav-tabs card-header-tabs\">\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"login\" routerLinkActive=\"active\">Login</a></li>\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"register\" routerLinkActive=\"active\">Register</a></li>\n </ul>\n </div>\n <div class=\"card-body panel-body\">\n <router-outlet></router-outlet>\n </div>\n</div>\n" }]
11
11
  }] });
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWZvcm1pby9hdXRoL3NyYy9hdXRoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZm9ybWlvL2F1dGgvc3JjL2F1dGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBSTFDLE1BQU0sT0FBTyxtQkFBbUI7O2dIQUFuQixtQkFBbUI7b0dBQW5CLG1CQUFtQixvRENKaEMsaXhCQVlBOzJGRFJhLG1CQUFtQjtrQkFIL0IsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRoLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBGb3JtaW9BdXRoQ29tcG9uZW50IHt9XG4iLCI8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLXByaW1hcnkgcGFuZWwgcGFuZWwtZGVmYXVsdFwiPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgcGFuZWwtaGVhZGluZ1wiPlxuICAgIDx1bCBjbGFzcz1cIm5hdiBuYXYtdGFicyBjYXJkLWhlYWRlci10YWJzXCI+XG4gICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiIHJvbGU9XCJwcmVzZW50YXRpb25cIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+PGEgY2xhc3M9XCJuYXYtbGlua1wiIHJvdXRlckxpbms9XCJsb2dpblwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5Mb2dpbjwvYT48L2xpPlxuICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiByb2xlPVwicHJlc2VudGF0aW9uXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPjxhIGNsYXNzPVwibmF2LWxpbmtcIiByb3V0ZXJMaW5rPVwicmVnaXN0ZXJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+UmVnaXN0ZXI8L2E+PC9saT5cbiAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgcm9sZT1cInByZXNlbnRhdGlvblwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj48YSBjbGFzcz1cIm5hdi1saW5rXCIgcm91dGVyTGluaz1cInJlc2V0cGFzc1wiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5SZXNldCBQYXNzd29yZDwvYT48L2xpPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHBhbmVsLWJvZHlcIj5cbiAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWZvcm1pby9hdXRoL3NyYy9hdXRoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZm9ybWlvL2F1dGgvc3JjL2F1dGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBSTFDLE1BQU0sT0FBTyxtQkFBbUI7O2dIQUFuQixtQkFBbUI7b0dBQW5CLG1CQUFtQixvRENKaEMsOGxCQVdBOzJGRFBhLG1CQUFtQjtrQkFIL0IsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRoLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBGb3JtaW9BdXRoQ29tcG9uZW50IHt9XG4iLCI8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLXByaW1hcnkgcGFuZWwgcGFuZWwtZGVmYXVsdFwiPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgcGFuZWwtaGVhZGluZ1wiPlxuICAgIDx1bCBjbGFzcz1cIm5hdiBuYXYtdGFicyBjYXJkLWhlYWRlci10YWJzXCI+XG4gICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiIHJvbGU9XCJwcmVzZW50YXRpb25cIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+PGEgY2xhc3M9XCJuYXYtbGlua1wiIHJvdXRlckxpbms9XCJsb2dpblwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5Mb2dpbjwvYT48L2xpPlxuICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiByb2xlPVwicHJlc2VudGF0aW9uXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPjxhIGNsYXNzPVwibmF2LWxpbmtcIiByb3V0ZXJMaW5rPVwicmVnaXN0ZXJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+UmVnaXN0ZXI8L2E+PC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwYW5lbC1ib2R5XCI+XG4gICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -5,6 +5,7 @@ export class FormManagerConfig {
5
5
  this.tag = '';
6
6
  this.includeSearch = false;
7
7
  this.saveDraft = false;
8
+ this.type = 'form';
8
9
  }
9
10
  }
10
11
  FormManagerConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: FormManagerConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -12,4 +13,5 @@ FormManagerConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ve
12
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: FormManagerConfig, decorators: [{
13
14
  type: Injectable
14
15
  }] });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tYW5hZ2VyLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZm9ybWlvL21hbmFnZXIvc3JjL2Zvcm0tbWFuYWdlci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFrQjNDLE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFFUyxRQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ1Qsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsY0FBUyxHQUFHLEtBQUssQ0FBQztLQUkxQjs7OEdBUFksaUJBQWlCO2tIQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtTWFuYWdlclJvdXRlQ29uZmlnIHtcbiAgZm9ybUluZGV4PzogYW55O1xuICBmb3JtQ3JlYXRlPzogYW55O1xuICBmb3JtPzogYW55O1xuICBmb3JtVmlldz86IGFueTtcbiAgZm9ybUVkaXQ/OiBhbnk7XG4gIGZvcm1FbWJlZD86IGFueTtcbiAgZm9ybURlbGV0ZT86IGFueTtcbiAgc3VibWlzc2lvbkluZGV4PzogYW55O1xuICBzdWJtaXNzaW9uPzogYW55O1xuICBzdWJtaXNzaW9uVmlldz86IGFueTtcbiAgc3VibWlzc2lvbkVkaXQ/OiBhbnk7XG4gIHN1Ym1pc3Npb25EZWxldGU/OiBhbnk7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGb3JtTWFuYWdlckNvbmZpZyB7XG4gIHB1YmxpYyB0YWcgPSAnJztcbiAgcHVibGljIGluY2x1ZGVTZWFyY2ggPSBmYWxzZTtcbiAgcHVibGljIHNhdmVEcmFmdCA9IGZhbHNlO1xuICBwdWJsaWMgYnVpbGRlcj86IGFueTtcbiAgcHVibGljIHZpZXdlcj86IHN0cmluZztcbiAgcHVibGljIHJlbmRlcmVyOiBhbnk7XG59XG4iXX0=
16
+ export const DefaultConfiguration = new FormManagerConfig();
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tYW5hZ2VyLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZm9ybWlvL21hbmFnZXIvc3JjL2Zvcm0tbWFuYWdlci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFrQjNDLE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFFUyxRQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ1Qsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixTQUFJLEdBQUcsTUFBTSxDQUFDO0tBSXRCOzs4R0FSWSxpQkFBaUI7a0hBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVOztBQVdYLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtTWFuYWdlclJvdXRlQ29uZmlnIHtcbiAgZm9ybUluZGV4PzogYW55O1xuICBmb3JtQ3JlYXRlPzogYW55O1xuICBmb3JtPzogYW55O1xuICBmb3JtVmlldz86IGFueTtcbiAgZm9ybUVkaXQ/OiBhbnk7XG4gIGZvcm1FbWJlZD86IGFueTtcbiAgZm9ybURlbGV0ZT86IGFueTtcbiAgc3VibWlzc2lvbkluZGV4PzogYW55O1xuICBzdWJtaXNzaW9uPzogYW55O1xuICBzdWJtaXNzaW9uVmlldz86IGFueTtcbiAgc3VibWlzc2lvbkVkaXQ/OiBhbnk7XG4gIHN1Ym1pc3Npb25EZWxldGU/OiBhbnk7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGb3JtTWFuYWdlckNvbmZpZyB7XG4gIHB1YmxpYyB0YWcgPSAnJztcbiAgcHVibGljIGluY2x1ZGVTZWFyY2ggPSBmYWxzZTtcbiAgcHVibGljIHNhdmVEcmFmdCA9IGZhbHNlO1xuICBwdWJsaWMgdHlwZSA9ICdmb3JtJztcbiAgcHVibGljIGJ1aWxkZXI/OiBhbnk7XG4gIHB1YmxpYyB2aWV3ZXI/OiBzdHJpbmc7XG4gIHB1YmxpYyByZW5kZXJlcjogYW55O1xufVxuXG5leHBvcnQgY29uc3QgRGVmYXVsdENvbmZpZ3VyYXRpb24gPSBuZXcgRm9ybU1hbmFnZXJDb25maWcoKTsiXX0=
@@ -1,4 +1,5 @@
1
1
  import { Component, ViewChild } from '@angular/core';
2
+ import { DefaultConfiguration } from '../form-manager.config';
2
3
  import { FormioGridComponent } from '@formio/angular/grid';
3
4
  import { debounce } from 'lodash';
4
5
  import * as i0 from "@angular/core";
@@ -15,7 +16,11 @@ export class FormManagerIndexComponent {
15
16
  this.router = router;
16
17
  this.config = config;
17
18
  this.search = '';
18
- this.gridQuery = { tags: this.config.tag, type: 'form', sort: 'title' };
19
+ this.config = { ...DefaultConfiguration, ...this.config };
20
+ this.gridQuery = { type: this.config.type, sort: 'title' };
21
+ if (this.config.tag) {
22
+ this.gridQuery.tags = this.config.tag;
23
+ }
19
24
  this.onSearch = debounce(this.onSearch, 300);
20
25
  }
21
26
  loadGrid() {
@@ -27,7 +32,10 @@ export class FormManagerIndexComponent {
27
32
  .then(() => this.formGrid.setPage(currentPage - 1));
28
33
  }
29
34
  ngOnInit() {
30
- this.gridQuery = { tags: this.config.tag, type: 'form', sort: 'title' };
35
+ this.gridQuery = { type: this.config.type, sort: 'title' };
36
+ if (this.config.tag) {
37
+ this.gridQuery.tags = this.config.tag;
38
+ }
31
39
  this.service.reset();
32
40
  this.service.ready.then(() => {
33
41
  this.loadGrid();
@@ -52,14 +60,17 @@ export class FormManagerIndexComponent {
52
60
  this.formGrid.refreshGrid(this.gridQuery);
53
61
  }
54
62
  clearSearch() {
55
- this.gridQuery = { tags: this.config.tag, type: 'form', sort: 'title' };
63
+ this.gridQuery = { type: this.config.type, sort: 'title' };
64
+ if (this.config.tag) {
65
+ this.gridQuery.tags = this.config.tag;
66
+ }
56
67
  localStorage.removeItem('query');
57
68
  localStorage.removeItem('searchInput');
58
69
  localStorage.removeItem('currentPage');
59
70
  this.search = '';
60
71
  this.formGrid.pageChanged({ page: 1 });
61
72
  this.formGrid.query = {};
62
- this.formGrid.refreshGrid({ tags: this.config.tag, type: 'form', sort: 'title' });
73
+ this.formGrid.refreshGrid(this.gridQuery);
63
74
  }
64
75
  onAction(action) {
65
76
  this.service.form = null; // Reset previous form data
@@ -81,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImpor
81
92
  type: ViewChild,
82
93
  args: [FormioGridComponent, { static: false }]
83
94
  }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1mb3JtaW8vbWFuYWdlci9zcmMvaW5kZXgvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1mb3JtaW8vbWFuYWdlci9zcmMvaW5kZXgvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7Ozs7Ozs7QUFNbEMsTUFBTSxPQUFPLHlCQUF5QjtJQUlwQyxZQUNTLE9BQTJCLEVBQzNCLEtBQXFCLEVBQ3JCLE1BQWMsRUFDZCxNQUF5QjtRQUh6QixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFMM0IsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQU9qQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENB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QyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLDJCQUEyQjtRQUNyRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQVE7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQzs7c0hBdkVVLHlCQUF5QjswR0FBekIseUJBQXlCLDhGQUN6QixtQkFBbUIsZ0RDWmhDLHl0QkFjQTsyRkRIYSx5QkFBeUI7a0JBSnJDLFNBQVM7OzJMQUt5QyxRQUFRO3NCQUF4RCxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRm9ybU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZm9ybS1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybU1hbmFnZXJDb25maWcgfSBmcm9tICcuLi9mb3JtLW1hbmFnZXIuY29uZmlnJztcbmltcG9ydCB7IEZvcm1pb0dyaWRDb21wb25lbnQgfSBmcm9tICdAZm9ybWlvL2FuZ3VsYXIvZ3JpZCc7XG5pbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gJ2xvZGFzaCc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vaW5kZXguY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbmRleC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1NYW5hZ2VySW5kZXhDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKEZvcm1pb0dyaWRDb21wb25lbnQsIHtzdGF0aWM6IGZhbHNlfSkgZm9ybUdyaWQ6IEZvcm1pb0dyaWRDb21wb25lbnQ7XG4gIHB1YmxpYyBncmlkUXVlcnk6IGFueTtcbiAgcHVibGljIHNlYXJjaCA9ICcnO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc2VydmljZTogRm9ybU1hbmFnZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxuICAgIHB1YmxpYyBjb25maWc6IEZvcm1NYW5hZ2VyQ29uZmlnXG4gICkge1xuICAgIHRoaXMuZ3JpZFF1ZXJ5ID0ge3RhZ3M6IHRoaXMuY29uZmlnLnRhZywgdHlwZTogJ2Zvcm0nLCBzb3J0OiAndGl0bGUnfTtcbiAgICB0aGlzLm9uU2VhcmNoID0gZGVib3VuY2UodGhpcy5vblNlYXJjaCwgMzAwKTtcbiAgfVxuXG4gIGxvYWRHcmlkKCkge1xuICAgIHRoaXMuc2VhcmNoID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3NlYXJjaElucHV0Jyk7XG4gICAgdGhpcy5ncmlkUXVlcnkgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdxdWVyeScpKSB8fCB0aGlzLmdyaWRRdWVyeTtcbiAgICBjb25zdCBjdXJyZW50UGFnZSA9ICtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VycmVudFBhZ2UnKSB8fCAwO1xuICAgIHRoaXMuZm9ybUdyaWRcbiAgICAgIC5yZWZyZXNoR3JpZCh0aGlzLmdyaWRRdWVyeSlcbiAgICAgIC50aGVuKCgpID0+IHRoaXMuZm9ybUdyaWQuc2V0UGFnZShjdXJyZW50UGFnZSAtIDEpKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZ3JpZFF1ZXJ5ID0ge3RhZ3M6IHRoaXMuY29uZmlnLnRhZywgdHlwZTogJ2Zvcm0nLCBzb3J0OiAndGl0bGUnfTtcbiAgICB0aGlzLnNlcnZpY2UucmVzZXQoKTtcbiAgICB0aGlzLnNlcnZpY2UucmVhZHkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLmxvYWRHcmlkKCk7XG4gICAgICB0aGlzLmZvcm1HcmlkLmZvb3Rlci5wYWdlQ2hhbmdlZC5zdWJzY3JpYmUocGFnZSA9PiB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjdXJyZW50UGFnZScsIHBhZ2UucGFnZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uU2VhcmNoKGV2ZW50PzogS2V5Ym9hcmRFdmVudCkge1xuICAgIGNvbnN0IHNlYXJjaElucHV0ID0gdGhpcy5zZWFyY2g7XG4gICAgaWYgKHNlYXJjaElucHV0Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuZ3JpZFF1ZXJ5LnNraXAgPSAwO1xuICAgICAgdGhpcy5ncmlkUXVlcnkudGl0bGVfX3JlZ2V4ID0gJy8nICsgc2VhcmNoSW5wdXQgKyAnL2knO1xuICAgICAgdGhpcy5ncmlkUXVlcnkudGl0bGVfX3JlZ2V4ID0gJy8nICsgc2VhcmNoSW5wdXQudHJpbSgpICsgJy9pJztcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlIHRoaXMuZ3JpZFF1ZXJ5LnRpdGxlX19yZWdleDtcbiAgICB9XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3F1ZXJ5JywgSlNPTi5zdHJpbmdpZnkodGhpcy5ncmlkUXVlcnkpKTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2VhcmNoSW5wdXQnLCB0aGlzLnNlYXJjaCk7XG4gICAgdGhpcy5mb3JtR3JpZC5wYWdlQ2hhbmdlZCh7cGFnZTogMSwgaXRlbVBlclBhZ2U6IHRoaXMuZ3JpZFF1ZXJ5LmxpbWl0fSk7XG4gICAgdGhpcy5mb3JtR3JpZC5yZWZyZXNoR3JpZCh0aGlzLmdyaWRRdWVyeSk7XG4gIH1cblxuICBjbGVhclNlYXJjaCgpIHtcbiAgICB0aGlzLmdyaWRRdWVyeSA9IHt0YWdzOiB0aGlzLmNvbmZpZy50YWcsIHR5cGU6ICdmb3JtJywgc29ydDogJ3RpdGxlJ307XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3F1ZXJ5Jyk7XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3NlYXJjaElucHV0Jyk7XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2N1cnJlbnRQYWdlJyk7XG4gICAgdGhpcy5zZWFyY2ggPSAnJztcbiAgICB0aGlzLmZvcm1HcmlkLnBhZ2VDaGFuZ2VkKHtwYWdlOiAxfSk7XG4gICAgdGhpcy5mb3JtR3JpZC5xdWVyeSA9IHt9O1xuICAgIHRoaXMuZm9ybUdyaWQucmVmcmVzaEdyaWQoe3RhZ3M6IHRoaXMuY29uZmlnLnRhZywgdHlwZTogJ2Zvcm0nLCBzb3J0OiAndGl0bGUnfSk7XG4gIH1cblxuICBvbkFjdGlvbihhY3Rpb246IGFueSkge1xuICAgIHRoaXMuc2VydmljZS5mb3JtID0gbnVsbDsgLy8gUmVzZXQgcHJldmlvdXMgZm9ybSBkYXRhXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2FjdGlvbi5yb3cuX2lkLCBhY3Rpb24uYWN0aW9uXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICB9XG5cbiAgb25TZWxlY3Qocm93OiBhbnkpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcm93Ll9pZF0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgfVxuXG4gIG9uQ3JlYXRlSXRlbSgpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2NyZWF0ZSddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gIH1cbn1cbiIsIjxkaXYgcm9sZT1cInNlYXJjaFwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAgbWItM1wiICpuZ0lmPVwiY29uZmlnLmluY2x1ZGVTZWFyY2hcIj5cbiAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKGtleXVwKT1cIm9uU2VhcmNoKClcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwic2VhcmNoXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggRm9ybXNcIiBhcmlhLWxhYmVsPVwiU2VhcmNoIEZvcm1zXCIgYXJpYS1kZXNjcmliZWRieT1cImJ1dHRvbi1zZWFyY2hcIj5cbiAgPHNwYW4gKm5nSWY9XCJzZWFyY2ggJiYgc2VhcmNoICE9PSAnJ1wiIGNsYXNzPVwiZm9ybS1jbGVhciBpbnB1dC1ncm91cC1hZGRvblwiIChjbGljayk9XCJjbGVhclNlYXJjaCgpXCI+PHNwYW4gY2xhc3M9XCJmYSBmYS10aW1lcyBiaSBiaS14XCI+PC9zcGFuPjwvc3Bhbj5cbjwvZGl2PlxuPGZvcm1pby1ncmlkXG4gICpuZ0lmPVwic2VydmljZS5yZWFkeVwiXG4gIFtmb3JtaW9dPVwic2VydmljZS5mb3JtaW9cIlxuICBbZ3JpZFR5cGVdPVwiJ2Zvcm0nXCJcbiAgW3F1ZXJ5XT1cImdyaWRRdWVyeVwiXG4gIFtpc0FjdGlvbkFsbG93ZWRdPVwic2VydmljZS5hY3Rpb25BbGxvd2VkXCJcbiAgKHJvd0FjdGlvbik9XCJvbkFjdGlvbigkZXZlbnQpXCJcbiAgKHJvd1NlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQpXCJcbiAgKGNyZWF0ZUl0ZW0pPVwib25DcmVhdGVJdGVtKClcIlxuPjwvZm9ybWlvLWdyaWQ+XG4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1mb3JtaW8vbWFuYWdlci9zcmMvaW5kZXgvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1mb3JtaW8vbWFuYWdlci9zcmMvaW5kZXgvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFxQixNQUFNLHdCQUF3QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7O0FBTWxDLE1BQU0sT0FBTyx5QkFBeUI7SUFJcEMsWUFDUyxPQUEyQixFQUMzQixLQUFxQixFQUNyQixNQUFjLEVBQ2QsTUFBeUI7UUFIekIsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0IsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBTDNCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFPakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFDLEdBQUcsb0JBQW9CLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFDLENBQUM7UUFDekQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxJQUFJ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UUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQzs7c0hBakZVLHlCQUF5QjswR0FBekIseUJBQXlCLDhGQUN6QixtQkFBbUIsZ0RDWmhDLHl0QkFjQTsyRkRIYSx5QkFBeUI7a0JBSnJDLFNBQVM7OzJMQUt5QyxRQUFRO3NCQUF4RCxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRm9ybU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZm9ybS1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGVmYXVsdENvbmZpZ3VyYXRpb24sIEZvcm1NYW5hZ2VyQ29uZmlnIH0gZnJvbSAnLi4vZm9ybS1tYW5hZ2VyLmNvbmZpZyc7XG5pbXBvcnQgeyBGb3JtaW9HcmlkQ29tcG9uZW50IH0gZnJvbSAnQGZvcm1pby9hbmd1bGFyL2dyaWQnO1xuaW1wb3J0IHsgZGVib3VuY2UgfSBmcm9tICdsb2Rhc2gnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2luZGV4LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5kZXguY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtTWFuYWdlckluZGV4Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZChGb3JtaW9HcmlkQ29tcG9uZW50LCB7c3RhdGljOiBmYWxzZX0pIGZvcm1HcmlkOiBGb3JtaW9HcmlkQ29tcG9uZW50O1xuICBwdWJsaWMgZ3JpZFF1ZXJ5OiBhbnk7XG4gIHB1YmxpYyBzZWFyY2ggPSAnJztcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHNlcnZpY2U6IEZvcm1NYW5hZ2VyU2VydmljZSxcbiAgICBwdWJsaWMgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcbiAgICBwdWJsaWMgY29uZmlnOiBGb3JtTWFuYWdlckNvbmZpZ1xuICApIHtcbiAgICB0aGlzLmNvbmZpZyA9IHsuLi5EZWZhdWx0Q29uZmlndXJhdGlvbiwgLi4udGhpcy5jb25maWd9O1xuICAgIHRoaXMuZ3JpZFF1ZXJ5ID0ge3R5cGU6IHRoaXMuY29uZmlnLnR5cGUsIHNvcnQ6ICd0aXRsZSd9O1xuICAgIGlmICh0aGlzLmNvbmZpZy50YWcpIHtcbiAgICAgIHRoaXMuZ3JpZFF1ZXJ5LnRhZ3MgPSB0aGlzLmNvbmZpZy50YWc7XG4gICAgfVxuICAgIHRoaXMub25TZWFyY2ggPSBkZWJvdW5jZSh0aGlzLm9uU2VhcmNoLCAzMDApO1xuICB9XG5cbiAgbG9hZEdyaWQoKSB7XG4gICAgdGhpcy5zZWFyY2ggPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc2VhcmNoSW5wdXQnKTtcbiAgICB0aGlzLmdyaWRRdWVyeSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3F1ZXJ5JykpIHx8IHRoaXMuZ3JpZFF1ZXJ5O1xuICAgIGNvbnN0IGN1cnJlbnRQYWdlID0gK2xvY2FsU3RvcmFnZS5nZXRJdGVtKCdjdXJyZW50UGFnZScpIHx8IDA7XG4gICAgdGhpcy5mb3JtR3JpZFxuICAgICAgLnJlZnJlc2hHcmlkKHRoaXMuZ3JpZFF1ZXJ5KVxuICAgICAgLnRoZW4oKCkgPT4gdGhpcy5mb3JtR3JpZC5zZXRQYWdlKGN1cnJlbnRQYWdlIC0gMSkpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5ncmlkUXVlcnkgPSB7dHlwZTogdGhpcy5jb25maWcudHlwZSwgc29ydDogJ3RpdGxlJ307XG4gICAgaWYgKHRoaXMuY29uZmlnLnRhZykge1xuICAgICAgdGhpcy5ncmlkUXVlcnkudGFncyA9IHRoaXMuY29uZmlnLnRhZztcbiAgICB9XG4gICAgdGhpcy5zZXJ2aWNlLnJlc2V0KCk7XG4gICAgdGhpcy5zZXJ2aWNlLnJlYWR5LnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5sb2FkR3JpZCgpO1xuICAgICAgdGhpcy5mb3JtR3JpZC5mb290ZXIucGFnZUNoYW5nZWQuc3Vic2NyaWJlKHBhZ2UgPT4ge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY3VycmVudFBhZ2UnLCBwYWdlLnBhZ2UpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBvblNlYXJjaChldmVudD86IEtleWJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBzZWFyY2hJbnB1dCA9IHRoaXMuc2VhcmNoO1xuICAgIGlmIChzZWFyY2hJbnB1dC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmdyaWRRdWVyeS5za2lwID0gMDtcbiAgICAgIHRoaXMuZ3JpZFF1ZXJ5LnRpdGxlX19yZWdleCA9ICcvJyArIHNlYXJjaElucHV0ICsgJy9pJztcbiAgICAgIHRoaXMuZ3JpZFF1ZXJ5LnRpdGxlX19yZWdleCA9ICcvJyArIHNlYXJjaElucHV0LnRyaW0oKSArICcvaSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSB0aGlzLmdyaWRRdWVyeS50aXRsZV9fcmVnZXg7XG4gICAgfVxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdxdWVyeScsIEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JpZFF1ZXJ5KSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3NlYXJjaElucHV0JywgdGhpcy5zZWFyY2gpO1xuICAgIHRoaXMuZm9ybUdyaWQucGFnZUNoYW5nZWQoe3BhZ2U6IDEsIGl0ZW1QZXJQYWdlOiB0aGlzLmdyaWRRdWVyeS5saW1pdH0pO1xuICAgIHRoaXMuZm9ybUdyaWQucmVmcmVzaEdyaWQodGhpcy5ncmlkUXVlcnkpO1xuICB9XG5cbiAgY2xlYXJTZWFyY2goKSB7XG4gICAgdGhpcy5ncmlkUXVlcnkgPSB7dHlwZTogdGhpcy5jb25maWcudHlwZSwgc29ydDogJ3RpdGxlJ307XG4gICAgaWYgKHRoaXMuY29uZmlnLnRhZykge1xuICAgICAgdGhpcy5ncmlkUXVlcnkudGFncyA9IHRoaXMuY29uZmlnLnRhZztcbiAgICB9XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3F1ZXJ5Jyk7XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3NlYXJjaElucHV0Jyk7XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2N1cnJlbnRQYWdlJyk7XG4gICAgdGhpcy5zZWFyY2ggPSAnJztcbiAgICB0aGlzLmZvcm1HcmlkLnBhZ2VDaGFuZ2VkKHtwYWdlOiAxfSk7XG4gICAgdGhpcy5mb3JtR3JpZC5xdWVyeSA9IHt9O1xuICAgIHRoaXMuZm9ybUdyaWQucmVmcmVzaEdyaWQodGhpcy5ncmlkUXVlcnkpO1xuICB9XG5cbiAgb25BY3Rpb24oYWN0aW9uOiBhbnkpIHtcbiAgICB0aGlzLnNlcnZpY2UuZm9ybSA9IG51bGw7IC8vIFJlc2V0IHByZXZpb3VzIGZvcm0gZGF0YVxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFthY3Rpb24ucm93Ll9pZCwgYWN0aW9uLmFjdGlvbl0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgfVxuXG4gIG9uU2VsZWN0KHJvdzogYW55KSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3Jvdy5faWRdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gIH1cblxuICBvbkNyZWF0ZUl0ZW0oKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydjcmVhdGUnXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICB9XG59XG4iLCI8ZGl2IHJvbGU9XCJzZWFyY2hcIiBjbGFzcz1cImlucHV0LWdyb3VwIG1iLTNcIiAqbmdJZj1cImNvbmZpZy5pbmNsdWRlU2VhcmNoXCI+XG4gIDxpbnB1dCB0eXBlPVwidGV4dFwiIChrZXl1cCk9XCJvblNlYXJjaCgpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIEZvcm1zXCIgYXJpYS1sYWJlbD1cIlNlYXJjaCBGb3Jtc1wiIGFyaWEtZGVzY3JpYmVkYnk9XCJidXR0b24tc2VhcmNoXCI+XG4gIDxzcGFuICpuZ0lmPVwic2VhcmNoICYmIHNlYXJjaCAhPT0gJydcIiBjbGFzcz1cImZvcm0tY2xlYXIgaW5wdXQtZ3JvdXAtYWRkb25cIiAoY2xpY2spPVwiY2xlYXJTZWFyY2goKVwiPjxzcGFuIGNsYXNzPVwiZmEgZmEtdGltZXMgYmkgYmkteFwiPjwvc3Bhbj48L3NwYW4+XG48L2Rpdj5cbjxmb3JtaW8tZ3JpZFxuICAqbmdJZj1cInNlcnZpY2UucmVhZHlcIlxuICBbZm9ybWlvXT1cInNlcnZpY2UuZm9ybWlvXCJcbiAgW2dyaWRUeXBlXT1cIidmb3JtJ1wiXG4gIFtxdWVyeV09XCJncmlkUXVlcnlcIlxuICBbaXNBY3Rpb25BbGxvd2VkXT1cInNlcnZpY2UuYWN0aW9uQWxsb3dlZFwiXG4gIChyb3dBY3Rpb24pPVwib25BY3Rpb24oJGV2ZW50KVwiXG4gIChyb3dTZWxlY3QpPVwib25TZWxlY3QoJGV2ZW50KVwiXG4gIChjcmVhdGVJdGVtKT1cIm9uQ3JlYXRlSXRlbSgpXCJcbj48L2Zvcm1pby1ncmlkPlxuIl19
@@ -184,10 +184,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImpor
184
184
  class FormioAuthComponent {
185
185
  }
186
186
  FormioAuthComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: FormioAuthComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
187
- FormioAuthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.1", type: FormioAuthComponent, selector: "ng-component", ngImport: i0, template: "<div class=\"card card-primary panel panel-default\">\n <div class=\"card-header panel-heading\">\n <ul class=\"nav nav-tabs card-header-tabs\">\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"login\" routerLinkActive=\"active\">Login</a></li>\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"register\" routerLinkActive=\"active\">Register</a></li>\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"resetpass\" routerLinkActive=\"active\">Reset Password</a></li>\n </ul>\n </div>\n <div class=\"card-body panel-body\">\n <router-outlet></router-outlet>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] });
187
+ FormioAuthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.1", type: FormioAuthComponent, selector: "ng-component", ngImport: i0, template: "<div class=\"card card-primary panel panel-default\">\n <div class=\"card-header panel-heading\">\n <ul class=\"nav nav-tabs card-header-tabs\">\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"login\" routerLinkActive=\"active\">Login</a></li>\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"register\" routerLinkActive=\"active\">Register</a></li>\n </ul>\n </div>\n <div class=\"card-body panel-body\">\n <router-outlet></router-outlet>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] });
188
188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: FormioAuthComponent, decorators: [{
189
189
  type: Component,
190
- args: [{ template: "<div class=\"card card-primary panel panel-default\">\n <div class=\"card-header panel-heading\">\n <ul class=\"nav nav-tabs card-header-tabs\">\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"login\" routerLinkActive=\"active\">Login</a></li>\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"register\" routerLinkActive=\"active\">Register</a></li>\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"resetpass\" routerLinkActive=\"active\">Reset Password</a></li>\n </ul>\n </div>\n <div class=\"card-body panel-body\">\n <router-outlet></router-outlet>\n </div>\n</div>\n" }]
190
+ args: [{ template: "<div class=\"card card-primary panel panel-default\">\n <div class=\"card-header panel-heading\">\n <ul class=\"nav nav-tabs card-header-tabs\">\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"login\" routerLinkActive=\"active\">Login</a></li>\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"register\" routerLinkActive=\"active\">Register</a></li>\n </ul>\n </div>\n <div class=\"card-body panel-body\">\n <router-outlet></router-outlet>\n </div>\n</div>\n" }]
191
191
  }] });
192
192
 
193
193
  class FormioAuthLoginComponent {
@@ -1 +1 @@
1
- {"version":3,"file":"formio-angular-auth.mjs","sources":["../../../projects/angular-formio/auth/src/auth.config.ts","../../../projects/angular-formio/auth/src/auth.service.ts","../../../projects/angular-formio/auth/src/auth.component.ts","../../../projects/angular-formio/auth/src/auth.component.html","../../../projects/angular-formio/auth/src/login/login.component.ts","../../../projects/angular-formio/auth/src/login/login.component.html","../../../projects/angular-formio/auth/src/register/register.component.ts","../../../projects/angular-formio/auth/src/register/register.component.html","../../../projects/angular-formio/auth/src/resetpass/resetpass.component.ts","../../../projects/angular-formio/auth/src/resetpass/resetpass.component.html","../../../projects/angular-formio/auth/src/auth.routes.ts","../../../projects/angular-formio/auth/src/auth.module.ts","../../../projects/angular-formio/auth/src/formio-angular-auth.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nexport interface FormioAuthFormConfig {\n path?: string;\n form?: string;\n component?: any;\n}\n\nexport interface FormioAuthRouteConfig {\n auth?: any;\n login?: any;\n register?: any;\n resetpass?: any;\n}\n\n@Injectable()\nexport class FormioAuthConfig {\n component?: any;\n delayAuth?: any;\n login?: FormioAuthFormConfig;\n register?: FormioAuthFormConfig;\n resetpass?: FormioAuthFormConfig;\n oauth?: FormioOAuthConfig;\n}\n\n\nexport interface FormioOAuthConfig {\n type: FormioOauthType;\n options: FormioOktaConfig | FormioSamlConfig;\n}\n\nexport enum FormioOauthType {\n okta = 'okta',\n saml = 'saml',\n}\n\nexport interface FormioOktaConfig extends OktaConfig {\n formio?: any;\n}\n\nexport interface FormioSamlConfig {\n relay: string;\n}\n\n// for more details about Okta configuration options see https://github.com/okta/okta-auth-js#configuration-reference\nexport interface OktaConfig {\n url?: string;\n tokenManager?: OktaTokenManagerConfig;\n issuer?: string;\n clientId?: string;\n redirectUri?: string;\n postLogoutRedirectUri?: string;\n pkce?: boolean;\n authorizeUrl?: string;\n userinfoUrl?: string;\n tokenUrl?: string;\n ignoreSignature?: boolean;\n maxClockSkew?: number;\n scopes?: string[];\n httpRequestClient?: Function;\n}\n\nexport interface OktaTokenManagerConfig {\n storage?: string | {\n getItem?: Function;\n setItem?: Function;\n };\n secure?: boolean;\n autoRenew?: boolean;\n expireEarlySeconds?: number;\n storageKey?: string;\n}\n","import { EventEmitter, Injectable, Inject } from '@angular/core';\nimport { FormioAuthConfig } from './auth.config';\nimport { FormioAppConfig } from '@formio/angular';\nimport { get, each } from 'lodash';\nimport { Formio } from 'formiojs';\n\n@Injectable()\nexport class FormioAuthService {\n public user: any;\n public authenticated = false;\n\n public loginForm: string;\n public onLogin: EventEmitter<object>;\n public onLogout: EventEmitter<object>;\n\n public registerForm: string;\n public onRegister: EventEmitter<object>;\n public onUser: EventEmitter<object>;\n public onError: EventEmitter<any>;\n\n public resetPassForm: string;\n public onResetPass: EventEmitter<object>;\n\n public ready: Promise<boolean>;\n public readyResolve: any;\n public readyReject: any;\n\n public projectReady?: Promise<any>;\n public accessReady?: Promise<any>;\n public userReady?: Promise<any>;\n public formAccess: any = {};\n public submissionAccess: any = {};\n public roles: any;\n public is: any = {};\n\n constructor(\n public appConfig: FormioAppConfig,\n public config: FormioAuthConfig\n ) {\n this.user = null;\n\n if (this.appConfig && this.appConfig.appUrl) {\n Formio.setBaseUrl(this.appConfig.apiUrl);\n Formio.setProjectUrl(this.appConfig.appUrl);\n Formio.formOnly = !!this.appConfig.formOnly;\n } else {\n console.error('You must provide an AppConfig within your application!');\n }\n\n this.loginForm =\n this.appConfig.appUrl +\n '/' +\n get(this.config, 'login.form', 'user/login');\n this.registerForm =\n this.appConfig.appUrl +\n '/' +\n get(this.config, 'register.form', 'user/register');\n this.resetPassForm =\n this.appConfig.appUrl +\n '/' +\n get(this.config, 'register.form', 'resetpass');\n this.onLogin = new EventEmitter();\n this.onLogout = new EventEmitter();\n this.onRegister = new EventEmitter();\n this.onUser = new EventEmitter();\n this.onError = new EventEmitter();\n\n this.ready = new Promise((resolve: any, reject: any) => {\n this.readyResolve = resolve;\n this.readyReject = reject;\n });\n\n // Register for the core events.\n Formio.events.on('formio.badToken', () => this.logoutError());\n Formio.events.on('formio.sessionExpired', () => this.logoutError());\n if (!this.config.delayAuth) {\n this.init();\n }\n }\n\n onLoginSubmit(submission: object) {\n this.setUser(submission);\n this.onLogin.emit(submission);\n }\n\n onRegisterSubmit(submission: object) {\n this.setUser(submission);\n this.onRegister.emit(submission);\n }\n\n onResetPassSubmit(submission: object) {\n this.onResetPass.emit(submission);\n }\n\n init() {\n this.projectReady = Formio.makeStaticRequest(this.appConfig.appUrl).then(\n (project: any) => {\n each(project.access, (access: any) => {\n this.formAccess[access.type] = access.roles;\n });\n },\n (): any => {\n this.formAccess = {};\n return null;\n }\n );\n\n // Get the access for this project.\n this.accessReady = Formio.makeStaticRequest(\n this.appConfig.appUrl + '/access'\n ).then(\n (access: any) => {\n each(access.forms, (form: any) => {\n this.submissionAccess[form.name] = {};\n form.submissionAccess.forEach((subAccess: any) => {\n this.submissionAccess[form.name][subAccess.type] = subAccess.roles;\n });\n });\n this.roles = access.roles;\n return access;\n },\n (): any => {\n this.roles = {};\n return null;\n }\n );\n\n let currentUserPromise: Promise<any>;\n if (this.config.oauth) {\n // Make a fix to the hash to remove starting \"/\" that angular might put there.\n if (window.location.hash && window.location.hash.match(/^#\\/access_token/)) {\n history.pushState(null, null, window.location.hash.replace(/^#\\/access_token/, '#access_token'));\n }\n\n // Initiate the SSO if they provide oauth settings.\n currentUserPromise = Formio.ssoInit(this.config.oauth.type, this.config.oauth.options);\n } else {\n currentUserPromise = Formio.currentUser();\n }\n\n this.userReady = currentUserPromise.then((user: any) => {\n this.setUser(user);\n return user;\n });\n\n // Trigger we are redy when all promises have resolved.\n if (this.accessReady) {\n this.accessReady\n .then(() => this.projectReady)\n .then(() => this.userReady)\n .then(() => this.readyResolve(true))\n .catch((err: any) => this.readyReject(err));\n }\n }\n\n setUser(user: any) {\n const namespace = Formio.namespace || 'formio';\n if (user) {\n this.user = user;\n localStorage.setItem(`${namespace}AppUser`, JSON.stringify(user));\n this.setUserRoles();\n } else {\n this.user = null;\n this.is = {};\n localStorage.removeItem(`${namespace}AppUser`);\n Formio.clearCache();\n Formio.setUser(null);\n }\n\n this.authenticated = !!Formio.getToken();\n this.onUser.emit(this.user);\n }\n\n setUserRoles() {\n if (this.accessReady) {\n this.accessReady.then(() => {\n each(this.roles, (role: any, roleName: string) => {\n if (this.user.roles.indexOf(role._id) !== -1) {\n this.is[roleName] = true;\n }\n });\n });\n }\n }\n\n logoutError() {\n this.setUser(null);\n const namespace = Formio.namespace || 'formio';\n localStorage.removeItem(`${namespace}Token`);\n this.onError.emit();\n }\n\n logout() {\n this.setUser(null);\n const namespace = Formio.namespace || 'formio';\n if(localStorage.getItem(`${namespace}LogoutAuthUrl`)) {\n window.open(localStorage.getItem(`${namespace}LogoutAuthUrl`), null, 'width=1020,height=618');\n localStorage.removeItem(`${namespace}LogoutAuthUrl`)\n }\n this.handleLogout(namespace);\n }\n\n handleLogout(namespace) {\n localStorage.removeItem(`${namespace}Token`);\n Formio.logout()\n .then(() => this.onLogout.emit())\n .catch(() => this.logoutError());\n }\n}\n","import { Component } from '@angular/core';\n@Component({\n templateUrl: './auth.component.html'\n})\nexport class FormioAuthComponent {}\n","<div class=\"card card-primary panel panel-default\">\n <div class=\"card-header panel-heading\">\n <ul class=\"nav nav-tabs card-header-tabs\">\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"login\" routerLinkActive=\"active\">Login</a></li>\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"register\" routerLinkActive=\"active\">Register</a></li>\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"resetpass\" routerLinkActive=\"active\">Reset Password</a></li>\n </ul>\n </div>\n <div class=\"card-body panel-body\">\n <router-outlet></router-outlet>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { FormioAuthService } from '../auth.service';\n@Component({\n templateUrl: './login.component.html'\n})\nexport class FormioAuthLoginComponent {\n constructor(public service: FormioAuthService) {}\n}\n","<formio [src]=\"service.loginForm\" (submit)=\"service.onLoginSubmit($event)\"></formio>\n","import { Component } from '@angular/core';\nimport { FormioAuthService } from '../auth.service';\n@Component({\n templateUrl: './register.component.html'\n})\nexport class FormioAuthRegisterComponent {\n constructor(public service: FormioAuthService) {}\n}\n","<formio [src]=\"service.registerForm\" (submit)=\"service.onRegisterSubmit($event)\"></formio>\n","import { Component } from '@angular/core';\nimport { FormioAuthService } from '../auth.service';\n@Component({\n templateUrl: './resetpass.component.html'\n})\nexport class FormioResetPassComponent {\n constructor(public service: FormioAuthService) {}\n}\n","<formio [src]=\"service.resetPassForm\" (submit)=\"service.onResetPassSubmit($event)\"></formio>\n","import { Routes } from '@angular/router';\nimport { FormioAuthRouteConfig } from './auth.config';\nimport { FormioAuthComponent } from './auth.component';\nimport { FormioAuthLoginComponent } from './login/login.component';\nimport { FormioAuthRegisterComponent } from './register/register.component';\nimport { FormioResetPassComponent } from './resetpass/resetpass.component';\n\nexport function FormioAuthRoutes(config?: FormioAuthRouteConfig): Routes {\n return [\n {\n path: '',\n component: config && config.auth ? config.auth : FormioAuthComponent,\n children: [\n {\n path: '',\n redirectTo: 'login',\n pathMatch: 'full'\n },\n {\n path: 'login',\n component: config && config.login ? config.login : FormioAuthLoginComponent\n },\n {\n path: 'register',\n component: config && config.register ? config.register : FormioAuthRegisterComponent\n },\n {\n path: 'resetpass',\n component: config && config.resetpass ? config.resetpass : FormioResetPassComponent\n }\n ]\n }\n ];\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { FormioModule } from '@formio/angular';\nimport { FormioAuthComponent } from './auth.component';\nimport { FormioAuthLoginComponent } from './login/login.component';\nimport { FormioAuthRegisterComponent } from './register/register.component';\nimport { FormioResetPassComponent } from './resetpass/resetpass.component';\nimport { FormioAuthRouteConfig } from './auth.config';\nimport { FormioAuthRoutes } from './auth.routes';\nimport { extendRouter } from '@formio/angular';\n\n@NgModule({\n imports: [\n CommonModule,\n FormioModule,\n RouterModule\n ],\n declarations: [\n FormioAuthComponent,\n FormioAuthLoginComponent,\n FormioAuthRegisterComponent,\n FormioResetPassComponent\n ]\n})\nexport class FormioAuth {\n static forRoot(config?: FormioAuthRouteConfig): any {\n return extendRouter(FormioAuth, config, FormioAuthRoutes);\n }\n static forChild(config?: FormioAuthRouteConfig): any {\n return extendRouter(FormioAuth, config, FormioAuthRoutes);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.FormioAuthConfig","i1.FormioAuthService"],"mappings":"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"}
1
+ {"version":3,"file":"formio-angular-auth.mjs","sources":["../../../projects/angular-formio/auth/src/auth.config.ts","../../../projects/angular-formio/auth/src/auth.service.ts","../../../projects/angular-formio/auth/src/auth.component.ts","../../../projects/angular-formio/auth/src/auth.component.html","../../../projects/angular-formio/auth/src/login/login.component.ts","../../../projects/angular-formio/auth/src/login/login.component.html","../../../projects/angular-formio/auth/src/register/register.component.ts","../../../projects/angular-formio/auth/src/register/register.component.html","../../../projects/angular-formio/auth/src/resetpass/resetpass.component.ts","../../../projects/angular-formio/auth/src/resetpass/resetpass.component.html","../../../projects/angular-formio/auth/src/auth.routes.ts","../../../projects/angular-formio/auth/src/auth.module.ts","../../../projects/angular-formio/auth/src/formio-angular-auth.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nexport interface FormioAuthFormConfig {\n path?: string;\n form?: string;\n component?: any;\n}\n\nexport interface FormioAuthRouteConfig {\n auth?: any;\n login?: any;\n register?: any;\n resetpass?: any;\n}\n\n@Injectable()\nexport class FormioAuthConfig {\n component?: any;\n delayAuth?: any;\n login?: FormioAuthFormConfig;\n register?: FormioAuthFormConfig;\n resetpass?: FormioAuthFormConfig;\n oauth?: FormioOAuthConfig;\n}\n\n\nexport interface FormioOAuthConfig {\n type: FormioOauthType;\n options: FormioOktaConfig | FormioSamlConfig;\n}\n\nexport enum FormioOauthType {\n okta = 'okta',\n saml = 'saml',\n}\n\nexport interface FormioOktaConfig extends OktaConfig {\n formio?: any;\n}\n\nexport interface FormioSamlConfig {\n relay: string;\n}\n\n// for more details about Okta configuration options see https://github.com/okta/okta-auth-js#configuration-reference\nexport interface OktaConfig {\n url?: string;\n tokenManager?: OktaTokenManagerConfig;\n issuer?: string;\n clientId?: string;\n redirectUri?: string;\n postLogoutRedirectUri?: string;\n pkce?: boolean;\n authorizeUrl?: string;\n userinfoUrl?: string;\n tokenUrl?: string;\n ignoreSignature?: boolean;\n maxClockSkew?: number;\n scopes?: string[];\n httpRequestClient?: Function;\n}\n\nexport interface OktaTokenManagerConfig {\n storage?: string | {\n getItem?: Function;\n setItem?: Function;\n };\n secure?: boolean;\n autoRenew?: boolean;\n expireEarlySeconds?: number;\n storageKey?: string;\n}\n","import { EventEmitter, Injectable, Inject } from '@angular/core';\nimport { FormioAuthConfig } from './auth.config';\nimport { FormioAppConfig } from '@formio/angular';\nimport { get, each } from 'lodash';\nimport { Formio } from 'formiojs';\n\n@Injectable()\nexport class FormioAuthService {\n public user: any;\n public authenticated = false;\n\n public loginForm: string;\n public onLogin: EventEmitter<object>;\n public onLogout: EventEmitter<object>;\n\n public registerForm: string;\n public onRegister: EventEmitter<object>;\n public onUser: EventEmitter<object>;\n public onError: EventEmitter<any>;\n\n public resetPassForm: string;\n public onResetPass: EventEmitter<object>;\n\n public ready: Promise<boolean>;\n public readyResolve: any;\n public readyReject: any;\n\n public projectReady?: Promise<any>;\n public accessReady?: Promise<any>;\n public userReady?: Promise<any>;\n public formAccess: any = {};\n public submissionAccess: any = {};\n public roles: any;\n public is: any = {};\n\n constructor(\n public appConfig: FormioAppConfig,\n public config: FormioAuthConfig\n ) {\n this.user = null;\n\n if (this.appConfig && this.appConfig.appUrl) {\n Formio.setBaseUrl(this.appConfig.apiUrl);\n Formio.setProjectUrl(this.appConfig.appUrl);\n Formio.formOnly = !!this.appConfig.formOnly;\n } else {\n console.error('You must provide an AppConfig within your application!');\n }\n\n this.loginForm =\n this.appConfig.appUrl +\n '/' +\n get(this.config, 'login.form', 'user/login');\n this.registerForm =\n this.appConfig.appUrl +\n '/' +\n get(this.config, 'register.form', 'user/register');\n this.resetPassForm =\n this.appConfig.appUrl +\n '/' +\n get(this.config, 'register.form', 'resetpass');\n this.onLogin = new EventEmitter();\n this.onLogout = new EventEmitter();\n this.onRegister = new EventEmitter();\n this.onUser = new EventEmitter();\n this.onError = new EventEmitter();\n\n this.ready = new Promise((resolve: any, reject: any) => {\n this.readyResolve = resolve;\n this.readyReject = reject;\n });\n\n // Register for the core events.\n Formio.events.on('formio.badToken', () => this.logoutError());\n Formio.events.on('formio.sessionExpired', () => this.logoutError());\n if (!this.config.delayAuth) {\n this.init();\n }\n }\n\n onLoginSubmit(submission: object) {\n this.setUser(submission);\n this.onLogin.emit(submission);\n }\n\n onRegisterSubmit(submission: object) {\n this.setUser(submission);\n this.onRegister.emit(submission);\n }\n\n onResetPassSubmit(submission: object) {\n this.onResetPass.emit(submission);\n }\n\n init() {\n this.projectReady = Formio.makeStaticRequest(this.appConfig.appUrl).then(\n (project: any) => {\n each(project.access, (access: any) => {\n this.formAccess[access.type] = access.roles;\n });\n },\n (): any => {\n this.formAccess = {};\n return null;\n }\n );\n\n // Get the access for this project.\n this.accessReady = Formio.makeStaticRequest(\n this.appConfig.appUrl + '/access'\n ).then(\n (access: any) => {\n each(access.forms, (form: any) => {\n this.submissionAccess[form.name] = {};\n form.submissionAccess.forEach((subAccess: any) => {\n this.submissionAccess[form.name][subAccess.type] = subAccess.roles;\n });\n });\n this.roles = access.roles;\n return access;\n },\n (): any => {\n this.roles = {};\n return null;\n }\n );\n\n let currentUserPromise: Promise<any>;\n if (this.config.oauth) {\n // Make a fix to the hash to remove starting \"/\" that angular might put there.\n if (window.location.hash && window.location.hash.match(/^#\\/access_token/)) {\n history.pushState(null, null, window.location.hash.replace(/^#\\/access_token/, '#access_token'));\n }\n\n // Initiate the SSO if they provide oauth settings.\n currentUserPromise = Formio.ssoInit(this.config.oauth.type, this.config.oauth.options);\n } else {\n currentUserPromise = Formio.currentUser();\n }\n\n this.userReady = currentUserPromise.then((user: any) => {\n this.setUser(user);\n return user;\n });\n\n // Trigger we are redy when all promises have resolved.\n if (this.accessReady) {\n this.accessReady\n .then(() => this.projectReady)\n .then(() => this.userReady)\n .then(() => this.readyResolve(true))\n .catch((err: any) => this.readyReject(err));\n }\n }\n\n setUser(user: any) {\n const namespace = Formio.namespace || 'formio';\n if (user) {\n this.user = user;\n localStorage.setItem(`${namespace}AppUser`, JSON.stringify(user));\n this.setUserRoles();\n } else {\n this.user = null;\n this.is = {};\n localStorage.removeItem(`${namespace}AppUser`);\n Formio.clearCache();\n Formio.setUser(null);\n }\n\n this.authenticated = !!Formio.getToken();\n this.onUser.emit(this.user);\n }\n\n setUserRoles() {\n if (this.accessReady) {\n this.accessReady.then(() => {\n each(this.roles, (role: any, roleName: string) => {\n if (this.user.roles.indexOf(role._id) !== -1) {\n this.is[roleName] = true;\n }\n });\n });\n }\n }\n\n logoutError() {\n this.setUser(null);\n const namespace = Formio.namespace || 'formio';\n localStorage.removeItem(`${namespace}Token`);\n this.onError.emit();\n }\n\n logout() {\n this.setUser(null);\n const namespace = Formio.namespace || 'formio';\n if(localStorage.getItem(`${namespace}LogoutAuthUrl`)) {\n window.open(localStorage.getItem(`${namespace}LogoutAuthUrl`), null, 'width=1020,height=618');\n localStorage.removeItem(`${namespace}LogoutAuthUrl`)\n }\n this.handleLogout(namespace);\n }\n\n handleLogout(namespace) {\n localStorage.removeItem(`${namespace}Token`);\n Formio.logout()\n .then(() => this.onLogout.emit())\n .catch(() => this.logoutError());\n }\n}\n","import { Component } from '@angular/core';\n@Component({\n templateUrl: './auth.component.html'\n})\nexport class FormioAuthComponent {}\n","<div class=\"card card-primary panel panel-default\">\n <div class=\"card-header panel-heading\">\n <ul class=\"nav nav-tabs card-header-tabs\">\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"login\" routerLinkActive=\"active\">Login</a></li>\n <li class=\"nav-item\" role=\"presentation\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"register\" routerLinkActive=\"active\">Register</a></li>\n </ul>\n </div>\n <div class=\"card-body panel-body\">\n <router-outlet></router-outlet>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { FormioAuthService } from '../auth.service';\n@Component({\n templateUrl: './login.component.html'\n})\nexport class FormioAuthLoginComponent {\n constructor(public service: FormioAuthService) {}\n}\n","<formio [src]=\"service.loginForm\" (submit)=\"service.onLoginSubmit($event)\"></formio>\n","import { Component } from '@angular/core';\nimport { FormioAuthService } from '../auth.service';\n@Component({\n templateUrl: './register.component.html'\n})\nexport class FormioAuthRegisterComponent {\n constructor(public service: FormioAuthService) {}\n}\n","<formio [src]=\"service.registerForm\" (submit)=\"service.onRegisterSubmit($event)\"></formio>\n","import { Component } from '@angular/core';\nimport { FormioAuthService } from '../auth.service';\n@Component({\n templateUrl: './resetpass.component.html'\n})\nexport class FormioResetPassComponent {\n constructor(public service: FormioAuthService) {}\n}\n","<formio [src]=\"service.resetPassForm\" (submit)=\"service.onResetPassSubmit($event)\"></formio>\n","import { Routes } from '@angular/router';\nimport { FormioAuthRouteConfig } from './auth.config';\nimport { FormioAuthComponent } from './auth.component';\nimport { FormioAuthLoginComponent } from './login/login.component';\nimport { FormioAuthRegisterComponent } from './register/register.component';\nimport { FormioResetPassComponent } from './resetpass/resetpass.component';\n\nexport function FormioAuthRoutes(config?: FormioAuthRouteConfig): Routes {\n return [\n {\n path: '',\n component: config && config.auth ? config.auth : FormioAuthComponent,\n children: [\n {\n path: '',\n redirectTo: 'login',\n pathMatch: 'full'\n },\n {\n path: 'login',\n component: config && config.login ? config.login : FormioAuthLoginComponent\n },\n {\n path: 'register',\n component: config && config.register ? config.register : FormioAuthRegisterComponent\n },\n {\n path: 'resetpass',\n component: config && config.resetpass ? config.resetpass : FormioResetPassComponent\n }\n ]\n }\n ];\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { FormioModule } from '@formio/angular';\nimport { FormioAuthComponent } from './auth.component';\nimport { FormioAuthLoginComponent } from './login/login.component';\nimport { FormioAuthRegisterComponent } from './register/register.component';\nimport { FormioResetPassComponent } from './resetpass/resetpass.component';\nimport { FormioAuthRouteConfig } from './auth.config';\nimport { FormioAuthRoutes } from './auth.routes';\nimport { extendRouter } from '@formio/angular';\n\n@NgModule({\n imports: [\n CommonModule,\n FormioModule,\n RouterModule\n ],\n declarations: [\n FormioAuthComponent,\n FormioAuthLoginComponent,\n FormioAuthRegisterComponent,\n FormioResetPassComponent\n ]\n})\nexport class FormioAuth {\n static forRoot(config?: FormioAuthRouteConfig): any {\n return extendRouter(FormioAuth, config, FormioAuthRoutes);\n }\n static forChild(config?: FormioAuthRouteConfig): any {\n return extendRouter(FormioAuth, config, FormioAuthRoutes);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.FormioAuthConfig","i1.FormioAuthService"],"mappings":"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"}