UNPKG

@zohodesk/components

Version:

In this Package, we Provide Some Basic Components to Build Web App

121 lines (105 loc) 3.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getChangedYear = getChangedYear; var _index = require("./index"); var _Common = require("../../utils/Common"); /** * Methods ** */ function getChangedYear(values, event, focusOrders, keyActions, _ref) { var yearInfo = _ref.yearInfo; var keyCode = event.keyCode, which = event.which; var _values$year = values.year, year = _values$year === void 0 ? '' : _values$year; var _values$day = values.day, day = _values$day === void 0 ? '' : _values$day, _values$month = values.month, month = _values$month === void 0 ? '' : _values$month; var isChanged = false; //Year Two Digit case var yearLength = yearInfo.length; var oldYear = year; // For get Centuries if (yearLength === 2) { year = (0, _index.convertYearToTwoDigit)(year).toString(); } 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 _getYearDetails = (0, _index.getYearDetails)(yearLength), startPoint = _getYearDetails.startPoint, endPoint = _getYearDetails.endPoint, currentYear = _getYearDetails.currentYear; if (keyCode === 38) { //up arrow if (newYear === endPoint) { isChanged = true; newYear = startPoint; } else if ((0, _index.getIsEmptyYear)(newYear, yearLength)) { isChanged = true; newYear = currentYear; } else if (!(0, _index.getIsEmptyYear)(newYear, yearLength)) { isChanged = true; newYear += 1; } } else if (keyCode === 40) { //down arrow if (newYear === startPoint) { isChanged = true; newYear = endPoint; } else if ((0, _index.getIsEmptyYear)(newYear, yearLength)) { isChanged = true; newYear = currentYear; } else if (!(0, _index.getIsEmptyYear)(newYear, yearLength)) { isChanged = true; newYear -= 1; } } else if ((0, _index.getIsNumberTyped)(event)) { var keyString = (0, _Common.getKeyValue)(event); var newValue = isNewType ? keyString : year.toString() + keyString; var newValueString = newValue || ''; newValue = Number.parseInt(newValue); if (isNewType) { isChanged = true; newYear = newValue; } else { isChanged = true; if (newValue * 10 > endPoint) { newFocusOrder += 1; } if (newValue > endPoint) { // newYear = endPoint; newYear = currentYear; } else if (newValueString.length === yearLength && !newValue) { newFocusOrder += 1; newYear = startPoint; } else if (!newValue) { newYear = newValueString; } else if (newValue * 10 > endPoint && (endPoint < newValue || startPoint > newValue)) { newYear = currentYear; } else { newYear = newValue; } } } else if ((0, _index.getIsDeleteTyped)(keyCode)) { isChanged = true; newYear = ''; } if (yearLength === 2) { newYear = (0, _index.convertTwoDigitToYear)(newYear, oldYear); } var dayEnd = (0, _index.getDayEnd)(newMonth, newYear); var dayChanged = false; if (newDay && newDay > dayEnd) { dayChanged = true; newDay = dayEnd; } return { day: dayChanged ? newDay : day, year: newYear, isChanged: isChanged, focusOrder: newFocusOrder }; }