@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
128 lines (122 loc) • 5.52 kB
JavaScript
import { PreviewService, hookWidget, hookPreview } from '@c8y/ngx-components';
import { WidgetAssetSelectorComponent, hookWidgetConfig } from '@c8y/ngx-components/context-dashboard';
import * as i0 from '@angular/core';
import { inject, Injectable } from '@angular/core';
import { gettext } from '@c8y/ngx-components/gettext';
import { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';
import { importConfigWithDevice, exportConfigWithDevice } from '@c8y/ngx-components/widgets/import-export-config';
import { map } from 'rxjs';
class AssetTableWidgetFactory {
constructor() {
this.previewService = inject(PreviewService);
this.baseWidgetDefinition = {
id: defaultWidgetIds.ASSET_TABLE,
label: gettext('Asset table'),
description: gettext('Displays a table of assets with configurable columns and filters.'),
loadComponent: () => import('@c8y/ngx-components/widgets/implementations/asset-table').then(m => m.AssetTableWidgetViewComponent),
previewImage: 'c8y-style-assets/asset-table-pr.png',
data: {
settings: {
schema: () => import('c8y-schema-loader?interfaceName=AssetTableWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/asset-table'),
export: exportConfigWithDevice,
import: importConfigWithDevice,
noNewWidgets: false,
widgetDefaults: {
_width: 8,
_height: 6
},
ng1: {
options: {
noDeviceTarget: true,
groupsSelectable: true
}
}
},
displaySettings: {
globalTimeContext: true,
globalAutoRefreshContext: true
}
}
};
}
get() {
return this.previewService.getState$('ui.asset-table.v2').pipe(map(state => {
if (state) {
return [this.baseWidgetDefinition];
}
return [];
}));
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetTableWidgetFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetTableWidgetFactory, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetTableWidgetFactory, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}] });
class AssetTableConfigFactory {
constructor() {
this.betaPreviewService = inject(PreviewService);
this.baseWidgetConfigDefinition = [
{
widgetId: defaultWidgetIds.ASSET_TABLE,
label: gettext('Asset selection'),
loadComponent: () => Promise.resolve(WidgetAssetSelectorComponent),
priority: 100,
initialState: {
isRequired: false,
groupsSelectable: true
}
},
{
widgetId: defaultWidgetIds.ASSET_TABLE,
label: gettext('Asset properties'),
loadComponent: () => import('@c8y/ngx-components/widgets/implementations/asset-table').then(m => m.AssetTableGridSettingsComponent),
priority: 50,
expanded: true
},
{
widgetId: defaultWidgetIds.ASSET_TABLE,
label: gettext('Settings'),
loadComponent: () => import('@c8y/ngx-components/widgets/implementations/asset-table').then(m => m.AssetTableWidgetConfigComponent),
priority: 0,
expanded: true
}
];
}
get() {
return this.betaPreviewService.getState$('ui.asset-table.v2').pipe(map(state => {
if (state) {
return this.baseWidgetConfigDefinition;
}
return [];
}));
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetTableConfigFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetTableConfigFactory, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetTableConfigFactory, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}] });
const assetTableWidgetProviders = [
hookWidget(AssetTableWidgetFactory),
hookWidgetConfig(AssetTableConfigFactory),
hookPreview({
key: 'ui.asset-table.v2',
label: gettext('Asset table v2'),
description: () => import('@c8y/style/markdown-files/asset-table-widget-preview.md').then(m => m.default),
settings: {
reload: true
}
})
];
/**
* Generated bundle index. Do not edit.
*/
export { assetTableWidgetProviders };
//# sourceMappingURL=c8y-ngx-components-widgets-definitions-asset-table.mjs.map