@zohodesk/components
Version:
In this Package, we Provide Some Basic Components to Build Web App
96 lines (83 loc) • 2.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getChangedMonth = getChangedMonth;
var _index = require("./index");
var _Common = require("../../utils/Common");
/** * Methods ** */
function getChangedMonth(values, event, focusOrders, keyActions) {
var keyCode = event.keyCode,
which = event.which;
var _values$day = values.day,
day = _values$day === void 0 ? '' : _values$day,
_values$month = values.month,
month = _values$month === void 0 ? '' : _values$month,
_values$year = values.year,
year = _values$year === void 0 ? '' : _values$year;
var isChanged = false;
var newDay = Number.parseInt(day) || 0;
var newMonth = Number.parseInt(month) || 0;
var newYear = Number.parseInt(year) || 0;
var focusOrder = focusOrders.focusOrder;
var newFocusOrder = focusOrder;
var isNewType = (0, _index.getIsNewValueType)(focusOrders, keyActions);
var _getMonthDetails = (0, _index.getMonthDetails)(),
startPoint = _getMonthDetails.startPoint,
endPoint = _getMonthDetails.endPoint;
if (keyCode === 38) {
//up arrow
if (newMonth === endPoint || !newMonth) {
isChanged = true;
newMonth = startPoint;
} else if (newMonth) {
isChanged = true;
newMonth += 1;
}
} else if (keyCode === 40) {
//down arrow
if (newMonth === startPoint || !newMonth) {
isChanged = true;
newMonth = endPoint;
} else if (newMonth) {
isChanged = true;
newMonth -= 1;
}
} else if ((0, _index.getIsNumberTyped)(event)) {
var keyString = (0, _Common.getKeyValue)(event);
var newValue = isNewType ? keyString : month.toString() + keyString;
newValue = Number.parseInt(newValue);
if (isNewType) {
isChanged = true;
if (newValue * 10 > endPoint) {
newFocusOrder += 1;
}
newMonth = newValue;
} else {
isChanged = true;
newFocusOrder += 1;
if (newValue > endPoint) {
newMonth = endPoint;
} else if (!newValue) {
newMonth = startPoint;
} else {
newMonth = newValue;
}
}
} else if ((0, _index.getIsDeleteTyped)(keyCode)) {
isChanged = true;
newMonth = '';
}
var dayEnd = (0, _index.getDayEnd)(newMonth, newYear);
var dayChanged = false;
if (newDay && newDay > dayEnd) {
dayChanged = true;
newDay = dayEnd;
}
return {
day: dayChanged ? newDay : day,
month: newMonth,
isChanged: isChanged,
focusOrder: newFocusOrder
};
}