@wertzui/ngx-restworld-client 12.1.2 → 12.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/restworld-form/restworld-form.component.mjs +11 -2
- package/esm2022/lib/models/events.mjs +1 -1
- package/esm2022/lib/views/restworld-edit-view/restworld-edit-view.component.mjs +25 -14
- package/fesm2022/wertzui-ngx-restworld-client.mjs +29 -10
- package/fesm2022/wertzui-ngx-restworld-client.mjs.map +1 -1
- package/lib/components/restworld-form/restworld-form.component.d.ts +2 -4
- package/lib/components/restworld-form/restworld-form.component.d.ts.map +1 -1
- package/lib/models/events.d.ts +31 -0
- package/lib/models/events.d.ts.map +1 -1
- package/lib/views/restworld-edit-view/restworld-edit-view.component.d.ts +8 -3
- package/lib/views/restworld-edit-view/restworld-edit-view.component.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -173,13 +173,22 @@ export class RestWorldFormComponent {
|
|
|
173
173
|
}
|
|
174
174
|
this._messageService.add({ severity: 'error', summary: summary, detail: detail, data: response, sticky: true });
|
|
175
175
|
}
|
|
176
|
+
else if (response.status == 201) {
|
|
177
|
+
if (!response.headers.has('Location')) {
|
|
178
|
+
this._messageService.add({ severity: 'error', summary: 'Error', detail: 'The server returned a 201 Created response, but did not return a Location header.', data: response, sticky: true });
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
this._messageService.add({ severity: 'success', summary: 'Created', detail: 'The resource has been created.' });
|
|
182
|
+
var createdAtUri = response.headers.get('Location');
|
|
183
|
+
this.afterSubmit.emit({ location: createdAtUri, status: 201 });
|
|
184
|
+
}
|
|
176
185
|
else {
|
|
177
186
|
const templateBeforeSubmit = this.template;
|
|
178
187
|
const responseResource = response.body;
|
|
179
188
|
this.template = responseResource.getTemplateByTitle(this.template.title);
|
|
180
189
|
this._formGroup = this._formService.createFormGroupFromTemplate(this.template);
|
|
181
190
|
this._messageService.add({ severity: 'success', summary: 'Saved', detail: 'The resource has been saved.' });
|
|
182
|
-
this.afterSubmit.emit({ old: templateBeforeSubmit, new: this.template });
|
|
191
|
+
this.afterSubmit.emit({ old: templateBeforeSubmit, new: this.template, status: 200 });
|
|
183
192
|
}
|
|
184
193
|
}
|
|
185
194
|
catch (e) {
|
|
@@ -247,4 +256,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
247
256
|
type: ContentChild,
|
|
248
257
|
args: ['buttons', { static: false }]
|
|
249
258
|
}] } });
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHdvcmxkLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlc3R3b3JsZC1jbGllbnQvc3JjL2xpYi9jb21wb25lbnRzL3Jlc3R3b3JsZC1mb3JtL3Jlc3R3b3JsZC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXN0d29ybGQtY2xpZW50L3NyYy9saWIvY29tcG9uZW50cy9yZXN0d29ybGQtZm9ybS9yZXN0d29ybGQtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQThCLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEcsT0FBTyxFQUE4QixjQUFjLEVBQXNDLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7Ozs7OztBQUt6SDs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLHNCQUFzQjtJQXdHZDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBM0duQjs7T0FFRztJQUVILFFBQVEsQ0FBMkI7SUFHbkMsT0FBTyxDQUFVO0lBR2pCLEdBQUcsQ0FBVTtJQUViOztNQUVFO0lBRUYsV0FBVyxHQUFHLElBQUksQ0FBQztJQUVuQjs7TUFFRTtJQUVGLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFFbkI7O01BRUU7SUFFRixXQUFXLEdBQUcsSUFBSSxDQUFDO0lBRW5COztNQUVFO0lBRUYsVUFBVSxHQUFHLElBQUksQ0FBQztJQUVsQjs7TUFFRTtJQUVGLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFFbEI7O01BRUU7SUFFRixVQUFVLEdBQUcsSUFBSSxDQUFDO0lBR2xCLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFD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QVU7c0JBRFQsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sV0FBVztzQkFEVixNQUFNO2dCQUlQLFdBQVc7c0JBRFYsTUFBTTtnQkFPUCxVQUFVO3NCQURULFlBQVk7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUFycmF5LCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybVNlcnZpY2UsIEZvcm1zUmVzb3VyY2UsIFByb2JsZW1EZXRhaWxzLCBQcm9wZXJ0eUR0bywgU2ltcGxlVmFsdWUsIFRlbXBsYXRlIH0gZnJvbSAnQHdlcnR6dWkvbmd4LWhhbC1jbGllbnQnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBSZXN0V29ybGRDbGllbnQgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXN0d29ybGQtY2xpZW50JztcbmltcG9ydCB7IFJlc3RXb3JsZENsaWVudENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXN0d29ybGQtY2xpZW50LWNvbGxlY3Rpb24nO1xuXG4vKipcbiAqIEEgZm9ybSB3aXRoIFNhdmUsIFJlbG9hZCBhbmQgRGVsZXRlIGJ1dHRvbnMuXG4gKiBJZiB5b3UgZG8gbm90IHdhbnQgYnV0dG9ucywgdXNlIFJlc3RXb3JsZEZvcm1UZW1wbGF0ZUNvbXBvbmVudCA8cnctZm9ybS10ZW1wbGF0ZT4uXG4gKiBZb3UgY2FuIGFsc28gcHJvdmlkZSB5b3VyIG93biBidXR0b25zIGJ5IHBhc3NpbmcgaW4gYSB0ZW1wbGF0ZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnctZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN0d29ybGQtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jlc3R3b3JsZC1mb3JtLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSZXN0V29ybGRGb3JtQ29tcG9uZW50PFRQcm9wZXJ0eUR0b3MgZXh0ZW5kcyBSZWFkb25seUFycmF5PFByb3BlcnR5RHRvPFNpbXBsZVZhbHVlLCBzdHJpbmcsIHN0cmluZz4+PiBpbXBsZW1lbnRzIE9uSW5pdHtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIHRvIHJlbmRlciB0aGUgZm9ybS5cbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHRlbXBsYXRlITogVGVtcGxhdGU8VFByb3BlcnR5RHRvcz47XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgYXBpTmFtZSE6IHN0cmluZztcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICByZWwhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0byBlbmFibGUgdGhlIHN1Ym1pdCBidXR0b24uXG4gICovXG4gIEBJbnB1dCgpXG4gIGFsbG93U3VibWl0ID0gdHJ1ZTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGVuYWJsZSB0aGUgZGVsZXRlIGJ1dHRvbi5cbiAgKi9cbiAgQElucHV0KClcbiAgYWxsb3dEZWxldGUgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gZW5hYmxlIHRoZSByZWxvYWQgYnV0dG9uLlxuICAqL1xuICBASW5wdXQoKVxuICBhbGxvd1JlbG9hZCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0byBzaG93IHRoZSBzdWJtaXQgYnV0dG9uLlxuICAqL1xuICBASW5wdXQoKVxuICBzaG93U3VibWl0ID0gdHJ1ZTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHNob3cgdGhlIGRlbGV0ZSBidXR0b24uXG4gICovXG4gIEBJbnB1dCgpXG4gIHNob3dEZWxldGUgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gc2hvdyB0aGUgcmVsb2FkIGJ1dHRvbi5cbiAgKi9cbiAgQElucHV0KClcbiAgc2hvd1JlbG9hZCA9IHRydWU7XG5cbiAgQE91dHB1dCgpXG4gIGFmdGVyRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBhZnRlclN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8e29sZDogVGVtcGxhdGUsIG5ldzogVGVtcGxhdGV9PigpO1xuXG4gIC8qKlxuICAgKiBBIHJlZmVyZW5jZSB0byBhIHRlbXBsYXRlIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVuZGVyIGN1c3RvbSBidXR0b25zIGZvciB0aGUgZm9ybS5cbiAgKi9cbiAgQENvbnRlbnRDaGlsZCgnYnV0dG9ucycsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBidXR0b25zUmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgc2Nyb2xsVG9GaXJzdFZhbGlkYXRpb25FcnJvcigpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25FcnJvckVsZW1lbnRzID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3J3LXZhbGlkYXRpb24tZXJyb3JzPnZhbC1lcnJvcnM+ZGl2JylcbiAgICAgIGNvbnN0IGZpcnN0RXJyb3IgPSB2YWxpZGF0aW9uRXJyb3JFbGVtZW50c1swXTtcbiAgICAgIGZpcnN0RXJyb3Iuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnY2VudGVyJ30pO1xuICAgIH0sXG4gICAgMTAwKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzTG9hZGluZyA9IGZhbHNlO1xuICBwdWJsaWMgZ2V0IGlzTG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNMb2FkaW5nO1xuICB9XG5cbiAgcHJpdmF0ZSBfZm9ybUdyb3VwPzogRm9ybUdyb3VwPGFueT47XG4gIHB1YmxpYyBnZXQgZm9ybUdyb3VwKCk6IEZvcm1Hcm91cDxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwO1xuICB9XG5cbiAgcHVibGljIGdldCBjYW5TdWJtaXQoKSA6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFsbG93U3VibWl0ICYmXG4gICAgICB0aGlzLnRlbXBsYXRlLnRhcmdldCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAhdGhpcy5pc0xvYWRpbmcgJiZcbiAgICAgIHRoaXMuZm9ybUdyb3VwICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnZhbGlkO1xuICB9XG5cbiAgcHVibGljIGdldCBjYW5EZWxldGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWxsb3dEZWxldGUgJiZcbiAgICAgIHRoaXMudGVtcGxhdGUudGFyZ2V0ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMudGVtcGxhdGUubWV0aG9kID09IFwiUFVUXCIgJiZcbiAgICAgICF0aGlzLmlzTG9hZGluZztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2FuUmVsb2FkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFsbG93UmVsb2FkICYmXG4gICAgICB0aGlzLnRlbXBsYXRlLnRhcmdldCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICB0aGlzLnRlbXBsYXRlLnRpdGxlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMudGVtcGxhdGUucHJvcGVydGllcy5zb21lKHAgPT4gcC5uYW1lID09PSBcImlkXCIgJiYgcC52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHAudmFsdWUgIT09IG51bGwgJiYgcC52YWx1ZSAhPT0gMCkgJiZcbiAgICAgICF0aGlzLmlzTG9hZGluZztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NsaWVudHM6IFJlc3RXb3JsZENsaWVudENvbGxlY3Rpb24sXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZm9ybVNlcnZpY2U6IEZvcm1TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9mb3JtR3JvdXAgPSB0aGlzLl9mb3JtU2VydmljZS5jcmVhdGVGb3JtR3JvdXBGcm9tVGVtcGxhdGUodGhpcy50ZW1wbGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVsb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5jYW5SZWxvYWQpXG4gICAgICByZXR1cm47XG5cbiAgICB0aGlzLl9pc0xvYWRpbmcgPSB0cnVlO1xuXG4gICAgdHJ5XG4gICAge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmdldENsaWVudCgpLmdldEZvcm0odGhpcy50ZW1wbGF0ZS50YXJnZXQhKTtcbiAgICAgIGlmICghcmVzcG9uc2Uub2sgfHwgUHJvYmxlbURldGFpbHMuaXNQcm9ibGVtRGV0YWlscyhyZXNwb25zZS5ib2R5KSB8fCAhcmVzcG9uc2UuYm9keSkge1xuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0Vycm9yJywgZGV0YWlsOiAnRXJyb3Igd2hpbGUgbG9hZGluZyB0aGUgcmVzb3VyY2UgZnJvbSB0aGUgQVBJLicsIGRhdGE6IHJlc3BvbnNlLCBzdGlja3k6IHRydWUgfSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZSA9IHJlc3BvbnNlLmJvZHkuZ2V0VGVtcGxhdGVCeVRpdGxlKHRoaXMudGVtcGxhdGUudGl0bGUhKSBhcyBUZW1wbGF0ZTxUUHJvcGVydHlEdG9zPjtcbiAgICAgICAgdGhpcy5fZm9ybUdyb3VwID0gdGhpcy5fZm9ybVNlcnZpY2UuY3JlYXRlRm9ybUdyb3VwRnJvbVRlbXBsYXRlKHRoaXMudGVtcGxhdGUpO1xuICAgICAgfVxuICAgIH1cbiAgICBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdFcnJvcicsIGRldGFpbDogYEFuIHVua25vd24gZXJyb3Igb2NjdXJyZWQuICR7SlNPTi5zdHJpbmdpZnkoZSl9YCwgc3RpY2t5OiB0cnVlIH0pO1xuICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgfVxuXG4gICAgdGhpcy5faXNMb2FkaW5nID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc2hvd0RlbGV0ZUNvbmZpcm1hdGlvTW9kYWwoKSB7XG4gICAgdGhpcy5fY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKHtcbiAgICAgIG1lc3NhZ2U6ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgcmVzb3VyY2U/JyxcbiAgICAgIGhlYWRlcjogJ0NvbmZpcm0gZGVsZXRlJyxcbiAgICAgIGljb246ICdmYXIgZmEtdHJhc2gtYWx0JyxcbiAgICAgIGFjY2VwdDogKCkgPT4gdGhpcy5kZWxldGUoKVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHN1Ym1pdCgpIHtcbiAgICBpZiggdGhpcy5mb3JtR3JvdXAgIT09IHVuZGVmaW5lZClcbiAgICB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5tYXJrQWxsQXNUb3VjaGVkKCk7XG5cbiAgICAgIGlmICghdGhpcy5mb3JtR3JvdXAudmFsaWQpIHtcbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICBzdW1tYXJ5OiAnRXJyb3InLFxuICAgICAgICAgIGRldGFpbDogJ1BsZWFzZSBjb3JyZWN0IHRoZSBlcnJvcnMgYmVmb3JlIHN1Ym1pdHRpbmcuJyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zY3JvbGxUb0ZpcnN0VmFsaWRhdGlvbkVycm9yKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYoIXRoaXMuY2FuU3VibWl0KVxuICAgICAgcmV0dXJuO1xuXG4gICAgdGhpcy5faXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuZ2V0Q2xpZW50KCkuc3VibWl0KHRoaXMudGVtcGxhdGUsIHRoaXMuZm9ybUdyb3VwIS52YWx1ZSk7XG5cbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgbGV0IHN1bW1hcnkgPSAnRXJyb3InO1xuICAgICAgICBsZXQgZGV0YWlsID0gJ0Vycm9yIHdoaWxlIHNhdmluZyB0aGUgcmVzb3VyY2UuJztcbiAgICAgICAgaWYgKFByb2JsZW1EZXRhaWxzLmlzUHJvYmxlbURldGFpbHMocmVzcG9uc2UuYm9keSkpIHtcbiAgICAgICAgICBjb25zdCBwcm9ibGVtRGV0YWlscyA9IHJlc3BvbnNlLmJvZHkgYXMgUHJvYmxlbURldGFpbHM7XG4gICAgICAgICAgc3VtbWFyeSA9IHByb2JsZW1EZXRhaWxzLnRpdGxlIHx8IHN1bW1hcnk7XG4gICAgICAgICAgZGV0YWlsID0gcHJvYmxlbURldGFpbHMuZGV0YWlsIHx8IGRldGFpbDtcbiAgICAgICAgICAvLyBkaXNwbGF5IHZhbGlkYXRpb24gZXJyb3JzXG4gICAgICAgICAgaWYgKHByb2JsZW1EZXRhaWxzWydlcnJvcnMnXSBhcyB7fSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCBlcnJvcnNGb3JLZXldIG9mIE9iamVjdC5lbnRyaWVzKHByb2JsZW1EZXRhaWxzWydlcnJvcnMnXSBhcyB7fSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IGtleS5zcGxpdCgvXFwufFxcWy8pLm1hcChlID0+IGUucmVwbGFjZShcIl1cIiwgXCJcIikpO1xuICAgICAgICAgICAgICAvLyBUaGUgcGF0aCBtaWdodCBzdGFydCB3aXRoIGEgJCwgaW5kaWNhdGluZyB0aGUgcm9vdC5cbiAgICAgICAgICAgICAgaWYgKHBhdGgubGVuZ3RoID4gMCAmJiBwYXRoWzBdID09PSAnJCcpXG4gICAgICAgICAgICAgICAgcGF0aC5zaGlmdCgpO1xuICAgICAgICAgICAgICBjb25zdCBmb3JtQ29udHJvbCA9IHBhdGgucmVkdWNlPEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZD4oUmVzdFdvcmxkRm9ybUNvbXBvbmVudC5nZXRTdWJDb250cm9sLCB0aGlzLmZvcm1Hcm91cCk7XG4gICAgICAgICAgICAgIGlmIChmb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sLnNldEVycm9ycyh7IC4uLmZvcm1Db250cm9sLmVycm9ycywgLi4ueyByZW1vdGU6IGVycm9yc0ZvcktleSB9IH0pO1xuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiBzdW1tYXJ5LCBkZXRhaWw6IGRldGFpbCwgZGF0YTogcmVzcG9uc2UsIHN0aWNreTogdHJ1ZSB9KTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZUJlZm9yZVN1Ym1pdCA9IHRoaXMudGVtcGxhdGU7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlUmVzb3VyY2UgPSAocmVzcG9uc2UuYm9keSBhcyBGb3Jtc1Jlc291cmNlKTtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZSA9IHJlc3BvbnNlUmVzb3VyY2UuZ2V0VGVtcGxhdGVCeVRpdGxlKHRoaXMudGVtcGxhdGUudGl0bGUhKSBhcyBUZW1wbGF0ZTxUUHJvcGVydHlEdG9zPjtcbiAgICAgICAgdGhpcy5fZm9ybUdyb3VwID0gdGhpcy5fZm9ybVNlcnZpY2UuY3JlYXRlRm9ybUdyb3VwRnJvbVRlbXBsYXRlKHRoaXMudGVtcGxhdGUpO1xuXG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdTYXZlZCcsIGRldGFpbDogJ1RoZSByZXNvdXJjZSBoYXMgYmVlbiBzYXZlZC4nIH0pO1xuXG4gICAgICAgIHRoaXMuYWZ0ZXJTdWJtaXQuZW1pdCh7b2xkOiB0ZW1wbGF0ZUJlZm9yZVN1Ym1pdCwgbmV3OiB0aGlzLnRlbXBsYXRlfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0Vycm9yJywgZGV0YWlsOiBgQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZC4gJHtKU09OLnN0cmluZ2lmeShlKX1gLCBzdGlja3k6IHRydWUgfSk7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICB9XG5cbiAgICB0aGlzLl9pc0xvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZWxldGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmNhbkRlbGV0ZSlcbiAgICAgIHJldHVybjtcblxuICAgIGlmICh0aGlzLmZvcm1Hcm91cCA9PT0gdW5kZWZpbmVkKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZm9ybUdyb3VwIGNhbm5vdCBiZSB1bmRlZmluZWQuXCIpO1xuXG4gICAgYXdhaXQgdGhpcy5nZXRDbGllbnQoKS5kZWxldGVCeVRlbXBsYXRlQW5kRm9ybSh0aGlzLnRlbXBsYXRlLCB0aGlzLmZvcm1Hcm91cCk7XG4gICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ0RlbGV0ZWQnLCBkZXRhaWw6ICdUaGUgcmVzb3VyY2UgaGFzIGJlZW4gZGVsZXRlZC4nIH0pXG5cbiAgICB0aGlzLmFmdGVyRGVsZXRlLmVtaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldFN1YkNvbnRyb2woY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgdW5kZWZpbmVkLCBwYXRoRWxlbWVudDogc3RyaW5nKTogQWJzdHJhY3RDb250cm9sIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAocGF0aEVsZW1lbnQgPT09IFwiXCIpXG4gICAgICByZXR1cm4gY29udHJvbDtcblxuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Hcm91cClcbiAgICAgIHJldHVybiBjb250cm9sLmNvbnRyb2xzW3BhdGhFbGVtZW50XTtcblxuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1BcnJheSkge1xuICAgICAgY29uc3QgaW5kZXggPSBOdW1iZXIucGFyc2VJbnQocGF0aEVsZW1lbnQpO1xuICAgICAgaWYgKE51bWJlci5pc0ludGVnZXIoaW5kZXgpKVxuICAgICAgICByZXR1cm4gY29udHJvbC5jb250cm9sc1tpbmRleF07XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRyb2w7XG4gIH1cblxuICBwcml2YXRlIGdldENsaWVudCgpOiBSZXN0V29ybGRDbGllbnQge1xuICAgIHJldHVybiB0aGlzLl9jbGllbnRzLmdldENsaWVudCh0aGlzLmFwaU5hbWUpO1xuICB9XG59XG4iLCI8Zm9ybSAqbmdJZj1cImZvcm1Hcm91cCAhPT0gdW5kZWZpbmVkICYmIHRlbXBsYXRlICE9PSB1bmRlZmluZWRcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIChuZ1N1Ym1pdCk9XCJzdWJtaXQoKVwiPlxuICA8ZGl2IGNsYXNzPVwiYmxvY2thYmxlLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJibG9ja2FibGUtZWxlbWVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZmllbGRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtZDpjb2wtMTAgbWQ6Y29sLW9mZnNldC0yXCI+XG4gICAgICAgICAgPHJ3LXZhbGlkYXRpb24tZXJyb3JzIFtmb3JtXT1cImZvcm1Hcm91cFwiPjwvcnctdmFsaWRhdGlvbi1lcnJvcnM+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8cnctaW5wdXQtdGVtcGxhdGUgW3RlbXBsYXRlXT1cInRlbXBsYXRlXCIgW2FwaU5hbWVdPVwiYXBpTmFtZVwiPjwvcnctaW5wdXQtdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImJsb2NrYWJsZS1vdmVybGF5XCIgKm5nSWY9XCJpc0xvYWRpbmdcIj5cbiAgICAgIDxwLXByb2dyZXNzU3Bpbm5lcj48L3AtcHJvZ3Jlc3NTcGlubmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgdy1mdWxsXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEJ1dHRvbnM+XG4gICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgdHlwZT1cInN1Ym1pdFwiIGxhYmVsPVwiU2F2ZVwiIGljb249XCJmYXIgZmEtc2F2ZVwiIGNsYXNzPVwibXgtMiBwLWJ1dHRvbi1zdWNjZXNzXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhYWxsb3dTdWJtaXRcIj48L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgbGFiZWw9XCJSZWxvYWRcIiBpY29uPVwiZmFzIGZhLXJlZG9cIiBjbGFzcz1cIm14LTIgcC1idXR0b24taW5mb1wiXG4gICAgICAgICAgICAoY2xpY2spPVwicmVsb2FkKClcIiBbZGlzYWJsZWRdPVwiIWNhblJlbG9hZFwiPjwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJidXR0b25cIiBsYWJlbD1cIkRlbGV0ZVwiIGljb249XCJmYXIgZmEtdHJhc2gtYWx0XCIgY2xhc3M9XCJtbC0yIHAtYnV0dG9uLWRhbmdlclwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2hvd0RlbGV0ZUNvbmZpcm1hdGlvTW9kYWwoKVwiIFtkaXNhYmxlZF09XCIhY2FuRGVsZXRlXCI+PC9idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zUmVmIHx8IGRlZmF1bHRCdXR0b25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
|
|
259
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHdvcmxkLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlc3R3b3JsZC1jbGllbnQvc3JjL2xpYi9jb21wb25lbnRzL3Jlc3R3b3JsZC1mb3JtL3Jlc3R3b3JsZC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXN0d29ybGQtY2xpZW50L3NyYy9saWIvY29tcG9uZW50cy9yZXN0d29ybGQtZm9ybS9yZXN0d29ybGQtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQThCLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEcsT0FBTyxFQUE4QixjQUFjLEVBQXNDLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7Ozs7OztBQU16SDs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLHNCQUFzQjtJQXdHZDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBM0duQjs7T0FFRztJQUVILFFBQVEsQ0FBMkI7SUFHbkMsT0FBTyxDQUFVO0lBR2pCLEdBQUcsQ0FBVTtJQUViOztNQUVFO0lBRUYsV0FBVyxHQUFHLElBQUksQ0FBQztJQUVuQjs7TUFFRTtJQUVGLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFFbkI7O01BRUU7SUFFRixXQUFXLEdBQUcsSUFBSSxDQUFDO0lBRW5COztNQUVFO0lBRUYsVUFBVSxHQUFHLElBQUksQ0FBQztJQUVsQjs7TUFFRTtJQUVGLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFFbEI7O01BRUU7SUFFRixVQUFVLEdBQUcsSUFBSSxDQUFDO0lBR2xCLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFD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USxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNDLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3pCLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNsQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxTQUFTO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0MsQ0FBQzt1R0FuUVUsc0JBQXNCOzJGQUF0QixzQkFBc0IsMmJDbEJuQyxvK0NBK0JBOzsyRkRiYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsU0FBUztrT0FTbkIsUUFBUTtzQkFEUCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJekIsT0FBTztzQkFETixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJekIsR0FBRztzQkFERixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFPekIsV0FBVztzQkFEVixLQUFLO2dCQU9OLFdBQVc7c0JBRFYsS0FBSztnQkFPTixXQUFXO3NCQURWLEtBQUs7Z0JBT04sVUFBVTtzQkFEVCxLQUFLO2dCQU9OLFVBQVU7c0JBRFQsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sV0FBVztzQkFEVixNQUFNO2dCQUlQLFdBQVc7c0JBRFYsTUFBTTtnQkFPUCxVQUFVO3NCQURULFlBQVk7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUFycmF5LCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybVNlcnZpY2UsIEZvcm1zUmVzb3VyY2UsIFByb2JsZW1EZXRhaWxzLCBQcm9wZXJ0eUR0bywgU2ltcGxlVmFsdWUsIFRlbXBsYXRlIH0gZnJvbSAnQHdlcnR6dWkvbmd4LWhhbC1jbGllbnQnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBSZXN0V29ybGRDbGllbnQgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXN0d29ybGQtY2xpZW50JztcbmltcG9ydCB7IFJlc3RXb3JsZENsaWVudENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXN0d29ybGQtY2xpZW50LWNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgQWZ0ZXJTdWJtaXRPa0V2ZW50LCBBZnRlclN1Ym1pdFJlZGlyZWN0RXZlbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXZlbnRzJztcblxuLyoqXG4gKiBBIGZvcm0gd2l0aCBTYXZlLCBSZWxvYWQgYW5kIERlbGV0ZSBidXR0b25zLlxuICogSWYgeW91IGRvIG5vdCB3YW50IGJ1dHRvbnMsIHVzZSBSZXN0V29ybGRGb3JtVGVtcGxhdGVDb21wb25lbnQgPHJ3LWZvcm0tdGVtcGxhdGU+LlxuICogWW91IGNhbiBhbHNvIHByb3ZpZGUgeW91ciBvd24gYnV0dG9ucyBieSBwYXNzaW5nIGluIGEgdGVtcGxhdGUuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J3LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVzdHdvcmxkLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZXN0d29ybGQtZm9ybS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVzdFdvcmxkRm9ybUNvbXBvbmVudDxUUHJvcGVydHlEdG9zIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxQcm9wZXJ0eUR0bzxTaW1wbGVWYWx1ZSwgc3RyaW5nLCBzdHJpbmc+Pj4gaW1wbGVtZW50cyBPbkluaXR7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byByZW5kZXIgdGhlIGZvcm0uXG4gICAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICB0ZW1wbGF0ZSE6IFRlbXBsYXRlPFRQcm9wZXJ0eUR0b3M+O1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIGFwaU5hbWUhOiBzdHJpbmc7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcmVsITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gZW5hYmxlIHRoZSBzdWJtaXQgYnV0dG9uLlxuICAqL1xuICBASW5wdXQoKVxuICBhbGxvd1N1Ym1pdCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0byBlbmFibGUgdGhlIGRlbGV0ZSBidXR0b24uXG4gICovXG4gIEBJbnB1dCgpXG4gIGFsbG93RGVsZXRlID0gdHJ1ZTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGVuYWJsZSB0aGUgcmVsb2FkIGJ1dHRvbi5cbiAgKi9cbiAgQElucHV0KClcbiAgYWxsb3dSZWxvYWQgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gc2hvdyB0aGUgc3VibWl0IGJ1dHRvbi5cbiAgKi9cbiAgQElucHV0KClcbiAgc2hvd1N1Ym1pdCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0byBzaG93IHRoZSBkZWxldGUgYnV0dG9uLlxuICAqL1xuICBASW5wdXQoKVxuICBzaG93RGVsZXRlID0gdHJ1ZTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHNob3cgdGhlIHJlbG9hZCBidXR0b24uXG4gICovXG4gIEBJbnB1dCgpXG4gIHNob3dSZWxvYWQgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKVxuICBhZnRlckRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgYWZ0ZXJTdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPEFmdGVyU3VibWl0T2tFdmVudCB8IEFmdGVyU3VibWl0UmVkaXJlY3RFdmVudD4oKTtcblxuICAvKipcbiAgICogQSByZWZlcmVuY2UgdG8gYSB0ZW1wbGF0ZSB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlbmRlciBjdXN0b20gYnV0dG9ucyBmb3IgdGhlIGZvcm0uXG4gICovXG4gIEBDb250ZW50Q2hpbGQoJ2J1dHRvbnMnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgYnV0dG9uc1JlZj86IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIHNjcm9sbFRvRmlyc3RWYWxpZGF0aW9uRXJyb3IoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uRXJyb3JFbGVtZW50cyA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdydy12YWxpZGF0aW9uLWVycm9ycz52YWwtZXJyb3JzPmRpdicpXG4gICAgICBjb25zdCBmaXJzdEVycm9yID0gdmFsaWRhdGlvbkVycm9yRWxlbWVudHNbMF07XG4gICAgICBmaXJzdEVycm9yLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnLCBibG9jazogJ2NlbnRlcid9KTtcbiAgICB9LFxuICAgIDEwMCk7XG4gIH1cblxuICBwcml2YXRlIF9pc0xvYWRpbmcgPSBmYWxzZTtcbiAgcHVibGljIGdldCBpc0xvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzTG9hZGluZztcbiAgfVxuXG4gIHByaXZhdGUgX2Zvcm1Hcm91cD86IEZvcm1Hcm91cDxhbnk+O1xuICBwdWJsaWMgZ2V0IGZvcm1Hcm91cCgpOiBGb3JtR3JvdXA8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2FuU3VibWl0KCkgOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hbGxvd1N1Ym1pdCAmJlxuICAgICAgdGhpcy50ZW1wbGF0ZS50YXJnZXQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgIXRoaXMuaXNMb2FkaW5nICYmXG4gICAgICB0aGlzLmZvcm1Hcm91cCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICB0aGlzLmZvcm1Hcm91cC52YWxpZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2FuRGVsZXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFsbG93RGVsZXRlICYmXG4gICAgICB0aGlzLnRlbXBsYXRlLnRhcmdldCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICB0aGlzLnRlbXBsYXRlLm1ldGhvZCA9PSBcIlBVVFwiICYmXG4gICAgICAhdGhpcy5pc0xvYWRpbmc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNhblJlbG9hZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hbGxvd1JlbG9hZCAmJlxuICAgICAgdGhpcy50ZW1wbGF0ZS50YXJnZXQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy50ZW1wbGF0ZS50aXRsZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICB0aGlzLnRlbXBsYXRlLnByb3BlcnRpZXMuc29tZShwID0+IHAubmFtZSA9PT0gXCJpZFwiICYmIHAudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwLnZhbHVlICE9PSBudWxsICYmIHAudmFsdWUgIT09IDApICYmXG4gICAgICAhdGhpcy5pc0xvYWRpbmc7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jbGllbnRzOiBSZXN0V29ybGRDbGllbnRDb2xsZWN0aW9uLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Zvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9ybUdyb3VwID0gdGhpcy5fZm9ybVNlcnZpY2UuY3JlYXRlRm9ybUdyb3VwRnJvbVRlbXBsYXRlKHRoaXMudGVtcGxhdGUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuY2FuUmVsb2FkKVxuICAgICAgcmV0dXJuO1xuXG4gICAgdGhpcy5faXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgIHRyeVxuICAgIHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5nZXRDbGllbnQoKS5nZXRGb3JtKHRoaXMudGVtcGxhdGUudGFyZ2V0ISk7XG4gICAgICBpZiAoIXJlc3BvbnNlLm9rIHx8IFByb2JsZW1EZXRhaWxzLmlzUHJvYmxlbURldGFpbHMocmVzcG9uc2UuYm9keSkgfHwgIXJlc3BvbnNlLmJvZHkpIHtcbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdFcnJvcicsIGRldGFpbDogJ0Vycm9yIHdoaWxlIGxvYWRpbmcgdGhlIHJlc291cmNlIGZyb20gdGhlIEFQSS4nLCBkYXRhOiByZXNwb25zZSwgc3RpY2t5OiB0cnVlIH0pO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMudGVtcGxhdGUgPSByZXNwb25zZS5ib2R5LmdldFRlbXBsYXRlQnlUaXRsZSh0aGlzLnRlbXBsYXRlLnRpdGxlISkgYXMgVGVtcGxhdGU8VFByb3BlcnR5RHRvcz47XG4gICAgICAgIHRoaXMuX2Zvcm1Hcm91cCA9IHRoaXMuX2Zvcm1TZXJ2aWNlLmNyZWF0ZUZvcm1Hcm91cEZyb21UZW1wbGF0ZSh0aGlzLnRlbXBsYXRlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnRXJyb3InLCBkZXRhaWw6IGBBbiB1bmtub3duIGVycm9yIG9jY3VycmVkLiAke0pTT04uc3RyaW5naWZ5KGUpfWAsIHN0aWNreTogdHJ1ZSB9KTtcbiAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgIH1cblxuICAgIHRoaXMuX2lzTG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHNob3dEZWxldGVDb25maXJtYXRpb01vZGFsKCkge1xuICAgIHRoaXMuX2NvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XG4gICAgICBtZXNzYWdlOiAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIHJlc291cmNlPycsXG4gICAgICBoZWFkZXI6ICdDb25maXJtIGRlbGV0ZScsXG4gICAgICBpY29uOiAnZmFyIGZhLXRyYXNoLWFsdCcsXG4gICAgICBhY2NlcHQ6ICgpID0+IHRoaXMuZGVsZXRlKClcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzdWJtaXQoKSB7XG4gICAgaWYoIHRoaXMuZm9ybUdyb3VwICE9PSB1bmRlZmluZWQpXG4gICAge1xuICAgICAgdGhpcy5mb3JtR3JvdXAubWFya0FsbEFzVG91Y2hlZCgpO1xuXG4gICAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLnZhbGlkKSB7XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgc3VtbWFyeTogJ0Vycm9yJyxcbiAgICAgICAgICBkZXRhaWw6ICdQbGVhc2UgY29ycmVjdCB0aGUgZXJyb3JzIGJlZm9yZSBzdWJtaXR0aW5nLicsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2Nyb2xsVG9GaXJzdFZhbGlkYXRpb25FcnJvcigpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmKCF0aGlzLmNhblN1Ym1pdClcbiAgICAgIHJldHVybjtcblxuICAgIHRoaXMuX2lzTG9hZGluZyA9IHRydWU7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmdldENsaWVudCgpLnN1Ym1pdCh0aGlzLnRlbXBsYXRlLCB0aGlzLmZvcm1Hcm91cCEudmFsdWUpO1xuXG4gICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgIGxldCBzdW1tYXJ5ID0gJ0Vycm9yJztcbiAgICAgICAgbGV0IGRldGFpbCA9ICdFcnJvciB3aGlsZSBzYXZpbmcgdGhlIHJlc291cmNlLic7XG4gICAgICAgIGlmIChQcm9ibGVtRGV0YWlscy5pc1Byb2JsZW1EZXRhaWxzKHJlc3BvbnNlLmJvZHkpKSB7XG4gICAgICAgICAgY29uc3QgcHJvYmxlbURldGFpbHMgPSByZXNwb25zZS5ib2R5IGFzIFByb2JsZW1EZXRhaWxzO1xuICAgICAgICAgIHN1bW1hcnkgPSBwcm9ibGVtRGV0YWlscy50aXRsZSB8fCBzdW1tYXJ5O1xuICAgICAgICAgIGRldGFpbCA9IHByb2JsZW1EZXRhaWxzLmRldGFpbCB8fCBkZXRhaWw7XG4gICAgICAgICAgLy8gZGlzcGxheSB2YWxpZGF0aW9uIGVycm9yc1xuICAgICAgICAgIGlmIChwcm9ibGVtRGV0YWlsc1snZXJyb3JzJ10gYXMge30pIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgZXJyb3JzRm9yS2V5XSBvZiBPYmplY3QuZW50cmllcyhwcm9ibGVtRGV0YWlsc1snZXJyb3JzJ10gYXMge30pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBrZXkuc3BsaXQoL1xcLnxcXFsvKS5tYXAoZSA9PiBlLnJlcGxhY2UoXCJdXCIsIFwiXCIpKTtcbiAgICAgICAgICAgICAgLy8gVGhlIHBhdGggbWlnaHQgc3RhcnQgd2l0aCBhICQsIGluZGljYXRpbmcgdGhlIHJvb3QuXG4gICAgICAgICAgICAgIGlmIChwYXRoLmxlbmd0aCA+IDAgJiYgcGF0aFswXSA9PT0gJyQnKVxuICAgICAgICAgICAgICAgIHBhdGguc2hpZnQoKTtcbiAgICAgICAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSBwYXRoLnJlZHVjZTxBYnN0cmFjdENvbnRyb2wgfCB1bmRlZmluZWQ+KFJlc3RXb3JsZEZvcm1Db21wb25lbnQuZ2V0U3ViQ29udHJvbCwgdGhpcy5mb3JtR3JvdXApO1xuICAgICAgICAgICAgICBpZiAoZm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbC5zZXRFcnJvcnMoeyAuLi5mb3JtQ29udHJvbC5lcnJvcnMsIC4uLnsgcmVtb3RlOiBlcnJvcnNGb3JLZXkgfSB9KTtcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogc3VtbWFyeSwgZGV0YWlsOiBkZXRhaWwsIGRhdGE6IHJlc3BvbnNlLCBzdGlja3k6IHRydWUgfSk7XG4gICAgICB9XG4gICAgICBlbHNlIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gMjAxKSB7XG4gICAgICAgIGlmICghcmVzcG9uc2UuaGVhZGVycy5oYXMoJ0xvY2F0aW9uJykpIHtcbiAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0Vycm9yJywgZGV0YWlsOiAnVGhlIHNlcnZlciByZXR1cm5lZCBhIDIwMSBDcmVhdGVkIHJlc3BvbnNlLCBidXQgZGlkIG5vdCByZXR1cm4gYSBMb2NhdGlvbiBoZWFkZXIuJywgZGF0YTogcmVzcG9uc2UsIHN0aWNreTogdHJ1ZSB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnQ3JlYXRlZCcsIGRldGFpbDogJ1RoZSByZXNvdXJjZSBoYXMgYmVlbiBjcmVhdGVkLicgfSk7XG5cbiAgICAgICAgdmFyIGNyZWF0ZWRBdFVyaSA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdMb2NhdGlvbicpITtcbiAgICAgICAgdGhpcy5hZnRlclN1Ym1pdC5lbWl0KHsgbG9jYXRpb246IGNyZWF0ZWRBdFVyaSwgc3RhdHVzOiAyMDEgfSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgdGVtcGxhdGVCZWZvcmVTdWJtaXQgPSB0aGlzLnRlbXBsYXRlO1xuICAgICAgICBjb25zdCByZXNwb25zZVJlc291cmNlID0gKHJlc3BvbnNlLmJvZHkgYXMgRm9ybXNSZXNvdXJjZSk7XG4gICAgICAgIHRoaXMudGVtcGxhdGUgPSByZXNwb25zZVJlc291cmNlLmdldFRlbXBsYXRlQnlUaXRsZSh0aGlzLnRlbXBsYXRlLnRpdGxlISkgYXMgVGVtcGxhdGU8VFByb3BlcnR5RHRvcz47XG4gICAgICAgIHRoaXMuX2Zvcm1Hcm91cCA9IHRoaXMuX2Zvcm1TZXJ2aWNlLmNyZWF0ZUZvcm1Hcm91cEZyb21UZW1wbGF0ZSh0aGlzLnRlbXBsYXRlKTtcblxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnU2F2ZWQnLCBkZXRhaWw6ICdUaGUgcmVzb3VyY2UgaGFzIGJlZW4gc2F2ZWQuJyB9KTtcblxuICAgICAgICB0aGlzLmFmdGVyU3VibWl0LmVtaXQoeyBvbGQ6IHRlbXBsYXRlQmVmb3JlU3VibWl0LCBuZXc6IHRoaXMudGVtcGxhdGUsIHN0YXR1czogMjAwIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdFcnJvcicsIGRldGFpbDogYEFuIHVua25vd24gZXJyb3Igb2NjdXJyZWQuICR7SlNPTi5zdHJpbmdpZnkoZSl9YCwgc3RpY2t5OiB0cnVlIH0pO1xuICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgfVxuXG4gICAgdGhpcy5faXNMb2FkaW5nID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVsZXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5jYW5EZWxldGUpXG4gICAgICByZXR1cm47XG5cbiAgICBpZiAodGhpcy5mb3JtR3JvdXAgPT09IHVuZGVmaW5lZClcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImZvcm1Hcm91cCBjYW5ub3QgYmUgdW5kZWZpbmVkLlwiKTtcblxuICAgIGF3YWl0IHRoaXMuZ2V0Q2xpZW50KCkuZGVsZXRlQnlUZW1wbGF0ZUFuZEZvcm0odGhpcy50ZW1wbGF0ZSwgdGhpcy5mb3JtR3JvdXApO1xuICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdEZWxldGVkJywgZGV0YWlsOiAnVGhlIHJlc291cmNlIGhhcyBiZWVuIGRlbGV0ZWQuJyB9KVxuXG4gICAgdGhpcy5hZnRlckRlbGV0ZS5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRTdWJDb250cm9sKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZCwgcGF0aEVsZW1lbnQ6IHN0cmluZyk6IEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHBhdGhFbGVtZW50ID09PSBcIlwiKVxuICAgICAgcmV0dXJuIGNvbnRyb2w7XG5cbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtR3JvdXApXG4gICAgICByZXR1cm4gY29udHJvbC5jb250cm9sc1twYXRoRWxlbWVudF07XG5cbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtQXJyYXkpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gTnVtYmVyLnBhcnNlSW50KHBhdGhFbGVtZW50KTtcbiAgICAgIGlmIChOdW1iZXIuaXNJbnRlZ2VyKGluZGV4KSlcbiAgICAgICAgcmV0dXJuIGNvbnRyb2wuY29udHJvbHNbaW5kZXhdO1xuICAgIH1cblxuICAgIHJldHVybiBjb250cm9sO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDbGllbnQoKTogUmVzdFdvcmxkQ2xpZW50IHtcbiAgICByZXR1cm4gdGhpcy5fY2xpZW50cy5nZXRDbGllbnQodGhpcy5hcGlOYW1lKTtcbiAgfVxufVxuIiwiPGZvcm0gKm5nSWY9XCJmb3JtR3JvdXAgIT09IHVuZGVmaW5lZCAmJiB0ZW1wbGF0ZSAhPT0gdW5kZWZpbmVkXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiAobmdTdWJtaXQpPVwic3VibWl0KClcIj5cbiAgPGRpdiBjbGFzcz1cImJsb2NrYWJsZS1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYmxvY2thYmxlLWVsZW1lbnRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZpZWxkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWQ6Y29sLTEwIG1kOmNvbC1vZmZzZXQtMlwiPlxuICAgICAgICAgIDxydy12YWxpZGF0aW9uLWVycm9ycyBbZm9ybV09XCJmb3JtR3JvdXBcIj48L3J3LXZhbGlkYXRpb24tZXJyb3JzPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHJ3LWlucHV0LXRlbXBsYXRlIFt0ZW1wbGF0ZV09XCJ0ZW1wbGF0ZVwiIFthcGlOYW1lXT1cImFwaU5hbWVcIj48L3J3LWlucHV0LXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJibG9ja2FibGUtb3ZlcmxheVwiICpuZ0lmPVwiaXNMb2FkaW5nXCI+XG4gICAgICA8cC1wcm9ncmVzc1NwaW5uZXI+PC9wLXByb2dyZXNzU3Bpbm5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImdyaWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIHctZnVsbFwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRCdXR0b25zPlxuICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJzdWJtaXRcIiBsYWJlbD1cIlNhdmVcIiBpY29uPVwiZmFyIGZhLXNhdmVcIiBjbGFzcz1cIm14LTIgcC1idXR0b24tc3VjY2Vzc1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWFsbG93U3VibWl0XCI+PC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgdHlwZT1cImJ1dHRvblwiIGxhYmVsPVwiUmVsb2FkXCIgaWNvbj1cImZhcyBmYS1yZWRvXCIgY2xhc3M9XCJteC0yIHAtYnV0dG9uLWluZm9cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlbG9hZCgpXCIgW2Rpc2FibGVkXT1cIiFjYW5SZWxvYWRcIj48L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgbGFiZWw9XCJEZWxldGVcIiBpY29uPVwiZmFyIGZhLXRyYXNoLWFsdFwiIGNsYXNzPVwibWwtMiBwLWJ1dHRvbi1kYW5nZXJcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNob3dEZWxldGVDb25maXJtYXRpb01vZGFsKClcIiBbZGlzYWJsZWRdPVwiIWNhbkRlbGV0ZVwiPjwvYnV0dG9uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uc1JlZiB8fCBkZWZhdWx0QnV0dG9uc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlc3R3b3JsZC1jbGllbnQvc3JjL2xpYi9tb2RlbHMvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gXCJAd2VydHp1aS9uZ3gtaGFsLWNsaWVudFwiO1xyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgdGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuIHRoZSB2YWx1ZSBvZiBhIGRyb3Bkb3duIGNvbXBvbmVudCBjaGFuZ2VzLlxyXG4gKiBAdGVtcGxhdGUgVCBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgdGhhdCBpcyBzZWxlY3RlZCBpbiB0aGUgZHJvcGRvd24uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duQ2hhbmdlRXZlbnQ8VD4ge1xyXG4gIG9yaWdpbmFsRXZlbnQ6IEV2ZW50O1xyXG4gIHZhbHVlOiBUO1xyXG59XHJcblxyXG4vKipcclxuICogRXZlbnQgZW1pdHRlZCBhZnRlciBhIHN1Y2Nlc3NmdWwgc3VibWl0IHdoaWNoIGNoYW5nZWQgdGhlIHRlbXBsYXRlLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBBZnRlclN1Ym1pdE9rRXZlbnQge1xyXG4gIC8qKlxyXG4gICAqIFRoZSB0ZW1wbGF0ZSBiZWZvcmUgdGhlIHN1Ym1pdC5cclxuICAgKi9cclxuICBvbGQ6IFRlbXBsYXRlO1xyXG4gIC8qKlxyXG4gICAqIFRoZSB0ZW1wbGF0ZSBhZnRlciB0aGUgc3VibWl0LlxyXG4gICAqL1xyXG4gIG5ldzogVGVtcGxhdGU7XHJcbiAgLyoqXHJcbiAgICogVGhlIEhUVFAgc3RhdHVzIGNvZGUgb2YgdGhlIHJlc3BvbnNlLlxyXG4gICAqL1xyXG4gIHN0YXR1czogMjAwO1xyXG59XHJcblxyXG4vKipcclxuICogRXZlbnQgZW1pdHRlZCBhZnRlciBhIHN1Y2Nlc3NmdWwgc3VibWl0IHdoaWNoIGNyZWF0ZWQgYSBuZXcgcmVzb3VyY2UuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFmdGVyU3VibWl0UmVkaXJlY3RFdmVudCB7XHJcbiAgLyoqXHJcbiAgICogVGhlIExvY2F0aW9uIGhlYWRlciBvZiB0aGUgcmVzcG9uc2UgaWYgdGhlIHN0YXR1cyBpcyAyMDEuXHJcbiAgICovXHJcbiAgbG9jYXRpb24/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogVGhlIEhUVFAgc3RhdHVzIGNvZGUgb2YgdGhlIHJlc3BvbnNlLlxyXG4gICAqL1xyXG4gIHN0YXR1czogMjAxO1xyXG59XHJcbiJdfQ==
|
|
@@ -5,14 +5,15 @@ import { ContentChild } from '@angular/core';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "../../services/restworld-client-collection";
|
|
7
7
|
import * as i2 from "primeng/api";
|
|
8
|
-
import * as i3 from "
|
|
9
|
-
import * as i4 from "
|
|
10
|
-
import * as i5 from "
|
|
11
|
-
import * as i6 from "primeng/
|
|
12
|
-
import * as i7 from "primeng/
|
|
13
|
-
import * as i8 from "primeng/
|
|
14
|
-
import * as i9 from "
|
|
15
|
-
import * as i10 from "../../components/restworld-
|
|
8
|
+
import * as i3 from "@angular/router";
|
|
9
|
+
import * as i4 from "ngx-valdemort";
|
|
10
|
+
import * as i5 from "@angular/common";
|
|
11
|
+
import * as i6 from "primeng/confirmdialog";
|
|
12
|
+
import * as i7 from "primeng/skeleton";
|
|
13
|
+
import * as i8 from "primeng/tabview";
|
|
14
|
+
import * as i9 from "primeng/toast";
|
|
15
|
+
import * as i10 from "../../components/restworld-form/restworld-form.component";
|
|
16
|
+
import * as i11 from "../../components/restworld-id-navigation/restworld-id-navigation.component";
|
|
16
17
|
/**
|
|
17
18
|
* Component for editing a resource in the RESTworld application.
|
|
18
19
|
* This component loads the forms resource from the API and renders a tab view where every template of the forms resource is rendered as a tab.
|
|
@@ -33,6 +34,7 @@ import * as i10 from "../../components/restworld-id-navigation/restworld-id-navi
|
|
|
33
34
|
export class RESTworldEditViewComponent {
|
|
34
35
|
_clients;
|
|
35
36
|
_messageService;
|
|
37
|
+
_router;
|
|
36
38
|
extraTabsRef;
|
|
37
39
|
idNavigationForm = new FormGroup({
|
|
38
40
|
id: new FormControl(null, Validators.compose([Validators.min(1), Validators.max(Number.MAX_SAFE_INTEGER)]))
|
|
@@ -43,9 +45,10 @@ export class RESTworldEditViewComponent {
|
|
|
43
45
|
return this._templates;
|
|
44
46
|
}
|
|
45
47
|
_resource;
|
|
46
|
-
constructor(_clients, _messageService, valdemortConfig) {
|
|
48
|
+
constructor(_clients, _messageService, _router, valdemortConfig) {
|
|
47
49
|
this._clients = _clients;
|
|
48
50
|
this._messageService = _messageService;
|
|
51
|
+
this._router = _router;
|
|
49
52
|
valdemortConfig.errorClasses = 'p-error text-sm';
|
|
50
53
|
}
|
|
51
54
|
get PropertyType() {
|
|
@@ -71,6 +74,14 @@ export class RESTworldEditViewComponent {
|
|
|
71
74
|
this._uri = value;
|
|
72
75
|
this.load();
|
|
73
76
|
}
|
|
77
|
+
async afterSubmit($event) {
|
|
78
|
+
if ($event.status == 201) {
|
|
79
|
+
await this._router.navigate(['edit', this.apiName, this.rel, $event.location]);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
async afterDelete() {
|
|
83
|
+
await this._router.navigate(['list', this.apiName, this.rel]);
|
|
84
|
+
}
|
|
74
85
|
async load() {
|
|
75
86
|
if (!this.apiName || !this.uri)
|
|
76
87
|
return;
|
|
@@ -101,13 +112,13 @@ export class RESTworldEditViewComponent {
|
|
|
101
112
|
throw new Error('Cannot get a client, because the apiName is not set.');
|
|
102
113
|
return this._clients.getClient(this.apiName);
|
|
103
114
|
}
|
|
104
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: RESTworldEditViewComponent, deps: [{ token: i1.RestWorldClientCollection }, { token: i2.MessageService }, { token: i3.ValdemortConfig }], target: i0.ɵɵFactoryTarget.Component });
|
|
105
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: RESTworldEditViewComponent, selector: "rw-edit", inputs: { apiName: "apiName", rel: "rel", uri: "uri" }, queries: [{ propertyName: "extraTabsRef", first: true, predicate: ["extraTabs"], descendants: true }], ngImport: i0, template: "<div class=\"grid\">\r\n <div class=\"col-12 md:col-10\">\r\n <h1>Edit resource</h1>\r\n </div>\r\n <div class=\"col-12 md:col-2 align-items-center justify-content-end flex\">\r\n <rw-id-navigation [apiName]=\"apiName\" [rel]=\"rel\"></rw-id-navigation>\r\n </div>\r\n</div>\r\n\r\n<p-tabView>\r\n\r\n <p-tabPanel *ngIf=\"isLoading; else tabs\" header=\"Loading\">\r\n <div *ngFor=\"let i of [1, 2, 3, 4, 5]\" class=\"grid field\">\r\n <p-skeleton class=\"col-12 mb-2 md:col-2 md:mb-0\" height=\"39px\"></p-skeleton>\r\n <div class=\"col-12 md:col-10\">\r\n <p-skeleton class=\"w-full\" height=\"39px\"></p-skeleton>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col\">\r\n <div class=\"flex justify-content-end w-full\">\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n </div>\r\n </div>\r\n </div>\r\n </p-tabPanel>\r\n\r\n <ng-template #tabs>\r\n <p-tabPanel *ngFor=\"let template of templates\" [header]=\"template.title ?? ''\" [disabled]=\"isLoading\">\r\n <rw-form [template]=\"template\" [apiName]=\"apiName\" [rel]=\"rel\"></rw-form>\r\n </p-tabPanel>\r\n</ng-template>\r\n\r\n <ng-template #defaultExtraTabs>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"extraTabsRef || defaultExtraTabs\"></ng-container>\r\n\r\n</p-tabView>\r\n\r\n<p-toast></p-toast>\r\n<p-confirmDialog></p-confirmDialog>\r\n", styles: ["::ng-deep .p-tooltip{max-width:-moz-fit-content!important;max-width:fit-content!important}.field.grid>label.hasChildren{border-right:1px solid rgba(0,0,0,.1)}\n"], dependencies: [{ kind: "directive", type:
|
|
115
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: RESTworldEditViewComponent, deps: [{ token: i1.RestWorldClientCollection }, { token: i2.MessageService }, { token: i3.Router }, { token: i4.ValdemortConfig }], target: i0.ɵɵFactoryTarget.Component });
|
|
116
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: RESTworldEditViewComponent, selector: "rw-edit", inputs: { apiName: "apiName", rel: "rel", uri: "uri" }, queries: [{ propertyName: "extraTabsRef", first: true, predicate: ["extraTabs"], descendants: true }], ngImport: i0, template: "<div class=\"grid\">\r\n <div class=\"col-12 md:col-10\">\r\n <h1>Edit resource</h1>\r\n </div>\r\n <div class=\"col-12 md:col-2 align-items-center justify-content-end flex\">\r\n <rw-id-navigation [apiName]=\"apiName\" [rel]=\"rel\"></rw-id-navigation>\r\n </div>\r\n</div>\r\n\r\n<p-tabView>\r\n\r\n <p-tabPanel *ngIf=\"isLoading; else tabs\" header=\"Loading\">\r\n <div *ngFor=\"let i of [1, 2, 3, 4, 5]\" class=\"grid field\">\r\n <p-skeleton class=\"col-12 mb-2 md:col-2 md:mb-0\" height=\"39px\"></p-skeleton>\r\n <div class=\"col-12 md:col-10\">\r\n <p-skeleton class=\"w-full\" height=\"39px\"></p-skeleton>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col\">\r\n <div class=\"flex justify-content-end w-full\">\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n </div>\r\n </div>\r\n </div>\r\n </p-tabPanel>\r\n\r\n <ng-template #tabs>\r\n <p-tabPanel *ngFor=\"let template of templates\" [header]=\"template.title ?? ''\" [disabled]=\"isLoading\">\r\n <rw-form [template]=\"template\" [apiName]=\"apiName\" [rel]=\"rel\" (afterDelete)=\"afterDelete()\" (afterSubmit)=\"afterSubmit($event)\"></rw-form>\r\n </p-tabPanel>\r\n</ng-template>\r\n\r\n <ng-template #defaultExtraTabs>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"extraTabsRef || defaultExtraTabs\"></ng-container>\r\n\r\n</p-tabView>\r\n\r\n<p-toast></p-toast>\r\n<p-confirmDialog></p-confirmDialog>\r\n", styles: ["::ng-deep .p-tooltip{max-width:-moz-fit-content!important;max-width:fit-content!important}.field.grid>label.hasChildren{border-right:1px solid rgba(0,0,0,.1)}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "component", type: i7.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: i8.TabView, selector: "p-tabView", inputs: ["style", "styleClass", "controlClose", "scrollable", "activeIndex", "selectOnFocus", "tabindex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i8.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { kind: "component", type: i9.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: i10.RestWorldFormComponent, selector: "rw-form", inputs: ["template", "apiName", "rel", "allowSubmit", "allowDelete", "allowReload", "showSubmit", "showDelete", "showReload"], outputs: ["afterDelete", "afterSubmit"] }, { kind: "component", type: i11.RestWorldIdNavigationComponent, selector: "rw-id-navigation", inputs: ["apiName", "rel", "urlPrefix"] }] });
|
|
106
117
|
}
|
|
107
118
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: RESTworldEditViewComponent, decorators: [{
|
|
108
119
|
type: Component,
|
|
109
|
-
args: [{ selector: 'rw-edit', template: "<div class=\"grid\">\r\n <div class=\"col-12 md:col-10\">\r\n <h1>Edit resource</h1>\r\n </div>\r\n <div class=\"col-12 md:col-2 align-items-center justify-content-end flex\">\r\n <rw-id-navigation [apiName]=\"apiName\" [rel]=\"rel\"></rw-id-navigation>\r\n </div>\r\n</div>\r\n\r\n<p-tabView>\r\n\r\n <p-tabPanel *ngIf=\"isLoading; else tabs\" header=\"Loading\">\r\n <div *ngFor=\"let i of [1, 2, 3, 4, 5]\" class=\"grid field\">\r\n <p-skeleton class=\"col-12 mb-2 md:col-2 md:mb-0\" height=\"39px\"></p-skeleton>\r\n <div class=\"col-12 md:col-10\">\r\n <p-skeleton class=\"w-full\" height=\"39px\"></p-skeleton>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col\">\r\n <div class=\"flex justify-content-end w-full\">\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n </div>\r\n </div>\r\n </div>\r\n </p-tabPanel>\r\n\r\n <ng-template #tabs>\r\n <p-tabPanel *ngFor=\"let template of templates\" [header]=\"template.title ?? ''\" [disabled]=\"isLoading\">\r\n <rw-form [template]=\"template\" [apiName]=\"apiName\" [rel]=\"rel\"></rw-form>\r\n </p-tabPanel>\r\n</ng-template>\r\n\r\n <ng-template #defaultExtraTabs>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"extraTabsRef || defaultExtraTabs\"></ng-container>\r\n\r\n</p-tabView>\r\n\r\n<p-toast></p-toast>\r\n<p-confirmDialog></p-confirmDialog>\r\n", styles: ["::ng-deep .p-tooltip{max-width:-moz-fit-content!important;max-width:fit-content!important}.field.grid>label.hasChildren{border-right:1px solid rgba(0,0,0,.1)}\n"] }]
|
|
110
|
-
}], ctorParameters: function () { return [{ type: i1.RestWorldClientCollection }, { type: i2.MessageService }, { type: i3.ValdemortConfig }]; }, propDecorators: { extraTabsRef: [{
|
|
120
|
+
args: [{ selector: 'rw-edit', template: "<div class=\"grid\">\r\n <div class=\"col-12 md:col-10\">\r\n <h1>Edit resource</h1>\r\n </div>\r\n <div class=\"col-12 md:col-2 align-items-center justify-content-end flex\">\r\n <rw-id-navigation [apiName]=\"apiName\" [rel]=\"rel\"></rw-id-navigation>\r\n </div>\r\n</div>\r\n\r\n<p-tabView>\r\n\r\n <p-tabPanel *ngIf=\"isLoading; else tabs\" header=\"Loading\">\r\n <div *ngFor=\"let i of [1, 2, 3, 4, 5]\" class=\"grid field\">\r\n <p-skeleton class=\"col-12 mb-2 md:col-2 md:mb-0\" height=\"39px\"></p-skeleton>\r\n <div class=\"col-12 md:col-10\">\r\n <p-skeleton class=\"w-full\" height=\"39px\"></p-skeleton>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col\">\r\n <div class=\"flex justify-content-end w-full\">\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n </div>\r\n </div>\r\n </div>\r\n </p-tabPanel>\r\n\r\n <ng-template #tabs>\r\n <p-tabPanel *ngFor=\"let template of templates\" [header]=\"template.title ?? ''\" [disabled]=\"isLoading\">\r\n <rw-form [template]=\"template\" [apiName]=\"apiName\" [rel]=\"rel\" (afterDelete)=\"afterDelete()\" (afterSubmit)=\"afterSubmit($event)\"></rw-form>\r\n </p-tabPanel>\r\n</ng-template>\r\n\r\n <ng-template #defaultExtraTabs>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"extraTabsRef || defaultExtraTabs\"></ng-container>\r\n\r\n</p-tabView>\r\n\r\n<p-toast></p-toast>\r\n<p-confirmDialog></p-confirmDialog>\r\n", styles: ["::ng-deep .p-tooltip{max-width:-moz-fit-content!important;max-width:fit-content!important}.field.grid>label.hasChildren{border-right:1px solid rgba(0,0,0,.1)}\n"] }]
|
|
121
|
+
}], ctorParameters: function () { return [{ type: i1.RestWorldClientCollection }, { type: i2.MessageService }, { type: i3.Router }, { type: i4.ValdemortConfig }]; }, propDecorators: { extraTabsRef: [{
|
|
111
122
|
type: ContentChild,
|
|
112
123
|
args: ['extraTabs', { static: false }]
|
|
113
124
|
}], apiName: [{
|
|
@@ -120,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
120
131
|
type: Input,
|
|
121
132
|
args: [{ required: true }]
|
|
122
133
|
}] } });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHdvcmxkLWVkaXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVzdHdvcmxkLWNsaWVudC9zcmMvbGliL3ZpZXdzL3Jlc3R3b3JsZC1lZGl0LXZpZXcvcmVzdHdvcmxkLWVkaXQtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVzdHdvcmxkLWNsaWVudC9zcmMvbGliL3ZpZXdzL3Jlc3R3b3JsZC1lZGl0LXZpZXcvcmVzdHdvcmxkLWVkaXQtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBaUMsTUFBTSx5QkFBeUIsQ0FBQztBQUd0RyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7QUFTN0M7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLE9BQU8sMEJBQTBCO0lBb0IzQjtJQUNBO0lBaEJILFlBQVksQ0FBd0I7SUFDcEMsZ0JBQWdCLEdBQUcsSUFBSSxTQUFTLENBRXBDO1FBQ0QsRUFBRSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUM1RyxDQUFDLENBQUM7SUFFSSxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ2hCLFVBQVUsR0FBZSxFQUFFLENBQUM7SUFD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TUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO1FBRTFFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7dUdBdEdVLDBCQUEwQjsyRkFBMUIsMEJBQTBCLDhNQ2hDdkMsa21EQTJDQTs7MkZEWGEsMEJBQTBCO2tCQXRCdEMsU0FBUzsrQkFDRSxTQUFTOzJLQTBCWixZQUFZO3NCQUpsQixZQUFZO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBcUNqQyxPQUFPO3NCQUpqQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFhbEIsR0FBRztzQkFKVCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFtQmQsR0FBRztzQkFMYixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUHJvYmxlbURldGFpbHMsIFByb3BlcnR5VHlwZSwgUmVzb3VyY2UsIFRlbXBsYXRlLCBUZW1wbGF0ZXMgfSBmcm9tICdAd2VydHp1aS9uZ3gtaGFsLWNsaWVudCc7XHJcbmltcG9ydCB7IFJlc3RXb3JsZENsaWVudCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc3R3b3JsZC1jbGllbnQnO1xyXG5pbXBvcnQgeyBSZXN0V29ybGRDbGllbnRDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVzdHdvcmxkLWNsaWVudC1jb2xsZWN0aW9uJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWYWxkZW1vcnRDb25maWcgfSBmcm9tICduZ3gtdmFsZGVtb3J0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncnctZWRpdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc3R3b3JsZC1lZGl0LXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Jlc3R3b3JsZC1lZGl0LXZpZXcuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbi8qKlxyXG4gKiBDb21wb25lbnQgZm9yIGVkaXRpbmcgYSByZXNvdXJjZSBpbiB0aGUgUkVTVHdvcmxkIGFwcGxpY2F0aW9uLlxyXG4gKiBUaGlzIGNvbXBvbmVudCBsb2FkcyB0aGUgZm9ybXMgcmVzb3VyY2UgZnJvbSB0aGUgQVBJIGFuZCByZW5kZXJzIGEgdGFiIHZpZXcgd2hlcmUgZXZlcnkgdGVtcGxhdGUgb2YgdGhlIGZvcm1zIHJlc291cmNlIGlzIHJlbmRlcmVkIGFzIGEgdGFiLlxyXG4gKiBFdmVyeSB0ZW1wbGF0ZSBiZWNvbWVzIG9uZSBgUmVzdHdvcmxkRm9ybUNvbXBvbmVudGAgaW4gdGhlIHRhYiB2aWV3LlxyXG4gKiBJdCBhbHNvIGFsbG93cyBhZGRpbmcgZXh0cmEgdGFicyB0byB0aGUgdmlldy5cclxuICogQW4gSUQgbmF2aWdhdGlvbiBmb3JtIGlzIGFsc28gcmVuZGVyZWQgYXQgdGhlIHRvcCByaWdodCBvZiB0aGUgdmlldy5cclxuICogQGV4YW1wbGVcclxuICogPHJ3LWVkaXQgYXBpTmFtZT1cImFwaVwiIHJlbD1cInJlbFwiIHVyaT1cIi9hcGkvcmVsLzFcIj48L3J3LWVkaXQ+XHJcbiAqIEBleGFtcGxlXHJcbiAqIDxydy1lZGl0IGFwaU5hbWU9XCJhcGlcIiByZWw9XCJyZWxcIiB1cmk9XCIvYXBpL3JlbC8xXCI+XHJcbiAqIDxuZy10ZW1wbGF0ZSAjZXh0cmFUYWJzPlxyXG4gKiA8cC10YWJQYW5lbCBoZWFkZXI9XCJFeHRyYSB0YWJcIj5cclxuICogPHA+U29tZSBleHRyYSBjb250ZW50PC9wPlxyXG4gKiA8L3AtdGFiUGFuZWw+XHJcbiAqIDwvbmctdGVtcGxhdGU+XHJcbiAqIDwvcnctZWRpdD5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBSRVNUd29ybGRFZGl0Vmlld0NvbXBvbmVudCB7XHJcbiAgQENvbnRlbnRDaGlsZCgnZXh0cmFUYWJzJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgLyoqXHJcbiAgICogQSByZWZlcmVuY2UgdG8gYW4gb3B0aW9uYWwgdGVtcGxhdGUgdGhhdCBjYW4gYmUgdXNlZCB0byBhZGQgZXh0cmEgdGFicyB0byB0aGUgdmlldy5cclxuICAgKi9cclxuICBwdWJsaWMgZXh0cmFUYWJzUmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgcHVibGljIGlkTmF2aWdhdGlvbkZvcm0gPSBuZXcgRm9ybUdyb3VwIDwge1xyXG4gICAgaWQ6IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+XHJcbiAgfT4oe1xyXG4gICAgaWQ6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMubWluKDEpLCBWYWxpZGF0b3JzLm1heChOdW1iZXIuTUFYX1NBRkVfSU5URUdFUildKSlcclxuICB9KTtcclxuXHJcbiAgcHVibGljIGlzTG9hZGluZyA9IHRydWU7XHJcbiAgcHJpdmF0ZSBfdGVtcGxhdGVzOiBUZW1wbGF0ZVtdID0gW107XHJcbiAgcHVibGljIGdldCB0ZW1wbGF0ZXMoKTogVGVtcGxhdGVbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGVzO1xyXG4gIH1cclxuICBwcml2YXRlIF9yZXNvdXJjZT86IFJlc291cmNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2NsaWVudHM6IFJlc3RXb3JsZENsaWVudENvbGxlY3Rpb24sXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICB2YWxkZW1vcnRDb25maWc6IFZhbGRlbW9ydENvbmZpZykge1xyXG4gICAgdmFsZGVtb3J0Q29uZmlnLmVycm9yQ2xhc3NlcyA9ICdwLWVycm9yIHRleHQtc20nO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBQcm9wZXJ0eVR5cGUoKSB7XHJcbiAgICByZXR1cm4gUHJvcGVydHlUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYXBpTmFtZSE6IHN0cmluZztcclxuICBwdWJsaWMgZ2V0IGFwaU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9hcGlOYW1lO1xyXG4gIH1cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxyXG4gIC8qKlxyXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBBUEkgdG8gbG9hZCB0aGUgcmVzb3VyY2UgZnJvbS5cclxuICAgKi9cclxuICBwdWJsaWMgc2V0IGFwaU5hbWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fYXBpTmFtZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5sb2FkKCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxyXG4gIC8qKlxyXG4gICAqIFRoZSByZWxhdGlvbiB0byBsb2FkIHRoZSByZXNvdXJjZSBmcm9tLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWwhOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBnZXQgcmVzb3VyY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cmkhOiBzdHJpbmc7XHJcbiAgcHVibGljIGdldCB1cmkoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl91cmk7XHJcbiAgfVxyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgVVJJIGZvciB0aGUgUkVTVCBBUEkgZW5kcG9pbnQgdG8gYmUgZGlzcGxheWVkIGluIHRoZSB2aWV3LlxyXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgVVJJIHRvIHNldC5cclxuICAgKi9cclxuICBwdWJsaWMgc2V0IHVyaSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl91cmkgPSB2YWx1ZTtcclxuICAgIHRoaXMubG9hZCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuYXBpTmFtZSB8fCAhdGhpcy51cmkpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmdldENsaWVudCgpLmdldFNpbmdsZUJ5VXJpKHRoaXMudXJpKTtcclxuICAgIGlmICghcmVzcG9uc2Uub2sgfHwgUHJvYmxlbURldGFpbHMuaXNQcm9ibGVtRGV0YWlscyhyZXNwb25zZS5ib2R5KSB8fCAhcmVzcG9uc2UuYm9keSkge1xyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0Vycm9yJywgZGV0YWlsOiAnRXJyb3Igd2hpbGUgbG9hZGluZyB0aGUgcmVzb3VyY2UgZnJvbSB0aGUgQVBJLicsIGRhdGE6IHJlc3BvbnNlLCBzdGlja3k6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5fcmVzb3VyY2UgPSByZXNwb25zZS5ib2R5O1xyXG4gICAgICBjb25zdCB0ZW1wbGF0ZXMgPSBhd2FpdCB0aGlzLmdldEFsbFRlbXBsYXRlcyh0aGlzLl9yZXNvdXJjZSk7XHJcbiAgICAgIHRoaXMuX3RlbXBsYXRlcyA9IE9iamVjdC52YWx1ZXModGVtcGxhdGVzKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBnZXRBbGxUZW1wbGF0ZXMocmVzb3VyY2U6IFJlc291cmNlKTogUHJvbWlzZTxUZW1wbGF0ZXM+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IGF3YWl0IHRoaXMuZ2V0Q2xpZW50KCkuZ2V0QWxsVGVtcGxhdGVzKHJlc291cmNlKTtcclxuICAgICAgcmV0dXJuIHRlbXBsYXRlcztcclxuICAgIH1cclxuICAgIGNhdGNoIChlOiB1bmtub3duKSB7XHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnRXJyb3InLCBkZXRhaWw6ICdFcnJvciB3aGlsZSBsb2FkaW5nIHRoZSB0ZW1wbGF0ZXMgZnJvbSB0aGUgQVBJLiAnICsgZSwgZGF0YTogZSAsIHN0aWNreTogdHJ1ZX0pO1xyXG4gICAgICByZXR1cm4ge307XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENsaWVudCgpOiBSZXN0V29ybGRDbGllbnQge1xyXG4gICAgaWYgKCF0aGlzLmFwaU5hbWUpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGdldCBhIGNsaWVudCwgYmVjYXVzZSB0aGUgYXBpTmFtZSBpcyBub3Qgc2V0LicpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9jbGllbnRzLmdldENsaWVudCh0aGlzLmFwaU5hbWUpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWQ6Y29sLTEwXCI+XHJcbiAgICA8aDE+RWRpdCByZXNvdXJjZTwvaDE+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBtZDpjb2wtMiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWVuZCBmbGV4XCI+XHJcbiAgICA8cnctaWQtbmF2aWdhdGlvbiBbYXBpTmFtZV09XCJhcGlOYW1lXCIgW3JlbF09XCJyZWxcIj48L3J3LWlkLW5hdmlnYXRpb24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPHAtdGFiVmlldz5cclxuXHJcbiAgPHAtdGFiUGFuZWwgKm5nSWY9XCJpc0xvYWRpbmc7IGVsc2UgdGFic1wiIGhlYWRlcj1cIkxvYWRpbmdcIj5cclxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGkgb2YgWzEsIDIsIDMsIDQsIDVdXCIgY2xhc3M9XCJncmlkIGZpZWxkXCI+XHJcbiAgICAgIDxwLXNrZWxldG9uIGNsYXNzPVwiY29sLTEyIG1iLTIgbWQ6Y29sLTIgbWQ6bWItMFwiIGhlaWdodD1cIjM5cHhcIj48L3Atc2tlbGV0b24+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWQ6Y29sLTEwXCI+XHJcbiAgICAgICAgPHAtc2tlbGV0b24gY2xhc3M9XCJ3LWZ1bGxcIiBoZWlnaHQ9XCIzOXB4XCI+PC9wLXNrZWxldG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImdyaWRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgdy1mdWxsXCI+XHJcbiAgICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjEyMHB4XCIgaGVpZ2h0PVwiMzlweFwiIGNsYXNzPVwibXgtMlwiPjwvcC1za2VsZXRvbj5cclxuICAgICAgICAgIDxwLXNrZWxldG9uIHdpZHRoPVwiMTIwcHhcIiBoZWlnaHQ9XCIzOXB4XCIgY2xhc3M9XCJteC0yXCI+PC9wLXNrZWxldG9uPlxyXG4gICAgICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCIxMjBweFwiIGhlaWdodD1cIjM5cHhcIiBjbGFzcz1cIm14LTJcIj48L3Atc2tlbGV0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9wLXRhYlBhbmVsPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI3RhYnM+XHJcbiAgICA8cC10YWJQYW5lbCAqbmdGb3I9XCJsZXQgdGVtcGxhdGUgb2YgdGVtcGxhdGVzXCIgW2hlYWRlcl09XCJ0ZW1wbGF0ZS50aXRsZSA/PyAnJ1wiIFtkaXNhYmxlZF09XCJpc0xvYWRpbmdcIj5cclxuICAgICAgPHJ3LWZvcm0gW3RlbXBsYXRlXT1cInRlbXBsYXRlXCIgW2FwaU5hbWVdPVwiYXBpTmFtZVwiIFtyZWxdPVwicmVsXCI+PC9ydy1mb3JtPlxyXG4gICAgPC9wLXRhYlBhbmVsPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRFeHRyYVRhYnM+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXh0cmFUYWJzUmVmIHx8IGRlZmF1bHRFeHRyYVRhYnNcIj48L25nLWNvbnRhaW5lcj5cclxuXHJcbjwvcC10YWJWaWV3PlxyXG5cclxuPHAtdG9hc3Q+PC9wLXRvYXN0PlxyXG48cC1jb25maXJtRGlhbG9nPjwvcC1jb25maXJtRGlhbG9nPlxyXG4iXX0=
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHdvcmxkLWVkaXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVzdHdvcmxkLWNsaWVudC9zcmMvbGliL3ZpZXdzL3Jlc3R3b3JsZC1lZGl0LXZpZXcvcmVzdHdvcmxkLWVkaXQtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVzdHdvcmxkLWNsaWVudC9zcmMvbGliL3ZpZXdzL3Jlc3R3b3JsZC1lZGl0LXZpZXcvcmVzdHdvcmxkLWVkaXQtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBaUMsTUFBTSx5QkFBeUIsQ0FBQztBQUd0RyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7O0FBVzdDOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxPQUFPLDBCQUEwQjtJQW9CbEI7SUFDQTtJQUNBO0lBakJaLFlBQVksQ0FBd0I7SUFDcEMsZ0JBQWdCLEdBQUcsSUFBSSxTQUFTLENBRXBDO1FBQ0QsRUFBRSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUM1RyxDQUFDLENBQUM7SUFFSSxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ2hCLFVBQVUsR0FBZSxFQUFFLENB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ZUFBZSxDQUFDLFFBQWtCO1FBQzlDLElBQUk7WUFDRixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkUsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFDRCxPQUFPLENBQVUsRUFBRTtZQUNqQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsa0RBQWtELEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDekosT0FBTyxFQUFFLENBQUM7U0FDWDtJQUNILENBQUM7SUFFTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO1FBRTFFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7dUdBakhVLDBCQUEwQjsyRkFBMUIsMEJBQTBCLDhNQ2xDdkMsd3FEQTJDQTs7MkZEVGEsMEJBQTBCO2tCQXRCdEMsU0FBUzsrQkFDRSxTQUFTO2dNQTBCWixZQUFZO3NCQUpsQixZQUFZO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBc0NqQyxPQUFPO3NCQUpqQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFhbEIsR0FBRztzQkFKVCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFtQmQsR0FBRztzQkFMYixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUHJvYmxlbURldGFpbHMsIFByb3BlcnR5VHlwZSwgUmVzb3VyY2UsIFRlbXBsYXRlLCBUZW1wbGF0ZXMgfSBmcm9tICdAd2VydHp1aS9uZ3gtaGFsLWNsaWVudCc7XHJcbmltcG9ydCB7IFJlc3RXb3JsZENsaWVudCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc3R3b3JsZC1jbGllbnQnO1xyXG5pbXBvcnQgeyBSZXN0V29ybGRDbGllbnRDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVzdHdvcmxkLWNsaWVudC1jb2xsZWN0aW9uJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWYWxkZW1vcnRDb25maWcgfSBmcm9tICduZ3gtdmFsZGVtb3J0JztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQWZ0ZXJTdWJtaXRPa0V2ZW50LCBBZnRlclN1Ym1pdFJlZGlyZWN0RXZlbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXZlbnRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncnctZWRpdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc3R3b3JsZC1lZGl0LXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Jlc3R3b3JsZC1lZGl0LXZpZXcuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbi8qKlxyXG4gKiBDb21wb25lbnQgZm9yIGVkaXRpbmcgYSByZXNvdXJjZSBpbiB0aGUgUkVTVHdvcmxkIGFwcGxpY2F0aW9uLlxyXG4gKiBUaGlzIGNvbXBvbmVudCBsb2FkcyB0aGUgZm9ybXMgcmVzb3VyY2UgZnJvbSB0aGUgQVBJIGFuZCByZW5kZXJzIGEgdGFiIHZpZXcgd2hlcmUgZXZlcnkgdGVtcGxhdGUgb2YgdGhlIGZvcm1zIHJlc291cmNlIGlzIHJlbmRlcmVkIGFzIGEgdGFiLlxyXG4gKiBFdmVyeSB0ZW1wbGF0ZSBiZWNvbWVzIG9uZSBgUmVzdHdvcmxkRm9ybUNvbXBvbmVudGAgaW4gdGhlIHRhYiB2aWV3LlxyXG4gKiBJdCBhbHNvIGFsbG93cyBhZGRpbmcgZXh0cmEgdGFicyB0byB0aGUgdmlldy5cclxuICogQW4gSUQgbmF2aWdhdGlvbiBmb3JtIGlzIGFsc28gcmVuZGVyZWQgYXQgdGhlIHRvcCByaWdodCBvZiB0aGUgdmlldy5cclxuICogQGV4YW1wbGVcclxuICogPHJ3LWVkaXQgYXBpTmFtZT1cImFwaVwiIHJlbD1cInJlbFwiIHVyaT1cIi9hcGkvcmVsLzFcIj48L3J3LWVkaXQ+XHJcbiAqIEBleGFtcGxlXHJcbiAqIDxydy1lZGl0IGFwaU5hbWU9XCJhcGlcIiByZWw9XCJyZWxcIiB1cmk9XCIvYXBpL3JlbC8xXCI+XHJcbiAqIDxuZy10ZW1wbGF0ZSAjZXh0cmFUYWJzPlxyXG4gKiA8cC10YWJQYW5lbCBoZWFkZXI9XCJFeHRyYSB0YWJcIj5cclxuICogPHA+U29tZSBleHRyYSBjb250ZW50PC9wPlxyXG4gKiA8L3AtdGFiUGFuZWw+XHJcbiAqIDwvbmctdGVtcGxhdGU+XHJcbiAqIDwvcnctZWRpdD5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBSRVNUd29ybGRFZGl0Vmlld0NvbXBvbmVudCB7XHJcbiAgQENvbnRlbnRDaGlsZCgnZXh0cmFUYWJzJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgLyoqXHJcbiAgICogQSByZWZlcmVuY2UgdG8gYW4gb3B0aW9uYWwgdGVtcGxhdGUgdGhhdCBjYW4gYmUgdXNlZCB0byBhZGQgZXh0cmEgdGFicyB0byB0aGUgdmlldy5cclxuICAgKi9cclxuICBwdWJsaWMgZXh0cmFUYWJzUmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgcHVibGljIGlkTmF2aWdhdGlvbkZvcm0gPSBuZXcgRm9ybUdyb3VwPHtcclxuICAgIGlkOiBGb3JtQ29udHJvbDxudW1iZXIgfCBudWxsPlxyXG4gIH0+KHtcclxuICAgIGlkOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLm1pbigxKSwgVmFsaWRhdG9ycy5tYXgoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpXSkpXHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBpc0xvYWRpbmcgPSB0cnVlO1xyXG4gIHByaXZhdGUgX3RlbXBsYXRlczogVGVtcGxhdGVbXSA9IFtdO1xyXG4gIHB1YmxpYyBnZXQgdGVtcGxhdGVzKCk6IFRlbXBsYXRlW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlcztcclxuICB9XHJcbiAgcHJpdmF0ZSBfcmVzb3VyY2U/OiBSZXNvdXJjZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jbGllbnRzOiBSZXN0V29ybGRDbGllbnRDb2xsZWN0aW9uLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcm91dGVyOiBSb3V0ZXIsXHJcbiAgICB2YWxkZW1vcnRDb25maWc6IFZhbGRlbW9ydENvbmZpZykge1xyXG4gICAgdmFsZGVtb3J0Q29uZmlnLmVycm9yQ2xhc3NlcyA9ICdwLWVycm9yIHRleHQtc20nO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBQcm9wZXJ0eVR5cGUoKSB7XHJcbiAgICByZXR1cm4gUHJvcGVydHlUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYXBpTmFtZSE6IHN0cmluZztcclxuICBwdWJsaWMgZ2V0IGFwaU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9hcGlOYW1lO1xyXG4gIH1cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxyXG4gIC8qKlxyXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBBUEkgdG8gbG9hZCB0aGUgcmVzb3VyY2UgZnJvbS5cclxuICAgKi9cclxuICBwdWJsaWMgc2V0IGFwaU5hbWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fYXBpTmFtZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5sb2FkKCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxyXG4gIC8qKlxyXG4gICAqIFRoZSByZWxhdGlvbiB0byBsb2FkIHRoZSByZXNvdXJjZSBmcm9tLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWwhOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBnZXQgcmVzb3VyY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cmkhOiBzdHJpbmc7XHJcbiAgcHVibGljIGdldCB1cmkoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl91cmk7XHJcbiAgfVxyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgVVJJIGZvciB0aGUgUkVTVCBBUEkgZW5kcG9pbnQgdG8gYmUgZGlzcGxheWVkIGluIHRoZSB2aWV3LlxyXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgVVJJIHRvIHNldC5cclxuICAgKi9cclxuICBwdWJsaWMgc2V0IHVyaSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl91cmkgPSB2YWx1ZTtcclxuICAgIHRoaXMubG9hZCgpO1xyXG4gIH1cclxuXHJcblxyXG4gIGFzeW5jIGFmdGVyU3VibWl0KCRldmVudDogQWZ0ZXJTdWJtaXRPa0V2ZW50IHwgQWZ0ZXJTdWJtaXRSZWRpcmVjdEV2ZW50KSB7XHJcbiAgICBpZiAoJGV2ZW50LnN0YXR1cyA9PSAyMDEpIHtcclxuICAgICAgYXdhaXQgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnZWRpdCcsIHRoaXMuYXBpTmFtZSwgdGhpcy5yZWwsICRldmVudC5sb2NhdGlvbl0pXHJcbiAgICB9XHJcbiAgfVxyXG4gIGFzeW5jIGFmdGVyRGVsZXRlKCkge1xyXG4gICAgYXdhaXQgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnbGlzdCcsIHRoaXMuYXBpTmFtZSwgdGhpcy5yZWxdKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuYXBpTmFtZSB8fCAhdGhpcy51cmkpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmdldENsaWVudCgpLmdldFNpbmdsZUJ5VXJpKHRoaXMudXJpKTtcclxuICAgIGlmICghcmVzcG9uc2Uub2sgfHwgUHJvYmxlbURldGFpbHMuaXNQcm9ibGVtRGV0YWlscyhyZXNwb25zZS5ib2R5KSB8fCAhcmVzcG9uc2UuYm9keSkge1xyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0Vycm9yJywgZGV0YWlsOiAnRXJyb3Igd2hpbGUgbG9hZGluZyB0aGUgcmVzb3VyY2UgZnJvbSB0aGUgQVBJLicsIGRhdGE6IHJlc3BvbnNlLCBzdGlja3k6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5fcmVzb3VyY2UgPSByZXNwb25zZS5ib2R5O1xyXG4gICAgICBjb25zdCB0ZW1wbGF0ZXMgPSBhd2FpdCB0aGlzLmdldEFsbFRlbXBsYXRlcyh0aGlzLl9yZXNvdXJjZSk7XHJcbiAgICAgIHRoaXMuX3RlbXBsYXRlcyA9IE9iamVjdC52YWx1ZXModGVtcGxhdGVzKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBnZXRBbGxUZW1wbGF0ZXMocmVzb3VyY2U6IFJlc291cmNlKTogUHJvbWlzZTxUZW1wbGF0ZXM+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IGF3YWl0IHRoaXMuZ2V0Q2xpZW50KCkuZ2V0QWxsVGVtcGxhdGVzKHJlc291cmNlKTtcclxuICAgICAgcmV0dXJuIHRlbXBsYXRlcztcclxuICAgIH1cclxuICAgIGNhdGNoIChlOiB1bmtub3duKSB7XHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnRXJyb3InLCBkZXRhaWw6ICdFcnJvciB3aGlsZSBsb2FkaW5nIHRoZSB0ZW1wbGF0ZXMgZnJvbSB0aGUgQVBJLiAnICsgZSwgZGF0YTogZSwgc3RpY2t5OiB0cnVlIH0pO1xyXG4gICAgICByZXR1cm4ge307XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENsaWVudCgpOiBSZXN0V29ybGRDbGllbnQge1xyXG4gICAgaWYgKCF0aGlzLmFwaU5hbWUpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGdldCBhIGNsaWVudCwgYmVjYXVzZSB0aGUgYXBpTmFtZSBpcyBub3Qgc2V0LicpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9jbGllbnRzLmdldENsaWVudCh0aGlzLmFwaU5hbWUpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWQ6Y29sLTEwXCI+XHJcbiAgICA8aDE+RWRpdCByZXNvdXJjZTwvaDE+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBtZDpjb2wtMiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWVuZCBmbGV4XCI+XHJcbiAgICA8cnctaWQtbmF2aWdhdGlvbiBbYXBpTmFtZV09XCJhcGlOYW1lXCIgW3JlbF09XCJyZWxcIj48L3J3LWlkLW5hdmlnYXRpb24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPHAtdGFiVmlldz5cclxuXHJcbiAgPHAtdGFiUGFuZWwgKm5nSWY9XCJpc0xvYWRpbmc7IGVsc2UgdGFic1wiIGhlYWRlcj1cIkxvYWRpbmdcIj5cclxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGkgb2YgWzEsIDIsIDMsIDQsIDVdXCIgY2xhc3M9XCJncmlkIGZpZWxkXCI+XHJcbiAgICAgIDxwLXNrZWxldG9uIGNsYXNzPVwiY29sLTEyIG1iLTIgbWQ6Y29sLTIgbWQ6bWItMFwiIGhlaWdodD1cIjM5cHhcIj48L3Atc2tlbGV0b24+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWQ6Y29sLTEwXCI+XHJcbiAgICAgICAgPHAtc2tlbGV0b24gY2xhc3M9XCJ3LWZ1bGxcIiBoZWlnaHQ9XCIzOXB4XCI+PC9wLXNrZWxldG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImdyaWRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgdy1mdWxsXCI+XHJcbiAgICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjEyMHB4XCIgaGVpZ2h0PVwiMzlweFwiIGNsYXNzPVwibXgtMlwiPjwvcC1za2VsZXRvbj5cclxuICAgICAgICAgIDxwLXNrZWxldG9uIHdpZHRoPVwiMTIwcHhcIiBoZWlnaHQ9XCIzOXB4XCIgY2xhc3M9XCJteC0yXCI+PC9wLXNrZWxldG9uPlxyXG4gICAgICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCIxMjBweFwiIGhlaWdodD1cIjM5cHhcIiBjbGFzcz1cIm14LTJcIj48L3Atc2tlbGV0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9wLXRhYlBhbmVsPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI3RhYnM+XHJcbiAgICA8cC10YWJQYW5lbCAqbmdGb3I9XCJsZXQgdGVtcGxhdGUgb2YgdGVtcGxhdGVzXCIgW2hlYWRlcl09XCJ0ZW1wbGF0ZS50aXRsZSA/PyAnJ1wiIFtkaXNhYmxlZF09XCJpc0xvYWRpbmdcIj5cclxuICAgICAgPHJ3LWZvcm0gW3RlbXBsYXRlXT1cInRlbXBsYXRlXCIgW2FwaU5hbWVdPVwiYXBpTmFtZVwiIFtyZWxdPVwicmVsXCIgKGFmdGVyRGVsZXRlKT1cImFmdGVyRGVsZXRlKClcIiAoYWZ0ZXJTdWJtaXQpPVwiYWZ0ZXJTdWJtaXQoJGV2ZW50KVwiPjwvcnctZm9ybT5cclxuICAgIDwvcC10YWJQYW5lbD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNkZWZhdWx0RXh0cmFUYWJzPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImV4dHJhVGFic1JlZiB8fCBkZWZhdWx0RXh0cmFUYWJzXCI+PC9uZy1jb250YWluZXI+XHJcblxyXG48L3AtdGFiVmlldz5cclxuXHJcbjxwLXRvYXN0PjwvcC10b2FzdD5cclxuPHAtY29uZmlybURpYWxvZz48L3AtY29uZmlybURpYWxvZz5cclxuIl19
|
|
@@ -63,13 +63,13 @@ import { ContextMenuModule } from 'primeng/contextmenu';
|
|
|
63
63
|
import * as i7$2 from 'primeng/table';
|
|
64
64
|
import { TableModule } from 'primeng/table';
|
|
65
65
|
import * as clrFormat from 'clr-format';
|
|
66
|
-
import * as
|
|
66
|
+
import * as i6 from 'primeng/confirmdialog';
|
|
67
67
|
import { ConfirmDialogModule } from 'primeng/confirmdialog';
|
|
68
|
-
import * as
|
|
68
|
+
import * as i7$3 from 'primeng/skeleton';
|
|
69
69
|
import { SkeletonModule } from 'primeng/skeleton';
|
|
70
|
-
import * as
|
|
70
|
+
import * as i8$2 from 'primeng/tabview';
|
|
71
71
|
import { TabViewModule } from 'primeng/tabview';
|
|
72
|
-
import * as
|
|
72
|
+
import * as i9$1 from 'primeng/toast';
|
|
73
73
|
import { ToastModule } from 'primeng/toast';
|
|
74
74
|
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
75
75
|
import { MessagesModule } from 'primeng/messages';
|
|
@@ -1510,13 +1510,22 @@ class RestWorldFormComponent {
|
|
|
1510
1510
|
}
|
|
1511
1511
|
this._messageService.add({ severity: 'error', summary: summary, detail: detail, data: response, sticky: true });
|
|
1512
1512
|
}
|
|
1513
|
+
else if (response.status == 201) {
|
|
1514
|
+
if (!response.headers.has('Location')) {
|
|
1515
|
+
this._messageService.add({ severity: 'error', summary: 'Error', detail: 'The server returned a 201 Created response, but did not return a Location header.', data: response, sticky: true });
|
|
1516
|
+
return;
|
|
1517
|
+
}
|
|
1518
|
+
this._messageService.add({ severity: 'success', summary: 'Created', detail: 'The resource has been created.' });
|
|
1519
|
+
var createdAtUri = response.headers.get('Location');
|
|
1520
|
+
this.afterSubmit.emit({ location: createdAtUri, status: 201 });
|
|
1521
|
+
}
|
|
1513
1522
|
else {
|
|
1514
1523
|
const templateBeforeSubmit = this.template;
|
|
1515
1524
|
const responseResource = response.body;
|
|
1516
1525
|
this.template = responseResource.getTemplateByTitle(this.template.title);
|
|
1517
1526
|
this._formGroup = this._formService.createFormGroupFromTemplate(this.template);
|
|
1518
1527
|
this._messageService.add({ severity: 'success', summary: 'Saved', detail: 'The resource has been saved.' });
|
|
1519
|
-
this.afterSubmit.emit({ old: templateBeforeSubmit, new: this.template });
|
|
1528
|
+
this.afterSubmit.emit({ old: templateBeforeSubmit, new: this.template, status: 200 });
|
|
1520
1529
|
}
|
|
1521
1530
|
}
|
|
1522
1531
|
catch (e) {
|
|
@@ -2555,6 +2564,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
2555
2564
|
class RESTworldEditViewComponent {
|
|
2556
2565
|
_clients;
|
|
2557
2566
|
_messageService;
|
|
2567
|
+
_router;
|
|
2558
2568
|
extraTabsRef;
|
|
2559
2569
|
idNavigationForm = new FormGroup({
|
|
2560
2570
|
id: new FormControl(null, Validators.compose([Validators.min(1), Validators.max(Number.MAX_SAFE_INTEGER)]))
|
|
@@ -2565,9 +2575,10 @@ class RESTworldEditViewComponent {
|
|
|
2565
2575
|
return this._templates;
|
|
2566
2576
|
}
|
|
2567
2577
|
_resource;
|
|
2568
|
-
constructor(_clients, _messageService, valdemortConfig) {
|
|
2578
|
+
constructor(_clients, _messageService, _router, valdemortConfig) {
|
|
2569
2579
|
this._clients = _clients;
|
|
2570
2580
|
this._messageService = _messageService;
|
|
2581
|
+
this._router = _router;
|
|
2571
2582
|
valdemortConfig.errorClasses = 'p-error text-sm';
|
|
2572
2583
|
}
|
|
2573
2584
|
get PropertyType() {
|
|
@@ -2593,6 +2604,14 @@ class RESTworldEditViewComponent {
|
|
|
2593
2604
|
this._uri = value;
|
|
2594
2605
|
this.load();
|
|
2595
2606
|
}
|
|
2607
|
+
async afterSubmit($event) {
|
|
2608
|
+
if ($event.status == 201) {
|
|
2609
|
+
await this._router.navigate(['edit', this.apiName, this.rel, $event.location]);
|
|
2610
|
+
}
|
|
2611
|
+
}
|
|
2612
|
+
async afterDelete() {
|
|
2613
|
+
await this._router.navigate(['list', this.apiName, this.rel]);
|
|
2614
|
+
}
|
|
2596
2615
|
async load() {
|
|
2597
2616
|
if (!this.apiName || !this.uri)
|
|
2598
2617
|
return;
|
|
@@ -2623,13 +2642,13 @@ class RESTworldEditViewComponent {
|
|
|
2623
2642
|
throw new Error('Cannot get a client, because the apiName is not set.');
|
|
2624
2643
|
return this._clients.getClient(this.apiName);
|
|
2625
2644
|
}
|
|
2626
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: RESTworldEditViewComponent, deps: [{ token: RestWorldClientCollection }, { token: i2$4.MessageService }, { token: i2$2.ValdemortConfig }], target: i0.ɵɵFactoryTarget.Component });
|
|
2627
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: RESTworldEditViewComponent, selector: "rw-edit", inputs: { apiName: "apiName", rel: "rel", uri: "uri" }, queries: [{ propertyName: "extraTabsRef", first: true, predicate: ["extraTabs"], descendants: true }], ngImport: i0, template: "<div class=\"grid\">\r\n <div class=\"col-12 md:col-10\">\r\n <h1>Edit resource</h1>\r\n </div>\r\n <div class=\"col-12 md:col-2 align-items-center justify-content-end flex\">\r\n <rw-id-navigation [apiName]=\"apiName\" [rel]=\"rel\"></rw-id-navigation>\r\n </div>\r\n</div>\r\n\r\n<p-tabView>\r\n\r\n <p-tabPanel *ngIf=\"isLoading; else tabs\" header=\"Loading\">\r\n <div *ngFor=\"let i of [1, 2, 3, 4, 5]\" class=\"grid field\">\r\n <p-skeleton class=\"col-12 mb-2 md:col-2 md:mb-0\" height=\"39px\"></p-skeleton>\r\n <div class=\"col-12 md:col-10\">\r\n <p-skeleton class=\"w-full\" height=\"39px\"></p-skeleton>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col\">\r\n <div class=\"flex justify-content-end w-full\">\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n </div>\r\n </div>\r\n </div>\r\n </p-tabPanel>\r\n\r\n <ng-template #tabs>\r\n <p-tabPanel *ngFor=\"let template of templates\" [header]=\"template.title ?? ''\" [disabled]=\"isLoading\">\r\n <rw-form [template]=\"template\" [apiName]=\"apiName\" [rel]=\"rel\"></rw-form>\r\n </p-tabPanel>\r\n</ng-template>\r\n\r\n <ng-template #defaultExtraTabs>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"extraTabsRef || defaultExtraTabs\"></ng-container>\r\n\r\n</p-tabView>\r\n\r\n<p-toast></p-toast>\r\n<p-confirmDialog></p-confirmDialog>\r\n", styles: ["::ng-deep .p-tooltip{max-width:-moz-fit-content!important;max-width:fit-content!important}.field.grid>label.hasChildren{border-right:1px solid rgba(0,0,0,.1)}\n"], dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type:
|
|
2645
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: RESTworldEditViewComponent, deps: [{ token: RestWorldClientCollection }, { token: i2$4.MessageService }, { token: i3$1.Router }, { token: i2$2.ValdemortConfig }], target: i0.ɵɵFactoryTarget.Component });
|
|
2646
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: RESTworldEditViewComponent, selector: "rw-edit", inputs: { apiName: "apiName", rel: "rel", uri: "uri" }, queries: [{ propertyName: "extraTabsRef", first: true, predicate: ["extraTabs"], descendants: true }], ngImport: i0, template: "<div class=\"grid\">\r\n <div class=\"col-12 md:col-10\">\r\n <h1>Edit resource</h1>\r\n </div>\r\n <div class=\"col-12 md:col-2 align-items-center justify-content-end flex\">\r\n <rw-id-navigation [apiName]=\"apiName\" [rel]=\"rel\"></rw-id-navigation>\r\n </div>\r\n</div>\r\n\r\n<p-tabView>\r\n\r\n <p-tabPanel *ngIf=\"isLoading; else tabs\" header=\"Loading\">\r\n <div *ngFor=\"let i of [1, 2, 3, 4, 5]\" class=\"grid field\">\r\n <p-skeleton class=\"col-12 mb-2 md:col-2 md:mb-0\" height=\"39px\"></p-skeleton>\r\n <div class=\"col-12 md:col-10\">\r\n <p-skeleton class=\"w-full\" height=\"39px\"></p-skeleton>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col\">\r\n <div class=\"flex justify-content-end w-full\">\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n </div>\r\n </div>\r\n </div>\r\n </p-tabPanel>\r\n\r\n <ng-template #tabs>\r\n <p-tabPanel *ngFor=\"let template of templates\" [header]=\"template.title ?? ''\" [disabled]=\"isLoading\">\r\n <rw-form [template]=\"template\" [apiName]=\"apiName\" [rel]=\"rel\" (afterDelete)=\"afterDelete()\" (afterSubmit)=\"afterSubmit($event)\"></rw-form>\r\n </p-tabPanel>\r\n</ng-template>\r\n\r\n <ng-template #defaultExtraTabs>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"extraTabsRef || defaultExtraTabs\"></ng-container>\r\n\r\n</p-tabView>\r\n\r\n<p-toast></p-toast>\r\n<p-confirmDialog></p-confirmDialog>\r\n", styles: ["::ng-deep .p-tooltip{max-width:-moz-fit-content!important;max-width:fit-content!important}.field.grid>label.hasChildren{border-right:1px solid rgba(0,0,0,.1)}\n"], dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "component", type: i7$3.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: i8$2.TabView, selector: "p-tabView", inputs: ["style", "styleClass", "controlClose", "scrollable", "activeIndex", "selectOnFocus", "tabindex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i8$2.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { kind: "component", type: i9$1.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: RestWorldFormComponent, selector: "rw-form", inputs: ["template", "apiName", "rel", "allowSubmit", "allowDelete", "allowReload", "showSubmit", "showDelete", "showReload"], outputs: ["afterDelete", "afterSubmit"] }, { kind: "component", type: RestWorldIdNavigationComponent, selector: "rw-id-navigation", inputs: ["apiName", "rel", "urlPrefix"] }] });
|
|
2628
2647
|
}
|
|
2629
2648
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: RESTworldEditViewComponent, decorators: [{
|
|
2630
2649
|
type: Component,
|
|
2631
|
-
args: [{ selector: 'rw-edit', template: "<div class=\"grid\">\r\n <div class=\"col-12 md:col-10\">\r\n <h1>Edit resource</h1>\r\n </div>\r\n <div class=\"col-12 md:col-2 align-items-center justify-content-end flex\">\r\n <rw-id-navigation [apiName]=\"apiName\" [rel]=\"rel\"></rw-id-navigation>\r\n </div>\r\n</div>\r\n\r\n<p-tabView>\r\n\r\n <p-tabPanel *ngIf=\"isLoading; else tabs\" header=\"Loading\">\r\n <div *ngFor=\"let i of [1, 2, 3, 4, 5]\" class=\"grid field\">\r\n <p-skeleton class=\"col-12 mb-2 md:col-2 md:mb-0\" height=\"39px\"></p-skeleton>\r\n <div class=\"col-12 md:col-10\">\r\n <p-skeleton class=\"w-full\" height=\"39px\"></p-skeleton>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col\">\r\n <div class=\"flex justify-content-end w-full\">\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n </div>\r\n </div>\r\n </div>\r\n </p-tabPanel>\r\n\r\n <ng-template #tabs>\r\n <p-tabPanel *ngFor=\"let template of templates\" [header]=\"template.title ?? ''\" [disabled]=\"isLoading\">\r\n <rw-form [template]=\"template\" [apiName]=\"apiName\" [rel]=\"rel\"></rw-form>\r\n </p-tabPanel>\r\n</ng-template>\r\n\r\n <ng-template #defaultExtraTabs>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"extraTabsRef || defaultExtraTabs\"></ng-container>\r\n\r\n</p-tabView>\r\n\r\n<p-toast></p-toast>\r\n<p-confirmDialog></p-confirmDialog>\r\n", styles: ["::ng-deep .p-tooltip{max-width:-moz-fit-content!important;max-width:fit-content!important}.field.grid>label.hasChildren{border-right:1px solid rgba(0,0,0,.1)}\n"] }]
|
|
2632
|
-
}], ctorParameters: function () { return [{ type: RestWorldClientCollection }, { type: i2$4.MessageService }, { type: i2$2.ValdemortConfig }]; }, propDecorators: { extraTabsRef: [{
|
|
2650
|
+
args: [{ selector: 'rw-edit', template: "<div class=\"grid\">\r\n <div class=\"col-12 md:col-10\">\r\n <h1>Edit resource</h1>\r\n </div>\r\n <div class=\"col-12 md:col-2 align-items-center justify-content-end flex\">\r\n <rw-id-navigation [apiName]=\"apiName\" [rel]=\"rel\"></rw-id-navigation>\r\n </div>\r\n</div>\r\n\r\n<p-tabView>\r\n\r\n <p-tabPanel *ngIf=\"isLoading; else tabs\" header=\"Loading\">\r\n <div *ngFor=\"let i of [1, 2, 3, 4, 5]\" class=\"grid field\">\r\n <p-skeleton class=\"col-12 mb-2 md:col-2 md:mb-0\" height=\"39px\"></p-skeleton>\r\n <div class=\"col-12 md:col-10\">\r\n <p-skeleton class=\"w-full\" height=\"39px\"></p-skeleton>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col\">\r\n <div class=\"flex justify-content-end w-full\">\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n </div>\r\n </div>\r\n </div>\r\n </p-tabPanel>\r\n\r\n <ng-template #tabs>\r\n <p-tabPanel *ngFor=\"let template of templates\" [header]=\"template.title ?? ''\" [disabled]=\"isLoading\">\r\n <rw-form [template]=\"template\" [apiName]=\"apiName\" [rel]=\"rel\" (afterDelete)=\"afterDelete()\" (afterSubmit)=\"afterSubmit($event)\"></rw-form>\r\n </p-tabPanel>\r\n</ng-template>\r\n\r\n <ng-template #defaultExtraTabs>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"extraTabsRef || defaultExtraTabs\"></ng-container>\r\n\r\n</p-tabView>\r\n\r\n<p-toast></p-toast>\r\n<p-confirmDialog></p-confirmDialog>\r\n", styles: ["::ng-deep .p-tooltip{max-width:-moz-fit-content!important;max-width:fit-content!important}.field.grid>label.hasChildren{border-right:1px solid rgba(0,0,0,.1)}\n"] }]
|
|
2651
|
+
}], ctorParameters: function () { return [{ type: RestWorldClientCollection }, { type: i2$4.MessageService }, { type: i3$1.Router }, { type: i2$2.ValdemortConfig }]; }, propDecorators: { extraTabsRef: [{
|
|
2633
2652
|
type: ContentChild,
|
|
2634
2653
|
args: ['extraTabs', { static: false }]
|
|
2635
2654
|
}], apiName: [{
|