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.
63 lines
1.5 KiB
JavaScript
63 lines
1.5 KiB
JavaScript
|
|
class SmartDateDayPart extends AbstractSmartDateNumericPart
|
|
{
|
|
constructor()
|
|
{
|
|
super(SmartDateFormat.DAY_PLACEHOLDER, 2);
|
|
this.maximalValue = SmartDateDayPart.MAXIMAL_VALUE;
|
|
}
|
|
|
|
resetState()
|
|
{
|
|
super.resetState();
|
|
this.maximalValue = SmartDateDayPart.MAXIMAL_VALUE;
|
|
}
|
|
|
|
setMaximalValue(value)
|
|
{
|
|
if (value != value /* isNaN */ || value < SmartDateDayPart.MAXIMAL_VALUE_LOW_LIMIT || SmartDateDayPart.MAXIMAL_VALUE_HIGH_LIMIT < value) {
|
|
return;
|
|
}
|
|
|
|
this.maximalValue = value;
|
|
|
|
if (this._numericValue <= this.maximalValue) {
|
|
return;
|
|
}
|
|
|
|
this._numericValue = this.maximalValue;
|
|
this._defineCleanValue();
|
|
}
|
|
|
|
resetMaximalValue()
|
|
{
|
|
this.maximalValue = SmartDateDayPart.MAXIMAL_VALUE;
|
|
}
|
|
|
|
/**
|
|
* @param {Date} date
|
|
* @returns {String}
|
|
*/
|
|
formatDate(date)
|
|
{
|
|
return this.formatValue(date.getDate());
|
|
}
|
|
|
|
/**
|
|
* @param {SmartDateCheckState} state
|
|
*/
|
|
parse(state)
|
|
{
|
|
this._parsedValue = this.scanStringNumber(state);
|
|
this._numericValue = this.calculateNumericValue(this._parsedValue, this.maximalValue);
|
|
|
|
this._defineParsingState(this.maximalValue, state.isOver());
|
|
this._defineCleanValue();
|
|
}
|
|
}
|
|
|
|
SmartDateDayPart.MAXIMAL_VALUE_LOW_LIMIT = 28;
|
|
SmartDateDayPart.MAXIMAL_VALUE_HIGH_LIMIT = 31;
|
|
|
|
SmartDateDayPart.MAXIMAL_VALUE = SmartDateDayPart.MAXIMAL_VALUE_HIGH_LIMIT;
|