UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

84 lines 10.5 kB
import { FormGroup } from '@angular/forms'; import { BaseColumn, gettext } from '@c8y/ngx-components'; import { RegistrationDateCellRendererComponent } from './registration-date.cell-renderer.component'; export class RegistrationDateDeviceGridColumn extends BaseColumn { constructor(initialColumnConfig) { super(initialColumnConfig); this.path = 'creationTime'; this.name = 'registrationDate'; this.header = gettext('Registration date'); this.cellRendererComponent = RegistrationDateCellRendererComponent; this.filterable = true; this.filteringConfig = { fields: [ { type: 'object', key: 'registrationDate', templateOptions: { label: gettext('Show items registered`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 } } ], validators: { atLeastOneFilled: { expression: (formGroup) => { const after = formGroup.get('after').value; const before = formGroup.get('before').value; return after || before; } } } } ], formGroup: new FormGroup({}), getFilter: model => { const filter = {}; const dates = model && model.registrationDate; if (dates && (dates.after || dates.before)) { filter.__and = []; if (dates.after) { const after = this.formatDate(dates.after); filter.__and.push({ 'creationTime.date': { __gt: after } }); } if (dates.before) { const before = this.formatDate(dates.before); filter.__and.push({ 'creationTime.date': { __lt: before } }); } } return filter; } }; this.sortable = true; this.sortingConfig = { pathSortingConfigs: [{ path: 'creationTime.date' }] }; } formatDate(dateToFormat) { return new Date(dateToFormat).toISOString(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cmF0aW9uLWRhdGUuZGV2aWNlLWdyaWQtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZGV2aWNlLWdyaWQvY29sdW1ucy9yZWdpc3RyYXRpb24tZGF0ZS5kZXZpY2UtZ3JpZC1jb2x1bW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQWdCLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRXBHLE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSxVQUFVO0lBQzlELFlBQVksbUJBQWtDO1FBQzVDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTNCLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMscUJBQXFCLEdBQUcscUNBQXFDLENBQUM7UUFFbkUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRztZQUNyQixNQUFNLEVBQUU7Z0JBQ047b0JBQ0UsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsR0FBRyxFQUFFLGtCQUFrQjtvQkFDdkIsZUFBZSxFQUFFO3dCQUNmLEtBQUssRUFBRSxPQUFPLENBQUMsc0NBQXNDLENBQUM7cUJBQ3ZEO29CQUNELFVBQVUsRUFBRTt3QkFDVjs0QkFDRSxJQUFJLEVBQUUsV0FBVzs0QkFDakIsR0FBRyxFQUFFLE9BQU87NEJBQ1osZUFBZSxFQUFFO2dDQUNmLEtBQUssRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDOzZCQUM3Qjs0QkFDRCxvQkFBb0IsRUFBRTtnQ0FDcEIseUJBQXlCLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNOzZCQUN6RDt5QkFDRjt3QkFDRDs0QkFDRSxJQUFJLEVBQUUsV0FBVzs0QkFDakIsR0FBRyxFQUFFLFFBQVE7NEJBQ2IsZUFBZSxFQUFFO2dDQUNmLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDOzZCQUMzQjs0QkFDRCxvQkFBb0IsRUFBRTtnQ0FDcEIseUJBQXlCLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLOzZCQUN4RDt5QkFDRjtxQkFDRjtvQkFDRCxVQUFVLEVBQUU7d0JBQ1YsZ0JBQWdCLEVBQUU7NEJBQ2hCLFVBQVUsRUFBRSxDQUFDLFNBQWMsRUFBRSxFQUFFO2dDQUM3QixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQztnQ0FDM0MsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0NBQzdDLE9BQU8sS0FBSyxJQUFJLE1BQU0sQ0FBQzs0QkFDekIsQ0FBQzt5QkFDRjtxQkFDRjtpQkFDRjthQUNGO1lBQ0QsU0FBUyxFQUFFLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUM1QixTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxLQUFLLEdBQUcsS0FBSyxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDOUMsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUMzQyxNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztvQkFDbEIsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBQ2hCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUMzQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQzs0QkFDaEIsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFO3lCQUNyQyxDQUFDLENBQUM7b0JBQ0wsQ0FBQztvQkFDRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQzt3QkFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzdDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDOzRCQUNoQixtQkFBbUIsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7eUJBQ3RDLENBQUMsQ0FBQztvQkFDTCxDQUFDO2dCQUNILENBQUM7Z0JBQ0QsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztTQUNGLENBQUM7UUFFRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ25CLGtCQUFrQixFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztTQUNwRCxDQUFDO0lBQ0osQ0FBQztJQUVTLFVBQVUsQ0FBQyxZQUFvQjtRQUN2QyxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJhc2VDb2x1bW4sIENvbHVtbkNvbmZpZywgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgUmVnaXN0cmF0aW9uRGF0ZUNlbGxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vcmVnaXN0cmF0aW9uLWRhdGUuY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuXG5leHBvcnQgY2xhc3MgUmVnaXN0cmF0aW9uRGF0ZURldmljZUdyaWRDb2x1bW4gZXh0ZW5kcyBCYXNlQ29sdW1uIHtcbiAgY29uc3RydWN0b3IoaW5pdGlhbENvbHVtbkNvbmZpZz86IENvbHVtbkNvbmZpZykge1xuICAgIHN1cGVyKGluaXRpYWxDb2x1bW5Db25maWcpO1xuXG4gICAgdGhpcy5wYXRoID0gJ2NyZWF0aW9uVGltZSc7XG4gICAgdGhpcy5uYW1lID0gJ3JlZ2lzdHJhdGlvbkRhdGUnO1xuICAgIHRoaXMuaGVhZGVyID0gZ2V0dGV4dCgnUmVnaXN0cmF0aW9uIGRhdGUnKTtcbiAgICB0aGlzLmNlbGxSZW5kZXJlckNvbXBvbmVudCA9IFJlZ2lzdHJhdGlvbkRhdGVDZWxsUmVuZGVyZXJDb21wb25lbnQ7XG5cbiAgICB0aGlzLmZpbHRlcmFibGUgPSB0cnVlO1xuICAgIHRoaXMuZmlsdGVyaW5nQ29uZmlnID0ge1xuICAgICAgZmllbGRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBrZXk6ICdyZWdpc3RyYXRpb25EYXRlJyxcbiAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdTaG93IGl0ZW1zIHJlZ2lzdGVyZWRgYmV0d2VlbiBkYXRlc2AnKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZmllbGRHcm91cDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnZGF0ZS10aW1lJyxcbiAgICAgICAgICAgICAga2V5OiAnYWZ0ZXInLFxuICAgICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnZnJvbWBkYXRlYCcpXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGV4cHJlc3Npb25Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgJ3RlbXBsYXRlT3B0aW9ucy5tYXhEYXRlJzogKG1vZGVsOiBhbnkpID0+IG1vZGVsPy5iZWZvcmVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ2RhdGUtdGltZScsXG4gICAgICAgICAgICAgIGtleTogJ2JlZm9yZScsXG4gICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCd0b2BkYXRlYCcpXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGV4cHJlc3Npb25Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgJ3RlbXBsYXRlT3B0aW9ucy5taW5EYXRlJzogKG1vZGVsOiBhbnkpID0+IG1vZGVsPy5hZnRlclxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSxcbiAgICAgICAgICB2YWxpZGF0b3JzOiB7XG4gICAgICAgICAgICBhdExlYXN0T25lRmlsbGVkOiB7XG4gICAgICAgICAgICAgIGV4cHJlc3Npb246IChmb3JtR3JvdXA6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFmdGVyID0gZm9ybUdyb3VwLmdldCgnYWZ0ZXInKS52YWx1ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmUgPSBmb3JtR3JvdXAuZ2V0KCdiZWZvcmUnKS52YWx1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWZ0ZXIgfHwgYmVmb3JlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgZm9ybUdyb3VwOiBuZXcgRm9ybUdyb3VwKHt9KSxcbiAgICAgIGdldEZpbHRlcjogbW9kZWwgPT4ge1xuICAgICAgICBjb25zdCBmaWx0ZXI6IGFueSA9IHt9O1xuICAgICAgICBjb25zdCBkYXRlcyA9IG1vZGVsICYmIG1vZGVsLnJlZ2lzdHJhdGlvbkRhdGU7XG4gICAgICAgIGlmIChkYXRlcyAmJiAoZGF0ZXMuYWZ0ZXIgfHwgZGF0ZXMuYmVmb3JlKSkge1xuICAgICAgICAgIGZpbHRlci5fX2FuZCA9IFtdO1xuICAgICAgICAgIGlmIChkYXRlcy5hZnRlcikge1xuICAgICAgICAgICAgY29uc3QgYWZ0ZXIgPSB0aGlzLmZvcm1hdERhdGUoZGF0ZXMuYWZ0ZXIpO1xuICAgICAgICAgICAgZmlsdGVyLl9fYW5kLnB1c2goe1xuICAgICAgICAgICAgICAnY3JlYXRpb25UaW1lLmRhdGUnOiB7IF9fZ3Q6IGFmdGVyIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZGF0ZXMuYmVmb3JlKSB7XG4gICAgICAgICAgICBjb25zdCBiZWZvcmUgPSB0aGlzLmZvcm1hdERhdGUoZGF0ZXMuYmVmb3JlKTtcbiAgICAgICAgICAgIGZpbHRlci5fX2FuZC5wdXNoKHtcbiAgICAgICAgICAgICAgJ2NyZWF0aW9uVGltZS5kYXRlJzogeyBfX2x0OiBiZWZvcmUgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWx0ZXI7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuc29ydGFibGUgPSB0cnVlO1xuICAgIHRoaXMuc29ydGluZ0NvbmZpZyA9IHtcbiAgICAgIHBhdGhTb3J0aW5nQ29uZmlnczogW3sgcGF0aDogJ2NyZWF0aW9uVGltZS5kYXRlJyB9XVxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgZm9ybWF0RGF0ZShkYXRlVG9Gb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGVUb0Zvcm1hdCkudG9JU09TdHJpbmcoKTtcbiAgfVxufVxuIl19