You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
aConnect-UX/src/app/utils/app.constants.ts

52 lines
1.3 KiB
TypeScript

import { AbstractControl, ValidationErrors, ValidatorFn } from "@angular/forms";
export const CONSTANTS = {
POR_ORGACODE: '0005',
};
export const pageSizeOptions = [
{ value: 10, label: '10 items' },
{ value: 20, label: '20 items' },
{ value: 50, label: '50 items' },
];
export const toDateAfterFromDateValidator: ValidatorFn = (
control: AbstractControl
): ValidationErrors | null => {
const from = control.get('fromDate')?.value;
const to = control.get('toDate')?.value;
if (!from || !to) return null;
// Normalize to midnight to avoid timezone bugs
const fromDate = new Date(from);
const toDate = new Date(to);
fromDate.setHours(0, 0, 0, 0);
toDate.setHours(0, 0, 0, 0);
const today = new Date();
today.setHours(0, 0, 0, 0);
// Rule 1: fromDate must be < toDate
if (fromDate >= toDate) {
return { fromDateGreaterThanOrEqualToToDate: true };
}
// Rule 2: no future dates
if (fromDate > today || toDate > today) {
return { futureDateNotAllowed: true };
}
return null;
};
export const EXCEL_FILE_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
export const EXCEL_FILE_EXTENSION = '.xlsx';
export const LOGGING_DETAILS_FILE_NAME = 'logging-manager-details';
export const TRANSACTION_LOGS_FILE_NAME = 'transaction-logs-details';