@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
55 lines • 7.33 kB
JavaScript
import { ChangeDetectionStrategy, Component, ElementRef, Optional } from '@angular/core';
import { DashboardBridgeService } from './dashboard-bridge.service';
import { WidgetsDashboardComponent } from '@c8y/ngx-components';
import { debounceTime, merge } from 'rxjs';
import * as i0 from "@angular/core";
import * as i1 from "@c8y/ngx-components";
import * as i2 from "./dashboard-bridge.service";
export class WidgetComponent {
constructor(dashboard, dashboardBridgeService, el) {
this.dashboard = dashboard;
this.dashboardBridgeService = dashboardBridgeService;
this.el = el;
this.DEBOUNCE_TIME_UNTIL_WIDGET_HAS_SNAPPED = 400;
}
onBeforeSave() {
this.ng1Scope.$broadcast('saveWidget');
return true;
}
async ngOnInit() {
if (this.config) {
if (this.config.child) {
this.config.child.alerts = this.alerts;
}
this.ng1Scope = await this.dashboardBridgeService.instantiateComponent(this.config, this.el.nativeElement);
if (this.dashboard) {
this.resizeSubscription = merge(this.dashboard.onChangeDashboard, this.dashboard.onResize)
.pipe(debounceTime(this.DEBOUNCE_TIME_UNTIL_WIDGET_HAS_SNAPPED))
.subscribe(() => {
this.ng1Scope.$broadcast('dashboardResize');
});
}
}
}
ngOnDestroy() {
if (this.ng1Scope) {
this.ng1Scope.$destroy();
}
if (this.resizeSubscription) {
this.resizeSubscription.unsubscribe();
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WidgetComponent, deps: [{ token: i1.WidgetsDashboardComponent, optional: true }, { token: i2.DashboardBridgeService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: WidgetComponent, selector: "c8y-widget-legacy", ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WidgetComponent, decorators: [{
type: Component,
args: [{
selector: 'c8y-widget-legacy',
template: '',
changeDetection: ChangeDetectionStrategy.OnPush
}]
}], ctorParameters: () => [{ type: i1.WidgetsDashboardComponent, decorators: [{
type: Optional
}] }, { type: i2.DashboardBridgeService }, { type: i0.ElementRef }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3VwZ3JhZGUvZGFzaGJvYXJkL3dpZGdldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUdWLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQWdCLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdCLE1BQU0sTUFBTSxDQUFDOzs7O0FBT3pELE1BQU0sT0FBTyxlQUFlO0lBTzFCLFlBQ3NCLFNBQW9DLEVBQ2hELHNCQUE4QyxFQUM5QyxFQUFjO1FBRkYsY0FBUyxHQUFULFNBQVMsQ0FBMkI7UUFDaEQsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBTFAsMkNBQXNDLEdBQUcsR0FBRyxDQUFDO0lBTTNELENBQUM7SUFFSixZQUFZO1FBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVE7UUFDWixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3pDLENBQUM7WUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLG9CQUFvQixDQUNwRSxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUN0QixDQUFDO1lBQ0YsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztxQkFDdkYsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsc0NBQXNDLENBQUMsQ0FBQztxQkFDL0QsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUM5QyxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQzsrR0E1Q1UsZUFBZTttR0FBZixlQUFlLHlEQUhoQixFQUFFOzs0RkFHRCxlQUFlO2tCQUwzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs7MEJBU0ksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhc2hib2FyZEJyaWRnZVNlcnZpY2UgfSBmcm9tICcuL2Rhc2hib2FyZC1icmlkZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBPbkJlZm9yZVNhdmUsIFdpZGdldHNEYXNoYm9hcmRDb21wb25lbnQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWVyZ2UsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktd2lkZ2V0LWxlZ2FjeScsXG4gIHRlbXBsYXRlOiAnJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQmVmb3JlU2F2ZSB7XG4gIG5nMVNjb3BlO1xuICBjb25maWc7XG4gIGFsZXJ0cztcbiAgcHJpdmF0ZSByZXNpemVTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgREVCT1VOQ0VfVElNRV9VTlRJTF9XSURHRVRfSEFTX1NOQVBQRUQgPSA0MDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBkYXNoYm9hcmQ6IFdpZGdldHNEYXNoYm9hcmRDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBkYXNoYm9hcmRCcmlkZ2VTZXJ2aWNlOiBEYXNoYm9hcmRCcmlkZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWZcbiAgKSB7fVxuXG4gIG9uQmVmb3JlU2F2ZSgpOiBib29sZWFuIHtcbiAgICB0aGlzLm5nMVNjb3BlLiRicm9hZGNhc3QoJ3NhdmVXaWRnZXQnKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmNvbmZpZykge1xuICAgICAgaWYgKHRoaXMuY29uZmlnLmNoaWxkKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLmNoaWxkLmFsZXJ0cyA9IHRoaXMuYWxlcnRzO1xuICAgICAgfVxuICAgICAgdGhpcy5uZzFTY29wZSA9IGF3YWl0IHRoaXMuZGFzaGJvYXJkQnJpZGdlU2VydmljZS5pbnN0YW50aWF0ZUNvbXBvbmVudChcbiAgICAgICAgdGhpcy5jb25maWcsXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudFxuICAgICAgKTtcbiAgICAgIGlmICh0aGlzLmRhc2hib2FyZCkge1xuICAgICAgICB0aGlzLnJlc2l6ZVN1YnNjcmlwdGlvbiA9IG1lcmdlKHRoaXMuZGFzaGJvYXJkLm9uQ2hhbmdlRGFzaGJvYXJkLCB0aGlzLmRhc2hib2FyZC5vblJlc2l6ZSlcbiAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5ERUJPVU5DRV9USU1FX1VOVElMX1dJREdFVF9IQVNfU05BUFBFRCkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm5nMVNjb3BlLiRicm9hZGNhc3QoJ2Rhc2hib2FyZFJlc2l6ZScpO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5nMVNjb3BlKSB7XG4gICAgICB0aGlzLm5nMVNjb3BlLiRkZXN0cm95KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJlc2l6ZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5yZXNpemVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==