UNPKG

@veccu/react-calendar

Version:

Headless Calendar UI Library with react hooks

3 lines (2 loc) 8.19 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("date-fns"),r=require("react");!function(e){e.Month="month",e.Week="week",e.Day="day"}(e||(e={}));var n=e;var o=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e};var a=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n};var u=function(e){if(Array.isArray(e))return a(e)};var i=function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)};var c=function(e,t){if(e){if("string"==typeof e)return a(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(e,t):void 0}};var s=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")};var f=function(e){return u(e)||i(e)||c(e)||s()};function y(e){return f(new Array(e).keys())}var l=0,p=new Map;function b(e){if(p.has(e)){var t=p.get(e)+1;p.set(e,t),l=t}else{p.set(e,1),l=1}return"".concat(e,"-").concat(l)}function O(e){return t.setHours(t.setMinutes(t.setSeconds(t.setMilliseconds(e,0),0),0),0)}function d(e,r){var n=O(e),o=O(r);return t.isEqual(n,o)}function v(e,r){return t.isSameMonth(r,e)&&t.isSameYear(r,e)}function w(e){return{year:e.getFullYear(),month:e.getMonth(),day:e.getDate()}}function h(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];return t.reduce((function(e,t,r){var n=0===r?e:[e];return t.apply(void 0,f(n))}),r)}}function j(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return h.apply(void 0,r)(e)}function g(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?g(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):g(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function k(e,t){return e.map((function(e){return D(D({},e),{},{key:b(t)})}))}function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function P(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?m(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):m(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function M(e,r){return function(n){var o=n.value,a=v(r,o),u=d(e,o),i=t.isWeekend(o);return P(P({},n),{},{date:t.getDate(o),isCurrentMonth:a,isCurrentDate:u,isWeekend:i})}}function S(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function x(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?S(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):S(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function W(e){return function(t){return x(x({},t),{},{key:b(e)})}}var I=function(e){if(Array.isArray(e))return e};var A=function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var r=[],n=!0,o=!1,a=void 0;try{for(var u,i=e[Symbol.iterator]();!(n=(u=i.next()).done)&&(r.push(u.value),!t||r.length!==t);n=!0);}catch(e){o=!0,a=e}finally{try{n||null==i.return||i.return()}finally{if(o)throw a}}return r}};var E=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")};var C=function(e,t){return I(e)||A(e,t)||c(e,t)||E()};function V(e,r){var n=r.weekStartsOn,o=w(e),a=o.year,u=o.month,i=o.day,c=function(e,r){var n=(t.startOfMonth(e).getDay()-r)%7;return n<0?n+7:n}(e,n),s=function(e,r){var n=t.getDaysInMonth(e);return Math.ceil((r+n)/7)}(e,c),f=y(7).map((function(r){return{value:t.setDay(e,r+n)}}));return{cursorDate:e,year:a,month:u,day:i,weekStartsOn:n,startWeekdayInMonth:c,weeksInMonth:s,weekendDays:f,today:{weekIndex:T(i,c),dateIndex:t.getDay(e)},getDateCellByIndex:function(e,t){return{value:new Date(a,u,7*e+t-c+1)}}}}function T(e,t){return(e+t)%7>0?Math.floor((e+t)/7):Math.floor((e+t)/7)-1}function q(){var e=r.useState(!1),t=C(e,2),n=t[0],o=t[1];return r.useEffect((function(){o(!0)}),[]),n}function Y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function B(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Y(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Y(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}exports.CalendarViewType=n,exports.arrayOf=y,exports.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=e.defaultDate,u=e.defaultWeekStart,i=void 0===u?0:u,c=e.defaultViewType,s=void 0===c?n.Month:c,f=q(),l=r.useMemo((function(){return null!=a?new Date(a):new Date}),[a,f]),p=r.useState(i),O=C(p,2),d=O[0],v=O[1],w=r.useState(l),h=C(w,2),g=h[0],D=h[1],m=r.useState(s),P=C(m,2),S=P[0],x=P[1],I=V(g,{weekStartsOn:d}),A=I.weekendDays,E=I.weeksInMonth,T=I.today,Y=I.getDateCellByIndex,K=r.useCallback((function(e){switch(e){case n.Month:case n.Week:return{weekDays:k(A,"weekdays")};case n.Day:default:return{weekDays:k([{value:g}],"weekdays")}}}),[g,A]),_=r.useCallback((function(e){return{value:y(e).map((function(e){return{key:b("weeks"),value:y(7).map((function(t){return j(Y(e,t),M(l,g),W("days"))}))}}))}}),[l,g,Y]),F=r.useCallback((function(e){var t,r,a=_(E),u=T.weekIndex,i=T.dateIndex;return(r={},o(r,n.Month,a),o(r,n.Week,{value:[a.value[u]]}),o(r,n.Day,{value:[{key:"week-day-type",value:[null===(t=a.value[u])||void 0===t?void 0:t.value[i]]}]}),r)[e]}),[_,T,E]),H=r.useMemo((function(){switch(S){case n.Month:return function(e){return t.addMonths(t.startOfMonth(e),1)};case n.Week:return function(e){return t.addWeeks(t.startOfWeek(e,{weekStartsOn:d}),1)};case n.Day:return function(e){return t.addDays(e,1)}}}),[S,d]),N=r.useMemo((function(){switch(S){case n.Month:return function(e){return t.subMonths(t.startOfMonth(e),1)};case n.Week:return function(e){return t.subWeeks(t.startOfWeek(e,{weekStartsOn:d}),1)};case n.Day:return function(e){return t.subDays(e,1)}}}),[S,d]);return r.useMemo((function(){return B(B({},I),{},{headers:K(S),body:F(S),navigation:{toNext:function(){return D((function(e){return H(e)}))},toPrev:function(){return D((function(e){return N(e)}))},setToday:function(){return D(new Date)},setDate:function(e){return D(e)}},view:{type:S,setViewType:x,setWeekStartsOn:v,isMonthView:S===n.Month,isWeekView:S===n.Week,isDayView:S===n.Day,showMonthView:function(){return x(n.Month)},showWeekView:function(){return x(n.Week)},showDayView:function(){return x(n.Day)}}})}),[I,F,K,H,N,S])},exports.generateID=b,exports.isSameDate=d,exports.isSameYearAndMonth=v,exports.parseDate=w,exports.pipe=h,exports.pipeWith=j,exports.withDateProps=M,exports.withKey=k,exports.withKeyProps=W; //# sourceMappingURL=index.js.map