UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

69 lines 10.6 kB
import { Injectable } from '@angular/core'; import { DynamicDatapointsResolver, DynamicManagedObjectResolver } from '@c8y/ngx-components'; import { DashboardBridgeService } from './dashboard-bridge.service'; import { WidgetComponent } from './widget.component'; import { LegacyDeviceSelectorComponent } from './device-selector.component'; import { of } from 'rxjs'; import { shareReplay, switchMap, take } from 'rxjs/operators'; import * as i0 from "@angular/core"; import * as i1 from "./dashboard-bridge.service"; export class Ng1ComponentFactoryService { constructor(bridge) { this.bridge = bridge; this.components$ = of(1).pipe(switchMap(() => this.getComponents()), shareReplay(1), take(1)); } get() { return this.components$; } async getComponents() { const ng1Components = await this.bridge.ng1Components.list(); const components = ng1Components.map(cmp => { const resolve = {}; if (cmp.options?.datapointAttributes && Array.isArray(cmp.options?.datapointAttributes)) { cmp.options?.datapointAttributes.forEach(attribute => (resolve[attribute] = DynamicDatapointsResolver)); } if (cmp.options?.managedObjectAttributes && Array.isArray(cmp.options?.managedObjectAttributes)) { cmp.options?.managedObjectAttributes.forEach(attribute => (resolve[attribute] = DynamicManagedObjectResolver)); } const data = { settings: { ...cmp.options, configTemplateUrl: cmp.configTemplateUrl, widgetComponent: cmp.widgetComponent, configComponent: cmp.configComponent, transformConfigWithContext: cmp.transformConfigWithContext || cmp.componentTransformConfigWithContext, upgrade: true } }; data.settings.templateUrl = cmp.templateUrl; // workaround as in object it creates build error data.displaySettings = cmp.displaySettings; return { id: cmp.name, label: cmp.nameDisplay || cmp.name, description: cmp.description, component: WidgetComponent, configComponent: WidgetComponent, previewImage: cmp.previewImage, errorStrategy: cmp.errorStrategy, resolve, data }; }); // add the device selector legacy component components.push({ id: 'device.selector.legacy', label: 'Device selector', description: '', data: { settings: { noNewWidgets: true, upgrade: true } }, component: LegacyDeviceSelectorComponent }); return components; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Ng1ComponentFactoryService, deps: [{ token: i1.DashboardBridgeService }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Ng1ComponentFactoryService }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Ng1ComponentFactoryService, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: i1.DashboardBridgeService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi91cGdyYWRlL2Rhc2hib2FyZC9jb21wb25lbnQuZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFFTCx5QkFBeUIsRUFDekIsNEJBQTRCLEVBQzdCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxFQUFFLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUc5RCxNQUFNLE9BQU8sMEJBQTBCO0lBRXJDLFlBQW9CLE1BQThCO1FBQTlCLFdBQU0sR0FBTixNQUFNLENBQXdCO1FBQ2hELElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDM0IsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUNyQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQ2QsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNSLENBQUM7SUFDSixDQUFDO0lBRUQsR0FBRztRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRU8sS0FBSyxDQUFDLGFBQWE7UUFDekIsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3RCxNQUFNLFVBQVUsR0FBaUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2RSxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbkIsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLG1CQUFtQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hGLEdBQUcsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUMsT0FBTyxDQUN0QyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLHlCQUFnQyxDQUFDLENBQ3JFLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFDRSxHQUFHLENBQUMsT0FBTyxFQUFFLHVCQUF1QjtnQkFDcEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLHVCQUF1QixDQUFDLEVBQ25ELENBQUM7Z0JBQ0QsR0FBRyxDQUFDLE9BQU8sRUFBRSx1QkFBdUIsQ0FBQyxPQUFPLENBQzFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsNEJBQW1DLENBQUMsQ0FDeEUsQ0FBQztZQUNKLENBQUM7WUFDRCxNQUFNLElBQUksR0FBRztnQkFDWCxRQUFRLEVBQUU7b0JBQ1IsR0FBRyxHQUFHLENBQUMsT0FBTztvQkFDZCxpQkFBaUIsRUFBRSxHQUFHLENBQUMsaUJBQWlCO29CQUN4QyxlQUFlLEVBQUUsR0FBRyxDQUFDLGVBQWU7b0JBQ3BDLGVBQWUsRUFBRSxHQUFHLENBQUMsZUFBZTtvQkFDcEMsMEJBQTBCLEVBQ3hCLEdBQUcsQ0FBQywwQkFBMEIsSUFBSSxHQUFHLENBQUMsbUNBQW1DO29CQUMzRSxPQUFPLEVBQUUsSUFBSTtpQkFDZDthQUNLLENBQUM7WUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsaURBQWlEO1lBQzlGLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUUzQyxPQUFPO2dCQUNMLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSTtnQkFDWixLQUFLLEVBQUUsR0FBRyxDQUFDLFdBQVcsSUFBSSxHQUFHLENBQUMsSUFBSTtnQkFDbEMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXO2dCQUM1QixTQUFTLEVBQUUsZUFBZTtnQkFDMUIsZUFBZSxFQUFFLGVBQWU7Z0JBQ2hDLFlBQVksRUFBRSxHQUFHLENBQUMsWUFBWTtnQkFDOUIsYUFBYSxFQUFFLEdBQUcsQ0FBQyxhQUFhO2dCQUNoQyxPQUFPO2dCQUNQLElBQUk7YUFDeUIsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUVILDJDQUEyQztRQUMzQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ2QsRUFBRSxFQUFFLHdCQUF3QjtZQUM1QixLQUFLLEVBQUUsaUJBQWlCO1lBQ3hCLFdBQVcsRUFBRSxFQUFFO1lBQ2YsSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDekQsU0FBUyxFQUFFLDZCQUE2QjtTQUN6QyxDQUFDLENBQUM7UUFFSCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDOytHQXBFVSwwQkFBMEI7bUhBQTFCLDBCQUEwQjs7NEZBQTFCLDBCQUEwQjtrQkFEdEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIER5bmFtaWNDb21wb25lbnREZWZpbml0aW9uLFxuICBEeW5hbWljRGF0YXBvaW50c1Jlc29sdmVyLFxuICBEeW5hbWljTWFuYWdlZE9iamVjdFJlc29sdmVyXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQnJpZGdlU2VydmljZSB9IGZyb20gJy4vZGFzaGJvYXJkLWJyaWRnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMZWdhY3lEZXZpY2VTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vZGV2aWNlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBvZiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5nMUNvbXBvbmVudEZhY3RvcnlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb21wb25lbnRzJDogT2JzZXJ2YWJsZTxEeW5hbWljQ29tcG9uZW50RGVmaW5pdGlvbltdPjtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBicmlkZ2U6IERhc2hib2FyZEJyaWRnZVNlcnZpY2UpIHtcbiAgICB0aGlzLmNvbXBvbmVudHMkID0gb2YoMSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmdldENvbXBvbmVudHMoKSksXG4gICAgICBzaGFyZVJlcGxheSgxKSxcbiAgICAgIHRha2UoMSlcbiAgICApO1xuICB9XG5cbiAgZ2V0KCkge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudHMkO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRDb21wb25lbnRzKCk6IFByb21pc2U8RHluYW1pY0NvbXBvbmVudERlZmluaXRpb25bXT4ge1xuICAgIGNvbnN0IG5nMUNvbXBvbmVudHMgPSBhd2FpdCB0aGlzLmJyaWRnZS5uZzFDb21wb25lbnRzLmxpc3QoKTtcbiAgICBjb25zdCBjb21wb25lbnRzOiBEeW5hbWljQ29tcG9uZW50RGVmaW5pdGlvbltdID0gbmcxQ29tcG9uZW50cy5tYXAoY21wID0+IHtcbiAgICAgIGNvbnN0IHJlc29sdmUgPSB7fTtcbiAgICAgIGlmIChjbXAub3B0aW9ucz8uZGF0YXBvaW50QXR0cmlidXRlcyAmJiBBcnJheS5pc0FycmF5KGNtcC5vcHRpb25zPy5kYXRhcG9pbnRBdHRyaWJ1dGVzKSkge1xuICAgICAgICBjbXAub3B0aW9ucz8uZGF0YXBvaW50QXR0cmlidXRlcy5mb3JFYWNoKFxuICAgICAgICAgIGF0dHJpYnV0ZSA9PiAocmVzb2x2ZVthdHRyaWJ1dGVdID0gRHluYW1pY0RhdGFwb2ludHNSZXNvbHZlciBhcyBhbnkpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGNtcC5vcHRpb25zPy5tYW5hZ2VkT2JqZWN0QXR0cmlidXRlcyAmJlxuICAgICAgICBBcnJheS5pc0FycmF5KGNtcC5vcHRpb25zPy5tYW5hZ2VkT2JqZWN0QXR0cmlidXRlcylcbiAgICAgICkge1xuICAgICAgICBjbXAub3B0aW9ucz8ubWFuYWdlZE9iamVjdEF0dHJpYnV0ZXMuZm9yRWFjaChcbiAgICAgICAgICBhdHRyaWJ1dGUgPT4gKHJlc29sdmVbYXR0cmlidXRlXSA9IER5bmFtaWNNYW5hZ2VkT2JqZWN0UmVzb2x2ZXIgYXMgYW55KVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICAuLi5jbXAub3B0aW9ucyxcbiAgICAgICAgICBjb25maWdUZW1wbGF0ZVVybDogY21wLmNvbmZpZ1RlbXBsYXRlVXJsLFxuICAgICAgICAgIHdpZGdldENvbXBvbmVudDogY21wLndpZGdldENvbXBvbmVudCxcbiAgICAgICAgICBjb25maWdDb21wb25lbnQ6IGNtcC5jb25maWdDb21wb25lbnQsXG4gICAgICAgICAgdHJhbnNmb3JtQ29uZmlnV2l0aENvbnRleHQ6XG4gICAgICAgICAgICBjbXAudHJhbnNmb3JtQ29uZmlnV2l0aENvbnRleHQgfHwgY21wLmNvbXBvbmVudFRyYW5zZm9ybUNvbmZpZ1dpdGhDb250ZXh0LFxuICAgICAgICAgIHVwZ3JhZGU6IHRydWVcbiAgICAgICAgfVxuICAgICAgfSBhcyBhbnk7XG4gICAgICBkYXRhLnNldHRpbmdzLnRlbXBsYXRlVXJsID0gY21wLnRlbXBsYXRlVXJsOyAvLyB3b3JrYXJvdW5kIGFzIGluIG9iamVjdCBpdCBjcmVhdGVzIGJ1aWxkIGVycm9yXG4gICAgICBkYXRhLmRpc3BsYXlTZXR0aW5ncyA9IGNtcC5kaXNwbGF5U2V0dGluZ3M7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBjbXAubmFtZSxcbiAgICAgICAgbGFiZWw6IGNtcC5uYW1lRGlzcGxheSB8fCBjbXAubmFtZSxcbiAgICAgICAgZGVzY3JpcHRpb246IGNtcC5kZXNjcmlwdGlvbixcbiAgICAgICAgY29tcG9uZW50OiBXaWRnZXRDb21wb25lbnQsXG4gICAgICAgIGNvbmZpZ0NvbXBvbmVudDogV2lkZ2V0Q29tcG9uZW50LFxuICAgICAgICBwcmV2aWV3SW1hZ2U6IGNtcC5wcmV2aWV3SW1hZ2UsXG4gICAgICAgIGVycm9yU3RyYXRlZ3k6IGNtcC5lcnJvclN0cmF0ZWd5LFxuICAgICAgICByZXNvbHZlLFxuICAgICAgICBkYXRhXG4gICAgICB9IGFzIER5bmFtaWNDb21wb25lbnREZWZpbml0aW9uO1xuICAgIH0pO1xuXG4gICAgLy8gYWRkIHRoZSBkZXZpY2Ugc2VsZWN0b3IgbGVnYWN5IGNvbXBvbmVudFxuICAgIGNvbXBvbmVudHMucHVzaCh7XG4gICAgICBpZDogJ2RldmljZS5zZWxlY3Rvci5sZWdhY3knLFxuICAgICAgbGFiZWw6ICdEZXZpY2Ugc2VsZWN0b3InLFxuICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgZGF0YTogeyBzZXR0aW5nczogeyBub05ld1dpZGdldHM6IHRydWUsIHVwZ3JhZGU6IHRydWUgfSB9LFxuICAgICAgY29tcG9uZW50OiBMZWdhY3lEZXZpY2VTZWxlY3RvckNvbXBvbmVudFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNvbXBvbmVudHM7XG4gIH1cbn1cbiJdfQ==