mantine-datepicker-jalali
Version:
jalali datepicker of mantine library
79 lines (75 loc) • 10.5 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
function focusOnNextFocusableControl({
direction,
index,
payload,
count = 1,
controlsRef
}) {
var _a;
const changeRow = ["down", "up"].includes(direction);
const rowIndex = changeRow ? payload.rowIndex + (direction === "down" ? count : -count) : payload.rowIndex;
const cellIndex = changeRow ? payload.cellIndex : payload.cellIndex + (direction === "right" ? count : -count);
const controlToFocus = (_a = controlsRef.current[index][rowIndex]) == null ? void 0 : _a[cellIndex];
if (!controlToFocus) {
return;
}
if (controlToFocus.disabled) {
focusOnNextFocusableControl({ direction, index, payload, controlsRef, count: count + 1 });
} else {
controlToFocus.focus();
}
}
function handleControlKeyDown({
controlsRef,
index,
payload,
event,
numberOfColumns,
controlsPerRow
}) {
var _a;
const _controlsPerRow = Array.isArray(controlsPerRow) ? controlsPerRow[payload.rowIndex] : controlsPerRow;
switch (event.key) {
case "ArrowDown": {
event.preventDefault();
const hasRowBelow = payload.rowIndex + 1 < controlsRef.current[index].length;
if (hasRowBelow) {
focusOnNextFocusableControl({ direction: "down", index, payload, controlsRef });
}
break;
}
case "ArrowUp": {
event.preventDefault();
const hasRowAbove = payload.rowIndex > 0;
if (hasRowAbove) {
focusOnNextFocusableControl({ direction: "up", index, payload, controlsRef });
}
break;
}
case "ArrowRight": {
event.preventDefault();
if (payload.cellIndex !== _controlsPerRow - 1) {
focusOnNextFocusableControl({ direction: "right", index, payload, controlsRef });
} else if (index + 1 < numberOfColumns) {
if (controlsRef.current[index + 1][payload.rowIndex]) {
(_a = controlsRef.current[index + 1][payload.rowIndex][0]) == null ? void 0 : _a.focus();
}
}
break;
}
case "ArrowLeft": {
event.preventDefault();
if (payload.cellIndex !== 0) {
focusOnNextFocusableControl({ direction: "left", index, payload, controlsRef });
} else if (index > 0) {
if (controlsRef.current[index - 1][payload.rowIndex]) {
controlsRef.current[index - 1][payload.rowIndex][_controlsPerRow - 1].focus();
}
}
}
}
}
exports.handleControlKeyDown = handleControlKeyDown;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLWNvbnRyb2wta2V5LWRvd24uanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9oYW5kbGUtY29udHJvbC1rZXktZG93bi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWZPYmplY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdHlwZSB7IENvbnRyb2xLZXlkb3duUGF5bG9hZCB9IGZyb20gJy4uL3R5cGVzJztcblxudHlwZSBDb250cm9sc1JlZiA9IFJlZk9iamVjdDxIVE1MQnV0dG9uRWxlbWVudFtdW11bXT47XG5cbmludGVyZmFjZSBTaGlmdEZvY3VzSW5wdXQge1xuICBjb250cm9sc1JlZjogQ29udHJvbHNSZWY7XG4gIGRpcmVjdGlvbjogJ2Rvd24nIHwgJ3VwJyB8ICdsZWZ0JyB8ICdyaWdodCc7XG4gIGluZGV4OiBudW1iZXI7XG4gIHBheWxvYWQ6IENvbnRyb2xLZXlkb3duUGF5bG9hZDtcbiAgY291bnQ/OiBudW1iZXI7XG59XG5cbmZ1bmN0aW9uIGZvY3VzT25OZXh0Rm9jdXNhYmxlQ29udHJvbCh7XG4gIGRpcmVjdGlvbixcbiAgaW5kZXgsXG4gIHBheWxvYWQsXG4gIGNvdW50ID0gMSxcbiAgY29udHJvbHNSZWYsXG59OiBTaGlmdEZvY3VzSW5wdXQpIHtcbiAgY29uc3QgY2hhbmdlUm93ID0gWydkb3duJywgJ3VwJ10uaW5jbHVkZXMoZGlyZWN0aW9uKTtcblxuICBjb25zdCByb3dJbmRleCA9IGNoYW5nZVJvd1xuICAgID8gcGF5bG9hZC5yb3dJbmRleCArIChkaXJlY3Rpb24gPT09ICdkb3duJyA/IGNvdW50IDogLWNvdW50KVxuICAgIDogcGF5bG9hZC5yb3dJbmRleDtcblxuICBjb25zdCBjZWxsSW5kZXggPSBjaGFuZ2VSb3dcbiAgICA/IHBheWxvYWQuY2VsbEluZGV4XG4gICAgOiBwYXlsb2FkLmNlbGxJbmRleCArIChkaXJlY3Rpb24gPT09ICdyaWdodCcgPyBjb3VudCA6IC1jb3VudCk7XG5cbiAgY29uc3QgY29udHJvbFRvRm9jdXMgPSBjb250cm9sc1JlZi5jdXJyZW50W2luZGV4XVtyb3dJbmRleF0/LltjZWxsSW5kZXhdO1xuXG4gIGlmICghY29udHJvbFRvRm9jdXMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoY29udHJvbFRvRm9jdXMuZGlzYWJsZWQpIHtcbiAgICBmb2N1c09uTmV4dEZvY3VzYWJsZUNvbnRyb2woeyBkaXJlY3Rpb24sIGluZGV4LCBwYXlsb2FkLCBjb250cm9sc1JlZiwgY291bnQ6IGNvdW50ICsgMSB9KTtcbiAgfSBlbHNlIHtcbiAgICBjb250cm9sVG9Gb2N1cy5mb2N1cygpO1xuICB9XG59XG5cbmludGVyZmFjZSBIYW5kbGVDb250cm9sS2V5ZG93bklucHV0IHtcbiAgY29udHJvbHNSZWY6IENvbnRyb2xzUmVmO1xuICBudW1iZXJPZkNvbHVtbnM6IG51bWJlcjtcbiAgaW5kZXg6IG51bWJlcjtcbiAgcGF5bG9hZDogQ29udHJvbEtleWRvd25QYXlsb2FkO1xuICBldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MQnV0dG9uRWxlbWVudD47XG4gIGNvbnRyb2xzUGVyUm93OiBudW1iZXIgfCBudW1iZXJbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUNvbnRyb2xLZXlEb3duKHtcbiAgY29udHJvbHNSZWYsXG4gIGluZGV4LFxuICBwYXlsb2FkLFxuICBldmVudCxcbiAgbnVtYmVyT2ZDb2x1bW5zLFxuICBjb250cm9sc1BlclJvdyxcbn06IEhhbmRsZUNvbnRyb2xLZXlkb3duSW5wdXQpIHtcbiAgY29uc3QgX2NvbnRyb2xzUGVyUm93ID0gQXJyYXkuaXNBcnJheShjb250cm9sc1BlclJvdylcbiAgICA/IGNvbnRyb2xzUGVyUm93W3BheWxvYWQucm93SW5kZXhdXG4gICAgOiBjb250cm9sc1BlclJvdztcblxuICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgIGNhc2UgJ0Fycm93RG93bic6IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIGNvbnN0IGhhc1Jvd0JlbG93ID0gcGF5bG9hZC5yb3dJbmRleCArIDEgPCBjb250cm9sc1JlZi5jdXJyZW50W2luZGV4XS5sZW5ndGg7XG4gICAgICBpZiAoaGFzUm93QmVsb3cpIHtcbiAgICAgICAgZm9jdXNPbk5leHRGb2N1c2FibGVDb250cm9sKHsgZGlyZWN0aW9uOiAnZG93bicsIGluZGV4LCBwYXlsb2FkLCBjb250cm9sc1JlZiB9KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNhc2UgJ0Fycm93VXAnOiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCBoYXNSb3dBYm92ZSA9IHBheWxvYWQucm93SW5kZXggPiAwO1xuICAgICAgaWYgKGhhc1Jvd0Fib3ZlKSB7XG4gICAgICAgIGZvY3VzT25OZXh0Rm9jdXNhYmxlQ29udHJvbCh7IGRpcmVjdGlvbjogJ3VwJywgaW5kZXgsIHBheWxvYWQsIGNvbnRyb2xzUmVmIH0pO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY2FzZSAnQXJyb3dSaWdodCc6IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIGlmIChwYXlsb2FkLmNlbGxJbmRleCAhPT0gX2NvbnRyb2xzUGVyUm93IC0gMSkge1xuICAgICAgICBmb2N1c09uTmV4dEZvY3VzYWJsZUNvbnRyb2woeyBkaXJlY3Rpb246ICdyaWdodCcsIGluZGV4LCBwYXlsb2FkLCBjb250cm9sc1JlZiB9KTtcbiAgICAgIH0gZWxzZSBpZiAoaW5kZXggKyAxIDwgbnVtYmVyT2ZDb2x1bW5zKSB7XG4gICAgICAgIGlmIChjb250cm9sc1JlZi5jdXJyZW50W2luZGV4ICsgMV1bcGF5bG9hZC5yb3dJbmRleF0pIHtcbiAgICAgICAgICBjb250cm9sc1JlZi5jdXJyZW50W2luZGV4ICsgMV1bcGF5bG9hZC5yb3dJbmRleF1bMF0/LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY2FzZSAnQXJyb3dMZWZ0Jzoge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgaWYgKHBheWxvYWQuY2VsbEluZGV4ICE9PSAwKSB7XG4gICAgICAgIGZvY3VzT25OZXh0Rm9jdXNhYmxlQ29udHJvbCh7IGRpcmVjdGlvbjogJ2xlZnQnLCBpbmRleCwgcGF5bG9hZCwgY29udHJvbHNSZWYgfSk7XG4gICAgICB9IGVsc2UgaWYgKGluZGV4ID4gMCkge1xuICAgICAgICBpZiAoY29udHJvbHNSZWYuY3VycmVudFtpbmRleCAtIDFdW3BheWxvYWQucm93SW5kZXhdKSB7XG4gICAgICAgICAgY29udHJvbHNSZWYuY3VycmVudFtpbmRleCAtIDFdW3BheWxvYWQucm93SW5kZXhdW19jb250cm9sc1BlclJvdyAtIDFdLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsU0FBUywyQkFBMkIsQ0FBQztBQUNyQyxFQUFFLFNBQVM7QUFDWCxFQUFFLEtBQUs7QUFDUCxFQUFFLE9BQU87QUFDVCxFQUFFLEtBQUssR0FBRyxDQUFDO0FBQ1gsRUFBRSxXQUFXO0FBQ2IsQ0FBQyxFQUFFO0FBQ0gsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNULEVBQUUsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3ZELEVBQUUsTUFBTSxRQUFRLEdBQUcsU0FBUyxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksU0FBUyxLQUFLLE1BQU0sR0FBRyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO0FBQzdHLEVBQUUsTUFBTSxTQUFTLEdBQUcsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxT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