Merge remote-tracking branch 'origin/feature/SUPPORT-9533' into develop

This commit is contained in:
adel.ka 2025-11-05 13:39:45 +03:00
commit 6c39d39a7a

View file

@ -5,7 +5,7 @@ import {
SuppressKeyboardEventParams
} from "ag-grid-community";
import {
DateTimeUtil,
ComparisonUtils,
DefaultTooltip,
GridCellTooltipUtils,
GridColumnComparatorUtils,
@ -19,6 +19,8 @@ import {StaticGridColumn} from "../../../generated/ru/micord/ervu/property/grid/
import {CustomGridColumnFilterUtils} from "./filter/CustomGridColumnFilterUtils";
export class StaticColumnInitializer {
private static readonly ZONED_DATE_TIME_FORMAT = 'DD.MM.YYYY HH:mm:ss (Z)';
private static readonly ZONED_DATE_TIME_TYPE = 'java.time.ZonedDateTime';
public static columnToColumnDef(gridRef: any, column: StaticGridColumn) {
const columnDef: ColDef = {};
@ -54,7 +56,12 @@ export class StaticColumnInitializer {
if (type != null) {
if (gridRef.getRowModelType() == "clientSide") {
columnDef.comparator = GridColumnComparatorUtils.columnComparator(type);
if (type === StaticColumnInitializer.ZONED_DATE_TIME_TYPE) {
columnDef.comparator = StaticColumnInitializer.zonedDateTimeComparator();
}
else {
columnDef.comparator = GridColumnComparatorUtils.columnComparator(type);
}
}
columnDef.valueFormatter = GridValueFormatterUtils.columnFormatter(type);
columnDef.cellRenderer = gridRef.createRenderer(column);
@ -71,7 +78,7 @@ export class StaticColumnInitializer {
if (!cellValue) {
return -1;
}
const cellMoment = moment(cellValue, 'DD.MM.YYYY HH:mm:ss (Z)');
const cellMoment = moment(cellValue, StaticColumnInitializer.ZONED_DATE_TIME_FORMAT);
if (!cellMoment.isValid()) {
return -1;
@ -118,4 +125,12 @@ export class StaticColumnInitializer {
return columnDef;
}
private static zonedDateTimeComparator(): (valueA: any, valueB: any) => number {
return (valueA: any, valueB: any) => {
const momentA = moment(valueA, StaticColumnInitializer.ZONED_DATE_TIME_FORMAT);
const momentB = moment(valueB, StaticColumnInitializer.ZONED_DATE_TIME_FORMAT);
return ComparisonUtils.momentCompare(momentA, momentB);
};
}
}