aha-components 1.4.6 → 1.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DatePicker.esm.js +2 -0
- package/dist/DatePicker.esm.js.map +1 -0
- package/dist/DatePicker.js +2 -0
- package/dist/DatePicker.js.map +1 -0
- package/dist/components/DatePicker/DatePicker.stories.d.ts +21 -0
- package/dist/components/DatePicker/index.d.ts +88 -0
- package/dist/index.d.ts +88 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +24 -23
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as e,Fragment as t,jsx as n}from"react/jsx-runtime";import{createContext as r,useContext as a,useState as o,useEffect as i,useRef as l,useCallback as d,useMemo as u}from"react";import{createPortal as s}from"react-dom";var p=function(){return p=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},p.apply(this,arguments)};"function"==typeof SuppressedError&&SuppressedError;var c={primaryColor:"#FB6011"},g=r(c),f=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],h=["January","February","March","April","May","June","July","August","September","October","November","December"],x=function(e,t){if(void 0===t&&(t="YYYY-MM-DD"),!e)return"";var n=e.getFullYear(),r=e.getMonth(),a=String(r+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0"),i=String(e.getDate());return t.replace(/YYYY/g,"").replace(/YY/g,"").replace(/MMMM/g,"").replace(/MMM/g,"").replace(/MM/g,"").replace(/DD/g,"").replace(/D/g,"").replace(/M/g,"").replace(new RegExp("","g"),String(n)).replace(new RegExp("","g"),String(n).slice(-2)).replace(new RegExp("","g"),h[r]).replace(new RegExp("","g"),f[r]).replace(new RegExp("","g"),a).replace(new RegExp("","g"),String(r+1)).replace(new RegExp("","g"),o).replace(new RegExp("","g"),i)},D=function(e,t){return new Date(e,t+1,0).getDate()},y=function(e,t){return!(!e||!t)&&(e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate())},m=function(e,t,n){return!(t&&e<t)&&!(n&&e>n)},v=function(e,t,n){if(!t||!n)return!1;var r=e.getTime(),a=t.getTime(),o=n.getTime();return r>=a&&r<=o},b=function(r){var f=r.mode,b=void 0===f?"date":f,F=r.disabled,C=void 0!==F&&F,w=r.error,M=void 0!==w&&w,k=r.placeholder,S=void 0===k?"Select date":k,E=r.startPlaceholder,R=void 0===E?"Start date":E,L=r.endPlaceholder,T=void 0===L?"End date":L,Y=r.size,A=void 0===Y?"medium":Y,B=r.allowClear,W=void 0!==B&&B,z=r.format,H=void 0===z?"range"===b?"MMM D, YYYY":"YYYY-MM-DD":z,V=r.onFocus,I=r.onBlur,j=r.onOpenChange,O=r.className,P=void 0===O?"":O,N=r.style,J=r.dropdownClassName,X=void 0===J?"":J,Z=r.dropdownStyle,G=r.defaultOpen,q=void 0!==G&&G,K=r.open,Q=r.minDate,U=r.maxDate,$=r.separator,_=void 0===$?" - ":$,ee=r.presetRanges,te=void 0!==ee&&ee,ne=r.calendarCount,re=void 0===ne?1:ne,ae=r.showApplyCancel,oe=void 0!==ae&&ae,ie=r.applyText,le=void 0===ie?"Apply":ie,de=r.cancelText,ue=void 0===de?"Cancel":de,se=r.onApply,pe=r.onCancel,ce=(a(g)||c).primaryColor,ge=void 0===ce?"#FB6011":ce,fe="range"===b,he=o(function(){return"date"===b&&"defaultValue"in r&&r.defaultValue||null}),xe=he[0],De=he[1],ye=o(function(){return"range"===b&&"defaultValue"in r&&r.defaultValue||{startDate:null,endDate:null}}),me=ye[0],ve=ye[1],be=o(q),Fe=be[0],Ce=be[1],we=o(!0),Me=we[0],ke=we[1],Se=o(null),Ee=Se[0],Re=Se[1],Le=o(function(){var e,t;if("date"===b&&"value"in r&&r.value&&(t=r.value))return{year:t.getFullYear(),month:t.getMonth()};if("range"===b&&"value"in r&&r.value&&(t=(e=r.value).startDate||e.endDate))return{year:t.getFullYear(),month:t.getMonth()};if("date"===b&&"defaultValue"in r&&r.defaultValue&&(t=r.defaultValue))return{year:t.getFullYear(),month:t.getMonth()};if("range"===b&&"defaultValue"in r&&r.defaultValue&&(t=(e=r.defaultValue).startDate||e.endDate))return{year:t.getFullYear(),month:t.getMonth()};var n=new Date;return{year:n.getFullYear(),month:n.getMonth()}}),Te=Le[0],Ye=Le[1],Ae=o(function(){if(2===re&&fe){var e=new Date(Te.year,Te.month+1,1);return{year:e.getFullYear(),month:e.getMonth()}}return null}),Be=Ae[0],We=Ae[1];i(function(){if(2===re&&fe){var e=new Date(Te.year,Te.month+1,1);We({year:e.getFullYear(),month:e.getMonth()})}else We(null)},[Te,re,fe]);var ze=l(null),He=l(null),Ve=l(null),Ie=l(null),je=l(null),Oe=o(null),Pe=Oe[0],Ne=Oe[1],Je=l(!1),Xe="value"in r&&void 0!==r.value,Ze=void 0!==K,Ge=fe?null:Xe&&"date"===b&&"value"in r?r.value:xe,qe=fe?Xe&&"range"===b&&"value"in r?r.value||{startDate:null,endDate:null}:me:{startDate:null,endDate:null},Ke=Ze?K:Fe;i(function(){if(Ke&&!Je.current){if(fe){var e=qe.startDate||qe.endDate;if(e){var t=e.getFullYear(),n=e.getMonth();Te.year===t&&Te.month===n||Ye({year:t,month:n})}}else if(Ge){t=Ge.getFullYear(),n=Ge.getMonth();Te.year===t&&Te.month===n||Ye({year:t,month:n})}Je.current=!0}else Ke||(Je.current=!1)},[Ke,Ge,qe,fe,Te]),i(function(){if(Ke&&ze.current){var e=function(){if(ze.current){var e=ze.current.getBoundingClientRect();Ne({top:e.bottom+window.scrollY+4,left:e.left+window.scrollX,width:e.width})}};return e(),window.addEventListener("resize",e),window.addEventListener("scroll",e,!0),function(){window.removeEventListener("resize",e),window.removeEventListener("scroll",e,!0)}}Ne(null)},[Ke]),i(function(){var e=function(e){var t=e.target;ze.current&&!ze.current.contains(t)&&je.current&&!je.current.contains(t)&&(Ze||Ce(!1),null==j||j(!1))};if(Ke)return document.addEventListener("mousedown",e,!0),document.addEventListener("touchstart",e,!0),function(){document.removeEventListener("mousedown",e,!0),document.removeEventListener("touchstart",e,!0)}},[Ke,Ze,j]);var Qe,Ue=d(function(e){var t;m(e,Q,U)&&(Xe||De(e),"date"===b&&"onChange"in r&&(null===(t=r.onChange)||void 0===t||t.call(r,e)),Ze||Ce(!1),null==j||j(!1))},[Xe,Ze,b,r,j,Q,U]),$e=d(function(e){var t;if(m(e,Q,U)){var n,a=oe&&Ee?Ee:qe;a.startDate&&a.endDate?(n={startDate:e,endDate:null},ke(!1)):Me?a.endDate&&e>a.endDate?(n={startDate:a.endDate,endDate:e},ke(!1)):(n={startDate:e,endDate:a.endDate},a.endDate?(ke(!0),oe||(Ze||Ce(!1),null==j||j(!1))):ke(!1)):a.startDate&&e<a.startDate?(n={startDate:e,endDate:a.startDate},ke(!1)):(n={startDate:a.startDate,endDate:e},ke(!0),oe||(Ze||Ce(!1),null==j||j(!1))),oe?Re(n):(Xe||ve(n),"range"===b&&"onChange"in r&&(null===(t=r.onChange)||void 0===t||t.call(r,n)))}},[Me,qe,Ee,oe,Xe,Ze,b,r,j,Q,U]),_e=function(e){var t,n;if(e.stopPropagation(),fe){var a={startDate:null,endDate:null};Xe||ve(a),"range"===b&&"onChange"in r&&(null===(t=r.onChange)||void 0===t||t.call(r,a)),ke(!0)}else Xe||De(null),"date"===b&&"onChange"in r&&(null===(n=r.onChange)||void 0===n||n.call(r,null))},et=function(){if(!C){var e=!Ke;Ze||Ce(e),null==j||j(e),e&&fe?(ke(!qe.startDate),oe&&Re(qe)):!e&&oe&&Re(null)}},tt=u(function(){var e=new Date;e.setHours(0,0,0,0);var t=new Date(e),n=new Date(e);n.setDate(e.getDate()-6);var r=new Date(e),a=new Date(e),o=e.getDate();a.setMonth(e.getMonth()-1),a.getDate()!==o&&a.setDate(0);var i=new Date(e),l=new Date(e);return l.setFullYear(e.getFullYear()-1),[{label:"Last week",range:{startDate:n,endDate:t}},{label:"Last month",range:{startDate:a,endDate:r}},{label:"Last year",range:{startDate:l,endDate:i}}]},[]),nt=u(function(){return Array.isArray(te)?te:!0===te?tt:[]},[te,tt]),rt=nt.length>0,at=function(e){var t;if(e.startDate){var n=e.startDate.getFullYear(),a=e.startDate.getMonth();Ye({year:n,month:a})}oe?Re(e):(Xe||ve(e),"range"===b&&"onChange"in r&&(null===(t=r.onChange)||void 0===t||t.call(r,e)),Ze||Ce(!1),null==j||j(!1))},ot=function(){Ye(function(e){return 0===e.month?{year:e.year-1,month:11}:{year:e.year,month:e.month-1}})},it=function(){Ye(function(e){return 11===e.month?{year:e.year+1,month:0}:{year:e.year,month:e.month+1}})},lt=d(function(e,t){for(var n=D(e,t),r=[],a=1;a<=n;a++)r.push(new Date(e,t,a));return r},[]),dt=u(function(){return lt(Te.year,Te.month)},[Te,lt]),ut=u(function(){return 2===re&&fe&&Be?lt(Be.year,Be.month):null},[re,fe,Be,lt]),st=function(){Be&&We(function(e){return e?0===e.month?{year:e.year-1,month:11}:{year:e.year,month:e.month-1}:null})},pt=function(){Be&&We(function(e){return e?11===e.month?{year:e.year+1,month:0}:{year:e.year,month:e.month+1}:null})},ct={small:{height:"32px",paddingTop:"3px",paddingBottom:"3px",fontSize:"16px",lineHeight:"24px"},mediumSmall:{height:"36px",paddingTop:"5px",paddingBottom:"5px",fontSize:"16px",lineHeight:"24px"},medium:{height:"40px",paddingTop:"7px",paddingBottom:"7px",fontSize:"16px",lineHeight:"24px"},large:{height:"48px",paddingTop:"11px",paddingBottom:"11px",fontSize:"16px",lineHeight:"24px"}},gt=W&&!C&&(fe?qe.startDate||qe.endDate:Ge),ft=Ge?x(Ge,H):"",ht=qe.startDate?x(qe.startDate,H):"",xt=qe.endDate?x(qe.endDate,H):"",Dt=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];return e(t,{children:[n("style",{children:"\n @keyframes dropdownFadeIn {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n "}),e("div",{ref:ze,className:"aha-date-picker ".concat(P),style:p({position:"relative",display:"inline-flex",alignItems:"center",boxSizing:"border-box",fontFamily:"DM Sans, sans-serif",borderRadius:"8px",border:"1px solid ".concat(M?"#F04438":Ke?ge:"#D7D3D0"),backgroundColor:C?"#FAFAF9":"#FFFFFF",cursor:C?"not-allowed":"pointer",transition:"all 0.2s",paddingLeft:"40px",paddingRight:gt?"36px":"12px",paddingTop:ct[A].paddingTop,paddingBottom:ct[A].paddingBottom,fontSize:ct[A].fontSize,lineHeight:ct[A].lineHeight,fontWeight:400,WebkitTapHighlightColor:"transparent",WebkitTouchCallout:"none",touchAction:"manipulation",userSelect:"none"},N),onClick:et,onFocus:function(e){null==V||V(e)},onBlur:function(e){null==I||I(e)},tabIndex:C?-1:0,children:[n("span",{style:{position:"absolute",left:"12px",display:"flex",alignItems:"center",color:C?"#98A2B3":"#78716C",zIndex:1,pointerEvents:"none"},children:n(function(){return n("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:n("path",{d:"M12.6667 2.66667H12V2C12 1.63181 11.7015 1.33333 11.3333 1.33333C10.9651 1.33333 10.6667 1.63181 10.6667 2V2.66667H5.33333V2C5.33333 1.63181 5.03486 1.33333 4.66667 1.33333C4.29848 1.33333 4 1.63181 4 2V2.66667H3.33333C2.59695 2.66667 2 3.26362 2 4V13.3333C2 14.0697 2.59695 14.6667 3.33333 14.6667H12.6667C13.403 14.6667 14 14.0697 14 13.3333V4C14 3.26362 13.403 2.66667 12.6667 2.66667ZM12.6667 13.3333H3.33333V7.33333H12.6667V13.3333ZM12.6667 6H3.33333V4H12.6667V6Z",fill:"currentColor"})})},{})}),fe?e("div",{style:{display:"flex",alignItems:"center",flex:1,gap:"8px",minWidth:0},children:[n("input",{ref:Ve,type:"text",value:ht,readOnly:!0,placeholder:R,disabled:C,onClick:function(e){e.stopPropagation(),C||(ke(!0),Ke||et())},style:{flex:1,border:"none",outline:"none",background:"transparent",fontSize:"16px",lineHeight:"24px",fontWeight:400,color:C?"#98A2B3":qe.startDate?"#1C1917":"#79716B",fontFamily:"DM Sans, sans-serif",minWidth:0,cursor:C?"not-allowed":"pointer",WebkitAppearance:"none",appearance:"none"}}),n("span",{style:{color:C?"#98A2B3":"#78716C",fontSize:"16px",flexShrink:0},children:_}),n("input",{ref:Ie,type:"text",value:xt,readOnly:!0,placeholder:T,disabled:C,onClick:function(e){e.stopPropagation(),C||(ke(!1),Ke||et())},style:{flex:1,border:"none",outline:"none",background:"transparent",fontSize:"16px",lineHeight:"24px",fontWeight:400,color:C?"#98A2B3":qe.endDate?"#1C1917":"#79716B",fontFamily:"DM Sans, sans-serif",minWidth:0,cursor:C?"not-allowed":"pointer",WebkitAppearance:"none",appearance:"none"}})]}):n("input",{ref:He,type:"text",value:ft,readOnly:!0,placeholder:S,disabled:C,onClick:function(e){e.stopPropagation(),C||et()},style:{flex:1,border:"none",outline:"none",background:"transparent",fontSize:"16px",lineHeight:"24px",fontWeight:400,color:C?"#98A2B3":Ge?"#1C1917":"#79716B",fontFamily:"DM Sans, sans-serif",minWidth:0,cursor:C?"not-allowed":"pointer",WebkitAppearance:"none",appearance:"none"}}),gt&&n("div",{style:{position:"absolute",right:"12px",display:"flex",alignItems:"center",gap:"4px"},children:n(function(){return n("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",onClick:_e,style:{cursor:"pointer",flexShrink:0,color:"#78716C"},children:n("path",{d:"M12 4L4 12M4 4L12 12",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})},{})})]}),Ke&&Pe&&s(n("div",{ref:je,className:"aha-date-picker-dropdown ".concat(X),style:p({position:"absolute",top:"".concat(Pe.top,"px"),left:"".concat(Pe.left,"px"),zIndex:1050,backgroundColor:"#FFFFFF",borderRadius:"8px",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",border:"1px solid #E7E5E4",padding:"0",opacity:0,transform:"translateY(-8px)",animation:"dropdownFadeIn 0.2s ease-out forwards",display:"flex",flexDirection:"column"},Z),children:e("div",{style:{display:"flex",flex:1,minHeight:0,flexDirection:fe&&rt&&1===re?"column":"row"},children:[fe&&rt&&2===re&&n("div",{style:{width:"140px",borderRight:"1px solid #E7E5E4",padding:"12px 0",backgroundColor:"#FFFFFF",borderTopLeftRadius:"8px",borderBottomLeftRadius:oe?"0":"8px"},children:nt.map(function(e,t){var r=Ee?y(e.range.startDate,Ee.startDate)&&y(e.range.endDate,Ee.endDate):y(e.range.startDate,qe.startDate)&&y(e.range.endDate,qe.endDate);return n("div",{onClick:function(){return at(e.range)},style:{padding:"8px 16px",cursor:"pointer",fontSize:"14px",fontFamily:"DM Sans, sans-serif",color:r?ge:"#1C1917",backgroundColor:r?"#FAFAF9":"transparent",fontWeight:r?500:400,transition:"all 0.2s"},onMouseEnter:function(e){r||(e.currentTarget.style.backgroundColor="#F5F5F4")},onMouseLeave:function(e){r||(e.currentTarget.style.backgroundColor="transparent")},children:e.label},t)})}),e("div",{children:[n("div",{style:{flex:1,padding:"16px",display:"flex",flexDirection:2===re?"row":"column",gap:2===re?"24px":"0"},children:(Qe=function(t,r,a,o,i){return void 0===i&&(i=0),e("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:[e("div",{style:{display:"flex",alignItems:"center",justifyContent:2===re&&fe?"center":"space-between",marginBottom:"16px",position:"relative"},children:[!(2===re&&fe&&1===i)&&n("button",{type:"button",onClick:a,style:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",border:"none",background:"transparent",cursor:"pointer",borderRadius:"4px",color:"#78716C",transition:"all 0.2s",position:2===re&&fe?"absolute":"relative",left:2===re&&fe?0:void 0},onMouseEnter:function(e){e.currentTarget.style.backgroundColor="#FAFAF9"},onMouseLeave:function(e){e.currentTarget.style.backgroundColor="transparent"},children:n("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:n("path",{d:"M10 12L6 8L10 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),e("div",{style:{fontSize:"16px",fontWeight:500,color:"#1C1917",fontFamily:"DM Sans, sans-serif"},children:[h[t.month]," ",t.year]}),!(2===re&&fe&&0===i)&&n("button",{type:"button",onClick:o,style:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",border:"none",background:"transparent",cursor:"pointer",borderRadius:"4px",color:"#78716C",transition:"all 0.2s",position:2===re&&fe?"absolute":"relative",right:2===re&&fe?0:void 0},onMouseEnter:function(e){e.currentTarget.style.backgroundColor="#FAFAF9"},onMouseLeave:function(e){e.currentTarget.style.backgroundColor="transparent"},children:n("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:n("path",{d:"M6 4L10 8L6 12",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),fe&&rt&&1===re&&n("div",{style:{width:"252px",display:"flex",flexWrap:"wrap",paddingBottom:"16px"},children:nt.map(function(e,t){var r=Ee?y(e.range.startDate,Ee.startDate)&&y(e.range.endDate,Ee.endDate):y(e.range.startDate,qe.startDate)&&y(e.range.endDate,qe.endDate);return n("button",{type:"button",onClick:function(){return at(e.range)},style:{padding:"4px 9px",cursor:"pointer",fontSize:"14px",fontFamily:"DM Sans, sans-serif",color:r?ge:"#1C1917",backgroundColor:r?"#FAFAF9":"transparent",border:"none",fontWeight:r?500:400,transition:"all 0.2s",borderRadius:"4px"},children:e.label},t)})}),n("div",{style:{width:"252px",display:"grid",gridTemplateColumns:"repeat(7, 1fr)",marginBottom:"8px"},children:Dt.map(function(e){return n("div",{style:{width:"36px",textAlign:"center",fontSize:"12px",fontWeight:500,color:"#78716C",fontFamily:"DM Sans, sans-serif",padding:"4px"},children:e},e)})}),n("div",{style:{width:"252px",display:"grid",gridTemplateColumns:"repeat(7, 1fr)",rowGap:"4px",columnGap:"0px"},children:function(){for(var a,o,i=(a=t.year,o=t.month,new Date(a,o,1).getDay()),l=(0===i?7:i)-1,d=[],u=0;u<l;u++)d.push(n("div",{},"empty-".concat(u)));return r.forEach(function(a,o){if(a){var i=l+o,u=a.getMonth()===t.month,s=y(a,new Date),p=!m(a,Q,U);if(fe){var c=oe&&Ee?Ee:qe,g=y(a,c.startDate),f=y(a,c.endDate),h=v(a,c.startDate,c.endDate),x=i%7==0,b=i%7==6,F=g,C=f,w=o>0?r[o-1]:null,M=o<r.length-1?r[o+1]:null;w&&v(w,c.startDate,c.endDate),M&&v(M,c.startDate,c.endDate);var k=o-7,S=o+7,E=k>=0?r[k]:null,R=S<r.length?r[S]:null;E&&v(E,c.startDate,c.endDate),R&&v(R,c.startDate,c.endDate);var L={display:"flex",alignItems:"center",justifyContent:"center",width:"36px",height:"36px",border:"none",cursor:p?"not-allowed":"pointer",fontSize:"14px",fontFamily:"DM Sans, sans-serif",transition:"all 0.2s",opacity:p?.4:1,position:"relative",padding:0,margin:0};if(F||C)L.background=ge,L.borderRadius="50%",L.color="#FFFFFF",L.fontWeight=500;else if(h){L.background="#F5F5F4",L.color=u?p?"#D7D3D0":"#1C1917":"#78716C",L.fontWeight=400;var T=1===a.getDate(),Y=D(t.year,t.month),A=a.getDate()===Y,B=x||T,W=b||A;B&&W?L.borderRadius="18px":B?(L.borderTopLeftRadius="18px",L.borderBottomLeftRadius="18px",L.borderTopRightRadius="0",L.borderBottomRightRadius="0"):W?(L.borderTopRightRadius="18px",L.borderBottomRightRadius="18px",L.borderTopLeftRadius="0",L.borderBottomLeftRadius="0"):L.borderRadius="0"}else L.background="transparent",L.borderRadius="50%",L.color=u?p?"#D7D3D0":"#1C1917":"#78716C",L.fontWeight=400;d.push(e("button",{type:"button",disabled:p,onClick:function(){return $e(a)},style:L,onMouseEnter:function(e){p||F||C||(e.currentTarget.style.backgroundColor=h?"#E7E5E4":"#FAFAF9")},onMouseLeave:function(e){F||C||(e.currentTarget.style.backgroundColor=h?"#F5F5F4":"transparent")},children:[a.getDate(),s&&n("div",{style:{position:"absolute",bottom:"3px",left:"50%",transform:"translateX(-50%)",width:"4px",height:"4px",borderRadius:"50%",backgroundColor:F||C?"#FFFFFF":ge}})]},"date-".concat(o)))}else{var z=y(a,Ge);d.push(e("button",{type:"button",disabled:p,onClick:function(){return Ue(a)},style:{display:"flex",alignItems:"center",justifyContent:"center",width:"36px",height:"36px",border:"none",background:z?ge:"transparent",cursor:p?"not-allowed":"pointer",borderRadius:"4px",fontSize:"14px",fontWeight:z?500:400,color:z?"#FFFFFF":u?p?"#D7D3D0":"#1C1917":"#78716C",fontFamily:"DM Sans, sans-serif",transition:"all 0.2s",opacity:p?.4:1,position:"relative",padding:0,margin:0},onMouseEnter:function(e){p||z||(e.currentTarget.style.backgroundColor="#FAFAF9")},onMouseLeave:function(e){z||(e.currentTarget.style.backgroundColor="transparent")},children:[a.getDate(),s&&!z&&n("div",{style:{position:"absolute",bottom:"2px",left:"50%",transform:"translateX(-50%)",width:"4px",height:"4px",borderRadius:"50%",backgroundColor:ge}})]},"date-".concat(o)))}}}),d}()})]},i)},e(t,{children:[Qe(Te,dt,ot,it,0),2===re&&fe&&Be&&ut&&Qe(Be,ut,st,pt,1)]}))}),fe&&oe&&e("div",{style:{display:"flex",justifyContent:"flex-end",gap:"8px",padding:"12px 16px",borderTop:"1px solid #E7E5E4",borderBottomLeftRadius:"8px",borderBottomRightRadius:"8px"},children:[n("button",{type:"button",onClick:function(){Re(null),null==pe||pe(),Ze||Ce(!1),null==j||j(!1)},style:{padding:"8px 16px",border:"1px solid #E7E5E4",borderRadius:"8px",background:"#FFFFFF",color:"#1C1917",fontSize:"14px",fontWeight:500,fontFamily:"DM Sans, sans-serif",cursor:"pointer",transition:"all 0.2s"},onMouseEnter:function(e){e.currentTarget.style.backgroundColor="#FAFAF9"},onMouseLeave:function(e){e.currentTarget.style.backgroundColor="#FFFFFF"},children:ue}),n("button",{type:"button",onClick:function(){var e;Ee&&(Xe||ve(Ee),"range"===b&&"onChange"in r&&(null===(e=r.onChange)||void 0===e||e.call(r,Ee)),null==se||se(Ee),Ze||Ce(!1),null==j||j(!1),Re(null))},disabled:!Ee||!Ee.startDate||!Ee.endDate,style:{padding:"8px 16px",border:"none",borderRadius:"8px",background:Ee&&Ee.startDate&&Ee.endDate?ge:"#D7D3D0",color:"#FFFFFF",fontSize:"14px",fontWeight:500,fontFamily:"DM Sans, sans-serif",cursor:Ee&&Ee.startDate&&Ee.endDate?"pointer":"not-allowed",transition:"all 0.2s"},onMouseEnter:function(e){Ee&&Ee.startDate&&Ee.endDate&&(e.currentTarget.style.backgroundColor="#FD843A")},onMouseLeave:function(e){Ee&&Ee.startDate&&Ee.endDate&&(e.currentTarget.style.backgroundColor=ge)},children:le})]})]})]})}),document.body)]})};b.displayName="DatePicker";export{b as default};
|
|
2
|
+
//# sourceMappingURL=DatePicker.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePicker.esm.js","sources":["../node_modules/tslib/tslib.es6.js","../src/theme/ThemeContext.tsx","../src/components/DatePicker/index.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import React, { createContext, useContext, useMemo } from 'react';\n\nexport interface ThemeConfig {\n primaryColor?: string;\n}\n\nconst defaultTheme: ThemeConfig = {\n primaryColor: '#FB6011',\n};\n\nconst ThemeContext = createContext<ThemeConfig>(defaultTheme);\n\nexport interface ThemeProviderProps {\n theme?: ThemeConfig;\n children: React.ReactNode;\n}\n\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({ theme, children }) => {\n const themeValue = useMemo(() => {\n return {\n ...defaultTheme,\n ...theme,\n };\n }, [theme]);\n\n return (\n <ThemeContext.Provider value={themeValue}>\n {children}\n </ThemeContext.Provider>\n );\n};\n\nexport const useTheme = (): ThemeConfig => {\n const context = useContext(ThemeContext);\n if (!context) {\n // 如果没有 Provider,返回默认主题\n return defaultTheme;\n }\n return context;\n};\n\n// 导出默认主题色,供组件内部使用\nexport const getDefaultPrimaryColor = () => defaultTheme.primaryColor!;\n\n","import React, { useState, useRef, useEffect, useCallback, useMemo } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useTheme } from '../../theme/ThemeContext';\n\n// 日期范围类型\nexport interface DateRange {\n startDate: Date | null;\n endDate: Date | null;\n}\n\n// 预设日期范围类型\nexport interface PresetRange {\n label: string;\n range: DateRange;\n}\n\n// 基础 Props(单个日期模式)\nexport interface DatePickerBaseProps {\n /** 是否禁用 */\n disabled?: boolean;\n /** 是否显示错误状态 */\n error?: boolean;\n /** 占位符(单个日期模式) */\n placeholder?: string;\n /** 开始日期占位符(范围模式) */\n startPlaceholder?: string;\n /** 结束日期占位符(范围模式) */\n endPlaceholder?: string;\n /** 尺寸 */\n size?: 'small' | 'mediumSmall' | 'medium' | 'large';\n /** 是否允许清除 */\n allowClear?: boolean;\n /** 日期格式 */\n format?: string;\n /** 聚焦回调 */\n onFocus?: (e: React.FocusEvent) => void;\n /** 失焦回调 */\n onBlur?: (e: React.FocusEvent) => void;\n /** 下拉框打开回调 */\n onOpenChange?: (open: boolean) => void;\n /** 自定义类名 */\n className?: string;\n /** 自定义样式 */\n style?: React.CSSProperties;\n /** 下拉框类名 */\n dropdownClassName?: string;\n /** 下拉框样式 */\n dropdownStyle?: React.CSSProperties;\n /** 是否默认打开 */\n defaultOpen?: boolean;\n /** 是否打开(受控) */\n open?: boolean;\n /** 最小日期 */\n minDate?: Date;\n /** 最大日期 */\n maxDate?: Date;\n /** 分隔符(范围模式) */\n separator?: string;\n /** 预设日期范围列表(仅在范围模式下有效) */\n presetRanges?: PresetRange[] | boolean;\n /** 显示日历数量:1=单月,2=双月(仅在范围模式下有效,默认1) */\n calendarCount?: 1 | 2;\n /** 是否显示 Apply/Cancel 按钮(仅在范围模式下有效) */\n showApplyCancel?: boolean;\n /** Apply 按钮文本 */\n applyText?: string;\n /** Cancel 按钮文本 */\n cancelText?: string;\n /** Apply 按钮回调 */\n onApply?: (range: DateRange) => void;\n /** Cancel 按钮回调 */\n onCancel?: () => void;\n}\n\n// 单个日期模式 Props\nexport interface DatePickerSingleProps extends DatePickerBaseProps {\n /** 模式:单个日期 */\n mode?: 'date';\n /** 当前选中的值 */\n value?: Date | null;\n /** 默认选中的值 */\n defaultValue?: Date | null;\n /** 变化回调 */\n onChange?: (date: Date | null) => void;\n}\n\n// 日期范围模式 Props\nexport interface DatePickerRangeProps extends DatePickerBaseProps {\n /** 模式:日期范围 */\n mode: 'range';\n /** 当前选中的值 */\n value?: DateRange;\n /** 默认选中的值 */\n defaultValue?: DateRange;\n /** 变化回调 */\n onChange?: (range: DateRange) => void;\n}\n\n// 联合类型\nexport type DatePickerProps = DatePickerSingleProps | DatePickerRangeProps;\n\n// 月份名称\nconst monthNamesShort = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\nconst monthNamesFull = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n\n// 格式化日期\nconst formatDate = (date: Date | null, format: string = 'YYYY-MM-DD'): string => {\n if (!date) return '';\n \n const year = date.getFullYear();\n const month = date.getMonth();\n const monthNum = String(month + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const dayNum = String(date.getDate());\n \n // 使用特殊占位符避免替换冲突\n // 使用不常见的 Unicode 私有区域字符作为占位符\n const PLACEHOLDER_YYYY = '\\uE000';\n const PLACEHOLDER_YY = '\\uE001';\n const PLACEHOLDER_MMMM = '\\uE002';\n const PLACEHOLDER_MMM = '\\uE003';\n const PLACEHOLDER_MM = '\\uE004';\n const PLACEHOLDER_M = '\\uE005';\n const PLACEHOLDER_DD = '\\uE006';\n const PLACEHOLDER_D = '\\uE007';\n \n // 按从长到短的顺序替换,使用占位符避免冲突\n let result = format\n // 先替换所有格式标记为占位符\n .replace(/YYYY/g, PLACEHOLDER_YYYY)\n .replace(/YY/g, PLACEHOLDER_YY)\n .replace(/MMMM/g, PLACEHOLDER_MMMM)\n .replace(/MMM/g, PLACEHOLDER_MMM)\n .replace(/MM/g, PLACEHOLDER_MM)\n .replace(/DD/g, PLACEHOLDER_DD)\n .replace(/D/g, PLACEHOLDER_D)\n .replace(/M/g, PLACEHOLDER_M)\n // 然后将占位符替换为实际值\n .replace(new RegExp(PLACEHOLDER_YYYY, 'g'), String(year))\n .replace(new RegExp(PLACEHOLDER_YY, 'g'), String(year).slice(-2))\n .replace(new RegExp(PLACEHOLDER_MMMM, 'g'), monthNamesFull[month])\n .replace(new RegExp(PLACEHOLDER_MMM, 'g'), monthNamesShort[month])\n .replace(new RegExp(PLACEHOLDER_MM, 'g'), monthNum)\n .replace(new RegExp(PLACEHOLDER_M, 'g'), String(month + 1))\n .replace(new RegExp(PLACEHOLDER_DD, 'g'), day)\n .replace(new RegExp(PLACEHOLDER_D, 'g'), dayNum);\n \n return result;\n};\n\n// 获取月份的第一天是星期几(0=周日, 1=周一, ...)\nconst getFirstDayOfMonth = (year: number, month: number): number => {\n return new Date(year, month, 1).getDay();\n};\n\n// 获取月份的天数\nconst getDaysInMonth = (year: number, month: number): number => {\n return new Date(year, month + 1, 0).getDate();\n};\n\n// 判断两个日期是否是同一天\nconst isSameDay = (date1: Date | null, date2: Date | null): boolean => {\n if (!date1 || !date2) return false;\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n};\n\n// 判断日期是否在范围内\nconst isDateInRange = (date: Date, minDate?: Date, maxDate?: Date): boolean => {\n if (minDate && date < minDate) return false;\n if (maxDate && date > maxDate) return false;\n return true;\n};\n\n// 判断日期是否在选择的范围内\nconst isDateInSelectedRange = (date: Date, startDate: Date | null, endDate: Date | null): boolean => {\n if (!startDate || !endDate) return false;\n const dateTime = date.getTime();\n const startTime = startDate.getTime();\n const endTime = endDate.getTime();\n return dateTime >= startTime && dateTime <= endTime;\n};\n\n// 判断日期是否是范围的开始或结束\nconst isRangeEdge = (date: Date, startDate: Date | null, endDate: Date | null): 'start' | 'end' | 'both' | null => {\n if (!startDate || !endDate) return null;\n const isStart = isSameDay(date, startDate);\n const isEnd = isSameDay(date, endDate);\n if (isStart && isEnd) return 'both';\n if (isStart) return 'start';\n if (isEnd) return 'end';\n return null;\n};\n\nconst DatePicker: React.FC<DatePickerProps> = (props) => {\n const {\n mode = 'date',\n disabled = false,\n error = false,\n placeholder = 'Select date',\n startPlaceholder = 'Start date',\n endPlaceholder = 'End date',\n size = 'medium',\n allowClear = false,\n format = mode === 'range' ? 'MMM D, YYYY' : 'YYYY-MM-DD',\n onFocus,\n onBlur,\n onOpenChange,\n className = '',\n style,\n dropdownClassName = '',\n dropdownStyle,\n defaultOpen = false,\n open: controlledOpen,\n minDate,\n maxDate,\n separator = ' - ',\n presetRanges = false,\n calendarCount = 1,\n showApplyCancel = false,\n applyText = 'Apply',\n cancelText = 'Cancel',\n onApply,\n onCancel,\n } = props;\n\n const { primaryColor = '#FB6011' } = useTheme();\n const isRangeMode = mode === 'range';\n\n // 单个日期模式的状态\n const [internalSingleValue, setInternalSingleValue] = useState<Date | null>(() => {\n if (mode === 'date' && 'defaultValue' in props) {\n const val = props.defaultValue as Date | null | undefined;\n return val || null;\n }\n return null;\n });\n \n // 范围模式的状态\n const [internalRangeValue, setInternalRangeValue] = useState<DateRange>(() => {\n if (mode === 'range' && 'defaultValue' in props) {\n const val = props.defaultValue as DateRange | undefined;\n return val || { startDate: null, endDate: null };\n }\n return { startDate: null, endDate: null };\n });\n\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const [selectingStart, setSelectingStart] = useState(true); // 范围模式:true=选择开始日期, false=选择结束日期\n const [tempRangeValue, setTempRangeValue] = useState<DateRange | null>(null); // 临时范围值(用于 Apply/Cancel)\n const [currentMonth, setCurrentMonth] = useState(() => {\n if (mode === 'date' && 'value' in props && props.value) {\n const date = props.value as Date | null;\n if (date) {\n return { year: date.getFullYear(), month: date.getMonth() };\n }\n }\n if (mode === 'range' && 'value' in props && props.value) {\n const range = props.value as DateRange;\n const date = range.startDate || range.endDate;\n if (date) {\n return { year: date.getFullYear(), month: date.getMonth() };\n }\n }\n if (mode === 'date' && 'defaultValue' in props && props.defaultValue) {\n const date = props.defaultValue as Date | null;\n if (date) {\n return { year: date.getFullYear(), month: date.getMonth() };\n }\n }\n if (mode === 'range' && 'defaultValue' in props && props.defaultValue) {\n const range = props.defaultValue as DateRange;\n const date = range.startDate || range.endDate;\n if (date) {\n return { year: date.getFullYear(), month: date.getMonth() };\n }\n }\n const now = new Date();\n return { year: now.getFullYear(), month: now.getMonth() };\n });\n \n // 第二个月份(用于双月显示)\n const [secondMonth, setSecondMonth] = useState<{ year: number; month: number } | null>(() => {\n if (calendarCount === 2 && isRangeMode) {\n const nextMonth = new Date(currentMonth.year, currentMonth.month + 1, 1);\n return { year: nextMonth.getFullYear(), month: nextMonth.getMonth() };\n }\n return null;\n });\n \n // 当第一个月份变化时,更新第二个月份\n useEffect(() => {\n if (calendarCount === 2 && isRangeMode) {\n const nextMonth = new Date(currentMonth.year, currentMonth.month + 1, 1);\n setSecondMonth({ year: nextMonth.getFullYear(), month: nextMonth.getMonth() });\n } else {\n setSecondMonth(null);\n }\n }, [currentMonth, calendarCount, isRangeMode]);\n\n const pickerRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const startInputRef = useRef<HTMLInputElement>(null);\n const endInputRef = useRef<HTMLInputElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const [dropdownPosition, setDropdownPosition] = useState<{ top: number; left: number; width: number } | null>(null);\n const hasOpenedRef = useRef(false); // 跟踪日历是否已经打开过\n\n // 判断是否受控\n const isControlled = 'value' in props && props.value !== undefined;\n const isOpenControlled = controlledOpen !== undefined;\n \n // 当前值\n const currentSingleValue: Date | null = isRangeMode\n ? null\n : isControlled && mode === 'date' && 'value' in props\n ? (props.value as Date | null)\n : internalSingleValue;\n \n const currentRangeValue: DateRange = !isRangeMode\n ? { startDate: null, endDate: null }\n : isControlled && mode === 'range' && 'value' in props\n ? (props.value as DateRange) || { startDate: null, endDate: null }\n : internalRangeValue;\n\n const isOpen = isOpenControlled ? controlledOpen : internalOpen;\n\n // 当日历首次打开时,如果当前月份与选中日期月份不一致,才更新月份视图\n // 之后用户切换月份后,即使选择日期,也不应该自动更新月份\n useEffect(() => {\n if (isOpen && !hasOpenedRef.current) {\n // 首次打开时,根据选中日期设置月份\n if (isRangeMode) {\n const date = currentRangeValue.startDate || currentRangeValue.endDate;\n if (date) {\n const dateYear = date.getFullYear();\n const dateMonth = date.getMonth();\n if (currentMonth.year !== dateYear || currentMonth.month !== dateMonth) {\n setCurrentMonth({\n year: dateYear,\n month: dateMonth,\n });\n }\n }\n } else {\n if (currentSingleValue) {\n const dateYear = currentSingleValue.getFullYear();\n const dateMonth = currentSingleValue.getMonth();\n if (currentMonth.year !== dateYear || currentMonth.month !== dateMonth) {\n setCurrentMonth({\n year: dateYear,\n month: dateMonth,\n });\n }\n }\n }\n hasOpenedRef.current = true;\n } else if (!isOpen) {\n // 日历关闭时,重置标记,下次打开时重新判断\n hasOpenedRef.current = false;\n }\n }, [isOpen, currentSingleValue, currentRangeValue, isRangeMode, currentMonth]);\n\n // 计算下拉框位置\n useEffect(() => {\n if (isOpen && pickerRef.current) {\n const updatePosition = () => {\n if (pickerRef.current) {\n const rect = pickerRef.current.getBoundingClientRect();\n setDropdownPosition({\n top: rect.bottom + window.scrollY + 4,\n left: rect.left + window.scrollX,\n width: rect.width,\n });\n }\n };\n\n updatePosition();\n\n window.addEventListener('resize', updatePosition);\n window.addEventListener('scroll', updatePosition, true);\n\n return () => {\n window.removeEventListener('resize', updatePosition);\n window.removeEventListener('scroll', updatePosition, true);\n };\n } else {\n setDropdownPosition(null);\n }\n }, [isOpen]);\n\n // 点击外部关闭\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent | TouchEvent) => {\n const target = event.target as Node;\n if (\n pickerRef.current &&\n !pickerRef.current.contains(target) &&\n dropdownRef.current &&\n !dropdownRef.current.contains(target)\n ) {\n if (!isOpenControlled) {\n setInternalOpen(false);\n }\n onOpenChange?.(false);\n }\n };\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside, true);\n document.addEventListener('touchstart', handleClickOutside, true);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside, true);\n document.removeEventListener('touchstart', handleClickOutside, true);\n };\n }\n }, [isOpen, isOpenControlled, onOpenChange]);\n\n // 处理日期选择(单个日期模式)\n const handleSelectSingleDate = useCallback((date: Date) => {\n if (!isDateInRange(date, minDate, maxDate)) return;\n\n if (!isControlled) {\n setInternalSingleValue(date);\n }\n if (mode === 'date' && 'onChange' in props) {\n (props.onChange as (date: Date | null) => void)?.(date);\n }\n\n if (!isOpenControlled) {\n setInternalOpen(false);\n }\n onOpenChange?.(false);\n }, [isControlled, isOpenControlled, mode, props, onOpenChange, minDate, maxDate]);\n\n // 处理日期选择(范围模式)\n const handleSelectRangeDate = useCallback((date: Date) => {\n if (!isDateInRange(date, minDate, maxDate)) return;\n\n // 使用临时值或当前值\n const workingRange = showApplyCancel && tempRangeValue ? tempRangeValue : currentRangeValue;\n let newRange: DateRange;\n\n // 如果已经有完整的日期范围(开始和结束日期都存在),重新点击日期时清空之前的选择\n if (workingRange.startDate && workingRange.endDate) {\n // 清空之前的选择,将新点击的日期作为新的开始日期\n newRange = {\n startDate: date,\n endDate: null,\n };\n setSelectingStart(false); // 下一步选择结束日期\n } else if (selectingStart) {\n // 选择开始日期\n if (workingRange.endDate && date > workingRange.endDate) {\n // 如果选择的开始日期大于结束日期,交换它们\n newRange = {\n startDate: workingRange.endDate,\n endDate: date,\n };\n setSelectingStart(false);\n } else {\n newRange = {\n startDate: date,\n endDate: workingRange.endDate,\n };\n // 如果已经有结束日期,完成选择\n if (workingRange.endDate) {\n setSelectingStart(true);\n if (!showApplyCancel) {\n // 如果没有 Apply/Cancel 按钮,直接关闭\n if (!isOpenControlled) {\n setInternalOpen(false);\n }\n onOpenChange?.(false);\n }\n } else {\n setSelectingStart(false);\n }\n }\n } else {\n // 选择结束日期\n if (workingRange.startDate && date < workingRange.startDate) {\n // 如果选择的结束日期小于开始日期,交换它们\n newRange = {\n startDate: date,\n endDate: workingRange.startDate,\n };\n setSelectingStart(false);\n } else {\n newRange = {\n startDate: workingRange.startDate,\n endDate: date,\n };\n // 完成选择\n setSelectingStart(true);\n if (!showApplyCancel) {\n // 如果没有 Apply/Cancel 按钮,直接关闭\n if (!isOpenControlled) {\n setInternalOpen(false);\n }\n onOpenChange?.(false);\n }\n }\n }\n\n if (showApplyCancel) {\n // 使用临时值\n setTempRangeValue(newRange);\n } else {\n // 直接更新\n if (!isControlled) {\n setInternalRangeValue(newRange);\n }\n if (mode === 'range' && 'onChange' in props) {\n (props.onChange as (range: DateRange) => void)?.(newRange);\n }\n }\n }, [selectingStart, currentRangeValue, tempRangeValue, showApplyCancel, isControlled, isOpenControlled, mode, props, onOpenChange, minDate, maxDate]);\n\n // 处理清除\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (isRangeMode) {\n const newRange: DateRange = { startDate: null, endDate: null };\n if (!isControlled) {\n setInternalRangeValue(newRange);\n }\n if (mode === 'range' && 'onChange' in props) {\n (props.onChange as (range: DateRange) => void)?.(newRange);\n }\n setSelectingStart(true);\n } else {\n if (!isControlled) {\n setInternalSingleValue(null);\n }\n if (mode === 'date' && 'onChange' in props) {\n (props.onChange as (date: Date | null) => void)?.(null);\n }\n }\n };\n\n // 切换下拉框\n const handleToggle = () => {\n if (disabled) return;\n const newOpen = !isOpen;\n if (!isOpenControlled) {\n setInternalOpen(newOpen);\n }\n onOpenChange?.(newOpen);\n if (newOpen && isRangeMode) {\n setSelectingStart(!currentRangeValue.startDate);\n // 初始化临时值\n if (showApplyCancel) {\n setTempRangeValue(currentRangeValue);\n }\n } else if (!newOpen && showApplyCancel) {\n // 关闭时重置临时值\n setTempRangeValue(null);\n }\n };\n \n // 处理 Apply 按钮\n const handleApply = () => {\n if (tempRangeValue) {\n if (!isControlled) {\n setInternalRangeValue(tempRangeValue);\n }\n if (mode === 'range' && 'onChange' in props) {\n (props.onChange as (range: DateRange) => void)?.(tempRangeValue);\n }\n onApply?.(tempRangeValue);\n if (!isOpenControlled) {\n setInternalOpen(false);\n }\n onOpenChange?.(false);\n setTempRangeValue(null);\n }\n };\n \n // 处理 Cancel 按钮\n const handleCancel = () => {\n setTempRangeValue(null);\n onCancel?.();\n if (!isOpenControlled) {\n setInternalOpen(false);\n }\n onOpenChange?.(false);\n };\n \n // 默认预设日期范围\n const defaultPresetRanges = useMemo(() => {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n \n // Last week: 从当前日期往前推7天(包含今天,共7天)\n const lastWeekEnd = new Date(today);\n const lastWeekStart = new Date(today);\n lastWeekStart.setDate(today.getDate() - 6); // 往前推6天,加上今天共7天\n \n // Last month: 从当前日期往前推一个月\n const lastMonthEnd = new Date(today);\n const lastMonthStart = new Date(today);\n const originalDate = today.getDate();\n lastMonthStart.setMonth(today.getMonth() - 1);\n // 如果往前推一个月后日期被调整了(比如3月31日往前推一个月变成3月3日,因为2月没有31日),\n // 说明原日期在上个月不存在,需要取上个月的最后一天\n if (lastMonthStart.getDate() !== originalDate) {\n // 设置为上个月的最后一天\n lastMonthStart.setDate(0);\n }\n \n // Last year: 从当前日期往前推一年\n const lastYearEnd = new Date(today);\n const lastYearStart = new Date(today);\n lastYearStart.setFullYear(today.getFullYear() - 1);\n \n return [\n { label: 'Last week', range: { startDate: lastWeekStart, endDate: lastWeekEnd } },\n { label: 'Last month', range: { startDate: lastMonthStart, endDate: lastMonthEnd } },\n { label: 'Last year', range: { startDate: lastYearStart, endDate: lastYearEnd } },\n ];\n }, []);\n\n // 预设日期范围列表\n const presetRangesList = useMemo(() => {\n if (Array.isArray(presetRanges)) {\n // 如果传入的是数组,直接使用\n return presetRanges;\n } else if (presetRanges === true) {\n // 如果传入的是 true,使用默认值\n return defaultPresetRanges;\n } else {\n // 如果传入的是 false 或 undefined,返回空数组\n return [];\n }\n }, [presetRanges, defaultPresetRanges]);\n\n // 是否显示预设日期范围\n const hasPresetRanges = presetRangesList.length > 0;\n \n // 处理预设范围选择\n const handlePresetRangeSelect = (range: DateRange) => {\n // 更新日历显示为开始日期的月份\n if (range.startDate) {\n const startYear = range.startDate.getFullYear();\n const startMonth = range.startDate.getMonth();\n setCurrentMonth({\n year: startYear,\n month: startMonth,\n });\n }\n \n if (showApplyCancel) {\n setTempRangeValue(range);\n } else {\n if (!isControlled) {\n setInternalRangeValue(range);\n }\n if (mode === 'range' && 'onChange' in props) {\n (props.onChange as (range: DateRange) => void)?.(range);\n }\n if (!isOpenControlled) {\n setInternalOpen(false);\n }\n onOpenChange?.(false);\n }\n };\n\n // 处理输入框聚焦\n const handleFocus = (e: React.FocusEvent) => {\n onFocus?.(e);\n };\n\n // 处理输入框失焦\n const handleBlur = (e: React.FocusEvent) => {\n onBlur?.(e);\n };\n\n // 处理开始日期输入框点击\n const handleStartInputClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!disabled) {\n setSelectingStart(true);\n if (!isOpen) {\n handleToggle();\n }\n }\n };\n\n // 处理结束日期输入框点击\n const handleEndInputClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!disabled) {\n setSelectingStart(false);\n if (!isOpen) {\n handleToggle();\n }\n }\n };\n\n // 上一个月\n const handlePrevMonth = () => {\n setCurrentMonth((prev) => {\n if (prev.month === 0) {\n return { year: prev.year - 1, month: 11 };\n }\n return { year: prev.year, month: prev.month - 1 };\n });\n };\n\n // 下一个月\n const handleNextMonth = () => {\n setCurrentMonth((prev) => {\n if (prev.month === 11) {\n return { year: prev.year + 1, month: 0 };\n }\n return { year: prev.year, month: prev.month + 1 };\n });\n };\n\n // 生成日历数据的辅助函数\n const generateCalendarData = useCallback((year: number, month: number) => {\n const daysInMonth = getDaysInMonth(year, month);\n const days: (Date | null)[] = [];\n\n // 只生成当前月的日期\n for (let day = 1; day <= daysInMonth; day++) {\n days.push(new Date(year, month, day));\n }\n\n return days;\n }, []);\n\n // 生成日历数据\n const calendarData = useMemo(() => {\n return generateCalendarData(currentMonth.year, currentMonth.month);\n }, [currentMonth, generateCalendarData]);\n \n // 生成第二个月份的日历数据\n const secondCalendarData = useMemo(() => {\n if (calendarCount === 2 && isRangeMode && secondMonth) {\n return generateCalendarData(secondMonth.year, secondMonth.month);\n }\n return null;\n }, [calendarCount, isRangeMode, secondMonth, generateCalendarData]);\n \n // 处理第二个月份的导航\n const handleSecondPrevMonth = () => {\n if (secondMonth) {\n setSecondMonth((prev) => {\n if (!prev) return null;\n if (prev.month === 0) {\n return { year: prev.year - 1, month: 11 };\n }\n return { year: prev.year, month: prev.month - 1 };\n });\n }\n };\n \n const handleSecondNextMonth = () => {\n if (secondMonth) {\n setSecondMonth((prev) => {\n if (!prev) return null;\n if (prev.month === 11) {\n return { year: prev.year + 1, month: 0 };\n }\n return { year: prev.year, month: prev.month + 1 };\n });\n }\n };\n\n // 尺寸样式\n const sizeStyles = {\n small: {\n height: '32px',\n paddingTop: '3px',\n paddingBottom: '3px',\n fontSize: '16px',\n lineHeight: '24px',\n },\n mediumSmall: {\n height: '36px',\n paddingTop: '5px',\n paddingBottom: '5px',\n fontSize: '16px',\n lineHeight: '24px',\n },\n medium: {\n height: '40px',\n paddingTop: '7px',\n paddingBottom: '7px',\n fontSize: '16px',\n lineHeight: '24px',\n },\n large: {\n height: '48px',\n paddingTop: '11px',\n paddingBottom: '11px',\n fontSize: '16px',\n lineHeight: '24px',\n },\n };\n\n const showClear = allowClear && !disabled && (\n isRangeMode\n ? (currentRangeValue.startDate || currentRangeValue.endDate)\n : currentSingleValue\n );\n \n const singleDisplayValue = currentSingleValue ? formatDate(currentSingleValue, format) : '';\n const startDisplayValue = currentRangeValue.startDate ? formatDate(currentRangeValue.startDate, format) : '';\n const endDisplayValue = currentRangeValue.endDate ? formatDate(currentRangeValue.endDate, format) : '';\n\n // 日历图标\n const CalendarIcon = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.6667 2.66667H12V2C12 1.63181 11.7015 1.33333 11.3333 1.33333C10.9651 1.33333 10.6667 1.63181 10.6667 2V2.66667H5.33333V2C5.33333 1.63181 5.03486 1.33333 4.66667 1.33333C4.29848 1.33333 4 1.63181 4 2V2.66667H3.33333C2.59695 2.66667 2 3.26362 2 4V13.3333C2 14.0697 2.59695 14.6667 3.33333 14.6667H12.6667C13.403 14.6667 14 14.0697 14 13.3333V4C14 3.26362 13.403 2.66667 12.6667 2.66667ZM12.6667 13.3333H3.33333V7.33333H12.6667V13.3333ZM12.6667 6H3.33333V4H12.6667V6Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n\n // 清除图标\n const ClearIcon = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n onClick={handleClear}\n style={{\n cursor: 'pointer',\n flexShrink: 0,\n color: '#78716C',\n }}\n >\n <path\n d=\"M12 4L4 12M4 4L12 12\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n\n // 下拉框动画样式\n const dropdownAnimationStyles = `\n @keyframes dropdownFadeIn {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n `;\n\n // 周几名称(周一开始)\n const weekDays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];\n\n return (\n <>\n <style>{dropdownAnimationStyles}</style>\n <div\n ref={pickerRef}\n className={`aha-date-picker ${className}`}\n style={{\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n boxSizing: 'border-box',\n fontFamily: \"DM Sans, sans-serif\",\n borderRadius: '8px',\n border: `1px solid ${error ? '#F04438' : isOpen ? primaryColor : '#D7D3D0'}`,\n backgroundColor: disabled ? '#FAFAF9' : '#FFFFFF',\n cursor: disabled ? 'not-allowed' : 'pointer',\n transition: 'all 0.2s',\n paddingLeft: '40px', // 为日历图标留出空间\n paddingRight: showClear ? '36px' : '12px', // 为清除按钮留出空间(如果有)\n paddingTop: sizeStyles[size].paddingTop,\n paddingBottom: sizeStyles[size].paddingBottom,\n fontSize: sizeStyles[size].fontSize,\n lineHeight: sizeStyles[size].lineHeight,\n fontWeight: 400,\n WebkitTapHighlightColor: 'transparent',\n WebkitTouchCallout: 'none',\n touchAction: 'manipulation',\n userSelect: 'none',\n ...style,\n }}\n onClick={handleToggle}\n onFocus={handleFocus}\n onBlur={handleBlur}\n tabIndex={disabled ? -1 : 0}\n >\n {/* 日历图标 */}\n <span\n style={{\n position: 'absolute',\n left: '12px',\n display: 'flex',\n alignItems: 'center',\n color: disabled ? '#98A2B3' : '#78716C',\n zIndex: 1,\n pointerEvents: 'none',\n }}\n >\n <CalendarIcon />\n </span>\n\n {/* 输入框内容 */}\n {isRangeMode ? (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n gap: '8px',\n minWidth: 0,\n }}\n >\n {/* 开始日期输入框 */}\n <input\n ref={startInputRef}\n type=\"text\"\n value={startDisplayValue}\n readOnly\n placeholder={startPlaceholder}\n disabled={disabled}\n onClick={handleStartInputClick}\n style={{\n flex: 1,\n border: 'none',\n outline: 'none',\n background: 'transparent',\n fontSize: '16px',\n lineHeight: '24px',\n fontWeight: 400,\n color: disabled ? '#98A2B3' : currentRangeValue.startDate ? '#1C1917' : '#79716B',\n fontFamily: \"DM Sans, sans-serif\",\n minWidth: 0,\n cursor: disabled ? 'not-allowed' : 'pointer',\n WebkitAppearance: 'none',\n appearance: 'none',\n }}\n />\n\n {/* 分隔符 */}\n <span\n style={{\n color: disabled ? '#98A2B3' : '#78716C',\n fontSize: '16px',\n flexShrink: 0,\n }}\n >\n {separator}\n </span>\n\n {/* 结束日期输入框 */}\n <input\n ref={endInputRef}\n type=\"text\"\n value={endDisplayValue}\n readOnly\n placeholder={endPlaceholder}\n disabled={disabled}\n onClick={handleEndInputClick}\n style={{\n flex: 1,\n border: 'none',\n outline: 'none',\n background: 'transparent',\n fontSize: '16px',\n lineHeight: '24px',\n fontWeight: 400,\n color: disabled ? '#98A2B3' : currentRangeValue.endDate ? '#1C1917' : '#79716B',\n fontFamily: \"DM Sans, sans-serif\",\n minWidth: 0,\n cursor: disabled ? 'not-allowed' : 'pointer',\n WebkitAppearance: 'none',\n appearance: 'none',\n }}\n />\n </div>\n ) : (\n <input\n ref={inputRef}\n type=\"text\"\n value={singleDisplayValue}\n readOnly\n placeholder={placeholder}\n disabled={disabled}\n onClick={(e) => {\n e.stopPropagation();\n if (!disabled) {\n handleToggle();\n }\n }}\n style={{\n flex: 1,\n border: 'none',\n outline: 'none',\n background: 'transparent',\n fontSize: '16px',\n lineHeight: '24px',\n fontWeight: 400,\n color: disabled ? '#98A2B3' : currentSingleValue ? '#1C1917' : '#79716B',\n fontFamily: \"DM Sans, sans-serif\",\n minWidth: 0,\n cursor: disabled ? 'not-allowed' : 'pointer',\n WebkitAppearance: 'none',\n appearance: 'none',\n }}\n />\n )}\n\n {/* 右侧图标 */}\n {showClear && (\n <div\n style={{\n position: 'absolute',\n right: '12px',\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n }}\n >\n <ClearIcon />\n </div>\n )}\n </div>\n\n {/* 日历下拉框 */}\n {isOpen && dropdownPosition && createPortal(\n <div\n ref={dropdownRef}\n className={`aha-date-picker-dropdown ${dropdownClassName}`}\n style={{\n position: 'absolute',\n top: `${dropdownPosition.top}px`,\n left: `${dropdownPosition.left}px`,\n zIndex: 1050,\n backgroundColor: '#FFFFFF',\n borderRadius: '8px',\n boxShadow: '0 4px 12px rgba(0, 0, 0, 0.15)',\n border: '1px solid #E7E5E4',\n padding: '0',\n opacity: 0,\n transform: 'translateY(-8px)',\n animation: 'dropdownFadeIn 0.2s ease-out forwards',\n display: 'flex',\n flexDirection: 'column',\n ...dropdownStyle,\n }}\n >\n {/* 内容区域 */}\n <div\n style={{\n display: 'flex',\n flex: 1,\n minHeight: 0,\n flexDirection: isRangeMode && hasPresetRanges && calendarCount === 1 ? 'column' : 'row',\n }}\n >\n {/* 预设日期范围列表(左侧 - 仅双月模式) */}\n {isRangeMode && hasPresetRanges && calendarCount === 2 && (\n <div\n style={{\n width: '140px',\n borderRight: '1px solid #E7E5E4',\n padding: '12px 0',\n backgroundColor: '#FFFFFF',\n borderTopLeftRadius: '8px',\n borderBottomLeftRadius: showApplyCancel ? '0' : '8px',\n }}\n >\n {presetRangesList.map((preset, idx) => {\n const isSelected = tempRangeValue\n ? isSameDay(preset.range.startDate, tempRangeValue.startDate) &&\n isSameDay(preset.range.endDate, tempRangeValue.endDate)\n : isSameDay(preset.range.startDate, currentRangeValue.startDate) &&\n isSameDay(preset.range.endDate, currentRangeValue.endDate);\n \n return (\n <div\n key={idx}\n onClick={() => handlePresetRangeSelect(preset.range)}\n style={{\n padding: '8px 16px',\n cursor: 'pointer',\n fontSize: '14px',\n fontFamily: \"DM Sans, sans-serif\",\n color: isSelected ? primaryColor : '#1C1917',\n backgroundColor: isSelected ? '#FAFAF9' : 'transparent',\n fontWeight: isSelected ? 500 : 400,\n transition: 'all 0.2s',\n }}\n onMouseEnter={(e) => {\n if (!isSelected) {\n e.currentTarget.style.backgroundColor = '#F5F5F4';\n }\n }}\n onMouseLeave={(e) => {\n if (!isSelected) {\n e.currentTarget.style.backgroundColor = 'transparent';\n }\n }}\n >\n {preset.label}\n </div>\n );\n })}\n </div>\n )}\n <div>\n {/* 日历区域 */}\n <div\n style={{\n flex: 1,\n padding: '16px',\n display: 'flex',\n flexDirection: calendarCount === 2 ? 'row' : 'column',\n gap: calendarCount === 2 ? '24px' : '0',\n }}\n >\n \n {/* 渲染第一个日历 */}\n {(() => {\n const renderCalendar = (\n monthData: { year: number; month: number },\n calendarDays: (Date | null)[],\n onPrevMonth: () => void,\n onNextMonth: () => void,\n monthIndex: number = 0\n ) => (\n <div\n key={monthIndex}\n style={{\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n {/* 月份导航 */}\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: calendarCount === 2 && isRangeMode ? 'center' : 'space-between',\n marginBottom: '16px',\n position: 'relative',\n }}\n >\n {/* 左侧月份(monthIndex === 0)在两个月模式下隐藏左箭头,右侧月份(monthIndex === 1)在两个月模式下隐藏左箭头 */}\n {!(calendarCount === 2 && isRangeMode && monthIndex === 1) && (\n <button\n type=\"button\"\n onClick={onPrevMonth}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '32px',\n height: '32px',\n border: 'none',\n background: 'transparent',\n cursor: 'pointer',\n borderRadius: '4px',\n color: '#78716C',\n transition: 'all 0.2s',\n position: calendarCount === 2 && isRangeMode ? 'absolute' : 'relative',\n left: calendarCount === 2 && isRangeMode ? 0 : undefined,\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#FAFAF9';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M10 12L6 8L10 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n )}\n\n <div\n style={{\n fontSize: '16px',\n fontWeight: 500,\n color: '#1C1917',\n fontFamily: \"DM Sans, sans-serif\",\n }}\n >\n {monthNamesFull[monthData.month]} {monthData.year}\n </div>\n\n {/* 左侧月份(monthIndex === 0)在两个月模式下隐藏右箭头 */}\n {!(calendarCount === 2 && isRangeMode && monthIndex === 0) && (\n <button\n type=\"button\"\n onClick={onNextMonth}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '32px',\n height: '32px',\n border: 'none',\n background: 'transparent',\n cursor: 'pointer',\n borderRadius: '4px',\n color: '#78716C',\n transition: 'all 0.2s',\n position: calendarCount === 2 && isRangeMode ? 'absolute' : 'relative',\n right: calendarCount === 2 && isRangeMode ? 0 : undefined,\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#FAFAF9';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M6 4L10 8L6 12\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n )}\n </div>\n\n {/* 预设日期范围列表(上方 - 仅单月模式) */}\n {isRangeMode && hasPresetRanges && calendarCount === 1 && (\n <div\n style={{\n width: '252px',\n display: 'flex',\n flexWrap: 'wrap',\n paddingBottom: '16px',\n }}\n >\n {presetRangesList.map((preset, idx) => {\n const isSelected = tempRangeValue\n ? isSameDay(preset.range.startDate, tempRangeValue.startDate) &&\n isSameDay(preset.range.endDate, tempRangeValue.endDate)\n : isSameDay(preset.range.startDate, currentRangeValue.startDate) &&\n isSameDay(preset.range.endDate, currentRangeValue.endDate);\n \n return (\n <button\n key={idx}\n type=\"button\"\n onClick={() => handlePresetRangeSelect(preset.range)}\n style={{\n padding: '4px 9px',\n cursor: 'pointer',\n fontSize: '14px',\n fontFamily: \"DM Sans, sans-serif\",\n color: isSelected ? primaryColor : '#1C1917',\n backgroundColor: isSelected ? '#FAFAF9' : 'transparent',\n border: 'none',\n fontWeight: isSelected ? 500 : 400,\n transition: 'all 0.2s',\n borderRadius: '4px',\n }}\n >\n {preset.label}\n </button>\n );\n })}\n </div>\n )}\n\n {/* 星期标题 */}\n <div\n style={{\n width: '252px',\n display: 'grid',\n gridTemplateColumns: 'repeat(7, 1fr)',\n marginBottom: '8px',\n }}\n >\n {weekDays.map((day) => (\n <div\n key={day}\n style={{\n width: '36px',\n textAlign: 'center',\n fontSize: '12px',\n fontWeight: 500,\n color: '#78716C',\n fontFamily: \"DM Sans, sans-serif\",\n padding: '4px',\n }}\n >\n {day}\n </div>\n ))}\n </div>\n\n {/* 日期网格 */}\n <div\n style={{\n width: '252px',\n display: 'grid',\n gridTemplateColumns: 'repeat(7, 1fr)',\n rowGap: '4px',\n columnGap: '0px',\n }}\n >\n {(() => {\n // 计算第一天是星期几(0=周日, 1=周一, ...)\n const firstDay = getFirstDayOfMonth(monthData.year, monthData.month);\n // 将周日(0)转换为7,使周一作为第一天\n const firstDayOfWeek = firstDay === 0 ? 7 : firstDay;\n const offset = firstDayOfWeek - 1; // 需要偏移的空格数\n \n const cells: React.ReactNode[] = [];\n \n // 添加前面的空单元格\n for (let i = 0; i < offset; i++) {\n cells.push(<div key={`empty-${i}`} />);\n }\n \n // 添加当前月的日期\n calendarDays.forEach((date, index) => {\n if (!date) return;\n \n const actualIndex = offset + index;\n const isCurrentMonth = date.getMonth() === monthData.month;\n const isToday = isSameDay(date, new Date());\n const isDisabled = !isDateInRange(date, minDate, maxDate);\n\n if (isRangeMode) {\n // 范围模式 - 使用临时值或当前值\n const workingRange = showApplyCancel && tempRangeValue ? tempRangeValue : currentRangeValue;\n const isStartDate = isSameDay(date, workingRange.startDate);\n const isEndDate = isSameDay(date, workingRange.endDate);\n const isInRange = isDateInSelectedRange(date, workingRange.startDate, workingRange.endDate);\n\n // 判断是否是行的第一个或最后一个(基于 actualIndex,包含空单元格)\n const isFirstInRow = actualIndex % 7 === 0;\n const isLastInRow = actualIndex % 7 === 6;\n \n const isRangeStart = isStartDate;\n const isRangeEnd = isEndDate;\n \n // 判断前一个和后一个日期是否在范围内(同一行内)\n const prevDate = index > 0 ? calendarDays[index - 1] : null;\n const nextDate = index < calendarDays.length - 1 ? calendarDays[index + 1] : null;\n const prevInRange = prevDate ? isDateInSelectedRange(prevDate, workingRange.startDate, workingRange.endDate) : false;\n const nextInRange = nextDate ? isDateInSelectedRange(nextDate, workingRange.startDate, workingRange.endDate) : false;\n \n // 判断上一行和下一行的对应日期是否在范围内(跨行判断)\n const prevRowIndex = index - 7;\n const nextRowIndex = index + 7;\n const prevRowDate = prevRowIndex >= 0 ? calendarDays[prevRowIndex] : null;\n const nextRowDate = nextRowIndex < calendarDays.length ? calendarDays[nextRowIndex] : null;\n const prevRowInRange = prevRowDate ? isDateInSelectedRange(prevRowDate, workingRange.startDate, workingRange.endDate) : false;\n const nextRowInRange = nextRowDate ? isDateInSelectedRange(nextRowDate, workingRange.startDate, workingRange.endDate) : false;\n\n // 计算背景和圆角样式\n let buttonStyle: React.CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '36px',\n height: '36px',\n border: 'none',\n cursor: isDisabled ? 'not-allowed' : 'pointer',\n fontSize: '14px',\n fontFamily: \"DM Sans, sans-serif\",\n transition: 'all 0.2s',\n opacity: isDisabled ? 0.4 : 1,\n position: 'relative',\n padding: 0,\n margin: 0,\n };\n\n // 开始和结束日期:圆形背景,橙色\n if (isRangeStart || isRangeEnd) {\n buttonStyle.background = primaryColor;\n buttonStyle.borderRadius = '50%';\n buttonStyle.color = '#FFFFFF';\n buttonStyle.fontWeight = 500;\n } \n // 范围中间的日期:浅灰色矩形背景\n else if (isInRange) {\n buttonStyle.background = '#F5F5F4';\n buttonStyle.color = isCurrentMonth\n ? isDisabled\n ? '#D7D3D0'\n : '#1C1917'\n : '#78716C';\n buttonStyle.fontWeight = 400;\n \n // 判断是否是月份的第一天或最后一天\n const isFirstDayOfMonth = date.getDate() === 1;\n const daysInMonth = getDaysInMonth(monthData.year, monthData.month);\n const isLastDayOfMonth = date.getDate() === daysInMonth;\n \n // 判断是否需要左边圆角或右边圆角\n const needsLeftRadius = isFirstInRow || isFirstDayOfMonth;\n const needsRightRadius = isLastInRow || isLastDayOfMonth;\n \n // 设置圆角:每一行的第一个日期有左边圆角,最后一个日期有右边圆角\n // 每月的第一天和最后一天也要有圆角\n if (needsLeftRadius && needsRightRadius) {\n // 同时需要左边和右边圆角(单独一个日期或跨行的情况)\n buttonStyle.borderRadius = '18px';\n } else if (needsLeftRadius) {\n // 行的第一个或月份的第一天:添加左侧圆角(上下都有)\n buttonStyle.borderTopLeftRadius = '18px';\n buttonStyle.borderBottomLeftRadius = '18px';\n buttonStyle.borderTopRightRadius = '0';\n buttonStyle.borderBottomRightRadius = '0';\n } else if (needsRightRadius) {\n // 行的最后一个或月份的最后一天:添加右侧圆角(上下都有)\n buttonStyle.borderTopRightRadius = '18px';\n buttonStyle.borderBottomRightRadius = '18px';\n buttonStyle.borderTopLeftRadius = '0';\n buttonStyle.borderBottomLeftRadius = '0';\n } else {\n // 中间:无圆角,保持连续\n buttonStyle.borderRadius = '0';\n }\n } \n // 不在范围内的日期\n else {\n buttonStyle.background = 'transparent';\n buttonStyle.borderRadius = '50%';\n buttonStyle.color = isCurrentMonth\n ? isDisabled\n ? '#D7D3D0'\n : '#1C1917'\n : '#78716C';\n buttonStyle.fontWeight = 400;\n }\n\n cells.push(\n <button\n key={`date-${index}`}\n type=\"button\"\n disabled={isDisabled}\n onClick={() => handleSelectRangeDate(date)}\n style={buttonStyle}\n onMouseEnter={(e) => {\n if (!isDisabled && !isRangeStart && !isRangeEnd) {\n if (isInRange) {\n e.currentTarget.style.backgroundColor = '#E7E5E4';\n } else {\n e.currentTarget.style.backgroundColor = '#FAFAF9';\n }\n }\n }}\n onMouseLeave={(e) => {\n if (!isRangeStart && !isRangeEnd) {\n if (isInRange) {\n e.currentTarget.style.backgroundColor = '#F5F5F4';\n } else {\n e.currentTarget.style.backgroundColor = 'transparent';\n }\n }\n }}\n >\n {date.getDate()}\n {isToday && (\n <div\n style={{\n position: 'absolute',\n bottom: '3px',\n left: '50%',\n transform: 'translateX(-50%)',\n width: '4px',\n height: '4px',\n borderRadius: '50%',\n backgroundColor: (isRangeStart || isRangeEnd) ? \"#FFFFFF\" : primaryColor,\n }}\n />\n )}\n </button>\n );\n } else {\n // 单个日期模式\n const isSelected = isSameDay(date, currentSingleValue);\n\n cells.push(\n <button\n key={`date-${index}`}\n type=\"button\"\n disabled={isDisabled}\n onClick={() => handleSelectSingleDate(date)}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '36px',\n height: '36px',\n border: 'none',\n background: isSelected ? primaryColor : 'transparent',\n cursor: isDisabled ? 'not-allowed' : 'pointer',\n borderRadius: '4px',\n fontSize: '14px',\n fontWeight: isSelected ? 500 : 400,\n color: isSelected\n ? '#FFFFFF'\n : isCurrentMonth\n ? isDisabled\n ? '#D7D3D0'\n : '#1C1917'\n : '#78716C',\n fontFamily: \"DM Sans, sans-serif\",\n transition: 'all 0.2s',\n opacity: isDisabled ? 0.4 : 1,\n position: 'relative',\n padding: 0,\n margin: 0,\n }}\n onMouseEnter={(e) => {\n if (!isDisabled && !isSelected) {\n e.currentTarget.style.backgroundColor = '#FAFAF9';\n }\n }}\n onMouseLeave={(e) => {\n if (!isSelected) {\n e.currentTarget.style.backgroundColor = 'transparent';\n }\n }}\n >\n {date.getDate()}\n {isToday && !isSelected && (\n <div\n style={{\n position: 'absolute',\n bottom: '2px',\n left: '50%',\n transform: 'translateX(-50%)',\n width: '4px',\n height: '4px',\n borderRadius: '50%',\n backgroundColor: primaryColor,\n }}\n />\n )}\n </button>\n );\n }\n });\n \n return cells;\n })()}\n </div>\n </div>\n );\n\n return (\n <>\n {renderCalendar(currentMonth, calendarData, handlePrevMonth, handleNextMonth, 0)}\n {calendarCount === 2 && isRangeMode && secondMonth && secondCalendarData && (\n renderCalendar(secondMonth, secondCalendarData, handleSecondPrevMonth, handleSecondNextMonth, 1)\n )}\n \n </>\n );\n })()}\n </div>\n {/* Apply/Cancel 按钮 */}\n {isRangeMode && showApplyCancel && (\n <div\n style={{\n display: 'flex',\n justifyContent: 'flex-end',\n gap: '8px',\n padding: '12px 16px',\n borderTop: '1px solid #E7E5E4',\n borderBottomLeftRadius: '8px',\n borderBottomRightRadius: '8px',\n }}\n >\n <button\n type=\"button\"\n onClick={handleCancel}\n style={{\n padding: '8px 16px',\n border: '1px solid #E7E5E4',\n borderRadius: '8px',\n background: '#FFFFFF',\n color: '#1C1917',\n fontSize: '14px',\n fontWeight: 500,\n fontFamily: \"DM Sans, sans-serif\",\n cursor: 'pointer',\n transition: 'all 0.2s',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#FAFAF9';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = '#FFFFFF';\n }}\n >\n {cancelText}\n </button>\n <button\n type=\"button\"\n onClick={handleApply}\n disabled={!tempRangeValue || (!tempRangeValue.startDate || !tempRangeValue.endDate)}\n style={{\n padding: '8px 16px',\n border: 'none',\n borderRadius: '8px',\n background: (!tempRangeValue || !tempRangeValue.startDate || !tempRangeValue.endDate) ? '#D7D3D0' : primaryColor,\n color: '#FFFFFF',\n fontSize: '14px',\n fontWeight: 500,\n fontFamily: \"DM Sans, sans-serif\",\n cursor: (!tempRangeValue || !tempRangeValue.startDate || !tempRangeValue.endDate) ? 'not-allowed' : 'pointer',\n transition: 'all 0.2s',\n }}\n onMouseEnter={(e) => {\n if (tempRangeValue && tempRangeValue.startDate && tempRangeValue.endDate) {\n e.currentTarget.style.backgroundColor = '#FD843A';\n }\n }}\n onMouseLeave={(e) => {\n if (tempRangeValue && tempRangeValue.startDate && tempRangeValue.endDate) {\n e.currentTarget.style.backgroundColor = primaryColor;\n }\n }}\n >\n {applyText}\n </button>\n </div>\n )}\n </div>\n </div>\n </div>,\n document.body\n )}\n </>\n );\n};\n\nDatePicker.displayName = 'DatePicker';\n\nexport default DatePicker;\n"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","SuppressedError","defaultTheme","primaryColor","ThemeContext","createContext","monthNamesShort","monthNamesFull","formatDate","date","format","year","getFullYear","month","getMonth","monthNum","String","padStart","day","getDate","dayNum","replace","RegExp","slice","getDaysInMonth","Date","isSameDay","date1","date2","isDateInRange","minDate","maxDate","isDateInSelectedRange","startDate","endDate","dateTime","getTime","startTime","endTime","DatePicker","props","_a","mode","_b","disabled","_c","error","_d","placeholder","_e","startPlaceholder","_f","endPlaceholder","_g","size","_h","allowClear","_j","onFocus","onBlur","onOpenChange","_k","className","style","_l","dropdownClassName","dropdownStyle","_m","defaultOpen","controlledOpen","open","_o","separator","_p","presetRanges","_q","calendarCount","_r","showApplyCancel","_s","applyText","_t","cancelText","onApply","onCancel","_u","useContext","isRangeMode","_v","useState","defaultValue","internalSingleValue","setInternalSingleValue","_w","internalRangeValue","setInternalRangeValue","_x","internalOpen","setInternalOpen","_y","selectingStart","setSelectingStart","_z","tempRangeValue","setTempRangeValue","_0","range","value","now","currentMonth","setCurrentMonth","_1","nextMonth","secondMonth","setSecondMonth","useEffect","pickerRef","useRef","inputRef","startInputRef","endInputRef","dropdownRef","_2","dropdownPosition","setDropdownPosition","hasOpenedRef","isControlled","undefined","isOpenControlled","currentSingleValue","currentRangeValue","isOpen","current","dateYear","dateMonth","updatePosition_1","rect","getBoundingClientRect","top","bottom","window","scrollY","left","scrollX","width","addEventListener","removeEventListener","handleClickOutside","event","target","contains","document","renderCalendar","handleSelectSingleDate","useCallback","onChange","handleSelectRangeDate","newRange","workingRange","handleClear","e","stopPropagation","handleToggle","newOpen","defaultPresetRanges","useMemo","today","setHours","lastWeekEnd","lastWeekStart","setDate","lastMonthEnd","lastMonthStart","originalDate","setMonth","lastYearEnd","lastYearStart","setFullYear","label","presetRangesList","Array","isArray","hasPresetRanges","handlePresetRangeSelect","startYear","startMonth","handlePrevMonth","prev","handleNextMonth","generateCalendarData","daysInMonth","days","push","calendarData","secondCalendarData","handleSecondPrevMonth","handleSecondNextMonth","sizeStyles","small","height","paddingTop","paddingBottom","fontSize","lineHeight","mediumSmall","medium","large","showClear","singleDisplayValue","startDisplayValue","endDisplayValue","weekDays","_jsxs","_jsx","children","ref","position","display","alignItems","boxSizing","fontFamily","borderRadius","border","concat","backgroundColor","cursor","transition","paddingLeft","paddingRight","fontWeight","WebkitTapHighlightColor","WebkitTouchCallout","touchAction","userSelect","onClick","tabIndex","color","zIndex","pointerEvents","viewBox","fill","xmlns","d","flex","gap","minWidth","type","readOnly","outline","background","WebkitAppearance","appearance","flexShrink","right","stroke","strokeWidth","strokeLinecap","strokeLinejoin","createPortal","boxShadow","padding","opacity","transform","animation","flexDirection","minHeight","borderRight","borderTopLeftRadius","borderBottomLeftRadius","map","preset","idx","isSelected","onMouseEnter","currentTarget","onMouseLeave","monthData","calendarDays","onPrevMonth","onNextMonth","monthIndex","justifyContent","marginBottom","flexWrap","gridTemplateColumns","textAlign","rowGap","columnGap","firstDay","getDay","offset","cells","forEach","index","actualIndex","isCurrentMonth","isToday","isDisabled","isStartDate","isEndDate","isInRange_1","isFirstInRow","isLastInRow","isRangeStart_1","isRangeEnd_1","prevDate","nextDate","prevRowIndex","nextRowIndex","prevRowDate","nextRowDate","buttonStyle","margin","isFirstDayOfMonth","isLastDayOfMonth","needsLeftRadius","needsRightRadius","borderTopRightRadius","borderBottomRightRadius","isSelected_1","_Fragment","borderTop","body","displayName"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),n=require("react-dom"),r=function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},r.apply(this,arguments)};"function"==typeof SuppressedError&&SuppressedError;var a={primaryColor:"#FB6011"},o=t.createContext(a),i=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],l=["January","February","March","April","May","June","July","August","September","October","November","December"],s=function(e,t){if(void 0===t&&(t="YYYY-MM-DD"),!e)return"";var n=e.getFullYear(),r=e.getMonth(),a=String(r+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0"),s=String(e.getDate());return t.replace(/YYYY/g,"").replace(/YY/g,"").replace(/MMMM/g,"").replace(/MMM/g,"").replace(/MM/g,"").replace(/DD/g,"").replace(/D/g,"").replace(/M/g,"").replace(new RegExp("","g"),String(n)).replace(new RegExp("","g"),String(n).slice(-2)).replace(new RegExp("","g"),l[r]).replace(new RegExp("","g"),i[r]).replace(new RegExp("","g"),a).replace(new RegExp("","g"),String(r+1)).replace(new RegExp("","g"),o).replace(new RegExp("","g"),s)},d=function(e,t){return new Date(e,t+1,0).getDate()},u=function(e,t){return!(!e||!t)&&(e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate())},c=function(e,t,n){return!(t&&e<t)&&!(n&&e>n)},p=function(e,t,n){if(!t||!n)return!1;var r=e.getTime(),a=t.getTime(),o=n.getTime();return r>=a&&r<=o},g=function(i){var g=i.mode,f=void 0===g?"date":g,h=i.disabled,x=void 0!==h&&h,D=i.error,y=void 0!==D&&D,m=i.placeholder,v=void 0===m?"Select date":m,b=i.startPlaceholder,F=void 0===b?"Start date":b,C=i.endPlaceholder,w=void 0===C?"End date":C,M=i.size,k=void 0===M?"medium":M,S=i.allowClear,j=void 0!==S&&S,R=i.format,E=void 0===R?"range"===f?"MMM D, YYYY":"YYYY-MM-DD":R,L=i.onFocus,T=i.onBlur,Y=i.onOpenChange,A=i.className,B=void 0===A?"":A,W=i.style,z=i.dropdownClassName,H=void 0===z?"":z,V=i.dropdownStyle,I=i.defaultOpen,O=void 0!==I&&I,P=i.open,N=i.minDate,J=i.maxDate,q=i.separator,X=void 0===q?" - ":q,Z=i.presetRanges,G=void 0!==Z&&Z,_=i.calendarCount,K=void 0===_?1:_,Q=i.showApplyCancel,U=void 0!==Q&&Q,$=i.applyText,ee=void 0===$?"Apply":$,te=i.cancelText,ne=void 0===te?"Cancel":te,re=i.onApply,ae=i.onCancel,oe=(t.useContext(o)||a).primaryColor,ie=void 0===oe?"#FB6011":oe,le="range"===f,se=t.useState(function(){return"date"===f&&"defaultValue"in i&&i.defaultValue||null}),de=se[0],ue=se[1],ce=t.useState(function(){return"range"===f&&"defaultValue"in i&&i.defaultValue||{startDate:null,endDate:null}}),pe=ce[0],ge=ce[1],fe=t.useState(O),he=fe[0],xe=fe[1],De=t.useState(!0),ye=De[0],me=De[1],ve=t.useState(null),be=ve[0],Fe=ve[1],Ce=t.useState(function(){var e,t;if("date"===f&&"value"in i&&i.value&&(t=i.value))return{year:t.getFullYear(),month:t.getMonth()};if("range"===f&&"value"in i&&i.value&&(t=(e=i.value).startDate||e.endDate))return{year:t.getFullYear(),month:t.getMonth()};if("date"===f&&"defaultValue"in i&&i.defaultValue&&(t=i.defaultValue))return{year:t.getFullYear(),month:t.getMonth()};if("range"===f&&"defaultValue"in i&&i.defaultValue&&(t=(e=i.defaultValue).startDate||e.endDate))return{year:t.getFullYear(),month:t.getMonth()};var n=new Date;return{year:n.getFullYear(),month:n.getMonth()}}),we=Ce[0],Me=Ce[1],ke=t.useState(function(){if(2===K&&le){var e=new Date(we.year,we.month+1,1);return{year:e.getFullYear(),month:e.getMonth()}}return null}),Se=ke[0],je=ke[1];t.useEffect(function(){if(2===K&&le){var e=new Date(we.year,we.month+1,1);je({year:e.getFullYear(),month:e.getMonth()})}else je(null)},[we,K,le]);var Re=t.useRef(null),Ee=t.useRef(null),Le=t.useRef(null),Te=t.useRef(null),Ye=t.useRef(null),Ae=t.useState(null),Be=Ae[0],We=Ae[1],ze=t.useRef(!1),He="value"in i&&void 0!==i.value,Ve=void 0!==P,Ie=le?null:He&&"date"===f&&"value"in i?i.value:de,Oe=le?He&&"range"===f&&"value"in i?i.value||{startDate:null,endDate:null}:pe:{startDate:null,endDate:null},Pe=Ve?P:he;t.useEffect(function(){if(Pe&&!ze.current){if(le){var e=Oe.startDate||Oe.endDate;if(e){var t=e.getFullYear(),n=e.getMonth();we.year===t&&we.month===n||Me({year:t,month:n})}}else if(Ie){t=Ie.getFullYear(),n=Ie.getMonth();we.year===t&&we.month===n||Me({year:t,month:n})}ze.current=!0}else Pe||(ze.current=!1)},[Pe,Ie,Oe,le,we]),t.useEffect(function(){if(Pe&&Re.current){var e=function(){if(Re.current){var e=Re.current.getBoundingClientRect();We({top:e.bottom+window.scrollY+4,left:e.left+window.scrollX,width:e.width})}};return e(),window.addEventListener("resize",e),window.addEventListener("scroll",e,!0),function(){window.removeEventListener("resize",e),window.removeEventListener("scroll",e,!0)}}We(null)},[Pe]),t.useEffect(function(){var e=function(e){var t=e.target;Re.current&&!Re.current.contains(t)&&Ye.current&&!Ye.current.contains(t)&&(Ve||xe(!1),null==Y||Y(!1))};if(Pe)return document.addEventListener("mousedown",e,!0),document.addEventListener("touchstart",e,!0),function(){document.removeEventListener("mousedown",e,!0),document.removeEventListener("touchstart",e,!0)}},[Pe,Ve,Y]);var Ne,Je=t.useCallback(function(e){var t;c(e,N,J)&&(He||ue(e),"date"===f&&"onChange"in i&&(null===(t=i.onChange)||void 0===t||t.call(i,e)),Ve||xe(!1),null==Y||Y(!1))},[He,Ve,f,i,Y,N,J]),qe=t.useCallback(function(e){var t;if(c(e,N,J)){var n,r=U&&be?be:Oe;r.startDate&&r.endDate?(n={startDate:e,endDate:null},me(!1)):ye?r.endDate&&e>r.endDate?(n={startDate:r.endDate,endDate:e},me(!1)):(n={startDate:e,endDate:r.endDate},r.endDate?(me(!0),U||(Ve||xe(!1),null==Y||Y(!1))):me(!1)):r.startDate&&e<r.startDate?(n={startDate:e,endDate:r.startDate},me(!1)):(n={startDate:r.startDate,endDate:e},me(!0),U||(Ve||xe(!1),null==Y||Y(!1))),U?Fe(n):(He||ge(n),"range"===f&&"onChange"in i&&(null===(t=i.onChange)||void 0===t||t.call(i,n)))}},[ye,Oe,be,U,He,Ve,f,i,Y,N,J]),Xe=function(e){var t,n;if(e.stopPropagation(),le){var r={startDate:null,endDate:null};He||ge(r),"range"===f&&"onChange"in i&&(null===(t=i.onChange)||void 0===t||t.call(i,r)),me(!0)}else He||ue(null),"date"===f&&"onChange"in i&&(null===(n=i.onChange)||void 0===n||n.call(i,null))},Ze=function(){if(!x){var e=!Pe;Ve||xe(e),null==Y||Y(e),e&&le?(me(!Oe.startDate),U&&Fe(Oe)):!e&&U&&Fe(null)}},Ge=t.useMemo(function(){var e=new Date;e.setHours(0,0,0,0);var t=new Date(e),n=new Date(e);n.setDate(e.getDate()-6);var r=new Date(e),a=new Date(e),o=e.getDate();a.setMonth(e.getMonth()-1),a.getDate()!==o&&a.setDate(0);var i=new Date(e),l=new Date(e);return l.setFullYear(e.getFullYear()-1),[{label:"Last week",range:{startDate:n,endDate:t}},{label:"Last month",range:{startDate:a,endDate:r}},{label:"Last year",range:{startDate:l,endDate:i}}]},[]),_e=t.useMemo(function(){return Array.isArray(G)?G:!0===G?Ge:[]},[G,Ge]),Ke=_e.length>0,Qe=function(e){var t;if(e.startDate){var n=e.startDate.getFullYear(),r=e.startDate.getMonth();Me({year:n,month:r})}U?Fe(e):(He||ge(e),"range"===f&&"onChange"in i&&(null===(t=i.onChange)||void 0===t||t.call(i,e)),Ve||xe(!1),null==Y||Y(!1))},Ue=function(){Me(function(e){return 0===e.month?{year:e.year-1,month:11}:{year:e.year,month:e.month-1}})},$e=function(){Me(function(e){return 11===e.month?{year:e.year+1,month:0}:{year:e.year,month:e.month+1}})},et=t.useCallback(function(e,t){for(var n=d(e,t),r=[],a=1;a<=n;a++)r.push(new Date(e,t,a));return r},[]),tt=t.useMemo(function(){return et(we.year,we.month)},[we,et]),nt=t.useMemo(function(){return 2===K&&le&&Se?et(Se.year,Se.month):null},[K,le,Se,et]),rt=function(){Se&&je(function(e){return e?0===e.month?{year:e.year-1,month:11}:{year:e.year,month:e.month-1}:null})},at=function(){Se&&je(function(e){return e?11===e.month?{year:e.year+1,month:0}:{year:e.year,month:e.month+1}:null})},ot={small:{height:"32px",paddingTop:"3px",paddingBottom:"3px",fontSize:"16px",lineHeight:"24px"},mediumSmall:{height:"36px",paddingTop:"5px",paddingBottom:"5px",fontSize:"16px",lineHeight:"24px"},medium:{height:"40px",paddingTop:"7px",paddingBottom:"7px",fontSize:"16px",lineHeight:"24px"},large:{height:"48px",paddingTop:"11px",paddingBottom:"11px",fontSize:"16px",lineHeight:"24px"}},it=j&&!x&&(le?Oe.startDate||Oe.endDate:Ie),lt=Ie?s(Ie,E):"",st=Oe.startDate?s(Oe.startDate,E):"",dt=Oe.endDate?s(Oe.endDate,E):"",ut=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];return e.jsxs(e.Fragment,{children:[e.jsx("style",{children:"\n @keyframes dropdownFadeIn {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n "}),e.jsxs("div",{ref:Re,className:"aha-date-picker ".concat(B),style:r({position:"relative",display:"inline-flex",alignItems:"center",boxSizing:"border-box",fontFamily:"DM Sans, sans-serif",borderRadius:"8px",border:"1px solid ".concat(y?"#F04438":Pe?ie:"#D7D3D0"),backgroundColor:x?"#FAFAF9":"#FFFFFF",cursor:x?"not-allowed":"pointer",transition:"all 0.2s",paddingLeft:"40px",paddingRight:it?"36px":"12px",paddingTop:ot[k].paddingTop,paddingBottom:ot[k].paddingBottom,fontSize:ot[k].fontSize,lineHeight:ot[k].lineHeight,fontWeight:400,WebkitTapHighlightColor:"transparent",WebkitTouchCallout:"none",touchAction:"manipulation",userSelect:"none"},W),onClick:Ze,onFocus:function(e){null==L||L(e)},onBlur:function(e){null==T||T(e)},tabIndex:x?-1:0,children:[e.jsx("span",{style:{position:"absolute",left:"12px",display:"flex",alignItems:"center",color:x?"#98A2B3":"#78716C",zIndex:1,pointerEvents:"none"},children:e.jsx(function(){return e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:e.jsx("path",{d:"M12.6667 2.66667H12V2C12 1.63181 11.7015 1.33333 11.3333 1.33333C10.9651 1.33333 10.6667 1.63181 10.6667 2V2.66667H5.33333V2C5.33333 1.63181 5.03486 1.33333 4.66667 1.33333C4.29848 1.33333 4 1.63181 4 2V2.66667H3.33333C2.59695 2.66667 2 3.26362 2 4V13.3333C2 14.0697 2.59695 14.6667 3.33333 14.6667H12.6667C13.403 14.6667 14 14.0697 14 13.3333V4C14 3.26362 13.403 2.66667 12.6667 2.66667ZM12.6667 13.3333H3.33333V7.33333H12.6667V13.3333ZM12.6667 6H3.33333V4H12.6667V6Z",fill:"currentColor"})})},{})}),le?e.jsxs("div",{style:{display:"flex",alignItems:"center",flex:1,gap:"8px",minWidth:0},children:[e.jsx("input",{ref:Le,type:"text",value:st,readOnly:!0,placeholder:F,disabled:x,onClick:function(e){e.stopPropagation(),x||(me(!0),Pe||Ze())},style:{flex:1,border:"none",outline:"none",background:"transparent",fontSize:"16px",lineHeight:"24px",fontWeight:400,color:x?"#98A2B3":Oe.startDate?"#1C1917":"#79716B",fontFamily:"DM Sans, sans-serif",minWidth:0,cursor:x?"not-allowed":"pointer",WebkitAppearance:"none",appearance:"none"}}),e.jsx("span",{style:{color:x?"#98A2B3":"#78716C",fontSize:"16px",flexShrink:0},children:X}),e.jsx("input",{ref:Te,type:"text",value:dt,readOnly:!0,placeholder:w,disabled:x,onClick:function(e){e.stopPropagation(),x||(me(!1),Pe||Ze())},style:{flex:1,border:"none",outline:"none",background:"transparent",fontSize:"16px",lineHeight:"24px",fontWeight:400,color:x?"#98A2B3":Oe.endDate?"#1C1917":"#79716B",fontFamily:"DM Sans, sans-serif",minWidth:0,cursor:x?"not-allowed":"pointer",WebkitAppearance:"none",appearance:"none"}})]}):e.jsx("input",{ref:Ee,type:"text",value:lt,readOnly:!0,placeholder:v,disabled:x,onClick:function(e){e.stopPropagation(),x||Ze()},style:{flex:1,border:"none",outline:"none",background:"transparent",fontSize:"16px",lineHeight:"24px",fontWeight:400,color:x?"#98A2B3":Ie?"#1C1917":"#79716B",fontFamily:"DM Sans, sans-serif",minWidth:0,cursor:x?"not-allowed":"pointer",WebkitAppearance:"none",appearance:"none"}}),it&&e.jsx("div",{style:{position:"absolute",right:"12px",display:"flex",alignItems:"center",gap:"4px"},children:e.jsx(function(){return e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",onClick:Xe,style:{cursor:"pointer",flexShrink:0,color:"#78716C"},children:e.jsx("path",{d:"M12 4L4 12M4 4L12 12",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})},{})})]}),Pe&&Be&&n.createPortal(e.jsx("div",{ref:Ye,className:"aha-date-picker-dropdown ".concat(H),style:r({position:"absolute",top:"".concat(Be.top,"px"),left:"".concat(Be.left,"px"),zIndex:1050,backgroundColor:"#FFFFFF",borderRadius:"8px",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",border:"1px solid #E7E5E4",padding:"0",opacity:0,transform:"translateY(-8px)",animation:"dropdownFadeIn 0.2s ease-out forwards",display:"flex",flexDirection:"column"},V),children:e.jsxs("div",{style:{display:"flex",flex:1,minHeight:0,flexDirection:le&&Ke&&1===K?"column":"row"},children:[le&&Ke&&2===K&&e.jsx("div",{style:{width:"140px",borderRight:"1px solid #E7E5E4",padding:"12px 0",backgroundColor:"#FFFFFF",borderTopLeftRadius:"8px",borderBottomLeftRadius:U?"0":"8px"},children:_e.map(function(t,n){var r=be?u(t.range.startDate,be.startDate)&&u(t.range.endDate,be.endDate):u(t.range.startDate,Oe.startDate)&&u(t.range.endDate,Oe.endDate);return e.jsx("div",{onClick:function(){return Qe(t.range)},style:{padding:"8px 16px",cursor:"pointer",fontSize:"14px",fontFamily:"DM Sans, sans-serif",color:r?ie:"#1C1917",backgroundColor:r?"#FAFAF9":"transparent",fontWeight:r?500:400,transition:"all 0.2s"},onMouseEnter:function(e){r||(e.currentTarget.style.backgroundColor="#F5F5F4")},onMouseLeave:function(e){r||(e.currentTarget.style.backgroundColor="transparent")},children:t.label},n)})}),e.jsxs("div",{children:[e.jsx("div",{style:{flex:1,padding:"16px",display:"flex",flexDirection:2===K?"row":"column",gap:2===K?"24px":"0"},children:(Ne=function(t,n,r,a,o){return void 0===o&&(o=0),e.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:2===K&&le?"center":"space-between",marginBottom:"16px",position:"relative"},children:[!(2===K&&le&&1===o)&&e.jsx("button",{type:"button",onClick:r,style:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",border:"none",background:"transparent",cursor:"pointer",borderRadius:"4px",color:"#78716C",transition:"all 0.2s",position:2===K&&le?"absolute":"relative",left:2===K&&le?0:void 0},onMouseEnter:function(e){e.currentTarget.style.backgroundColor="#FAFAF9"},onMouseLeave:function(e){e.currentTarget.style.backgroundColor="transparent"},children:e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:e.jsx("path",{d:"M10 12L6 8L10 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),e.jsxs("div",{style:{fontSize:"16px",fontWeight:500,color:"#1C1917",fontFamily:"DM Sans, sans-serif"},children:[l[t.month]," ",t.year]}),!(2===K&&le&&0===o)&&e.jsx("button",{type:"button",onClick:a,style:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",border:"none",background:"transparent",cursor:"pointer",borderRadius:"4px",color:"#78716C",transition:"all 0.2s",position:2===K&&le?"absolute":"relative",right:2===K&&le?0:void 0},onMouseEnter:function(e){e.currentTarget.style.backgroundColor="#FAFAF9"},onMouseLeave:function(e){e.currentTarget.style.backgroundColor="transparent"},children:e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:e.jsx("path",{d:"M6 4L10 8L6 12",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),le&&Ke&&1===K&&e.jsx("div",{style:{width:"252px",display:"flex",flexWrap:"wrap",paddingBottom:"16px"},children:_e.map(function(t,n){var r=be?u(t.range.startDate,be.startDate)&&u(t.range.endDate,be.endDate):u(t.range.startDate,Oe.startDate)&&u(t.range.endDate,Oe.endDate);return e.jsx("button",{type:"button",onClick:function(){return Qe(t.range)},style:{padding:"4px 9px",cursor:"pointer",fontSize:"14px",fontFamily:"DM Sans, sans-serif",color:r?ie:"#1C1917",backgroundColor:r?"#FAFAF9":"transparent",border:"none",fontWeight:r?500:400,transition:"all 0.2s",borderRadius:"4px"},children:t.label},n)})}),e.jsx("div",{style:{width:"252px",display:"grid",gridTemplateColumns:"repeat(7, 1fr)",marginBottom:"8px"},children:ut.map(function(t){return e.jsx("div",{style:{width:"36px",textAlign:"center",fontSize:"12px",fontWeight:500,color:"#78716C",fontFamily:"DM Sans, sans-serif",padding:"4px"},children:t},t)})}),e.jsx("div",{style:{width:"252px",display:"grid",gridTemplateColumns:"repeat(7, 1fr)",rowGap:"4px",columnGap:"0px"},children:function(){for(var r,a,o=(r=t.year,a=t.month,new Date(r,a,1).getDay()),i=(0===o?7:o)-1,l=[],s=0;s<i;s++)l.push(e.jsx("div",{},"empty-".concat(s)));return n.forEach(function(r,a){if(r){var o=i+a,s=r.getMonth()===t.month,g=u(r,new Date),f=!c(r,N,J);if(le){var h=U&&be?be:Oe,x=u(r,h.startDate),D=u(r,h.endDate),y=p(r,h.startDate,h.endDate),m=o%7==0,v=o%7==6,b=x,F=D,C=a>0?n[a-1]:null,w=a<n.length-1?n[a+1]:null;C&&p(C,h.startDate,h.endDate),w&&p(w,h.startDate,h.endDate);var M=a-7,k=a+7,S=M>=0?n[M]:null,j=k<n.length?n[k]:null;S&&p(S,h.startDate,h.endDate),j&&p(j,h.startDate,h.endDate);var R={display:"flex",alignItems:"center",justifyContent:"center",width:"36px",height:"36px",border:"none",cursor:f?"not-allowed":"pointer",fontSize:"14px",fontFamily:"DM Sans, sans-serif",transition:"all 0.2s",opacity:f?.4:1,position:"relative",padding:0,margin:0};if(b||F)R.background=ie,R.borderRadius="50%",R.color="#FFFFFF",R.fontWeight=500;else if(y){R.background="#F5F5F4",R.color=s?f?"#D7D3D0":"#1C1917":"#78716C",R.fontWeight=400;var E=1===r.getDate(),L=d(t.year,t.month),T=r.getDate()===L,Y=m||E,A=v||T;Y&&A?R.borderRadius="18px":Y?(R.borderTopLeftRadius="18px",R.borderBottomLeftRadius="18px",R.borderTopRightRadius="0",R.borderBottomRightRadius="0"):A?(R.borderTopRightRadius="18px",R.borderBottomRightRadius="18px",R.borderTopLeftRadius="0",R.borderBottomLeftRadius="0"):R.borderRadius="0"}else R.background="transparent",R.borderRadius="50%",R.color=s?f?"#D7D3D0":"#1C1917":"#78716C",R.fontWeight=400;l.push(e.jsxs("button",{type:"button",disabled:f,onClick:function(){return qe(r)},style:R,onMouseEnter:function(e){f||b||F||(e.currentTarget.style.backgroundColor=y?"#E7E5E4":"#FAFAF9")},onMouseLeave:function(e){b||F||(e.currentTarget.style.backgroundColor=y?"#F5F5F4":"transparent")},children:[r.getDate(),g&&e.jsx("div",{style:{position:"absolute",bottom:"3px",left:"50%",transform:"translateX(-50%)",width:"4px",height:"4px",borderRadius:"50%",backgroundColor:b||F?"#FFFFFF":ie}})]},"date-".concat(a)))}else{var B=u(r,Ie);l.push(e.jsxs("button",{type:"button",disabled:f,onClick:function(){return Je(r)},style:{display:"flex",alignItems:"center",justifyContent:"center",width:"36px",height:"36px",border:"none",background:B?ie:"transparent",cursor:f?"not-allowed":"pointer",borderRadius:"4px",fontSize:"14px",fontWeight:B?500:400,color:B?"#FFFFFF":s?f?"#D7D3D0":"#1C1917":"#78716C",fontFamily:"DM Sans, sans-serif",transition:"all 0.2s",opacity:f?.4:1,position:"relative",padding:0,margin:0},onMouseEnter:function(e){f||B||(e.currentTarget.style.backgroundColor="#FAFAF9")},onMouseLeave:function(e){B||(e.currentTarget.style.backgroundColor="transparent")},children:[r.getDate(),g&&!B&&e.jsx("div",{style:{position:"absolute",bottom:"2px",left:"50%",transform:"translateX(-50%)",width:"4px",height:"4px",borderRadius:"50%",backgroundColor:ie}})]},"date-".concat(a)))}}}),l}()})]},o)},e.jsxs(e.Fragment,{children:[Ne(we,tt,Ue,$e,0),2===K&&le&&Se&&nt&&Ne(Se,nt,rt,at,1)]}))}),le&&U&&e.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:"8px",padding:"12px 16px",borderTop:"1px solid #E7E5E4",borderBottomLeftRadius:"8px",borderBottomRightRadius:"8px"},children:[e.jsx("button",{type:"button",onClick:function(){Fe(null),null==ae||ae(),Ve||xe(!1),null==Y||Y(!1)},style:{padding:"8px 16px",border:"1px solid #E7E5E4",borderRadius:"8px",background:"#FFFFFF",color:"#1C1917",fontSize:"14px",fontWeight:500,fontFamily:"DM Sans, sans-serif",cursor:"pointer",transition:"all 0.2s"},onMouseEnter:function(e){e.currentTarget.style.backgroundColor="#FAFAF9"},onMouseLeave:function(e){e.currentTarget.style.backgroundColor="#FFFFFF"},children:ne}),e.jsx("button",{type:"button",onClick:function(){var e;be&&(He||ge(be),"range"===f&&"onChange"in i&&(null===(e=i.onChange)||void 0===e||e.call(i,be)),null==re||re(be),Ve||xe(!1),null==Y||Y(!1),Fe(null))},disabled:!be||!be.startDate||!be.endDate,style:{padding:"8px 16px",border:"none",borderRadius:"8px",background:be&&be.startDate&&be.endDate?ie:"#D7D3D0",color:"#FFFFFF",fontSize:"14px",fontWeight:500,fontFamily:"DM Sans, sans-serif",cursor:be&&be.startDate&&be.endDate?"pointer":"not-allowed",transition:"all 0.2s"},onMouseEnter:function(e){be&&be.startDate&&be.endDate&&(e.currentTarget.style.backgroundColor="#FD843A")},onMouseLeave:function(e){be&&be.startDate&&be.endDate&&(e.currentTarget.style.backgroundColor=ie)},children:ee})]})]})]})}),document.body)]})};g.displayName="DatePicker",exports.default=g;
|
|
2
|
+
//# sourceMappingURL=DatePicker.js.map
|