@stenajs-webui/calendar 19.0.4 → 19.0.5

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