Project Init

This commit is contained in:
Muluhabt
2026-05-29 15:23:46 +03:00
commit 2fbc557aac
67387 changed files with 6063341 additions and 0 deletions

View File

@@ -0,0 +1,72 @@
'use client';
'use strict';
var dayjs = require('dayjs');
var hooks = require('@mantine/hooks');
require('../../components/DatesProvider/DatesProvider.cjs');
var useDatesContext = require('../../components/DatesProvider/use-dates-context.cjs');
var getFormattedDate = require('../../utils/get-formatted-date/get-formatted-date.cjs');
var useUncontrolledDates = require('../use-uncontrolled-dates/use-uncontrolled-dates.cjs');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
function useDatesInput({
type,
value,
defaultValue,
onChange,
locale,
format,
closeOnChange,
sortDates,
labelSeparator,
valueFormatter
}) {
const ctx = useDatesContext.useDatesContext();
const [dropdownOpened, dropdownHandlers] = hooks.useDisclosure(false);
const [_value, _setValue] = useUncontrolledDates.useUncontrolledDates({
type,
value,
defaultValue,
onChange
});
const formattedValue = getFormattedDate.getFormattedDate({
type,
date: _value,
locale: ctx.getLocale(locale),
format,
labelSeparator: ctx.getLabelSeparator(labelSeparator),
formatter: valueFormatter
});
const setValue = (val) => {
if (closeOnChange) {
if (type === "default") {
dropdownHandlers.close();
}
if (type === "range" && val[0] && val[1]) {
dropdownHandlers.close();
}
}
if (sortDates && type === "multiple") {
_setValue([...val].sort((a, b) => dayjs__default.default(a).isAfter(dayjs__default.default(b)) ? 1 : -1));
} else {
_setValue(val);
}
};
const onClear = () => setValue(type === "range" ? [null, null] : type === "multiple" ? [] : null);
const shouldClear = type === "range" ? !!_value[0] : type === "multiple" ? _value.length > 0 : _value !== null;
return {
_value,
setValue,
onClear,
shouldClear,
formattedValue,
dropdownOpened,
dropdownHandlers
};
}
exports.useDatesInput = useDatesInput;
//# sourceMappingURL=use-dates-input.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,16 @@
'use client';
'use strict';
var dayjs = require('dayjs');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
function isInRange(date, range) {
const _range = [...range].sort((a, b) => dayjs__default.default(a).isAfter(dayjs__default.default(b)) ? 1 : -1);
return dayjs__default.default(_range[0]).startOf("day").subtract(1, "ms").isBefore(date) && dayjs__default.default(_range[1]).endOf("day").add(1, "ms").isAfter(date);
}
exports.isInRange = isInRange;
//# sourceMappingURL=is-in-range.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"is-in-range.cjs","sources":["../../../../src/hooks/use-dates-state/is-in-range/is-in-range.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { DateStringValue } from '../../../types';\n\nexport function isInRange(date: DateStringValue, range: [DateStringValue, DateStringValue]) {\n const _range = [...range].sort((a, b) => (dayjs(a).isAfter(dayjs(b)) ? 1 : -1));\n return (\n dayjs(_range[0]).startOf('day').subtract(1, 'ms').isBefore(date) &&\n dayjs(_range[1]).endOf('day').add(1, 'ms').isAfter(date)\n );\n}\n"],"names":["dayjs"],"mappings":";;;;;;;;;AAGO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,GAAuB,KAAA,CAAA,CAA2C,CAAA;AAC1F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,IAAS,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAM,CAAC,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,IAAI,EAAG,CAAA,CAAA;AAC9E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACEA,sBAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAC/DA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;AAE3D,CAAA;;"}

View File

@@ -0,0 +1,156 @@
'use client';
'use strict';
var dayjs = require('dayjs');
var react = require('react');
var useUncontrolledDates = require('../use-uncontrolled-dates/use-uncontrolled-dates.cjs');
var isInRange = require('./is-in-range/is-in-range.cjs');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
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 && !_value[1]) {
if (dayjs__default.default(date).isSame(pickedDate, level) && !allowSingleDateInRange) {
setPickedDate(null);
setHoveredDate(null);
setValue([null, null]);
return;
}
const result = [date, pickedDate];
result.sort((a, b) => dayjs__default.default(a).isAfter(dayjs__default.default(b)) ? 1 : -1);
setValue(result);
setHoveredDate(null);
setPickedDate(null);
return;
}
if (_value[0] && !_value[1] && dayjs__default.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.default(selected).isSame(date, level))) {
setValue(_value.filter((selected) => !dayjs__default.default(selected).isSame(date, level)));
} else {
setValue([..._value, date]);
}
return;
}
if (_value && allowDeselect && dayjs__default.default(date).isSame(_value, level)) {
setValue(null);
} else {
setValue(date);
}
};
const isDateInRange = (date) => {
if (pickedDate && hoveredDate) {
return isInRange.isInRange(date, [hoveredDate, pickedDate]);
}
if (_value[0] && _value[1]) {
return isInRange.isInRange(date, _value);
}
return false;
};
const onRootMouseLeave = type === "range" ? (event) => {
onMouseLeave?.(event);
setHoveredDate(null);
} : onMouseLeave;
const isFirstInRange = (date) => {
if (!_value[0]) {
return false;
}
if (dayjs__default.default(date).isSame(_value[0], level)) {
return !(hoveredDate && dayjs__default.default(hoveredDate).isBefore(_value[0]));
}
return false;
};
const isLastInRange = (date) => {
if (_value[1]) {
return dayjs__default.default(date).isSame(_value[1], level);
}
if (!_value[0] || !hoveredDate) {
return false;
}
return dayjs__default.default(hoveredDate).isBefore(_value[0]) && dayjs__default.default(date).isSame(_value[0], level);
};
const getControlProps = (date) => {
if (type === "range") {
return {
selected: _value.some(
(selection) => selection && dayjs__default.default(selection).isSame(date, level)
),
inRange: isDateInRange(date),
firstInRange: isFirstInRange(date),
lastInRange: isLastInRange(date),
"data-autofocus": !!_value[0] && dayjs__default.default(_value[0]).isSame(date, level) || void 0
};
}
if (type === "multiple") {
return {
selected: _value.some(
(selection) => selection && dayjs__default.default(selection).isSame(date, level)
),
"data-autofocus": !!_value[0] && dayjs__default.default(_value[0]).isSame(date, level) || void 0
};
}
const selected = dayjs__default.default(_value).isSame(date, level);
return { selected, "data-autofocus": selected || void 0 };
};
const onHoveredDateChange = type === "range" && pickedDate ? setHoveredDate : () => {
};
react.useEffect(() => {
if (type !== "range") {
return;
}
if (_value[0] && !_value[1]) {
setPickedDate(_value[0]);
} else {
const isNeitherSelected = _value[0] == null && _value[1] == null;
const isBothSelected = _value[0] != null && _value[1] != null;
if (isNeitherSelected || isBothSelected) {
setPickedDate(null);
setHoveredDate(null);
}
}
}, [_value]);
return {
onDateChange,
onRootMouseLeave,
onHoveredDateChange,
getControlProps,
_value,
setValue
};
}
exports.useDatesState = useDatesState;
//# sourceMappingURL=use-dates-state.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,41 @@
'use client';
'use strict';
var react = require('react');
var hooks = require('@mantine/hooks');
require('dayjs');
var toDateString = require('../../utils/to-date-string/to-date-string.cjs');
const getEmptyValue = (type) => type === "range" ? [null, null] : type === "multiple" ? [] : null;
const convertDatesValue = (value, withTime) => {
const converter = withTime ? toDateString.toDateTimeString : toDateString.toDateString;
return Array.isArray(value) ? value.map(converter) : converter(value);
};
function useUncontrolledDates({
type,
value,
defaultValue,
onChange,
withTime = false
}) {
const storedType = react.useRef(type);
const [_value, _setValue, controlled] = hooks.useUncontrolled({
value: convertDatesValue(value, withTime),
defaultValue: convertDatesValue(defaultValue, withTime),
finalValue: getEmptyValue(type),
onChange
});
let _finalValue = _value;
if (storedType.current !== type) {
storedType.current = type;
if (value === void 0) {
_finalValue = defaultValue !== void 0 ? defaultValue : getEmptyValue(type);
_setValue(_finalValue);
}
}
return [_finalValue, _setValue, controlled];
}
exports.convertDatesValue = convertDatesValue;
exports.useUncontrolledDates = useUncontrolledDates;
//# sourceMappingURL=use-uncontrolled-dates.cjs.map

File diff suppressed because one or more lines are too long