UNPKG

@gsretail.com/gui-core

Version:

A skeleton to create your own React component library using Rollup, TypeScript, Sass and Storybook

2 lines (1 loc) 5.56 kB
import e from"../../../@babel/runtime/helpers/esm/extends.js";import*as t from"react";import{createElement as a}from"react";import i from"@mui/material/Typography";import{styled as r,useThemeProps as n,useTheme as o}from"@mui/material/styles";import{unstable_composeClasses as s}from"@mui/material";import{clsx as l}from"../../../clsx/dist/clsx.m.js";import{PickersDay as d}from"../PickersDay/PickersDay.js";import{useNow as c,useUtils as m}from"../internals/hooks/useUtils.js";import{DAY_MARGIN as u,DAY_SIZE as D}from"../internals/constants/dimensions.js";import{PickersSlideTransition as h}from"./PickersSlideTransition.js";import{useIsDayDisabled as y}from"../internals/hooks/validation/useDateValidation.js";import{findClosestEnabledDate as f}from"../internals/utils/date-utils.js";import{getDayPickerUtilityClass as p}from"./dayPickerClasses.js";import{jsxs as g,jsx as k}from"react/jsx-runtime";const b=e=>e.charAt(0).toUpperCase(),v=6*(D+2*u),C=r("div",{name:"MuiDayPicker",slot:"Header",overridesResolver:(e,t)=>t.header})({display:"flex",justifyContent:"center",alignItems:"center"}),M=r(i,{name:"MuiDayPicker",slot:"WeekDayLabel",overridesResolver:(e,t)=>t.weekDayLabel})((({theme:e})=>({width:36,height:40,margin:"0 2px",textAlign:"center",display:"flex",justifyContent:"center",alignItems:"center",color:e.palette.text.secondary}))),w=r("div",{name:"MuiDayPicker",slot:"LoadingContainer",overridesResolver:(e,t)=>t.loadingContainer})({display:"flex",justifyContent:"center",alignItems:"center",minHeight:v}),x=r(h,{name:"MuiDayPicker",slot:"SlideTransition",overridesResolver:(e,t)=>t.slideTransition})({minHeight:v}),P=r("div",{name:"MuiDayPicker",slot:"MonthContainer",overridesResolver:(e,t)=>t.monthContainer})({overflow:"hidden"}),j=r("div",{name:"MuiDayPicker",slot:"WeekContainer",overridesResolver:(e,t)=>t.weekContainer})({margin:`${u}px 0`,display:"flex",justifyContent:"center"});function O(i){const r=c(),u=m(),D=n({props:i,name:"MuiDayPicker"}),h=(e=>{const{classes:t}=e;return s({header:["header"],weekDayLabel:["weekDayLabel"],loadingContainer:["loadingContainer"],slideTransition:["slideTransition"],monthContainer:["monthContainer"],weekContainer:["weekContainer"]},p,t)})(D),{onFocusedDayChange:v,className:O,currentMonth:A,selectedDays:S,disabled:N,disableHighlightToday:T,focusedDay:F,isMonthSwitchingAnimating:L,loading:R,onSelectedDaysChange:W,onMonthSwitchingAnimationEnd:H,readOnly:I,reduceAnimations:U,renderDay:E,renderLoading:B=(()=>k("span",{children:"..."})),showDaysOutsideCurrentMonth:K,slideDirection:V,TransitionProps:$,disablePast:q,disableFuture:z,minDate:G,maxDate:J,shouldDisableDate:Q,dayOfWeekFormatter:X=b,hasFocus:Y,onFocusedViewChange:Z,gridLabelId:_}=D,ee=y({shouldDisableDate:Q,minDate:G,maxDate:J,disablePast:q,disableFuture:z}),[te,ae]=t.useState((()=>F||r)),ie=t.useCallback((e=>{Z&&Z(e)}),[Z]),re=t.useCallback(((e,t="finish")=>{I||W(e,t)}),[W,I]),ne=t.useCallback((e=>{ee(e)||(v(e),ae(e),ie(!0))}),[ee,v,ie]),oe=o();function se(e,t){switch(e.key){case"ArrowUp":ne(u.addDays(t,-7)),e.preventDefault();break;case"ArrowDown":ne(u.addDays(t,7)),e.preventDefault();break;case"ArrowLeft":{const a=u.addDays(t,"ltr"===oe.direction?-1:1),i="ltr"===oe.direction?u.getPreviousMonth(t):u.getNextMonth(t),r=f({utils:u,date:a,minDate:"ltr"===oe.direction?u.startOfMonth(i):a,maxDate:"ltr"===oe.direction?a:u.endOfMonth(i),isDateDisabled:ee});ne(r||a),e.preventDefault();break}case"ArrowRight":{const a=u.addDays(t,"ltr"===oe.direction?1:-1),i="ltr"===oe.direction?u.getNextMonth(t):u.getPreviousMonth(t),r=f({utils:u,date:a,minDate:"ltr"===oe.direction?a:u.startOfMonth(i),maxDate:"ltr"===oe.direction?u.endOfMonth(i):a,isDateDisabled:ee});ne(r||a),e.preventDefault();break}case"Home":ne(u.startOfWeek(t)),e.preventDefault();break;case"End":ne(u.endOfWeek(t)),e.preventDefault();break;case"PageUp":ne(u.getNextMonth(t)),e.preventDefault();break;case"PageDown":ne(u.getPreviousMonth(t)),e.preventDefault()}}function le(e,t){ne(t)}function de(e,t){Y&&u.isSameDay(te,t)&&ie(!1)}const ce=u.getMonth(A),me=S.filter((e=>!!e)).map((e=>u.startOfDay(e))),ue=ce,De=t.useMemo((()=>t.createRef()),[ue]),he=u.startOfWeek(r),ye=t.useMemo((()=>{const e=u.startOfMonth(A),t=u.endOfMonth(A);return ee(te)||u.isAfterDay(te,t)||u.isBeforeDay(te,e)?f({utils:u,date:te,minDate:e,maxDate:t,disablePast:q,disableFuture:z,isDateDisabled:ee}):te}),[A,z,q,te,ee,u]);return g("div",{role:"grid","aria-labelledby":_,children:[k(C,{role:"row",className:h.header,children:u.getWeekdays().map(((e,t)=>{var a;return k(M,{variant:"caption",role:"columnheader","aria-label":u.format(u.addDays(he,t),"weekday"),className:h.weekDayLabel,children:null!=(a=null==X?void 0:X(e))?a:e},e+t.toString())}))}),R?k(w,{className:h.loadingContainer,children:B()}):k(x,e({transKey:ue,onExited:H,reduceAnimations:U,slideDirection:V,className:l(O,h.slideTransition)},$,{nodeRef:De,children:k(P,{ref:De,role:"rowgroup",className:h.monthContainer,children:u.getWeekArray(A).map((t=>k(j,{role:"row",className:h.weekContainer,children:t.map((t=>{const i=null!==ye&&u.isSameDay(t,ye),n=me.some((e=>u.isSameDay(e,t))),o=u.isSameDay(t,r),s={key:null==t?void 0:t.toString(),day:t,isAnimating:L,disabled:N||ee(t),autoFocus:Y&&i,today:o,outsideCurrentMonth:u.getMonth(t)!==ce,selected:n,disableHighlightToday:T,showDaysOutsideCurrentMonth:K,onKeyDown:se,onFocus:le,onBlur:de,onDaySelect:re,tabIndex:i?0:-1,role:"gridcell","aria-selected":n};return o&&(s["aria-current"]="date"),E?E(t,me,s):a(d,e({},s,{key:s.key}))}))},`week-${t[0]}`)))})}))]})}export{O as DayPicker};