@c8y/ngx-components 1017.0.8 → 1017.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/esm2020/actility-device-registration/actility-device-registration.component.mjs +3 -3
  2. package/esm2020/context-dashboard/context-dashboard.component.mjs +3 -3
  3. package/esm2020/context-dashboard/dashboard-detail.component.mjs +3 -3
  4. package/esm2020/context-dashboard/device-info-dashboard/device-info-dashboard.component.mjs +43 -51
  5. package/esm2020/context-dashboard/widget-preview.component.mjs +3 -3
  6. package/esm2020/core/authentication/sms-challenge.component.mjs +3 -3
  7. package/esm2020/core/authentication/totp-challenge.component.mjs +3 -3
  8. package/esm2020/core/breadcrumb/breadcrumb-outlet.component.mjs +3 -3
  9. package/esm2020/core/dashboard/dashboard-child.component.mjs +3 -3
  10. package/esm2020/core/dashboard/widget-time-context.component.mjs +3 -3
  11. package/esm2020/core/data-grid/data-grid.component.mjs +3 -3
  12. package/esm2020/core/date-picker/date-picker.component.mjs +3 -3
  13. package/esm2020/core/drop-area/drop-area.component.mjs +3 -3
  14. package/esm2020/core/file-picker/file-picker.component.mjs +3 -3
  15. package/esm2020/core/header/application/app-switcher.component.mjs +3 -3
  16. package/esm2020/core/login/credentials.component.mjs +3 -3
  17. package/esm2020/core/login/login.component.mjs +3 -3
  18. package/esm2020/core/modal/modal.component.mjs +3 -3
  19. package/esm2020/core/select/typeahead.component.mjs +3 -3
  20. package/esm2020/device-grid/columns/alarms.cell-renderer.component.mjs +3 -3
  21. package/esm2020/loriot-device-registration/loriot-device-registration-button.component.mjs +3 -1
  22. package/esm2020/loriot-device-registration/loriot-device-registration.component.mjs +3 -3
  23. package/esm2020/operations/bulk-operations-list/bulk-operations-list.component.mjs +3 -3
  24. package/esm2020/operations/operations-list/operations-list-item.component.mjs +3 -3
  25. package/esm2020/operations/operations-list/operations-list.component.mjs +3 -3
  26. package/esm2020/register-device/bulk/bulk-device-registration-modal.component.mjs +3 -3
  27. package/esm2020/register-device/extensible/bulk/extensible-bulk-device-registration-modal.component.mjs +3 -3
  28. package/esm2020/register-device/extensible/single/extensible-device-registration-modal.component.mjs +3 -3
  29. package/esm2020/register-device/general/general-device-registration.component.mjs +3 -3
  30. package/esm2020/repository/software/device-tab/device-software-list.component.mjs +3 -3
  31. package/esm2020/repository/software/device-tab/installed-software.component.mjs +3 -3
  32. package/esm2020/repository/software/list/add-software-modal.component.mjs +3 -3
  33. package/esm2020/sigfox-device-registration/sigfox-device-registration.component.mjs +3 -3
  34. package/fesm2015/c8y-ngx-components-actility-device-registration.mjs +2 -2
  35. package/fesm2015/c8y-ngx-components-actility-device-registration.mjs.map +1 -1
  36. package/fesm2015/c8y-ngx-components-context-dashboard.mjs +48 -56
  37. package/fesm2015/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  38. package/fesm2015/c8y-ngx-components-device-grid.mjs +2 -2
  39. package/fesm2015/c8y-ngx-components-device-grid.mjs.map +1 -1
  40. package/fesm2015/c8y-ngx-components-loriot-device-registration.mjs +4 -2
  41. package/fesm2015/c8y-ngx-components-loriot-device-registration.mjs.map +1 -1
  42. package/fesm2015/c8y-ngx-components-operations-bulk-operations-list.mjs +2 -2
  43. package/fesm2015/c8y-ngx-components-operations-bulk-operations-list.mjs.map +1 -1
  44. package/fesm2015/c8y-ngx-components-operations-operations-list.mjs +4 -4
  45. package/fesm2015/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
  46. package/fesm2015/c8y-ngx-components-register-device.mjs +8 -8
  47. package/fesm2015/c8y-ngx-components-register-device.mjs.map +1 -1
  48. package/fesm2015/c8y-ngx-components-repository-software.mjs +6 -6
  49. package/fesm2015/c8y-ngx-components-repository-software.mjs.map +1 -1
  50. package/fesm2015/c8y-ngx-components-sigfox-device-registration.mjs +2 -2
  51. package/fesm2015/c8y-ngx-components-sigfox-device-registration.mjs.map +1 -1
  52. package/fesm2015/c8y-ngx-components.mjs +28 -28
  53. package/fesm2015/c8y-ngx-components.mjs.map +1 -1
  54. package/fesm2020/c8y-ngx-components-actility-device-registration.mjs +2 -2
  55. package/fesm2020/c8y-ngx-components-actility-device-registration.mjs.map +1 -1
  56. package/fesm2020/c8y-ngx-components-context-dashboard.mjs +48 -56
  57. package/fesm2020/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  58. package/fesm2020/c8y-ngx-components-device-grid.mjs +2 -2
  59. package/fesm2020/c8y-ngx-components-device-grid.mjs.map +1 -1
  60. package/fesm2020/c8y-ngx-components-loriot-device-registration.mjs +4 -2
  61. package/fesm2020/c8y-ngx-components-loriot-device-registration.mjs.map +1 -1
  62. package/fesm2020/c8y-ngx-components-operations-bulk-operations-list.mjs +2 -2
  63. package/fesm2020/c8y-ngx-components-operations-bulk-operations-list.mjs.map +1 -1
  64. package/fesm2020/c8y-ngx-components-operations-operations-list.mjs +4 -4
  65. package/fesm2020/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
  66. package/fesm2020/c8y-ngx-components-register-device.mjs +8 -8
  67. package/fesm2020/c8y-ngx-components-register-device.mjs.map +1 -1
  68. package/fesm2020/c8y-ngx-components-repository-software.mjs +6 -6
  69. package/fesm2020/c8y-ngx-components-repository-software.mjs.map +1 -1
  70. package/fesm2020/c8y-ngx-components-sigfox-device-registration.mjs +2 -2
  71. package/fesm2020/c8y-ngx-components-sigfox-device-registration.mjs.map +1 -1
  72. package/fesm2020/c8y-ngx-components.mjs +28 -28
  73. package/fesm2020/c8y-ngx-components.mjs.map +1 -1
  74. package/locales/locales.pot +6 -9
  75. package/package.json +2 -2
@@ -11,13 +11,13 @@ export class WidgetPreviewComponent {
11
11
  }
12
12
  }
13
13
  WidgetPreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WidgetPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
- WidgetPreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: WidgetPreviewComponent, selector: "c8y-widget-preview", inputs: { previewClasses: "previewClasses", tab: "tab" }, ngImport: i0, template: "<div class=\"legend form-block\" translate>Preview</div>\n<label *ngIf=\"tab\" translate>Tab and layout</label>\n<label *ngIf=\"!tab\" translate>Layout</label>\n<div class=\"dashboard-preview-slot\" [ngClass]=\"previewClasses\">\n <div\n class=\"page-tabs page-tabs-horizontal navigator-open p-absolute overflow-hidden\"\n style=\"left: 0; margin: 0 15px\"\n *ngIf=\"tab\"\n >\n <div class=\"tabContainer hidden-xs\">\n <ul role=\"menu\" class=\"nav nav-tabs nav-tabsc8y\">\n <li role=\"menuitem\" class=\"active\" style=\"left: 16px\">\n <a routerlinkactive=\"\" title=\"{{ tab.name }}\">\n <i class=\"text-primary\" [c8yIcon]=\"tab.icon\"></i>\n <span class=\"txt\">{{ tab.name }}</span>\n </a>\n </li>\n </ul>\n </div>\n <div class=\"visible-xs mobile-tabs\"></div>\n </div>\n <div [ngClass]=\"{ 'm-t-64': !!tab }\">\n <div class=\"card card-dashboard\" style=\"height: 360px\">\n <div class=\"card-header-actions\" style=\"z-index: 8\">\n <div class=\"card-title\">\n <span translate>Widget title</span>\n </div>\n <div class=\"header-actions\">\n <div class=\"optionsBtn dropdown\">\n <button\n type=\"button\"\n title=\"{{ 'Settings' | translate }}\"\n (click)=\"(false)\"\n class=\"btn btn-dot dropdown-toggle c8y-dropdown\"\n >\n <i c8yIcon=\"cog\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll p-t-16\">\n <p translate>Widget example content.</p>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] });
14
+ WidgetPreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: WidgetPreviewComponent, selector: "c8y-widget-preview", inputs: { previewClasses: "previewClasses", tab: "tab" }, ngImport: i0, template: "<div class=\"legend form-block\" translate>Preview</div>\n<label *ngIf=\"tab\" translate>Tab and layout</label>\n<label *ngIf=\"!tab\" translate>Layout</label>\n<div class=\"dashboard-preview-slot\" [ngClass]=\"previewClasses\">\n <div\n class=\"page-tabs page-tabs-horizontal navigator-open p-absolute overflow-hidden\"\n style=\"left: 0; margin: 0 15px\"\n *ngIf=\"tab\"\n >\n <div class=\"tabContainer hidden-xs\">\n <ul role=\"menu\" class=\"nav nav-tabs nav-tabsc8y\">\n <li role=\"menuitem\" class=\"active\" style=\"left: 16px\">\n <a routerlinkactive=\"\" title=\"{{ tab.name }}\">\n <i class=\"text-primary\" [c8yIcon]=\"tab.icon\"></i>\n <span class=\"txt\">{{ tab.name }}</span>\n </a>\n </li>\n </ul>\n </div>\n <div class=\"visible-xs mobile-tabs\"></div>\n </div>\n <div [ngClass]=\"{ 'm-t-64': !!tab }\">\n <div class=\"card card-dashboard\" style=\"height: 360px\">\n <div class=\"card-header-actions\" style=\"z-index: 8\">\n <div class=\"card-title\">\n <span translate>Widget title</span>\n </div>\n <div class=\"header-actions\">\n <div class=\"optionsBtn dropdown\">\n <button\n type=\"button\"\n title=\"{{ 'Settings' | translate }}\"\n (click)=\"(false)\"\n class=\"btn btn-dot dropdown-toggle c8y-dropdown\"\n aria-haspopup=\"true\"\n >\n <i c8yIcon=\"cog\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll p-t-16\">\n <p translate>Widget example content.</p>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] });
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WidgetPreviewComponent, decorators: [{
16
16
  type: Component,
17
- args: [{ selector: 'c8y-widget-preview', template: "<div class=\"legend form-block\" translate>Preview</div>\n<label *ngIf=\"tab\" translate>Tab and layout</label>\n<label *ngIf=\"!tab\" translate>Layout</label>\n<div class=\"dashboard-preview-slot\" [ngClass]=\"previewClasses\">\n <div\n class=\"page-tabs page-tabs-horizontal navigator-open p-absolute overflow-hidden\"\n style=\"left: 0; margin: 0 15px\"\n *ngIf=\"tab\"\n >\n <div class=\"tabContainer hidden-xs\">\n <ul role=\"menu\" class=\"nav nav-tabs nav-tabsc8y\">\n <li role=\"menuitem\" class=\"active\" style=\"left: 16px\">\n <a routerlinkactive=\"\" title=\"{{ tab.name }}\">\n <i class=\"text-primary\" [c8yIcon]=\"tab.icon\"></i>\n <span class=\"txt\">{{ tab.name }}</span>\n </a>\n </li>\n </ul>\n </div>\n <div class=\"visible-xs mobile-tabs\"></div>\n </div>\n <div [ngClass]=\"{ 'm-t-64': !!tab }\">\n <div class=\"card card-dashboard\" style=\"height: 360px\">\n <div class=\"card-header-actions\" style=\"z-index: 8\">\n <div class=\"card-title\">\n <span translate>Widget title</span>\n </div>\n <div class=\"header-actions\">\n <div class=\"optionsBtn dropdown\">\n <button\n type=\"button\"\n title=\"{{ 'Settings' | translate }}\"\n (click)=\"(false)\"\n class=\"btn btn-dot dropdown-toggle c8y-dropdown\"\n >\n <i c8yIcon=\"cog\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll p-t-16\">\n <p translate>Widget example content.</p>\n </div>\n </div>\n </div>\n</div>\n" }]
17
+ args: [{ selector: 'c8y-widget-preview', template: "<div class=\"legend form-block\" translate>Preview</div>\n<label *ngIf=\"tab\" translate>Tab and layout</label>\n<label *ngIf=\"!tab\" translate>Layout</label>\n<div class=\"dashboard-preview-slot\" [ngClass]=\"previewClasses\">\n <div\n class=\"page-tabs page-tabs-horizontal navigator-open p-absolute overflow-hidden\"\n style=\"left: 0; margin: 0 15px\"\n *ngIf=\"tab\"\n >\n <div class=\"tabContainer hidden-xs\">\n <ul role=\"menu\" class=\"nav nav-tabs nav-tabsc8y\">\n <li role=\"menuitem\" class=\"active\" style=\"left: 16px\">\n <a routerlinkactive=\"\" title=\"{{ tab.name }}\">\n <i class=\"text-primary\" [c8yIcon]=\"tab.icon\"></i>\n <span class=\"txt\">{{ tab.name }}</span>\n </a>\n </li>\n </ul>\n </div>\n <div class=\"visible-xs mobile-tabs\"></div>\n </div>\n <div [ngClass]=\"{ 'm-t-64': !!tab }\">\n <div class=\"card card-dashboard\" style=\"height: 360px\">\n <div class=\"card-header-actions\" style=\"z-index: 8\">\n <div class=\"card-title\">\n <span translate>Widget title</span>\n </div>\n <div class=\"header-actions\">\n <div class=\"optionsBtn dropdown\">\n <button\n type=\"button\"\n title=\"{{ 'Settings' | translate }}\"\n (click)=\"(false)\"\n class=\"btn btn-dot dropdown-toggle c8y-dropdown\"\n aria-haspopup=\"true\"\n >\n <i c8yIcon=\"cog\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll p-t-16\">\n <p translate>Widget example content.</p>\n </div>\n </div>\n </div>\n</div>\n" }]
18
18
  }], propDecorators: { previewClasses: [{
19
19
  type: Input
20
20
  }], tab: [{
21
21
  type: Input
22
22
  }] } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXByZXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29udGV4dC1kYXNoYm9hcmQvd2lkZ2V0LXByZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vY29udGV4dC1kYXNoYm9hcmQvd2lkZ2V0LXByZXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFNakQsTUFBTSxPQUFPLHNCQUFzQjtJQUpuQztRQU1FLG1CQUFjLEdBQStCO1lBQzNDLHVCQUF1QixFQUFFLElBQUk7WUFDN0IscUJBQXFCLEVBQUUsSUFBSTtTQUM1QixDQUFDO0tBSUg7O21IQVRZLHNCQUFzQjt1R0FBdEIsc0JBQXNCLG9IQ05uQyxrcURBOENBOzJGRHhDYSxzQkFBc0I7a0JBSmxDLFNBQVM7K0JBQ0Usb0JBQW9COzhCQUs5QixjQUFjO3NCQURiLEtBQUs7Z0JBT04sR0FBRztzQkFERixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktd2lkZ2V0LXByZXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0LXByZXZpZXcuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldFByZXZpZXdDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwcmV2aWV3Q2xhc3NlczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7XG4gICAgJ2Rhc2hib2FyZC10aGVtZS1saWdodCc6IHRydWUsXG4gICAgJ3BhbmVsLXRpdGxlLXJlZ3VsYXInOiB0cnVlXG4gIH07XG5cbiAgQElucHV0KClcbiAgdGFiOiB7IG5hbWU6IHN0cmluZzsgaWNvbjogc3RyaW5nIH07XG59XG4iLCI8ZGl2IGNsYXNzPVwibGVnZW5kIGZvcm0tYmxvY2tcIiB0cmFuc2xhdGU+UHJldmlldzwvZGl2PlxuPGxhYmVsICpuZ0lmPVwidGFiXCIgdHJhbnNsYXRlPlRhYiBhbmQgbGF5b3V0PC9sYWJlbD5cbjxsYWJlbCAqbmdJZj1cIiF0YWJcIiB0cmFuc2xhdGU+TGF5b3V0PC9sYWJlbD5cbjxkaXYgY2xhc3M9XCJkYXNoYm9hcmQtcHJldmlldy1zbG90XCIgW25nQ2xhc3NdPVwicHJldmlld0NsYXNzZXNcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicGFnZS10YWJzIHBhZ2UtdGFicy1ob3Jpem9udGFsIG5hdmlnYXRvci1vcGVuIHAtYWJzb2x1dGUgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICBzdHlsZT1cImxlZnQ6IDA7IG1hcmdpbjogMCAxNXB4XCJcbiAgICAqbmdJZj1cInRhYlwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwidGFiQ29udGFpbmVyIGhpZGRlbi14c1wiPlxuICAgICAgPHVsIHJvbGU9XCJtZW51XCIgY2xhc3M9XCJuYXYgbmF2LXRhYnMgbmF2LXRhYnNjOHlcIj5cbiAgICAgICAgPGxpIHJvbGU9XCJtZW51aXRlbVwiIGNsYXNzPVwiYWN0aXZlXCIgc3R5bGU9XCJsZWZ0OiAxNnB4XCI+XG4gICAgICAgICAgPGEgcm91dGVybGlua2FjdGl2ZT1cIlwiIHRpdGxlPVwie3sgdGFiLm5hbWUgfX1cIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwidGV4dC1wcmltYXJ5XCIgW2M4eUljb25dPVwidGFiLmljb25cIj48L2k+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR4dFwiPnt7IHRhYi5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInZpc2libGUteHMgbW9iaWxlLXRhYnNcIj48L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgW25nQ2xhc3NdPVwieyAnbS10LTY0JzogISF0YWIgfVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtZGFzaGJvYXJkXCIgc3R5bGU9XCJoZWlnaHQ6IDM2MHB4XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXItYWN0aW9uc1wiIHN0eWxlPVwiei1pbmRleDogOFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiPlxuICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5XaWRnZXQgdGl0bGU8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWFjdGlvbnNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uc0J0biBkcm9wZG93blwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnU2V0dGluZ3MnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIihmYWxzZSlcIlxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZG90IGRyb3Bkb3duLXRvZ2dsZSBjOHktZHJvcGRvd25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSBjOHlJY29uPVwiY29nXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1pbm5lci1zY3JvbGwgcC10LTE2XCI+XG4gICAgICAgIDxwIHRyYW5zbGF0ZT5XaWRnZXQgZXhhbXBsZSBjb250ZW50LjwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXByZXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29udGV4dC1kYXNoYm9hcmQvd2lkZ2V0LXByZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vY29udGV4dC1kYXNoYm9hcmQvd2lkZ2V0LXByZXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFNakQsTUFBTSxPQUFPLHNCQUFzQjtJQUpuQztRQU1FLG1CQUFjLEdBQStCO1lBQzNDLHVCQUF1QixFQUFFLElBQUk7WUFDN0IscUJBQXFCLEVBQUUsSUFBSTtTQUM1QixDQUFDO0tBSUg7O21IQVRZLHNCQUFzQjt1R0FBdEIsc0JBQXNCLG9IQ05uQyx3c0RBK0NBOzJGRHpDYSxzQkFBc0I7a0JBSmxDLFNBQVM7K0JBQ0Usb0JBQW9COzhCQUs5QixjQUFjO3NCQURiLEtBQUs7Z0JBT04sR0FBRztzQkFERixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktd2lkZ2V0LXByZXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0LXByZXZpZXcuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldFByZXZpZXdDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwcmV2aWV3Q2xhc3NlczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7XG4gICAgJ2Rhc2hib2FyZC10aGVtZS1saWdodCc6IHRydWUsXG4gICAgJ3BhbmVsLXRpdGxlLXJlZ3VsYXInOiB0cnVlXG4gIH07XG5cbiAgQElucHV0KClcbiAgdGFiOiB7IG5hbWU6IHN0cmluZzsgaWNvbjogc3RyaW5nIH07XG59XG4iLCI8ZGl2IGNsYXNzPVwibGVnZW5kIGZvcm0tYmxvY2tcIiB0cmFuc2xhdGU+UHJldmlldzwvZGl2PlxuPGxhYmVsICpuZ0lmPVwidGFiXCIgdHJhbnNsYXRlPlRhYiBhbmQgbGF5b3V0PC9sYWJlbD5cbjxsYWJlbCAqbmdJZj1cIiF0YWJcIiB0cmFuc2xhdGU+TGF5b3V0PC9sYWJlbD5cbjxkaXYgY2xhc3M9XCJkYXNoYm9hcmQtcHJldmlldy1zbG90XCIgW25nQ2xhc3NdPVwicHJldmlld0NsYXNzZXNcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicGFnZS10YWJzIHBhZ2UtdGFicy1ob3Jpem9udGFsIG5hdmlnYXRvci1vcGVuIHAtYWJzb2x1dGUgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICBzdHlsZT1cImxlZnQ6IDA7IG1hcmdpbjogMCAxNXB4XCJcbiAgICAqbmdJZj1cInRhYlwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwidGFiQ29udGFpbmVyIGhpZGRlbi14c1wiPlxuICAgICAgPHVsIHJvbGU9XCJtZW51XCIgY2xhc3M9XCJuYXYgbmF2LXRhYnMgbmF2LXRhYnNjOHlcIj5cbiAgICAgICAgPGxpIHJvbGU9XCJtZW51aXRlbVwiIGNsYXNzPVwiYWN0aXZlXCIgc3R5bGU9XCJsZWZ0OiAxNnB4XCI+XG4gICAgICAgICAgPGEgcm91dGVybGlua2FjdGl2ZT1cIlwiIHRpdGxlPVwie3sgdGFiLm5hbWUgfX1cIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwidGV4dC1wcmltYXJ5XCIgW2M4eUljb25dPVwidGFiLmljb25cIj48L2k+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR4dFwiPnt7IHRhYi5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInZpc2libGUteHMgbW9iaWxlLXRhYnNcIj48L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgW25nQ2xhc3NdPVwieyAnbS10LTY0JzogISF0YWIgfVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtZGFzaGJvYXJkXCIgc3R5bGU9XCJoZWlnaHQ6IDM2MHB4XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXItYWN0aW9uc1wiIHN0eWxlPVwiei1pbmRleDogOFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiPlxuICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5XaWRnZXQgdGl0bGU8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWFjdGlvbnNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uc0J0biBkcm9wZG93blwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnU2V0dGluZ3MnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIihmYWxzZSlcIlxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZG90IGRyb3Bkb3duLXRvZ2dsZSBjOHktZHJvcGRvd25cIlxuICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpIGM4eUljb249XCJjb2dcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWlubmVyLXNjcm9sbCBwLXQtMTZcIj5cbiAgICAgICAgPHAgdHJhbnNsYXRlPldpZGdldCBleGFtcGxlIGNvbnRlbnQuPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -106,13 +106,13 @@ export class SmsChallengeComponent {
106
106
  }
107
107
  }
108
108
  SmsChallengeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SmsChallengeComponent, deps: [{ token: i1.LoginService }, { token: i2.UserService }, { token: i3.AlertService }], target: i0.ɵɵFactoryTarget.Component });
109
- SmsChallengeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SmsChallengeComponent, selector: "c8y-sms-challenge", inputs: { credentials: "credentials" }, outputs: { onCancel: "onCancel" }, ngImport: i0, template: "<form #twoFactorForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"verifyTFACode()\" novalidate>\n <div class=\"legend form-block center\" translate>Two-factor authentication</div>\n\n <c8y-form-group>\n <label translate>Verification code</label>\n <input\n [(ngModel)]=\"model.smsToken\"\n #sms_token=\"ngModel\"\n type=\"text\"\n name=\"sms_token\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 624327\"\n required\n />\n <p *ngIf=\"!twoFactorForm.form.valid || isLoading\" class=\"help-block\" translate>\n Insert the code received via SMS.\n </p>\n </c8y-form-group>\n\n <button\n title=\"{{ 'Verify' | translate }}\"\n [disabled]=\"!twoFactorForm.form.valid || isLoading\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n >\n {{ 'Verify' | translate }}\n </button>\n\n <div class=\"d-flex m-t-8\">\n <button\n type=\"button\"\n title=\"{{ 'Send new code' | translate }}\"\n [ngClass]=\"{ disabled: isLoading }\"\n class=\"small pointer m-r-auto\"\n (click)=\"resendTFASms()\"\n >\n {{ 'Send new code' | translate }}\n </button>\n <button\n type=\"button\"\n title=\"{{ 'Log in' | translate }}\"\n class=\"btn btn-link btn-sm\"\n (click)=\"onCancel.emit()\"\n >\n {{ 'Log in' | translate }}\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i6.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i7.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i9.C8yTranslatePipe, name: "translate" }] });
109
+ SmsChallengeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SmsChallengeComponent, selector: "c8y-sms-challenge", inputs: { credentials: "credentials" }, outputs: { onCancel: "onCancel" }, ngImport: i0, template: "<form #twoFactorForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"verifyTFACode()\" novalidate>\n <div class=\"legend form-block center\" translate>Two-factor authentication</div>\n\n <c8y-form-group>\n <label translate>Verification code</label>\n <input\n [(ngModel)]=\"model.smsToken\"\n #sms_token=\"ngModel\"\n type=\"text\"\n name=\"sms_token\"\n autofocus\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 624327\"\n required\n />\n <p *ngIf=\"!twoFactorForm.form.valid || isLoading\" class=\"help-block\" translate>\n Insert the code received via SMS.\n </p>\n </c8y-form-group>\n\n <button\n title=\"{{ 'Verify' | translate }}\"\n [disabled]=\"!twoFactorForm.form.valid || isLoading\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n >\n {{ 'Verify' | translate }}\n </button>\n\n <div class=\"d-flex m-t-8\">\n <button\n type=\"button\"\n title=\"{{ 'Send new code' | translate }}\"\n [ngClass]=\"{ disabled: isLoading }\"\n class=\"btn btn-link btn-sm\"\n (click)=\"resendTFASms()\"\n >\n {{ 'Send new code' | translate }}\n </button>\n <button\n type=\"button\"\n title=\"{{ 'Log in' | translate }}\"\n class=\"btn btn-link btn-sm\"\n (click)=\"onCancel.emit()\"\n >\n {{ 'Log in' | translate }}\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i6.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i7.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i9.C8yTranslatePipe, name: "translate" }] });
110
110
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SmsChallengeComponent, decorators: [{
111
111
  type: Component,
112
- args: [{ selector: 'c8y-sms-challenge', template: "<form #twoFactorForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"verifyTFACode()\" novalidate>\n <div class=\"legend form-block center\" translate>Two-factor authentication</div>\n\n <c8y-form-group>\n <label translate>Verification code</label>\n <input\n [(ngModel)]=\"model.smsToken\"\n #sms_token=\"ngModel\"\n type=\"text\"\n name=\"sms_token\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 624327\"\n required\n />\n <p *ngIf=\"!twoFactorForm.form.valid || isLoading\" class=\"help-block\" translate>\n Insert the code received via SMS.\n </p>\n </c8y-form-group>\n\n <button\n title=\"{{ 'Verify' | translate }}\"\n [disabled]=\"!twoFactorForm.form.valid || isLoading\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n >\n {{ 'Verify' | translate }}\n </button>\n\n <div class=\"d-flex m-t-8\">\n <button\n type=\"button\"\n title=\"{{ 'Send new code' | translate }}\"\n [ngClass]=\"{ disabled: isLoading }\"\n class=\"small pointer m-r-auto\"\n (click)=\"resendTFASms()\"\n >\n {{ 'Send new code' | translate }}\n </button>\n <button\n type=\"button\"\n title=\"{{ 'Log in' | translate }}\"\n class=\"btn btn-link btn-sm\"\n (click)=\"onCancel.emit()\"\n >\n {{ 'Log in' | translate }}\n </button>\n </div>\n</form>\n" }]
112
+ args: [{ selector: 'c8y-sms-challenge', template: "<form #twoFactorForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"verifyTFACode()\" novalidate>\n <div class=\"legend form-block center\" translate>Two-factor authentication</div>\n\n <c8y-form-group>\n <label translate>Verification code</label>\n <input\n [(ngModel)]=\"model.smsToken\"\n #sms_token=\"ngModel\"\n type=\"text\"\n name=\"sms_token\"\n autofocus\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 624327\"\n required\n />\n <p *ngIf=\"!twoFactorForm.form.valid || isLoading\" class=\"help-block\" translate>\n Insert the code received via SMS.\n </p>\n </c8y-form-group>\n\n <button\n title=\"{{ 'Verify' | translate }}\"\n [disabled]=\"!twoFactorForm.form.valid || isLoading\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n >\n {{ 'Verify' | translate }}\n </button>\n\n <div class=\"d-flex m-t-8\">\n <button\n type=\"button\"\n title=\"{{ 'Send new code' | translate }}\"\n [ngClass]=\"{ disabled: isLoading }\"\n class=\"btn btn-link btn-sm\"\n (click)=\"resendTFASms()\"\n >\n {{ 'Send new code' | translate }}\n </button>\n <button\n type=\"button\"\n title=\"{{ 'Log in' | translate }}\"\n class=\"btn btn-link btn-sm\"\n (click)=\"onCancel.emit()\"\n >\n {{ 'Log in' | translate }}\n </button>\n </div>\n</form>\n" }]
113
113
  }], ctorParameters: function () { return [{ type: i1.LoginService }, { type: i2.UserService }, { type: i3.AlertService }]; }, propDecorators: { credentials: [{
114
114
  type: Input
115
115
  }], onCancel: [{
116
116
  type: Output
117
117
  }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21zLWNoYWxsZW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2F1dGhlbnRpY2F0aW9uL3Ntcy1jaGFsbGVuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vY29yZS9hdXRoZW50aWNhdGlvbi9zbXMtY2hhbGxlbmdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBZ0IsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7O0FBTzFDLE1BQU0sT0FBTyxxQkFBcUI7SUFXaEMsWUFDUyxZQUEwQixFQUN6QixLQUFrQixFQUNsQixLQUFtQjtRQUZwQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN6QixVQUFLLEdBQUwsS0FBSyxDQUFhO1FBQ2xCLFVBQUssR0FBTCxLQUFLLENBQWM7UUFabkIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFeEMsVUFBSyxHQUFHO1lBQ04sUUFBUSxFQUFFLEVBQUU7U0FDYixDQUFDO1FBQ0YsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVWLGNBQVMsR0FBVyxHQUFHLENBQUM7SUFNN0IsQ0FBQztJQUVKLEtBQUssQ0FBQyxhQUFhO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksTUFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtZQUNsQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1NB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Q0FBQyxZQUFZLENBQUMsUUFBUTtRQUNqQyxJQUFJO1lBQ0YsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQztZQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUN6RCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFO2dCQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7YUFDeEQ7U0FDRjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNoQztJQUNILENBQUM7O2tIQTlGVSxxQkFBcUI7c0dBQXJCLHFCQUFxQixvSUNYbEMsbzdDQWlEQTsyRkR0Q2EscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQjt3SkFLcEIsV0FBVztzQkFBbkIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlLCBJQ3JlZGVudGlhbHMgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJy4uL2kxOG4vZ2V0dGV4dCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1zbXMtY2hhbGxlbmdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Ntcy1jaGFsbGVuZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIFNtc0NoYWxsZW5nZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNyZWRlbnRpYWxzOiBJQ3JlZGVudGlhbHM7XG4gIEBPdXRwdXQoKSBvbkNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBtb2RlbCA9IHtcbiAgICBzbXNUb2tlbjogJydcbiAgfTtcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZXNlbmRUZmE6IHN0cmluZyA9ICcwJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbG9naW5TZXJ2aWNlOiBMb2dpblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyczogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyB2ZXJpZnlURkFDb2RlKCkge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICBpZiAoYXdhaXQgdGhpcy51c2VzT0F1dGhJbnRlcm5hbCgpKSB7XG4gICAgICBhd2FpdCB0aGlzLnZlcmlmeUNvZGVXaXRoT2F1dGgoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy52ZXJpZnlDb2RlV2l0aEJhc2ljQXV0aCgpO1xuICAgIH1cbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgcmVzZW5kVEZBU21zKCkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICBhd2FpdCB0aGlzLnVzZXJzLnZlcmlmeVRGQUNvZGUodGhpcy5yZXNlbmRUZmEpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlLnJlcy5zdGF0dXMgPT09IDQwMykge1xuICAgICAgICB0aGlzLmxvZ2luU2VydmljZS5jbGVhbk1lc3NhZ2VzKCk7XG4gICAgICAgIHRoaXMubG9naW5TZXJ2aWNlLmFkZFN1Y2Nlc3NNZXNzYWdlKCdyZXNlbmRfc21zJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZSk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1c2VzT0F1dGhJbnRlcm5hbCgpIHtcbiAgICByZXR1cm4gdGhpcy5sb2dpblNlcnZpY2UuaXNQYXNzd29yZEdyYW50TG9naW4odGhpcy5jcmVkZW50aWFscyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHZlcmlmeUNvZGVXaXRoT2F1dGgoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgY3JlZGVudGlhbHMgfSA9IHRoaXM7XG4gICAgICBhd2FpdCB0aGlzLmxvZ2luU2VydmljZS5zd2l0Y2hMb2dpbk1vZGUoeyAuLi5jcmVkZW50aWFscywgdGZhOiB0aGlzLm1vZGVsLnNtc1Rva2VuIH0pO1xuICAgICAgYXdhaXQgdGhpcy5sb2dpblNlcnZpY2UudmVyaWZ5QXBwQWNjZXNzKCk7XG4gICAgICBhd2FpdCB0aGlzLmxvZ2luU2VydmljZS5hdXRoRnVsZmlsbGVkKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc3QgcmVzU3RhdHVzID0gZS5yZXMgJiYgZS5yZXMuc3RhdHVzO1xuICAgICAgaWYgKHJlc1N0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgIC8vIGl0IGlzIGFzc3VtZWQgdGhhdCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgYXJlIGNvcnJlY3Qgc28gaXQgbXVzdCBiZSB0aGUgdGZhIGNvZGVcbiAgICAgICAgdGhpcy5hbGVydC5kYW5nZXIoZ2V0dGV4dCgnSW52YWxpZCBjb2RlJykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdmVyaWZ5Q29kZVdpdGhCYXNpY0F1dGgoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgcmVzIH0gPSBhd2FpdCB0aGlzLnVzZXJzLnZlcmlmeVRGQUNvZGUodGhpcy5tb2RlbC5zbXNUb2tlbik7XG4gICAgICBjb25zdCB0ZmFUb2tlbiA9IHJlcy5oZWFkZXJzLmdldCgndGZhdG9rZW4nKTtcbiAgICAgIHRoaXMuY3JlZGVudGlhbHMudGZhID0gdGZhVG9rZW47XG4gICAgICBhd2FpdCB0aGlzLmxvZ2luV2l0aFRGQSh0ZmFUb2tlbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc3QgcmVzU3RhdHVzID0gZS5yZXMgJiYgZS5yZXMuc3RhdHVzO1xuICAgICAgLy8gQkUgcmV0dXJucyA0MDMgaW4gY2FzZSBvZiBpbnZhbGlkIHRmYSBjb2RlXG4gICAgICBpZiAocmVzU3RhdHVzID09PSA0MDMpIHtcbiAgICAgICAgdGhpcy5hbGVydC5kYW5nZXIoZ2V0dGV4dCgnSW52YWxpZCBjb2RlJykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9naW5XaXRoVEZBKHRmYVRva2VuKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMubG9naW5TZXJ2aWNlLmxvZ2luKFxuICAgICAgICB0aGlzLmxvZ2luU2VydmljZS51c2VCYXNpY0F1dGgoeyB0ZmE6IHRmYVRva2VuIH0pLFxuICAgICAgICB0aGlzLmNyZWRlbnRpYWxzXG4gICAgICApO1xuICAgICAgdGhpcy5sb2dpblNlcnZpY2Uuc2F2ZVRGQVRva2VuKHRmYVRva2VuLCBzZXNzaW9uU3RvcmFnZSk7XG4gICAgICBpZiAodGhpcy5sb2dpblNlcnZpY2UucmVtZW1iZXJNZSkge1xuICAgICAgICB0aGlzLmxvZ2luU2VydmljZS5zYXZlVEZBVG9rZW4odGZhVG9rZW4sIGxvY2FsU3RvcmFnZSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGUpO1xuICAgIH1cbiAgfVxufVxuIiwiPGZvcm0gI3R3b0ZhY3RvckZvcm09XCJuZ0Zvcm1cIiBjbGFzcz1cImxvZ2luRm9ybVwiIChuZ1N1Ym1pdCk9XCJ2ZXJpZnlURkFDb2RlKClcIiBub3ZhbGlkYXRlPlxuICA8ZGl2IGNsYXNzPVwibGVnZW5kIGZvcm0tYmxvY2sgY2VudGVyXCIgdHJhbnNsYXRlPlR3by1mYWN0b3IgYXV0aGVudGljYXRpb248L2Rpdj5cblxuICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgPGxhYmVsIHRyYW5zbGF0ZT5WZXJpZmljYXRpb24gY29kZTwvbGFiZWw+XG4gICAgPGlucHV0XG4gICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLnNtc1Rva2VuXCJcbiAgICAgICNzbXNfdG9rZW49XCJuZ01vZGVsXCJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIG5hbWU9XCJzbXNfdG9rZW5cIlxuICAgICAgYXV0b2NhcGl0YWxpemU9XCJvZmZcIlxuICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZS5nLicgfCB0cmFuc2xhdGUgfX0gNjI0MzI3XCJcbiAgICAgIHJlcXVpcmVkXG4gICAgLz5cbiAgICA8cCAqbmdJZj1cIiF0d29GYWN0b3JGb3JtLmZvcm0udmFsaWQgfHwgaXNMb2FkaW5nXCIgY2xhc3M9XCJoZWxwLWJsb2NrXCIgdHJhbnNsYXRlPlxuICAgICAgSW5zZXJ0IHRoZSBjb2RlIHJlY2VpdmVkIHZpYSBTTVMuXG4gICAgPC9wPlxuICA8L2M4eS1mb3JtLWdyb3VwPlxuXG4gIDxidXR0b25cbiAgICB0aXRsZT1cInt7ICdWZXJpZnknIHwgdHJhbnNsYXRlIH19XCJcbiAgICBbZGlzYWJsZWRdPVwiIXR3b0ZhY3RvckZvcm0uZm9ybS52YWxpZCB8fCBpc0xvYWRpbmdcIlxuICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1sZyBidG4tYmxvY2sgZm9ybS1ncm91cFwiXG4gID5cbiAgICB7eyAnVmVyaWZ5JyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cblxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG0tdC04XCI+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICB0aXRsZT1cInt7ICdTZW5kIG5ldyBjb2RlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBpc0xvYWRpbmcgfVwiXG4gICAgICBjbGFzcz1cInNtYWxsIHBvaW50ZXIgbS1yLWF1dG9cIlxuICAgICAgKGNsaWNrKT1cInJlc2VuZFRGQVNtcygpXCJcbiAgICA+XG4gICAgICB7eyAnU2VuZCBuZXcgY29kZScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIHRpdGxlPVwie3sgJ0xvZyBpbicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgYnRuLXNtXCJcbiAgICAgIChjbGljayk9XCJvbkNhbmNlbC5lbWl0KClcIlxuICAgID5cbiAgICAgIHt7ICdMb2cgaW4nIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21zLWNoYWxsZW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2F1dGhlbnRpY2F0aW9uL3Ntcy1jaGFsbGVuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vY29yZS9hdXRoZW50aWNhdGlvbi9zbXMtY2hhbGxlbmdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBZ0IsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7O0FBTzFDLE1BQU0sT0FBTyxxQkFBcUI7SUFXaEMsWUFDUyxZQUEwQixFQUN6QixLQUFrQixFQUNsQixLQUFtQjtRQUZwQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN6QixVQUFLLEdBQUwsS0FBSyxDQUFhO1FBQ2xCLFVBQUssR0FBTCxLQUFLLENBQWM7UUFabkIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFeEMsVUFBSyxHQUFHO1lBQ04sUUFBUSxFQUFFLEVBQUU7U0FDYixDQUFDO1FBQ0YsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVWLGNBQVMsR0FBVyxHQUFHLENBQUM7SUFNN0IsQ0FBQztJQUVKLEtBQUssQ0FBQyxhQUFhO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksTUFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtZQUNsQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1NB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Q0FBQyxZQUFZLENBQUMsUUFBUTtRQUNqQyxJQUFJO1lBQ0YsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQztZQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUN6RCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFO2dCQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7YUFDeEQ7U0FDRjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNoQztJQUNILENBQUM7O2tIQTlGVSxxQkFBcUI7c0dBQXJCLHFCQUFxQixvSUNYbEMsazhDQWtEQTsyRkR2Q2EscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQjt3SkFLcEIsV0FBVztzQkFBbkIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlLCBJQ3JlZGVudGlhbHMgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJy4uL2kxOG4vZ2V0dGV4dCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1zbXMtY2hhbGxlbmdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Ntcy1jaGFsbGVuZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIFNtc0NoYWxsZW5nZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNyZWRlbnRpYWxzOiBJQ3JlZGVudGlhbHM7XG4gIEBPdXRwdXQoKSBvbkNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBtb2RlbCA9IHtcbiAgICBzbXNUb2tlbjogJydcbiAgfTtcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZXNlbmRUZmE6IHN0cmluZyA9ICcwJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbG9naW5TZXJ2aWNlOiBMb2dpblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyczogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyB2ZXJpZnlURkFDb2RlKCkge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICBpZiAoYXdhaXQgdGhpcy51c2VzT0F1dGhJbnRlcm5hbCgpKSB7XG4gICAgICBhd2FpdCB0aGlzLnZlcmlmeUNvZGVXaXRoT2F1dGgoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy52ZXJpZnlDb2RlV2l0aEJhc2ljQXV0aCgpO1xuICAgIH1cbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgcmVzZW5kVEZBU21zKCkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICBhd2FpdCB0aGlzLnVzZXJzLnZlcmlmeVRGQUNvZGUodGhpcy5yZXNlbmRUZmEpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlLnJlcy5zdGF0dXMgPT09IDQwMykge1xuICAgICAgICB0aGlzLmxvZ2luU2VydmljZS5jbGVhbk1lc3NhZ2VzKCk7XG4gICAgICAgIHRoaXMubG9naW5TZXJ2aWNlLmFkZFN1Y2Nlc3NNZXNzYWdlKCdyZXNlbmRfc21zJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZSk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1c2VzT0F1dGhJbnRlcm5hbCgpIHtcbiAgICByZXR1cm4gdGhpcy5sb2dpblNlcnZpY2UuaXNQYXNzd29yZEdyYW50TG9naW4odGhpcy5jcmVkZW50aWFscyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHZlcmlmeUNvZGVXaXRoT2F1dGgoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgY3JlZGVudGlhbHMgfSA9IHRoaXM7XG4gICAgICBhd2FpdCB0aGlzLmxvZ2luU2VydmljZS5zd2l0Y2hMb2dpbk1vZGUoeyAuLi5jcmVkZW50aWFscywgdGZhOiB0aGlzLm1vZGVsLnNtc1Rva2VuIH0pO1xuICAgICAgYXdhaXQgdGhpcy5sb2dpblNlcnZpY2UudmVyaWZ5QXBwQWNjZXNzKCk7XG4gICAgICBhd2FpdCB0aGlzLmxvZ2luU2VydmljZS5hdXRoRnVsZmlsbGVkKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc3QgcmVzU3RhdHVzID0gZS5yZXMgJiYgZS5yZXMuc3RhdHVzO1xuICAgICAgaWYgKHJlc1N0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgIC8vIGl0IGlzIGFzc3VtZWQgdGhhdCB0aGUgdXNlciBhbmQgcGFzc3dvcmQgYXJlIGNvcnJlY3Qgc28gaXQgbXVzdCBiZSB0aGUgdGZhIGNvZGVcbiAgICAgICAgdGhpcy5hbGVydC5kYW5nZXIoZ2V0dGV4dCgnSW52YWxpZCBjb2RlJykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdmVyaWZ5Q29kZVdpdGhCYXNpY0F1dGgoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgcmVzIH0gPSBhd2FpdCB0aGlzLnVzZXJzLnZlcmlmeVRGQUNvZGUodGhpcy5tb2RlbC5zbXNUb2tlbik7XG4gICAgICBjb25zdCB0ZmFUb2tlbiA9IHJlcy5oZWFkZXJzLmdldCgndGZhdG9rZW4nKTtcbiAgICAgIHRoaXMuY3JlZGVudGlhbHMudGZhID0gdGZhVG9rZW47XG4gICAgICBhd2FpdCB0aGlzLmxvZ2luV2l0aFRGQSh0ZmFUb2tlbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc3QgcmVzU3RhdHVzID0gZS5yZXMgJiYgZS5yZXMuc3RhdHVzO1xuICAgICAgLy8gQkUgcmV0dXJucyA0MDMgaW4gY2FzZSBvZiBpbnZhbGlkIHRmYSBjb2RlXG4gICAgICBpZiAocmVzU3RhdHVzID09PSA0MDMpIHtcbiAgICAgICAgdGhpcy5hbGVydC5kYW5nZXIoZ2V0dGV4dCgnSW52YWxpZCBjb2RlJykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9naW5XaXRoVEZBKHRmYVRva2VuKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMubG9naW5TZXJ2aWNlLmxvZ2luKFxuICAgICAgICB0aGlzLmxvZ2luU2VydmljZS51c2VCYXNpY0F1dGgoeyB0ZmE6IHRmYVRva2VuIH0pLFxuICAgICAgICB0aGlzLmNyZWRlbnRpYWxzXG4gICAgICApO1xuICAgICAgdGhpcy5sb2dpblNlcnZpY2Uuc2F2ZVRGQVRva2VuKHRmYVRva2VuLCBzZXNzaW9uU3RvcmFnZSk7XG4gICAgICBpZiAodGhpcy5sb2dpblNlcnZpY2UucmVtZW1iZXJNZSkge1xuICAgICAgICB0aGlzLmxvZ2luU2VydmljZS5zYXZlVEZBVG9rZW4odGZhVG9rZW4sIGxvY2FsU3RvcmFnZSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGUpO1xuICAgIH1cbiAgfVxufVxuIiwiPGZvcm0gI3R3b0ZhY3RvckZvcm09XCJuZ0Zvcm1cIiBjbGFzcz1cImxvZ2luRm9ybVwiIChuZ1N1Ym1pdCk9XCJ2ZXJpZnlURkFDb2RlKClcIiBub3ZhbGlkYXRlPlxuICA8ZGl2IGNsYXNzPVwibGVnZW5kIGZvcm0tYmxvY2sgY2VudGVyXCIgdHJhbnNsYXRlPlR3by1mYWN0b3IgYXV0aGVudGljYXRpb248L2Rpdj5cblxuICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgPGxhYmVsIHRyYW5zbGF0ZT5WZXJpZmljYXRpb24gY29kZTwvbGFiZWw+XG4gICAgPGlucHV0XG4gICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLnNtc1Rva2VuXCJcbiAgICAgICNzbXNfdG9rZW49XCJuZ01vZGVsXCJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIG5hbWU9XCJzbXNfdG9rZW5cIlxuICAgICAgYXV0b2ZvY3VzXG4gICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXG4gICAgICBhdXRvY29ycmVjdD1cIm9mZlwiXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuJyB8IHRyYW5zbGF0ZSB9fSA2MjQzMjdcIlxuICAgICAgcmVxdWlyZWRcbiAgICAvPlxuICAgIDxwICpuZ0lmPVwiIXR3b0ZhY3RvckZvcm0uZm9ybS52YWxpZCB8fCBpc0xvYWRpbmdcIiBjbGFzcz1cImhlbHAtYmxvY2tcIiB0cmFuc2xhdGU+XG4gICAgICBJbnNlcnQgdGhlIGNvZGUgcmVjZWl2ZWQgdmlhIFNNUy5cbiAgICA8L3A+XG4gIDwvYzh5LWZvcm0tZ3JvdXA+XG5cbiAgPGJ1dHRvblxuICAgIHRpdGxlPVwie3sgJ1ZlcmlmeScgfCB0cmFuc2xhdGUgfX1cIlxuICAgIFtkaXNhYmxlZF09XCIhdHdvRmFjdG9yRm9ybS5mb3JtLnZhbGlkIHx8IGlzTG9hZGluZ1wiXG4gICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLWxnIGJ0bi1ibG9jayBmb3JtLWdyb3VwXCJcbiAgPlxuICAgIHt7ICdWZXJpZnknIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggbS10LThcIj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIHRpdGxlPVwie3sgJ1NlbmQgbmV3IGNvZGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGlzTG9hZGluZyB9XCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIGJ0bi1zbVwiXG4gICAgICAoY2xpY2spPVwicmVzZW5kVEZBU21zKClcIlxuICAgID5cbiAgICAgIHt7ICdTZW5kIG5ldyBjb2RlJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgdGl0bGU9XCJ7eyAnTG9nIGluJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICBjbGFzcz1cImJ0biBidG4tbGluayBidG4tc21cIlxuICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsLmVtaXQoKVwiXG4gICAgPlxuICAgICAge3sgJ0xvZyBpbicgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
@@ -59,10 +59,10 @@ export class TotpChallengeComponent {
59
59
  }
60
60
  }
61
61
  TotpChallengeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TotpChallengeComponent, deps: [{ token: i1.LoginService }, { token: i2.UserService }, { token: i3.AlertService }], target: i0.ɵɵFactoryTarget.Component });
62
- TotpChallengeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: TotpChallengeComponent, selector: "c8y-totp-challenge", inputs: { verify: "verify", loading: "loading", hasError: "hasError" }, outputs: { onSuccess: "onSuccess", totpUnconfirmedEmitter: "totpUnconfirmedEmitter" }, viewQueries: [{ propertyName: "modal", first: true, predicate: ["modal"], descendants: true }], ngImport: i0, template: "<form #totpForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"verifyCode()\" novalidate>\n <div class=\"d-block p-24 p-b-0\">\n <c8y-form-group\n [hasError]=\"hasError\"\n [novalidation]=\"true\"\n [ngClass]=\"hasError ? 'p-b-24' : ''\"\n >\n <label translate for=\"totpToken\">Verification code</label>\n\n <input\n id=\"totpToken\"\n [(ngModel)]=\"model.token\"\n name=\"totpToken\"\n type=\"text\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n autocomplete=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 624327\"\n required\n />\n\n <c8y-messages>\n <c8y-message *ngIf=\"hasError\" translate>\n Invalid verification code. In case of key loss, contact your platform administrator.\n </c8y-message>\n </c8y-messages>\n <p id=\"helpinput\" *ngIf=\"!hasError\" class=\"help-block\" translate>\n In case of key loss, please contact your platform administrator.\n </p>\n </c8y-form-group>\n </div>\n <div class=\"modal-footer separator-top bg-level-0 sticky-bottom p-b-0\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n *ngIf=\"!loading\"\n title=\"{{ 'Verify' | translate }}\"\n [disabled]=\"!totpForm.form.valid\"\n type=\"submit\"\n class=\"btn btn-primary\"\n >\n {{ 'Verify' | translate }}\n </button>\n\n <button\n *ngIf=\"loading\"\n title=\"{{ 'Verifying\u2026' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary btn-pending\"\n >\n {{ 'Verifying\u2026' | translate }}\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i6.MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: i7.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults"] }, { kind: "directive", type: i8.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i9.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i11.C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] });
62
+ TotpChallengeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: TotpChallengeComponent, selector: "c8y-totp-challenge", inputs: { verify: "verify", loading: "loading", hasError: "hasError" }, outputs: { onSuccess: "onSuccess", totpUnconfirmedEmitter: "totpUnconfirmedEmitter" }, viewQueries: [{ propertyName: "modal", first: true, predicate: ["modal"], descendants: true }], ngImport: i0, template: "<form #totpForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"verifyCode()\" novalidate>\n <div class=\"d-block p-24 p-b-0\">\n <c8y-form-group\n [hasError]=\"hasError\"\n [novalidation]=\"true\"\n [ngClass]=\"hasError ? 'p-b-24' : ''\"\n >\n <label translate for=\"totpToken\">Verification code</label>\n\n <input\n id=\"totpToken\"\n [(ngModel)]=\"model.token\"\n name=\"totpToken\"\n type=\"text\"\n autofocus\n autocapitalize=\"off\"\n autocorrect=\"off\"\n autocomplete=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 624327\"\n required\n />\n\n <c8y-messages>\n <c8y-message *ngIf=\"hasError\" translate>\n Invalid verification code. In case of key loss, contact your platform administrator.\n </c8y-message>\n </c8y-messages>\n <p id=\"helpinput\" *ngIf=\"!hasError\" class=\"help-block\" translate>\n In case of key loss, please contact your platform administrator.\n </p>\n </c8y-form-group>\n </div>\n <div class=\"modal-footer separator-top bg-level-0 sticky-bottom p-b-0\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n *ngIf=\"!loading\"\n title=\"{{ 'Verify' | translate }}\"\n [disabled]=\"!totpForm.form.valid\"\n type=\"submit\"\n class=\"btn btn-primary\"\n >\n {{ 'Verify' | translate }}\n </button>\n\n <button\n *ngIf=\"loading\"\n title=\"{{ 'Verifying\u2026' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary btn-pending\"\n >\n {{ 'Verifying\u2026' | translate }}\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i6.MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: i7.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults"] }, { kind: "directive", type: i8.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i9.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i11.C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] });
63
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TotpChallengeComponent, decorators: [{
64
64
  type: Component,
65
- args: [{ selector: 'c8y-totp-challenge', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<form #totpForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"verifyCode()\" novalidate>\n <div class=\"d-block p-24 p-b-0\">\n <c8y-form-group\n [hasError]=\"hasError\"\n [novalidation]=\"true\"\n [ngClass]=\"hasError ? 'p-b-24' : ''\"\n >\n <label translate for=\"totpToken\">Verification code</label>\n\n <input\n id=\"totpToken\"\n [(ngModel)]=\"model.token\"\n name=\"totpToken\"\n type=\"text\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n autocomplete=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 624327\"\n required\n />\n\n <c8y-messages>\n <c8y-message *ngIf=\"hasError\" translate>\n Invalid verification code. In case of key loss, contact your platform administrator.\n </c8y-message>\n </c8y-messages>\n <p id=\"helpinput\" *ngIf=\"!hasError\" class=\"help-block\" translate>\n In case of key loss, please contact your platform administrator.\n </p>\n </c8y-form-group>\n </div>\n <div class=\"modal-footer separator-top bg-level-0 sticky-bottom p-b-0\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n *ngIf=\"!loading\"\n title=\"{{ 'Verify' | translate }}\"\n [disabled]=\"!totpForm.form.valid\"\n type=\"submit\"\n class=\"btn btn-primary\"\n >\n {{ 'Verify' | translate }}\n </button>\n\n <button\n *ngIf=\"loading\"\n title=\"{{ 'Verifying\u2026' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary btn-pending\"\n >\n {{ 'Verifying\u2026' | translate }}\n </button>\n </div>\n</form>\n" }]
65
+ args: [{ selector: 'c8y-totp-challenge', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<form #totpForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"verifyCode()\" novalidate>\n <div class=\"d-block p-24 p-b-0\">\n <c8y-form-group\n [hasError]=\"hasError\"\n [novalidation]=\"true\"\n [ngClass]=\"hasError ? 'p-b-24' : ''\"\n >\n <label translate for=\"totpToken\">Verification code</label>\n\n <input\n id=\"totpToken\"\n [(ngModel)]=\"model.token\"\n name=\"totpToken\"\n type=\"text\"\n autofocus\n autocapitalize=\"off\"\n autocorrect=\"off\"\n autocomplete=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 624327\"\n required\n />\n\n <c8y-messages>\n <c8y-message *ngIf=\"hasError\" translate>\n Invalid verification code. In case of key loss, contact your platform administrator.\n </c8y-message>\n </c8y-messages>\n <p id=\"helpinput\" *ngIf=\"!hasError\" class=\"help-block\" translate>\n In case of key loss, please contact your platform administrator.\n </p>\n </c8y-form-group>\n </div>\n <div class=\"modal-footer separator-top bg-level-0 sticky-bottom p-b-0\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n *ngIf=\"!loading\"\n title=\"{{ 'Verify' | translate }}\"\n [disabled]=\"!totpForm.form.valid\"\n type=\"submit\"\n class=\"btn btn-primary\"\n >\n {{ 'Verify' | translate }}\n </button>\n\n <button\n *ngIf=\"loading\"\n title=\"{{ 'Verifying\u2026' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary btn-pending\"\n >\n {{ 'Verifying\u2026' | translate }}\n </button>\n </div>\n</form>\n" }]
66
66
  }], ctorParameters: function () { return [{ type: i1.LoginService }, { type: i2.UserService }, { type: i3.AlertService }]; }, propDecorators: { verify: [{
67
67
  type: Input
68
68
  }], onSuccess: [{
@@ -77,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
77
77
  type: ViewChild,
78
78
  args: ['modal', { static: false }]
79
79
  }] } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90cC1jaGFsbGVuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9hdXRoZW50aWNhdGlvbi90b3RwLWNoYWxsZW5nZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2F1dGhlbnRpY2F0aW9uL3RvdHAtY2hhbGxlbmdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBTzFELE1BQU0sT0FBTyxzQkFBc0I7SUFvQmpDLFlBQ1MsWUFBMEIsRUFDekIsS0FBa0IsRUFDbEIsS0FBbUI7UUFGcEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDekIsVUFBSyxHQUFMLEtBQUssQ0FBYTtRQUNsQixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBdEI3Qjs7V0FFRztRQUNNLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDdkI7O1dBRUc7UUFDTyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6Qzs7V0FFRztRQUNPLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0MsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCLFVBQUssR0FBRztZQUNOLEtBQUssRUFBRSxFQUFFO1NBQ1YsQ0FBQztJQU9DLENBQUM7SUFFSixLQUFLLENBQUMsVUFBVTtRQUNkLElBQUk7WUFDRixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN0QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2YsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ25EO1lBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2QztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckMsQ0FBQzs7bUhBM0NVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLHlUQ1puQyxvekRBNkRBLGdsRURuRGlCLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDOzJGQUV4RCxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9CLGlCQUVmLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO3dKQU0xRCxNQUFNO3NCQUFkLEtBQUs7Z0JBSUksU0FBUztzQkFBbEIsTUFBTTtnQkFJRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0UsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSXlDLEtBQUs7c0JBQW5ELFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi9hbGVydC9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kYWwvbW9kYWwuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXRvdHAtY2hhbGxlbmdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvdHAtY2hhbGxlbmdlLmNvbXBvbmVudC5odG1sJyxcbiAgdmlld1Byb3ZpZGVyczogW3sgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybSB9XVxufSlcbmV4cG9ydCBjbGFzcyBUb3RwQ2hhbGxlbmdlQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIENhbGxzIHRoZSB2ZXJpZnkgZW5kcG9pbnQgaWYgc2V0IHRvIHRydWUgKGRlZmF1bHQgdHJ1ZSlcbiAgICovXG4gIEBJbnB1dCgpIHZlcmlmeSA9IHRydWU7XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgdG9rZW4gb24gc3VjY2Vzcy5cbiAgICovXG4gIEBPdXRwdXQoKSBvblN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8qKlxuICAgKiBFbWl0cyBpZiBzZXQgdXAgdHdvLWZhY3RvciBhdXRoZW50aWNhdGlvbiBpcyBjYW5jZWxlZC5cbiAgICovXG4gIEBPdXRwdXQoKSB0b3RwVW5jb25maXJtZWRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhhc0Vycm9yID0gZmFsc2U7XG4gIG1vZGVsID0ge1xuICAgIHRva2VuOiAnJ1xuICB9O1xuICBAVmlld0NoaWxkKCdtb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwcml2YXRlIG1vZGFsOiBNb2RhbENvbXBvbmVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbG9naW5TZXJ2aWNlOiBMb2dpblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyczogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyB2ZXJpZnlDb2RlKCkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5oYXNFcnJvciA9IGZhbHNlO1xuICAgICAgaWYgKHRoaXMudmVyaWZ5KSB7XG4gICAgICAgIGF3YWl0IHRoaXMudXNlcnMudmVyaWZ5VG90cENvZGUodGhpcy5tb2RlbC50b2tlbik7XG4gICAgICB9XG4gICAgICB0aGlzLm9uU3VjY2Vzcy5lbWl0KHRoaXMubW9kZWwudG9rZW4pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xuICAgICAgdGhpcy5hbGVydC5yZW1vdmVMYXN0RGFuZ2VyKCk7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy50b3RwVW5jb25maXJtZWRFbWl0dGVyLmVtaXQoKTtcbiAgfVxufVxuIiwiPGZvcm0gI3RvdHBGb3JtPVwibmdGb3JtXCIgY2xhc3M9XCJsb2dpbkZvcm1cIiAobmdTdWJtaXQpPVwidmVyaWZ5Q29kZSgpXCIgbm92YWxpZGF0ZT5cbiAgPGRpdiBjbGFzcz1cImQtYmxvY2sgcC0yNCBwLWItMFwiPlxuICAgIDxjOHktZm9ybS1ncm91cFxuICAgICAgW2hhc0Vycm9yXT1cImhhc0Vycm9yXCJcbiAgICAgIFtub3ZhbGlkYXRpb25dPVwidHJ1ZVwiXG4gICAgICBbbmdDbGFzc109XCJoYXNFcnJvciA/ICdwLWItMjQnIDogJydcIlxuICAgID5cbiAgICAgIDxsYWJlbCB0cmFuc2xhdGUgZm9yPVwidG90cFRva2VuXCI+VmVyaWZpY2F0aW9uIGNvZGU8L2xhYmVsPlxuXG4gICAgICA8aW5wdXRcbiAgICAgICAgaWQ9XCJ0b3RwVG9rZW5cIlxuICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLnRva2VuXCJcbiAgICAgICAgbmFtZT1cInRvdHBUb2tlblwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgYXV0b2NhcGl0YWxpemU9XCJvZmZcIlxuICAgICAgICBhdXRvY29ycmVjdD1cIm9mZlwiXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZS5nLicgfCB0cmFuc2xhdGUgfX0gNjI0MzI3XCJcbiAgICAgICAgcmVxdWlyZWRcbiAgICAgIC8+XG5cbiAgICAgIDxjOHktbWVzc2FnZXM+XG4gICAgICAgIDxjOHktbWVzc2FnZSAqbmdJZj1cImhhc0Vycm9yXCIgdHJhbnNsYXRlPlxuICAgICAgICAgIEludmFsaWQgdmVyaWZpY2F0aW9uIGNvZGUuIEluIGNhc2Ugb2Yga2V5IGxvc3MsIGNvbnRhY3QgeW91ciBwbGF0Zm9ybSBhZG1pbmlzdHJhdG9yLlxuICAgICAgICA8L2M4eS1tZXNzYWdlPlxuICAgICAgPC9jOHktbWVzc2FnZXM+XG4gICAgICA8cCBpZD1cImhlbHBpbnB1dFwiICpuZ0lmPVwiIWhhc0Vycm9yXCIgY2xhc3M9XCJoZWxwLWJsb2NrXCIgdHJhbnNsYXRlPlxuICAgICAgICBJbiBjYXNlIG9mIGtleSBsb3NzLCBwbGVhc2UgY29udGFjdCB5b3VyIHBsYXRmb3JtIGFkbWluaXN0cmF0b3IuXG4gICAgICA8L3A+XG4gICAgPC9jOHktZm9ybS1ncm91cD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXIgc2VwYXJhdG9yLXRvcCBiZy1sZXZlbC0wIHN0aWNreS1ib3R0b20gcC1iLTBcIj5cbiAgICA8YnV0dG9uXG4gICAgICB0aXRsZT1cInt7ICdDYW5jZWwnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICA+XG4gICAgICB7eyAnQ2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwiIWxvYWRpbmdcIlxuICAgICAgdGl0bGU9XCJ7eyAnVmVyaWZ5JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICBbZGlzYWJsZWRdPVwiIXRvdHBGb3JtLmZvcm0udmFsaWRcIlxuICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgPlxuICAgICAge3sgJ1ZlcmlmeScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgICB0aXRsZT1cInt7ICdWZXJpZnlpbmfigKYnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXBlbmRpbmdcIlxuICAgID5cbiAgICAgIHt7ICdWZXJpZnlpbmfigKYnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90cC1jaGFsbGVuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9hdXRoZW50aWNhdGlvbi90b3RwLWNoYWxsZW5nZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2F1dGhlbnRpY2F0aW9uL3RvdHAtY2hhbGxlbmdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBTzFELE1BQU0sT0FBTyxzQkFBc0I7SUFvQmpDLFlBQ1MsWUFBMEIsRUFDekIsS0FBa0IsRUFDbEIsS0FBbUI7UUFGcEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDekIsVUFBSyxHQUFMLEtBQUssQ0FBYTtRQUNsQixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBdEI3Qjs7V0FFRztRQUNNLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDdkI7O1dBRUc7UUFDTyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6Qzs7V0FFRztRQUNPLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0MsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCLFVBQUssR0FBRztZQUNOLEtBQUssRUFBRSxFQUFFO1NBQ1YsQ0FBQztJQU9DLENBQUM7SUFFSixLQUFLLENBQUMsVUFBVTtRQUNkLElBQUk7WUFDRixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN0QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2YsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ25EO1lBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2QztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckMsQ0FBQzs7bUhBM0NVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLHlUQ1puQyx1MERBOERBLGdsRURwRGlCLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDOzJGQUV4RCxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9CLGlCQUVmLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO3dKQU0xRCxNQUFNO3NCQUFkLEtBQUs7Z0JBSUksU0FBUztzQkFBbEIsTUFBTTtnQkFJRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0UsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSXlDLEtBQUs7c0JBQW5ELFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi9hbGVydC9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kYWwvbW9kYWwuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXRvdHAtY2hhbGxlbmdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvdHAtY2hhbGxlbmdlLmNvbXBvbmVudC5odG1sJyxcbiAgdmlld1Byb3ZpZGVyczogW3sgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybSB9XVxufSlcbmV4cG9ydCBjbGFzcyBUb3RwQ2hhbGxlbmdlQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIENhbGxzIHRoZSB2ZXJpZnkgZW5kcG9pbnQgaWYgc2V0IHRvIHRydWUgKGRlZmF1bHQgdHJ1ZSlcbiAgICovXG4gIEBJbnB1dCgpIHZlcmlmeSA9IHRydWU7XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgdG9rZW4gb24gc3VjY2Vzcy5cbiAgICovXG4gIEBPdXRwdXQoKSBvblN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8qKlxuICAgKiBFbWl0cyBpZiBzZXQgdXAgdHdvLWZhY3RvciBhdXRoZW50aWNhdGlvbiBpcyBjYW5jZWxlZC5cbiAgICovXG4gIEBPdXRwdXQoKSB0b3RwVW5jb25maXJtZWRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhhc0Vycm9yID0gZmFsc2U7XG4gIG1vZGVsID0ge1xuICAgIHRva2VuOiAnJ1xuICB9O1xuICBAVmlld0NoaWxkKCdtb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwcml2YXRlIG1vZGFsOiBNb2RhbENvbXBvbmVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbG9naW5TZXJ2aWNlOiBMb2dpblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyczogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyB2ZXJpZnlDb2RlKCkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5oYXNFcnJvciA9IGZhbHNlO1xuICAgICAgaWYgKHRoaXMudmVyaWZ5KSB7XG4gICAgICAgIGF3YWl0IHRoaXMudXNlcnMudmVyaWZ5VG90cENvZGUodGhpcy5tb2RlbC50b2tlbik7XG4gICAgICB9XG4gICAgICB0aGlzLm9uU3VjY2Vzcy5lbWl0KHRoaXMubW9kZWwudG9rZW4pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xuICAgICAgdGhpcy5hbGVydC5yZW1vdmVMYXN0RGFuZ2VyKCk7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy50b3RwVW5jb25maXJtZWRFbWl0dGVyLmVtaXQoKTtcbiAgfVxufVxuIiwiPGZvcm0gI3RvdHBGb3JtPVwibmdGb3JtXCIgY2xhc3M9XCJsb2dpbkZvcm1cIiAobmdTdWJtaXQpPVwidmVyaWZ5Q29kZSgpXCIgbm92YWxpZGF0ZT5cbiAgPGRpdiBjbGFzcz1cImQtYmxvY2sgcC0yNCBwLWItMFwiPlxuICAgIDxjOHktZm9ybS1ncm91cFxuICAgICAgW2hhc0Vycm9yXT1cImhhc0Vycm9yXCJcbiAgICAgIFtub3ZhbGlkYXRpb25dPVwidHJ1ZVwiXG4gICAgICBbbmdDbGFzc109XCJoYXNFcnJvciA/ICdwLWItMjQnIDogJydcIlxuICAgID5cbiAgICAgIDxsYWJlbCB0cmFuc2xhdGUgZm9yPVwidG90cFRva2VuXCI+VmVyaWZpY2F0aW9uIGNvZGU8L2xhYmVsPlxuXG4gICAgICA8aW5wdXRcbiAgICAgICAgaWQ9XCJ0b3RwVG9rZW5cIlxuICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLnRva2VuXCJcbiAgICAgICAgbmFtZT1cInRvdHBUb2tlblwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgYXV0b2ZvY3VzXG4gICAgICAgIGF1dG9jYXBpdGFsaXplPVwib2ZmXCJcbiAgICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2UuZy4nIHwgdHJhbnNsYXRlIH19IDYyNDMyN1wiXG4gICAgICAgIHJlcXVpcmVkXG4gICAgICAvPlxuXG4gICAgICA8Yzh5LW1lc3NhZ2VzPlxuICAgICAgICA8Yzh5LW1lc3NhZ2UgKm5nSWY9XCJoYXNFcnJvclwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICBJbnZhbGlkIHZlcmlmaWNhdGlvbiBjb2RlLiBJbiBjYXNlIG9mIGtleSBsb3NzLCBjb250YWN0IHlvdXIgcGxhdGZvcm0gYWRtaW5pc3RyYXRvci5cbiAgICAgICAgPC9jOHktbWVzc2FnZT5cbiAgICAgIDwvYzh5LW1lc3NhZ2VzPlxuICAgICAgPHAgaWQ9XCJoZWxwaW5wdXRcIiAqbmdJZj1cIiFoYXNFcnJvclwiIGNsYXNzPVwiaGVscC1ibG9ja1wiIHRyYW5zbGF0ZT5cbiAgICAgICAgSW4gY2FzZSBvZiBrZXkgbG9zcywgcGxlYXNlIGNvbnRhY3QgeW91ciBwbGF0Zm9ybSBhZG1pbmlzdHJhdG9yLlxuICAgICAgPC9wPlxuICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyIHNlcGFyYXRvci10b3AgYmctbGV2ZWwtMCBzdGlja3ktYm90dG9tIHAtYi0wXCI+XG4gICAgPGJ1dHRvblxuICAgICAgdGl0bGU9XCJ7eyAnQ2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJjYW5jZWwoKVwiXG4gICAgPlxuICAgICAge3sgJ0NhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cIiFsb2FkaW5nXCJcbiAgICAgIHRpdGxlPVwie3sgJ1ZlcmlmeScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgW2Rpc2FibGVkXT1cIiF0b3RwRm9ybS5mb3JtLnZhbGlkXCJcbiAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgID5cbiAgICAgIHt7ICdWZXJpZnknIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cImxvYWRpbmdcIlxuICAgICAgdGl0bGU9XCJ7eyAnVmVyaWZ5aW5n4oCmJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1wZW5kaW5nXCJcbiAgICA+XG4gICAgICB7eyAnVmVyaWZ5aW5n4oCmJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
@@ -19,11 +19,11 @@ export class BreadcrumbOutletComponent {
19
19
  }
20
20
  }
21
21
  BreadcrumbOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BreadcrumbOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
- BreadcrumbOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: BreadcrumbOutletComponent, selector: "c8y-breadcrumb-outlet", inputs: { breadcrumbs: "breadcrumbs" }, ngImport: i0, template: "<div\n class=\"breadcrumbs-container\"\n [ngClass]=\"{\n multiple: breadcrumbs.length > 1,\n open: showAll\n }\"\n *ngIf=\"breadcrumbs && breadcrumbs.length > 0\"\n>\n <button\n *ngIf=\"breadcrumbs.length > 1\"\n class=\"btn-show-all-breadcrumbs pull-left\"\n (click)=\"showAll = !showAll\"\n >\n <i\n *ngIf=\"!showAll\"\n [c8yIcon]=\"'caret-right'\"\n tooltip=\"{{ 'Show all breadcrumbs' | translate }}\"\n container=\"body\"\n placement=\"top\"\n ></i>\n <i\n *ngIf=\"showAll\"\n [c8yIcon]=\"'caret-down'\"\n tooltip=\"{{ 'Collapse breadcrumbs' | translate }}\"\n container=\"body\"\n placement=\"top\"\n ></i>\n </button>\n\n <ul class=\"breadcrumbs text-muted\" *ngFor=\"let breadcrumb of breadcrumbs; let first = first\">\n <ng-container *ngIf=\"first || showAll\">\n <li class=\"text-muted\" *ngFor=\"let item of breadcrumb.items; let firstItem = first\">\n <span *ngIf=\"!firstItem\">></span>\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: breadcrumb.injector\"\n ></ng-container>\n <ng-container *ngIf=\"item.label && item.path\">\n <a\n [routerLink]=\"normalizePath(item.path)\"\n class=\"word-break\"\n title=\"{{ item.label | translate }}\"\n >\n <i [c8yIcon]=\"item.icon\" *ngIf=\"firstItem\" class=\"m-r-4\"></i>\n <span>{{ item.label | translate }}</span>\n </a>\n </ng-container>\n <ng-container *ngIf=\"item.label && !item.path\">\n <i [c8yIcon]=\"item.icon\" *ngIf=\"firstItem\" class=\"m-r-4\"></i>\n <span title=\"{{ item.label | translate }}\">{{ item.label | translate }}</span>\n </ng-container>\n </li>\n </ng-container>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.OutletDirective, selector: "[c8yOutlet]", inputs: ["c8yOutlet", "c8yOutletProperties", "c8yOutletInjector"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "pipe", type: i6.C8yTranslatePipe, name: "translate" }] });
22
+ BreadcrumbOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: BreadcrumbOutletComponent, selector: "c8y-breadcrumb-outlet", inputs: { breadcrumbs: "breadcrumbs" }, ngImport: i0, template: "<div\n class=\"breadcrumbs-container\"\n [ngClass]=\"{\n multiple: breadcrumbs.length > 1,\n open: showAll\n }\"\n *ngIf=\"breadcrumbs && breadcrumbs.length > 0\"\n>\n <button\n title=\"{{ 'Expand/collapse all breadcrumbs' | translate }}\"\n aria-label=\"{{ 'Expand/collapse all breadcrumbs' | translate }}\"\n *ngIf=\"breadcrumbs.length > 1\"\n class=\"btn-show-all-breadcrumbs pull-left\"\n (click)=\"showAll = !showAll\"\n >\n <i\n *ngIf=\"!showAll\"\n [c8yIcon]=\"'caret-right'\"\n tooltip=\"{{ 'Show all breadcrumbs' | translate }}\"\n container=\"body\"\n placement=\"top\"\n ></i>\n <i\n *ngIf=\"showAll\"\n [c8yIcon]=\"'caret-down'\"\n tooltip=\"{{ 'Expand breadcrumbs' | translate }}\"\n container=\"body\"\n placement=\"top\"\n ></i>\n </button>\n\n <ul class=\"breadcrumbs text-muted\" *ngFor=\"let breadcrumb of breadcrumbs; let first = first\">\n <ng-container *ngIf=\"first || showAll\">\n <li class=\"text-muted\" *ngFor=\"let item of breadcrumb.items; let firstItem = first\">\n <span *ngIf=\"!firstItem\">></span>\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: breadcrumb.injector\"\n ></ng-container>\n <ng-container *ngIf=\"item.label && item.path\">\n <a\n [routerLink]=\"normalizePath(item.path)\"\n class=\"word-break\"\n title=\"{{ item.label | translate }}\"\n >\n <i [c8yIcon]=\"item.icon\" *ngIf=\"firstItem\" class=\"m-r-4\"></i>\n <span>{{ item.label | translate }}</span>\n </a>\n </ng-container>\n <ng-container *ngIf=\"item.label && !item.path\">\n <i [c8yIcon]=\"item.icon\" *ngIf=\"firstItem\" class=\"m-r-4\"></i>\n <span title=\"{{ item.label | translate }}\">{{ item.label | translate }}</span>\n </ng-container>\n </li>\n </ng-container>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.OutletDirective, selector: "[c8yOutlet]", inputs: ["c8yOutlet", "c8yOutletProperties", "c8yOutletInjector"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "pipe", type: i6.C8yTranslatePipe, name: "translate" }] });
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BreadcrumbOutletComponent, decorators: [{
24
24
  type: Component,
25
- args: [{ selector: 'c8y-breadcrumb-outlet', template: "<div\n class=\"breadcrumbs-container\"\n [ngClass]=\"{\n multiple: breadcrumbs.length > 1,\n open: showAll\n }\"\n *ngIf=\"breadcrumbs && breadcrumbs.length > 0\"\n>\n <button\n *ngIf=\"breadcrumbs.length > 1\"\n class=\"btn-show-all-breadcrumbs pull-left\"\n (click)=\"showAll = !showAll\"\n >\n <i\n *ngIf=\"!showAll\"\n [c8yIcon]=\"'caret-right'\"\n tooltip=\"{{ 'Show all breadcrumbs' | translate }}\"\n container=\"body\"\n placement=\"top\"\n ></i>\n <i\n *ngIf=\"showAll\"\n [c8yIcon]=\"'caret-down'\"\n tooltip=\"{{ 'Collapse breadcrumbs' | translate }}\"\n container=\"body\"\n placement=\"top\"\n ></i>\n </button>\n\n <ul class=\"breadcrumbs text-muted\" *ngFor=\"let breadcrumb of breadcrumbs; let first = first\">\n <ng-container *ngIf=\"first || showAll\">\n <li class=\"text-muted\" *ngFor=\"let item of breadcrumb.items; let firstItem = first\">\n <span *ngIf=\"!firstItem\">></span>\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: breadcrumb.injector\"\n ></ng-container>\n <ng-container *ngIf=\"item.label && item.path\">\n <a\n [routerLink]=\"normalizePath(item.path)\"\n class=\"word-break\"\n title=\"{{ item.label | translate }}\"\n >\n <i [c8yIcon]=\"item.icon\" *ngIf=\"firstItem\" class=\"m-r-4\"></i>\n <span>{{ item.label | translate }}</span>\n </a>\n </ng-container>\n <ng-container *ngIf=\"item.label && !item.path\">\n <i [c8yIcon]=\"item.icon\" *ngIf=\"firstItem\" class=\"m-r-4\"></i>\n <span title=\"{{ item.label | translate }}\">{{ item.label | translate }}</span>\n </ng-container>\n </li>\n </ng-container>\n </ul>\n</div>\n" }]
25
+ args: [{ selector: 'c8y-breadcrumb-outlet', template: "<div\n class=\"breadcrumbs-container\"\n [ngClass]=\"{\n multiple: breadcrumbs.length > 1,\n open: showAll\n }\"\n *ngIf=\"breadcrumbs && breadcrumbs.length > 0\"\n>\n <button\n title=\"{{ 'Expand/collapse all breadcrumbs' | translate }}\"\n aria-label=\"{{ 'Expand/collapse all breadcrumbs' | translate }}\"\n *ngIf=\"breadcrumbs.length > 1\"\n class=\"btn-show-all-breadcrumbs pull-left\"\n (click)=\"showAll = !showAll\"\n >\n <i\n *ngIf=\"!showAll\"\n [c8yIcon]=\"'caret-right'\"\n tooltip=\"{{ 'Show all breadcrumbs' | translate }}\"\n container=\"body\"\n placement=\"top\"\n ></i>\n <i\n *ngIf=\"showAll\"\n [c8yIcon]=\"'caret-down'\"\n tooltip=\"{{ 'Expand breadcrumbs' | translate }}\"\n container=\"body\"\n placement=\"top\"\n ></i>\n </button>\n\n <ul class=\"breadcrumbs text-muted\" *ngFor=\"let breadcrumb of breadcrumbs; let first = first\">\n <ng-container *ngIf=\"first || showAll\">\n <li class=\"text-muted\" *ngFor=\"let item of breadcrumb.items; let firstItem = first\">\n <span *ngIf=\"!firstItem\">></span>\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: breadcrumb.injector\"\n ></ng-container>\n <ng-container *ngIf=\"item.label && item.path\">\n <a\n [routerLink]=\"normalizePath(item.path)\"\n class=\"word-break\"\n title=\"{{ item.label | translate }}\"\n >\n <i [c8yIcon]=\"item.icon\" *ngIf=\"firstItem\" class=\"m-r-4\"></i>\n <span>{{ item.label | translate }}</span>\n </a>\n </ng-container>\n <ng-container *ngIf=\"item.label && !item.path\">\n <i [c8yIcon]=\"item.icon\" *ngIf=\"firstItem\" class=\"m-r-4\"></i>\n <span title=\"{{ item.label | translate }}\">{{ item.label | translate }}</span>\n </ng-container>\n </li>\n </ng-container>\n </ul>\n</div>\n" }]
26
26
  }], propDecorators: { breadcrumbs: [{
27
27
  type: Input
28
28
  }] } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1vdXRsZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9icmVhZGNydW1iL2JyZWFkY3J1bWItb3V0bGV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2NvcmUvYnJlYWRjcnVtYi9icmVhZGNydW1iLW91dGxldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7QUFPakQsTUFBTSxPQUFPLHlCQUF5QjtJQUp0QztRQUtFLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDUCxnQkFBVyxHQUFpQixFQUFFLENBQUM7S0FRekM7SUFOQzs7T0FFRztJQUNILGFBQWEsQ0FBQyxJQUFJO1FBQ2hCLE9BQU8sSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7c0hBVFUseUJBQXlCOzBHQUF6Qix5QkFBeUIscUdDUHRDLDB6REFzREE7MkZEL0NhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx1QkFBdUI7OEJBS3hCLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcmVhZGNydW1iIH0gZnJvbSAnLi9icmVhZGNydW1iLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWJyZWFkY3J1bWItb3V0bGV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JyZWFkY3J1bWItb3V0bGV0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iT3V0bGV0Q29tcG9uZW50IHtcbiAgc2hvd0FsbCA9IGZhbHNlO1xuICBASW5wdXQoKSBicmVhZGNydW1iczogQnJlYWRjcnVtYltdID0gW107XG5cbiAgLyoqXG4gICAqIEZvciB1cGdyYWRlIG9ubHkuIE9sZCBhbmd1bGFyanMgcm91dGVzIHN0YXJ0IHdpdGggaGFzaCwgbmV3IG9uZXMgbm90LlxuICAgKi9cbiAgbm9ybWFsaXplUGF0aChwYXRoKSB7XG4gICAgcmV0dXJuIHBhdGg/LnJlcGxhY2UoL14jXFwvPy8sICcnKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImJyZWFkY3J1bWJzLWNvbnRhaW5lclwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICBtdWx0aXBsZTogYnJlYWRjcnVtYnMubGVuZ3RoID4gMSxcbiAgICBvcGVuOiBzaG93QWxsXG4gIH1cIlxuICAqbmdJZj1cImJyZWFkY3J1bWJzICYmIGJyZWFkY3J1bWJzLmxlbmd0aCA+IDBcIlxuPlxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJicmVhZGNydW1icy5sZW5ndGggPiAxXCJcbiAgICBjbGFzcz1cImJ0bi1zaG93LWFsbC1icmVhZGNydW1icyBwdWxsLWxlZnRcIlxuICAgIChjbGljayk9XCJzaG93QWxsID0gIXNob3dBbGxcIlxuICA+XG4gICAgPGlcbiAgICAgICpuZ0lmPVwiIXNob3dBbGxcIlxuICAgICAgW2M4eUljb25dPVwiJ2NhcmV0LXJpZ2h0J1wiXG4gICAgICB0b29sdGlwPVwie3sgJ1Nob3cgYWxsIGJyZWFkY3J1bWJzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgIHBsYWNlbWVudD1cInRvcFwiXG4gICAgPjwvaT5cbiAgICA8aVxuICAgICAgKm5nSWY9XCJzaG93QWxsXCJcbiAgICAgIFtjOHlJY29uXT1cIidjYXJldC1kb3duJ1wiXG4gICAgICB0b29sdGlwPVwie3sgJ0NvbGxhcHNlIGJyZWFkY3J1bWJzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgIHBsYWNlbWVudD1cInRvcFwiXG4gICAgPjwvaT5cbiAgPC9idXR0b24+XG5cbiAgPHVsIGNsYXNzPVwiYnJlYWRjcnVtYnMgdGV4dC1tdXRlZFwiICpuZ0Zvcj1cImxldCBicmVhZGNydW1iIG9mIGJyZWFkY3J1bWJzOyBsZXQgZmlyc3QgPSBmaXJzdFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaXJzdCB8fCBzaG93QWxsXCI+XG4gICAgICA8bGkgY2xhc3M9XCJ0ZXh0LW11dGVkXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYnJlYWRjcnVtYi5pdGVtczsgbGV0IGZpcnN0SXRlbSA9IGZpcnN0XCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIWZpcnN0SXRlbVwiPj48L3NwYW4+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqYzh5T3V0bGV0PVwiaXRlbS5jb21wb25lbnQgfHwgaXRlbS50ZW1wbGF0ZTsgaW5qZWN0b3I6IGJyZWFkY3J1bWIuaW5qZWN0b3JcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmxhYmVsICYmIGl0ZW0ucGF0aFwiPlxuICAgICAgICAgIDxhXG4gICAgICAgICAgICBbcm91dGVyTGlua109XCJub3JtYWxpemVQYXRoKGl0ZW0ucGF0aClcIlxuICAgICAgICAgICAgY2xhc3M9XCJ3b3JkLWJyZWFrXCJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgaXRlbS5sYWJlbCB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgW2M4eUljb25dPVwiaXRlbS5pY29uXCIgKm5nSWY9XCJmaXJzdEl0ZW1cIiBjbGFzcz1cIm0tci00XCI+PC9pPlxuICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5sYWJlbCAmJiAhaXRlbS5wYXRoXCI+XG4gICAgICAgICAgPGkgW2M4eUljb25dPVwiaXRlbS5pY29uXCIgKm5nSWY9XCJmaXJzdEl0ZW1cIiBjbGFzcz1cIm0tci00XCI+PC9pPlxuICAgICAgICAgIDxzcGFuIHRpdGxlPVwie3sgaXRlbS5sYWJlbCB8IHRyYW5zbGF0ZSB9fVwiPnt7IGl0ZW0ubGFiZWwgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC91bD5cbjwvZGl2PlxuIl19
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1vdXRsZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9icmVhZGNydW1iL2JyZWFkY3J1bWItb3V0bGV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2NvcmUvYnJlYWRjcnVtYi9icmVhZGNydW1iLW91dGxldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7QUFPakQsTUFBTSxPQUFPLHlCQUF5QjtJQUp0QztRQUtFLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDUCxnQkFBVyxHQUFpQixFQUFFLENBQUM7S0FRekM7SUFOQzs7T0FFRztJQUNILGFBQWEsQ0FBQyxJQUFJO1FBQ2hCLE9BQU8sSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7c0hBVFUseUJBQXlCOzBHQUF6Qix5QkFBeUIscUdDUHRDLG04REF3REE7MkZEakRhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx1QkFBdUI7OEJBS3hCLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcmVhZGNydW1iIH0gZnJvbSAnLi9icmVhZGNydW1iLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWJyZWFkY3J1bWItb3V0bGV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JyZWFkY3J1bWItb3V0bGV0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iT3V0bGV0Q29tcG9uZW50IHtcbiAgc2hvd0FsbCA9IGZhbHNlO1xuICBASW5wdXQoKSBicmVhZGNydW1iczogQnJlYWRjcnVtYltdID0gW107XG5cbiAgLyoqXG4gICAqIEZvciB1cGdyYWRlIG9ubHkuIE9sZCBhbmd1bGFyanMgcm91dGVzIHN0YXJ0IHdpdGggaGFzaCwgbmV3IG9uZXMgbm90LlxuICAgKi9cbiAgbm9ybWFsaXplUGF0aChwYXRoKSB7XG4gICAgcmV0dXJuIHBhdGg/LnJlcGxhY2UoL14jXFwvPy8sICcnKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImJyZWFkY3J1bWJzLWNvbnRhaW5lclwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICBtdWx0aXBsZTogYnJlYWRjcnVtYnMubGVuZ3RoID4gMSxcbiAgICBvcGVuOiBzaG93QWxsXG4gIH1cIlxuICAqbmdJZj1cImJyZWFkY3J1bWJzICYmIGJyZWFkY3J1bWJzLmxlbmd0aCA+IDBcIlxuPlxuICA8YnV0dG9uXG4gICAgdGl0bGU9XCJ7eyAnRXhwYW5kL2NvbGxhcHNlIGFsbCBicmVhZGNydW1icycgfCB0cmFuc2xhdGUgfX1cIlxuICAgIGFyaWEtbGFiZWw9XCJ7eyAnRXhwYW5kL2NvbGxhcHNlIGFsbCBicmVhZGNydW1icycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICpuZ0lmPVwiYnJlYWRjcnVtYnMubGVuZ3RoID4gMVwiXG4gICAgY2xhc3M9XCJidG4tc2hvdy1hbGwtYnJlYWRjcnVtYnMgcHVsbC1sZWZ0XCJcbiAgICAoY2xpY2spPVwic2hvd0FsbCA9ICFzaG93QWxsXCJcbiAgPlxuICAgIDxpXG4gICAgICAqbmdJZj1cIiFzaG93QWxsXCJcbiAgICAgIFtjOHlJY29uXT1cIidjYXJldC1yaWdodCdcIlxuICAgICAgdG9vbHRpcD1cInt7ICdTaG93IGFsbCBicmVhZGNydW1icycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxuICAgID48L2k+XG4gICAgPGlcbiAgICAgICpuZ0lmPVwic2hvd0FsbFwiXG4gICAgICBbYzh5SWNvbl09XCInY2FyZXQtZG93bidcIlxuICAgICAgdG9vbHRpcD1cInt7ICdFeHBhbmQgYnJlYWRjcnVtYnMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgcGxhY2VtZW50PVwidG9wXCJcbiAgICA+PC9pPlxuICA8L2J1dHRvbj5cblxuICA8dWwgY2xhc3M9XCJicmVhZGNydW1icyB0ZXh0LW11dGVkXCIgKm5nRm9yPVwibGV0IGJyZWFkY3J1bWIgb2YgYnJlYWRjcnVtYnM7IGxldCBmaXJzdCA9IGZpcnN0XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpcnN0IHx8IHNob3dBbGxcIj5cbiAgICAgIDxsaSBjbGFzcz1cInRleHQtbXV0ZWRcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBicmVhZGNydW1iLml0ZW1zOyBsZXQgZmlyc3RJdGVtID0gZmlyc3RcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhZmlyc3RJdGVtXCI+Pjwvc3Bhbj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpjOHlPdXRsZXQ9XCJpdGVtLmNvbXBvbmVudCB8fCBpdGVtLnRlbXBsYXRlOyBpbmplY3RvcjogYnJlYWRjcnVtYi5pbmplY3RvclwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0ubGFiZWwgJiYgaXRlbS5wYXRoXCI+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIm5vcm1hbGl6ZVBhdGgoaXRlbS5wYXRoKVwiXG4gICAgICAgICAgICBjbGFzcz1cIndvcmQtYnJlYWtcIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eyBpdGVtLmxhYmVsIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBbYzh5SWNvbl09XCJpdGVtLmljb25cIiAqbmdJZj1cImZpcnN0SXRlbVwiIGNsYXNzPVwibS1yLTRcIj48L2k+XG4gICAgICAgICAgICA8c3Bhbj57eyBpdGVtLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmxhYmVsICYmICFpdGVtLnBhdGhcIj5cbiAgICAgICAgICA8aSBbYzh5SWNvbl09XCJpdGVtLmljb25cIiAqbmdJZj1cImZpcnN0SXRlbVwiIGNsYXNzPVwibS1yLTRcIj48L2k+XG4gICAgICAgICAgPHNwYW4gdGl0bGU9XCJ7eyBpdGVtLmxhYmVsIHwgdHJhbnNsYXRlIH19XCI+e3sgaXRlbS5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2xpPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3VsPlxuPC9kaXY+XG4iXX0=
@@ -219,12 +219,12 @@ export class DashboardChildComponent {
219
219
  }
220
220
  }
221
221
  DashboardChildComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DashboardChildComponent, deps: [{ token: i1.DashboardComponent }, { token: i2.DomSanitizer }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
222
- DashboardChildComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DashboardChildComponent, selector: "c8y-dashboard-child", inputs: { x: "x", y: "y", width: "width", height: "height", data: "data", margin: "margin", isFrozen: "isFrozen", useIntersection: "useIntersection", class: "class" }, outputs: { changeStart: "changeStart", changeEnd: "changeEnd" }, host: { properties: { "attr.style": "this.inlineStyle" }, classAttribute: "dashboard-grid-child" }, queries: [{ propertyName: "actions", predicate: DashboardChildActionComponent }], usesOnChanges: true, ngImport: i0, template: "<div cdkDropList>\n <div *ngIf=\"isResize\" class=\"card-placeholder\"></div>\n <div\n [ngClass]=\"klasses\"\n cdkDrag\n [ngStyle]=\"{ width: _pxWidth, height: _pxHeight }\"\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n [cdkDragDisabled]=\"isFrozen\"\n >\n <div\n class=\"card-header-actions card-header-grid\"\n [ngClass]=\"{ 'drag-handle': !isFrozen, draggableCursor: !isFrozen }\"\n cdkDragHandle\n >\n <ng-content select=\"c8y-dashboard-child-title\"></ng-content>\n <div class=\"header-actions\" *ngIf=\"!isFrozen && actions.length > 0\">\n <div class=\"optionsBtn dropdown\" dropdown placement=\"bottom right\">\n <button\n title=\"{{ 'Settings' | translate }}\"\n class=\"btnIcon c8y-dropdown\"\n (click)=\"(false)\"\n dropdownToggle\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n style=\"right:-1px;\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll\">\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"!isFrozen && !isDragging\"\n class=\"resize-handle hidden-xs\"\n cdkDrag\n [cdkDragDisabled]=\"isFrozen\"\n (cdkDragStarted)=\"resizeStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n ></div>\n <div class=\"resize-icon hidden-xs\" *ngIf=\"!isFrozen && !isDragging\"></div>\n\n <div *cdkDragPlaceholder class=\"card-placeholder\"></div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i5.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "pipe", type: i7.C8yTranslatePipe, name: "translate" }] });
222
+ DashboardChildComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DashboardChildComponent, selector: "c8y-dashboard-child", inputs: { x: "x", y: "y", width: "width", height: "height", data: "data", margin: "margin", isFrozen: "isFrozen", useIntersection: "useIntersection", class: "class" }, outputs: { changeStart: "changeStart", changeEnd: "changeEnd" }, host: { properties: { "attr.style": "this.inlineStyle" }, classAttribute: "dashboard-grid-child" }, queries: [{ propertyName: "actions", predicate: DashboardChildActionComponent }], usesOnChanges: true, ngImport: i0, template: "<div cdkDropList>\n <div *ngIf=\"isResize\" class=\"card-placeholder\"></div>\n <div\n [ngClass]=\"klasses\"\n cdkDrag\n [ngStyle]=\"{ width: _pxWidth, height: _pxHeight }\"\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n [cdkDragDisabled]=\"isFrozen\"\n >\n <div\n class=\"card-header-actions card-header-grid\"\n [ngClass]=\"{ 'drag-handle': !isFrozen, draggableCursor: !isFrozen }\"\n cdkDragHandle\n >\n <ng-content select=\"c8y-dashboard-child-title\"></ng-content>\n <div class=\"header-actions\" *ngIf=\"!isFrozen && actions.length > 0\">\n <div class=\"optionsBtn dropdown\" dropdown placement=\"bottom right\">\n <button\n title=\"{{ 'Settings' | translate }}\"\n class=\"btnIcon c8y-dropdown\"\n (click)=\"(false)\"\n dropdownToggle\n aria-haspopup=\"true\"\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n style=\"right:-1px;\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll\">\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"!isFrozen && !isDragging\"\n class=\"resize-handle hidden-xs\"\n cdkDrag\n [cdkDragDisabled]=\"isFrozen\"\n (cdkDragStarted)=\"resizeStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n ></div>\n <div class=\"resize-icon hidden-xs\" *ngIf=\"!isFrozen && !isDragging\"></div>\n\n <div *cdkDragPlaceholder class=\"card-placeholder\"></div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i5.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "pipe", type: i7.C8yTranslatePipe, name: "translate" }] });
223
223
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DashboardChildComponent, decorators: [{
224
224
  type: Component,
225
225
  args: [{ selector: 'c8y-dashboard-child', host: {
226
226
  class: 'dashboard-grid-child'
227
- }, template: "<div cdkDropList>\n <div *ngIf=\"isResize\" class=\"card-placeholder\"></div>\n <div\n [ngClass]=\"klasses\"\n cdkDrag\n [ngStyle]=\"{ width: _pxWidth, height: _pxHeight }\"\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n [cdkDragDisabled]=\"isFrozen\"\n >\n <div\n class=\"card-header-actions card-header-grid\"\n [ngClass]=\"{ 'drag-handle': !isFrozen, draggableCursor: !isFrozen }\"\n cdkDragHandle\n >\n <ng-content select=\"c8y-dashboard-child-title\"></ng-content>\n <div class=\"header-actions\" *ngIf=\"!isFrozen && actions.length > 0\">\n <div class=\"optionsBtn dropdown\" dropdown placement=\"bottom right\">\n <button\n title=\"{{ 'Settings' | translate }}\"\n class=\"btnIcon c8y-dropdown\"\n (click)=\"(false)\"\n dropdownToggle\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n style=\"right:-1px;\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll\">\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"!isFrozen && !isDragging\"\n class=\"resize-handle hidden-xs\"\n cdkDrag\n [cdkDragDisabled]=\"isFrozen\"\n (cdkDragStarted)=\"resizeStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n ></div>\n <div class=\"resize-icon hidden-xs\" *ngIf=\"!isFrozen && !isDragging\"></div>\n\n <div *cdkDragPlaceholder class=\"card-placeholder\"></div>\n </div>\n</div>\n" }]
227
+ }, template: "<div cdkDropList>\n <div *ngIf=\"isResize\" class=\"card-placeholder\"></div>\n <div\n [ngClass]=\"klasses\"\n cdkDrag\n [ngStyle]=\"{ width: _pxWidth, height: _pxHeight }\"\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n [cdkDragDisabled]=\"isFrozen\"\n >\n <div\n class=\"card-header-actions card-header-grid\"\n [ngClass]=\"{ 'drag-handle': !isFrozen, draggableCursor: !isFrozen }\"\n cdkDragHandle\n >\n <ng-content select=\"c8y-dashboard-child-title\"></ng-content>\n <div class=\"header-actions\" *ngIf=\"!isFrozen && actions.length > 0\">\n <div class=\"optionsBtn dropdown\" dropdown placement=\"bottom right\">\n <button\n title=\"{{ 'Settings' | translate }}\"\n class=\"btnIcon c8y-dropdown\"\n (click)=\"(false)\"\n dropdownToggle\n aria-haspopup=\"true\"\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n style=\"right:-1px;\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll\">\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"!isFrozen && !isDragging\"\n class=\"resize-handle hidden-xs\"\n cdkDrag\n [cdkDragDisabled]=\"isFrozen\"\n (cdkDragStarted)=\"resizeStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n ></div>\n <div class=\"resize-icon hidden-xs\" *ngIf=\"!isFrozen && !isDragging\"></div>\n\n <div *cdkDragPlaceholder class=\"card-placeholder\"></div>\n </div>\n</div>\n" }]
228
228
  }], ctorParameters: function () { return [{ type: i1.DashboardComponent }, { type: i2.DomSanitizer }, { type: i0.ElementRef }]; }, propDecorators: { actions: [{
229
229
  type: ContentChildren,
230
230
  args: [DashboardChildActionComponent]
@@ -254,4 +254,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
254
254
  type: HostBinding,
255
255
  args: ['attr.style']
256
256
  }] } });
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWNoaWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL2Rhc2hib2FyZC1jaGlsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2Rhc2hib2FyZC9kYXNoYm9hcmQtY2hpbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQUczRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Q0c7QUFRSCxNQUFNLE9BQU8sdUJBQXVCO0lBNkdsQyxZQUNTLFNBQTZCLEVBQzVCLFNBQXVCLEVBQ3hCLE9BQW1CO1FBRm5CLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBQzVCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQS9Hb0IsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUU3RCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUViLGFBQVEsR0FBRyxNQUFNLENBQUM7UUFDbEIsY0FBUyxHQUFHLE1BQU0sQ0FBQztRQVluQjs7V0FFRztRQUNNLFVBQUssR0FBRyxDQUFDLENBQUM7UUFF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O3dHQUF2Qix1QkFBdUIsZ2FBQ2pCLDZCQUE2QixrREN0RWhELHF6REFzREE7MkZEZWEsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLHFCQUFxQixRQUV6Qjt3QkFDSixLQUFLLEVBQUUsc0JBQXNCO3FCQUM5Qjs2SkFHK0MsT0FBTztzQkFBdEQsZUFBZTt1QkFBQyw2QkFBNkI7Z0JBWXJDLENBQUM7c0JBQVQsS0FBSztnQkFLRyxDQUFDO3NCQUFULEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQU1HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csZUFBZTtzQkFBdkIsS0FBSztnQkFLSSxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFNBQVM7c0JBQWxCLE1BQU07Z0JBTVAsS0FBSztzQkFESixLQUFLO2dCQTJCRixXQUFXO3NCQURkLFdBQVc7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWcsIENka0RyYWdFbmQsIENka0RyYWdTdGFydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ2hpbGRBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZC1jaGlsZC1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IERhc2hib2FyZENoaWxkQ2hhbmdlIH0gZnJvbSAnLi9kYXNoYm9hcmQtY2hpbGQtY2hhbmdlJztcbmltcG9ydCB7IERhc2hib2FyZENvbXBvbmVudCB9IGZyb20gJy4vZGFzaGJvYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXNoYm9hcmRDaGlsZERpbWVuc2lvbiwgV2lkZ2V0IH0gZnJvbSAnLi9kYXNoYm9hcmQubW9kZWwnO1xuXG4vKipcbiAqIEEgZGFzaGJvYXJkIGNoaWxkIGFsbG93cyB0byBwb3NpdGlvbiBlbGVtZW50c1xuICogY29ycmVjdGx5IG9uIGEgZ3JpZC4gVGhlIHVzZXIgY2FuIHRoZW4gcmVzaXplIGFuZFxuICogcmVhcnJhbmdlIHRoZSBlbGVtZW50cywgYXMgbG9uZyBhcyB0aGV5IGFyZSBub3QgYGZyb3plbmAuXG4gKlxuICogQnkgc2V0dGluZyBgYzh5LWRhc2hib2FyZC1jaGlsZC1hY3Rpb25zYCBhbmRcbiAqIGBjOHktZGFzaGJvYXJkLWNoaWxkLXRpdGxlYCBvbiB0aGUgZWxlbWVudCB5b3UgY2FuIGFkZFxuICogY3VzdG9tIGFjdGlvbnMgb3IgYSBjdXN0b20gdGl0bGUgdG8gdGhlIGN1cnJlbnQgY2hpbGQuXG4gKlxuICogQnkgYWRkaW5nIHRoZSBjb3JyZWN0IGJyYW5kZWQgY2xhc3NlcywgeW91IGNhbiBkZWZpbmVcbiAqIHRoZSBsb29rIGFuZCBmZWVsIG9mIHRoZSBjaGlsZC4gQnkgZGVmYXVsdCBpdCBpcyBkaXNwbGF5ZWRcbiAqIGFzIGEgY2FyZC5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIGBgYGh0bWxcbiAqICAgPGM4eS1kYXNoYm9hcmQtY2hpbGRcbiAqICAgICAjY3BXaWRnZXQzXG4gKiAgICAgW2lzRnJvemVuXT1cImlzRnJvemVuXCJcbiAqICAgICBbeF09XCIwXCJcbiAqICAgICBbeV09XCIzXCJcbiAqICAgICBbd2lkdGhdPVwiNFwiXG4gKiAgICAgW2hlaWdodF09XCI0XCJcbiAqICAgICBbY2xhc3NdPVwiJ2NhcmQtZGFzaGJvYXJkIHBhbmVsLWNvbnRlbnQtdHJhbnNwYXJlbnQnXCJcbiAqICAgPlxuICogICAgIDxjOHktZGFzaGJvYXJkLWNoaWxkLXRpdGxlICpuZ0lmPVwic2hvd1RpdGxlXCI+XG4gKiAgICAgICA8c3Bhbj5UcmFuc3BhcmVudCE8L3NwYW4+XG4gKiAgICAgPC9jOHktZGFzaGJvYXJkLWNoaWxkLXRpdGxlPlxuICogICAgIDxjOHktZGFzaGJvYXJkLWNoaWxkLWFjdGlvbj5cbiAqICAgICAgIDxhIGhyZWY9XCJcIiAoY2xpY2spPVwic2hvd1RpdGxlID0gIXNob3dUaXRsZTsgKGZhbHNlKVwiPlxuICogICAgICAgICA8aSBbYzh5SWNvbl09XCInaGVhZGluZydcIj48L2k+IEhpZGUvc2hvdyB0aXRsZVxuICogICAgICAgPC9hPlxuICogICAgIDwvYzh5LWRhc2hib2FyZC1jaGlsZC1hY3Rpb24+XG4gKiAgICAgPGM4eS1kYXNoYm9hcmQtY2hpbGQtYWN0aW9uPlxuICogICAgICAgPGEgaHJlZj1cIlwiIChjbGljayk9XCJjcFdpZGdldDMuaXNGcm96ZW4gPSAhY3BXaWRnZXQzLmlzRnJvemVuOyAoZmFsc2UpXCI+XG4gKiAgICAgICAgIDxpIFtjOHlJY29uXT1cImNwV2lkZ2V0My5pc0Zyb3plbiA/ICdsb2NrJyA6ICd1bmxvY2snXCI+PC9pPiBUb2dnbGUgZnJlZXplXG4gKiAgICAgICA8L2E+XG4gKiAgICAgPC9jOHktZGFzaGJvYXJkLWNoaWxkLWFjdGlvbj5cbiAqICAgICB4OiB7eyBjcFdpZGdldDMueCB9fTxiciAvPlxuICogICAgIHk6IHt7IGNwV2lkZ2V0My55IH19PGJyIC8+XG4gKiAgICAgd2lkdGg6IHt7IGNwV2lkZ2V0My53aWR0aCB9fTxiciAvPlxuICogICAgIGhlaWdodDoge3sgY3BXaWRnZXQzLmhlaWdodCB9fTxiciAvPlxuICogICA8L2M4eS1kYXNoYm9hcmQtY2hpbGQ+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWRhc2hib2FyZC1jaGlsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQtY2hpbGQuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkYXNoYm9hcmQtZ3JpZC1jaGlsZCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRDaGlsZENvbXBvbmVudCBpbXBsZW1lbnRzIERhc2hib2FyZENoaWxkRGltZW5zaW9uIHtcbiAgQENvbnRlbnRDaGlsZHJlbihEYXNoYm9hcmRDaGlsZEFjdGlvbkNvbXBvbmVudCkgYWN0aW9ucyA9IFtdO1xuICBkcmFnU291cmNlOiBDZGtEcmFnO1xuICBpc1Jlc2l6ZSA9IGZhbHNlO1xuICBpc0RyYWdnaW5nID0gZmFsc2U7XG4gIGtsYXNzZXMgPSB7fTtcblxuICBfcHhXaWR0aCA9ICcxMDAlJztcbiAgX3B4SGVpZ2h0ID0gJzEwMCUnO1xuXG4gIC8qKlxuICAgKiBUaGUgeCBwb3NpdGlvbiBvZiB0aGUgY2hpbGQuXG4gICAqL1xuICBASW5wdXQoKSB4O1xuXG4gIC8qKlxuICAgKiBUaGUgeSBwb3NpdGlvbiBvZiB0aGUgY2hpbGQuXG4gICAqL1xuICBASW5wdXQoKSB5O1xuXG4gIC8qKlxuICAgKiBUaGUgd2lkdGggb2YgdGhlIGNvbXBvbmVudCBpbiBncmlkLWNvbHVtbnMuXG4gICAqL1xuICBASW5wdXQoKSB3aWR0aCA9IDE7XG5cbiAgLyoqXG4gICAqIFRoZSBoZWlnaHQgb2YgdGhlIGNvbXBvbmVudCBpbiBncmlkLXJvd3MuXG4gICAqL1xuICBASW5wdXQoKSBoZWlnaHQgPSAxO1xuXG4gIC8qKlxuICAgKiBUaGUgZGF0YSBvYmplY3QgY2FuIGJlIHVzZWQgYXMgYSBkYXRhVHJhbnNmZXIgb2JqZWN0IGZvciBldmVudHMgb2YgdGhlIGNoaWxkLlxuICAgKi9cbiAgQElucHV0KCkgZGF0YTogV2lkZ2V0IHwgYW55O1xuXG4gIC8qKlxuICAgKiBUaGUgbWFyZ2luIG9mIHRoZSBjaGlsZCBpbiBwaXhlbC5cbiAgICovXG4gIEBJbnB1dCgpIG1hcmdpbiA9IDEyO1xuXG4gIC8qKlxuICAgKiBJZiBhIGRhc2hib2FyZCBpcyBmcm96ZW4sIGFsbCBjaGlsZHJlbiBjYW5ub3QgYmUgbW92ZWRcbiAgICogb3IgcmVzaXplZC5cbiAgICovXG4gIEBJbnB1dCgpIGlzRnJvemVuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBjaGlsZCBjb250ZW50IGlzIGluaXRpYWxpemVkLCBhcyBzb29uIGl0IGlzIHNjcm9sbGVkIGludG8gdmlld3BvcnRcbiAgICovXG4gIEBJbnB1dCgpIHVzZUludGVyc2VjdGlvbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBbiBldmVudCBmaXJlZCBpZiBhIGNoaWxkIGNoYW5nZSBpcyBzdGFydGVkIChkcmFnZ2luZyBvciByZXNpemluZylcbiAgICovXG4gIEBPdXRwdXQoKSBjaGFuZ2VTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8RGFzaGJvYXJkQ2hpbGRDb21wb25lbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEFuIGV2ZW50IGZpcmVkIGlmIGEgY2hpbGQgY2hhbmdlIGlzIGVuZGVkXG4gICAqL1xuICBAT3V0cHV0KCkgY2hhbmdlRW5kID0gbmV3IEV2ZW50RW1pdHRlcjxEYXNoYm9hcmRDaGlsZENvbXBvbmVudD4oKTtcblxuICAvKipcbiAgICogQWxsIGNsYXNzZXMgYWRkZWQgdG8gdGhpcyBjaGlsZFxuICAgKi9cbiAgQElucHV0KClcbiAgY2xhc3M6IHN0cmluZ1tdIHwgeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcGl4ZWwgd2lkdGggb2YgdGhlIGNoaWxkICh1c2VkIGZvciByZXNpemluZylcbiAgICovXG4gIHNldCBweFdpZHRoKHZhbHVlKSB7XG4gICAgdGhpcy5fcHhXaWR0aCA9IGAke3ZhbHVlfXB4YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBwaXhlbCBoZWlnaHQgb2YgdGhlIGNoaWxkICh1c2VkIGZvciByZXNpemluZylcbiAgICovXG4gIHNldCBweEhlaWdodCh2YWx1ZSkge1xuICAgIHRoaXMuX3B4SGVpZ2h0ID0gYCR7dmFsdWV9cHhgO1xuICB9XG5cbiAgLyoqXG4gICAqIEFuIGluZGljYXRvciBpZiB0aGUgY2hpbGQgaXMgaW50ZXJzZWN0ZWQgKHRoYXQgbWVhbiB2aXNpYmxlIGZvciB0aGUgdXNlcilcbiAgICovXG4gIGludGVyc2VjdGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIG5hc3R5IHdvcmthcm91bmQgZm9yIHRoYXQgaXNzdWU6XG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzkzNDNcbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5zdHlsZScpXG4gIGdldCBpbmxpbmVTdHlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKGBcbiAgICBncmlkLWNvbHVtbi1zdGFydDogJHt0aGlzLnggKyAxfTtcbiAgICBncmlkLXJvdy1zdGFydDogJHt0aGlzLnkgKyAxfTtcbiAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gJHt0aGlzLndpZHRofTtcbiAgICBncmlkLXJvdy1lbmQ6IHNwYW4gJHt0aGlzLmhlaWdodH07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAke3RoaXMubWFyZ2luIHx8IDEyfXB4O1xuICAgIG9yZGVyOiAke3RoaXMuZ2V0T3JkZXIoKX07XG4gICAgYCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG9ic2VydmFibGUgc3Vic2NyaXB0aW9uIHdoaWNoIGlzIGxpc3RlbiB0b1xuICAgKiBvbiBjaGFuZ2VzIChkcmFnIG9yIHJlc2l6ZSkuXG4gICAqL1xuICBjaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGFzaGJvYXJkOiBEYXNoYm9hcmRDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZlxuICApIHt9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5rbGFzc2VzID0ge1xuICAgICAgY2FyZDogdHJ1ZSxcbiAgICAgICdjYXJkLWRhc2hib2FyZCc6IHRydWUsXG4gICAgICBkaXNhYmxlZDogdGhpcy5pc0Zyb3plbixcbiAgICAgICdvbi1yZXNpemUnOiB0aGlzLmlzUmVzaXplLFxuICAgICAgLi4udGhpcy5jbGFzc1xuICAgIH07XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy54ID09PSB1bmRlZmluZWQgfHwgdGhpcy55ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZXREeW5hbWljRGltZW5zaW9uKCkpO1xuICAgIH1cbiAgICBpZiAodGhpcy51c2VJbnRlcnNlY3Rpb24gJiYgJ0ludGVyc2VjdGlvbk9ic2VydmVyJyBpbiB3aW5kb3cpIHtcbiAgICAgIGNvbnN0IGludGVyc2VjdGlvbk9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgICBldmVudCA9PiAodGhpcy5pbnRlcnNlY3RlZCA9IHRoaXMuY2hpbGRJblZpZXcoZXZlbnRbMF0sIGludGVyc2VjdGlvbk9ic2VydmVyKSlcbiAgICAgICk7XG4gICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnRlcnNlY3RlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuZGFzaGJvYXJkLmNoaWxkcmVuLnB1c2godGhpcyk7XG4gIH1cblxuICBzZXREeW5hbWljRGltZW5zaW9uKCkge1xuICAgIGNvbnN0IGRzID0gbmV3IERhc2hib2FyZENoaWxkQ2hhbmdlKHRoaXMpO1xuICAgIGNvbnN0IHsgeCwgeSB9ID0gZHMuZmluZEZyZWVEaW1lbnNpb24oKTtcbiAgICB0aGlzLnggPSB4O1xuICAgIHRoaXMueSA9IHk7XG5cbiAgICB0aGlzLmRhc2hib2FyZC5lbWl0Q2hhbmdlKHRoaXMpO1xuICB9XG5cbiAgcmVzaXplU3RhcnRlZCgkZXZlbnQ6IENka0RyYWdTdGFydCkge1xuICAgIHRoaXMuaXNSZXNpemUgPSB0cnVlO1xuICAgIHRoaXMuZGFzaGJvYXJkLnVwZGF0ZVJlY3RTaXplKCk7XG4gICAgdGhpcy5kcmFnU291cmNlID0gJGV2ZW50LnNvdXJjZTtcbiAgICBjb25zdCBwb3NpdGlvbmluZyA9IG5ldyBEYXNoYm9hcmRDaGlsZENoYW5nZSh0aGlzKTtcbiAgICB0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbiA9IHBvc2l0aW9uaW5nLnJlc2l6ZSQuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jaGFuZ2VTdGFydC5lbWl0KHRoaXMpO1xuICAgIHRoaXMubmdPbkNoYW5nZXMoKTtcbiAgfVxuXG4gIGRyYWdTdGFydGVkKCRldmVudDogQ2RrRHJhZ1N0YXJ0KSB7XG4gICAgdGhpcy5pc0RyYWdnaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmRhc2hib2FyZC51cGRhdGVSZWN0U2l6ZSgpO1xuICAgIHRoaXMuZHJhZ1NvdXJjZSA9ICRldmVudC5zb3VyY2U7XG4gICAgY29uc3QgcG9zaXRpb25pbmcgPSBuZXcgRGFzaGJvYXJkQ2hpbGRDaGFuZ2UodGhpcyk7XG4gICAgdGhpcy5jaGFuZ2VTdWJzY3JpcHRpb24gPSBwb3NpdGlvbmluZy5kcmFnJC5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNoYW5nZVN0YXJ0LmVtaXQodGhpcyk7XG4gIH1cblxuICByZXNldCgkZXZlbnQ/OiBDZGtEcmFnRW5kKSB7XG4gICAgdGhpcy5pc1Jlc2l6ZSA9IGZhbHNlO1xuICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgIHRoaXMuX3B4V2lkdGggPSAnMTAwJSc7XG4gICAgdGhpcy5fcHhIZWlnaHQgPSAnMTAwJSc7XG4gICAgdGhpcy5uZ09uQ2hhbmdlcygpO1xuICAgIGlmICgkZXZlbnQpIHtcbiAgICAgICRldmVudC5zb3VyY2UucmVzZXQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY2hhbmdlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5kYXNoYm9hcmQuZW1pdENoYW5nZSh0aGlzKTtcbiAgICAgIHRoaXMuY2hhbmdlRW5kLmVtaXQodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuY2hhbmdlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLnJlbW92ZVNlbGZGcm9tRGFzaGJvYXJkKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVNlbGZGcm9tRGFzaGJvYXJkKCkge1xuICAgIGNvbnN0IGkgPSB0aGlzLmRhc2hib2FyZC5jaGlsZHJlbi5pbmRleE9mKHRoaXMpO1xuXG4gICAgaWYgKGkgPj0gMCkge1xuICAgICAgdGhpcy5kYXNoYm9hcmQuY2hpbGRyZW4uc3BsaWNlKGksIDEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3JkZXIoKSB7XG4gICAgcmV0dXJuIGAke01hdGgucm91bmQoKHRoaXMueSArICh0aGlzLnggKyAxKSAvIDEwMCkgKiAxMDApfWA7XG4gIH1cblxuICBwcml2YXRlIGNoaWxkSW5WaWV3KGV2ZW50LCBvYnNlcnZlcikge1xuICAgIGlmIChldmVudC5pc0ludGVyc2VjdGluZykge1xuICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGV2ZW50LnRhcmdldCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCI8ZGl2IGNka0Ryb3BMaXN0PlxuICA8ZGl2ICpuZ0lmPVwiaXNSZXNpemVcIiBjbGFzcz1cImNhcmQtcGxhY2Vob2xkZXJcIj48L2Rpdj5cbiAgPGRpdlxuICAgIFtuZ0NsYXNzXT1cImtsYXNzZXNcIlxuICAgIGNka0RyYWdcbiAgICBbbmdTdHlsZV09XCJ7IHdpZHRoOiBfcHhXaWR0aCwgaGVpZ2h0OiBfcHhIZWlnaHQgfVwiXG4gICAgKGNka0RyYWdTdGFydGVkKT1cImRyYWdTdGFydGVkKCRldmVudClcIlxuICAgIChjZGtEcmFnRW5kZWQpPVwicmVzZXQoJGV2ZW50KVwiXG4gICAgW2Nka0RyYWdEaXNhYmxlZF09XCJpc0Zyb3plblwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImNhcmQtaGVhZGVyLWFjdGlvbnMgY2FyZC1oZWFkZXItZ3JpZFwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdkcmFnLWhhbmRsZSc6ICFpc0Zyb3plbiwgZHJhZ2dhYmxlQ3Vyc29yOiAhaXNGcm96ZW4gfVwiXG4gICAgICBjZGtEcmFnSGFuZGxlXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYzh5LWRhc2hib2FyZC1jaGlsZC10aXRsZVwiPjwvbmctY29udGVudD5cbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYWN0aW9uc1wiICpuZ0lmPVwiIWlzRnJvemVuICYmIGFjdGlvbnMubGVuZ3RoID4gMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uc0J0biBkcm9wZG93blwiIGRyb3Bkb3duIHBsYWNlbWVudD1cImJvdHRvbSByaWdodFwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHRpdGxlPVwie3sgJ1NldHRpbmdzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBjbGFzcz1cImJ0bkljb24gYzh5LWRyb3Bkb3duXCJcbiAgICAgICAgICAgIChjbGljayk9XCIoZmFsc2UpXCJcbiAgICAgICAgICAgIGRyb3Bkb3duVG9nZ2xlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgW2M4eUljb25dPVwiJ2NvZydcIj48L2k+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1yaWdodFwiXG4gICAgICAgICAgICBzdHlsZT1cInJpZ2h0Oi0xcHg7XCJcbiAgICAgICAgICAgICpkcm9wZG93bk1lbnVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWN0aW9uLnRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWlubmVyLXNjcm9sbFwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiIWlzRnJvemVuICYmICFpc0RyYWdnaW5nXCJcbiAgICAgIGNsYXNzPVwicmVzaXplLWhhbmRsZSBoaWRkZW4teHNcIlxuICAgICAgY2RrRHJhZ1xuICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCJpc0Zyb3plblwiXG4gICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwicmVzaXplU3RhcnRlZCgkZXZlbnQpXCJcbiAgICAgIChjZGtEcmFnRW5kZWQpPVwicmVzZXQoJGV2ZW50KVwiXG4gICAgPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyZXNpemUtaWNvbiBoaWRkZW4teHNcIiAqbmdJZj1cIiFpc0Zyb3plbiAmJiAhaXNEcmFnZ2luZ1wiPjwvZGl2PlxuXG4gICAgPGRpdiAqY2RrRHJhZ1BsYWNlaG9sZGVyIGNsYXNzPVwiY2FyZC1wbGFjZWhvbGRlclwiPjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
257
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWNoaWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL2Rhc2hib2FyZC1jaGlsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2Rhc2hib2FyZC9kYXNoYm9hcmQtY2hpbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQUczRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Q0c7QUFRSCxNQUFNLE9BQU8sdUJBQXVCO0lBNkdsQyxZQUNTLFNBQTZCLEVBQzVCLFNBQXVCLEVBQ3hCLE9BQW1CO1FBRm5CLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBQzVCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQS9Hb0IsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUU3RCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUViLGFBQVEsR0FBRyxNQUFNLENBQUM7UUFDbEIsY0FBUyxHQUFHLE1BQU0sQ0FBQztRQVluQjs7V0FFRztRQUNNLFVBQUssR0FBRyxDQUFDLENBQUM7UUFF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O3dHQUF2Qix1QkFBdUIsZ2FBQ2pCLDZCQUE2QixrREN0RWhELHkxREF1REE7MkZEY2EsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLHFCQUFxQixRQUV6Qjt3QkFDSixLQUFLLEVBQUUsc0JBQXNCO3FCQUM5Qjs2SkFHK0MsT0FBTztzQkFBdEQsZUFBZTt1QkFBQyw2QkFBNkI7Z0JBWXJDLENBQUM7c0JBQVQsS0FBSztnQkFLRyxDQUFDO3NCQUFULEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQU1HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csZUFBZTtzQkFBdkIsS0FBSztnQkFLSSxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFNBQVM7c0JBQWxCLE1BQU07Z0JBTVAsS0FBSztzQkFESixLQUFLO2dCQTJCRixXQUFXO3NCQURkLFdBQVc7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWcsIENka0RyYWdFbmQsIENka0RyYWdTdGFydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ2hpbGRBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZC1jaGlsZC1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IERhc2hib2FyZENoaWxkQ2hhbmdlIH0gZnJvbSAnLi9kYXNoYm9hcmQtY2hpbGQtY2hhbmdlJztcbmltcG9ydCB7IERhc2hib2FyZENvbXBvbmVudCB9IGZyb20gJy4vZGFzaGJvYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXNoYm9hcmRDaGlsZERpbWVuc2lvbiwgV2lkZ2V0IH0gZnJvbSAnLi9kYXNoYm9hcmQubW9kZWwnO1xuXG4vKipcbiAqIEEgZGFzaGJvYXJkIGNoaWxkIGFsbG93cyB0byBwb3NpdGlvbiBlbGVtZW50c1xuICogY29ycmVjdGx5IG9uIGEgZ3JpZC4gVGhlIHVzZXIgY2FuIHRoZW4gcmVzaXplIGFuZFxuICogcmVhcnJhbmdlIHRoZSBlbGVtZW50cywgYXMgbG9uZyBhcyB0aGV5IGFyZSBub3QgYGZyb3plbmAuXG4gKlxuICogQnkgc2V0dGluZyBgYzh5LWRhc2hib2FyZC1jaGlsZC1hY3Rpb25zYCBhbmRcbiAqIGBjOHktZGFzaGJvYXJkLWNoaWxkLXRpdGxlYCBvbiB0aGUgZWxlbWVudCB5b3UgY2FuIGFkZFxuICogY3VzdG9tIGFjdGlvbnMgb3IgYSBjdXN0b20gdGl0bGUgdG8gdGhlIGN1cnJlbnQgY2hpbGQuXG4gKlxuICogQnkgYWRkaW5nIHRoZSBjb3JyZWN0IGJyYW5kZWQgY2xhc3NlcywgeW91IGNhbiBkZWZpbmVcbiAqIHRoZSBsb29rIGFuZCBmZWVsIG9mIHRoZSBjaGlsZC4gQnkgZGVmYXVsdCBpdCBpcyBkaXNwbGF5ZWRcbiAqIGFzIGEgY2FyZC5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIGBgYGh0bWxcbiAqICAgPGM4eS1kYXNoYm9hcmQtY2hpbGRcbiAqICAgICAjY3BXaWRnZXQzXG4gKiAgICAgW2lzRnJvemVuXT1cImlzRnJvemVuXCJcbiAqICAgICBbeF09XCIwXCJcbiAqICAgICBbeV09XCIzXCJcbiAqICAgICBbd2lkdGhdPVwiNFwiXG4gKiAgICAgW2hlaWdodF09XCI0XCJcbiAqICAgICBbY2xhc3NdPVwiJ2NhcmQtZGFzaGJvYXJkIHBhbmVsLWNvbnRlbnQtdHJhbnNwYXJlbnQnXCJcbiAqICAgPlxuICogICAgIDxjOHktZGFzaGJvYXJkLWNoaWxkLXRpdGxlICpuZ0lmPVwic2hvd1RpdGxlXCI+XG4gKiAgICAgICA8c3Bhbj5UcmFuc3BhcmVudCE8L3NwYW4+XG4gKiAgICAgPC9jOHktZGFzaGJvYXJkLWNoaWxkLXRpdGxlPlxuICogICAgIDxjOHktZGFzaGJvYXJkLWNoaWxkLWFjdGlvbj5cbiAqICAgICAgIDxhIGhyZWY9XCJcIiAoY2xpY2spPVwic2hvd1RpdGxlID0gIXNob3dUaXRsZTsgKGZhbHNlKVwiPlxuICogICAgICAgICA8aSBbYzh5SWNvbl09XCInaGVhZGluZydcIj48L2k+IEhpZGUvc2hvdyB0aXRsZVxuICogICAgICAgPC9hPlxuICogICAgIDwvYzh5LWRhc2hib2FyZC1jaGlsZC1hY3Rpb24+XG4gKiAgICAgPGM4eS1kYXNoYm9hcmQtY2hpbGQtYWN0aW9uPlxuICogICAgICAgPGEgaHJlZj1cIlwiIChjbGljayk9XCJjcFdpZGdldDMuaXNGcm96ZW4gPSAhY3BXaWRnZXQzLmlzRnJvemVuOyAoZmFsc2UpXCI+XG4gKiAgICAgICAgIDxpIFtjOHlJY29uXT1cImNwV2lkZ2V0My5pc0Zyb3plbiA/ICdsb2NrJyA6ICd1bmxvY2snXCI+PC9pPiBUb2dnbGUgZnJlZXplXG4gKiAgICAgICA8L2E+XG4gKiAgICAgPC9jOHktZGFzaGJvYXJkLWNoaWxkLWFjdGlvbj5cbiAqICAgICB4OiB7eyBjcFdpZGdldDMueCB9fTxiciAvPlxuICogICAgIHk6IHt7IGNwV2lkZ2V0My55IH19PGJyIC8+XG4gKiAgICAgd2lkdGg6IHt7IGNwV2lkZ2V0My53aWR0aCB9fTxiciAvPlxuICogICAgIGhlaWdodDoge3sgY3BXaWRnZXQzLmhlaWdodCB9fTxiciAvPlxuICogICA8L2M4eS1kYXNoYm9hcmQtY2hpbGQ+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWRhc2hib2FyZC1jaGlsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQtY2hpbGQuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkYXNoYm9hcmQtZ3JpZC1jaGlsZCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRDaGlsZENvbXBvbmVudCBpbXBsZW1lbnRzIERhc2hib2FyZENoaWxkRGltZW5zaW9uIHtcbiAgQENvbnRlbnRDaGlsZHJlbihEYXNoYm9hcmRDaGlsZEFjdGlvbkNvbXBvbmVudCkgYWN0aW9ucyA9IFtdO1xuICBkcmFnU291cmNlOiBDZGtEcmFnO1xuICBpc1Jlc2l6ZSA9IGZhbHNlO1xuICBpc0RyYWdnaW5nID0gZmFsc2U7XG4gIGtsYXNzZXMgPSB7fTtcblxuICBfcHhXaWR0aCA9ICcxMDAlJztcbiAgX3B4SGVpZ2h0ID0gJzEwMCUnO1xuXG4gIC8qKlxuICAgKiBUaGUgeCBwb3NpdGlvbiBvZiB0aGUgY2hpbGQuXG4gICAqL1xuICBASW5wdXQoKSB4O1xuXG4gIC8qKlxuICAgKiBUaGUgeSBwb3NpdGlvbiBvZiB0aGUgY2hpbGQuXG4gICAqL1xuICBASW5wdXQoKSB5O1xuXG4gIC8qKlxuICAgKiBUaGUgd2lkdGggb2YgdGhlIGNvbXBvbmVudCBpbiBncmlkLWNvbHVtbnMuXG4gICAqL1xuICBASW5wdXQoKSB3aWR0aCA9IDE7XG5cbiAgLyoqXG4gICAqIFRoZSBoZWlnaHQgb2YgdGhlIGNvbXBvbmVudCBpbiBncmlkLXJvd3MuXG4gICAqL1xuICBASW5wdXQoKSBoZWlnaHQgPSAxO1xuXG4gIC8qKlxuICAgKiBUaGUgZGF0YSBvYmplY3QgY2FuIGJlIHVzZWQgYXMgYSBkYXRhVHJhbnNmZXIgb2JqZWN0IGZvciBldmVudHMgb2YgdGhlIGNoaWxkLlxuICAgKi9cbiAgQElucHV0KCkgZGF0YTogV2lkZ2V0IHwgYW55O1xuXG4gIC8qKlxuICAgKiBUaGUgbWFyZ2luIG9mIHRoZSBjaGlsZCBpbiBwaXhlbC5cbiAgICovXG4gIEBJbnB1dCgpIG1hcmdpbiA9IDEyO1xuXG4gIC8qKlxuICAgKiBJZiBhIGRhc2hib2FyZCBpcyBmcm96ZW4sIGFsbCBjaGlsZHJlbiBjYW5ub3QgYmUgbW92ZWRcbiAgICogb3IgcmVzaXplZC5cbiAgICovXG4gIEBJbnB1dCgpIGlzRnJvemVuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBjaGlsZCBjb250ZW50IGlzIGluaXRpYWxpemVkLCBhcyBzb29uIGl0IGlzIHNjcm9sbGVkIGludG8gdmlld3BvcnRcbiAgICovXG4gIEBJbnB1dCgpIHVzZUludGVyc2VjdGlvbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBbiBldmVudCBmaXJlZCBpZiBhIGNoaWxkIGNoYW5nZSBpcyBzdGFydGVkIChkcmFnZ2luZyBvciByZXNpemluZylcbiAgICovXG4gIEBPdXRwdXQoKSBjaGFuZ2VTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8RGFzaGJvYXJkQ2hpbGRDb21wb25lbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEFuIGV2ZW50IGZpcmVkIGlmIGEgY2hpbGQgY2hhbmdlIGlzIGVuZGVkXG4gICAqL1xuICBAT3V0cHV0KCkgY2hhbmdlRW5kID0gbmV3IEV2ZW50RW1pdHRlcjxEYXNoYm9hcmRDaGlsZENvbXBvbmVudD4oKTtcblxuICAvKipcbiAgICogQWxsIGNsYXNzZXMgYWRkZWQgdG8gdGhpcyBjaGlsZFxuICAgKi9cbiAgQElucHV0KClcbiAgY2xhc3M6IHN0cmluZ1tdIHwgeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcGl4ZWwgd2lkdGggb2YgdGhlIGNoaWxkICh1c2VkIGZvciByZXNpemluZylcbiAgICovXG4gIHNldCBweFdpZHRoKHZhbHVlKSB7XG4gICAgdGhpcy5fcHhXaWR0aCA9IGAke3ZhbHVlfXB4YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBwaXhlbCBoZWlnaHQgb2YgdGhlIGNoaWxkICh1c2VkIGZvciByZXNpemluZylcbiAgICovXG4gIHNldCBweEhlaWdodCh2YWx1ZSkge1xuICAgIHRoaXMuX3B4SGVpZ2h0ID0gYCR7dmFsdWV9cHhgO1xuICB9XG5cbiAgLyoqXG4gICAqIEFuIGluZGljYXRvciBpZiB0aGUgY2hpbGQgaXMgaW50ZXJzZWN0ZWQgKHRoYXQgbWVhbiB2aXNpYmxlIGZvciB0aGUgdXNlcilcbiAgICovXG4gIGludGVyc2VjdGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIG5hc3R5IHdvcmthcm91bmQgZm9yIHRoYXQgaXNzdWU6XG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzkzNDNcbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5zdHlsZScpXG4gIGdldCBpbmxpbmVTdHlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKGBcbiAgICBncmlkLWNvbHVtbi1zdGFydDogJHt0aGlzLnggKyAxfTtcbiAgICBncmlkLXJvdy1zdGFydDogJHt0aGlzLnkgKyAxfTtcbiAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gJHt0aGlzLndpZHRofTtcbiAgICBncmlkLXJvdy1lbmQ6IHNwYW4gJHt0aGlzLmhlaWdodH07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAke3RoaXMubWFyZ2luIHx8IDEyfXB4O1xuICAgIG9yZGVyOiAke3RoaXMuZ2V0T3JkZXIoKX07XG4gICAgYCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG9ic2VydmFibGUgc3Vic2NyaXB0aW9uIHdoaWNoIGlzIGxpc3RlbiB0b1xuICAgKiBvbiBjaGFuZ2VzIChkcmFnIG9yIHJlc2l6ZSkuXG4gICAqL1xuICBjaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGFzaGJvYXJkOiBEYXNoYm9hcmRDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZlxuICApIHt9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5rbGFzc2VzID0ge1xuICAgICAgY2FyZDogdHJ1ZSxcbiAgICAgICdjYXJkLWRhc2hib2FyZCc6IHRydWUsXG4gICAgICBkaXNhYmxlZDogdGhpcy5pc0Zyb3plbixcbiAgICAgICdvbi1yZXNpemUnOiB0aGlzLmlzUmVzaXplLFxuICAgICAgLi4udGhpcy5jbGFzc1xuICAgIH07XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy54ID09PSB1bmRlZmluZWQgfHwgdGhpcy55ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZXREeW5hbWljRGltZW5zaW9uKCkpO1xuICAgIH1cbiAgICBpZiAodGhpcy51c2VJbnRlcnNlY3Rpb24gJiYgJ0ludGVyc2VjdGlvbk9ic2VydmVyJyBpbiB3aW5kb3cpIHtcbiAgICAgIGNvbnN0IGludGVyc2VjdGlvbk9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgICBldmVudCA9PiAodGhpcy5pbnRlcnNlY3RlZCA9IHRoaXMuY2hpbGRJblZpZXcoZXZlbnRbMF0sIGludGVyc2VjdGlvbk9ic2VydmVyKSlcbiAgICAgICk7XG4gICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnRlcnNlY3RlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuZGFzaGJvYXJkLmNoaWxkcmVuLnB1c2godGhpcyk7XG4gIH1cblxuICBzZXREeW5hbWljRGltZW5zaW9uKCkge1xuICAgIGNvbnN0IGRzID0gbmV3IERhc2hib2FyZENoaWxkQ2hhbmdlKHRoaXMpO1xuICAgIGNvbnN0IHsgeCwgeSB9ID0gZHMuZmluZEZyZWVEaW1lbnNpb24oKTtcbiAgICB0aGlzLnggPSB4O1xuICAgIHRoaXMueSA9IHk7XG5cbiAgICB0aGlzLmRhc2hib2FyZC5lbWl0Q2hhbmdlKHRoaXMpO1xuICB9XG5cbiAgcmVzaXplU3RhcnRlZCgkZXZlbnQ6IENka0RyYWdTdGFydCkge1xuICAgIHRoaXMuaXNSZXNpemUgPSB0cnVlO1xuICAgIHRoaXMuZGFzaGJvYXJkLnVwZGF0ZVJlY3RTaXplKCk7XG4gICAgdGhpcy5kcmFnU291cmNlID0gJGV2ZW50LnNvdXJjZTtcbiAgICBjb25zdCBwb3NpdGlvbmluZyA9IG5ldyBEYXNoYm9hcmRDaGlsZENoYW5nZSh0aGlzKTtcbiAgICB0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbiA9IHBvc2l0aW9uaW5nLnJlc2l6ZSQuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jaGFuZ2VTdGFydC5lbWl0KHRoaXMpO1xuICAgIHRoaXMubmdPbkNoYW5nZXMoKTtcbiAgfVxuXG4gIGRyYWdTdGFydGVkKCRldmVudDogQ2RrRHJhZ1N0YXJ0KSB7XG4gICAgdGhpcy5pc0RyYWdnaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmRhc2hib2FyZC51cGRhdGVSZWN0U2l6ZSgpO1xuICAgIHRoaXMuZHJhZ1NvdXJjZSA9ICRldmVudC5zb3VyY2U7XG4gICAgY29uc3QgcG9zaXRpb25pbmcgPSBuZXcgRGFzaGJvYXJkQ2hpbGRDaGFuZ2UodGhpcyk7XG4gICAgdGhpcy5jaGFuZ2VTdWJzY3JpcHRpb24gPSBwb3NpdGlvbmluZy5kcmFnJC5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNoYW5nZVN0YXJ0LmVtaXQodGhpcyk7XG4gIH1cblxuICByZXNldCgkZXZlbnQ/OiBDZGtEcmFnRW5kKSB7XG4gICAgdGhpcy5pc1Jlc2l6ZSA9IGZhbHNlO1xuICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgIHRoaXMuX3B4V2lkdGggPSAnMTAwJSc7XG4gICAgdGhpcy5fcHhIZWlnaHQgPSAnMTAwJSc7XG4gICAgdGhpcy5uZ09uQ2hhbmdlcygpO1xuICAgIGlmICgkZXZlbnQpIHtcbiAgICAgICRldmVudC5zb3VyY2UucmVzZXQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY2hhbmdlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5kYXNoYm9hcmQuZW1pdENoYW5nZSh0aGlzKTtcbiAgICAgIHRoaXMuY2hhbmdlRW5kLmVtaXQodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuY2hhbmdlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLnJlbW92ZVNlbGZGcm9tRGFzaGJvYXJkKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVNlbGZGcm9tRGFzaGJvYXJkKCkge1xuICAgIGNvbnN0IGkgPSB0aGlzLmRhc2hib2FyZC5jaGlsZHJlbi5pbmRleE9mKHRoaXMpO1xuXG4gICAgaWYgKGkgPj0gMCkge1xuICAgICAgdGhpcy5kYXNoYm9hcmQuY2hpbGRyZW4uc3BsaWNlKGksIDEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3JkZXIoKSB7XG4gICAgcmV0dXJuIGAke01hdGgucm91bmQoKHRoaXMueSArICh0aGlzLnggKyAxKSAvIDEwMCkgKiAxMDApfWA7XG4gIH1cblxuICBwcml2YXRlIGNoaWxkSW5WaWV3KGV2ZW50LCBvYnNlcnZlcikge1xuICAgIGlmIChldmVudC5pc0ludGVyc2VjdGluZykge1xuICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGV2ZW50LnRhcmdldCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCI8ZGl2IGNka0Ryb3BMaXN0PlxuICA8ZGl2ICpuZ0lmPVwiaXNSZXNpemVcIiBjbGFzcz1cImNhcmQtcGxhY2Vob2xkZXJcIj48L2Rpdj5cbiAgPGRpdlxuICAgIFtuZ0NsYXNzXT1cImtsYXNzZXNcIlxuICAgIGNka0RyYWdcbiAgICBbbmdTdHlsZV09XCJ7IHdpZHRoOiBfcHhXaWR0aCwgaGVpZ2h0OiBfcHhIZWlnaHQgfVwiXG4gICAgKGNka0RyYWdTdGFydGVkKT1cImRyYWdTdGFydGVkKCRldmVudClcIlxuICAgIChjZGtEcmFnRW5kZWQpPVwicmVzZXQoJGV2ZW50KVwiXG4gICAgW2Nka0RyYWdEaXNhYmxlZF09XCJpc0Zyb3plblwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImNhcmQtaGVhZGVyLWFjdGlvbnMgY2FyZC1oZWFkZXItZ3JpZFwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdkcmFnLWhhbmRsZSc6ICFpc0Zyb3plbiwgZHJhZ2dhYmxlQ3Vyc29yOiAhaXNGcm96ZW4gfVwiXG4gICAgICBjZGtEcmFnSGFuZGxlXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYzh5LWRhc2hib2FyZC1jaGlsZC10aXRsZVwiPjwvbmctY29udGVudD5cbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYWN0aW9uc1wiICpuZ0lmPVwiIWlzRnJvemVuICYmIGFjdGlvbnMubGVuZ3RoID4gMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uc0J0biBkcm9wZG93blwiIGRyb3Bkb3duIHBsYWNlbWVudD1cImJvdHRvbSByaWdodFwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHRpdGxlPVwie3sgJ1NldHRpbmdzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBjbGFzcz1cImJ0bkljb24gYzh5LWRyb3Bkb3duXCJcbiAgICAgICAgICAgIChjbGljayk9XCIoZmFsc2UpXCJcbiAgICAgICAgICAgIGRyb3Bkb3duVG9nZ2xlXG4gICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgW2M4eUljb25dPVwiJ2NvZydcIj48L2k+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1yaWdodFwiXG4gICAgICAgICAgICBzdHlsZT1cInJpZ2h0Oi0xcHg7XCJcbiAgICAgICAgICAgICpkcm9wZG93bk1lbnVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWN0aW9uLnRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWlubmVyLXNjcm9sbFwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiIWlzRnJvemVuICYmICFpc0RyYWdnaW5nXCJcbiAgICAgIGNsYXNzPVwicmVzaXplLWhhbmRsZSBoaWRkZW4teHNcIlxuICAgICAgY2RrRHJhZ1xuICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCJpc0Zyb3plblwiXG4gICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwicmVzaXplU3RhcnRlZCgkZXZlbnQpXCJcbiAgICAgIChjZGtEcmFnRW5kZWQpPVwicmVzZXQoJGV2ZW50KVwiXG4gICAgPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyZXNpemUtaWNvbiBoaWRkZW4teHNcIiAqbmdJZj1cIiFpc0Zyb3plbiAmJiAhaXNEcmFnZ2luZ1wiPjwvZGl2PlxuXG4gICAgPGRpdiAqY2RrRHJhZ1BsYWNlaG9sZGVyIGNsYXNzPVwiY2FyZC1wbGFjZWhvbGRlclwiPjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19