mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 10:04:11 +00:00
37 lines
1.5 KiB
TypeScript
37 lines
1.5 KiB
TypeScript
import { FieldParser } from './field-parser';
|
|
import { DynamicDatePickerModelConfig } from '@ng-dynamic-forms/core';
|
|
import { DynamicDsDatePickerModel } from '../ds-dynamic-form-ui/models/date-picker/date-picker.model';
|
|
import { isNotEmpty } from '../../../empty.util';
|
|
import { DS_DATE_PICKER_SEPARATOR } from '../ds-dynamic-form-ui/models/date-picker/date-picker.component';
|
|
import { FormFieldMetadataValueObject } from '../models/form-field-metadata-value.model';
|
|
|
|
export class DateFieldParser extends FieldParser {
|
|
|
|
public modelFactory(fieldValue?: FormFieldMetadataValueObject | any, label?: boolean): any {
|
|
let malformedDate = false;
|
|
const inputDateModelConfig: DynamicDatePickerModelConfig = this.initModel(null, label);
|
|
|
|
inputDateModelConfig.toggleIcon = 'fa fa-calendar';
|
|
this.setValues(inputDateModelConfig as any, fieldValue);
|
|
// Init Data and validity check
|
|
if (isNotEmpty(inputDateModelConfig.value)) {
|
|
const value = inputDateModelConfig.value.toString();
|
|
if (value.length >= 4) {
|
|
const valuesArray = value.split(DS_DATE_PICKER_SEPARATOR);
|
|
if (valuesArray.length < 4) {
|
|
for (let i = 0; i < valuesArray.length; i++) {
|
|
const len = i === 0 ? 4 : 2;
|
|
if (valuesArray[i].length !== len) {
|
|
malformedDate = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
const dateModel = new DynamicDsDatePickerModel(inputDateModelConfig);
|
|
dateModel.malformedDate = malformedDate;
|
|
return dateModel;
|
|
}
|
|
}
|