@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
307 lines (246 loc) • 7.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.addZero = addZero;
exports.addZeroIfNeeded = addZeroIfNeeded;
exports.arrayIsNotEqual = arrayIsNotEqual;
exports.convertTwoDigitToYear = convertTwoDigitToYear;
exports.convertYearToTwoDigit = convertYearToTwoDigit;
exports.getDayDetails = getDayDetails;
exports.getDayEnd = getDayEnd;
exports.getHourDetails = getHourDetails;
exports.getHourSuggestions = getHourSuggestions;
exports.getIsCurrentYear = getIsCurrentYear;
exports.getIsDeleteTyped = getIsDeleteTyped;
exports.getIsEmptyHour = getIsEmptyHour;
exports.getIsEmptyYear = getIsEmptyYear;
exports.getIsNewValueType = getIsNewValueType;
exports.getIsNoonValueTyped = getIsNoonValueTyped;
exports.getIsNumberTyped = getIsNumberTyped;
exports.getIsSupportedKey = getIsSupportedKey;
exports.getMinuteDetails = getMinuteDetails;
exports.getMinuteSuggestions = getMinuteSuggestions;
exports.getMonthDetails = getMonthDetails;
exports.getNoonDetails = getNoonDetails;
exports.getYearDetails = getYearDetails;
exports.removeYearPattern = removeYearPattern;
var _common = require("../../utils/datetime/common");
var _constants = require("../constants");
var _dateFormat = require("./dateFormat");
/* eslint-disable no-param-reassign */
/** * Methods ** */
/** * Constants ** */
function convertYearToTwoDigit(year) {
return parseInt(year.toString().slice(-2));
}
function addZero() {
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var length = arguments.length > 1 ? arguments[1] : undefined;
var newValue = value.toString();
for (var i = 0; i < length; i++) {
if (newValue.length < length) {
newValue = "0".concat(newValue);
} else {
break;
}
}
return newValue;
}
function getDayEnd(month, year) {
month -= 1;
var monthend = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
if (month && year) {
return (0, _common.getMonthEnd)(month, year);
} else if (month) {
return monthend[month];
}
return 31;
}
function getIsNumberTyped(event) {
var keyCode = event.keyCode,
ctrlKey = event.ctrlKey,
metaKey = event.metaKey,
shiftKey = event.shiftKey;
if ((keyCode >= 48 && keyCode <= 57 || keyCode >= 96 && keyCode <= 105) && !ctrlKey && !metaKey && !shiftKey) {
return true;
}
return false;
}
function getIsDeleteTyped(keyCode) {
if (keyCode === 8) {
return true;
}
return false;
}
function getIsNewValueType(focusOrders, keyActions) {
var focusOrder = focusOrders.focusOrder,
oldFocusOrder = focusOrders.oldFocusOrder;
var oldKeyAction = keyActions.oldKeyAction,
keyAction = keyActions.keyAction;
return focusOrder !== oldFocusOrder || oldKeyAction !== keyAction;
}
function getDayDetails() {
return {
startPoint: 1,
endPoint: 31
};
}
function getMonthDetails() {
return {
startPoint: 1,
endPoint: 12
};
}
function getYearDetails(yearLength) {
var dateObj = new Date();
var year = dateObj.getFullYear();
if (yearLength === 2) {
return {
startPoint: 0,
endPoint: 99,
currentYear: year
};
}
return {
startPoint: 1850,
endPoint: 9999,
currentYear: year
};
}
function convertTwoDigitToYear() {
var digitValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var selectedYear = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
var dateObj = new Date();
var year = dateObj.getFullYear();
var digitValueStr = addZero(digitValue.toString(), 2);
year = selectedYear ? selectedYear : year;
if (digitValueStr && digitValueStr.length <= 2) {
return parseInt(year.toString().slice(0, 2) + digitValueStr);
}
return digitValue;
}
function getHourDetails(is24Hour) {
return {
startPoint: is24Hour ? 0 : 1,
endPoint: is24Hour ? 23 : 12
};
}
function getHourSuggestions(is24Hour) {
var _getHourDetails = getHourDetails(is24Hour),
startPoint = _getHourDetails.startPoint,
endPoint = _getHourDetails.endPoint;
var hourArr = [];
for (var hour = startPoint; hour <= endPoint; hour++) {
var htxt = addZeroIfNeeded(hour);
hourArr.push(htxt);
}
return hourArr;
}
function getMinuteDetails() {
return {
startPoint: 0,
endPoint: 59
};
}
function getMinuteSuggestions() {
var _getMinuteDetails = getMinuteDetails(),
startPoint = _getMinuteDetails.startPoint,
endPoint = _getMinuteDetails.endPoint;
var minArr = [];
for (var minute = startPoint; minute <= endPoint; minute++) {
var mtxt = addZeroIfNeeded(minute);
minArr.push(mtxt);
}
return minArr;
}
function addZeroIfNeeded(value) {
return value < 10 ? "0".concat(value) : value;
}
function getIsNoonValueTyped(event) {
var keyCode = event.keyCode;
if (keyCode === 65 || keyCode === 77 || keyCode === 80) {
//A -65
//M -77
//P -80
return true;
}
return false;
}
function getNoonDetails() {
return {
allowedValues: ['AM', 'PM']
};
}
function getIsArrowTyped(keyCode) {
var arrowKeycodes = [37, 38, 39, 40];
if (arrowKeycodes.indexOf(keyCode) >= 0) {
return true;
}
return false;
}
function getIsSupportedKey(event) {
var keyCode = event.keyCode;
if (getIsArrowTyped(keyCode) || getIsDeleteTyped(keyCode) || getIsNumberTyped(event) || getIsNoonValueTyped(event)) {
return true;
}
return false;
}
function arrayIsNotEqual(a, b) {
return a.some(function (val, index) {
return val !== b[index];
});
}
function getIsEmptyValue(value, startPoint, endPoint) {
var newValue = parseInt(value) || 0;
if (newValue >= startPoint && newValue <= endPoint) {
return false;
}
return true;
}
function getIsEmptyHour(value, is24Hour) {
var _getHourDetails2 = getHourDetails(is24Hour),
startPoint = _getHourDetails2.startPoint,
endPoint = _getHourDetails2.endPoint;
return getIsEmptyValue(value, startPoint, endPoint);
}
function getIsEmptyYear(value, yearLength) {
var _getYearDetails = getYearDetails(yearLength),
startPoint = _getYearDetails.startPoint,
endPoint = _getYearDetails.endPoint;
return getIsEmptyValue(value, startPoint, endPoint);
}
function getIsCurrentYear(_ref) {
var isDateTime = _ref.isDateTime,
value = _ref.value,
timeZone = _ref.timeZone;
var isCurrentYear = false;
if (value && value !== _constants.INVALID_DATE) {
var dateObj = (0, _dateFormat.getDateText)(value, isDateTime, timeZone);
var currentDateObj = new Date();
var currentYear = currentDateObj.getFullYear();
var selectedYear = dateObj.getFullYear();
isCurrentYear = currentYear === selectedYear;
}
return {
isCurrentYear: isCurrentYear
};
}
function removeYearPattern(dateFormatArr, patternArr) {
var newDateFormatArr = [];
var newPatternArr = [];
var yearIndex = '';
dateFormatArr.forEach(function (val, index) {
var type = _constants.flags[val].type;
if (type === 'year') {
yearIndex = index;
} else {
newDateFormatArr.push(val);
}
});
newPatternArr = patternArr.slice(0, yearIndex - 1);
return {
dateFormatArr: newDateFormatArr,
patternArr: newPatternArr
};
}