@zohodesk/components
Version:
In this Package, we Provide Some Basic Components to Build Web App
240 lines (204 loc) • 8.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getChangedHour = getChangedHour;
exports.getChangedMinute = getChangedMinute;
exports.getChangedNoon = getChangedNoon;
var _index = require("./index");
var _Common = require("../../utils/Common");
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function getChangedHour(values, event, focusOrders, keyActions) {
var _ref = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {},
_ref$is24Hour = _ref.is24Hour,
is24Hour = _ref$is24Hour === void 0 ? false : _ref$is24Hour;
var keyCode = event.keyCode,
which = event.which;
var _values$hour = values.hour,
hour = _values$hour === void 0 ? '' : _values$hour;
var isChanged = false;
var newHour = Number.parseInt(hour) || 0;
var focusOrder = focusOrders.focusOrder;
var newFocusOrder = focusOrder;
var isNewType = (0, _index.getIsNewValueType)(focusOrders, keyActions);
var _getHourDetails = (0, _index.getHourDetails)(is24Hour),
startPoint = _getHourDetails.startPoint,
endPoint = _getHourDetails.endPoint;
if (keyCode === 38) {
//up arrow
if (newHour === endPoint || (0, _index.getIsEmptyHour)(newHour, is24Hour)) {
isChanged = true;
newHour = startPoint;
} else if (!(0, _index.getIsEmptyHour)(newHour, is24Hour)) {
isChanged = true;
newHour += 1;
}
} else if (keyCode === 40) {
//down arrow
if (newHour === startPoint || (0, _index.getIsEmptyHour)(newHour, is24Hour)) {
isChanged = true;
newHour = endPoint;
} else if (!(0, _index.getIsEmptyHour)(newHour, is24Hour)) {
isChanged = true;
newHour -= 1;
}
} else if ((0, _index.getIsNumberTyped)(event)) {
var keyString = (0, _Common.getKeyValue)(event);
var newValue = isNewType ? keyString : hour.toString() + keyString;
newValue = Number.parseInt(newValue);
if (isNewType) {
isChanged = true;
if (newValue * 10 > endPoint) {
newFocusOrder += 1;
}
newHour = newValue;
} else {
isChanged = true;
newFocusOrder += 1;
if (newValue > endPoint) {
newHour = endPoint;
} else if (!newValue) {
newHour = startPoint;
} else {
newHour = newValue;
}
}
} else if ((0, _index.getIsDeleteTyped)(keyCode)) {
isChanged = true;
newHour = '';
}
return {
hour: newHour,
isChanged: isChanged,
focusOrder: newFocusOrder
};
}
function getChangedMinute(values, event, focusOrders, keyActions) {
var keyCode = event.keyCode,
which = event.which;
var _values$minute = values.minute,
minute = _values$minute === void 0 ? '' : _values$minute;
var isChanged = false;
var isEmptyMinute = (0, _Common.getIsEmptyValue)(minute);
var newMinute = isEmptyMinute ? '' : Number.parseInt(minute);
var focusOrder = focusOrders.focusOrder;
var newFocusOrder = focusOrder;
var isNewType = (0, _index.getIsNewValueType)(focusOrders, keyActions);
var _getMinuteDetails = (0, _index.getMinuteDetails)(),
startPoint = _getMinuteDetails.startPoint,
endPoint = _getMinuteDetails.endPoint;
if (keyCode === 38) {
//up arrow
if (newMinute === endPoint || isEmptyMinute) {
isChanged = true;
newMinute = startPoint;
} else if (!isEmptyMinute) {
isChanged = true;
newMinute += 1;
}
} else if (keyCode === 40) {
//down arrow
if (newMinute === startPoint || isEmptyMinute) {
isChanged = true;
newMinute = endPoint;
} else if (newMinute) {
isChanged = true;
newMinute -= 1;
}
} else if ((0, _index.getIsNumberTyped)(event)) {
var keyString = (0, _Common.getKeyValue)(event);
var newValue = isNewType ? keyString : minute.toString() + keyString;
newValue = Number.parseInt(newValue);
if (isNewType) {
isChanged = true;
if (newValue * 10 > endPoint) {
newFocusOrder += 1;
}
newMinute = newValue;
} else {
isChanged = true;
newFocusOrder += 1;
if (newValue > endPoint) {
newMinute = endPoint;
} else {
newMinute = newValue;
}
}
} else if ((0, _index.getIsDeleteTyped)(keyCode)) {
isChanged = true;
newMinute = '';
}
return {
minute: newMinute,
isChanged: isChanged,
focusOrder: newFocusOrder
};
}
function getChangedNoon(values, event, focusOrders
/*keyActions*/
) {
var keyCode = event.keyCode,
which = event.which;
var _values$noon = values.noon,
noon = _values$noon === void 0 ? '' : _values$noon;
var isChanged = false;
var newNoon = noon;
var focusOrder = focusOrders.focusOrder;
var newFocusOrder = focusOrder; // const isNewType = getIsNewValueType(focusOrders, keyActions);
var _getNoonDetails = (0, _index.getNoonDetails)(),
allowedValues = _getNoonDetails.allowedValues;
var _allowedValues = _slicedToArray(allowedValues, 1),
startPoint = _allowedValues[0];
var endPoint = allowedValues[allowedValues.length - 1];
var currentNoonIndex = allowedValues.indexOf(newNoon);
if (keyCode === 38) {
//up arrow
if (newNoon === endPoint || !newNoon) {
isChanged = true;
newNoon = startPoint;
} else if (newNoon) {
isChanged = true;
newNoon = allowedValues[currentNoonIndex + 1];
}
} else if (keyCode === 40) {
//down arrow
if (newNoon === startPoint || !newNoon) {
isChanged = true;
newNoon = endPoint;
} else if (newNoon) {
isChanged = true;
newNoon = allowedValues[currentNoonIndex - 1];
}
} else if ((0, _index.getIsNoonValueTyped)(event)) {
var keyString = (0, _Common.getKeyValue)(event).toUpperCase(); // let newValue = isNewType ? keyString : noon.toString() + keyString;
var newValue = keyString;
var needChangeNoon = newNoon.indexOf(newValue) === -1 ? true : false;
if (needChangeNoon) {
var newValueIndex = currentNoonIndex;
allowedValues.some(function (val, index) {
if (val.indexOf(newValue) >= 0) {
newValueIndex = index;
return true;
}
return false;
});
if (currentNoonIndex !== newValueIndex) {
isChanged = true;
newNoon = allowedValues[newValueIndex];
}
}
} else if ((0, _index.getIsDeleteTyped)(keyCode)) {
isChanged = true;
newNoon = '';
}
return {
noon: newNoon,
isChanged: isChanged,
focusOrder: newFocusOrder
};
}