UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

98 lines 13.7 kB
import { Injectable } from '@angular/core'; import { FetchClient } from '@c8y/client'; import { BehaviorSubject } from 'rxjs'; import * as i0 from "@angular/core"; import * as i1 from "@c8y/client"; export class AddressSpaceService { constructor(fetchClient) { this.client = fetchClient; this.microserviceUrl = '/service/opcua-mgmt-service/address-space'; this.header = { 'Content-Type': 'application/json' }; this.nodeNavigationData$ = new BehaviorSubject({ node: undefined, selectedAncestorIds: [] }); } resetTreeToRootNode() { this.triggerNodeToOpen({ node: undefined, selectedAncestorIds: [] }); } triggerNodeToOpen(nodeNavigationData) { this.nodeNavigationData$.next(nodeNavigationData); } getNodeNavData$() { return this.nodeNavigationData$.asObservable(); } getNode(serverId, nodeId) { if (serverId && serverId.length > 0) { if (nodeId && nodeId.length > 0) { return this.getNodeById(serverId, nodeId); } return this.getRootNode(serverId); } } getRootNode(serverId) { if (serverId && serverId.length > 0) { const options = { method: 'GET', headers: this.header }; return this.client.fetch(`${this.microserviceUrl}/${serverId}`, options); } } getNodeById(serverId, nodeId) { if (serverId && nodeId && serverId.length > 0 && nodeId.length > 0) { const options = { method: 'GET', headers: this.header }; const param = encodeURIComponent(nodeId); return this.client.fetch(`${this.microserviceUrl}/${serverId}?nodeId=${param}`, options); } } getChildrenOf(node, serverId) { if (serverId && node.nodeId && serverId.length > 0 && node.nodeId.length > 0) { const options = { method: 'GET', headers: this.header }; const param = encodeURIComponent(node.nodeId); return this.client.fetch(`${this.microserviceUrl}/${serverId}/children?nodeId=${param}`, options); } } childrenAvailable(nodeReferences) { if (!nodeReferences || nodeReferences.length === 0) { return false; } return nodeReferences.some(ref => !ref.inverse && ref.hierarchical); } async getSearchedNodes(searchKey, serverId) { const url = `service/opcua-mgmt-service/search/${serverId}/`; const options = { headers: this.header, params: { searchString: '*' + searchKey + '*' } }; const res = await this.client.fetch(url, options); return res.json(); } getIcon(nodeClassName) { const iconList = { Object: 'cube', Variable: 'th-list', Method: 'random', View: 'window-maximize', ObjectType: 'c8y-group', VariableType: 'c8y-group', ReferenceType: 'c8y-group', DataType: 'c8y-group' }; return iconList[nodeClassName] || 'circle'; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddressSpaceService, deps: [{ token: i1.FetchClient }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddressSpaceService }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddressSpaceService, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: i1.FetchClient }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1zcGFjZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvdG9jb2wtb3BjdWEvYWRkcmVzcy1zcGFjZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBaUIsTUFBTSxhQUFhLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQzs7O0FBR25ELE1BQU0sT0FBTyxtQkFBbUI7SUFNOUIsWUFBWSxXQUF3QjtRQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQztRQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLDJDQUEyQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxlQUFlLENBQXFCO1lBQ2pFLElBQUksRUFBRSxTQUFTO1lBQ2YsbUJBQW1CLEVBQUUsRUFBRTtTQUN4QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsaUJBQWlCLENBQUMsa0JBQXNDO1FBQ3RELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRCxPQUFPLENBQUMsUUFBZ0IsRUFBRSxNQUFlO1FBQ3ZDLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FB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QUMsQ0FBQztRQUNsRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsT0FBTyxDQUFDLGFBQXFCO1FBQzNCLE1BQU0sUUFBUSxHQUFHO1lBQ2YsTUFBTSxFQUFFLE1BQU07WUFDZCxRQUFRLEVBQUUsU0FBUztZQUNuQixNQUFNLEVBQUUsUUFBUTtZQUNoQixJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLFVBQVUsRUFBRSxXQUFXO1lBQ3ZCLFlBQVksRUFBRSxXQUFXO1lBQ3pCLGFBQWEsRUFBRSxXQUFXO1lBQzFCLFFBQVEsRUFBRSxXQUFXO1NBQ3RCLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxRQUFRLENBQUM7SUFDN0MsQ0FBQzsrR0F2R1UsbUJBQW1CO21IQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGZXRjaENsaWVudCwgSUZldGNoT3B0aW9ucyB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWRkcmVzc1NwYWNlU2VydmljZSB7XG4gIHByaXZhdGUgbm9kZU5hdmlnYXRpb25EYXRhJDogQmVoYXZpb3JTdWJqZWN0PE5vZGVOYXZpZ2F0aW9uRGF0YT47XG4gIHByaXZhdGUgY2xpZW50OiBGZXRjaENsaWVudDtcbiAgcHJpdmF0ZSBtaWNyb3NlcnZpY2VVcmw6IHN0cmluZztcbiAgcHJpdmF0ZSBoZWFkZXI6IGFueTtcblxuICBjb25zdHJ1Y3RvcihmZXRjaENsaWVudDogRmV0Y2hDbGllbnQpIHtcbiAgICB0aGlzLmNsaWVudCA9IGZldGNoQ2xpZW50O1xuICAgIHRoaXMubWljcm9zZXJ2aWNlVXJsID0gJy9zZXJ2aWNlL29wY3VhLW1nbXQtc2VydmljZS9hZGRyZXNzLXNwYWNlJztcbiAgICB0aGlzLmhlYWRlciA9IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9O1xuICAgIHRoaXMubm9kZU5hdmlnYXRpb25EYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Tm9kZU5hdmlnYXRpb25EYXRhPih7XG4gICAgICBub2RlOiB1bmRlZmluZWQsXG4gICAgICBzZWxlY3RlZEFuY2VzdG9ySWRzOiBbXVxuICAgIH0pO1xuICB9XG5cbiAgcmVzZXRUcmVlVG9Sb290Tm9kZSgpIHtcbiAgICB0aGlzLnRyaWdnZXJOb2RlVG9PcGVuKHsgbm9kZTogdW5kZWZpbmVkLCBzZWxlY3RlZEFuY2VzdG9ySWRzOiBbXSB9KTtcbiAgfVxuXG4gIHRyaWdnZXJOb2RlVG9PcGVuKG5vZGVOYXZpZ2F0aW9uRGF0YTogTm9kZU5hdmlnYXRpb25EYXRhKSB7XG4gICAgdGhpcy5ub2RlTmF2aWdhdGlvbkRhdGEkLm5leHQobm9kZU5hdmlnYXRpb25EYXRhKTtcbiAgfVxuXG4gIGdldE5vZGVOYXZEYXRhJCgpOiBPYnNlcnZhYmxlPE5vZGVOYXZpZ2F0aW9uRGF0YT4ge1xuICAgIHJldHVybiB0aGlzLm5vZGVOYXZpZ2F0aW9uRGF0YSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXROb2RlKHNlcnZlcklkOiBzdHJpbmcsIG5vZGVJZD86IHN0cmluZykge1xuICAgIGlmIChzZXJ2ZXJJZCAmJiBzZXJ2ZXJJZC5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAobm9kZUlkICYmIG5vZGVJZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldE5vZGVCeUlkKHNlcnZlcklkLCBub2RlSWQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuZ2V0Um9vdE5vZGUoc2VydmVySWQpO1xuICAgIH1cbiAgfVxuXG4gIGdldFJvb3ROb2RlKHNlcnZlcklkOiBzdHJpbmcpIHtcbiAgICBpZiAoc2VydmVySWQgJiYgc2VydmVySWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgb3B0aW9uczogSUZldGNoT3B0aW9ucyA9IHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJcbiAgICAgIH07XG4gICAgICByZXR1cm4gdGhpcy5jbGllbnQuZmV0Y2goYCR7dGhpcy5taWNyb3NlcnZpY2VVcmx9LyR7c2VydmVySWR9YCwgb3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Tm9kZUJ5SWQoc2VydmVySWQ6IHN0cmluZywgbm9kZUlkOiBzdHJpbmcpIHtcbiAgICBpZiAoc2VydmVySWQgJiYgbm9kZUlkICYmIHNlcnZlcklkLmxlbmd0aCA+IDAgJiYgbm9kZUlkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IG9wdGlvbnM6IElGZXRjaE9wdGlvbnMgPSB7XG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVyXG4gICAgICB9O1xuICAgICAgY29uc3QgcGFyYW0gPSBlbmNvZGVVUklDb21wb25lbnQobm9kZUlkKTtcbiAgICAgIHJldHVybiB0aGlzLmNsaWVudC5mZXRjaChgJHt0aGlzLm1pY3Jvc2VydmljZVVybH0vJHtzZXJ2ZXJJZH0/bm9kZUlkPSR7cGFyYW19YCwgb3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q2hpbGRyZW5PZihub2RlOiBBZGRyZXNzU3BhY2VOb2RlLCBzZXJ2ZXJJZDogc3RyaW5nKSB7XG4gICAgaWYgKHNlcnZlcklkICYmIG5vZGUubm9kZUlkICYmIHNlcnZlcklkLmxlbmd0aCA+IDAgJiYgbm9kZS5ub2RlSWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgb3B0aW9uczogSUZldGNoT3B0aW9ucyA9IHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJcbiAgICAgIH07XG4gICAgICBjb25zdCBwYXJhbSA9IGVuY29kZVVSSUNvbXBvbmVudChub2RlLm5vZGVJZCk7XG4gICAgICByZXR1cm4gdGhpcy5jbGllbnQuZmV0Y2goXG4gICAgICAgIGAke3RoaXMubWljcm9zZXJ2aWNlVXJsfS8ke3NlcnZlcklkfS9jaGlsZHJlbj9ub2RlSWQ9JHtwYXJhbX1gLFxuICAgICAgICBvcHRpb25zXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNoaWxkcmVuQXZhaWxhYmxlKG5vZGVSZWZlcmVuY2VzOiBBZHJlc3NTcGFjZU5vZGVSZWZlcmVuY2VbXSk6IGJvb2xlYW4ge1xuICAgIGlmICghbm9kZVJlZmVyZW5jZXMgfHwgbm9kZVJlZmVyZW5jZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBub2RlUmVmZXJlbmNlcy5zb21lKHJlZiA9PiAhcmVmLmludmVyc2UgJiYgcmVmLmhpZXJhcmNoaWNhbCk7XG4gIH1cblxuICBhc3luYyBnZXRTZWFyY2hlZE5vZGVzKHNlYXJjaEtleTogc3RyaW5nLCBzZXJ2ZXJJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgdXJsID0gYHNlcnZpY2Uvb3BjdWEtbWdtdC1zZXJ2aWNlL3NlYXJjaC8ke3NlcnZlcklkfS9gO1xuICAgIGNvbnN0IG9wdGlvbnM6IElGZXRjaE9wdGlvbnMgPSB7XG4gICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcixcbiAgICAgIHBhcmFtczoge1xuICAgICAgICBzZWFyY2hTdHJpbmc6ICcqJyArIHNlYXJjaEtleSArICcqJ1xuICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5jbGllbnQuZmV0Y2godXJsLCBvcHRpb25zKTtcbiAgICByZXR1cm4gcmVzLmpzb24oKTtcbiAgfVxuXG4gIGdldEljb24obm9kZUNsYXNzTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgaWNvbkxpc3QgPSB7XG4gICAgICBPYmplY3Q6ICdjdWJlJyxcbiAgICAgIFZhcmlhYmxlOiAndGgtbGlzdCcsXG4gICAgICBNZXRob2Q6ICdyYW5kb20nLFxuICAgICAgVmlldzogJ3dpbmRvdy1tYXhpbWl6ZScsXG4gICAgICBPYmplY3RUeXBlOiAnYzh5LWdyb3VwJyxcbiAgICAgIFZhcmlhYmxlVHlwZTogJ2M4eS1ncm91cCcsXG4gICAgICBSZWZlcmVuY2VUeXBlOiAnYzh5LWdyb3VwJyxcbiAgICAgIERhdGFUeXBlOiAnYzh5LWdyb3VwJ1xuICAgIH07XG4gICAgcmV0dXJuIGljb25MaXN0W25vZGVDbGFzc05hbWVdIHx8ICdjaXJjbGUnO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkcmVzc1NwYWNlTm9kZSB7XG4gIG5vZGVJZDogc3RyaW5nO1xuICBjdXJyZW50bHlMb2FkaW5nQ2hpbGRyZW4/OiBib29sZWFuO1xuICBub2RlQ2xhc3M/OiBudW1iZXI7XG4gIG5vZGVDbGFzc05hbWU/OiBzdHJpbmc7XG4gIGJyb3dzZU5hbWU/OiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IGFueTtcbiAgcmVmZXJlbmNlcz86IEFkcmVzc1NwYWNlTm9kZVJlZmVyZW5jZVtdO1xuICBhbmNlc3Rvck5vZGVJZHM/OiBbc3RyaW5nW11dO1xuICBjaGlsZHJlbjogQWRkcmVzc1NwYWNlTm9kZVtdO1xuICBleHBhbmRlZDogYm9vbGVhbjtcbiAgYWJzb2x1dGVQYXRoczogW3N0cmluZ1tdXTtcbiAgcmVsYXRpdmVQYXRoPzogc3RyaW5nW107XG4gIHBhcmVudE5vZGU/OiBBZGRyZXNzU3BhY2VOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkcmVzc1NwYWNlTm9kZVJlZmVyZW5jZSB7XG4gIHJlZmVyZW5jZUlkOiBzdHJpbmc7XG4gIHRhcmdldElkOiBzdHJpbmc7XG4gIGludmVyc2U6IGJvb2xlYW47XG4gIGhpZXJhcmNoaWNhbDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hlZE5vZGUge1xuICBhYnNvbHV0ZVBhdGg6IHN0cmluZ1tdO1xuICBhbmNlc3Rvck5vZGVJZHM6IFtzdHJpbmdbXV07XG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIG5vZGVDbGFzc05hbWU6IHN0cmluZztcbiAgbm9kZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9kZU5hdmlnYXRpb25EYXRhIHtcbiAgbm9kZTogQWRkcmVzc1NwYWNlTm9kZTtcbiAgc2VsZWN0ZWRBbmNlc3Rvcklkczogc3RyaW5nW107XG59XG4iXX0=