@c8y/ngx-components 1017.0.71 → 1017.0.73
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.
- package/esm2020/protocol-lwm2m/bootstrap-parameters/lwm2m-bootstrap-parameters.guard.mjs +11 -9
- package/esm2020/protocol-lwm2m/shared/index.mjs +2 -1
- package/esm2020/protocol-lwm2m/shared/lwm2m-client.service.mjs +5 -1
- package/esm2020/protocol-lwm2m/shared/lwm2m.model.mjs +2 -0
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-bootstrap-parameters.mjs +39 -39
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-bootstrap-parameters.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-shared.mjs +5 -0
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-shared.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-protocol-lwm2m.mjs +46 -46
- package/fesm2015/c8y-ngx-components-protocol-lwm2m.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-bootstrap-parameters.mjs +28 -28
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-bootstrap-parameters.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-shared.mjs +4 -0
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-shared.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-protocol-lwm2m.mjs +35 -35
- package/fesm2020/c8y-ngx-components-protocol-lwm2m.mjs.map +1 -1
- package/package.json +2 -2
- package/protocol-lwm2m/bootstrap-parameters/lwm2m-bootstrap-parameters.guard.d.ts +3 -1
- package/protocol-lwm2m/shared/index.d.ts +1 -0
- package/protocol-lwm2m/shared/lwm2m-client.service.d.ts +3 -0
- package/protocol-lwm2m/shared/lwm2m.model.d.ts +6 -0
|
@@ -1,49 +1,18 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, Component, NgModule, ViewChild } from '@angular/core';
|
|
3
|
-
import * as i1 from '@c8y/ngx-components';
|
|
3
|
+
import * as i1$1 from '@c8y/ngx-components';
|
|
4
4
|
import { gettext, CommonModule, CoreModule, hookRoute, ViewContext, NavigatorNode, hookNavigator } from '@c8y/ngx-components';
|
|
5
|
+
import { Lwm2mClientService, SharedLwm2mModule } from '@c8y/ngx-components/protocol-lwm2m/shared';
|
|
6
|
+
import * as i1 from '@c8y/client';
|
|
5
7
|
import { __awaiter } from 'tslib';
|
|
6
8
|
import * as i4$1 from '@angular/forms';
|
|
7
9
|
import { FormGroup } from '@angular/forms';
|
|
8
10
|
import * as i2 from '@ngx-formly/core';
|
|
9
|
-
import { Lwm2mClientService, SharedLwm2mModule } from '@c8y/ngx-components/protocol-lwm2m/shared';
|
|
10
|
-
import * as i1$1 from '@c8y/client';
|
|
11
11
|
import * as i4 from '@angular/router';
|
|
12
12
|
import { gettext as gettext$1 } from '@c8y/client/src/gettext';
|
|
13
13
|
import * as i3 from '@angular/common';
|
|
14
14
|
import { PopoverModule } from 'ngx-bootstrap/popover';
|
|
15
15
|
|
|
16
|
-
class Lwm2mBootstrapParametersGuard {
|
|
17
|
-
constructor(tenantService, permissions) {
|
|
18
|
-
this.tenantService = tenantService;
|
|
19
|
-
this.permissions = permissions;
|
|
20
|
-
}
|
|
21
|
-
canActivate(route) {
|
|
22
|
-
const contextData = route.data.contextData || route.parent.data.contextData;
|
|
23
|
-
if ((contextData === null || contextData === void 0 ? void 0 : contextData.type) !== 'c8y_lwm2m') {
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
return (this.tenantService.isMicroserviceSubscribedInCurrentTenant('lwm2m-agent') &&
|
|
27
|
-
this.permissions.hasRole('ROLE_INVENTORY_READ'));
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
Lwm2mBootstrapParametersGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersGuard, deps: [{ token: i1.TenantUiService }, { token: i1.Permissions }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
31
|
-
Lwm2mBootstrapParametersGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersGuard });
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersGuard, decorators: [{
|
|
33
|
-
type: Injectable
|
|
34
|
-
}], ctorParameters: function () { return [{ type: i1.TenantUiService }, { type: i1.Permissions }]; } });
|
|
35
|
-
|
|
36
|
-
var SecurityMode;
|
|
37
|
-
(function (SecurityMode) {
|
|
38
|
-
SecurityMode["NO_SEC"] = "NO_SEC";
|
|
39
|
-
SecurityMode["PSK"] = "PSK";
|
|
40
|
-
})(SecurityMode || (SecurityMode = {}));
|
|
41
|
-
var BindingMode;
|
|
42
|
-
(function (BindingMode) {
|
|
43
|
-
BindingMode["U"] = "U";
|
|
44
|
-
BindingMode["UQ"] = "UQ";
|
|
45
|
-
})(BindingMode || (BindingMode = {}));
|
|
46
|
-
|
|
47
16
|
class Lwm2mBootstrapParametersService extends Lwm2mClientService {
|
|
48
17
|
constructor(client) {
|
|
49
18
|
super(client);
|
|
@@ -62,14 +31,45 @@ class Lwm2mBootstrapParametersService extends Lwm2mClientService {
|
|
|
62
31
|
return `${this.listUrl}/${super.getEntityId(entity)}/bootstrapParams`;
|
|
63
32
|
}
|
|
64
33
|
}
|
|
65
|
-
Lwm2mBootstrapParametersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersService, deps: [{ token: i1
|
|
34
|
+
Lwm2mBootstrapParametersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersService, deps: [{ token: i1.FetchClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
66
35
|
Lwm2mBootstrapParametersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersService, providedIn: 'root' });
|
|
67
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersService, decorators: [{
|
|
68
37
|
type: Injectable,
|
|
69
38
|
args: [{
|
|
70
39
|
providedIn: 'root'
|
|
71
40
|
}]
|
|
72
|
-
}], ctorParameters: function () { return [{ type: i1
|
|
41
|
+
}], ctorParameters: function () { return [{ type: i1.FetchClient }]; } });
|
|
42
|
+
|
|
43
|
+
class Lwm2mBootstrapParametersGuard {
|
|
44
|
+
constructor(tenantService, permissions, lwm2mService) {
|
|
45
|
+
this.tenantService = tenantService;
|
|
46
|
+
this.permissions = permissions;
|
|
47
|
+
this.lwm2mService = lwm2mService;
|
|
48
|
+
}
|
|
49
|
+
canActivate(route) {
|
|
50
|
+
const contextData = route.data.contextData ||
|
|
51
|
+
route.parent.data.contextData;
|
|
52
|
+
return (this.lwm2mService.isLwm2mDevice(contextData) &&
|
|
53
|
+
this.tenantService.isMicroserviceSubscribedInCurrentTenant('lwm2m-agent') &&
|
|
54
|
+
this.permissions.hasRole('ROLE_INVENTORY_READ'));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
Lwm2mBootstrapParametersGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersGuard, deps: [{ token: i1$1.TenantUiService }, { token: i1$1.Permissions }, { token: Lwm2mBootstrapParametersService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
58
|
+
Lwm2mBootstrapParametersGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersGuard });
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersGuard, decorators: [{
|
|
60
|
+
type: Injectable
|
|
61
|
+
}], ctorParameters: function () { return [{ type: i1$1.TenantUiService }, { type: i1$1.Permissions }, { type: Lwm2mBootstrapParametersService }]; } });
|
|
62
|
+
|
|
63
|
+
var SecurityMode;
|
|
64
|
+
(function (SecurityMode) {
|
|
65
|
+
SecurityMode["NO_SEC"] = "NO_SEC";
|
|
66
|
+
SecurityMode["PSK"] = "PSK";
|
|
67
|
+
})(SecurityMode || (SecurityMode = {}));
|
|
68
|
+
var BindingMode;
|
|
69
|
+
(function (BindingMode) {
|
|
70
|
+
BindingMode["U"] = "U";
|
|
71
|
+
BindingMode["UQ"] = "UQ";
|
|
72
|
+
})(BindingMode || (BindingMode = {}));
|
|
73
73
|
|
|
74
74
|
class Lwm2mBootstrapParametersComponent {
|
|
75
75
|
constructor(alertService, permissions, builder, lwm2mBootstrapParametersSvc, route) {
|
|
@@ -391,12 +391,12 @@ class Lwm2mBootstrapParametersComponent {
|
|
|
391
391
|
});
|
|
392
392
|
}
|
|
393
393
|
}
|
|
394
|
-
Lwm2mBootstrapParametersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersComponent, deps: [{ token: i1.AlertService }, { token: i1.Permissions }, { token: i2.FormlyFormBuilder }, { token: Lwm2mBootstrapParametersService }, { token: i4.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
395
|
-
Lwm2mBootstrapParametersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: Lwm2mBootstrapParametersComponent, selector: "c8y-lwm2m-bootstrap-parameters", ngImport: i0, template: "<form (ngSubmit)=\"save()\">\n <div class=\"card content-fullpage fit-h\">\n <div class=\"card-header separator grid__col--fullspan\">\n <h1 class=\"card-title\">{{ 'LWM2M bootstrap parameters' | translate }}</h1>\n </div>\n <div class=\"inner-scroll\">\n <formly-form\n [form]=\"form\"\n [fields]=\"fields\"\n [model]=\"model\"\n [options]=\"options\"\n ></formly-form>\n </div>\n <div\n [hidden]=\"options.formState.disabled\"\n class=\"card-footer separator grid__col--fullspan sticky-bottom\"\n >\n <button\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary\"\n [disabled]=\"form.invalid || !form.dirty\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i4$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.FormlyForm, selector: "formly-form", inputs: ["model", "fields", "options", "form"], outputs: ["modelChange"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] });
|
|
394
|
+
Lwm2mBootstrapParametersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersComponent, deps: [{ token: i1$1.AlertService }, { token: i1$1.Permissions }, { token: i2.FormlyFormBuilder }, { token: Lwm2mBootstrapParametersService }, { token: i4.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
395
|
+
Lwm2mBootstrapParametersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: Lwm2mBootstrapParametersComponent, selector: "c8y-lwm2m-bootstrap-parameters", ngImport: i0, template: "<form (ngSubmit)=\"save()\">\n <div class=\"card content-fullpage fit-h\">\n <div class=\"card-header separator grid__col--fullspan\">\n <h1 class=\"card-title\">{{ 'LWM2M bootstrap parameters' | translate }}</h1>\n </div>\n <div class=\"inner-scroll\">\n <formly-form\n [form]=\"form\"\n [fields]=\"fields\"\n [model]=\"model\"\n [options]=\"options\"\n ></formly-form>\n </div>\n <div\n [hidden]=\"options.formState.disabled\"\n class=\"card-footer separator grid__col--fullspan sticky-bottom\"\n >\n <button\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary\"\n [disabled]=\"form.invalid || !form.dirty\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i4$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.FormlyForm, selector: "formly-form", inputs: ["model", "fields", "options", "form"], outputs: ["modelChange"] }, { kind: "pipe", type: i1$1.C8yTranslatePipe, name: "translate" }] });
|
|
396
396
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersComponent, decorators: [{
|
|
397
397
|
type: Component,
|
|
398
398
|
args: [{ selector: 'c8y-lwm2m-bootstrap-parameters', template: "<form (ngSubmit)=\"save()\">\n <div class=\"card content-fullpage fit-h\">\n <div class=\"card-header separator grid__col--fullspan\">\n <h1 class=\"card-title\">{{ 'LWM2M bootstrap parameters' | translate }}</h1>\n </div>\n <div class=\"inner-scroll\">\n <formly-form\n [form]=\"form\"\n [fields]=\"fields\"\n [model]=\"model\"\n [options]=\"options\"\n ></formly-form>\n </div>\n <div\n [hidden]=\"options.formState.disabled\"\n class=\"card-footer separator grid__col--fullspan sticky-bottom\"\n >\n <button\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary\"\n [disabled]=\"form.invalid || !form.dirty\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n</form>\n" }]
|
|
399
|
-
}], ctorParameters: function () { return [{ type: i1.AlertService }, { type: i1.Permissions }, { type: i2.FormlyFormBuilder }, { type: Lwm2mBootstrapParametersService }, { type: i4.ActivatedRoute }]; } });
|
|
399
|
+
}], ctorParameters: function () { return [{ type: i1$1.AlertService }, { type: i1$1.Permissions }, { type: i2.FormlyFormBuilder }, { type: Lwm2mBootstrapParametersService }, { type: i4.ActivatedRoute }]; } });
|
|
400
400
|
|
|
401
401
|
class Lwm2mBootstrapParametersModule {
|
|
402
402
|
}
|
|
@@ -451,14 +451,14 @@ class LWM2MPostOperationsParametersService extends Lwm2mClientService {
|
|
|
451
451
|
});
|
|
452
452
|
}
|
|
453
453
|
}
|
|
454
|
-
LWM2MPostOperationsParametersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LWM2MPostOperationsParametersService, deps: [{ token: i1
|
|
454
|
+
LWM2MPostOperationsParametersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LWM2MPostOperationsParametersService, deps: [{ token: i1.FetchClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
455
455
|
LWM2MPostOperationsParametersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LWM2MPostOperationsParametersService, providedIn: 'root' });
|
|
456
456
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LWM2MPostOperationsParametersService, decorators: [{
|
|
457
457
|
type: Injectable,
|
|
458
458
|
args: [{
|
|
459
459
|
providedIn: 'root'
|
|
460
460
|
}]
|
|
461
|
-
}], ctorParameters: function () { return [{ type: i1
|
|
461
|
+
}], ctorParameters: function () { return [{ type: i1.FetchClient }]; } });
|
|
462
462
|
|
|
463
463
|
class LWM2MPostOperationsComponent {
|
|
464
464
|
constructor(lwm2mPostOperationsSvc, alertService) {
|
|
@@ -532,12 +532,12 @@ class LWM2MPostOperationsComponent {
|
|
|
532
532
|
});
|
|
533
533
|
}
|
|
534
534
|
}
|
|
535
|
-
LWM2MPostOperationsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LWM2MPostOperationsComponent, deps: [{ token: LWM2MPostOperationsParametersService }, { token: i1.AlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
536
|
-
LWM2MPostOperationsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: LWM2MPostOperationsComponent, selector: "lwm2m-post-operations", viewQueries: [{ propertyName: "commandsForm", first: true, predicate: ["commandsForm"], descendants: true }], ngImport: i0, template: "<c8y-title>{{ 'LWM2M post-operations' | translate }}</c8y-title>\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [label]=\"'Device types' | translate\"\n [icon]=\"'c8y-device-protocols'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'LWM2M post-operations' | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"card content-fullpage card--grid grid__col--7-5--md grid__row--auto-min-content\">\n <div class=\"inner-scroll bg-white\">\n <div class=\"card-header large-padding separator sticky-top\">\n <div class=\"h4 m-r-16\" id=\"commands\">\n {{ 'Commands' | translate }}\n </div>\n </div>\n <div class=\"card-block large-padding\">\n <form\n #commandsForm=\"ngForm\"\n id=\"commandsForm\"\n class=\"d-flex d-col flex-grow fit-h\"\n (ngSubmit)=\"save(operations)\"\n >\n <div class=\"form-group\">\n <textarea\n [(ngModel)]=\"operations.commands\"\n class=\"form-control\"\n aria-labelledby=\"commands\"\n name=\"commands\"\n rows=\"20\"\n ></textarea>\n </div>\n </form>\n </div>\n </div>\n\n <div class=\"inner-scroll bg-level-1\" tabindex=\"0\">\n <div class=\"card-block large-padding\">\n <p class=\"m-b-16\">\n <i class=\"text-info m-r-4 text-14\" c8yIcon=\"info-circle\"></i>\n {{\n 'You can enter a set of LWM2M shell commands. Each command will be sent to every newly registered LWM2M device. Each command must be entered in a new line. Use the following syntax for specifying post-registration actions:'\n | translate\n }}\n </p>\n <pre class=\"bg-level-0 text-pre-normal m-b-0\">\n <ul class=\"list-unstyled m-b-0\">\n <li class=\"m-16\" *ngFor=\"let c of exampleCommands\">\n <p class=\"text-muted\"># {{c.description | translate}}</p>\n <span class=\"text-danger\">{{c.command}}</span>\n <span class=\"text-muted\">{{c.resource}}</span>\n </li>\n </ul>\n </pre>\n </div>\n </div>\n\n <div class=\"card-footer large-padding separator grid__col--fullspan\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n form=\"commandsForm\"\n [disabled]=\"commandsForm.valid && !commandsForm.dirty\"\n [attr.aria-label]=\"'Save' | translate\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i1.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i1.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i1.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "directive", type: i4$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] });
|
|
535
|
+
LWM2MPostOperationsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LWM2MPostOperationsComponent, deps: [{ token: LWM2MPostOperationsParametersService }, { token: i1$1.AlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
536
|
+
LWM2MPostOperationsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: LWM2MPostOperationsComponent, selector: "lwm2m-post-operations", viewQueries: [{ propertyName: "commandsForm", first: true, predicate: ["commandsForm"], descendants: true }], ngImport: i0, template: "<c8y-title>{{ 'LWM2M post-operations' | translate }}</c8y-title>\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [label]=\"'Device types' | translate\"\n [icon]=\"'c8y-device-protocols'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'LWM2M post-operations' | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"card content-fullpage card--grid grid__col--7-5--md grid__row--auto-min-content\">\n <div class=\"inner-scroll bg-white\">\n <div class=\"card-header large-padding separator sticky-top\">\n <div class=\"h4 m-r-16\" id=\"commands\">\n {{ 'Commands' | translate }}\n </div>\n </div>\n <div class=\"card-block large-padding\">\n <form\n #commandsForm=\"ngForm\"\n id=\"commandsForm\"\n class=\"d-flex d-col flex-grow fit-h\"\n (ngSubmit)=\"save(operations)\"\n >\n <div class=\"form-group\">\n <textarea\n [(ngModel)]=\"operations.commands\"\n class=\"form-control\"\n aria-labelledby=\"commands\"\n name=\"commands\"\n rows=\"20\"\n ></textarea>\n </div>\n </form>\n </div>\n </div>\n\n <div class=\"inner-scroll bg-level-1\" tabindex=\"0\">\n <div class=\"card-block large-padding\">\n <p class=\"m-b-16\">\n <i class=\"text-info m-r-4 text-14\" c8yIcon=\"info-circle\"></i>\n {{\n 'You can enter a set of LWM2M shell commands. Each command will be sent to every newly registered LWM2M device. Each command must be entered in a new line. Use the following syntax for specifying post-registration actions:'\n | translate\n }}\n </p>\n <pre class=\"bg-level-0 text-pre-normal m-b-0\">\n <ul class=\"list-unstyled m-b-0\">\n <li class=\"m-16\" *ngFor=\"let c of exampleCommands\">\n <p class=\"text-muted\"># {{c.description | translate}}</p>\n <span class=\"text-danger\">{{c.command}}</span>\n <span class=\"text-muted\">{{c.resource}}</span>\n </li>\n </ul>\n </pre>\n </div>\n </div>\n\n <div class=\"card-footer large-padding separator grid__col--fullspan\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n form=\"commandsForm\"\n [disabled]=\"commandsForm.valid && !commandsForm.dirty\"\n [attr.aria-label]=\"'Save' | translate\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i1$1.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i1$1.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "directive", type: i1$1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i1$1.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "directive", type: i4$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: i1$1.C8yTranslatePipe, name: "translate" }] });
|
|
537
537
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LWM2MPostOperationsComponent, decorators: [{
|
|
538
538
|
type: Component,
|
|
539
539
|
args: [{ selector: 'lwm2m-post-operations', template: "<c8y-title>{{ 'LWM2M post-operations' | translate }}</c8y-title>\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [label]=\"'Device types' | translate\"\n [icon]=\"'c8y-device-protocols'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'LWM2M post-operations' | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"card content-fullpage card--grid grid__col--7-5--md grid__row--auto-min-content\">\n <div class=\"inner-scroll bg-white\">\n <div class=\"card-header large-padding separator sticky-top\">\n <div class=\"h4 m-r-16\" id=\"commands\">\n {{ 'Commands' | translate }}\n </div>\n </div>\n <div class=\"card-block large-padding\">\n <form\n #commandsForm=\"ngForm\"\n id=\"commandsForm\"\n class=\"d-flex d-col flex-grow fit-h\"\n (ngSubmit)=\"save(operations)\"\n >\n <div class=\"form-group\">\n <textarea\n [(ngModel)]=\"operations.commands\"\n class=\"form-control\"\n aria-labelledby=\"commands\"\n name=\"commands\"\n rows=\"20\"\n ></textarea>\n </div>\n </form>\n </div>\n </div>\n\n <div class=\"inner-scroll bg-level-1\" tabindex=\"0\">\n <div class=\"card-block large-padding\">\n <p class=\"m-b-16\">\n <i class=\"text-info m-r-4 text-14\" c8yIcon=\"info-circle\"></i>\n {{\n 'You can enter a set of LWM2M shell commands. Each command will be sent to every newly registered LWM2M device. Each command must be entered in a new line. Use the following syntax for specifying post-registration actions:'\n | translate\n }}\n </p>\n <pre class=\"bg-level-0 text-pre-normal m-b-0\">\n <ul class=\"list-unstyled m-b-0\">\n <li class=\"m-16\" *ngFor=\"let c of exampleCommands\">\n <p class=\"text-muted\"># {{c.description | translate}}</p>\n <span class=\"text-danger\">{{c.command}}</span>\n <span class=\"text-muted\">{{c.resource}}</span>\n </li>\n </ul>\n </pre>\n </div>\n </div>\n\n <div class=\"card-footer large-padding separator grid__col--fullspan\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n form=\"commandsForm\"\n [disabled]=\"commandsForm.valid && !commandsForm.dirty\"\n [attr.aria-label]=\"'Save' | translate\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</div>\n" }]
|
|
540
|
-
}], ctorParameters: function () { return [{ type: LWM2MPostOperationsParametersService }, { type: i1.AlertService }]; }, propDecorators: { commandsForm: [{
|
|
540
|
+
}], ctorParameters: function () { return [{ type: LWM2MPostOperationsParametersService }, { type: i1$1.AlertService }]; }, propDecorators: { commandsForm: [{
|
|
541
541
|
type: ViewChild,
|
|
542
542
|
args: ['commandsForm']
|
|
543
543
|
}] } });
|
|
@@ -550,11 +550,11 @@ class LWM2MPostOperationsGuard {
|
|
|
550
550
|
return this.tenantService.isMicroserviceSubscribedInCurrentTenant('lwm2m-agent');
|
|
551
551
|
}
|
|
552
552
|
}
|
|
553
|
-
LWM2MPostOperationsGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LWM2MPostOperationsGuard, deps: [{ token: i1.TenantUiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
553
|
+
LWM2MPostOperationsGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LWM2MPostOperationsGuard, deps: [{ token: i1$1.TenantUiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
554
554
|
LWM2MPostOperationsGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LWM2MPostOperationsGuard });
|
|
555
555
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LWM2MPostOperationsGuard, decorators: [{
|
|
556
556
|
type: Injectable
|
|
557
|
-
}], ctorParameters: function () { return [{ type: i1.TenantUiService }]; } });
|
|
557
|
+
}], ctorParameters: function () { return [{ type: i1$1.TenantUiService }]; } });
|
|
558
558
|
|
|
559
559
|
class LWM2MPostOpertaionsNavigationFactory {
|
|
560
560
|
constructor(guard) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-protocol-lwm2m.mjs","sources":["../../protocol-lwm2m/bootstrap-parameters/lwm2m-bootstrap-parameters.guard.ts","../../protocol-lwm2m/bootstrap-parameters/lwm2m-bootstrap-parameters.model.ts","../../protocol-lwm2m/bootstrap-parameters/lwm2m-bootstrap-parameters.service.ts","../../protocol-lwm2m/bootstrap-parameters/lwm2m-bootstrap-parameters.component.ts","../../protocol-lwm2m/bootstrap-parameters/lwm2m-bootstrap-parameters.component.html","../../protocol-lwm2m/bootstrap-parameters/lwm2m-bootstrap-parameters.module.ts","../../protocol-lwm2m/post-registration-operations/lwm2m-post-operations.service.ts","../../protocol-lwm2m/post-registration-operations/lwm2m-post-operations.component.ts","../../protocol-lwm2m/post-registration-operations/lwm2m-post-operations.component.html","../../protocol-lwm2m/post-registration-operations/lwm2m-post-operations.guard.ts","../../protocol-lwm2m/post-registration-operations/lwm2m-post-operations.factory.ts","../../protocol-lwm2m/post-registration-operations/lwm2m-post-operations.module.ts","../../protocol-lwm2m/lwm2m.module.ts","../../protocol-lwm2m/c8y-ngx-components-protocol-lwm2m.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { TenantUiService, Permissions } from '@c8y/ngx-components';\n\n@Injectable()\nexport class Lwm2mBootstrapParametersGuard implements CanActivate {\n constructor(private tenantService: TenantUiService, private permissions: Permissions) {}\n\n canActivate(route: ActivatedRouteSnapshot) {\n const contextData = (route.data as any).contextData || (route.parent.data as any).contextData;\n if (contextData?.type !== 'c8y_lwm2m') {\n return false;\n }\n return (\n this.tenantService.isMicroserviceSubscribedInCurrentTenant('lwm2m-agent') &&\n this.permissions.hasRole('ROLE_INVENTORY_READ')\n );\n }\n}\n","export interface Lwm2mBootstrapParameters {\n bindingMode?: BindingMode;\n bootstrapId?: string;\n bootstrapKey?: string;\n bootstrapShortServerId?: number;\n defaultMaximumPeriod?: number;\n defaultMinimumPeriod?: number;\n securityMode?: SecurityMode;\n endpoint?: string;\n generateBootstrapServerConfig?: boolean;\n lwm2mShortServerId?: number;\n serverUri?: string;\n registrationLifeTime?: number;\n serverPublicKey?: string;\n securityInstanceOffset?: number;\n publicKeyOrId?: string;\n secretKey?: string;\n id?: string;\n}\n\nexport enum SecurityMode {\n NO_SEC = 'NO_SEC',\n PSK = 'PSK'\n}\n\nexport enum BindingMode {\n U = 'U',\n UQ = 'UQ'\n}\n","import { Injectable } from '@angular/core';\nimport { FetchClient, IResult } from '@c8y/client';\nimport { Lwm2mClientService } from '@c8y/ngx-components/protocol-lwm2m/shared';\nimport { Lwm2mBootstrapParameters } from './lwm2m-bootstrap-parameters.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Lwm2mBootstrapParametersService extends Lwm2mClientService<Lwm2mBootstrapParameters> {\n constructor(client: FetchClient) {\n super(client);\n }\n\n detail(id: string): Promise<IResult<Lwm2mBootstrapParameters | any>> {\n return super.detail(id);\n }\n\n update(entity: Lwm2mBootstrapParameters): Promise<IResult<Lwm2mBootstrapParameters | any>> {\n return super.update(entity);\n }\n\n onBeforeUpdate(entity: Lwm2mBootstrapParameters): Lwm2mBootstrapParameters {\n delete entity.id;\n return entity;\n }\n\n getDetailUrl(entity: Lwm2mBootstrapParameters): string {\n return `${this.listUrl}/${super.getEntityId(entity)}/bootstrapParams`;\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { gettext, AlertService, Permissions, Alert } from '@c8y/ngx-components';\nimport { FormlyFieldConfig, FormlyFormBuilder, FormlyFormOptions } from '@ngx-formly/core';\nimport { Lwm2mBootstrapParametersService } from './lwm2m-bootstrap-parameters.service';\nimport {\n BindingMode,\n Lwm2mBootstrapParameters,\n SecurityMode\n} from './lwm2m-bootstrap-parameters.model';\n\n@Component({\n selector: 'c8y-lwm2m-bootstrap-parameters',\n templateUrl: './lwm2m-bootstrap-parameters.component.html'\n})\nexport class Lwm2mBootstrapParametersComponent implements OnInit, OnDestroy {\n fields: FormlyFieldConfig[];\n form: FormGroup = new FormGroup({});\n model = {};\n options: FormlyFormOptions = {\n formState: {\n disabled: false,\n mainModel: this.model\n }\n };\n\n private readonly writePermissionMissingAlert: Alert = {\n text: gettext('You do not have write permissions. This form is read-only.'),\n type: 'info'\n };\n\n private readonly DISABLED_HINT_TEXT: string = gettext(\n 'Change the security mode to enable this field.'\n );\n private readonly pattern: RegExp = /^([a-fA-F0-9]{2})+$/;\n private deviceId: string;\n\n constructor(\n private alertService: AlertService,\n private permissions: Permissions,\n private builder: FormlyFormBuilder,\n private lwm2mBootstrapParametersSvc: Lwm2mBootstrapParametersService,\n private route: ActivatedRoute\n ) {\n this.deviceId = this.route?.snapshot?.parent?.params?.id;\n }\n\n async ngOnInit() {\n const parameters: Lwm2mBootstrapParameters = await this.getBootstrapParameters();\n const {\n bindingMode,\n bootstrapId,\n bootstrapKey,\n bootstrapShortServerId,\n defaultMaximumPeriod,\n defaultMinimumPeriod,\n securityMode,\n endpoint,\n generateBootstrapServerConfig,\n lwm2mShortServerId,\n serverUri,\n registrationLifeTime,\n serverPublicKey,\n securityInstanceOffset,\n publicKeyOrId,\n secretKey\n }: Lwm2mBootstrapParameters = parameters;\n\n const leftFields: FormlyFieldConfig[] = [\n {\n key: 'endpoint',\n id: 'bs-endpoint',\n type: 'string',\n defaultValue: endpoint,\n templateOptions: {\n label: gettext('Endpoint'),\n placeholder: 'urn:imei:012345678901234',\n readonly: true\n }\n },\n {\n key: 'securityMode',\n id: 'bs-securityMode',\n type: 'select',\n templateOptions: {\n label: gettext('Security mode'),\n initValue: securityMode || SecurityMode.NO_SEC,\n options: [\n { label: SecurityMode.NO_SEC, value: SecurityMode.NO_SEC },\n { label: SecurityMode.PSK, value: SecurityMode.PSK }\n ],\n required: true\n }\n },\n {\n key: 'bootstrapId',\n id: 'bs-bootstrapId',\n type: 'string',\n templateOptions: {\n label: gettext('Bootstrap PSK ID'),\n description: this.DISABLED_HINT_TEXT,\n required: true\n },\n hooks: {\n onInit: (field: FormlyFieldConfig) => {\n field.formControl.patchValue(bootstrapId);\n }\n },\n expressionProperties: {\n 'templateOptions.disabled': (model: any, formState: any, field: FormlyFieldConfig) =>\n this.disablePSKField(formState, field)\n }\n },\n {\n key: 'bootstrapKey',\n id: 'bs-bootstrapKey',\n type: 'string',\n templateOptions: {\n label: gettext('Bootstrap pre-shared key'),\n description: this.DISABLED_HINT_TEXT,\n placeholder: '0123456789abcdef',\n required: true,\n pattern: this.pattern\n },\n hooks: {\n onInit: (field: FormlyFieldConfig) => {\n field.formControl.patchValue(bootstrapKey);\n }\n },\n expressionProperties: {\n 'templateOptions.disabled': (model: any, formState: any, field: FormlyFieldConfig) =>\n this.disablePSKField(formState, field)\n }\n },\n {\n key: 'securityInstanceOffset',\n id: 'bs-securityInstanceOffset',\n type: 'number',\n defaultValue: securityInstanceOffset,\n templateOptions: {\n label: gettext('Security instance offset'),\n placeholder: '0',\n min: 0\n }\n },\n {\n key: 'bootstrapShortServerId',\n id: 'bs-bootstrapShortServerId',\n type: 'number',\n defaultValue: bootstrapShortServerId,\n templateOptions: {\n label: gettext('LWM2M bootstrap short server ID'),\n placeholder: '0',\n min: 0\n }\n },\n {\n key: 'registrationLifeTime',\n id: 'bs-registrationLifeTime',\n type: 'number',\n defaultValue: registrationLifeTime,\n templateOptions: {\n label: gettext('Registration lifetime'),\n description: gettext('in seconds'),\n placeholder: '600',\n min: 0\n }\n },\n {\n key: 'bindingMode',\n id: 'bs-bindingMode',\n type: 'select',\n templateOptions: {\n label: gettext('Binding mode'),\n initValue: bindingMode || BindingMode.U,\n options: [\n { label: gettext('UDP'), value: BindingMode.U },\n { label: gettext('UDP with queue mode'), value: BindingMode.UQ }\n ]\n }\n }\n ];\n\n const rightFields: FormlyFieldConfig[] = [\n {\n key: 'serverPublicKey',\n id: 'bs-serverPublicKey',\n type: 'string',\n defaultValue: serverPublicKey,\n templateOptions: {\n label: gettext('Server public key'),\n placeholder: 'AAAAB3NzaC1yc2E…'\n }\n },\n {\n key: 'serverUri',\n id: 'bs-serverUri',\n type: 'string',\n defaultValue: serverUri,\n templateOptions: {\n label: gettext('LWM2M server URI'),\n placeholder: 'coaps://<LWM2M-server-domain>:<coaps-port>'\n }\n },\n {\n key: 'publicKeyOrId',\n id: 'bs-publicKeyOrId',\n type: 'string',\n templateOptions: {\n label: gettext('LWM2M PSK ID'),\n description: this.DISABLED_HINT_TEXT,\n required: true\n },\n hooks: {\n onInit: (field: FormlyFieldConfig) => {\n field.formControl.patchValue(publicKeyOrId);\n }\n },\n expressionProperties: {\n 'templateOptions.disabled': (model: any, formState: any, field: FormlyFieldConfig) =>\n this.disablePSKField(formState, field)\n }\n },\n {\n key: 'secretKey',\n id: 'bs-secretKey',\n type: 'string',\n templateOptions: {\n label: gettext('LWM2M pre-shared key'),\n description: this.DISABLED_HINT_TEXT,\n placeholder: '0123456789abcdef',\n required: true,\n pattern: this.pattern\n },\n hooks: {\n onInit: (field: FormlyFieldConfig) => {\n field.formControl.patchValue(secretKey);\n }\n },\n expressionProperties: {\n 'templateOptions.disabled': (model: any, formState: any, field: FormlyFieldConfig) =>\n this.disablePSKField(formState, field)\n }\n },\n {\n key: 'lwm2mShortServerId',\n id: 'bs-lwm2mShortServerId',\n type: 'number',\n defaultValue: lwm2mShortServerId,\n templateOptions: {\n label: gettext('LWM2M short server ID'),\n placeholder: '0',\n min: 0\n }\n },\n {\n key: 'generateBootstrapServerConfig',\n id: 'bs-generateBootstrapServerConfig',\n type: 'select',\n templateOptions: {\n label: gettext('Generate bootstrap server config'),\n initValue: generateBootstrapServerConfig || false,\n options: [\n { label: gettext('Yes'), value: true },\n { label: gettext('No'), value: false }\n ]\n }\n },\n {\n key: 'defaultMinimumPeriod',\n id: 'bs-defaultMinimumPeriod',\n type: 'number',\n defaultValue: defaultMinimumPeriod,\n templateOptions: {\n label: gettext('Default minimum period'),\n description: gettext('in seconds'),\n placeholder: '10',\n min: 0\n }\n },\n {\n key: 'defaultMaximumPeriod',\n id: 'bs-defaultMaximumPeriod',\n type: 'number',\n defaultValue: defaultMaximumPeriod,\n templateOptions: {\n label: gettext('Default maximum period'),\n description: gettext('in seconds'),\n placeholder: '60',\n min: 0\n }\n }\n ];\n\n this.fields = [\n {\n fieldGroupClassName: 'card-block d-grid grid__col--6-6',\n fieldGroup: [\n {\n fieldGroupClassName: 'form-group p-24 p-t-8 p-b-8 m-b-0',\n fieldGroup: leftFields\n },\n {\n fieldGroupClassName: 'form-group p-24 p-t-8 p-b-8 m-b-0',\n fieldGroup: rightFields\n }\n ]\n }\n ];\n\n this.builder.buildForm(this.form, this.fields, this.model, this.options);\n\n const userHasWritePermission = this.permissions.hasRole('ROLE_INVENTORY_ADMIN');\n\n if (Object.keys(parameters).length === 0 || !userHasWritePermission) {\n this.form.disable();\n\n this.options.formState.disabled = true;\n }\n\n if (!userHasWritePermission) {\n this.alertService.info(this.writePermissionMissingAlert.text as string);\n }\n }\n\n ngOnDestroy() {\n // alertService checks if given alert exists.\n // save to remove it without additional checks\n this.alertService.remove(this.writePermissionMissingAlert);\n }\n\n disablePSKField(\n formState: { disabled: boolean; mainModel: Lwm2mBootstrapParameters },\n field: FormlyFieldConfig\n ) {\n if (formState.disabled) {\n delete field.templateOptions.description;\n return true;\n } else if (\n !formState.mainModel.securityMode ||\n formState.mainModel.securityMode === SecurityMode.NO_SEC\n ) {\n field.templateOptions.description = this.DISABLED_HINT_TEXT;\n field.formControl.patchValue(null);\n return true;\n }\n delete field.templateOptions.description;\n return false;\n }\n\n async save() {\n try {\n await this.lwm2mBootstrapParametersSvc.update({ ...this.model, ...{ id: this.deviceId } });\n this.alertService.success(gettext('Bootstrap parameters updated'));\n // disables save button\n this.form.markAsPristine();\n this.form.updateValueAndValidity();\n } catch (error) {\n this.alertService.addServerFailure({ ...error });\n }\n }\n\n async getBootstrapParameters(): Promise<Lwm2mBootstrapParameters> {\n try {\n return (await this.lwm2mBootstrapParametersSvc.detail(this.deviceId))\n .data as Lwm2mBootstrapParameters;\n } catch (error) {\n this.alertService.addServerFailure({ ...error });\n return {};\n }\n }\n}\n","<form (ngSubmit)=\"save()\">\n <div class=\"card content-fullpage fit-h\">\n <div class=\"card-header separator grid__col--fullspan\">\n <h1 class=\"card-title\">{{ 'LWM2M bootstrap parameters' | translate }}</h1>\n </div>\n <div class=\"inner-scroll\">\n <formly-form\n [form]=\"form\"\n [fields]=\"fields\"\n [model]=\"model\"\n [options]=\"options\"\n ></formly-form>\n </div>\n <div\n [hidden]=\"options.formState.disabled\"\n class=\"card-footer separator grid__col--fullspan sticky-bottom\"\n >\n <button\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary\"\n [disabled]=\"form.invalid || !form.dirty\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n</form>\n","import { NgModule } from '@angular/core';\nimport { CommonModule, CoreModule, gettext, hookRoute, ViewContext } from '@c8y/ngx-components';\nimport { Lwm2mBootstrapParametersGuard } from './lwm2m-bootstrap-parameters.guard';\nimport { Lwm2mBootstrapParametersComponent } from './lwm2m-bootstrap-parameters.component';\nimport { Lwm2mBootstrapParametersService } from './lwm2m-bootstrap-parameters.service';\nimport { SharedLwm2mModule } from '@c8y/ngx-components/protocol-lwm2m/shared';\n\n@NgModule({\n imports: [CommonModule, CoreModule, SharedLwm2mModule],\n declarations: [Lwm2mBootstrapParametersComponent],\n providers: [\n Lwm2mBootstrapParametersService,\n Lwm2mBootstrapParametersGuard,\n hookRoute({\n path: 'lwm2m-bootstrap-parameters',\n context: ViewContext.Device,\n component: Lwm2mBootstrapParametersComponent,\n label: gettext('LWM2M bootstrap parameters'),\n icon: 'c8y-device-protocols',\n canActivate: [Lwm2mBootstrapParametersGuard]\n })\n ]\n})\nexport class Lwm2mBootstrapParametersModule {}\n","import { Injectable } from '@angular/core';\nimport { FetchClient, IFetchResponse } from '@c8y/client';\nimport { Lwm2mClientService } from '@c8y/ngx-components/protocol-lwm2m/shared';\nimport { LWM2MPostOperationsParameters } from './lwm2m-post-operations.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LWM2MPostOperationsParametersService extends Lwm2mClientService<LWM2MPostOperationsParameters> {\n private readonly detailUrl: string = '/postRegistrationOptions';\n\n constructor(client: FetchClient) {\n super(client);\n }\n\n get(): Promise<IFetchResponse> {\n return super.fetch(this.detailUrl);\n }\n\n put(data: LWM2MPostOperationsParameters) {\n const headers = { 'content-type': 'application/json', accept: 'application/json' };\n return super.fetch(this.detailUrl, {\n method: 'PUT',\n body: JSON.stringify(data),\n headers: headers\n });\n }\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { gettext } from '@c8y/client/src/gettext';\nimport { LWM2MPostOperationsParameters } from './lwm2m-post-operations.model';\nimport { LWM2MPostOperationsParametersService } from './lwm2m-post-operations.service';\nimport { AlertService } from '@c8y/ngx-components';\n\n@Component({\n selector: 'lwm2m-post-operations',\n templateUrl: './lwm2m-post-operations.component.html'\n})\nexport class LWM2MPostOperationsComponent implements OnInit {\n @ViewChild('commandsForm') commandsForm: NgForm;\n\n exampleCommands = [\n {\n command: 'discover',\n resource: '<objectId>',\n description: gettext('Discover all resources of Object 3300, the generic sensor.')\n },\n {\n command: 'read',\n resource: '<objectId>/<objectInstanceId>/<resourceId>',\n description: gettext('Read maximum sensor value')\n },\n {\n command: 'write',\n resource: '<objectId>/<objectInstanceId>/<resourceId> <applicationType>',\n description: gettext('Write application type \"CO2\" to device')\n },\n {\n command: 'execute',\n resource: '<objectId>/<objectInstanceId>/<resourceId>',\n description: gettext('Reset min and max values')\n },\n {\n command: 'observe',\n resource: '<objectId>/<objectInstanceId>/<resourceId>',\n description: gettext('Observe sensor value. Causes device to send every new sensor value')\n },\n {\n command: 'writeattr',\n resource: '<objectId>/<objectInstanceId>/<resourceId> greater=<value>',\n description: gettext('Only send observations if sensor value is higher than 100')\n }\n ];\n\n operations: LWM2MPostOperationsParameters = {\n commands: '',\n type: '',\n id: ''\n };\n\n constructor(\n private lwm2mPostOperationsSvc: LWM2MPostOperationsParametersService,\n private alertService: AlertService\n ) {}\n\n async ngOnInit() {\n this.operations = (await this.getPostOperationsParameters()) as LWM2MPostOperationsParameters;\n }\n\n async save(operations: LWM2MPostOperationsParameters) {\n try {\n await this.lwm2mPostOperationsSvc.put(operations);\n this.alertService.success(gettext('Post operations saved'));\n this.commandsForm.form.markAsPristine();\n } catch (error) {\n this.alertService.addServerFailure(error);\n }\n }\n\n async getPostOperationsParameters() {\n try {\n const res = await this.lwm2mPostOperationsSvc.get();\n return (await res.json()) as LWM2MPostOperationsParameters;\n } catch (error) {\n this.alertService.addServerFailure(error);\n return {};\n }\n }\n}\n","<c8y-title>{{ 'LWM2M post-operations' | translate }}</c8y-title>\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [label]=\"'Device types' | translate\"\n [icon]=\"'c8y-device-protocols'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'LWM2M post-operations' | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"card content-fullpage card--grid grid__col--7-5--md grid__row--auto-min-content\">\n <div class=\"inner-scroll bg-white\">\n <div class=\"card-header large-padding separator sticky-top\">\n <div class=\"h4 m-r-16\" id=\"commands\">\n {{ 'Commands' | translate }}\n </div>\n </div>\n <div class=\"card-block large-padding\">\n <form\n #commandsForm=\"ngForm\"\n id=\"commandsForm\"\n class=\"d-flex d-col flex-grow fit-h\"\n (ngSubmit)=\"save(operations)\"\n >\n <div class=\"form-group\">\n <textarea\n [(ngModel)]=\"operations.commands\"\n class=\"form-control\"\n aria-labelledby=\"commands\"\n name=\"commands\"\n rows=\"20\"\n ></textarea>\n </div>\n </form>\n </div>\n </div>\n\n <div class=\"inner-scroll bg-level-1\" tabindex=\"0\">\n <div class=\"card-block large-padding\">\n <p class=\"m-b-16\">\n <i class=\"text-info m-r-4 text-14\" c8yIcon=\"info-circle\"></i>\n {{\n 'You can enter a set of LWM2M shell commands. Each command will be sent to every newly registered LWM2M device. Each command must be entered in a new line. Use the following syntax for specifying post-registration actions:'\n | translate\n }}\n </p>\n <pre class=\"bg-level-0 text-pre-normal m-b-0\">\n <ul class=\"list-unstyled m-b-0\">\n <li class=\"m-16\" *ngFor=\"let c of exampleCommands\">\n <p class=\"text-muted\"># {{c.description | translate}}</p>\n <span class=\"text-danger\">{{c.command}}</span>\n <span class=\"text-muted\">{{c.resource}}</span>\n </li>\n </ul>\n </pre>\n </div>\n </div>\n\n <div class=\"card-footer large-padding separator grid__col--fullspan\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n form=\"commandsForm\"\n [disabled]=\"commandsForm.valid && !commandsForm.dirty\"\n [attr.aria-label]=\"'Save' | translate\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { TenantUiService } from '@c8y/ngx-components';\n\n@Injectable()\nexport class LWM2MPostOperationsGuard implements CanActivate {\n constructor(private tenantService: TenantUiService) {}\n\n canActivate() {\n return this.tenantService.isMicroserviceSubscribedInCurrentTenant('lwm2m-agent');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { gettext, NavigatorNode, NavigatorNodeFactory } from '@c8y/ngx-components';\nimport { LWM2MPostOperationsGuard } from './lwm2m-post-operations.guard';\n\n@Injectable()\nexport class LWM2MPostOpertaionsNavigationFactory implements NavigatorNodeFactory {\n navs: NavigatorNode[] = [];\n\n constructor(private guard: LWM2MPostOperationsGuard) {}\n\n get() {\n if (this.guard.canActivate()) {\n this.navs.push(\n new NavigatorNode({\n label: gettext('LWM2M post-operations'),\n path: 'post-operations',\n icon: 'terminal',\n parent: {\n label: gettext('Device types'),\n icon: 'exchange'\n },\n priority: 0\n })\n );\n }\n return this.navs;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule, CommonModule, hookRoute, hookNavigator } from '@c8y/ngx-components';\nimport { LWM2MPostOperationsComponent } from './lwm2m-post-operations.component';\nimport { LWM2MPostOperationsGuard } from './lwm2m-post-operations.guard';\nimport { LWM2MPostOperationsParametersService } from './lwm2m-post-operations.service';\nimport { SharedLwm2mModule } from '@c8y/ngx-components/protocol-lwm2m/shared';\nimport { LWM2MPostOpertaionsNavigationFactory } from './lwm2m-post-operations.factory';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\n\n@NgModule({\n imports: [CoreModule, CommonModule, SharedLwm2mModule, PopoverModule],\n declarations: [LWM2MPostOperationsComponent],\n providers: [\n LWM2MPostOperationsParametersService,\n LWM2MPostOperationsGuard,\n hookRoute({\n path: 'post-operations',\n component: LWM2MPostOperationsComponent,\n icon: 'terminal',\n priority: 2000,\n canActivate: [LWM2MPostOperationsGuard]\n }),\n hookNavigator(LWM2MPostOpertaionsNavigationFactory)\n ]\n})\nexport class LWM2MPostOperationsModule {}\n","import { NgModule } from '@angular/core';\nimport { Lwm2mBootstrapParametersModule } from './bootstrap-parameters/lwm2m-bootstrap-parameters.module';\nimport { LWM2MPostOperationsModule } from './post-registration-operations/lwm2m-post-operations.module';\n\n@NgModule({\n imports: [Lwm2mBootstrapParametersModule, LWM2MPostOperationsModule]\n})\nexport class Lwm2mModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i3.Lwm2mBootstrapParametersService","i5","gettext","i1.LWM2MPostOperationsParametersService","i2","i4","i1.LWM2MPostOperationsGuard"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-protocol-lwm2m.mjs","sources":["../../protocol-lwm2m/bootstrap-parameters/lwm2m-bootstrap-parameters.service.ts","../../protocol-lwm2m/bootstrap-parameters/lwm2m-bootstrap-parameters.guard.ts","../../protocol-lwm2m/bootstrap-parameters/lwm2m-bootstrap-parameters.model.ts","../../protocol-lwm2m/bootstrap-parameters/lwm2m-bootstrap-parameters.component.ts","../../protocol-lwm2m/bootstrap-parameters/lwm2m-bootstrap-parameters.component.html","../../protocol-lwm2m/bootstrap-parameters/lwm2m-bootstrap-parameters.module.ts","../../protocol-lwm2m/post-registration-operations/lwm2m-post-operations.service.ts","../../protocol-lwm2m/post-registration-operations/lwm2m-post-operations.component.ts","../../protocol-lwm2m/post-registration-operations/lwm2m-post-operations.component.html","../../protocol-lwm2m/post-registration-operations/lwm2m-post-operations.guard.ts","../../protocol-lwm2m/post-registration-operations/lwm2m-post-operations.factory.ts","../../protocol-lwm2m/post-registration-operations/lwm2m-post-operations.module.ts","../../protocol-lwm2m/lwm2m.module.ts","../../protocol-lwm2m/c8y-ngx-components-protocol-lwm2m.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { FetchClient, IResult } from '@c8y/client';\nimport { Lwm2mClientService } from '@c8y/ngx-components/protocol-lwm2m/shared';\nimport { Lwm2mBootstrapParameters } from './lwm2m-bootstrap-parameters.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Lwm2mBootstrapParametersService extends Lwm2mClientService<Lwm2mBootstrapParameters> {\n constructor(client: FetchClient) {\n super(client);\n }\n\n detail(id: string): Promise<IResult<Lwm2mBootstrapParameters | any>> {\n return super.detail(id);\n }\n\n update(entity: Lwm2mBootstrapParameters): Promise<IResult<Lwm2mBootstrapParameters | any>> {\n return super.update(entity);\n }\n\n onBeforeUpdate(entity: Lwm2mBootstrapParameters): Lwm2mBootstrapParameters {\n delete entity.id;\n return entity;\n }\n\n getDetailUrl(entity: Lwm2mBootstrapParameters): string {\n return `${this.listUrl}/${super.getEntityId(entity)}/bootstrapParams`;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { TenantUiService, Permissions } from '@c8y/ngx-components';\nimport { Lwm2mManagedObject } from '@c8y/ngx-components/protocol-lwm2m/shared';\nimport { Lwm2mBootstrapParametersService } from './lwm2m-bootstrap-parameters.service';\n\n@Injectable()\nexport class Lwm2mBootstrapParametersGuard implements CanActivate {\n constructor(\n private tenantService: TenantUiService,\n private permissions: Permissions,\n private lwm2mService: Lwm2mBootstrapParametersService\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot) {\n const contextData =\n ((route.data as any).contextData as Lwm2mManagedObject) ||\n ((route.parent.data as any).contextData as Lwm2mManagedObject);\n\n return (\n this.lwm2mService.isLwm2mDevice(contextData) &&\n this.tenantService.isMicroserviceSubscribedInCurrentTenant('lwm2m-agent') &&\n this.permissions.hasRole('ROLE_INVENTORY_READ')\n );\n }\n}\n","export interface Lwm2mBootstrapParameters {\n bindingMode?: BindingMode;\n bootstrapId?: string;\n bootstrapKey?: string;\n bootstrapShortServerId?: number;\n defaultMaximumPeriod?: number;\n defaultMinimumPeriod?: number;\n securityMode?: SecurityMode;\n endpoint?: string;\n generateBootstrapServerConfig?: boolean;\n lwm2mShortServerId?: number;\n serverUri?: string;\n registrationLifeTime?: number;\n serverPublicKey?: string;\n securityInstanceOffset?: number;\n publicKeyOrId?: string;\n secretKey?: string;\n id?: string;\n}\n\nexport enum SecurityMode {\n NO_SEC = 'NO_SEC',\n PSK = 'PSK'\n}\n\nexport enum BindingMode {\n U = 'U',\n UQ = 'UQ'\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { gettext, AlertService, Permissions, Alert } from '@c8y/ngx-components';\nimport { FormlyFieldConfig, FormlyFormBuilder, FormlyFormOptions } from '@ngx-formly/core';\nimport { Lwm2mBootstrapParametersService } from './lwm2m-bootstrap-parameters.service';\nimport {\n BindingMode,\n Lwm2mBootstrapParameters,\n SecurityMode\n} from './lwm2m-bootstrap-parameters.model';\n\n@Component({\n selector: 'c8y-lwm2m-bootstrap-parameters',\n templateUrl: './lwm2m-bootstrap-parameters.component.html'\n})\nexport class Lwm2mBootstrapParametersComponent implements OnInit, OnDestroy {\n fields: FormlyFieldConfig[];\n form: FormGroup = new FormGroup({});\n model = {};\n options: FormlyFormOptions = {\n formState: {\n disabled: false,\n mainModel: this.model\n }\n };\n\n private readonly writePermissionMissingAlert: Alert = {\n text: gettext('You do not have write permissions. This form is read-only.'),\n type: 'info'\n };\n\n private readonly DISABLED_HINT_TEXT: string = gettext(\n 'Change the security mode to enable this field.'\n );\n private readonly pattern: RegExp = /^([a-fA-F0-9]{2})+$/;\n private deviceId: string;\n\n constructor(\n private alertService: AlertService,\n private permissions: Permissions,\n private builder: FormlyFormBuilder,\n private lwm2mBootstrapParametersSvc: Lwm2mBootstrapParametersService,\n private route: ActivatedRoute\n ) {\n this.deviceId = this.route?.snapshot?.parent?.params?.id;\n }\n\n async ngOnInit() {\n const parameters: Lwm2mBootstrapParameters = await this.getBootstrapParameters();\n const {\n bindingMode,\n bootstrapId,\n bootstrapKey,\n bootstrapShortServerId,\n defaultMaximumPeriod,\n defaultMinimumPeriod,\n securityMode,\n endpoint,\n generateBootstrapServerConfig,\n lwm2mShortServerId,\n serverUri,\n registrationLifeTime,\n serverPublicKey,\n securityInstanceOffset,\n publicKeyOrId,\n secretKey\n }: Lwm2mBootstrapParameters = parameters;\n\n const leftFields: FormlyFieldConfig[] = [\n {\n key: 'endpoint',\n id: 'bs-endpoint',\n type: 'string',\n defaultValue: endpoint,\n templateOptions: {\n label: gettext('Endpoint'),\n placeholder: 'urn:imei:012345678901234',\n readonly: true\n }\n },\n {\n key: 'securityMode',\n id: 'bs-securityMode',\n type: 'select',\n templateOptions: {\n label: gettext('Security mode'),\n initValue: securityMode || SecurityMode.NO_SEC,\n options: [\n { label: SecurityMode.NO_SEC, value: SecurityMode.NO_SEC },\n { label: SecurityMode.PSK, value: SecurityMode.PSK }\n ],\n required: true\n }\n },\n {\n key: 'bootstrapId',\n id: 'bs-bootstrapId',\n type: 'string',\n templateOptions: {\n label: gettext('Bootstrap PSK ID'),\n description: this.DISABLED_HINT_TEXT,\n required: true\n },\n hooks: {\n onInit: (field: FormlyFieldConfig) => {\n field.formControl.patchValue(bootstrapId);\n }\n },\n expressionProperties: {\n 'templateOptions.disabled': (model: any, formState: any, field: FormlyFieldConfig) =>\n this.disablePSKField(formState, field)\n }\n },\n {\n key: 'bootstrapKey',\n id: 'bs-bootstrapKey',\n type: 'string',\n templateOptions: {\n label: gettext('Bootstrap pre-shared key'),\n description: this.DISABLED_HINT_TEXT,\n placeholder: '0123456789abcdef',\n required: true,\n pattern: this.pattern\n },\n hooks: {\n onInit: (field: FormlyFieldConfig) => {\n field.formControl.patchValue(bootstrapKey);\n }\n },\n expressionProperties: {\n 'templateOptions.disabled': (model: any, formState: any, field: FormlyFieldConfig) =>\n this.disablePSKField(formState, field)\n }\n },\n {\n key: 'securityInstanceOffset',\n id: 'bs-securityInstanceOffset',\n type: 'number',\n defaultValue: securityInstanceOffset,\n templateOptions: {\n label: gettext('Security instance offset'),\n placeholder: '0',\n min: 0\n }\n },\n {\n key: 'bootstrapShortServerId',\n id: 'bs-bootstrapShortServerId',\n type: 'number',\n defaultValue: bootstrapShortServerId,\n templateOptions: {\n label: gettext('LWM2M bootstrap short server ID'),\n placeholder: '0',\n min: 0\n }\n },\n {\n key: 'registrationLifeTime',\n id: 'bs-registrationLifeTime',\n type: 'number',\n defaultValue: registrationLifeTime,\n templateOptions: {\n label: gettext('Registration lifetime'),\n description: gettext('in seconds'),\n placeholder: '600',\n min: 0\n }\n },\n {\n key: 'bindingMode',\n id: 'bs-bindingMode',\n type: 'select',\n templateOptions: {\n label: gettext('Binding mode'),\n initValue: bindingMode || BindingMode.U,\n options: [\n { label: gettext('UDP'), value: BindingMode.U },\n { label: gettext('UDP with queue mode'), value: BindingMode.UQ }\n ]\n }\n }\n ];\n\n const rightFields: FormlyFieldConfig[] = [\n {\n key: 'serverPublicKey',\n id: 'bs-serverPublicKey',\n type: 'string',\n defaultValue: serverPublicKey,\n templateOptions: {\n label: gettext('Server public key'),\n placeholder: 'AAAAB3NzaC1yc2E…'\n }\n },\n {\n key: 'serverUri',\n id: 'bs-serverUri',\n type: 'string',\n defaultValue: serverUri,\n templateOptions: {\n label: gettext('LWM2M server URI'),\n placeholder: 'coaps://<LWM2M-server-domain>:<coaps-port>'\n }\n },\n {\n key: 'publicKeyOrId',\n id: 'bs-publicKeyOrId',\n type: 'string',\n templateOptions: {\n label: gettext('LWM2M PSK ID'),\n description: this.DISABLED_HINT_TEXT,\n required: true\n },\n hooks: {\n onInit: (field: FormlyFieldConfig) => {\n field.formControl.patchValue(publicKeyOrId);\n }\n },\n expressionProperties: {\n 'templateOptions.disabled': (model: any, formState: any, field: FormlyFieldConfig) =>\n this.disablePSKField(formState, field)\n }\n },\n {\n key: 'secretKey',\n id: 'bs-secretKey',\n type: 'string',\n templateOptions: {\n label: gettext('LWM2M pre-shared key'),\n description: this.DISABLED_HINT_TEXT,\n placeholder: '0123456789abcdef',\n required: true,\n pattern: this.pattern\n },\n hooks: {\n onInit: (field: FormlyFieldConfig) => {\n field.formControl.patchValue(secretKey);\n }\n },\n expressionProperties: {\n 'templateOptions.disabled': (model: any, formState: any, field: FormlyFieldConfig) =>\n this.disablePSKField(formState, field)\n }\n },\n {\n key: 'lwm2mShortServerId',\n id: 'bs-lwm2mShortServerId',\n type: 'number',\n defaultValue: lwm2mShortServerId,\n templateOptions: {\n label: gettext('LWM2M short server ID'),\n placeholder: '0',\n min: 0\n }\n },\n {\n key: 'generateBootstrapServerConfig',\n id: 'bs-generateBootstrapServerConfig',\n type: 'select',\n templateOptions: {\n label: gettext('Generate bootstrap server config'),\n initValue: generateBootstrapServerConfig || false,\n options: [\n { label: gettext('Yes'), value: true },\n { label: gettext('No'), value: false }\n ]\n }\n },\n {\n key: 'defaultMinimumPeriod',\n id: 'bs-defaultMinimumPeriod',\n type: 'number',\n defaultValue: defaultMinimumPeriod,\n templateOptions: {\n label: gettext('Default minimum period'),\n description: gettext('in seconds'),\n placeholder: '10',\n min: 0\n }\n },\n {\n key: 'defaultMaximumPeriod',\n id: 'bs-defaultMaximumPeriod',\n type: 'number',\n defaultValue: defaultMaximumPeriod,\n templateOptions: {\n label: gettext('Default maximum period'),\n description: gettext('in seconds'),\n placeholder: '60',\n min: 0\n }\n }\n ];\n\n this.fields = [\n {\n fieldGroupClassName: 'card-block d-grid grid__col--6-6',\n fieldGroup: [\n {\n fieldGroupClassName: 'form-group p-24 p-t-8 p-b-8 m-b-0',\n fieldGroup: leftFields\n },\n {\n fieldGroupClassName: 'form-group p-24 p-t-8 p-b-8 m-b-0',\n fieldGroup: rightFields\n }\n ]\n }\n ];\n\n this.builder.buildForm(this.form, this.fields, this.model, this.options);\n\n const userHasWritePermission = this.permissions.hasRole('ROLE_INVENTORY_ADMIN');\n\n if (Object.keys(parameters).length === 0 || !userHasWritePermission) {\n this.form.disable();\n\n this.options.formState.disabled = true;\n }\n\n if (!userHasWritePermission) {\n this.alertService.info(this.writePermissionMissingAlert.text as string);\n }\n }\n\n ngOnDestroy() {\n // alertService checks if given alert exists.\n // save to remove it without additional checks\n this.alertService.remove(this.writePermissionMissingAlert);\n }\n\n disablePSKField(\n formState: { disabled: boolean; mainModel: Lwm2mBootstrapParameters },\n field: FormlyFieldConfig\n ) {\n if (formState.disabled) {\n delete field.templateOptions.description;\n return true;\n } else if (\n !formState.mainModel.securityMode ||\n formState.mainModel.securityMode === SecurityMode.NO_SEC\n ) {\n field.templateOptions.description = this.DISABLED_HINT_TEXT;\n field.formControl.patchValue(null);\n return true;\n }\n delete field.templateOptions.description;\n return false;\n }\n\n async save() {\n try {\n await this.lwm2mBootstrapParametersSvc.update({ ...this.model, ...{ id: this.deviceId } });\n this.alertService.success(gettext('Bootstrap parameters updated'));\n // disables save button\n this.form.markAsPristine();\n this.form.updateValueAndValidity();\n } catch (error) {\n this.alertService.addServerFailure({ ...error });\n }\n }\n\n async getBootstrapParameters(): Promise<Lwm2mBootstrapParameters> {\n try {\n return (await this.lwm2mBootstrapParametersSvc.detail(this.deviceId))\n .data as Lwm2mBootstrapParameters;\n } catch (error) {\n this.alertService.addServerFailure({ ...error });\n return {};\n }\n }\n}\n","<form (ngSubmit)=\"save()\">\n <div class=\"card content-fullpage fit-h\">\n <div class=\"card-header separator grid__col--fullspan\">\n <h1 class=\"card-title\">{{ 'LWM2M bootstrap parameters' | translate }}</h1>\n </div>\n <div class=\"inner-scroll\">\n <formly-form\n [form]=\"form\"\n [fields]=\"fields\"\n [model]=\"model\"\n [options]=\"options\"\n ></formly-form>\n </div>\n <div\n [hidden]=\"options.formState.disabled\"\n class=\"card-footer separator grid__col--fullspan sticky-bottom\"\n >\n <button\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary\"\n [disabled]=\"form.invalid || !form.dirty\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n</form>\n","import { NgModule } from '@angular/core';\nimport { CommonModule, CoreModule, gettext, hookRoute, ViewContext } from '@c8y/ngx-components';\nimport { Lwm2mBootstrapParametersGuard } from './lwm2m-bootstrap-parameters.guard';\nimport { Lwm2mBootstrapParametersComponent } from './lwm2m-bootstrap-parameters.component';\nimport { Lwm2mBootstrapParametersService } from './lwm2m-bootstrap-parameters.service';\nimport { SharedLwm2mModule } from '@c8y/ngx-components/protocol-lwm2m/shared';\n\n@NgModule({\n imports: [CommonModule, CoreModule, SharedLwm2mModule],\n declarations: [Lwm2mBootstrapParametersComponent],\n providers: [\n Lwm2mBootstrapParametersService,\n Lwm2mBootstrapParametersGuard,\n hookRoute({\n path: 'lwm2m-bootstrap-parameters',\n context: ViewContext.Device,\n component: Lwm2mBootstrapParametersComponent,\n label: gettext('LWM2M bootstrap parameters'),\n icon: 'c8y-device-protocols',\n canActivate: [Lwm2mBootstrapParametersGuard]\n })\n ]\n})\nexport class Lwm2mBootstrapParametersModule {}\n","import { Injectable } from '@angular/core';\nimport { FetchClient, IFetchResponse } from '@c8y/client';\nimport { Lwm2mClientService } from '@c8y/ngx-components/protocol-lwm2m/shared';\nimport { LWM2MPostOperationsParameters } from './lwm2m-post-operations.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LWM2MPostOperationsParametersService extends Lwm2mClientService<LWM2MPostOperationsParameters> {\n private readonly detailUrl: string = '/postRegistrationOptions';\n\n constructor(client: FetchClient) {\n super(client);\n }\n\n get(): Promise<IFetchResponse> {\n return super.fetch(this.detailUrl);\n }\n\n put(data: LWM2MPostOperationsParameters) {\n const headers = { 'content-type': 'application/json', accept: 'application/json' };\n return super.fetch(this.detailUrl, {\n method: 'PUT',\n body: JSON.stringify(data),\n headers: headers\n });\n }\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { gettext } from '@c8y/client/src/gettext';\nimport { LWM2MPostOperationsParameters } from './lwm2m-post-operations.model';\nimport { LWM2MPostOperationsParametersService } from './lwm2m-post-operations.service';\nimport { AlertService } from '@c8y/ngx-components';\n\n@Component({\n selector: 'lwm2m-post-operations',\n templateUrl: './lwm2m-post-operations.component.html'\n})\nexport class LWM2MPostOperationsComponent implements OnInit {\n @ViewChild('commandsForm') commandsForm: NgForm;\n\n exampleCommands = [\n {\n command: 'discover',\n resource: '<objectId>',\n description: gettext('Discover all resources of Object 3300, the generic sensor.')\n },\n {\n command: 'read',\n resource: '<objectId>/<objectInstanceId>/<resourceId>',\n description: gettext('Read maximum sensor value')\n },\n {\n command: 'write',\n resource: '<objectId>/<objectInstanceId>/<resourceId> <applicationType>',\n description: gettext('Write application type \"CO2\" to device')\n },\n {\n command: 'execute',\n resource: '<objectId>/<objectInstanceId>/<resourceId>',\n description: gettext('Reset min and max values')\n },\n {\n command: 'observe',\n resource: '<objectId>/<objectInstanceId>/<resourceId>',\n description: gettext('Observe sensor value. Causes device to send every new sensor value')\n },\n {\n command: 'writeattr',\n resource: '<objectId>/<objectInstanceId>/<resourceId> greater=<value>',\n description: gettext('Only send observations if sensor value is higher than 100')\n }\n ];\n\n operations: LWM2MPostOperationsParameters = {\n commands: '',\n type: '',\n id: ''\n };\n\n constructor(\n private lwm2mPostOperationsSvc: LWM2MPostOperationsParametersService,\n private alertService: AlertService\n ) {}\n\n async ngOnInit() {\n this.operations = (await this.getPostOperationsParameters()) as LWM2MPostOperationsParameters;\n }\n\n async save(operations: LWM2MPostOperationsParameters) {\n try {\n await this.lwm2mPostOperationsSvc.put(operations);\n this.alertService.success(gettext('Post operations saved'));\n this.commandsForm.form.markAsPristine();\n } catch (error) {\n this.alertService.addServerFailure(error);\n }\n }\n\n async getPostOperationsParameters() {\n try {\n const res = await this.lwm2mPostOperationsSvc.get();\n return (await res.json()) as LWM2MPostOperationsParameters;\n } catch (error) {\n this.alertService.addServerFailure(error);\n return {};\n }\n }\n}\n","<c8y-title>{{ 'LWM2M post-operations' | translate }}</c8y-title>\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [label]=\"'Device types' | translate\"\n [icon]=\"'c8y-device-protocols'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'LWM2M post-operations' | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"card content-fullpage card--grid grid__col--7-5--md grid__row--auto-min-content\">\n <div class=\"inner-scroll bg-white\">\n <div class=\"card-header large-padding separator sticky-top\">\n <div class=\"h4 m-r-16\" id=\"commands\">\n {{ 'Commands' | translate }}\n </div>\n </div>\n <div class=\"card-block large-padding\">\n <form\n #commandsForm=\"ngForm\"\n id=\"commandsForm\"\n class=\"d-flex d-col flex-grow fit-h\"\n (ngSubmit)=\"save(operations)\"\n >\n <div class=\"form-group\">\n <textarea\n [(ngModel)]=\"operations.commands\"\n class=\"form-control\"\n aria-labelledby=\"commands\"\n name=\"commands\"\n rows=\"20\"\n ></textarea>\n </div>\n </form>\n </div>\n </div>\n\n <div class=\"inner-scroll bg-level-1\" tabindex=\"0\">\n <div class=\"card-block large-padding\">\n <p class=\"m-b-16\">\n <i class=\"text-info m-r-4 text-14\" c8yIcon=\"info-circle\"></i>\n {{\n 'You can enter a set of LWM2M shell commands. Each command will be sent to every newly registered LWM2M device. Each command must be entered in a new line. Use the following syntax for specifying post-registration actions:'\n | translate\n }}\n </p>\n <pre class=\"bg-level-0 text-pre-normal m-b-0\">\n <ul class=\"list-unstyled m-b-0\">\n <li class=\"m-16\" *ngFor=\"let c of exampleCommands\">\n <p class=\"text-muted\"># {{c.description | translate}}</p>\n <span class=\"text-danger\">{{c.command}}</span>\n <span class=\"text-muted\">{{c.resource}}</span>\n </li>\n </ul>\n </pre>\n </div>\n </div>\n\n <div class=\"card-footer large-padding separator grid__col--fullspan\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n form=\"commandsForm\"\n [disabled]=\"commandsForm.valid && !commandsForm.dirty\"\n [attr.aria-label]=\"'Save' | translate\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { TenantUiService } from '@c8y/ngx-components';\n\n@Injectable()\nexport class LWM2MPostOperationsGuard implements CanActivate {\n constructor(private tenantService: TenantUiService) {}\n\n canActivate() {\n return this.tenantService.isMicroserviceSubscribedInCurrentTenant('lwm2m-agent');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { gettext, NavigatorNode, NavigatorNodeFactory } from '@c8y/ngx-components';\nimport { LWM2MPostOperationsGuard } from './lwm2m-post-operations.guard';\n\n@Injectable()\nexport class LWM2MPostOpertaionsNavigationFactory implements NavigatorNodeFactory {\n navs: NavigatorNode[] = [];\n\n constructor(private guard: LWM2MPostOperationsGuard) {}\n\n get() {\n if (this.guard.canActivate()) {\n this.navs.push(\n new NavigatorNode({\n label: gettext('LWM2M post-operations'),\n path: 'post-operations',\n icon: 'terminal',\n parent: {\n label: gettext('Device types'),\n icon: 'exchange'\n },\n priority: 0\n })\n );\n }\n return this.navs;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule, CommonModule, hookRoute, hookNavigator } from '@c8y/ngx-components';\nimport { LWM2MPostOperationsComponent } from './lwm2m-post-operations.component';\nimport { LWM2MPostOperationsGuard } from './lwm2m-post-operations.guard';\nimport { LWM2MPostOperationsParametersService } from './lwm2m-post-operations.service';\nimport { SharedLwm2mModule } from '@c8y/ngx-components/protocol-lwm2m/shared';\nimport { LWM2MPostOpertaionsNavigationFactory } from './lwm2m-post-operations.factory';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\n\n@NgModule({\n imports: [CoreModule, CommonModule, SharedLwm2mModule, PopoverModule],\n declarations: [LWM2MPostOperationsComponent],\n providers: [\n LWM2MPostOperationsParametersService,\n LWM2MPostOperationsGuard,\n hookRoute({\n path: 'post-operations',\n component: LWM2MPostOperationsComponent,\n icon: 'terminal',\n priority: 2000,\n canActivate: [LWM2MPostOperationsGuard]\n }),\n hookNavigator(LWM2MPostOpertaionsNavigationFactory)\n ]\n})\nexport class LWM2MPostOperationsModule {}\n","import { NgModule } from '@angular/core';\nimport { Lwm2mBootstrapParametersModule } from './bootstrap-parameters/lwm2m-bootstrap-parameters.module';\nimport { LWM2MPostOperationsModule } from './post-registration-operations/lwm2m-post-operations.module';\n\n@NgModule({\n imports: [Lwm2mBootstrapParametersModule, LWM2MPostOperationsModule]\n})\nexport class Lwm2mModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.Lwm2mBootstrapParametersService","i3.Lwm2mBootstrapParametersService","i5","gettext","i1.LWM2MPostOperationsParametersService","i2","i4","i1.LWM2MPostOperationsGuard"],"mappings":"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"}
|
|
@@ -1,33 +1,13 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, Component, NgModule } from '@angular/core';
|
|
3
|
-
import * as i1 from '@c8y/ngx-components';
|
|
3
|
+
import * as i1$1 from '@c8y/ngx-components';
|
|
4
4
|
import { gettext, CommonModule, CoreModule, hookRoute, ViewContext } from '@c8y/ngx-components';
|
|
5
|
+
import * as i1 from '@c8y/client';
|
|
6
|
+
import { Lwm2mClientService, SharedLwm2mModule } from '@c8y/ngx-components/protocol-lwm2m/shared';
|
|
5
7
|
import * as i5 from '@angular/forms';
|
|
6
8
|
import { FormGroup } from '@angular/forms';
|
|
7
9
|
import * as i4 from '@angular/router';
|
|
8
10
|
import * as i2 from '@ngx-formly/core';
|
|
9
|
-
import * as i1$1 from '@c8y/client';
|
|
10
|
-
import { Lwm2mClientService, SharedLwm2mModule } from '@c8y/ngx-components/protocol-lwm2m/shared';
|
|
11
|
-
|
|
12
|
-
class Lwm2mBootstrapParametersGuard {
|
|
13
|
-
constructor(tenantService, permissions) {
|
|
14
|
-
this.tenantService = tenantService;
|
|
15
|
-
this.permissions = permissions;
|
|
16
|
-
}
|
|
17
|
-
canActivate(route) {
|
|
18
|
-
const contextData = route.data.contextData || route.parent.data.contextData;
|
|
19
|
-
if (contextData?.type !== 'c8y_lwm2m') {
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
return (this.tenantService.isMicroserviceSubscribedInCurrentTenant('lwm2m-agent') &&
|
|
23
|
-
this.permissions.hasRole('ROLE_INVENTORY_READ'));
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
Lwm2mBootstrapParametersGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersGuard, deps: [{ token: i1.TenantUiService }, { token: i1.Permissions }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
27
|
-
Lwm2mBootstrapParametersGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersGuard });
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersGuard, decorators: [{
|
|
29
|
-
type: Injectable
|
|
30
|
-
}], ctorParameters: function () { return [{ type: i1.TenantUiService }, { type: i1.Permissions }]; } });
|
|
31
11
|
|
|
32
12
|
class Lwm2mBootstrapParametersService extends Lwm2mClientService {
|
|
33
13
|
constructor(client) {
|
|
@@ -47,14 +27,34 @@ class Lwm2mBootstrapParametersService extends Lwm2mClientService {
|
|
|
47
27
|
return `${this.listUrl}/${super.getEntityId(entity)}/bootstrapParams`;
|
|
48
28
|
}
|
|
49
29
|
}
|
|
50
|
-
Lwm2mBootstrapParametersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersService, deps: [{ token: i1
|
|
30
|
+
Lwm2mBootstrapParametersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersService, deps: [{ token: i1.FetchClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
51
31
|
Lwm2mBootstrapParametersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersService, providedIn: 'root' });
|
|
52
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersService, decorators: [{
|
|
53
33
|
type: Injectable,
|
|
54
34
|
args: [{
|
|
55
35
|
providedIn: 'root'
|
|
56
36
|
}]
|
|
57
|
-
}], ctorParameters: function () { return [{ type: i1
|
|
37
|
+
}], ctorParameters: function () { return [{ type: i1.FetchClient }]; } });
|
|
38
|
+
|
|
39
|
+
class Lwm2mBootstrapParametersGuard {
|
|
40
|
+
constructor(tenantService, permissions, lwm2mService) {
|
|
41
|
+
this.tenantService = tenantService;
|
|
42
|
+
this.permissions = permissions;
|
|
43
|
+
this.lwm2mService = lwm2mService;
|
|
44
|
+
}
|
|
45
|
+
canActivate(route) {
|
|
46
|
+
const contextData = route.data.contextData ||
|
|
47
|
+
route.parent.data.contextData;
|
|
48
|
+
return (this.lwm2mService.isLwm2mDevice(contextData) &&
|
|
49
|
+
this.tenantService.isMicroserviceSubscribedInCurrentTenant('lwm2m-agent') &&
|
|
50
|
+
this.permissions.hasRole('ROLE_INVENTORY_READ'));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
Lwm2mBootstrapParametersGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersGuard, deps: [{ token: i1$1.TenantUiService }, { token: i1$1.Permissions }, { token: Lwm2mBootstrapParametersService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
54
|
+
Lwm2mBootstrapParametersGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersGuard });
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersGuard, decorators: [{
|
|
56
|
+
type: Injectable
|
|
57
|
+
}], ctorParameters: function () { return [{ type: i1$1.TenantUiService }, { type: i1$1.Permissions }, { type: Lwm2mBootstrapParametersService }]; } });
|
|
58
58
|
|
|
59
59
|
var SecurityMode;
|
|
60
60
|
(function (SecurityMode) {
|
|
@@ -380,12 +380,12 @@ class Lwm2mBootstrapParametersComponent {
|
|
|
380
380
|
}
|
|
381
381
|
}
|
|
382
382
|
}
|
|
383
|
-
Lwm2mBootstrapParametersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersComponent, deps: [{ token: i1.AlertService }, { token: i1.Permissions }, { token: i2.FormlyFormBuilder }, { token: Lwm2mBootstrapParametersService }, { token: i4.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
384
|
-
Lwm2mBootstrapParametersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: Lwm2mBootstrapParametersComponent, selector: "c8y-lwm2m-bootstrap-parameters", ngImport: i0, template: "<form (ngSubmit)=\"save()\">\n <div class=\"card content-fullpage fit-h\">\n <div class=\"card-header separator grid__col--fullspan\">\n <h1 class=\"card-title\">{{ 'LWM2M bootstrap parameters' | translate }}</h1>\n </div>\n <div class=\"inner-scroll\">\n <formly-form\n [form]=\"form\"\n [fields]=\"fields\"\n [model]=\"model\"\n [options]=\"options\"\n ></formly-form>\n </div>\n <div\n [hidden]=\"options.formState.disabled\"\n class=\"card-footer separator grid__col--fullspan sticky-bottom\"\n >\n <button\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary\"\n [disabled]=\"form.invalid || !form.dirty\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.FormlyForm, selector: "formly-form", inputs: ["model", "fields", "options", "form"], outputs: ["modelChange"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] });
|
|
383
|
+
Lwm2mBootstrapParametersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersComponent, deps: [{ token: i1$1.AlertService }, { token: i1$1.Permissions }, { token: i2.FormlyFormBuilder }, { token: Lwm2mBootstrapParametersService }, { token: i4.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
384
|
+
Lwm2mBootstrapParametersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: Lwm2mBootstrapParametersComponent, selector: "c8y-lwm2m-bootstrap-parameters", ngImport: i0, template: "<form (ngSubmit)=\"save()\">\n <div class=\"card content-fullpage fit-h\">\n <div class=\"card-header separator grid__col--fullspan\">\n <h1 class=\"card-title\">{{ 'LWM2M bootstrap parameters' | translate }}</h1>\n </div>\n <div class=\"inner-scroll\">\n <formly-form\n [form]=\"form\"\n [fields]=\"fields\"\n [model]=\"model\"\n [options]=\"options\"\n ></formly-form>\n </div>\n <div\n [hidden]=\"options.formState.disabled\"\n class=\"card-footer separator grid__col--fullspan sticky-bottom\"\n >\n <button\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary\"\n [disabled]=\"form.invalid || !form.dirty\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.FormlyForm, selector: "formly-form", inputs: ["model", "fields", "options", "form"], outputs: ["modelChange"] }, { kind: "pipe", type: i1$1.C8yTranslatePipe, name: "translate" }] });
|
|
385
385
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: Lwm2mBootstrapParametersComponent, decorators: [{
|
|
386
386
|
type: Component,
|
|
387
387
|
args: [{ selector: 'c8y-lwm2m-bootstrap-parameters', template: "<form (ngSubmit)=\"save()\">\n <div class=\"card content-fullpage fit-h\">\n <div class=\"card-header separator grid__col--fullspan\">\n <h1 class=\"card-title\">{{ 'LWM2M bootstrap parameters' | translate }}</h1>\n </div>\n <div class=\"inner-scroll\">\n <formly-form\n [form]=\"form\"\n [fields]=\"fields\"\n [model]=\"model\"\n [options]=\"options\"\n ></formly-form>\n </div>\n <div\n [hidden]=\"options.formState.disabled\"\n class=\"card-footer separator grid__col--fullspan sticky-bottom\"\n >\n <button\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary\"\n [disabled]=\"form.invalid || !form.dirty\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n</form>\n" }]
|
|
388
|
-
}], ctorParameters: function () { return [{ type: i1.AlertService }, { type: i1.Permissions }, { type: i2.FormlyFormBuilder }, { type: Lwm2mBootstrapParametersService }, { type: i4.ActivatedRoute }]; } });
|
|
388
|
+
}], ctorParameters: function () { return [{ type: i1$1.AlertService }, { type: i1$1.Permissions }, { type: i2.FormlyFormBuilder }, { type: Lwm2mBootstrapParametersService }, { type: i4.ActivatedRoute }]; } });
|
|
389
389
|
|
|
390
390
|
class Lwm2mBootstrapParametersModule {
|
|
391
391
|
}
|