@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
75 lines • 9.22 kB
JavaScript
import { FormGroup } from '@angular/forms';
import { BaseColumn, gettext } from '@c8y/ngx-components';
import { LastUpdatedDateCellRendererComponent } from './last-updated-date.cell-renderer.component';
export class LastUpdatedDateGridColumn extends BaseColumn {
constructor(initialColumnConfig) {
super(initialColumnConfig);
this.path = 'lastUpdated';
this.name = 'lastUpdatedDate';
this.header = gettext('Last updated');
this.cellRendererComponent = LastUpdatedDateCellRendererComponent;
this.filterable = true;
this.filteringConfig = {
fields: [
{
type: 'object',
key: 'lastUpdated',
templateOptions: {
label: gettext('Show services updated`between dates`')
},
fieldGroup: [
{
type: 'date-time',
key: 'after',
templateOptions: {
label: gettext('from`date`')
},
expressionProperties: {
'templateOptions.maxDate': (model) => model?.before
}
},
{
type: 'date-time',
key: 'before',
templateOptions: {
label: gettext('to`date`')
},
expressionProperties: {
'templateOptions.minDate': (model) => model?.after
}
}
]
}
],
formGroup: new FormGroup({}),
getFilter: model => {
const filter = {};
const dates = model && model.lastUpdated;
if (dates && (dates.after || dates.before)) {
filter.__and = [];
if (dates.after) {
const after = this.formatDate(dates.after);
filter.__and.push({
'lastUpdated.date': { __gt: after }
});
}
if (dates.before) {
const before = this.formatDate(dates.before);
filter.__and.push({
'lastUpdated.date': { __lt: before }
});
}
}
return filter;
}
};
this.sortable = true;
this.sortingConfig = {
pathSortingConfigs: [{ path: 'lastUpdated.date' }]
};
}
formatDate(dateToFormat) {
return new Date(dateToFormat).toISOString();
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFzdC11cGRhdGVkLWRhdGUuZGV2aWNlLWdyaWQtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvc2VydmljZXMtZGV2aWNlLXRhYi9jb2x1bW5zL2xhc3QtdXBkYXRlZC1kYXRlLmRldmljZS1ncmlkLWNvbHVtbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFbkcsTUFBTSxPQUFPLHlCQUEwQixTQUFRLFVBQVU7SUFDdkQsWUFBWSxtQkFBa0M7UUFDNUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFM0IsSUFBSSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsb0NBQW9DLENBQUM7UUFFbEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRztZQUNyQixNQUFNLEVBQUU7Z0JBQ047b0JBQ0UsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsR0FBRyxFQUFFLGFBQWE7b0JBQ2xCLGVBQWUsRUFBRTt3QkFDZixLQUFLLEVBQUUsT0FBTyxDQUFDLHNDQUFzQyxDQUFDO3FCQUN2RDtvQkFDRCxVQUFVLEVBQUU7d0JBQ1Y7NEJBQ0UsSUFBSSxFQUFFLFdBQVc7NEJBQ2pCLEdBQUcsRUFBRSxPQUFPOzRCQUNaLGVBQWUsRUFBRTtnQ0FDZixLQUFLLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQzs2QkFDN0I7NEJBQ0Qsb0JBQW9CLEVBQUU7Z0NBQ3BCLHlCQUF5QixFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTTs2QkFDekQ7eUJBQ0Y7d0JBQ0Q7NEJBQ0UsSUFBSSxFQUFFLFdBQVc7NEJBQ2pCLEdBQUcsRUFBRSxRQUFROzRCQUNiLGVBQWUsRUFBRTtnQ0FDZixLQUFLLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQzs2QkFDM0I7NEJBQ0Qsb0JBQW9CLEVBQUU7Z0NBQ3BCLHlCQUF5QixFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSzs2QkFDeEQ7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtZQUNELFNBQVMsRUFBRSxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDNUIsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUM7Z0JBQ3ZCLE1BQU0sS0FBSyxHQUFHLEtBQUssSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDO2dCQUN6QyxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQzNDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUNsQixJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDaEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQzNDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDOzRCQUNoQixrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7eUJBQ3BDLENBQUMsQ0FBQztvQkFDTCxDQUFDO29CQUNELElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDN0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7NEJBQ2hCLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTt5QkFDckMsQ0FBQyxDQUFDO29CQUNMLENBQUM7Z0JBQ0gsQ0FBQztnQkFDRCxPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO1NBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1NBQ25ELENBQUM7SUFDSixDQUFDO0lBRVMsVUFBVSxDQUFDLFlBQW9CO1FBQ3ZDLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFzZUNvbHVtbiwgQ29sdW1uQ29uZmlnLCBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBMYXN0VXBkYXRlZERhdGVDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL2xhc3QtdXBkYXRlZC1kYXRlLmNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcblxuZXhwb3J0IGNsYXNzIExhc3RVcGRhdGVkRGF0ZUdyaWRDb2x1bW4gZXh0ZW5kcyBCYXNlQ29sdW1uIHtcbiAgY29uc3RydWN0b3IoaW5pdGlhbENvbHVtbkNvbmZpZz86IENvbHVtbkNvbmZpZykge1xuICAgIHN1cGVyKGluaXRpYWxDb2x1bW5Db25maWcpO1xuXG4gICAgdGhpcy5wYXRoID0gJ2xhc3RVcGRhdGVkJztcbiAgICB0aGlzLm5hbWUgPSAnbGFzdFVwZGF0ZWREYXRlJztcbiAgICB0aGlzLmhlYWRlciA9IGdldHRleHQoJ0xhc3QgdXBkYXRlZCcpO1xuICAgIHRoaXMuY2VsbFJlbmRlcmVyQ29tcG9uZW50ID0gTGFzdFVwZGF0ZWREYXRlQ2VsbFJlbmRlcmVyQ29tcG9uZW50O1xuXG4gICAgdGhpcy5maWx0ZXJhYmxlID0gdHJ1ZTtcbiAgICB0aGlzLmZpbHRlcmluZ0NvbmZpZyA9IHtcbiAgICAgIGZpZWxkczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAga2V5OiAnbGFzdFVwZGF0ZWQnLFxuICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1Nob3cgc2VydmljZXMgdXBkYXRlZGBiZXR3ZWVuIGRhdGVzYCcpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmaWVsZEdyb3VwOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdkYXRlLXRpbWUnLFxuICAgICAgICAgICAgICBrZXk6ICdhZnRlcicsXG4gICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdmcm9tYGRhdGVgJylcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZXhwcmVzc2lvblByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAndGVtcGxhdGVPcHRpb25zLm1heERhdGUnOiAobW9kZWw6IGFueSkgPT4gbW9kZWw/LmJlZm9yZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnZGF0ZS10aW1lJyxcbiAgICAgICAgICAgICAga2V5OiAnYmVmb3JlJyxcbiAgICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ3RvYGRhdGVgJylcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZXhwcmVzc2lvblByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAndGVtcGxhdGVPcHRpb25zLm1pbkRhdGUnOiAobW9kZWw6IGFueSkgPT4gbW9kZWw/LmFmdGVyXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBmb3JtR3JvdXA6IG5ldyBGb3JtR3JvdXAoe30pLFxuICAgICAgZ2V0RmlsdGVyOiBtb2RlbCA9PiB7XG4gICAgICAgIGNvbnN0IGZpbHRlcjogYW55ID0ge307XG4gICAgICAgIGNvbnN0IGRhdGVzID0gbW9kZWwgJiYgbW9kZWwubGFzdFVwZGF0ZWQ7XG4gICAgICAgIGlmIChkYXRlcyAmJiAoZGF0ZXMuYWZ0ZXIgfHwgZGF0ZXMuYmVmb3JlKSkge1xuICAgICAgICAgIGZpbHRlci5fX2FuZCA9IFtdO1xuICAgICAgICAgIGlmIChkYXRlcy5hZnRlcikge1xuICAgICAgICAgICAgY29uc3QgYWZ0ZXIgPSB0aGlzLmZvcm1hdERhdGUoZGF0ZXMuYWZ0ZXIpO1xuICAgICAgICAgICAgZmlsdGVyLl9fYW5kLnB1c2goe1xuICAgICAgICAgICAgICAnbGFzdFVwZGF0ZWQuZGF0ZSc6IHsgX19ndDogYWZ0ZXIgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChkYXRlcy5iZWZvcmUpIHtcbiAgICAgICAgICAgIGNvbnN0IGJlZm9yZSA9IHRoaXMuZm9ybWF0RGF0ZShkYXRlcy5iZWZvcmUpO1xuICAgICAgICAgICAgZmlsdGVyLl9fYW5kLnB1c2goe1xuICAgICAgICAgICAgICAnbGFzdFVwZGF0ZWQuZGF0ZSc6IHsgX19sdDogYmVmb3JlIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsdGVyO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLnNvcnRhYmxlID0gdHJ1ZTtcbiAgICB0aGlzLnNvcnRpbmdDb25maWcgPSB7XG4gICAgICBwYXRoU29ydGluZ0NvbmZpZ3M6IFt7IHBhdGg6ICdsYXN0VXBkYXRlZC5kYXRlJyB9XVxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgZm9ybWF0RGF0ZShkYXRlVG9Gb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGVUb0Zvcm1hdCkudG9JU09TdHJpbmcoKTtcbiAgfVxufVxuIl19