@c8y/ngx-components 1009.0.32 → 1009.0.35

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 (40) hide show
  1. package/bundles/c8y-ngx-components-repository.umd.js +8 -4
  2. package/bundles/c8y-ngx-components-repository.umd.js.map +1 -1
  3. package/bundles/c8y-ngx-components-repository.umd.min.js +1 -1
  4. package/bundles/c8y-ngx-components-repository.umd.min.js.map +1 -1
  5. package/bundles/c8y-ngx-components.umd.js +16 -15
  6. package/bundles/c8y-ngx-components.umd.js.map +1 -1
  7. package/bundles/c8y-ngx-components.umd.min.js +1 -1
  8. package/bundles/c8y-ngx-components.umd.min.js.map +1 -1
  9. package/c8y-ngx-components.metadata.json +1 -1
  10. package/core/file-picker/file-picker.component.d.ts +8 -0
  11. package/core/login/totp-auth.component.d.ts +1 -1
  12. package/esm2015/core/file-picker/file-picker.component.js +12 -2
  13. package/esm2015/core/file-picker/file-picker.module.js +6 -8
  14. package/esm2015/core/login/totp-auth.component.js +3 -4
  15. package/esm2015/repository/configuration/configuration-detail.component.js +7 -2
  16. package/esm2015/repository/firmware/add-firmware-modal.component.js +7 -2
  17. package/esm2015/repository/firmware/add-firmware-patch-modal.component.js +7 -2
  18. package/esm2015/repository/software/add-software-modal.component.js +7 -2
  19. package/esm5/core/file-picker/file-picker.component.js +12 -2
  20. package/esm5/core/file-picker/file-picker.module.js +6 -8
  21. package/esm5/core/login/totp-auth.component.js +3 -8
  22. package/esm5/repository/configuration/configuration-detail.component.js +3 -2
  23. package/esm5/repository/firmware/add-firmware-modal.component.js +3 -2
  24. package/esm5/repository/firmware/add-firmware-patch-modal.component.js +3 -2
  25. package/esm5/repository/software/add-software-modal.component.js +3 -2
  26. package/fesm2015/c8y-ngx-components-repository.js +24 -4
  27. package/fesm2015/c8y-ngx-components-repository.js.map +1 -1
  28. package/fesm2015/c8y-ngx-components.js +16 -11
  29. package/fesm2015/c8y-ngx-components.js.map +1 -1
  30. package/fesm5/c8y-ngx-components-repository.js +8 -4
  31. package/fesm5/c8y-ngx-components-repository.js.map +1 -1
  32. package/fesm5/c8y-ngx-components.js +16 -15
  33. package/fesm5/c8y-ngx-components.js.map +1 -1
  34. package/locales/locales.pot +24 -3
  35. package/package.json +2 -2
  36. package/repository/c8y-ngx-components-repository.metadata.json +1 -1
  37. package/repository/configuration/configuration-detail.component.d.ts +1 -0
  38. package/repository/firmware/add-firmware-modal.component.d.ts +1 -0
  39. package/repository/firmware/add-firmware-patch-modal.component.d.ts +1 -0
  40. package/repository/software/add-software-modal.component.d.ts +1 -0
@@ -20,6 +20,10 @@ export declare class FilePickerComponent implements OnInit {
20
20
  uploadChoice: 'uploadBinary' | 'uploadUrl';
21
21
  fileUrl: string;
22
22
  fileBinary: DroppedFile;
23
+ /**
24
+ * Additional string to be displayed in a popover.
25
+ */
26
+ fileUrlPopover: string;
23
27
  droppedFiles: DroppedFile[];
24
28
  private fileToSave;
25
29
  /**
@@ -42,4 +46,8 @@ export declare class FilePickerComponent implements OnInit {
42
46
  * Triggered when user puts binary's url to upload.
43
47
  */
44
48
  onFileUrlChange(urlStr: any): void;
49
+ /**
50
+ * Checks if there is popover to display.
51
+ */
52
+ isPopoverUsed(): boolean;
45
53
  }
@@ -13,7 +13,7 @@ export declare class TotpAuthComponent implements OnInit {
13
13
  LOGIN_VIEWS: typeof LoginViews;
14
14
  loading: boolean;
15
15
  hasError: boolean;
16
- readonly isSetup: boolean;
16
+ isSetup: boolean;
17
17
  constructor(loginService: LoginService, userService: UserService, alert: AlertService);
18
18
  /**
19
19
  * In case of a setup we need the user to be authorized
@@ -1,6 +1,7 @@
1
1
  import * as tslib_1 from "tslib";
2
2
  import { Component, Output, Input, EventEmitter, ViewChild } from '@angular/core';
3
3
  import { DropAreaComponent } from '../drop-area/drop-area.component';
4
+ import { isEmpty } from 'lodash-es';
4
5
  /**
5
6
  * User can upload a binary directly or use an URL.
6
7
  *
@@ -76,6 +77,12 @@ let FilePickerComponent = class FilePickerComponent {
76
77
  };
77
78
  this.onFilesPicked.emit(this.fileToSave);
78
79
  }
80
+ /**
81
+ * Checks if there is popover to display.
82
+ */
83
+ isPopoverUsed() {
84
+ return !isEmpty(this.fileUrlPopover);
85
+ }
79
86
  };
80
87
  tslib_1.__decorate([
81
88
  ViewChild(DropAreaComponent, { static: true })
@@ -95,11 +102,14 @@ tslib_1.__decorate([
95
102
  tslib_1.__decorate([
96
103
  Input()
97
104
  ], FilePickerComponent.prototype, "fileBinary", void 0);
105
+ tslib_1.__decorate([
106
+ Input()
107
+ ], FilePickerComponent.prototype, "fileUrlPopover", void 0);
98
108
  FilePickerComponent = tslib_1.__decorate([
99
109
  Component({
100
110
  selector: 'c8y-file-picker',
101
- template: "<div class=\"form-group\">\n <label title=\"{{ 'Upload a binary' | translate }}\" class=\"c8y-radio radio-inline\">\n <input\n #radio\n type=\"radio\"\n value=\"uploadBinary\"\n name=\"uploadChoice\"\n [(ngModel)]=\"uploadChoice\"\n (click)=\"clearInputFromUrl()\"\n />\n <span></span>\n <span>{{ 'Upload a binary' | translate }}</span>\n </label>\n <label title=\"{{ 'Use a URL' | translate }}\" class=\"c8y-radio radio-inline\">\n <input\n #radio\n type=\"radio\"\n value=\"uploadUrl\"\n name=\"uploadChoice\"\n [(ngModel)]=\"uploadChoice\"\n (click)=\"clearSelectedFiles()\"\n />\n <span></span>\n <span>{{ 'Use a URL' | translate }}</span>\n </label>\n</div>\n\n<div [hidden]=\"uploadChoice !== 'uploadBinary'\">\n <c8y-form-group class=\"m-0\">\n <c8y-drop-area\n class=\"drop-area-sm\"\n (dropped)=\"onFileDropped($event)\"\n [title]=\"'Drop file or click to browse' | translate\"\n [maxAllowedFiles]=\"maxAllowedFiles\"\n [files]=\"droppedFiles\"\n >\n </c8y-drop-area>\n </c8y-form-group>\n</div>\n\n<div [hidden]=\"uploadChoice !== 'uploadUrl'\">\n <c8y-form-group class=\"m-0\">\n <div class=\"m-b-4 p-b-8\">\n <div class=\"input-group\">\n <span class=\"input-group-addon\">\n <i c8yIcon=\"globe\"></i>\n </span>\n <input\n type=\"text\"\n class=\"form-control\"\n name=\"fileUrl\"\n [(ngModel)]=\"fileUrl\"\n (ngModelChange)=\"onFileUrlChange($event)\"\n placeholder=\"{{ 'e.g.' | translate }} http://example.com/binary.zip\"\n required\n />\n </div>\n </div>\n </c8y-form-group>\n</div>\n"
111
+ template: "<div class=\"form-group\">\n <label title=\"{{ 'Upload a binary' | translate }}\" class=\"c8y-radio radio-inline\">\n <input\n #radio\n type=\"radio\"\n value=\"uploadBinary\"\n name=\"uploadChoice\"\n [(ngModel)]=\"uploadChoice\"\n (click)=\"clearInputFromUrl()\"\n />\n <span></span>\n <span>{{ 'Upload a binary' | translate }}</span>\n </label>\n <label title=\"{{ 'Provide a file path' | translate }}\" class=\"c8y-radio radio-inline m-l-8\">\n <input\n #radio\n type=\"radio\"\n value=\"uploadUrl\"\n name=\"uploadChoice\"\n [(ngModel)]=\"uploadChoice\"\n (click)=\"clearSelectedFiles()\"\n />\n <span></span>\n <span>\n {{ 'Provide a file path' | translate }}\n </span>\n\n <button\n *ngIf=\"isPopoverUsed()\"\n class=\"btn btn-clean text-primary m-l-4\"\n type=\"button\"\n popover=\"{{ fileUrlPopover | translate }}\"\n triggers=\"focus\"\n container=\"body\"\n placement=\"top\"\n >\n <i [c8yIcon]=\"'question-circle-o'\"></i>\n </button>\n </label>\n</div>\n\n<div [hidden]=\"uploadChoice !== 'uploadBinary'\">\n <c8y-form-group class=\"m-0\">\n <c8y-drop-area\n class=\"drop-area-sm\"\n (dropped)=\"onFileDropped($event)\"\n [title]=\"'Drop file or click to browse' | translate\"\n [maxAllowedFiles]=\"maxAllowedFiles\"\n [files]=\"droppedFiles\"\n >\n </c8y-drop-area>\n </c8y-form-group>\n</div>\n\n<div [hidden]=\"uploadChoice !== 'uploadUrl'\">\n <c8y-form-group class=\"m-0\">\n <div class=\"m-b-4 p-b-8\">\n <div class=\"input-group\">\n <span class=\"input-group-addon\">\n <i c8yIcon=\"globe\"></i>\n </span>\n <input\n type=\"text\"\n class=\"form-control\"\n name=\"fileUrl\"\n [(ngModel)]=\"fileUrl\"\n (ngModelChange)=\"onFileUrlChange($event)\"\n placeholder=\"{{ 'e.g.' | translate }} http://example.com/binary.zip\"\n required\n />\n </div>\n </div>\n </c8y-form-group>\n</div>\n"
102
112
  })
103
113
  ], FilePickerComponent);
104
114
  export { FilePickerComponent };
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGM4eS9uZ3gtY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvcmUvZmlsZS1waWNrZXIvZmlsZS1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQWUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUdsRjs7Ozs7Ozs7Ozs7R0FXRztBQU1ILElBQWEsbUJBQW1CLEdBQWhDLE1BQWEsbUJBQW1CO0lBakJoQzs7Ozs7Ozs7Ozs7T0FXRztJQUVIO1FBTVksa0JBQWEsR0FBOEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvRCxvQkFBZSxHQUFXLFFBQVEsQ0FBQztRQUNuQyxpQkFBWSxHQUFpQyxjQUFjLENBQUM7SUF3RHZFLENBQUM7SUFqREM7O09BRUc7SUFDSCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDdkM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhLENBQUMsWUFBMkI7UUFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDdEIsWUFBWTtTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2hCLEdBQUcsRUFBRSxTQUFTO1NBQ2YsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2hCLFlBQVksRUFBRSxTQUFTO1NBQ3hCLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZSxDQUFDLE1BQU07UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRztZQUNoQixHQUFHLEVBQUUsTUFBTTtTQUNaLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUNGLENBQUE7QUEzRGlEO0lBQS9DLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztxREFBNkI7QUFDbEU7SUFBVCxNQUFNLEVBQUU7MERBQStEO0FBQy9EO0lBQVIsS0FBSyxFQUFFOzREQUFvQztBQUNuQztJQUFSLEtBQUssRUFBRTt5REFBNkQ7QUFDNUQ7SUFBUixLQUFLLEVBQUU7b0RBQWlCO0FBQ2hCO0lBQVIsS0FBSyxFQUFFO3VEQUF5QjtBQU50QixtQkFBbUI7SUFKL0IsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGlCQUFpQjtRQUMzQiwydERBQTJDO0tBQzVDLENBQUM7R0FDVyxtQkFBbUIsQ0E0RC9CO1NBNURZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHJvcHBlZEZpbGUsIERyb3BBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi4vZHJvcC1hcmVhL2Ryb3AtYXJlYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGlja2VkRmlsZXMgfSBmcm9tICcuL2ZpbGUtcGlja2VyLm1vZGVsJztcblxuLyoqXG4gKiBVc2VyIGNhbiB1cGxvYWQgYSBiaW5hcnkgZGlyZWN0bHkgb3IgdXNlIGFuIFVSTC5cbiAqXG4gKiAjIyBVc2FnZSBFeGFtcGxlOlxuICpcbiAqIGBgYGh0bWxcbiAqIDxkaXY+XG4gKiA8Yzh5LWZpbGUtcGlja2VyIFttYXhBbGxvd2VkRmlsZXNdPVwiMVwiIChvbkZpbGVzUGlja2VkKT1cIm9uRmlsZSgkZXZlbnQpXCI+XG4gKiA8L2M4eS1maWxlLXBpY2tlcj5cbiAqIDwvZGl2PlxuICogYGBgXG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWZpbGUtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtcGlja2VyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBGaWxlUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZChEcm9wQXJlYUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgZHJvcEFyZWE6IERyb3BBcmVhQ29tcG9uZW50O1xuICBAT3V0cHV0KCkgb25GaWxlc1BpY2tlZDogRXZlbnRFbWl0dGVyPFBpY2tlZEZpbGVzPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgbWF4QWxsb3dlZEZpbGVzOiBudW1iZXIgPSBJbmZpbml0eTtcbiAgQElucHV0KCkgdXBsb2FkQ2hvaWNlOiAndXBsb2FkQmluYXJ5JyB8ICd1cGxvYWRVcmwnID0gJ3VwbG9hZEJpbmFyeSc7XG4gIEBJbnB1dCgpIGZpbGVVcmw6IHN0cmluZztcbiAgQElucHV0KCkgZmlsZUJpbmFyeTogRHJvcHBlZEZpbGU7XG5cbiAgZHJvcHBlZEZpbGVzOiBEcm9wcGVkRmlsZVtdO1xuICBwcml2YXRlIGZpbGVUb1NhdmU6IFBpY2tlZEZpbGVzO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maWxlQmluYXJ5KSB7XG4gICAgICB0aGlzLmRyb3BwZWRGaWxlcyA9IFt0aGlzLmZpbGVCaW5hcnldO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgYnkgZHJvcHBlZCBmaWxlIGluIGNvbXBvbmVudCBhbmQgcGFzcyBpdCBpbnRvIGRyb3AtYXJlYSBjb21wb25lbnQuXG4gICAqL1xuICBvbkZpbGVEcm9wcGVkKGRyb3BwZWRGaWxlczogRHJvcHBlZEZpbGVbXSk6IHZvaWQge1xuICAgIHRoaXMub25GaWxlc1BpY2tlZC5lbWl0KHtcbiAgICAgIGRyb3BwZWRGaWxlc1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCB3aGVuIHVzZXIgY2hhbmdlcyB1cGxvYWQgY2hvaWNlLCBmcm9tIHVwbG9hZCB1cmwgdG8gdXBsb2FkIGJpbmFyeS5cbiAgICovXG4gIGNsZWFySW5wdXRGcm9tVXJsKCk6IHZvaWQge1xuICAgIGRlbGV0ZSB0aGlzLmZpbGVVcmw7XG4gICAgdGhpcy5maWxlVG9TYXZlID0ge1xuICAgICAgdXJsOiB1bmRlZmluZWRcbiAgICB9O1xuICAgIHRoaXMub25GaWxlc1BpY2tlZC5lbWl0KHRoaXMuZmlsZVRvU2F2ZSk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcmVkIHdoZW4gdXNlciBjaGFuZ2VzIHVwbG9hZCBjaG9pY2UsIHRvIGF2b2lkIGN1bXVsYXRpb24gb2YgZHJvcHBlZEZpbGVzLlxuICAgKi9cbiAgY2xlYXJTZWxlY3RlZEZpbGVzKCk6IHZvaWQge1xuICAgIHRoaXMuZHJvcEFyZWEub25EZWxldGUoKTtcbiAgICB0aGlzLmZpbGVUb1NhdmUgPSB7XG4gICAgICBkcm9wcGVkRmlsZXM6IHVuZGVmaW5lZFxuICAgIH07XG4gICAgdGhpcy5vbkZpbGVzUGlja2VkLmVtaXQodGhpcy5maWxlVG9TYXZlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgd2hlbiB1c2VyIHB1dHMgYmluYXJ5J3MgdXJsIHRvIHVwbG9hZC5cbiAgICovXG4gIG9uRmlsZVVybENoYW5nZSh1cmxTdHIpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVUb1NhdmUgPSB7XG4gICAgICB1cmw6IHVybFN0clxuICAgIH07XG4gICAgdGhpcy5vbkZpbGVzUGlja2VkLmVtaXQodGhpcy5maWxlVG9TYXZlKTtcbiAgfVxufVxuIl19
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGM4eS9uZ3gtY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvcmUvZmlsZS1waWNrZXIvZmlsZS1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQWUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVsRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDOzs7Ozs7Ozs7OztHQVdHO0FBTUgsSUFBYSxtQkFBbUIsR0FBaEMsTUFBYSxtQkFBbUI7SUFqQmhDOzs7Ozs7Ozs7OztPQVdHO0lBRUg7UUFNWSxrQkFBYSxHQUE4QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9ELG9CQUFlLEdBQVcsUUFBUSxDQUFDO1FBQ25DLGlCQUFZLEdBQWlDLGNBQWMsQ0FBQztJQW1FdkUsQ0FBQztJQXhEQzs7T0FFRztJQUNILFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN2QztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWEsQ0FBQyxZQUEyQjtRQUN2QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztZQUN0QixZQUFZO1NBQ2IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDaEIsR0FBRyxFQUFFLFNBQVM7U0FDZixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQjtRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDaEIsWUFBWSxFQUFFLFNBQVM7U0FDeEIsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlLENBQUMsTUFBTTtRQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2hCLEdBQUcsRUFBRSxNQUFNO1NBQ1osQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNGLENBQUE7QUF0RWlEO0lBQS9DLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztxREFBNkI7QUFDbEU7SUFBVCxNQUFNLEVBQUU7MERBQStEO0FBQy9EO0lBQVIsS0FBSyxFQUFFOzREQUFvQztBQUNuQztJQUFSLEtBQUssRUFBRTt5REFBNkQ7QUFDNUQ7SUFBUixLQUFLLEVBQUU7b0RBQWlCO0FBQ2hCO0lBQVIsS0FBSyxFQUFFO3VEQUF5QjtBQUl4QjtJQUFSLEtBQUssRUFBRTsyREFBd0I7QUFWckIsbUJBQW1CO0lBSi9CLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxpQkFBaUI7UUFDM0Isb2tFQUEyQztLQUM1QyxDQUFDO0dBQ1csbUJBQW1CLENBdUUvQjtTQXZFWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE91dHB1dCwgSW5wdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERyb3BwZWRGaWxlLCBEcm9wQXJlYUNvbXBvbmVudCB9IGZyb20gJy4uL2Ryb3AtYXJlYS9kcm9wLWFyZWEuY29tcG9uZW50JztcbmltcG9ydCB7IFBpY2tlZEZpbGVzIH0gZnJvbSAnLi9maWxlLXBpY2tlci5tb2RlbCc7XG5pbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuLyoqXG4gKiBVc2VyIGNhbiB1cGxvYWQgYSBiaW5hcnkgZGlyZWN0bHkgb3IgdXNlIGFuIFVSTC5cbiAqXG4gKiAjIyBVc2FnZSBFeGFtcGxlOlxuICpcbiAqIGBgYGh0bWxcbiAqIDxkaXY+XG4gKiA8Yzh5LWZpbGUtcGlja2VyIFttYXhBbGxvd2VkRmlsZXNdPVwiMVwiIChvbkZpbGVzUGlja2VkKT1cIm9uRmlsZSgkZXZlbnQpXCI+XG4gKiA8L2M4eS1maWxlLXBpY2tlcj5cbiAqIDwvZGl2PlxuICogYGBgXG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWZpbGUtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtcGlja2VyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBGaWxlUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZChEcm9wQXJlYUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgZHJvcEFyZWE6IERyb3BBcmVhQ29tcG9uZW50O1xuICBAT3V0cHV0KCkgb25GaWxlc1BpY2tlZDogRXZlbnRFbWl0dGVyPFBpY2tlZEZpbGVzPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgbWF4QWxsb3dlZEZpbGVzOiBudW1iZXIgPSBJbmZpbml0eTtcbiAgQElucHV0KCkgdXBsb2FkQ2hvaWNlOiAndXBsb2FkQmluYXJ5JyB8ICd1cGxvYWRVcmwnID0gJ3VwbG9hZEJpbmFyeSc7XG4gIEBJbnB1dCgpIGZpbGVVcmw6IHN0cmluZztcbiAgQElucHV0KCkgZmlsZUJpbmFyeTogRHJvcHBlZEZpbGU7XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHN0cmluZyB0byBiZSBkaXNwbGF5ZWQgaW4gYSBwb3BvdmVyLlxuICAgKi9cbiAgQElucHV0KCkgZmlsZVVybFBvcG92ZXI6IHN0cmluZztcblxuICBkcm9wcGVkRmlsZXM6IERyb3BwZWRGaWxlW107XG4gIHByaXZhdGUgZmlsZVRvU2F2ZTogUGlja2VkRmlsZXM7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpbGVCaW5hcnkpIHtcbiAgICAgIHRoaXMuZHJvcHBlZEZpbGVzID0gW3RoaXMuZmlsZUJpbmFyeV07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCBieSBkcm9wcGVkIGZpbGUgaW4gY29tcG9uZW50IGFuZCBwYXNzIGl0IGludG8gZHJvcC1hcmVhIGNvbXBvbmVudC5cbiAgICovXG4gIG9uRmlsZURyb3BwZWQoZHJvcHBlZEZpbGVzOiBEcm9wcGVkRmlsZVtdKTogdm9pZCB7XG4gICAgdGhpcy5vbkZpbGVzUGlja2VkLmVtaXQoe1xuICAgICAgZHJvcHBlZEZpbGVzXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcmVkIHdoZW4gdXNlciBjaGFuZ2VzIHVwbG9hZCBjaG9pY2UsIGZyb20gdXBsb2FkIHVybCB0byB1cGxvYWQgYmluYXJ5LlxuICAgKi9cbiAgY2xlYXJJbnB1dEZyb21VcmwoKTogdm9pZCB7XG4gICAgZGVsZXRlIHRoaXMuZmlsZVVybDtcbiAgICB0aGlzLmZpbGVUb1NhdmUgPSB7XG4gICAgICB1cmw6IHVuZGVmaW5lZFxuICAgIH07XG4gICAgdGhpcy5vbkZpbGVzUGlja2VkLmVtaXQodGhpcy5maWxlVG9TYXZlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgd2hlbiB1c2VyIGNoYW5nZXMgdXBsb2FkIGNob2ljZSwgdG8gYXZvaWQgY3VtdWxhdGlvbiBvZiBkcm9wcGVkRmlsZXMuXG4gICAqL1xuICBjbGVhclNlbGVjdGVkRmlsZXMoKTogdm9pZCB7XG4gICAgdGhpcy5kcm9wQXJlYS5vbkRlbGV0ZSgpO1xuICAgIHRoaXMuZmlsZVRvU2F2ZSA9IHtcbiAgICAgIGRyb3BwZWRGaWxlczogdW5kZWZpbmVkXG4gICAgfTtcbiAgICB0aGlzLm9uRmlsZXNQaWNrZWQuZW1pdCh0aGlzLmZpbGVUb1NhdmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCB3aGVuIHVzZXIgcHV0cyBiaW5hcnkncyB1cmwgdG8gdXBsb2FkLlxuICAgKi9cbiAgb25GaWxlVXJsQ2hhbmdlKHVybFN0cik6IHZvaWQge1xuICAgIHRoaXMuZmlsZVRvU2F2ZSA9IHtcbiAgICAgIHVybDogdXJsU3RyXG4gICAgfTtcbiAgICB0aGlzLm9uRmlsZXNQaWNrZWQuZW1pdCh0aGlzLmZpbGVUb1NhdmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGVyZSBpcyBwb3BvdmVyIHRvIGRpc3BsYXkuXG4gICAqL1xuICBpc1BvcG92ZXJVc2VkKCkge1xuICAgIHJldHVybiAhaXNFbXB0eSh0aGlzLmZpbGVVcmxQb3BvdmVyKTtcbiAgfVxufVxuIl19
@@ -6,6 +6,7 @@ import { DropAreaModule } from '../drop-area/drop-area.module';
6
6
  import { FormsModule } from '@angular/forms';
7
7
  import { CommonModule } from '@angular/common';
8
8
  import { FormsModule as C8yFormsModule } from '../forms/forms.module';
9
+ import { PopoverModule } from 'ngx-bootstrap/popover';
9
10
  /**
10
11
  * The angular module definition for a drop-area.
11
12
  * @exports FilePickerComponent
@@ -19,15 +20,12 @@ FilePickerModule = tslib_1.__decorate([
19
20
  CommonModule,
20
21
  DropAreaModule,
21
22
  FormsModule,
22
- C8yCommonModule
23
+ C8yCommonModule,
24
+ PopoverModule
23
25
  ],
24
- exports: [
25
- FilePickerComponent,
26
- ],
27
- declarations: [
28
- FilePickerComponent,
29
- ]
26
+ exports: [FilePickerComponent],
27
+ declarations: [FilePickerComponent]
30
28
  })
31
29
  ], FilePickerModule);
32
30
  export { FilePickerModule };
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGM4eS9uZ3gtY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvcmUvZmlsZS1waWNrZXIvZmlsZS1waWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLElBQUksZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsSUFBSSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RTs7O0dBR0c7QUFnQkgsSUFBYSxnQkFBZ0IsR0FBN0IsTUFBYSxnQkFBZ0I7Q0FBSSxDQUFBO0FBQXBCLGdCQUFnQjtJQWY1QixRQUFRLENBQUM7UUFDUixPQUFPLEVBQUU7WUFDUCxjQUFjO1lBQ2QsWUFBWTtZQUNaLGNBQWM7WUFDZCxXQUFXO1lBQ1gsZUFBZTtTQUNoQjtRQUNELE9BQU8sRUFBRTtZQUNQLG1CQUFtQjtTQUNwQjtRQUNELFlBQVksRUFBRTtZQUNaLG1CQUFtQjtTQUNwQjtLQUNGLENBQUM7R0FDVyxnQkFBZ0IsQ0FBSTtTQUFwQixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIGFzIEM4eUNvbW1vbk1vZHVsZSB9IGZyb20gJy4uL2NvbW1vbi9jb21tb24ubW9kdWxlJztcbmltcG9ydCB7IEZpbGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2ZpbGUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEcm9wQXJlYU1vZHVsZSB9IGZyb20gJy4uL2Ryb3AtYXJlYS9kcm9wLWFyZWEubW9kdWxlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIGFzIEM4eUZvcm1zTW9kdWxlIH0gZnJvbSAnLi4vZm9ybXMvZm9ybXMubW9kdWxlJztcblxuLyoqXG4gKiBUaGUgYW5ndWxhciBtb2R1bGUgZGVmaW5pdGlvbiBmb3IgYSBkcm9wLWFyZWEuXG4gKiBAZXhwb3J0cyBGaWxlUGlja2VyQ29tcG9uZW50XG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDOHlGb3Jtc01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRHJvcEFyZWFNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQzh5Q29tbW9uTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBGaWxlUGlja2VyQ29tcG9uZW50LFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBGaWxlUGlja2VyQ29tcG9uZW50LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVQaWNrZXJNb2R1bGUgeyB9XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGM4eS9uZ3gtY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvcmUvZmlsZS1waWNrZXIvZmlsZS1waWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLElBQUksZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsSUFBSSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQ7OztHQUdHO0FBYUgsSUFBYSxnQkFBZ0IsR0FBN0IsTUFBYSxnQkFBZ0I7Q0FBRyxDQUFBO0FBQW5CLGdCQUFnQjtJQVo1QixRQUFRLENBQUM7UUFDUixPQUFPLEVBQUU7WUFDUCxjQUFjO1lBQ2QsWUFBWTtZQUNaLGNBQWM7WUFDZCxXQUFXO1lBQ1gsZUFBZTtZQUNmLGFBQWE7U0FDZDtRQUNELE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO1FBQzlCLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO0tBQ3BDLENBQUM7R0FDVyxnQkFBZ0IsQ0FBRztTQUFuQixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIGFzIEM4eUNvbW1vbk1vZHVsZSB9IGZyb20gJy4uL2NvbW1vbi9jb21tb24ubW9kdWxlJztcbmltcG9ydCB7IEZpbGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2ZpbGUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEcm9wQXJlYU1vZHVsZSB9IGZyb20gJy4uL2Ryb3AtYXJlYS9kcm9wLWFyZWEubW9kdWxlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIGFzIEM4eUZvcm1zTW9kdWxlIH0gZnJvbSAnLi4vZm9ybXMvZm9ybXMubW9kdWxlJztcbmltcG9ydCB7IFBvcG92ZXJNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3BvcG92ZXInO1xuXG4vKipcbiAqIFRoZSBhbmd1bGFyIG1vZHVsZSBkZWZpbml0aW9uIGZvciBhIGRyb3AtYXJlYS5cbiAqIEBleHBvcnRzIEZpbGVQaWNrZXJDb21wb25lbnRcbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIEM4eUZvcm1zTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEcm9wQXJlYU1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDOHlDb21tb25Nb2R1bGUsXG4gICAgUG9wb3Zlck1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbRmlsZVBpY2tlckNvbXBvbmVudF0sXG4gIGRlY2xhcmF0aW9uczogW0ZpbGVQaWNrZXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVQaWNrZXJNb2R1bGUge31cbiJdfQ==
@@ -14,9 +14,7 @@ let TotpAuthComponent = class TotpAuthComponent {
14
14
  this.LOGIN_VIEWS = LoginViews;
15
15
  this.loading = false;
16
16
  this.hasError = false;
17
- }
18
- get isSetup() {
19
- return this.view === LoginViews.TotpSetup;
17
+ this.isSetup = false;
20
18
  }
21
19
  /**
22
20
  * In case of a setup we need the user to be authorized
@@ -26,6 +24,7 @@ let TotpAuthComponent = class TotpAuthComponent {
26
24
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
27
25
  if (this.view === this.LOGIN_VIEWS.TotpSetup) {
28
26
  yield this.loginService.switchLoginMode(this.credentials);
27
+ this.isSetup = true;
29
28
  }
30
29
  });
31
30
  }
@@ -81,4 +80,4 @@ TotpAuthComponent = tslib_1.__decorate([
81
80
  })
82
81
  ], TotpAuthComponent);
83
82
  export { TotpAuthComponent };
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90cC1hdXRoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BjOHkvbmd4LWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb3JlL2xvZ2luL3RvdHAtYXV0aC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU0xQyxJQUFhLGlCQUFpQixHQUE5QixNQUFhLGlCQUFpQjtJQVk1QixZQUNTLFlBQTBCLEVBQ3pCLFdBQXdCLEVBQ3hCLEtBQW1CO1FBRnBCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQWM7UUFabkIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEMsZ0JBQVcsR0FBRyxVQUFVLENBQUM7UUFDekIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixhQUFRLEdBQUcsS0FBSyxDQUFDO0lBVWQsQ0FBQztJQVJKLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsU0FBUyxDQUFDO0lBQzVDLENBQUM7SUFRRDs7O09BR0c7SUFDRyxRQUFROztZQUNaLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRTtnQkFDNUMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDM0Q7UUFDSCxDQUFDO0tBQUE7SUFFSyxhQUFhLENBQUMsSUFBSTs7WUFDdEIsSUFBSTtnQkFDRixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztnQkFDNUIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNoQixNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7aUJBQ3ZDO2dCQUNELE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUMxRCxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQzFDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUN6QztZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLGtCQUFrQixFQUFFO29CQUNuRCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNoQztnQkFDRCxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssaURBQWlELEVBQUU7b0JBQ2xGLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyx1REFBdUQsQ0FBQyxDQUFDLENBQUM7aUJBQ3RGO3FCQUFNO29CQUNMLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2lCQUN0QjthQUNGO29CQUFTO2dCQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2FBQ3RCO1FBQ0gsQ0FBQztLQUFBO0NBQ0YsQ0FBQTs7WUF4Q3dCLFlBQVk7WUFDWixXQUFXO1lBQ2pCLFlBQVk7O0FBZHBCO0lBQVIsS0FBSyxFQUFFO3NEQUEyQjtBQUMxQjtJQUFSLEtBQUssRUFBRTsrQ0FBa0I7QUFDaEI7SUFBVCxNQUFNLEVBQUU7bURBQStCO0FBSDdCLGlCQUFpQjtJQUo3QixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsZUFBZTtRQUN6Qix5aEJBQXlDO0tBQzFDLENBQUM7R0FDVyxpQkFBaUIsQ0FxRDdCO1NBckRZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDcmVkZW50aWFscywgVXNlclNlcnZpY2UgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi9hbGVydC9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4vbG9naW4uc2VydmljZSc7XG5pbXBvcnQgeyBMb2dpblZpZXdzIH0gZnJvbSAnLi9sb2dpbi5tb2RlbCc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnLi4vaTE4bi9nZXR0ZXh0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXRvdHAtYXV0aCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90b3RwLWF1dGguY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFRvdHBBdXRoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgY3JlZGVudGlhbHM6IElDcmVkZW50aWFscztcbiAgQElucHV0KCkgdmlldzogTG9naW5WaWV3cztcbiAgQE91dHB1dCgpIG9uQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBMT0dJTl9WSUVXUyA9IExvZ2luVmlld3M7XG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgaGFzRXJyb3IgPSBmYWxzZTtcblxuICBnZXQgaXNTZXR1cCgpIHtcbiAgICByZXR1cm4gdGhpcy52aWV3ID09PSBMb2dpblZpZXdzLlRvdHBTZXR1cDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBsb2dpblNlcnZpY2U6IExvZ2luU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0OiBBbGVydFNlcnZpY2VcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBJbiBjYXNlIG9mIGEgc2V0dXAgd2UgbmVlZCB0aGUgdXNlciB0byBiZSBhdXRob3JpemVkXG4gICAqIGZpcnN0LlxuICAgKi9cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMudmlldyA9PT0gdGhpcy5MT0dJTl9WSUVXUy5Ub3RwU2V0dXApIHtcbiAgICAgIGF3YWl0IHRoaXMubG9naW5TZXJ2aWNlLnN3aXRjaExvZ2luTW9kZSh0aGlzLmNyZWRlbnRpYWxzKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBvblRvdHBTdWNjZXNzKGNvZGUpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuaGFzRXJyb3IgPSBmYWxzZTtcbiAgICAgIHRoaXMuY3JlZGVudGlhbHMudGZhID0gY29kZTtcbiAgICAgIGlmICh0aGlzLmlzU2V0dXApIHtcbiAgICAgICAgYXdhaXQgdGhpcy51c2VyU2VydmljZS5hY3RpdmF0ZVRvdHAoKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMubG9naW5TZXJ2aWNlLnN3aXRjaExvZ2luTW9kZSh0aGlzLmNyZWRlbnRpYWxzKTtcbiAgICAgIGF3YWl0IHRoaXMubG9naW5TZXJ2aWNlLnZlcmlmeUFwcEFjY2VzcygpO1xuICAgICAgYXdhaXQgdGhpcy5sb2dpblNlcnZpY2UuYXV0aEZ1bGZpbGxlZCgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuYWxlcnQucmVtb3ZlTGFzdERhbmdlcigpO1xuICAgICAgaWYgKGUuZGF0YSAmJiBlLmRhdGEubWVzc2FnZSA9PT0gJ0FjY2VzcyBpcyBkZW5pZWQnKSB7XG4gICAgICAgIHRoaXMuYWxlcnQuYWRkU2VydmVyRmFpbHVyZShlKTtcbiAgICAgIH1cbiAgICAgIGlmIChlLmRhdGEgJiYgZS5kYXRhLm1lc3NhZ2UgPT09ICdBdXRoZW50aWNhdGlvbiBmYWlsZWQhIDogVXNlciBhY2NvdW50IGlzIGxvY2tlZCcpIHtcbiAgICAgICAgdGhpcy5hbGVydC53YXJuaW5nKGdldHRleHQoJ0F1dGhlbnRpY2F0aW9uIGZhaWxlZCBkdWUgdG86IHVzZXIgYWNjb3VudCBpcyBsb2NrZWQuJykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5oYXNFcnJvciA9IHRydWU7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIl19
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90cC1hdXRoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BjOHkvbmd4LWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb3JlL2xvZ2luL3RvdHAtYXV0aC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU0xQyxJQUFhLGlCQUFpQixHQUE5QixNQUFhLGlCQUFpQjtJQVM1QixZQUNTLFlBQTBCLEVBQ3pCLFdBQXdCLEVBQ3hCLEtBQW1CO1FBRnBCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQWM7UUFUbkIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEMsZ0JBQVcsR0FBRyxVQUFVLENBQUM7UUFDekIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFNYixDQUFDO0lBRUo7OztPQUdHO0lBQ0csUUFBUTs7WUFDWixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUU7Z0JBQzVDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUMxRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQzthQUNyQjtRQUNILENBQUM7S0FBQTtJQUVLLGFBQWEsQ0FBQyxJQUFJOztZQUN0QixJQUFJO2dCQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO2dCQUM1QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ2hCLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztpQkFDdkM7Z0JBQ0QsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzFELE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDMUMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3pDO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUM5QixJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssa0JBQWtCLEVBQUU7b0JBQ25ELElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2hDO2dCQUNELElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxpREFBaUQsRUFBRTtvQkFDbEYsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLHVEQUF1RCxDQUFDLENBQUMsQ0FBQztpQkFDdEY7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7aUJBQ3RCO2FBQ0Y7b0JBQVM7Z0JBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7YUFDdEI7UUFDSCxDQUFDO0tBQUE7Q0FDRixDQUFBOztZQXpDd0IsWUFBWTtZQUNaLFdBQVc7WUFDakIsWUFBWTs7QUFYcEI7SUFBUixLQUFLLEVBQUU7c0RBQTJCO0FBQzFCO0lBQVIsS0FBSyxFQUFFOytDQUFrQjtBQUNoQjtJQUFULE1BQU0sRUFBRTttREFBK0I7QUFIN0IsaUJBQWlCO0lBSjdCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxlQUFlO1FBQ3pCLHloQkFBeUM7S0FDMUMsQ0FBQztHQUNXLGlCQUFpQixDQW1EN0I7U0FuRFksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUNyZWRlbnRpYWxzLCBVc2VyU2VydmljZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IExvZ2luVmlld3MgfSBmcm9tICcuL2xvZ2luLm1vZGVsJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICcuLi9pMThuL2dldHRleHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktdG90cC1hdXRoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvdHAtYXV0aC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVG90cEF1dGhDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBjcmVkZW50aWFsczogSUNyZWRlbnRpYWxzO1xuICBASW5wdXQoKSB2aWV3OiBMb2dpblZpZXdzO1xuICBAT3V0cHV0KCkgb25DYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIExPR0lOX1ZJRVdTID0gTG9naW5WaWV3cztcbiAgbG9hZGluZyA9IGZhbHNlO1xuICBoYXNFcnJvciA9IGZhbHNlO1xuICBpc1NldHVwID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGxvZ2luU2VydmljZTogTG9naW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnQ6IEFsZXJ0U2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqIEluIGNhc2Ugb2YgYSBzZXR1cCB3ZSBuZWVkIHRoZSB1c2VyIHRvIGJlIGF1dGhvcml6ZWRcbiAgICogZmlyc3QuXG4gICAqL1xuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy52aWV3ID09PSB0aGlzLkxPR0lOX1ZJRVdTLlRvdHBTZXR1cCkge1xuICAgICAgYXdhaXQgdGhpcy5sb2dpblNlcnZpY2Uuc3dpdGNoTG9naW5Nb2RlKHRoaXMuY3JlZGVudGlhbHMpO1xuICAgICAgdGhpcy5pc1NldHVwID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBvblRvdHBTdWNjZXNzKGNvZGUpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuaGFzRXJyb3IgPSBmYWxzZTtcbiAgICAgIHRoaXMuY3JlZGVudGlhbHMudGZhID0gY29kZTtcbiAgICAgIGlmICh0aGlzLmlzU2V0dXApIHtcbiAgICAgICAgYXdhaXQgdGhpcy51c2VyU2VydmljZS5hY3RpdmF0ZVRvdHAoKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMubG9naW5TZXJ2aWNlLnN3aXRjaExvZ2luTW9kZSh0aGlzLmNyZWRlbnRpYWxzKTtcbiAgICAgIGF3YWl0IHRoaXMubG9naW5TZXJ2aWNlLnZlcmlmeUFwcEFjY2VzcygpO1xuICAgICAgYXdhaXQgdGhpcy5sb2dpblNlcnZpY2UuYXV0aEZ1bGZpbGxlZCgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuYWxlcnQucmVtb3ZlTGFzdERhbmdlcigpO1xuICAgICAgaWYgKGUuZGF0YSAmJiBlLmRhdGEubWVzc2FnZSA9PT0gJ0FjY2VzcyBpcyBkZW5pZWQnKSB7XG4gICAgICAgIHRoaXMuYWxlcnQuYWRkU2VydmVyRmFpbHVyZShlKTtcbiAgICAgIH1cbiAgICAgIGlmIChlLmRhdGEgJiYgZS5kYXRhLm1lc3NhZ2UgPT09ICdBdXRoZW50aWNhdGlvbiBmYWlsZWQhIDogVXNlciBhY2NvdW50IGlzIGxvY2tlZCcpIHtcbiAgICAgICAgdGhpcy5hbGVydC53YXJuaW5nKGdldHRleHQoJ0F1dGhlbnRpY2F0aW9uIGZhaWxlZCBkdWUgdG86IHVzZXIgYWNjb3VudCBpcyBsb2NrZWQuJykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5oYXNFcnJvciA9IHRydWU7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -20,6 +20,11 @@ let ConfigurationDetailComponent = class ConfigurationDetailComponent {
20
20
  this.mo = {};
21
21
  this.saving = false;
22
22
  this.uploadChoice = 'uploadBinary';
23
+ this.textForConfigurationUrlPopover = gettext(`Path for binaries can vary depending on device agent implementation, e.g.:
24
+ /configuration/binaries/configuration1.bin
25
+ https://configuration/binary/123
26
+ ftp://configuration/binary/123.tar.gz
27
+ `);
23
28
  this.result = new Promise((resolve, reject) => {
24
29
  this._save = resolve;
25
30
  this._cancel = reject;
@@ -104,8 +109,8 @@ tslib_1.__decorate([
104
109
  ConfigurationDetailComponent = tslib_1.__decorate([
105
110
  Component({
106
111
  selector: 'c8y-configuration-detail',
107
- template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'cogs'\"></i>\n <h4 translate *ngIf=\"mo.id\">Update configuration</h4>\n <h4 translate *ngIf=\"!mo.id\">Add configuration</h4>\n </div>\n\n <form class=\"d-contents\" #configurationForm=\"ngForm\" (ngSubmit)=\"configurationForm.form.valid && save()\">\n <div class=\"modal-inner-scroll\">\n <div class=\"modal-body\">\n <c8y-form-group>\n <label translate>Name</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} hosts\"\n autocomplete=\"off\"\n required\n maxlength=\"254\"\n [(ngModel)]=\"version\"\n name=\"version\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Device type</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} c8y_Linux\"\n maxlength=\"254\"\n autocomplete=\"off\"\n [(ngModel)]=\"deviceType\"\n name=\"deviceType\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Description</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g. Host configuration' | translate }} c8y_Linux\"\n maxlength=\"254\"\n autocomplete=\"off\"\n [(ngModel)]=\"description\"\n name=\"description\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Configuration type</label>\n <c8y-typeahead\n [(ngModel)]=\"selected\"\n name=\"confType\"\n placeholder=\"{{ 'e.g.' | translate }} ssh\"\n (onSearch)=\"setPipe($event)\"\n displayProperty=\"configurationType\"\n >\n <c8y-li\n *c8yFor=\"let config of configs; pipe: filterPipe; notFound: notFoundTemplate\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"selected = config; setPipe('')\"\n [active]=\"selected === config\"\n >\n <c8y-highlight\n [text]=\"config.configurationType || '--'\"\n [pattern]=\"pattern\"\n ></c8y-highlight>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-gray-lighter p-8\" *ngIf=\"pattern.length > 0\">\n <span translate>No match found, add new`configuration`?</span>\n <button title=\"Create new`configuration`\" type=\"button\" class=\"btn btn-primary btn-xs m-l-16\" translate>\n Create new`configuration`\n </button>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n </c8y-form-group>\n\n <c8y-form-group>\n <div class=\"legend form-block top-m-xxl\" translate>Configuration file</div>\n <c8y-file-picker\n [maxAllowedFiles]=\"1\"\n (onFilesPicked)=\"onFile($event)\"\n [uploadChoice]=\"uploadChoice\"\n [fileUrl]=\"binary.url\"\n [fileBinary]=\"binary.file\"\n >\n </c8y-file-picker>\n </c8y-form-group>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button\n (click)=\"cancel()\"\n type=\"button\"\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n [disabled]=\"saving\"\n >\n <span translate>Cancel</span>\n </button>\n <button\n class=\"btn btn-primary\"\n type=\"submit\"\n title=\"{{ submitButtonTitle | translate }}\"\n [ngClass]=\"{ 'btn-pending': saving }\"\n [disabled]=\"\n !configurationForm.valid ||\n configurationForm.pristine ||\n (!binary?.url && !binary?.file) ||\n saving\n \"\n >\n {{ submitButtonTitle | translate }}\n </button>\n </div>\n </form>\n</div>\n"
112
+ template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'cogs'\"></i>\n <h4 translate *ngIf=\"mo.id\">Update configuration</h4>\n <h4 translate *ngIf=\"!mo.id\">Add configuration</h4>\n </div>\n\n <form class=\"d-contents\" #configurationForm=\"ngForm\" (ngSubmit)=\"configurationForm.form.valid && save()\">\n <div class=\"modal-inner-scroll\">\n <div class=\"modal-body\">\n <c8y-form-group>\n <label translate>Name</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} hosts\"\n autocomplete=\"off\"\n required\n maxlength=\"254\"\n [(ngModel)]=\"version\"\n name=\"version\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Device type</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} c8y_Linux\"\n maxlength=\"254\"\n autocomplete=\"off\"\n [(ngModel)]=\"deviceType\"\n name=\"deviceType\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Description</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g. Host configuration' | translate }} c8y_Linux\"\n maxlength=\"254\"\n autocomplete=\"off\"\n [(ngModel)]=\"description\"\n name=\"description\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Configuration type</label>\n <c8y-typeahead\n [(ngModel)]=\"selected\"\n name=\"confType\"\n placeholder=\"{{ 'e.g.' | translate }} ssh\"\n (onSearch)=\"setPipe($event)\"\n displayProperty=\"configurationType\"\n >\n <c8y-li\n *c8yFor=\"let config of configs; pipe: filterPipe; notFound: notFoundTemplate\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"selected = config; setPipe('')\"\n [active]=\"selected === config\"\n >\n <c8y-highlight\n [text]=\"config.configurationType || '--'\"\n [pattern]=\"pattern\"\n ></c8y-highlight>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-gray-lighter p-8\" *ngIf=\"pattern.length > 0\">\n <span translate>No match found, add new`configuration`?</span>\n <button title=\"Create new`configuration`\" type=\"button\" class=\"btn btn-primary btn-xs m-l-16\" translate>\n Create new`configuration`\n </button>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n </c8y-form-group>\n\n <c8y-form-group>\n <div class=\"legend form-block top-m-xxl\" translate>Configuration file</div>\n <c8y-file-picker\n [maxAllowedFiles]=\"1\"\n (onFilesPicked)=\"onFile($event)\"\n [uploadChoice]=\"uploadChoice\"\n [fileUrl]=\"binary.url\"\n [fileBinary]=\"binary.file\"\n [fileUrlPopover]=\"textForConfigurationUrlPopover\"\n >\n </c8y-file-picker>\n </c8y-form-group>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button\n (click)=\"cancel()\"\n type=\"button\"\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n [disabled]=\"saving\"\n >\n <span translate>Cancel</span>\n </button>\n <button\n class=\"btn btn-primary\"\n type=\"submit\"\n title=\"{{ submitButtonTitle | translate }}\"\n [ngClass]=\"{ 'btn-pending': saving }\"\n [disabled]=\"\n !configurationForm.valid ||\n configurationForm.pristine ||\n (!binary?.url && !binary?.file) ||\n saving\n \"\n >\n {{ submitButtonTitle | translate }}\n </button>\n </div>\n </form>\n</div>\n"
108
113
  })
109
114
  ], ConfigurationDetailComponent);
110
115
  export { ConfigurationDetailComponent };
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGM4eS9uZ3gtY29tcG9uZW50cy9yZXBvc2l0b3J5LyIsInNvdXJjZXMiOlsiY29uZmlndXJhdGlvbi9jb25maWd1cmF0aW9uLWRldGFpbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBYyxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVExRCxJQUFhLDRCQUE0QixHQUF6QyxNQUFhLDRCQUE0QjtJQTRCdkMsWUFDVSxpQkFBb0MsRUFDcEMsVUFBc0IsRUFDdEIsS0FBbUI7UUFGbkIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQWM7UUExQjdCLFdBQU0sR0FBa0M7WUFDdEMsSUFBSSxFQUFFLFNBQVM7WUFDZixHQUFHLEVBQUUsU0FBUztTQUNmLENBQUM7UUFHRixZQUFPLEdBQVcsRUFBRSxDQUFDO1FBR3JCLE9BQUUsR0FBNEIsRUFBRSxDQUFDO1FBQ2pDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixpQkFBWSxHQUFpQyxjQUFjLENBQUM7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bmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IHVuaXFCeSwgaXNVbmRlZmluZWQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgcGlwZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTW9kYWxNb2RlbCwgUmVwb3NpdG9yeVR5cGUgfSBmcm9tICcuLi9yZXBvc2l0b3J5Lm1vZGVsJztcbmltcG9ydCB7IFJlcG9zaXRvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vcmVwb3NpdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IFBpY2tlZEZpbGVzIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1jb25maWd1cmF0aW9uLWRldGFpbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maWd1cmF0aW9uLWRldGFpbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvbkRldGFpbENvbXBvbmVudCBpbXBsZW1lbnRzIE1vZGFsTW9kZWwge1xuICBAVmlld0NoaWxkKCdjb25maWd1cmF0aW9uRm9ybScsIHsgc3RhdGljOiB0cnVlIH0pIGNvbmZpZ3VyYXRpb25Gb3JtOiBOZ0Zvcm07XG4gIHNlbGVjdGVkOiB7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZyB9O1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGJpbmFyeTogeyBmaWxlPzogRmlsZTsgdXJsPzogc3RyaW5nIH0gPSB7XG4gICAgZmlsZTogdW5kZWZpbmVkLFxuICAgIHVybDogdW5kZWZpbmVkXG4gIH07XG4gIGRldmljZVR5cGU6IHN0cmluZztcblxuICBwYXR0ZXJuOiBzdHJpbmcgPSAnJztcbiAgZmlsdGVyUGlwZTtcbiAgY29uZmlncztcbiAgbW86IFBhcnRpYWw8SU1hbmFnZWRPYmplY3Q+ID0ge307XG4gIHNhdmluZyA9IGZhbHNlO1xuICB1cGxvYWRDaG9pY2U6ICd1cGxvYWRCaW5hcnknIHwgJ3VwbG9hZFVybCcgPSAndXBsb2FkQmluYXJ5JztcbiAgZXhpc3RpbmdCaW5hcnk6IEZpbGU7XG4gIHN1Ym1pdEJ1dHRvblRpdGxlOiBzdHJpbmc7XG5cbiAgcmVzdWx0OiBQcm9taXNlPHZvaWQ+ID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHRoaXMuX3NhdmUgPSByZXNvbHZlO1xuICAgIHRoaXMuX2NhbmNlbCA9IHJlamVjdDtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfc2F2ZTtcbiAgcHJpdmF0ZSBfY2FuY2VsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVwb3NpdG9yeVNlcnZpY2U6IFJlcG9zaXRvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFJlZjogQnNNb2RhbFJlZixcbiAgICBwcml2YXRlIGFsZXJ0OiBBbGVydFNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29uZmlncyA9IGF3YWl0IHRoaXMucmVwb3NpdG9yeVNlcnZpY2UubGlzdFJlcG9zaXRvcnlFbnRyaWVzKFJlcG9zaXRvcnlUeXBlLkNPTkZJR1VSQVRJT04pO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLnVwbG9hZENob2ljZSA9IHRoaXMuYmluYXJ5LmZpbGUgPyAndXBsb2FkQmluYXJ5JyA6ICd1cGxvYWRVcmwnO1xuICAgICAgdGhpcy5leGlzdGluZ0JpbmFyeSA9IHRoaXMuYmluYXJ5LmZpbGU7XG4gICAgfVxuICAgIHRoaXMuc2V0UGlwZSgnJyk7XG4gICAgdGhpcy5zdWJtaXRCdXR0b25UaXRsZSA9IHRoaXMubW8uaWRcbiAgICAgID8gZ2V0dGV4dCgnVXBkYXRlIGNvbmZpZ3VyYXRpb24nKVxuICAgICAgOiBnZXR0ZXh0KCdBZGQgY29uZmlndXJhdGlvbicpO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gICAgdGhpcy5fY2FuY2VsKCk7XG4gIH1cblxuICBzZXRQaXBlKGZpbHRlclN0cjogc3RyaW5nKSB7XG4gICAgdGhpcy5wYXR0ZXJuID0gZmlsdGVyU3RyO1xuICAgIHRoaXMuZmlsdGVyUGlwZSA9IHBpcGUoXG4gICAgICBtYXAoKGRhdGE6IFtdKSA9PiB1bmlxQnkoZGF0YSwgJ2NvbmZpZ3VyYXRpb25UeXBlJykpLFxuICAgICAgbWFwKChkYXRhOiBbXSkgPT4ge1xuICAgICAgICByZXR1cm4gZGF0YS5maWx0ZXIoXG4gICAgICAgICAgKG1vOiBhbnkpID0+XG4gICAgICAgICAgICBtby5jb25maWd1cmF0aW9uVHlwZSAmJlxuICAgICAgICAgICAgbW8uY29uZmlndXJhdGlvblR5cGUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlclN0ci50b0xvd2VyQ2FzZSgpKSA+IC0xXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBvbkZpbGUoZHJvcHBlZDogUGlja2VkRmlsZXMpIHtcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25Gb3JtLmZvcm0ubWFya0FzRGlydHkoKTtcbiAgICBpZiAoIWlzVW5kZWZpbmVkKGRyb3BwZWQudXJsKSkge1xuICAgICAgdGhpcy5iaW5hcnkgPSB7XG4gICAgICAgIHVybDogZHJvcHBlZC51cmxcbiAgICAgIH07XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICghaXNVbmRlZmluZWQoZHJvcHBlZC5kcm9wcGVkRmlsZXMpKSB7XG4gICAgICB0aGlzLmJpbmFyeSA9IHtcbiAgICAgICAgZmlsZTogZHJvcHBlZC5kcm9wcGVkRmlsZXNbMF0uZmlsZVxuICAgICAgfTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5iaW5hcnkgPSB7XG4gICAgICAgIGZpbGU6IHVuZGVmaW5lZCxcbiAgICAgICAgdXJsOiB1bmRlZmluZWRcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2F2ZSgpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5zYXZpbmcgPSB0cnVlO1xuICAgICAgY29uc3QgeyBzZWxlY3RlZCwgdmVyc2lvbiwgZGVzY3JpcHRpb24sIGJpbmFyeSwgZGV2aWNlVHlwZSB9ID0gdGhpcztcbiAgICAgIGlmICh0aGlzLmV4aXN0aW5nQmluYXJ5ID09PSB0aGlzLmJpbmFyeS5maWxlKSB7XG4gICAgICAgIGJpbmFyeS5maWxlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy5yZXBvc2l0b3J5U2VydmljZS5zYXZlKFxuICAgICAgICB7IHNlbGVjdGVkLCB2ZXJzaW9uLCBkZXNjcmlwdGlvbiwgYmluYXJ5LCBkZXZpY2VUeXBlIH0sXG4gICAgICAgIFJlcG9zaXRvcnlUeXBlLkNPTkZJR1VSQVRJT04sXG4gICAgICAgIHRoaXMubW9cbiAgICAgICk7XG4gICAgICB0aGlzLmFsZXJ0LnN1Y2Nlc3MoXG4gICAgICAgIHRoaXMubW8uaWQgPyBnZXR0ZXh0KCdDb25maWd1cmF0aW9uIHVwZGF0ZWQuJykgOiBnZXR0ZXh0KCdDb25maWd1cmF0aW9uIGNyZWF0ZWQuJylcbiAgICAgICk7XG4gICAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICAgICAgdGhpcy5fc2F2ZSgpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgICAgdGhpcy5fY2FuY2VsKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXX0=
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGM4eS9uZ3gtY29tcG9uZW50cy9yZXBvc2l0b3J5LyIsInNvdXJjZXMiOlsiY29uZmlndXJhdGlvbi9jb25maWd1cmF0aW9uLWRldGFpbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBYyxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVExRCxJQUFhLDRCQUE0QixHQUF6QyxNQUFhLDRCQUE0QjtJQWlDdkMsWUFDVSxpQkFBb0MsRUFDcEMsVUFBc0IsRUFDdEIsS0FBbUI7UUFGbkIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQWM7UUEvQjdCLFdBQU0sR0FBa0M7WUFDdEMsSUFBSSxFQUFFLFNBQVM7WUFDZixHQUFHLEVBQUUsU0FBUztTQUNmLENBQUM7UUFHRixZQUFPLEdBQVcsRUFBRSxDQUFDO1FBR3JCLE9BQUUsR0FBNEIsRUFBRSxDQUFDO1FBQ2pDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixpQkFBWSxHQUFpQyxjQUFjLENBQUM7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bnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyB1bmlxQnksIGlzVW5kZWZpbmVkIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IHBpcGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1vZGFsTW9kZWwsIFJlcG9zaXRvcnlUeXBlIH0gZnJvbSAnLi4vcmVwb3NpdG9yeS5tb2RlbCc7XG5pbXBvcnQgeyBSZXBvc2l0b3J5U2VydmljZSB9IGZyb20gJy4uL3JlcG9zaXRvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBQaWNrZWRGaWxlcyB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktY29uZmlndXJhdGlvbi1kZXRhaWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlndXJhdGlvbi1kZXRhaWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpZ3VyYXRpb25EZXRhaWxDb21wb25lbnQgaW1wbGVtZW50cyBNb2RhbE1vZGVsIHtcbiAgQFZpZXdDaGlsZCgnY29uZmlndXJhdGlvbkZvcm0nLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb25maWd1cmF0aW9uRm9ybTogTmdGb3JtO1xuICBzZWxlY3RlZDogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfTtcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBiaW5hcnk6IHsgZmlsZT86IEZpbGU7IHVybD86IHN0cmluZyB9ID0ge1xuICAgIGZpbGU6IHVuZGVmaW5lZCxcbiAgICB1cmw6IHVuZGVmaW5lZFxuICB9O1xuICBkZXZpY2VUeXBlOiBzdHJpbmc7XG5cbiAgcGF0dGVybjogc3RyaW5nID0gJyc7XG4gIGZpbHRlclBpcGU7XG4gIGNvbmZpZ3M7XG4gIG1vOiBQYXJ0aWFsPElNYW5hZ2VkT2JqZWN0PiA9IHt9O1xuICBzYXZpbmcgPSBmYWxzZTtcbiAgdXBsb2FkQ2hvaWNlOiAndXBsb2FkQmluYXJ5JyB8ICd1cGxvYWRVcmwnID0gJ3VwbG9hZEJpbmFyeSc7XG4gIGV4aXN0aW5nQmluYXJ5OiBGaWxlO1xuICBzdWJtaXRCdXR0b25UaXRsZTogc3RyaW5nO1xuICB0ZXh0Rm9yQ29uZmlndXJhdGlvblVybFBvcG92ZXI6IHN0cmluZyA9IGdldHRleHQoYFBhdGggZm9yIGJpbmFyaWVzIGNhbiB2YXJ5IGRlcGVuZGluZyBvbiBkZXZpY2UgYWdlbnQgaW1wbGVtZW50YXRpb24sIGUuZy46XG4gICAgL2NvbmZpZ3VyYXRpb24vYmluYXJpZXMvY29uZmlndXJhdGlvbjEuYmluXG4gICAgaHR0cHM6Ly9jb25maWd1cmF0aW9uL2JpbmFyeS8xMjNcbiAgICBmdHA6Ly9jb25maWd1cmF0aW9uL2JpbmFyeS8xMjMudGFyLmd6XG4gIGApO1xuXG4gIHJlc3VsdDogUHJvbWlzZTx2b2lkPiA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICB0aGlzLl9zYXZlID0gcmVzb2x2ZTtcbiAgICB0aGlzLl9jYW5jZWwgPSByZWplY3Q7XG4gIH0pO1xuXG4gIHByaXZhdGUgX3NhdmU7XG4gIHByaXZhdGUgX2NhbmNlbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlcG9zaXRvcnlTZXJ2aWNlOiBSZXBvc2l0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNvbmZpZ3MgPSBhd2FpdCB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlLmxpc3RSZXBvc2l0b3J5RW50cmllcyhSZXBvc2l0b3J5VHlwZS5DT05GSUdVUkFUSU9OKTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZCkge1xuICAgICAgdGhpcy51cGxvYWRDaG9pY2UgPSB0aGlzLmJpbmFyeS5maWxlID8gJ3VwbG9hZEJpbmFyeScgOiAndXBsb2FkVXJsJztcbiAgICAgIHRoaXMuZXhpc3RpbmdCaW5hcnkgPSB0aGlzLmJpbmFyeS5maWxlO1xuICAgIH1cbiAgICB0aGlzLnNldFBpcGUoJycpO1xuICAgIHRoaXMuc3VibWl0QnV0dG9uVGl0bGUgPSB0aGlzLm1vLmlkXG4gICAgICA/IGdldHRleHQoJ1VwZGF0ZSBjb25maWd1cmF0aW9uJylcbiAgICAgIDogZ2V0dGV4dCgnQWRkIGNvbmZpZ3VyYXRpb24nKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICAgIHRoaXMuX2NhbmNlbCgpO1xuICB9XG5cbiAgc2V0UGlwZShmaWx0ZXJTdHI6IHN0cmluZykge1xuICAgIHRoaXMucGF0dGVybiA9IGZpbHRlclN0cjtcbiAgICB0aGlzLmZpbHRlclBpcGUgPSBwaXBlKFxuICAgICAgbWFwKChkYXRhOiBbXSkgPT4gdW5pcUJ5KGRhdGEsICdjb25maWd1cmF0aW9uVHlwZScpKSxcbiAgICAgIG1hcCgoZGF0YTogW10pID0+IHtcbiAgICAgICAgcmV0dXJuIGRhdGEuZmlsdGVyKFxuICAgICAgICAgIChtbzogYW55KSA9PlxuICAgICAgICAgICAgbW8uY29uZmlndXJhdGlvblR5cGUgJiZcbiAgICAgICAgICAgIG1vLmNvbmZpZ3VyYXRpb25UeXBlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihmaWx0ZXJTdHIudG9Mb3dlckNhc2UoKSkgPiAtMVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgb25GaWxlKGRyb3BwZWQ6IFBpY2tlZEZpbGVzKSB7XG4gICAgdGhpcy5jb25maWd1cmF0aW9uRm9ybS5mb3JtLm1hcmtBc0RpcnR5KCk7XG4gICAgaWYgKCFpc1VuZGVmaW5lZChkcm9wcGVkLnVybCkpIHtcbiAgICAgIHRoaXMuYmluYXJ5ID0ge1xuICAgICAgICB1cmw6IGRyb3BwZWQudXJsXG4gICAgICB9O1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAoIWlzVW5kZWZpbmVkKGRyb3BwZWQuZHJvcHBlZEZpbGVzKSkge1xuICAgICAgdGhpcy5iaW5hcnkgPSB7XG4gICAgICAgIGZpbGU6IGRyb3BwZWQuZHJvcHBlZEZpbGVzWzBdLmZpbGVcbiAgICAgIH07XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYmluYXJ5ID0ge1xuICAgICAgICBmaWxlOiB1bmRlZmluZWQsXG4gICAgICAgIHVybDogdW5kZWZpbmVkXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNhdmUoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHsgc2VsZWN0ZWQsIHZlcnNpb24sIGRlc2NyaXB0aW9uLCBiaW5hcnksIGRldmljZVR5cGUgfSA9IHRoaXM7XG4gICAgICBpZiAodGhpcy5leGlzdGluZ0JpbmFyeSA9PT0gdGhpcy5iaW5hcnkuZmlsZSkge1xuICAgICAgICBiaW5hcnkuZmlsZSA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMucmVwb3NpdG9yeVNlcnZpY2Uuc2F2ZShcbiAgICAgICAgeyBzZWxlY3RlZCwgdmVyc2lvbiwgZGVzY3JpcHRpb24sIGJpbmFyeSwgZGV2aWNlVHlwZSB9LFxuICAgICAgICBSZXBvc2l0b3J5VHlwZS5DT05GSUdVUkFUSU9OLFxuICAgICAgICB0aGlzLm1vXG4gICAgICApO1xuICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKFxuICAgICAgICB0aGlzLm1vLmlkID8gZ2V0dGV4dCgnQ29uZmlndXJhdGlvbiB1cGRhdGVkLicpIDogZ2V0dGV4dCgnQ29uZmlndXJhdGlvbiBjcmVhdGVkLicpXG4gICAgICApO1xuICAgICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgICAgIHRoaXMuX3NhdmUoKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGV4KTtcbiAgICAgIHRoaXMuX2NhbmNlbCgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -26,6 +26,11 @@ let AddFirmwareModalComponent = class AddFirmwareModalComponent {
26
26
  };
27
27
  this.saving = false;
28
28
  this.firmwarePreselected = false;
29
+ this.textForFirmwareUrlPopover = gettext(`Path for binaries can vary depending on device agent implementation, e.g.:
30
+ /firmware/binaries/firmware1.bin
31
+ https://firmware/binary/123
32
+ ftp://firmware/binary/123.tar.gz
33
+ `);
29
34
  }
30
35
  ngOnInit() {
31
36
  this.setInitialState();
@@ -127,8 +132,8 @@ tslib_1.__decorate([
127
132
  AddFirmwareModalComponent = tslib_1.__decorate([
128
133
  Component({
129
134
  selector: 'c8y-add-firmware-software-modal',
130
- template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'c8y-firmware'\"></i>\n <h4 translate>\n Add firmware\n </h4>\n </div>\n <div class=\"p-16 text-center separator-bottom\" *ngIf=\"!firmwarePreselected\">\n <p class=\"lead m-0\" translate>\n Select or create new firmware\n </p>\n </div>\n <form\n class=\"d-contents\"\n autocomplete=\"off\"\n #firmwareForm=\"ngForm\"\n (ngSubmit)=\"firmwareForm.form.valid && save()\"\n >\n <div class=\"modal-inner-scroll\">\n <div class=\"modal-body\">\n <div [hidden]=\"firmwarePreselected\">\n <c8y-form-group>\n <label for=\"firmwareName\" translate>Firmware</label>\n <c8y-typeahead\n [(ngModel)]=\"model.selected\"\n name=\"firmwareName\"\n placeholder=\"{{ 'Select or enter' | translate }}\"\n (onSearch)=\"onInput.next($event)\"\n [required]=\"true\"\n >\n <c8y-li\n *c8yFor=\"\n let firmware of firmwaresResult;\n loadMore: 'auto';\n notFound: notFoundTemplate\n \"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"onFirmwareSelect(firmware)\"\n [active]=\"model.selected === firmware\"\n >\n <c8y-highlight\n [text]=\"firmware.name || '--'\"\n [pattern]=\"onInput | async\"\n ></c8y-highlight>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-gray-lighter p-8\" *ngIf=\"(onInput | async)?.length > 0\">\n <span translate>No match found, add new`firmware`? </span>\n <button\n title=\"{{ 'Create new`firmware`' | translate }}\"\n type=\"button\"\n class=\"btn btn-primary btn-xs m-l-16\"\n translate\n >\n Create new`firmware`\n </button>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n </c8y-form-group>\n\n <c8y-form-group>\n <label for=\"firmwareDescription\" translate>Description</label>\n <input\n id=\"firmwareDescription\"\n class=\"form-control\"\n autocomplete=\"off\"\n name=\"description\"\n [(ngModel)]=\"model.description\"\n placeholder=\"{{ 'e.g. Firmware for hardware revision b' | translate }}\"\n [disabled]=\"model.selected?.id\"\n [required]=\"true\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label for=\"firmwareDeviceTypeFilter\" translate>Device type filter</label>\n <input\n id=\"firmwareDeviceTypeFilter\"\n class=\"form-control\"\n name=\"firmwareDeviceTypeFilter\"\n popover=\"{{\n 'If the filter is set, the firmware will show up for installation only for devices of that type. If no filter is set, it will be available for all devices.'\n | translate\n }}\"\n [(ngModel)]=\"model.deviceType\"\n placeholder=\"{{ 'e.g.' | translate }} c8y_Linux\"\n [disabled]=\"model.selected?.id\"\n />\n </c8y-form-group>\n </div>\n\n <c8y-form-group>\n <label for=\"firmwareVersion\" translate>Version</label>\n <input\n id=\"firmwareVersion\"\n class=\"form-control\"\n autocomplete=\"off\"\n name=\"version\"\n [(ngModel)]=\"model.version\"\n placeholder=\"{{ 'e.g.' | translate }} 1.0.0\"\n [required]=\"true\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <div class=\"legend form-block top-m-xxl\" translate>Firmware file</div>\n <c8y-file-picker [maxAllowedFiles]=\"1\" (onFilesPicked)=\"onFile($event)\">\n </c8y-file-picker>\n </c8y-form-group>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n [disabled]=\"saving\"\n translate\n >\n Cancel\n </button>\n\n <button\n title=\"{{ 'Add firmware' | translate }}\"\n class=\"btn btn-primary\"\n type=\"submit\"\n [ngClass]=\"{ 'btn-pending': saving }\"\n [disabled]=\"\n !firmwareForm.form.valid ||\n firmwareForm.form.pristine ||\n saving ||\n (!model.binary?.url && !model.binary?.file)\n \"\n translate\n >\n Add firmware\n </button>\n </div>\n </form>\n</div>\n"
135
+ template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'c8y-firmware'\"></i>\n <h4 translate>\n Add firmware\n </h4>\n </div>\n <div class=\"p-16 text-center separator-bottom\" *ngIf=\"!firmwarePreselected\">\n <p class=\"lead m-0\" translate>\n Select or create new firmware\n </p>\n </div>\n <form\n class=\"d-contents\"\n autocomplete=\"off\"\n #firmwareForm=\"ngForm\"\n (ngSubmit)=\"firmwareForm.form.valid && save()\"\n >\n <div class=\"modal-inner-scroll\">\n <div class=\"modal-body\">\n <div [hidden]=\"firmwarePreselected\">\n <c8y-form-group>\n <label for=\"firmwareName\" translate>Firmware</label>\n <c8y-typeahead\n [(ngModel)]=\"model.selected\"\n name=\"firmwareName\"\n placeholder=\"{{ 'Select or enter' | translate }}\"\n (onSearch)=\"onInput.next($event)\"\n [required]=\"true\"\n >\n <c8y-li\n *c8yFor=\"\n let firmware of firmwaresResult;\n loadMore: 'auto';\n notFound: notFoundTemplate\n \"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"onFirmwareSelect(firmware)\"\n [active]=\"model.selected === firmware\"\n >\n <c8y-highlight\n [text]=\"firmware.name || '--'\"\n [pattern]=\"onInput | async\"\n ></c8y-highlight>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-gray-lighter p-8\" *ngIf=\"(onInput | async)?.length > 0\">\n <span translate>No match found, add new`firmware`? </span>\n <button\n title=\"{{ 'Create new`firmware`' | translate }}\"\n type=\"button\"\n class=\"btn btn-primary btn-xs m-l-16\"\n translate\n >\n Create new`firmware`\n </button>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n </c8y-form-group>\n\n <c8y-form-group>\n <label for=\"firmwareDescription\" translate>Description</label>\n <input\n id=\"firmwareDescription\"\n class=\"form-control\"\n autocomplete=\"off\"\n name=\"description\"\n [(ngModel)]=\"model.description\"\n placeholder=\"{{ 'e.g. Firmware for hardware revision b' | translate }}\"\n [disabled]=\"model.selected?.id\"\n [required]=\"true\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label for=\"firmwareDeviceTypeFilter\" translate>Device type filter</label>\n <input\n id=\"firmwareDeviceTypeFilter\"\n class=\"form-control\"\n name=\"firmwareDeviceTypeFilter\"\n popover=\"{{\n 'If the filter is set, the firmware will show up for installation only for devices of that type. If no filter is set, it will be available for all devices.'\n | translate\n }}\"\n [(ngModel)]=\"model.deviceType\"\n placeholder=\"{{ 'e.g.' | translate }} c8y_Linux\"\n [disabled]=\"model.selected?.id\"\n />\n </c8y-form-group>\n </div>\n\n <c8y-form-group>\n <label for=\"firmwareVersion\" translate>Version</label>\n <input\n id=\"firmwareVersion\"\n class=\"form-control\"\n autocomplete=\"off\"\n name=\"version\"\n [(ngModel)]=\"model.version\"\n placeholder=\"{{ 'e.g.' | translate }} 1.0.0\"\n [required]=\"true\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <div class=\"legend form-block top-m-xxl\" translate>Firmware file</div>\n <c8y-file-picker [maxAllowedFiles]=\"1\" (onFilesPicked)=\"onFile($event)\" [fileUrlPopover]=\"textForFirmwareUrlPopover\">\n </c8y-file-picker>\n </c8y-form-group>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n [disabled]=\"saving\"\n translate\n >\n Cancel\n </button>\n\n <button\n title=\"{{ 'Add firmware' | translate }}\"\n class=\"btn btn-primary\"\n type=\"submit\"\n [ngClass]=\"{ 'btn-pending': saving }\"\n [disabled]=\"\n !firmwareForm.form.valid ||\n firmwareForm.form.pristine ||\n saving ||\n (!model.binary?.url && !model.binary?.file)\n \"\n translate\n >\n Add firmware\n </button>\n </div>\n </form>\n</div>\n"
131
136
  })
132
137
  ], AddFirmwareModalComponent);
133
138
  export { AddFirmwareModalComponent };
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWZpcm13YXJlLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BjOHkvbmd4LWNvbXBvbmVudHMvcmVwb3NpdG9yeS8iLCJzb3VyY2VzIjpbImZpcm13YXJlL2FkZC1maXJtd2FyZS1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQWtDLE1BQU0scUJBQXFCLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXBGLElBQWEseUJBQXlCLEdBQXRDLE1BQWEseUJBQXlCO0lBbUJwQyxZQUNVLEtBQWlCLEVBQ2pCLGlCQUFvQyxFQUNwQyxLQUFtQjtRQUZuQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsVUFBSyxHQUFMLEtBQUssQ0FBYztRQXBCbkIsVUFBSyxHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUMzRixZQUFPLEdBQTRCLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLFVBQUssR0FBZTtZQUNsQixR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UUFBUSxFQUFFLGlDQUFpQztRQUMzQywwNUpBQWdEO0tBQ2pELENBQUM7R0FDVyx5QkFBeUIsQ0EwSHJDO1NBMUhZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgUmVwb3NpdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9yZXBvc2l0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVwb3NpdG9yeVR5cGUsIE1vZGFsTW9kZWwsIFJlcG9zaXRvcnlDYXRlZ29yeSB9IGZyb20gJy4uL3JlcG9zaXRvcnkubW9kZWwnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBpc1VuZGVmaW5lZCwgZ2V0LCBhc3NpZ24gfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRhcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUGlja2VkRmlsZXMgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYWRkLWZpcm13YXJlLXNvZnR3YXJlLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICdhZGQtZmlybXdhcmUtbW9kYWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFkZEZpcm13YXJlTW9kYWxDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdmaXJtd2FyZUZvcm0nLCB7IHN0YXRpYzogZmFsc2UgfSkgZm9ybTogTmdGb3JtO1xuICBAT3V0cHV0KCkgc2F2ZWQ6IEV2ZW50RW1pdHRlcjxSZXBvc2l0b3J5Q2F0ZWdvcnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxSZXBvc2l0b3J5Q2F0ZWdvcnk+KCk7XG4gIG9uSW5wdXQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgbW9kZWw6IE1vZGFsTW9kZWwgPSB7XG4gICAgc2VsZWN0ZWQ6IHVuZGVmaW5lZCxcbiAgICB2ZXJzaW9uOiB1bmRlZmluZWQsXG4gICAgZGVzY3JpcHRpb246IHVuZGVmaW5lZCxcbiAgICBkZXZpY2VUeXBlOiB1bmRlZmluZWQsXG4gICAgYmluYXJ5OiB7XG4gICAgICBmaWxlOiB1bmRlZmluZWQsXG4gICAgICB1cmw6IHVuZGVmaW5lZFxuICAgIH1cbiAgfTtcbiAgZmlybXdhcmVzUmVzdWx0O1xuICBzYXZpbmcgPSBmYWxzZTtcbiAgZmlybXdhcmVQcmVzZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIGlucHV0U3Vic2NyaXB0aW9uJDogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbW9kYWw6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSByZXBvc2l0b3J5U2VydmljZTogUmVwb3NpdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xuICAgIHRoaXMubG9hZEZpcm13YXJlcygpO1xuICB9XG5cbiAgc2V0SW5pdGlhbFN0YXRlKCkge1xuICAgIGlmICh0aGlzLm1vZGVsLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmZpcm13YXJlUHJlc2VsZWN0ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGxvYWRGaXJtd2FyZXMoKSB7XG4gICAgdGhpcy5pbnB1dFN1YnNjcmlwdGlvbiQgPSB0aGlzLm9uSW5wdXRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy5maXJtd2FyZVByZXNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLmRlc2NyaXB0aW9uID0gbnVsbDtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtLmZvcm0uZ2V0KCdkZXNjcmlwdGlvbicpLnJlc2V0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHN3aXRjaE1hcChzZWFyY2hTdHIgPT4gdGhpcy5nZXRGaXJtd2FyZVJlc3VsdChzZWFyY2hTdHIpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICB0aGlzLmZpcm13YXJlc1Jlc3VsdCA9IHJlc3VsdDtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0RmlybXdhcmVSZXN1bHQoc2VhcmNoU3RyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZnJvbShcbiAgICAgIHRoaXMucmVwb3NpdG9yeVNlcnZpY2UubGlzdFJlcG9zaXRvcnlFbnRyaWVzKFJlcG9zaXRvcnlUeXBlLkZJUk1XQVJFLCB7XG4gICAgICAgIHBhcnRpYWxOYW1lOiBzZWFyY2hTdHIsXG4gICAgICAgIHNraXBMZWdhY3k6IHRydWVcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmUoKSB7XG4gICAgdGhpcy5zYXZpbmcgPSB0cnVlO1xuICAgIHRoaXMucmVwb3NpdG9yeVNlcnZpY2VcbiAgICAgIC5jcmVhdGUodGhpcy5tb2RlbCwgUmVwb3NpdG9yeVR5cGUuRklSTVdBUkUpXG4gICAgICAudGhlbihzYXZlZEZpcm13YXJlID0+IHtcbiAgICAgICAgdGhpcy5zdWNjZXNzTXNnKCk7XG4gICAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2F2ZWQubmV4dChzYXZlZEZpcm13YXJlKTtcbiAgICAgICAgdGhpcy5jYW5jZWwoKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZSA9PiB7XG4gICAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2F2ZWQuZXJyb3IoZSk7XG4gICAgICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHN1Y2Nlc3NNc2coKSB7XG4gICAgY29uc3QgbXNnID0gZ2V0dGV4dCgnRmlybXdhcmUgYWRkZWQuJyk7XG4gICAgdGhpcy5hbGVydC5zdWNjZXNzKG1zZyk7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5tb2RhbC5oaWRlKCk7XG4gICAgdGhpcy5zYXZlZC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5pbnB1dFN1YnNjcmlwdGlvbiQudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG9uRmlsZShkcm9wcGVkOiBQaWNrZWRGaWxlcykge1xuICAgIGlmICghaXNVbmRlZmluZWQoZHJvcHBlZC51cmwpKSB7XG4gICAgICB0aGlzLm1vZGVsLmJpbmFyeSA9IHtcbiAgICAgICAgdXJsOiBkcm9wcGVkLnVybFxuICAgICAgfTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKCFpc1VuZGVmaW5lZChkcm9wcGVkLmRyb3BwZWRGaWxlcykpIHtcbiAgICAgIHRoaXMubW9kZWwuYmluYXJ5ID0ge1xuICAgICAgICBmaWxlOiBkcm9wcGVkLmRyb3BwZWRGaWxlc1swXS5maWxlXG4gICAgICB9O1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZGVsLmJpbmFyeSA9IHtcbiAgICAgICAgZmlsZTogdW5kZWZpbmVkLFxuICAgICAgICB1cmw6IHVuZGVmaW5lZFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBvbkZpcm13YXJlU2VsZWN0KGZpcm13YXJlOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIGFzc2lnbih0aGlzLm1vZGVsLCB7XG4gICAgICBzZWxlY3RlZDogZmlybXdhcmUsXG4gICAgICBkZXNjcmlwdGlvbjogZmlybXdhcmUuZGVzY3JpcHRpb24sXG4gICAgICBkZXZpY2VUeXBlOiBnZXQoZmlybXdhcmUsICdjOHlfRmlsdGVyLnR5cGUnKVxuICAgIH0pO1xuICB9XG59XG4iXX0=
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWZpcm13YXJlLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BjOHkvbmd4LWNvbXBvbmVudHMvcmVwb3NpdG9yeS8iLCJzb3VyY2VzIjpbImZpcm13YXJlL2FkZC1maXJtd2FyZS1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQWtDLE1BQU0scUJBQXFCLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXBGLElBQWEseUJBQXlCLEdBQXRDLE1BQWEseUJBQXlCO0lBd0JwQyxZQUNVLEtBQWlCLEVBQ2pCLGlCQUFvQyxFQUNwQyxLQUFtQjtRQUZuQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsVUFBSyxHQUFMLEtBQUssQ0FBYztRQXpCbkIsVUFBSyxHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUMzRixZQUFPLEdBQTRCLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLFVBQUssR0FBZTtZQUNsQixR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RUFBRTt3REFBa0Y7QUFGaEYseUJBQXlCO0lBSnJDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxpQ0FBaUM7UUFDM0MseThKQUFnRDtLQUNqRCxDQUFDO0dBQ1cseUJBQXlCLENBK0hyQztTQS9IWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IFJlcG9zaXRvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vcmVwb3NpdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlcG9zaXRvcnlUeXBlLCBNb2RhbE1vZGVsLCBSZXBvc2l0b3J5Q2F0ZWdvcnkgfSBmcm9tICcuLi9yZXBvc2l0b3J5Lm1vZGVsJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgaXNVbmRlZmluZWQsIGdldCwgYXNzaWduIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBmcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFBpY2tlZEZpbGVzIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWFkZC1maXJtd2FyZS1zb2Z0d2FyZS1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnYWRkLWZpcm13YXJlLW1vZGFsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZGRGaXJtd2FyZU1vZGFsQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgnZmlybXdhcmVGb3JtJywgeyBzdGF0aWM6IGZhbHNlIH0pIGZvcm06IE5nRm9ybTtcbiAgQE91dHB1dCgpIHNhdmVkOiBFdmVudEVtaXR0ZXI8UmVwb3NpdG9yeUNhdGVnb3J5PiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVwb3NpdG9yeUNhdGVnb3J5PigpO1xuICBvbklucHV0OiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIG1vZGVsOiBNb2RhbE1vZGVsID0ge1xuICAgIHNlbGVjdGVkOiB1bmRlZmluZWQsXG4gICAgdmVyc2lvbjogdW5kZWZpbmVkLFxuICAgIGRlc2NyaXB0aW9uOiB1bmRlZmluZWQsXG4gICAgZGV2aWNlVHlwZTogdW5kZWZpbmVkLFxuICAgIGJpbmFyeToge1xuICAgICAgZmlsZTogdW5kZWZpbmVkLFxuICAgICAgdXJsOiB1bmRlZmluZWRcbiAgICB9XG4gIH07XG4gIGZpcm13YXJlc1Jlc3VsdDtcbiAgc2F2aW5nID0gZmFsc2U7XG4gIGZpcm13YXJlUHJlc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdGV4dEZvckZpcm13YXJlVXJsUG9wb3Zlcjogc3RyaW5nID0gZ2V0dGV4dChgUGF0aCBmb3IgYmluYXJpZXMgY2FuIHZhcnkgZGVwZW5kaW5nIG9uIGRldmljZSBhZ2VudCBpbXBsZW1lbnRhdGlvbiwgZS5nLjpcbiAgICAvZmlybXdhcmUvYmluYXJpZXMvZmlybXdhcmUxLmJpblxuICAgIGh0dHBzOi8vZmlybXdhcmUvYmluYXJ5LzEyM1xuICAgIGZ0cDovL2Zpcm13YXJlL2JpbmFyeS8xMjMudGFyLmd6XG4gIGApO1xuICBwcml2YXRlIGlucHV0U3Vic2NyaXB0aW9uJDogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbW9kYWw6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSByZXBvc2l0b3J5U2VydmljZTogUmVwb3NpdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xuICAgIHRoaXMubG9hZEZpcm13YXJlcygpO1xuICB9XG5cbiAgc2V0SW5pdGlhbFN0YXRlKCkge1xuICAgIGlmICh0aGlzLm1vZGVsLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmZpcm13YXJlUHJlc2VsZWN0ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGxvYWRGaXJtd2FyZXMoKSB7XG4gICAgdGhpcy5pbnB1dFN1YnNjcmlwdGlvbiQgPSB0aGlzLm9uSW5wdXRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy5maXJtd2FyZVByZXNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLmRlc2NyaXB0aW9uID0gbnVsbDtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtLmZvcm0uZ2V0KCdkZXNjcmlwdGlvbicpLnJlc2V0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHN3aXRjaE1hcChzZWFyY2hTdHIgPT4gdGhpcy5nZXRGaXJtd2FyZVJlc3VsdChzZWFyY2hTdHIpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICB0aGlzLmZpcm13YXJlc1Jlc3VsdCA9IHJlc3VsdDtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0RmlybXdhcmVSZXN1bHQoc2VhcmNoU3RyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZnJvbShcbiAgICAgIHRoaXMucmVwb3NpdG9yeVNlcnZpY2UubGlzdFJlcG9zaXRvcnlFbnRyaWVzKFJlcG9zaXRvcnlUeXBlLkZJUk1XQVJFLCB7XG4gICAgICAgIHBhcnRpYWxOYW1lOiBzZWFyY2hTdHIsXG4gICAgICAgIHNraXBMZWdhY3k6IHRydWVcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmUoKSB7XG4gICAgdGhpcy5zYXZpbmcgPSB0cnVlO1xuICAgIHRoaXMucmVwb3NpdG9yeVNlcnZpY2VcbiAgICAgIC5jcmVhdGUodGhpcy5tb2RlbCwgUmVwb3NpdG9yeVR5cGUuRklSTVdBUkUpXG4gICAgICAudGhlbihzYXZlZEZpcm13YXJlID0+IHtcbiAgICAgICAgdGhpcy5zdWNjZXNzTXNnKCk7XG4gICAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2F2ZWQubmV4dChzYXZlZEZpcm13YXJlKTtcbiAgICAgICAgdGhpcy5jYW5jZWwoKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZSA9PiB7XG4gICAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2F2ZWQuZXJyb3IoZSk7XG4gICAgICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHN1Y2Nlc3NNc2coKSB7XG4gICAgY29uc3QgbXNnID0gZ2V0dGV4dCgnRmlybXdhcmUgYWRkZWQuJyk7XG4gICAgdGhpcy5hbGVydC5zdWNjZXNzKG1zZyk7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5tb2RhbC5oaWRlKCk7XG4gICAgdGhpcy5zYXZlZC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5pbnB1dFN1YnNjcmlwdGlvbiQudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG9uRmlsZShkcm9wcGVkOiBQaWNrZWRGaWxlcykge1xuICAgIGlmICghaXNVbmRlZmluZWQoZHJvcHBlZC51cmwpKSB7XG4gICAgICB0aGlzLm1vZGVsLmJpbmFyeSA9IHtcbiAgICAgICAgdXJsOiBkcm9wcGVkLnVybFxuICAgICAgfTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKCFpc1VuZGVmaW5lZChkcm9wcGVkLmRyb3BwZWRGaWxlcykpIHtcbiAgICAgIHRoaXMubW9kZWwuYmluYXJ5ID0ge1xuICAgICAgICBmaWxlOiBkcm9wcGVkLmRyb3BwZWRGaWxlc1swXS5maWxlXG4gICAgICB9O1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZGVsLmJpbmFyeSA9IHtcbiAgICAgICAgZmlsZTogdW5kZWZpbmVkLFxuICAgICAgICB1cmw6IHVuZGVmaW5lZFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBvbkZpcm13YXJlU2VsZWN0KGZpcm13YXJlOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIGFzc2lnbih0aGlzLm1vZGVsLCB7XG4gICAgICBzZWxlY3RlZDogZmlybXdhcmUsXG4gICAgICBkZXNjcmlwdGlvbjogZmlybXdhcmUuZGVzY3JpcHRpb24sXG4gICAgICBkZXZpY2VUeXBlOiBnZXQoZmlybXdhcmUsICdjOHlfRmlsdGVyLnR5cGUnKVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -13,6 +13,11 @@ let AddFirmwarePatchModalComponent = class AddFirmwarePatchModalComponent {
13
13
  this.repository = repository;
14
14
  this.alert = alert;
15
15
  this.saved = new EventEmitter();
16
+ this.textForFirmwareUrlPopover = gettext(`Path for binaries can vary depending on device agent implementation, e.g.:
17
+ /firmware/binaries/firmware1.bin
18
+ https://firmware/binary/123
19
+ ftp://firmware/binary/123.tar.gz
20
+ `);
16
21
  this.model = {
17
22
  selected: undefined,
18
23
  dependency: null,
@@ -117,8 +122,8 @@ tslib_1.__decorate([
117
122
  AddFirmwarePatchModalComponent = tslib_1.__decorate([
118
123
  Component({
119
124
  selector: 'c8y-add-firmware-patch-modal.component',
120
- template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'c8y-firmware'\"></i>\n <h4 translate>\n Add firmware patch\n </h4>\n </div>\n <div class=\"p-16 text-center separator-bottom\">\n <p class=\"lead m-0\" translate>\n Select a firmware version\n </p>\n </div>\n\n <form class=\"d-contents\" autocomplete=\"off\" #firmwarePatchForm=\"ngForm\" (ngSubmit)=\"save()\">\n <div class=\"modal-inner-scroll\">\n <div class=\"modal-body\">\n <div [hidden]=\"firmwarePreselected\">\n <c8y-form-group>\n <label for=\"firmwareName\" translate>Firmware</label>\n <c8y-typeahead\n [ngModel]=\"model.selected\"\n name=\"firmwareName\"\n placeholder=\"{{ 'Select or enter' | translate }}\"\n (onSearch)=\"firmwareInput$.next($event)\"\n [allowFreeEntries]=\"false\"\n [required]=\"true\"\n >\n <c8y-li\n *c8yFor=\"let firmware of firmwares$ | async; loadMore: 'auto'\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"model.selected = firmware; firmwareSelected$.next(firmware)\"\n [active]=\"model.selected === firmware\"\n >\n <c8y-highlight\n [text]=\"firmware.name || '--'\"\n [pattern]=\"firmwareInput$ | async\"\n ></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n <c8y-messages\n ><c8y-message\n name=\"notExisting\"\n [text]=\"'Select one of the existing firmwares.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n\n <c8y-form-group>\n <label for=\"patchDependency\" class=\"m-r-8\" translate>Version</label>\n <c8y-typeahead\n [ngModel]=\"model.dependency\"\n name=\"patchDependency\"\n placeholder=\"{{ 'Select or enter' | translate }}\"\n (onSearch)=\"patchDependencyInput$.next($event)\"\n [displayProperty]=\"'c8y_Firmware.version'\"\n [allowFreeEntries]=\"false\"\n [disabled]=\"\n (baseVersions$ | async) === null || (baseVersions$ | async)?.data.length === 0\n \"\n [required]=\"true\"\n >\n <c8y-li\n *c8yFor=\"\n let baseVersion of baseVersions$;\n loadMore: 'auto';\n pipe: baseVersionsFilterPipe\n \"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"model.dependency = baseVersion\"\n [active]=\"model.dependency === baseVersion\"\n >\n <c8y-highlight\n [text]=\"baseVersion.c8y_Firmware.version || '--'\"\n [pattern]=\"patchDependencyInput$ | async\"\n ></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n <c8y-messages\n ><c8y-message\n name=\"notExisting\"\n [text]=\"'Select one of the existing versions.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group>\n <label for=\"patchVersion\" translate>Patch</label>\n <input\n id=\"patchVersion\"\n class=\"form-control\"\n autocomplete=\"off\"\n name=\"patchVersion\"\n [(ngModel)]=\"model.patchVersion\"\n placeholder=\"{{ 'e.g.' | translate }} 1.0.0\"\n required\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <div class=\"legend form-block top-m-xxl\" translate>Patch file</div>\n <c8y-file-picker [maxAllowedFiles]=\"1\" (onFilesPicked)=\"onFile($event)\">\n </c8y-file-picker>\n </c8y-form-group>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n [disabled]=\"saving\"\n translate\n >\n Cancel\n </button>\n <button\n title=\"{{ 'Add firmware patch' | translate }}\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'btn-pending': saving }\"\n type=\"submit\"\n [disabled]=\"\n !firmwarePatchForm.form.valid ||\n firmwarePatchForm.form.pristine ||\n (!model.binary?.url && !model.binary?.file) ||\n saving\n \"\n translate\n >\n Add firmware patch\n </button>\n </div>\n </form>\n</div>\n"
125
+ template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'c8y-firmware'\"></i>\n <h4 translate>\n Add firmware patch\n </h4>\n </div>\n <div class=\"p-16 text-center separator-bottom\">\n <p class=\"lead m-0\" translate>\n Select a firmware version\n </p>\n </div>\n\n <form\n class=\"d-contents\"\n autocomplete=\"off\"\n #firmwarePatchForm=\"ngForm\"\n (ngSubmit)=\"firmwarePatchForm.form.valid && save()\"\n >\n <div class=\"modal-inner-scroll\">\n <div class=\"modal-body\">\n <div [hidden]=\"firmwarePreselected\">\n <c8y-form-group>\n <label for=\"firmwareName\" translate>Firmware</label>\n <c8y-typeahead\n [ngModel]=\"model.selected\"\n name=\"firmwareName\"\n placeholder=\"{{ 'Select or enter' | translate }}\"\n (onSearch)=\"firmwareInput$.next($event)\"\n [allowFreeEntries]=\"false\"\n [required]=\"true\"\n >\n <c8y-li\n *c8yFor=\"let firmware of firmwares$ | async; loadMore: 'auto'\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"model.selected = firmware; firmwareSelected$.next(firmware)\"\n [active]=\"model.selected === firmware\"\n >\n <c8y-highlight\n [text]=\"firmware.name || '--'\"\n [pattern]=\"firmwareInput$ | async\"\n ></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n <c8y-messages\n ><c8y-message\n name=\"notExisting\"\n [text]=\"'Select one of the existing firmwares.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n\n <c8y-form-group>\n <label for=\"patchDependency\" class=\"m-r-8\" translate>Version</label>\n <c8y-typeahead\n [ngModel]=\"model.dependency\"\n name=\"patchDependency\"\n placeholder=\"{{ 'Select or enter' | translate }}\"\n (onSearch)=\"patchDependencyInput$.next($event)\"\n [displayProperty]=\"'c8y_Firmware.version'\"\n [allowFreeEntries]=\"false\"\n [disabled]=\"\n (baseVersions$ | async) === null || (baseVersions$ | async)?.data.length === 0\n \"\n [required]=\"true\"\n >\n <c8y-li\n *c8yFor=\"\n let baseVersion of baseVersions$;\n loadMore: 'auto';\n pipe: baseVersionsFilterPipe\n \"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"model.dependency = baseVersion\"\n [active]=\"model.dependency === baseVersion\"\n >\n <c8y-highlight\n [text]=\"baseVersion.c8y_Firmware.version || '--'\"\n [pattern]=\"patchDependencyInput$ | async\"\n ></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n <c8y-messages\n ><c8y-message\n name=\"notExisting\"\n [text]=\"'Select one of the existing versions.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group>\n <label for=\"patchVersion\" translate>Patch</label>\n <input\n id=\"patchVersion\"\n class=\"form-control\"\n autocomplete=\"off\"\n name=\"patchVersion\"\n [(ngModel)]=\"model.patchVersion\"\n placeholder=\"{{ 'e.g.' | translate }} 1.0.0\"\n required\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <div class=\"legend form-block top-m-xxl\" translate>Patch file</div>\n <c8y-file-picker [maxAllowedFiles]=\"1\" (onFilesPicked)=\"onFile($event)\" [fileUrlPopover]=\"textForFirmwareUrlPopover\">\n </c8y-file-picker>\n </c8y-form-group>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n [disabled]=\"saving\"\n translate\n >\n Cancel\n </button>\n <button\n title=\"{{ 'Add firmware patch' | translate }}\"\n class=\"btn btn-primary\"\n type=\"submit\"\n [ngClass]=\"{ 'btn-pending': saving }\"\n [disabled]=\"\n !firmwarePatchForm.form.valid ||\n firmwarePatchForm.form.pristine ||\n (!model.binary?.url && !model.binary?.file) ||\n saving\n \"\n translate\n >\n Add firmware patch\n </button>\n </div>\n </form>\n</div>\n"
121
126
  })
122
127
  ], AddFirmwarePatchModalComponent);
123
128
  export { AddFirmwarePatchModalComponent };
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWZpcm13YXJlLXBhdGNoLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BjOHkvbmd4LWNvbXBvbmVudHMvcmVwb3NpdG9yeS8iLCJzb3VyY2VzIjpbImZpcm13YXJlL2FkZC1maXJtd2FyZS1wYXRjaC1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQWtDLE1BQU0scUJBQXFCLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRzFFLE9BQU8sRUFDTCxZQUFZLEVBQ1osR0FBRyxFQUNILFNBQVMsRUFDVCxvQkFBb0IsRUFDcEIsV0FBVyxFQUNYLEdBQUcsRUFDSixNQUFNLGdCQUFnQixDQUFDO0FBT3hCLElBQWEsOEJBQThCLEdBQTNDLE1BQWEsOEJBQThCO0lBbUV6QyxZQUNVLEtBQWlCLEVBQ2pCLFVBQTZCLEVBQzdCLEtBQW1CO1FBRm5CLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsVUFBSyxHQUFMLEtBQUssQ0FBYztRQXJFbkIsVUFBSyxHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUszRixVQUFLLEdBQWU7WUFDbEIsUUFBUSxFQUFFLFNB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QVksQ0FBQyxFQUFFO1lBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHO2dCQUNsQixJQUFJLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO2FBQ25DLENBQUM7WUFDRixPQUFPO1NBQ1I7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHO2dCQUNsQixJQUFJLEVBQUUsU0FBUztnQkFDZixHQUFHLEVBQUUsU0FBUzthQUNmLENBQUM7U0FDSDtJQUNILENBQUM7Q0FDRixDQUFBOztZQTdEa0IsVUFBVTtZQUNMLGlCQUFpQjtZQUN0QixZQUFZOztBQXJFbkI7SUFBVCxNQUFNLEVBQUU7NkRBQWtGO0FBRWpEO0lBQXpDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7Z0VBQStCO0FBQ3JCO0lBQWxELFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQzs0REFBYztBQUpyRCw4QkFBOEI7SUFKMUMsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLHdDQUF3QztRQUNsRCx1c0pBQXNEO0tBQ3ZELENBQUM7R0FDVyw4QkFBOEIsQ0FpSTFDO1NBaklZLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgUmVwb3NpdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9yZXBvc2l0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVwb3NpdG9yeVR5cGUsIE1vZGFsTW9kZWwsIFJlcG9zaXRvcnlDYXRlZ29yeSB9IGZyb20gJy4uL3JlcG9zaXRvcnkubW9kZWwnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgSVJlc3VsdExpc3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBpc1VuZGVmaW5lZCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG9mLCBmcm9tLCBwaXBlLCBtZXJnZSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQnNEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gJ25neC1ib290c3RyYXAvZHJvcGRvd24nO1xuaW1wb3J0IHsgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgZGVib3VuY2VUaW1lLFxuICB0YXAsXG4gIHN3aXRjaE1hcCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIHNoYXJlUmVwbGF5LFxuICBtYXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUGlja2VkRmlsZXMgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWFkZC1maXJtd2FyZS1wYXRjaC1tb2RhbC5jb21wb25lbnQnLFxuICB0ZW1wbGF0ZVVybDogJ2FkZC1maXJtd2FyZS1wYXRjaC1tb2RhbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWRkRmlybXdhcmVQYXRjaE1vZGFsQ29tcG9uZW50IHtcbiAgQE91dHB1dCgpIHNhdmVkOiBFdmVudEVtaXR0ZXI8UmVwb3NpdG9yeUNhdGVnb3J5PiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVwb3NpdG9yeUNhdGVnb3J5PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJywgeyBzdGF0aWM6IGZhbHNlIH0pIGRyb3Bkb3duOiBCc0Ryb3Bkb3duRGlyZWN0aXZlO1xuICBAVmlld0NoaWxkKCdmaXJtd2FyZVBhdGNoRm9ybScsIHsgc3RhdGljOiBmYWxzZSB9KSBmb3JtOiBOZ0Zvcm07XG5cbiAgbW9kZWw6IE1vZGFsTW9kZWwgPSB7XG4gICAgc2VsZWN0ZWQ6IHVuZGVmaW5lZCxcbiAgICBkZXBlbmRlbmN5OiBudWxsLFxuICAgIHBhdGNoVmVyc2lvbjogdW5kZWZpbmVkLFxuICAgIGJpbmFyeToge1xuICAgICAgZmlsZTogdW5kZWZpbmVkLFxuICAgICAgdXJsOiB1bmRlZmluZWRcbiAgICB9XG4gIH07XG5cbiAgZmlybXdhcmVJbnB1dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICBmaXJtd2FyZXMkOiBPYnNlcnZhYmxlPElSZXN1bHRMaXN0PElNYW5hZ2VkT2JqZWN0Pj4gPSB0aGlzLmZpcm13YXJlSW5wdXQkLnBpcGUoXG4gICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzd2l0Y2hNYXAoc2VhcmNoU3RyID0+XG4gICAgICBmcm9tKFxuICAgICAgICB0aGlzLnJlcG9zaXRvcnkubGlzdFJlcG9zaXRvcnlFbnRyaWVzKFJlcG9zaXRvcnlUeXBlLkZJUk1XQVJFLCB7XG4gICAgICAgICAgcGFydGlhbE5hbWU6IHNlYXJjaFN0cixcbiAgICAgICAgICBza2lwTGVnYWN5OiB0cnVlXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuICBmaXJtd2FyZVNlbGVjdGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFydGlhbDxSZXBvc2l0b3J5Q2F0ZWdvcnk+PihudWxsKTtcbiAgcGF0Y2hEZXBlbmRlbmN5SW5wdXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICBzYXZpbmcgPSBmYWxzZTtcbiAgZmlybXdhcmVQcmVzZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBiYXNlVmVyc2lvbnMkOiBPYnNlcnZhYmxlPElSZXN1bHRMaXN0PElNYW5hZ2VkT2JqZWN0Pj4gPSBtZXJnZShcbiAgICB0aGlzLmZpcm13YXJlSW5wdXQkLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLm1vZGVsLmRlcGVuZGVuY3kgPSBudWxsO1xuICAgICAgICBpZiAodGhpcy5mb3JtKSB7XG4gICAgICAgICAgdGhpcy5mb3JtLmZvcm0uZ2V0KCdwYXRjaERlcGVuZGVuY3knKS5yZXNldCgpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiBvZihudWxsKSlcbiAgICApLFxuICAgIHRoaXMuZmlybXdhcmVTZWxlY3RlZCRcbiAgKS5waXBlKFxuICAgIHN3aXRjaE1hcChzZWxlY3RlZEZpcm13YXJlID0+XG4gICAgICBzZWxlY3RlZEZpcm13YXJlID8gdGhpcy5yZXBvc2l0b3J5Lmxpc3RCYXNlVmVyc2lvbnMoc2VsZWN0ZWRGaXJtd2FyZSkgOiBvZihudWxsKVxuICAgICksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcbiAgYmFzZVZlcnNpb25zRmlsdGVyUGlwZSA9IHBpcGUoXG4gICAgc3dpdGNoTWFwKChkYXRhOiBbXSkgPT5cbiAgICAgIHRoaXMucGF0Y2hEZXBlbmRlbmN5SW5wdXQkLnBpcGUoXG4gICAgICAgIG1hcChwYXJ0aWFsVmVyc2lvbiA9PlxuICAgICAgICAgIGRhdGEuZmlsdGVyKChtbzogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2ZXJzaW9uID0gbW8uYzh5X0Zpcm13YXJlLnZlcnNpb24udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIHBhcnRpYWxWZXJzaW9uLmxlbmd0aCA9PT0gMCB8fCB2ZXJzaW9uLmluZGV4T2YocGFydGlhbFZlcnNpb24udG9Mb3dlckNhc2UoKSkgPiAtMVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbW9kYWw6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSByZXBvc2l0b3J5OiBSZXBvc2l0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0OiBBbGVydFNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0SW5pdGlhbFN0YXRlKCk7XG4gIH1cblxuICBzZXRJbml0aWFsU3RhdGUoKSB7XG4gICAgaWYgKHRoaXMubW9kZWwuc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuZmlybXdhcmVQcmVzZWxlY3RlZCA9IHRydWU7XG4gICAgICB0aGlzLmZpcm13YXJlU2VsZWN0ZWQkLm5leHQodGhpcy5tb2RlbC5zZWxlY3RlZCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2F2ZSgpIHtcbiAgICB0aGlzLnNhdmluZyA9IHRydWU7XG4gICAgdGhpcy5yZXBvc2l0b3J5XG4gICAgICAuY3JlYXRlKHRoaXMubW9kZWwsIFJlcG9zaXRvcnlUeXBlLkZJUk1XQVJFKVxuICAgICAgLnRoZW4oc2F2ZWRGaXJtd2FyZSA9PiB7XG4gICAgICAgIHRoaXMuc3VjY2Vzc01zZygpO1xuICAgICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNhdmVkLm5leHQoc2F2ZWRGaXJtd2FyZSk7XG4gICAgICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGUgPT4ge1xuICAgICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNhdmVkLmVycm9yKGUpO1xuICAgICAgICB0aGlzLmNhbmNlbCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBzdWNjZXNzTXNnKCkge1xuICAgIGNvbnN0IG1zZyA9IGdldHRleHQoJ0Zpcm13YXJlIHBhdGNoIGFkZGVkLicpO1xuICAgIHRoaXMuYWxlcnQuc3VjY2Vzcyhtc2cpO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMubW9kYWwuaGlkZSgpO1xuICAgIHRoaXMuc2F2ZWQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG9uRmlsZShkcm9wcGVkOiBQaWNrZWRGaWxlcykge1xuICAgIGlmICghaXNVbmRlZmluZWQoZHJvcHBlZC51cmwpKSB7XG4gICAgICB0aGlzLm1vZGVsLmJpbmFyeSA9IHtcbiAgICAgICAgdXJsOiBkcm9wcGVkLnVybFxuICAgICAgfTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKCFpc1VuZGVmaW5lZChkcm9wcGVkLmRyb3BwZWRGaWxlcykpIHtcbiAgICAgIHRoaXMubW9kZWwuYmluYXJ5ID0ge1xuICAgICAgICBmaWxlOiBkcm9wcGVkLmRyb3BwZWRGaWxlc1swXS5maWxlXG4gICAgICB9O1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZGVsLmJpbmFyeSA9IHtcbiAgICAgICAgZmlsZTogdW5kZWZpbmVkLFxuICAgICAgICB1cmw6IHVuZGVmaW5lZFxuICAgICAgfTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWZpcm13YXJlLXBhdGNoLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BjOHkvbmd4LWNvbXBvbmVudHMvcmVwb3NpdG9yeS8iLCJzb3VyY2VzIjpbImZpcm13YXJlL2FkZC1maXJtd2FyZS1wYXRjaC1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQWtDLE1BQU0scUJBQXFCLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRzFFLE9BQU8sRUFDTCxZQUFZLEVBQ1osR0FBRyxFQUNILFNBQVMsRUFDVCxvQkFBb0IsRUFDcEIsV0FBVyxFQUNYLEdBQUcsRUFDSixNQUFNLGdCQUFnQixDQUFDO0FBT3hCLElBQWEsOEJBQThCLEdBQTNDLE1BQWEsOEJBQThCO0lBd0V6QyxZQUNVLEtBQWlCLEVBQ2pCLFVBQTZCLEVBQzdCLEtBQW1CO1FBRm5CLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsVUFBSyxHQUFMLEtBQUssQ0FBYztRQTFFbkIsVUFBSyxHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUkzRiw4QkFBeUIsR0FBVyxPQUFPLENBQUM7Ozs7R0FJ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QUFPO1NBQ1I7YUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRztnQkFDbEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTthQUNuQyxDQUFDO1lBQ0YsT0FBTztTQUNSO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRztnQkFDbEIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsR0FBRyxFQUFFLFNBQVM7YUFDZixDQUFDO1NBQ0g7SUFDSCxDQUFDO0NBQ0YsQ0FBQTs7WUE3RGtCLFVBQVU7WUFDTCxpQkFBaUI7WUFDdEIsWUFBWTs7QUExRW5CO0lBQVQsTUFBTSxFQUFFOzZEQUFrRjtBQUVqRDtJQUF6QyxTQUFTLENBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO2dFQUErQjtBQUNyQjtJQUFsRCxTQUFTLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7NERBQWM7QUFKckQsOEJBQThCO0lBSjFDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSx3Q0FBd0M7UUFDbEQsOHlKQUFzRDtLQUN2RCxDQUFDO0dBQ1csOEJBQThCLENBc0kxQztTQXRJWSw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IFJlcG9zaXRvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vcmVwb3NpdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlcG9zaXRvcnlUeXBlLCBNb2RhbE1vZGVsLCBSZXBvc2l0b3J5Q2F0ZWdvcnkgfSBmcm9tICcuLi9yZXBvc2l0b3J5Lm1vZGVsJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QsIElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgaXNVbmRlZmluZWQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBvZiwgZnJvbSwgcGlwZSwgbWVyZ2UsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJzRHJvcGRvd25EaXJlY3RpdmUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duJztcbmltcG9ydCB7IE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIGRlYm91bmNlVGltZSxcbiAgdGFwLFxuICBzd2l0Y2hNYXAsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBzaGFyZVJlcGxheSxcbiAgbWFwXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFBpY2tlZEZpbGVzIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hZGQtZmlybXdhcmUtcGF0Y2gtbW9kYWwuY29tcG9uZW50JyxcbiAgdGVtcGxhdGVVcmw6ICdhZGQtZmlybXdhcmUtcGF0Y2gtbW9kYWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFkZEZpcm13YXJlUGF0Y2hNb2RhbENvbXBvbmVudCB7XG4gIEBPdXRwdXQoKSBzYXZlZDogRXZlbnRFbWl0dGVyPFJlcG9zaXRvcnlDYXRlZ29yeT4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlcG9zaXRvcnlDYXRlZ29yeT4oKTtcblxuICBAVmlld0NoaWxkKCdkcm9wZG93bicsIHsgc3RhdGljOiBmYWxzZSB9KSBkcm9wZG93bjogQnNEcm9wZG93bkRpcmVjdGl2ZTtcbiAgQFZpZXdDaGlsZCgnZmlybXdhcmVQYXRjaEZvcm0nLCB7IHN0YXRpYzogZmFsc2UgfSkgZm9ybTogTmdGb3JtO1xuICB0ZXh0Rm9yRmlybXdhcmVVcmxQb3BvdmVyOiBzdHJpbmcgPSBnZXR0ZXh0KGBQYXRoIGZvciBiaW5hcmllcyBjYW4gdmFyeSBkZXBlbmRpbmcgb24gZGV2aWNlIGFnZW50IGltcGxlbWVudGF0aW9uLCBlLmcuOlxuICAgIC9maXJtd2FyZS9iaW5hcmllcy9maXJtd2FyZTEuYmluXG4gICAgaHR0cHM6Ly9maXJtd2FyZS9iaW5hcnkvMTIzXG4gICAgZnRwOi8vZmlybXdhcmUvYmluYXJ5LzEyMy50YXIuZ3pcbiAgYCk7XG5cbiAgbW9kZWw6IE1vZGFsTW9kZWwgPSB7XG4gICAgc2VsZWN0ZWQ6IHVuZGVmaW5lZCxcbiAgICBkZXBlbmRlbmN5OiBudWxsLFxuICAgIHBhdGNoVmVyc2lvbjogdW5kZWZpbmVkLFxuICAgIGJpbmFyeToge1xuICAgICAgZmlsZTogdW5kZWZpbmVkLFxuICAgICAgdXJsOiB1bmRlZmluZWRcbiAgICB9XG4gIH07XG5cbiAgZmlybXdhcmVJbnB1dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICBmaXJtd2FyZXMkOiBPYnNlcnZhYmxlPElSZXN1bHRMaXN0PElNYW5hZ2VkT2JqZWN0Pj4gPSB0aGlzLmZpcm13YXJlSW5wdXQkLnBpcGUoXG4gICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzd2l0Y2hNYXAoc2VhcmNoU3RyID0+XG4gICAgICBmcm9tKFxuICAgICAgICB0aGlzLnJlcG9zaXRvcnkubGlzdFJlcG9zaXRvcnlFbnRyaWVzKFJlcG9zaXRvcnlUeXBlLkZJUk1XQVJFLCB7XG4gICAgICAgICAgcGFydGlhbE5hbWU6IHNlYXJjaFN0cixcbiAgICAgICAgICBza2lwTGVnYWN5OiB0cnVlXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuICBmaXJtd2FyZVNlbGVjdGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFydGlhbDxSZXBvc2l0b3J5Q2F0ZWdvcnk+PihudWxsKTtcbiAgcGF0Y2hEZXBlbmRlbmN5SW5wdXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICBzYXZpbmcgPSBmYWxzZTtcbiAgZmlybXdhcmVQcmVzZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBiYXNlVmVyc2lvbnMkOiBPYnNlcnZhYmxlPElSZXN1bHRMaXN0PElNYW5hZ2VkT2JqZWN0Pj4gPSBtZXJnZShcbiAgICB0aGlzLmZpcm13YXJlSW5wdXQkLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLm1vZGVsLmRlcGVuZGVuY3kgPSBudWxsO1xuICAgICAgICBpZiAodGhpcy5mb3JtKSB7XG4gICAgICAgICAgdGhpcy5mb3JtLmZvcm0uZ2V0KCdwYXRjaERlcGVuZGVuY3knKS5yZXNldCgpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiBvZihudWxsKSlcbiAgICApLFxuICAgIHRoaXMuZmlybXdhcmVTZWxlY3RlZCRcbiAgKS5waXBlKFxuICAgIHN3aXRjaE1hcChzZWxlY3RlZEZpcm13YXJlID0+XG4gICAgICBzZWxlY3RlZEZpcm13YXJlID8gdGhpcy5yZXBvc2l0b3J5Lmxpc3RCYXNlVmVyc2lvbnMoc2VsZWN0ZWRGaXJtd2FyZSkgOiBvZihudWxsKVxuICAgICksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcbiAgYmFzZVZlcnNpb25zRmlsdGVyUGlwZSA9IHBpcGUoXG4gICAgc3dpdGNoTWFwKChkYXRhOiBbXSkgPT5cbiAgICAgIHRoaXMucGF0Y2hEZXBlbmRlbmN5SW5wdXQkLnBpcGUoXG4gICAgICAgIG1hcChwYXJ0aWFsVmVyc2lvbiA9PlxuICAgICAgICAgIGRhdGEuZmlsdGVyKChtbzogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2ZXJzaW9uID0gbW8uYzh5X0Zpcm13YXJlLnZlcnNpb24udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIHBhcnRpYWxWZXJzaW9uLmxlbmd0aCA9PT0gMCB8fCB2ZXJzaW9uLmluZGV4T2YocGFydGlhbFZlcnNpb24udG9Mb3dlckNhc2UoKSkgPiAtMVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbW9kYWw6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSByZXBvc2l0b3J5OiBSZXBvc2l0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0OiBBbGVydFNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0SW5pdGlhbFN0YXRlKCk7XG4gIH1cblxuICBzZXRJbml0aWFsU3RhdGUoKSB7XG4gICAgaWYgKHRoaXMubW9kZWwuc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuZmlybXdhcmVQcmVzZWxlY3RlZCA9IHRydWU7XG4gICAgICB0aGlzLmZpcm13YXJlU2VsZWN0ZWQkLm5leHQodGhpcy5tb2RlbC5zZWxlY3RlZCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2F2ZSgpIHtcbiAgICB0aGlzLnNhdmluZyA9IHRydWU7XG4gICAgdGhpcy5yZXBvc2l0b3J5XG4gICAgICAuY3JlYXRlKHRoaXMubW9kZWwsIFJlcG9zaXRvcnlUeXBlLkZJUk1XQVJFKVxuICAgICAgLnRoZW4oc2F2ZWRGaXJtd2FyZSA9PiB7XG4gICAgICAgIHRoaXMuc3VjY2Vzc01zZygpO1xuICAgICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNhdmVkLm5leHQoc2F2ZWRGaXJtd2FyZSk7XG4gICAgICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGUgPT4ge1xuICAgICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNhdmVkLmVycm9yKGUpO1xuICAgICAgICB0aGlzLmNhbmNlbCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBzdWNjZXNzTXNnKCkge1xuICAgIGNvbnN0IG1zZyA9IGdldHRleHQoJ0Zpcm13YXJlIHBhdGNoIGFkZGVkLicpO1xuICAgIHRoaXMuYWxlcnQuc3VjY2Vzcyhtc2cpO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMubW9kYWwuaGlkZSgpO1xuICAgIHRoaXMuc2F2ZWQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG9uRmlsZShkcm9wcGVkOiBQaWNrZWRGaWxlcykge1xuICAgIGlmICghaXNVbmRlZmluZWQoZHJvcHBlZC51cmwpKSB7XG4gICAgICB0aGlzLm1vZGVsLmJpbmFyeSA9IHtcbiAgICAgICAgdXJsOiBkcm9wcGVkLnVybFxuICAgICAgfTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKCFpc1VuZGVmaW5lZChkcm9wcGVkLmRyb3BwZWRGaWxlcykpIHtcbiAgICAgIHRoaXMubW9kZWwuYmluYXJ5ID0ge1xuICAgICAgICBmaWxlOiBkcm9wcGVkLmRyb3BwZWRGaWxlc1swXS5maWxlXG4gICAgICB9O1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZGVsLmJpbmFyeSA9IHtcbiAgICAgICAgZmlsZTogdW5kZWZpbmVkLFxuICAgICAgICB1cmw6IHVuZGVmaW5lZFxuICAgICAgfTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -26,6 +26,11 @@ let AddSoftwareModalComponent = class AddSoftwareModalComponent {
26
26
  };
27
27
  this.saving = false;
28
28
  this.softwarePreselected = false;
29
+ this.textForSoftwareUrlPopover = gettext(`Path for binaries can vary depending on device agent implementation, e.g.:
30
+ /software/binaries/software1.bin
31
+ https://software/binary/123
32
+ ftp://software/binary/123.tar.gz
33
+ `);
29
34
  }
30
35
  ngOnInit() {
31
36
  this.setInitialState();
@@ -127,8 +132,8 @@ tslib_1.__decorate([
127
132
  AddSoftwareModalComponent = tslib_1.__decorate([
128
133
  Component({
129
134
  selector: 'c8y-add-software-software-modal',
130
- template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'c8y-tools'\"></i>\n <h4 translate>\n Add software\n </h4>\n </div>\n <div class=\"p-16 text-center separator-bottom\" *ngIf=\"!softwarePreselected\">\n <p class=\"lead m-0\" translate>\n Select or create new software\n </p>\n </div>\n <form\n class=\"d-contents\"\n autocomplete=\"off\"\n #softwareForm=\"ngForm\"\n (ngSubmit)=\"softwareForm.form.valid && save()\"\n >\n <div class=\"modal-inner-scroll\">\n <div class=\"modal-body\">\n <div [hidden]=\"softwarePreselected\">\n <c8y-form-group>\n <label for=\"softwareName\" translate>Software</label>\n <c8y-typeahead\n [(ngModel)]=\"model.selected\"\n name=\"softwareName\"\n placeholder=\"{{ 'Select or enter' | translate }}\"\n (onSearch)=\"onInput.next($event)\"\n [required]=\"true\"\n >\n <c8y-li\n *c8yFor=\"\n let software of softwaresResult;\n loadMore: 'auto';\n notFound: notFoundTemplate\n \"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"onSoftwareSelect(software)\"\n [active]=\"model.selected === software\"\n >\n <c8y-highlight\n [text]=\"software.name || '--'\"\n [pattern]=\"onInput | async\"\n ></c8y-highlight>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-gray-lighter p-8\" *ngIf=\"(onInput | async)?.length > 0\">\n <span translate>No match found, add new`software`? </span>\n <button\n title=\"{{ 'Create new`software`' | translate }}\"\n type=\"button\"\n class=\"btn btn-primary btn-xs m-l-16\"\n translate\n >\n Create new`software`\n </button>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n </c8y-form-group>\n\n <c8y-form-group>\n <label for=\"softwareDescription\" translate>Description</label>\n <input\n id=\"softwareDescription\"\n class=\"form-control\"\n autocomplete=\"off\"\n name=\"description\"\n [(ngModel)]=\"model.description\"\n placeholder=\"{{ 'e.g. Cloud connectivity software' | translate }}\"\n [disabled]=\"model.selected?.id\"\n [required]=\"true\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label for=\"softwareDeviceTypeFilter\" translate>Device type filter</label>\n <input\n id=\"softwareDeviceTypeFilter\"\n class=\"form-control\"\n name=\"softwareDeviceTypeFilter\"\n popover=\"{{\n 'If the filter is set, the firmware will show up for installation only for devices of that type. If no filter is set, it will be available for all devices.'\n | translate\n }}\"\n [(ngModel)]=\"model.deviceType\"\n placeholder=\"{{ 'e.g.' | translate }} c8y_Linux\"\n [disabled]=\"model.selected?.id\"\n />\n </c8y-form-group>\n </div>\n\n <c8y-form-group>\n <label for=\"softwareVersion\" translate>Version</label>\n <input\n id=\"softwareVersion\"\n class=\"form-control\"\n autocomplete=\"off\"\n name=\"version\"\n [(ngModel)]=\"model.version\"\n placeholder=\"{{ 'e.g.' | translate }} 1.0.0\"\n [required]=\"true\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <div class=\"legend form-block top-m-xxl\" translate>Software file</div>\n <c8y-file-picker [maxAllowedFiles]=\"1\" (onFilesPicked)=\"onFile($event)\">\n </c8y-file-picker>\n </c8y-form-group>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n [disabled]=\"saving\"\n translate\n >\n Cancel\n </button>\n\n <button\n title=\"{{ 'Add software' | translate }}\"\n class=\"btn btn-primary\"\n type=\"submit\"\n [ngClass]=\"{ 'btn-pending': saving }\"\n [disabled]=\"\n !softwareForm.form.valid ||\n softwareForm.form.pristine ||\n saving ||\n (!model.binary?.url && !model.binary?.file)\n \"\n translate\n >\n Add software\n </button>\n </div>\n </form>\n</div>\n"
135
+ template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'c8y-tools'\"></i>\n <h4 translate>\n Add software\n </h4>\n </div>\n <div class=\"p-16 text-center separator-bottom\" *ngIf=\"!softwarePreselected\">\n <p class=\"lead m-0\" translate>\n Select or create new software\n </p>\n </div>\n <form\n class=\"d-contents\"\n autocomplete=\"off\"\n #softwareForm=\"ngForm\"\n (ngSubmit)=\"softwareForm.form.valid && save()\"\n >\n <div class=\"modal-inner-scroll\">\n <div class=\"modal-body\">\n <div [hidden]=\"softwarePreselected\">\n <c8y-form-group>\n <label for=\"softwareName\" translate>Software</label>\n <c8y-typeahead\n [(ngModel)]=\"model.selected\"\n name=\"softwareName\"\n placeholder=\"{{ 'Select or enter' | translate }}\"\n (onSearch)=\"onInput.next($event)\"\n [required]=\"true\"\n >\n <c8y-li\n *c8yFor=\"\n let software of softwaresResult;\n loadMore: 'auto';\n notFound: notFoundTemplate\n \"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"onSoftwareSelect(software)\"\n [active]=\"model.selected === software\"\n >\n <c8y-highlight\n [text]=\"software.name || '--'\"\n [pattern]=\"onInput | async\"\n ></c8y-highlight>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-gray-lighter p-8\" *ngIf=\"(onInput | async)?.length > 0\">\n <span translate>No match found, add new`software`? </span>\n <button\n title=\"{{ 'Create new`software`' | translate }}\"\n type=\"button\"\n class=\"btn btn-primary btn-xs m-l-16\"\n translate\n >\n Create new`software`\n </button>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n </c8y-form-group>\n\n <c8y-form-group>\n <label for=\"softwareDescription\" translate>Description</label>\n <input\n id=\"softwareDescription\"\n class=\"form-control\"\n autocomplete=\"off\"\n name=\"description\"\n [(ngModel)]=\"model.description\"\n placeholder=\"{{ 'e.g. Cloud connectivity software' | translate }}\"\n [disabled]=\"model.selected?.id\"\n [required]=\"true\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label for=\"softwareDeviceTypeFilter\" translate>Device type filter</label>\n <input\n id=\"softwareDeviceTypeFilter\"\n class=\"form-control\"\n name=\"softwareDeviceTypeFilter\"\n popover=\"{{\n 'If the filter is set, the firmware will show up for installation only for devices of that type. If no filter is set, it will be available for all devices.'\n | translate\n }}\"\n [(ngModel)]=\"model.deviceType\"\n placeholder=\"{{ 'e.g.' | translate }} c8y_Linux\"\n [disabled]=\"model.selected?.id\"\n />\n </c8y-form-group>\n </div>\n\n <c8y-form-group>\n <label for=\"softwareVersion\" translate>Version</label>\n <input\n id=\"softwareVersion\"\n class=\"form-control\"\n autocomplete=\"off\"\n name=\"version\"\n [(ngModel)]=\"model.version\"\n placeholder=\"{{ 'e.g.' | translate }} 1.0.0\"\n [required]=\"true\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <div class=\"legend form-block top-m-xxl\" translate>Software file</div>\n <c8y-file-picker [maxAllowedFiles]=\"1\" (onFilesPicked)=\"onFile($event)\" [fileUrlPopover]=\"textForSoftwareUrlPopover\">\n </c8y-file-picker>\n </c8y-form-group>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n [disabled]=\"saving\"\n translate\n >\n Cancel\n </button>\n\n <button\n title=\"{{ 'Add software' | translate }}\"\n class=\"btn btn-primary\"\n type=\"submit\"\n [ngClass]=\"{ 'btn-pending': saving }\"\n [disabled]=\"\n !softwareForm.form.valid ||\n softwareForm.form.pristine ||\n saving ||\n (!model.binary?.url && !model.binary?.file)\n \"\n translate\n >\n Add software\n </button>\n </div>\n </form>\n</div>\n"
131
136
  })
132
137
  ], AddSoftwareModalComponent);
133
138
  export { AddSoftwareModalComponent };
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXNvZnR3YXJlLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BjOHkvbmd4LWNvbXBvbmVudHMvcmVwb3NpdG9yeS8iLCJzb3VyY2VzIjpbInNvZnR3YXJlL2FkZC1zb2Z0d2FyZS1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQWtDLE1BQU0scUJBQXFCLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXBGLElBQWEseUJBQXlCLEdBQXRDLE1BQWEseUJBQXlCO0lBbUJwQyxZQUNVLEtBQWlCLEVBQ2pCLGlCQUFvQyxFQUNwQyxLQUFtQjtRQUZuQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsVUFBSyxHQUFMLEtBQUssQ0FBYztRQXBCbkIsVUFBSyxHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUMzRixZQUFPLEdBQTRCLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLFVBQUssR0FBZTtZQUNsQixRQUFRLEVBQUUsU0FBUztZQUNuQixPQUFPLEVBQUUsU0FBUztZQUNsQixXQUFXLEVBQUUsU0FBUztZQUN0QixVQUFVLEVBQUUsU0FBUztZQUNyQixNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsR0FBRyxFQUFFLFNBQVM7YUFDZjtTQUNGLENBQUM7UUFFRixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2Ysd0JBQW1CLEdBQVksS0FBSyxDQUFDO0lBT2xDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDdkIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztTQUNqQztJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxPQUFPO2FBQ25DLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUM5QixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7b0JBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2lCQUMzQzthQUNGO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixvQkFBb0IsRUFBRSxFQUN0QixTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDMUQ7YUFDQSxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBaUI7UUFDakMsT0FBTyxJQUFJLENBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUU7WUFDcEUsV0FBVyxFQUFFLFNBQVM7WUFDdEIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUssSUFBSTs7WUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixJQUFJLENBQUMsaUJBQWlCO2lCQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsUUFBUSxDQUFDO2lCQUMzQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUMvQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsQ0FBQyxDQUFDO2lCQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztnQkFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7S0FBQTtJQUVELFVBQVU7UUFDUixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQW9CO1FBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHO2dCQUNsQixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7YUFDakIsQ0FBQztZQUNGLE9BQU87U0FDUjthQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHO2dCQUNsQixJQUFJLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO2FBQ25DLENBQUM7WUFDRixPQUFPO1NBQ1I7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHO2dCQUNsQixJQUFJLEVBQUUsU0FBUztnQkFDZixHQUFHLEVBQUUsU0FBUzthQUNmLENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxRQUF3QjtRQUN2QyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNqQixRQUFRLEVBQUUsUUFBUTtZQUNsQixXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7WUFDakMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUM7U0FDN0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGLENBQUE7O1lBdEdrQixVQUFVO1lBQ0UsaUJBQWlCO1lBQzdCLFlBQVk7O0FBckJpQjtJQUE3QyxTQUFTLENBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO3VEQUFjO0FBQ2pEO0lBQVQsTUFBTSxFQUFFO3dEQUFrRjtBQUZoRix5QkFBeUI7SUFKckMsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGlDQUFpQztRQUMzQyxrNUpBQWdEO0tBQ2pELENBQUM7R0FDVyx5QkFBeUIsQ0EwSHJDO1NBMUhZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgUmVwb3NpdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9yZXBvc2l0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVwb3NpdG9yeVR5cGUsIE1vZGFsTW9kZWwsIFJlcG9zaXRvcnlDYXRlZ29yeSB9IGZyb20gJy4uL3JlcG9zaXRvcnkubW9kZWwnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBpc1VuZGVmaW5lZCwgZ2V0LCBhc3NpZ24gfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRhcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUGlja2VkRmlsZXMgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYWRkLXNvZnR3YXJlLXNvZnR3YXJlLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICdhZGQtc29mdHdhcmUtbW9kYWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFkZFNvZnR3YXJlTW9kYWxDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdzb2Z0d2FyZUZvcm0nLCB7IHN0YXRpYzogZmFsc2UgfSkgZm9ybTogTmdGb3JtO1xuICBAT3V0cHV0KCkgc2F2ZWQ6IEV2ZW50RW1pdHRlcjxSZXBvc2l0b3J5Q2F0ZWdvcnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxSZXBvc2l0b3J5Q2F0ZWdvcnk+KCk7XG4gIG9uSW5wdXQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgbW9kZWw6IE1vZGFsTW9kZWwgPSB7XG4gICAgc2VsZWN0ZWQ6IHVuZGVmaW5lZCxcbiAgICB2ZXJzaW9uOiB1bmRlZmluZWQsXG4gICAgZGVzY3JpcHRpb246IHVuZGVmaW5lZCxcbiAgICBkZXZpY2VUeXBlOiB1bmRlZmluZWQsXG4gICAgYmluYXJ5OiB7XG4gICAgICBmaWxlOiB1bmRlZmluZWQsXG4gICAgICB1cmw6IHVuZGVmaW5lZFxuICAgIH1cbiAgfTtcbiAgc29mdHdhcmVzUmVzdWx0O1xuICBzYXZpbmcgPSBmYWxzZTtcbiAgc29mdHdhcmVQcmVzZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIGlucHV0U3Vic2NyaXB0aW9uJDogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbW9kYWw6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSByZXBvc2l0b3J5U2VydmljZTogUmVwb3NpdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xuICAgIHRoaXMubG9hZFNvZnR3YXJlcygpO1xuICB9XG5cbiAgc2V0SW5pdGlhbFN0YXRlKCkge1xuICAgIGlmICh0aGlzLm1vZGVsLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLnNvZnR3YXJlUHJlc2VsZWN0ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGxvYWRTb2Z0d2FyZXMoKSB7XG4gICAgdGhpcy5pbnB1dFN1YnNjcmlwdGlvbiQgPSB0aGlzLm9uSW5wdXRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy5zb2Z0d2FyZVByZXNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLmRlc2NyaXB0aW9uID0gbnVsbDtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtLmZvcm0uZ2V0KCdkZXNjcmlwdGlvbicpLnJlc2V0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHN3aXRjaE1hcChzZWFyY2hTdHIgPT4gdGhpcy5nZXRTb2Z0d2FyZVJlc3VsdChzZWFyY2hTdHIpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICB0aGlzLnNvZnR3YXJlc1Jlc3VsdCA9IHJlc3VsdDtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0U29mdHdhcmVSZXN1bHQoc2VhcmNoU3RyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZnJvbShcbiAgICAgIHRoaXMucmVwb3NpdG9yeVNlcnZpY2UubGlzdFJlcG9zaXRvcnlFbnRyaWVzKFJlcG9zaXRvcnlUeXBlLlNPRlRXQVJFLCB7XG4gICAgICAgIHBhcnRpYWxOYW1lOiBzZWFyY2hTdHIsXG4gICAgICAgIHNraXBMZWdhY3k6IHRydWVcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmUoKSB7XG4gICAgdGhpcy5zYXZpbmcgPSB0cnVlO1xuICAgIHRoaXMucmVwb3NpdG9yeVNlcnZpY2VcbiAgICAgIC5jcmVhdGUodGhpcy5tb2RlbCwgUmVwb3NpdG9yeVR5cGUuU09GVFdBUkUpXG4gICAgICAudGhlbihzYXZlZFNvZnR3YXJlID0+IHtcbiAgICAgICAgdGhpcy5zdWNjZXNzTXNnKCk7XG4gICAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2F2ZWQubmV4dChzYXZlZFNvZnR3YXJlKTtcbiAgICAgICAgdGhpcy5jYW5jZWwoKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZSA9PiB7XG4gICAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2F2ZWQuZXJyb3IoZSk7XG4gICAgICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHN1Y2Nlc3NNc2coKSB7XG4gICAgY29uc3QgbXNnID0gZ2V0dGV4dCgnU29mdHdhcmUgYWRkZWQuJyk7XG4gICAgdGhpcy5hbGVydC5zdWNjZXNzKG1zZyk7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5tb2RhbC5oaWRlKCk7XG4gICAgdGhpcy5zYXZlZC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5pbnB1dFN1YnNjcmlwdGlvbiQudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG9uRmlsZShkcm9wcGVkOiBQaWNrZWRGaWxlcykge1xuICAgIGlmICghaXNVbmRlZmluZWQoZHJvcHBlZC51cmwpKSB7XG4gICAgICB0aGlzLm1vZGVsLmJpbmFyeSA9IHtcbiAgICAgICAgdXJsOiBkcm9wcGVkLnVybFxuICAgICAgfTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKCFpc1VuZGVmaW5lZChkcm9wcGVkLmRyb3BwZWRGaWxlcykpIHtcbiAgICAgIHRoaXMubW9kZWwuYmluYXJ5ID0ge1xuICAgICAgICBmaWxlOiBkcm9wcGVkLmRyb3BwZWRGaWxlc1swXS5maWxlXG4gICAgICB9O1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZGVsLmJpbmFyeSA9IHtcbiAgICAgICAgZmlsZTogdW5kZWZpbmVkLFxuICAgICAgICB1cmw6IHVuZGVmaW5lZFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBvblNvZnR3YXJlU2VsZWN0KHNvZnR3YXJlOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIGFzc2lnbih0aGlzLm1vZGVsLCB7XG4gICAgICBzZWxlY3RlZDogc29mdHdhcmUsXG4gICAgICBkZXNjcmlwdGlvbjogc29mdHdhcmUuZGVzY3JpcHRpb24sXG4gICAgICBkZXZpY2VUeXBlOiBnZXQoc29mdHdhcmUsICdjOHlfRmlsdGVyLnR5cGUnKVxuICAgIH0pO1xuICB9XG59XG4iXX0=
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXNvZnR3YXJlLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BjOHkvbmd4LWNvbXBvbmVudHMvcmVwb3NpdG9yeS8iLCJzb3VyY2VzIjpbInNvZnR3YXJlL2FkZC1zb2Z0d2FyZS1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQWtDLE1BQU0scUJBQXFCLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXBGLElBQWEseUJBQXlCLEdBQXRDLE1BQWEseUJBQXlCO0lBd0JwQyxZQUNVLEtBQWlCLEVBQ2pCLGlCQUFvQyxFQUNwQyxLQUFtQjtRQUZuQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsVUFBSyxHQUFMLEtBQUssQ0FBYztRQXpCbkIsVUFBSyxHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUMzRixZQUFPLEdBQTRCLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLFVBQUssR0FBZTtZQUNsQixR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RUFBRTt3REFBa0Y7QUFGaEYseUJBQXlCO0lBSnJDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxpQ0FBaUM7UUFDM0MsaThKQUFnRDtLQUNqRCxDQUFDO0dBQ1cseUJBQXlCLENBK0hyQztTQS9IWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IFJlcG9zaXRvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vcmVwb3NpdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlcG9zaXRvcnlUeXBlLCBNb2RhbE1vZGVsLCBSZXBvc2l0b3J5Q2F0ZWdvcnkgfSBmcm9tICcuLi9yZXBvc2l0b3J5Lm1vZGVsJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgaXNVbmRlZmluZWQsIGdldCwgYXNzaWduIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBmcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFBpY2tlZEZpbGVzIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWFkZC1zb2Z0d2FyZS1zb2Z0d2FyZS1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnYWRkLXNvZnR3YXJlLW1vZGFsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZGRTb2Z0d2FyZU1vZGFsQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgnc29mdHdhcmVGb3JtJywgeyBzdGF0aWM6IGZhbHNlIH0pIGZvcm06IE5nRm9ybTtcbiAgQE91dHB1dCgpIHNhdmVkOiBFdmVudEVtaXR0ZXI8UmVwb3NpdG9yeUNhdGVnb3J5PiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVwb3NpdG9yeUNhdGVnb3J5PigpO1xuICBvbklucHV0OiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIG1vZGVsOiBNb2RhbE1vZGVsID0ge1xuICAgIHNlbGVjdGVkOiB1bmRlZmluZWQsXG4gICAgdmVyc2lvbjogdW5kZWZpbmVkLFxuICAgIGRlc2NyaXB0aW9uOiB1bmRlZmluZWQsXG4gICAgZGV2aWNlVHlwZTogdW5kZWZpbmVkLFxuICAgIGJpbmFyeToge1xuICAgICAgZmlsZTogdW5kZWZpbmVkLFxuICAgICAgdXJsOiB1bmRlZmluZWRcbiAgICB9XG4gIH07XG4gIHNvZnR3YXJlc1Jlc3VsdDtcbiAgc2F2aW5nID0gZmFsc2U7XG4gIHNvZnR3YXJlUHJlc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdGV4dEZvclNvZnR3YXJlVXJsUG9wb3Zlcjogc3RyaW5nID0gZ2V0dGV4dChgUGF0aCBmb3IgYmluYXJpZXMgY2FuIHZhcnkgZGVwZW5kaW5nIG9uIGRldmljZSBhZ2VudCBpbXBsZW1lbnRhdGlvbiwgZS5nLjpcbiAgICAvc29mdHdhcmUvYmluYXJpZXMvc29mdHdhcmUxLmJpblxuICAgIGh0dHBzOi8vc29mdHdhcmUvYmluYXJ5LzEyM1xuICAgIGZ0cDovL3NvZnR3YXJlL2JpbmFyeS8xMjMudGFyLmd6XG4gIGApO1xuICBwcml2YXRlIGlucHV0U3Vic2NyaXB0aW9uJDogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbW9kYWw6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSByZXBvc2l0b3J5U2VydmljZTogUmVwb3NpdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xuICAgIHRoaXMubG9hZFNvZnR3YXJlcygpO1xuICB9XG5cbiAgc2V0SW5pdGlhbFN0YXRlKCkge1xuICAgIGlmICh0aGlzLm1vZGVsLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLnNvZnR3YXJlUHJlc2VsZWN0ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGxvYWRTb2Z0d2FyZXMoKSB7XG4gICAgdGhpcy5pbnB1dFN1YnNjcmlwdGlvbiQgPSB0aGlzLm9uSW5wdXRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy5zb2Z0d2FyZVByZXNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLmRlc2NyaXB0aW9uID0gbnVsbDtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtLmZvcm0uZ2V0KCdkZXNjcmlwdGlvbicpLnJlc2V0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHN3aXRjaE1hcChzZWFyY2hTdHIgPT4gdGhpcy5nZXRTb2Z0d2FyZVJlc3VsdChzZWFyY2hTdHIpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICB0aGlzLnNvZnR3YXJlc1Jlc3VsdCA9IHJlc3VsdDtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0U29mdHdhcmVSZXN1bHQoc2VhcmNoU3RyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZnJvbShcbiAgICAgIHRoaXMucmVwb3NpdG9yeVNlcnZpY2UubGlzdFJlcG9zaXRvcnlFbnRyaWVzKFJlcG9zaXRvcnlUeXBlLlNPRlRXQVJFLCB7XG4gICAgICAgIHBhcnRpYWxOYW1lOiBzZWFyY2hTdHIsXG4gICAgICAgIHNraXBMZWdhY3k6IHRydWVcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmUoKSB7XG4gICAgdGhpcy5zYXZpbmcgPSB0cnVlO1xuICAgIHRoaXMucmVwb3NpdG9yeVNlcnZpY2VcbiAgICAgIC5jcmVhdGUodGhpcy5tb2RlbCwgUmVwb3NpdG9yeVR5cGUuU09GVFdBUkUpXG4gICAgICAudGhlbihzYXZlZFNvZnR3YXJlID0+IHtcbiAgICAgICAgdGhpcy5zdWNjZXNzTXNnKCk7XG4gICAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2F2ZWQubmV4dChzYXZlZFNvZnR3YXJlKTtcbiAgICAgICAgdGhpcy5jYW5jZWwoKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZSA9PiB7XG4gICAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2F2ZWQuZXJyb3IoZSk7XG4gICAgICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHN1Y2Nlc3NNc2coKSB7XG4gICAgY29uc3QgbXNnID0gZ2V0dGV4dCgnU29mdHdhcmUgYWRkZWQuJyk7XG4gICAgdGhpcy5hbGVydC5zdWNjZXNzKG1zZyk7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5tb2RhbC5oaWRlKCk7XG4gICAgdGhpcy5zYXZlZC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5pbnB1dFN1YnNjcmlwdGlvbiQudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG9uRmlsZShkcm9wcGVkOiBQaWNrZWRGaWxlcykge1xuICAgIGlmICghaXNVbmRlZmluZWQoZHJvcHBlZC51cmwpKSB7XG4gICAgICB0aGlzLm1vZGVsLmJpbmFyeSA9IHtcbiAgICAgICAgdXJsOiBkcm9wcGVkLnVybFxuICAgICAgfTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKCFpc1VuZGVmaW5lZChkcm9wcGVkLmRyb3BwZWRGaWxlcykpIHtcbiAgICAgIHRoaXMubW9kZWwuYmluYXJ5ID0ge1xuICAgICAgICBmaWxlOiBkcm9wcGVkLmRyb3BwZWRGaWxlc1swXS5maWxlXG4gICAgICB9O1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZGVsLmJpbmFyeSA9IHtcbiAgICAgICAgZmlsZTogdW5kZWZpbmVkLFxuICAgICAgICB1cmw6IHVuZGVmaW5lZFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBvblNvZnR3YXJlU2VsZWN0KHNvZnR3YXJlOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIGFzc2lnbih0aGlzLm1vZGVsLCB7XG4gICAgICBzZWxlY3RlZDogc29mdHdhcmUsXG4gICAgICBkZXNjcmlwdGlvbjogc29mdHdhcmUuZGVzY3JpcHRpb24sXG4gICAgICBkZXZpY2VUeXBlOiBnZXQoc29mdHdhcmUsICdjOHlfRmlsdGVyLnR5cGUnKVxuICAgIH0pO1xuICB9XG59XG4iXX0=