geonetwork-ui 2.4.0-dev.f5019723 → 2.4.0-dev.fdf8f64b

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +2 -2
  2. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +72 -0
  3. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +6 -4
  4. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +191 -0
  5. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +8 -6
  6. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +10 -2
  7. package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +3 -3
  8. package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +2 -2
  9. package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +5 -3
  10. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +20 -4
  11. package/esm2022/translations/de.json +7 -0
  12. package/esm2022/translations/en.json +7 -0
  13. package/esm2022/translations/es.json +7 -0
  14. package/esm2022/translations/fr.json +8 -1
  15. package/esm2022/translations/it.json +7 -0
  16. package/esm2022/translations/nl.json +7 -0
  17. package/esm2022/translations/pt.json +7 -0
  18. package/fesm2022/geonetwork-ui.mjs +644 -336
  19. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  20. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +16 -0
  21. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -0
  22. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts.map +1 -1
  23. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts +44 -0
  24. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts.map +1 -0
  25. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  26. package/libs/feature/editor/src/lib/fields.config.d.ts +1 -0
  27. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  28. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts +1 -0
  29. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts.map +1 -1
  30. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +6 -3
  31. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -1
  32. package/package.json +1 -1
  33. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.css +0 -0
  34. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html +31 -0
  35. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +82 -0
  36. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html +20 -11
  37. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.ts +3 -0
  38. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.css +0 -0
  39. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.html +71 -0
  40. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +241 -0
  41. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +8 -0
  42. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +5 -3
  43. package/src/libs/feature/editor/src/lib/fields.config.ts +10 -1
  44. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.html +8 -8
  45. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +1 -1
  46. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +3 -1
  47. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +5 -1
  48. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +25 -2
  49. package/translations/de.json +7 -0
  50. package/translations/en.json +7 -0
  51. package/translations/es.json +7 -0
  52. package/translations/fr.json +8 -1
  53. package/translations/it.json +7 -0
  54. package/translations/nl.json +7 -0
  55. package/translations/pt.json +7 -0
  56. package/translations/sk.json +7 -0
@@ -77,7 +77,7 @@ export class ImportRecordComponent {
77
77
  });
78
78
  }
79
79
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImportRecordComponent, deps: [{ token: i1.Router }, { token: i2.TranslateService }, { token: i0.ChangeDetectorRef }, { token: i3.NotificationsService }, { token: i4.RecordsRepositoryInterface }], target: i0.ɵɵFactoryTarget.Component }); }
80
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ImportRecordComponent, isStandalone: true, selector: "gn-ui-import-record", outputs: { closeImportMenu: "closeImportMenu" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"importMenuMainSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <li *ngFor=\"let menuItem of importMenuItems\">\n <gn-ui-button\n [attr.data-test]=\"menuItem.dataTest\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"menuItem.action()\"\n [disabled]=\"menuItem.disabled\"\n [title]=\"\n (menuItem.disabled ? 'editor.temporary.disabled' : '') | translate\n \"\n ><mat-icon class=\"material-symbols-outlined\">\n {{ menuItem.icon }} </mat-icon\n ><span>{{ menuItem.label }}</span></gn-ui-button\n >\n </li>\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'importExternalFile'\">\n <div\n data-test=\"importMenuImportExternalFileSection\"\n class=\"p-6 flex flex-col gap-2 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-button\n data-test=\"importMenuImportExternalFileSectionBackButton\"\n type=\"light\"\n (buttonClick)=\"displayMainMenu()\"\n >\n <mat-icon class=\"material-symbols-outlined\">arrow_back</mat-icon>\n </gn-ui-button>\n <span class=\"font-bold\"> {{ externalImportBackLabel }}</span>\n </div>\n <gn-ui-url-input\n (valueChange)=\"importRecord($event)\"\n [disabled]=\"isRecordImportInProgress\"\n ></gn-ui-url-input>\n </div>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
80
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ImportRecordComponent, isStandalone: true, selector: "gn-ui-import-record", outputs: { closeImportMenu: "closeImportMenu" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"importMenuMainSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <li *ngFor=\"let menuItem of importMenuItems\">\n <gn-ui-button\n [attr.data-test]=\"menuItem.dataTest\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"menuItem.action()\"\n [disabled]=\"menuItem.disabled\"\n [title]=\"\n (menuItem.disabled ? 'editor.temporary.disabled' : '') | translate\n \"\n ><mat-icon class=\"material-symbols-outlined\">\n {{ menuItem.icon }} </mat-icon\n ><span>{{ menuItem.label }}</span></gn-ui-button\n >\n </li>\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'importExternalFile'\">\n <div\n data-test=\"importMenuImportExternalFileSection\"\n class=\"p-6 flex flex-col gap-2 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-button\n data-test=\"importMenuImportExternalFileSectionBackButton\"\n type=\"light\"\n (buttonClick)=\"displayMainMenu()\"\n >\n <mat-icon class=\"material-symbols-outlined\">arrow_back</mat-icon>\n </gn-ui-button>\n <span class=\"font-bold\"> {{ externalImportBackLabel }}</span>\n </div>\n <gn-ui-url-input\n (valueChange)=\"importRecord($event)\"\n [disabled]=\"isRecordImportInProgress\"\n ></gn-ui-url-input>\n </div>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "urlCanParse"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
81
81
  }
82
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImportRecordComponent, decorators: [{
83
83
  type: Component,
@@ -92,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
92
92
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.TranslateService }, { type: i0.ChangeDetectorRef }, { type: i3.NotificationsService }, { type: i4.RecordsRepositoryInterface }]; }, propDecorators: { closeImportMenu: [{
93
93
  type: Output
94
94
  }] } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LXJlY29yZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9pbXBvcnQtcmVjb3JkL2ltcG9ydC1yZWNvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvaW1wb3J0LXJlY29yZC9pbXBvcnQtcmVjb3JkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQzVGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFBO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxREFBcUQsQ0FBQTtBQUMxRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5RkFBeUYsQ0FBQTtBQUNwSSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUE7Ozs7Ozs7O0FBMkJ4QyxNQUFNLE9BQU8scUJBQXFCO0lBNkJoQyxZQUNVLE1BQWMsRUFDZCxnQkFBa0MsRUFDbEMsR0FBc0IsRUFDdEIsb0JBQTBDLEVBQzFDLGlCQUE2QztRQUo3QyxXQUFNLEdBQU4sTUFBTSxD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LHdCQUF3QixHQUFHLEtBQUssQ0FBQTtnQkFDckMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtZQUN6QixDQUFDO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQzsrR0F6RlUscUJBQXFCO21HQUFyQixxQkFBcUIsZ0lDekNsQyxvMERBK0NBLHlERGRJLFlBQVksdVZBQ1osYUFBYSxvTEFDYixlQUFlLCtIQUVmLGlCQUFpQixpSkFDakIsZUFBZTs7NEZBR04scUJBQXFCO2tCQWZqQyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsZUFBZTtxQkFDaEI7d09BR1MsZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50LCBVcmxJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL25vdGlmaWNhdGlvbnMvc3JjJ1xuaW1wb3J0IHsgUmVjb3Jkc1JlcG9zaXRvcnlJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9yZXBvc2l0b3J5L3JlY29yZHMtcmVwb3NpdG9yeS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5cbmludGVyZmFjZSBJbXBvcnRNZW51SXRlbXMge1xuICBsYWJlbDogc3RyaW5nXG4gIGljb246IHN0cmluZ1xuICBhY3Rpb246ICgpID0+IGFueVxuICBkYXRhVGVzdDogc3RyaW5nXG4gIGRpc2FibGVkPzogYm9vbGVhblxufVxuXG50eXBlIEltcG9ydE1lbnVQYWdlID0gJ21haW5NZW51JyB8ICdpbXBvcnRFeHRlcm5hbEZpbGUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWltcG9ydC1yZWNvcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1wb3J0LXJlY29yZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ltcG9ydC1yZWNvcmQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBUaHVtYm5haWxDb21wb25lbnQsXG4gICAgVXJsSW5wdXRDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBJbXBvcnRSZWNvcmRDb21wb25lbnQge1xuICBAT3V0cHV0KCkgY2xvc2VJbXBvcnRNZW51ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXG5cbiAgaW1wb3J0TWVudUl0ZW1zOiBJbXBvcnRNZW51SXRlbXNbXSA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2Rhc2hib2FyZC5pbXBvcnRSZWNvcmQudXNlTW9kZWwnKSxcbiAgICAgIGljb246ICdoaWdobGlnaHQnLFxuICAgICAgYWN0aW9uOiAoKSA9PiBudWxsLFxuICAgICAgZGF0YVRlc3Q6ICd1c2VBTW9kZWxCdXR0b24nLFxuICAgICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICdkYXNoYm9hcmQuaW1wb3J0UmVjb3JkLmltcG9ydEV4dGVybmFsJ1xuICAgICAgKSxcbiAgICAgIGljb246ICdjbG91ZF9kb3dubG9hZCcsXG4gICAgICBhY3Rpb246IHRoaXMuZGlzcGxheUltcG9ydEV4dGVybmFsLmJpbmQodGhpcyksXG4gICAgICBkYXRhVGVzdDogJ2ltcG9ydEZyb21VcmxCdXR0b24nLFxuICAgIH0sXG4gIF1cblxuICBpc1JlY29yZEltcG9ydEluUHJvZ3Jlc3MgPSBmYWxzZVxuXG4gIHNlY3Rpb25EaXNwbGF5ZWQ6IEltcG9ydE1lbnVQYWdlID0gJ21haW5NZW51J1xuXG4gIGV4dGVybmFsSW1wb3J0QmFja0xhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgJ2Rhc2hib2FyZC5pbXBvcnRSZWNvcmQuaW1wb3J0RXh0ZXJuYWxMYWJlbCdcbiAgKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvbnNTZXJ2aWNlOiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHJlY29yZHNSZXBvc2l0b3J5OiBSZWNvcmRzUmVwb3NpdG9yeUludGVyZmFjZVxuICApIHt9XG5cbiAgZGlzcGxheU1haW5NZW51KCkge1xuICAgIHRoaXMuc2VjdGlvbkRpc3BsYXllZCA9ICdtYWluTWVudSdcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKVxuICB9XG5cbiAgZGlzcGxheUltcG9ydEV4dGVybmFsKCkge1xuICAgIHRoaXMuc2VjdGlvbkRpc3BsYXllZCA9ICdpbXBvcnRFeHRlcm5hbEZpbGUnXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgfVxuXG4gIGltcG9ydFJlY29yZCh1cmw6IHN0cmluZykge1xuICAgIHRoaXMuaXNSZWNvcmRJbXBvcnRJblByb2dyZXNzID0gdHJ1ZVxuXG4gICAgdGhpcy5yZWNvcmRzUmVwb3NpdG9yeS5kdXBsaWNhdGVFeHRlcm5hbFJlY29yZCh1cmwpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVjb3JkVGVtcElkKSA9PiB7XG4gICAgICAgIGlmIChyZWNvcmRUZW1wSWQpIHtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnNob3dOb3RpZmljYXRpb24oXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgICAgICdlZGl0b3IucmVjb3JkLmltcG9ydEZyb21FeHRlcm5hbEZpbGUuc3VjY2Vzcy50aXRsZSdcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgdGV4dDogYCR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgJ2VkaXRvci5yZWNvcmQuaW1wb3J0RnJvbUV4dGVybmFsRmlsZS5zdWNjZXNzLmJvZHknXG4gICAgICAgICAgICAgICl9YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAyNTAwXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgdGhpcy5yb3V0ZXJcbiAgICAgICAgICAgIC5uYXZpZ2F0ZShbJy9lZGl0JywgcmVjb3JkVGVtcElkXSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBjb25zb2xlLmVycm9yKGVycikpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jbG9zZUltcG9ydE1lbnUubmV4dCgpXG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnNob3dOb3RpZmljYXRpb24oXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICAgJ2VkaXRvci5yZWNvcmQuaW1wb3J0RnJvbUV4dGVybmFsRmlsZS5mYWlsdXJlLnRpdGxlJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRleHQ6IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgICAnZWRpdG9yLnJlY29yZC5pbXBvcnRGcm9tRXh0ZXJuYWxGaWxlLmZhaWx1cmUuYm9keSdcbiAgICAgICAgICAgICl9ICR7ZXJyb3IubWVzc2FnZSA/PyAnJ31gLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgMjUwMFxuICAgICAgICApXG4gICAgICAgIHRoaXMuaXNSZWNvcmRJbXBvcnRJblByb2dyZXNzID0gZmFsc2VcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgICAgIH0sXG4gICAgfSlcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwic2VjdGlvbkRpc3BsYXllZFwiPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbWFpbk1lbnUnXCI+XG4gICAgPGRpdlxuICAgICAgZGF0YS10ZXN0PVwiaW1wb3J0TWVudU1haW5TZWN0aW9uXCJcbiAgICAgIGNsYXNzPVwibXQtMiBib3JkZXIgYm9yZGVyLWdyYXktMTAwIHAtMiBmbGV4IGl0ZW1zLWNlbnRlciBiZy13aGl0ZSBzaGFkb3ctMnhsIHJvdW5kZWQtMnhsXCJcbiAgICA+XG4gICAgICA8dWwgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yIHctZnVsbFwiPlxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IG1lbnVJdGVtIG9mIGltcG9ydE1lbnVJdGVtc1wiPlxuICAgICAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdF09XCJtZW51SXRlbS5kYXRhVGVzdFwiXG4gICAgICAgICAgICB0eXBlPVwibGlnaHRcIlxuICAgICAgICAgICAgZXh0cmFDbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC0yIHctZnVsbCBqdXN0aWZ5LXN0YXJ0XCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJtZW51SXRlbS5hY3Rpb24oKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwibWVudUl0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgICAobWVudUl0ZW0uZGlzYWJsZWQgPyAnZWRpdG9yLnRlbXBvcmFyeS5kaXNhYmxlZCcgOiAnJykgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPlxuICAgICAgICAgICAgICB7eyBtZW51SXRlbS5pY29uIH19IDwvbWF0LWljb25cbiAgICAgICAgICAgID48c3Bhbj57eyBtZW51SXRlbS5sYWJlbCB9fTwvc3Bhbj48L2duLXVpLWJ1dHRvblxuICAgICAgICAgID5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW1wb3J0RXh0ZXJuYWxGaWxlJ1wiPlxuICAgIDxkaXZcbiAgICAgIGRhdGEtdGVzdD1cImltcG9ydE1lbnVJbXBvcnRFeHRlcm5hbEZpbGVTZWN0aW9uXCJcbiAgICAgIGNsYXNzPVwicC02IGZsZXggZmxleC1jb2wgZ2FwLTIgbXQtMiBib3JkZXIgYm9yZGVyLWdyYXktMTAwIGJnLXdoaXRlIHNoYWRvdy0yeGwgcm91bmRlZC0yeGxcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgZGF0YS10ZXN0PVwiaW1wb3J0TWVudUltcG9ydEV4dGVybmFsRmlsZVNlY3Rpb25CYWNrQnV0dG9uXCJcbiAgICAgICAgICB0eXBlPVwibGlnaHRcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJkaXNwbGF5TWFpbk1lbnUoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCI+YXJyb3dfYmFjazwvbWF0LWljb24+XG4gICAgICAgIDwvZ24tdWktYnV0dG9uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZFwiPiB7eyBleHRlcm5hbEltcG9ydEJhY2tMYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGduLXVpLXVybC1pbnB1dFxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwiaW1wb3J0UmVjb3JkKCRldmVudClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNSZWNvcmRJbXBvcnRJblByb2dyZXNzXCJcbiAgICAgID48L2duLXVpLXVybC1pbnB1dD5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LXJlY29yZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9pbXBvcnQtcmVjb3JkL2ltcG9ydC1yZWNvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvaW1wb3J0LXJlY29yZC9pbXBvcnQtcmVjb3JkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQzVGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFBO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxREFBcUQsQ0FBQTtBQUMxRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5RkFBeUYsQ0FBQTtBQUNwSSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUE7Ozs7Ozs7O0FBMkJ4QyxNQUFNLE9BQU8scUJBQXFCO0lBNkJoQyxZQUNVLE1BQWMsRUFDZCxnQkFBa0MsRUFDbEMsR0FBc0IsRUFDdEIsb0JBQTBDLEVBQzFDLGlCQUE2QztRQUo3QyxXQUFNLEdBQU4sTUFBTSxD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LHdCQUF3QixHQUFHLEtBQUssQ0FBQTtnQkFDckMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtZQUN6QixDQUFDO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQzsrR0F6RlUscUJBQXFCO21HQUFyQixxQkFBcUIsZ0lDekNsQyxvMERBK0NBLHlERGRJLFlBQVksdVZBQ1osYUFBYSxvTEFDYixlQUFlLCtIQUVmLGlCQUFpQixnS0FDakIsZUFBZTs7NEZBR04scUJBQXFCO2tCQWZqQyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsZUFBZTtxQkFDaEI7d09BR1MsZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50LCBVcmxJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL25vdGlmaWNhdGlvbnMvc3JjJ1xuaW1wb3J0IHsgUmVjb3Jkc1JlcG9zaXRvcnlJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9yZXBvc2l0b3J5L3JlY29yZHMtcmVwb3NpdG9yeS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5cbmludGVyZmFjZSBJbXBvcnRNZW51SXRlbXMge1xuICBsYWJlbDogc3RyaW5nXG4gIGljb246IHN0cmluZ1xuICBhY3Rpb246ICgpID0+IGFueVxuICBkYXRhVGVzdDogc3RyaW5nXG4gIGRpc2FibGVkPzogYm9vbGVhblxufVxuXG50eXBlIEltcG9ydE1lbnVQYWdlID0gJ21haW5NZW51JyB8ICdpbXBvcnRFeHRlcm5hbEZpbGUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWltcG9ydC1yZWNvcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1wb3J0LXJlY29yZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ltcG9ydC1yZWNvcmQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBUaHVtYm5haWxDb21wb25lbnQsXG4gICAgVXJsSW5wdXRDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBJbXBvcnRSZWNvcmRDb21wb25lbnQge1xuICBAT3V0cHV0KCkgY2xvc2VJbXBvcnRNZW51ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXG5cbiAgaW1wb3J0TWVudUl0ZW1zOiBJbXBvcnRNZW51SXRlbXNbXSA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2Rhc2hib2FyZC5pbXBvcnRSZWNvcmQudXNlTW9kZWwnKSxcbiAgICAgIGljb246ICdoaWdobGlnaHQnLFxuICAgICAgYWN0aW9uOiAoKSA9PiBudWxsLFxuICAgICAgZGF0YVRlc3Q6ICd1c2VBTW9kZWxCdXR0b24nLFxuICAgICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICdkYXNoYm9hcmQuaW1wb3J0UmVjb3JkLmltcG9ydEV4dGVybmFsJ1xuICAgICAgKSxcbiAgICAgIGljb246ICdjbG91ZF9kb3dubG9hZCcsXG4gICAgICBhY3Rpb246IHRoaXMuZGlzcGxheUltcG9ydEV4dGVybmFsLmJpbmQodGhpcyksXG4gICAgICBkYXRhVGVzdDogJ2ltcG9ydEZyb21VcmxCdXR0b24nLFxuICAgIH0sXG4gIF1cblxuICBpc1JlY29yZEltcG9ydEluUHJvZ3Jlc3MgPSBmYWxzZVxuXG4gIHNlY3Rpb25EaXNwbGF5ZWQ6IEltcG9ydE1lbnVQYWdlID0gJ21haW5NZW51J1xuXG4gIGV4dGVybmFsSW1wb3J0QmFja0xhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgJ2Rhc2hib2FyZC5pbXBvcnRSZWNvcmQuaW1wb3J0RXh0ZXJuYWxMYWJlbCdcbiAgKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvbnNTZXJ2aWNlOiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHJlY29yZHNSZXBvc2l0b3J5OiBSZWNvcmRzUmVwb3NpdG9yeUludGVyZmFjZVxuICApIHt9XG5cbiAgZGlzcGxheU1haW5NZW51KCkge1xuICAgIHRoaXMuc2VjdGlvbkRpc3BsYXllZCA9ICdtYWluTWVudSdcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKVxuICB9XG5cbiAgZGlzcGxheUltcG9ydEV4dGVybmFsKCkge1xuICAgIHRoaXMuc2VjdGlvbkRpc3BsYXllZCA9ICdpbXBvcnRFeHRlcm5hbEZpbGUnXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgfVxuXG4gIGltcG9ydFJlY29yZCh1cmw6IHN0cmluZykge1xuICAgIHRoaXMuaXNSZWNvcmRJbXBvcnRJblByb2dyZXNzID0gdHJ1ZVxuXG4gICAgdGhpcy5yZWNvcmRzUmVwb3NpdG9yeS5kdXBsaWNhdGVFeHRlcm5hbFJlY29yZCh1cmwpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVjb3JkVGVtcElkKSA9PiB7XG4gICAgICAgIGlmIChyZWNvcmRUZW1wSWQpIHtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnNob3dOb3RpZmljYXRpb24oXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgICAgICdlZGl0b3IucmVjb3JkLmltcG9ydEZyb21FeHRlcm5hbEZpbGUuc3VjY2Vzcy50aXRsZSdcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgdGV4dDogYCR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgJ2VkaXRvci5yZWNvcmQuaW1wb3J0RnJvbUV4dGVybmFsRmlsZS5zdWNjZXNzLmJvZHknXG4gICAgICAgICAgICAgICl9YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAyNTAwXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgdGhpcy5yb3V0ZXJcbiAgICAgICAgICAgIC5uYXZpZ2F0ZShbJy9lZGl0JywgcmVjb3JkVGVtcElkXSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiBjb25zb2xlLmVycm9yKGVycikpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jbG9zZUltcG9ydE1lbnUubmV4dCgpXG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnNob3dOb3RpZmljYXRpb24oXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICAgJ2VkaXRvci5yZWNvcmQuaW1wb3J0RnJvbUV4dGVybmFsRmlsZS5mYWlsdXJlLnRpdGxlJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRleHQ6IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgICAnZWRpdG9yLnJlY29yZC5pbXBvcnRGcm9tRXh0ZXJuYWxGaWxlLmZhaWx1cmUuYm9keSdcbiAgICAgICAgICAgICl9ICR7ZXJyb3IubWVzc2FnZSA/PyAnJ31gLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgMjUwMFxuICAgICAgICApXG4gICAgICAgIHRoaXMuaXNSZWNvcmRJbXBvcnRJblByb2dyZXNzID0gZmFsc2VcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgICAgIH0sXG4gICAgfSlcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwic2VjdGlvbkRpc3BsYXllZFwiPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbWFpbk1lbnUnXCI+XG4gICAgPGRpdlxuICAgICAgZGF0YS10ZXN0PVwiaW1wb3J0TWVudU1haW5TZWN0aW9uXCJcbiAgICAgIGNsYXNzPVwibXQtMiBib3JkZXIgYm9yZGVyLWdyYXktMTAwIHAtMiBmbGV4IGl0ZW1zLWNlbnRlciBiZy13aGl0ZSBzaGFkb3ctMnhsIHJvdW5kZWQtMnhsXCJcbiAgICA+XG4gICAgICA8dWwgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yIHctZnVsbFwiPlxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IG1lbnVJdGVtIG9mIGltcG9ydE1lbnVJdGVtc1wiPlxuICAgICAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdF09XCJtZW51SXRlbS5kYXRhVGVzdFwiXG4gICAgICAgICAgICB0eXBlPVwibGlnaHRcIlxuICAgICAgICAgICAgZXh0cmFDbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC0yIHctZnVsbCBqdXN0aWZ5LXN0YXJ0XCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJtZW51SXRlbS5hY3Rpb24oKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwibWVudUl0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgICAobWVudUl0ZW0uZGlzYWJsZWQgPyAnZWRpdG9yLnRlbXBvcmFyeS5kaXNhYmxlZCcgOiAnJykgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPlxuICAgICAgICAgICAgICB7eyBtZW51SXRlbS5pY29uIH19IDwvbWF0LWljb25cbiAgICAgICAgICAgID48c3Bhbj57eyBtZW51SXRlbS5sYWJlbCB9fTwvc3Bhbj48L2duLXVpLWJ1dHRvblxuICAgICAgICAgID5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW1wb3J0RXh0ZXJuYWxGaWxlJ1wiPlxuICAgIDxkaXZcbiAgICAgIGRhdGEtdGVzdD1cImltcG9ydE1lbnVJbXBvcnRFeHRlcm5hbEZpbGVTZWN0aW9uXCJcbiAgICAgIGNsYXNzPVwicC02IGZsZXggZmxleC1jb2wgZ2FwLTIgbXQtMiBib3JkZXIgYm9yZGVyLWdyYXktMTAwIGJnLXdoaXRlIHNoYWRvdy0yeGwgcm91bmRlZC0yeGxcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgZGF0YS10ZXN0PVwiaW1wb3J0TWVudUltcG9ydEV4dGVybmFsRmlsZVNlY3Rpb25CYWNrQnV0dG9uXCJcbiAgICAgICAgICB0eXBlPVwibGlnaHRcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJkaXNwbGF5TWFpbk1lbnUoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCI+YXJyb3dfYmFjazwvbWF0LWljb24+XG4gICAgICAgIDwvZ24tdWktYnV0dG9uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZFwiPiB7eyBleHRlcm5hbEltcG9ydEJhY2tMYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGduLXVpLXVybC1pbnB1dFxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwiaW1wb3J0UmVjb3JkKCRldmVudClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNSZWNvcmRJbXBvcnRJblByb2dyZXNzXCJcbiAgICAgID48L2duLXVpLXVybC1pbnB1dD5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -0,0 +1,72 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { MatIconModule } from '@angular/material/icon';
5
+ import { MatRadioModule } from '@angular/material/radio';
6
+ import { MatTooltipModule } from '@angular/material/tooltip';
7
+ import { marker } from '@biesbjerg/ngx-translate-extract-marker';
8
+ import { TextInputComponent } from '../../../../../../../libs/ui/inputs/src';
9
+ import { TranslateModule } from '@ngx-translate/core';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/common";
12
+ import * as i2 from "@angular/material/tooltip";
13
+ import * as i3 from "@angular/material/radio";
14
+ import * as i4 from "@angular/forms";
15
+ import * as i5 from "@ngx-translate/core";
16
+ export class OnlineServiceResourceInputComponent {
17
+ constructor() {
18
+ this.protocolOptions = [
19
+ {
20
+ label: 'OGC API',
21
+ value: 'ogcFeatures',
22
+ },
23
+ {
24
+ label: 'WFS',
25
+ value: 'wfs',
26
+ },
27
+ {
28
+ label: 'WMS',
29
+ value: 'wms',
30
+ },
31
+ {
32
+ label: 'WMTS',
33
+ value: 'wmts',
34
+ },
35
+ {
36
+ label: 'WPS',
37
+ value: 'wps',
38
+ },
39
+ {
40
+ label: 'ESRI REST',
41
+ value: 'esriRest',
42
+ },
43
+ {
44
+ label: marker('editor.record.onlineResource.protocol.other'),
45
+ value: 'other',
46
+ },
47
+ ];
48
+ }
49
+ ngOnChanges() {
50
+ this.selectedProtocol =
51
+ this.protocolOptions.find((option) => option.value === this.service.accessServiceProtocol)?.value ?? 'other';
52
+ }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OnlineServiceResourceInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
54
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OnlineServiceResourceInputComponent, isStandalone: true, selector: "gn-ui-online-service-resource-input", inputs: { service: "service", protocolHint: "protocolHint" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-[16px] h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"service.accessServiceProtocol\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n<gn-ui-text-input\n [(value)]=\"service.identifierInService\"\n data-cy=\"identifier-in-service\"\n></gn-ui-text-input>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i3.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i3.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OnlineServiceResourceInputComponent, decorators: [{
57
+ type: Component,
58
+ args: [{ selector: 'gn-ui-online-service-resource-input', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
59
+ CommonModule,
60
+ MatIconModule,
61
+ MatTooltipModule,
62
+ MatRadioModule,
63
+ FormsModule,
64
+ TextInputComponent,
65
+ TranslateModule,
66
+ ], template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-[16px] h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"service.accessServiceProtocol\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n<gn-ui-text-input\n [(value)]=\"service.identifierInService\"\n data-cy=\"identifier-in-service\"\n></gn-ui-text-input>\n" }]
67
+ }], propDecorators: { service: [{
68
+ type: Input
69
+ }], protocolHint: [{
70
+ type: Input
71
+ }] } });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFLaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7Ozs7O0FBa0JyRCxNQUFNLE9BQU8sbUNBQW1DO0lBaEJoRDtRQXNCRSxvQkFBZSxHQUdUO1lBQ0o7Z0JBQ0UsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLEtBQUssRUFBRSxhQUFhO2FBQ3JCO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osS0FBSyxFQUFFLEtBQUs7YUFDYjtZQUNEO2dCQUNFLEtBQUssRUFBRSxLQUFLO2dCQUNaLEtBQUssRUFBRSxLQUFLO2FBQ2I7WUFDRDtnQkFDRSxLQUFLLEVBQUUsTUFBTTtnQkFDYixLQUFLLEVBQUUsTUFBTTthQUNkO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osS0FBSyxFQUFFLEtBQUs7YUFDYjtZQUNEO2dCQUNFLEtBQUssRUFBRSxXQUFXO2dCQUNsQixLQUFLLEVBQUUsVUFBVTthQUNsQjtZQUNEO2dCQUNFLEtBQUssRUFBRSxNQUFNLENBQUMsNkNBQTZDLENBQUM7Z0JBQzVELEtBQUssRUFBRSxPQUFPO2FBQ2Y7U0FDRixDQUFBO0tBUUY7SUFOQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLGdCQUFnQjtZQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FDdkIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FDaEUsRUFBRSxLQUFLLElBQUksT0FBTyxDQUFBO0lBQ3ZCLENBQUM7K0dBN0NVLG1DQUFtQzttR0FBbkMsbUNBQW1DLGtMQ25DaEQseThCQStCQSx5RERMSSxZQUFZLCtQQUNaLGFBQWEsOEJBQ2IsZ0JBQWdCLDhIQUNoQixjQUFjLDBSQUNkLFdBQVcsK1ZBQ1gsa0JBQWtCLDhKQUNsQixlQUFlOzs0RkFHTixtQ0FBbUM7a0JBaEIvQyxTQUFTOytCQUNFLHFDQUFxQyxtQkFHOUIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLGtCQUFrQjt3QkFDbEIsZUFBZTtxQkFDaEI7OEJBR1EsT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbydcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sXG4gIFNlcnZpY2VQcm90b2NvbCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgVGV4dElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vbmxpbmUtc2VydmljZS1yZXNvdXJjZS1pbnB1dC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRSYWRpb01vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBPbmxpbmVTZXJ2aWNlUmVzb3VyY2VJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHNlcnZpY2U6IE9taXQ8RGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sICd1cmwnPlxuICBASW5wdXQoKSBwcm90b2NvbEhpbnQ/OiBzdHJpbmdcblxuICBzZWxlY3RlZFByb3RvY29sOiBTZXJ2aWNlUHJvdG9jb2xcblxuICBwcm90b2NvbE9wdGlvbnM6IHtcbiAgICBsYWJlbDogc3RyaW5nXG4gICAgdmFsdWU6IFNlcnZpY2VQcm90b2NvbFxuICB9W10gPSBbXG4gICAge1xuICAgICAgbGFiZWw6ICdPR0MgQVBJJyxcbiAgICAgIHZhbHVlOiAnb2djRmVhdHVyZXMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdXRlMnLFxuICAgICAgdmFsdWU6ICd3ZnMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdXTVMnLFxuICAgICAgdmFsdWU6ICd3bXMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdXTVRTJyxcbiAgICAgIHZhbHVlOiAnd210cycsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ1dQUycsXG4gICAgICB2YWx1ZTogJ3dwcycsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ0VTUkkgUkVTVCcsXG4gICAgICB2YWx1ZTogJ2VzcmlSZXN0JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQub25saW5lUmVzb3VyY2UucHJvdG9jb2wub3RoZXInKSxcbiAgICAgIHZhbHVlOiAnb3RoZXInLFxuICAgIH0sXG4gIF1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJvdG9jb2wgPVxuICAgICAgdGhpcy5wcm90b2NvbE9wdGlvbnMuZmluZChcbiAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB0aGlzLnNlcnZpY2UuYWNjZXNzU2VydmljZVByb3RvY29sXG4gICAgICApPy52YWx1ZSA/PyAnb3RoZXInXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktYmV0d2VlblwiPlxuICA8aDMgY2xhc3M9XCJ0ZXh0LVsxNnB4XSBmb250LWJvbGQgdGV4dC1tYWluIG1iLVsxMnB4XVwiIHRyYW5zbGF0ZT5cbiAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5wcm90b2NvbFxuICA8L2gzPlxuICA8c3BhblxuICAgICpuZ0lmPVwicHJvdG9jb2xIaW50XCJcbiAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgbS0yIGduLXVpLWljb24tc21hbGxcIlxuICAgIFttYXRUb29sdGlwXT1cInByb3RvY29sSGludFwiXG4gICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICA+XG4gICAgaGVscFxuICA8L3NwYW4+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtWzE2cHhdIGgtWzQ4cHhdXCI+XG4gIDxtYXQtcmFkaW8tZ3JvdXBcbiAgICBhcmlhLWxhYmVsbGVkYnk9XCJleGFtcGxlLXJhZGlvLWdyb3VwLWxhYmVsXCJcbiAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLVs4cHhdXCJcbiAgICBbKG5nTW9kZWwpXT1cInNlcnZpY2UuYWNjZXNzU2VydmljZVByb3RvY29sXCJcbiAgPlxuICAgIDxtYXQtcmFkaW8tYnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgcHJvdG9jb2xPcHRpb24gb2YgcHJvdG9jb2xPcHRpb25zXCJcbiAgICAgIFt2YWx1ZV09XCJwcm90b2NvbE9wdGlvbi52YWx1ZVwiXG4gICAgPlxuICAgICAge3sgcHJvdG9jb2xPcHRpb24ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICA8L21hdC1yYWRpby1idXR0b24+XG4gIDwvbWF0LXJhZGlvLWdyb3VwPlxuPC9kaXY+XG48Z24tdWktdGV4dC1pbnB1dFxuICBbKHZhbHVlKV09XCJzZXJ2aWNlLmlkZW50aWZpZXJJblNlcnZpY2VcIlxuICBkYXRhLWN5PVwiaWRlbnRpZmllci1pbi1zZXJ2aWNlXCJcbj48L2duLXVpLXRleHQtaW5wdXQ+XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, TemplateRef, ViewChild, } from '@angular/core';
2
- import { FileInputComponent, TextAreaComponent, TextInputComponent, } from '../../../../../../../../../libs/ui/inputs/src';
2
+ import { FileInputComponent, TextAreaComponent, TextInputComponent, UrlInputComponent, } from '../../../../../../../../../libs/ui/inputs/src';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { OnlineResourceCardComponent } from '../../../online-resource-card/online-resource-card.component';
5
5
  import { ModalDialogComponent, SortableListComponent, } from '../../../../../../../../../libs/ui/layout/src';
@@ -101,6 +101,7 @@ export class FormFieldOnlineLinkResourcesComponent {
101
101
  };
102
102
  this.dialog
103
103
  .open(ModalDialogComponent, {
104
+ width: '800px',
104
105
  data: {
105
106
  title: this.translateService.instant('editor.record.form.field.onlineResource.dialogTitle'),
106
107
  body: this.dialogTemplate,
@@ -122,7 +123,7 @@ export class FormFieldOnlineLinkResourcesComponent {
122
123
  });
123
124
  }
124
125
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldOnlineLinkResourcesComponent, deps: [{ token: i1.NotificationsService }, { token: i2.TranslateService }, { token: i3.PlatformServiceInterface }, { token: i0.ChangeDetectorRef }, { token: i4.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
125
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldOnlineLinkResourcesComponent, isStandalone: true, selector: "gn-ui-form-field-online-link-resources", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], ngImport: i0, template: "<gn-ui-file-input\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleUrlChange($event)\"\n></gn-ui-file-input>\n<div class=\"h-[8px]\"></div>\n<gn-ui-sortable-list\n [items]=\"linkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n>\n</gn-ui-sortable-list>\n<ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n</ng-template>\n\n<ng-template #dialogTemplate let-onlineResource>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input\n extraClass=\"mb-[16px]\"\n [(value)]=\"onlineResource.name\"\n ></gn-ui-text-input>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area [(value)]=\"onlineResource.description\"></gn-ui-text-area>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: FileInputComponent, selector: "gn-ui-file-input", inputs: ["maxSizeMB", "uploadProgress"], outputs: ["fileChange", "urlChange", "uploadCancel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: OnlineResourceCardComponent, selector: "gn-ui-online-resource-card", inputs: ["onlineResource"], outputs: ["modifyClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
126
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldOnlineLinkResourcesComponent, isStandalone: true, selector: "gn-ui-form-field-online-link-resources", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], ngImport: i0, template: "<gn-ui-file-input\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleUrlChange($event)\"\n></gn-ui-file-input>\n<div class=\"h-[8px]\"></div>\n<gn-ui-sortable-list\n [items]=\"linkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n>\n</gn-ui-sortable-list>\n<ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n</ng-template>\n\n<ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area [(value)]=\"onlineResource.description\"></gn-ui-text-area>\n </div>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n ></gn-ui-url-input>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: FileInputComponent, selector: "gn-ui-file-input", inputs: ["maxSizeMB", "uploadProgress"], outputs: ["fileChange", "urlChange", "uploadCancel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: OnlineResourceCardComponent, selector: "gn-ui-online-resource-card", inputs: ["onlineResource"], outputs: ["modifyClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "urlCanParse"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
126
127
  }
127
128
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldOnlineLinkResourcesComponent, decorators: [{
128
129
  type: Component,
@@ -133,8 +134,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
133
134
  OnlineResourceCardComponent,
134
135
  TextInputComponent,
135
136
  TextAreaComponent,
137
+ UrlInputComponent,
136
138
  TranslateModule,
137
- ], template: "<gn-ui-file-input\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleUrlChange($event)\"\n></gn-ui-file-input>\n<div class=\"h-[8px]\"></div>\n<gn-ui-sortable-list\n [items]=\"linkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n>\n</gn-ui-sortable-list>\n<ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n</ng-template>\n\n<ng-template #dialogTemplate let-onlineResource>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input\n extraClass=\"mb-[16px]\"\n [(value)]=\"onlineResource.name\"\n ></gn-ui-text-input>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area [(value)]=\"onlineResource.description\"></gn-ui-text-area>\n</ng-template>\n" }]
139
+ ], template: "<gn-ui-file-input\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleUrlChange($event)\"\n></gn-ui-file-input>\n<div class=\"h-[8px]\"></div>\n<gn-ui-sortable-list\n [items]=\"linkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n>\n</gn-ui-sortable-list>\n<ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n</ng-template>\n\n<ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area [(value)]=\"onlineResource.description\"></gn-ui-text-area>\n </div>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n ></gn-ui-url-input>\n </div>\n</ng-template>\n" }]
138
140
  }], ctorParameters: function () { return [{ type: i1.NotificationsService }, { type: i2.TranslateService }, { type: i3.PlatformServiceInterface }, { type: i0.ChangeDetectorRef }, { type: i4.MatDialog }]; }, propDecorators: { metadataUuid: [{
139
141
  type: Input
140
142
  }], value: [{
@@ -145,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
145
147
  type: ViewChild,
146
148
  args: ['dialogTemplate']
147
149
  }] } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1vbmxpbmUtbGluay1yZXNvdXJjZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcmVjb3JkLWZvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLW9ubGluZS1saW5rLXJlc291cmNlcy9mb3JtLWZpZWxkLW9ubGluZS1saW5rLXJlc291cmNlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtb25saW5lLWxpbmstcmVzb3VyY2VzL2Zvcm0tZmllbGQtb25saW5lLWxpbmstcmVzb3VyY2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBS3RCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLGtCQUFrQixHQUNuQixNQUFNLCtDQUErQyxDQUFBO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQTtBQUMxRyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHFCQUFxQixHQUN0QixNQUFNLCtDQUErQyxDQUFBO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJEQUEyRCxDQUFBO0FBQ2hHLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFB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VSxxQ0FBcUM7bUdBQXJDLHFDQUFxQyx1VENoRGxELHl0Q0FrQ0EsMERES0ksa0JBQWtCLDJKQUNsQixZQUFZLCtCQUNaLHFCQUFxQixxSUFDckIsMkJBQTJCLDZIQUMzQixrQkFBa0IsK0pBQ2xCLGlCQUFpQiw2SkFDakIsZUFBZTs7NEZBR04scUNBQXFDO2tCQWhCakQsU0FBUzsrQkFDRSx3Q0FBd0MsbUJBR2pDLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLGtCQUFrQjt3QkFDbEIsWUFBWTt3QkFDWixxQkFBcUI7d0JBQ3JCLDJCQUEyQjt3QkFDM0Isa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLGVBQWU7cUJBQ2hCO3lPQUdRLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ08sS0FBSztzQkFBakIsS0FBSztnQkFNSSxXQUFXO3NCQUFwQixNQUFNO2dCQUdzQixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBPbmxpbmVMaW5rUmVzb3VyY2UsXG4gIE9ubGluZVJlc291cmNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBGaWxlSW5wdXRDb21wb25lbnQsXG4gIFRleHRBcmVhQ29tcG9uZW50LFxuICBUZXh0SW5wdXRDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE9ubGluZVJlc291cmNlQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL29ubGluZS1yZXNvdXJjZS1jYXJkL29ubGluZS1yZXNvdXJjZS1jYXJkLmNvbXBvbmVudCdcbmltcG9ydCB7XG4gIE1vZGFsRGlhbG9nQ29tcG9uZW50LFxuICBTb3J0YWJsZUxpc3RDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL25vdGlmaWNhdGlvbnMvc3JjJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IFBsYXRmb3JtU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL3BsYXRmb3JtLnNlcnZpY2UuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZydcbmltcG9ydCB7IE1BWF9VUExPQURfU0laRV9NQiB9IGZyb20gJy4uLy4uLy4uLy4uL2ZpZWxkcy5jb25maWcnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWZvcm0tZmllbGQtb25saW5lLWxpbmstcmVzb3VyY2VzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtb25saW5lLWxpbmstcmVzb3VyY2VzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC1vbmxpbmUtbGluay1yZXNvdXJjZXMuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZpbGVJbnB1dENvbXBvbmVudCxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU29ydGFibGVMaXN0Q29tcG9uZW50LFxuICAgIE9ubGluZVJlc291cmNlQ2FyZENvbXBvbmVudCxcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgVGV4dEFyZWFDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRPbmxpbmVMaW5rUmVzb3VyY2VzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbWV0YWRhdGFVdWlkOiBzdHJpbmdcbiAgQElucHV0KCkgc2V0IHZhbHVlKG9ubGluZVJlc291cmNlczogQXJyYXk8T25saW5lUmVzb3VyY2U+KSB7XG4gICAgdGhpcy5hbGxSZXNvdXJjZXMgPSBvbmxpbmVSZXNvdXJjZXNcbiAgICB0aGlzLmxpbmtSZXNvdXJjZXMgPSBvbmxpbmVSZXNvdXJjZXMuZmlsdGVyKFxuICAgICAgKHJlcyk6IHJlcyBpcyBPbmxpbmVMaW5rUmVzb3VyY2UgPT4gcmVzLnR5cGUgPT09ICdsaW5rJ1xuICAgIClcbiAgfVxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxBcnJheTxPbmxpbmVSZXNvdXJjZT4+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyKClcblxuICBAVmlld0NoaWxkKCdkaWFsb2dUZW1wbGF0ZScpIGRpYWxvZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxPbmxpbmVSZXNvdXJjZT5cblxuICBwcml2YXRlIGFsbFJlc291cmNlczogT25saW5lUmVzb3VyY2VbXSA9IFtdXG4gIGxpbmtSZXNvdXJjZXM6IE9ubGluZUxpbmtSZXNvdXJjZVtdID0gW11cbiAgdXBsb2FkUHJvZ3Jlc3MgPSB1bmRlZmluZWRcbiAgdXBsb2FkU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBudWxsXG5cbiAgcHJvdGVjdGVkIE1BWF9VUExPQURfU0laRV9NQiA9IE1BWF9VUExPQURfU0laRV9NQlxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uc1NlcnZpY2U6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHBsYXRmb3JtU2VydmljZTogUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2dcbiAgKSB7fVxuXG4gIGhhbmRsZUZpbGVDaGFuZ2UoZmlsZTogRmlsZSkge1xuICAgIHRoaXMudXBsb2FkUHJvZ3Jlc3MgPSAwXG4gICAgdGhpcy51cGxvYWRTdWJzY3JpcHRpb24gPSB0aGlzLnBsYXRmb3JtU2VydmljZVxuICAgICAgLmF0dGFjaEZpbGVUb1JlY29yZCh0aGlzLm1ldGFkYXRhVXVpZCwgZmlsZSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3Byb2dyZXNzJykge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IGV2ZW50LnByb2dyZXNzXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxuICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZFByb2dyZXNzID0gdW5kZWZpbmVkXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxuICAgICAgICAgICAgY29uc3QgbmV3UmVzb3VyY2U6IE9ubGluZUxpbmtSZXNvdXJjZSA9IHtcbiAgICAgICAgICAgICAgdHlwZTogJ2xpbmsnLFxuICAgICAgICAgICAgICB1cmw6IG5ldyBVUkwoZXZlbnQuYXR0YWNobWVudC51cmwpLFxuICAgICAgICAgICAgICBuYW1lOiBldmVudC5hdHRhY2htZW50LmZpbGVOYW1lLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KFsuLi50aGlzLmFsbFJlc291cmNlcywgbmV3UmVzb3VyY2VdKVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcjogRXJyb3IpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IubWVzc2FnZSksXG4gICAgICB9KVxuICB9XG5cbiAgaGFuZGxlVXBsb2FkQ2FuY2VsKCkge1xuICAgIGlmICh0aGlzLnVwbG9hZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICAgICAgdGhpcy51cGxvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVVybENoYW5nZSh1cmw6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBuYW1lID0gdXJsLnNwbGl0KCcvJykucG9wKClcbiAgICAgIGNvbnN0IG5ld0xpbms6IE9ubGluZUxpbmtSZXNvdXJjZSA9IHtcbiAgICAgICAgdHlwZTogJ2xpbmsnLFxuICAgICAgICB1cmw6IG5ldyBVUkwodXJsKSxcbiAgICAgICAgbmFtZSxcbiAgICAgIH1cbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChbLi4udGhpcy5hbGxSZXNvdXJjZXMsIG5ld0xpbmtdKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3IoKGUgYXMgRXJyb3IpLm1lc3NhZ2UpXG4gICAgfVxuICB9XG5cbiAgaGFuZGxlUmVzb3VyY2VzQ2hhbmdlKGl0ZW1zOiB1bmtub3duW10pIHtcbiAgICBjb25zdCBsaW5rcyA9IGl0ZW1zIGFzIE9ubGluZVJlc291cmNlW11cbiAgICBjb25zdCBuZXdSZXNvdXJjZXMgPSBbXG4gICAgICAuLi50aGlzLmFsbFJlc291cmNlcy5maWx0ZXIoKHIpID0+IHIudHlwZSAhPT0gJ2xpbmsnKSxcbiAgICAgIC4uLmxpbmtzLFxuICAgIF1cbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQobmV3UmVzb3VyY2VzKVxuICB9XG5cbiAgaGFuZGxlUmVzb3VyY2VNb2RpZnkocmVzb3VyY2U6IE9ubGluZUxpbmtSZXNvdXJjZSwgaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMub3BlbkVkaXREaWFsb2cocmVzb3VyY2UsIGluZGV4KVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvcjogc3RyaW5nKSB7XG4gICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2Uuc2hvd05vdGlmaWNhdGlvbih7XG4gICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAnZWRpdG9yLnJlY29yZC5vbmxpbmVSZXNvdXJjZUVycm9yLnRpdGxlJ1xuICAgICAgKSxcbiAgICAgIHRleHQ6IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAnZWRpdG9yLnJlY29yZC5vbmxpbmVSZXNvdXJjZUVycm9yLmJvZHknXG4gICAgICApfSAke2Vycm9yfWAsXG4gICAgICBjbG9zZU1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAnZWRpdG9yLnJlY29yZC5vbmxpbmVSZXNvdXJjZUVycm9yLmNsb3NlTWVzc2FnZSdcbiAgICAgICksXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkVkaXREaWFsb2cocmVzb3VyY2U6IE9ubGluZUxpbmtSZXNvdXJjZSwgaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHJlc291cmNlQ29weSA9IHtcbiAgICAgIC4uLnJlc291cmNlLFxuICAgIH1cbiAgICB0aGlzLmRpYWxvZ1xuICAgICAgLm9wZW4oTW9kYWxEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZGlhbG9nVGl0bGUnXG4gICAgICAgICAgKSxcbiAgICAgICAgICBib2R5OiB0aGlzLmRpYWxvZ1RlbXBsYXRlLFxuICAgICAgICAgIGJvZHlDb250ZXh0OiByZXNvdXJjZUNvcHksXG4gICAgICAgICAgY29uZmlybVRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS5jb25maXJtJ1xuICAgICAgICAgICksXG4gICAgICAgICAgY2FuY2VsVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAnZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmNhbmNlbCdcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAuc3Vic2NyaWJlKChjb25maXJtZWQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgaWYgKCFjb25maXJtZWQpIHJldHVyblxuICAgICAgICBjb25zdCBuZXdMaW5rcyA9IFsuLi50aGlzLmxpbmtSZXNvdXJjZXNdXG4gICAgICAgIG5ld0xpbmtzLnNwbGljZShpbmRleCwgMSwgcmVzb3VyY2VDb3B5KVxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoW1xuICAgICAgICAgIC4uLnRoaXMuYWxsUmVzb3VyY2VzLmZpbHRlcigocikgPT4gci50eXBlICE9PSAnbGluaycpLFxuICAgICAgICAgIC4uLm5ld0xpbmtzLFxuICAgICAgICBdKVxuICAgICAgfSlcbiAgfVxufVxuIiwiPGduLXVpLWZpbGUtaW5wdXRcbiAgW21heFNpemVNQl09XCJNQVhfVVBMT0FEX1NJWkVfTUJcIlxuICAoZmlsZUNoYW5nZSk9XCJoYW5kbGVGaWxlQ2hhbmdlKCRldmVudClcIlxuICAodXBsb2FkQ2FuY2VsKT1cImhhbmRsZVVwbG9hZENhbmNlbCgpXCJcbiAgW3VwbG9hZFByb2dyZXNzXT1cInVwbG9hZFByb2dyZXNzXCJcbiAgKHVybENoYW5nZSk9XCJoYW5kbGVVcmxDaGFuZ2UoJGV2ZW50KVwiXG4+PC9nbi11aS1maWxlLWlucHV0PlxuPGRpdiBjbGFzcz1cImgtWzhweF1cIj48L2Rpdj5cbjxnbi11aS1zb3J0YWJsZS1saXN0XG4gIFtpdGVtc109XCJsaW5rUmVzb3VyY2VzXCJcbiAgKGl0ZW1zT3JkZXJDaGFuZ2UpPVwiaGFuZGxlUmVzb3VyY2VzQ2hhbmdlKCRldmVudClcIlxuICBbZWxlbWVudFRlbXBsYXRlXT1cInRlbXBsYXRlXCJcbj5cbjwvZ24tdWktc29ydGFibGUtbGlzdD5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGUgbGV0LW9ubGluZVJlc291cmNlIGxldC1pbmRleD1cImluZGV4XCI+XG4gIDxnbi11aS1vbmxpbmUtcmVzb3VyY2UtY2FyZFxuICAgIFtvbmxpbmVSZXNvdXJjZV09XCJvbmxpbmVSZXNvdXJjZVwiXG4gICAgKG1vZGlmeUNsaWNrKT1cImhhbmRsZVJlc291cmNlTW9kaWZ5KG9ubGluZVJlc291cmNlLCBpbmRleClcIlxuICA+PC9nbi11aS1vbmxpbmUtcmVzb3VyY2UtY2FyZD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGlhbG9nVGVtcGxhdGUgbGV0LW9ubGluZVJlc291cmNlPlxuICA8aDMgY2xhc3M9XCJ0ZXh0LVsxNnB4XSBmb250LWJvbGQgdGV4dC1tYWluIG1iLVsxMnB4XVwiIHRyYW5zbGF0ZT5cbiAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC50aXRsZVxuICA8L2gzPlxuICA8Z24tdWktdGV4dC1pbnB1dFxuICAgIGV4dHJhQ2xhc3M9XCJtYi1bMTZweF1cIlxuICAgIFsodmFsdWUpXT1cIm9ubGluZVJlc291cmNlLm5hbWVcIlxuICA+PC9nbi11aS10ZXh0LWlucHV0PlxuICA8aDMgY2xhc3M9XCJ0ZXh0LVsxNnB4XSBmb250LWJvbGQgdGV4dC1tYWluIG1iLVsxMnB4XVwiIHRyYW5zbGF0ZT5cbiAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5kZXNjcmlwdGlvblxuICA8L2gzPlxuICA8Z24tdWktdGV4dC1hcmVhIFsodmFsdWUpXT1cIm9ubGluZVJlc291cmNlLmRlc2NyaXB0aW9uXCI+PC9nbi11aS10ZXh0LWFyZWE+XG48L25nLXRlbXBsYXRlPlxuIl19
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1vbmxpbmUtbGluay1yZXNvdXJjZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcmVjb3JkLWZvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLW9ubGluZS1saW5rLXJlc291cmNlcy9mb3JtLWZpZWxkLW9ubGluZS1saW5rLXJlc291cmNlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtb25saW5lLWxpbmstcmVzb3VyY2VzL2Zvcm0tZmllbGQtb25saW5lLWxpbmstcmVzb3VyY2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBS3RCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixpQkFBaUIsR0FDbEIsTUFBTSwrQ0FBK0MsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOERBQThELENBQUE7QUFDMUcsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixxQkFBcUIsR0FDdEIsTUFBTSwrQ0FBK0MsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyREFBMkQsQ0FBQTtBQUNoRyxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixF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Q0osQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDOytHQXJJVSxxQ0FBcUM7bUdBQXJDLHFDQUFxQyx1VENsRGxELDIvQ0EyQ0EsMERESEksa0JBQWtCLDJKQUNsQixZQUFZLCtCQUNaLHFCQUFxQixxSUFDckIsMkJBQTJCLDZIQUMzQixrQkFBa0IsK0pBQ2xCLGlCQUFpQiw4SkFDakIsaUJBQWlCLGdLQUNqQixlQUFlOzs0RkFHTixxQ0FBcUM7a0JBakJqRCxTQUFTOytCQUNFLHdDQUF3QyxtQkFHakMsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1Asa0JBQWtCO3dCQUNsQixZQUFZO3dCQUNaLHFCQUFxQjt3QkFDckIsMkJBQTJCO3dCQUMzQixrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQixlQUFlO3FCQUNoQjt5T0FHUSxZQUFZO3NCQUFwQixLQUFLO2dCQUNPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBTUksV0FBVztzQkFBcEIsTUFBTTtnQkFHc0IsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgT25saW5lTGlua1Jlc291cmNlLFxuICBPbmxpbmVSZXNvdXJjZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgRmlsZUlucHV0Q29tcG9uZW50LFxuICBUZXh0QXJlYUNvbXBvbmVudCxcbiAgVGV4dElucHV0Q29tcG9uZW50LFxuICBVcmxJbnB1dENvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgT25saW5lUmVzb3VyY2VDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vb25saW5lLXJlc291cmNlLWNhcmQvb25saW5lLXJlc291cmNlLWNhcmQuY29tcG9uZW50J1xuaW1wb3J0IHtcbiAgTW9kYWxEaWFsb2dDb21wb25lbnQsXG4gIFNvcnRhYmxlTGlzdENvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjJ1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbm90aWZpY2F0aW9ucy9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvcGxhdGZvcm0uc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJ1xuaW1wb3J0IHsgTUFYX1VQTE9BRF9TSVpFX01CIH0gZnJvbSAnLi4vLi4vLi4vLi4vZmllbGRzLmNvbmZpZydcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC1vbmxpbmUtbGluay1yZXNvdXJjZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1maWVsZC1vbmxpbmUtbGluay1yZXNvdXJjZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWZpZWxkLW9ubGluZS1saW5rLXJlc291cmNlcy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRmlsZUlucHV0Q29tcG9uZW50LFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTb3J0YWJsZUxpc3RDb21wb25lbnQsXG4gICAgT25saW5lUmVzb3VyY2VDYXJkQ29tcG9uZW50LFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBUZXh0QXJlYUNvbXBvbmVudCxcbiAgICBVcmxJbnB1dENvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZE9ubGluZUxpbmtSZXNvdXJjZXNDb21wb25lbnQge1xuICBASW5wdXQoKSBtZXRhZGF0YVV1aWQ6IHN0cmluZ1xuICBASW5wdXQoKSBzZXQgdmFsdWUob25saW5lUmVzb3VyY2VzOiBBcnJheTxPbmxpbmVSZXNvdXJjZT4pIHtcbiAgICB0aGlzLmFsbFJlc291cmNlcyA9IG9ubGluZVJlc291cmNlc1xuICAgIHRoaXMubGlua1Jlc291cmNlcyA9IG9ubGluZVJlc291cmNlcy5maWx0ZXIoXG4gICAgICAocmVzKTogcmVzIGlzIE9ubGluZUxpbmtSZXNvdXJjZSA9PiByZXMudHlwZSA9PT0gJ2xpbmsnXG4gICAgKVxuICB9XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEFycmF5PE9ubGluZVJlc291cmNlPj4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZ1RlbXBsYXRlJykgZGlhbG9nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPE9ubGluZVJlc291cmNlPlxuXG4gIHByaXZhdGUgYWxsUmVzb3VyY2VzOiBPbmxpbmVSZXNvdXJjZVtdID0gW11cbiAgbGlua1Jlc291cmNlczogT25saW5lTGlua1Jlc291cmNlW10gPSBbXVxuICB1cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICB1cGxvYWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGxcblxuICBwcm90ZWN0ZWQgTUFYX1VQTE9BRF9TSVpFX01CID0gTUFYX1VQTE9BRF9TSVpFX01CXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25zU2VydmljZTogTm90aWZpY2F0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGxhdGZvcm1TZXJ2aWNlOiBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1xuICApIHt9XG5cbiAgaGFuZGxlRmlsZUNoYW5nZShmaWxlOiBGaWxlKSB7XG4gICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IDBcbiAgICB0aGlzLnVwbG9hZFN1YnNjcmlwdGlvbiA9IHRoaXMucGxhdGZvcm1TZXJ2aWNlXG4gICAgICAuYXR0YWNoRmlsZVRvUmVjb3JkKHRoaXMubWV0YWRhdGFVdWlkLCBmaWxlKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChldmVudC50eXBlID09PSAncHJvZ3Jlc3MnKSB7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZFByb2dyZXNzID0gZXZlbnQucHJvZ3Jlc3NcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICAgICAgfSBlbHNlIGlmIChldmVudC50eXBlID09PSAnc3VjY2VzcycpIHtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkUHJvZ3Jlc3MgPSB1bmRlZmluZWRcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICAgICAgICBjb25zdCBuZXdSZXNvdXJjZTogT25saW5lTGlua1Jlc291cmNlID0ge1xuICAgICAgICAgICAgICB0eXBlOiAnbGluaycsXG4gICAgICAgICAgICAgIHVybDogbmV3IFVSTChldmVudC5hdHRhY2htZW50LnVybCksXG4gICAgICAgICAgICAgIG5hbWU6IGV2ZW50LmF0dGFjaG1lbnQuZmlsZU5hbWUsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoWy4uLnRoaXMuYWxsUmVzb3VyY2VzLCBuZXdSZXNvdXJjZV0pXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycm9yOiBFcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvci5tZXNzYWdlKSxcbiAgICAgIH0pXG4gIH1cblxuICBoYW5kbGVVcGxvYWRDYW5jZWwoKSB7XG4gICAgaWYgKHRoaXMudXBsb2FkU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnVwbG9hZFByb2dyZXNzID0gdW5kZWZpbmVkXG4gICAgICB0aGlzLnVwbG9hZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gICAgfVxuICB9XG5cbiAgaGFuZGxlVXJsQ2hhbmdlKHVybDogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG5hbWUgPSB1cmwuc3BsaXQoJy8nKS5wb3AoKVxuICAgICAgY29uc3QgbmV3TGluazogT25saW5lTGlua1Jlc291cmNlID0ge1xuICAgICAgICB0eXBlOiAnbGluaycsXG4gICAgICAgIHVybDogbmV3IFVSTCh1cmwpLFxuICAgICAgICBuYW1lLFxuICAgICAgfVxuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KFsuLi50aGlzLmFsbFJlc291cmNlcywgbmV3TGlua10pXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5oYW5kbGVFcnJvcigoZSBhcyBFcnJvcikubWVzc2FnZSlcbiAgICB9XG4gIH1cblxuICBoYW5kbGVSZXNvdXJjZXNDaGFuZ2UoaXRlbXM6IHVua25vd25bXSkge1xuICAgIGNvbnN0IGxpbmtzID0gaXRlbXMgYXMgT25saW5lUmVzb3VyY2VbXVxuICAgIGNvbnN0IG5ld1Jlc291cmNlcyA9IFtcbiAgICAgIC4uLnRoaXMuYWxsUmVzb3VyY2VzLmZpbHRlcigocikgPT4gci50eXBlICE9PSAnbGluaycpLFxuICAgICAgLi4ubGlua3MsXG4gICAgXVxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChuZXdSZXNvdXJjZXMpXG4gIH1cblxuICBoYW5kbGVSZXNvdXJjZU1vZGlmeShyZXNvdXJjZTogT25saW5lTGlua1Jlc291cmNlLCBpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5vcGVuRWRpdERpYWxvZyhyZXNvdXJjZSwgaW5kZXgpXG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yKGVycm9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLnVwbG9hZFByb2dyZXNzID0gdW5kZWZpbmVkXG4gICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5zaG93Tm90aWZpY2F0aW9uKHtcbiAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICdlZGl0b3IucmVjb3JkLm9ubGluZVJlc291cmNlRXJyb3IudGl0bGUnXG4gICAgICApLFxuICAgICAgdGV4dDogYCR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICdlZGl0b3IucmVjb3JkLm9ubGluZVJlc291cmNlRXJyb3IuYm9keSdcbiAgICAgICl9ICR7ZXJyb3J9YCxcbiAgICAgIGNsb3NlTWVzc2FnZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICdlZGl0b3IucmVjb3JkLm9ubGluZVJlc291cmNlRXJyb3IuY2xvc2VNZXNzYWdlJ1xuICAgICAgKSxcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVuRWRpdERpYWxvZyhyZXNvdXJjZTogT25saW5lTGlua1Jlc291cmNlLCBpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgcmVzb3VyY2VDb3B5ID0ge1xuICAgICAgLi4ucmVzb3VyY2UsXG4gICAgfVxuICAgIHRoaXMuZGlhbG9nXG4gICAgICAub3BlbihNb2RhbERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICB3aWR0aDogJzgwMHB4JyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZGlhbG9nVGl0bGUnXG4gICAgICAgICAgKSxcbiAgICAgICAgICBib2R5OiB0aGlzLmRpYWxvZ1RlbXBsYXRlLFxuICAgICAgICAgIGJvZHlDb250ZXh0OiByZXNvdXJjZUNvcHksXG4gICAgICAgICAgY29uZmlybVRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS5jb25maXJtJ1xuICAgICAgICAgICksXG4gICAgICAgICAgY2FuY2VsVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAnZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmNhbmNlbCdcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAuc3Vic2NyaWJlKChjb25maXJtZWQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgaWYgKCFjb25maXJtZWQpIHJldHVyblxuICAgICAgICBjb25zdCBuZXdMaW5rcyA9IFsuLi50aGlzLmxpbmtSZXNvdXJjZXNdXG4gICAgICAgIG5ld0xpbmtzLnNwbGljZShpbmRleCwgMSwgcmVzb3VyY2VDb3B5KVxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoW1xuICAgICAgICAgIC4uLnRoaXMuYWxsUmVzb3VyY2VzLmZpbHRlcigocikgPT4gci50eXBlICE9PSAnbGluaycpLFxuICAgICAgICAgIC4uLm5ld0xpbmtzLFxuICAgICAgICBdKVxuICAgICAgfSlcbiAgfVxufVxuIiwiPGduLXVpLWZpbGUtaW5wdXRcbiAgW21heFNpemVNQl09XCJNQVhfVVBMT0FEX1NJWkVfTUJcIlxuICAoZmlsZUNoYW5nZSk9XCJoYW5kbGVGaWxlQ2hhbmdlKCRldmVudClcIlxuICAodXBsb2FkQ2FuY2VsKT1cImhhbmRsZVVwbG9hZENhbmNlbCgpXCJcbiAgW3VwbG9hZFByb2dyZXNzXT1cInVwbG9hZFByb2dyZXNzXCJcbiAgKHVybENoYW5nZSk9XCJoYW5kbGVVcmxDaGFuZ2UoJGV2ZW50KVwiXG4+PC9nbi11aS1maWxlLWlucHV0PlxuPGRpdiBjbGFzcz1cImgtWzhweF1cIj48L2Rpdj5cbjxnbi11aS1zb3J0YWJsZS1saXN0XG4gIFtpdGVtc109XCJsaW5rUmVzb3VyY2VzXCJcbiAgKGl0ZW1zT3JkZXJDaGFuZ2UpPVwiaGFuZGxlUmVzb3VyY2VzQ2hhbmdlKCRldmVudClcIlxuICBbZWxlbWVudFRlbXBsYXRlXT1cInRlbXBsYXRlXCJcbj5cbjwvZ24tdWktc29ydGFibGUtbGlzdD5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGUgbGV0LW9ubGluZVJlc291cmNlIGxldC1pbmRleD1cImluZGV4XCI+XG4gIDxnbi11aS1vbmxpbmUtcmVzb3VyY2UtY2FyZFxuICAgIFtvbmxpbmVSZXNvdXJjZV09XCJvbmxpbmVSZXNvdXJjZVwiXG4gICAgKG1vZGlmeUNsaWNrKT1cImhhbmRsZVJlc291cmNlTW9kaWZ5KG9ubGluZVJlc291cmNlLCBpbmRleClcIlxuICA+PC9nbi11aS1vbmxpbmUtcmVzb3VyY2UtY2FyZD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGlhbG9nVGVtcGxhdGUgbGV0LW9ubGluZVJlc291cmNlPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtWzE2cHhdXCI+XG4gICAgPGRpdj5cbiAgICAgIDxoMyBjbGFzcz1cInRleHQtWzE2cHhdIGZvbnQtYm9sZCB0ZXh0LW1haW4gbWItWzEycHhdXCIgdHJhbnNsYXRlPlxuICAgICAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC50aXRsZVxuICAgICAgPC9oMz5cbiAgICAgIDxnbi11aS10ZXh0LWlucHV0IFsodmFsdWUpXT1cIm9ubGluZVJlc291cmNlLm5hbWVcIj48L2duLXVpLXRleHQtaW5wdXQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxoMyBjbGFzcz1cInRleHQtWzE2cHhdIGZvbnQtYm9sZCB0ZXh0LW1haW4gbWItWzEycHhdXCIgdHJhbnNsYXRlPlxuICAgICAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5kZXNjcmlwdGlvblxuICAgICAgPC9oMz5cbiAgICAgIDxnbi11aS10ZXh0LWFyZWEgWyh2YWx1ZSldPVwib25saW5lUmVzb3VyY2UuZGVzY3JpcHRpb25cIj48L2duLXVpLXRleHQtYXJlYT5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cInctZnVsbCBib3JkZXItYiBib3JkZXItZ3JheS0zMDBcIj48L3NwYW4+XG4gICAgPGduLXVpLXVybC1pbnB1dFxuICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgW2Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgW3ZhbHVlXT1cIm9ubGluZVJlc291cmNlLnVybFwiXG4gICAgPjwvZ24tdWktdXJsLWlucHV0PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,191 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, TemplateRef, ViewChild, } from '@angular/core';
3
+ import { MatDialog } from '@angular/material/dialog';
4
+ import { marker } from '@biesbjerg/ngx-translate-extract-marker';
5
+ import { PlatformServiceInterface } from '../../../../../../../../../libs/common/domain/src/lib/platform.service.interface';
6
+ import { NotificationsService } from '../../../../../../../../../libs/feature/notifications/src';
7
+ import { FileInputComponent, SwitchToggleComponent, TextAreaComponent, TextInputComponent, UrlInputComponent, } from '../../../../../../../../../libs/ui/inputs/src';
8
+ import { ModalDialogComponent, SortableListComponent, } from '../../../../../../../../../libs/ui/layout/src';
9
+ import { TranslateModule, TranslateService } from '@ngx-translate/core';
10
+ import { MAX_UPLOAD_SIZE_MB } from '../../../../fields.config';
11
+ import { OnlineResourceCardComponent } from '../../../online-resource-card/online-resource-card.component';
12
+ import { OnlineServiceResourceInputComponent } from '../../../online-service-resource-input/online-service-resource-input.component';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "../../../../../../../../../libs/feature/notifications/src";
15
+ import * as i2 from "@ngx-translate/core";
16
+ import * as i3 from "../../../../../../../../../libs/common/domain/src/lib/platform.service.interface";
17
+ import * as i4 from "@angular/material/dialog";
18
+ import * as i5 from "@angular/common";
19
+ export class FormFieldOnlineResourcesComponent {
20
+ set value(onlineResources) {
21
+ this.allResources = onlineResources;
22
+ this.notLinkResources = onlineResources.filter((res) => res.type !== 'link');
23
+ }
24
+ constructor(notificationsService, translateService, platformService, cd, dialog) {
25
+ this.notificationsService = notificationsService;
26
+ this.translateService = translateService;
27
+ this.platformService = platformService;
28
+ this.cd = cd;
29
+ this.dialog = dialog;
30
+ this.valueChange = new EventEmitter();
31
+ this.typeOptions = [
32
+ {
33
+ label: marker('editor.record.form.field.onlineResource.toggle.dataset'),
34
+ value: 'download',
35
+ checked: true,
36
+ },
37
+ {
38
+ label: marker('editor.record.form.field.onlineResource.toggle.service'),
39
+ value: 'service',
40
+ checked: false,
41
+ },
42
+ ];
43
+ this.selectedType = 'download';
44
+ this.allResources = [];
45
+ this.notLinkResources = [];
46
+ this.uploadProgress = undefined;
47
+ this.uploadSubscription = null;
48
+ this.newService = {
49
+ type: 'service',
50
+ accessServiceProtocol: 'ogcFeatures',
51
+ identifierInService: '',
52
+ };
53
+ this.MAX_UPLOAD_SIZE_MB = MAX_UPLOAD_SIZE_MB;
54
+ }
55
+ onSelectedTypeChange(selectedType) {
56
+ this.selectedType = selectedType;
57
+ }
58
+ handleFileChange(file) {
59
+ this.uploadProgress = 0;
60
+ this.uploadSubscription = this.platformService
61
+ .attachFileToRecord(this.metadataUuid, file)
62
+ .subscribe({
63
+ next: (event) => {
64
+ if (event.type === 'progress') {
65
+ this.uploadProgress = event.progress;
66
+ this.cd.detectChanges();
67
+ }
68
+ else if (event.type === 'success') {
69
+ this.uploadProgress = undefined;
70
+ this.cd.detectChanges();
71
+ const newResource = {
72
+ type: 'download',
73
+ url: new URL(event.attachment.url),
74
+ name: event.attachment.fileName,
75
+ sizeBytes: event.sizeBytes, // WARNING: this is the only time that sizeBytes is set
76
+ };
77
+ this.valueChange.emit([...this.allResources, newResource]);
78
+ }
79
+ },
80
+ error: (error) => this.handleError(error.message),
81
+ });
82
+ }
83
+ handleUploadCancel() {
84
+ if (this.uploadSubscription) {
85
+ this.uploadProgress = undefined;
86
+ this.uploadSubscription.unsubscribe();
87
+ }
88
+ }
89
+ handleDownloadUrlChange(url) {
90
+ try {
91
+ const name = url.split('/').pop();
92
+ const newLink = {
93
+ type: 'download',
94
+ url: new URL(url),
95
+ name,
96
+ };
97
+ this.valueChange.emit([...this.allResources, newLink]);
98
+ }
99
+ catch (e) {
100
+ this.handleError(e.message);
101
+ }
102
+ }
103
+ handleServiceUrlChange(url) {
104
+ this.valueChange.emit([
105
+ ...this.allResources,
106
+ {
107
+ ...this.newService,
108
+ url: new URL(url),
109
+ },
110
+ ]);
111
+ }
112
+ handleServiceModify(oldService, newService) {
113
+ oldService.accessServiceProtocol = newService.accessServiceProtocol;
114
+ oldService.identifierInService = newService.identifierInService;
115
+ oldService.url = newService.url;
116
+ }
117
+ handleResourcesChange(items) {
118
+ const notLinks = items;
119
+ const newResources = [
120
+ ...this.allResources.filter((r) => r.type === 'link'),
121
+ ...notLinks,
122
+ ];
123
+ this.valueChange.emit(newResources);
124
+ }
125
+ handleResourceModify(resource, index) {
126
+ this.openEditDialog(resource, index);
127
+ }
128
+ handleError(error) {
129
+ this.uploadProgress = undefined;
130
+ this.notificationsService.showNotification({
131
+ type: 'error',
132
+ title: this.translateService.instant('editor.record.onlineResourceError.title'),
133
+ text: `${this.translateService.instant('editor.record.onlineResourceError.body')} ${error}`,
134
+ closeMessage: this.translateService.instant('editor.record.onlineResourceError.closeMessage'),
135
+ });
136
+ }
137
+ openEditDialog(resource, index) {
138
+ const resourceCopy = {
139
+ ...resource,
140
+ };
141
+ this.dialog
142
+ .open(ModalDialogComponent, {
143
+ width: '800px',
144
+ data: {
145
+ title: this.translateService.instant('editor.record.form.field.onlineResource.dialogTitle'),
146
+ body: this.dialogTemplate,
147
+ bodyContext: resourceCopy,
148
+ confirmText: this.translateService.instant('editor.record.form.field.onlineResource.confirm'),
149
+ cancelText: this.translateService.instant('editor.record.form.field.onlineResource.cancel'),
150
+ },
151
+ })
152
+ .afterClosed()
153
+ .subscribe((confirmed) => {
154
+ if (!confirmed)
155
+ return;
156
+ const newNotLinks = [...this.notLinkResources];
157
+ newNotLinks.splice(index, 1, resourceCopy);
158
+ this.valueChange.emit([
159
+ ...this.allResources.filter((r) => r.type === 'link'),
160
+ ...newNotLinks,
161
+ ]);
162
+ });
163
+ }
164
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldOnlineResourcesComponent, deps: [{ token: i1.NotificationsService }, { token: i2.TranslateService }, { token: i3.PlatformServiceInterface }, { token: i0.ChangeDetectorRef }, { token: i4.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
165
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldOnlineResourcesComponent, isStandalone: true, selector: "gn-ui-form-field-online-resources", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], ngImport: i0, template: "<gn-ui-switch-toggle\n [options]=\"typeOptions\"\n (selectedValue)=\"onSelectedTypeChange($event.value)\"\n extraClasses=\"grow\"\n data-cy=\"online-resources-type\"\n></gn-ui-switch-toggle>\n<div class=\"h-[8px]\"></div>\n<gn-ui-file-input\n *ngIf=\"selectedType === 'download'\"\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleDownloadUrlChange($event)\"\n></gn-ui-file-input>\n<div\n *ngIf=\"selectedType === 'service'\"\n class=\"w-full border-2 border-dashed rounded-lg p-6 flex flex-col gap-[16px]\"\n>\n <gn-ui-online-service-resource-input\n [service]=\"newService\"\n ></gn-ui-online-service-resource-input>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [urlCanParse]=\"true\"\n (valueChange)=\"handleServiceUrlChange($event)\"\n ></gn-ui-url-input>\n</div>\n<div class=\"h-[8px]\"></div>\n<gn-ui-sortable-list\n [items]=\"notLinkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n>\n</gn-ui-sortable-list>\n<ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n</ng-template>\n\n<ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area [(value)]=\"onlineResource.description\"></gn-ui-text-area>\n </div>\n <ng-container *ngIf=\"onlineResource.type === 'service'\">\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-online-service-resource-input\n [service]=\"onlineResource\"\n ></gn-ui-online-service-resource-input>\n </ng-container>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n ></gn-ui-url-input>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SwitchToggleComponent, selector: "gn-ui-switch-toggle", inputs: ["options", "ariaLabel", "extraClasses"], outputs: ["selectedValue"] }, { kind: "component", type: FileInputComponent, selector: "gn-ui-file-input", inputs: ["maxSizeMB", "uploadProgress"], outputs: ["fileChange", "urlChange", "uploadCancel"] }, { kind: "component", type: OnlineServiceResourceInputComponent, selector: "gn-ui-online-service-resource-input", inputs: ["service", "protocolHint"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "urlCanParse"], outputs: ["valueChange"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: OnlineResourceCardComponent, selector: "gn-ui-online-resource-card", inputs: ["onlineResource"], outputs: ["modifyClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
166
+ }
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldOnlineResourcesComponent, decorators: [{
168
+ type: Component,
169
+ args: [{ selector: 'gn-ui-form-field-online-resources', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
170
+ CommonModule,
171
+ SwitchToggleComponent,
172
+ FileInputComponent,
173
+ OnlineServiceResourceInputComponent,
174
+ UrlInputComponent,
175
+ SortableListComponent,
176
+ OnlineResourceCardComponent,
177
+ TextInputComponent,
178
+ TextAreaComponent,
179
+ TranslateModule,
180
+ ], template: "<gn-ui-switch-toggle\n [options]=\"typeOptions\"\n (selectedValue)=\"onSelectedTypeChange($event.value)\"\n extraClasses=\"grow\"\n data-cy=\"online-resources-type\"\n></gn-ui-switch-toggle>\n<div class=\"h-[8px]\"></div>\n<gn-ui-file-input\n *ngIf=\"selectedType === 'download'\"\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleDownloadUrlChange($event)\"\n></gn-ui-file-input>\n<div\n *ngIf=\"selectedType === 'service'\"\n class=\"w-full border-2 border-dashed rounded-lg p-6 flex flex-col gap-[16px]\"\n>\n <gn-ui-online-service-resource-input\n [service]=\"newService\"\n ></gn-ui-online-service-resource-input>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [urlCanParse]=\"true\"\n (valueChange)=\"handleServiceUrlChange($event)\"\n ></gn-ui-url-input>\n</div>\n<div class=\"h-[8px]\"></div>\n<gn-ui-sortable-list\n [items]=\"notLinkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n>\n</gn-ui-sortable-list>\n<ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n</ng-template>\n\n<ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area [(value)]=\"onlineResource.description\"></gn-ui-text-area>\n </div>\n <ng-container *ngIf=\"onlineResource.type === 'service'\">\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-online-service-resource-input\n [service]=\"onlineResource\"\n ></gn-ui-online-service-resource-input>\n </ng-container>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n ></gn-ui-url-input>\n </div>\n</ng-template>\n" }]
181
+ }], ctorParameters: function () { return [{ type: i1.NotificationsService }, { type: i2.TranslateService }, { type: i3.PlatformServiceInterface }, { type: i0.ChangeDetectorRef }, { type: i4.MatDialog }]; }, propDecorators: { metadataUuid: [{
182
+ type: Input
183
+ }], value: [{
184
+ type: Input
185
+ }], valueChange: [{
186
+ type: Output
187
+ }], dialogTemplate: [{
188
+ type: ViewChild,
189
+ args: ['dialogTemplate']
190
+ }] } });
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1vbmxpbmUtcmVzb3VyY2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3JlY29yZC1mb3JtL2Zvcm0tZmllbGQvZm9ybS1maWVsZC1vbmxpbmUtcmVzb3VyY2VzL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy9mb3JtLWZpZWxkLW9ubGluZS1yZXNvdXJjZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFPaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0ZBQWtGLENBQUE7QUFDM0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkRBQTJELENBQUE7QUFDaEcsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixxQkFBcUIsRUFFckIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixpQkFBaUIsR0FDbEIsTUFBTSwrQ0FBK0MsQ0FBQTtBQUN0RCxPQUFPLEVBQ0wsb0JB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YUFDZixDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7K0dBaExVLGlDQUFpQzttR0FBakMsaUNBQWlDLGtUQy9EOUMsay9FQXVFQSx5RERwQkksWUFBWSxtSUFDWixxQkFBcUIsOElBQ3JCLGtCQUFrQiw0SkFDbEIsbUNBQW1DLHFIQUNuQyxpQkFBaUIsaUtBQ2pCLHFCQUFxQixxSUFDckIsMkJBQTJCLDZIQUMzQixrQkFBa0IsK0pBQ2xCLGlCQUFpQiw2SkFDakIsZUFBZTs7NEZBR04saUNBQWlDO2tCQW5CN0MsU0FBUzsrQkFDRSxtQ0FBbUMsbUJBRzVCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLG1DQUFtQzt3QkFDbkMsaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLDJCQUEyQjt3QkFDM0Isa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLGVBQWU7cUJBQ2hCO3lPQUdRLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ08sS0FBSztzQkFBakIsS0FBSztnQkFNSSxXQUFXO3NCQUFwQixNQUFNO2dCQUdzQixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQge1xuICBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24sXG4gIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxuICBPbmxpbmVSZXNvdXJjZSxcbiAgU2VydmljZUVuZHBvaW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9wbGF0Zm9ybS5zZXJ2aWNlLmludGVyZmFjZSdcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL25vdGlmaWNhdGlvbnMvc3JjJ1xuaW1wb3J0IHtcbiAgRmlsZUlucHV0Q29tcG9uZW50LFxuICBTd2l0Y2hUb2dnbGVDb21wb25lbnQsXG4gIFN3aXRjaFRvZ2dsZU9wdGlvbixcbiAgVGV4dEFyZWFDb21wb25lbnQsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbiAgVXJsSW5wdXRDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7XG4gIE1vZGFsRGlhbG9nQ29tcG9uZW50LFxuICBTb3J0YWJsZUxpc3RDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgTUFYX1VQTE9BRF9TSVpFX01CIH0gZnJvbSAnLi4vLi4vLi4vLi4vZmllbGRzLmNvbmZpZydcbmltcG9ydCB7IE9ubGluZVJlc291cmNlQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL29ubGluZS1yZXNvdXJjZS1jYXJkL29ubGluZS1yZXNvdXJjZS1jYXJkLmNvbXBvbmVudCdcbmltcG9ydCB7IE9ubGluZVNlcnZpY2VSZXNvdXJjZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50J1xuXG50eXBlIE9ubGluZU5vdExpbmtSZXNvdXJjZSA9XG4gIHwgRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uXG4gIHwgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgfCBTZXJ2aWNlRW5kcG9pbnRcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC1vbmxpbmUtcmVzb3VyY2VzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFN3aXRjaFRvZ2dsZUNvbXBvbmVudCxcbiAgICBGaWxlSW5wdXRDb21wb25lbnQsXG4gICAgT25saW5lU2VydmljZVJlc291cmNlSW5wdXRDb21wb25lbnQsXG4gICAgVXJsSW5wdXRDb21wb25lbnQsXG4gICAgU29ydGFibGVMaXN0Q29tcG9uZW50LFxuICAgIE9ubGluZVJlc291cmNlQ2FyZENvbXBvbmVudCxcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgVGV4dEFyZWFDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRPbmxpbmVSZXNvdXJjZXNDb21wb25lbnQge1xuICBASW5wdXQoKSBtZXRhZGF0YVV1aWQ6IHN0cmluZ1xuICBASW5wdXQoKSBzZXQgdmFsdWUob25saW5lUmVzb3VyY2VzOiBBcnJheTxPbmxpbmVSZXNvdXJjZT4pIHtcbiAgICB0aGlzLmFsbFJlc291cmNlcyA9IG9ubGluZVJlc291cmNlc1xuICAgIHRoaXMubm90TGlua1Jlc291cmNlcyA9IG9ubGluZVJlc291cmNlcy5maWx0ZXIoXG4gICAgICAocmVzKTogcmVzIGlzIE9ubGluZU5vdExpbmtSZXNvdXJjZSA9PiByZXMudHlwZSAhPT0gJ2xpbmsnXG4gICAgKVxuICB9XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEFycmF5PE9ubGluZVJlc291cmNlPj4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZ1RlbXBsYXRlJykgZGlhbG9nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPE9ubGluZVJlc291cmNlPlxuXG4gIHR5cGVPcHRpb25zOiBTd2l0Y2hUb2dnbGVPcHRpb25bXSA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UudG9nZ2xlLmRhdGFzZXQnKSxcbiAgICAgIHZhbHVlOiAnZG93bmxvYWQnLFxuICAgICAgY2hlY2tlZDogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS50b2dnbGUuc2VydmljZScpLFxuICAgICAgdmFsdWU6ICdzZXJ2aWNlJyxcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgIH0sXG4gIF1cbiAgc2VsZWN0ZWRUeXBlOiAnZG93bmxvYWQnIHwgJ3NlcnZpY2UnID0gJ2Rvd25sb2FkJ1xuXG4gIHByaXZhdGUgYWxsUmVzb3VyY2VzOiBPbmxpbmVSZXNvdXJjZVtdID0gW11cbiAgbm90TGlua1Jlc291cmNlczogT25saW5lTm90TGlua1Jlc291cmNlW10gPSBbXVxuICB1cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICB1cGxvYWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGxcbiAgbmV3U2VydmljZSA9IHtcbiAgICB0eXBlOiAnc2VydmljZScsXG4gICAgYWNjZXNzU2VydmljZVByb3RvY29sOiAnb2djRmVhdHVyZXMnLFxuICAgIGlkZW50aWZpZXJJblNlcnZpY2U6ICcnLFxuICB9IGFzIE9taXQ8RGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sICd1cmwnPlxuXG4gIHByb3RlY3RlZCBNQVhfVVBMT0FEX1NJWkVfTUIgPSBNQVhfVVBMT0FEX1NJWkVfTUJcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvbnNTZXJ2aWNlOiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybVNlcnZpY2U6IFBsYXRmb3JtU2VydmljZUludGVyZmFjZSxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXG4gICkge31cblxuICBvblNlbGVjdGVkVHlwZUNoYW5nZShzZWxlY3RlZFR5cGU6IHVua25vd24pIHtcbiAgICB0aGlzLnNlbGVjdGVkVHlwZSA9IHNlbGVjdGVkVHlwZSBhcyAnZG93bmxvYWQnIHwgJ3NlcnZpY2UnXG4gIH1cblxuICBoYW5kbGVGaWxlQ2hhbmdlKGZpbGU6IEZpbGUpIHtcbiAgICB0aGlzLnVwbG9hZFByb2dyZXNzID0gMFxuICAgIHRoaXMudXBsb2FkU3Vic2NyaXB0aW9uID0gdGhpcy5wbGF0Zm9ybVNlcnZpY2VcbiAgICAgIC5hdHRhY2hGaWxlVG9SZWNvcmQodGhpcy5tZXRhZGF0YVV1aWQsIGZpbGUpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdwcm9ncmVzcycpIHtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkUHJvZ3Jlc3MgPSBldmVudC5wcm9ncmVzc1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnR5cGUgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgICAgIGNvbnN0IG5ld1Jlc291cmNlOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24gPSB7XG4gICAgICAgICAgICAgIHR5cGU6ICdkb3dubG9hZCcsXG4gICAgICAgICAgICAgIHVybDogbmV3IFVSTChldmVudC5hdHRhY2htZW50LnVybCksXG4gICAgICAgICAgICAgIG5hbWU6IGV2ZW50LmF0dGFjaG1lbnQuZmlsZU5hbWUsXG4gICAgICAgICAgICAgIHNpemVCeXRlczogZXZlbnQuc2l6ZUJ5dGVzLCAvLyBXQVJOSU5HOiB0aGlzIGlzIHRoZSBvbmx5IHRpbWUgdGhhdCBzaXplQnl0ZXMgaXMgc2V0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoWy4uLnRoaXMuYWxsUmVzb3VyY2VzLCBuZXdSZXNvdXJjZV0pXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycm9yOiBFcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvci5tZXNzYWdlKSxcbiAgICAgIH0pXG4gIH1cblxuICBoYW5kbGVVcGxvYWRDYW5jZWwoKSB7XG4gICAgaWYgKHRoaXMudXBsb2FkU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnVwbG9hZFByb2dyZXNzID0gdW5kZWZpbmVkXG4gICAgICB0aGlzLnVwbG9hZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gICAgfVxuICB9XG5cbiAgaGFuZGxlRG93bmxvYWRVcmxDaGFuZ2UodXJsOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbmFtZSA9IHVybC5zcGxpdCgnLycpLnBvcCgpXG4gICAgICBjb25zdCBuZXdMaW5rOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24gPSB7XG4gICAgICAgIHR5cGU6ICdkb3dubG9hZCcsXG4gICAgICAgIHVybDogbmV3IFVSTCh1cmwpLFxuICAgICAgICBuYW1lLFxuICAgICAgfVxuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KFsuLi50aGlzLmFsbFJlc291cmNlcywgbmV3TGlua10pXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5oYW5kbGVFcnJvcigoZSBhcyBFcnJvcikubWVzc2FnZSlcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTZXJ2aWNlVXJsQ2hhbmdlKHVybDogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KFtcbiAgICAgIC4uLnRoaXMuYWxsUmVzb3VyY2VzLFxuICAgICAge1xuICAgICAgICAuLi50aGlzLm5ld1NlcnZpY2UsXG4gICAgICAgIHVybDogbmV3IFVSTCh1cmwpLFxuICAgICAgfSxcbiAgICBdKVxuICB9XG5cbiAgaGFuZGxlU2VydmljZU1vZGlmeShcbiAgICBvbGRTZXJ2aWNlOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbixcbiAgICBuZXdTZXJ2aWNlOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvblxuICApIHtcbiAgICBvbGRTZXJ2aWNlLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9IG5ld1NlcnZpY2UuYWNjZXNzU2VydmljZVByb3RvY29sXG4gICAgb2xkU2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlID0gbmV3U2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlXG4gICAgb2xkU2VydmljZS51cmwgPSBuZXdTZXJ2aWNlLnVybFxuICB9XG5cbiAgaGFuZGxlUmVzb3VyY2VzQ2hhbmdlKGl0ZW1zOiB1bmtub3duW10pIHtcbiAgICBjb25zdCBub3RMaW5rcyA9IGl0ZW1zIGFzIE9ubGluZU5vdExpbmtSZXNvdXJjZVtdXG4gICAgY29uc3QgbmV3UmVzb3VyY2VzID0gW1xuICAgICAgLi4udGhpcy5hbGxSZXNvdXJjZXMuZmlsdGVyKChyKSA9PiByLnR5cGUgPT09ICdsaW5rJyksXG4gICAgICAuLi5ub3RMaW5rcyxcbiAgICBdXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG5ld1Jlc291cmNlcylcbiAgfVxuXG4gIGhhbmRsZVJlc291cmNlTW9kaWZ5KHJlc291cmNlOiBPbmxpbmVOb3RMaW5rUmVzb3VyY2UsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLm9wZW5FZGl0RGlhbG9nKHJlc291cmNlLCBpbmRleClcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoZXJyb3I6IHN0cmluZykge1xuICAgIHRoaXMudXBsb2FkUHJvZ3Jlc3MgPSB1bmRlZmluZWRcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnNob3dOb3RpZmljYXRpb24oe1xuICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgJ2VkaXRvci5yZWNvcmQub25saW5lUmVzb3VyY2VFcnJvci50aXRsZSdcbiAgICAgICksXG4gICAgICB0ZXh0OiBgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgJ2VkaXRvci5yZWNvcmQub25saW5lUmVzb3VyY2VFcnJvci5ib2R5J1xuICAgICAgKX0gJHtlcnJvcn1gLFxuICAgICAgY2xvc2VNZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgJ2VkaXRvci5yZWNvcmQub25saW5lUmVzb3VyY2VFcnJvci5jbG9zZU1lc3NhZ2UnXG4gICAgICApLFxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIG9wZW5FZGl0RGlhbG9nKHJlc291cmNlOiBPbmxpbmVOb3RMaW5rUmVzb3VyY2UsIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCByZXNvdXJjZUNvcHkgPSB7XG4gICAgICAuLi5yZXNvdXJjZSxcbiAgICB9XG4gICAgdGhpcy5kaWFsb2dcbiAgICAgIC5vcGVuKE1vZGFsRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgIHdpZHRoOiAnODAwcHgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS5kaWFsb2dUaXRsZSdcbiAgICAgICAgICApLFxuICAgICAgICAgIGJvZHk6IHRoaXMuZGlhbG9nVGVtcGxhdGUsXG4gICAgICAgICAgYm9keUNvbnRleHQ6IHJlc291cmNlQ29weSxcbiAgICAgICAgICBjb25maXJtVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAnZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmNvbmZpcm0nXG4gICAgICAgICAgKSxcbiAgICAgICAgICBjYW5jZWxUZXh0OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuY2FuY2VsJ1xuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5zdWJzY3JpYmUoKGNvbmZpcm1lZDogYm9vbGVhbikgPT4ge1xuICAgICAgICBpZiAoIWNvbmZpcm1lZCkgcmV0dXJuXG4gICAgICAgIGNvbnN0IG5ld05vdExpbmtzID0gWy4uLnRoaXMubm90TGlua1Jlc291cmNlc11cbiAgICAgICAgbmV3Tm90TGlua3Muc3BsaWNlKGluZGV4LCAxLCByZXNvdXJjZUNvcHkpXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChbXG4gICAgICAgICAgLi4udGhpcy5hbGxSZXNvdXJjZXMuZmlsdGVyKChyKSA9PiByLnR5cGUgPT09ICdsaW5rJyksXG4gICAgICAgICAgLi4ubmV3Tm90TGlua3MsXG4gICAgICAgIF0pXG4gICAgICB9KVxuICB9XG59XG4iLCI8Z24tdWktc3dpdGNoLXRvZ2dsZVxuICBbb3B0aW9uc109XCJ0eXBlT3B0aW9uc1wiXG4gIChzZWxlY3RlZFZhbHVlKT1cIm9uU2VsZWN0ZWRUeXBlQ2hhbmdlKCRldmVudC52YWx1ZSlcIlxuICBleHRyYUNsYXNzZXM9XCJncm93XCJcbiAgZGF0YS1jeT1cIm9ubGluZS1yZXNvdXJjZXMtdHlwZVwiXG4+PC9nbi11aS1zd2l0Y2gtdG9nZ2xlPlxuPGRpdiBjbGFzcz1cImgtWzhweF1cIj48L2Rpdj5cbjxnbi11aS1maWxlLWlucHV0XG4gICpuZ0lmPVwic2VsZWN0ZWRUeXBlID09PSAnZG93bmxvYWQnXCJcbiAgW21heFNpemVNQl09XCJNQVhfVVBMT0FEX1NJWkVfTUJcIlxuICAoZmlsZUNoYW5nZSk9XCJoYW5kbGVGaWxlQ2hhbmdlKCRldmVudClcIlxuICAodXBsb2FkQ2FuY2VsKT1cImhhbmRsZVVwbG9hZENhbmNlbCgpXCJcbiAgW3VwbG9hZFByb2dyZXNzXT1cInVwbG9hZFByb2dyZXNzXCJcbiAgKHVybENoYW5nZSk9XCJoYW5kbGVEb3dubG9hZFVybENoYW5nZSgkZXZlbnQpXCJcbj48L2duLXVpLWZpbGUtaW5wdXQ+XG48ZGl2XG4gICpuZ0lmPVwic2VsZWN0ZWRUeXBlID09PSAnc2VydmljZSdcIlxuICBjbGFzcz1cInctZnVsbCBib3JkZXItMiBib3JkZXItZGFzaGVkIHJvdW5kZWQtbGcgcC02IGZsZXggZmxleC1jb2wgZ2FwLVsxNnB4XVwiXG4+XG4gIDxnbi11aS1vbmxpbmUtc2VydmljZS1yZXNvdXJjZS1pbnB1dFxuICAgIFtzZXJ2aWNlXT1cIm5ld1NlcnZpY2VcIlxuICA+PC9nbi11aS1vbmxpbmUtc2VydmljZS1yZXNvdXJjZS1pbnB1dD5cbiAgPHNwYW4gY2xhc3M9XCJ3LWZ1bGwgYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwXCI+PC9zcGFuPlxuICA8Z24tdWktdXJsLWlucHV0XG4gICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgIFt1cmxDYW5QYXJzZV09XCJ0cnVlXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwiaGFuZGxlU2VydmljZVVybENoYW5nZSgkZXZlbnQpXCJcbiAgPjwvZ24tdWktdXJsLWlucHV0PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiaC1bOHB4XVwiPjwvZGl2PlxuPGduLXVpLXNvcnRhYmxlLWxpc3RcbiAgW2l0ZW1zXT1cIm5vdExpbmtSZXNvdXJjZXNcIlxuICAoaXRlbXNPcmRlckNoYW5nZSk9XCJoYW5kbGVSZXNvdXJjZXNDaGFuZ2UoJGV2ZW50KVwiXG4gIFtlbGVtZW50VGVtcGxhdGVdPVwidGVtcGxhdGVcIlxuPlxuPC9nbi11aS1zb3J0YWJsZS1saXN0PlxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZSBsZXQtb25saW5lUmVzb3VyY2UgbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgPGduLXVpLW9ubGluZS1yZXNvdXJjZS1jYXJkXG4gICAgW29ubGluZVJlc291cmNlXT1cIm9ubGluZVJlc291cmNlXCJcbiAgICAobW9kaWZ5Q2xpY2spPVwiaGFuZGxlUmVzb3VyY2VNb2RpZnkob25saW5lUmVzb3VyY2UsIGluZGV4KVwiXG4gID48L2duLXVpLW9ubGluZS1yZXNvdXJjZS1jYXJkPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkaWFsb2dUZW1wbGF0ZSBsZXQtb25saW5lUmVzb3VyY2U+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC1bMTZweF1cIj5cbiAgICA8ZGl2PlxuICAgICAgPGgzIGNsYXNzPVwidGV4dC1bMTZweF0gZm9udC1ib2xkIHRleHQtbWFpbiBtYi1bMTJweF1cIiB0cmFuc2xhdGU+XG4gICAgICAgIGVkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS5lZGl0LnRpdGxlXG4gICAgICA8L2gzPlxuICAgICAgPGduLXVpLXRleHQtaW5wdXQgWyh2YWx1ZSldPVwib25saW5lUmVzb3VyY2UubmFtZVwiPjwvZ24tdWktdGV4dC1pbnB1dD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGgzIGNsYXNzPVwidGV4dC1bMTZweF0gZm9udC1ib2xkIHRleHQtbWFpbiBtYi1bMTJweF1cIiB0cmFuc2xhdGU+XG4gICAgICAgIGVkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS5lZGl0LmRlc2NyaXB0aW9uXG4gICAgICA8L2gzPlxuICAgICAgPGduLXVpLXRleHQtYXJlYSBbKHZhbHVlKV09XCJvbmxpbmVSZXNvdXJjZS5kZXNjcmlwdGlvblwiPjwvZ24tdWktdGV4dC1hcmVhPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvbmxpbmVSZXNvdXJjZS50eXBlID09PSAnc2VydmljZSdcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidy1mdWxsIGJvcmRlci1iIGJvcmRlci1ncmF5LTMwMFwiPjwvc3Bhbj5cbiAgICAgIDxnbi11aS1vbmxpbmUtc2VydmljZS1yZXNvdXJjZS1pbnB1dFxuICAgICAgICBbc2VydmljZV09XCJvbmxpbmVSZXNvdXJjZVwiXG4gICAgICA+PC9nbi11aS1vbmxpbmUtc2VydmljZS1yZXNvdXJjZS1pbnB1dD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8c3BhbiBjbGFzcz1cInctZnVsbCBib3JkZXItYiBib3JkZXItZ3JheS0zMDBcIj48L3NwYW4+XG4gICAgPGduLXVpLXVybC1pbnB1dFxuICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgW2Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgW3ZhbHVlXT1cIm9ubGluZVJlc291cmNlLnVybFwiXG4gICAgPjwvZ24tdWktdXJsLWlucHV0PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=