@c8y/ngx-components 1018.503.52 → 1018.503.56
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/context-dashboard/device-info-dashboard/device-info-dashboard.component.d.ts +1 -1
- package/core/common/ApplicationOptions.d.ts +4 -1
- package/esm2020/context-dashboard/device-info-dashboard/device-info-dashboard.component.mjs +12 -12
- package/esm2020/core/common/ApplicationOptions.mjs +1 -1
- package/esm2020/core/dashboard/wiget-time-context/widget-time-context.component.mjs +4 -3
- package/esm2020/protocol-lwm2m/components/configuration/lwm2m-configuration.component.mjs +2 -1
- package/esm2020/protocol-lwm2m/components/configuration/typed-forms/connectivity-settings.component.mjs +8 -12
- package/esm2020/protocol-lwm2m/components/configuration/typed-forms/single-server-settings.component.mjs +21 -9
- package/esm2020/protocol-lwm2m/model/index.mjs +3 -1
- package/esm2020/protocol-lwm2m/services/lwm2m-configuration.service.mjs +64 -5
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs +10 -10
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs +30 -21
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-model.mjs +2 -0
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-model.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-services.mjs +63 -4
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-services.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +3 -2
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs +10 -10
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs +27 -19
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-model.mjs +2 -0
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-model.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-services.mjs +63 -4
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-services.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +3 -2
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/protocol-lwm2m/components/configuration/typed-forms/connectivity-settings.component.d.ts +1 -4
- package/protocol-lwm2m/components/configuration/typed-forms/single-server-settings.component.d.ts +16 -22
- package/protocol-lwm2m/model/index.d.ts +11 -1
- package/protocol-lwm2m/services/lwm2m-configuration.service.d.ts +8 -1
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Injectable } from '@angular/core';
|
|
3
3
|
import * as i1 from '@c8y/client';
|
|
4
4
|
import { Service } from '@c8y/client';
|
|
5
|
-
import { agentBaseUrl, c8y_lwm2m, Endpoint, ValidationType } from '@c8y/ngx-components/protocol-lwm2m/model';
|
|
5
|
+
import { agentBaseUrl, c8y_lwm2m, Endpoint, ValidationType, Mode } from '@c8y/ngx-components/protocol-lwm2m/model';
|
|
6
6
|
import { Subject, BehaviorSubject, of, from, throwError } from 'rxjs';
|
|
7
7
|
import { switchMap, map, catchError, takeUntil, tap } from 'rxjs/operators';
|
|
8
8
|
import * as i2 from '@c8y/ngx-components';
|
|
@@ -47,9 +47,13 @@ class Lwm2mConfigurationService extends Lwm2mClientService {
|
|
|
47
47
|
this._servers$ = new BehaviorSubject([]);
|
|
48
48
|
this._settings$ = new BehaviorSubject({});
|
|
49
49
|
this._certificates$ = new BehaviorSubject([]);
|
|
50
|
+
this._securityModeDictRaw$ = new BehaviorSubject([]);
|
|
51
|
+
this._securityModeByScope$ = new BehaviorSubject([]);
|
|
50
52
|
this.servers$ = this._servers$.asObservable();
|
|
51
53
|
this.settings$ = this._settings$.asObservable();
|
|
52
54
|
this.certificates$ = this._certificates$.asObservable();
|
|
55
|
+
this.securityModesByScope$ = this._securityModeByScope$.asObservable();
|
|
56
|
+
this.securityModesRaw$ = this._securityModeDictRaw$.asObservable();
|
|
53
57
|
this._listServers$
|
|
54
58
|
.pipe(switchMap(() => this.listServers$().pipe(map(resp => this._servers$.next(resp === null || resp === void 0 ? void 0 : resp.data)))), catchError(error => {
|
|
55
59
|
this.alertService.addServerFailure(error);
|
|
@@ -121,13 +125,68 @@ class Lwm2mConfigurationService extends Lwm2mClientService {
|
|
|
121
125
|
.pipe(catchError(error => {
|
|
122
126
|
this.alertService.addServerFailure(error);
|
|
123
127
|
return of([]);
|
|
124
|
-
}))
|
|
128
|
+
}), takeUntil(this._destroy$))
|
|
125
129
|
.subscribe();
|
|
126
130
|
}
|
|
127
131
|
fetchServerCertificates$() {
|
|
128
|
-
return this.fetch$('dictionary/server-certificates').pipe(switchMap(result =>
|
|
132
|
+
return this.fetch$('dictionary/server-certificates').pipe(switchMap(result => result.json()), tap(result => {
|
|
129
133
|
this._certificates$.next(result);
|
|
130
|
-
})
|
|
134
|
+
}));
|
|
135
|
+
}
|
|
136
|
+
getSecurityModes() {
|
|
137
|
+
this.fetchSecurityModes$()
|
|
138
|
+
.pipe(catchError(error => {
|
|
139
|
+
// Use this as fallback. There is the possibility that
|
|
140
|
+
// the UI version runs against an agent version without the needed endpoint:
|
|
141
|
+
// 'dictionary/security-modes'
|
|
142
|
+
const { data: { status } } = error;
|
|
143
|
+
status !== 404
|
|
144
|
+
? this.alertService.addServerFailure(error)
|
|
145
|
+
: this._securityModeDictRaw$.next([
|
|
146
|
+
{
|
|
147
|
+
label: Mode.DISABLED,
|
|
148
|
+
value: Mode.DISABLED,
|
|
149
|
+
useInBootstrapConnectivity: true,
|
|
150
|
+
useInServerConnectivity: true
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
label: Mode.NO_SEC,
|
|
154
|
+
value: Mode.NO_SEC,
|
|
155
|
+
useInBootstrapConnectivity: true,
|
|
156
|
+
useInServerConnectivity: true
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
label: Mode.PSK,
|
|
160
|
+
value: Mode.PSK,
|
|
161
|
+
useInBootstrapConnectivity: true,
|
|
162
|
+
useInServerConnectivity: true
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
label: 'X.509',
|
|
166
|
+
value: Mode.X509,
|
|
167
|
+
useInBootstrapConnectivity: true,
|
|
168
|
+
useInServerConnectivity: true
|
|
169
|
+
}
|
|
170
|
+
]);
|
|
171
|
+
return of([]);
|
|
172
|
+
}))
|
|
173
|
+
.subscribe();
|
|
174
|
+
}
|
|
175
|
+
fetchSecurityModes$() {
|
|
176
|
+
return this.fetch$('dictionary/security-modes').pipe(switchMap(result => result.json()), map((result) => result.map(({ name, useInBootstrapConnectivity, useInServerConnectivity }) => ({
|
|
177
|
+
label: name.replace('X509', 'X.509'),
|
|
178
|
+
value: name,
|
|
179
|
+
useInBootstrapConnectivity,
|
|
180
|
+
useInServerConnectivity
|
|
181
|
+
}))), tap((result) => {
|
|
182
|
+
this._securityModeDictRaw$.next(result);
|
|
183
|
+
}));
|
|
184
|
+
}
|
|
185
|
+
getSecurityModeByScope(scope) {
|
|
186
|
+
this._securityModeByScope$.next(this._securityModeDictRaw$
|
|
187
|
+
.getValue()
|
|
188
|
+
.filter(({ useInBootstrapConnectivity, useInServerConnectivity }) => (useInBootstrapConnectivity && scope === 'useInBootstrapConnectivity') ||
|
|
189
|
+
(useInServerConnectivity && scope === 'useInServerConnectivity')));
|
|
131
190
|
}
|
|
132
191
|
cleanUpBase64Data(fileReadAsDataURL) {
|
|
133
192
|
const base64RegExp = RegExp(/data:\S+;base64,/gi);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-protocol-lwm2m-services.mjs","sources":["../../protocol-lwm2m/services/lwm2m-client.service.ts","../../protocol-lwm2m/services/lwm2m-configuration.service.ts","../../protocol-lwm2m/services/lwm2m-post-operations.service.ts","../../protocol-lwm2m/services/lwm2m-bootstrap-parameters.service.ts","../../protocol-lwm2m/services/c8y-ngx-components-protocol-lwm2m-services.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {\n FetchClient,\n IFetchOptions,\n IFetchResponse,\n IIdentified,\n IResult,\n Service\n} from '@c8y/client';\nimport {\n Lwm2mManagedObject,\n c8y_lwm2m,\n agentBaseUrl\n} from '@c8y/ngx-components/protocol-lwm2m/model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Lwm2mClientService<T extends IIdentified> extends Service<IIdentified> {\n protected listUrl = 'device';\n protected baseUrl = agentBaseUrl;\n\n constructor(client: FetchClient) {\n super(client);\n }\n\n isLwm2mDevice(mo: Lwm2mManagedObject) {\n return (\n !!mo?.c8y_IsLwm2mDevice || mo?.c8y_DeviceTypes?.includes(c8y_lwm2m) || mo?.type === c8y_lwm2m\n );\n }\n\n detail(entityOrId: string | number | T, filter: object = {}): Promise<IResult<T | any>> {\n return super.detail(entityOrId, filter) as Promise<IResult<T | any>>;\n }\n\n update(entity: T): Promise<IResult<T | any>> {\n return super.update(entity) as Promise<IResult<T | any>>;\n }\n\n fetch(url: string, init?: IFetchOptions): Promise<IFetchResponse> {\n return super.fetch(url, init);\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { FetchClient, IFetchOptions, IIdentified, IResult, IResultList } from '@c8y/client';\nimport { BehaviorSubject, Observable, Subject, from, of, throwError } from 'rxjs';\nimport { catchError, map, switchMap, takeUntil, tap } from 'rxjs/operators';\nimport { Lwm2mClientService } from './lwm2m-client.service';\nimport { AlertService, gettext } from '@c8y/ngx-components';\nimport {\n Endpoint,\n ServerSettings,\n agentBaseUrl,\n Entity,\n UrlConfig,\n ValidationType,\n ValidationError\n} from '@c8y/ngx-components/protocol-lwm2m/model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Lwm2mConfigurationService<T = Entity>\n extends Lwm2mClientService<T>\n implements OnDestroy\n{\n deviceId: string;\n protected baseUrl = `${agentBaseUrl}/v1`;\n\n private readonly _destroy$: Subject<void> = new Subject();\n private readonly _listServers$: Subject<void> = new Subject();\n private readonly _servers$: BehaviorSubject<ServerSettings[]> = new BehaviorSubject([]);\n private readonly _settings$: BehaviorSubject<T> = new BehaviorSubject({} as T);\n private readonly _certificates$: BehaviorSubject<string[]> = new BehaviorSubject([] as string[]);\n\n servers$: Observable<ServerSettings[]> = this._servers$.asObservable();\n settings$: Observable<T> = this._settings$.asObservable();\n certificates$: Observable<string[]> = this._certificates$.asObservable();\n\n constructor(client: FetchClient, private alertService: AlertService) {\n super(client);\n\n this._listServers$\n .pipe(\n switchMap(() =>\n this.listServers$().pipe(\n map(resp => this._servers$.next(resp?.data as unknown as ServerSettings[]))\n )\n ),\n catchError(error => {\n this.alertService.addServerFailure(error);\n return of([]);\n }),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n getSettingsFor(urlCfg: UrlConfig) {\n this.detail$(urlCfg)\n .pipe(\n map(({ data }) => data),\n catchError(error => {\n this.alertService.addServerFailure(error);\n return of({} as T);\n }),\n takeUntil(this._destroy$)\n )\n .subscribe(data => this._settings$.next(data as T));\n }\n\n listServers() {\n this._listServers$.next();\n }\n\n updateConfig(entity: T, endpoint: Endpoint) {\n this.update$({ ...entity, endpoint })\n .pipe(\n catchError(error => {\n this.alertService.addServerFailure(error);\n return of(null);\n }),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n\n onBeforeUpdate(entity: Entity) {\n return this.deleteFieldsInRequest(entity);\n }\n\n onBeforeCreate(entity: Entity) {\n return this.deleteFieldsInRequest(entity);\n }\n\n getDetailUrl(entity: Entity): string {\n const { endpoint } = entity;\n const id = entity.id ?? '';\n const deviceConfigUrl = `device/${this.deviceId}/configuration`;\n\n if (!endpoint) {\n throw { data: { message: gettext('Unable to find endpoint') } };\n }\n\n return id.length > 0 && endpoint === Endpoint.servers\n ? `${deviceConfigUrl}/${endpoint}/${id}`\n : `${deviceConfigUrl}/${endpoint}`;\n }\n\n validate(certificate: string, type: ValidationType): Observable<string> {\n if (certificate?.length > 0) {\n const body = JSON.stringify({\n [type === ValidationType.PRIVATE_KEY ? 'encodedPrivateKey' : 'encodedCertificate']:\n certificate\n });\n\n return this.fetch$(`device/configuration/${type}/validate`, {\n method: 'POST',\n headers: { 'content-type': 'application/json', accept: 'application/json' },\n body\n }).pipe(\n switchMap(result =>\n from(result.json() as Promise<object>).pipe(\n map(data => data['fingerprint'] || data['commonName'])\n )\n ),\n catchError((e: IResult<ValidationError>) => {\n const { message, error } = e?.data;\n this.alertService.addServerFailure({\n data: { message, exceptionMessage: error }\n });\n return throwError(e);\n })\n );\n }\n }\n\n getServerCertificates() {\n this.fetchServerCertificates$()\n .pipe(\n catchError(error => {\n this.alertService.addServerFailure(error);\n return of([]);\n })\n )\n .subscribe();\n }\n\n fetchServerCertificates$() {\n return this.fetch$('dictionary/server-certificates').pipe(\n switchMap(result => from(result.json())),\n tap(result => {\n this._certificates$.next(result);\n }),\n takeUntil(this._destroy$)\n ) as Observable<string[]>;\n }\n\n cleanUpBase64Data(fileReadAsDataURL: string) {\n const base64RegExp = RegExp(/data:\\S+;base64,/gi);\n return fileReadAsDataURL?.length > 0 && base64RegExp.test(fileReadAsDataURL)\n ? fileReadAsDataURL.replace(base64RegExp, '')\n : undefined;\n }\n\n listServers$() {\n this.listUrl = this.getDetailUrl({ endpoint: Endpoint.servers });\n return from(super.list() as Promise<IResultList<ServerSettings>>);\n }\n\n createServer$(server: ServerSettings) {\n return from(\n super.create({ ...server, endpoint: Endpoint.servers }) as Promise<IResult<ServerSettings>>\n );\n }\n\n deleteServer$(server: ServerSettings) {\n return from(super.delete({ ...server, endpoint: Endpoint.servers }));\n }\n\n update$(entity: Entity) {\n return from(super.update(entity as T) as Promise<IResult<T>>);\n }\n\n detail$(urlCfg: UrlConfig) {\n return from(super.detail(urlCfg as T) as Promise<IResult<T>>);\n }\n\n fetch$(url: string, init?: IFetchOptions) {\n return from(super.fetch(url, init));\n }\n\n private deleteFieldsInRequest(entity: Entity) {\n delete entity?.id;\n delete entity?.endpoint;\n delete (entity as IIdentified)?.deviceInfo;\n return entity as T;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FetchClient, IFetchResponse } from '@c8y/client';\nimport { Lwm2mClientService } from './lwm2m-client.service';\nimport { LWM2MPostOperationsParameters } from '@c8y/ngx-components/protocol-lwm2m/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 { Injectable } from '@angular/core';\nimport { FetchClient, IResult } from '@c8y/client';\nimport { Lwm2mBootstrapParameters } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mClientService } from './lwm2m-client.service';\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAkBM,MAAO,kBAA0C,SAAQ,OAAoB,CAAA;AAIjF,IAAA,WAAA,CAAY,MAAmB,EAAA;QAC7B,KAAK,CAAC,MAAM,CAAC,CAAC;AAJN,QAAA,IAAO,CAAA,OAAA,GAAG,QAAQ,CAAC;AACnB,QAAA,IAAO,CAAA,OAAA,GAAG,YAAY,CAAC;KAIhC;AAED,IAAA,aAAa,CAAC,EAAsB,EAAA;;AAClC,QAAA,QACE,CAAC,EAAC,EAAE,aAAF,EAAE,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAF,EAAE,CAAE,iBAAiB,CAAA,KAAI,MAAA,EAAE,KAAA,IAAA,IAAF,EAAE,KAAF,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAE,CAAE,eAAe,0CAAE,QAAQ,CAAC,SAAS,CAAC,CAAA,IAAI,CAAA,EAAE,KAAF,IAAA,IAAA,EAAE,uBAAF,EAAE,CAAE,IAAI,MAAK,SAAS,EAC7F;KACH;AAED,IAAA,MAAM,CAAC,UAA+B,EAAE,MAAA,GAAiB,EAAE,EAAA;QACzD,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAA8B,CAAC;KACtE;AAED,IAAA,MAAM,CAAC,MAAS,EAAA;AACd,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAA8B,CAAC;KAC1D;IAED,KAAK,CAAC,GAAW,EAAE,IAAoB,EAAA;QACrC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KAC/B;;+GAxBU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;2FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;ACEK,MAAO,yBACX,SAAQ,kBAAqB,CAAA;IAgB7B,WAAY,CAAA,MAAmB,EAAU,YAA0B,EAAA;QACjE,KAAK,CAAC,MAAM,CAAC,CAAC;AADyB,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAZzD,QAAA,IAAA,CAAA,OAAO,GAAG,CAAG,EAAA,YAAY,KAAK,CAAC;AAExB,QAAA,IAAA,CAAA,SAAS,GAAkB,IAAI,OAAO,EAAE,CAAC;AACzC,QAAA,IAAA,CAAA,aAAa,GAAkB,IAAI,OAAO,EAAE,CAAC;QAC7C,IAAA,CAAA,SAAS,GAAsC,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACvE,IAAA,CAAA,UAAU,GAAuB,IAAI,eAAe,CAAC,EAAO,CAAC,CAAC;QAC9D,IAAA,CAAA,cAAc,GAA8B,IAAI,eAAe,CAAC,EAAc,CAAC,CAAC;QAEjG,IAAA,CAAA,QAAQ,GAAiC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QACvE,IAAA,CAAA,SAAS,GAAkB,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;QAC1D,IAAA,CAAA,aAAa,GAAyB,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;AAKvE,QAAA,IAAI,CAAC,aAAa;AACf,aAAA,IAAI,CACH,SAAS,CAAC,MACR,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CACtB,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,IAAmC,CAAC,CAAC,CAC5E,CACF,EACD,UAAU,CAAC,KAAK,IAAG;AACjB,YAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC1C,YAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;SACf,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC3B;AAED,IAAA,cAAc,CAAC,MAAiB,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACjB,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,EACvB,UAAU,CAAC,KAAK,IAAG;AACjB,YAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC1C,YAAA,OAAO,EAAE,CAAC,EAAO,CAAC,CAAC;SACpB,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;AACA,aAAA,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAS,CAAC,CAAC,CAAC;KACvD;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;KAC3B;IAED,YAAY,CAAC,MAAS,EAAE,QAAkB,EAAA;AACxC,QAAA,IAAI,CAAC,OAAO,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,MAAM,CAAA,EAAA,EAAE,QAAQ,EAAG,CAAA,CAAA;AAClC,aAAA,IAAI,CACH,UAAU,CAAC,KAAK,IAAG;AACjB,YAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC1C,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;SACjB,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,cAAc,CAAC,MAAc,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;KAC3C;AAED,IAAA,cAAc,CAAC,MAAc,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;KAC3C;AAED,IAAA,YAAY,CAAC,MAAc,EAAA;;AACzB,QAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAC5B,MAAM,EAAE,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AAC3B,QAAA,MAAM,eAAe,GAAG,CAAA,OAAA,EAAU,IAAI,CAAC,QAAQ,gBAAgB,CAAC;QAEhE,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAAE,EAAE,CAAC;AACjE,SAAA;QAED,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,KAAK,QAAQ,CAAC,OAAO;AACnD,cAAE,CAAG,EAAA,eAAe,IAAI,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAE,CAAA;AACxC,cAAE,CAAG,EAAA,eAAe,CAAI,CAAA,EAAA,QAAQ,EAAE,CAAC;KACtC;IAED,QAAQ,CAAC,WAAmB,EAAE,IAAoB,EAAA;QAChD,IAAI,CAAA,WAAW,KAAA,IAAA,IAAX,WAAW,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAX,WAAW,CAAE,MAAM,IAAG,CAAC,EAAE;AAC3B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;AAC1B,gBAAA,CAAC,IAAI,KAAK,cAAc,CAAC,WAAW,GAAG,mBAAmB,GAAG,oBAAoB,GAC/E,WAAW;AACd,aAAA,CAAC,CAAC;AAEH,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAwB,qBAAA,EAAA,IAAI,WAAW,EAAE;AAC1D,gBAAA,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,EAAE;gBAC3E,IAAI;AACL,aAAA,CAAC,CAAC,IAAI,CACL,SAAS,CAAC,MAAM,IACd,IAAI,CAAC,MAAM,CAAC,IAAI,EAAqB,CAAC,CAAC,IAAI,CACzC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CACvD,CACF,EACD,UAAU,CAAC,CAAC,CAA2B,KAAI;AACzC,gBAAA,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAA,IAAA,IAAD,CAAC,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAD,CAAC,CAAE,IAAI,CAAC;AACnC,gBAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;AACjC,oBAAA,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE;AAC3C,iBAAA,CAAC,CAAC;AACH,gBAAA,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;aACtB,CAAC,CACH,CAAC;AACH,SAAA;KACF;IAED,qBAAqB,GAAA;QACnB,IAAI,CAAC,wBAAwB,EAAE;AAC5B,aAAA,IAAI,CACH,UAAU,CAAC,KAAK,IAAG;AACjB,YAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC1C,YAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAChB,SAAC,CAAC,CACH;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,wBAAwB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,IAAI,CACvD,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EACxC,GAAG,CAAC,MAAM,IAAG;AACX,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CACF,CAAC;KAC3B;AAED,IAAA,iBAAiB,CAAC,iBAAyB,EAAA;AACzC,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAClD,QAAA,OAAO,CAAA,iBAAiB,KAAA,IAAA,IAAjB,iBAAiB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAjB,iBAAiB,CAAE,MAAM,IAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;cACxE,iBAAiB,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;cAC3C,SAAS,CAAC;KACf;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;AACjE,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAA0C,CAAC,CAAC;KACnE;AAED,IAAA,aAAa,CAAC,MAAsB,EAAA;AAClC,QAAA,OAAO,IAAI,CACT,KAAK,CAAC,MAAM,CAAM,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MAAM,CAAE,EAAA,EAAA,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAA,CAAA,CAAuC,CAC5F,CAAC;KACH;AAED,IAAA,aAAa,CAAC,MAAsB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAM,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MAAM,CAAE,EAAA,EAAA,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAA,CAAA,CAAG,CAAC,CAAC;KACtE;AAED,IAAA,OAAO,CAAC,MAAc,EAAA;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAW,CAAwB,CAAC,CAAC;KAC/D;AAED,IAAA,OAAO,CAAC,MAAiB,EAAA;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAW,CAAwB,CAAC,CAAC;KAC/D;IAED,MAAM,CAAC,GAAW,EAAE,IAAoB,EAAA;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;KACrC;AAEO,IAAA,qBAAqB,CAAC,MAAc,EAAA;AACnC,QAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,IAAA,GAAA,OAAN,MAAM,CAAE,EAAE,CAAC;AACX,QAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,IAAA,GAAA,OAAN,MAAM,CAAE,QAAQ,CAAC;AAChB,QAAA,MAAsB,aAAtB,MAAsB,KAAA,KAAA,CAAA,GAAA,IAAA,GAAA,OAAtB,MAAsB,CAAE,UAAU,CAAC;AAC3C,QAAA,OAAO,MAAW,CAAC;KACpB;;sHApLU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cAFxB,MAAM,EAAA,CAAA,CAAA;2FAEP,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;ACVK,MAAO,oCAAqC,SAAQ,kBAAiD,CAAA;AAGzG,IAAA,WAAA,CAAY,MAAmB,EAAA;QAC7B,KAAK,CAAC,MAAM,CAAC,CAAC;AAHC,QAAA,IAAS,CAAA,SAAA,GAAW,0BAA0B,CAAC;KAI/D;IAED,GAAG,GAAA;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACpC;AAED,IAAA,GAAG,CAAC,IAAmC,EAAA;QACrC,MAAM,OAAO,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;AACnF,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE;AACjC,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAC1B,YAAA,OAAO,EAAE,OAAO;AACjB,SAAA,CAAC,CAAC;KACJ;;iIAlBU,oCAAoC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApC,oCAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oCAAoC,cAFnC,MAAM,EAAA,CAAA,CAAA;2FAEP,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAHhD,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;ACCK,MAAO,+BAAgC,SAAQ,kBAA4C,CAAA;AAC/F,IAAA,WAAA,CAAY,MAAmB,EAAA;QAC7B,KAAK,CAAC,MAAM,CAAC,CAAC;KACf;AAED,IAAA,MAAM,CAAC,EAAU,EAAA;AACf,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KACzB;AAED,IAAA,MAAM,CAAC,MAAgC,EAAA;AACrC,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAC7B;AAED,IAAA,cAAc,CAAC,MAAgC,EAAA;QAC7C,OAAO,MAAM,CAAC,EAAE,CAAC;AACjB,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,YAAY,CAAC,MAAgC,EAAA;AAC3C,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,OAAO,CAAI,CAAA,EAAA,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA,gBAAA,CAAkB,CAAC;KACvE;;4HApBU,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA/B,+BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,cAF9B,MAAM,EAAA,CAAA,CAAA;2FAEP,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAH3C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;ACPD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-protocol-lwm2m-services.mjs","sources":["../../protocol-lwm2m/services/lwm2m-client.service.ts","../../protocol-lwm2m/services/lwm2m-configuration.service.ts","../../protocol-lwm2m/services/lwm2m-post-operations.service.ts","../../protocol-lwm2m/services/lwm2m-bootstrap-parameters.service.ts","../../protocol-lwm2m/services/c8y-ngx-components-protocol-lwm2m-services.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {\n FetchClient,\n IFetchOptions,\n IFetchResponse,\n IIdentified,\n IResult,\n Service\n} from '@c8y/client';\nimport {\n Lwm2mManagedObject,\n c8y_lwm2m,\n agentBaseUrl\n} from '@c8y/ngx-components/protocol-lwm2m/model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Lwm2mClientService<T extends IIdentified> extends Service<IIdentified> {\n protected listUrl = 'device';\n protected baseUrl = agentBaseUrl;\n\n constructor(client: FetchClient) {\n super(client);\n }\n\n isLwm2mDevice(mo: Lwm2mManagedObject) {\n return (\n !!mo?.c8y_IsLwm2mDevice || mo?.c8y_DeviceTypes?.includes(c8y_lwm2m) || mo?.type === c8y_lwm2m\n );\n }\n\n detail(entityOrId: string | number | T, filter: object = {}): Promise<IResult<T | any>> {\n return super.detail(entityOrId, filter) as Promise<IResult<T | any>>;\n }\n\n update(entity: T): Promise<IResult<T | any>> {\n return super.update(entity) as Promise<IResult<T | any>>;\n }\n\n fetch(url: string, init?: IFetchOptions): Promise<IFetchResponse> {\n return super.fetch(url, init);\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { FetchClient, IFetchOptions, IIdentified, IResult, IResultList } from '@c8y/client';\nimport { BehaviorSubject, Observable, Subject, from, of, throwError } from 'rxjs';\nimport { catchError, map, switchMap, takeUntil, tap } from 'rxjs/operators';\nimport { Lwm2mClientService } from './lwm2m-client.service';\nimport { AlertService, gettext } from '@c8y/ngx-components';\nimport {\n Endpoint,\n ServerSettings,\n agentBaseUrl,\n Entity,\n UrlConfig,\n ValidationType,\n ValidationError,\n SecurityModeDictionaryObj,\n Mode\n} from '@c8y/ngx-components/protocol-lwm2m/model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Lwm2mConfigurationService<T = Entity>\n extends Lwm2mClientService<T>\n implements OnDestroy\n{\n deviceId: string;\n protected baseUrl = `${agentBaseUrl}/v1`;\n\n private readonly _destroy$: Subject<void> = new Subject();\n private readonly _listServers$: Subject<void> = new Subject();\n private readonly _servers$: BehaviorSubject<ServerSettings[]> = new BehaviorSubject([]);\n private readonly _settings$: BehaviorSubject<T> = new BehaviorSubject({} as T);\n private readonly _certificates$: BehaviorSubject<string[]> = new BehaviorSubject([] as string[]);\n private readonly _securityModeDictRaw$: BehaviorSubject<SecurityModeDictionaryObj[]> =\n new BehaviorSubject([] as SecurityModeDictionaryObj[]);\n private readonly _securityModeByScope$: BehaviorSubject<SecurityModeDictionaryObj[]> =\n new BehaviorSubject([] as SecurityModeDictionaryObj[]);\n\n servers$: Observable<ServerSettings[]> = this._servers$.asObservable();\n settings$: Observable<T> = this._settings$.asObservable();\n certificates$: Observable<string[]> = this._certificates$.asObservable();\n securityModesByScope$: Observable<SecurityModeDictionaryObj[]> =\n this._securityModeByScope$.asObservable();\n securityModesRaw$: Observable<SecurityModeDictionaryObj[]> =\n this._securityModeDictRaw$.asObservable();\n\n constructor(\n client: FetchClient,\n private alertService: AlertService\n ) {\n super(client);\n\n this._listServers$\n .pipe(\n switchMap(() =>\n this.listServers$().pipe(\n map(resp => this._servers$.next(resp?.data as unknown as ServerSettings[]))\n )\n ),\n catchError(error => {\n this.alertService.addServerFailure(error);\n return of([]);\n }),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n getSettingsFor(urlCfg: UrlConfig) {\n this.detail$(urlCfg)\n .pipe(\n map(({ data }) => data),\n catchError(error => {\n this.alertService.addServerFailure(error);\n return of({} as T);\n }),\n takeUntil(this._destroy$)\n )\n .subscribe(data => this._settings$.next(data as T));\n }\n\n listServers() {\n this._listServers$.next();\n }\n\n updateConfig(entity: T, endpoint: Endpoint) {\n this.update$({ ...entity, endpoint })\n .pipe(\n catchError(error => {\n this.alertService.addServerFailure(error);\n return of(null);\n }),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n\n onBeforeUpdate(entity: Entity) {\n return this.deleteFieldsInRequest(entity);\n }\n\n onBeforeCreate(entity: Entity) {\n return this.deleteFieldsInRequest(entity);\n }\n\n getDetailUrl(entity: Entity): string {\n const { endpoint } = entity;\n const id = entity.id ?? '';\n const deviceConfigUrl = `device/${this.deviceId}/configuration`;\n\n if (!endpoint) {\n throw { data: { message: gettext('Unable to find endpoint') } };\n }\n\n return id.length > 0 && endpoint === Endpoint.servers\n ? `${deviceConfigUrl}/${endpoint}/${id}`\n : `${deviceConfigUrl}/${endpoint}`;\n }\n\n validate(certificate: string, type: ValidationType): Observable<string> {\n if (certificate?.length > 0) {\n const body = JSON.stringify({\n [type === ValidationType.PRIVATE_KEY ? 'encodedPrivateKey' : 'encodedCertificate']:\n certificate\n });\n\n return this.fetch$(`device/configuration/${type}/validate`, {\n method: 'POST',\n headers: { 'content-type': 'application/json', accept: 'application/json' },\n body\n }).pipe(\n switchMap(result =>\n from(result.json() as Promise<object>).pipe(\n map(data => data['fingerprint'] || data['commonName'])\n )\n ),\n catchError((e: IResult<ValidationError>) => {\n const { message, error } = e?.data;\n this.alertService.addServerFailure({\n data: { message, exceptionMessage: error }\n });\n return throwError(e);\n })\n );\n }\n }\n\n getServerCertificates() {\n this.fetchServerCertificates$()\n .pipe(\n catchError(error => {\n this.alertService.addServerFailure(error);\n return of([]);\n }),\n takeUntil(this._destroy$)\n )\n .subscribe();\n }\n\n fetchServerCertificates$() {\n return this.fetch$('dictionary/server-certificates').pipe(\n switchMap(result => result.json()),\n tap(result => {\n this._certificates$.next(result);\n })\n ) as Observable<string[]>;\n }\n\n getSecurityModes() {\n this.fetchSecurityModes$()\n .pipe(\n catchError(error => {\n // Use this as fallback. There is the possibility that\n // the UI version runs against an agent version without the needed endpoint:\n // 'dictionary/security-modes'\n const {\n data: { status }\n } = error;\n status !== 404\n ? this.alertService.addServerFailure(error)\n : this._securityModeDictRaw$.next([\n {\n label: Mode.DISABLED,\n value: Mode.DISABLED,\n useInBootstrapConnectivity: true,\n useInServerConnectivity: true\n },\n {\n label: Mode.NO_SEC,\n value: Mode.NO_SEC,\n useInBootstrapConnectivity: true,\n useInServerConnectivity: true\n },\n {\n label: Mode.PSK,\n value: Mode.PSK,\n useInBootstrapConnectivity: true,\n useInServerConnectivity: true\n },\n {\n label: 'X.509',\n value: Mode.X509,\n useInBootstrapConnectivity: true,\n useInServerConnectivity: true\n }\n ]);\n return of([]);\n })\n )\n .subscribe();\n }\n\n fetchSecurityModes$() {\n return this.fetch$('dictionary/security-modes').pipe(\n switchMap(result => result.json()),\n map((result: SecurityModeDictionaryObj[]) =>\n result.map(({ name, useInBootstrapConnectivity, useInServerConnectivity }) => ({\n label: name.replace('X509', 'X.509'),\n value: name,\n useInBootstrapConnectivity,\n useInServerConnectivity\n }))\n ),\n tap((result: SecurityModeDictionaryObj[]) => {\n this._securityModeDictRaw$.next(result);\n })\n );\n }\n\n getSecurityModeByScope(scope: 'useInBootstrapConnectivity' | 'useInServerConnectivity') {\n this._securityModeByScope$.next(\n this._securityModeDictRaw$\n .getValue()\n .filter(\n ({ useInBootstrapConnectivity, useInServerConnectivity }) =>\n (useInBootstrapConnectivity && scope === 'useInBootstrapConnectivity') ||\n (useInServerConnectivity && scope === 'useInServerConnectivity')\n )\n );\n }\n\n cleanUpBase64Data(fileReadAsDataURL: string) {\n const base64RegExp = RegExp(/data:\\S+;base64,/gi);\n return fileReadAsDataURL?.length > 0 && base64RegExp.test(fileReadAsDataURL)\n ? fileReadAsDataURL.replace(base64RegExp, '')\n : undefined;\n }\n\n listServers$() {\n this.listUrl = this.getDetailUrl({ endpoint: Endpoint.servers });\n return from(super.list() as Promise<IResultList<ServerSettings>>);\n }\n\n createServer$(server: ServerSettings) {\n return from(\n super.create({ ...server, endpoint: Endpoint.servers }) as Promise<IResult<ServerSettings>>\n );\n }\n\n deleteServer$(server: ServerSettings) {\n return from(super.delete({ ...server, endpoint: Endpoint.servers }));\n }\n\n update$(entity: Entity) {\n return from(super.update(entity as T) as Promise<IResult<T>>);\n }\n\n detail$(urlCfg: UrlConfig) {\n return from(super.detail(urlCfg as T) as Promise<IResult<T>>);\n }\n\n fetch$(url: string, init?: IFetchOptions) {\n return from(super.fetch(url, init));\n }\n\n private deleteFieldsInRequest(entity: Entity) {\n delete entity?.id;\n delete entity?.endpoint;\n delete (entity as IIdentified)?.deviceInfo;\n return entity as T;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FetchClient, IFetchResponse } from '@c8y/client';\nimport { Lwm2mClientService } from './lwm2m-client.service';\nimport { LWM2MPostOperationsParameters } from '@c8y/ngx-components/protocol-lwm2m/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 { Injectable } from '@angular/core';\nimport { FetchClient, IResult } from '@c8y/client';\nimport { Lwm2mBootstrapParameters } from '@c8y/ngx-components/protocol-lwm2m/model';\nimport { Lwm2mClientService } from './lwm2m-client.service';\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAkBM,MAAO,kBAA0C,SAAQ,OAAoB,CAAA;AAIjF,IAAA,WAAA,CAAY,MAAmB,EAAA;QAC7B,KAAK,CAAC,MAAM,CAAC,CAAC;AAJN,QAAA,IAAO,CAAA,OAAA,GAAG,QAAQ,CAAC;AACnB,QAAA,IAAO,CAAA,OAAA,GAAG,YAAY,CAAC;KAIhC;AAED,IAAA,aAAa,CAAC,EAAsB,EAAA;;AAClC,QAAA,QACE,CAAC,EAAC,EAAE,aAAF,EAAE,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAF,EAAE,CAAE,iBAAiB,CAAA,KAAI,MAAA,EAAE,KAAA,IAAA,IAAF,EAAE,KAAF,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAE,CAAE,eAAe,0CAAE,QAAQ,CAAC,SAAS,CAAC,CAAA,IAAI,CAAA,EAAE,KAAF,IAAA,IAAA,EAAE,uBAAF,EAAE,CAAE,IAAI,MAAK,SAAS,EAC7F;KACH;AAED,IAAA,MAAM,CAAC,UAA+B,EAAE,MAAA,GAAiB,EAAE,EAAA;QACzD,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAA8B,CAAC;KACtE;AAED,IAAA,MAAM,CAAC,MAAS,EAAA;AACd,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAA8B,CAAC;KAC1D;IAED,KAAK,CAAC,GAAW,EAAE,IAAoB,EAAA;QACrC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KAC/B;;+GAxBU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;2FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;ACIK,MAAO,yBACX,SAAQ,kBAAqB,CAAA;IAwB7B,WACE,CAAA,MAAmB,EACX,YAA0B,EAAA;QAElC,KAAK,CAAC,MAAM,CAAC,CAAC;AAFN,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAtB1B,QAAA,IAAA,CAAA,OAAO,GAAG,CAAG,EAAA,YAAY,KAAK,CAAC;AAExB,QAAA,IAAA,CAAA,SAAS,GAAkB,IAAI,OAAO,EAAE,CAAC;AACzC,QAAA,IAAA,CAAA,aAAa,GAAkB,IAAI,OAAO,EAAE,CAAC;QAC7C,IAAA,CAAA,SAAS,GAAsC,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACvE,IAAA,CAAA,UAAU,GAAuB,IAAI,eAAe,CAAC,EAAO,CAAC,CAAC;QAC9D,IAAA,CAAA,cAAc,GAA8B,IAAI,eAAe,CAAC,EAAc,CAAC,CAAC;QAChF,IAAA,CAAA,qBAAqB,GACpC,IAAI,eAAe,CAAC,EAAiC,CAAC,CAAC;QACxC,IAAA,CAAA,qBAAqB,GACpC,IAAI,eAAe,CAAC,EAAiC,CAAC,CAAC;QAEzD,IAAA,CAAA,QAAQ,GAAiC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QACvE,IAAA,CAAA,SAAS,GAAkB,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;QAC1D,IAAA,CAAA,aAAa,GAAyB,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QACzE,IAAA,CAAA,qBAAqB,GACnB,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC;QAC5C,IAAA,CAAA,iBAAiB,GACf,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC;AAQ1C,QAAA,IAAI,CAAC,aAAa;AACf,aAAA,IAAI,CACH,SAAS,CAAC,MACR,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CACtB,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,IAAmC,CAAC,CAAC,CAC5E,CACF,EACD,UAAU,CAAC,KAAK,IAAG;AACjB,YAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC1C,YAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;SACf,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC3B;AAED,IAAA,cAAc,CAAC,MAAiB,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACjB,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,EACvB,UAAU,CAAC,KAAK,IAAG;AACjB,YAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC1C,YAAA,OAAO,EAAE,CAAC,EAAO,CAAC,CAAC;SACpB,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;AACA,aAAA,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAS,CAAC,CAAC,CAAC;KACvD;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;KAC3B;IAED,YAAY,CAAC,MAAS,EAAE,QAAkB,EAAA;AACxC,QAAA,IAAI,CAAC,OAAO,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,MAAM,CAAA,EAAA,EAAE,QAAQ,EAAG,CAAA,CAAA;AAClC,aAAA,IAAI,CACH,UAAU,CAAC,KAAK,IAAG;AACjB,YAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC1C,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;SACjB,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,cAAc,CAAC,MAAc,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;KAC3C;AAED,IAAA,cAAc,CAAC,MAAc,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;KAC3C;AAED,IAAA,YAAY,CAAC,MAAc,EAAA;;AACzB,QAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAC5B,MAAM,EAAE,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AAC3B,QAAA,MAAM,eAAe,GAAG,CAAA,OAAA,EAAU,IAAI,CAAC,QAAQ,gBAAgB,CAAC;QAEhE,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAAE,EAAE,CAAC;AACjE,SAAA;QAED,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,KAAK,QAAQ,CAAC,OAAO;AACnD,cAAE,CAAG,EAAA,eAAe,IAAI,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAE,CAAA;AACxC,cAAE,CAAG,EAAA,eAAe,CAAI,CAAA,EAAA,QAAQ,EAAE,CAAC;KACtC;IAED,QAAQ,CAAC,WAAmB,EAAE,IAAoB,EAAA;QAChD,IAAI,CAAA,WAAW,KAAA,IAAA,IAAX,WAAW,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAX,WAAW,CAAE,MAAM,IAAG,CAAC,EAAE;AAC3B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;AAC1B,gBAAA,CAAC,IAAI,KAAK,cAAc,CAAC,WAAW,GAAG,mBAAmB,GAAG,oBAAoB,GAC/E,WAAW;AACd,aAAA,CAAC,CAAC;AAEH,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAwB,qBAAA,EAAA,IAAI,WAAW,EAAE;AAC1D,gBAAA,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,EAAE;gBAC3E,IAAI;AACL,aAAA,CAAC,CAAC,IAAI,CACL,SAAS,CAAC,MAAM,IACd,IAAI,CAAC,MAAM,CAAC,IAAI,EAAqB,CAAC,CAAC,IAAI,CACzC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CACvD,CACF,EACD,UAAU,CAAC,CAAC,CAA2B,KAAI;AACzC,gBAAA,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAA,IAAA,IAAD,CAAC,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAD,CAAC,CAAE,IAAI,CAAC;AACnC,gBAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;AACjC,oBAAA,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE;AAC3C,iBAAA,CAAC,CAAC;AACH,gBAAA,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;aACtB,CAAC,CACH,CAAC;AACH,SAAA;KACF;IAED,qBAAqB,GAAA;QACnB,IAAI,CAAC,wBAAwB,EAAE;AAC5B,aAAA,IAAI,CACH,UAAU,CAAC,KAAK,IAAG;AACjB,YAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC1C,YAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;SACf,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,wBAAwB,GAAA;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,IAAI,CACvD,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,EAClC,GAAG,CAAC,MAAM,IAAG;AACX,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC,CAAC,CACqB,CAAC;KAC3B;IAED,gBAAgB,GAAA;QACd,IAAI,CAAC,mBAAmB,EAAE;AACvB,aAAA,IAAI,CACH,UAAU,CAAC,KAAK,IAAG;;;;YAIjB,MAAM,EACJ,IAAI,EAAE,EAAE,MAAM,EAAE,EACjB,GAAG,KAAK,CAAC;AACV,YAAA,MAAM,KAAK,GAAG;kBACV,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAC3C,kBAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;AAC9B,oBAAA;wBACE,KAAK,EAAE,IAAI,CAAC,QAAQ;wBACpB,KAAK,EAAE,IAAI,CAAC,QAAQ;AACpB,wBAAA,0BAA0B,EAAE,IAAI;AAChC,wBAAA,uBAAuB,EAAE,IAAI;AAC9B,qBAAA;AACD,oBAAA;wBACE,KAAK,EAAE,IAAI,CAAC,MAAM;wBAClB,KAAK,EAAE,IAAI,CAAC,MAAM;AAClB,wBAAA,0BAA0B,EAAE,IAAI;AAChC,wBAAA,uBAAuB,EAAE,IAAI;AAC9B,qBAAA;AACD,oBAAA;wBACE,KAAK,EAAE,IAAI,CAAC,GAAG;wBACf,KAAK,EAAE,IAAI,CAAC,GAAG;AACf,wBAAA,0BAA0B,EAAE,IAAI;AAChC,wBAAA,uBAAuB,EAAE,IAAI;AAC9B,qBAAA;AACD,oBAAA;AACE,wBAAA,KAAK,EAAE,OAAO;wBACd,KAAK,EAAE,IAAI,CAAC,IAAI;AAChB,wBAAA,0BAA0B,EAAE,IAAI;AAChC,wBAAA,uBAAuB,EAAE,IAAI;AAC9B,qBAAA;AACF,iBAAA,CAAC,CAAC;AACP,YAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAChB,SAAC,CAAC,CACH;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,mBAAmB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAClD,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,EAClC,GAAG,CAAC,CAAC,MAAmC,KACtC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM;YAC7E,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;AACpC,YAAA,KAAK,EAAE,IAAI;YACX,0BAA0B;YAC1B,uBAAuB;SACxB,CAAC,CAAC,CACJ,EACD,GAAG,CAAC,CAAC,MAAmC,KAAI;AAC1C,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACzC,CAAC,CACH,CAAC;KACH;AAED,IAAA,sBAAsB,CAAC,KAA+D,EAAA;AACpF,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAC7B,IAAI,CAAC,qBAAqB;AACvB,aAAA,QAAQ,EAAE;AACV,aAAA,MAAM,CACL,CAAC,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,KACtD,CAAC,0BAA0B,IAAI,KAAK,KAAK,4BAA4B;aACpE,uBAAuB,IAAI,KAAK,KAAK,yBAAyB,CAAC,CACnE,CACJ,CAAC;KACH;AAED,IAAA,iBAAiB,CAAC,iBAAyB,EAAA;AACzC,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAClD,QAAA,OAAO,CAAA,iBAAiB,KAAA,IAAA,IAAjB,iBAAiB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAjB,iBAAiB,CAAE,MAAM,IAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;cACxE,iBAAiB,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;cAC3C,SAAS,CAAC;KACf;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;AACjE,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAA0C,CAAC,CAAC;KACnE;AAED,IAAA,aAAa,CAAC,MAAsB,EAAA;AAClC,QAAA,OAAO,IAAI,CACT,KAAK,CAAC,MAAM,CAAM,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MAAM,CAAE,EAAA,EAAA,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAA,CAAA,CAAuC,CAC5F,CAAC;KACH;AAED,IAAA,aAAa,CAAC,MAAsB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAM,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MAAM,CAAE,EAAA,EAAA,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAA,CAAA,CAAG,CAAC,CAAC;KACtE;AAED,IAAA,OAAO,CAAC,MAAc,EAAA;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAW,CAAwB,CAAC,CAAC;KAC/D;AAED,IAAA,OAAO,CAAC,MAAiB,EAAA;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAW,CAAwB,CAAC,CAAC;KAC/D;IAED,MAAM,CAAC,GAAW,EAAE,IAAoB,EAAA;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;KACrC;AAEO,IAAA,qBAAqB,CAAC,MAAc,EAAA;AACnC,QAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,IAAA,GAAA,OAAN,MAAM,CAAE,EAAE,CAAC;AACX,QAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,IAAA,GAAA,OAAN,MAAM,CAAE,QAAQ,CAAC;AAChB,QAAA,MAAsB,aAAtB,MAAsB,KAAA,KAAA,CAAA,GAAA,IAAA,GAAA,OAAtB,MAAsB,CAAE,UAAU,CAAC;AAC3C,QAAA,OAAO,MAAW,CAAC;KACpB;;sHAxQU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cAFxB,MAAM,EAAA,CAAA,CAAA;2FAEP,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;ACZK,MAAO,oCAAqC,SAAQ,kBAAiD,CAAA;AAGzG,IAAA,WAAA,CAAY,MAAmB,EAAA;QAC7B,KAAK,CAAC,MAAM,CAAC,CAAC;AAHC,QAAA,IAAS,CAAA,SAAA,GAAW,0BAA0B,CAAC;KAI/D;IAED,GAAG,GAAA;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACpC;AAED,IAAA,GAAG,CAAC,IAAmC,EAAA;QACrC,MAAM,OAAO,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;AACnF,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE;AACjC,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAC1B,YAAA,OAAO,EAAE,OAAO;AACjB,SAAA,CAAC,CAAC;KACJ;;iIAlBU,oCAAoC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApC,oCAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oCAAoC,cAFnC,MAAM,EAAA,CAAA,CAAA;2FAEP,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAHhD,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;ACCK,MAAO,+BAAgC,SAAQ,kBAA4C,CAAA;AAC/F,IAAA,WAAA,CAAY,MAAmB,EAAA;QAC7B,KAAK,CAAC,MAAM,CAAC,CAAC;KACf;AAED,IAAA,MAAM,CAAC,EAAU,EAAA;AACf,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KACzB;AAED,IAAA,MAAM,CAAC,MAAgC,EAAA;AACrC,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAC7B;AAED,IAAA,cAAc,CAAC,MAAgC,EAAA;QAC7C,OAAO,MAAM,CAAC,EAAE,CAAC;AACjB,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,YAAY,CAAC,MAAgC,EAAA;AAC3C,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,OAAO,CAAI,CAAA,EAAA,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA,gBAAA,CAAkB,CAAC;KACvE;;4HApBU,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA/B,+BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,cAF9B,MAAM,EAAA,CAAA,CAAA;2FAEP,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAH3C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;ACPD;;AAEG;;;;"}
|
|
@@ -25808,7 +25808,6 @@ class WidgetTimeContextComponent {
|
|
|
25808
25808
|
ngOnDestroy() {
|
|
25809
25809
|
this.unsubscribeFromGlobalContext();
|
|
25810
25810
|
this.clearQueryParamsIfNeeded();
|
|
25811
|
-
this.stopRealtime();
|
|
25812
25811
|
this.destroy$.next();
|
|
25813
25812
|
this.destroy$.complete();
|
|
25814
25813
|
}
|
|
@@ -26009,7 +26008,9 @@ class WidgetTimeContextComponent {
|
|
|
26009
26008
|
this.form.controls.temporaryUserSelectedFromDate.disable();
|
|
26010
26009
|
this.form.controls.temporaryUserSelectedToDate.disable();
|
|
26011
26010
|
this.form.controls.aggregation.disable();
|
|
26012
|
-
this.realtimeSubscription = interval(this.REALTIME_INTERVAL)
|
|
26011
|
+
this.realtimeSubscription = interval(this.REALTIME_INTERVAL)
|
|
26012
|
+
.pipe(takeUntil(this.destroy$))
|
|
26013
|
+
.subscribe(() => {
|
|
26013
26014
|
const newDateFrom = new Date(new Date(this.form.value.currentDateContextFromDate).valueOf() + this.REALTIME_INTERVAL);
|
|
26014
26015
|
const newDateTo = new Date(new Date(this.form.value.currentDateContextToDate).valueOf() + this.REALTIME_INTERVAL);
|
|
26015
26016
|
this.updateFormValues({
|