blob: abe2d6e1620fe915e9fd483e713727168dd6bb3c [file] [log] [blame]
/********************************************************************************
* Copyright © 2018 Mettenmeier GmbH.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
********************************************************************************/
import { NgbDateStruct, NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';
// Formatter using "dd-MM-yyyy" string format:
export class NgbDateStringParserFormatter extends NgbDateParserFormatter {
parse(value: string): NgbDateStruct {
if (!value) { return null; }
let parts = value.trim().split('-');
let dateObj: NgbDateStruct;
if (parts.length === 1) {
parts = value.trim().split('.');
dateObj = {
day: parts.length > 0 ? parseInt(parts[0], 10) : null,
month: parts.length > 1 ? parseInt(parts[1], 10) : null,
year: parts.length > 2 ? parseInt(parts[2], 10) : null
};
} else {
dateObj = {
year: parts.length > 0 ? parseInt(parts[0], 10) : null,
month: parts.length > 1 ? parseInt(parts[1], 10) : null,
day: parts.length > 2 ? parseInt(parts[2], 10) : null,
};
}
return dateObj;
}
format(date: NgbDateStruct): string {
const pad = (n) => Number.isInteger(n) ? ('0' + n).substr(-2) : '';
return date ? `${pad(date.day)}.${pad(date.month)}.${date.year}` : '';
}
}