@fk6/react-datepicker
Version:
React date picker with Hijri & Gregorian support, theming, localization, and more.
23 lines (22 loc) • 32.7 kB
JavaScript
(function(J,m){typeof exports=="object"&&typeof module<"u"?m(exports,require("react"),require("moment-hijri"),require("react-dom")):typeof define=="function"&&define.amd?define(["exports","react","moment-hijri","react-dom"],m):(J=typeof globalThis<"u"?globalThis:J||self,m(J.FKReactDatePicker={},J.React,J.moment,J.ReactDOM))})(this,(function(J,m,I,Pe){"use strict";var pe={exports:{}},ue={};/**
* @license React
* react-jsx-runtime.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var ge;function Ce(){if(ge)return ue;ge=1;var e=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function o(c,i,n){var k=null;if(n!==void 0&&(k=""+n),i.key!==void 0&&(k=""+i.key),"key"in i){n={};for(var u in i)u!=="key"&&(n[u]=i[u])}else n=i;return i=n.ref,{$$typeof:e,type:c,key:k,ref:i!==void 0?i:null,props:n}}return ue.Fragment=r,ue.jsx=o,ue.jsxs=o,ue}var me={};/**
* @license React
* react-jsx-runtime.development.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var Se;function Ae(){return Se||(Se=1,process.env.NODE_ENV!=="production"&&(function(){function e(t){if(t==null)return null;if(typeof t=="function")return t.$$typeof===T?null:t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case N:return"Fragment";case b:return"Profiler";case h:return"StrictMode";case d:return"Suspense";case D:return"SuspenseList";case F:return"Activity"}if(typeof t=="object")switch(typeof t.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),t.$$typeof){case v:return"Portal";case j:return(t.displayName||"Context")+".Provider";case p:return(t._context.displayName||"Context")+".Consumer";case s:var f=t.render;return t=t.displayName,t||(t=f.displayName||f.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case E:return f=t.displayName||null,f!==null?f:e(t.type)||"Memo";case P:f=t._payload,t=t._init;try{return e(t(f))}catch{}}return null}function r(t){return""+t}function o(t){try{r(t);var f=!1}catch{f=!0}if(f){f=console;var Y=f.error,w=typeof Symbol=="function"&&Symbol.toStringTag&&t[Symbol.toStringTag]||t.constructor.name||"Object";return Y.call(f,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",w),r(t)}}function c(t){if(t===N)return"<>";if(typeof t=="object"&&t!==null&&t.$$typeof===P)return"<...>";try{var f=e(t);return f?"<"+f+">":"<...>"}catch{return"<...>"}}function i(){var t=U.A;return t===null?null:t.getOwner()}function n(){return Error("react-stack-top-frame")}function k(t){if(L.call(t,"key")){var f=Object.getOwnPropertyDescriptor(t,"key").get;if(f&&f.isReactWarning)return!1}return t.key!==void 0}function u(t,f){function Y(){K||(K=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",f))}Y.isReactWarning=!0,Object.defineProperty(t,"key",{get:Y,configurable:!0})}function M(){var t=e(this.type);return q[t]||(q[t]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),t=this.props.ref,t!==void 0?t:null}function _(t,f,Y,w,V,X,C,te){return Y=X.ref,t={$$typeof:x,type:t,key:f,props:X,_owner:V},(Y!==void 0?Y:null)!==null?Object.defineProperty(t,"ref",{enumerable:!1,get:M}):Object.defineProperty(t,"ref",{enumerable:!1,value:null}),t._store={},Object.defineProperty(t._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(t,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(t,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:C}),Object.defineProperty(t,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:te}),Object.freeze&&(Object.freeze(t.props),Object.freeze(t)),t}function O(t,f,Y,w,V,X,C,te){var W=f.children;if(W!==void 0)if(w)if(H(W)){for(w=0;w<W.length;w++)y(W[w]);Object.freeze&&Object.freeze(W)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else y(W);if(L.call(f,"key")){W=e(t);var le=Object.keys(f).filter(function(fe){return fe!=="key"});w=0<le.length?"{key: someKey, "+le.join(": ..., ")+": ...}":"{key: someKey}",R[W+w]||(le=0<le.length?"{"+le.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
let props = %s;
<%s {...props} />
React keys must be passed directly to JSX without using spread:
let props = %s;
<%s key={someKey} {...props} />`,w,W,le,W),R[W+w]=!0)}if(W=null,Y!==void 0&&(o(Y),W=""+Y),k(f)&&(o(f.key),W=""+f.key),"key"in f){Y={};for(var ne in f)ne!=="key"&&(Y[ne]=f[ne])}else Y=f;return W&&u(Y,typeof t=="function"?t.displayName||t.name||"Unknown":t),_(t,W,X,V,i(),Y,C,te)}function y(t){typeof t=="object"&&t!==null&&t.$$typeof===x&&t._store&&(t._store.validated=1)}var g=m,x=Symbol.for("react.transitional.element"),v=Symbol.for("react.portal"),N=Symbol.for("react.fragment"),h=Symbol.for("react.strict_mode"),b=Symbol.for("react.profiler"),p=Symbol.for("react.consumer"),j=Symbol.for("react.context"),s=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),D=Symbol.for("react.suspense_list"),E=Symbol.for("react.memo"),P=Symbol.for("react.lazy"),F=Symbol.for("react.activity"),T=Symbol.for("react.client.reference"),U=g.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,L=Object.prototype.hasOwnProperty,H=Array.isArray,z=console.createTask?console.createTask:function(){return null};g={react_stack_bottom_frame:function(t){return t()}};var K,q={},Q=g.react_stack_bottom_frame.bind(g,n)(),a=z(c(n)),R={};me.Fragment=N,me.jsx=function(t,f,Y,w,V){var X=1e4>U.recentlyCreatedOwnerStacks++;return O(t,f,Y,!1,w,V,X?Error("react-stack-top-frame"):Q,X?z(c(t)):a)},me.jsxs=function(t,f,Y,w,V){var X=1e4>U.recentlyCreatedOwnerStacks++;return O(t,f,Y,!0,w,V,X?Error("react-stack-top-frame"):Q,X?z(c(t)):a)}})()),me}var Re;function Ie(){return Re||(Re=1,process.env.NODE_ENV==="production"?pe.exports=Ce():pe.exports=Ae()),pe.exports}var l=Ie();const ke="1937-03-14",se=I(ke),be="2077-10-17",ee=I(be),xe=(e,r)=>{if(e){const o=I(e);o.isBefore(se)?console.error(`@fk6/react-datepicker ERROR: The minimum supported date is (${ke})`):o.isAfter(ee)&&console.error(`@fk6/react-datepicker ERROR: The maximum supported date is (${be})`)}if(r){const o=I(r);o.isBefore(se)?console.error(`@fk6/react-datepicker ERROR: The minimum supported date is (${ke})`):o.isAfter(ee)&&console.error(`@fk6/react-datepicker ERROR: The maximum supported date is (${be})`)}},ce=document.documentElement.lang??"en",ie=(e,r)=>{if(!e)return;const o=I.isMoment(e)?e.locale(r??ce):I(e).locale(r??ce);return o.isBetween(se,ee,void 0,"[]")?I.isMoment(e)?e.toDate():e:o.year()-ee.year()>=0?ee.toDate():se.toDate()},Le=(e,r)=>{if(e)return e.isBetween(se,ee,void 0,"[]")?e:e.year()-ee.year()>=0?ee.locale(r??ce):se.locale(r??ce)},B=(e,r)=>I(e).locale(r??ce),we=(e,r,o=!0,c)=>{let i=r.hour;const n=I.isMoment(e)?e:I(e).locale(c??ce);return o&&r.meridiem&&(i||i===0)&&(r.meridiem===I.localeData(c).meridiem(12,0,!1)&&i<12&&(i+=12),r.meridiem===I.localeData(c).meridiem(0,0,!1)&&i===12&&(i=0)),n.clone().hour(i||0).minute(r.minute||0).second(r.second||0).millisecond(0)},he=(e,r=!0,o)=>{if(!e)return;const c=I(e).locale(o??ce);let i=c.hour(),n;return r&&(n=i>=12?I.localeData(o).meridiem(12,0,!1):I.localeData(o).meridiem(0,0,!1),i=i%12,i===0&&(i=12)),{hour:i,minute:c.minute(),second:c.second(),meridiem:n}};var oe=(e=>(e.Hijri="hijri",e.Gregorian="gregorian",e))(oe||{}),S=(e=>(e.Days="days",e.Months="months",e.Years="years",e))(S||{}),re=(e=>(e.D="D",e.Day="DD",e.Month="MM",e.ShortMonth="MMM",e.FullMonth="MMMM",e.FullYear="YYYY",e.FullTime="hh:mm:ss A",e.Date="YYYY/MM/DD",e.FullDateTime="YYYY/MM/DD hh:mm:ss A",e.FullMonthYear="MMMM YYYY",e.WeekNumber="w",e))(re||{}),ae=(e=>(e.D="iD",e.Day="iDD",e.Month="iMM",e.FullYear="iYYYY",e.FullMonth="iMMMM",e.ShortMonth="iMMM",e.FullTime="hh:mm:ss A",e.Date="iYYYY/iMM/iDD",e.FullDateTime="iYYYY/iMM/iDD hh:mm:ss A",e.FullMonthYear="iMMMM iYYYY",e.WeekNumber="iw",e))(ae||{}),G=(e=>(e.Top="top",e.Right="right",e.Bottom="bottom",e.Left="left",e.Start="start",e.End="end",e.TopLeft="top-left",e.TopRight="top-right",e.TopStart="top-start",e.TopEnd="top-end",e.BottomLeft="bottom-left",e.BottomRight="bottom-right",e.BottomStart="bottom-start",e.BottomEnd="bottom-end",e))(G||{}),ve=(e=>(e.Dark="dark",e.Light="light",e))(ve||{}),Te=(e=>(e.Inline="inline",e.Popover="popover",e))(Te||{});const $=e=>Object.entries(e).reduce((r,[o,c])=>r+=c&&!r.includes(o)?`${o} `:"","").trim(),Z=(e,r,o)=>Math.min(Math.max(e,r),o),We=(e,r,o)=>{if(!e)return;const c=r?.clientHeight||0,i=r?.clientWidth||0,n=(r.dir||document.dir||document.body.dir)==="rtl",k=e.getBoundingClientRect(),u=e.parentElement?.getBoundingClientRect()??k,{scrollY:M,scrollX:_,innerHeight:O,innerWidth:y}=window,g=n?i:0,x=n?0:i;if(o){const j=O-k.bottom-c+e.clientHeight-20,s=y-k.right+g-60;return{topPosition:Z(-c-5,-u.top,j),bottomPosition:Z(e.clientHeight,-u.top,j),middleXPosition:Z((n?i/2:-(i/2))+e.clientWidth/2,g-u.left,s),middleYPosition:Z(-(c/2)+e.clientHeight/2,-u.top,j),leftPosition:Z(n?0:-(c+20),g-u.left,s),rightPosition:Z((n?i:0)+e.clientWidth+2,g+e.clientWidth-u.right,y-k.left-x-10),startPosition:Z(n?c+e.clientWidth+43:-(c+40),g+e.clientWidth-u.right,s),endPosition:Z(n?0:e.clientWidth+2,g+e.clientWidth-u.right,s)}}const v={left:k.left+_,right:k.right+_,top:k.top+M,bottom:k.bottom,start:n?k.right:k.left,end:n?k.left:k.right},N=O+M-c,h=y+_-x,b=_+g,p=_-(n?-i:i);return{topPosition:Z(v.top-c,M,N),bottomPosition:Z(v.bottom+M,M,M+O-c-20),middleXPosition:Z(v.left+g,_+g,h),middleYPosition:Z(v.top-c/2,M,N),leftPosition:Z(v.left-x,b,h),rightPosition:Z(v.right+g,_+g,h),startPosition:Z(v.start+p,b,h),endPosition:Z(v.end+_,b,h)}},Be={[G.Top]:e=>({top:e?.topPosition,left:e?.middleXPosition}),[G.Bottom]:e=>({top:e?.bottomPosition,left:e?.middleXPosition}),[G.Left]:e=>({top:e?.middleYPosition,left:e?.leftPosition}),[G.Right]:e=>({top:e?.middleYPosition,left:e?.rightPosition}),[G.Start]:e=>({top:e?.middleYPosition,left:e?.startPosition}),[G.End]:e=>({top:e?.middleYPosition,left:e?.endPosition}),[G.TopLeft]:e=>({top:e?.topPosition,left:e?.leftPosition}),[G.TopRight]:e=>({top:e?.topPosition,left:e?.rightPosition}),[G.TopStart]:e=>({top:e?.topPosition,left:e?.startPosition}),[G.TopEnd]:e=>({top:e?.topPosition,left:e?.endPosition}),[G.BottomLeft]:e=>({top:e?.bottomPosition,left:e?.leftPosition}),[G.BottomRight]:e=>({top:e?.bottomPosition,left:e?.rightPosition}),[G.BottomStart]:e=>({top:e?.bottomPosition,left:e?.startPosition}),[G.BottomEnd]:e=>({top:e?.bottomPosition,left:e?.endPosition})},Fe=({locale:e,showTimePicker:r,enableGoToToday:o,renderGoToToday:c,renderConfirmBtn:i,onCurrentDateChange:n,onConfirm:k})=>{const u=!!o||r,M=()=>{n(B(void 0,e))},_=()=>{k?.()};return u?l.jsxs("div",{className:"fkdp-calendar__footer",children:[o&&(c?c(M):l.jsx("button",{onClick:M,className:"fkdp-calendar__go-to-today",children:"Go to today"})),r&&l.jsx("div",{className:"fkdp-calendar__footer--actions",children:i?i(_):l.jsx("button",{onClick:_,className:"fkdp-calendar__footer--action fkdp-calendar__footer--action-ok",children:"OK"})})]}):l.jsx(l.Fragment,{})},He=({view:e,calendar:r,currentDate:o,yearsRange:c=12,calendarEl:i,views:n,disableLocaleDigits:k,renderPrevButton:u,renderNextButton:M,renderSelectedMonth:_,renderSelectedYear:O,onChangeView:y,onCurrentDateChange:g})=>{const x=r===oe.Hijri,v=x?ae:re,N=e===S.Years||e===S.Months?S.Years:S.Months,h=m.useMemo(()=>n===void 0||n.includes(S.Days),[n]),b=m.useMemo(()=>n===void 0||n.includes(S.Months),[n]),p=m.useMemo(()=>n===void 0||n.includes(S.Years),[n]),j=m.useMemo(()=>o.isAfter(se,N)&&(e===S.Years||e===S.Months&&p||e===S.Days&&b),[o,e,b,p]),s=m.useMemo(()=>o.isBefore(ee,N)&&(e===S.Years||e===S.Months&&p||e===S.Days&&b),[o,e,b,p]),d=m.useMemo(()=>(i?.dir||document.body.dir||document.dir)==="rtl",[i?.dir]),D=()=>{b&&(e===S.Months&&h?y?.(S.Days):e===S.Days&&b||e===S.Years&&b?y?.(S.Months):e===S.Months&&p&&y?.(S.Years))},E=()=>{p&&(e===S.Years&&h?y?.(S.Days):(e===S.Days&&p||e===S.Months&&p||e===S.Days&&p)&&y?.(S.Years))},P=()=>{switch(e){case S.Days:b&&g(o.clone().subtract(1,"month"));break;case S.Months:p&&g(o.clone().subtract(1,"year"));break;case S.Years:j&&g(o.clone().subtract(c,"year"));break}},F=()=>{switch(e){case S.Days:g(o.clone().add(1,"month"));break;case S.Months:g(o.clone().add(1,"year"));break;case S.Years:s&&g(o.clone().add(c,"year"));break}},T=m.useMemo(()=>k?x?o.iYear().toString():o.year().toString():o.format(v.FullYear),[o,x]),U=m.useMemo(()=>o.format(v.FullMonth),[o]);return n?.length===1&&n[0]===S.Days?null:l.jsxs("div",{className:"fkdp-calendar__header",children:[u?u({disabled:!j,onClick:()=>P()}):l.jsx("button",{className:$({"fkdp-calendar__btn":!0,"fkdp-calendar__btn-prev":!0,"fkdp-calendar__btn--disabled":!j}),disabled:!j,type:"button","aria-label":"Previous",style:{transform:d?"rotate(180deg)":void 0},onClick:P,children:"◀"}),p&&(O?O(T,o.toDate(),{opened:e===S.Years,onClick:()=>E()}):l.jsx("span",{style:{cursor:b||h?"pointer":void 0,fontWeight:e===S.Years?"bold":void 0},onClick:E,children:T})),b&&(_?_(U,o.toDate(),{opened:e===S.Months,onClick:()=>D()}):l.jsx("span",{style:{cursor:p||h?"pointer":void 0,fontWeight:e===S.Months?"bold":void 0},onClick:D,children:U})),M?M({disabled:!s,onClick:()=>F()}):l.jsx("button",{className:$({"fkdp-calendar__btn":!0,"fkdp-calendar__btn-prev":!0,"fkdp-calendar__btn--disabled":!s}),disabled:!s,type:"button","aria-label":"Next",style:{transform:d?"rotate(180deg)":void 0},onClick:F,children:"▶"})]})},Ve=({value:e,currentDate:r,calendar:o,firstDayOfWeek:c=0,focusedDate:i,minDate:n,maxDate:k,locale:u,hideOutsideDays:M,showWeeksNumber:_,highlightDates:O,disabledDates:y,disabledMonths:g,disabledYears:x,weekends:v,disableWeekends:N,disableLocaleDigits:h,renderDay:b,renderWeekNumber:p,disabledDatesFn:j,onSelect:s})=>{const d=o===oe.Hijri,D=d?ae:re,E=O?.map(a=>I(a)),P=m.useMemo(()=>{const a=d?r.clone().startOf("iMonth"):r.clone().startOf("month"),R=d?r.clone().endOf("iMonth"):r.clone().endOf("month"),t=(a.day()-c+7)%7;let f=a.clone().subtract(t,"days");for(;isNaN(f.iDate());)f=f.add(1,"days");const Y=R.clone().add(6-(R.day()-c+7)%7,"days"),w=[];let V=f.locale(u??"en").clone();for(;V.isSameOrBefore(Y,"day");)isNaN(V.iDate())||w.push(V.clone()),V.add(1,"day");return w},[r,c,o]),F=m.useMemo(()=>{const a=[];for(let R=0;R<P.length;R+=7){const t=P.slice(R,R+7);(d?t[0]?.iMonth()===r.iMonth()||t[t.length-1]?.iMonth()===r.iMonth():t[0]?.month()===r.month()||t[t.length-1]?.month()===r.month())&&a.push({weekNum:t[0],days:t})}return a},[P]),T=m.useMemo(()=>{const a=I.localeData(u).weekdaysMin();return _?["#",...a.slice(c),...a.slice(0,c)]:[...a.slice(c),...a.slice(0,c)]},[c]),U=m.useMemo(()=>y?.map(a=>B(a,u)),[y]),L=m.useMemo(()=>g?.map(a=>B(a,u)),[g]),H=m.useMemo(()=>x?.map(a=>B(a,u)),[x]),z=a=>!a.isBetween(n,k,"day","[]")||!!N&&!!v?.includes(a.day())||!!j?.(a.toDate(),S.Days)||!!U?.some(R=>R.isSame(a,"day"))||!!L?.some(R=>R.isSame(a,"month"))||!!H?.some(R=>R.isSame(a,"year")),K=a=>{if(z(a))return;const R=he(r,!1,u);s(a.add({hours:R?.hour||0,minutes:R?.minute||0,seconds:R?.second||0}).toDate())},q=a=>{const R=d?a.iMonth()===r.iMonth():a.month()===r.month();if(M&&!R)return l.jsx("span",{className:"fkdp-calendar__cell fkdp-calendar__cell--outside"},a.toString());const t=!!e&&B(e,u).isSame(a,"day"),f=z(a),Y=B(void 0,u).isSame(a,"day"),w=!!E?.some(W=>W.isSame(a,"day")),V=a.isSame(i,"day"),X=!!v?.includes(a.day()),C=h?d?a.iDate().toString():a.date().toString():a.format(D.Day),te=$({"fkdp-calendar__cell":!0,"fkdp-calendar__cell--selected":t,"fkdp-calendar__cell--disabled":f,"fkdp-calendar__cell--today":Y,"fkdp-calendar__cell--highlighted":w,"fkdp-calendar__cell--focused":V,"fkdp-calendar__cell--holiday":X,"fkdp-calendar__cell--outside":!R});return b?b(C,a.toDate(),{className:te,"aria-selected":!!t,tabIndex:a.isSame(i,"day")?0:-1,onClick:()=>K(a)},{selected:t,disabled:f,today:Y,highlighted:w,focused:V,holiday:X,outside:!R}):l.jsx("button",{type:"button",className:te,disabled:f,"aria-selected":!!t,tabIndex:a.isSame(i,"day")?0:-1,onClick:()=>K(a),children:C},a.toString())},Q=a=>l.jsx("span",{className:"fkdp-calendar__cell fkdp-calendar__cell--weekday",children:a},a);return l.jsxs("div",{children:[l.jsx("div",{className:$({"fkdp-calendar__grid":!0,"fkdp-calendar__grid-weekdays":!0,"fkdp-calendar__grid-with-weeknum":!!_}),children:T.map(a=>Q(a))}),l.jsx("div",{className:$({"fkdp-calendar__grid":!0,"fkdp-calendar__grid-days":!0,"fkdp-calendar__grid-with-weeknum":!!_}),children:F.map((a,R)=>{const t=h?(d?a.weekNum?.iWeek().toString():a.weekNum?.week().toString())??"":a.weekNum?.format(D.WeekNumber)||"";return l.jsxs(m.Fragment,{children:[_&&l.jsx("div",{className:"fkdp-calendar__cell",children:p?p(t,a.weekNum?.isoWeek()||-1):l.jsx("span",{className:"fkdp-calendar__cell--weeknum",children:t})}),a.days.map(f=>q(f))]},R)})})]})},Ue=({value:e,calendar:r,currentDate:o,focusedDate:c,minDate:i,maxDate:n,locale:k,disabledMonths:u,disabledYears:M,disabledDatesFn:_,renderMonth:O,onSelect:y})=>{const g=r===oe.Hijri,x=g?ae:re,v=m.useMemo(()=>{const s=[],d=g?o.clone().startOf("iYear"):o.clone().startOf("year");for(let D=0;D<12;D++){const E=g?d.clone().add(D,"iMonth"):d.clone().add(D,"month");s.push(E)}return s},[o,r]),N=m.useMemo(()=>u?.map(s=>B(s,k)),[u]),h=m.useMemo(()=>M?.map(s=>B(s,k)),[M]),b=s=>!s.isBetween(i,n,"month","[]")||!!_?.(s.toDate(),S.Months)||!!N?.some(d=>d.isSame(s,"month"))||!!h?.some(d=>d.isSame(s,"year")),p=s=>{if(!b(s))if(s.isBetween(i,n,void 0,"[]")){const d=he(o,!1,k);y?.(s.add({hours:d?.hour||0,minutes:d?.minute||0,seconds:d?.second||0}).toDate())}else s.isBefore(i)?y?.(I(i).toDate()):y?.(I(n).toDate())},j=s=>{const d=!!e&&B(e,k).isSame(s,"month"),D=b(s),E=B(void 0,k).isSame(s,"month"),P=s.isSame(c,"day"),F=s.format(x.ShortMonth),T=$({"fkdp-calendar__cell":!0,"fkdp-calendar__cell--selected":d,"fkdp-calendar__cell--disabled":D,"fkdp-calendar__cell--today":E,"fkdp-calendar__cell--focused":P});return O?O(F,s.toDate(),{className:T,"aria-selected":!!d,tabIndex:s.isSame(c,"day")?0:-1,onClick:()=>p(s)},{selected:d,disabled:D,today:E,focused:P}):l.jsx("button",{type:"button",className:T,disabled:D,"aria-selected":!!d,tabIndex:s.isSame(c,"day")?0:-1,onClick:()=>p(s),children:F},s.toString())};return l.jsx("div",{className:"fkdp-calendar__grid fkdp-calendar__grid-months",children:v.map(s=>j(s))})},Xe=({value:e,currentDate:r,calendar:o,minDate:c,maxDate:i,focusedDate:n,range:k=16,disabledYears:u,locale:M,disableLocaleDigits:_,disabledDatesFn:O,renderYear:y,onSelect:g})=>{const x=o===oe.Hijri,v=x?ae:re,N=m.useMemo(()=>{const s=[],d=x?r.iYear():r.year(),D=d-d%k;for(let E=0;E<k;E++){const P=x?B(void 0,M).iYear(D+E).startOf("iYear"):B(void 0,M).year(D+E).startOf("year");s.push(P)}return s},[r,o]),h=m.useMemo(()=>u?.map(s=>B(s,M)),[u]),b=s=>!s.isBetween(c,i,"year","[]")||!!O?.(s.toDate(),S.Years)||!!h?.some(d=>d.isSame(s,"year")),p=s=>{if(!b(s))if(s.isBetween(c,i,void 0,"[]")){const d=he(r,!1,M);g?.(s.add({hours:d?.hour||0,minutes:d?.minute||0,seconds:d?.second||0}).toDate())}else s.isBefore(c)?g?.(I(c).toDate()):g?.(I(i).toDate())},j=s=>{const d=!!e&&B(e,M).isSame(s,"year"),D=b(s),E=B(void 0,M).isSame(s,"year"),P=s.isSame(n,"day"),F=_?x?s.iYear().toString():s.year().toString():s.format(v.FullYear),T=$({"fkdp-calendar__cell":!0,"fkdp-calendar__cell--selected":d,"fkdp-calendar__cell--disabled":D,"fkdp-calendar__cell--today":E,"fkdp-calendar__cell--focused":P});return y?y(F,s.toDate(),{className:T,"aria-selected":!!d,tabIndex:s.isSame(n,"day")?0:-1,onClick:()=>p(s)},{selected:d,disabled:D,today:E,focused:P}):l.jsx("button",{type:"button",className:T,disabled:D,"aria-selected":!!d,tabIndex:s.isSame(n,"day")?0:-1,onClick:()=>p(s),children:F},s.toString())};return l.jsx("div",{className:"fkdp-calendar__grid fkdp-calendar__grid-years",children:N.map(s=>j(s))})},de=30,ze=30,je=7,De=Math.floor(je/2),Je=de*je,_e=({locale:e,items:r,selected:o,disabledItems:c,showScrollbars:i,selectOnScrolling:n,disableLocaleDigits:k,renderTimeItem:u,onSelect:M})=>{const _=m.useRef(null),O=m.useRef(null),[y,g]=m.useState(!1),x=o!==void 0&&!c?.includes(o)?o:void 0;m.useEffect(()=>{if(y||!_.current||!x&&x!==0)return;const h=r.indexOf(x);if(h===-1)return;const b=h*de;_.current.scrollTo({top:b,behavior:"smooth"})},[x,y,_.current]);const v=()=>{!_.current||!n||(g(!0),O.current&&clearTimeout(O.current),O.current=setTimeout(()=>{if(!_.current)return;const h=_.current.scrollTop,b=Math.round(h/de),p=Math.max(0,Math.min(r.length-1,b)),j=r[p];j!==x&&M(j!==void 0&&!c?.includes(j)?j:void 0),g(!1)},120))},N=h=>{const b=h===x,p=!!c?.includes(h),j=typeof h=="number"?k?String(h).padStart(2,"0"):I.localeData(e).postformat(String(h).padStart(2,"0")):h,s={height:de,width:"100%"},d=$({"fkdp-calendar__time-item":!0,"fkdp-calendar__time-item--selected":b,"fkdp-calendar__time-item--disabled":p});return u?u(j,h,{className:d,style:s,onClick:()=>M(h)},{selected:b,disabled:p}):l.jsx("button",{className:d,disabled:c?.includes(h),style:s,onClick:()=>M(h),children:j},h.toString())};return l.jsxs("div",{ref:_,className:"fkdp-calendar__time-col",style:{height:Je,minWidth:ze,scrollbarWidth:i?"thin":"none"},onScroll:n?v:void 0,children:[l.jsx("div",{style:{height:de*De}}),r.map(h=>N(h)),l.jsx("div",{style:{height:de*De}})]})},Ge=({renderHeaderContent:e,value:r,initialDate:o,currentDate:c,locale:i,is12h:n=!1,visibleColumns:k,showScrollbars:u=!1,selectOnScrolling:M,disabledHours:_,disabledMinutes:O,disabledSeconds:y,disabledMeridiem:g,disableLocaleDigits:x,renderTimeItem:v,onSelect:N})=>{const h=k===void 0||k.includes("hours"),b=k===void 0||k.includes("minutes"),p=k===void 0||k.includes("seconds"),j=o?he(o,n,i):{hour:n?12:0,minute:0,second:0,meridiem:I.localeData(i).meridiem(0,0,!1)},s=m.useMemo(()=>he(r??o,n,i),[r,n]),d=[I.localeData(i).meridiem(0,0,!1),I.localeData(i).meridiem(12,0,!1)],D=p?Array.from({length:60},(T,U)=>U):[],E=b?Array.from({length:60},(T,U)=>U):[],P=h?n?[12,...Array.from({length:11},(T,U)=>U+1)]:Array.from({length:24},(T,U)=>U):[],F=T=>{N?.(T?we(c,T,n,i).toDate():null)};return l.jsxs("div",{style:{position:"relative",direction:"ltr"},children:[l.jsx("div",{className:"fkdp-calendar__time-header",children:e?e({className:"fkdp-calendar__time-item",style:{width:"100%"}},n):l.jsxs(l.Fragment,{children:[h&&l.jsx("div",{className:"fkdp-calendar__time-item",style:{width:"100%"},children:"h"}),b&&l.jsx("div",{className:"fkdp-calendar__time-item",style:{width:"100%"},children:"m"}),p&&l.jsx("div",{className:"fkdp-calendar__time-item",style:{width:"100%"},children:"s"}),n&&l.jsx("div",{className:"fkdp-calendar__time-item",style:{width:"100%"}})]})}),l.jsxs("div",{className:"fkdp-calendar__time",children:[h&&l.jsx(_e,{locale:i,items:P,selected:s?.hour,disabledItems:_,showScrollbars:u,selectOnScrolling:M,disableLocaleDigits:x,renderTimeItem:v,onSelect:T=>F({...s??j,hour:T})}),b&&l.jsx(_e,{locale:i,items:E,disabledItems:O,selected:s?.minute,showScrollbars:u,selectOnScrolling:M,disableLocaleDigits:x,renderTimeItem:v,onSelect:T=>F({...s??j,minute:T})}),p&&l.jsx(_e,{locale:i,items:D,disabledItems:y,selected:s?.second,showScrollbars:u,selectOnScrolling:M,disableLocaleDigits:x,renderTimeItem:v,onSelect:T=>F({...s??j,second:T})}),n&&p&&l.jsx(_e,{locale:i,items:d,showScrollbars:!1,disabledItems:g?.map(T=>T.toLowerCase()==="pm"||T.toLowerCase()==="م"?I.localeData(i).meridiem(12,0,!1):I.localeData(i).meridiem(0,0,!1)),selectOnScrolling:M,selected:s?.meridiem,renderTimeItem:v,onSelect:T=>F({...s??j,meridiem:T})})]})]})},ye=m.forwardRef(({open:e,value:r=null,initialDate:o,minDate:c,maxDate:i,locale:n,theme:k="light",calendar:u=oe.Gregorian,disablePortal:M=!1,mode:_="popover",position:O=G.Bottom,anchorEl:y,monthsCalendarProps:g,yearsCalendarProps:x,daysCalendarProps:v,timePickerProps:N,enableGoToToday:h,isControlled:b,views:p,initialView:j,showTimePicker:s,hideFooter:d,disableLocaleDigits:D,renderGoToToday:E,renderConfirmBtn:P,disabledDatesFn:F,onSelect:T,onClose:U,...L},H)=>{const z=e??_==="inline",K=ie(c,n)??se.toDate(),q=ie(i,n)??ee.toDate(),Q=m.useMemo(()=>p===void 0||p.includes("months"),[p]),a=m.useMemo(()=>p===void 0||p.includes("years"),[p]),R=m.useMemo(()=>p===void 0||p.includes("days"),[p]),[t,f]=m.useState(j??p?.[0]??S.Days),[Y,w]=m.useState(B(ie(r||o||I({hours:0,minutes:0,seconds:0}),n),n)),[V,X]=m.useState(B(ie(r||I({hours:0,minutes:0,seconds:0}),n),n)),[C,te]=m.useState({visibility:"hidden"}),W=m.useRef(null);m.useEffect(()=>{H&&(typeof H=="function"?H(W.current):H.current=W.current)},[H]),m.useEffect(()=>{p!==void 0&&!p?.includes(t)&&console.error(`The value of [initialView] property must be defined in views array. Please add (${j}) to views array!`)},[p,o]);const le=m.useCallback(()=>{if(!y||!W.current)return{};const A=We(y,W.current,M);return{position:"absolute",...Be[O](A)}},[y,W.current,O]);m.useEffect(()=>{if(_==="popover"&&z&&y){const A=()=>{const qe=le();te(qe)};return A(),window.addEventListener("resize",A),window.addEventListener("scroll",A,!0),()=>{window.removeEventListener("resize",A),window.removeEventListener("scroll",A,!0)}}},[_,z,y,O]);const ne=A=>{w(Le(A,n))};if(!z)return null;const fe=m.useCallback(A=>{W.current&&!W.current.contains(A.target)&&y&&!y.contains(A.target)&&!A.target.closest(".calendar-popover")&&U?.()},[W.current,y]);m.useEffect(()=>(_==="popover"&&(z?document.addEventListener("mousedown",fe):document.removeEventListener("mousedown",fe)),()=>document.removeEventListener("mousedown",fe)),[z,fe,_]);const Ze=l.jsx(Ve,{...v,value:r,currentDate:Y,calendar:u,focusedDate:V,minDate:K,maxDate:q,locale:n,disableLocaleDigits:D,onSelect:A=>{T?.(A,!s),ne(B(A,n)),X(B(A,n))}}),Ee=l.jsx(Ue,{...g,value:r,currentDate:Y,calendar:u,minDate:K,maxDate:q,focusedDate:V,locale:n,onSelect:A=>{X(B(A,n)),ne(B(A,n)),R?f(S.Days):T?.(A,!s)}}),Oe=l.jsx(Xe,{...x,value:r,calendar:u,currentDate:Y,focusedDate:V,minDate:K,maxDate:q,locale:n,disableLocaleDigits:D,onSelect:A=>{ne(B(A,n)),X(B(A,n)),Q?f(S.Months):R?f(S.Days):T?.(A,!s)}}),Qe=()=>{switch(t){case"days":if(R)return Ze;case"months":if(Q)return Ee;case"years":if(a)return Oe;default:if(Q)return Ee;if(a)return Oe}},Me=l.jsxs("div",{...L,ref:W,className:$({"fkdp-calendar":!0,[L.className||""]:!!L.className,"fkdp-calendar__dark":k==="dark","fkdp-calendar__woth-week-nums":v?.showWeeksNumber}),role:"grid","aria-label":L["aria-label"]||"Calendar",onClick:A=>A.stopPropagation(),children:[l.jsx(He,{yearsRange:x?.range,calendar:u,currentDate:Y,view:t,views:p,calendarEl:W.current,disableLocaleDigits:D,onChangeView:f,onCurrentDateChange:ne}),l.jsxs("div",{className:"fkdp-calendar__container",children:[Qe(),s&&l.jsxs(l.Fragment,{children:[l.jsx("div",{className:"fkdp-calendar__divider"}),l.jsx(Ge,{...N,value:r,currentDate:Y,initialDate:o,locale:n,disableLocaleDigits:D,onSelect:A=>{A&&(T?.(A),ne(B(A,n)),X(B(A,n)))}})]})]}),!d&&l.jsx(Fe,{showTimePicker:s,locale:n,enableGoToToday:h,renderGoToToday:E,renderConfirmBtn:P,onConfirm:()=>U?.(),onCurrentDateChange:ne})]});return _==="inline"?Me:l.jsx(l.Fragment,{children:z&&(y||b)&&(M?l.jsx("div",{style:C,children:Me}):Pe.createPortal(l.jsx("div",{style:C,children:Me}),document.body))})}),Ne=m.forwardRef(({value:e,defaultValue:r=null,format:o=re.Date,clearable:c=!0,showIcon:i=!0,locale:n,disableLocaleDigits:k,htmlInputProps:u,placeholder:M,disabled:_,renderIcon:O,onChange:y,onInputChange:g,onOpenRequest:x,...v},N)=>{const h=e!==void 0,[b,p]=m.useState(r),j=L=>{const H=B(h?L:b,n).format(o);return k?I.localeData(n).preparse(H):H},[s,d]=m.useState((h?e:b)?j(h?e:b):""),D=m.useRef(null);m.useEffect(()=>{typeof N=="function"?N(D.current):N&&(N.current=D.current)},[N]),m.useEffect(()=>{h&&d(e?j(e):"")},[e,h,o]);const E=L=>{if(!L.trim()){h||p(null),y?.(null);return}try{const H=I(L,o,!0).locale(n??"en");if(H.isValid()){const z=H.toDate();h||p(z),y?.(z)}}catch{return}},P=L=>{const H=L.target.value;d(H),g?.(H)},F=()=>{E(s)},T=L=>{L.key==="Enter"?E(s):L.key==="ArrowDown"||L.key===" "?(L.preventDefault(),x?.(D.current)):L.key==="Escape"&&d((h?e:b)?j(h?e:b):"")},U=L=>{L.stopPropagation(),d(""),h||p(null),y?.(null)};return l.jsxs("div",{...v,className:$({"fkdp-field":!0,[v.className||""]:!!v.className,"fkdp-field--disabled":_,"fkdp-field--readonly":v.readOnly}),children:[l.jsx("input",{ref:D,type:"text",value:s,placeholder:M,disabled:_,onChange:P,onBlur:F,onKeyDown:T,onClick:L=>{i||x?.(!0),v.onClick?.(L)},"aria-haspopup":"dialog",id:"RDP_Field",...u,className:$({"fkdp-field__input":!0,[u?.className||""]:!!u?.className}),readOnly:!0}),c&&s&&!_&&!v.readOnly&&l.jsx("button",{type:"button",className:"fkdp-field__clear","aria-label":"Clear date",onClick:U,children:"×"}),i&&l.jsx("button",{type:"button",className:"fkdp-field__icon","aria-label":"Open calendar",disabled:_,onClick:()=>x?.(D.current),children:O?O(()=>x?.(D.current)):"📅"})]})}),Ye=m.forwardRef(({value:e,defaultValue:r=null,open:o,format:c,placeholder:i,minDate:n,maxDate:k,locale:u,disabled:M=!1,readOnly:_=!1,closeOnSelect:O=!0,name:y,calendar:g,initialDate:x,theme:v="light",calendarProps:N,fieldProps:h,onChange:b,onOpenChange:p,renderInput:j,renderCalendar:s,...d},D)=>{xe(n,k);const E=e!==void 0,P=o!==void 0,F=ie(n,u)??se.toDate(),T=ie(k,u)??ee.toDate(),L=g===oe.Hijri?ae:re,H=c??L.Date,[z,K]=m.useState(r),[q,Q]=m.useState(null),a=m.useRef(null),R=E?e:z,t=P?o:!!q;m.useEffect(()=>{P&&Q(o?a.current:null)},[o]);const f=C=>{P||Q(C?a.current:null),p?.(C)},Y=(C,te)=>{E||K(C),b?.(C),O&&te&&f(!1),a.current?.focus()},w=()=>{!M&&!_&&f(!0)},V=j?j({value:R,format:H,ref:a,readOnly:_,disabled:M,placeholder:i,onOpenRequest:w,onChange:C=>{E||K(C),b?.(C)}}):l.jsx(Ne,{...h,ref:a,value:R,format:H,placeholder:i||"",disabled:M,readOnly:_,locale:u,disableLocaleDigits:N?.disableLocaleDigits,onOpenRequest:w,onChange:C=>{E||K(C),b?.(C)}}),X=s?s({value:R,minDate:F,maxDate:T,locale:u,onSelect:Y,...N}):l.jsx(ye,{...N,dir:d.dir,theme:v,isControlled:P,open:t,anchorEl:q,value:R,minDate:F,maxDate:T,locale:u,calendar:g,initialDate:x,disableLocaleDigits:N?.disableLocaleDigits,onSelect:Y,onClose:()=>f(!1)});return l.jsxs("div",{...d,ref:D,className:$({"fkdp-datepicker":!0,[d.className||""]:!!d.className,"fkdp-datepicker__dark":v==="dark"}),children:[V,(t||N?.mode==="inline")&&X,y&&R&&l.jsx("input",{type:"hidden",name:y,value:R.toISOString()})]})}),Ke=m.forwardRef(({value:e,defaultValue:r=null,open:o,format:c,placeholder:i,minDate:n,maxDate:k,locale:u,disabled:M=!1,readOnly:_=!1,closeOnSelect:O=!0,name:y,calendar:g,initialDate:x,theme:v="light",calendarProps:N,fieldProps:h,onChange:b,onOpenChange:p,renderInput:j,renderCalendar:s,...d},D)=>{xe(n,k);const E=e!==void 0,P=o!==void 0,F=ie(n,u)??se.toDate(),T=ie(k,u)??ee.toDate(),L=g===oe.Hijri?ae:re,H=c??L.FullDateTime,[z,K]=m.useState(r),[q,Q]=m.useState(null),a=m.useRef(null),R=E?e:z,t=P?o:!!q;m.useEffect(()=>{P&&Q(o?a.current:null)},[o]);const f=C=>{P||Q(C?a.current:null),p?.(C)},Y=(C,te)=>{E||K(C),b?.(C),O&&te&&f(!1),a.current?.focus()},w=()=>{!M&&!_&&f(!0)},V=j?j({value:R,format:H,ref:a,readOnly:_,disabled:M,placeholder:i,onOpenRequest:w,onChange:C=>{E||K(C),b?.(C)}}):l.jsx(Ne,{...h,ref:a,value:R,format:H,placeholder:i||"",disabled:M,readOnly:_,locale:u,disableLocaleDigits:N?.disableLocaleDigits,onOpenRequest:w,onChange:C=>{E||K(C),b?.(C)}}),X=s?s({value:R,minDate:F,maxDate:T,locale:u,onSelect:Y,...N}):l.jsx(ye,{...N,showTimePicker:!0,dir:d.dir,theme:v,isControlled:P,open:t,anchorEl:q,value:R,minDate:F,maxDate:T,locale:u,calendar:g,initialDate:x,disableLocaleDigits:N?.disableLocaleDigits,onSelect:Y,onClose:()=>f(!1)});return l.jsxs("div",{...d,ref:D,className:$({"fkdp-datepicker":!0,[d.className||""]:!!d.className,"fkdp-datepicker__dark":v==="dark"}),children:[V,(t||N?.mode==="inline")&&X,y&&R&&l.jsx("input",{type:"hidden",name:y,value:R.toISOString()})]})});J.Calendar=ye,J.CalendarPositionsEnum=G,J.CalendarViewsEnum=S,J.CalendarsEnum=oe,J.DatePicker=Ye,J.DateTimePicker=Ke,J.GregorianFormatsEnum=re,J.HijriFormatsEnum=ae,J.PopupModesEnum=Te,J.ThemesEnum=ve,J.default=Ye,Object.defineProperties(J,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));