UNPKG

tailwindui-mza

Version:

A package for some base ui component ( **not have ui just logic** ).

155 lines (147 loc) 5.32 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } var React = require('react'); var React__default = _interopDefault(React); var reactTransitionGroup = require('react-transition-group'); var dateFnsJalali = require('date-fns-jalali'); function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var defaultDuration = 500; var Collapse = function Collapse(props) { var _childRef$current, _childRef$current2; var _props$duration = props.duration, duration = _props$duration === void 0 ? defaultDuration : _props$duration; var nodeRef = React.useRef(null); var childRef = React.useRef(null); var defaultStyle = { transition: "height " + duration + "ms", height: 0, overflow: "hidden" }; var transitionStyles = { entering: { height: ((_childRef$current = childRef.current) == null ? void 0 : _childRef$current.clientHeight) || 0 }, entered: { height: ((_childRef$current2 = childRef.current) == null ? void 0 : _childRef$current2.clientHeight) || 0 }, exiting: { height: 0 }, exited: { height: 0 }, unmounted: {} }; return React__default.createElement(reactTransitionGroup.Transition, { nodeRef: nodeRef, "in": props["in"], timeout: duration }, function (state) { return React__default.createElement("div", { ref: nodeRef, style: _extends({}, defaultStyle, transitionStyles[state]) }, React__default.createElement("div", { ref: childRef }, props.children)); }); }; var monthList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; var useCalenderJalali = function useCalenderJalali(props) { if (props === void 0) { props = {}; } var _props = props, defaultDate = _props.defaultDate, yearsOptions = _props.yearsOptions; var _useState = React.useState(defaultDate ? defaultDate : new Date()), activeDate = _useState[0], setActiveDate = _useState[1]; var _useState2 = React.useState(defaultDate ? dateFnsJalali.getYear(defaultDate) : ''), yearValue = _useState2[0], setYearValue = _useState2[1]; var lastDayOfMonth = React.useMemo(function () { return dateFnsJalali.getDaysInMonth(dateFnsJalali.newDate(dateFnsJalali.getYear(activeDate), dateFnsJalali.getMonth(activeDate), 1)); }, [activeDate]); var yearsList = React.useMemo(function () { var years; var isCorrectOptionYear = yearsOptions && yearsOptions.from < yearsOptions.to; if (yearsOptions && isCorrectOptionYear) { years = dateFnsJalali.eachYearOfInterval({ start: dateFnsJalali.newDate(yearsOptions.from, 1, 6), end: dateFnsJalali.newDate(yearsOptions.to, 1, 6) }); } else { years = dateFnsJalali.eachYearOfInterval({ start: dateFnsJalali.newDate(1300, 1, 6), end: dateFnsJalali.newDate(1500, 1, 6) }); } return years.map(function (year) { return +dateFnsJalali.format(year, 'yyyy'); }); }, [yearsOptions]); var dayList = React.useMemo(function () { var days = dateFnsJalali.eachDayOfInterval({ start: dateFnsJalali.newDate(dateFnsJalali.getYear(activeDate), dateFnsJalali.getMonth(activeDate), 1), end: dateFnsJalali.newDate(dateFnsJalali.getYear(activeDate), dateFnsJalali.getMonth(activeDate), lastDayOfMonth) }); return days; }, [activeDate, lastDayOfMonth]); var onChangeYear = function onChangeYear(year) { var isSpam = year.toString().length > 4 || year === yearValue || isNaN(year) || typeof year !== 'number'; if (isSpam) return; if (year.toString().length === 4) { var inRange = yearsOptions ? yearsOptions.from <= year && yearsOptions.to >= year : true; if (dateFnsJalali.isExists(year, 5, 5) && inRange) { var newDateCalender = dateFnsJalali.setYear(activeDate, year); setActiveDate(newDateCalender); setYearValue(year); } else { setYearValue(''); } return; } setYearValue(year || ''); }; var onChangeMonth = function onChangeMonth(month) { var isCorrectFormat = 0 < month && month <= 12; if (!isCorrectFormat) return; // we get 1 to 12 // package want number from 0 to 11 var fixMonth = month - 1; var newDateCalender = dateFnsJalali.setMonth(activeDate, fixMonth); setActiveDate(newDateCalender); }; var onChangeDay = function onChangeDay(day) { var isCorrectFormat = dateFnsJalali.isDate(day); if (!isCorrectFormat) return; setActiveDate(day); }; return { activeDate: activeDate, yearsList: yearsList, monthList: monthList, dayList: dayList, yearValue: yearValue, onChangeYear: onChangeYear, onChangeMonth: onChangeMonth, onChangeDay: onChangeDay }; }; exports.Collapse = Collapse; exports.useCalenderJalali = useCalenderJalali; //# sourceMappingURL=tailwindui-mza.cjs.development.js.map