mantine-datepicker-jalali
Version:
jalali datepicker of mantine library
135 lines (128 loc) • 18.6 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var dayjs = require('dayjs');
var React = require('react');
var useUncontrolledDates = require('../use-uncontrolled-dates/use-uncontrolled-dates.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
function isInRange(date, range) {
const _range = [...range].sort((a, b) => a.getTime() - b.getTime());
return dayjs__default(date).subtract(1, "day").isBefore(_range[1]) && dayjs__default(date).add(1, "day").isAfter(_range[0]);
}
function useDatesState({
type,
level,
value,
defaultValue,
onChange,
allowSingleDateInRange,
allowDeselect,
onMouseLeave
}) {
const [_value, setValue] = useUncontrolledDates.useUncontrolledDates({ type, value, defaultValue, onChange });
const [pickedDate, setPickedDate] = React.useState(type === "range" ? _value[0] && !_value[1] ? _value[0] : null : null);
const [hoveredDate, setHoveredDate] = React.useState(null);
const onDateChange = (date) => {
if (type === "range") {
if (pickedDate instanceof Date && !_value[1]) {
if (dayjs__default(date).isSame(pickedDate, level) && !allowSingleDateInRange) {
setPickedDate(null);
setHoveredDate(null);
setValue([null, null]);
return;
}
const result = [date, pickedDate];
result.sort((a, b) => a.getTime() - b.getTime());
setValue(result);
setHoveredDate(null);
setPickedDate(null);
return;
}
if (_value[0] && !_value[1] && dayjs__default(date).isSame(_value[0], level) && !allowSingleDateInRange) {
setPickedDate(null);
setHoveredDate(null);
setValue([null, null]);
return;
}
setValue([date, null]);
setHoveredDate(null);
setPickedDate(date);
return;
}
if (type === "multiple") {
if (_value.some((selected) => dayjs__default(selected).isSame(date, level))) {
setValue(_value.filter((selected) => !dayjs__default(selected).isSame(date, level)));
} else {
setValue([..._value, date]);
}
return;
}
if (_value && allowDeselect && dayjs__default(date).isSame(_value, level)) {
setValue(null);
} else {
setValue(date);
}
};
const isDateInRange = (date) => {
if (pickedDate instanceof Date && hoveredDate instanceof Date) {
return isInRange(date, [hoveredDate, pickedDate]);
}
if (_value[0] instanceof Date && _value[1] instanceof Date) {
return isInRange(date, _value);
}
return false;
};
const onRootMouseLeave = type === "range" ? (event) => {
onMouseLeave == null ? void 0 : onMouseLeave(event);
setHoveredDate(null);
} : onMouseLeave;
const isFirstInRange = (date) => {
if (!(_value[0] instanceof Date)) {
return false;
}
if (dayjs__default(date).isSame(_value[0], level)) {
return !(hoveredDate && dayjs__default(hoveredDate).isBefore(_value[0]));
}
return false;
};
const isLastInRange = (date) => {
if (_value[1] instanceof Date) {
return dayjs__default(date).isSame(_value[1], level);
}
if (!(_value[0] instanceof Date) || !hoveredDate) {
return false;
}
return dayjs__default(hoveredDate).isBefore(_value[0]) && dayjs__default(date).isSame(_value[0], level);
};
const getControlProps = (date) => {
if (type === "range") {
return {
selected: _value.some((selection) => selection && dayjs__default(selection).isSame(date, level)),
inRange: isDateInRange(date),
firstInRange: isFirstInRange(date),
lastInRange: isLastInRange(date),
"data-autofocus": !!_value[0] && dayjs__default(_value[0]).isSame(date, level) || void 0
};
}
if (type === "multiple") {
return {
selected: _value.some((selection) => selection && dayjs__default(selection).isSame(date, level)),
"data-autofocus": !!_value[0] && dayjs__default(_value[0]).isSame(date, level) || void 0
};
}
const selected = dayjs__default(_value).isSame(date, level);
return { selected, "data-autofocus": selected || void 0 };
};
const onHoveredDateChange = type === "range" && pickedDate ? setHoveredDate : () => {
};
return {
onDateChange,
onRootMouseLeave,
onHoveredDateChange,
getControlProps,
_value,
setValue
};
}
exports.useDatesState = useDatesState;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWRhdGVzLXN0YXRlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvdXNlLWRhdGVzLXN0YXRlL3VzZS1kYXRlcy1zdGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBEYXRlUGlja2VyVHlwZSwgUGlja2VyQmFzZVByb3BzIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgdXNlVW5jb250cm9sbGVkRGF0ZXMgfSBmcm9tICcuLi91c2UtdW5jb250cm9sbGVkLWRhdGVzL3VzZS11bmNvbnRyb2xsZWQtZGF0ZXMnO1xuXG5mdW5jdGlvbiBpc0luUmFuZ2UoZGF0ZTogRGF0ZSwgcmFuZ2U6IFtEYXRlLCBEYXRlXSkge1xuICBjb25zdCBfcmFuZ2UgPSBbLi4ucmFuZ2VdLnNvcnQoKGEsIGIpID0+IGEuZ2V0VGltZSgpIC0gYi5nZXRUaW1lKCkpO1xuICByZXR1cm4gKFxuICAgIGRheWpzKGRhdGUpLnN1YnRyYWN0KDEsICdkYXknKS5pc0JlZm9yZShfcmFuZ2VbMV0pICYmXG4gICAgZGF5anMoZGF0ZSkuYWRkKDEsICdkYXknKS5pc0FmdGVyKF9yYW5nZVswXSlcbiAgKTtcbn1cblxuaW50ZXJmYWNlIFVzZURhdGVzUmFuZ2VJbnB1dDxUeXBlIGV4dGVuZHMgRGF0ZVBpY2tlclR5cGUgPSAnZGVmYXVsdCc+XG4gIGV4dGVuZHMgUGlja2VyQmFzZVByb3BzPFR5cGU+IHtcbiAgbGV2ZWw6ICd5ZWFyJyB8ICdtb250aCcgfCAnZGF5JztcbiAgdHlwZTogVHlwZTtcbiAgb25Nb3VzZUxlYXZlPyhldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pOiB2b2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlRGF0ZXNTdGF0ZTxUeXBlIGV4dGVuZHMgRGF0ZVBpY2tlclR5cGUgPSAnZGVmYXVsdCc+KHtcbiAgdHlwZSxcbiAgbGV2ZWwsXG4gIHZhbHVlLFxuICBkZWZhdWx0VmFsdWUsXG4gIG9uQ2hhbmdlLFxuICBhbGxvd1NpbmdsZURhdGVJblJhbmdlLFxuICBhbGxvd0Rlc2VsZWN0LFxuICBvbk1vdXNlTGVhdmUsXG59OiBVc2VEYXRlc1JhbmdlSW5wdXQ8VHlwZT4pIHtcbiAgY29uc3QgW192YWx1ZSwgc2V0VmFsdWVdID0gdXNlVW5jb250cm9sbGVkRGF0ZXMoeyB0eXBlLCB2YWx1ZSwgZGVmYXVsdFZhbHVlLCBvbkNoYW5nZSB9KTtcblxuICBjb25zdCBbcGlja2VkRGF0ZSwgc2V0UGlja2VkRGF0ZV0gPSB1c2VTdGF0ZTxEYXRlPihcbiAgICB0eXBlID09PSAncmFuZ2UnID8gKF92YWx1ZVswXSAmJiAhX3ZhbHVlWzFdID8gX3ZhbHVlWzBdIDogbnVsbCkgOiBudWxsXG4gICk7XG4gIGNvbnN0IFtob3ZlcmVkRGF0ZSwgc2V0SG92ZXJlZERhdGVdID0gdXNlU3RhdGU8RGF0ZT4obnVsbCk7XG5cbiAgY29uc3Qgb25EYXRlQ2hhbmdlID0gKGRhdGU6IERhdGUpID0+IHtcbiAgICBpZiAodHlwZSA9PT0gJ3JhbmdlJykge1xuICAgICAgaWYgKHBpY2tlZERhdGUgaW5zdGFuY2VvZiBEYXRlICYmICFfdmFsdWVbMV0pIHtcbiAgICAgICAgaWYgKGRheWpzKGRhdGUpLmlzU2FtZShwaWNrZWREYXRlLCBsZXZlbCkgJiYgIWFsbG93U2luZ2xlRGF0ZUluUmFuZ2UpIHtcbiAgICAgICAgICBzZXRQaWNrZWREYXRlKG51bGwpO1xuICAgICAgICAgIHNldEhvdmVyZWREYXRlKG51bGwpO1xuICAgICAgICAgIHNldFZhbHVlKFtudWxsLCBudWxsXSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0OiBbRGF0ZSwgRGF0ZV0gPSBbZGF0ZSwgcGlja2VkRGF0ZV07XG4gICAgICAgIHJlc3VsdC5zb3J0KChhLCBiKSA9PiBhLmdldFRpbWUoKSAtIGIuZ2V0VGltZSgpKTtcbiAgICAgICAgc2V0VmFsdWUocmVzdWx0KTtcbiAgICAgICAgc2V0SG92ZXJlZERhdGUobnVsbCk7XG4gICAgICAgIHNldFBpY2tlZERhdGUobnVsbCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBfdmFsdWVbMF0gJiZcbiAgICAgICAgIV92YWx1ZVsxXSAmJlxuICAgICAgICBkYXlqcyhkYXRlKS5pc1NhbWUoX3ZhbHVlWzBdLCBsZXZlbCkgJiZcbiAgICAgICAgIWFsbG93U2luZ2xlRGF0ZUluUmFuZ2VcbiAgICAgICkge1xuICAgICAgICBzZXRQaWNrZWREYXRlKG51bGwpO1xuICAgICAgICBzZXRIb3ZlcmVkRGF0ZShudWxsKTtcbiAgICAgICAgc2V0VmFsdWUoW251bGwsIG51bGxdKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBzZXRWYWx1ZShbZGF0ZSwgbnVsbF0pO1xuICAgICAgc2V0SG92ZXJlZERhdGUobnVsbCk7XG4gICAgICBzZXRQaWNrZWREYXRlKGRhdGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAnbXVsdGlwbGUnKSB7XG4gICAgICBpZiAoX3ZhbHVlLnNvbWUoKHNlbGVjdGVkOiBEYXRlKSA9PiBkYXlqcyhzZWxlY3RlZCkuaXNTYW1lKGRhdGUsIGxldmVsKSkpIHtcbiAgICAgICAgc2V0VmFsdWUoX3ZhbHVlLmZpbHRlcigoc2VsZWN0ZWQ6IERhdGUpID0+ICFkYXlqcyhzZWxlY3RlZCkuaXNTYW1lKGRhdGUsIGxldmVsKSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0VmFsdWUoWy4uLl92YWx1ZSwgZGF0ZV0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKF92YWx1ZSAmJiBhbGxvd0Rlc2VsZWN0ICYmIGRheWpzKGRhdGUpLmlzU2FtZShfdmFsdWUsIGxldmVsKSkge1xuICAgICAgc2V0VmFsdWUobnVsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFZhbHVlKGRhdGUpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBpc0RhdGVJblJhbmdlID0gKGRhdGU6IERhdGUpID0+IHtcbiAgICBpZiAocGlja2VkRGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgaG92ZXJlZERhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICByZXR1cm4gaXNJblJhbmdlKGRhdGUsIFtob3ZlcmVkRGF0ZSwgcGlja2VkRGF0ZV0pO1xuICAgIH1cblxuICAgIGlmIChfdmFsdWVbMF0gaW5zdGFuY2VvZiBEYXRlICYmIF92YWx1ZVsxXSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHJldHVybiBpc0luUmFuZ2UoZGF0ZSwgX3ZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgY29uc3Qgb25Sb290TW91c2VMZWF2ZSA9XG4gICAgdHlwZSA9PT0gJ3JhbmdlJ1xuICAgICAgPyAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgb25Nb3VzZUxlYXZlPy4oZXZlbnQpO1xuICAgICAgICAgIHNldEhvdmVyZWREYXRlKG51bGwpO1xuICAgICAgICB9XG4gICAgICA6IG9uTW91c2VMZWF2ZTtcblxuICBjb25zdCBpc0ZpcnN0SW5SYW5nZSA9IChkYXRlOiBEYXRlKSA9PiB7XG4gICAgaWYgKCEoX3ZhbHVlWzBdIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoZGF5anMoZGF0ZSkuaXNTYW1lKF92YWx1ZVswXSwgbGV2ZWwpKSB7XG4gICAgICByZXR1cm4gIShob3ZlcmVkRGF0ZSAmJiBkYXlqcyhob3ZlcmVkRGF0ZSkuaXNCZWZvcmUoX3ZhbHVlWzBdKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuXG4gIGNvbnN0IGlzTGFzdEluUmFuZ2UgPSAoZGF0ZTogRGF0ZSkgPT4ge1xuICAgIGlmIChfdmFsdWVbMV0gaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICByZXR1cm4gZGF5anMoZGF0ZSkuaXNTYW1lKF92YWx1ZVsxXSwgbGV2ZWwpO1xuICAgIH1cblxuICAgIGlmICghKF92YWx1ZVswXSBpbnN0YW5jZW9mIERhdGUpIHx8ICFob3ZlcmVkRGF0ZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBkYXlqcyhob3ZlcmVkRGF0ZSkuaXNCZWZvcmUoX3ZhbHVlWzBdKSAmJiBkYXlqcyhkYXRlKS5pc1NhbWUoX3ZhbHVlWzBdLCBsZXZlbCk7XG4gIH07XG5cbiAgY29uc3QgZ2V0Q29udHJvbFByb3BzID0gKGRhdGU6IERhdGUpID0+IHtcbiAgICBpZiAodHlwZSA9PT0gJ3JhbmdlJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2VsZWN0ZWQ6IF92YWx1ZS5zb21lKFxuICAgICAgICAgIChzZWxlY3Rpb246IERhdGUpID0+IHNlbGVjdGlvbiAmJiBkYXlqcyhzZWxlY3Rpb24pLmlzU2FtZShkYXRlLCBsZXZlbClcbiAgICAgICAgKSxcbiAgICAgICAgaW5SYW5nZTogaXNEYXRlSW5SYW5nZShkYXRlKSxcbiAgICAgICAgZmlyc3RJblJhbmdlOiBpc0ZpcnN0SW5SYW5nZShkYXRlKSxcbiAgICAgICAgbGFzdEluUmFuZ2U6IGlzTGFzdEluUmFuZ2UoZGF0ZSksXG4gICAgICAgICdkYXRhLWF1dG9mb2N1cyc6ICghIV92YWx1ZVswXSAmJiBkYXlqcyhfdmFsdWVbMF0pLmlzU2FtZShkYXRlLCBsZXZlbCkpIHx8IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09ICdtdWx0aXBsZScpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNlbGVjdGVkOiBfdmFsdWUuc29tZShcbiAgICAgICAgICAoc2VsZWN0aW9uOiBEYXRlKSA9PiBzZWxlY3Rpb24gJiYgZGF5anMoc2VsZWN0aW9uKS5pc1NhbWUoZGF0ZSwgbGV2ZWwpXG4gICAgICAgICksXG4gICAgICAgICdkYXRhLWF1dG9mb2N1cyc6ICghIV92YWx1ZVswXSAmJiBkYXlqcyhfdmFsdWVbMF0pLmlzU2FtZShkYXRlLCBsZXZlbCkpIHx8IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSBkYXlqcyhfdmFsdWUpLmlzU2FtZShkYXRlLCBsZXZlbCk7XG4gICAgcmV0dXJuIHsgc2VsZWN0ZWQsICdkYXRhLWF1dG9mb2N1cyc6IHNlbGVjdGVkIHx8IHVuZGVmaW5lZCB9O1xuICB9O1xuXG4gIGNvbnN0IG9uSG92ZXJlZERhdGVDaGFuZ2UgPSB0eXBlID09PSAncmFuZ2UnICYmIHBpY2tlZERhdGUgPyBzZXRIb3ZlcmVkRGF0ZSA6ICgpID0+IHt9O1xuXG4gIHJldHVybiB7XG4gICAgb25EYXRlQ2hhbmdlLFxuICAgIG9uUm9vdE1vdXNlTGVhdmUsXG4gICAgb25Ib3ZlcmVkRGF0ZUNoYW5nZSxcbiAgICBnZXRDb250cm9sUHJvcHMsXG4gICAgX3ZhbHVlLFxuICAgIHNldFZhbHVlLFxuICB9O1xufVxuIl0sIm5hbWVzIjpbImRheWpzIiwidXNlVW5jb250cm9sbGVkRGF0ZXMiLCJ1c2VTdGF0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0EsU0FBUyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtBQUNoQyxFQUFFLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUN0RSxFQUFFLE9BQU9BLGNBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSUEsY0FBSyxDQUFDLElBQUksQ0FBQyxDQUFD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