@zohodesk/components
Version:
Dot UI is a customizable React component library built to deliver a clean, accessible, and developer-friendly UI experience. It offers a growing set of reusable components designed to align with modern design systems and streamline application development
121 lines (105 loc) • 3.5 kB
JavaScript
;
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
};
}