@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
61 lines • 7.89 kB
JavaScript
import { BaseColumn, getBasicInputArrayFormFieldConfig, gettext } from '@c8y/ngx-components';
import { entries } from 'lodash-es';
import { ServicesStatusCellRendererComponent } from './status.cell-renderer.component';
export class StatusGridColumn extends BaseColumn {
constructor(statusOptionsService, initialColumnConfig) {
super(initialColumnConfig);
this.name = 'status';
this.path = 'status';
this.header = gettext('Status');
this.dataType = "icon" /* ColumnDataType.Icon */;
this.cellRendererComponent = ServicesStatusCellRendererComponent;
this.filterable = true;
this.resizable = false;
this.filteringConfig = {
fields: [
{
key: 'statusOptions',
type: 'object',
props: {
label: gettext('Show devices with status')
},
fieldGroup: [
...statusOptionsService.options.map(option => ({
key: option.key,
type: 'switch',
props: {
label: option.label,
optionDataCy: option.key
}
}))
]
},
...getBasicInputArrayFormFieldConfig({
key: 'custom',
label: gettext('or filter by custom status'),
addText: gettext('Add next`custom status`'),
tooltip: gettext('Use * as a wildcard character'),
placeholder: gettext('restarting`SERVICE_STATUS`'),
optional: true
})
],
getFilter(model) {
const filter = {};
filter.status = {
__in: [
...entries(model?.statusOptions || {})
.filter(([_, value]) => !!value)
.map(([key, _]) => key),
...model.custom.filter(c => !!c)
]
};
return filter;
}
};
this.sortable = true;
this.sortingConfig = {
pathSortingConfigs: [{ path: this.path }]
};
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLmdyaWQtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvc2VydmljZXMtZGV2aWNlLXRhYi9jb2x1bW5zL3N0YXR1cy5ncmlkLWNvbHVtbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUdWLGlDQUFpQyxFQUNqQyxPQUFPLEVBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXZGLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxVQUFVO0lBQzlDLFlBQVksb0JBQTBDLEVBQUUsbUJBQWtDO1FBQ3hGLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLG1DQUFzQixDQUFDO1FBQ3BDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxtQ0FBbUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV2QixJQUFJLENBQUMsZUFBZSxHQUFHO1lBQ3JCLE1BQU0sRUFBRTtnQkFDTjtvQkFDRSxHQUFHLEVBQUUsZUFBZTtvQkFDcEIsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsS0FBSyxFQUFFO3dCQUNMLEtBQUssRUFBRSxPQUFPLENBQUMsMEJBQTBCLENBQUM7cUJBQzNDO29CQUNELFVBQVUsRUFBRTt3QkFDVixHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzRCQUM3QyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUc7NEJBQ2YsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsS0FBSyxFQUFFO2dDQUNMLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztnQ0FDbkIsWUFBWSxFQUFFLE1BQU0sQ0FBQyxHQUFHOzZCQUN6Qjt5QkFDRixDQUFDLENBQUM7cUJBQ0o7aUJBQ0Y7Z0JBQ0QsR0FBRyxpQ0FBaUMsQ0FBQztvQkFDbkMsR0FBRyxFQUFFLFFBQVE7b0JBQ2IsS0FBSyxFQUFFLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQztvQkFDNUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQztvQkFDM0MsT0FBTyxFQUFFLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQztvQkFDakQsV0FBVyxFQUFFLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQztvQkFDbEQsUUFBUSxFQUFFLElBQUk7aUJBQ2YsQ0FBQzthQUNIO1lBQ0QsU0FBUyxDQUFDLEtBQUs7Z0JBQ2IsTUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFDO2dCQUN2QixNQUFNLENBQUMsTUFBTSxHQUFHO29CQUNkLElBQUksRUFBRTt3QkFDSixHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsYUFBYSxJQUFJLEVBQUUsQ0FBQzs2QkFDbkMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7NkJBQy9CLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUM7d0JBQ3pCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNqQztpQkFDRixDQUFDO2dCQUNGLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7U0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixrQkFBa0IsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMxQyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZUNvbHVtbixcbiAgQ29sdW1uQ29uZmlnLFxuICBDb2x1bW5EYXRhVHlwZSxcbiAgZ2V0QmFzaWNJbnB1dEFycmF5Rm9ybUZpZWxkQ29uZmlnLFxuICBnZXR0ZXh0XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgZW50cmllcyB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTdGF0dXNPcHRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3N0YXR1cy1vcHRpb25zJztcbmltcG9ydCB7IFNlcnZpY2VzU3RhdHVzQ2VsbFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9zdGF0dXMuY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuXG5leHBvcnQgY2xhc3MgU3RhdHVzR3JpZENvbHVtbiBleHRlbmRzIEJhc2VDb2x1bW4ge1xuICBjb25zdHJ1Y3RvcihzdGF0dXNPcHRpb25zU2VydmljZTogU3RhdHVzT3B0aW9uc1NlcnZpY2UsIGluaXRpYWxDb2x1bW5Db25maWc/OiBDb2x1bW5Db25maWcpIHtcbiAgICBzdXBlcihpbml0aWFsQ29sdW1uQ29uZmlnKTtcbiAgICB0aGlzLm5hbWUgPSAnc3RhdHVzJztcbiAgICB0aGlzLnBhdGggPSAnc3RhdHVzJztcbiAgICB0aGlzLmhlYWRlciA9IGdldHRleHQoJ1N0YXR1cycpO1xuICAgIHRoaXMuZGF0YVR5cGUgPSBDb2x1bW5EYXRhVHlwZS5JY29uO1xuICAgIHRoaXMuY2VsbFJlbmRlcmVyQ29tcG9uZW50ID0gU2VydmljZXNTdGF0dXNDZWxsUmVuZGVyZXJDb21wb25lbnQ7XG4gICAgdGhpcy5maWx0ZXJhYmxlID0gdHJ1ZTtcbiAgICB0aGlzLnJlc2l6YWJsZSA9IGZhbHNlO1xuXG4gICAgdGhpcy5maWx0ZXJpbmdDb25maWcgPSB7XG4gICAgICBmaWVsZHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGtleTogJ3N0YXR1c09wdGlvbnMnLFxuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnU2hvdyBkZXZpY2VzIHdpdGggc3RhdHVzJylcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAgIC4uLnN0YXR1c09wdGlvbnNTZXJ2aWNlLm9wdGlvbnMubWFwKG9wdGlvbiA9PiAoe1xuICAgICAgICAgICAgICBrZXk6IG9wdGlvbi5rZXksXG4gICAgICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLFxuICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgIGxhYmVsOiBvcHRpb24ubGFiZWwsXG4gICAgICAgICAgICAgICAgb3B0aW9uRGF0YUN5OiBvcHRpb24ua2V5XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgLi4uZ2V0QmFzaWNJbnB1dEFycmF5Rm9ybUZpZWxkQ29uZmlnKHtcbiAgICAgICAgICBrZXk6ICdjdXN0b20nLFxuICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdvciBmaWx0ZXIgYnkgY3VzdG9tIHN0YXR1cycpLFxuICAgICAgICAgIGFkZFRleHQ6IGdldHRleHQoJ0FkZCBuZXh0YGN1c3RvbSBzdGF0dXNgJyksXG4gICAgICAgICAgdG9vbHRpcDogZ2V0dGV4dCgnVXNlICogYXMgYSB3aWxkY2FyZCBjaGFyYWN0ZXInKSxcbiAgICAgICAgICBwbGFjZWhvbGRlcjogZ2V0dGV4dCgncmVzdGFydGluZ2BTRVJWSUNFX1NUQVRVU2AnKSxcbiAgICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgICAgICB9KVxuICAgICAgXSxcbiAgICAgIGdldEZpbHRlcihtb2RlbCkge1xuICAgICAgICBjb25zdCBmaWx0ZXI6IGFueSA9IHt9O1xuICAgICAgICBmaWx0ZXIuc3RhdHVzID0ge1xuICAgICAgICAgIF9faW46IFtcbiAgICAgICAgICAgIC4uLmVudHJpZXMobW9kZWw/LnN0YXR1c09wdGlvbnMgfHwge30pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKFtfLCB2YWx1ZV0pID0+ICEhdmFsdWUpXG4gICAgICAgICAgICAgIC5tYXAoKFtrZXksIF9dKSA9PiBrZXkpLFxuICAgICAgICAgICAgLi4ubW9kZWwuY3VzdG9tLmZpbHRlcihjID0+ICEhYylcbiAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBmaWx0ZXI7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuc29ydGFibGUgPSB0cnVlO1xuICAgIHRoaXMuc29ydGluZ0NvbmZpZyA9IHtcbiAgICAgIHBhdGhTb3J0aW5nQ29uZmlnczogW3sgcGF0aDogdGhpcy5wYXRoIH1dXG4gICAgfTtcbiAgfVxufVxuIl19