@stenajs-webui/calendar 19.0.0-next.5 → 19.0.0-next.7

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/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  (function(){"use strict";try{var r=document.createElement("style");r.appendChild(document.createTextNode("._calendar_1w0de_1{--swui-calendar-day-width: 40px;--swui-calendar-day-height: 38px;--swui-calendar-day-border-radius: 4px;--swui-calendar-week-number-bg-color: transparent;--swui-calendar-week-number-text-color: var(--lhds-color-ui-500);--swui-calendar-week-number-clickable-text-color: var(--lhds-color-ui-500);--swui-calendar-week-day-text-color: var(--lhds-color-ui-500);--swui-calendar-week-day-clickable-text-color: var(--lhds-color-ui-500);--swui-calendar-wrapper-selected-border: var(--swui-primary-action-color);--swui-calendar-wrapper-selected-background: var(--swui-primary-action-color);--swui-calendar-wrapper-range-border: var(--lhds-color-blue-100);--swui-calendar-wrapper-range-background: var(--lhds-color-blue-100);--swui-calendar-wrapper-today-border: var(--lhds-color-ui-200);--swui-calendar-wrapper-today-background: var(--lhds-color-ui-200);--swui-calendar-text-selected-color: #fff;--swui-calendar-text-disabled-color: var(--swui-text-disabled-color);--swui-calendar-text-in-other-month-color: var(--swui-text-disabled-color)}._calendar_1w0de_1 table{border-spacing:0 4px}._calendar_1w0de_1 span{line-height:100%}._calendar_1w0de_1 tr td:last-child{border-top-right-radius:var(--swui-calendar-day-border-radius);border-bottom-right-radius:var(--swui-calendar-day-border-radius)}._calendar_1w0de_1 tr td:nth-child(2){border-top-left-radius:var(--swui-calendar-day-border-radius);border-bottom-left-radius:var(--swui-calendar-day-border-radius)}._calendar_1w0de_1 td{padding:0;width:var(--swui-calendar-day-width);height:var(--swui-calendar-day-height)}._timePicker_1w05d_1{overflow:hidden;width:180px}._timePickerColumn_1w05d_6{overflow-y:hidden;flex:1}._timePickerColumn_1w05d_6:hover{overflow-y:scroll}")),document.head.appendChild(r)}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
2
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const D=require("@stenajs-webui/core"),j=require("@stenajs-webui/elements"),f=require("date-fns"),he=require("date-fns/locale"),W=require("lodash"),o=require("react"),c=require("react/jsx-runtime"),tt=require("@emotion/styled"),nt=require("@fortawesome/free-solid-svg-icons/faCaretLeft"),rt=require("@fortawesome/free-solid-svg-icons/faCaretRight"),st=require("@fortawesome/free-solid-svg-icons/faAngleDoubleLeft"),ct=require("@fortawesome/free-solid-svg-icons/faAngleDoubleRight"),$=require("@stenajs-webui/forms"),X=require("@stenajs-webui/tooltip"),Ce=require("@stenajs-webui/theme"),it=require("@fortawesome/free-solid-svg-icons/faLongArrowAltRight"),ot=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function at(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const Me=at(o),fe=ot(tt),z={yearAndMonth:"yyyy-MM",fullDate:"yyyy-MM-dd",fullMonthName:"LLLL",fullDateAndTime:"yyyy-MM-dd HH:mm",fullDateAndTimeSystem:"yyyy-MM-ddTHH:MM",weekDayName:"EEEE",weekDayNameShort:"EEE",dateAndMonth:"d MMM",monthAndDate:"MMM do"},Q=(e={},t,n)=>{if(t&&n&&f.isAfter(n,t))return f.eachDayOfInterval({start:t,end:n}).reduce((s,i)=>{const l=f.isSameDay(i,t),a=f.isSameDay(i,n);return P(s,i,l?["selected","selectedStart","range"]:a?["selected","selectedEnd","range"]:["range"])},e);let r=e;return t&&(r=P(r,t,["selected","singleSelected"])),n&&(r=P(r,n,["selected","singleSelected"])),r},Re=(e={},t,n,r)=>Ee(e,t,n,f.startOfMonth(r),f.endOfMonth(r)),Ee=(e={},t,n,r,s)=>t&&n?Q(e,f.max([t,f.subDays(r,1)]),f.min([n,f.addDays(s,1)])):Q(e,t,n),lt=(e,t,n)=>{const r=f.format(t,z.yearAndMonth),s=f.getISOWeek(t),i=f.getDate(t);return{...e,[r]:{...e&&e[r],[s]:{...e&&e[r]&&e[r][s],[i]:{...e&&e[r]&&e[r][s]&&e[r][s][i],...n}}}}},dt=(e,t,n)=>{const r=f.format(t,z.yearAndMonth),s=f.getISOWeek(t),i=f.getDate(t);return{...e,[r]:{...e&&e[r],[s]:{...e&&e[r]&&e[r][s],[i]:{...e&&e[r]&&e[r][s]&&e[r][s][i],...n(e&&e[r]&&e[r][s]&&e[r][s][i])}}}}},P=(e,t,n)=>{const r=t.getMonth()+1,s=`${t.getFullYear()}-${r<10?"0":""}${r}`,i=f.getISOWeek(t),l=f.getDate(t),a=e&&e[s]&&e[s][i]&&e[s][i][l];return{...e,[s]:{...e&&e[s],[i]:{...e&&e[s]&&e[s][i],[l]:ye(a,n)}}}},ye=(e,t)=>{var n;return{...e,highlights:[...(n=e==null?void 0:e.highlights)!=null?n:[],...t]}},ut=(e,t,n)=>{const r=t.days[0].date,s=r.getMonth()+1,i=`${r.getFullYear()}-${s<10?"0":""}${s}`,l=t.weekNumber;let a=e;t.days.forEach(y=>{a=P(a,y.date,n)});const d=a&&a[i]?a[i][l]:void 0,u=d&&d.highlights?[...d.highlights,...n]:n,x={...d,highlights:u};return{...a,[i]:{...e&&e[i],[l]:x}}},Ae=(e,t)=>{var s;if(!t.days.length)return{...e};const n=t.days[0].date,r=(s=W.last(t.days))==null?void 0:s.date;return{...Q(e,n,r)}},ft=(e,t)=>o.useMemo(()=>e?P(t,new Date,["today"]):t,[e,t]);var B=(e=>(e[e.JANUARY=0]="JANUARY",e[e.FEBRUARY=1]="FEBRUARY",e[e.MARCH=2]="MARCH",e[e.APRIL=3]="APRIL",e[e.MAY=4]="MAY",e[e.JUNE=5]="JUNE",e[e.JULY=6]="JULY",e[e.AUGUST=7]="AUGUST",e[e.SEPTEMBER=8]="SEPTEMBER",e[e.OCTOBER=9]="OCTOBER",e[e.NOVEMBER=10]="NOVEMBER",e[e.DECEMBER=11]="DECEMBER",e))(B||{}),Te=(e=>(e[e.SUNDAY=0]="SUNDAY",e[e.MONDAY=1]="MONDAY",e[e.TUESDAY=2]="TUESDAY",e[e.WEDNESDAY=3]="WEDNESDAY",e[e.THURSDAY=4]="THURSDAY",e[e.FRIDAY=5]="FRIDAY",e[e.SATURDAY=6]="SATURDAY",e))(Te||{});const xe=(e,t,n,r)=>{const s=[];for(let i=0;i<n;i++)s.push(be(e,t+i,r));return s},be=(e,t,n)=>{const r=e+Math.floor(t/12),s=t%12,i=new Date(r,s,1);return{monthString:f.format(i,z.yearAndMonth),name:W.startCase(f.format(i,z.fullMonthName,{locale:n})),year:r,monthInYear:s,weeks:Ie(r,s,n)}},Ie=(e,t,n,r=!0)=>{const s=new Date(e,t,1),i=f.startOfWeek(s,{locale:n}),l=[];for(let a=0;a<6;a++){const d=ue(f.addWeeks(i,a),n);if(a>0&&d.startMonth!==t&&!r)return l;l.push(d)}return l},ue=(e,t)=>{const n=f.getMonth(f.addDays(e,7))!==f.getMonth(e);return{weekNumber:f.getWeek(e,{locale:t}),startMonth:f.getMonth(e),startYear:f.getYear(e),endMonth:f.getMonth(f.addDays(e,6)),endYear:f.getYear(f.addDays(e,6)),days:Ne(e,t),isLastWeekOfMonth:n}},Be=(e,t)=>{const n=f.getISODay(e);return{date:e,name:f.format(e,"EEE",t?{locale:t}:void 0),dateString:f.format(f.addHours(e,12),z.fullDate),weekNumber:f.getWeek(e,{locale:t}),year:f.getYear(e),month:f.getMonth(e),dayOfMonth:f.getDate(e),dayOfWeek:n,isFirstDayOfWeek:n===1,isLastDayOfWeek:n===7,isFirstDayOfMonth:f.isSameDay(f.startOfMonth(e),e),isLastDayOfMonth:f.isSameDay(f.endOfMonth(e),e)}},Ne=(e,t)=>f.eachDayOfInterval({start:e,end:f.addDays(e,6)}).map(n=>Be(n,t)),He=(e,t)=>t>11?{year:e+Math.floor(t/12),month:t%12}:t<0?{year:e+Math.floor(t/12),month:12+t%12}:{year:e,month:t},Dt="_calendar_1w0de_1",xt={calendar:Dt},Ye=(e,t,n)=>!!(t&&t.indexOf(n)>=0||e&&e.highlights&&e.highlights.indexOf(n)>=0),F=(e,t,n,r,s)=>{if(n.length!==r.length)throw new Error("Select highlight failed, number of values do not equal number of highlights.");if(n.length===0)return s;for(let i=0;i<n.length;i++)if(typeof n[i]=="boolean"&&n[i]||typeof n[i]=="string"&&Ye(e,t,n[i]))return r[i];return s},Le=({selectedBackground:e,todayBackground:t,rangeBackground:n,borderColor:r="transparent"})=>(s,i,l,a,d)=>{let u={};const x=F(i,s,["selected","range","today",l.month===d.monthInYear],[e,n,t,"#fff"],"transparent");return{...u,backgroundColor:x,borderTopLeftRadius:F(i,s,["selectedStart","singleSelected"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],r),borderBottomLeftRadius:F(i,s,["selectedStart","singleSelected"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],r),borderTopRightRadius:F(i,s,["selectedEnd","singleSelected"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],r),borderBottomRightRadius:F(i,s,["selectedEnd","singleSelected"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],r),boxSizing:"border-box"}},Pe=({selectedColor:e,disabledColor:t,inOtherMonthColor:n,rangeTextColor:r})=>(s,i,l,a,d)=>{const u=l.month!==d.monthInYear;return{color:F(i,s,[u,"selected","range","enabled","disabled"],[n,e,r,void 0,t])}},_={width:"var(--swui-calendar-day-width)",height:"var(--swui-calendar-day-height)",WeekNumber:{backgroundColor:"var(--swui-calendar-week-number-bg-color)",textColor:"var(--swui-calendar-week-number-text-color)",clickableTextColor:"var(--swui-calendar-week-number-clickable-text-color)",show:!0},WeekDay:{textColor:"var(--swui-calendar-week-day-text-color)",clickableTextColor:"var(--swui-calendar-week-day-clickable-text-color)"},CalendarDay:{tdStyle:Le({selectedBackground:"var(--swui-calendar-wrapper-selected-background)",rangeBackground:"var(--swui-calendar-wrapper-range-background)",todayBackground:"var(--swui-calendar-wrapper-today-background)"}),textProps:Pe({selectedColor:"var(--swui-calendar-text-selected-color)",disabledColor:"var(--swui-calendar-text-disabled-color)",inOtherMonthColor:"var(--swui-calendar-text-in-other-month-color)"})},CalendarMonth:{headerTextColor:"var(--swui-calendar-week-day-text-color)"}},gt={..._,width:"37px",height:"37px"},ht=(e,t,n)=>t&&f.isBefore(e,t)?f.isSameDay(e,t):n&&f.isAfter(e,n)?f.isSameDay(e,n):!0,yt=function({dayComponent:t,minDate:n,maxDate:r,dayState:s,day:i,...l}){const a=o.useMemo(()=>ht(i.date,n,r)?s:ye(s,["disabled"]),[i.date,s,r,n]);return c.jsx(t,{day:i,...l,dayState:a})},We=({onClickWeek:e,theme:t,week:n,background:r,backgroundColor:s,prefix:i})=>{const l=c.jsxs(D.Box,{width:t.width,height:t.height,justifyContent:"center",alignItems:"center",children:[r&&c.jsx(D.Box,{position:"absolute",children:r}),c.jsx(D.Box,{position:"absolute",children:c.jsxs(D.Text,{color:e?t.WeekNumber.clickableTextColor:t.WeekNumber.textColor,children:[i,n.weekNumber]})})]});return c.jsx(D.Box,{background:s||t.WeekNumber.backgroundColor,position:"relative",children:e?c.jsx(D.Clickable,{borderRadius:"var(--swui-calendar-day-border-radius)",onClick:a=>e(n,a),disableFocusHighlight:!e,children:l}):l})};function bt({week:e,month:t,dayComponent:n,statePerWeekDay:r,userDataPerWeekDay:s,minDate:i,maxDate:l,onClickWeek:a,onClickDay:d,theme:u,renderWeekNumber:x,extraDayContent:y,defaultHighlights:g}){return c.jsxs("tr",{children:[u.WeekNumber.show&&c.jsx("td",{children:x?x(e,u,a):c.jsx(We,{week:e,onClickWeek:a,theme:u})}),e.days.map(h=>c.jsx(yt,{dayComponent:n,day:h,week:e,month:t,dayState:r&&r[h.dayOfMonth],userData:s&&s[h.dayOfMonth],onClickDay:d,theme:u,extraDayContent:y,defaultHighlights:g,minDate:i,maxDate:l},h.dateString))]},e.weekNumber)}const Oe=({onClickWeekDay:e,day:t,theme:n})=>{const r=c.jsx(D.Box,{width:n.width,height:n.height,justifyContent:"center",alignItems:"center",children:c.jsx(D.Text,{size:"small",color:e?n.WeekDay.clickableTextColor:n.WeekDay.textColor,children:t.name})});return e?c.jsx(D.Clickable,{borderRadius:"var(--swui-calendar-day-border-radius)",onClick:s=>e(t.dayOfWeek,s),disableFocusHighlight:!e,children:r}):r},me=function({day:t,week:n,month:r,dayState:s,userData:i,onClickDay:l,theme:a,extraDayContent:d,defaultHighlights:u}){const x=c.jsx(D.Box,{width:"100%",height:"100%",justifyContent:"center",alignItems:"center",children:c.jsx(D.Text,{...a.CalendarDay.textProps&&a.CalendarDay.textProps(u,s,t,n,r,i),children:t.dayOfMonth})}),y=fe.default.td({...a.CalendarDay.tdStyle&&a.CalendarDay.tdStyle(u,s,t,n,r,i)}),g=fe.default.div({...a.CalendarDay.innerWrapperStyle&&a.CalendarDay.innerWrapperStyle(u,s,t,n,r,i),width:"100%",height:"100%"}),h=fe.default.div({...a.CalendarDay.cellWrapperStyle&&a.CalendarDay.cellWrapperStyle(u,s,t,n,r,i),width:"100%",height:"100%",position:"relative"});return c.jsx(y,{children:c.jsx(g,{children:c.jsx(h,{children:t.month===r.monthInYear&&c.jsxs(c.Fragment,{children:[d&&c.jsx(d,{week:n,month:r,day:t,dayState:s,theme:a,userData:i}),l&&mt(u,s)?c.jsx(D.Clickable,{onClick:m=>l(t,i,m),style:{width:"100%",height:"100%"},borderRadius:"var(--swui-calendar-day-border-radius)",children:x}):c.jsx(c.Fragment,{children:x})]})})})})},mt=(e,t)=>!!F(t,e,["enabled","disabled"],[!0,!1],!0);function jt({month:e,dayComponent:t=me,statePerWeek:n,userDataPerWeek:r,minDate:s,maxDate:i,onClickDay:l,onClickWeek:a,onClickWeekDay:d,onClickMonth:u,onClickYear:x,renderWeekNumber:y,renderWeekDay:g,headerLeftContent:h,headerRightContent:m,theme:p=_,extraDayContent:w,defaultHighlights:S}){const k=p.WeekNumber.show;return c.jsx(c.Fragment,{children:c.jsxs(D.Box,{alignItems:"stretch",children:[c.jsxs(D.Row,{justifyContent:"space-between",alignItems:"center",height:"32px",children:[c.jsx(D.Box,{alignItems:"center",children:h}),c.jsxs(D.Row,{alignItems:"center",children:[c.jsx(D.Row,{width:"104px",justifyContent:"center",children:u?c.jsx(j.FlatButton,{onClick:()=>u(e),label:e.name}):c.jsx(D.Text,{children:e.name})}),c.jsx(D.Space,{}),c.jsx(D.Row,{width:"64px",justifyContent:"center",children:x?c.jsx(j.FlatButton,{onClick:()=>x(e.year),label:String(e.year)}):c.jsx(D.Text,{children:e.year})})]}),c.jsx(D.Box,{alignItems:"center",children:m})]}),c.jsx("table",{children:c.jsxs("tbody",{children:[c.jsxs("tr",{children:[k&&c.jsx("td",{children:c.jsx(D.Box,{width:p.width,height:p.height})}),e.weeks[0].days.map(b=>c.jsx("td",{children:g?g(b.name,p,d):c.jsx(Oe,{day:b,onClickWeekDay:d,theme:p})},b.name))]}),e.weeks.map(b=>c.jsx(bt,{month:e,week:b,dayComponent:t,statePerWeekDay:n&&n[b.weekNumber],userDataPerWeekDay:r&&r[b.weekNumber],onClickDay:l,onClickWeek:a,theme:p,renderWeekNumber:y,extraDayContent:w,defaultHighlights:S,minDate:s,maxDate:i},b.weekNumber))]})})]})})}function kt({monthRows:e,dayComponent:t=me,userDataPerMonth:n,statePerMonth:r,minDate:s,maxDate:i,onClickDay:l,onClickWeekDay:a,onClickWeek:d,onClickMonth:u,onClickYear:x,renderWeekDay:y,renderWeekNumber:g,headerLeftContent:h,headerRightContent:m,extraDayContent:p,defaultHighlights:w,theme:S=_}){const k=o.useMemo(()=>s?f.parse(s,"yyyy-MM-dd",new Date):void 0,[s]),b=o.useMemo(()=>i?f.parse(i,"yyyy-MM-dd",new Date):void 0,[i]);return c.jsx("div",{className:xt.calendar,children:e.map((C,M)=>c.jsx(D.Spacing,{children:c.jsx(D.Row,{children:C.map((R,E)=>c.jsxs(Me.Fragment,{children:[E>0&&c.jsx(D.Space,{}),c.jsx(jt,{month:R,dayComponent:t,userDataPerWeek:n&&n[R.monthString],statePerWeek:r&&r[R.monthString],onClickDay:l,onClickWeekDay:a,onClickWeek:d,onClickMonth:u,onClickYear:x,theme:S,renderWeekNumber:g,renderWeekDay:y,headerLeftContent:h,headerRightContent:m,extraDayContent:p,defaultHighlights:w,minDate:k,maxDate:b})]},R.name))})},M))})}function ae(e){var l;const t=wt(e.year,e.month,e.date),{year:n,month:r}=He(t.year,t.month),s=St(n,r,(l=e.locale)!=null?l:he.enGB,e.numMonths,e.monthsPerRow),i=ft(e.highlightToday,e.statePerMonth);return c.jsx(kt,{year:n,month:r,monthRows:s,...e,statePerMonth:i})}const wt=(e,t,n)=>{if(t&&e)return{month:t,year:e};if(n)return{month:f.getMonth(n),year:f.getYear(n)};const r=new Date;return{month:f.getMonth(r),year:f.getYear(r)}},St=(e,t,n,r,s)=>r==null?[[be(e,t,n)]]:s==null?[xe(e,t,r,n)]:W.chunk(xe(e,t,r,n),s),pt=({value:e,onValueChange:t,month:n,locale:r})=>{const s=o.useMemo(()=>{const i=new Date(2e3,n,1);return W.startCase(f.format(i,"MMM",{locale:r}))},[r,n]);return c.jsx(D.Row,{width:"64px",justifyContent:"center",spacing:.5,indent:.5,children:e===n?c.jsx(j.PrimaryButton,{label:s,onClick:()=>t&&t(n)}):c.jsx(j.FlatButton,{label:s,onClick:()=>t&&t(n)})})},Ct=[[B.JANUARY,B.FEBRUARY,B.MARCH],[B.APRIL,B.MAY,B.JUNE],[B.JULY,B.AUGUST,B.SEPTEMBER],[B.OCTOBER,B.NOVEMBER,B.DECEMBER]],Ue=({value:e,onValueChange:t,locale:n=he.enGB})=>c.jsx(D.Column,{children:Ct.map(r=>c.jsx(D.Row,{children:r.map(s=>c.jsx(pt,{month:s,onValueChange:t,value:e,locale:n},s))},r[0]))}),Mt=e=>[{label:"Past",presets:[{label:"Last 3 days",startDate:e,endDate:f.subDays(e,2)},{label:"Last 7 days",startDate:e,endDate:f.subDays(e,6)},{label:"Last 30 days",startDate:e,endDate:f.subDays(e,29)},{label:"Last 45 days",startDate:e,endDate:f.subDays(e,44)}]},{label:"Future",presets:[{label:"Next 3 days",startDate:e,endDate:f.addDays(e,2)},{label:"Next 7 days",startDate:e,endDate:f.addDays(e,6)},{label:"Next 30 days",startDate:e,endDate:f.addDays(e,29)},{label:"Next 45 days",startDate:e,endDate:f.addDays(e,44)}]}],Fe=({onClickPreset:e})=>{var i;const[t,n]=o.useState(0),r=o.useMemo(()=>Mt(new Date),[]),s=(i=r[t])!=null?i:r[0];return c.jsxs(D.Column,{children:[c.jsxs(D.Row,{justifyContent:"space-between",alignItems:"center",width:"200px",children:[c.jsx(j.FlatButton,{size:"small",leftIcon:j.stenaAngleLeft,disabled:t===0,onClick:()=>n(t-1)}),c.jsx(D.Text,{children:s.label}),c.jsx(j.FlatButton,{size:"small",leftIcon:j.stenaAngleRight,disabled:t===r.length-1,onClick:()=>n(t+1)})]}),c.jsx(D.Space,{}),c.jsx(D.Column,{alignItems:"center",children:s.presets.map(l=>c.jsxs(Me.Fragment,{children:[c.jsx(j.PrimaryButton,{label:l.label,onClick:()=>e(l)}),c.jsx(D.Space,{})]},l.label))})]})},Rt=({value:e,onValueChange:t,year:n})=>{const r=String(n);return c.jsx(D.Row,{width:"64px",justifyContent:"center",spacing:.5,indent:.5,children:e===n?c.jsx(j.PrimaryButton,{label:r,onClick:()=>t==null?void 0:t(n)}):c.jsx(j.FlatButton,{label:r,onClick:()=>t==null?void 0:t(n)})})},$e=({value:e,onValueChange:t,initialLastYear:n})=>{const[r,s]=o.useState(()=>e?e+4:n!=null?n:new Date().getFullYear()+4),i=o.useMemo(()=>{const l=r-11;return W.chunk(W.range(l,r+1),3)},[r]);return o.useEffect(()=>{s(l=>Et(e,l))},[e]),c.jsxs(D.Row,{children:[c.jsx(D.Column,{justifyContent:"center",children:c.jsx(j.FlatButton,{leftIcon:nt.faCaretLeft,onClick:()=>s(r-3)})}),c.jsx(D.Column,{children:i.map(l=>c.jsx(D.Row,{children:l.map(a=>c.jsx(Rt,{year:a,onValueChange:t,value:e},a))},l[0]))}),c.jsx(D.Column,{justifyContent:"center",children:c.jsx(j.FlatButton,{leftIcon:rt.faCaretRight,onClick:()=>s(r+3)})})]})},Et=(e,t)=>{if(e==null)return t;if(e>t){const r=e-t,s=r%3,i=r-s+3;return t+i}const n=t-11;if(e<n){const r=n-e,s=r%3,i=r-s+3;return t-i}return t},At=function({locale:t,dateInFocus:n,setDateInFocus:r,currentPanel:s,setCurrentPanel:i,...l}){const a=o.useCallback(y=>{const g=n?new Date(n):new Date;g.setMonth(y),r&&r(g),i("calendar")},[n,r,i]),d=o.useCallback(y=>{const g=n?new Date(n):new Date;g.setFullYear(y),r&&r(g),i("calendar")},[n,r,i]),u=o.useCallback(()=>{i("year")},[i]),x=o.useCallback(()=>{i("month")},[i]);switch(s){case"calendar":return c.jsx(c.Fragment,{children:c.jsx(ae,{...l,date:n,onClickYear:u,onClickMonth:x,locale:t})});case"month":return c.jsx(Ue,{value:n.getMonth(),onValueChange:a,locale:t});case"year":return c.jsx($e,{value:n.getFullYear(),onValueChange:d});case"presets":return c.jsx(Fe,{onClickPreset:()=>{}});default:return c.jsx(D.Box,{children:c.jsx(j.PrimaryButton,{label:"Show calendar",onClick:()=>i("calendar")})})}},Tt=(e,t,n,r)=>{const s=o.useCallback(()=>{var u;const d=f.addMonths(e,(u=n!=null?n:r)!=null?u:1);t==null||t(d)},[t,e,n,r]),i=o.useCallback(()=>{const d=f.addYears(e,1);t==null||t(d)},[t,e]),l=o.useCallback(()=>{var u;const d=f.subMonths(e,(u=n!=null?n:r)!=null?u:1);t==null||t(d)},[t,e,n,r]),a=o.useCallback(()=>{const d=f.subYears(e,1);t==null||t(d)},[t,e]);return{nextMonth:s,prevMonth:l,nextYear:i,prevYear:a}},It=({children:e,prevMonth:t,nextMonth:n,prevYear:r,nextYear:s})=>c.jsxs("div",{children:[e,c.jsx(D.Indent,{children:c.jsxs(D.Row,{children:[c.jsx(j.FlatButton,{onClick:r,leftIcon:st.faAngleDoubleLeft}),c.jsx(D.Space,{}),c.jsx(j.FlatButton,{onClick:t,leftIcon:j.stenaAngleLeft}),c.jsx(D.Indent,{num:2}),c.jsx(j.FlatButton,{onClick:n,leftIcon:j.stenaAngleRight}),c.jsx(D.Space,{}),c.jsx(j.FlatButton,{onClick:s,leftIcon:ct.faAngleDoubleRight})]})}),c.jsx(D.Space,{})]}),Bt=()=>{};function q({monthSwitcherPlacement:e,theme:t=_,dateInFocus:n,setDateInFocus:r,currentPanel:s,setCurrentPanel:i,onSelectPreset:l=Bt,hideYearPagination:a=!1,...d}){const{nextMonth:u,prevMonth:x,nextYear:y,prevYear:g}=Tt(n,r,d.monthsPerRow,d.numMonths);switch(Nt(e,d.numMonths)){case"below":return c.jsx(It,{theme:t,nextMonth:u,prevMonth:x,nextYear:y,prevYear:g,children:c.jsx(ae,{...d,theme:t,date:n})});case"header":return c.jsx(D.Column,{children:c.jsx(At,{...d,theme:t,dateInFocus:n,setDateInFocus:r,currentPanel:s,setCurrentPanel:i,onSelectPreset:l,headerLeftContent:c.jsxs(D.Row,{alignItems:"center",children:[!a&&c.jsx(j.FlatButton,{size:"small",onClick:g,leftIcon:j.stenaAngleLeftDouble}),c.jsx(D.Space,{}),c.jsx(j.FlatButton,{size:"small",onClick:x,leftIcon:j.stenaAngleLeft})]}),headerRightContent:c.jsxs(D.Row,{alignItems:"center",children:[c.jsx(j.FlatButton,{size:"small",onClick:u,leftIcon:j.stenaAngleRight}),c.jsx(D.Space,{}),!a&&c.jsx(j.FlatButton,{size:"small",onClick:y,leftIcon:j.stenaAngleRightDouble})]})})});default:return c.jsx(ae,{...d,theme:t,date:n})}}const Nt=(e,t)=>e||(t||1)>1?"below":"header",ze=e=>({startDate:e.startDate?f.format(e.startDate,"yyyy-MM-dd"):void 0,endDate:e.endDate?f.format(e.endDate,"yyyy-MM-dd"):void 0}),_e=({startDate:e,endDate:t})=>{const n=new Date;return{startDate:e?f.parse(e,"yyyy-MM-dd",n):void 0,endDate:t?f.parse(t,"yyyy-MM-dd",n):void 0}},je=({startDate:e,endDate:t})=>Boolean(e&&t&&!f.isSameDay(e,t)&&f.isAfter(e,t)),ke=e=>je(e)?{startDate:e.endDate,endDate:e.startDate}:e,Ht=e=>e.startDate&&e.endDate?ze(ke(_e(e))):e,qe=(e,t,n,r)=>o.useCallback(s=>{const i={startDate:n==="startDate"?s.date:e==null?void 0:e.startDate,endDate:n==="endDate"?s.date:e==null?void 0:e.endDate};je(i)||r(n==="startDate"?"endDate":"startDate"),t==null||t(ke(i))},[n,t,r,e==null?void 0:e.endDate,e==null?void 0:e.startDate]),te=e=>{const[t,n]=o.useState("calendar"),r=o.useCallback(s=>{n(s),e==null||e(s)},[e]);return{currentPanel:t,setCurrentPanel:r}},Je=({focusedInput:e,value:t,onValueChange:n,setFocusedInput:r,statePerMonth:s,onChangePanel:i,initialDateInFocus:l})=>{const{currentPanel:a,setCurrentPanel:d}=te(i),[u,x]=o.useState(()=>l!=null?l:new Date),y=qe(t,n,e,r),g=o.useMemo(()=>Q(s,t==null?void 0:t.startDate,t==null?void 0:t.endDate),[s,t==null?void 0:t.endDate,t==null?void 0:t.startDate]);return{onClickDay:y,statePerMonth:g,currentPanel:a,setCurrentPanel:d,setDateInFocus:x,dateInFocus:u}};function Yt(e){const t=Je(e);return c.jsx(q,{...e,...t})}const Lt=()=>{const[e,t]=o.useState(),[n,r]=o.useState(),[s,i]=o.useState("startDate");return{startDate:e,setStartDate:t,endDate:n,setEndDate:r,focusedInput:s,setFocusedInput:i}},Ke=({onChange:e,value:t,statePerMonth:n,onChangePanel:r})=>{const{currentPanel:s,setCurrentPanel:i}=te(r),[l,a]=o.useState(()=>t!=null?t:new Date),d=o.useCallback(x=>{e&&e(x.date)},[e]),u=o.useMemo(()=>t?P(n,t,["selected","singleSelected"]):n,[n,t]);return{onClickDay:d,statePerMonth:u,date:t,currentPanel:s,setCurrentPanel:i,dateInFocus:l,setDateInFocus:a}};function we(e){const t=Ke(e);return c.jsx(q,{...e,...t})}const Ge=({onChange:e,value:t,statePerMonth:n,onChangePanel:r})=>{const{currentPanel:s,setCurrentPanel:i}=te(r),[l,a]=o.useState(()=>new Date),d=o.useCallback(x=>{if(!e)return;const y=t&&t.find(g=>f.isSameDay(g,x.date));e(t&&y?t.filter(g=>!f.isSameDay(g,x.date)):[...t||[],x.date])},[e,t]),u=o.useMemo(()=>t?t.reduce((x,y)=>P(x,y,["selected"]),n):n,[n,t]);return{onClickDay:d,statePerMonth:u,currentPanel:s,setCurrentPanel:i,dateInFocus:l,setDateInFocus:a}};function Pt(e){const t=Ge(e);return c.jsx(q,{...e,...t})}const Qe=({onChange:e,value:t,statePerMonth:n,onChangePanel:r,locale:s=he.enGB})=>{const[i,l]=o.useState(()=>{const h=De(t,s);return h?h.days[0].date:new Date}),{currentPanel:a,setCurrentPanel:d}=te(r),u=o.useCallback(h=>{e&&e(Se(ue(h.date,s)))},[s,e]),x=o.useCallback(h=>{e&&e(Se(h))},[e]),y=o.useMemo(()=>{const h=De(t,s);return h?Ae(n,h):n},[t,s,n]),g=o.useMemo(()=>{const h=De(t,s);return h?h.days[0].date:new Date},[s,t]);return{statePerMonth:y,date:g,dateInFocus:i,setDateInFocus:l,onClickDay:u,onClickWeek:x,currentPanel:a,setCurrentPanel:d}},Se=e=>{if(!!e)return`${e.endYear}-${e.weekNumber}`},De=(e,t)=>{if(!e)return;const n=e.split("-"),r=parseInt(n[1],10),s=parseInt(n[0],10),i=new Date;i.setFullYear(s);const l=f.startOfWeek(f.setWeek(i,r),{locale:t});return ue(l,t)};function Wt(e){const t=Qe(e);return c.jsx(q,{...e,...t})}const Ot=(e,t)=>e.filter(n=>!f.isSameDay(n,t)),Ut=(e,t)=>!!e.find(n=>f.isSameDay(n,t)),Xe=({value:e,onValueChange:t,statePerMonth:n,onChangePanel:r})=>{const[s,i]=o.useState(),[l,a]=o.useState("startDate"),{currentPanel:d,setCurrentPanel:u}=te(r),[x,y]=o.useState(()=>{var w;return(w=l&&(e==null?void 0:e[l]))!=null?w:new Date}),g=o.useCallback(w=>{i(w);const{startDate:S,endDate:k}=w;if(t)if(S&&k){const b=f.eachDayOfInterval({start:S,end:k});t(b)}else S?t([S]):k&&t([k])},[t]),h=qe(s,g,l,a),m=o.useCallback((w,S,k)=>{t&&(k.ctrlKey||k.metaKey?e?Ut(e,w.date)?t(Ot(e,w.date)):t([...e,w.date]):t([w.date]):h(w,S,k))},[t,h,e]),p=o.useMemo(()=>Ft(n,e),[n,e]);return{onClickDay:m,statePerMonth:p,currentPanel:d,setCurrentPanel:u,dateInFocus:x,setDateInFocus:y}},Ft=(e,t)=>t?t.reduce((n,r)=>P(n,r,["selected"]),e):e;function $t(e){const t=Xe(e);return c.jsx(q,{...e,...t})}const ne="bottom",Ze=()=>{const[e,t]=X.useTippyInstance();return{onChangePanel:o.useCallback(()=>{var r,s;(s=(r=t.current)==null?void 0:r.popperInstance)==null||s.update()},[t]),tippyRef:e}},zt=(e,t,n)=>{const[r,s]=o.useState(n||!1),i=o.useCallback(()=>(s(!0),!0),[s]),l=o.useCallback(()=>{s(!1),t&&t()},[s,t]),a=o.useCallback(d=>{e&&e(d),setTimeout(l,150)},[e,l]);return{showCalendar:i,hideCalendar:l,showingCalendar:r,onSelectDate:a}},re="2999-12-31",_t=({displayFormat:e=z.fullDate,placeholder:t="Enter date",value:n,zIndex:r=100,calendarTheme:s=_,calendarProps:i,openOnMount:l,onClose:a,onChange:d,portalTarget:u,variant:x,width:y,minDate:g,maxDate:h=re,disabled:m})=>{const{hideCalendar:p,showingCalendar:w,onSelectDate:S,showCalendar:k}=zt(d,a,l),{tippyRef:b,onChangePanel:C}=Ze();return c.jsx(D.Box,{width:y,children:c.jsx(X.Popover,{arrow:!1,lazy:!0,visible:w,onClickOutside:p,placement:ne,zIndex:r,appendTo:u!=null?u:"parent",tippyRef:b,disabled:m,content:c.jsx(we,{...i,onChange:S,value:n,theme:s,onChangePanel:C,minDate:g,maxDate:h}),children:c.jsx($.TextInput,{type:"date",contentRight:c.jsx(D.Row,{alignItems:"center",children:c.jsx(j.FlatButton,{size:"small",disabled:m,leftIcon:j.stenaCalendar,onClick:k})}),onFocus:k,onClickRight:k,value:n?f.format(n,e):"",placeholder:t,size:9,disabled:m,autoFocus:l,variant:x,min:g,max:h})})})},qt=(e,t)=>{const n=o.useRef(null),r=o.useRef(null),[s,i]=o.useState(!1),[l,a]=o.useState(void 0),d=o.useCallback(()=>(a("startDate"),i(!0),!0),[a,i]),u=o.useCallback(()=>(a("endDate"),i(!0),!0),[a,i]),x=o.useCallback(()=>{i(!1)},[i]),y=o.useCallback(h=>{l==="startDate"?(t==null||t({startDate:h.date,endDate:e==null?void 0:e.endDate}),e!=null&&e.endDate?setTimeout(x,150):(a("endDate"),r.current&&r.current.focus())):l==="endDate"&&(t==null||t({startDate:e==null?void 0:e.startDate,endDate:h.date}),e!=null&&e.startDate?setTimeout(x,150):(a("startDate"),n.current&&n.current.focus()))},[l,t,a,x,e]),g=o.useMemo(()=>(e==null?void 0:e.startDate)&&(e==null?void 0:e.endDate)&&f.isAfter(e.startDate,e.endDate),[e==null?void 0:e.startDate,e==null?void 0:e.endDate]);return{showingCalendar:s,hideCalendar:x,showCalendarEndDate:u,showCalendarStartDate:d,focusedInput:l,setFocusedInput:a,startDateInputRef:n,endDateInputRef:r,onClickDay:y,startDateIsAfterEnd:g}};function Jt({displayFormat:e=z.fullDate,placeholderStartDate:t="Start date",placeholderEndDate:n="End date",portalTarget:r,value:s,onValueChange:i,zIndex:l=100,width:a,calendarTheme:d=_,calendarProps:u,minDate:x,maxDate:y=re,disabled:g}){const[h,m]=o.useState("calendar"),{hideCalendar:p,showCalendarEndDate:w,showCalendarStartDate:S,showingCalendar:k,focusedInput:b,startDateInputRef:C,endDateInputRef:M,onClickDay:R,startDateIsAfterEnd:E}=qt(s,i),[N,T]=o.useState(()=>{var L;return(L=b&&(s==null?void 0:s[b]))!=null?L:new Date}),Y=o.useMemo(()=>Q(void 0,s==null?void 0:s.startDate,s==null?void 0:s.endDate),[s]);return c.jsx(X.Popover,{arrow:!1,lazy:!0,disabled:g,visible:k,zIndex:l,placement:ne,appendTo:r!=null?r:"parent",onClickOutside:p,content:c.jsx(q,{...u,dateInFocus:N,setDateInFocus:T,statePerMonth:Y,theme:d,onClickDay:R,currentPanel:h,setCurrentPanel:m,minDate:x,maxDate:y}),children:c.jsxs(D.Row,{alignItems:"center",children:[c.jsx($.TextInput,{iconLeft:j.stenaCalendar,onFocus:S,value:s!=null&&s.startDate?f.format(s.startDate,e):"",placeholder:t,width:a,disabled:g,inputRef:C,size:9,variant:E?"error":void 0}),c.jsx(D.Space,{}),c.jsx(j.Icon,{icon:it.faLongArrowAltRight,color:Ce.cssColor("--lhds-color-ui-500"),size:14}),c.jsx(D.Space,{}),c.jsx($.TextInput,{iconLeft:j.stenaCalendar,onFocus:w,value:s!=null&&s.endDate?f.format(s.endDate,e):"",placeholder:n,width:a,disabled:g,inputRef:M,size:9,variant:E?"error":void 0})]})})}const Kt=({calendarProps:e,closeOnCalendarSelectDate:t=!0,dateFormat:n=z.fullDate,disableCalender:r=!1,onValueChange:s,placeholder:i="yyyy-mm-dd",portalTarget:l,value:a,width:d="130px",zIndex:u=100,calendarTheme:x=_,hideCalenderIcon:y=!1,minDate:g,maxDate:h=re,variant:m,...p})=>{const[w,S]=o.useState(!1),{tippyRef:k,onChangePanel:b}=Ze(),C=o.useCallback(()=>{S(!w)},[S,w]),M=o.useCallback(()=>{S(!1)},[S]),R=o.useCallback(H=>{s&&s(H)},[s]),E=o.useCallback(H=>{H&&(R(f.format(H,n)),t&&setTimeout(()=>S(!w),200))},[R,n,t,S,w]),N=!!a&&!/^[-/\\.0-9]+$/.test(a),T=!!a&&f.isValid(f.parse(a,n,new Date)),L=!!a&&a.length>=n.length&&!T||N;return c.jsx(D.Box,{width:d,children:c.jsx(X.Popover,{arrow:!1,lazy:!0,visible:w,zIndex:u,appendTo:l!=null?l:"parent",placement:ne,onClickOutside:M,tippyRef:k,content:c.jsx(we,{...e,onChange:E,onChangePanel:b,value:a&&T?f.parse(a,n,new Date):void 0,minDate:g,maxDate:h,theme:x}),children:c.jsx($.TextInput,{...p,variant:L?"error":m,disableContentPaddingRight:!0,contentRight:y?void 0:c.jsx(D.Row,{alignItems:"center",indent:.5,children:c.jsx(j.FlatButton,{size:"small",disabled:p.disabled||r,leftIcon:j.stenaCalendar,onClick:C})}),onValueChange:R,placeholder:i,value:a||"",min:g,max:h,size:10})})})},le=e=>{if(e==="")return"00";const t=parseInt(e,10);if(isNaN(t))throw new Error("Hours is not a number");if(t<0||t>23)throw new Error("Hours is an invalid number");switch(e.length){case 1:return`0${t}`;case 2:return e;default:throw new Error("Invalid hour string")}},de=e=>{if(e==="")return"00";const t=parseInt(e,10);if(isNaN(t))throw new Error("Minutes is not a number");if(t<0||t>59)throw new Error("Minutes is an invalid number");switch(e.length){case 1:return`0${t}`;case 2:return e;default:throw new Error("Invalid minute string")}},Gt=e=>{if(!ge(e))return{time:e,success:!1};const t=e&&e.split(/-|:|,|;|[/]|[.]| /);if(t&&t.length===2)try{const n=le(t[0]),r=de(t[1]);return{time:`${n}:${r}`,success:!0}}catch{return{time:e,success:!1}}else if(t&&t.length===1){let n=0,r=0;switch(e.length){case 1:return{time:`0${e}:00`,success:!0};case 2:const s=parseInt(t[0],10);return s>=0&&s<24?{time:`${e}:00`,success:!0}:s>=24&&s<59?{time:`00:${e}`,success:!0}:{time:e,success:!1};case 3:return r=parseInt(e.substr(1,2),10),r>=0&&r<=59?{time:`0${e.substr(0,1)}:${e.substr(1,2)}`,success:!0}:{time:e,success:!1};case 4:return n=parseInt(e.substr(0,2),10),r=parseInt(e.substr(2,2),10),n<0||n>23?{time:e,success:!1}:r<0||r>59?{time:e,success:!1}:{time:`${e.substr(0,2)}:${e.substr(2,2)}`,success:!0};default:return{time:e,success:!1}}}return{time:e,success:!1}},ge=e=>e?/^[-:.,/; 0-9]+$/.test(e):!0,Qt=({onValueChange:e,showPlaceholder:t=!0,useIcon:n=!0,value:r,width:s="85px",variant:i,...l})=>{const[a,d]=o.useState(()=>ge(r)),u="hh:mm",x=o.useCallback(()=>{if(r){const g=Gt(r);d(g.success),g.success&&e&&e(g.time)}},[r,e,d]),y=o.useCallback(g=>{const h=g.target.value,m=ge(h);d(m&&h.length<=u.length),e&&e(h)},[e,d]);return c.jsx($.TextInput,{...l,type:"time",variant:a?i:"error",iconLeft:n?j.stenaClock:void 0,value:r,placeholder:t?u:void 0,onChange:y,onBlur:x,width:s})},ve=({autoFocusLeft:e,autoFocusRight:t,onEsc:n,onEnter:r,onValueChangeLeft:s,onValueChangeRight:i,separatorIcon:l,placeholderLeft:a,placeholderRight:d,typeLeft:u,typeRight:x,onChangeLeft:y,onChangeRight:g,valueLeft:h,valueRight:m,minLeft:p,maxLeft:w,minRight:S,maxRight:k,onClickLeft:b,onClickRight:C,onClickCalendar:M,onClickArrowDown:R,onBlurLeft:E,onBlurRight:N,onFocusLeft:T,onFocusRight:Y,inputRefLeft:L,inputRefRight:H,variant:K,variantLeft:Z,variantRight:G,onBlur:O,showPresets:v,widthLeft:V,widthRight:ee,disabled:J})=>{const I=o.useRef(0),A=o.useMemo(()=>W.debounce(U=>{U===0&&(O==null||O())},10),[O]),se=o.useCallback(U=>{I.current++,A(I.current),T&&T(U)},[T,I,A]),ce=o.useCallback(U=>{I.current++,A(I.current),Y&&Y(U)},[Y,I,A]),ie=o.useCallback(U=>{I.current--,A(I.current),E&&E(U)},[E,I,A]),et=o.useCallback(U=>{I.current--,A(I.current),N&&N(U)},[N,I,A]);return c.jsx(D.Box,{children:c.jsxs($.TextInputBox,{disableContentPaddingRight:!0,disabled:J,variant:K,contentRight:c.jsxs(D.Row,{alignItems:"center",children:[c.jsx(D.Indent,{num:.5,children:c.jsx(j.FlatButton,{leftIcon:j.stenaCalendar,onClick:M,disabled:J,size:"small"})}),v?c.jsxs(c.Fragment,{children:[c.jsx(D.Row,{height:"22px",children:c.jsx(D.SeparatorLine,{vertical:!0})}),c.jsx(D.Indent,{num:.5,children:c.jsx(j.FlatButton,{leftIcon:j.stenaAngleDown,onClick:R,disabled:J,size:"small"})})]}):null]}),children:[c.jsx(D.Box,{width:V,children:c.jsx($.TextInput,{onEsc:n,onEnter:r,onClick:b,disabled:J,hideBorder:!0,placeholder:a,value:h,onValueChange:s,onChange:y,onBlur:ie,onFocus:se,inputRef:L,variant:Z,type:u,autoFocus:e,min:p,max:w})}),c.jsx(D.Row,{indent:.5,alignItems:"center",justifyContent:"center",children:c.jsx(j.Icon,{icon:l,size:12,color:Ce.cssColor("--lhds-color-ui-500")})}),c.jsx(D.Box,{width:ee,children:c.jsx($.TextInput,{onEsc:n,onEnter:r,onClick:C,disabled:J,hideBorder:!0,placeholder:d,value:m,onValueChange:i,onChange:g,onBlur:et,onFocus:ce,inputRef:H,variant:G,type:x,autoFocus:t,min:S,max:k})})]})})},Xt=e=>{if(e==null)throw new Error("Time is not set.");if(e==="")throw new Error("Time is empty.");const t=e.split(":");if(t.length!==2)throw new Error("Invalid time.");if(t[1].length!==2)throw new Error("Invalid time.");if(t[0].length<1||t[0].length>2)throw new Error("Invalid time.");const n=parseInt(t[0],10),r=parseInt(t[1],10);if(isNaN(n))throw new Error("Invalid time.");if(isNaN(r))throw new Error("Invalid time.");if(n<0||n>23)throw new Error("Invalid time.");if(r<0||r>59)throw new Error("Invalid time.");return n*100+r},Zt=e=>{try{return Xt(e),!0}catch{return!1}},oe=e=>{if(e&&Zt(e)){const t=e.split(":");return{hour:D.parseIntElseUndefined(t[0]),minute:D.parseIntElseUndefined(t[1])}}return{hour:void 0,minute:void 0}},vt=e=>`${le(String(e.getHours()))}:${de(String(e.getMinutes()))}`,Vt="_timePicker_1w05d_1",en="_timePickerColumn_1w05d_6",Ve={timePicker:Vt,timePickerColumn:en},tn=({onClick:e,item:t,selected:n,columnRef:r,canScrollRef:s})=>{const i=o.useRef(null);return o.useEffect(function(){if(n&&r.current&&i.current&&s.current){const a=i.current.scrollHeight*Math.max(t-2,0);r.current.scrollTo(0,a),s.current=!1}},[r,t,n,s]),c.jsx(D.Row,{width:"64px",justifyContent:"center",spacing:.5,indent:.5,ref:i,children:n?c.jsx(j.PrimaryButton,{label:W.padStart(String(t),2,"0"),onClick:()=>e&&e(t)}):c.jsx(j.FlatButton,{label:String(t).padStart(2,"0"),onClick:()=>e&&e(t)})})},pe=({onClick:e,items:t,selectedItem:n,canScrollRef:r})=>{const s=o.useRef(null);return c.jsx(D.Column,{className:Ve.timePickerColumn,ref:s,children:t.map(i=>c.jsx(tn,{item:i,onClick:e,selected:i===n,columnRef:s,canScrollRef:r},i))})},nn=W.range(0,24),rn=W.range(0,60),sn=({value:e,onValueChange:t})=>{const n=o.useRef(!0),[r,s]=o.useState(void 0),[i,l]=o.useState(void 0);o.useEffect(()=>{if(e){const{minute:u,hour:x}=oe(e);s(x),l(u)}},[e]);const a=o.useCallback(u=>{s(u),t==null||t(`${le(String(u!=null?u:0))}:${de(String(i!=null?i:0))}`)},[i,t]),d=o.useCallback(u=>{l(u),t==null||t(`${le(String(r!=null?r:0))}:${de(String(u!=null?u:0))}`)},[r,t]);return c.jsxs(D.Row,{className:Ve.timePicker,children:[c.jsx(pe,{items:nn,onClick:a,selectedItem:r,canScrollRef:n}),c.jsx(D.Indent,{}),c.jsx(pe,{items:rn,onClick:d,selectedItem:i,canScrollRef:n})]})},cn=(e,t,n)=>{o.useEffect(function(){e&&t(e)},[e,t]),o.useEffect(function(){n.current&&(e?n.current.valueAsDate=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())):n.current.valueAsDate=null)},[e,n])},on=(e,t,{setDateInFocus:n,showCalendarInternal:r,hideCalendarInternal:s,setFirstFocusedInput:i,setCurrentPanel:l,localTime:a,setLocalTime:d,localDate:u,setLocalDate:x},y)=>{const g=o.useCallback(k=>{if(!k)return;const b=new Date(k);if(e)b.setHours(e.getHours()),b.setMinutes(e.getMinutes()),t==null||t(b),x(void 0);else if(a){const{minute:C,hour:M}=oe(a);b.setHours(M!=null?M:0),b.setMinutes(C!=null?C:0),t==null||t(b),x(void 0)}else x(b);n(b),y.current&&(y.current.valueAsDate=new Date(Date.UTC(b.getFullYear(),b.getMonth(),b.getDate())))},[e,y,a,t,n,x]),h=o.useCallback(k=>{if(!!k)if(e){const b=oe(k),C=new Date(e);C.setHours(b.hour||0),C.setMinutes(b.minute||0),t==null||t(C),d(void 0)}else if(u){const b=oe(k),C=new Date(u);C.setHours(b.hour||0),C.setMinutes(b.minute||0),t==null||t(C),d(void 0)}else d(k)},[t,e,u,d]),m=o.useCallback(k=>{k.target.value[0]!=="0"&&g(k.target.valueAsDate)},[g]),p=o.useCallback(k=>h(k.target.value),[h]),w=o.useCallback(()=>{n(e||new Date),l("calendar"),r()},[e,l,r,n]),S=o.useCallback(()=>{i(void 0),s()},[i,s]);return{inputLeftChangeHandler:m,inputRightChangeHandler:p,hideCalendar:S,showCalendar:w,onChangeTime:h,onChangeDate:g}},an=e=>{const[t,n]=o.useState(void 0),[r,s]=o.useState(void 0),[i,l,a]=D.useBoolean(!1),[d,u,x]=D.useBoolean(!1),[y,g]=o.useState(void 0),[h,m]=o.useState(()=>e!=null?e:new Date),[p,w]=o.useState("calendar");return{isCalendarVisible:i,showCalendarInternal:l,hideCalendarInternal:a,firstFocusedInput:y,setFirstFocusedInput:g,dateInFocus:h,setDateInFocus:m,currentPanel:p,setCurrentPanel:w,isTimePickerVisible:d,showTimePicker:u,hideTimePicker:x,localDate:t,setLocalDate:n,localTime:r,setLocalTime:s}},ln=(e,t,n,r,{isCalendarVisible:s,setCurrentPanel:i,showTimePicker:l,hideTimePicker:a})=>{const d=o.useCallback(()=>{s||n(),i("calendar"),a()},[a,s,i,n]),u=o.useCallback(()=>{r(),l()},[r,l]),x=o.useCallback(m=>{e(m.date),r(),l()},[e,r,l]),y=o.useCallback(()=>{i("presets"),n()},[i,n]),g=o.useCallback(()=>{var m;s?r():((m=t.current)==null||m.focus(),i("calendar"),n())},[s,r,t,i,n]),h=o.useCallback(m=>{m.key==="Escape"&&r()},[r]);return{onFocusLeft:d,onFocusRight:u,onClickDay:x,onClickArrowButton:y,onClickCalendarButton:g,onKeyDownHandler:h}},dn=({value:e,onValueChange:t,onEnter:n,onEsc:r,onBlur:s,autoFocus:i,minDate:l,widthLeft:a=128,widthRight:d=80,maxDate:u=re,variant:x,disabled:y})=>{const g=o.useRef(null),h=o.useRef(null),m=an(e),{setCurrentPanel:p,currentPanel:w,isCalendarVisible:S,dateInFocus:k,setDateInFocus:b,isTimePickerVisible:C,hideTimePicker:M,localTime:R,localDate:E}=m,{showCalendar:N,hideCalendar:T,inputLeftChangeHandler:Y,inputRightChangeHandler:L,onChangeTime:H,onChangeDate:K}=on(e,t,m,g),{onKeyDownHandler:Z,onFocusRight:G,onFocusLeft:O,onClickDay:v,onClickCalendarButton:V,onClickArrowButton:ee}=ln(K,g,N,T,m);cn(e,b,g);const J=o.useMemo(()=>{const ie=e||E;return ie?P(void 0,ie,["singleSelected","selected"]):{}},[E,e]),I=o.useCallback(()=>{T(),M()},[T,M]),A=o.useMemo(()=>e?vt(e):R,[e,R]),se=D.useDelayedFalse(S,300),ce=D.useDelayedFalse(C,300);return c.jsx(D.Box,{onKeyDown:Z,children:c.jsx(X.Popover,{arrow:!1,lazy:!0,disabled:y,placement:ne,visible:S||C,onClickOutside:I,content:(se||ce)&&c.jsx(D.Column,{children:se?c.jsx(q,{statePerMonth:J,onClickDay:v,dateInFocus:k,setDateInFocus:b,currentPanel:w,setCurrentPanel:p,minDate:l,maxDate:u}):ce?c.jsxs(D.Column,{children:[c.jsx(D.Column,{overflow:"hidden",height:"250px",children:c.jsx(sn,{value:A!=null?A:"",onValueChange:H})}),c.jsx(D.Space,{}),c.jsx(D.Row,{justifyContent:"flex-end",children:c.jsx(j.PrimaryButton,{label:"Done",onClick:M})})]}):null}),children:c.jsx(ve,{autoFocusLeft:i,onEsc:r,onEnter:n,onBlur:s,disabled:y,separatorIcon:j.stenaClock,typeLeft:"date",typeRight:"time",placeholderLeft:"yyyy-mm-dd",placeholderRight:"hh:mm",onChangeLeft:Y,onChangeRight:L,onClickArrowDown:ee,onClickCalendar:V,onFocusLeft:O,onFocusRight:G,onClickLeft:O,onClickRight:G,inputRefLeft:g,inputRefRight:h,valueRight:A!=null?A:"",widthLeft:a,widthRight:d,minLeft:l,maxLeft:u,variant:x})})})},un=(e,t,n,r,s)=>{o.useEffect(function(){e&&n(e)},[e,n]),o.useEffect(function(){t&&n(t)},[t,n]),o.useEffect(function(){r.current&&(e?r.current.valueAsDate=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())):r.current.valueAsDate=null)},[e,r]),o.useEffect(function(){s.current&&(t?s.current.valueAsDate=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())):s.current.valueAsDate=null)},[t,s])},fn=(e,t,n,{setDateInFocus:r,showCalendarInternal:s,hideCalendarInternal:i,setFirstFocusedInput:l,setCurrentPanel:a})=>{const d=o.useCallback(g=>{var h;g.target.value[0]!=="0"&&(n==null||n({startDate:(h=g.target.valueAsDate)!=null?h:void 0,endDate:t}))},[n,t]),u=o.useCallback(g=>{var h;g.target.value[0]!=="0"&&(n==null||n({startDate:e,endDate:(h=g.target.valueAsDate)!=null?h:void 0}))},[n,e]),x=o.useCallback(()=>{r(e||t||new Date),a("calendar"),s()},[e,t,a,s,r]),y=o.useCallback(()=>{l(void 0),i()},[l,i]);return{inputLeftChangeHandler:d,inputRightChangeHandler:u,hideCalendar:y,setDateInFocus:r,setCurrentPanel:a,showCalendar:x}},Dn=(e,t)=>{const[n,r,s]=D.useBoolean(!1),[i,l]=o.useState(void 0),[a,d]=o.useState("startDate"),[u,x]=o.useState(()=>{const h=a==="startDate"?e:a==="endDate"?t:void 0;return h!=null?h:new Date}),[y,g]=o.useState("calendar");return{isCalendarVisible:n,showCalendarInternal:r,hideCalendarInternal:s,firstFocusedInput:i,setFirstFocusedInput:l,focusedInput:a,setFocusedInput:d,dateInFocus:u,setDateInFocus:x,currentPanel:y,setCurrentPanel:g}},xn=(e,t,n,r,s,i,l,{firstFocusedInput:a,setFirstFocusedInput:d,isCalendarVisible:u,setFocusedInput:x,focusedInput:y,setCurrentPanel:g})=>{const h=o.useCallback(()=>{a==null&&d("startDate"),x("startDate"),u||i()},[u,x,i,d,a]),m=o.useCallback(()=>{a==null&&d("endDate"),x("endDate"),u||i()},[u,x,i,d,a]),p=o.useCallback(b=>{var C,M,R,E;y==="startDate"?t!=null&&f.isAfter(b.date,t)?(n==null||n({startDate:b.date,endDate:void 0}),x("endDate"),(C=s.current)==null||C.focus()):(n==null||n({startDate:b.date,endDate:t}),a==="startDate"?(x("endDate"),(M=s.current)==null||M.focus()):setTimeout(l,50)):y==="endDate"&&(e?f.isAfter(e,b.date)?(n==null||n({startDate:b.date,endDate:void 0}),x("endDate"),(E=s.current)==null||E.focus()):(n==null||n({startDate:e,endDate:b.date}),setTimeout(l,50)):(n==null||n({startDate:e,endDate:b.date}),x("startDate"),(R=r.current)==null||R.focus()))},[y,n,t,a,x,s,l,e,r]),w=o.useCallback(()=>{g("presets"),i()},[g,i]),S=o.useCallback(()=>{var b;u?l():(x("startDate"),d("startDate"),(b=r.current)==null||b.focus(),g("calendar"),i())},[u,l,x,d,r,g,i]),k=o.useCallback(b=>{b.key==="Escape"&&l()},[l]);return{onFocusLeft:h,onFocusRight:m,onClickDay:p,onClickArrowButton:w,onClickCalendarButton:S,onKeyDownHandler:k}};function gn({value:e,onValueChange:t,autoFocus:n,onBlur:r,onEnter:s,onEsc:i,minDate:l,maxDate:a=re,calendarProps:d,widthLeft:u=128,widthRight:x=128,variant:y,disabled:g}){const{startDate:h,endDate:m}=e||{},p=o.useRef(null),w=o.useRef(null),S=Dn(h,m),{dateInFocus:k,setDateInFocus:b,isCalendarVisible:C,currentPanel:M,setCurrentPanel:R}=S,{showCalendar:E,hideCalendar:N,inputLeftChangeHandler:T,inputRightChangeHandler:Y}=fn(h,m,t,S),{onKeyDownHandler:L,onFocusRight:H,onFocusLeft:K,onClickDay:Z,onClickCalendarButton:G,onClickArrowButton:O}=xn(h,m,t,p,w,E,N,S);un(h,m,b,p,w);const v=o.useMemo(()=>h&&m&&f.isAfter(h,m),[h,m]),V=o.useMemo(()=>Re(d==null?void 0:d.statePerMonth,h,m,k),[d==null?void 0:d.statePerMonth,h,m,k]),ee=D.useDelayedFalse(C,300);return c.jsx(D.Box,{onKeyDown:L,children:c.jsx(X.Popover,{arrow:!1,lazy:!0,disabled:g,placement:ne,onClickOutside:N,visible:C,content:ee&&c.jsx(q,{onClickDay:Z,dateInFocus:k,setDateInFocus:b,currentPanel:M,setCurrentPanel:R,minDate:l,maxDate:a,...d,statePerMonth:V}),children:c.jsx(ve,{autoFocusLeft:n,onEsc:i,onEnter:s,onBlur:r,disabled:g,separatorIcon:j.stenaArrowRight,typeLeft:"date",typeRight:"date",placeholderLeft:"Start date",placeholderRight:"End date",onChangeLeft:T,onChangeRight:Y,onClickArrowDown:O,onClickCalendar:G,onFocusLeft:K,onFocusRight:H,onClickLeft:K,onClickRight:H,inputRefLeft:p,inputRefRight:w,variant:v?"error":y,widthLeft:u,widthRight:x,minLeft:l,maxLeft:a,minRight:l,maxRight:a})})})}exports.Calendar=ae;exports.CalendarDay=me;exports.DateInput=_t;exports.DateRangeCalendar=Yt;exports.DateRangeDualTextInput=gn;exports.DateRangeExclusionCalendar=$t;exports.DateRangeInput=Jt;exports.DateTextInput=Kt;exports.DateTimeInput=dn;exports.Month=B;exports.MonthPicker=Ue;exports.MultiDateCalendar=Pt;exports.PresetPicker=Fe;exports.SingleDateCalendar=we;exports.SingleWeekCalendar=Wt;exports.TimeTextInput=Qt;exports.WeekDay=Te;exports.WeekDayCell=Oe;exports.WeekNumberCell=We;exports.YearPicker=$e;exports.addDayStateHighlights=P;exports.addDayStateHighlightsOnSingleDay=ye;exports.addWeekRangeHighlights=Ae;exports.addWeekStateHighlights=ut;exports.buildDayStateForDateRange=Q;exports.buildDayStateForRange=Ee;exports.buildDayStateForSingleMonth=Re;exports.calculateOverflowingMonth=He;exports.createDay=Be;exports.dateRangeToStrings=ze;exports.dayHasHighlight=Ye;exports.dayHighlightSelect=F;exports.defaultCalendarTheme=_;exports.defaultTextPropsProvider=Pe;exports.defaultWrapperStyleProvider=Le;exports.extranetCalendarTheme=gt;exports.getDaysForWeekForDate=Ne;exports.getMonthInYear=be;exports.getMonthsInYear=xe;exports.getWeekForDate=ue;exports.getWeeksForMonth=Ie;exports.isDateRangeInvalid=je;exports.setDayStateValue=lt;exports.setDayStateValueFunction=dt;exports.stringsToDateRange=_e;exports.toggleDateStringsIfEndIsEarlierThanStart=Ht;exports.toggleDatesIfEndIsEarlierThanStart=ke;exports.useDateRangeCalendarState=Lt;exports.useDateRangeExclusionSelection=Xe;exports.useDateRangeSelection=Je;exports.useMultiDateSelection=Ge;exports.useSingleDateSelection=Ke;exports.useSingleWeekSelection=Qe;
2
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const D=require("@stenajs-webui/core"),j=require("@stenajs-webui/elements"),f=require("date-fns"),ht=require("date-fns/locale"),P=require("lodash"),o=require("react"),c=require("react/jsx-runtime"),ee=require("@emotion/styled"),$=require("@stenajs-webui/forms"),X=require("@stenajs-webui/tooltip"),Ct=require("@stenajs-webui/theme"),ne=t=>t&&typeof t=="object"&&"default"in t?t:{default:t};function re(t){if(t&&t.__esModule)return t;const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,r.get?r:{enumerable:!0,get:()=>t[n]})}}return e.default=t,Object.freeze(e)}const Mt=re(o),ft=ne(ee),_={yearAndMonth:"yyyy-MM",fullDate:"yyyy-MM-dd",fullMonthName:"LLLL",fullDateAndTime:"yyyy-MM-dd HH:mm",fullDateAndTimeSystem:"yyyy-MM-ddTHH:MM",weekDayName:"EEEE",weekDayNameShort:"EEE",dateAndMonth:"d MMM",monthAndDate:"MMM do"},Q=(t={},e,n)=>{if(e&&n&&f.isAfter(n,e))return f.eachDayOfInterval({start:e,end:n}).reduce((s,i)=>{const l=f.isSameDay(i,e),a=f.isSameDay(i,n);return L(s,i,l?["selected","selectedStart","range"]:a?["selected","selectedEnd","range"]:["range"])},t);let r=t;return e&&(r=L(r,e,["selected","singleSelected"])),n&&(r=L(r,n,["selected","singleSelected"])),r},Rt=(t={},e,n,r)=>Et(t,e,n,f.startOfMonth(r),f.endOfMonth(r)),Et=(t={},e,n,r,s)=>e&&n?Q(t,f.max([e,f.subDays(r,1)]),f.min([n,f.addDays(s,1)])):Q(t,e,n),se=(t,e,n)=>{const r=f.format(e,_.yearAndMonth),s=f.getISOWeek(e),i=f.getDate(e);return{...t,[r]:{...t&&t[r],[s]:{...t&&t[r]&&t[r][s],[i]:{...t&&t[r]&&t[r][s]&&t[r][s][i],...n}}}}},ce=(t,e,n)=>{const r=f.format(e,_.yearAndMonth),s=f.getISOWeek(e),i=f.getDate(e);return{...t,[r]:{...t&&t[r],[s]:{...t&&t[r]&&t[r][s],[i]:{...t&&t[r]&&t[r][s]&&t[r][s][i],...n(t&&t[r]&&t[r][s]&&t[r][s][i])}}}}},L=(t,e,n)=>{const r=e.getMonth()+1,s=`${e.getFullYear()}-${r<10?"0":""}${r}`,i=f.getISOWeek(e),l=f.getDate(e),a=t&&t[s]&&t[s][i]&&t[s][i][l];return{...t,[s]:{...t&&t[s],[i]:{...t&&t[s]&&t[s][i],[l]:yt(a,n)}}}},yt=(t,e)=>{var n;return{...t,highlights:[...(n=t==null?void 0:t.highlights)!=null?n:[],...e]}},ie=(t,e,n)=>{const r=e.days[0].date,s=r.getMonth()+1,i=`${r.getFullYear()}-${s<10?"0":""}${s}`,l=e.weekNumber;let a=t;e.days.forEach(y=>{a=L(a,y.date,n)});const d=a&&a[i]?a[i][l]:void 0,u=d&&d.highlights?[...d.highlights,...n]:n,x={...d,highlights:u};return{...a,[i]:{...t&&t[i],[l]:x}}},Tt=(t,e)=>{var s;if(!e.days.length)return{...t};const n=e.days[0].date,r=(s=P.last(e.days))==null?void 0:s.date;return{...Q(t,n,r)}},oe=(t,e)=>o.useMemo(()=>t?L(e,new Date,["today"]):e,[t,e]);var B=(t=>(t[t.JANUARY=0]="JANUARY",t[t.FEBRUARY=1]="FEBRUARY",t[t.MARCH=2]="MARCH",t[t.APRIL=3]="APRIL",t[t.MAY=4]="MAY",t[t.JUNE=5]="JUNE",t[t.JULY=6]="JULY",t[t.AUGUST=7]="AUGUST",t[t.SEPTEMBER=8]="SEPTEMBER",t[t.OCTOBER=9]="OCTOBER",t[t.NOVEMBER=10]="NOVEMBER",t[t.DECEMBER=11]="DECEMBER",t))(B||{}),At=(t=>(t[t.SUNDAY=0]="SUNDAY",t[t.MONDAY=1]="MONDAY",t[t.TUESDAY=2]="TUESDAY",t[t.WEDNESDAY=3]="WEDNESDAY",t[t.THURSDAY=4]="THURSDAY",t[t.FRIDAY=5]="FRIDAY",t[t.SATURDAY=6]="SATURDAY",t))(At||{});const xt=(t,e,n,r)=>{const s=[];for(let i=0;i<n;i++)s.push(bt(t,e+i,r));return s},bt=(t,e,n)=>{const r=t+Math.floor(e/12),s=e%12,i=new Date(r,s,1);return{monthString:f.format(i,_.yearAndMonth),name:P.startCase(f.format(i,_.fullMonthName,{locale:n})),year:r,monthInYear:s,weeks:It(r,s,n)}},It=(t,e,n,r=!0)=>{const s=new Date(t,e,1),i=f.startOfWeek(s,{locale:n}),l=[];for(let a=0;a<6;a++){const d=ut(f.addWeeks(i,a),n);if(a>0&&d.startMonth!==e&&!r)return l;l.push(d)}return l},ut=(t,e)=>{const n=f.getMonth(f.addDays(t,7))!==f.getMonth(t);return{weekNumber:f.getWeek(t,{locale:e}),startMonth:f.getMonth(t),startYear:f.getYear(t),endMonth:f.getMonth(f.addDays(t,6)),endYear:f.getYear(f.addDays(t,6)),days:Nt(t,e),isLastWeekOfMonth:n}},Bt=(t,e)=>{const n=f.getISODay(t);return{date:t,name:f.format(t,"EEE",e?{locale:e}:void 0),dateString:f.format(f.addHours(t,12),_.fullDate),weekNumber:f.getWeek(t,{locale:e}),year:f.getYear(t),month:f.getMonth(t),dayOfMonth:f.getDate(t),dayOfWeek:n,isFirstDayOfWeek:n===1,isLastDayOfWeek:n===7,isFirstDayOfMonth:f.isSameDay(f.startOfMonth(t),t),isLastDayOfMonth:f.isSameDay(f.endOfMonth(t),t)}},Nt=(t,e)=>f.eachDayOfInterval({start:t,end:f.addDays(t,6)}).map(n=>Bt(n,e)),Ht=(t,e)=>e>11?{year:t+Math.floor(e/12),month:e%12}:e<0?{year:t+Math.floor(e/12),month:12+e%12}:{year:t,month:e},ae="_calendar_1w0de_1",le={calendar:ae},Yt=(t,e,n)=>!!(e&&e.indexOf(n)>=0||t&&t.highlights&&t.highlights.indexOf(n)>=0),F=(t,e,n,r,s)=>{if(n.length!==r.length)throw new Error("Select highlight failed, number of values do not equal number of highlights.");if(n.length===0)return s;for(let i=0;i<n.length;i++)if(typeof n[i]=="boolean"&&n[i]||typeof n[i]=="string"&&Yt(t,e,n[i]))return r[i];return s},Wt=({selectedBackground:t,todayBackground:e,rangeBackground:n,borderColor:r="transparent"})=>(s,i,l,a,d)=>{let u={};const x=F(i,s,["selected","range","today",l.month===d.monthInYear],[t,n,e,"#fff"],"transparent");return{...u,backgroundColor:x,borderTopLeftRadius:F(i,s,["selectedStart","singleSelected"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],r),borderBottomLeftRadius:F(i,s,["selectedStart","singleSelected"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],r),borderTopRightRadius:F(i,s,["selectedEnd","singleSelected"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],r),borderBottomRightRadius:F(i,s,["selectedEnd","singleSelected"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],r),boxSizing:"border-box"}},Lt=({selectedColor:t,disabledColor:e,inOtherMonthColor:n,rangeTextColor:r})=>(s,i,l,a,d)=>{const u=l.month!==d.monthInYear;return{color:F(i,s,[u,"selected","range","enabled","disabled"],[n,t,r,void 0,e])}},z={width:"var(--swui-calendar-day-width)",height:"var(--swui-calendar-day-height)",WeekNumber:{backgroundColor:"var(--swui-calendar-week-number-bg-color)",textColor:"var(--swui-calendar-week-number-text-color)",clickableTextColor:"var(--swui-calendar-week-number-clickable-text-color)",show:!0},WeekDay:{textColor:"var(--swui-calendar-week-day-text-color)",clickableTextColor:"var(--swui-calendar-week-day-clickable-text-color)"},CalendarDay:{tdStyle:Wt({selectedBackground:"var(--swui-calendar-wrapper-selected-background)",rangeBackground:"var(--swui-calendar-wrapper-range-background)",todayBackground:"var(--swui-calendar-wrapper-today-background)"}),textProps:Lt({selectedColor:"var(--swui-calendar-text-selected-color)",disabledColor:"var(--swui-calendar-text-disabled-color)",inOtherMonthColor:"var(--swui-calendar-text-in-other-month-color)"})},CalendarMonth:{headerTextColor:"var(--swui-calendar-week-day-text-color)"}},de={...z,width:"37px",height:"37px"},ue=(t,e,n)=>e&&f.isBefore(t,e)?f.isSameDay(t,e):n&&f.isAfter(t,n)?f.isSameDay(t,n):!0,fe=function({dayComponent:e,minDate:n,maxDate:r,dayState:s,day:i,...l}){const a=o.useMemo(()=>ue(i.date,n,r)?s:yt(s,["disabled"]),[i.date,s,r,n]);return c.jsx(e,{day:i,...l,dayState:a})},Pt=({onClickWeek:t,theme:e,week:n,background:r,backgroundColor:s,prefix:i})=>{const l=c.jsxs(D.Box,{width:e.width,height:e.height,justifyContent:"center",alignItems:"center",children:[r&&c.jsx(D.Box,{position:"absolute",children:r}),c.jsx(D.Box,{position:"absolute",children:c.jsxs(D.Text,{color:t?e.WeekNumber.clickableTextColor:e.WeekNumber.textColor,children:[i,n.weekNumber]})})]});return c.jsx(D.Box,{background:s||e.WeekNumber.backgroundColor,position:"relative",children:t?c.jsx(D.Clickable,{borderRadius:"var(--swui-calendar-day-border-radius)",onClick:a=>t(n,a),disableFocusHighlight:!t,children:l}):l})};function De({week:t,month:e,dayComponent:n,statePerWeekDay:r,userDataPerWeekDay:s,minDate:i,maxDate:l,onClickWeek:a,onClickDay:d,theme:u,renderWeekNumber:x,extraDayContent:y,defaultHighlights:g}){return c.jsxs("tr",{children:[u.WeekNumber.show&&c.jsx("td",{children:x?x(t,u,a):c.jsx(Pt,{week:t,onClickWeek:a,theme:u})}),t.days.map(h=>c.jsx(fe,{dayComponent:n,day:h,week:t,month:e,dayState:r&&r[h.dayOfMonth],userData:s&&s[h.dayOfMonth],onClickDay:d,theme:u,extraDayContent:y,defaultHighlights:g,minDate:i,maxDate:l},h.dateString))]},t.weekNumber)}const Ot=({onClickWeekDay:t,day:e,theme:n})=>{const r=c.jsx(D.Box,{width:n.width,height:n.height,justifyContent:"center",alignItems:"center",children:c.jsx(D.Text,{size:"small",color:t?n.WeekDay.clickableTextColor:n.WeekDay.textColor,children:e.name})});return t?c.jsx(D.Clickable,{borderRadius:"var(--swui-calendar-day-border-radius)",onClick:s=>t(e.dayOfWeek,s),disableFocusHighlight:!t,children:r}):r},jt=function({day:e,week:n,month:r,dayState:s,userData:i,onClickDay:l,theme:a,extraDayContent:d,defaultHighlights:u}){const x=c.jsx(D.Box,{width:"100%",height:"100%",justifyContent:"center",alignItems:"center",children:c.jsx(D.Text,{...a.CalendarDay.textProps&&a.CalendarDay.textProps(u,s,e,n,r,i),children:e.dayOfMonth})}),y=ft.default.td({...a.CalendarDay.tdStyle&&a.CalendarDay.tdStyle(u,s,e,n,r,i)}),g=ft.default.div({...a.CalendarDay.innerWrapperStyle&&a.CalendarDay.innerWrapperStyle(u,s,e,n,r,i),width:"100%",height:"100%"}),h=ft.default.div({...a.CalendarDay.cellWrapperStyle&&a.CalendarDay.cellWrapperStyle(u,s,e,n,r,i),width:"100%",height:"100%",position:"relative"});return c.jsx(y,{children:c.jsx(g,{children:c.jsx(h,{children:e.month===r.monthInYear&&c.jsxs(c.Fragment,{children:[d&&c.jsx(d,{week:n,month:r,day:e,dayState:s,theme:a,userData:i}),l&&xe(u,s)?c.jsx(D.Clickable,{onClick:m=>l(e,i,m),style:{width:"100%",height:"100%"},borderRadius:"var(--swui-calendar-day-border-radius)",children:x}):c.jsx(c.Fragment,{children:x})]})})})})},xe=(t,e)=>!!F(e,t,["enabled","disabled"],[!0,!1],!0);function ge({month:t,dayComponent:e=jt,statePerWeek:n,userDataPerWeek:r,minDate:s,maxDate:i,onClickDay:l,onClickWeek:a,onClickWeekDay:d,onClickMonth:u,onClickYear:x,renderWeekNumber:y,renderWeekDay:g,headerLeftContent:h,headerRightContent:m,theme:p=z,extraDayContent:w,defaultHighlights:S}){const k=p.WeekNumber.show;return c.jsx(c.Fragment,{children:c.jsxs(D.Box,{alignItems:"stretch",children:[c.jsxs(D.Row,{justifyContent:"space-between",alignItems:"center",height:"32px",children:[c.jsx(D.Box,{alignItems:"center",children:h}),c.jsxs(D.Row,{alignItems:"center",children:[c.jsx(D.Row,{width:"104px",justifyContent:"center",children:u?c.jsx(j.FlatButton,{onClick:()=>u(t),label:t.name}):c.jsx(D.Text,{children:t.name})}),c.jsx(D.Space,{}),c.jsx(D.Row,{width:"64px",justifyContent:"center",children:x?c.jsx(j.FlatButton,{onClick:()=>x(t.year),label:String(t.year)}):c.jsx(D.Text,{children:t.year})})]}),c.jsx(D.Box,{alignItems:"center",children:m})]}),c.jsx("table",{children:c.jsxs("tbody",{children:[c.jsxs("tr",{children:[k&&c.jsx("td",{children:c.jsx(D.Box,{width:p.width,height:p.height})}),t.weeks[0].days.map(b=>c.jsx("td",{children:g?g(b.name,p,d):c.jsx(Ot,{day:b,onClickWeekDay:d,theme:p})},b.name))]}),t.weeks.map(b=>c.jsx(De,{month:t,week:b,dayComponent:e,statePerWeekDay:n&&n[b.weekNumber],userDataPerWeekDay:r&&r[b.weekNumber],onClickDay:l,onClickWeek:a,theme:p,renderWeekNumber:y,extraDayContent:w,defaultHighlights:S,minDate:s,maxDate:i},b.weekNumber))]})})]})})}function he({monthRows:t,dayComponent:e=jt,userDataPerMonth:n,statePerMonth:r,minDate:s,maxDate:i,onClickDay:l,onClickWeekDay:a,onClickWeek:d,onClickMonth:u,onClickYear:x,renderWeekDay:y,renderWeekNumber:g,headerLeftContent:h,headerRightContent:m,extraDayContent:p,defaultHighlights:w,theme:S=z}){const k=o.useMemo(()=>s?f.parse(s,"yyyy-MM-dd",new Date):void 0,[s]),b=o.useMemo(()=>i?f.parse(i,"yyyy-MM-dd",new Date):void 0,[i]);return c.jsx("div",{className:le.calendar,children:t.map((C,M)=>c.jsx(D.Spacing,{children:c.jsx(D.Row,{children:C.map((R,E)=>c.jsxs(Mt.Fragment,{children:[E>0&&c.jsx(D.Space,{}),c.jsx(ge,{month:R,dayComponent:e,userDataPerWeek:n&&n[R.monthString],statePerWeek:r&&r[R.monthString],onClickDay:l,onClickWeekDay:a,onClickWeek:d,onClickMonth:u,onClickYear:x,theme:S,renderWeekNumber:g,renderWeekDay:y,headerLeftContent:h,headerRightContent:m,extraDayContent:p,defaultHighlights:w,minDate:k,maxDate:b})]},R.name))})},M))})}function at(t){var l;const e=ye(t.year,t.month,t.date),{year:n,month:r}=Ht(e.year,e.month),s=be(n,r,(l=t.locale)!=null?l:ht.enGB,t.numMonths,t.monthsPerRow),i=oe(t.highlightToday,t.statePerMonth);return c.jsx(he,{year:n,month:r,monthRows:s,...t,statePerMonth:i})}const ye=(t,e,n)=>{if(e&&t)return{month:e,year:t};if(n)return{month:f.getMonth(n),year:f.getYear(n)};const r=new Date;return{month:f.getMonth(r),year:f.getYear(r)}},be=(t,e,n,r,s)=>r==null?[[bt(t,e,n)]]:s==null?[xt(t,e,r,n)]:P.chunk(xt(t,e,r,n),s),je=({value:t,onValueChange:e,month:n,locale:r})=>{const s=o.useMemo(()=>{const i=new Date(2e3,n,1);return P.startCase(f.format(i,"MMM",{locale:r}))},[r,n]);return c.jsx(D.Row,{justifyContent:"center",children:t===n?c.jsx(j.PrimaryButton,{label:s,onClick:()=>e&&e(n)}):c.jsx(j.FlatButton,{label:s,onClick:()=>e&&e(n)})})},me=[[B.JANUARY,B.FEBRUARY,B.MARCH],[B.APRIL,B.MAY,B.JUNE],[B.JULY,B.AUGUST,B.SEPTEMBER],[B.OCTOBER,B.NOVEMBER,B.DECEMBER]],Ut=({value:t,onValueChange:e,locale:n=ht.enGB})=>c.jsx(D.Column,{gap:1,children:me.map(r=>c.jsx(D.Row,{gap:1,children:r.map(s=>c.jsx(je,{month:s,onValueChange:e,value:t,locale:n},s))},r[0]))}),ke=t=>[{label:"Past",presets:[{label:"Last 3 days",startDate:t,endDate:f.subDays(t,2)},{label:"Last 7 days",startDate:t,endDate:f.subDays(t,6)},{label:"Last 30 days",startDate:t,endDate:f.subDays(t,29)},{label:"Last 45 days",startDate:t,endDate:f.subDays(t,44)}]},{label:"Future",presets:[{label:"Next 3 days",startDate:t,endDate:f.addDays(t,2)},{label:"Next 7 days",startDate:t,endDate:f.addDays(t,6)},{label:"Next 30 days",startDate:t,endDate:f.addDays(t,29)},{label:"Next 45 days",startDate:t,endDate:f.addDays(t,44)}]}],Ft=({onClickPreset:t})=>{var i;const[e,n]=o.useState(0),r=o.useMemo(()=>ke(new Date),[]),s=(i=r[e])!=null?i:r[0];return c.jsxs(D.Column,{children:[c.jsxs(D.Row,{justifyContent:"space-between",alignItems:"center",width:"200px",children:[c.jsx(j.FlatButton,{size:"small",leftIcon:j.stenaAngleLeft,disabled:e===0,onClick:()=>n(e-1)}),c.jsx(D.Text,{children:s.label}),c.jsx(j.FlatButton,{size:"small",leftIcon:j.stenaAngleRight,disabled:e===r.length-1,onClick:()=>n(e+1)})]}),c.jsx(D.Space,{}),c.jsx(D.Column,{alignItems:"center",children:s.presets.map(l=>c.jsxs(Mt.Fragment,{children:[c.jsx(j.PrimaryButton,{label:l.label,onClick:()=>t(l)}),c.jsx(D.Space,{})]},l.label))})]})},we=({value:t,onValueChange:e,year:n})=>{const r=String(n);return c.jsx(D.Row,{justifyContent:"center",children:t===n?c.jsx(j.PrimaryButton,{label:r,onClick:()=>e==null?void 0:e(n)}):c.jsx(j.FlatButton,{label:r,onClick:()=>e==null?void 0:e(n)})})},$t=({value:t,onValueChange:e,initialLastYear:n})=>{const[r,s]=o.useState(()=>t?t+4:n!=null?n:new Date().getFullYear()+4),i=o.useMemo(()=>{const l=r-11;return P.chunk(P.range(l,r+1),3)},[r]);return o.useEffect(()=>{s(l=>Se(t,l))},[t]),c.jsxs(D.Row,{children:[c.jsx(D.Column,{justifyContent:"center",children:c.jsx(j.FlatButton,{leftIcon:j.stenaArrowLeft,onClick:()=>s(r-3)})}),c.jsx(D.Column,{gap:1,children:i.map(l=>c.jsx(D.Row,{gap:1,children:l.map(a=>c.jsx(we,{year:a,onValueChange:e,value:t},a))},l[0]))}),c.jsx(D.Column,{justifyContent:"center",children:c.jsx(j.FlatButton,{leftIcon:j.stenaArrowRight,onClick:()=>s(r+3)})})]})},Se=(t,e)=>{if(t==null)return e;if(t>e){const r=t-e,s=r%3,i=r-s+3;return e+i}const n=e-11;if(t<n){const r=n-t,s=r%3,i=r-s+3;return e-i}return e},pe=function({locale:e,dateInFocus:n,setDateInFocus:r,currentPanel:s,setCurrentPanel:i,...l}){const a=o.useCallback(y=>{const g=n?new Date(n):new Date;g.setMonth(y),r&&r(g),i("calendar")},[n,r,i]),d=o.useCallback(y=>{const g=n?new Date(n):new Date;g.setFullYear(y),r&&r(g),i("calendar")},[n,r,i]),u=o.useCallback(()=>{i("year")},[i]),x=o.useCallback(()=>{i("month")},[i]);switch(s){case"calendar":return c.jsx(c.Fragment,{children:c.jsx(at,{...l,date:n,onClickYear:u,onClickMonth:x,locale:e})});case"month":return c.jsx(Ut,{value:n.getMonth(),onValueChange:a,locale:e});case"year":return c.jsx($t,{value:n.getFullYear(),onValueChange:d});case"presets":return c.jsx(Ft,{onClickPreset:()=>{}});default:return c.jsx(D.Box,{children:c.jsx(j.PrimaryButton,{label:"Show calendar",onClick:()=>i("calendar")})})}},Ce=(t,e,n,r)=>{const s=o.useCallback(()=>{var u;const d=f.addMonths(t,(u=n!=null?n:r)!=null?u:1);e==null||e(d)},[e,t,n,r]),i=o.useCallback(()=>{const d=f.addYears(t,1);e==null||e(d)},[e,t]),l=o.useCallback(()=>{var u;const d=f.subMonths(t,(u=n!=null?n:r)!=null?u:1);e==null||e(d)},[e,t,n,r]),a=o.useCallback(()=>{const d=f.subYears(t,1);e==null||e(d)},[e,t]);return{nextMonth:s,prevMonth:l,nextYear:i,prevYear:a}},Me=({children:t,prevMonth:e,nextMonth:n,prevYear:r,nextYear:s})=>c.jsxs("div",{children:[t,c.jsx(D.Indent,{children:c.jsxs(D.Row,{children:[c.jsx(j.FlatButton,{onClick:r,leftIcon:j.stenaAngleLeftDouble}),c.jsx(D.Space,{}),c.jsx(j.FlatButton,{onClick:e,leftIcon:j.stenaAngleLeft}),c.jsx(D.Indent,{num:2}),c.jsx(j.FlatButton,{onClick:n,leftIcon:j.stenaAngleRight}),c.jsx(D.Space,{}),c.jsx(j.FlatButton,{onClick:s,leftIcon:j.stenaAngleRightDouble})]})}),c.jsx(D.Space,{})]}),Re=()=>{};function q({monthSwitcherPlacement:t,theme:e=z,dateInFocus:n,setDateInFocus:r,currentPanel:s,setCurrentPanel:i,onSelectPreset:l=Re,hideYearPagination:a=!1,...d}){const{nextMonth:u,prevMonth:x,nextYear:y,prevYear:g}=Ce(n,r,d.monthsPerRow,d.numMonths);switch(Ee(t,d.numMonths)){case"below":return c.jsx(Me,{theme:e,nextMonth:u,prevMonth:x,nextYear:y,prevYear:g,children:c.jsx(at,{...d,theme:e,date:n})});case"header":return c.jsx(D.Column,{children:c.jsx(pe,{...d,theme:e,dateInFocus:n,setDateInFocus:r,currentPanel:s,setCurrentPanel:i,onSelectPreset:l,headerLeftContent:c.jsxs(D.Row,{alignItems:"center",children:[!a&&c.jsx(j.FlatButton,{onClick:g,leftIcon:j.stenaAngleLeftDouble}),c.jsx(D.Space,{}),c.jsx(j.FlatButton,{onClick:x,leftIcon:j.stenaAngleLeft})]}),headerRightContent:c.jsxs(D.Row,{alignItems:"center",children:[c.jsx(j.FlatButton,{onClick:u,leftIcon:j.stenaAngleRight}),c.jsx(D.Space,{}),!a&&c.jsx(j.FlatButton,{onClick:y,leftIcon:j.stenaAngleRightDouble})]})})});default:return c.jsx(at,{...d,theme:e,date:n})}}const Ee=(t,e)=>t||(e||1)>1?"below":"header",_t=t=>({startDate:t.startDate?f.format(t.startDate,"yyyy-MM-dd"):void 0,endDate:t.endDate?f.format(t.endDate,"yyyy-MM-dd"):void 0}),zt=({startDate:t,endDate:e})=>{const n=new Date;return{startDate:t?f.parse(t,"yyyy-MM-dd",n):void 0,endDate:e?f.parse(e,"yyyy-MM-dd",n):void 0}},mt=({startDate:t,endDate:e})=>Boolean(t&&e&&!f.isSameDay(t,e)&&f.isAfter(t,e)),kt=t=>mt(t)?{startDate:t.endDate,endDate:t.startDate}:t,Te=t=>t.startDate&&t.endDate?_t(kt(zt(t))):t,qt=(t,e,n,r)=>o.useCallback(s=>{const i={startDate:n==="startDate"?s.date:t==null?void 0:t.startDate,endDate:n==="endDate"?s.date:t==null?void 0:t.endDate};mt(i)||r(n==="startDate"?"endDate":"startDate"),e==null||e(kt(i))},[n,e,r,t==null?void 0:t.endDate,t==null?void 0:t.startDate]),et=t=>{const[e,n]=o.useState("calendar"),r=o.useCallback(s=>{n(s),t==null||t(s)},[t]);return{currentPanel:e,setCurrentPanel:r}},Jt=({focusedInput:t,value:e,onValueChange:n,setFocusedInput:r,statePerMonth:s,onChangePanel:i,initialDateInFocus:l})=>{const{currentPanel:a,setCurrentPanel:d}=et(i),[u,x]=o.useState(()=>l!=null?l:new Date),y=qt(e,n,t,r),g=o.useMemo(()=>Q(s,e==null?void 0:e.startDate,e==null?void 0:e.endDate),[s,e==null?void 0:e.endDate,e==null?void 0:e.startDate]);return{onClickDay:y,statePerMonth:g,currentPanel:a,setCurrentPanel:d,setDateInFocus:x,dateInFocus:u}};function Ae(t){const e=Jt(t);return c.jsx(q,{...t,...e})}const Ie=()=>{const[t,e]=o.useState(),[n,r]=o.useState(),[s,i]=o.useState("startDate");return{startDate:t,setStartDate:e,endDate:n,setEndDate:r,focusedInput:s,setFocusedInput:i}},Kt=({onChange:t,value:e,statePerMonth:n,onChangePanel:r})=>{const{currentPanel:s,setCurrentPanel:i}=et(r),[l,a]=o.useState(()=>e!=null?e:new Date),d=o.useCallback(x=>{t&&t(x.date)},[t]),u=o.useMemo(()=>e?L(n,e,["selected","singleSelected"]):n,[n,e]);return{onClickDay:d,statePerMonth:u,date:e,currentPanel:s,setCurrentPanel:i,dateInFocus:l,setDateInFocus:a}};function wt(t){const e=Kt(t);return c.jsx(q,{...t,...e})}const Gt=({onChange:t,value:e,statePerMonth:n,onChangePanel:r})=>{const{currentPanel:s,setCurrentPanel:i}=et(r),[l,a]=o.useState(()=>new Date),d=o.useCallback(x=>{if(!t)return;const y=e&&e.find(g=>f.isSameDay(g,x.date));t(e&&y?e.filter(g=>!f.isSameDay(g,x.date)):[...e||[],x.date])},[t,e]),u=o.useMemo(()=>e?e.reduce((x,y)=>L(x,y,["selected"]),n):n,[n,e]);return{onClickDay:d,statePerMonth:u,currentPanel:s,setCurrentPanel:i,dateInFocus:l,setDateInFocus:a}};function Be(t){const e=Gt(t);return c.jsx(q,{...t,...e})}const Qt=({onChange:t,value:e,statePerMonth:n,onChangePanel:r,locale:s=ht.enGB})=>{const[i,l]=o.useState(()=>{const h=Dt(e,s);return h?h.days[0].date:new Date}),{currentPanel:a,setCurrentPanel:d}=et(r),u=o.useCallback(h=>{t&&t(St(ut(h.date,s)))},[s,t]),x=o.useCallback(h=>{t&&t(St(h))},[t]),y=o.useMemo(()=>{const h=Dt(e,s);return h?Tt(n,h):n},[e,s,n]),g=o.useMemo(()=>{const h=Dt(e,s);return h?h.days[0].date:new Date},[s,e]);return{statePerMonth:y,date:g,dateInFocus:i,setDateInFocus:l,onClickDay:u,onClickWeek:x,currentPanel:a,setCurrentPanel:d}},St=t=>{if(!!t)return`${t.endYear}-${t.weekNumber}`},Dt=(t,e)=>{if(!t)return;const n=t.split("-"),r=parseInt(n[1],10),s=parseInt(n[0],10),i=new Date;i.setFullYear(s);const l=f.startOfWeek(f.setWeek(i,r),{locale:e});return ut(l,e)};function Ne(t){const e=Qt(t);return c.jsx(q,{...t,...e})}const He=(t,e)=>t.filter(n=>!f.isSameDay(n,e)),Ye=(t,e)=>!!t.find(n=>f.isSameDay(n,e)),Xt=({value:t,onValueChange:e,statePerMonth:n,onChangePanel:r})=>{const[s,i]=o.useState(),[l,a]=o.useState("startDate"),{currentPanel:d,setCurrentPanel:u}=et(r),[x,y]=o.useState(()=>{var w;return(w=l&&(t==null?void 0:t[l]))!=null?w:new Date}),g=o.useCallback(w=>{i(w);const{startDate:S,endDate:k}=w;if(e)if(S&&k){const b=f.eachDayOfInterval({start:S,end:k});e(b)}else S?e([S]):k&&e([k])},[e]),h=qt(s,g,l,a),m=o.useCallback((w,S,k)=>{e&&(k.ctrlKey||k.metaKey?t?Ye(t,w.date)?e(He(t,w.date)):e([...t,w.date]):e([w.date]):h(w,S,k))},[e,h,t]),p=o.useMemo(()=>We(n,t),[n,t]);return{onClickDay:m,statePerMonth:p,currentPanel:d,setCurrentPanel:u,dateInFocus:x,setDateInFocus:y}},We=(t,e)=>e?e.reduce((n,r)=>L(n,r,["selected"]),t):t;function Le(t){const e=Xt(t);return c.jsx(q,{...t,...e})}const nt="bottom",Zt=()=>{const[t,e]=X.useTippyInstance();return{onChangePanel:o.useCallback(()=>{var r,s;(s=(r=e.current)==null?void 0:r.popperInstance)==null||s.update()},[e]),tippyRef:t}},Pe=(t,e,n)=>{const[r,s]=o.useState(n||!1),i=o.useCallback(()=>(s(!0),!0),[s]),l=o.useCallback(()=>{s(!1),e&&e()},[s,e]),a=o.useCallback(d=>{t&&t(d),setTimeout(l,150)},[t,l]);return{showCalendar:i,hideCalendar:l,showingCalendar:r,onSelectDate:a}},rt="2999-12-31",Oe=({displayFormat:t=_.fullDate,placeholder:e="Enter date",value:n,zIndex:r=100,calendarTheme:s=z,calendarProps:i,openOnMount:l,onClose:a,onChange:d,portalTarget:u,variant:x,width:y,minDate:g,maxDate:h=rt,disabled:m})=>{const{hideCalendar:p,showingCalendar:w,onSelectDate:S,showCalendar:k}=Pe(d,a,l),{tippyRef:b,onChangePanel:C}=Zt();return c.jsx(D.Box,{width:y,children:c.jsx(X.Popover,{arrow:!1,lazy:!0,visible:w,onClickOutside:p,placement:nt,zIndex:r,appendTo:u!=null?u:"parent",tippyRef:b,disabled:m,content:c.jsx(wt,{...i,onChange:S,value:n,theme:s,onChangePanel:C,minDate:g,maxDate:h}),children:c.jsx($.TextInput,{type:"date",contentRight:c.jsx(D.Row,{alignItems:"center",children:c.jsx(j.FlatButton,{size:"small",disabled:m,leftIcon:j.stenaCalendar,onClick:k})}),onFocus:k,onClickRight:k,value:n?f.format(n,t):"",placeholder:e,size:9,disabled:m,autoFocus:l,variant:x,min:g,max:h})})})},Ue=(t,e)=>{const n=o.useRef(null),r=o.useRef(null),[s,i]=o.useState(!1),[l,a]=o.useState(void 0),d=o.useCallback(()=>(a("startDate"),i(!0),!0),[a,i]),u=o.useCallback(()=>(a("endDate"),i(!0),!0),[a,i]),x=o.useCallback(()=>{i(!1)},[i]),y=o.useCallback(h=>{l==="startDate"?(e==null||e({startDate:h.date,endDate:t==null?void 0:t.endDate}),t!=null&&t.endDate?setTimeout(x,150):(a("endDate"),r.current&&r.current.focus())):l==="endDate"&&(e==null||e({startDate:t==null?void 0:t.startDate,endDate:h.date}),t!=null&&t.startDate?setTimeout(x,150):(a("startDate"),n.current&&n.current.focus()))},[l,e,a,x,t]),g=o.useMemo(()=>(t==null?void 0:t.startDate)&&(t==null?void 0:t.endDate)&&f.isAfter(t.startDate,t.endDate),[t==null?void 0:t.startDate,t==null?void 0:t.endDate]);return{showingCalendar:s,hideCalendar:x,showCalendarEndDate:u,showCalendarStartDate:d,focusedInput:l,setFocusedInput:a,startDateInputRef:n,endDateInputRef:r,onClickDay:y,startDateIsAfterEnd:g}};function Fe({displayFormat:t=_.fullDate,placeholderStartDate:e="Start date",placeholderEndDate:n="End date",portalTarget:r,value:s,onValueChange:i,zIndex:l=100,width:a,calendarTheme:d=z,calendarProps:u,minDate:x,maxDate:y=rt,disabled:g}){const[h,m]=o.useState("calendar"),{hideCalendar:p,showCalendarEndDate:w,showCalendarStartDate:S,showingCalendar:k,focusedInput:b,startDateInputRef:C,endDateInputRef:M,onClickDay:R,startDateIsAfterEnd:E}=Ue(s,i),[N,A]=o.useState(()=>{var W;return(W=b&&(s==null?void 0:s[b]))!=null?W:new Date}),Y=o.useMemo(()=>Q(void 0,s==null?void 0:s.startDate,s==null?void 0:s.endDate),[s]);return c.jsx(X.Popover,{arrow:!1,lazy:!0,disabled:g,visible:k,zIndex:l,placement:nt,appendTo:r!=null?r:"parent",onClickOutside:p,content:c.jsx(q,{...u,dateInFocus:N,setDateInFocus:A,statePerMonth:Y,theme:d,onClickDay:R,currentPanel:h,setCurrentPanel:m,minDate:x,maxDate:y}),children:c.jsxs(D.Row,{alignItems:"center",children:[c.jsx($.TextInput,{iconLeft:j.stenaCalendar,onFocus:S,value:s!=null&&s.startDate?f.format(s.startDate,t):"",placeholder:e,width:a,disabled:g,inputRef:C,size:9,variant:E?"error":void 0}),c.jsx(D.Space,{}),c.jsx(j.Icon,{icon:j.stenaArrowWideRight,color:Ct.cssColor("--lhds-color-ui-500"),size:14}),c.jsx(D.Space,{}),c.jsx($.TextInput,{iconLeft:j.stenaCalendar,onFocus:w,value:s!=null&&s.endDate?f.format(s.endDate,t):"",placeholder:n,width:a,disabled:g,inputRef:M,size:9,variant:E?"error":void 0})]})})}const $e=({calendarProps:t,closeOnCalendarSelectDate:e=!0,dateFormat:n=_.fullDate,disableCalender:r=!1,onValueChange:s,placeholder:i="yyyy-mm-dd",portalTarget:l,value:a,width:d="130px",zIndex:u=100,calendarTheme:x=z,hideCalenderIcon:y=!1,minDate:g,maxDate:h=rt,variant:m,...p})=>{const[w,S]=o.useState(!1),{tippyRef:k,onChangePanel:b}=Zt(),C=o.useCallback(()=>{S(!w)},[S,w]),M=o.useCallback(()=>{S(!1)},[S]),R=o.useCallback(H=>{s&&s(H)},[s]),E=o.useCallback(H=>{H&&(R(f.format(H,n)),e&&setTimeout(()=>S(!w),200))},[R,n,e,S,w]),N=!!a&&!/^[-/\\.0-9]+$/.test(a),A=!!a&&f.isValid(f.parse(a,n,new Date)),W=!!a&&a.length>=n.length&&!A||N;return c.jsx(D.Box,{width:d,children:c.jsx(X.Popover,{arrow:!1,lazy:!0,visible:w,zIndex:u,appendTo:l!=null?l:"parent",placement:nt,onClickOutside:M,tippyRef:k,content:c.jsx(wt,{...t,onChange:E,onChangePanel:b,value:a&&A?f.parse(a,n,new Date):void 0,minDate:g,maxDate:h,theme:x}),children:c.jsx($.TextInput,{...p,variant:W?"error":m,disableContentPaddingRight:!0,contentRight:y?void 0:c.jsx(D.Row,{alignItems:"center",indent:.5,children:c.jsx(j.FlatButton,{size:"small",disabled:p.disabled||r,leftIcon:j.stenaCalendar,onClick:C})}),onValueChange:R,placeholder:i,value:a||"",min:g,max:h,size:10})})})},lt=t=>{if(t==="")return"00";const e=parseInt(t,10);if(isNaN(e))throw new Error("Hours is not a number");if(e<0||e>23)throw new Error("Hours is an invalid number");switch(t.length){case 1:return`0${e}`;case 2:return t;default:throw new Error("Invalid hour string")}},dt=t=>{if(t==="")return"00";const e=parseInt(t,10);if(isNaN(e))throw new Error("Minutes is not a number");if(e<0||e>59)throw new Error("Minutes is an invalid number");switch(t.length){case 1:return`0${e}`;case 2:return t;default:throw new Error("Invalid minute string")}},_e=t=>{if(!gt(t))return{time:t,success:!1};const e=t&&t.split(/-|:|,|;|[/]|[.]| /);if(e&&e.length===2)try{const n=lt(e[0]),r=dt(e[1]);return{time:`${n}:${r}`,success:!0}}catch{return{time:t,success:!1}}else if(e&&e.length===1){let n=0,r=0;switch(t.length){case 1:return{time:`0${t}:00`,success:!0};case 2:const s=parseInt(e[0],10);return s>=0&&s<24?{time:`${t}:00`,success:!0}:s>=24&&s<59?{time:`00:${t}`,success:!0}:{time:t,success:!1};case 3:return r=parseInt(t.substr(1,2),10),r>=0&&r<=59?{time:`0${t.substr(0,1)}:${t.substr(1,2)}`,success:!0}:{time:t,success:!1};case 4:return n=parseInt(t.substr(0,2),10),r=parseInt(t.substr(2,2),10),n<0||n>23?{time:t,success:!1}:r<0||r>59?{time:t,success:!1}:{time:`${t.substr(0,2)}:${t.substr(2,2)}`,success:!0};default:return{time:t,success:!1}}}return{time:t,success:!1}},gt=t=>t?/^[-:.,/; 0-9]+$/.test(t):!0,ze=({onValueChange:t,showPlaceholder:e=!0,useIcon:n=!0,value:r,width:s="85px",variant:i,...l})=>{const[a,d]=o.useState(()=>gt(r)),u="hh:mm",x=o.useCallback(()=>{if(r){const g=_e(r);d(g.success),g.success&&t&&t(g.time)}},[r,t,d]),y=o.useCallback(g=>{const h=g.target.value,m=gt(h);d(m&&h.length<=u.length),t&&t(h)},[t,d]);return c.jsx($.TextInput,{...l,type:"time",variant:a?i:"error",iconLeft:n?j.stenaClock:void 0,value:r,placeholder:e?u:void 0,onChange:y,onBlur:x,width:s})},vt=({autoFocusLeft:t,autoFocusRight:e,onEsc:n,onEnter:r,onValueChangeLeft:s,onValueChangeRight:i,separatorIcon:l,placeholderLeft:a,placeholderRight:d,typeLeft:u,typeRight:x,onChangeLeft:y,onChangeRight:g,valueLeft:h,valueRight:m,minLeft:p,maxLeft:w,minRight:S,maxRight:k,onClickLeft:b,onClickRight:C,onClickCalendar:M,onClickArrowDown:R,onBlurLeft:E,onBlurRight:N,onFocusLeft:A,onFocusRight:Y,inputRefLeft:W,inputRefRight:H,variant:K,variantLeft:Z,variantRight:G,onBlur:O,showPresets:v,widthLeft:V,widthRight:tt,disabled:J})=>{const I=o.useRef(0),T=o.useMemo(()=>P.debounce(U=>{U===0&&(O==null||O())},10),[O]),st=o.useCallback(U=>{I.current++,T(I.current),A&&A(U)},[A,I,T]),ct=o.useCallback(U=>{I.current++,T(I.current),Y&&Y(U)},[Y,I,T]),it=o.useCallback(U=>{I.current--,T(I.current),E&&E(U)},[E,I,T]),te=o.useCallback(U=>{I.current--,T(I.current),N&&N(U)},[N,I,T]);return c.jsx(D.Box,{children:c.jsxs($.TextInputBox,{disableContentPaddingRight:!0,disabled:J,variant:K,contentRight:c.jsxs(D.Row,{alignItems:"center",children:[c.jsx(D.Indent,{num:.5,children:c.jsx(j.FlatButton,{leftIcon:j.stenaCalendar,onClick:M,disabled:J,size:"small"})}),v?c.jsxs(c.Fragment,{children:[c.jsx(D.Row,{height:"22px",children:c.jsx(D.SeparatorLine,{vertical:!0})}),c.jsx(D.Indent,{num:.5,children:c.jsx(j.FlatButton,{leftIcon:j.stenaAngleDown,onClick:R,disabled:J,size:"small"})})]}):null]}),children:[c.jsx(D.Box,{width:V,children:c.jsx($.TextInput,{onEsc:n,onEnter:r,onClick:b,disabled:J,hideBorder:!0,placeholder:a,value:h,onValueChange:s,onChange:y,onBlur:it,onFocus:st,inputRef:W,variant:Z,type:u,autoFocus:t,min:p,max:w})}),c.jsx(D.Row,{indent:.5,alignItems:"center",justifyContent:"center",children:c.jsx(j.Icon,{icon:l,size:12,color:Ct.cssColor("--lhds-color-ui-500")})}),c.jsx(D.Box,{width:tt,children:c.jsx($.TextInput,{onEsc:n,onEnter:r,onClick:C,disabled:J,hideBorder:!0,placeholder:d,value:m,onValueChange:i,onChange:g,onBlur:te,onFocus:ct,inputRef:H,variant:G,type:x,autoFocus:e,min:S,max:k})})]})})},qe=t=>{if(t==null)throw new Error("Time is not set.");if(t==="")throw new Error("Time is empty.");const e=t.split(":");if(e.length!==2)throw new Error("Invalid time.");if(e[1].length!==2)throw new Error("Invalid time.");if(e[0].length<1||e[0].length>2)throw new Error("Invalid time.");const n=parseInt(e[0],10),r=parseInt(e[1],10);if(isNaN(n))throw new Error("Invalid time.");if(isNaN(r))throw new Error("Invalid time.");if(n<0||n>23)throw new Error("Invalid time.");if(r<0||r>59)throw new Error("Invalid time.");return n*100+r},Je=t=>{try{return qe(t),!0}catch{return!1}},ot=t=>{if(t&&Je(t)){const e=t.split(":");return{hour:D.parseIntElseUndefined(e[0]),minute:D.parseIntElseUndefined(e[1])}}return{hour:void 0,minute:void 0}},Ke=t=>`${lt(String(t.getHours()))}:${dt(String(t.getMinutes()))}`,Ge="_timePicker_1w05d_1",Qe="_timePickerColumn_1w05d_6",Vt={timePicker:Ge,timePickerColumn:Qe},Xe=({onClick:t,item:e,selected:n,columnRef:r,canScrollRef:s})=>{const i=o.useRef(null);return o.useEffect(function(){if(n&&r.current&&i.current&&s.current){const a=i.current.scrollHeight*Math.max(e-2,0);r.current.scrollTo(0,a),s.current=!1}},[r,e,n,s]),c.jsx(D.Row,{width:"64px",justifyContent:"center",spacing:.5,indent:.5,ref:i,children:n?c.jsx(j.PrimaryButton,{label:P.padStart(String(e),2,"0"),onClick:()=>t&&t(e)}):c.jsx(j.FlatButton,{label:String(e).padStart(2,"0"),onClick:()=>t&&t(e)})})},pt=({onClick:t,items:e,selectedItem:n,canScrollRef:r})=>{const s=o.useRef(null);return c.jsx(D.Column,{className:Vt.timePickerColumn,ref:s,children:e.map(i=>c.jsx(Xe,{item:i,onClick:t,selected:i===n,columnRef:s,canScrollRef:r},i))})},Ze=P.range(0,24),ve=P.range(0,60),Ve=({value:t,onValueChange:e})=>{const n=o.useRef(!0),[r,s]=o.useState(void 0),[i,l]=o.useState(void 0);o.useEffect(()=>{if(t){const{minute:u,hour:x}=ot(t);s(x),l(u)}},[t]);const a=o.useCallback(u=>{s(u),e==null||e(`${lt(String(u!=null?u:0))}:${dt(String(i!=null?i:0))}`)},[i,e]),d=o.useCallback(u=>{l(u),e==null||e(`${lt(String(r!=null?r:0))}:${dt(String(u!=null?u:0))}`)},[r,e]);return c.jsxs(D.Row,{className:Vt.timePicker,children:[c.jsx(pt,{items:Ze,onClick:a,selectedItem:r,canScrollRef:n}),c.jsx(D.Indent,{}),c.jsx(pt,{items:ve,onClick:d,selectedItem:i,canScrollRef:n})]})},tn=(t,e,n)=>{o.useEffect(function(){t&&e(t)},[t,e]),o.useEffect(function(){n.current&&(t?n.current.valueAsDate=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())):n.current.valueAsDate=null)},[t,n])},en=(t,e,{setDateInFocus:n,showCalendarInternal:r,hideCalendarInternal:s,setFirstFocusedInput:i,setCurrentPanel:l,localTime:a,setLocalTime:d,localDate:u,setLocalDate:x},y)=>{const g=o.useCallback(k=>{if(!k)return;const b=new Date(k);if(t)b.setHours(t.getHours()),b.setMinutes(t.getMinutes()),e==null||e(b),x(void 0);else if(a){const{minute:C,hour:M}=ot(a);b.setHours(M!=null?M:0),b.setMinutes(C!=null?C:0),e==null||e(b),x(void 0)}else x(b);n(b),y.current&&(y.current.valueAsDate=new Date(Date.UTC(b.getFullYear(),b.getMonth(),b.getDate())))},[t,y,a,e,n,x]),h=o.useCallback(k=>{if(!!k)if(t){const b=ot(k),C=new Date(t);C.setHours(b.hour||0),C.setMinutes(b.minute||0),e==null||e(C),d(void 0)}else if(u){const b=ot(k),C=new Date(u);C.setHours(b.hour||0),C.setMinutes(b.minute||0),e==null||e(C),d(void 0)}else d(k)},[e,t,u,d]),m=o.useCallback(k=>{k.target.value[0]!=="0"&&g(k.target.valueAsDate)},[g]),p=o.useCallback(k=>h(k.target.value),[h]),w=o.useCallback(()=>{n(t||new Date),l("calendar"),r()},[t,l,r,n]),S=o.useCallback(()=>{i(void 0),s()},[i,s]);return{inputLeftChangeHandler:m,inputRightChangeHandler:p,hideCalendar:S,showCalendar:w,onChangeTime:h,onChangeDate:g}},nn=t=>{const[e,n]=o.useState(void 0),[r,s]=o.useState(void 0),[i,l,a]=D.useBoolean(!1),[d,u,x]=D.useBoolean(!1),[y,g]=o.useState(void 0),[h,m]=o.useState(()=>t!=null?t:new Date),[p,w]=o.useState("calendar");return{isCalendarVisible:i,showCalendarInternal:l,hideCalendarInternal:a,firstFocusedInput:y,setFirstFocusedInput:g,dateInFocus:h,setDateInFocus:m,currentPanel:p,setCurrentPanel:w,isTimePickerVisible:d,showTimePicker:u,hideTimePicker:x,localDate:e,setLocalDate:n,localTime:r,setLocalTime:s}},rn=(t,e,n,r,{isCalendarVisible:s,setCurrentPanel:i,showTimePicker:l,hideTimePicker:a})=>{const d=o.useCallback(()=>{s||n(),i("calendar"),a()},[a,s,i,n]),u=o.useCallback(()=>{r(),l()},[r,l]),x=o.useCallback(m=>{t(m.date),r(),l()},[t,r,l]),y=o.useCallback(()=>{i("presets"),n()},[i,n]),g=o.useCallback(()=>{var m;s?r():((m=e.current)==null||m.focus(),i("calendar"),n())},[s,r,e,i,n]),h=o.useCallback(m=>{m.key==="Escape"&&r()},[r]);return{onFocusLeft:d,onFocusRight:u,onClickDay:x,onClickArrowButton:y,onClickCalendarButton:g,onKeyDownHandler:h}},sn=({value:t,onValueChange:e,onEnter:n,onEsc:r,onBlur:s,autoFocus:i,minDate:l,widthLeft:a=128,widthRight:d=80,maxDate:u=rt,variant:x,disabled:y})=>{const g=o.useRef(null),h=o.useRef(null),m=nn(t),{setCurrentPanel:p,currentPanel:w,isCalendarVisible:S,dateInFocus:k,setDateInFocus:b,isTimePickerVisible:C,hideTimePicker:M,localTime:R,localDate:E}=m,{showCalendar:N,hideCalendar:A,inputLeftChangeHandler:Y,inputRightChangeHandler:W,onChangeTime:H,onChangeDate:K}=en(t,e,m,g),{onKeyDownHandler:Z,onFocusRight:G,onFocusLeft:O,onClickDay:v,onClickCalendarButton:V,onClickArrowButton:tt}=rn(K,g,N,A,m);tn(t,b,g);const J=o.useMemo(()=>{const it=t||E;return it?L(void 0,it,["singleSelected","selected"]):{}},[E,t]),I=o.useCallback(()=>{A(),M()},[A,M]),T=o.useMemo(()=>t?Ke(t):R,[t,R]),st=D.useDelayedFalse(S,300),ct=D.useDelayedFalse(C,300);return c.jsx(D.Box,{onKeyDown:Z,children:c.jsx(X.Popover,{arrow:!1,lazy:!0,disabled:y,placement:nt,visible:S||C,onClickOutside:I,content:(st||ct)&&c.jsx(D.Column,{children:st?c.jsx(q,{statePerMonth:J,onClickDay:v,dateInFocus:k,setDateInFocus:b,currentPanel:w,setCurrentPanel:p,minDate:l,maxDate:u}):ct?c.jsxs(D.Column,{children:[c.jsx(D.Column,{overflow:"hidden",height:"250px",children:c.jsx(Ve,{value:T!=null?T:"",onValueChange:H})}),c.jsx(D.Space,{}),c.jsx(D.Row,{justifyContent:"flex-end",children:c.jsx(j.PrimaryButton,{label:"Done",onClick:M})})]}):null}),children:c.jsx(vt,{autoFocusLeft:i,onEsc:r,onEnter:n,onBlur:s,disabled:y,separatorIcon:j.stenaClock,typeLeft:"date",typeRight:"time",placeholderLeft:"yyyy-mm-dd",placeholderRight:"hh:mm",onChangeLeft:Y,onChangeRight:W,onClickArrowDown:tt,onClickCalendar:V,onFocusLeft:O,onFocusRight:G,onClickLeft:O,onClickRight:G,inputRefLeft:g,inputRefRight:h,valueRight:T!=null?T:"",widthLeft:a,widthRight:d,minLeft:l,maxLeft:u,variant:x})})})},cn=(t,e,n,r,s)=>{o.useEffect(function(){t&&n(t)},[t,n]),o.useEffect(function(){e&&n(e)},[e,n]),o.useEffect(function(){r.current&&(t?r.current.valueAsDate=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())):r.current.valueAsDate=null)},[t,r]),o.useEffect(function(){s.current&&(e?s.current.valueAsDate=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())):s.current.valueAsDate=null)},[e,s])},on=(t,e,n,{setDateInFocus:r,showCalendarInternal:s,hideCalendarInternal:i,setFirstFocusedInput:l,setCurrentPanel:a})=>{const d=o.useCallback(g=>{var h;g.target.value[0]!=="0"&&(n==null||n({startDate:(h=g.target.valueAsDate)!=null?h:void 0,endDate:e}))},[n,e]),u=o.useCallback(g=>{var h;g.target.value[0]!=="0"&&(n==null||n({startDate:t,endDate:(h=g.target.valueAsDate)!=null?h:void 0}))},[n,t]),x=o.useCallback(()=>{r(t||e||new Date),a("calendar"),s()},[t,e,a,s,r]),y=o.useCallback(()=>{l(void 0),i()},[l,i]);return{inputLeftChangeHandler:d,inputRightChangeHandler:u,hideCalendar:y,setDateInFocus:r,setCurrentPanel:a,showCalendar:x}},an=(t,e)=>{const[n,r,s]=D.useBoolean(!1),[i,l]=o.useState(void 0),[a,d]=o.useState("startDate"),[u,x]=o.useState(()=>{const h=a==="startDate"?t:a==="endDate"?e:void 0;return h!=null?h:new Date}),[y,g]=o.useState("calendar");return{isCalendarVisible:n,showCalendarInternal:r,hideCalendarInternal:s,firstFocusedInput:i,setFirstFocusedInput:l,focusedInput:a,setFocusedInput:d,dateInFocus:u,setDateInFocus:x,currentPanel:y,setCurrentPanel:g}},ln=(t,e,n,r,s,i,l,{firstFocusedInput:a,setFirstFocusedInput:d,isCalendarVisible:u,setFocusedInput:x,focusedInput:y,setCurrentPanel:g})=>{const h=o.useCallback(()=>{a==null&&d("startDate"),x("startDate"),u||i()},[u,x,i,d,a]),m=o.useCallback(()=>{a==null&&d("endDate"),x("endDate"),u||i()},[u,x,i,d,a]),p=o.useCallback(b=>{var C,M,R,E;y==="startDate"?e!=null&&f.isAfter(b.date,e)?(n==null||n({startDate:b.date,endDate:void 0}),x("endDate"),(C=s.current)==null||C.focus()):(n==null||n({startDate:b.date,endDate:e}),a==="startDate"?(x("endDate"),(M=s.current)==null||M.focus()):setTimeout(l,50)):y==="endDate"&&(t?f.isAfter(t,b.date)?(n==null||n({startDate:b.date,endDate:void 0}),x("endDate"),(E=s.current)==null||E.focus()):(n==null||n({startDate:t,endDate:b.date}),setTimeout(l,50)):(n==null||n({startDate:t,endDate:b.date}),x("startDate"),(R=r.current)==null||R.focus()))},[y,n,e,a,x,s,l,t,r]),w=o.useCallback(()=>{g("presets"),i()},[g,i]),S=o.useCallback(()=>{var b;u?l():(x("startDate"),d("startDate"),(b=r.current)==null||b.focus(),g("calendar"),i())},[u,l,x,d,r,g,i]),k=o.useCallback(b=>{b.key==="Escape"&&l()},[l]);return{onFocusLeft:h,onFocusRight:m,onClickDay:p,onClickArrowButton:w,onClickCalendarButton:S,onKeyDownHandler:k}};function dn({value:t,onValueChange:e,autoFocus:n,onBlur:r,onEnter:s,onEsc:i,minDate:l,maxDate:a=rt,calendarProps:d,widthLeft:u=128,widthRight:x=128,variant:y,disabled:g}){const{startDate:h,endDate:m}=t||{},p=o.useRef(null),w=o.useRef(null),S=an(h,m),{dateInFocus:k,setDateInFocus:b,isCalendarVisible:C,currentPanel:M,setCurrentPanel:R}=S,{showCalendar:E,hideCalendar:N,inputLeftChangeHandler:A,inputRightChangeHandler:Y}=on(h,m,e,S),{onKeyDownHandler:W,onFocusRight:H,onFocusLeft:K,onClickDay:Z,onClickCalendarButton:G,onClickArrowButton:O}=ln(h,m,e,p,w,E,N,S);cn(h,m,b,p,w);const v=o.useMemo(()=>h&&m&&f.isAfter(h,m),[h,m]),V=o.useMemo(()=>Rt(d==null?void 0:d.statePerMonth,h,m,k),[d==null?void 0:d.statePerMonth,h,m,k]),tt=D.useDelayedFalse(C,300);return c.jsx(D.Box,{onKeyDown:W,children:c.jsx(X.Popover,{arrow:!1,lazy:!0,disabled:g,placement:nt,onClickOutside:N,visible:C,content:tt&&c.jsx(q,{onClickDay:Z,dateInFocus:k,setDateInFocus:b,currentPanel:M,setCurrentPanel:R,minDate:l,maxDate:a,...d,statePerMonth:V}),children:c.jsx(vt,{autoFocusLeft:n,onEsc:i,onEnter:s,onBlur:r,disabled:g,separatorIcon:j.stenaArrowRight,typeLeft:"date",typeRight:"date",placeholderLeft:"Start date",placeholderRight:"End date",onChangeLeft:A,onChangeRight:Y,onClickArrowDown:O,onClickCalendar:G,onFocusLeft:K,onFocusRight:H,onClickLeft:K,onClickRight:H,inputRefLeft:p,inputRefRight:w,variant:v?"error":y,widthLeft:u,widthRight:x,minLeft:l,maxLeft:a,minRight:l,maxRight:a})})})}exports.Calendar=at;exports.CalendarDay=jt;exports.DateInput=Oe;exports.DateRangeCalendar=Ae;exports.DateRangeDualTextInput=dn;exports.DateRangeExclusionCalendar=Le;exports.DateRangeInput=Fe;exports.DateTextInput=$e;exports.DateTimeInput=sn;exports.Month=B;exports.MonthPicker=Ut;exports.MultiDateCalendar=Be;exports.PresetPicker=Ft;exports.SingleDateCalendar=wt;exports.SingleWeekCalendar=Ne;exports.TimeTextInput=ze;exports.WeekDay=At;exports.WeekDayCell=Ot;exports.WeekNumberCell=Pt;exports.YearPicker=$t;exports.addDayStateHighlights=L;exports.addDayStateHighlightsOnSingleDay=yt;exports.addWeekRangeHighlights=Tt;exports.addWeekStateHighlights=ie;exports.buildDayStateForDateRange=Q;exports.buildDayStateForRange=Et;exports.buildDayStateForSingleMonth=Rt;exports.calculateOverflowingMonth=Ht;exports.createDay=Bt;exports.dateRangeToStrings=_t;exports.dayHasHighlight=Yt;exports.dayHighlightSelect=F;exports.defaultCalendarTheme=z;exports.defaultTextPropsProvider=Lt;exports.defaultWrapperStyleProvider=Wt;exports.extranetCalendarTheme=de;exports.getDaysForWeekForDate=Nt;exports.getMonthInYear=bt;exports.getMonthsInYear=xt;exports.getWeekForDate=ut;exports.getWeeksForMonth=It;exports.isDateRangeInvalid=mt;exports.setDayStateValue=se;exports.setDayStateValueFunction=ce;exports.stringsToDateRange=zt;exports.toggleDateStringsIfEndIsEarlierThanStart=Te;exports.toggleDatesIfEndIsEarlierThanStart=kt;exports.useDateRangeCalendarState=Ie;exports.useDateRangeExclusionSelection=Xt;exports.useDateRangeSelection=Jt;exports.useMultiDateSelection=Gt;exports.useSingleDateSelection=Kt;exports.useSingleWeekSelection=Qt;
3
3
  //# sourceMappingURL=index.js.map