@c8y/ngx-components 1018.503.128 → 1018.503.133

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.
@@ -7,6 +7,9 @@ export class GetGroupIconPipe {
7
7
  this.groupService = groupService;
8
8
  }
9
9
  async transform(mo, open = false, defaultIcon) {
10
+ if (!mo.c8y_IsDevice) {
11
+ return this.groupService.getIcon(mo, open, 'c8y-group-open');
12
+ }
10
13
  return this.groupService.getIcon(mo, open, defaultIcon);
11
14
  }
12
15
  }
@@ -18,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
18
21
  name: 'getGroupIcon'
19
22
  }]
20
23
  }], ctorParameters: function () { return [{ type: i1.GroupService }]; } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWdyb3VwLWljb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvY29tbW9uL2dldC1ncm91cC1pY29uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFLL0MsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUFHLENBQUM7SUFFbEQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFrQixFQUFFLElBQUksR0FBRyxLQUFLLEVBQUUsV0FBb0I7UUFDcEUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzFELENBQUM7OzZHQUxVLGdCQUFnQjsyR0FBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBSDVCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGNBQWM7aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBHcm91cFNlcnZpY2UgfSBmcm9tICcuL2dyb3VwLnNlcnZpY2UnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdnZXRHcm91cEljb24nXG59KVxuZXhwb3J0IGNsYXNzIEdldEdyb3VwSWNvblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBncm91cFNlcnZpY2U6IEdyb3VwU2VydmljZSkge31cblxuICBhc3luYyB0cmFuc2Zvcm0obW86IElNYW5hZ2VkT2JqZWN0LCBvcGVuID0gZmFsc2UsIGRlZmF1bHRJY29uPzogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5ncm91cFNlcnZpY2UuZ2V0SWNvbihtbywgb3BlbiwgZGVmYXVsdEljb24pO1xuICB9XG59XG4iXX0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWdyb3VwLWljb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvY29tbW9uL2dldC1ncm91cC1pY29uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFLL0MsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUFHLENBQUM7SUFFbEQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFrQixFQUFFLElBQUksR0FBRyxLQUFLLEVBQUUsV0FBb0I7UUFDcEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUU7WUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUM7U0FDOUQ7UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDMUQsQ0FBQzs7NkdBUlUsZ0JBQWdCOzJHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFINUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsY0FBYztpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEdyb3VwU2VydmljZSB9IGZyb20gJy4vZ3JvdXAuc2VydmljZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2dldEdyb3VwSWNvbidcbn0pXG5leHBvcnQgY2xhc3MgR2V0R3JvdXBJY29uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGdyb3VwU2VydmljZTogR3JvdXBTZXJ2aWNlKSB7fVxuXG4gIGFzeW5jIHRyYW5zZm9ybShtbzogSU1hbmFnZWRPYmplY3QsIG9wZW4gPSBmYWxzZSwgZGVmYXVsdEljb24/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghbW8uYzh5X0lzRGV2aWNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5ncm91cFNlcnZpY2UuZ2V0SWNvbihtbywgb3BlbiwgJ2M4eS1ncm91cC1vcGVuJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdyb3VwU2VydmljZS5nZXRJY29uKG1vLCBvcGVuLCBkZWZhdWx0SWNvbik7XG4gIH1cbn1cbiJdfQ==
@@ -83,7 +83,16 @@ export class Lwm2mFormFirmwareSettings extends Lwm2mFormWrapperBase {
83
83
  expressions: {
84
84
  hide: 'model.disableFirmwareStateMachine'
85
85
  }
86
- }))
86
+ })),
87
+ {
88
+ key: 'failOnStateAndResultIncompatibility',
89
+ type: 'switch',
90
+ defaultValue: false,
91
+ props: {
92
+ label: gettext('Fail device firmware update on unexpected result'),
93
+ description: gettext('If the configuration is enabled, the firmware update operation will fail if the update result (resource 5) is not as expected based on the LWM2M firmware state machine.')
94
+ }
95
+ }
87
96
  ]
88
97
  }
89
98
  ];
@@ -95,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
95
104
  type: Component,
96
105
  args: [{ imports: [CoreModule, Lwm2mUIThemeModule], standalone: true, template: "<formly-form\n *ngIf=\"fields?.length > 0; else empty\"\n [model]=\"model\"\n [form]=\"form\"\n [fields]=\"fields\"\n [options]=\"options\"\n data-cy=\"lwm2m-device-configuration--formly-form\"\n></formly-form>\n<ng-template #empty>\n <c8y-ui-empty-state\n [icon]=\"'c8y-device-protocols'\"\n title=\"{{ 'No configuration selected' | translate }}\"\n subtitle=\"{{ 'Select a configuration on the left' | translate }}\"\n ></c8y-ui-empty-state>\n</ng-template>\n" }]
97
106
  }], ctorParameters: function () { return [{ type: i1.Lwm2mConfigurationService }]; } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlybXdhcmUtc2V0dGluZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvdG9jb2wtbHdtMm0vY29tcG9uZW50cy9jb25maWd1cmF0aW9uL3R5cGVkLWZvcm1zL2Zpcm13YXJlLXNldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb3RvY29sLWx3bTJtL2NvbXBvbmVudHMvY29uZmlndXJhdGlvbi90eXBlZC1mb3Jtcy9mb3JtLXdyYXBwZXItYmFzZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUNMLFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUU1QixNQUFNLDBDQUEwQyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7Ozs7QUFPeEYsTUFBTSxPQUFPLHlCQUEwQixTQUFRLG9CQUFzQztJQUVuRixZQUFzQixPQUFvRDtRQUN4RSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFESyxZQUFPLEdBQVAsT0FBTyxDQUE2QztRQURoRSxhQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUd2QyxDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sT0FBTyxHQUFHO1lBQ2Q7Z0JBQ0UsR0FBRyxFQUFFLHdCQUF3QjtnQkFDN0IsS0FBSyxFQUFFLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQztnQkFDOUMsS0FBSyxFQUFFLGtCQUFrQjthQUMxQjtZQUNEO2dCQUNFLEdBQUcsRUFBRSx5QkFBeUI7Z0JBQzlCLEtBQUssRUFBRSxPQUFPLENBQUMsd0NBQXdDLENBQUM7Z0JBQ3hELEtBQUssRUFBRSwyQkFBMkI7YUFDbkM7WUFDRDtnQkFDRSxHQUFHLEVBQUUsYUFBYTtnQkFDbEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQztnQkFDOUMsS0FBSyxFQUFFLGtCQUFrQjthQUMxQjtTQUNGLENBQUM7UUFDRixPQUFPO1lBQ0w7Z0JBQ0UsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUNwQixVQUFVLEVBQUU7b0JBQ1Y7d0JBQ0UsR0FBRyxFQUFFLDZCQUE2Qjt3QkFDbEMsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsWUFBWSxFQUFFLEtBQUs7d0JBQ25CLEtBQUssRUFBRTs0QkFDTCxLQUFLLEVBQUUsT0FBTyxDQUFDLDJDQUEyQyxDQUFDOzRCQUMzRCxXQUFXLEVBQUUsT0FBTyxDQUFDLHNEQUFzRCxDQUFDO3lCQUM3RTtxQkFDRjtvQkFDRDt3QkFDRSxHQUFHLEVBQUUsS0FBSzt3QkFDVixJQUFJLEVBQUUsUUFBUTt3QkFDZCxLQUFLLEVBQUU7NEJBQ0wsS0FBSyxFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQzs0QkFDbEMsV0FBVyxFQUFFLG9CQUFvQjs0QkFDakMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxpREFBaUQsQ0FBQzt5QkFDeEU7d0JBQ0QsV0FBVyxFQUFFOzRCQUNYLElBQUksRUFBRSxtQ0FBbUM7eUJBQzFDO3FCQUNGO29CQUNEO3dCQUNFLEdBQUcsRUFBRSwwQkFBMEI7d0JBQy9CLElBQUksRUFBRSxRQUFRO3dCQUNkLFlBQVksRUFBRSxLQUFLO3dCQUNuQixLQUFLLEVBQUU7NEJBQ0wsS0FBSyxFQUFFLE9BQU8sQ0FBQyxxQ0FBcUMsQ0FBQzs0QkFDckQsV0FBVyxFQUFFLE9BQU8sQ0FDbEIsd0dBQXdHLENBQ3pHO3lCQUNGO3dCQUNELFdBQVcsRUFBRTs0QkFDWCxJQUFJLEVBQUUsbUNBQW1DO3lCQUMxQztxQkFDRjtvQkFDRCxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUN4QixHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUc7d0JBQ2YsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsS0FBSyxFQUFFOzRCQUNMLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSzs0QkFDbkIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQzs0QkFDNUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7NEJBQzVFLGVBQWUsRUFBRSxJQUFJOzRCQUNyQixtQkFBbUIsRUFBRSxJQUFJO3lCQUMxQjt3QkFDRCxXQUFXLEVBQUU7NEJBQ1gsSUFBSSxFQUFFLG1DQUFtQzt5QkFDMUM7cUJBQ0YsQ0FBQyxDQUFDO2lCQUNKO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7c0hBaEZVLHlCQUF5QjswR0FBekIseUJBQXlCLCtGQ2xCdEMsZ2VBZUEsMkNEQVksVUFBVSwyZEFBRSxrQkFBa0I7MkZBRzdCLHlCQUF5QjtrQkFMckMsU0FBUzs4QkFFQyxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxjQUM3QixJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlLCBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBMd20ybVVJVGhlbWVNb2R1bGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3Byb3RvY29sLWx3bTJtL2Zvcm1seSc7XG5pbXBvcnQge1xuICBFbmRwb2ludCxcbiAgRldVX0RlbGl2ZXJ5TWV0aG9kLFxuICBGV1VfUmVzZXRNZWNoYW5pc20sXG4gIEZXVV9TdXBwb3J0ZWREZXZpY2VQcm90b2NvbCxcbiAgRmlybXdhcmVTZXR0aW5nc1xufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3Byb3RvY29sLWx3bTJtL21vZGVsJztcbmltcG9ydCB7IEx3bTJtRm9ybVdyYXBwZXJCYXNlIH0gZnJvbSAnLi9mb3JtLXdyYXBwZXItYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTHdtMm1Db25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcHJvdG9jb2wtbHdtMm0vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0td3JhcHBlci1iYXNlLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIEx3bTJtVUlUaGVtZU1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTHdtMm1Gb3JtRmlybXdhcmVTZXR0aW5ncyBleHRlbmRzIEx3bTJtRm9ybVdyYXBwZXJCYXNlPEZpcm13YXJlU2V0dGluZ3M+IHtcbiAgcHJvdGVjdGVkIGVuZHBvaW50ID0gRW5kcG9pbnQuZmlybXdhcmU7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzZXJ2aWNlOiBMd20ybUNvbmZpZ3VyYXRpb25TZXJ2aWNlPEZpcm13YXJlU2V0dGluZ3M+KSB7XG4gICAgc3VwZXIoc2VydmljZSk7XG4gIH1cblxuICBjcmVhdGVGb3JtKCkge1xuICAgIGNvbnN0IHNlbGVjdHMgPSBbXG4gICAgICB7XG4gICAgICAgIGtleTogJ2Zpcm13YXJlRGVsaXZlcnlNZXRob2QnLFxuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnVXBkYXRlYHZlcmJgIGRlbGl2ZXJ5IG1ldGhvZCcpLFxuICAgICAgICBfZW51bTogRldVX0RlbGl2ZXJ5TWV0aG9kXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdzdXBwb3J0ZWREZXZpY2VQcm90b2NvbCcsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdVcGRhdGVgdmVyYmAgc3VwcG9ydGVkIGRldmljZSBwcm90b2NvbCcpLFxuICAgICAgICBfZW51bTogRldVX1N1cHBvcnRlZERldmljZVByb3RvY29sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdyZXNldE1ldGhvZCcsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdVcGRhdGVgdmVyYmAgcmVzZXQgbWVjaGFuaXNtJyksXG4gICAgICAgIF9lbnVtOiBGV1VfUmVzZXRNZWNoYW5pc21cbiAgICAgIH1cbiAgICBdO1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHdyYXBwZXJzOiBbJ2xlZ2VuZCddLFxuICAgICAgICBmaWVsZEdyb3VwOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnZGlzYWJsZUZpcm13YXJlU3RhdGVNYWNoaW5lJyxcbiAgICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdEaXNhYmxlIGF1dG9tYXRlZCBmaXJtd2FyZSB1cGRhdGUgc3VwcG9ydCcpLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnVHVybnMgb2ZmIHRoZSBpbnRlcm5hbCBmaXJtd2FyZSB1cGRhdGUgc3RhdGUgbWFjaGluZScpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICd1cmwnLFxuICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnVXBkYXRlYG5vdW5gIFVSTCcpLFxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJ2Zpcm13YXJlLWltYWdlLXVybCcsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdJZiBub3Qgc3BlY2lmaWVkLCBMV00yTSBBZ2VudCBnZW5lcmF0ZXMgdGhlIFVSTCcpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXhwcmVzc2lvbnM6IHtcbiAgICAgICAgICAgICAgaGlkZTogJ21vZGVsLmRpc2FibGVGaXJtd2FyZVN0YXRlTWFjaGluZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ3Jlc2V0U3RhdGVNYWNoaW5lT25TdGFydCcsXG4gICAgICAgICAgICB0eXBlOiAnc3dpdGNoJyxcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnQWx3YXlzIHJlc2V0IGZpcm13YXJlIHN0YXRlIG1hY2hpbmUnKSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGdldHRleHQoXG4gICAgICAgICAgICAgICAgJ0NvbnRyb2xzIGlmIHRoZSBMV00yTSBBZ2VudCBwZXJmb3JtcyBhbiBpbml0aWFsIHN0YXRlIG1hY2hpbmUgcmVzZXQgYmVmb3JlIGl0IHN0YXJ0cyBhIGZpcm13YXJlIHVwZGF0ZSdcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV4cHJlc3Npb25zOiB7XG4gICAgICAgICAgICAgIGhpZGU6ICdtb2RlbC5kaXNhYmxlRmlybXdhcmVTdGF0ZU1hY2hpbmUnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICAuLi5zZWxlY3RzLm1hcChzZWxlY3QgPT4gKHtcbiAgICAgICAgICAgIGtleTogc2VsZWN0LmtleSxcbiAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgbGFiZWw6IHNlbGVjdC5sYWJlbCxcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGdldHRleHQoJ0RlZmF1bHQgZGV2aWNlIHZhbHVlJyksXG4gICAgICAgICAgICAgIG9wdGlvbnM6IE9iamVjdC52YWx1ZXMoc2VsZWN0Ll9lbnVtKS5tYXAodmFsdWUgPT4gKHsgbGFiZWw6IHZhbHVlLCB2YWx1ZSB9KSksXG4gICAgICAgICAgICAgIGFjY2VwdFVuZGVmaW5lZDogdHJ1ZSxcbiAgICAgICAgICAgICAgcmVtb3ZlRXhlbXBsaUdyYXRpYTogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV4cHJlc3Npb25zOiB7XG4gICAgICAgICAgICAgIGhpZGU6ICdtb2RlbC5kaXNhYmxlRmlybXdhcmVTdGF0ZU1hY2hpbmUnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkpXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdO1xuICB9XG59XG4iLCI8Zm9ybWx5LWZvcm1cbiAgKm5nSWY9XCJmaWVsZHM/Lmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlcIlxuICBbbW9kZWxdPVwibW9kZWxcIlxuICBbZm9ybV09XCJmb3JtXCJcbiAgW2ZpZWxkc109XCJmaWVsZHNcIlxuICBbb3B0aW9uc109XCJvcHRpb25zXCJcbiAgZGF0YS1jeT1cImx3bTJtLWRldmljZS1jb25maWd1cmF0aW9uLS1mb3JtbHktZm9ybVwiXG4+PC9mb3JtbHktZm9ybT5cbjxuZy10ZW1wbGF0ZSAjZW1wdHk+XG4gIDxjOHktdWktZW1wdHktc3RhdGVcbiAgICBbaWNvbl09XCInYzh5LWRldmljZS1wcm90b2NvbHMnXCJcbiAgICB0aXRsZT1cInt7ICdObyBjb25maWd1cmF0aW9uIHNlbGVjdGVkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgc3VidGl0bGU9XCJ7eyAnU2VsZWN0IGEgY29uZmlndXJhdGlvbiBvbiB0aGUgbGVmdCcgfCB0cmFuc2xhdGUgfX1cIlxuICA+PC9jOHktdWktZW1wdHktc3RhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlybXdhcmUtc2V0dGluZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvdG9jb2wtbHdtMm0vY29tcG9uZW50cy9jb25maWd1cmF0aW9uL3R5cGVkLWZvcm1zL2Zpcm13YXJlLXNldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb3RvY29sLWx3bTJtL2NvbXBvbmVudHMvY29uZmlndXJhdGlvbi90eXBlZC1mb3Jtcy9mb3JtLXdyYXBwZXItYmFzZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUNMLFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUU1QixNQUFNLDBDQUEwQyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7Ozs7QUFPeEYsTUFBTSxPQUFPLHlCQUEwQixTQUFRLG9CQUFzQztJQUVuRixZQUFzQixPQUFvRDtRQUN4RSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFESyxZQUFPLEdBQVAsT0FBTyxDQUE2QztRQURoRSxhQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUd2QyxDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sT0FBTyxHQUFHO1lBQ2Q7Z0JBQ0UsR0FBRyxFQUFFLHdCQUF3QjtnQkFDN0IsS0FBSyxFQUFFLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQztnQkFDOUMsS0FBSyxFQUFFLGtCQUFrQjthQUMxQjtZQUNEO2dCQUNFLEdBQUcsRUFBRSx5QkFBeUI7Z0JBQzlCLEtBQUssRUFBRSxPQUFPLENBQUMsd0NBQXdDLENBQUM7Z0JBQ3hELEtBQUssRUFBRSwyQkFBMkI7YUFDbkM7WUFDRDtnQkFDRSxHQUFHLEVBQUUsYUFBYTtnQkFDbEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQztnQkFDOUMsS0FBSyxFQUFFLGtCQUFrQjthQUMxQjtTQUNGLENBQUM7UUFDRixPQUFPO1lBQ0w7Z0JBQ0UsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUNwQixVQUFVLEVBQUU7b0JBQ1Y7d0JBQ0UsR0FBRyxFQUFFLDZCQUE2Qjt3QkFDbEMsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsWUFBWSxFQUFFLEtBQUs7d0JBQ25CLEtBQUssRUFBRTs0QkFDTCxLQUFLLEVBQUUsT0FBTyxDQUFDLDJDQUEyQyxDQUFDOzRCQUMzRCxXQUFXLEVBQUUsT0FBTyxDQUFDLHNEQUFzRCxDQUFDO3lCQUM3RTtxQkFDRjtvQkFDRDt3QkFDRSxHQUFHLEVBQUUsS0FBSzt3QkFDVixJQUFJLEVBQUUsUUFBUTt3QkFDZCxLQUFLLEVBQUU7NEJBQ0wsS0FBSyxFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQzs0QkFDbEMsV0FBVyxFQUFFLG9CQUFvQjs0QkFDakMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxpREFBaUQsQ0FBQzt5QkFDeEU7d0JBQ0QsV0FBVyxFQUFFOzRCQUNYLElBQUksRUFBRSxtQ0FBbUM7eUJBQzFDO3FCQUNGO29CQUNEO3dCQUNFLEdBQUcsRUFBRSwwQkFBMEI7d0JBQy9CLElBQUksRUFBRSxRQUFRO3dCQUNkLFlBQVksRUFBRSxLQUFLO3dCQUNuQixLQUFLLEVBQUU7NEJBQ0wsS0FBSyxFQUFFLE9BQU8sQ0FBQyxxQ0FBcUMsQ0FBQzs0QkFDckQsV0FBVyxFQUFFLE9BQU8sQ0FDbEIsd0dBQXdHLENBQ3pHO3lCQUNGO3dCQUNELFdBQVcsRUFBRTs0QkFDWCxJQUFJLEVBQUUsbUNBQW1DO3lCQUMxQztxQkFDRjtvQkFDRCxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUN4QixHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUc7d0JBQ2YsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsS0FBSyxFQUFFOzRCQUNMLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSzs0QkFDbkIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQzs0QkFDNUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7NEJBQzVFLGVBQWUsRUFBRSxJQUFJOzRCQUNyQixtQkFBbUIsRUFBRSxJQUFJO3lCQUMxQjt3QkFDRCxXQUFXLEVBQUU7NEJBQ1gsSUFBSSxFQUFFLG1DQUFtQzt5QkFDMUM7cUJBQ0YsQ0FBQyxDQUFDO29CQUNIO3dCQUNFLEdBQUcsRUFBRSxxQ0FBcUM7d0JBQzFDLElBQUksRUFBRSxRQUFRO3dCQUNkLFlBQVksRUFBRSxLQUFLO3dCQUNuQixLQUFLLEVBQUU7NEJBQ0wsS0FBSyxFQUFFLE9BQU8sQ0FBQyxrREFBa0QsQ0FBQzs0QkFDbEUsV0FBVyxFQUFFLE9BQU8sQ0FDbEIsMEtBQTBLLENBQzNLO3lCQUNGO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7c0hBM0ZVLHlCQUF5QjswR0FBekIseUJBQXlCLCtGQ2xCdEMsZ2VBZUEsMkNEQVksVUFBVSwyZEFBRSxrQkFBa0I7MkZBRzdCLHlCQUF5QjtrQkFMckMsU0FBUzs4QkFFQyxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxjQUM3QixJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlLCBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBMd20ybVVJVGhlbWVNb2R1bGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3Byb3RvY29sLWx3bTJtL2Zvcm1seSc7XG5pbXBvcnQge1xuICBFbmRwb2ludCxcbiAgRldVX0RlbGl2ZXJ5TWV0aG9kLFxuICBGV1VfUmVzZXRNZWNoYW5pc20sXG4gIEZXVV9TdXBwb3J0ZWREZXZpY2VQcm90b2NvbCxcbiAgRmlybXdhcmVTZXR0aW5nc1xufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3Byb3RvY29sLWx3bTJtL21vZGVsJztcbmltcG9ydCB7IEx3bTJtRm9ybVdyYXBwZXJCYXNlIH0gZnJvbSAnLi9mb3JtLXdyYXBwZXItYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTHdtMm1Db25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcHJvdG9jb2wtbHdtMm0vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0td3JhcHBlci1iYXNlLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIEx3bTJtVUlUaGVtZU1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTHdtMm1Gb3JtRmlybXdhcmVTZXR0aW5ncyBleHRlbmRzIEx3bTJtRm9ybVdyYXBwZXJCYXNlPEZpcm13YXJlU2V0dGluZ3M+IHtcbiAgcHJvdGVjdGVkIGVuZHBvaW50ID0gRW5kcG9pbnQuZmlybXdhcmU7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzZXJ2aWNlOiBMd20ybUNvbmZpZ3VyYXRpb25TZXJ2aWNlPEZpcm13YXJlU2V0dGluZ3M+KSB7XG4gICAgc3VwZXIoc2VydmljZSk7XG4gIH1cblxuICBjcmVhdGVGb3JtKCkge1xuICAgIGNvbnN0IHNlbGVjdHMgPSBbXG4gICAgICB7XG4gICAgICAgIGtleTogJ2Zpcm13YXJlRGVsaXZlcnlNZXRob2QnLFxuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnVXBkYXRlYHZlcmJgIGRlbGl2ZXJ5IG1ldGhvZCcpLFxuICAgICAgICBfZW51bTogRldVX0RlbGl2ZXJ5TWV0aG9kXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdzdXBwb3J0ZWREZXZpY2VQcm90b2NvbCcsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdVcGRhdGVgdmVyYmAgc3VwcG9ydGVkIGRldmljZSBwcm90b2NvbCcpLFxuICAgICAgICBfZW51bTogRldVX1N1cHBvcnRlZERldmljZVByb3RvY29sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdyZXNldE1ldGhvZCcsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdVcGRhdGVgdmVyYmAgcmVzZXQgbWVjaGFuaXNtJyksXG4gICAgICAgIF9lbnVtOiBGV1VfUmVzZXRNZWNoYW5pc21cbiAgICAgIH1cbiAgICBdO1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHdyYXBwZXJzOiBbJ2xlZ2VuZCddLFxuICAgICAgICBmaWVsZEdyb3VwOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnZGlzYWJsZUZpcm13YXJlU3RhdGVNYWNoaW5lJyxcbiAgICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdEaXNhYmxlIGF1dG9tYXRlZCBmaXJtd2FyZSB1cGRhdGUgc3VwcG9ydCcpLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnVHVybnMgb2ZmIHRoZSBpbnRlcm5hbCBmaXJtd2FyZSB1cGRhdGUgc3RhdGUgbWFjaGluZScpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICd1cmwnLFxuICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnVXBkYXRlYG5vdW5gIFVSTCcpLFxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJ2Zpcm13YXJlLWltYWdlLXVybCcsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdJZiBub3Qgc3BlY2lmaWVkLCBMV00yTSBBZ2VudCBnZW5lcmF0ZXMgdGhlIFVSTCcpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXhwcmVzc2lvbnM6IHtcbiAgICAgICAgICAgICAgaGlkZTogJ21vZGVsLmRpc2FibGVGaXJtd2FyZVN0YXRlTWFjaGluZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ3Jlc2V0U3RhdGVNYWNoaW5lT25TdGFydCcsXG4gICAgICAgICAgICB0eXBlOiAnc3dpdGNoJyxcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnQWx3YXlzIHJlc2V0IGZpcm13YXJlIHN0YXRlIG1hY2hpbmUnKSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGdldHRleHQoXG4gICAgICAgICAgICAgICAgJ0NvbnRyb2xzIGlmIHRoZSBMV00yTSBBZ2VudCBwZXJmb3JtcyBhbiBpbml0aWFsIHN0YXRlIG1hY2hpbmUgcmVzZXQgYmVmb3JlIGl0IHN0YXJ0cyBhIGZpcm13YXJlIHVwZGF0ZSdcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV4cHJlc3Npb25zOiB7XG4gICAgICAgICAgICAgIGhpZGU6ICdtb2RlbC5kaXNhYmxlRmlybXdhcmVTdGF0ZU1hY2hpbmUnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICAuLi5zZWxlY3RzLm1hcChzZWxlY3QgPT4gKHtcbiAgICAgICAgICAgIGtleTogc2VsZWN0LmtleSxcbiAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgbGFiZWw6IHNlbGVjdC5sYWJlbCxcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGdldHRleHQoJ0RlZmF1bHQgZGV2aWNlIHZhbHVlJyksXG4gICAgICAgICAgICAgIG9wdGlvbnM6IE9iamVjdC52YWx1ZXMoc2VsZWN0Ll9lbnVtKS5tYXAodmFsdWUgPT4gKHsgbGFiZWw6IHZhbHVlLCB2YWx1ZSB9KSksXG4gICAgICAgICAgICAgIGFjY2VwdFVuZGVmaW5lZDogdHJ1ZSxcbiAgICAgICAgICAgICAgcmVtb3ZlRXhlbXBsaUdyYXRpYTogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV4cHJlc3Npb25zOiB7XG4gICAgICAgICAgICAgIGhpZGU6ICdtb2RlbC5kaXNhYmxlRmlybXdhcmVTdGF0ZU1hY2hpbmUnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkpLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ2ZhaWxPblN0YXRlQW5kUmVzdWx0SW5jb21wYXRpYmlsaXR5JyxcbiAgICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdGYWlsIGRldmljZSBmaXJtd2FyZSB1cGRhdGUgb24gdW5leHBlY3RlZCByZXN1bHQnKSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGdldHRleHQoXG4gICAgICAgICAgICAgICAgJ0lmIHRoZSBjb25maWd1cmF0aW9uIGlzIGVuYWJsZWQsIHRoZSBmaXJtd2FyZSB1cGRhdGUgb3BlcmF0aW9uIHdpbGwgZmFpbCBpZiB0aGUgdXBkYXRlIHJlc3VsdCAocmVzb3VyY2UgNSkgaXMgbm90IGFzIGV4cGVjdGVkIGJhc2VkIG9uIHRoZSBMV00yTSBmaXJtd2FyZSBzdGF0ZSBtYWNoaW5lLidcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF07XG4gIH1cbn1cbiIsIjxmb3JtbHktZm9ybVxuICAqbmdJZj1cImZpZWxkcz8ubGVuZ3RoID4gMDsgZWxzZSBlbXB0eVwiXG4gIFttb2RlbF09XCJtb2RlbFwiXG4gIFtmb3JtXT1cImZvcm1cIlxuICBbZmllbGRzXT1cImZpZWxkc1wiXG4gIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxuICBkYXRhLWN5PVwibHdtMm0tZGV2aWNlLWNvbmZpZ3VyYXRpb24tLWZvcm1seS1mb3JtXCJcbj48L2Zvcm1seS1mb3JtPlxuPG5nLXRlbXBsYXRlICNlbXB0eT5cbiAgPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAgIFtpY29uXT1cIidjOHktZGV2aWNlLXByb3RvY29scydcIlxuICAgIHRpdGxlPVwie3sgJ05vIGNvbmZpZ3VyYXRpb24gc2VsZWN0ZWQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICBzdWJ0aXRsZT1cInt7ICdTZWxlY3QgYSBjb25maWd1cmF0aW9uIG9uIHRoZSBsZWZ0JyB8IHRyYW5zbGF0ZSB9fVwiXG4gID48L2M4eS11aS1lbXB0eS1zdGF0ZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -397,7 +397,16 @@ class Lwm2mFormFirmwareSettings extends Lwm2mFormWrapperBase {
397
397
  expressions: {
398
398
  hide: 'model.disableFirmwareStateMachine'
399
399
  }
400
- }))
400
+ })),
401
+ {
402
+ key: 'failOnStateAndResultIncompatibility',
403
+ type: 'switch',
404
+ defaultValue: false,
405
+ props: {
406
+ label: gettext('Fail device firmware update on unexpected result'),
407
+ description: gettext('If the configuration is enabled, the firmware update operation will fail if the update result (resource 5) is not as expected based on the LWM2M firmware state machine.')
408
+ }
409
+ }
401
410
  ]
402
411
  }
403
412
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-protocol-lwm2m-components-configuration.mjs","sources":["../../protocol-lwm2m/components/configuration/lwm2m-configuration.component.ts","../../protocol-lwm2m/components/configuration/lwm2m-configuration.component.html","../../protocol-lwm2m/components/configuration/typed-forms/form-wrapper-base.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/form-wrapper-base.component.html","../../protocol-lwm2m/components/configuration/typed-forms/bootstrap-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/connectivity-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/device-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/firmware-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/single-server-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/create-single-server-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/servers-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/server-settings.component.html","../../protocol-lwm2m/components/configuration/c8y-ngx-components-protocol-lwm2m-components-configuration.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { Endpoint, Settings } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { ActivatedRoute, RouterModule } from '@angular/router';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { CdkTreeModule } from '@angular/cdk/tree';\nimport { CoreModule, Tab, gettext } from '@c8y/ngx-components';\nimport { IIdentified } from '@c8y/client';\nimport { Lwm2mFormWrapperBase } from './typed-forms';\n\n@Component({\n selector: 'c8y-lwm2m-configuration',\n templateUrl: './lwm2m-configuration.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule, CdkTreeModule, RouterModule],\n standalone: true\n})\nexport class Lwm2mConfigurationComponent {\n tabs: Tab[];\n componentInstance: Lwm2mFormWrapperBase<Settings>;\n\n constructor(\n private lwm2mConfigService: Lwm2mConfigurationService<IIdentified>,\n private route: ActivatedRoute\n ) {\n this.lwm2mConfigService.deviceId = this.route?.snapshot?.parent?.params?.id;\n\n this.tabs = [\n {\n icon: 'cog',\n label: gettext('Device settings'),\n path: this.getPath(Endpoint.deviceSettings)\n },\n {\n icon: 'connected',\n label: gettext('Connectivity'),\n path: this.getPath(Endpoint.connectivity)\n },\n {\n icon: 'c8y-firmware',\n label: gettext('Firmware update'),\n path: this.getPath(Endpoint.firmware)\n },\n {\n icon: 'root-server',\n label: gettext('Bootstrap'),\n path: this.getPath(Endpoint.bootstrap)\n },\n {\n icon: 'stack',\n label: gettext('Servers written during bootstrap'),\n path: this.getPath(Endpoint.servers)\n }\n ];\n\n this.lwm2mConfigService.getSecurityModes();\n }\n\n onActivate(event) {\n this.componentInstance = event;\n }\n\n private getPath(endpoint: Endpoint) {\n const { deviceId } = this.lwm2mConfigService;\n return `/device/${deviceId}/lwm2m-configuration/${endpoint}`;\n }\n}\n","<div class=\"card content-fullpage d-col\">\n <div class=\"card-header p-0\">\n <c8y-ui-tabs\n class=\"card-has-tabs card-tabs\"\n [tabs]=\"tabs\"\n [orientation]=\"'horizontal'\"\n ></c8y-ui-tabs>\n </div>\n <div class=\"inner-scroll bg-level-0 flex-grow\">\n <form class=\"card-block--formly fit-h\">\n <router-outlet (activate)=\"onActivate($event)\"></router-outlet>\n </form>\n </div>\n <div\n class=\"card-footer separator sticky-bottom\"\n *ngIf=\"componentInstance?.fields?.length > 0\"\n >\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"componentInstance.cancel()\"\n [disabled]=\"!componentInstance.form.dirty\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n [disabled]=\"componentInstance.form.invalid || !componentInstance.form.dirty\"\n (click)=\"componentInstance.save()\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</div>\n","import { Component, OnDestroy, OnInit, inject } from '@angular/core';\nimport { AlertService, CoreModule, Permissions } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { FormlyFieldConfig, FormlyFormBuilder, FormlyFormOptions } from '@ngx-formly/core';\nimport { Endpoint, permissionAlert } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { FormGroup } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true\n})\nexport abstract class Lwm2mFormWrapperBase<T> implements OnInit, OnDestroy {\n private alertService: AlertService;\n protected abstract endpoint: Endpoint;\n protected destroy$: Subject<void> = new Subject();\n\n model = {} as T;\n form = new FormGroup({});\n fields: FormlyFieldConfig[] = [];\n buttons = {};\n options: FormlyFormOptions = {\n formState: { disabled: false }\n };\n\n constructor(protected service: Lwm2mConfigurationService<T>) {\n this.fields = this.createForm();\n\n inject(FormlyFormBuilder)?.buildForm(this.form, this.fields, this.model, this.options);\n\n if (!inject(Permissions)?.hasRole(Permissions.ROLE_INVENTORY_ADMIN)) {\n this.alertService = inject(AlertService);\n this.alertService.info(permissionAlert.text as string);\n this.form.disable();\n this.options.formState.disabled = true;\n }\n }\n\n abstract createForm(): FormlyFieldConfig[];\n\n ngOnInit(): void {\n this.service.settings$.pipe(takeUntil(this.destroy$)).subscribe(next => (this.model = next));\n this.service.getSettingsFor({ endpoint: this.endpoint });\n }\n\n ngOnDestroy(): void {\n this.alertService?.remove(permissionAlert);\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n save() {\n this.form.markAsPristine();\n this.form.markAsUntouched();\n this.service.updateConfig(this.model, this.endpoint);\n }\n\n cancel = () => {\n this.options.resetModel();\n this.service.getSettingsFor({ endpoint: this.endpoint });\n };\n}\n","<formly-form\n *ngIf=\"fields?.length > 0; else empty\"\n [model]=\"model\"\n [form]=\"form\"\n [fields]=\"fields\"\n [options]=\"options\"\n data-cy=\"lwm2m-device-configuration--formly-form\"\n></formly-form>\n<ng-template #empty>\n <c8y-ui-empty-state\n [icon]=\"'c8y-device-protocols'\"\n title=\"{{ 'No configuration selected' | translate }}\"\n subtitle=\"{{ 'Select a configuration on the left' | translate }}\"\n ></c8y-ui-empty-state>\n</ng-template>\n","import { Component } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { BootstrapSettings, Endpoint } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true\n})\nexport class Lwm2mFormBootstrapSettings extends Lwm2mFormWrapperBase<BootstrapSettings> {\n protected endpoint: Endpoint = Endpoint.bootstrap;\n constructor(protected service: Lwm2mConfigurationService<BootstrapSettings>) {\n super(service);\n }\n\n createForm() {\n return [\n {\n wrappers: ['legend'],\n fieldGroup: [\n {\n key: 'bootstrapServerId',\n type: 'number',\n props: {\n label: gettext('Bootstrap Server ID'),\n placeholder: '1',\n min: 0\n }\n },\n {\n key: 'securityInstanceOffset',\n type: 'number',\n props: {\n label: gettext('Security instance offset'),\n placeholder: '1',\n min: 0\n }\n }\n ]\n }\n ];\n }\n}\n","import { Component } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { ConnectivitySettings, Endpoint } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { delay, map } from 'rxjs/operators';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true\n})\nexport class Lwm2mFormConnectivitySettings extends Lwm2mFormWrapperBase<ConnectivitySettings> {\n protected endpoint: Endpoint = Endpoint.connectivity;\n constructor(protected service: Lwm2mConfigurationService<ConnectivitySettings>) {\n super(service);\n }\n\n createForm() {\n const selects = [\n {\n key: 'bootstrapConnectivity',\n label: gettext('Bootstrap server authentication'),\n options: this.service.securityModesRaw$.pipe(\n map(dictObjs => dictObjs.filter(o => o?.useInBootstrapConnectivity)),\n delay(1)\n )\n },\n {\n key: 'serverConnectivity',\n label: gettext('Server authentication'),\n options: this.service.securityModesRaw$.pipe(\n map(dictObjs => dictObjs.filter(o => o?.useInServerConnectivity)),\n delay(1)\n )\n }\n ];\n\n return [\n {\n fieldGroup: [\n ...selects.map(select => ({\n key: select.key,\n wrappers: ['legend'],\n props: {\n label: select.label\n },\n fieldGroup: [\n {\n type: '#securityMode',\n props: {\n options: select.options\n }\n },\n { type: '#pskId' },\n { type: '#pskKey' }\n ]\n }))\n ]\n }\n ];\n }\n}\n","import { Component } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport {\n AutoManageAvailabilty,\n BinaryEncoding,\n DeviceSettings,\n Endpoint,\n SerializationFormat\n} from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true\n})\nexport class Lwm2mFormDeviceSettings extends Lwm2mFormWrapperBase<DeviceSettings> {\n protected endpoint: Endpoint = Endpoint.deviceSettings;\n constructor(protected service: Lwm2mConfigurationService<DeviceSettings>) {\n super(service);\n }\n\n createForm() {\n return [\n {\n wrappers: ['legend'],\n fieldGroup: [\n {\n key: 'endpointId',\n type: 'string',\n props: {\n label: gettext('Endpoint client ID'),\n required: true\n }\n },\n {\n key: 'awakeTime',\n type: 'number',\n props: {\n label: gettext('Awake time registration parameter'),\n description: gettext('in milliseconds, 0 means device is always online'),\n placeholder: '0',\n min: 0\n }\n },\n {\n key: 'requestTimeout',\n type: 'number',\n props: {\n label: gettext('LWM2M request timeout'),\n description: gettext('in milliseconds'),\n placeholder: '180000',\n min: 0\n }\n },\n {\n key: 'binaryEncoding',\n type: 'select',\n defaultValue: BinaryEncoding.OPAQUE,\n props: {\n label: gettext('Binary delivery encoding'),\n options: Object.values(BinaryEncoding).map(value => ({ label: value, value }))\n }\n },\n {\n key: 'serializationFormat',\n type: 'select',\n props: {\n label: gettext('Serialization format'),\n placeholder: gettext('Default device value'),\n options: [\n ...Object.values(SerializationFormat).map(value => ({ label: value, value }))\n ],\n description: gettext(\n 'Indicates the preferred content format for LWM2M Agent to use to communicate with the device.'\n ),\n acceptUndefined: true,\n removeExempliGratia: true\n }\n },\n {\n key: 'useTimestampResources',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Use source timestamp'),\n description: gettext(\n 'Use common timestamp resources 5518 and 6050 or object specific timestamp for object 6 reported by the device if available.'\n )\n }\n },\n {\n key: 'keepOldValuesOnOperationFail',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Keep old values'),\n description: gettext('Keep old values in the objects tab if an operation fails.')\n }\n },\n {\n key: 'disableObjectInstanceActions',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Disable default behavior for object instances'),\n description: gettext('Turns off the internal default handling of objects 3,4 and 6')\n }\n },\n {\n key: 'autoManageAvailabilityRequiredInterval',\n type: 'select',\n defaultValue: null,\n props: {\n label: gettext('Automatic setting of required interval'),\n options: [\n { label: gettext('Default'), value: null },\n ...Object.entries(AutoManageAvailabilty).map(entry => {\n return { label: gettext(entry[0]), value: !!+entry[1] };\n })\n ],\n description: gettext(\n 'When enabled, the LWM2M service automatically sets the interval to registration lifetime plus 2 minutes.'\n )\n }\n }\n ]\n }\n ];\n }\n}\n","import { Component } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport {\n Endpoint,\n FWU_DeliveryMethod,\n FWU_ResetMechanism,\n FWU_SupportedDeviceProtocol,\n FirmwareSettings\n} from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true\n})\nexport class Lwm2mFormFirmwareSettings extends Lwm2mFormWrapperBase<FirmwareSettings> {\n protected endpoint = Endpoint.firmware;\n constructor(protected service: Lwm2mConfigurationService<FirmwareSettings>) {\n super(service);\n }\n\n createForm() {\n const selects = [\n {\n key: 'firmwareDeliveryMethod',\n label: gettext('Update`verb` delivery method'),\n _enum: FWU_DeliveryMethod\n },\n {\n key: 'supportedDeviceProtocol',\n label: gettext('Update`verb` supported device protocol'),\n _enum: FWU_SupportedDeviceProtocol\n },\n {\n key: 'resetMethod',\n label: gettext('Update`verb` reset mechanism'),\n _enum: FWU_ResetMechanism\n }\n ];\n return [\n {\n wrappers: ['legend'],\n fieldGroup: [\n {\n key: 'disableFirmwareStateMachine',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Disable automated firmware update support'),\n description: gettext('Turns off the internal firmware update state machine')\n }\n },\n {\n key: 'url',\n type: 'string',\n props: {\n label: gettext('Update`noun` URL'),\n placeholder: 'firmware-image-url',\n description: gettext('If not specified, LWM2M Agent generates the URL')\n },\n expressions: {\n hide: 'model.disableFirmwareStateMachine'\n }\n },\n {\n key: 'resetStateMachineOnStart',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Always reset firmware state machine'),\n description: gettext(\n 'Controls if the LWM2M Agent performs an initial state machine reset before it starts a firmware update'\n )\n },\n expressions: {\n hide: 'model.disableFirmwareStateMachine'\n }\n },\n ...selects.map(select => ({\n key: select.key,\n type: 'select',\n props: {\n label: select.label,\n placeholder: gettext('Default device value'),\n options: Object.values(select._enum).map(value => ({ label: value, value })),\n acceptUndefined: true,\n removeExempliGratia: true\n },\n expressions: {\n hide: 'model.disableFirmwareStateMachine'\n }\n }))\n ]\n }\n ];\n }\n}\n","import { Component, OnInit, inject } from '@angular/core';\nimport { AlertService, CoreModule, DroppedFile, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport {\n BindingMode,\n CertificateUsage,\n Endpoint,\n Mode,\n Security,\n ServerSettings,\n ValidationType\n} from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { catchError, delay, filter, map, takeUntil } from 'rxjs/operators';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { of } from 'rxjs';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule, RouterModule],\n standalone: true\n})\nexport class Lwm2mFormSingleServerSettings\n extends Lwm2mFormWrapperBase<ServerSettings>\n implements OnInit\n{\n id: string;\n protected endpoint: Endpoint = Endpoint.servers;\n protected alert: AlertService;\n private readonly COAP = 'coap://';\n private readonly COAPS = 'coaps://';\n private router: Router;\n private route: ActivatedRoute;\n\n constructor(protected service: Lwm2mConfigurationService<ServerSettings>) {\n super(service);\n this.router = inject(Router);\n this.route = inject(ActivatedRoute);\n this.alert = inject(AlertService);\n }\n\n ngOnInit(): void {\n this.service.settings$.pipe(takeUntil(this.destroy$)).subscribe(data => (this.model = data));\n this.service.getSettingsFor({ endpoint: this.endpoint, id: this.id });\n }\n\n createForm() {\n return [\n {\n wrappers: ['legend'],\n fieldGroup: [\n {\n key: 'bootstrap',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Bootstrap server'),\n description: gettext('This configuration is for a bootstrap server')\n }\n },\n {\n key: 'uri',\n type: 'input-addon',\n props: {\n label: gettext('Server URI'),\n addonLabel: this.COAP,\n required: true,\n placeholder: '<LWM2M-server-domain>:<coap(s)-port>'\n },\n hooks: {\n onInit: (field: FormlyFieldConfig) => {\n field.props.addonLabel = this.COAP;\n return field.options.fieldChanges.pipe(\n filter(\n e => e.type === 'valueChanges' && (e.field === field || e.field.key === 'mode')\n ),\n map(e => {\n if (e.field.key === 'uri')\n field.formControl.setValue(\n ((e.value as string) || '').replace(/^.*:\\/\\//i, '')\n );\n field.props.addonLabel =\n field.model?.security?.mode === Mode.NO_SEC ? this.COAP : this.COAPS;\n return e;\n })\n );\n }\n }\n },\n {\n key: 'security',\n wrappers: ['legend'],\n props: {\n label: 'Security'\n },\n fieldGroup: [\n {\n type: '#securityMode',\n hooks: {\n onInit: (field: FormlyFieldConfig) => {\n field.props.options = this.service.securityModesByScope$.pipe(delay(1));\n this.service.getSecurityModeByScope('useInServerConnectivity');\n return field.options.fieldChanges.pipe(\n filter(e => e.type === 'valueChanges' && e.field.key === 'bootstrap'),\n map(e => {\n if (e.value) {\n this.service.getSecurityModeByScope('useInBootstrapConnectivity');\n if (field.model?.mode === Mode.X509_EST) {\n field.formControl.setValue(Mode.NO_SEC);\n }\n } else {\n this.service.getSecurityModeByScope('useInServerConnectivity');\n }\n return e;\n })\n );\n }\n }\n },\n { type: '#pskId' },\n { type: '#pskKey' },\n {\n key: 'x509ServerCertificateName',\n type: 'select',\n props: {\n label: gettext('Server certificate'),\n placeholder: gettext('Not written`setting`'),\n acceptUndefined: true,\n removeExempliGratia: true,\n options: this.service.certificates$.pipe(\n map(certs => certs.map(value => ({ label: value, value })))\n )\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return field.model?.mode !== Mode.X509 && field.model?.mode !== Mode.X509_EST;\n }\n }\n },\n {\n key: 'certificateUsage',\n type: 'select',\n props: {\n label: gettext('Certificate usage'),\n placeholder: gettext('Not written`setting`'),\n acceptUndefined: true,\n removeExempliGratia: true,\n options: Object.values(CertificateUsage).map(value => ({ label: value, value }))\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return field.model?.mode !== Mode.X509 && field.model?.mode !== Mode.X509_EST;\n }\n }\n },\n {\n key: 'certificateDropArea',\n type: 'file',\n props: {\n accept: 'pem',\n label: gettext('Certificate'),\n description: gettext('One .pem file may be uploaded'),\n forceHideList: true,\n dropped: async (files: DroppedFile[]) =>\n this.patchCommonName(\n this.service.cleanUpBase64Data(\n (await files?.pop()?.readAsDataURL()) as string\n )\n )\n },\n expressions: {\n hide: (field: FormlyFieldConfig) => {\n return (\n field.model?.mode !== Mode.X509 || !!field.model?.x509CertificateCommonName\n );\n }\n }\n },\n {\n key: 'x509CertificateCommonName',\n type: 'file-pick-replace',\n props: {\n label: gettext('Certificate Common Name'),\n remove: () => this.removeCertificateAndCommonName(),\n onPick: certificate => this.patchCommonName(certificate)\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return (\n field.model?.mode !== Mode.X509 || !field.model?.x509CertificateCommonName\n );\n }\n }\n },\n {\n key: 'privateKeyDropArea',\n type: 'file',\n props: {\n accept: 'pem',\n label: gettext('Private key'),\n description: gettext('One .pem file may be uploaded'),\n forceHideList: true,\n disabled: true,\n dropped: async (files: DroppedFile[]) =>\n this.patchFingerprint(\n this.service.cleanUpBase64Data(\n (await files?.pop()?.readAsDataURL()) as string\n )\n )\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return (\n field.model?.mode !== Mode.X509 || !!field.model?.x509PrivateKeyFingerPrint\n );\n }\n }\n },\n {\n key: 'x509PrivateKeyFingerPrint',\n type: 'file-pick-replace',\n props: {\n label: gettext('Fingerprint of the private key'),\n remove: () => this.removePrivateKeyAndFingerprint(),\n onPick: privateKey => this.patchFingerprint(privateKey)\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return (\n field.model?.mode !== Mode.X509 || !field.model?.x509PrivateKeyFingerPrint\n );\n }\n }\n }\n ]\n },\n {\n wrappers: ['legend'],\n props: {\n label: gettext('Server object configuration')\n },\n fieldGroup: [\n {\n key: 'storeNotifications',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Store notifications'),\n description: gettext(\n 'LWM2M Client to store notify operations when client is offline or LWM2M Server is disabled. Also used to forward them to the LWM2M Server when the client is able to connect.'\n )\n }\n },\n {\n key: 'shortServerId',\n type: 'number',\n props: {\n label: gettext('Short Server ID'),\n description: gettext('in numbers'),\n placeholder: '1',\n min: 0\n }\n },\n {\n key: 'registrationLifetime',\n type: 'number',\n props: {\n label: gettext('Registration lifetime'),\n description: gettext('in seconds'),\n placeholder: '600',\n min: 0\n }\n },\n {\n key: 'defaultMinPeriod',\n type: 'number',\n props: {\n label: gettext('Default minimum period'),\n description: gettext('in seconds'),\n placeholder: '10',\n min: 0\n }\n },\n {\n key: 'defaultMaxPeriod',\n type: 'number',\n props: {\n label: gettext('Default maximum period'),\n description: gettext('in seconds'),\n placeholder: '60',\n min: 0\n }\n },\n {\n key: 'bindingMode',\n type: 'select',\n defaultValue: BindingMode.U,\n props: {\n label: gettext('Binding mode'),\n options: Object.values(BindingMode).map(value => ({\n label:\n value === BindingMode.U ? gettext('UDP') : gettext('UDP with queue mode'),\n value\n }))\n }\n },\n {\n key: 'disableTimeout',\n type: 'number',\n props: {\n label: gettext('Disable timeout'),\n description: gettext('in seconds'),\n placeholder: '86400',\n min: 0\n }\n }\n ]\n }\n ]\n }\n ];\n }\n\n save() {\n this.service\n .update$({\n ...this.model,\n uri: this.getFullURI(),\n endpoint: Endpoint.servers\n })\n .pipe(\n catchError(err => {\n this.alert.addServerFailure(err);\n return of(null);\n })\n )\n .subscribe(_next => this.cancel());\n }\n\n delete() {\n this.service\n .deleteServer$(this.model)\n .pipe(\n catchError(err => {\n this.alert.addServerFailure(err);\n return of(null);\n })\n )\n .subscribe(_next => this.cancel());\n }\n\n cancel = () => this.router.navigate(['../servers'], { relativeTo: this.route });\n\n protected getFullURI() {\n const {\n uri,\n security: { mode = Mode.NO_SEC }\n } = this.model;\n return (mode === Mode.NO_SEC ? this.COAP : this.COAPS).concat(uri);\n }\n\n private patchFingerprint(privateKey: string) {\n if (privateKey?.length > 0) {\n this.service\n .validate(privateKey, ValidationType.PRIVATE_KEY)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n fingerprint => {\n this.model.security.x509PrivateKey = privateKey;\n this.model.security.x509PrivateKeyFingerPrint = fingerprint;\n this.form.patchValue(this.model);\n this.form.markAsDirty();\n },\n _error => {\n // already catched\n }\n );\n }\n }\n\n private patchCommonName(certificate: string) {\n if (certificate?.length > 0) {\n this.service\n .validate(certificate, ValidationType.X509)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n commonName => {\n this.model.security.x509Certificate = certificate;\n this.model.security.x509CertificateCommonName = commonName;\n this.form.patchValue(this.model);\n this.form.markAsDirty();\n },\n _error => {\n // already catched\n }\n );\n }\n }\n\n private removePrivateKeyAndFingerprint() {\n this.form.patchValue({\n security: {\n x509PrivateKey: null,\n x509PrivateKeyFingerPrint: null\n } as Partial<Security>\n });\n delete this.model?.security?.x509PrivateKey;\n delete this.model?.security?.x509PrivateKeyFingerPrint;\n this.form.markAsDirty();\n }\n\n private removeCertificateAndCommonName() {\n this.form.patchValue({\n security: {\n x509Certificate: null,\n x509CertificateCommonName: null\n } as Partial<Security>\n });\n delete this.model?.security?.x509CertificateCommonName;\n delete this.model?.security?.x509Certificate;\n this.form.markAsDirty();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { CoreModule } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { ServerSettings } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { Lwm2mFormSingleServerSettings } from './single-server-settings.component';\nimport { catchError } from 'rxjs/operators';\nimport { of } from 'rxjs';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true\n})\nexport class Lwm2mFormCreateSingleServerSettings\n extends Lwm2mFormSingleServerSettings\n implements OnInit\n{\n constructor(protected service: Lwm2mConfigurationService<ServerSettings>) {\n super(service);\n }\n\n ngOnInit() {\n // override by design\n }\n\n create() {\n this.service\n .createServer$({\n ...this.model,\n uri: this.getFullURI()\n })\n .pipe(\n catchError(err => {\n this.alert.addServerFailure(err);\n return of(null);\n })\n )\n .subscribe(_next => this.cancel());\n }\n}\n","import { Component, ComponentRef, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { ServerSettings } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { Lwm2mFormSingleServerSettings } from './single-server-settings.component';\nimport { map, takeUntil } from 'rxjs/operators';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { Lwm2mFormCreateSingleServerSettings } from './create-single-server-settings.component';\nimport { Subject } from 'rxjs';\n\n@Component({\n templateUrl: './server-settings.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule, Lwm2mFormSingleServerSettings, RouterModule],\n standalone: true\n})\nexport class Lwm2mFormServerSettings implements OnInit {\n private componentRef: ComponentRef<\n Lwm2mFormSingleServerSettings | Lwm2mFormCreateSingleServerSettings\n >;\n private destroy$: Subject<void> = new Subject();\n @ViewChild('singleServerForm', { read: ViewContainerRef, static: true })\n formContainer: ViewContainerRef;\n cmp: Lwm2mFormSingleServerSettings;\n id: string;\n\n listelements$ = this.service.servers$.pipe(\n map(servers =>\n servers.map(server => ({\n title: server.uri || gettext('Invalid server configuration'),\n icon: 'server',\n id: server.id\n }))\n )\n );\n\n constructor(\n protected service: Lwm2mConfigurationService<ServerSettings>,\n protected route: ActivatedRoute,\n protected router: Router\n ) {}\n\n ngOnInit() {\n this.route.queryParams.pipe(takeUntil(this.destroy$)).subscribe(({ id }) => {\n this.id = id;\n this.service.listServers();\n this.createComponent(id);\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n select(id) {\n this.router.navigate([], {\n relativeTo: this.route,\n queryParams: { id },\n queryParamsHandling: 'merge'\n });\n }\n\n createComponent(id) {\n this.formContainer.clear();\n this.cmp = null;\n\n if (!id) return;\n\n this.componentRef = this.formContainer.createComponent(\n id !== 'create' ? Lwm2mFormSingleServerSettings : Lwm2mFormCreateSingleServerSettings\n );\n this.cmp = this.componentRef?.instance;\n this.cmp.id = id;\n }\n}\n","<div class=\"split-view--5-7 grid__row--1 fit-h\">\n <div class=\"inner-scroll split-view__list\">\n <div class=\"bg-level-1 flex-grow\">\n <ng-container *ngIf=\"listelements$ | async as list\">\n <ng-container *ngIf=\"list.length > 0 || id === 'create'; else empty\">\n <c8y-list-group class=\"c8y-list__group nav c8y-nav-stacked\">\n <c8y-li\n class=\"c8y-stacked-item p-0 active\"\n *ngIf=\"id === 'create'\"\n >\n <c8y-li-icon icon=\"server\"></c8y-li-icon>\n <span title=\"{{ 'New server' | translate }}\">\n {{ 'New server' | translate }}\n </span>\n </c8y-li>\n <c8y-li\n class=\"c8y-stacked-item p-0\"\n [class.active]=\"el.id === id\"\n *ngFor=\"let el of list\"\n (click)=\"select(el.id)\"\n >\n <c8y-li-icon [icon]=\"el.icon\"></c8y-li-icon>\n <span title=\"{{ el.title }}\">\n {{ el.title }}\n </span>\n </c8y-li>\n </c8y-list-group>\n </ng-container>\n <ng-template #empty>\n <div class=\"card-block\">\n <c8y-ui-empty-state\n [icon]=\"'stack'\"\n [title]=\"'No servers found.' | translate\"\n [subtitle]=\"'Click below to add a new server.' | translate\"\n ></c8y-ui-empty-state>\n </div>\n </ng-template>\n </ng-container>\n </div>\n <div class=\"card-footer separator-top\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Add server' | translate }}\"\n [disabled]=\"id === 'create'\"\n (click)=\"select('create')\"\n >\n <i [c8yIcon]=\"'plus-circle'\"></i>\n {{ 'Add server' | translate }}\n </button>\n </div>\n </div>\n <form class=\"d-contents\">\n <div\n class=\"inner-scroll split-view__detail\"\n [ngClass]=\"{ 'split-view__detail--selected': cmp?.fields?.length > 0 }\"\n >\n <div class=\"card-header separator visible-sm visible-xs fit-w sticky-top\">\n <button\n class=\"btn btn-clean text-primary\"\n title=\"{{ 'Back' | translate }}\"\n type=\"button\"\n (click)=\"cmp?.cancel()\"\n >\n <i c8y-icon=\"chevron-left\"></i>\n <span>{{ 'Back' | translate }}</span>\n </button>\n </div>\n <div class=\"card-block flex-grow overflow-visible\">\n <ng-container *ngIf=\"!cmp?.fields?.length\">\n <c8y-ui-empty-state\n [icon]=\"'stack'\"\n title=\"{{ 'No server to display.' | translate }}\"\n subtitle=\"{{ 'Add or select a server.' | translate }}\"\n ></c8y-ui-empty-state>\n <div\n class=\"alert alert-info\"\n role=\"alert\"\n >\n <strong>{{ 'Info' | translate }}</strong>\n {{\n 'Configured servers are written as soon as the device does a bootstrap connection.'\n | translate\n }}\n </div>\n </ng-container>\n <ng-container #singleServerForm></ng-container>\n </div>\n <div\n class=\"card-footer separator sticky-bottom bg-level-0\"\n *ngIf=\"cmp?.fields?.length > 0\"\n >\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"cmp.cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n\n <ng-container *ngIf=\"id !== 'create'; else createServer\">\n <button\n class=\"btn btn-danger\"\n title=\"{{ 'Delete' | translate }}\"\n type=\"button\"\n [disabled]=\"cmp.options?.formState?.disabled || false\"\n (click)=\"cmp.delete()\"\n >\n {{ 'Delete' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n [disabled]=\"cmp.form?.invalid || !cmp.form?.dirty\"\n (click)=\"cmp.save()\"\n >\n {{ 'Save' | translate }}\n </button>\n </ng-container>\n <ng-template #createServer>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Create' | translate }}\"\n type=\"button\"\n [disabled]=\"cmp.form?.invalid || !cmp.form?.dirty\"\n (click)=\"cmp.create()\"\n >\n {{ 'Create' | translate }}\n </button>\n </ng-template>\n </div>\n </div>\n </form>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3","i4"],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-protocol-lwm2m-components-configuration.mjs","sources":["../../protocol-lwm2m/components/configuration/lwm2m-configuration.component.ts","../../protocol-lwm2m/components/configuration/lwm2m-configuration.component.html","../../protocol-lwm2m/components/configuration/typed-forms/form-wrapper-base.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/form-wrapper-base.component.html","../../protocol-lwm2m/components/configuration/typed-forms/bootstrap-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/connectivity-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/device-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/firmware-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/single-server-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/create-single-server-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/servers-settings.component.ts","../../protocol-lwm2m/components/configuration/typed-forms/server-settings.component.html","../../protocol-lwm2m/components/configuration/c8y-ngx-components-protocol-lwm2m-components-configuration.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { Endpoint, Settings } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { ActivatedRoute, RouterModule } from '@angular/router';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { CdkTreeModule } from '@angular/cdk/tree';\nimport { CoreModule, Tab, gettext } from '@c8y/ngx-components';\nimport { IIdentified } from '@c8y/client';\nimport { Lwm2mFormWrapperBase } from './typed-forms';\n\n@Component({\n selector: 'c8y-lwm2m-configuration',\n templateUrl: './lwm2m-configuration.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule, CdkTreeModule, RouterModule],\n standalone: true\n})\nexport class Lwm2mConfigurationComponent {\n tabs: Tab[];\n componentInstance: Lwm2mFormWrapperBase<Settings>;\n\n constructor(\n private lwm2mConfigService: Lwm2mConfigurationService<IIdentified>,\n private route: ActivatedRoute\n ) {\n this.lwm2mConfigService.deviceId = this.route?.snapshot?.parent?.params?.id;\n\n this.tabs = [\n {\n icon: 'cog',\n label: gettext('Device settings'),\n path: this.getPath(Endpoint.deviceSettings)\n },\n {\n icon: 'connected',\n label: gettext('Connectivity'),\n path: this.getPath(Endpoint.connectivity)\n },\n {\n icon: 'c8y-firmware',\n label: gettext('Firmware update'),\n path: this.getPath(Endpoint.firmware)\n },\n {\n icon: 'root-server',\n label: gettext('Bootstrap'),\n path: this.getPath(Endpoint.bootstrap)\n },\n {\n icon: 'stack',\n label: gettext('Servers written during bootstrap'),\n path: this.getPath(Endpoint.servers)\n }\n ];\n\n this.lwm2mConfigService.getSecurityModes();\n }\n\n onActivate(event) {\n this.componentInstance = event;\n }\n\n private getPath(endpoint: Endpoint) {\n const { deviceId } = this.lwm2mConfigService;\n return `/device/${deviceId}/lwm2m-configuration/${endpoint}`;\n }\n}\n","<div class=\"card content-fullpage d-col\">\n <div class=\"card-header p-0\">\n <c8y-ui-tabs\n class=\"card-has-tabs card-tabs\"\n [tabs]=\"tabs\"\n [orientation]=\"'horizontal'\"\n ></c8y-ui-tabs>\n </div>\n <div class=\"inner-scroll bg-level-0 flex-grow\">\n <form class=\"card-block--formly fit-h\">\n <router-outlet (activate)=\"onActivate($event)\"></router-outlet>\n </form>\n </div>\n <div\n class=\"card-footer separator sticky-bottom\"\n *ngIf=\"componentInstance?.fields?.length > 0\"\n >\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"componentInstance.cancel()\"\n [disabled]=\"!componentInstance.form.dirty\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n [disabled]=\"componentInstance.form.invalid || !componentInstance.form.dirty\"\n (click)=\"componentInstance.save()\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</div>\n","import { Component, OnDestroy, OnInit, inject } from '@angular/core';\nimport { AlertService, CoreModule, Permissions } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { FormlyFieldConfig, FormlyFormBuilder, FormlyFormOptions } from '@ngx-formly/core';\nimport { Endpoint, permissionAlert } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { FormGroup } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true\n})\nexport abstract class Lwm2mFormWrapperBase<T> implements OnInit, OnDestroy {\n private alertService: AlertService;\n protected abstract endpoint: Endpoint;\n protected destroy$: Subject<void> = new Subject();\n\n model = {} as T;\n form = new FormGroup({});\n fields: FormlyFieldConfig[] = [];\n buttons = {};\n options: FormlyFormOptions = {\n formState: { disabled: false }\n };\n\n constructor(protected service: Lwm2mConfigurationService<T>) {\n this.fields = this.createForm();\n\n inject(FormlyFormBuilder)?.buildForm(this.form, this.fields, this.model, this.options);\n\n if (!inject(Permissions)?.hasRole(Permissions.ROLE_INVENTORY_ADMIN)) {\n this.alertService = inject(AlertService);\n this.alertService.info(permissionAlert.text as string);\n this.form.disable();\n this.options.formState.disabled = true;\n }\n }\n\n abstract createForm(): FormlyFieldConfig[];\n\n ngOnInit(): void {\n this.service.settings$.pipe(takeUntil(this.destroy$)).subscribe(next => (this.model = next));\n this.service.getSettingsFor({ endpoint: this.endpoint });\n }\n\n ngOnDestroy(): void {\n this.alertService?.remove(permissionAlert);\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n save() {\n this.form.markAsPristine();\n this.form.markAsUntouched();\n this.service.updateConfig(this.model, this.endpoint);\n }\n\n cancel = () => {\n this.options.resetModel();\n this.service.getSettingsFor({ endpoint: this.endpoint });\n };\n}\n","<formly-form\n *ngIf=\"fields?.length > 0; else empty\"\n [model]=\"model\"\n [form]=\"form\"\n [fields]=\"fields\"\n [options]=\"options\"\n data-cy=\"lwm2m-device-configuration--formly-form\"\n></formly-form>\n<ng-template #empty>\n <c8y-ui-empty-state\n [icon]=\"'c8y-device-protocols'\"\n title=\"{{ 'No configuration selected' | translate }}\"\n subtitle=\"{{ 'Select a configuration on the left' | translate }}\"\n ></c8y-ui-empty-state>\n</ng-template>\n","import { Component } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { BootstrapSettings, Endpoint } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true\n})\nexport class Lwm2mFormBootstrapSettings extends Lwm2mFormWrapperBase<BootstrapSettings> {\n protected endpoint: Endpoint = Endpoint.bootstrap;\n constructor(protected service: Lwm2mConfigurationService<BootstrapSettings>) {\n super(service);\n }\n\n createForm() {\n return [\n {\n wrappers: ['legend'],\n fieldGroup: [\n {\n key: 'bootstrapServerId',\n type: 'number',\n props: {\n label: gettext('Bootstrap Server ID'),\n placeholder: '1',\n min: 0\n }\n },\n {\n key: 'securityInstanceOffset',\n type: 'number',\n props: {\n label: gettext('Security instance offset'),\n placeholder: '1',\n min: 0\n }\n }\n ]\n }\n ];\n }\n}\n","import { Component } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { ConnectivitySettings, Endpoint } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { delay, map } from 'rxjs/operators';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true\n})\nexport class Lwm2mFormConnectivitySettings extends Lwm2mFormWrapperBase<ConnectivitySettings> {\n protected endpoint: Endpoint = Endpoint.connectivity;\n constructor(protected service: Lwm2mConfigurationService<ConnectivitySettings>) {\n super(service);\n }\n\n createForm() {\n const selects = [\n {\n key: 'bootstrapConnectivity',\n label: gettext('Bootstrap server authentication'),\n options: this.service.securityModesRaw$.pipe(\n map(dictObjs => dictObjs.filter(o => o?.useInBootstrapConnectivity)),\n delay(1)\n )\n },\n {\n key: 'serverConnectivity',\n label: gettext('Server authentication'),\n options: this.service.securityModesRaw$.pipe(\n map(dictObjs => dictObjs.filter(o => o?.useInServerConnectivity)),\n delay(1)\n )\n }\n ];\n\n return [\n {\n fieldGroup: [\n ...selects.map(select => ({\n key: select.key,\n wrappers: ['legend'],\n props: {\n label: select.label\n },\n fieldGroup: [\n {\n type: '#securityMode',\n props: {\n options: select.options\n }\n },\n { type: '#pskId' },\n { type: '#pskKey' }\n ]\n }))\n ]\n }\n ];\n }\n}\n","import { Component } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport {\n AutoManageAvailabilty,\n BinaryEncoding,\n DeviceSettings,\n Endpoint,\n SerializationFormat\n} from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true\n})\nexport class Lwm2mFormDeviceSettings extends Lwm2mFormWrapperBase<DeviceSettings> {\n protected endpoint: Endpoint = Endpoint.deviceSettings;\n constructor(protected service: Lwm2mConfigurationService<DeviceSettings>) {\n super(service);\n }\n\n createForm() {\n return [\n {\n wrappers: ['legend'],\n fieldGroup: [\n {\n key: 'endpointId',\n type: 'string',\n props: {\n label: gettext('Endpoint client ID'),\n required: true\n }\n },\n {\n key: 'awakeTime',\n type: 'number',\n props: {\n label: gettext('Awake time registration parameter'),\n description: gettext('in milliseconds, 0 means device is always online'),\n placeholder: '0',\n min: 0\n }\n },\n {\n key: 'requestTimeout',\n type: 'number',\n props: {\n label: gettext('LWM2M request timeout'),\n description: gettext('in milliseconds'),\n placeholder: '180000',\n min: 0\n }\n },\n {\n key: 'binaryEncoding',\n type: 'select',\n defaultValue: BinaryEncoding.OPAQUE,\n props: {\n label: gettext('Binary delivery encoding'),\n options: Object.values(BinaryEncoding).map(value => ({ label: value, value }))\n }\n },\n {\n key: 'serializationFormat',\n type: 'select',\n props: {\n label: gettext('Serialization format'),\n placeholder: gettext('Default device value'),\n options: [\n ...Object.values(SerializationFormat).map(value => ({ label: value, value }))\n ],\n description: gettext(\n 'Indicates the preferred content format for LWM2M Agent to use to communicate with the device.'\n ),\n acceptUndefined: true,\n removeExempliGratia: true\n }\n },\n {\n key: 'useTimestampResources',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Use source timestamp'),\n description: gettext(\n 'Use common timestamp resources 5518 and 6050 or object specific timestamp for object 6 reported by the device if available.'\n )\n }\n },\n {\n key: 'keepOldValuesOnOperationFail',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Keep old values'),\n description: gettext('Keep old values in the objects tab if an operation fails.')\n }\n },\n {\n key: 'disableObjectInstanceActions',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Disable default behavior for object instances'),\n description: gettext('Turns off the internal default handling of objects 3,4 and 6')\n }\n },\n {\n key: 'autoManageAvailabilityRequiredInterval',\n type: 'select',\n defaultValue: null,\n props: {\n label: gettext('Automatic setting of required interval'),\n options: [\n { label: gettext('Default'), value: null },\n ...Object.entries(AutoManageAvailabilty).map(entry => {\n return { label: gettext(entry[0]), value: !!+entry[1] };\n })\n ],\n description: gettext(\n 'When enabled, the LWM2M service automatically sets the interval to registration lifetime plus 2 minutes.'\n )\n }\n }\n ]\n }\n ];\n }\n}\n","import { Component } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport {\n Endpoint,\n FWU_DeliveryMethod,\n FWU_ResetMechanism,\n FWU_SupportedDeviceProtocol,\n FirmwareSettings\n} from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true\n})\nexport class Lwm2mFormFirmwareSettings extends Lwm2mFormWrapperBase<FirmwareSettings> {\n protected endpoint = Endpoint.firmware;\n constructor(protected service: Lwm2mConfigurationService<FirmwareSettings>) {\n super(service);\n }\n\n createForm() {\n const selects = [\n {\n key: 'firmwareDeliveryMethod',\n label: gettext('Update`verb` delivery method'),\n _enum: FWU_DeliveryMethod\n },\n {\n key: 'supportedDeviceProtocol',\n label: gettext('Update`verb` supported device protocol'),\n _enum: FWU_SupportedDeviceProtocol\n },\n {\n key: 'resetMethod',\n label: gettext('Update`verb` reset mechanism'),\n _enum: FWU_ResetMechanism\n }\n ];\n return [\n {\n wrappers: ['legend'],\n fieldGroup: [\n {\n key: 'disableFirmwareStateMachine',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Disable automated firmware update support'),\n description: gettext('Turns off the internal firmware update state machine')\n }\n },\n {\n key: 'url',\n type: 'string',\n props: {\n label: gettext('Update`noun` URL'),\n placeholder: 'firmware-image-url',\n description: gettext('If not specified, LWM2M Agent generates the URL')\n },\n expressions: {\n hide: 'model.disableFirmwareStateMachine'\n }\n },\n {\n key: 'resetStateMachineOnStart',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Always reset firmware state machine'),\n description: gettext(\n 'Controls if the LWM2M Agent performs an initial state machine reset before it starts a firmware update'\n )\n },\n expressions: {\n hide: 'model.disableFirmwareStateMachine'\n }\n },\n ...selects.map(select => ({\n key: select.key,\n type: 'select',\n props: {\n label: select.label,\n placeholder: gettext('Default device value'),\n options: Object.values(select._enum).map(value => ({ label: value, value })),\n acceptUndefined: true,\n removeExempliGratia: true\n },\n expressions: {\n hide: 'model.disableFirmwareStateMachine'\n }\n })),\n {\n key: 'failOnStateAndResultIncompatibility',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Fail device firmware update on unexpected result'),\n description: gettext(\n 'If the configuration is enabled, the firmware update operation will fail if the update result (resource 5) is not as expected based on the LWM2M firmware state machine.'\n )\n }\n }\n ]\n }\n ];\n }\n}\n","import { Component, OnInit, inject } from '@angular/core';\nimport { AlertService, CoreModule, DroppedFile, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport {\n BindingMode,\n CertificateUsage,\n Endpoint,\n Mode,\n Security,\n ServerSettings,\n ValidationType\n} from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mFormWrapperBase } from './form-wrapper-base.component';\nimport { catchError, delay, filter, map, takeUntil } from 'rxjs/operators';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { of } from 'rxjs';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule, RouterModule],\n standalone: true\n})\nexport class Lwm2mFormSingleServerSettings\n extends Lwm2mFormWrapperBase<ServerSettings>\n implements OnInit\n{\n id: string;\n protected endpoint: Endpoint = Endpoint.servers;\n protected alert: AlertService;\n private readonly COAP = 'coap://';\n private readonly COAPS = 'coaps://';\n private router: Router;\n private route: ActivatedRoute;\n\n constructor(protected service: Lwm2mConfigurationService<ServerSettings>) {\n super(service);\n this.router = inject(Router);\n this.route = inject(ActivatedRoute);\n this.alert = inject(AlertService);\n }\n\n ngOnInit(): void {\n this.service.settings$.pipe(takeUntil(this.destroy$)).subscribe(data => (this.model = data));\n this.service.getSettingsFor({ endpoint: this.endpoint, id: this.id });\n }\n\n createForm() {\n return [\n {\n wrappers: ['legend'],\n fieldGroup: [\n {\n key: 'bootstrap',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Bootstrap server'),\n description: gettext('This configuration is for a bootstrap server')\n }\n },\n {\n key: 'uri',\n type: 'input-addon',\n props: {\n label: gettext('Server URI'),\n addonLabel: this.COAP,\n required: true,\n placeholder: '<LWM2M-server-domain>:<coap(s)-port>'\n },\n hooks: {\n onInit: (field: FormlyFieldConfig) => {\n field.props.addonLabel = this.COAP;\n return field.options.fieldChanges.pipe(\n filter(\n e => e.type === 'valueChanges' && (e.field === field || e.field.key === 'mode')\n ),\n map(e => {\n if (e.field.key === 'uri')\n field.formControl.setValue(\n ((e.value as string) || '').replace(/^.*:\\/\\//i, '')\n );\n field.props.addonLabel =\n field.model?.security?.mode === Mode.NO_SEC ? this.COAP : this.COAPS;\n return e;\n })\n );\n }\n }\n },\n {\n key: 'security',\n wrappers: ['legend'],\n props: {\n label: 'Security'\n },\n fieldGroup: [\n {\n type: '#securityMode',\n hooks: {\n onInit: (field: FormlyFieldConfig) => {\n field.props.options = this.service.securityModesByScope$.pipe(delay(1));\n this.service.getSecurityModeByScope('useInServerConnectivity');\n return field.options.fieldChanges.pipe(\n filter(e => e.type === 'valueChanges' && e.field.key === 'bootstrap'),\n map(e => {\n if (e.value) {\n this.service.getSecurityModeByScope('useInBootstrapConnectivity');\n if (field.model?.mode === Mode.X509_EST) {\n field.formControl.setValue(Mode.NO_SEC);\n }\n } else {\n this.service.getSecurityModeByScope('useInServerConnectivity');\n }\n return e;\n })\n );\n }\n }\n },\n { type: '#pskId' },\n { type: '#pskKey' },\n {\n key: 'x509ServerCertificateName',\n type: 'select',\n props: {\n label: gettext('Server certificate'),\n placeholder: gettext('Not written`setting`'),\n acceptUndefined: true,\n removeExempliGratia: true,\n options: this.service.certificates$.pipe(\n map(certs => certs.map(value => ({ label: value, value })))\n )\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return field.model?.mode !== Mode.X509 && field.model?.mode !== Mode.X509_EST;\n }\n }\n },\n {\n key: 'certificateUsage',\n type: 'select',\n props: {\n label: gettext('Certificate usage'),\n placeholder: gettext('Not written`setting`'),\n acceptUndefined: true,\n removeExempliGratia: true,\n options: Object.values(CertificateUsage).map(value => ({ label: value, value }))\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return field.model?.mode !== Mode.X509 && field.model?.mode !== Mode.X509_EST;\n }\n }\n },\n {\n key: 'certificateDropArea',\n type: 'file',\n props: {\n accept: 'pem',\n label: gettext('Certificate'),\n description: gettext('One .pem file may be uploaded'),\n forceHideList: true,\n dropped: async (files: DroppedFile[]) =>\n this.patchCommonName(\n this.service.cleanUpBase64Data(\n (await files?.pop()?.readAsDataURL()) as string\n )\n )\n },\n expressions: {\n hide: (field: FormlyFieldConfig) => {\n return (\n field.model?.mode !== Mode.X509 || !!field.model?.x509CertificateCommonName\n );\n }\n }\n },\n {\n key: 'x509CertificateCommonName',\n type: 'file-pick-replace',\n props: {\n label: gettext('Certificate Common Name'),\n remove: () => this.removeCertificateAndCommonName(),\n onPick: certificate => this.patchCommonName(certificate)\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return (\n field.model?.mode !== Mode.X509 || !field.model?.x509CertificateCommonName\n );\n }\n }\n },\n {\n key: 'privateKeyDropArea',\n type: 'file',\n props: {\n accept: 'pem',\n label: gettext('Private key'),\n description: gettext('One .pem file may be uploaded'),\n forceHideList: true,\n disabled: true,\n dropped: async (files: DroppedFile[]) =>\n this.patchFingerprint(\n this.service.cleanUpBase64Data(\n (await files?.pop()?.readAsDataURL()) as string\n )\n )\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return (\n field.model?.mode !== Mode.X509 || !!field.model?.x509PrivateKeyFingerPrint\n );\n }\n }\n },\n {\n key: 'x509PrivateKeyFingerPrint',\n type: 'file-pick-replace',\n props: {\n label: gettext('Fingerprint of the private key'),\n remove: () => this.removePrivateKeyAndFingerprint(),\n onPick: privateKey => this.patchFingerprint(privateKey)\n },\n expressions: {\n 'props.disabled': (field: FormlyFieldConfig) =>\n field?.options?.formState?.disabled,\n hide: (field: FormlyFieldConfig) => {\n return (\n field.model?.mode !== Mode.X509 || !field.model?.x509PrivateKeyFingerPrint\n );\n }\n }\n }\n ]\n },\n {\n wrappers: ['legend'],\n props: {\n label: gettext('Server object configuration')\n },\n fieldGroup: [\n {\n key: 'storeNotifications',\n type: 'switch',\n defaultValue: false,\n props: {\n label: gettext('Store notifications'),\n description: gettext(\n 'LWM2M Client to store notify operations when client is offline or LWM2M Server is disabled. Also used to forward them to the LWM2M Server when the client is able to connect.'\n )\n }\n },\n {\n key: 'shortServerId',\n type: 'number',\n props: {\n label: gettext('Short Server ID'),\n description: gettext('in numbers'),\n placeholder: '1',\n min: 0\n }\n },\n {\n key: 'registrationLifetime',\n type: 'number',\n props: {\n label: gettext('Registration lifetime'),\n description: gettext('in seconds'),\n placeholder: '600',\n min: 0\n }\n },\n {\n key: 'defaultMinPeriod',\n type: 'number',\n props: {\n label: gettext('Default minimum period'),\n description: gettext('in seconds'),\n placeholder: '10',\n min: 0\n }\n },\n {\n key: 'defaultMaxPeriod',\n type: 'number',\n props: {\n label: gettext('Default maximum period'),\n description: gettext('in seconds'),\n placeholder: '60',\n min: 0\n }\n },\n {\n key: 'bindingMode',\n type: 'select',\n defaultValue: BindingMode.U,\n props: {\n label: gettext('Binding mode'),\n options: Object.values(BindingMode).map(value => ({\n label:\n value === BindingMode.U ? gettext('UDP') : gettext('UDP with queue mode'),\n value\n }))\n }\n },\n {\n key: 'disableTimeout',\n type: 'number',\n props: {\n label: gettext('Disable timeout'),\n description: gettext('in seconds'),\n placeholder: '86400',\n min: 0\n }\n }\n ]\n }\n ]\n }\n ];\n }\n\n save() {\n this.service\n .update$({\n ...this.model,\n uri: this.getFullURI(),\n endpoint: Endpoint.servers\n })\n .pipe(\n catchError(err => {\n this.alert.addServerFailure(err);\n return of(null);\n })\n )\n .subscribe(_next => this.cancel());\n }\n\n delete() {\n this.service\n .deleteServer$(this.model)\n .pipe(\n catchError(err => {\n this.alert.addServerFailure(err);\n return of(null);\n })\n )\n .subscribe(_next => this.cancel());\n }\n\n cancel = () => this.router.navigate(['../servers'], { relativeTo: this.route });\n\n protected getFullURI() {\n const {\n uri,\n security: { mode = Mode.NO_SEC }\n } = this.model;\n return (mode === Mode.NO_SEC ? this.COAP : this.COAPS).concat(uri);\n }\n\n private patchFingerprint(privateKey: string) {\n if (privateKey?.length > 0) {\n this.service\n .validate(privateKey, ValidationType.PRIVATE_KEY)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n fingerprint => {\n this.model.security.x509PrivateKey = privateKey;\n this.model.security.x509PrivateKeyFingerPrint = fingerprint;\n this.form.patchValue(this.model);\n this.form.markAsDirty();\n },\n _error => {\n // already catched\n }\n );\n }\n }\n\n private patchCommonName(certificate: string) {\n if (certificate?.length > 0) {\n this.service\n .validate(certificate, ValidationType.X509)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n commonName => {\n this.model.security.x509Certificate = certificate;\n this.model.security.x509CertificateCommonName = commonName;\n this.form.patchValue(this.model);\n this.form.markAsDirty();\n },\n _error => {\n // already catched\n }\n );\n }\n }\n\n private removePrivateKeyAndFingerprint() {\n this.form.patchValue({\n security: {\n x509PrivateKey: null,\n x509PrivateKeyFingerPrint: null\n } as Partial<Security>\n });\n delete this.model?.security?.x509PrivateKey;\n delete this.model?.security?.x509PrivateKeyFingerPrint;\n this.form.markAsDirty();\n }\n\n private removeCertificateAndCommonName() {\n this.form.patchValue({\n security: {\n x509Certificate: null,\n x509CertificateCommonName: null\n } as Partial<Security>\n });\n delete this.model?.security?.x509CertificateCommonName;\n delete this.model?.security?.x509Certificate;\n this.form.markAsDirty();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { CoreModule } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { ServerSettings } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { Lwm2mFormSingleServerSettings } from './single-server-settings.component';\nimport { catchError } from 'rxjs/operators';\nimport { of } from 'rxjs';\n\n@Component({\n templateUrl: './form-wrapper-base.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule],\n standalone: true\n})\nexport class Lwm2mFormCreateSingleServerSettings\n extends Lwm2mFormSingleServerSettings\n implements OnInit\n{\n constructor(protected service: Lwm2mConfigurationService<ServerSettings>) {\n super(service);\n }\n\n ngOnInit() {\n // override by design\n }\n\n create() {\n this.service\n .createServer$({\n ...this.model,\n uri: this.getFullURI()\n })\n .pipe(\n catchError(err => {\n this.alert.addServerFailure(err);\n return of(null);\n })\n )\n .subscribe(_next => this.cancel());\n }\n}\n","import { Component, ComponentRef, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\nimport { CoreModule, gettext } from '@c8y/ngx-components';\nimport { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';\nimport { ServerSettings } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { Lwm2mFormSingleServerSettings } from './single-server-settings.component';\nimport { map, takeUntil } from 'rxjs/operators';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { Lwm2mFormCreateSingleServerSettings } from './create-single-server-settings.component';\nimport { Subject } from 'rxjs';\n\n@Component({\n templateUrl: './server-settings.component.html',\n imports: [CoreModule, Lwm2mUIThemeModule, Lwm2mFormSingleServerSettings, RouterModule],\n standalone: true\n})\nexport class Lwm2mFormServerSettings implements OnInit {\n private componentRef: ComponentRef<\n Lwm2mFormSingleServerSettings | Lwm2mFormCreateSingleServerSettings\n >;\n private destroy$: Subject<void> = new Subject();\n @ViewChild('singleServerForm', { read: ViewContainerRef, static: true })\n formContainer: ViewContainerRef;\n cmp: Lwm2mFormSingleServerSettings;\n id: string;\n\n listelements$ = this.service.servers$.pipe(\n map(servers =>\n servers.map(server => ({\n title: server.uri || gettext('Invalid server configuration'),\n icon: 'server',\n id: server.id\n }))\n )\n );\n\n constructor(\n protected service: Lwm2mConfigurationService<ServerSettings>,\n protected route: ActivatedRoute,\n protected router: Router\n ) {}\n\n ngOnInit() {\n this.route.queryParams.pipe(takeUntil(this.destroy$)).subscribe(({ id }) => {\n this.id = id;\n this.service.listServers();\n this.createComponent(id);\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n select(id) {\n this.router.navigate([], {\n relativeTo: this.route,\n queryParams: { id },\n queryParamsHandling: 'merge'\n });\n }\n\n createComponent(id) {\n this.formContainer.clear();\n this.cmp = null;\n\n if (!id) return;\n\n this.componentRef = this.formContainer.createComponent(\n id !== 'create' ? Lwm2mFormSingleServerSettings : Lwm2mFormCreateSingleServerSettings\n );\n this.cmp = this.componentRef?.instance;\n this.cmp.id = id;\n }\n}\n","<div class=\"split-view--5-7 grid__row--1 fit-h\">\n <div class=\"inner-scroll split-view__list\">\n <div class=\"bg-level-1 flex-grow\">\n <ng-container *ngIf=\"listelements$ | async as list\">\n <ng-container *ngIf=\"list.length > 0 || id === 'create'; else empty\">\n <c8y-list-group class=\"c8y-list__group nav c8y-nav-stacked\">\n <c8y-li\n class=\"c8y-stacked-item p-0 active\"\n *ngIf=\"id === 'create'\"\n >\n <c8y-li-icon icon=\"server\"></c8y-li-icon>\n <span title=\"{{ 'New server' | translate }}\">\n {{ 'New server' | translate }}\n </span>\n </c8y-li>\n <c8y-li\n class=\"c8y-stacked-item p-0\"\n [class.active]=\"el.id === id\"\n *ngFor=\"let el of list\"\n (click)=\"select(el.id)\"\n >\n <c8y-li-icon [icon]=\"el.icon\"></c8y-li-icon>\n <span title=\"{{ el.title }}\">\n {{ el.title }}\n </span>\n </c8y-li>\n </c8y-list-group>\n </ng-container>\n <ng-template #empty>\n <div class=\"card-block\">\n <c8y-ui-empty-state\n [icon]=\"'stack'\"\n [title]=\"'No servers found.' | translate\"\n [subtitle]=\"'Click below to add a new server.' | translate\"\n ></c8y-ui-empty-state>\n </div>\n </ng-template>\n </ng-container>\n </div>\n <div class=\"card-footer separator-top\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Add server' | translate }}\"\n [disabled]=\"id === 'create'\"\n (click)=\"select('create')\"\n >\n <i [c8yIcon]=\"'plus-circle'\"></i>\n {{ 'Add server' | translate }}\n </button>\n </div>\n </div>\n <form class=\"d-contents\">\n <div\n class=\"inner-scroll split-view__detail\"\n [ngClass]=\"{ 'split-view__detail--selected': cmp?.fields?.length > 0 }\"\n >\n <div class=\"card-header separator visible-sm visible-xs fit-w sticky-top\">\n <button\n class=\"btn btn-clean text-primary\"\n title=\"{{ 'Back' | translate }}\"\n type=\"button\"\n (click)=\"cmp?.cancel()\"\n >\n <i c8y-icon=\"chevron-left\"></i>\n <span>{{ 'Back' | translate }}</span>\n </button>\n </div>\n <div class=\"card-block flex-grow overflow-visible\">\n <ng-container *ngIf=\"!cmp?.fields?.length\">\n <c8y-ui-empty-state\n [icon]=\"'stack'\"\n title=\"{{ 'No server to display.' | translate }}\"\n subtitle=\"{{ 'Add or select a server.' | translate }}\"\n ></c8y-ui-empty-state>\n <div\n class=\"alert alert-info\"\n role=\"alert\"\n >\n <strong>{{ 'Info' | translate }}</strong>\n {{\n 'Configured servers are written as soon as the device does a bootstrap connection.'\n | translate\n }}\n </div>\n </ng-container>\n <ng-container #singleServerForm></ng-container>\n </div>\n <div\n class=\"card-footer separator sticky-bottom bg-level-0\"\n *ngIf=\"cmp?.fields?.length > 0\"\n >\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"cmp.cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n\n <ng-container *ngIf=\"id !== 'create'; else createServer\">\n <button\n class=\"btn btn-danger\"\n title=\"{{ 'Delete' | translate }}\"\n type=\"button\"\n [disabled]=\"cmp.options?.formState?.disabled || false\"\n (click)=\"cmp.delete()\"\n >\n {{ 'Delete' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n [disabled]=\"cmp.form?.invalid || !cmp.form?.dirty\"\n (click)=\"cmp.save()\"\n >\n {{ 'Save' | translate }}\n </button>\n </ng-container>\n <ng-template #createServer>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Create' | translate }}\"\n type=\"button\"\n [disabled]=\"cmp.form?.invalid || !cmp.form?.dirty\"\n (click)=\"cmp.create()\"\n >\n {{ 'Create' | translate }}\n </button>\n </ng-template>\n </div>\n </div>\n </form>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3","i4"],"mappings":"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"}
@@ -5508,6 +5508,9 @@ class GetGroupIconPipe {
5508
5508
  }
5509
5509
  transform(mo, open = false, defaultIcon) {
5510
5510
  return __awaiter(this, void 0, void 0, function* () {
5511
+ if (!mo.c8y_IsDevice) {
5512
+ return this.groupService.getIcon(mo, open, 'c8y-group-open');
5513
+ }
5511
5514
  return this.groupService.getIcon(mo, open, defaultIcon);
5512
5515
  });
5513
5516
  }