@c8y/ngx-components 1011.0.24 → 1011.0.25

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 (22) hide show
  1. package/bundles/c8y-ngx-components-repository.umd.js +36 -14
  2. package/bundles/c8y-ngx-components-repository.umd.js.map +1 -1
  3. package/bundles/c8y-ngx-components-repository.umd.min.js +1 -1
  4. package/bundles/c8y-ngx-components-repository.umd.min.js.map +1 -1
  5. package/esm2015/repository/configuration-device-tab/device-configuration.component.js +7 -2
  6. package/esm2015/repository/configuration-device-tab/device-configuration.guard.js +4 -2
  7. package/esm2015/repository/firmware-device-tab/firmware-device-tab.component.js +4 -3
  8. package/esm2015/repository/firmware-device-tab/firmware-device-tab.guard.js +4 -5
  9. package/esm2015/repository/software-device-tab/device-software-list.component.js +10 -3
  10. package/esm2015/repository/software-device-tab/installed-software.component.js +10 -2
  11. package/esm2015/repository/software-device-tab/software-device-tab.component.js +2 -2
  12. package/esm2015/repository/software-device-tab/software-device-tab.guard.js +9 -5
  13. package/fesm2015/c8y-ngx-components-repository.js +37 -15
  14. package/fesm2015/c8y-ngx-components-repository.js.map +1 -1
  15. package/package.json +2 -2
  16. package/repository/c8y-ngx-components-repository.metadata.json +1 -1
  17. package/repository/configuration-device-tab/device-configuration.guard.d.ts +1 -1
  18. package/repository/firmware-device-tab/firmware-device-tab.component.d.ts +1 -0
  19. package/repository/firmware-device-tab/firmware-device-tab.guard.d.ts +1 -1
  20. package/repository/software-device-tab/device-software-list.component.d.ts +7 -2
  21. package/repository/software-device-tab/installed-software.component.d.ts +4 -0
  22. package/repository/software-device-tab/software-device-tab.guard.d.ts +2 -2
@@ -5,6 +5,7 @@ import { Realtime } from '@c8y/client';
5
5
  import { DeviceConfigurationService } from './device-configuration.service';
6
6
  import { DeviceConfigurationOperation } from '../repository.model';
7
7
  import { gettext } from '@c8y/ngx-components';
8
+ import { has } from 'lodash-es';
8
9
  import { RepositoryService } from '../repository.service';
9
10
  import { TextBasedConfigurationComponent } from './text-based-configuration.component';
10
11
  export class DeviceConfigurationComponent {
@@ -45,7 +46,11 @@ export class DeviceConfigurationComponent {
45
46
  title: gettext('No configurations available.'),
46
47
  text: gettext('Add configuration to configuration repository')
47
48
  };
48
- this.showTextBasedConfig = this.deviceConfigurationService.hasAnySupportedOperation(this.device, [DeviceConfigurationOperation.CONFIG, DeviceConfigurationOperation.SEND_CONFIG]);
49
+ this.showTextBasedConfig =
50
+ this.deviceConfigurationService.hasAnySupportedOperation(this.device, [
51
+ DeviceConfigurationOperation.CONFIG,
52
+ DeviceConfigurationOperation.SEND_CONFIG
53
+ ]) || has(this.device, 'c8y_Configuration');
49
54
  }
50
55
  onConfigTypeSelected(config) {
51
56
  return __awaiter(this, void 0, void 0, function* () {
@@ -111,4 +116,4 @@ DeviceConfigurationComponent.ctorParameters = () => [
111
116
  DeviceConfigurationComponent.propDecorators = {
112
117
  textBasedConfigurationComponent: [{ type: ViewChild, args: [TextBasedConfigurationComponent,] }]
113
118
  };
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcmVwb3NpdG9yeS9jb25maWd1cmF0aW9uLWRldmljZS10YWIvZGV2aWNlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFrQixRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUlMLDRCQUE0QixFQUM3QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQU12RixNQUFNLE9BQU8sNEJBQTRCO0lBZXZDLFlBQ1UsS0FBcUIsRUFDckIsMEJBQXNELEVBQ3RELFFBQWtCLEVBQ2xCLGlCQUFvQztRQUhwQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWxCOUMsNEJBQXVCLEdBQWlDLEVBQUUsQ0FBQztRQUMzRCwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFFOUIsbUJBQWMsR0FBbUMsRUFBRSxDQUFDO1FBT3BELGNBQVMsR0FBWSxLQUFLLENBQUM7UUFVekIsSUFBSSxDQUFDLDBCQUEwQixDQUFDLHFCQUFxQixDQUFDLFNB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QUM7WUFDdEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQztZQUNwQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsMEJBQTBCLENBQ2hGLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLGlCQUFpQixDQUN2QixDQUFDO1lBQ0YsSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRO29CQUNqQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztvQkFDbkUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7YUFDekY7WUFDRCxJQUFLLElBQUksQ0FBQyxtQkFBbUIsRUFBRztnQkFDOUIsTUFBTSxJQUFJLENBQUMsK0JBQStCLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDbkQ7WUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDO0tBQUE7OztZQTlHRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsc2tMQUFvRDthQUNyRDs7O1lBaEJRLGNBQWM7WUFFZCwwQkFBMEI7WUFEVixRQUFRO1lBU3hCLGlCQUFpQjs7OzhDQW9CdkIsU0FBUyxTQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBSZWFsdGltZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IERldmljZUNvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9kZXZpY2UtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIERldmljZUNvbmZpZ3VyYXRpb25MaXN0RW1wdHlTdGF0ZSxcbiAgQ29uZmlndXJhdGlvblNuYXBzaG90LFxuICBTdXBwb3J0ZWRDb25maWd1cmF0aW9uSXRlbSxcbiAgRGV2aWNlQ29uZmlndXJhdGlvbk9wZXJhdGlvblxufSBmcm9tICcuLi9yZXBvc2l0b3J5Lm1vZGVsJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFJlcG9zaXRvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vcmVwb3NpdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IFRleHRCYXNlZENvbmZpZ3VyYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3RleHQtYmFzZWQtY29uZmlndXJhdGlvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZGV2aWNlLWNvbmZpZ3VyYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGV2aWNlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERldmljZUNvbmZpZ3VyYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBzdXBwb3J0ZWRDb25maWd1cmF0aW9uczogU3VwcG9ydGVkQ29uZmlndXJhdGlvbkl0ZW1bXSA9IFtdO1xuICBzaG93QmluYXJ5QmFzZWRDb25maWcgPSBmYWxzZTtcbiAgY29uZmlndXJhdGlvblR5cGU6IHN0cmluZztcbiAgY29uZmlnU25hcHNob3Q6IFBhcnRpYWw8Q29uZmlndXJhdGlvblNuYXBzaG90PiA9IHt9O1xuICByZXBvc2l0b3J5U25hcHNob3RzOiBJTWFuYWdlZE9iamVjdFtdO1xuICByZXBvc2l0b3J5U25hcHNob3Q6IENvbmZpZ3VyYXRpb25TbmFwc2hvdDtcbiAgcmVwb3NpdG9yeVNuYXBzaG90c0VtcHR5U3RhdGU6IERldmljZUNvbmZpZ3VyYXRpb25MaXN0RW1wdHlTdGF0ZTtcbiAgZGV2aWNlOiBJTWFuYWdlZE9iamVjdDtcbiAgaXNMZWdhY3k6IGJvb2xlYW47XG4gIHNob3dUZXh0QmFzZWRDb25maWc6IGJvb2xlYW47XG4gIHJlbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoVGV4dEJhc2VkQ29uZmlndXJhdGlvbkNvbXBvbmVudCkgdGV4dEJhc2VkQ29uZmlndXJhdGlvbkNvbXBvbmVudDogVGV4dEJhc2VkQ29uZmlndXJhdGlvbkNvbXBvbmVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGRldmljZUNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBEZXZpY2VDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWx0aW1lOiBSZWFsdGltZSxcbiAgICBwcml2YXRlIHJlcG9zaXRvcnlTZXJ2aWNlOiBSZXBvc2l0b3J5U2VydmljZVxuICApIHtcbiAgICB0aGlzLmRldmljZUNvbmZpZ3VyYXRpb25TZXJ2aWNlLmNvbmZpZ3VyYXRpb25zVXBkYXRlZC5zdWJzY3JpYmUocmVwb3NpdG9yeVNuYXBzT25seSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVNuYXBzaG90cyhyZXBvc2l0b3J5U25hcHNPbmx5KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZGV2aWNlID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJlbnQuZGF0YS5jb250ZXh0RGF0YTtcbiAgICBpZiAodGhpcy5kZXZpY2UuYzh5X1N1cHBvcnRlZENvbmZpZ3VyYXRpb25zKSB7XG4gICAgICB0aGlzLnN1cHBvcnRlZENvbmZpZ3VyYXRpb25zID0gdGhpcy5kZXZpY2UuYzh5X1N1cHBvcnRlZENvbmZpZ3VyYXRpb25zLm1hcChpdGVtID0+ICh7XG4gICAgICAgIG5hbWU6IGl0ZW1cbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmRldmljZUNvbmZpZ3VyYXRpb25TZXJ2aWNlLmhhc0FueVN1cHBvcnRlZE9wZXJhdGlvbih0aGlzLmRldmljZSwgW1xuICAgICAgICBEZXZpY2VDb25maWd1cmF0aW9uT3BlcmF0aW9uLkRPV05MT0FEX0NPTkZJRyxcbiAgICAgICAgRGV2aWNlQ29uZmlndXJhdGlvbk9wZXJhdGlvbi5VUExPQURfQ09ORklHXG4gICAgICBdKVxuICAgICkge1xuICAgICAgdGhpcy5zdXBwb3J0ZWRDb25maWd1cmF0aW9ucy5wdXNoKHtcbiAgICAgICAgbmFtZTogZ2V0dGV4dCgnTGVnYWN5IGNvbmZpZ3VyYXRpb24gc25hcHNob3QnKSxcbiAgICAgICAgaXNMZWdhY3k6IHRydWVcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdXBwb3J0ZWRDb25maWd1cmF0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNob3dCaW5hcnlCYXNlZENvbmZpZyA9IHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy5yZXBvc2l0b3J5U25hcHNob3RzRW1wdHlTdGF0ZSA9IHtcbiAgICAgIGljb246ICdnZWFycycsXG4gICAgICB0aXRsZTogZ2V0dGV4dCgnTm8gY29uZmlndXJhdGlvbnMgYXZhaWxhYmxlLicpLFxuICAgICAgdGV4dDogZ2V0dGV4dCgnQWRkIGNvbmZpZ3VyYXRpb24gdG8gY29uZmlndXJhdGlvbiByZXBvc2l0b3J5JylcbiAgICB9O1xuXG4gICAgdGhpcy5zaG93VGV4dEJhc2VkQ29uZmlnID0gdGhpcy5kZXZpY2VDb25maWd1cmF0aW9uU2VydmljZS5oYXNBbnlTdXBwb3J0ZWRPcGVyYXRpb24oXG4gICAgICB0aGlzLmRldmljZSxcbiAgICAgIFtEZXZpY2VDb25maWd1cmF0aW9uT3BlcmF0aW9uLkNPTkZJRywgRGV2aWNlQ29uZmlndXJhdGlvbk9wZXJhdGlvbi5TRU5EX0NPTkZJR11cbiAgICApO1xuICB9XG5cbiAgYXN5bmMgb25Db25maWdUeXBlU2VsZWN0ZWQoY29uZmlnKSB7XG4gICAgdGhpcy5jb25maWd1cmF0aW9uVHlwZSA9IGNvbmZpZy5uYW1lO1xuICAgIHRoaXMuaXNMZWdhY3kgPSBjb25maWcuaXNMZWdhY3k7XG4gICAgdGhpcy51cGRhdGVTbmFwc2hvdHMoKTtcbiAgfVxuXG4gIGFzeW5jIG9uUmVwb3NpdG9yeUNvbmZpZ1NlbGVjdGVkKGNvbmZpZykge1xuICAgIHRoaXMucmVwb3NpdG9yeVNuYXBzaG90ID0ge1xuICAgICAgaWQ6IGNvbmZpZy5pZCxcbiAgICAgIHRpbWU6IGNvbmZpZy5jcmVhdGlvblRpbWUsXG4gICAgICBuYW1lOiBjb25maWcubmFtZSxcbiAgICAgIGJpbmFyeVVybDogY29uZmlnLnVybCxcbiAgICAgIGRldmljZVR5cGU6IGNvbmZpZy5kZXZpY2VUeXBlLFxuICAgICAgY29uZmlndXJhdGlvblR5cGU6IGNvbmZpZy5jb25maWd1cmF0aW9uVHlwZVxuICAgIH07XG4gICAgaWYgKGNvbmZpZy51cmwpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGJpbmFyeSA9IGF3YWl0IHRoaXMucmVwb3NpdG9yeVNlcnZpY2UuZ2V0QmluYXJ5RmlsZShjb25maWcudXJsLCB7XG4gICAgICAgICAgYWxsb3dFeHRlcm5hbDogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChiaW5hcnkpIHtcbiAgICAgICAgICB0aGlzLnJlcG9zaXRvcnlTbmFwc2hvdC5iaW5hcnkgPSBhd2FpdCAoYmluYXJ5IGFzIGFueSkudGV4dCgpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAvLyBkbyBub3RoaW5nXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgdXBkYXRlU25hcHNob3RzKHJlcG9zaXRvcnlTbmFwc09ubHk/OiBib29sZWFuKSB7XG4gICAgdGhpcy5yZWxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMucmVwb3NpdG9yeVNuYXBzaG90ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucmVwb3NpdG9yeVNuYXBzaG90cyA9IGF3YWl0IHRoaXMucmVwb3NpdG9yeVNlcnZpY2UuZ2V0U25hcHNob3RzRnJvbVJlcG9zaXRvcnkoXG4gICAgICB0aGlzLmRldmljZSxcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvblR5cGVcbiAgICApO1xuICAgIGlmICghcmVwb3NpdG9yeVNuYXBzT25seSkge1xuICAgICAgdGhpcy5jb25maWdTbmFwc2hvdCA9IHRoaXMuaXNMZWdhY3lcbiAgICAgICAgPyBhd2FpdCB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlLmdldExlZ2FjeUNvbmZpZ1NuYXBzaG90KHRoaXMuZGV2aWNlKVxuICAgICAgICA6IGF3YWl0IHRoaXMucmVwb3NpdG9yeVNlcnZpY2UuZ2V0Q29uZmlnU25hcHNob3QodGhpcy5kZXZpY2UsIHRoaXMuY29uZmlndXJhdGlvblR5cGUpO1xuICAgIH1cbiAgICBpZiAoIHRoaXMuc2hvd1RleHRCYXNlZENvbmZpZyApIHtcbiAgICAgIGF3YWl0IHRoaXMudGV4dEJhc2VkQ29uZmlndXJhdGlvbkNvbXBvbmVudC5sb2FkKCk7XG4gICAgfVxuICAgIHRoaXMucmVsb2FkaW5nID0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcmVwb3NpdG9yeS9jb25maWd1cmF0aW9uLWRldmljZS10YWIvZGV2aWNlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFrQixRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUlMLDRCQUE0QixFQUM3QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBTXZGLE1BQU0sT0FBTyw0QkFBNEI7SUFldkMsWUFDVSxLQUFxQixFQUNyQiwwQkFBc0QsRUFDdEQsUUFBa0IsRUFDbEIsaUJBQW9DO1FBSHBDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUFDdEQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBbEI5Qyw0QkFBdUIsR0FBaUMsRUFBRSxDQUFDO1FBQzNELDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUU5QixtQkFBYyxHQUFtQyxFQUFFLENBQUM7UUFPcEQsY0FBUyxHQUFZLEtBQUssQ0FBQztR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b0JBQ1gsYUFBYTtpQkFDZDthQUNGO1FBQ0gsQ0FBQztLQUFBO0lBRUssZUFBZSxDQUFDLG1CQUE2Qjs7WUFDakQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQztZQUNwQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsMEJBQTBCLENBQ2hGLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLGlCQUFpQixDQUN2QixDQUFDO1lBQ0YsSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRO29CQUNqQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztvQkFDbkUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7YUFDekY7WUFDRCxJQUFLLElBQUksQ0FBQyxtQkFBbUIsRUFBRztnQkFDOUIsTUFBTSxJQUFJLENBQUMsK0JBQStCLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDbkQ7WUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDO0tBQUE7OztZQS9HRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsc2tMQUFvRDthQUNyRDs7O1lBakJRLGNBQWM7WUFFZCwwQkFBMEI7WUFEVixRQUFRO1lBVXhCLGlCQUFpQjs7OzhDQW9CdkIsU0FBUyxTQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBSZWFsdGltZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IERldmljZUNvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9kZXZpY2UtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIERldmljZUNvbmZpZ3VyYXRpb25MaXN0RW1wdHlTdGF0ZSxcbiAgQ29uZmlndXJhdGlvblNuYXBzaG90LFxuICBTdXBwb3J0ZWRDb25maWd1cmF0aW9uSXRlbSxcbiAgRGV2aWNlQ29uZmlndXJhdGlvbk9wZXJhdGlvblxufSBmcm9tICcuLi9yZXBvc2l0b3J5Lm1vZGVsJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IGhhcyB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBSZXBvc2l0b3J5U2VydmljZSB9IGZyb20gJy4uL3JlcG9zaXRvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBUZXh0QmFzZWRDb25maWd1cmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi90ZXh0LWJhc2VkLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWRldmljZS1jb25maWd1cmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RldmljZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBEZXZpY2VDb25maWd1cmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgc3VwcG9ydGVkQ29uZmlndXJhdGlvbnM6IFN1cHBvcnRlZENvbmZpZ3VyYXRpb25JdGVtW10gPSBbXTtcbiAgc2hvd0JpbmFyeUJhc2VkQ29uZmlnID0gZmFsc2U7XG4gIGNvbmZpZ3VyYXRpb25UeXBlOiBzdHJpbmc7XG4gIGNvbmZpZ1NuYXBzaG90OiBQYXJ0aWFsPENvbmZpZ3VyYXRpb25TbmFwc2hvdD4gPSB7fTtcbiAgcmVwb3NpdG9yeVNuYXBzaG90czogSU1hbmFnZWRPYmplY3RbXTtcbiAgcmVwb3NpdG9yeVNuYXBzaG90OiBDb25maWd1cmF0aW9uU25hcHNob3Q7XG4gIHJlcG9zaXRvcnlTbmFwc2hvdHNFbXB0eVN0YXRlOiBEZXZpY2VDb25maWd1cmF0aW9uTGlzdEVtcHR5U3RhdGU7XG4gIGRldmljZTogSU1hbmFnZWRPYmplY3Q7XG4gIGlzTGVnYWN5OiBib29sZWFuO1xuICBzaG93VGV4dEJhc2VkQ29uZmlnOiBib29sZWFuO1xuICByZWxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKFRleHRCYXNlZENvbmZpZ3VyYXRpb25Db21wb25lbnQpIHRleHRCYXNlZENvbmZpZ3VyYXRpb25Db21wb25lbnQ6IFRleHRCYXNlZENvbmZpZ3VyYXRpb25Db21wb25lbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBkZXZpY2VDb25maWd1cmF0aW9uU2VydmljZTogRGV2aWNlQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFsdGltZTogUmVhbHRpbWUsXG4gICAgcHJpdmF0ZSByZXBvc2l0b3J5U2VydmljZTogUmVwb3NpdG9yeVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5kZXZpY2VDb25maWd1cmF0aW9uU2VydmljZS5jb25maWd1cmF0aW9uc1VwZGF0ZWQuc3Vic2NyaWJlKHJlcG9zaXRvcnlTbmFwc09ubHkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVTbmFwc2hvdHMocmVwb3NpdG9yeVNuYXBzT25seSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRldmljZSA9IHRoaXMucm91dGUuc25hcHNob3QucGFyZW50LmRhdGEuY29udGV4dERhdGE7XG4gICAgaWYgKHRoaXMuZGV2aWNlLmM4eV9TdXBwb3J0ZWRDb25maWd1cmF0aW9ucykge1xuICAgICAgdGhpcy5zdXBwb3J0ZWRDb25maWd1cmF0aW9ucyA9IHRoaXMuZGV2aWNlLmM4eV9TdXBwb3J0ZWRDb25maWd1cmF0aW9ucy5tYXAoaXRlbSA9PiAoe1xuICAgICAgICBuYW1lOiBpdGVtXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5kZXZpY2VDb25maWd1cmF0aW9uU2VydmljZS5oYXNBbnlTdXBwb3J0ZWRPcGVyYXRpb24odGhpcy5kZXZpY2UsIFtcbiAgICAgICAgRGV2aWNlQ29uZmlndXJhdGlvbk9wZXJhdGlvbi5ET1dOTE9BRF9DT05GSUcsXG4gICAgICAgIERldmljZUNvbmZpZ3VyYXRpb25PcGVyYXRpb24uVVBMT0FEX0NPTkZJR1xuICAgICAgXSlcbiAgICApIHtcbiAgICAgIHRoaXMuc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMucHVzaCh7XG4gICAgICAgIG5hbWU6IGdldHRleHQoJ0xlZ2FjeSBjb25maWd1cmF0aW9uIHNuYXBzaG90JyksXG4gICAgICAgIGlzTGVnYWN5OiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zaG93QmluYXJ5QmFzZWRDb25maWcgPSB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMucmVwb3NpdG9yeVNuYXBzaG90c0VtcHR5U3RhdGUgPSB7XG4gICAgICBpY29uOiAnZ2VhcnMnLFxuICAgICAgdGl0bGU6IGdldHRleHQoJ05vIGNvbmZpZ3VyYXRpb25zIGF2YWlsYWJsZS4nKSxcbiAgICAgIHRleHQ6IGdldHRleHQoJ0FkZCBjb25maWd1cmF0aW9uIHRvIGNvbmZpZ3VyYXRpb24gcmVwb3NpdG9yeScpXG4gICAgfTtcblxuICAgIHRoaXMuc2hvd1RleHRCYXNlZENvbmZpZyA9XG4gICAgICB0aGlzLmRldmljZUNvbmZpZ3VyYXRpb25TZXJ2aWNlLmhhc0FueVN1cHBvcnRlZE9wZXJhdGlvbih0aGlzLmRldmljZSwgW1xuICAgICAgICBEZXZpY2VDb25maWd1cmF0aW9uT3BlcmF0aW9uLkNPTkZJRyxcbiAgICAgICAgRGV2aWNlQ29uZmlndXJhdGlvbk9wZXJhdGlvbi5TRU5EX0NPTkZJR1xuICAgICAgXSkgfHwgaGFzKHRoaXMuZGV2aWNlLCAnYzh5X0NvbmZpZ3VyYXRpb24nKTtcbiAgfVxuXG4gIGFzeW5jIG9uQ29uZmlnVHlwZVNlbGVjdGVkKGNvbmZpZykge1xuICAgIHRoaXMuY29uZmlndXJhdGlvblR5cGUgPSBjb25maWcubmFtZTtcbiAgICB0aGlzLmlzTGVnYWN5ID0gY29uZmlnLmlzTGVnYWN5O1xuICAgIHRoaXMudXBkYXRlU25hcHNob3RzKCk7XG4gIH1cblxuICBhc3luYyBvblJlcG9zaXRvcnlDb25maWdTZWxlY3RlZChjb25maWcpIHtcbiAgICB0aGlzLnJlcG9zaXRvcnlTbmFwc2hvdCA9IHtcbiAgICAgIGlkOiBjb25maWcuaWQsXG4gICAgICB0aW1lOiBjb25maWcuY3JlYXRpb25UaW1lLFxuICAgICAgbmFtZTogY29uZmlnLm5hbWUsXG4gICAgICBiaW5hcnlVcmw6IGNvbmZpZy51cmwsXG4gICAgICBkZXZpY2VUeXBlOiBjb25maWcuZGV2aWNlVHlwZSxcbiAgICAgIGNvbmZpZ3VyYXRpb25UeXBlOiBjb25maWcuY29uZmlndXJhdGlvblR5cGVcbiAgICB9O1xuICAgIGlmIChjb25maWcudXJsKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBiaW5hcnkgPSBhd2FpdCB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlLmdldEJpbmFyeUZpbGUoY29uZmlnLnVybCwge1xuICAgICAgICAgIGFsbG93RXh0ZXJuYWw6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoYmluYXJ5KSB7XG4gICAgICAgICAgdGhpcy5yZXBvc2l0b3J5U25hcHNob3QuYmluYXJ5ID0gYXdhaXQgKGJpbmFyeSBhcyBhbnkpLnRleHQoKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgLy8gZG8gbm90aGluZ1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVNuYXBzaG90cyhyZXBvc2l0b3J5U25hcHNPbmx5PzogYm9vbGVhbikge1xuICAgIHRoaXMucmVsb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnJlcG9zaXRvcnlTbmFwc2hvdCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnJlcG9zaXRvcnlTbmFwc2hvdHMgPSBhd2FpdCB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlLmdldFNuYXBzaG90c0Zyb21SZXBvc2l0b3J5KFxuICAgICAgdGhpcy5kZXZpY2UsXG4gICAgICB0aGlzLmNvbmZpZ3VyYXRpb25UeXBlXG4gICAgKTtcbiAgICBpZiAoIXJlcG9zaXRvcnlTbmFwc09ubHkpIHtcbiAgICAgIHRoaXMuY29uZmlnU25hcHNob3QgPSB0aGlzLmlzTGVnYWN5XG4gICAgICAgID8gYXdhaXQgdGhpcy5yZXBvc2l0b3J5U2VydmljZS5nZXRMZWdhY3lDb25maWdTbmFwc2hvdCh0aGlzLmRldmljZSlcbiAgICAgICAgOiBhd2FpdCB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlLmdldENvbmZpZ1NuYXBzaG90KHRoaXMuZGV2aWNlLCB0aGlzLmNvbmZpZ3VyYXRpb25UeXBlKTtcbiAgICB9XG4gICAgaWYgKCB0aGlzLnNob3dUZXh0QmFzZWRDb25maWcgKSB7XG4gICAgICBhd2FpdCB0aGlzLnRleHRCYXNlZENvbmZpZ3VyYXRpb25Db21wb25lbnQubG9hZCgpO1xuICAgIH1cbiAgICB0aGlzLnJlbG9hZGluZyA9IGZhbHNlO1xuICB9XG59XG4iXX0=
@@ -1,4 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
+ import { has } from 'lodash-es';
2
3
  import { DeviceConfigurationService } from './device-configuration.service';
3
4
  import { DeviceConfigurationOperation } from '../repository.model';
4
5
  export class DeviceConfigurationGuard {
@@ -17,7 +18,8 @@ export class DeviceConfigurationGuard {
17
18
  DeviceConfigurationOperation.UPLOAD_CONFIG,
18
19
  DeviceConfigurationOperation.CONFIG,
19
20
  DeviceConfigurationOperation.SEND_CONFIG
20
- ]));
21
+ ]) ||
22
+ has(contextData, 'c8y_Configuration'));
21
23
  }
22
24
  }
23
25
  DeviceConfigurationGuard.decorators = [
@@ -26,4 +28,4 @@ DeviceConfigurationGuard.decorators = [
26
28
  DeviceConfigurationGuard.ctorParameters = () => [
27
29
  { type: DeviceConfigurationService }
28
30
  ];
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWNvbmZpZ3VyYXRpb24uZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9yZXBvc2l0b3J5L2NvbmZpZ3VyYXRpb24tZGV2aWNlLXRhYi9kZXZpY2UtY29uZmlndXJhdGlvbi5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR25FLE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsWUFBb0IsMEJBQXNEO1FBQXRELCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7SUFBRyxDQUFDO0lBRTlFLFdBQVcsQ0FBQyxLQUE2QixFQUFFLEtBQTBCO1FBQ25FLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUM1RSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLENBQ0wsQ0FBQyxXQUFXLENBQUMsMkJBQTJCO1lBQ3RDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQywwQkFBMEIsQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3BFLDRCQUE0QixDQUFDLGVBQWU7Z0JBQzVDLDRCQUE0QixDQUFDLGFBQWE7Z0JBQzFDLDRCQUE0QixDQUFDLE1BQU07Z0JBQ25DLDRCQUE0QixDQUFDLFdBQVc7YUFDekMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOzs7WUFuQkYsVUFBVTs7O1lBSEYsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGV2aWNlQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuL2RldmljZS1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGV2aWNlQ29uZmlndXJhdGlvbk9wZXJhdGlvbiB9IGZyb20gJy4uL3JlcG9zaXRvcnkubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGV2aWNlQ29uZmlndXJhdGlvbkd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRldmljZUNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBEZXZpY2VDb25maWd1cmF0aW9uU2VydmljZSkge31cblxuICBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpIHtcbiAgICBjb25zdCBjb250ZXh0RGF0YSA9IHJvdXRlLmRhdGEuY29udGV4dERhdGEgfHwgcm91dGUucGFyZW50LmRhdGEuY29udGV4dERhdGE7XG4gICAgaWYgKCFjb250ZXh0RGF0YSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgKGNvbnRleHREYXRhLmM4eV9TdXBwb3J0ZWRDb25maWd1cmF0aW9ucyAmJlxuICAgICAgICBjb250ZXh0RGF0YS5jOHlfU3VwcG9ydGVkQ29uZmlndXJhdGlvbnMubGVuZ3RoID4gMCkgfHxcbiAgICAgIHRoaXMuZGV2aWNlQ29uZmlndXJhdGlvblNlcnZpY2UuaGFzQW55U3VwcG9ydGVkT3BlcmF0aW9uKGNvbnRleHREYXRhLCBbXG4gICAgICAgIERldmljZUNvbmZpZ3VyYXRpb25PcGVyYXRpb24uRE9XTkxPQURfQ09ORklHLFxuICAgICAgICBEZXZpY2VDb25maWd1cmF0aW9uT3BlcmF0aW9uLlVQTE9BRF9DT05GSUcsXG4gICAgICAgIERldmljZUNvbmZpZ3VyYXRpb25PcGVyYXRpb24uQ09ORklHLFxuICAgICAgICBEZXZpY2VDb25maWd1cmF0aW9uT3BlcmF0aW9uLlNFTkRfQ09ORklHXG4gICAgICBdKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWNvbmZpZ3VyYXRpb24uZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9yZXBvc2l0b3J5L2NvbmZpZ3VyYXRpb24tZGV2aWNlLXRhYi9kZXZpY2UtY29uZmlndXJhdGlvbi5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHbkUsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUFvQiwwQkFBc0Q7UUFBdEQsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUE0QjtJQUFHLENBQUM7SUFFOUUsV0FBVyxDQUFDLEtBQTZCLEVBQUUsS0FBMEI7UUFDbkUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzVFLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sQ0FDTCxDQUFDLFdBQVcsQ0FBQywyQkFBMkI7WUFDdEMsV0FBVyxDQUFDLDJCQUEyQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLHdCQUF3QixDQUFDLFdBQVcsRUFBRTtnQkFDcEUsNEJBQTRCLENBQUMsZUFBZTtnQkFDNUMsNEJBQTRCLENBQUMsYUFBYTtnQkFDMUMsNEJBQTRCLENBQUMsTUFBTTtnQkFDbkMsNEJBQTRCLENBQUMsV0FBVzthQUN6QyxDQUFDO1lBQ0YsR0FBRyxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxDQUN0QyxDQUFDO0lBQ0osQ0FBQzs7O1lBcEJGLFVBQVU7OztZQUhGLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGhhcyB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBEZXZpY2VDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4vZGV2aWNlLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBEZXZpY2VDb25maWd1cmF0aW9uT3BlcmF0aW9uIH0gZnJvbSAnLi4vcmVwb3NpdG9yeS5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEZXZpY2VDb25maWd1cmF0aW9uR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGV2aWNlQ29uZmlndXJhdGlvblNlcnZpY2U6IERldmljZUNvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7fVxuXG4gIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkge1xuICAgIGNvbnN0IGNvbnRleHREYXRhID0gcm91dGUuZGF0YS5jb250ZXh0RGF0YSB8fCByb3V0ZS5wYXJlbnQuZGF0YS5jb250ZXh0RGF0YTtcbiAgICBpZiAoIWNvbnRleHREYXRhKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICAoY29udGV4dERhdGEuYzh5X1N1cHBvcnRlZENvbmZpZ3VyYXRpb25zICYmXG4gICAgICAgIGNvbnRleHREYXRhLmM4eV9TdXBwb3J0ZWRDb25maWd1cmF0aW9ucy5sZW5ndGggPiAwKSB8fFxuICAgICAgdGhpcy5kZXZpY2VDb25maWd1cmF0aW9uU2VydmljZS5oYXNBbnlTdXBwb3J0ZWRPcGVyYXRpb24oY29udGV4dERhdGEsIFtcbiAgICAgICAgRGV2aWNlQ29uZmlndXJhdGlvbk9wZXJhdGlvbi5ET1dOTE9BRF9DT05GSUcsXG4gICAgICAgIERldmljZUNvbmZpZ3VyYXRpb25PcGVyYXRpb24uVVBMT0FEX0NPTkZJRyxcbiAgICAgICAgRGV2aWNlQ29uZmlndXJhdGlvbk9wZXJhdGlvbi5DT05GSUcsXG4gICAgICAgIERldmljZUNvbmZpZ3VyYXRpb25PcGVyYXRpb24uU0VORF9DT05GSUdcbiAgICAgIF0pIHx8XG4gICAgICBoYXMoY29udGV4dERhdGEsICdjOHlfQ29uZmlndXJhdGlvbicpXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,7 +1,7 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { Component } from '@angular/core';
3
3
  import { ActivatedRoute } from '@angular/router';
4
- import { assign, isEmpty } from 'lodash-es';
4
+ import { assign, get, isEmpty } from 'lodash-es';
5
5
  import { BsModalService } from 'ngx-bootstrap/modal';
6
6
  import { BehaviorSubject, combineLatest, from, of } from 'rxjs';
7
7
  import { distinctUntilChanged, filter, map, shareReplay, switchMap, take } from 'rxjs/operators';
@@ -31,6 +31,7 @@ export class FirmwareDeviceTabComponent {
31
31
  return of([]);
32
32
  }
33
33
  }), shareReplay(1));
34
+ this.supportsFirmwareOperations$ = this.device$.pipe(map((device) => get(device, 'c8y_SupportedOperations', []).indexOf('c8y_Firmware') > -1));
34
35
  this.changesOperation$ = new BehaviorSubject(null);
35
36
  this.changesInProgress$ = this.changesOperation$.pipe(map(operation => this.isInProgress(operation)));
36
37
  }
@@ -165,7 +166,7 @@ export class FirmwareDeviceTabComponent {
165
166
  FirmwareDeviceTabComponent.decorators = [
166
167
  { type: Component, args: [{
167
168
  selector: 'c8y-firmware-device-tab',
168
- template: "<div class=\"row\">\n <div class=\"col-lg-12 col-lg-max\">\n <div class=\"card\">\n <div class=\"card-header separator\">\n <h4 class=\"card-title\" translate>Current firmware</h4>\n </div>\n <div class=\"inner-scroll\">\n <fieldset *ngIf=\"changesOperation$ | async\" class=\"card-block bg-gray-white\">\n <c8y-single-operation [operation]=\"changesOperation$ | async\"></c8y-single-operation>\n </fieldset>\n <div class=\"card-block p-t-0 p-b-0\">\n \n <!-- EMPTY STATE -->\n <ng-container *ngIf=\"isEmpty(deviceFirmwareFragment$ | async); else firmwareBlock\">\n <div class=\"c8y-empty-state text-center\">\n <h1 c8yIcon=\"c8y-firmware\" class=\"c8y-icon-duocolor\"></h1>\n <p>\n <strong translate>No firmware installed.</strong> <br />\n <small translate>Click below to install firmware into this device.</small>\n </p>\n </div>\n </ng-container>\n\n <!-- FIRMWARE -->\n <ng-template #firmwareBlock>\n <c8y-list-group class=\"no-border-last\">\n <c8y-li>\n <c8y-li-icon>\n <i c8yIcon=\"c8y-firmware\"></i>\n </c8y-li-icon>\n\n <c8y-li-body *ngIf=\"deviceFirmwareFragment$ | async as deviceFirmwareFragment\">\n <!-- Firmware title -->\n <p class=\"m-b-16 text-medium\">\n {{ deviceFirmwareFragment.name }}\n </p>\n <!-- Firmware description -->\n <div *ngIf=\"repositoryEntry$ | async as repositoryEntry\">\n <p class=\"text-label-small\" translate>\n Description\n </p>\n <p>\n {{ repositoryEntry.description }}\n </p>\n </div>\n\n <!-- BASE/PATCH VERSION -->\n <div class=\"m-b-16\">\n <p class=\"text-label-small\" translate>\n Version\n </p>\n <p *ngIf=\"deviceFirmwareFragment.version; else versionNotSpecified\">\n {{ deviceFirmwareFragment.version }}\n </p>\n <ng-template #versionNotSpecified>\n <p>\n <em class=\"text-muted\"> ({{ 'not specified`version`' | translate }}) </em>\n </p>\n </ng-template>\n </div>\n\n <!-- ADD PATCH -->\n <button\n *ngIf=\"(this.patches$ | async)?.length > 0\"\n (click)=\"addPatch()\"\n class=\"btn btn-xs btn-primary\"\n [disabled]=\"changesInProgress$ | async\"\n title=\"{{ 'Patches available' | translate }}\"\n >\n {{ 'Patches available' | translate }}\n </button>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n </ng-template>\n </div>\n </div>\n <div class=\"card-footer separator-top\">\n\n <!-- INSTALL FIRMWARE -->\n <button\n *ngIf=\"isEmpty(deviceFirmwareFragment$ | async)\"\n class=\"btn btn-primary\"\n (click)=\"installFirmware()\"\n title=\"{{ 'Install firmware' | translate }}\"\n >\n {{ 'Install firmware' | translate }}\n </button>\n\n <!-- REPLACE FIRMWARE -->\n <button\n *ngIf=\"!isEmpty(deviceFirmwareFragment$ | async)\"\n class=\"btn btn-primary\"\n (click)=\"installFirmware()\"\n [disabled]=\"changesInProgress$ | async\"\n title=\"{{ 'Replace firmware' | translate }}\"\n >\n {{ 'Replace firmware' | translate }}\n </button>\n </div>\n </div>\n </div>\n</div>\n"
169
+ template: "<div class=\"row\">\n <div class=\"col-lg-12 col-lg-max\">\n <div class=\"card\">\n <div class=\"card-header separator\">\n <h4 class=\"card-title\" translate>Current firmware</h4>\n </div>\n <div class=\"inner-scroll\">\n <fieldset *ngIf=\"changesOperation$ | async\" class=\"card-block bg-gray-white\">\n <c8y-single-operation [operation]=\"changesOperation$ | async\"></c8y-single-operation>\n </fieldset>\n <div class=\"card-block p-t-0 p-b-0\">\n <!-- EMPTY STATE -->\n <ng-container *ngIf=\"isEmpty(deviceFirmwareFragment$ | async); else firmwareBlock\">\n <div class=\"c8y-empty-state text-center\">\n <h1 c8yIcon=\"c8y-firmware\" class=\"c8y-icon-duocolor\"></h1>\n <p>\n <strong translate>No firmware installed.</strong> <br />\n <small translate>Click below to install firmware into this device.</small>\n </p>\n </div>\n </ng-container>\n\n <!-- FIRMWARE -->\n <ng-template #firmwareBlock>\n <c8y-list-group class=\"no-border-last\">\n <c8y-li>\n <c8y-li-icon>\n <i c8yIcon=\"c8y-firmware\"></i>\n </c8y-li-icon>\n\n <c8y-li-body *ngIf=\"deviceFirmwareFragment$ | async as deviceFirmwareFragment\">\n <!-- Firmware title -->\n <p class=\"m-b-16 text-medium\">\n {{ deviceFirmwareFragment.name }}\n </p>\n <!-- Firmware description -->\n <div *ngIf=\"repositoryEntry$ | async as repositoryEntry\">\n <p class=\"text-label-small\" translate>Description</p>\n <p>\n {{ repositoryEntry.description }}\n </p>\n </div>\n\n <!-- BASE/PATCH VERSION -->\n <div class=\"m-b-16\">\n <p class=\"text-label-small\" translate>Version</p>\n <p *ngIf=\"deviceFirmwareFragment.version; else versionNotSpecified\">\n {{ deviceFirmwareFragment.version }}\n </p>\n <ng-template #versionNotSpecified>\n <p>\n <em class=\"text-muted\"> ({{ 'not specified`version`' | translate }}) </em>\n </p>\n </ng-template>\n </div>\n\n <!-- ADD PATCH -->\n <button\n *ngIf=\"\n (supportsFirmwareOperations$ | async) && (this.patches$ | async)?.length > 0\n \"\n (click)=\"addPatch()\"\n class=\"btn btn-xs btn-primary\"\n [disabled]=\"changesInProgress$ | async\"\n title=\"{{ 'Patches available' | translate }}\"\n >\n {{ 'Patches available' | translate }}\n </button>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n </ng-template>\n </div>\n </div>\n <div *ngIf=\"supportsFirmwareOperations$ | async\" class=\"card-footer separator-top\">\n <!-- INSTALL FIRMWARE -->\n <button\n *ngIf=\"isEmpty(deviceFirmwareFragment$ | async)\"\n class=\"btn btn-primary\"\n (click)=\"installFirmware()\"\n title=\"{{ 'Install firmware' | translate }}\"\n >\n {{ 'Install firmware' | translate }}\n </button>\n\n <!-- REPLACE FIRMWARE -->\n <button\n *ngIf=\"!isEmpty(deviceFirmwareFragment$ | async)\"\n class=\"btn btn-primary\"\n (click)=\"installFirmware()\"\n [disabled]=\"changesInProgress$ | async\"\n title=\"{{ 'Replace firmware' | translate }}\"\n >\n {{ 'Replace firmware' | translate }}\n </button>\n </div>\n </div>\n </div>\n</div>\n"
169
170
  },] }
170
171
  ];
171
172
  FirmwareDeviceTabComponent.ctorParameters = () => [
@@ -174,4 +175,4 @@ FirmwareDeviceTabComponent.ctorParameters = () => [
174
175
  { type: InventoryService },
175
176
  { type: BsModalService }
176
177
  ];
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlybXdhcmUtZGV2aWNlLXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9yZXBvc2l0b3J5L2Zpcm13YXJlLWRldmljZS10YWIvZmlybXdhcmUtZGV2aWNlLXRhYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFjLGFBQWEsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xFLE9BQU8sRUFBOEIsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBa0MsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFNbkcsTUFBTSxPQUFPLDBCQUEwQjtJQWlEckMsWUFDVSxLQUFxQixFQUNyQixVQUE2QixFQUM3QixTQUEyQixFQUMzQixPQUF1QjtRQUh2QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUFt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LENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUNuRCxlQUFlLENBQUMsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDN0MsSUFBSSxlQUFlLENBQUMsTUFBTSxLQUFLLGVBQWUsQ0FBQyxVQUFVLEVBQUU7b0JBQ3pELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztpQkFDbkI7WUFDSCxDQUFDLEVBQ0QsZUFBZSxDQUFDLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUNGLENBQUM7U0FDSDtJQUNILENBQUM7SUFFTyxZQUFZLENBQUMsU0FBcUI7UUFDeEMsT0FBTyxDQUNMLFNBQVMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQzdGLENBQUM7SUFDSixDQUFDOzs7WUFwT0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLDI5SEFBaUQ7YUFDbEQ7OztZQWhCUSxjQUFjO1lBU2QsaUJBQWlCO1lBRlcsZ0JBQWdCO1lBTDVDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGFzc2lnbiwgaXNFbXB0eSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBmcm9tLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBNb2RhbFNlbGVjdGlvbk1vZGUsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJT3BlcmF0aW9uLCBJbnZlbnRvcnlTZXJ2aWNlLCBPcGVyYXRpb25TdGF0dXMgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5cbmltcG9ydCB7IFJlcG9zaXRvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vcmVwb3NpdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IERldmljZUZpcm13YXJlLCBGaXJtd2FyZUJpbmFyeSwgUmVwb3NpdG9yeVR5cGUgfSBmcm9tICcuLi9yZXBvc2l0b3J5Lm1vZGVsJztcbmltcG9ydCB7IFJlcG9zaXRvcnlTZWxlY3RNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL3NlbGVjdC1tb2RhbC9yZXBvc2l0b3J5LXNlbGVjdC1tb2RhbC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZmlybXdhcmUtZGV2aWNlLXRhYicsXG4gIHRlbXBsYXRlVXJsOiAnZmlybXdhcmUtZGV2aWNlLXRhYi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRmlybXdhcmVEZXZpY2VUYWJDb21wb25lbnQge1xuICBpc0VtcHR5ID0gaXNFbXB0eTtcbiAgcmVsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGRldmljZSQ6IEJlaGF2aW9yU3ViamVjdDxJTWFuYWdlZE9iamVjdD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFxuICAgIHRoaXMucm91dGUucGFyZW50LnNuYXBzaG90LmRhdGEuY29udGV4dERhdGFcbiAgKTtcbiAgZGV2aWNlRmlybXdhcmVGcmFnbWVudCQ6IE9ic2VydmFibGU8RGV2aWNlRmlybXdhcmU+ID0gdGhpcy5kZXZpY2UkLnBpcGUoXG4gICAgbWFwKGRldmljZSA9PiBkZXZpY2UuYzh5X0Zpcm13YXJlKVxuICApO1xuICBmaXJtd2FyZUJpbmFyeSQ6IE9ic2VydmFibGU8SU1hbmFnZWRPYmplY3Q+ID0gdGhpcy5kZXZpY2VGaXJtd2FyZUZyYWdtZW50JC5waXBlKFxuICAgIGZpbHRlcihkZXZpY2VGaXJtd2FyZUZyYWdtZW50ID0+ICFpc0VtcHR5KGRldmljZUZpcm13YXJlRnJhZ21lbnQpKSxcbiAgICBzd2l0Y2hNYXAoZGV2aWNlRmlybXdhcmVGcmFnbWVudCA9PlxuICAgICAgZnJvbShcbiAgICAgICAgdGhpcy5yZXBvc2l0b3J5LmdldFJlcG9zaXRvcnlCaW5hcnlNb0J5VmVyc2lvbihcbiAgICAgICAgICBkZXZpY2VGaXJtd2FyZUZyYWdtZW50LFxuICAgICAgICAgIFJlcG9zaXRvcnlUeXBlLkZJUk1XQVJFXG4gICAgICAgIClcbiAgICAgIClcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG4gIHJlcG9zaXRvcnlFbnRyeSQ6IE9ic2VydmFibGU8SU1hbmFnZWRPYmplY3Q+ID0gdGhpcy5maXJtd2FyZUJpbmFyeSQucGlwZShcbiAgICBzd2l0Y2hNYXAobW8gPT4gdGhpcy5yZXBvc2l0b3J5LmdldFJlcG9zaXRvcnlFbnRyeU1PJChtbykpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG4gIHBhdGNoZXMkOiBPYnNlcnZhYmxlPElNYW5hZ2VkT2JqZWN0W10+ID0gY29tYmluZUxhdGVzdChcbiAgICB0aGlzLmZpcm13YXJlQmluYXJ5JCxcbiAgICB0aGlzLnJlcG9zaXRvcnlFbnRyeSRcbiAgKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW2Zpcm13YXJlQmluYXJ5LCByZXBvc2l0b3J5RW50cnldKSA9PiB7XG4gICAgICBpZiAocmVwb3NpdG9yeUVudHJ5ICYmIGZpcm13YXJlQmluYXJ5KSB7XG4gICAgICAgIGNvbnN0IHZlcnNpb246IHN0cmluZyA9IHRoaXMucmVwb3NpdG9yeS5nZXRCYXNlVmVyc2lvbkZyb21NTyhcbiAgICAgICAgICBmaXJtd2FyZUJpbmFyeSBhcyBGaXJtd2FyZUJpbmFyeVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMucmVwb3NpdG9yeS5saXN0UGF0Y2hWZXJzaW9ucyhyZXBvc2l0b3J5RW50cnksIHZlcnNpb24pKS5waXBlKFxuICAgICAgICAgIG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG4gIGNoYW5nZXNPcGVyYXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJT3BlcmF0aW9uPihudWxsKTtcbiAgY2hhbmdlc0luUHJvZ3Jlc3MkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5jaGFuZ2VzT3BlcmF0aW9uJC5waXBlKFxuICAgIG1hcChvcGVyYXRpb24gPT4gdGhpcy5pc0luUHJvZ3Jlc3Mob3BlcmF0aW9uKSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlcG9zaXRvcnk6IFJlcG9zaXRvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW52ZW50b3J5OiBJbnZlbnRvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbDogQnNNb2RhbFNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIC8vIFRPRE8gY2hlY2sgcm91dGUgc25hcHNob3QsIHdoeSBpcyBub3QgcmVmcmVzaGluZyBkZXZpY2UuXG4gICAgLy8gU2NlbmFyaW86IG1pc3NpbmcgZGV2aWNlRmlybXdhcmVGcmFnbWVudCA9PiBpbnN0YWxsIG5ldyB2ZXJzaW9uID0+IHN3aXRjaCB0YWJzLlxuICAgIC8vIEV4cGVjdGVkOiBkZXZpY2Ugc2hvdWxkIGJlIHNldC5cbiAgICBhd2FpdCB0aGlzLmxvYWREZXZpY2UoKTtcbiAgICBhd2FpdCB0aGlzLmxvYWRPcGVyYXRpb24oKTtcbiAgfVxuXG4gIGluc3RhbGxGaXJtd2FyZSgpIHtcbiAgICBjb25zdCBpbml0aWFsU3RhdGU6IFBhcnRpYWw8UmVwb3NpdG9yeVNlbGVjdE1vZGFsQ29tcG9uZW50PiAmIHtcbiAgICAgIHJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zRm4kOiAobW9kYWw6IGFueSkgPT4gT2JzZXJ2YWJsZTxJTWFuYWdlZE9iamVjdFtdPjtcbiAgICB9ID0ge1xuICAgICAgcmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnMkOiBvZihbXSksXG4gICAgICByZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9uc0ZuJDogbW9kYWwgPT5cbiAgICAgICAgdGhpcy5nZXRSZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9ucyQobW9kYWwuY29udGVudC5zZWFyY2hUZXJtKSxcbiAgICAgIHJlcG9zaXRvcnlUeXBlOiBSZXBvc2l0b3J5VHlwZS5GSVJNV0FSRSxcbiAgICAgIHRpdGxlOiBnZXR0ZXh0KCdJbnN0YWxsIGZpcm13YXJlJyksXG4gICAgICBzdWJUaXRsZTogZ2V0dGV4dCgnQXZhaWxhYmxlIGZpcm13YXJlcyBtYXRjaGluZyB0aGUgZGV2aWNlIHR5cGUnKSxcbiAgICAgIGljb246ICdjOHktZmlybXdhcmUnLFxuICAgICAgbW9kZTogTW9kYWxTZWxlY3Rpb25Nb2RlLlNJTkdMRSxcbiAgICAgIGxhYmVsczogeyBvazogZ2V0dGV4dCgnSW5zdGFsbCcpIH0sXG4gICAgICBkaXNhYmxlU2VsZWN0ZWQ6IGZhbHNlXG4gICAgfTtcblxuICAgIHRoaXMuZGV2aWNlRmlybXdhcmVGcmFnbWVudCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBzd2l0Y2hNYXAoZGV2aWNlRmlybXdhcmVGcmFnbWVudCA9PiB7XG4gICAgICAgICAgaWYgKGRldmljZUZpcm13YXJlRnJhZ21lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbmFtZSwgdmVyc2lvbiB9ID0gZGV2aWNlRmlybXdhcmVGcmFnbWVudDtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gW3sgbmFtZSwgdmVyc2lvbiB9XTtcbiAgICAgICAgICAgIGFzc2lnbihpbml0aWFsU3RhdGUsIHsgc2VsZWN0ZWQgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgbW9kYWwgPSB0aGlzLmJzTW9kYWwuc2hvdyhSZXBvc2l0b3J5U2VsZWN0TW9kYWxDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWUsXG4gICAgICAgICAgICBpbml0aWFsU3RhdGVcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChpbml0aWFsU3RhdGUucmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnNGbiQpIHtcbiAgICAgICAgICAgIG1vZGFsLmNvbnRlbnQucmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnMkID0gaW5pdGlhbFN0YXRlLnJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zRm4kKFxuICAgICAgICAgICAgICBtb2RhbFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtb2RhbC5jb250ZW50LmxvYWQubmV4dCgpO1xuXG4gICAgICAgICAgcmV0dXJuIG1vZGFsLmNvbnRlbnQucmVzdWx0RW1pdHRlcjtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFtzZWxlY3RlZEZpcm13YXJlXSkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZU9wZXJhdGlvbihzZWxlY3RlZEZpcm13YXJlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0UmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnMkKHNlYXJjaFRlcm0kOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPikge1xuICAgIHJldHVybiBzZWFyY2hUZXJtJC5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcChzZWFyY2hUZXJtID0+XG4gICAgICAgIHRoaXMucmVwb3NpdG9yeS5saXN0UmVwb3NpdG9yeUVudHJpZXMoUmVwb3NpdG9yeVR5cGUuRklSTVdBUkUsIHtcbiAgICAgICAgICBxdWVyeTogdGhpcy5yZXBvc2l0b3J5LmdldERldmljZVR5cGVRdWVyeShSZXBvc2l0b3J5VHlwZS5GSVJNV0FSRSwgdGhpcy5kZXZpY2UkLnZhbHVlKSxcbiAgICAgICAgICBwYXJ0aWFsTmFtZTogc2VhcmNoVGVybSxcbiAgICAgICAgICBwYXJhbXM6IHsgcGFnZVNpemU6IDEwMCB9XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgICAgbWFwKCh7IGRhdGEgfSkgPT4gZGF0YSksXG4gICAgICBtYXAobW9zID0+IHRoaXMuZ2V0QW5kQXNzaWduUmVwb3NpdG9yeUJpbmFyaWVzKG1vcykpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG5cbiAgZ2V0QW5kQXNzaWduUmVwb3NpdG9yeUJpbmFyaWVzKG1vczogSU1hbmFnZWRPYmplY3RbXSkge1xuICAgIG1vcy5mb3JFYWNoKG1vID0+IHtcbiAgICAgIG1vLnZlcnNpb25zID0gdGhpcy5yZXBvc2l0b3J5Lmxpc3RCYXNlVmVyc2lvbnMobW8pO1xuICAgIH0pO1xuICAgIHJldHVybiBtb3M7XG4gIH1cblxuICBhZGRQYXRjaCgpIHtcbiAgICBjb25zdCBpbml0aWFsU3RhdGU6IFBhcnRpYWw8UmVwb3NpdG9yeVNlbGVjdE1vZGFsQ29tcG9uZW50PiAmIHtcbiAgICAgIHJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zJDogT2JzZXJ2YWJsZTxJTWFuYWdlZE9iamVjdFtdPjtcbiAgICB9ID0ge1xuICAgICAgcmVwb3NpdG9yeVR5cGU6IFJlcG9zaXRvcnlUeXBlLkZJUk1XQVJFLFxuICAgICAgcmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnMkOiB0aGlzLmdldFJlcG9zaXRvcnlFbnRyeVdpdGhQYXRjaGVzJCgpLFxuICAgICAgdGl0bGU6IGdldHRleHQoJ0luc3RhbGwgZmlybXdhcmUnKSxcbiAgICAgIHN1YlRpdGxlOiBnZXR0ZXh0KCdBdmFpbGFibGUgZmlybXdhcmVzIG1hdGNoaW5nIHRoZSBkZXZpY2UgdHlwZScpLFxuICAgICAgaWNvbjogJ2M4eS1maXJtd2FyZScsXG4gICAgICBtb2RlOiBNb2RhbFNlbGVjdGlvbk1vZGUuU0lOR0xFLFxuICAgICAgbGFiZWxzOiB7IG9rOiBnZXR0ZXh0KCdJbnN0YWxsJykgfSxcbiAgICAgIGRpc2FibGVTZWxlY3RlZDogZmFsc2VcbiAgICB9O1xuXG4gICAgdGhpcy5kZXZpY2VGaXJtd2FyZUZyYWdtZW50JFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHN3aXRjaE1hcChkZXZpY2VGaXJtd2FyZUZyYWdtZW50ID0+IHtcbiAgICAgICAgICBpZiAoZGV2aWNlRmlybXdhcmVGcmFnbWVudCkge1xuICAgICAgICAgICAgY29uc3QgeyBuYW1lLCB2ZXJzaW9uIH0gPSBkZXZpY2VGaXJtd2FyZUZyYWdtZW50O1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBbeyBuYW1lLCB2ZXJzaW9uIH1dO1xuICAgICAgICAgICAgYXNzaWduKGluaXRpYWxTdGF0ZSwgeyBzZWxlY3RlZCB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBtb2RhbCA9IHRoaXMuYnNNb2RhbC5zaG93KFJlcG9zaXRvcnlTZWxlY3RNb2RhbENvbXBvbmVudCwge1xuICAgICAgICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZSxcbiAgICAgICAgICAgIGluaXRpYWxTdGF0ZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIG1vZGFsLmNvbnRlbnQubG9hZC5uZXh0KCk7XG5cbiAgICAgICAgICByZXR1cm4gbW9kYWwuY29udGVudC5yZXN1bHRFbWl0dGVyO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShzZWxlY3RlZE9wdGlvbiA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlT3BlcmF0aW9uKHNlbGVjdGVkT3B0aW9uKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0UmVwb3NpdG9yeUVudHJ5V2l0aFBhdGNoZXMkKCkge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHRoaXMucmVwb3NpdG9yeUVudHJ5JCwgdGhpcy5wYXRjaGVzJCkucGlwZShcbiAgICAgIG1hcCgoW3JlcG9zaXRvcnlFbnRyeSwgcGF0Y2hlc10pID0+IHtcbiAgICAgICAgcmV0dXJuIFt7IC4uLnJlcG9zaXRvcnlFbnRyeSwgdmVyc2lvbnM6IHBhdGNoZXMgfV07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBhc3luYyBsb2FkRGV2aWNlKCkge1xuICAgIHRoaXMucmVsb2FkaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBkZXZpY2VJZCA9IHRoaXMuZGV2aWNlJC52YWx1ZS5pZDtcbiAgICBjb25zdCBkZXZpY2UgPSAoYXdhaXQgdGhpcy5pbnZlbnRvcnkuZGV0YWlsKGRldmljZUlkLCB7IHdpdGhDaGlsZHJlbjogZmFsc2UgfSkpLmRhdGE7XG4gICAgdGhpcy5kZXZpY2UkLm5leHQoZGV2aWNlKTtcbiAgICB0aGlzLnJlbG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVPcGVyYXRpb24oc2VsZWN0ZWRGaXJtd2FyZSkge1xuICAgIGNvbnN0IG9wZXJhdGlvbiA9IGF3YWl0IHRoaXMucmVwb3NpdG9yeS5jcmVhdGVGaXJtd2FyZVVwZGF0ZU9wZXJhdGlvbihcbiAgICAgIHRoaXMuZGV2aWNlJC52YWx1ZSxcbiAgICAgIHNlbGVjdGVkRmlybXdhcmVcbiAgICApO1xuICAgIHRoaXMudHJhY2tPcGVyYXRpb24ob3BlcmF0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZE9wZXJhdGlvbigpIHtcbiAgICBjb25zdCBkZXZpY2VJZCA9IHRoaXMuZGV2aWNlJC52YWx1ZS5pZDtcbiAgICBjb25zdCBvcGVyYXRpb24gPSBhd2FpdCB0aGlzLnJlcG9zaXRvcnkuZ2V0TGFzdEZpcm13YXJlVXBkYXRlT3BlcmF0aW9uKGRldmljZUlkKTtcbiAgICB0aGlzLnRyYWNrT3BlcmF0aW9uKG9wZXJhdGlvbik7XG4gIH1cblxuICBwcml2YXRlIHRyYWNrT3BlcmF0aW9uKG9wZXJhdGlvbjogSU9wZXJhdGlvbikge1xuICAgIHRoaXMuY2hhbmdlc09wZXJhdGlvbiQubmV4dChvcGVyYXRpb24pO1xuXG4gICAgaWYgKHRoaXMuaXNJblByb2dyZXNzKG9wZXJhdGlvbikpIHtcbiAgICAgIHRoaXMucmVwb3NpdG9yeS5vYnNlcnZlT3BlcmF0aW9uKG9wZXJhdGlvbikuc3Vic2NyaWJlKFxuICAgICAgICBvcGVyYXRpb25VcGRhdGUgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbmdlc09wZXJhdGlvbiQubmV4dChvcGVyYXRpb25VcGRhdGUpO1xuICAgICAgICAgIGlmIChvcGVyYXRpb25VcGRhdGUuc3RhdHVzID09PSBPcGVyYXRpb25TdGF0dXMuU1VDQ0VTU0ZVTCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkRGV2aWNlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBvcGVyYXRpb25VcGRhdGUgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbmdlc09wZXJhdGlvbiQubmV4dChvcGVyYXRpb25VcGRhdGUpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNJblByb2dyZXNzKG9wZXJhdGlvbjogSU9wZXJhdGlvbikge1xuICAgIHJldHVybiAoXG4gICAgICBvcGVyYXRpb24gJiYgW09wZXJhdGlvblN0YXR1cy5QRU5ESU5HLCBPcGVyYXRpb25TdGF0dXMuRVhFQ1VUSU5HXS5pbmNsdWRlcyhvcGVyYXRpb24uc3RhdHVzKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlybXdhcmUtZGV2aWNlLXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9yZXBvc2l0b3J5L2Zpcm13YXJlLWRldmljZS10YWIvZmlybXdhcmUtZGV2aWNlLXRhYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRSxPQUFPLEVBQThCLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQWtDLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBTW5HLE1BQU0sT0FBTywwQkFBMEI7SUF1RHJDLFlBQ1UsS0FBcUIsRUFDckIsVUFBNkIsRUFDN0IsU0FBMkIsRUFDM0IsT0FBdUI7UUFIdkIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsZUFBVSxHQUFW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LElBQUksQ0FBQyxVQUFVLENBQUMsOEJBQThCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDakYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQyxDQUFDO0tBQUE7SUFFTyxjQUFjLENBQUMsU0FBcUI7UUFDMUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV2QyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQ25ELGVBQWUsQ0FBQyxFQUFFO2dCQUNoQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEtBQUssZUFBZSxDQUFDLFVBQVUsRUFBRTtvQkFDekQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2lCQUNuQjtZQUNILENBQUMsRUFDRCxlQUFlLENBQUMsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUMvQyxDQUFDLENBQ0YsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FBQyxTQUFxQjtRQUN4QyxPQUFPLENBQ0wsU0FBUyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FDN0YsQ0FBQztJQUNKLENBQUM7OztZQTFPRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMscy9IQUFpRDthQUNsRDs7O1lBaEJRLGNBQWM7WUFTZCxpQkFBaUI7WUFGVyxnQkFBZ0I7WUFMNUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgYXNzaWduLCBnZXQsIGlzRW1wdHkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgZnJvbSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTW9kYWxTZWxlY3Rpb25Nb2RlLCBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgSU9wZXJhdGlvbiwgSW52ZW50b3J5U2VydmljZSwgT3BlcmF0aW9uU3RhdHVzIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuXG5pbXBvcnQgeyBSZXBvc2l0b3J5U2VydmljZSB9IGZyb20gJy4uL3JlcG9zaXRvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBEZXZpY2VGaXJtd2FyZSwgRmlybXdhcmVCaW5hcnksIFJlcG9zaXRvcnlUeXBlIH0gZnJvbSAnLi4vcmVwb3NpdG9yeS5tb2RlbCc7XG5pbXBvcnQgeyBSZXBvc2l0b3J5U2VsZWN0TW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9zZWxlY3QtbW9kYWwvcmVwb3NpdG9yeS1zZWxlY3QtbW9kYWwuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWZpcm13YXJlLWRldmljZS10YWInLFxuICB0ZW1wbGF0ZVVybDogJ2Zpcm13YXJlLWRldmljZS10YWIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEZpcm13YXJlRGV2aWNlVGFiQ29tcG9uZW50IHtcbiAgaXNFbXB0eSA9IGlzRW1wdHk7XG4gIHJlbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBkZXZpY2UkOiBCZWhhdmlvclN1YmplY3Q8SU1hbmFnZWRPYmplY3Q+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChcbiAgICB0aGlzLnJvdXRlLnBhcmVudC5zbmFwc2hvdC5kYXRhLmNvbnRleHREYXRhXG4gICk7XG4gIGRldmljZUZpcm13YXJlRnJhZ21lbnQkOiBPYnNlcnZhYmxlPERldmljZUZpcm13YXJlPiA9IHRoaXMuZGV2aWNlJC5waXBlKFxuICAgIG1hcChkZXZpY2UgPT4gZGV2aWNlLmM4eV9GaXJtd2FyZSlcbiAgKTtcbiAgZmlybXdhcmVCaW5hcnkkOiBPYnNlcnZhYmxlPElNYW5hZ2VkT2JqZWN0PiA9IHRoaXMuZGV2aWNlRmlybXdhcmVGcmFnbWVudCQucGlwZShcbiAgICBmaWx0ZXIoZGV2aWNlRmlybXdhcmVGcmFnbWVudCA9PiAhaXNFbXB0eShkZXZpY2VGaXJtd2FyZUZyYWdtZW50KSksXG4gICAgc3dpdGNoTWFwKGRldmljZUZpcm13YXJlRnJhZ21lbnQgPT5cbiAgICAgIGZyb20oXG4gICAgICAgIHRoaXMucmVwb3NpdG9yeS5nZXRSZXBvc2l0b3J5QmluYXJ5TW9CeVZlcnNpb24oXG4gICAgICAgICAgZGV2aWNlRmlybXdhcmVGcmFnbWVudCxcbiAgICAgICAgICBSZXBvc2l0b3J5VHlwZS5GSVJNV0FSRVxuICAgICAgICApXG4gICAgICApXG4gICAgKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuICByZXBvc2l0b3J5RW50cnkkOiBPYnNlcnZhYmxlPElNYW5hZ2VkT2JqZWN0PiA9IHRoaXMuZmlybXdhcmVCaW5hcnkkLnBpcGUoXG4gICAgc3dpdGNoTWFwKG1vID0+IHRoaXMucmVwb3NpdG9yeS5nZXRSZXBvc2l0b3J5RW50cnlNTyQobW8pKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuICBwYXRjaGVzJDogT2JzZXJ2YWJsZTxJTWFuYWdlZE9iamVjdFtdPiA9IGNvbWJpbmVMYXRlc3QoXG4gICAgdGhpcy5maXJtd2FyZUJpbmFyeSQsXG4gICAgdGhpcy5yZXBvc2l0b3J5RW50cnkkXG4gICkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFtmaXJtd2FyZUJpbmFyeSwgcmVwb3NpdG9yeUVudHJ5XSkgPT4ge1xuICAgICAgaWYgKHJlcG9zaXRvcnlFbnRyeSAmJiBmaXJtd2FyZUJpbmFyeSkge1xuICAgICAgICBjb25zdCB2ZXJzaW9uOiBzdHJpbmcgPSB0aGlzLnJlcG9zaXRvcnkuZ2V0QmFzZVZlcnNpb25Gcm9tTU8oXG4gICAgICAgICAgZmlybXdhcmVCaW5hcnkgYXMgRmlybXdhcmVCaW5hcnlcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnJlcG9zaXRvcnkubGlzdFBhdGNoVmVyc2lvbnMocmVwb3NpdG9yeUVudHJ5LCB2ZXJzaW9uKSkucGlwZShcbiAgICAgICAgICBtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgIH1cbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuICBzdXBwb3J0c0Zpcm13YXJlT3BlcmF0aW9ucyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmRldmljZSQucGlwZShcbiAgICBtYXAoXG4gICAgICAoZGV2aWNlOiBJTWFuYWdlZE9iamVjdCkgPT5cbiAgICAgICAgZ2V0KGRldmljZSwgJ2M4eV9TdXBwb3J0ZWRPcGVyYXRpb25zJywgW10pLmluZGV4T2YoJ2M4eV9GaXJtd2FyZScpID4gLTFcbiAgICApXG4gICk7XG4gIGNoYW5nZXNPcGVyYXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJT3BlcmF0aW9uPihudWxsKTtcbiAgY2hhbmdlc0luUHJvZ3Jlc3MkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5jaGFuZ2VzT3BlcmF0aW9uJC5waXBlKFxuICAgIG1hcChvcGVyYXRpb24gPT4gdGhpcy5pc0luUHJvZ3Jlc3Mob3BlcmF0aW9uKSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlcG9zaXRvcnk6IFJlcG9zaXRvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW52ZW50b3J5OiBJbnZlbnRvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbDogQnNNb2RhbFNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIC8vIFRPRE8gY2hlY2sgcm91dGUgc25hcHNob3QsIHdoeSBpcyBub3QgcmVmcmVzaGluZyBkZXZpY2UuXG4gICAgLy8gU2NlbmFyaW86IG1pc3NpbmcgZGV2aWNlRmlybXdhcmVGcmFnbWVudCA9PiBpbnN0YWxsIG5ldyB2ZXJzaW9uID0+IHN3aXRjaCB0YWJzLlxuICAgIC8vIEV4cGVjdGVkOiBkZXZpY2Ugc2hvdWxkIGJlIHNldC5cbiAgICBhd2FpdCB0aGlzLmxvYWREZXZpY2UoKTtcbiAgICBhd2FpdCB0aGlzLmxvYWRPcGVyYXRpb24oKTtcbiAgfVxuXG4gIGluc3RhbGxGaXJtd2FyZSgpIHtcbiAgICBjb25zdCBpbml0aWFsU3RhdGU6IFBhcnRpYWw8UmVwb3NpdG9yeVNlbGVjdE1vZGFsQ29tcG9uZW50PiAmIHtcbiAgICAgIHJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zRm4kOiAobW9kYWw6IGFueSkgPT4gT2JzZXJ2YWJsZTxJTWFuYWdlZE9iamVjdFtdPjtcbiAgICB9ID0ge1xuICAgICAgcmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnMkOiBvZihbXSksXG4gICAgICByZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9uc0ZuJDogbW9kYWwgPT5cbiAgICAgICAgdGhpcy5nZXRSZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9ucyQobW9kYWwuY29udGVudC5zZWFyY2hUZXJtKSxcbiAgICAgIHJlcG9zaXRvcnlUeXBlOiBSZXBvc2l0b3J5VHlwZS5GSVJNV0FSRSxcbiAgICAgIHRpdGxlOiBnZXR0ZXh0KCdJbnN0YWxsIGZpcm13YXJlJyksXG4gICAgICBzdWJUaXRsZTogZ2V0dGV4dCgnQXZhaWxhYmxlIGZpcm13YXJlcyBtYXRjaGluZyB0aGUgZGV2aWNlIHR5cGUnKSxcbiAgICAgIGljb246ICdjOHktZmlybXdhcmUnLFxuICAgICAgbW9kZTogTW9kYWxTZWxlY3Rpb25Nb2RlLlNJTkdMRSxcbiAgICAgIGxhYmVsczogeyBvazogZ2V0dGV4dCgnSW5zdGFsbCcpIH0sXG4gICAgICBkaXNhYmxlU2VsZWN0ZWQ6IGZhbHNlXG4gICAgfTtcblxuICAgIHRoaXMuZGV2aWNlRmlybXdhcmVGcmFnbWVudCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBzd2l0Y2hNYXAoZGV2aWNlRmlybXdhcmVGcmFnbWVudCA9PiB7XG4gICAgICAgICAgaWYgKGRldmljZUZpcm13YXJlRnJhZ21lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbmFtZSwgdmVyc2lvbiB9ID0gZGV2aWNlRmlybXdhcmVGcmFnbWVudDtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gW3sgbmFtZSwgdmVyc2lvbiB9XTtcbiAgICAgICAgICAgIGFzc2lnbihpbml0aWFsU3RhdGUsIHsgc2VsZWN0ZWQgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgbW9kYWwgPSB0aGlzLmJzTW9kYWwuc2hvdyhSZXBvc2l0b3J5U2VsZWN0TW9kYWxDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWUsXG4gICAgICAgICAgICBpbml0aWFsU3RhdGVcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChpbml0aWFsU3RhdGUucmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnNGbiQpIHtcbiAgICAgICAgICAgIG1vZGFsLmNvbnRlbnQucmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnMkID0gaW5pdGlhbFN0YXRlLnJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zRm4kKFxuICAgICAgICAgICAgICBtb2RhbFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtb2RhbC5jb250ZW50LmxvYWQubmV4dCgpO1xuXG4gICAgICAgICAgcmV0dXJuIG1vZGFsLmNvbnRlbnQucmVzdWx0RW1pdHRlcjtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFtzZWxlY3RlZEZpcm13YXJlXSkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZU9wZXJhdGlvbihzZWxlY3RlZEZpcm13YXJlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0UmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnMkKHNlYXJjaFRlcm0kOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPikge1xuICAgIHJldHVybiBzZWFyY2hUZXJtJC5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcChzZWFyY2hUZXJtID0+XG4gICAgICAgIHRoaXMucmVwb3NpdG9yeS5saXN0UmVwb3NpdG9yeUVudHJpZXMoUmVwb3NpdG9yeVR5cGUuRklSTVdBUkUsIHtcbiAgICAgICAgICBxdWVyeTogdGhpcy5yZXBvc2l0b3J5LmdldERldmljZVR5cGVRdWVyeShSZXBvc2l0b3J5VHlwZS5GSVJNV0FSRSwgdGhpcy5kZXZpY2UkLnZhbHVlKSxcbiAgICAgICAgICBwYXJ0aWFsTmFtZTogc2VhcmNoVGVybSxcbiAgICAgICAgICBwYXJhbXM6IHsgcGFnZVNpemU6IDEwMCB9XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgICAgbWFwKCh7IGRhdGEgfSkgPT4gZGF0YSksXG4gICAgICBtYXAobW9zID0+IHRoaXMuZ2V0QW5kQXNzaWduUmVwb3NpdG9yeUJpbmFyaWVzKG1vcykpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG5cbiAgZ2V0QW5kQXNzaWduUmVwb3NpdG9yeUJpbmFyaWVzKG1vczogSU1hbmFnZWRPYmplY3RbXSkge1xuICAgIG1vcy5mb3JFYWNoKG1vID0+IHtcbiAgICAgIG1vLnZlcnNpb25zID0gdGhpcy5yZXBvc2l0b3J5Lmxpc3RCYXNlVmVyc2lvbnMobW8pO1xuICAgIH0pO1xuICAgIHJldHVybiBtb3M7XG4gIH1cblxuICBhZGRQYXRjaCgpIHtcbiAgICBjb25zdCBpbml0aWFsU3RhdGU6IFBhcnRpYWw8UmVwb3NpdG9yeVNlbGVjdE1vZGFsQ29tcG9uZW50PiAmIHtcbiAgICAgIHJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zJDogT2JzZXJ2YWJsZTxJTWFuYWdlZE9iamVjdFtdPjtcbiAgICB9ID0ge1xuICAgICAgcmVwb3NpdG9yeVR5cGU6IFJlcG9zaXRvcnlUeXBlLkZJUk1XQVJFLFxuICAgICAgcmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnMkOiB0aGlzLmdldFJlcG9zaXRvcnlFbnRyeVdpdGhQYXRjaGVzJCgpLFxuICAgICAgdGl0bGU6IGdldHRleHQoJ0luc3RhbGwgZmlybXdhcmUnKSxcbiAgICAgIHN1YlRpdGxlOiBnZXR0ZXh0KCdBdmFpbGFibGUgZmlybXdhcmVzIG1hdGNoaW5nIHRoZSBkZXZpY2UgdHlwZScpLFxuICAgICAgaWNvbjogJ2M4eS1maXJtd2FyZScsXG4gICAgICBtb2RlOiBNb2RhbFNlbGVjdGlvbk1vZGUuU0lOR0xFLFxuICAgICAgbGFiZWxzOiB7IG9rOiBnZXR0ZXh0KCdJbnN0YWxsJykgfSxcbiAgICAgIGRpc2FibGVTZWxlY3RlZDogZmFsc2VcbiAgICB9O1xuXG4gICAgdGhpcy5kZXZpY2VGaXJtd2FyZUZyYWdtZW50JFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHN3aXRjaE1hcChkZXZpY2VGaXJtd2FyZUZyYWdtZW50ID0+IHtcbiAgICAgICAgICBpZiAoZGV2aWNlRmlybXdhcmVGcmFnbWVudCkge1xuICAgICAgICAgICAgY29uc3QgeyBuYW1lLCB2ZXJzaW9uIH0gPSBkZXZpY2VGaXJtd2FyZUZyYWdtZW50O1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBbeyBuYW1lLCB2ZXJzaW9uIH1dO1xuICAgICAgICAgICAgYXNzaWduKGluaXRpYWxTdGF0ZSwgeyBzZWxlY3RlZCB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBtb2RhbCA9IHRoaXMuYnNNb2RhbC5zaG93KFJlcG9zaXRvcnlTZWxlY3RNb2RhbENvbXBvbmVudCwge1xuICAgICAgICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZSxcbiAgICAgICAgICAgIGluaXRpYWxTdGF0ZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIG1vZGFsLmNvbnRlbnQubG9hZC5uZXh0KCk7XG5cbiAgICAgICAgICByZXR1cm4gbW9kYWwuY29udGVudC5yZXN1bHRFbWl0dGVyO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShzZWxlY3RlZE9wdGlvbiA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlT3BlcmF0aW9uKHNlbGVjdGVkT3B0aW9uKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0UmVwb3NpdG9yeUVudHJ5V2l0aFBhdGNoZXMkKCkge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHRoaXMucmVwb3NpdG9yeUVudHJ5JCwgdGhpcy5wYXRjaGVzJCkucGlwZShcbiAgICAgIG1hcCgoW3JlcG9zaXRvcnlFbnRyeSwgcGF0Y2hlc10pID0+IHtcbiAgICAgICAgcmV0dXJuIFt7IC4uLnJlcG9zaXRvcnlFbnRyeSwgdmVyc2lvbnM6IHBhdGNoZXMgfV07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBhc3luYyBsb2FkRGV2aWNlKCkge1xuICAgIHRoaXMucmVsb2FkaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBkZXZpY2VJZCA9IHRoaXMuZGV2aWNlJC52YWx1ZS5pZDtcbiAgICBjb25zdCBkZXZpY2UgPSAoYXdhaXQgdGhpcy5pbnZlbnRvcnkuZGV0YWlsKGRldmljZUlkLCB7IHdpdGhDaGlsZHJlbjogZmFsc2UgfSkpLmRhdGE7XG4gICAgdGhpcy5kZXZpY2UkLm5leHQoZGV2aWNlKTtcbiAgICB0aGlzLnJlbG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVPcGVyYXRpb24oc2VsZWN0ZWRGaXJtd2FyZSkge1xuICAgIGNvbnN0IG9wZXJhdGlvbiA9IGF3YWl0IHRoaXMucmVwb3NpdG9yeS5jcmVhdGVGaXJtd2FyZVVwZGF0ZU9wZXJhdGlvbihcbiAgICAgIHRoaXMuZGV2aWNlJC52YWx1ZSxcbiAgICAgIHNlbGVjdGVkRmlybXdhcmVcbiAgICApO1xuICAgIHRoaXMudHJhY2tPcGVyYXRpb24ob3BlcmF0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZE9wZXJhdGlvbigpIHtcbiAgICBjb25zdCBkZXZpY2VJZCA9IHRoaXMuZGV2aWNlJC52YWx1ZS5pZDtcbiAgICBjb25zdCBvcGVyYXRpb24gPSBhd2FpdCB0aGlzLnJlcG9zaXRvcnkuZ2V0TGFzdEZpcm13YXJlVXBkYXRlT3BlcmF0aW9uKGRldmljZUlkKTtcbiAgICB0aGlzLnRyYWNrT3BlcmF0aW9uKG9wZXJhdGlvbik7XG4gIH1cblxuICBwcml2YXRlIHRyYWNrT3BlcmF0aW9uKG9wZXJhdGlvbjogSU9wZXJhdGlvbikge1xuICAgIHRoaXMuY2hhbmdlc09wZXJhdGlvbiQubmV4dChvcGVyYXRpb24pO1xuXG4gICAgaWYgKHRoaXMuaXNJblByb2dyZXNzKG9wZXJhdGlvbikpIHtcbiAgICAgIHRoaXMucmVwb3NpdG9yeS5vYnNlcnZlT3BlcmF0aW9uKG9wZXJhdGlvbikuc3Vic2NyaWJlKFxuICAgICAgICBvcGVyYXRpb25VcGRhdGUgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbmdlc09wZXJhdGlvbiQubmV4dChvcGVyYXRpb25VcGRhdGUpO1xuICAgICAgICAgIGlmIChvcGVyYXRpb25VcGRhdGUuc3RhdHVzID09PSBPcGVyYXRpb25TdGF0dXMuU1VDQ0VTU0ZVTCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkRGV2aWNlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBvcGVyYXRpb25VcGRhdGUgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbmdlc09wZXJhdGlvbiQubmV4dChvcGVyYXRpb25VcGRhdGUpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNJblByb2dyZXNzKG9wZXJhdGlvbjogSU9wZXJhdGlvbikge1xuICAgIHJldHVybiAoXG4gICAgICBvcGVyYXRpb24gJiYgW09wZXJhdGlvblN0YXR1cy5QRU5ESU5HLCBPcGVyYXRpb25TdGF0dXMuRVhFQ1VUSU5HXS5pbmNsdWRlcyhvcGVyYXRpb24uc3RhdHVzKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,17 +1,16 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { get, indexOf } from 'lodash-es';
2
+ import { get, has, indexOf } from 'lodash-es';
3
3
  const FIRMWARE_FRAGMENT = 'c8y_Firmware';
4
4
  const SUPPORTED_OPERATIONS_FRAGMENT = 'c8y_SupportedOperations';
5
5
  export class FirmwareDeviceTabGuard {
6
6
  canActivate(route) {
7
7
  const contextData = get(route, 'data.contextData') || get(route, 'parent.data.contextData');
8
8
  const supportedOperations = get(contextData, SUPPORTED_OPERATIONS_FRAGMENT);
9
- return !!supportedOperations
10
- ? indexOf(supportedOperations, FIRMWARE_FRAGMENT) >= 0
11
- : false;
9
+ return ((!!supportedOperations ? indexOf(supportedOperations, FIRMWARE_FRAGMENT) >= 0 : false) ||
10
+ has(contextData, 'c8y_Firmware'));
12
11
  }
13
12
  }
14
13
  FirmwareDeviceTabGuard.decorators = [
15
14
  { type: Injectable }
16
15
  ];
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlybXdhcmUtZGV2aWNlLXRhYi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvZmlybXdhcmUtZGV2aWNlLXRhYi9maXJtd2FyZS1kZXZpY2UtdGFiLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFekMsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQUM7QUFDekMsTUFBTSw2QkFBNkIsR0FBRyx5QkFBeUIsQ0FBQztBQUdoRSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFdBQVcsQ0FBQyxLQUFLO1FBQ2YsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUseUJBQXlCLENBQUMsQ0FBQztRQUM1RixNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztRQUM1RSxPQUFPLENBQUMsQ0FBQyxtQkFBbUI7WUFDMUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7WUFDdEQsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNaLENBQUM7OztZQVJGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5BY3RpdmF0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBnZXQsIGluZGV4T2YgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5jb25zdCBGSVJNV0FSRV9GUkFHTUVOVCA9ICdjOHlfRmlybXdhcmUnO1xuY29uc3QgU1VQUE9SVEVEX09QRVJBVElPTlNfRlJBR01FTlQgPSAnYzh5X1N1cHBvcnRlZE9wZXJhdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmlybXdhcmVEZXZpY2VUYWJHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgY2FuQWN0aXZhdGUocm91dGUpIHtcbiAgICBjb25zdCBjb250ZXh0RGF0YSA9IGdldChyb3V0ZSwgJ2RhdGEuY29udGV4dERhdGEnKSB8fCBnZXQocm91dGUsICdwYXJlbnQuZGF0YS5jb250ZXh0RGF0YScpO1xuICAgIGNvbnN0IHN1cHBvcnRlZE9wZXJhdGlvbnMgPSBnZXQoY29udGV4dERhdGEsIFNVUFBPUlRFRF9PUEVSQVRJT05TX0ZSQUdNRU5UKTtcbiAgICByZXR1cm4gISFzdXBwb3J0ZWRPcGVyYXRpb25zXG4gICAgICA/IGluZGV4T2Yoc3VwcG9ydGVkT3BlcmF0aW9ucywgRklSTVdBUkVfRlJBR01FTlQpID49IDBcbiAgICAgIDogZmFsc2U7XG4gIH1cbn1cbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlybXdhcmUtZGV2aWNlLXRhYi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvZmlybXdhcmUtZGV2aWNlLXRhYi9maXJtd2FyZS1kZXZpY2UtdGFiLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTlDLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUFDO0FBQ3pDLE1BQU0sNkJBQTZCLEdBQUcseUJBQXlCLENBQUM7QUFHaEUsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxXQUFXLENBQUMsS0FBSztRQUNmLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLHlCQUF5QixDQUFDLENBQUM7UUFDNUYsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUMsV0FBVyxFQUFFLDZCQUE2QixDQUFDLENBQUM7UUFDNUUsT0FBTyxDQUNMLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUN0RixHQUFHLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUNqQyxDQUFDO0lBQ0osQ0FBQzs7O1lBVEYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkFjdGl2YXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGdldCwgaGFzLCBpbmRleE9mIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuY29uc3QgRklSTVdBUkVfRlJBR01FTlQgPSAnYzh5X0Zpcm13YXJlJztcbmNvbnN0IFNVUFBPUlRFRF9PUEVSQVRJT05TX0ZSQUdNRU5UID0gJ2M4eV9TdXBwb3J0ZWRPcGVyYXRpb25zJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZpcm13YXJlRGV2aWNlVGFiR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG4gIGNhbkFjdGl2YXRlKHJvdXRlKSB7XG4gICAgY29uc3QgY29udGV4dERhdGEgPSBnZXQocm91dGUsICdkYXRhLmNvbnRleHREYXRhJykgfHwgZ2V0KHJvdXRlLCAncGFyZW50LmRhdGEuY29udGV4dERhdGEnKTtcbiAgICBjb25zdCBzdXBwb3J0ZWRPcGVyYXRpb25zID0gZ2V0KGNvbnRleHREYXRhLCBTVVBQT1JURURfT1BFUkFUSU9OU19GUkFHTUVOVCk7XG4gICAgcmV0dXJuIChcbiAgICAgICghIXN1cHBvcnRlZE9wZXJhdGlvbnMgPyBpbmRleE9mKHN1cHBvcnRlZE9wZXJhdGlvbnMsIEZJUk1XQVJFX0ZSQUdNRU5UKSA+PSAwIDogZmFsc2UpIHx8XG4gICAgICBoYXMoY29udGV4dERhdGEsICdjOHlfRmlybXdhcmUnKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,9 +1,15 @@
1
1
  import { Component, Output, Input, EventEmitter } from '@angular/core';
2
- import { filter } from 'lodash-es';
2
+ import { filter, get } from 'lodash-es';
3
3
  export class DeviceSoftwareListComponent {
4
4
  constructor() {
5
5
  this.update = new EventEmitter();
6
6
  this.remove = new EventEmitter();
7
+ this.supportsSoftwareOperations = false;
8
+ this.operationTypes = ['c8y_SoftwareUpdate', 'c8y_SoftwareList', 'c8y_Software'];
9
+ }
10
+ ngOnInit() {
11
+ const supportedOperations = get(this.device, 'c8y_SupportedOperations', []);
12
+ this.supportsSoftwareOperations = this.operationTypes.some(operationType => supportedOperations.indexOf(operationType) > -1);
7
13
  }
8
14
  ngAfterContentInit() {
9
15
  this.showUpdate = this.update.observers.length > 0;
@@ -17,13 +23,14 @@ export class DeviceSoftwareListComponent {
17
23
  DeviceSoftwareListComponent.decorators = [
18
24
  { type: Component, args: [{
19
25
  selector: 'c8y-device-software-list',
20
- template: "<c8y-list-group class=\"no-border-last\">\n <c8y-li\n [ngClass]=\"{ disabled: isSoftwareGoingToBeChanged(software) }\"\n *ngFor=\"let software of softwareList\"\n >\n <!-- SOFTWARE ICON -->\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n\n <c8y-li-body class=\"content-flex-20\">\n <div title=\"{{ software.name }}\" class=\"col-8\">\n <!-- SOFTWARE NAME -->\n <p class=\"text-truncate\">{{ software.name }}</p>\n <!-- SOFTWARE VERSION -->\n <p class=\"text-truncate\">\n <span class=\"text-label-small m-r-4\" translate>\n Version\n </span>\n <span title=\"{{ software.version }}\">\n {{ software.version }}\n </span>\n </p>\n </div>\n\n <div *ngIf=\"showUpdate || showRemove\" class=\"col-4 text-right\">\n <!-- UPDATE SOFTWARE -->\n <button\n *ngIf=\"showUpdate && !isSoftwareGoingToBeChanged(software)\"\n class=\"btn btn-default btn-xs showOnHover\"\n (click)=\"update.emit(software)\"\n title=\"{{ 'Update`software,verb`' | translate }}\"\n translate\n >\n Update\n </button>\n\n <!-- REMOVE SOFTWARE -->\n <button\n *ngIf=\"showRemove && !isSoftwareGoingToBeChanged(software)\"\n title=\"{{ 'Remove`software`' | translate }}\"\n class=\"showOnHover btn btn-dot pull-right\"\n (click)=\"remove.emit(software)\"\n >\n <i c8yIcon=\"minus-circle\" class=\"text-danger\"></i>\n </button>\n </div>\n </c8y-li-body>\n </c8y-li>\n</c8y-list-group>\n"
26
+ template: "<c8y-list-group class=\"no-border-last\">\n <c8y-li\n [ngClass]=\"{ disabled: isSoftwareGoingToBeChanged(software) }\"\n *ngFor=\"let software of softwareList\"\n >\n <!-- SOFTWARE ICON -->\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n\n <c8y-li-body class=\"content-flex-20\">\n <div title=\"{{ software.name }}\" class=\"col-8\">\n <!-- SOFTWARE NAME -->\n <p class=\"text-truncate\">{{ software.name }}</p>\n <!-- SOFTWARE VERSION -->\n <p class=\"text-truncate\">\n <span class=\"text-label-small m-r-4\" translate>\n Version\n </span>\n <span title=\"{{ software.version }}\">\n {{ software.version }}\n </span>\n </p>\n </div>\n\n <div\n *ngIf=\"supportsSoftwareOperations && (showUpdate || showRemove)\"\n class=\"col-4 text-right\"\n >\n <!-- UPDATE SOFTWARE -->\n <button\n *ngIf=\"showUpdate && !isSoftwareGoingToBeChanged(software)\"\n class=\"btn btn-default btn-xs showOnHover\"\n (click)=\"update.emit(software)\"\n title=\"{{ 'Update`software,verb`' | translate }}\"\n translate\n >\n Update\n </button>\n\n <!-- REMOVE SOFTWARE -->\n <button\n *ngIf=\"showRemove && !isSoftwareGoingToBeChanged(software)\"\n title=\"{{ 'Remove`software`' | translate }}\"\n class=\"showOnHover btn btn-dot pull-right\"\n (click)=\"remove.emit(software)\"\n >\n <i c8yIcon=\"minus-circle\" class=\"text-danger\"></i>\n </button>\n </div>\n </c8y-li-body>\n </c8y-li>\n</c8y-list-group>\n"
21
27
  },] }
22
28
  ];
23
29
  DeviceSoftwareListComponent.propDecorators = {
24
30
  softwareList: [{ type: Input }],
31
+ device: [{ type: Input }],
25
32
  deviceSoftwareChanges: [{ type: Input }],
26
33
  update: [{ type: Output }],
27
34
  remove: [{ type: Output }]
28
35
  };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXNvZnR3YXJlLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcmVwb3NpdG9yeS9zb2Z0d2FyZS1kZXZpY2UtdGFiL2RldmljZS1zb2Z0d2FyZS1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFRbkMsTUFBTSxPQUFPLDJCQUEyQjtJQUp4QztRQU9ZLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUM1QyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7SUFheEQsQ0FBQztJQVRDLGtCQUFrQjtRQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxRQUF3QjtRQUNqRCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7O1lBcEJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyw0b0RBQWtEO2FBQ25EOzs7MkJBRUUsS0FBSztvQ0FDTCxLQUFLO3FCQUNMLE1BQU07cUJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBJbnB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgT3BlcmF0aW9uU3RhdHVzIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgRGV2aWNlU29mdHdhcmUsIERldmljZVNvZnR3YXJlQ2hhbmdlIH0gZnJvbSAnLi4vcmVwb3NpdG9yeS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kZXZpY2Utc29mdHdhcmUtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnZGV2aWNlLXNvZnR3YXJlLWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERldmljZVNvZnR3YXJlTGlzdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNvZnR3YXJlTGlzdDogRGV2aWNlU29mdHdhcmVbXTtcbiAgQElucHV0KCkgZGV2aWNlU29mdHdhcmVDaGFuZ2VzOiBEZXZpY2VTb2Z0d2FyZUNoYW5nZVtdO1xuICBAT3V0cHV0KCkgdXBkYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxEZXZpY2VTb2Z0d2FyZT4oKTtcbiAgQE91dHB1dCgpIHJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGV2aWNlU29mdHdhcmU+KCk7XG4gIHNob3dVcGRhdGU6IGJvb2xlYW47XG4gIHNob3dSZW1vdmU6IGJvb2xlYW47XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuc2hvd1VwZGF0ZSA9IHRoaXMudXBkYXRlLm9ic2VydmVycy5sZW5ndGggPiAwO1xuICAgIHRoaXMuc2hvd1JlbW92ZSA9IHRoaXMucmVtb3ZlLm9ic2VydmVycy5sZW5ndGggPiAwO1xuICB9XG5cbiAgaXNTb2Z0d2FyZUdvaW5nVG9CZUNoYW5nZWQoc29mdHdhcmU6IERldmljZVNvZnR3YXJlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVsZXZhbnRDaGFuZ2VzID0gZmlsdGVyKHRoaXMuZGV2aWNlU29mdHdhcmVDaGFuZ2VzLCBzb2Z0d2FyZSk7XG4gICAgcmV0dXJuIHJlbGV2YW50Q2hhbmdlcy5sZW5ndGggPiAwO1xuICB9XG59XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXNvZnR3YXJlLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcmVwb3NpdG9yeS9zb2Z0d2FyZS1kZXZpY2UtdGFiL2RldmljZS1zb2Z0d2FyZS1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBT3hDLE1BQU0sT0FBTywyQkFBMkI7SUFKeEM7UUFRWSxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFDNUMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO1FBR3RELCtCQUEwQixHQUFZLEtBQUssQ0FBQztRQUUzQixtQkFBYyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFrQi9GLENBQUM7SUFoQkMsUUFBUTtRQUNOLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUseUJBQXlCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUN4RCxhQUFhLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDakUsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsMEJBQTBCLENBQUMsUUFBd0I7UUFDakQsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNyRSxPQUFPLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7OztZQS9CRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsc3NEQUFrRDthQUNuRDs7OzJCQUVFLEtBQUs7cUJBQ0wsS0FBSztvQ0FDTCxLQUFLO3FCQUNMLE1BQU07cUJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPdXRwdXQsIElucHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgZmlsdGVyLCBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgRGV2aWNlU29mdHdhcmUsIERldmljZVNvZnR3YXJlQ2hhbmdlIH0gZnJvbSAnLi4vcmVwb3NpdG9yeS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kZXZpY2Utc29mdHdhcmUtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnZGV2aWNlLXNvZnR3YXJlLWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERldmljZVNvZnR3YXJlTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHNvZnR3YXJlTGlzdDogRGV2aWNlU29mdHdhcmVbXTtcbiAgQElucHV0KCkgZGV2aWNlOiBJTWFuYWdlZE9iamVjdDtcbiAgQElucHV0KCkgZGV2aWNlU29mdHdhcmVDaGFuZ2VzOiBEZXZpY2VTb2Z0d2FyZUNoYW5nZVtdO1xuICBAT3V0cHV0KCkgdXBkYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxEZXZpY2VTb2Z0d2FyZT4oKTtcbiAgQE91dHB1dCgpIHJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGV2aWNlU29mdHdhcmU+KCk7XG4gIHNob3dVcGRhdGU6IGJvb2xlYW47XG4gIHNob3dSZW1vdmU6IGJvb2xlYW47XG4gIHN1cHBvcnRzU29mdHdhcmVPcGVyYXRpb25zOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvcGVyYXRpb25UeXBlcyA9IFsnYzh5X1NvZnR3YXJlVXBkYXRlJywgJ2M4eV9Tb2Z0d2FyZUxpc3QnLCAnYzh5X1NvZnR3YXJlJ107XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3Qgc3VwcG9ydGVkT3BlcmF0aW9ucyA9IGdldCh0aGlzLmRldmljZSwgJ2M4eV9TdXBwb3J0ZWRPcGVyYXRpb25zJywgW10pO1xuICAgIHRoaXMuc3VwcG9ydHNTb2Z0d2FyZU9wZXJhdGlvbnMgPSB0aGlzLm9wZXJhdGlvblR5cGVzLnNvbWUoXG4gICAgICBvcGVyYXRpb25UeXBlID0+IHN1cHBvcnRlZE9wZXJhdGlvbnMuaW5kZXhPZihvcGVyYXRpb25UeXBlKSA+IC0xXG4gICAgKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLnNob3dVcGRhdGUgPSB0aGlzLnVwZGF0ZS5vYnNlcnZlcnMubGVuZ3RoID4gMDtcbiAgICB0aGlzLnNob3dSZW1vdmUgPSB0aGlzLnJlbW92ZS5vYnNlcnZlcnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIGlzU29mdHdhcmVHb2luZ1RvQmVDaGFuZ2VkKHNvZnR3YXJlOiBEZXZpY2VTb2Z0d2FyZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlbGV2YW50Q2hhbmdlcyA9IGZpbHRlcih0aGlzLmRldmljZVNvZnR3YXJlQ2hhbmdlcywgc29mdHdhcmUpO1xuICAgIHJldHVybiByZWxldmFudENoYW5nZXMubGVuZ3RoID4gMDtcbiAgfVxufVxuIl19
@@ -4,6 +4,7 @@ import { shareReplay, map, switchMap, distinctUntilChanged } from 'rxjs/operator
4
4
  import { BsModalService } from 'ngx-bootstrap/modal';
5
5
  import { InventoryService } from '@c8y/client';
6
6
  import { gettext, ModalSelectionMode } from '@c8y/ngx-components';
7
+ import { get } from 'lodash-es';
7
8
  import { RepositoryService } from '../repository.service';
8
9
  import { RepositoryType } from './../repository.model';
9
10
  import { RepositorySelectModalComponent } from '../select-modal/repository-select-modal.component';
@@ -13,6 +14,12 @@ export class InstalledSoftwareComponent {
13
14
  this.inventory = inventory;
14
15
  this.bsModal = bsModal;
15
16
  this.changes = new EventEmitter();
17
+ this.supportsSoftwareOperations = false;
18
+ this.operationTypes = ['c8y_SoftwareUpdate', 'c8y_SoftwareList', 'c8y_Software'];
19
+ }
20
+ ngOnInit() {
21
+ const supportedOperations = get(this.device, 'c8y_SupportedOperations', []);
22
+ this.supportsSoftwareOperations = this.operationTypes.some(operationType => supportedOperations.indexOf(operationType) > -1);
16
23
  }
17
24
  installSoftware() {
18
25
  this.displaySoftwareSelectModal({
@@ -87,7 +94,7 @@ export class InstalledSoftwareComponent {
87
94
  InstalledSoftwareComponent.decorators = [
88
95
  { type: Component, args: [{
89
96
  selector: 'c8y-installed-software',
90
- template: "<div class=\"inner-scroll d-flex d-col\">\n <div class=\"card-header large-padding separator sticky-top\">\n <h4 class=\"card-title\" translate>Installed software</h4>\n </div>\n <div class=\"flex-grow\">\n <fieldset *ngIf=\"deviceSoftwareChangesOperation\" class=\"card-block large-padding bg-gray-lighter\">\n <c8y-single-operation [operation]=\"deviceSoftwareChangesOperation\"></c8y-single-operation>\n </fieldset>\n\n <fieldset class=\"d-contents\" [disabled]=\"deviceSoftwareChangesInProgress\">\n <!-- EMPTY STATE -->\n <div class=\"card-block\" *ngIf=\"softwareList.length === 0\">\n <div class=\"c8y-empty-state text-center m-t-16\">\n <h1 class=\"c8y-icon c8y-icon-tools c8y-icon-duocolor\"></h1>\n <p>\n <strong translate>No software installed.</strong> <br />\n <small translate>Click below to install software into this device.</small>\n </p>\n </div>\n </div>\n\n <!-- NOT EMPTY STATE -->\n <ng-container *ngIf=\"softwareList.length > 0\">\n <c8y-device-software-list\n [softwareList]=\"softwareList\"\n [deviceSoftwareChanges]=\"deviceSoftwareChanges\"\n (update)=\"updateSoftware($event)\"\n (remove)=\"removeSoftware($event)\"\n class=\"d-block p-l-16 p-r-16\"\n >\n </c8y-device-software-list>\n </ng-container>\n </fieldset>\n </div>\n<!-- INSTALL SOFTWARE-->\n <div class=\"card-footer large-padding separator sticky-bottom\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Install software' | translate }}\"\n (click)=\"installSoftware()\"\n [disabled]=\"deviceSoftwareChangesInProgress\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Install software' | translate }}\n </button>\n </div>\n</div>\n"
97
+ template: "<div class=\"inner-scroll d-flex d-col\">\n <div class=\"card-header large-padding separator sticky-top\">\n <h4 class=\"card-title\" translate>Installed software</h4>\n </div>\n <div class=\"flex-grow\">\n <fieldset *ngIf=\"deviceSoftwareChangesOperation\" class=\"card-block large-padding bg-gray-lighter\">\n <c8y-single-operation [operation]=\"deviceSoftwareChangesOperation\"></c8y-single-operation>\n </fieldset>\n\n <fieldset class=\"d-contents\" [disabled]=\"deviceSoftwareChangesInProgress\">\n <!-- EMPTY STATE -->\n <div class=\"card-block\" *ngIf=\"softwareList.length === 0\">\n <div class=\"c8y-empty-state text-center m-t-16\">\n <h1 class=\"c8y-icon c8y-icon-tools c8y-icon-duocolor\"></h1>\n <p>\n <strong translate>No software installed.</strong> <br />\n <small translate>Click below to install software into this device.</small>\n </p>\n </div>\n </div>\n\n <!-- NOT EMPTY STATE -->\n <ng-container *ngIf=\"softwareList.length > 0\">\n <c8y-device-software-list\n [device]=\"device\"\n [softwareList]=\"softwareList\"\n [deviceSoftwareChanges]=\"deviceSoftwareChanges\"\n (update)=\"updateSoftware($event)\"\n (remove)=\"removeSoftware($event)\"\n class=\"d-block p-l-16 p-r-16\"\n >\n </c8y-device-software-list>\n </ng-container>\n </fieldset>\n </div>\n <!-- INSTALL SOFTWARE-->\n <div *ngIf=\"supportsSoftwareOperations\" class=\"card-footer large-padding separator sticky-bottom\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Install software' | translate }}\"\n (click)=\"installSoftware()\"\n [disabled]=\"deviceSoftwareChangesInProgress\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Install software' | translate }}\n </button>\n </div>\n</div>\n"
91
98
  },] }
92
99
  ];
93
100
  InstalledSoftwareComponent.ctorParameters = () => [
@@ -96,6 +103,7 @@ InstalledSoftwareComponent.ctorParameters = () => [
96
103
  { type: BsModalService }
97
104
  ];
98
105
  InstalledSoftwareComponent.propDecorators = {
106
+ device: [{ type: Input }],
99
107
  softwareList: [{ type: Input }],
100
108
  deviceSoftwareChanges: [{ type: Input }],
101
109
  deviceSoftwareChangesOperation: [{ type: Input }],
@@ -103,4 +111,4 @@ InstalledSoftwareComponent.propDecorators = {
103
111
  deviceTypeQuery: [{ type: Input }],
104
112
  changes: [{ type: Output }]
105
113
  };
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbGVkLXNvZnR3YXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvc29mdHdhcmUtZGV2aWNlLXRhYi9pbnN0YWxsZWQtc29mdHdhcmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQW1CLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQWtCLGdCQUFnQixFQUFjLE1BQU0sYUFBYSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQXdDLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBTW5HLE1BQU0sT0FBTywwQkFBMEI7SUFRckMsWUFDVSxVQUE2QixFQUM3QixTQUEyQixFQUMzQixPQUF1QjtRQUZ2QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUx2QixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7SUFPL0QsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsMEJBQTBCLENBQUM7WUFDOUIsS0FBSyxFQUFF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LElBQUksS0FBRSxNQUFNLEVBQUUsU0FBUyxJQUFHO1FBQ3hDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBdUI7UUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNqQyx1Q0FBWSxJQUFJLEtBQUUsTUFBTSxFQUFFLFFBQVEsSUFBRztRQUN2QyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzs7O1lBM0hGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxrMERBQWdEO2FBQ2pEOzs7WUFQUSxpQkFBaUI7WUFGRCxnQkFBZ0I7WUFEaEMsY0FBYzs7OzJCQVlwQixLQUFLO29DQUNMLEtBQUs7NkNBQ0wsS0FBSzs4Q0FDTCxLQUFLOzhCQUNMLEtBQUs7c0JBQ0wsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBJbnB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tLCBvZiwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzaGFyZVJlcGxheSwgbWFwLCBzd2l0Y2hNYXAsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJbnZlbnRvcnlTZXJ2aWNlLCBJT3BlcmF0aW9uIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgZ2V0dGV4dCwgTW9kYWxTZWxlY3Rpb25Nb2RlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBSZXBvc2l0b3J5U2VydmljZSB9IGZyb20gJy4uL3JlcG9zaXRvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBEZXZpY2VTb2Z0d2FyZSwgRGV2aWNlU29mdHdhcmVDaGFuZ2UsIFJlcG9zaXRvcnlUeXBlIH0gZnJvbSAnLi8uLi9yZXBvc2l0b3J5Lm1vZGVsJztcbmltcG9ydCB7IFJlcG9zaXRvcnlTZWxlY3RNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL3NlbGVjdC1tb2RhbC9yZXBvc2l0b3J5LXNlbGVjdC1tb2RhbC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktaW5zdGFsbGVkLXNvZnR3YXJlJyxcbiAgdGVtcGxhdGVVcmw6ICdpbnN0YWxsZWQtc29mdHdhcmUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEluc3RhbGxlZFNvZnR3YXJlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc29mdHdhcmVMaXN0OiBEZXZpY2VTb2Z0d2FyZVtdO1xuICBASW5wdXQoKSBkZXZpY2VTb2Z0d2FyZUNoYW5nZXM6IERldmljZVNvZnR3YXJlQ2hhbmdlW107XG4gIEBJbnB1dCgpIGRldmljZVNvZnR3YXJlQ2hhbmdlc09wZXJhdGlvbjogSU9wZXJhdGlvbjtcbiAgQElucHV0KCkgZGV2aWNlU29mdHdhcmVDaGFuZ2VzSW5Qcm9ncmVzczogYm9vbGVhbjtcbiAgQElucHV0KCkgZGV2aWNlVHlwZVF1ZXJ5OiBvYmplY3Q7XG4gIEBPdXRwdXQoKSBjaGFuZ2VzID0gbmV3IEV2ZW50RW1pdHRlcjxEZXZpY2VTb2Z0d2FyZUNoYW5nZVtdPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVwb3NpdG9yeTogUmVwb3NpdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbnZlbnRvcnk6IEludmVudG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBic01vZGFsOiBCc01vZGFsU2VydmljZVxuICApIHtcbiAgfVxuXG4gIGluc3RhbGxTb2Z0d2FyZSgpIHtcbiAgICB0aGlzLmRpc3BsYXlTb2Z0d2FyZVNlbGVjdE1vZGFsKHtcbiAgICAgIHRpdGxlOiBnZXR0ZXh0KCdJbnN0YWxsIHNvZnR3YXJlJyksXG4gICAgICBsYWJlbHM6IHsgb2s6IGdldHRleHQoJ0luc3RhbGwnKSB9LFxuICAgICAgcmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnMkOiBvZihbXSksXG4gICAgICByZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9uc0ZuJDogbW9kYWwgPT5cbiAgICAgICAgdGhpcy5nZXRJbnN0YWxsYWJsZVNvZnR3YXJlTGlzdFdpdGhWZXJzaW9ucyQobW9kYWwuY29udGVudC5zZWFyY2hUZXJtKVxuICAgIH0pLnN1YnNjcmliZShzb2Z0d2FyZVRvSW5zdGFsbCA9PiB7XG4gICAgICB0aGlzLmVtaXRTb2Z0d2FyZUluc3RhbGwoc29mdHdhcmVUb0luc3RhbGwpO1xuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlU29mdHdhcmUoc29mdHdhcmVUb1JlbW92ZSkge1xuICAgIHRoaXMuZGlzcGxheVNvZnR3YXJlU2VsZWN0TW9kYWwoe1xuICAgICAgdGl0bGU6IGdldHRleHQoJ1VwZGF0ZSBzb2Z0d2FyZScpLFxuICAgICAgbGFiZWxzOiB7IG9rOiBnZXR0ZXh0KCdVcGRhdGUnKSB9LFxuICAgICAgc2hvd0ZpbHRlcjogZmFsc2UsXG4gICAgICByZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9ucyQ6IHRoaXMuZ2V0U2luZ2xlU29mdHdhcmVXaXRoVmVyc2lvbnMkKHNvZnR3YXJlVG9SZW1vdmUpXG4gICAgfSkuc3Vic2NyaWJlKHNvZnR3YXJlVG9JbnN0YWxsID0+IHtcbiAgICAgIHRoaXMuZW1pdFNvZnR3YXJlSW5zdGFsbChzb2Z0d2FyZVRvSW5zdGFsbCk7XG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVTb2Z0d2FyZShzb2Z0d2FyZVRvUmVtb3ZlKSB7XG4gICAgdGhpcy5lbWl0U29mdHdhcmVSZW1vdmFsKFtzb2Z0d2FyZVRvUmVtb3ZlXSk7XG4gIH1cblxuICBnZXRJbnN0YWxsYWJsZVNvZnR3YXJlTGlzdFdpdGhWZXJzaW9ucyQoc2VhcmNoVGVybSQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KSB7XG4gICAgY29uc3QgaW5zdGFsbGVkU29mdHdhcmVOYW1lcyA9IHRoaXMuc29mdHdhcmVMaXN0Lm1hcChzID0+IHMubmFtZSk7XG4gICAgcmV0dXJuIHNlYXJjaFRlcm0kLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc3dpdGNoTWFwKHNlYXJjaFRlcm0gPT5cbiAgICAgICAgdGhpcy5yZXBvc2l0b3J5Lmxpc3RSZXBvc2l0b3J5RW50cmllcyhSZXBvc2l0b3J5VHlwZS5TT0ZUV0FSRSwge1xuICAgICAgICAgIHF1ZXJ5OiB0aGlzLmRldmljZVR5cGVRdWVyeSxcbiAgICAgICAgICBwYXJ0aWFsTmFtZTogc2VhcmNoVGVybSxcbiAgICAgICAgICBwYXJhbXM6IHsgcGFnZVNpemU6IDEwMCB9XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgICAgbWFwKCh7IGRhdGEgfSkgPT4gZGF0YSksXG4gICAgICBtYXAoc29mdHdhcmVMaXN0ID0+IHtcbiAgICAgICAgcmV0dXJuIHNvZnR3YXJlTGlzdC5maWx0ZXIoc29mdHdhcmUgPT4ge1xuICAgICAgICAgIHJldHVybiAhaW5zdGFsbGVkU29mdHdhcmVOYW1lcy5pbmNsdWRlcyhzb2Z0d2FyZS5uYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIG1hcChzb2Z0d2FyZUxpc3QgPT4gdGhpcy5hdHRhY2hWZXJzaW9ucyhzb2Z0d2FyZUxpc3QpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxuXG4gIGdldFNpbmdsZVNvZnR3YXJlV2l0aFZlcnNpb25zJChzb2Z0d2FyZTogRGV2aWNlU29mdHdhcmUpIHtcbiAgICByZXR1cm4gZnJvbShcbiAgICAgIHRoaXMucmVwb3NpdG9yeS5saXN0UmVwb3NpdG9yeUVudHJpZXMoUmVwb3NpdG9yeVR5cGUuU09GVFdBUkUsIHtcbiAgICAgICAgcXVlcnk6IHsgbmFtZTogc29mdHdhcmUubmFtZSB9XG4gICAgICB9KVxuICAgICkucGlwZShcbiAgICAgIG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpLFxuICAgICAgbWFwKHNvZnR3YXJlTGlzdCA9PiB0aGlzLmF0dGFjaFZlcnNpb25zKHNvZnR3YXJlTGlzdCkpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG5cbiAgYXR0YWNoVmVyc2lvbnMoc29mdHdhcmVMaXN0OiBJTWFuYWdlZE9iamVjdFtdKSB7XG4gICAgc29mdHdhcmVMaXN0LmZvckVhY2goc29mdHdhcmUgPT4ge1xuICAgICAgc29mdHdhcmUudmVyc2lvbnMgPSB0aGlzLnJlcG9zaXRvcnkubGlzdEJhc2VWZXJzaW9ucyhzb2Z0d2FyZSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHNvZnR3YXJlTGlzdDtcbiAgfVxuXG4gIGRpc3BsYXlTb2Z0d2FyZVNlbGVjdE1vZGFsKGluaXRpYWxTdGF0ZU92ZXJyaWRlcykge1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgIHJlcG9zaXRvcnlUeXBlOiBSZXBvc2l0b3J5VHlwZS5TT0ZUV0FSRSxcbiAgICAgIHN1YlRpdGxlOiBnZXR0ZXh0KCdBdmFpbGFibGUgc29mdHdhcmVzIG1hdGNoaW5nIHRoZSBkZXZpY2UgdHlwZScpLFxuICAgICAgbW9kZTogTW9kYWxTZWxlY3Rpb25Nb2RlLk1VTFRJLFxuICAgICAgaWNvbjogJ2M4eS10b29scycsXG4gICAgICBkaXNhYmxlU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgc2VsZWN0ZWQ6IHRoaXMuc29mdHdhcmVMaXN0LFxuICAgICAgLi4uaW5pdGlhbFN0YXRlT3ZlcnJpZGVzXG4gICAgfTtcbiAgICBjb25zdCBtb2RhbCA9IHRoaXMuYnNNb2RhbC5zaG93KFJlcG9zaXRvcnlTZWxlY3RNb2RhbENvbXBvbmVudCwge1xuICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZSxcbiAgICAgIGNsYXNzOiAnbW9kYWwtc20nLFxuICAgICAgaW5pdGlhbFN0YXRlXG4gICAgfSk7XG5cbiAgICBpZiAoaW5pdGlhbFN0YXRlT3ZlcnJpZGVzLnJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zRm4kKSB7XG4gICAgICBtb2RhbC5jb250ZW50LnJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zJCA9IGluaXRpYWxTdGF0ZU92ZXJyaWRlcy5yZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9uc0ZuJChcbiAgICAgICAgbW9kYWxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbW9kYWwuY29udGVudC5sb2FkLm5leHQoKTtcbiAgICByZXR1cm4gbW9kYWwuY29udGVudC5yZXN1bHRFbWl0dGVyO1xuICB9XG5cbiAgZW1pdFNvZnR3YXJlSW5zdGFsbChpdGVtczogRGV2aWNlU29mdHdhcmVbXSkge1xuICAgIHRoaXMuY2hhbmdlcy5lbWl0KGl0ZW1zLm1hcChpdGVtID0+IHtcbiAgICAgIHJldHVybiB7IC4uLml0ZW0sIGFjdGlvbjogJ2luc3RhbGwnIH07XG4gICAgfSkpO1xuICB9XG5cbiAgZW1pdFNvZnR3YXJlUmVtb3ZhbChpdGVtczogRGV2aWNlU29mdHdhcmVbXSkge1xuICAgIHRoaXMuY2hhbmdlcy5lbWl0KGl0ZW1zLm1hcChpdGVtID0+IHtcbiAgICAgIHJldHVybiB7IC4uLml0ZW0sIGFjdGlvbjogJ2RlbGV0ZScgfTtcbiAgICB9KSk7XG4gIH1cbn1cbiJdfQ==
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbGVkLXNvZnR3YXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvc29mdHdhcmUtZGV2aWNlLXRhYi9pbnN0YWxsZWQtc29mdHdhcmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQW1CLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQWtCLGdCQUFnQixFQUFjLE1BQU0sYUFBYSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBd0MsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0YsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFNbkcsTUFBTSxPQUFPLDBCQUEwQjtJQWFyQyxZQUNVLFVBQTZCLEVBQzdCLFNBQTJCLEVBQzNCLE9BQXVCO1FBRnZCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBVHZCLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUUvRCwrQkFBMEIsR0FBWSxLQUFL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LEtBQUssRUFBRSxVQUFVO1lBQ2pCLFlBQVk7U0FDYixDQUFDLENBQUM7UUFFSCxJQUFJLHFCQUFxQixDQUFDLGdDQUFnQyxFQUFFO1lBQzFELEtBQUssQ0FBQyxPQUFPLENBQUMsOEJBQThCLEdBQUcscUJBQXFCLENBQUMsZ0NBQWdDLENBQ25HLEtBQUssQ0FDTixDQUFDO1NBQ0g7UUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUF1QjtRQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2pDLHVDQUFZLElBQUksS0FBRSxNQUFNLEVBQUUsU0FBUyxJQUFHO1FBQ3hDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBdUI7UUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNqQyx1Q0FBWSxJQUFJLEtBQUUsTUFBTSxFQUFFLFFBQVEsSUFBRztRQUN2QyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzs7O1lBdklGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyx3NERBQWdEO2FBQ2pEOzs7WUFQUSxpQkFBaUI7WUFIRCxnQkFBZ0I7WUFEaEMsY0FBYzs7O3FCQWFwQixLQUFLOzJCQUNMLEtBQUs7b0NBQ0wsS0FBSzs2Q0FDTCxLQUFLOzhDQUNMLEtBQUs7OEJBQ0wsS0FBSztzQkFDTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIElucHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb20sIG9mLCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNoYXJlUmVwbGF5LCBtYXAsIHN3aXRjaE1hcCwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QsIEludmVudG9yeVNlcnZpY2UsIElPcGVyYXRpb24gfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBnZXR0ZXh0LCBNb2RhbFNlbGVjdGlvbk1vZGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBSZXBvc2l0b3J5U2VydmljZSB9IGZyb20gJy4uL3JlcG9zaXRvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBEZXZpY2VTb2Z0d2FyZSwgRGV2aWNlU29mdHdhcmVDaGFuZ2UsIFJlcG9zaXRvcnlUeXBlIH0gZnJvbSAnLi8uLi9yZXBvc2l0b3J5Lm1vZGVsJztcbmltcG9ydCB7IFJlcG9zaXRvcnlTZWxlY3RNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL3NlbGVjdC1tb2RhbC9yZXBvc2l0b3J5LXNlbGVjdC1tb2RhbC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktaW5zdGFsbGVkLXNvZnR3YXJlJyxcbiAgdGVtcGxhdGVVcmw6ICdpbnN0YWxsZWQtc29mdHdhcmUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEluc3RhbGxlZFNvZnR3YXJlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZGV2aWNlOiBJTWFuYWdlZE9iamVjdDtcbiAgQElucHV0KCkgc29mdHdhcmVMaXN0OiBEZXZpY2VTb2Z0d2FyZVtdO1xuICBASW5wdXQoKSBkZXZpY2VTb2Z0d2FyZUNoYW5nZXM6IERldmljZVNvZnR3YXJlQ2hhbmdlW107XG4gIEBJbnB1dCgpIGRldmljZVNvZnR3YXJlQ2hhbmdlc09wZXJhdGlvbjogSU9wZXJhdGlvbjtcbiAgQElucHV0KCkgZGV2aWNlU29mdHdhcmVDaGFuZ2VzSW5Qcm9ncmVzczogYm9vbGVhbjtcbiAgQElucHV0KCkgZGV2aWNlVHlwZVF1ZXJ5OiBvYmplY3Q7XG4gIEBPdXRwdXQoKSBjaGFuZ2VzID0gbmV3IEV2ZW50RW1pdHRlcjxEZXZpY2VTb2Z0d2FyZUNoYW5nZVtdPigpO1xuXG4gIHN1cHBvcnRzU29mdHdhcmVPcGVyYXRpb25zOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvcGVyYXRpb25UeXBlcyA9IFsnYzh5X1NvZnR3YXJlVXBkYXRlJywgJ2M4eV9Tb2Z0d2FyZUxpc3QnLCAnYzh5X1NvZnR3YXJlJ107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZXBvc2l0b3J5OiBSZXBvc2l0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGludmVudG9yeTogSW52ZW50b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGJzTW9kYWw6IEJzTW9kYWxTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3Qgc3VwcG9ydGVkT3BlcmF0aW9ucyA9IGdldCh0aGlzLmRldmljZSwgJ2M4eV9TdXBwb3J0ZWRPcGVyYXRpb25zJywgW10pO1xuICAgIHRoaXMuc3VwcG9ydHNTb2Z0d2FyZU9wZXJhdGlvbnMgPSB0aGlzLm9wZXJhdGlvblR5cGVzLnNvbWUoXG4gICAgICBvcGVyYXRpb25UeXBlID0+IHN1cHBvcnRlZE9wZXJhdGlvbnMuaW5kZXhPZihvcGVyYXRpb25UeXBlKSA+IC0xXG4gICAgKTtcbiAgfVxuXG4gIGluc3RhbGxTb2Z0d2FyZSgpIHtcbiAgICB0aGlzLmRpc3BsYXlTb2Z0d2FyZVNlbGVjdE1vZGFsKHtcbiAgICAgIHRpdGxlOiBnZXR0ZXh0KCdJbnN0YWxsIHNvZnR3YXJlJyksXG4gICAgICBsYWJlbHM6IHsgb2s6IGdldHRleHQoJ0luc3RhbGwnKSB9LFxuICAgICAgcmVwb3NpdG9yeUVudHJpZXNXaXRoVmVyc2lvbnMkOiBvZihbXSksXG4gICAgICByZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9uc0ZuJDogbW9kYWwgPT5cbiAgICAgICAgdGhpcy5nZXRJbnN0YWxsYWJsZVNvZnR3YXJlTGlzdFdpdGhWZXJzaW9ucyQobW9kYWwuY29udGVudC5zZWFyY2hUZXJtKVxuICAgIH0pLnN1YnNjcmliZShzb2Z0d2FyZVRvSW5zdGFsbCA9PiB7XG4gICAgICB0aGlzLmVtaXRTb2Z0d2FyZUluc3RhbGwoc29mdHdhcmVUb0luc3RhbGwpO1xuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlU29mdHdhcmUoc29mdHdhcmVUb1JlbW92ZSkge1xuICAgIHRoaXMuZGlzcGxheVNvZnR3YXJlU2VsZWN0TW9kYWwoe1xuICAgICAgdGl0bGU6IGdldHRleHQoJ1VwZGF0ZSBzb2Z0d2FyZScpLFxuICAgICAgbGFiZWxzOiB7IG9rOiBnZXR0ZXh0KCdVcGRhdGUnKSB9LFxuICAgICAgc2hvd0ZpbHRlcjogZmFsc2UsXG4gICAgICByZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9ucyQ6IHRoaXMuZ2V0U2luZ2xlU29mdHdhcmVXaXRoVmVyc2lvbnMkKHNvZnR3YXJlVG9SZW1vdmUpXG4gICAgfSkuc3Vic2NyaWJlKHNvZnR3YXJlVG9JbnN0YWxsID0+IHtcbiAgICAgIHRoaXMuZW1pdFNvZnR3YXJlSW5zdGFsbChzb2Z0d2FyZVRvSW5zdGFsbCk7XG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVTb2Z0d2FyZShzb2Z0d2FyZVRvUmVtb3ZlKSB7XG4gICAgdGhpcy5lbWl0U29mdHdhcmVSZW1vdmFsKFtzb2Z0d2FyZVRvUmVtb3ZlXSk7XG4gIH1cblxuICBnZXRJbnN0YWxsYWJsZVNvZnR3YXJlTGlzdFdpdGhWZXJzaW9ucyQoc2VhcmNoVGVybSQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KSB7XG4gICAgY29uc3QgaW5zdGFsbGVkU29mdHdhcmVOYW1lcyA9IHRoaXMuc29mdHdhcmVMaXN0Lm1hcChzID0+IHMubmFtZSk7XG4gICAgcmV0dXJuIHNlYXJjaFRlcm0kLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc3dpdGNoTWFwKHNlYXJjaFRlcm0gPT5cbiAgICAgICAgdGhpcy5yZXBvc2l0b3J5Lmxpc3RSZXBvc2l0b3J5RW50cmllcyhSZXBvc2l0b3J5VHlwZS5TT0ZUV0FSRSwge1xuICAgICAgICAgIHF1ZXJ5OiB0aGlzLmRldmljZVR5cGVRdWVyeSxcbiAgICAgICAgICBwYXJ0aWFsTmFtZTogc2VhcmNoVGVybSxcbiAgICAgICAgICBwYXJhbXM6IHsgcGFnZVNpemU6IDEwMCB9XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgICAgbWFwKCh7IGRhdGEgfSkgPT4gZGF0YSksXG4gICAgICBtYXAoc29mdHdhcmVMaXN0ID0+IHtcbiAgICAgICAgcmV0dXJuIHNvZnR3YXJlTGlzdC5maWx0ZXIoc29mdHdhcmUgPT4ge1xuICAgICAgICAgIHJldHVybiAhaW5zdGFsbGVkU29mdHdhcmVOYW1lcy5pbmNsdWRlcyhzb2Z0d2FyZS5uYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIG1hcChzb2Z0d2FyZUxpc3QgPT4gdGhpcy5hdHRhY2hWZXJzaW9ucyhzb2Z0d2FyZUxpc3QpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxuXG4gIGdldFNpbmdsZVNvZnR3YXJlV2l0aFZlcnNpb25zJChzb2Z0d2FyZTogRGV2aWNlU29mdHdhcmUpIHtcbiAgICByZXR1cm4gZnJvbShcbiAgICAgIHRoaXMucmVwb3NpdG9yeS5saXN0UmVwb3NpdG9yeUVudHJpZXMoUmVwb3NpdG9yeVR5cGUuU09GVFdBUkUsIHtcbiAgICAgICAgcXVlcnk6IHsgbmFtZTogc29mdHdhcmUubmFtZSB9XG4gICAgICB9KVxuICAgICkucGlwZShcbiAgICAgIG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpLFxuICAgICAgbWFwKHNvZnR3YXJlTGlzdCA9PiB0aGlzLmF0dGFjaFZlcnNpb25zKHNvZnR3YXJlTGlzdCkpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG5cbiAgYXR0YWNoVmVyc2lvbnMoc29mdHdhcmVMaXN0OiBJTWFuYWdlZE9iamVjdFtdKSB7XG4gICAgc29mdHdhcmVMaXN0LmZvckVhY2goc29mdHdhcmUgPT4ge1xuICAgICAgc29mdHdhcmUudmVyc2lvbnMgPSB0aGlzLnJlcG9zaXRvcnkubGlzdEJhc2VWZXJzaW9ucyhzb2Z0d2FyZSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHNvZnR3YXJlTGlzdDtcbiAgfVxuXG4gIGRpc3BsYXlTb2Z0d2FyZVNlbGVjdE1vZGFsKGluaXRpYWxTdGF0ZU92ZXJyaWRlcykge1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgIHJlcG9zaXRvcnlUeXBlOiBSZXBvc2l0b3J5VHlwZS5TT0ZUV0FSRSxcbiAgICAgIHN1YlRpdGxlOiBnZXR0ZXh0KCdBdmFpbGFibGUgc29mdHdhcmVzIG1hdGNoaW5nIHRoZSBkZXZpY2UgdHlwZScpLFxuICAgICAgbW9kZTogTW9kYWxTZWxlY3Rpb25Nb2RlLk1VTFRJLFxuICAgICAgaWNvbjogJ2M4eS10b29scycsXG4gICAgICBkaXNhYmxlU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgc2VsZWN0ZWQ6IHRoaXMuc29mdHdhcmVMaXN0LFxuICAgICAgLi4uaW5pdGlhbFN0YXRlT3ZlcnJpZGVzXG4gICAgfTtcbiAgICBjb25zdCBtb2RhbCA9IHRoaXMuYnNNb2RhbC5zaG93KFJlcG9zaXRvcnlTZWxlY3RNb2RhbENvbXBvbmVudCwge1xuICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZSxcbiAgICAgIGNsYXNzOiAnbW9kYWwtc20nLFxuICAgICAgaW5pdGlhbFN0YXRlXG4gICAgfSk7XG5cbiAgICBpZiAoaW5pdGlhbFN0YXRlT3ZlcnJpZGVzLnJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zRm4kKSB7XG4gICAgICBtb2RhbC5jb250ZW50LnJlcG9zaXRvcnlFbnRyaWVzV2l0aFZlcnNpb25zJCA9IGluaXRpYWxTdGF0ZU92ZXJyaWRlcy5yZXBvc2l0b3J5RW50cmllc1dpdGhWZXJzaW9uc0ZuJChcbiAgICAgICAgbW9kYWxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbW9kYWwuY29udGVudC5sb2FkLm5leHQoKTtcbiAgICByZXR1cm4gbW9kYWwuY29udGVudC5yZXN1bHRFbWl0dGVyO1xuICB9XG5cbiAgZW1pdFNvZnR3YXJlSW5zdGFsbChpdGVtczogRGV2aWNlU29mdHdhcmVbXSkge1xuICAgIHRoaXMuY2hhbmdlcy5lbWl0KGl0ZW1zLm1hcChpdGVtID0+IHtcbiAgICAgIHJldHVybiB7IC4uLml0ZW0sIGFjdGlvbjogJ2luc3RhbGwnIH07XG4gICAgfSkpO1xuICB9XG5cbiAgZW1pdFNvZnR3YXJlUmVtb3ZhbChpdGVtczogRGV2aWNlU29mdHdhcmVbXSkge1xuICAgIHRoaXMuY2hhbmdlcy5lbWl0KGl0ZW1zLm1hcChpdGVtID0+IHtcbiAgICAgIHJldHVybiB7IC4uLml0ZW0sIGFjdGlvbjogJ2RlbGV0ZScgfTtcbiAgICB9KSk7XG4gIH1cbn1cbiJdfQ==
@@ -95,7 +95,7 @@ export class SoftwareDeviceTabComponent {
95
95
  SoftwareDeviceTabComponent.decorators = [
96
96
  { type: Component, args: [{
97
97
  selector: 'c8y-software-device-tab',
98
- template: "<c8y-action-bar-item [placement]=\"'right'\">\n <button class=\"btn btn-link\" title=\"{{ 'Reload' | translate }}\" (click)=\"loadDevice()\">\n <i c8yIcon=\"refresh\" [ngClass]=\"{ 'icon-spin': reloading }\"></i>\n {{ 'Reload' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<div class=\"card d-grid grid__col--8-4--md m-b-0\">\n <c8y-installed-software\n class=\"card--fullpage bg-white\"\n [deviceTypeQuery]=\"deviceTypeQuery$ | async\"\n [softwareList]=\"list$ | async\"\n [deviceSoftwareChanges]=\"changes$ | async\"\n [deviceSoftwareChangesOperation]=\"changesOperation$ | async\"\n [deviceSoftwareChangesInProgress]=\"changesInProgress$ | async\"\n (changes)=\"addChanges($event)\"\n ></c8y-installed-software>\n <c8y-device-software-changes\n class=\"card--fullpage bg-gray-white\"\n [changes]=\"changes$ | async\"\n [changesInProgress]=\"changesInProgress$ | async\"\n (clear)=\"clearChanges()\"\n (drop)=\"dropChange($event)\"\n (apply)=\"applyChanges()\"\n ></c8y-device-software-changes>\n</div>\n"
98
+ template: "<c8y-action-bar-item [placement]=\"'right'\">\n <button class=\"btn btn-link\" title=\"{{ 'Reload' | translate }}\" (click)=\"loadDevice()\">\n <i c8yIcon=\"refresh\" [ngClass]=\"{ 'icon-spin': reloading }\"></i>\n {{ 'Reload' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<div class=\"card d-grid grid__col--8-4--md m-b-0\">\n <c8y-installed-software\n class=\"card--fullpage bg-white\"\n [device]=\"device$ | async\"\n [deviceTypeQuery]=\"deviceTypeQuery$ | async\"\n [softwareList]=\"list$ | async\"\n [deviceSoftwareChanges]=\"changes$ | async\"\n [deviceSoftwareChangesOperation]=\"changesOperation$ | async\"\n [deviceSoftwareChangesInProgress]=\"changesInProgress$ | async\"\n (changes)=\"addChanges($event)\"\n ></c8y-installed-software>\n <c8y-device-software-changes\n class=\"card--fullpage bg-gray-white\"\n [changes]=\"changes$ | async\"\n [changesInProgress]=\"changesInProgress$ | async\"\n (clear)=\"clearChanges()\"\n (drop)=\"dropChange($event)\"\n (apply)=\"applyChanges()\"\n ></c8y-device-software-changes>\n</div>\n"
99
99
  },] }
100
100
  ];
101
101
  SoftwareDeviceTabComponent.ctorParameters = () => [
@@ -103,4 +103,4 @@ SoftwareDeviceTabComponent.ctorParameters = () => [
103
103
  { type: RepositoryService },
104
104
  { type: InventoryService }
105
105
  ];
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdHdhcmUtZGV2aWNlLXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9yZXBvc2l0b3J5L3NvZnR3YXJlLWRldmljZS10YWIvc29mdHdhcmUtZGV2aWNlLXRhYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBYyxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBa0IsZ0JBQWdCLEVBQUUsZUFBZSxFQUFjLE1BQU0sYUFBYSxDQUFDO0FBQzVGLE9BQU8sRUFBd0MsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFNMUQsTUFBTSxPQUFPLDBCQUEwQjtJQWdCckMsWUFDVSxLQUFxQixFQUNyQixVQUE2QixFQUM3QixTQUEyQjtRQUYzQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWxCckMsYUFBUSxHQUFvQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDM0UsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFpQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNGLHFCQUFnQixHQUF1QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDdEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFF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SUFBSSxDQUFDLFVBQVUsQ0FBQyxxQ0FBcUMsQ0FDbkUsU0FBUyxFQUNULElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUNuQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVPLFlBQVksQ0FBQyxTQUFxQjtRQUN4QyxPQUFPLENBQ0wsU0FBUyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FDN0YsQ0FBQztJQUNKLENBQUM7OztZQS9HRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMscWpDQUFpRDthQUNsRDs7O1lBVlEsY0FBYztZQUtkLGlCQUFpQjtZQUZELGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJbnZlbnRvcnlTZXJ2aWNlLCBPcGVyYXRpb25TdGF0dXMsIElPcGVyYXRpb24gfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBEZXZpY2VTb2Z0d2FyZSwgRGV2aWNlU29mdHdhcmVDaGFuZ2UsIFJlcG9zaXRvcnlUeXBlIH0gZnJvbSAnLi4vcmVwb3NpdG9yeS5tb2RlbCc7XG5pbXBvcnQgeyBSZXBvc2l0b3J5U2VydmljZSB9IGZyb20gJy4uL3JlcG9zaXRvcnkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1zb2Z0d2FyZS1kZXZpY2UtdGFiJyxcbiAgdGVtcGxhdGVVcmw6ICdzb2Z0d2FyZS1kZXZpY2UtdGFiLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTb2Z0d2FyZURldmljZVRhYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGRldmljZUlkOiBzdHJpbmcgfCBudW1iZXIgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmVudC5kYXRhLmNvbnRleHREYXRhLmlkO1xuICBkZXZpY2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJTWFuYWdlZE9iamVjdD4odGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJlbnQuZGF0YS5jb250ZXh0RGF0YSk7XG4gIGRldmljZVR5cGVRdWVyeSQ6IE9ic2VydmFibGU8b2JqZWN0PiA9IHRoaXMuZGV2aWNlJC5waXBlKFxuICAgIG1hcChkZXZpY2UgPT4gdGhpcy5yZXBvc2l0b3J5LmdldERldmljZVR5cGVRdWVyeShSZXBvc2l0b3J5VHlwZS5TT0ZUV0FSRSwgZGV2aWNlKSlcbiAgKTtcbiAgbGlzdCQ6IE9ic2VydmFibGU8RGV2aWNlU29mdHdhcmVbXT4gPSB0aGlzLmRldmljZSQucGlwZShcbiAgICBtYXAoZGV2aWNlID0+IHRoaXMucmVwb3NpdG9yeS5nZXREZXZpY2VTb2Z0d2FyZUxpc3QoZGV2aWNlKSlcbiAgKTtcbiAgY2hhbmdlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERldmljZVNvZnR3YXJlQ2hhbmdlW10+KFtdKTtcbiAgY2hhbmdlc09wZXJhdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElPcGVyYXRpb24+KG51bGwpO1xuICBjaGFuZ2VzSW5Qcm9ncmVzcyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmNoYW5nZXNPcGVyYXRpb24kLnBpcGUoXG4gICAgbWFwKG9wZXJhdGlvbiA9PiB0aGlzLmlzSW5Qcm9ncmVzcyhvcGVyYXRpb24pKVxuICApO1xuICByZWxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlcG9zaXRvcnk6IFJlcG9zaXRvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW52ZW50b3J5OiBJbnZlbnRvcnlTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBhd2FpdCB0aGlzLmxvYWREZXZpY2UoKTtcbiAgICBhd2FpdCB0aGlzLmxvYWRPcGVyYXRpb24oKTtcbiAgfVxuXG4gIGFkZENoYW5nZXMocmVxdWVzdGVkQ2hhbmdlczogRGV2aWNlU29mdHdhcmVDaGFuZ2VbXSkge1xuICAgIGxldCBzdGFnZWRDaGFuZ2VzID0gWy4uLnRoaXMuY2hhbmdlcyQudmFsdWVdO1xuICAgIHJlcXVlc3RlZENoYW5nZXMuZm9yRWFjaChyZXF1ZXN0ZWRDaGFuZ2UgPT4ge1xuICAgICAgY29uc3QgYWxyZWFkeVN0YWdlZCA9IHN0YWdlZENoYW5nZXMuc29tZShzdGFnZWRDaGFuZ2UgPT5cbiAgICAgICAgdGhpcy5hcmVTYW1lQ2hhbmdlcyhzdGFnZWRDaGFuZ2UsIHJlcXVlc3RlZENoYW5nZSkpO1xuICAgICAgaWYgKCFhbHJlYWR5U3RhZ2VkKSB7XG4gICAgICAgIHN0YWdlZENoYW5nZXMgPSBbLi4uc3RhZ2VkQ2hhbmdlcywgcmVxdWVzdGVkQ2hhbmdlXTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmNoYW5nZXMkLm5leHQoc3RhZ2VkQ2hhbmdlcyk7XG4gIH1cblxuICBkcm9wQ2hhbmdlKGNoYW5nZVRvQmVEcm9wcGVkOiBEZXZpY2VTb2Z0d2FyZUNoYW5nZSkge1xuICAgIGxldCBzdGFnZWRDaGFuZ2VzID0gWy4uLnRoaXMuY2hhbmdlcyQudmFsdWVdO1xuICAgIHN0YWdlZENoYW5nZXMgPSBzdGFnZWRDaGFuZ2VzLmZpbHRlcihzdGFnZWRDaGFuZ2UgPT4gIXRoaXMuYXJlU2FtZUNoYW5nZXMoc3RhZ2VkQ2hhbmdlLCBjaGFuZ2VUb0JlRHJvcHBlZCkpO1xuICAgIHRoaXMuY2hhbmdlcyQubmV4dChzdGFnZWRDaGFuZ2VzKTtcbiAgfVxuXG4gIGFyZVNhbWVDaGFuZ2VzKGNoYW5nZTE6IERldmljZVNvZnR3YXJlQ2hhbmdlLCBjaGFuZ2UyOiBEZXZpY2VTb2Z0d2FyZUNoYW5nZSkge1xuICAgIHJldHVybiBjaGFuZ2UxLm5hbWUgPT09IGNoYW5nZTIubmFtZSAmJlxuICAgICAgY2hhbmdlMS52ZXJzaW9uID09PSBjaGFuZ2UyLnZlcnNpb24gJiZcbiAgICAgIGNoYW5nZTEuYWN0aW9uID09PSBjaGFuZ2UyLmFjdGlvbjtcbiAgfVxuXG4gIGNsZWFyQ2hhbmdlcygpIHtcbiAgICB0aGlzLmNoYW5nZXMkLm5leHQoW10pO1xuICB9XG5cbiAgYXN5bmMgbG9hZERldmljZSgpIHtcbiAgICB0aGlzLnJlbG9hZGluZyA9IHRydWU7XG4gICAgY29uc3QgZGV2aWNlID0gKGF3YWl0IHRoaXMuaW52ZW50b3J5LmRldGFpbCh0aGlzLmRldmljZUlkLCB7IHdpdGhDaGlsZHJlbjogZmFsc2UgfSkpLmRhdGE7XG4gICAgdGhpcy5kZXZpY2UkLm5leHQoZGV2aWNlKTtcbiAgICB0aGlzLnJlbG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgYXBwbHlDaGFuZ2VzKCkge1xuICAgIGNvbnN0IG9wZXJhdGlvbiA9IGF3YWl0IHRoaXMucmVwb3NpdG9yeS5jcmVhdGVTb2Z0d2FyZVVwZGF0ZU9wZXJhdGlvbihcbiAgICAgIHRoaXMuZGV2aWNlJC52YWx1ZSxcbiAgICAgIHRoaXMuY2hhbmdlcyQudmFsdWVcbiAgICApO1xuICAgIHRoaXMudHJhY2tPcGVyYXRpb24ob3BlcmF0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZE9wZXJhdGlvbigpIHtcbiAgICBjb25zdCBvcGVyYXRpb24gPSBhd2FpdCB0aGlzLnJlcG9zaXRvcnkuZ2V0TGFzdFNvZnR3YXJlVXBkYXRlT3BlcmF0aW9uKHRoaXMuZGV2aWNlSWQpO1xuICAgIHRoaXMudHJhY2tPcGVyYXRpb24ob3BlcmF0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhY2tPcGVyYXRpb24ob3BlcmF0aW9uOiBJT3BlcmF0aW9uKSB7XG4gICAgdGhpcy5jaGFuZ2VzT3BlcmF0aW9uJC5uZXh0KG9wZXJhdGlvbik7XG5cbiAgICBpZiAodGhpcy5pc0luUHJvZ3Jlc3Mob3BlcmF0aW9uKSkge1xuICAgICAgdGhpcy5kaXNwbGF5Q2hhbmdlc0Zyb21PcGVyYXRpb24ob3BlcmF0aW9uKTtcbiAgICAgIHRoaXMucmVwb3NpdG9yeS5vYnNlcnZlT3BlcmF0aW9uKG9wZXJhdGlvbikuc3Vic2NyaWJlKFxuICAgICAgICBvcGVyYXRpb25VcGRhdGUgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbmdlc09wZXJhdGlvbiQubmV4dChvcGVyYXRpb25VcGRhdGUpO1xuICAgICAgICAgIGlmIChvcGVyYXRpb25VcGRhdGUuc3RhdHVzID09PSBPcGVyYXRpb25TdGF0dXMuU1VDQ0VTU0ZVTCkge1xuICAgICAgICAgICAgdGhpcy5jbGVhckNoYW5nZXMoKTtcbiAgICAgICAgICAgIHRoaXMubG9hZERldmljZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgb3BlcmF0aW9uVXBkYXRlID0+IHtcbiAgICAgICAgICB0aGlzLmNoYW5nZXNPcGVyYXRpb24kLm5leHQob3BlcmF0aW9uVXBkYXRlKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRpc3BsYXlDaGFuZ2VzRnJvbU9wZXJhdGlvbihvcGVyYXRpb246IElPcGVyYXRpb24pIHtcbiAgICBjb25zdCBjaGFuZ2VzID0gdGhpcy5yZXBvc2l0b3J5LmdldERldmljZVNvZnR3YXJlQ2hhbmdlc0Zyb21PcGVyYXRpb24oXG4gICAgICBvcGVyYXRpb24sXG4gICAgICB0aGlzLmRldmljZSQudmFsdWVcbiAgICApO1xuICAgIHRoaXMuY2hhbmdlcyQubmV4dChjaGFuZ2VzKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNJblByb2dyZXNzKG9wZXJhdGlvbjogSU9wZXJhdGlvbikge1xuICAgIHJldHVybiAoXG4gICAgICBvcGVyYXRpb24gJiYgW09wZXJhdGlvblN0YXR1cy5QRU5ESU5HLCBPcGVyYXRpb25TdGF0dXMuRVhFQ1VUSU5HXS5pbmNsdWRlcyhvcGVyYXRpb24uc3RhdHVzKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdHdhcmUtZGV2aWNlLXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9yZXBvc2l0b3J5L3NvZnR3YXJlLWRldmljZS10YWIvc29mdHdhcmUtZGV2aWNlLXRhYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBYyxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBa0IsZ0JBQWdCLEVBQUUsZUFBZSxFQUFjLE1BQU0sYUFBYSxDQUFDO0FBQzVGLE9BQU8sRUFBd0MsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFNMUQsTUFBTSxPQUFPLDBCQUEwQjtJQWdCckMsWUFDVSxLQUFxQixFQUNyQixVQUE2QixFQUM3QixTQUEyQjtRQUYzQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWxCckMsYUFBUSxHQUFvQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDM0UsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFpQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNGLHFCQUFnQixHQUF1QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDdEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFF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SUFBSSxDQUFDLFVBQVUsQ0FBQyxxQ0FBcUMsQ0FDbkUsU0FBUyxFQUNULElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUNuQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVPLFlBQVksQ0FBQyxTQUFxQjtRQUN4QyxPQUFPLENBQ0wsU0FBUyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FDN0YsQ0FBQztJQUNKLENBQUM7OztZQS9HRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsdWxDQUFpRDthQUNsRDs7O1lBVlEsY0FBYztZQUtkLGlCQUFpQjtZQUZELGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJbnZlbnRvcnlTZXJ2aWNlLCBPcGVyYXRpb25TdGF0dXMsIElPcGVyYXRpb24gfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBEZXZpY2VTb2Z0d2FyZSwgRGV2aWNlU29mdHdhcmVDaGFuZ2UsIFJlcG9zaXRvcnlUeXBlIH0gZnJvbSAnLi4vcmVwb3NpdG9yeS5tb2RlbCc7XG5pbXBvcnQgeyBSZXBvc2l0b3J5U2VydmljZSB9IGZyb20gJy4uL3JlcG9zaXRvcnkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1zb2Z0d2FyZS1kZXZpY2UtdGFiJyxcbiAgdGVtcGxhdGVVcmw6ICdzb2Z0d2FyZS1kZXZpY2UtdGFiLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTb2Z0d2FyZURldmljZVRhYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGRldmljZUlkOiBzdHJpbmcgfCBudW1iZXIgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmVudC5kYXRhLmNvbnRleHREYXRhLmlkO1xuICBkZXZpY2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJTWFuYWdlZE9iamVjdD4odGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJlbnQuZGF0YS5jb250ZXh0RGF0YSk7XG4gIGRldmljZVR5cGVRdWVyeSQ6IE9ic2VydmFibGU8b2JqZWN0PiA9IHRoaXMuZGV2aWNlJC5waXBlKFxuICAgIG1hcChkZXZpY2UgPT4gdGhpcy5yZXBvc2l0b3J5LmdldERldmljZVR5cGVRdWVyeShSZXBvc2l0b3J5VHlwZS5TT0ZUV0FSRSwgZGV2aWNlKSlcbiAgKTtcbiAgbGlzdCQ6IE9ic2VydmFibGU8RGV2aWNlU29mdHdhcmVbXT4gPSB0aGlzLmRldmljZSQucGlwZShcbiAgICBtYXAoZGV2aWNlID0+IHRoaXMucmVwb3NpdG9yeS5nZXREZXZpY2VTb2Z0d2FyZUxpc3QoZGV2aWNlKSlcbiAgKTtcbiAgY2hhbmdlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERldmljZVNvZnR3YXJlQ2hhbmdlW10+KFtdKTtcbiAgY2hhbmdlc09wZXJhdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElPcGVyYXRpb24+KG51bGwpO1xuICBjaGFuZ2VzSW5Qcm9ncmVzcyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmNoYW5nZXNPcGVyYXRpb24kLnBpcGUoXG4gICAgbWFwKG9wZXJhdGlvbiA9PiB0aGlzLmlzSW5Qcm9ncmVzcyhvcGVyYXRpb24pKVxuICApO1xuICByZWxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlcG9zaXRvcnk6IFJlcG9zaXRvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW52ZW50b3J5OiBJbnZlbnRvcnlTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBhd2FpdCB0aGlzLmxvYWREZXZpY2UoKTtcbiAgICBhd2FpdCB0aGlzLmxvYWRPcGVyYXRpb24oKTtcbiAgfVxuXG4gIGFkZENoYW5nZXMocmVxdWVzdGVkQ2hhbmdlczogRGV2aWNlU29mdHdhcmVDaGFuZ2VbXSkge1xuICAgIGxldCBzdGFnZWRDaGFuZ2VzID0gWy4uLnRoaXMuY2hhbmdlcyQudmFsdWVdO1xuICAgIHJlcXVlc3RlZENoYW5nZXMuZm9yRWFjaChyZXF1ZXN0ZWRDaGFuZ2UgPT4ge1xuICAgICAgY29uc3QgYWxyZWFkeVN0YWdlZCA9IHN0YWdlZENoYW5nZXMuc29tZShzdGFnZWRDaGFuZ2UgPT5cbiAgICAgICAgdGhpcy5hcmVTYW1lQ2hhbmdlcyhzdGFnZWRDaGFuZ2UsIHJlcXVlc3RlZENoYW5nZSkpO1xuICAgICAgaWYgKCFhbHJlYWR5U3RhZ2VkKSB7XG4gICAgICAgIHN0YWdlZENoYW5nZXMgPSBbLi4uc3RhZ2VkQ2hhbmdlcywgcmVxdWVzdGVkQ2hhbmdlXTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmNoYW5nZXMkLm5leHQoc3RhZ2VkQ2hhbmdlcyk7XG4gIH1cblxuICBkcm9wQ2hhbmdlKGNoYW5nZVRvQmVEcm9wcGVkOiBEZXZpY2VTb2Z0d2FyZUNoYW5nZSkge1xuICAgIGxldCBzdGFnZWRDaGFuZ2VzID0gWy4uLnRoaXMuY2hhbmdlcyQudmFsdWVdO1xuICAgIHN0YWdlZENoYW5nZXMgPSBzdGFnZWRDaGFuZ2VzLmZpbHRlcihzdGFnZWRDaGFuZ2UgPT4gIXRoaXMuYXJlU2FtZUNoYW5nZXMoc3RhZ2VkQ2hhbmdlLCBjaGFuZ2VUb0JlRHJvcHBlZCkpO1xuICAgIHRoaXMuY2hhbmdlcyQubmV4dChzdGFnZWRDaGFuZ2VzKTtcbiAgfVxuXG4gIGFyZVNhbWVDaGFuZ2VzKGNoYW5nZTE6IERldmljZVNvZnR3YXJlQ2hhbmdlLCBjaGFuZ2UyOiBEZXZpY2VTb2Z0d2FyZUNoYW5nZSkge1xuICAgIHJldHVybiBjaGFuZ2UxLm5hbWUgPT09IGNoYW5nZTIubmFtZSAmJlxuICAgICAgY2hhbmdlMS52ZXJzaW9uID09PSBjaGFuZ2UyLnZlcnNpb24gJiZcbiAgICAgIGNoYW5nZTEuYWN0aW9uID09PSBjaGFuZ2UyLmFjdGlvbjtcbiAgfVxuXG4gIGNsZWFyQ2hhbmdlcygpIHtcbiAgICB0aGlzLmNoYW5nZXMkLm5leHQoW10pO1xuICB9XG5cbiAgYXN5bmMgbG9hZERldmljZSgpIHtcbiAgICB0aGlzLnJlbG9hZGluZyA9IHRydWU7XG4gICAgY29uc3QgZGV2aWNlID0gKGF3YWl0IHRoaXMuaW52ZW50b3J5LmRldGFpbCh0aGlzLmRldmljZUlkLCB7IHdpdGhDaGlsZHJlbjogZmFsc2UgfSkpLmRhdGE7XG4gICAgdGhpcy5kZXZpY2UkLm5leHQoZGV2aWNlKTtcbiAgICB0aGlzLnJlbG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgYXBwbHlDaGFuZ2VzKCkge1xuICAgIGNvbnN0IG9wZXJhdGlvbiA9IGF3YWl0IHRoaXMucmVwb3NpdG9yeS5jcmVhdGVTb2Z0d2FyZVVwZGF0ZU9wZXJhdGlvbihcbiAgICAgIHRoaXMuZGV2aWNlJC52YWx1ZSxcbiAgICAgIHRoaXMuY2hhbmdlcyQudmFsdWVcbiAgICApO1xuICAgIHRoaXMudHJhY2tPcGVyYXRpb24ob3BlcmF0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZE9wZXJhdGlvbigpIHtcbiAgICBjb25zdCBvcGVyYXRpb24gPSBhd2FpdCB0aGlzLnJlcG9zaXRvcnkuZ2V0TGFzdFNvZnR3YXJlVXBkYXRlT3BlcmF0aW9uKHRoaXMuZGV2aWNlSWQpO1xuICAgIHRoaXMudHJhY2tPcGVyYXRpb24ob3BlcmF0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhY2tPcGVyYXRpb24ob3BlcmF0aW9uOiBJT3BlcmF0aW9uKSB7XG4gICAgdGhpcy5jaGFuZ2VzT3BlcmF0aW9uJC5uZXh0KG9wZXJhdGlvbik7XG5cbiAgICBpZiAodGhpcy5pc0luUHJvZ3Jlc3Mob3BlcmF0aW9uKSkge1xuICAgICAgdGhpcy5kaXNwbGF5Q2hhbmdlc0Zyb21PcGVyYXRpb24ob3BlcmF0aW9uKTtcbiAgICAgIHRoaXMucmVwb3NpdG9yeS5vYnNlcnZlT3BlcmF0aW9uKG9wZXJhdGlvbikuc3Vic2NyaWJlKFxuICAgICAgICBvcGVyYXRpb25VcGRhdGUgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbmdlc09wZXJhdGlvbiQubmV4dChvcGVyYXRpb25VcGRhdGUpO1xuICAgICAgICAgIGlmIChvcGVyYXRpb25VcGRhdGUuc3RhdHVzID09PSBPcGVyYXRpb25TdGF0dXMuU1VDQ0VTU0ZVTCkge1xuICAgICAgICAgICAgdGhpcy5jbGVhckNoYW5nZXMoKTtcbiAgICAgICAgICAgIHRoaXMubG9hZERldmljZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgb3BlcmF0aW9uVXBkYXRlID0+IHtcbiAgICAgICAgICB0aGlzLmNoYW5nZXNPcGVyYXRpb24kLm5leHQob3BlcmF0aW9uVXBkYXRlKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRpc3BsYXlDaGFuZ2VzRnJvbU9wZXJhdGlvbihvcGVyYXRpb246IElPcGVyYXRpb24pIHtcbiAgICBjb25zdCBjaGFuZ2VzID0gdGhpcy5yZXBvc2l0b3J5LmdldERldmljZVNvZnR3YXJlQ2hhbmdlc0Zyb21PcGVyYXRpb24oXG4gICAgICBvcGVyYXRpb24sXG4gICAgICB0aGlzLmRldmljZSQudmFsdWVcbiAgICApO1xuICAgIHRoaXMuY2hhbmdlcyQubmV4dChjaGFuZ2VzKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNJblByb2dyZXNzKG9wZXJhdGlvbjogSU9wZXJhdGlvbikge1xuICAgIHJldHVybiAoXG4gICAgICBvcGVyYXRpb24gJiYgW09wZXJhdGlvblN0YXR1cy5QRU5ESU5HLCBPcGVyYXRpb25TdGF0dXMuRVhFQ1VUSU5HXS5pbmNsdWRlcyhvcGVyYXRpb24uc3RhdHVzKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,18 +1,22 @@
1
1
  import { Injectable } from '@angular/core';
2
+ import { get, has } from 'lodash-es';
2
3
  export class SoftwareDeviceTabGuard {
3
4
  constructor() {
4
5
  this.operations = ['c8y_SoftwareUpdate', 'c8y_SoftwareList', 'c8y_Software'];
5
6
  }
6
7
  canActivate(route) {
7
- return this.isAnyOperationSupported(route);
8
+ const device = get(route, 'data.contextData') || get(route, 'parent.data.contextData');
9
+ return (this.isAnyOperationSupported(device) ||
10
+ has(device, 'c8y_Software') ||
11
+ has(device, 'c8y_SoftwareList') ||
12
+ has(device, 'c8y_SupportedSoftwareTypes'));
8
13
  }
9
- isAnyOperationSupported(route) {
10
- const device = route.data.contextData || route.parent.data.contextData;
11
- const supportedOperations = (device && device.c8y_SupportedOperations) || [];
14
+ isAnyOperationSupported(device) {
15
+ const supportedOperations = (device === null || device === void 0 ? void 0 : device.c8y_SupportedOperations) || [];
12
16
  return this.operations.some(operation => supportedOperations.indexOf(operation) >= 0);
13
17
  }
14
18
  }
15
19
  SoftwareDeviceTabGuard.decorators = [
16
20
  { type: Injectable }
17
21
  ];
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdHdhcmUtZGV2aWNlLXRhYi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvc29mdHdhcmUtZGV2aWNlLXRhYi9zb2Z0d2FyZS1kZXZpY2UtdGFiLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsTUFBTSxPQUFPLHNCQUFzQjtJQURuQztRQUVtQixlQUFVLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLENBQUMsQ0FBQztJQVczRixDQUFDO0lBVEMsV0FBVyxDQUFDLEtBQTZCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxLQUE2QjtRQUMzRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDdkUsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0UsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDOzs7WUFaRixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FuQWN0aXZhdGUsIEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU29mdHdhcmVEZXZpY2VUYWJHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBvcGVyYXRpb25zID0gWydjOHlfU29mdHdhcmVVcGRhdGUnLCAnYzh5X1NvZnR3YXJlTGlzdCcsICdjOHlfU29mdHdhcmUnXTtcblxuICBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCkge1xuICAgIHJldHVybiB0aGlzLmlzQW55T3BlcmF0aW9uU3VwcG9ydGVkKHJvdXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNBbnlPcGVyYXRpb25TdXBwb3J0ZWQocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpIHtcbiAgICBjb25zdCBkZXZpY2UgPSByb3V0ZS5kYXRhLmNvbnRleHREYXRhIHx8IHJvdXRlLnBhcmVudC5kYXRhLmNvbnRleHREYXRhO1xuICAgIGNvbnN0IHN1cHBvcnRlZE9wZXJhdGlvbnMgPSAoZGV2aWNlICYmIGRldmljZS5jOHlfU3VwcG9ydGVkT3BlcmF0aW9ucykgfHwgW107XG4gICAgcmV0dXJuIHRoaXMub3BlcmF0aW9ucy5zb21lKG9wZXJhdGlvbiA9PiBzdXBwb3J0ZWRPcGVyYXRpb25zLmluZGV4T2Yob3BlcmF0aW9uKSA+PSAwKTtcbiAgfVxufVxuIl19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdHdhcmUtZGV2aWNlLXRhYi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvc29mdHdhcmUtZGV2aWNlLXRhYi9zb2Z0d2FyZS1kZXZpY2UtdGFiLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHckMsTUFBTSxPQUFPLHNCQUFzQjtJQURuQztRQUVtQixlQUFVLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLENBQUMsQ0FBQztJQWdCM0YsQ0FBQztJQWRDLFdBQVcsQ0FBQyxLQUE2QjtRQUN2QyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLGtCQUFrQixDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3ZGLE9BQU8sQ0FDTCxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDO1lBQ3BDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDO1lBQzNCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUM7WUFDL0IsR0FBRyxDQUFDLE1BQU0sRUFBRSw0QkFBNEIsQ0FBQyxDQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUVPLHVCQUF1QixDQUFDLE1BQXNCO1FBQ3BELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsdUJBQXVCLEtBQUksRUFBRSxDQUFDO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQzs7O1lBakJGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IGdldCwgaGFzIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNvZnR3YXJlRGV2aWNlVGFiR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3BlcmF0aW9ucyA9IFsnYzh5X1NvZnR3YXJlVXBkYXRlJywgJ2M4eV9Tb2Z0d2FyZUxpc3QnLCAnYzh5X1NvZnR3YXJlJ107XG5cbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpIHtcbiAgICBjb25zdCBkZXZpY2UgPSBnZXQocm91dGUsICdkYXRhLmNvbnRleHREYXRhJykgfHwgZ2V0KHJvdXRlLCAncGFyZW50LmRhdGEuY29udGV4dERhdGEnKTtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pc0FueU9wZXJhdGlvblN1cHBvcnRlZChkZXZpY2UpIHx8XG4gICAgICBoYXMoZGV2aWNlLCAnYzh5X1NvZnR3YXJlJykgfHxcbiAgICAgIGhhcyhkZXZpY2UsICdjOHlfU29mdHdhcmVMaXN0JykgfHxcbiAgICAgIGhhcyhkZXZpY2UsICdjOHlfU3VwcG9ydGVkU29mdHdhcmVUeXBlcycpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNBbnlPcGVyYXRpb25TdXBwb3J0ZWQoZGV2aWNlOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIGNvbnN0IHN1cHBvcnRlZE9wZXJhdGlvbnMgPSBkZXZpY2U/LmM4eV9TdXBwb3J0ZWRPcGVyYXRpb25zIHx8IFtdO1xuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbnMuc29tZShvcGVyYXRpb24gPT4gc3VwcG9ydGVkT3BlcmF0aW9ucy5pbmRleE9mKG9wZXJhdGlvbikgPj0gMCk7XG4gIH1cbn1cbiJdfQ==