@stenajs-webui/calendar 21.21.3 → 21.22.0
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/features/localize-date-format/LocaleMapper.d.ts +1 -1
- package/dist/index.es.js +550 -534
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +8 -8
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("._calendar_1b766_1{--swui-calendar-day-width: 48px;--swui-calendar-day-height: 48px;--swui-calendar-day-border-radius: var(--swui-max-border-radius);--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(--modern-red);--swui-calendar-wrapper-selected-background: var(--modern-red);--swui-calendar-wrapper-range-border: var(--lhds-color-red-100);--swui-calendar-wrapper-range-background: var(--lhds-color-red-100);--swui-calendar-wrapper-today-border: var(--lhds-color-ui-200);--swui-calendar-wrapper-today-background: var(--lhds-color-ui-50);--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_1b766_1 table{border-spacing:0 4px}._calendar_1b766_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_1b766_1._weekNumberVisible_1b766_41 tr td:nth-child(2),._calendar_1b766_1:not(._weekNumberVisible_1b766_41) tr td:first-child{border-top-left-radius:var(--swui-calendar-day-border-radius);border-bottom-left-radius:var(--swui-calendar-day-border-radius)}._calendar_1b766_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}._travelDateCell_h6vcn_1{position:relative}._travelDateCell_h6vcn_1._small_h6vcn_4{width:40px;height:40px}._travelDateCell_h6vcn_1._medium_h6vcn_9{width:48px;height:48px}._travelDateCell_h6vcn_1._large_h6vcn_14{width:56px;height:28px}._travelDateCell_h6vcn_1{border-radius:var(--swui-max-border-radius)}._travelDateCell_h6vcn_1:focus{outline:none}._travelDateCell_h6vcn_1:focus-visible ._outline_h6vcn_26{outline:var(--swui-focus-outline);outline-width:var(--swui-focus-outline-width);background:transparent;position:absolute;border-radius:var(--swui-max-border-radius);top:0;bottom:0;left:0;right:0;z-index:10}._travelDateCell_h6vcn_1:focus-visible ._contentWrapper_h6vcn_39._contentWrapper_h6vcn_39._contentWrapper_h6vcn_39{border-color:transparent}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39{cursor:pointer;border-radius:var(--swui-max-border-radius);border-width:2px;border-style:solid;border-color:transparent;background:transparent;position:absolute;display:flex;align-items:center;justify-content:center;left:0;right:0;top:0;bottom:0}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._disabled_h6vcn_60{cursor:not-allowed}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._isToday_h6vcn_63{border-color:var(--lhds-color-ui-400)}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._isSelectionStart_h6vcn_67,._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._isSelectionEnd_h6vcn_68{border-color:var(--modern-red)}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._isSelectionStart_h6vcn_67{background:var(--modern-red)}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._isSelectionStart_h6vcn_67 span{color:#fff}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._isSelectionEnd_h6vcn_68:not(._isSelectionStart_h6vcn_67){background:#fff}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._hover_h6vcn_83{border-color:var(--modern-red)}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._hover_h6vcn_83._startSelected_h6vcn_86:not(._endSelected_h6vcn_86):not(._isSelectionStart_h6vcn_67){background:#fff}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._hover_h6vcn_83._startSelected_h6vcn_86:not(._endSelected_h6vcn_86):not(._isSelectionStart_h6vcn_67) span{color:var(--swui-text-primary-color)}._travelDateCellBackground_1k07m_1._small_1k07m_2{width:20px;height:40px}._travelDateCellBackground_1k07m_1._medium_1k07m_7{width:24px;height:48px}._travelDateCellBackground_1k07m_1._large_1k07m_12{width:28px;height:56px}._travelCalendar_18pjj_1{border-spacing:0 4px;width:-moz-fit-content;width:fit-content}._travelCalendar_18pjj_1 td{padding:0}._travelDateRangeInput_1j7rp_1 ._overlay_1j7rp_2{transition:opacity var(--swui-animation-time-fast) ease-in-out;opacity:1}._travelDateRangeInput_1j7rp_1 ._overlay_1j7rp_2:not(._travelDateRangeInput_1j7rp_1 ._overlay_1j7rp_2._calendarVisible_1j7rp_6){opacity:0}._travelDateInput_hmfbf_1 ._overlay_hmfbf_2{transition:opacity var(--swui-animation-time-fast) ease-in-out;opacity:1}._travelDateInput_hmfbf_1 ._overlay_hmfbf_2:not(._travelDateInput_hmfbf_1 ._overlay_hmfbf_2._calendarVisible_hmfbf_6){opacity:0}")),document.head.appendChild(e)}}catch(r){console.error("vite-plugin-css-injected-by-js",r)}})();
|
|
2
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),m=require("@stenajs-webui/core"),M=require("@stenajs-webui/elements"),d=require("date-fns"),P=require("date-fns/locale"),z=require("lodash-es"),c=require("react"),ae=require("classnames"),Be=require("@emotion/styled"),Q=require("@stenajs-webui/forms"),ge=require("@stenajs-webui/tooltip"),Me=require("@stenajs-webui/theme"),It=require("@stenajs-webui/input-mask");function Bt(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const We=Bt(c),te={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"},ue=(e={},t,r)=>{if(t&&r&&d.isAfter(r,t))return d.eachDayOfInterval({start:t,end:r}).reduce((s,a)=>{const i=d.isSameDay(a,t),l=d.isSameDay(a,r);return ee(s,a,i?["selected","selectedStart","range"]:l?["selected","selectedEnd","range"]:["range"])},e);let n=e;return t&&(n=ee(n,t,["selected","singleSelected"])),r&&(n=ee(n,r,["selected","singleSelected"])),n},Ze=(e={},t,r,n)=>Ve(e,t,r,d.startOfMonth(n),d.endOfMonth(n)),Ve=(e={},t,r,n,s)=>t&&r?ue(e,d.max([t,d.subDays(n,1)]),d.min([r,d.addDays(s,1)])):ue(e,t,r),Et=(e,t,r)=>{const n=d.format(t,te.yearAndMonth),s=d.getISOWeek(t),a=d.getDate(t);return{...e,[n]:{...e&&e[n],[s]:{...e&&e[n]&&e[n][s],[a]:{...e&&e[n]&&e[n][s]&&e[n][s][a],...r}}}}},At=(e,t,r)=>{const n=d.format(t,te.yearAndMonth),s=d.getISOWeek(t),a=d.getDate(t);return{...e,[n]:{...e&&e[n],[s]:{...e&&e[n]&&e[n][s],[a]:{...e&&e[n]&&e[n][s]&&e[n][s][a],...r(e&&e[n]&&e[n][s]&&e[n][s][a])}}}}},ee=(e,t,r)=>{const n=t.getMonth()+1,s=`${t.getFullYear()}-${n<10?"0":""}${n}`,a=d.getISOWeek(t),i=d.getDate(t),l=e&&e[s]&&e[s][a]&&e[s][a][i];return{...e,[s]:{...e&&e[s],[a]:{...e&&e[s]&&e[s][a],[i]:Fe(l,r)}}}},Fe=(e,t)=>({...e,highlights:[...(e==null?void 0:e.highlights)??[],...t]}),Lt=(e,t,r)=>{const n=t.days[0].date,s=n.getMonth()+1,a=`${n.getFullYear()}-${s<10?"0":""}${s}`,i=t.weekNumber;let l=e;t.days.forEach(D=>{l=ee(l,D.date,r)});const u=l&&l[a]?l[a][i]:void 0,f=u&&u.highlights?[...u.highlights,...r]:r,h={...u,highlights:f};return{...l,[a]:{...e&&e[a],[i]:h}}},et=(e,t)=>{var s;if(!t.days.length)return{...e};const r=t.days[0].date,n=(s=z.last(t.days))==null?void 0:s.date;return{...ue(e,r,n)}},_t=(e,t)=>c.useMemo(()=>e?ee(t,new Date,["today"]):t,[e,t]);var tt=(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))(tt||{}),rt=(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))(rt||{});const Ne=(e,t,r,n)=>{const s=[];for(let a=0;a<r;a++)s.push(xe(e,t+a,n));return s},xe=(e,t,r)=>{if(isNaN(e)||isNaN(t))throw new Error("getMonthInYear() received NaN.");const n=e+Math.floor(t/12),s=t%12,a=new Date(n,s,1);return{monthString:d.format(a,te.yearAndMonth),name:z.startCase(d.format(a,te.fullMonthName,{locale:r})),year:n,monthInYear:s,weeks:nt(n,s,r)}},nt=(e,t,r,n=!0)=>{const s=new Date(e,t,1),a=d.startOfWeek(s,{locale:r}),i=[];for(let l=0;l<6;l++){const u=Re(d.addWeeks(a,l),r);if(l>0&&u.startMonth!==t&&!n)return i;i.push(u)}return i},Re=(e,t)=>{const r=d.getMonth(d.addDays(e,7))!==d.getMonth(e);return{weekNumber:d.getWeek(e,{locale:t}),startMonth:d.getMonth(e),startYear:d.getYear(e),endMonth:d.getMonth(d.addDays(e,6)),endYear:d.getYear(d.addDays(e,6)),days:ot(e,t),isLastWeekOfMonth:r}},st=(e,t)=>{const r=d.getISODay(e);return{date:e,name:d.format(e,"EEE",t?{locale:t}:void 0),fullName:d.format(e,"EEEE",t?{locale:t}:void 0),dateString:d.format(d.addHours(e,12),te.fullDate),weekNumber:d.getWeek(e,{locale:t}),year:d.getYear(e),month:d.getMonth(e),dayOfMonth:d.getDate(e),dayOfWeek:r,isFirstDayOfWeek:r===1,isLastDayOfWeek:r===7,isFirstDayOfMonth:d.isSameDay(d.startOfMonth(e),e),isLastDayOfMonth:d.isSameDay(d.endOfMonth(e),e)}},ot=(e,t)=>d.eachDayOfInterval({start:e,end:d.addDays(e,6)}).map(r=>st(r,t)),at=(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},Nt="_calendar_1b766_1",vt="_weekNumberVisible_1b766_41",Ge={calendar:Nt,weekNumberVisible:vt},it=(e,t,r)=>!!(t&&t.indexOf(r)>=0||e&&e.highlights&&e.highlights.indexOf(r)>=0),V=(e,t,r,n,s)=>{if(r.length!==n.length)throw new Error("Select highlight failed, number of values do not equal number of highlights.");if(r.length===0)return s;for(let a=0;a<r.length;a++)if(typeof r[a]=="boolean"&&r[a]||typeof r[a]=="string"&&it(e,t,r[a]))return n[a];return s},ct=({selectedBackground:e,todayBackground:t,rangeBackground:r,borderColor:n="transparent"})=>(s,a,i,l,u)=>({backgroundColor:V(a,s,["selected","range","today",i.month===u.monthInYear],[e,r,t,"#fff"],"transparent"),borderWidth:"1px",borderStyle:"solid",borderColor:V(a,s,["selectedStart","selectedEnd","singleSelected","range","today"],["var(--swui-calendar-wrapper-range-background)","var(--swui-calendar-wrapper-range-background)","var(--swui-calendar-wrapper-range-background)","var(--swui-calendar-wrapper-range-border)","var(--lhds-color-ui-500)"],n),borderTopLeftRadius:V(a,s,["selectedStart","singleSelected","today"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],"unset"),borderBottomLeftRadius:V(a,s,["selectedStart","singleSelected","today"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],"unset"),borderTopRightRadius:V(a,s,["selectedEnd","singleSelected","today"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],"unset"),borderBottomRightRadius:V(a,s,["selectedEnd","singleSelected","today"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],"unset"),boxSizing:"border-box"}),lt=({selectedColor:e,disabledColor:t,inOtherMonthColor:r,rangeTextColor:n})=>(s,a,i,l,u)=>{const f=i.month!==u.monthInYear;return{color:V(a,s,[f,"selected","range","enabled","disabled"],[r,e,n,void 0,t])}},oe={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)"},WeekDay:{textColor:"var(--swui-calendar-week-day-text-color)",clickableTextColor:"var(--swui-calendar-week-day-clickable-text-color)"},CalendarDay:{tdStyle:ct({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)"}},Pt={...oe,width:"37px",height:"37px"},dt=({onClickWeekDay:e,day:t,theme:r})=>{const n=o.jsx(m.Box,{width:r.width,height:r.height,justifyContent:"center",alignItems:"center",children:o.jsx(m.Text,{size:"small",color:e?r.WeekDay.clickableTextColor:r.WeekDay.textColor,children:t.name})});return e?o.jsx(m.Clickable,{borderRadius:"var(--swui-calendar-day-border-radius)",onClick:s=>e(t.dayOfWeek,s),disableFocusHighlight:!e,children:n}):n},He=function({day:t,week:r,month:n,dayState:s,userData:a,onClickDay:i,theme:l,extraDayContent:u,defaultHighlights:f}){const h=o.jsx(m.Box,{width:"100%",height:"100%",justifyContent:"center",alignItems:"center",children:o.jsx(m.Text,{...l.CalendarDay.textProps&&l.CalendarDay.textProps(f,s,t,r,n,a),children:t.dayOfMonth})}),D=Be.td({...l.CalendarDay.tdStyle&&l.CalendarDay.tdStyle(f,s,t,r,n,a)}),x=Be.div({...l.CalendarDay.innerWrapperStyle&&l.CalendarDay.innerWrapperStyle(f,s,t,r,n,a),width:"100%",height:"100%"}),g=Be.div({...l.CalendarDay.cellWrapperStyle&&l.CalendarDay.cellWrapperStyle(f,s,t,r,n,a),width:"100%",height:"100%",position:"relative"}),b=Yt(f,s);return o.jsx(D,{onClick:b?void 0:w=>i==null?void 0:i(t,a,w),children:o.jsx(x,{children:o.jsx(g,{children:t.month===n.monthInYear&&o.jsxs(o.Fragment,{children:[u&&o.jsx(u,{week:r,month:n,day:t,dayState:s,theme:l,userData:a}),h]})})})})},Yt=(e,t)=>!!V(t,e,["disabled"],[!0],!1),ut=({onClickWeek:e,theme:t,week:r,background:n,backgroundColor:s,prefix:a})=>{const i=o.jsxs(m.Box,{width:t.width,height:t.height,justifyContent:"center",alignItems:"center",children:[n&&o.jsx(m.Box,{position:"absolute",children:n}),o.jsx(m.Box,{position:"absolute",children:o.jsxs(m.Text,{color:e?t.WeekNumber.clickableTextColor:t.WeekNumber.textColor,children:[a,r.weekNumber]})})]});return o.jsx(m.Box,{background:s||t.WeekNumber.backgroundColor,position:"relative",children:e?o.jsx(m.Clickable,{borderRadius:"var(--swui-calendar-day-border-radius)",onClick:l=>e(r,l),disableFocusHighlight:!e,children:i}):i})},Wt=(e,t,r)=>t&&d.isBefore(e,t)?d.isSameDay(e,t):r&&d.isAfter(e,r)?d.isSameDay(e,r):!0,Ft=function({dayComponent:t,minDate:r,maxDate:n,dayState:s,day:a,...i}){const l=c.useMemo(()=>Wt(a.date,r,n)?s:Fe(s,["disabled"]),[a.date,s,n,r]);return o.jsx(t,{day:a,...i,dayState:l})};function Ht({month:e,dayComponent:t=He,statePerWeek:r,userDataPerWeek:n,minDate:s,maxDate:a,onClickDay:i,onClickWeek:l,onClickWeekDay:u,onClickMonth:f,renderWeekNumber:h,renderWeekDay:D,headerRightContent:x,theme:g=oe,extraDayContent:b,defaultHighlights:w,showWeekNumber:S}){return o.jsx(o.Fragment,{children:o.jsxs(m.Box,{alignItems:"stretch",children:[o.jsxs(m.Row,{justifyContent:x?"space-between":"center",alignItems:"center",children:[o.jsx(m.Row,{justifyContent:"center",alignItems:"center",children:f?o.jsx(M.FlatButton,{onClick:()=>f(e),label:e.name+" "+String(e.year),rightIcon:M.stenaAngleDown}):o.jsxs(m.Text,{whiteSpace:"nowrap",children:[e.name," ",e.year]})}),x&&o.jsx(m.Box,{alignItems:"center",children:x})]}),o.jsx("table",{children:o.jsxs("tbody",{children:[o.jsxs("tr",{children:[S&&o.jsx("td",{children:o.jsx(m.Box,{width:g.width,height:g.height})}),e.weeks[0].days.map(y=>o.jsx("td",{children:D?D(y.name,g,u):o.jsx(dt,{day:y,onClickWeekDay:u,theme:g})},y.name))]}),e.weeks.map(y=>o.jsxs("tr",{children:[S&&o.jsx("td",{children:h?h(y,g,l):o.jsx(ut,{week:y,onClickWeek:l,theme:g})}),y.days.map(p=>o.jsx(Ft,{dayComponent:t,day:p,week:y,month:e,dayState:r&&r[y.weekNumber]&&r[y.weekNumber][p.dayOfMonth],userData:n&&n[y.weekNumber]&&n[y.weekNumber][p.dayOfMonth],onClickDay:i,theme:g,extraDayContent:b,defaultHighlights:w,minDate:s,maxDate:a},p.dateString))]},y.weekNumber))]})})]})})}function Ot({monthRows:e,dayComponent:t=He,userDataPerMonth:r,statePerMonth:n,minDate:s,maxDate:a,onClickDay:i,onClickWeekDay:l,onClickWeek:u,onClickMonth:f,renderWeekDay:h,renderWeekNumber:D,headerRightContent:x,extraDayContent:g,defaultHighlights:b,showWeekNumber:w,theme:S=oe}){const y=c.useMemo(()=>s?d.parse(s,"yyyy-MM-dd",new Date):void 0,[s]),p=c.useMemo(()=>a?d.parse(a,"yyyy-MM-dd",new Date):void 0,[a]);return o.jsx("div",{className:ae(Ge.calendar,w&&Ge.weekNumberVisible),children:e.map((k,j)=>o.jsx(m.Spacing,{children:o.jsx(m.Row,{gap:2,children:k.map(C=>o.jsx(Ht,{month:C,dayComponent:t,userDataPerWeek:r&&r[C.monthString],statePerWeek:n&&n[C.monthString],onClickDay:i,onClickWeekDay:l,onClickWeek:u,onClickMonth:f,theme:S,renderWeekNumber:D,renderWeekDay:h,headerRightContent:x,extraDayContent:g,defaultHighlights:b,minDate:y,maxDate:p,showWeekNumber:w??!1},C.name))})},j))})}function we(e){const t=$t(e.year,e.month,e.date),{year:r,month:n}=at(t.year,t.month),s=Ut(r,n,e.locale??P.enGB,e.numMonths,e.monthsPerRow),a=_t(e.highlightToday,e.statePerMonth);return o.jsx(Ot,{year:r,month:n,monthRows:s,...e,statePerMonth:a})}const $t=(e,t,r)=>{if(t&&e)return{month:t,year:e};if(r)return{month:d.getMonth(r),year:d.getYear(r)};const n=new Date;return{month:d.getMonth(n),year:d.getYear(n)}},Ut=(e,t,r,n,s)=>n==null?[[xe(e,t,r)]]:s==null?[Ne(e,t,n,r)]:z.chunk(Ne(e,t,n,r),s),ft=(e,t)=>`${e.row}-${e.column}-${t}`,qt=(e,t,r,n)=>{let s=t;for(let a=0;a<n;a++){s=zt(s,e,n);const i=ft(s,r);if(document.getElementById(i))return i}},zt=(e,t,r)=>{let n=e.row,s=e.column;return t==="ArrowLeft"?s--:t==="ArrowUp"?n--:t==="ArrowRight"?s++:t==="ArrowDown"&&n++,s<0&&(s=r-1,n--),s>r-1&&(s=0,n++),{column:s,row:n}},fe={"en-US":P.enUS,"en-GB":P.enGB,"en-IE":P.enIE,"de-AT":P.deAT,"de-DE":P.de,"sv-SE":P.sv,"da-DK":P.da,"nl-BE":P.nlBE,"lv-LV":P.lv,fr:P.fr,de:P.de,es:P.es,sv:P.sv,pl:P.pl,da:P.da,nl:P.nl,lv:P.lv,nb:P.nb},Oe="en-GB",Kt="sv",$e=(e,t,r)=>{if(fe[e])return e;if(t){const n=ht(e);if(n)return n}return r},ie=e=>fe[e],ht=e=>{const[t]=e.split("-"),r=Object.keys(fe);for(const n of r)if(n.startsWith(t))return n},Gt=()=>fe.sv,mt=e=>{const t=Object.keys(fe);for(const r of t)if(fe[r].code===e.code)return r},Jt=({month:e,onClick:t,selected:r,localeCode:n,autoFocus:s,monthPickerId:a,position:i,size:l})=>{const u=c.useMemo(()=>ie(n)??ie("en-GB"),[n]),f=c.useMemo(()=>z.startCase(d.format(e,"MMM",{locale:u})),[u,e]),h=c.useMemo(()=>z.startCase(d.format(e,"MMMM",{locale:u})),[u,e]),D=c.useRef(null),x=ft(i,a),g=r?0:-1;c.useEffect(()=>{var w;(w=D.current)==null||w.focus()},[]);const b=c.useCallback(w=>{var y;const S=qt(w.key,i,a,4);S&&((y=document.getElementById(S))==null||y.focus())},[a,i]);return o.jsx(m.Row,{justifyContent:"center",onKeyDown:b,children:r?o.jsx(M.PrimaryButton,{id:x,"aria-label":h,label:f,onClick:t,"aria-selected":!0,autoFocus:s,ref:D,size:l==="large"?"large":"medium",tabIndex:g}):o.jsx(M.FlatButton,{id:x,label:f,"aria-label":h,onClick:t,size:l==="large"?"large":"medium",tabIndex:g})})},Qt=(e,t,r)=>{let n=e.getFullYear(),s=0,a=0,i=e;const l={yearOrder:[],rows:[],years:{},lastMonthColumn:-1,lastMonthRow:-1};for(let u=0;u<t;u++){if(l.years[n]==null&&(l.yearOrder.push(n),l.years[n]={year:n,rows:[]}),l.rows[s]=l.rows[s]??{columns:[],rowIndex:s},l.rows[s].columns[a]={position:{column:a,row:s},month:i},u===t-1){l.years[n].rows.push(s);break}i=d.addMonths(i,1),i.getFullYear()!==n?(l.years[n].rows.push(s),n++,a=0,s++):(a++,a>r-1&&(l.years[n].rows.push(s),a=0,s++))}return l.lastMonthColumn=a,l.lastMonthRow=s,l},he=({value:e,onValueChange:t,firstMonth:r,localeCode:n,numMonths:s,onCancel:a,size:i="medium"})=>{const l=c.useId(),u=m.useToday(),f=s>0?s:12,[h,D]=c.useState(!1),x=Qt(r,f,Zt(i)),g=c.useMemo(()=>d.addMonths(r,f),[f,r]);c.useEffect(()=>{D(!0)},[]);const b=c.useCallback(w=>{w.key==="Escape"&&(a==null||a(),w.preventDefault(),w.stopPropagation())},[a]);return o.jsx(m.Column,{gap:1,maxWidth:Xt(i),onKeyDown:b,children:x.yearOrder.map((w,S)=>{const{rows:y}=x.years[w];return o.jsxs(We.Fragment,{children:[(S!==0||w!==u.getFullYear())&&o.jsx(m.Heading,{variant:"h4",children:w}),o.jsx("table",{style:{borderSpacing:"0 8px"},children:o.jsx("tbody",{children:y.map(p=>{const{columns:k}=x.rows[p];return o.jsx("tr",{children:k.map(({month:j,position:C})=>o.jsx("td",{children:o.jsx(Jt,{month:j,firstAvailableMonth:r,lastAvailableMonth:g,localeCode:n,selected:e?d.isSameMonth(e,j):!1,autoFocus:h,onClick:()=>t==null?void 0:t(j),monthPickerId:l,position:C,size:i})},j.getMonth()))},p)})})})]},w)})})},Xt=e=>{switch(e){case"small":return"280px";case"medium":return"336px";case"large":return"448px";default:return m.exhaustSwitchCase(e,"336px")}},Zt=e=>{switch(e){case"small":return 3;case"medium":return 4;case"large":return 5;default:return m.exhaustSwitchCase(e,4)}},Vt=e=>[{label:"Past",presets:[{label:"Last 3 days",startDate:e,endDate:d.subDays(e,2)},{label:"Last 7 days",startDate:e,endDate:d.subDays(e,6)},{label:"Last 30 days",startDate:e,endDate:d.subDays(e,29)},{label:"Last 45 days",startDate:e,endDate:d.subDays(e,44)}]},{label:"Future",presets:[{label:"Next 3 days",startDate:e,endDate:d.addDays(e,2)},{label:"Next 7 days",startDate:e,endDate:d.addDays(e,6)},{label:"Next 30 days",startDate:e,endDate:d.addDays(e,29)},{label:"Next 45 days",startDate:e,endDate:d.addDays(e,44)}]}],gt=({onClickPreset:e})=>{const[t,r]=c.useState(0),n=c.useMemo(()=>Vt(new Date),[]),s=n[t]??n[0];return o.jsxs(m.Column,{children:[o.jsxs(m.Row,{justifyContent:"space-between",alignItems:"center",width:"200px",children:[o.jsx(M.FlatButton,{size:"small",leftIcon:M.stenaAngleLeft,disabled:t===0,onClick:()=>r(t-1)}),o.jsx(m.Text,{children:s.label}),o.jsx(M.FlatButton,{size:"small",leftIcon:M.stenaAngleRight,disabled:t===n.length-1,onClick:()=>r(t+1)})]}),o.jsx(m.Space,{}),o.jsx(m.Column,{alignItems:"center",children:s.presets.map(a=>o.jsxs(We.Fragment,{children:[o.jsx(M.PrimaryButton,{label:a.label,onClick:()=>e(a)}),o.jsx(m.Space,{})]},a.label))})]})},er=function({locale:t,dateInFocus:r,firstMonthInMonthPicker:n,setDateInFocus:s,currentPanel:a,setCurrentPanel:i,renderMonthPicker:l,...u}){const f=c.useMemo(()=>t==null?"en-GB":mt(t)??"en-GB",[t]),h=m.useToday(),D=c.useCallback(g=>{s&&s(g),i("calendar")},[s,i]),x=c.useCallback(()=>{i("month")},[i]);switch(a){case"calendar":return o.jsx(we,{...u,date:r,onClickMonth:x,locale:t});case"month":return l?l({value:r,onValueChange:D,locale:t,firstMonth:n??h,numMonths:24,dateInFocus:r}):o.jsx(he,{value:r,onValueChange:D,localeCode:f,firstMonth:n??h,numMonths:24});case"presets":return o.jsx(gt,{onClickPreset:()=>{}});default:return o.jsx(m.Box,{children:o.jsx(M.PrimaryButton,{label:"Show calendar",onClick:()=>i("calendar")})})}},tr=(e,t,r,n)=>{const s=c.useCallback(()=>{const u=d.addMonths(e,r??n??1);t==null||t(u)},[t,e,r,n]),a=c.useCallback(()=>{const u=d.addYears(e,1);t==null||t(u)},[t,e]),i=c.useCallback(()=>{const u=d.subMonths(e,r??n??1);t==null||t(u)},[t,e,r,n]),l=c.useCallback(()=>{const u=d.subYears(e,1);t==null||t(u)},[t,e]);return{nextMonth:s,prevMonth:i,nextYear:a,prevYear:l}},rr=({children:e,prevMonth:t,nextMonth:r,prevYear:n,nextYear:s})=>o.jsxs("div",{children:[e,o.jsx(m.Indent,{children:o.jsxs(m.Row,{gap:1,children:[o.jsx(M.SecondaryButton,{onClick:n,leftIcon:M.stenaAngleLeftDouble}),o.jsx(M.SecondaryButton,{onClick:t,leftIcon:M.stenaArrowLeft}),o.jsx(m.Indent,{num:2}),o.jsx(M.SecondaryButton,{onClick:r,leftIcon:M.stenaArrowRight}),o.jsx(M.SecondaryButton,{onClick:s,leftIcon:M.stenaAngleRightDouble})]})}),o.jsx(m.Space,{})]}),nr=()=>{};function ce({monthSwitcherPlacement:e,theme:t=oe,dateInFocus:r,setDateInFocus:n,currentPanel:s,firstMonthInMonthPicker:a,setCurrentPanel:i,onSelectPreset:l=nr,renderMonthPicker:u,...f}){const{nextMonth:h,prevMonth:D,nextYear:x,prevYear:g}=tr(r,n,f.monthsPerRow,f.numMonths);switch(sr(e,f.numMonths)){case"below":return o.jsx(rr,{theme:t,nextMonth:h,prevMonth:D,nextYear:x,prevYear:g,children:o.jsx(we,{...f,theme:t,date:r})});case"header":return o.jsx(m.Column,{children:o.jsx(er,{...f,theme:t,renderMonthPicker:u,dateInFocus:r,firstMonthInMonthPicker:a,setDateInFocus:n,currentPanel:s,setCurrentPanel:i,onSelectPreset:l,headerRightContent:o.jsxs(m.Row,{alignItems:"center",gap:1,children:[o.jsx(M.SecondaryButton,{onClick:D,leftIcon:M.stenaArrowLeft}),o.jsx(M.SecondaryButton,{onClick:h,leftIcon:M.stenaArrowRight})]})})});default:return o.jsx(we,{...f,theme:t,date:r})}}const sr=(e,t)=>e||(t||1)>1?"below":"header",xt=e=>({startDate:e.startDate?d.format(e.startDate,"yyyy-MM-dd"):void 0,endDate:e.endDate?d.format(e.endDate,"yyyy-MM-dd"):void 0}),Dt=({startDate:e,endDate:t})=>{const r=new Date;return{startDate:e?d.parse(e,"yyyy-MM-dd",r):void 0,endDate:t?d.parse(t,"yyyy-MM-dd",r):void 0}},Ue=({startDate:e,endDate:t})=>!!(e&&t&&!d.isSameDay(e,t)&&d.isAfter(e,t)),qe=e=>Ue(e)?{startDate:e.endDate,endDate:e.startDate}:e,or=e=>e.startDate&&e.endDate?xt(qe(Dt(e))):e,ar=(e,t,r,n)=>c.useCallback(s=>{const a={startDate:r==="startDate"?s.date:e==null?void 0:e.startDate,endDate:r==="endDate"?s.date:e==null?void 0:e.endDate};Ue(a)||n(r==="startDate"?"endDate":"startDate"),t==null||t(qe(a))},[r,t,n,e==null?void 0:e.endDate,e==null?void 0:e.startDate]),Ce=e=>{const[t,r]=c.useState("calendar"),n=c.useCallback(s=>{r(s),e==null||e(s)},[e]);return{currentPanel:t,setCurrentPanel:n}},bt=({focusedInput:e,value:t,onValueChange:r,setFocusedInput:n,statePerMonth:s,onChangePanel:a,initialDateInFocus:i})=>{const{currentPanel:l,setCurrentPanel:u}=Ce(a),[f,h]=c.useState(()=>i??new Date),D=ar(t,r,e,n),x=c.useMemo(()=>ue(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:D,statePerMonth:x,currentPanel:l,setCurrentPanel:u,setDateInFocus:h,dateInFocus:f}};function ir(e){const t=bt(e);return o.jsx(ce,{...e,...t})}const cr=()=>{const[e,t]=c.useState(),[r,n]=c.useState(),[s,a]=c.useState("startDate");return{startDate:e,setStartDate:t,endDate:r,setEndDate:n,focusedInput:s,setFocusedInput:a}},yt=({onChange:e,value:t,statePerMonth:r,onChangePanel:n})=>{const{currentPanel:s,setCurrentPanel:a}=Ce(n),[i,l]=c.useState(()=>t??new Date),u=c.useCallback(h=>{e&&e(h.date)},[e]),f=c.useMemo(()=>t?ee(r,t,["selected","singleSelected"]):r,[r,t]);return{onClickDay:u,statePerMonth:f,date:t,currentPanel:s,setCurrentPanel:a,dateInFocus:i,setDateInFocus:l}};function ze(e){const t=yt(e);return o.jsx(ce,{...e,...t})}const pt=({onChange:e,value:t,statePerMonth:r,onChangePanel:n})=>{const{currentPanel:s,setCurrentPanel:a}=Ce(n),[i,l]=c.useState(()=>new Date),u=c.useCallback(h=>{if(!e)return;const D=t&&t.find(x=>d.isSameDay(x,h.date));e(t&&D?t.filter(x=>!d.isSameDay(x,h.date)):[...t||[],h.date])},[e,t]),f=c.useMemo(()=>t?t.reduce((h,D)=>ee(h,D,["selected"]),r):r,[r,t]);return{onClickDay:u,statePerMonth:f,currentPanel:s,setCurrentPanel:a,dateInFocus:i,setDateInFocus:l}};function lr(e){const t=pt(e);return o.jsx(ce,{...e,...t})}const wt=({onChange:e,value:t,statePerMonth:r,onChangePanel:n,locale:s=P.enGB})=>{const[a,i]=c.useState(()=>{const g=Ee(t,s);return g?g.days[0].date:new Date}),{currentPanel:l,setCurrentPanel:u}=Ce(n),f=c.useCallback(g=>{e&&e(Je(Re(g.date,s)))},[s,e]),h=c.useCallback(g=>{e&&e(Je(g))},[e]),D=c.useMemo(()=>{const g=Ee(t,s);return g?et(r,g):r},[t,s,r]),x=c.useMemo(()=>{const g=Ee(t,s);return g?g.days[0].date:new Date},[s,t]);return{statePerMonth:D,date:x,dateInFocus:a,setDateInFocus:i,onClickDay:f,onClickWeek:h,currentPanel:l,setCurrentPanel:u}},Je=e=>{if(e)return`${e.endYear}-${e.weekNumber}`},Ee=(e,t)=>{if(!e)return;const r=e.split("-"),n=parseInt(r[1],10),s=parseInt(r[0],10),a=new Date;a.setFullYear(s);const i=d.startOfWeek(d.setWeek(a,n),{locale:t});return Re(i,t)};function dr(e){const t=wt(e);return o.jsx(ce,{...e,...t})}const De="bottom",ur=(e,t,r)=>{const[n,s]=c.useState(r||!1),a=c.useCallback(()=>(s(!0),!0),[s]),i=c.useCallback(()=>{s(!1),t&&t()},[s,t]),l=c.useCallback(u=>{e&&e(u),setTimeout(i,150)},[e,i]);return{showCalendar:a,hideCalendar:i,showingCalendar:n,onSelectDate:l}},be="2999-12-31",fr=({displayFormat:e=te.fullDate,placeholder:t="Enter date",value:r,calendarTheme:n=oe,calendarProps:s,openOnMount:a,onClose:i,onChange:l,variant:u,width:f,minDate:h,maxDate:D=be,disabled:x,portalTarget:g,zIndex:b})=>{const{hideCalendar:w,showingCalendar:S,onSelectDate:y,showCalendar:p}=ur(l,i,a);return o.jsx(m.Box,{width:f,children:o.jsx(ge.ControlledPopover,{hideArrow:!0,open:S,onRequestClose:w,appendTo:g,zIndex:b,renderTrigger:k=>o.jsx(m.Box,{...k,children:o.jsx(Q.TextInput,{type:"date",onFocus:p,buttonRight:o.jsx(M.TextInputButton,{onClick:p,icon:M.stenaCalendar}),value:r?d.format(r,e):"",placeholder:t,size:9,disabled:x,autoFocus:a,variant:u,min:h,max:D})}),placement:De,children:o.jsx(ze,{...s,onChange:y,value:r,theme:n,minDate:h,maxDate:D})})})},hr=(e,t)=>{const r=c.useRef(null),n=c.useRef(null),[s,a]=c.useState(!1),[i,l]=c.useState(void 0),u=c.useCallback(()=>(l("startDate"),a(!0),!0),[l,a]),f=c.useCallback(()=>(l("endDate"),a(!0),!0),[l,a]),h=c.useCallback(()=>{a(!1)},[a]),D=c.useCallback(g=>{var b,w;i==="startDate"?(t==null||t({startDate:g.date,endDate:e==null?void 0:e.endDate}),e!=null&&e.endDate?setTimeout(h,150):(l("endDate"),(b=n.current)==null||b.focus())):i==="endDate"&&(t==null||t({startDate:e==null?void 0:e.startDate,endDate:g.date}),e!=null&&e.startDate?setTimeout(h,150):(l("startDate"),(w=r.current)==null||w.focus()))},[i,t,l,h,e]),x=c.useMemo(()=>(e==null?void 0:e.startDate)&&(e==null?void 0:e.endDate)&&d.isAfter(e.startDate,e.endDate),[e==null?void 0:e.startDate,e==null?void 0:e.endDate]);return{showingCalendar:s,hideCalendar:h,showCalendarEndDate:f,showCalendarStartDate:u,focusedInput:i,setFocusedInput:l,startDateInputRef:r,endDateInputRef:n,onClickDay:D,startDateIsAfterEnd:x}};function mr({displayFormat:e=te.fullDate,placeholderStartDate:t="Start date",placeholderEndDate:r="End date",value:n,onValueChange:s,width:a,calendarTheme:i=oe,calendarProps:l,minDate:u,maxDate:f=be,disabled:h,portalTarget:D,zIndex:x}){const[g,b]=c.useState("calendar"),{hideCalendar:w,showCalendarEndDate:S,showCalendarStartDate:y,showingCalendar:p,focusedInput:k,startDateInputRef:j,endDateInputRef:C,onClickDay:A,startDateIsAfterEnd:B}=hr(n,s),[T,R]=c.useState(()=>(k&&(n==null?void 0:n[k]))??new Date),E=c.useMemo(()=>ue(void 0,n==null?void 0:n.startDate,n==null?void 0:n.endDate),[n]);return o.jsx(ge.ControlledPopover,{hideArrow:!0,appendTo:D,zIndex:x,renderTrigger:_=>o.jsxs(m.Row,{alignItems:"center",..._,children:[o.jsx(Q.TextInput,{iconLeft:M.stenaCalendar,onFocus:y,value:n!=null&&n.startDate?d.format(n.startDate,e):"",placeholder:t,width:a,disabled:h,inputRef:j,size:9,variant:B?"error":void 0}),o.jsx(m.Space,{}),o.jsx(M.Icon,{icon:M.stenaArrowWideRight,color:Me.cssColor("--lhds-color-ui-500"),size:14}),o.jsx(m.Space,{}),o.jsx(Q.TextInput,{iconLeft:M.stenaCalendar,onFocus:S,value:n!=null&&n.endDate?d.format(n.endDate,e):"",placeholder:r,width:a,disabled:h,inputRef:C,size:9,variant:B?"error":void 0})]}),open:p,placement:De,onRequestClose:w,children:o.jsx(ce,{...l,dateInFocus:T,setDateInFocus:R,statePerMonth:E,theme:i,onClickDay:A,currentPanel:g,setCurrentPanel:b,minDate:u,maxDate:f})})}const gr=({calendarProps:e,closeOnCalendarSelectDate:t=!0,dateFormat:r=te.fullDate,disableCalender:n=!1,onValueChange:s,placeholder:a="yyyy-mm-dd",value:i,width:l="130px",calendarTheme:u=oe,hideCalenderIcon:f=!1,minDate:h,maxDate:D=be,variant:x,portalTarget:g,zIndex:b,...w})=>{const[S,y]=c.useState(!1),p=c.useCallback(()=>{y(!S)},[y,S]),k=c.useCallback(()=>{y(!1)},[y]),j=c.useCallback(E=>{s&&s(E)},[s]),C=c.useCallback(E=>{E&&(j(d.format(E,r)),t&&setTimeout(()=>y(!S),200))},[j,r,t,y,S]),A=!!i&&!/^[-/\\.0-9]+$/.test(i),B=!!i&&d.isValid(d.parse(i,r,new Date)),R=!!i&&i.length>=r.length&&!B||A;return o.jsx(m.Box,{width:l,children:o.jsx(ge.ControlledPopover,{appendTo:g,zIndex:b,renderTrigger:E=>o.jsx(Q.TextInput,{...w,variant:R?"error":x,disableContentPaddingRight:!0,contentRight:f?void 0:o.jsx(m.Row,{alignItems:"center",indent:.5,children:o.jsx(M.FlatButton,{size:"small",disabled:w.disabled||n,leftIcon:M.stenaCalendar,onClick:p})}),onValueChange:j,placeholder:a,value:i||"",min:h,max:D,size:10,...E}),hideArrow:!0,open:S,placement:De,onRequestClose:k,children:o.jsx(ze,{...e,onChange:C,value:i&&B?d.parse(i,r,new Date):void 0,minDate:h,maxDate:D,theme:u})})})},Se=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")}},ke=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")}},xr=e=>{if(!ve(e))return{time:e,success:!1};const t=e&&e.split(/-|:|,|;|[/]|[.]| /);if(t&&t.length===2)try{const r=Se(t[0]),n=ke(t[1]);return{time:`${r}:${n}`,success:!0}}catch{return{time:e,success:!1}}else if(t&&t.length===1){let r=0,n=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 n=parseInt(e.substring(1,3),10),n>=0&&n<=59?{time:`0${e.substring(0,1)}:${e.substring(1,3)}`,success:!0}:{time:e,success:!1};case 4:return r=parseInt(e.substring(0,2),10),n=parseInt(e.substring(2,4),10),r<0||r>23?{time:e,success:!1}:n<0||n>59?{time:e,success:!1}:{time:`${e.substring(0,2)}:${e.substring(2,4)}`,success:!0};default:return{time:e,success:!1}}}return{time:e,success:!1}},ve=e=>e?/^[-:.,/; 0-9]+$/.test(e):!0,Dr=({onValueChange:e,showPlaceholder:t=!0,useIcon:r=!0,value:n,width:s="85px",variant:a,...i})=>{const[l,u]=c.useState(()=>ve(n)),f="hh:mm",h=c.useCallback(()=>{if(n){const x=xr(n);u(x.success),x.success&&e&&e(x.time)}},[n,e,u]),D=c.useCallback(x=>{const g=x.target.value,b=ve(g);u(b&&g.length<=f.length),e&&e(g)},[e,u]);return o.jsx(Q.TextInput,{...i,type:"time",variant:l?a:"error",iconLeft:r?M.stenaClock:void 0,value:n,placeholder:t?f:void 0,onChange:D,onBlur:h,width:s})},St=({autoFocusLeft:e,autoFocusRight:t,onEsc:r,onEnter:n,onValueChangeLeft:s,onValueChangeRight:a,separatorIcon:i,placeholderLeft:l,placeholderRight:u,typeLeft:f,typeRight:h,onChangeLeft:D,onChangeRight:x,valueLeft:g,valueRight:b,minLeft:w,maxLeft:S,minRight:y,maxRight:p,onClickLeft:k,onClickRight:j,onClickCalendar:C,onClickArrowDown:A,onBlurLeft:B,onBlurRight:T,onFocusLeft:R,onFocusRight:E,inputRefLeft:_,inputRefRight:I,variant:U,variantLeft:Y,variantRight:H,onBlur:v,showPresets:O,widthLeft:q,widthRight:K,disabled:$})=>{const N=c.useRef(0),F=c.useMemo(()=>z.debounce(L=>{L===0&&(v==null||v())},10),[v]),re=c.useCallback(L=>{N.current++,F(N.current),R&&R(L)},[R,N,F]),J=c.useCallback(L=>{N.current++,F(N.current),E&&E(L)},[E,N,F]),X=c.useCallback(L=>{N.current--,F(N.current),B&&B(L)},[B,N,F]),W=c.useCallback(L=>{N.current--,F(N.current),T&&T(L)},[T,N,F]);return o.jsx(m.Box,{children:o.jsxs(Q.TextInputBox,{disableContentPaddingRight:!0,disabled:$,variant:U,contentRight:o.jsxs(m.Row,{alignItems:"center",children:[o.jsx(m.Indent,{num:.5,children:o.jsx(M.FlatButton,{leftIcon:M.stenaCalendar,onClick:C,disabled:$,size:"small"})}),O?o.jsxs(o.Fragment,{children:[o.jsx(m.Row,{height:"22px",children:o.jsx(m.SeparatorLine,{vertical:!0})}),o.jsx(m.Indent,{num:.5,children:o.jsx(M.FlatButton,{leftIcon:M.stenaAngleDown,onClick:A,disabled:$,size:"small"})})]}):null]}),children:[o.jsx(m.Box,{width:q,children:o.jsx(Q.TextInput,{onEsc:r,onEnter:n,onClick:k,disabled:$,hideBorder:!0,placeholder:l,value:g,onValueChange:s,onChange:D,onBlur:X,onFocus:re,inputRef:_,variant:Y,type:f,autoFocus:e,min:w,max:S})}),o.jsx(m.Row,{indent:.5,alignItems:"center",justifyContent:"center",children:o.jsx(M.Icon,{icon:i,size:12,color:Me.cssColor("--lhds-color-ui-500")})}),o.jsx(m.Box,{width:K,children:o.jsx(Q.TextInput,{onEsc:r,onEnter:n,onClick:j,disabled:$,hideBorder:!0,placeholder:u,value:b,onValueChange:a,onChange:x,onBlur:W,onFocus:J,inputRef:I,variant:H,type:h,autoFocus:t,min:y,max:p})})]})})},br=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 r=parseInt(t[0],10),n=parseInt(t[1],10);if(isNaN(r))throw new Error("Invalid time.");if(isNaN(n))throw new Error("Invalid time.");if(r<0||r>23)throw new Error("Invalid time.");if(n<0||n>59)throw new Error("Invalid time.");return r*100+n},yr=e=>{try{return br(e),!0}catch{return!1}},pe=e=>{if(e&&yr(e)){const t=e.split(":");return{hour:m.parseIntElseUndefined(t[0]),minute:m.parseIntElseUndefined(t[1])}}return{hour:void 0,minute:void 0}},pr=e=>`${Se(String(e.getHours()))}:${ke(String(e.getMinutes()))}`,wr="_timePicker_1w05d_1",Sr="_timePickerColumn_1w05d_6",kt={timePicker:wr,timePickerColumn:Sr},kr=({onClick:e,item:t,selected:r,columnRef:n,canScrollRef:s})=>{const a=c.useRef(null);return c.useEffect(function(){if(r&&n.current&&a.current&&s.current){const l=a.current.scrollHeight*Math.max(t-2,0);n.current.scrollTo(0,l),s.current=!1}},[n,t,r,s]),o.jsx(m.Row,{width:"64px",justifyContent:"center",spacing:.5,indent:.5,ref:a,children:r?o.jsx(M.PrimaryButton,{label:z.padStart(String(t),2,"0"),onClick:()=>e&&e(t)}):o.jsx(M.FlatButton,{label:String(t).padStart(2,"0"),onClick:()=>e&&e(t)})})},Qe=({onClick:e,items:t,selectedItem:r,canScrollRef:n})=>{const s=c.useRef(null);return o.jsx(m.Column,{className:kt.timePickerColumn,ref:s,children:t.map(a=>o.jsx(kr,{item:a,onClick:e,selected:a===r,columnRef:s,canScrollRef:n},a))})},jr=z.range(0,24),Mr=z.range(0,60),Rr=({value:e,onValueChange:t})=>{const r=c.useRef(!0),[n,s]=c.useState(void 0),[a,i]=c.useState(void 0);c.useEffect(()=>{if(e){const{minute:f,hour:h}=pe(e);s(h),i(f)}},[e]);const l=c.useCallback(f=>{s(f),t==null||t(`${Se(String(f??0))}:${ke(String(a??0))}`)},[a,t]),u=c.useCallback(f=>{i(f),t==null||t(`${Se(String(n??0))}:${ke(String(f??0))}`)},[n,t]);return o.jsxs(m.Row,{className:kt.timePicker,children:[o.jsx(Qe,{items:jr,onClick:l,selectedItem:n,canScrollRef:r}),o.jsx(m.Indent,{}),o.jsx(Qe,{items:Mr,onClick:u,selectedItem:a,canScrollRef:r})]})},Cr=(e,t,r)=>{c.useEffect(function(){e&&t(e)},[e,t]),c.useEffect(function(){r.current&&(e?r.current.valueAsDate=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())):r.current.valueAsDate=null)},[e,r])},Tr=(e,t,{setDateInFocus:r,showCalendarInternal:n,hideCalendarInternal:s,setFirstFocusedInput:a,setCurrentPanel:i,localTime:l,setLocalTime:u,localDate:f,setLocalDate:h},D)=>{const x=c.useCallback(p=>{if(!p)return;const k=new Date(p);if(e)k.setHours(e.getHours()),k.setMinutes(e.getMinutes()),t==null||t(k),h(void 0);else if(l){const{minute:j,hour:C}=pe(l);k.setHours(C??0),k.setMinutes(j??0),t==null||t(k),h(void 0)}else h(k);r(k),D.current&&(D.current.valueAsDate=new Date(Date.UTC(k.getFullYear(),k.getMonth(),k.getDate())))},[e,D,l,t,r,h]),g=c.useCallback(p=>{if(p)if(e){const k=pe(p),j=new Date(e);j.setHours(k.hour||0),j.setMinutes(k.minute||0),t==null||t(j),u(void 0)}else if(f){const k=pe(p),j=new Date(f);j.setHours(k.hour||0),j.setMinutes(k.minute||0),t==null||t(j),u(void 0)}else u(p)},[t,e,f,u]),b=c.useCallback(p=>{p.target.value[0]!=="0"&&x(p.target.valueAsDate)},[x]),w=c.useCallback(p=>g(p.target.value),[g]),S=c.useCallback(()=>{r(e||new Date),i("calendar"),n()},[e,i,n,r]),y=c.useCallback(()=>{a(void 0),s()},[a,s]);return{inputLeftChangeHandler:b,inputRightChangeHandler:w,hideCalendar:y,showCalendar:S,onChangeTime:g,onChangeDate:x}},Ir=e=>{const[t,r]=c.useState(void 0),[n,s]=c.useState(void 0),[a,i,l]=m.useBoolean(!1),[u,f,h]=m.useBoolean(!1),[D,x]=c.useState(void 0),[g,b]=c.useState(()=>e??new Date),[w,S]=c.useState("calendar");return{isCalendarVisible:a,showCalendarInternal:i,hideCalendarInternal:l,firstFocusedInput:D,setFirstFocusedInput:x,dateInFocus:g,setDateInFocus:b,currentPanel:w,setCurrentPanel:S,isTimePickerVisible:u,showTimePicker:f,hideTimePicker:h,localDate:t,setLocalDate:r,localTime:n,setLocalTime:s}},Br=(e,t,r,n,{isCalendarVisible:s,setCurrentPanel:a,showTimePicker:i,hideTimePicker:l})=>{const u=c.useCallback(()=>{s||r(),a("calendar"),l()},[l,s,a,r]),f=c.useCallback(()=>{n(),i()},[n,i]),h=c.useCallback(b=>{e(b.date),n(),i()},[e,n,i]),D=c.useCallback(()=>{a("presets"),r()},[a,r]),x=c.useCallback(()=>{var b;s?n():((b=t.current)==null||b.focus(),a("calendar"),r())},[s,n,t,a,r]),g=c.useCallback(b=>{b.key==="Escape"&&n()},[n]);return{onFocusLeft:u,onFocusRight:f,onClickDay:h,onClickArrowButton:D,onClickCalendarButton:x,onKeyDownHandler:g}},Er=({value:e,onValueChange:t,onEnter:r,onEsc:n,onBlur:s,autoFocus:a,minDate:i,widthLeft:l=128,widthRight:u=80,maxDate:f=be,variant:h,disabled:D,zIndex:x,appendTo:g})=>{const b=c.useRef(null),w=c.useRef(null),S=Ir(e),{setCurrentPanel:y,currentPanel:p,isCalendarVisible:k,dateInFocus:j,setDateInFocus:C,isTimePickerVisible:A,hideTimePicker:B,localTime:T,localDate:R}=S,{showCalendar:E,hideCalendar:_,inputLeftChangeHandler:I,inputRightChangeHandler:U,onChangeTime:Y,onChangeDate:H}=Tr(e,t,S,b),{onKeyDownHandler:v,onFocusRight:O,onFocusLeft:q,onClickDay:K,onClickCalendarButton:$,onClickArrowButton:N}=Br(H,b,E,_,S);Cr(e,C,b);const F=c.useMemo(()=>{const L=e||R;return L?ee(void 0,L,["singleSelected","selected"]):{}},[R,e]),re=c.useCallback(()=>{_(),B()},[_,B]),J=c.useMemo(()=>e?pr(e):T,[e,T]),X=m.useDelayedFalse(k,300),W=m.useDelayedFalse(A,300);return o.jsx(m.Box,{onKeyDown:v,children:o.jsx(ge.ControlledPopover,{hideArrow:!0,zIndex:x,appendTo:g,renderTrigger:L=>o.jsx(m.Box,{...L,children:o.jsx(St,{autoFocusLeft:a,onEsc:n,onEnter:r,onBlur:s,disabled:D,separatorIcon:M.stenaClock,typeLeft:"date",typeRight:"time",placeholderLeft:"yyyy-mm-dd",placeholderRight:"hh:mm",onChangeLeft:I,onChangeRight:U,onClickArrowDown:N,onClickCalendar:$,onFocusLeft:q,onFocusRight:O,onClickLeft:q,onClickRight:O,inputRefLeft:b,inputRefRight:w,valueRight:J??"",widthLeft:l,widthRight:u,minLeft:i,maxLeft:f,variant:h})}),placement:De,open:k||A,onRequestClose:re,children:(X||W)&&o.jsx(m.Column,{children:X?o.jsx(ce,{statePerMonth:F,onClickDay:K,dateInFocus:j,setDateInFocus:C,currentPanel:p,setCurrentPanel:y,minDate:i,maxDate:f}):W?o.jsxs(m.Column,{children:[o.jsx(m.Column,{overflow:"hidden",height:"250px",children:o.jsx(Rr,{value:J??"",onValueChange:Y})}),o.jsx(m.Space,{}),o.jsx(m.Row,{justifyContent:"flex-end",children:o.jsx(M.PrimaryButton,{label:"Done",onClick:B})})]}):null})})})},Ar=({value:e,onValueChange:t,year:r})=>{const n=String(r);return o.jsx(m.Row,{justifyContent:"center",children:e===r?o.jsx(M.PrimaryButton,{label:n,onClick:()=>t==null?void 0:t(r)}):o.jsx(M.FlatButton,{label:n,onClick:()=>t==null?void 0:t(r)})})},Lr=({value:e,onValueChange:t,initialLastYear:r})=>{const[n,s]=c.useState(()=>e?e+4:r??new Date().getFullYear()+4),a=c.useMemo(()=>{const i=n-11;return z.chunk(z.range(i,n+1),3)},[n]);return c.useEffect(()=>{s(i=>_r(e,i))},[e]),o.jsxs(m.Row,{children:[o.jsx(m.Column,{justifyContent:"center",children:o.jsx(M.FlatButton,{leftIcon:M.stenaArrowLeft,onClick:()=>s(n-3)})}),o.jsx(m.Column,{gap:1,children:a.map(i=>o.jsx(m.Row,{gap:1,children:i.map(l=>o.jsx(Ar,{year:l,onValueChange:t,value:e},l))},i[0]))}),o.jsx(m.Column,{justifyContent:"center",children:o.jsx(M.FlatButton,{leftIcon:M.stenaArrowRight,onClick:()=>s(n+3)})})]})},_r=(e,t)=>{if(e==null)return t;if(e>t){const n=e-t,s=n%3,a=n-s+3;return t+a}const r=t-11;if(e<r){const n=r-e,s=n%3,a=n-s+3;return t-a}return t},Nr=(e,t,r,n,s)=>{c.useEffect(function(){e&&r(e)},[e,r]),c.useEffect(function(){t&&r(t)},[t,r]),c.useEffect(function(){n.current&&(e?n.current.valueAsDate=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())):n.current.valueAsDate=null)},[e,n]),c.useEffect(function(){s.current&&(t?s.current.valueAsDate=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())):s.current.valueAsDate=null)},[t,s])},vr=(e,t,r,{setDateInFocus:n,showCalendarInternal:s,hideCalendarInternal:a,setFirstFocusedInput:i,setCurrentPanel:l})=>{const u=c.useCallback(x=>{x.target.value[0]!=="0"&&(r==null||r({startDate:x.target.valueAsDate??void 0,endDate:t}))},[r,t]),f=c.useCallback(x=>{x.target.value[0]!=="0"&&(r==null||r({startDate:e,endDate:x.target.valueAsDate??void 0}))},[r,e]),h=c.useCallback(x=>{x!=null?n(x):n(e||t||new Date),l("calendar"),s()},[e,t,l,s,n]),D=c.useCallback(()=>{i(void 0),a()},[i,a]);return{inputLeftChangeHandler:u,inputRightChangeHandler:f,hideCalendar:D,setDateInFocus:n,setCurrentPanel:l,showCalendar:h}},Pr=(e,t)=>{const[r,n,s]=m.useBoolean(!1),[a,i]=c.useState(void 0),[l,u]=c.useState("startDate"),[f,h]=c.useState(()=>(l==="startDate"?e:l==="endDate"?t:void 0)??new Date),[D,x]=c.useState("calendar");return{isCalendarVisible:r,showCalendarInternal:n,hideCalendarInternal:s,firstFocusedInput:a,setFirstFocusedInput:i,focusedInput:l,setFocusedInput:u,dateInFocus:f,setDateInFocus:h,currentPanel:D,setCurrentPanel:x}},Yr=(e,t,r,n,s,a,i,{firstFocusedInput:l,setFirstFocusedInput:u,isCalendarVisible:f,setFocusedInput:h,focusedInput:D,setCurrentPanel:x,setDateInFocus:g})=>{const b=c.useCallback(()=>{l==null&&u("startDate"),h("startDate"),f?e!=null&&g(e):a(e)},[l,h,f,e,u,a,g]),w=c.useCallback(()=>{l==null&&u("endDate"),h("endDate"),f?t!=null&&g(t):a(t)},[l,h,f,t,u,a,g]),S=c.useCallback(j=>{var C,A,B,T;D==="startDate"?t!=null&&d.isAfter(j.date,t)?(r==null||r({startDate:j.date,endDate:void 0}),h("endDate"),(C=s.current)==null||C.focus()):(r==null||r({startDate:j.date,endDate:t}),l==="startDate"?(h("endDate"),(A=s.current)==null||A.focus()):setTimeout(i,50)):D==="endDate"&&(e?d.isAfter(e,j.date)?(r==null||r({startDate:j.date,endDate:void 0}),h("endDate"),(T=s.current)==null||T.focus()):(r==null||r({startDate:e,endDate:j.date}),setTimeout(i,50)):(r==null||r({startDate:e,endDate:j.date}),h("startDate"),(B=n.current)==null||B.focus()))},[D,r,t,l,h,s,i,e,n]),y=c.useCallback(()=>{x("presets"),a()},[x,a]),p=c.useCallback(()=>{var j;f?i():(h("startDate"),u("startDate"),(j=n.current)==null||j.focus(),x("calendar"),a())},[f,i,h,u,n,x,a]),k=c.useCallback(j=>{j.key==="Escape"&&i()},[i]);return{onFocusLeft:b,onFocusRight:w,onClickDay:S,onClickArrowButton:y,onClickCalendarButton:p,onKeyDownHandler:k}};function Wr({value:e,onValueChange:t,autoFocus:r,onBlur:n,onEnter:s,onEsc:a,minDate:i,maxDate:l=be,calendarProps:u,widthLeft:f=128,widthRight:h=128,firstMonthInMonthPicker:D,variant:x,disabled:g,zIndex:b,appendTo:w}){const{startDate:S,endDate:y}=e||{},p=c.useRef(null),k=c.useRef(null),j=Pr(S,y),{dateInFocus:C,setDateInFocus:A,isCalendarVisible:B,currentPanel:T,setCurrentPanel:R}=j,{showCalendar:E,hideCalendar:_,inputLeftChangeHandler:I,inputRightChangeHandler:U}=vr(S,y,t,j),{onKeyDownHandler:Y,onFocusRight:H,onFocusLeft:v,onClickDay:O,onClickCalendarButton:q,onClickArrowButton:K}=Yr(S,y,t,p,k,E,_,j);Nr(S,y,A,p,k);const $=c.useMemo(()=>S&&y&&d.isAfter(S,y),[S,y]),N=c.useMemo(()=>Ze(u==null?void 0:u.statePerMonth,S,y,C),[u==null?void 0:u.statePerMonth,S,y,C]);return o.jsx(m.Box,{onKeyDown:Y,children:o.jsx(ge.ControlledPopover,{hideArrow:!0,restoreFocus:!1,returnFocus:!1,zIndex:b,appendTo:w,renderTrigger:F=>o.jsx(m.Box,{...F,children:o.jsx(St,{autoFocusLeft:r,onEsc:a,onEnter:s,onBlur:n,disabled:g,separatorIcon:M.stenaArrowRight,typeLeft:"date",typeRight:"date",placeholderLeft:"Start date",placeholderRight:"End date",onChangeLeft:I,onChangeRight:U,onClickArrowDown:K,onClickCalendar:q,onFocusLeft:v,onFocusRight:H,onClickLeft:v,onClickRight:H,inputRefLeft:p,inputRefRight:k,variant:$?"error":x,widthLeft:f,widthRight:h,minLeft:i,maxLeft:l,minRight:i,maxRight:l})}),placement:De,onRequestClose:_,open:B,children:o.jsx(ce,{onClickDay:O,dateInFocus:C,firstMonthInMonthPicker:D,setDateInFocus:A,currentPanel:T,setCurrentPanel:R,minDate:i,maxDate:l,...u,statePerMonth:N})})})}const Pe=({onChange:e,onValueChange:t,mask:r,pipe:n,value:s,guide:a,keepCharPositions:i,placeholderChar:l,showMask:u,calendarSize:f,onFocus:h,onBlur:D,placeholderWhenBlurred:x,placeholder:g,valueWhenBlurred:b,label:w,variant:S,...y})=>{const p=c.useRef(null),[k,j]=c.useState(!1),{onChange:C}=It.useMaskedInput(p,e,t,r,n,s,a,i,l,u,k),A=c.useCallback(R=>{h==null||h(R),j(!0)},[h]),B=c.useCallback(R=>{D==null||D(R),j(!1)},[D]),T=k?g:x??g;return S==="standard"?o.jsx(M.Label,{text:w??"",children:o.jsx(Q.TextInput,{...y,"aria-live":"polite",value:(k?s:b)??"",inputRef:p,placeholder:T,onFocus:A,onBlur:B,onChange:C,width:Xe(f),alwaysShowPlaceholder:!0})}):o.jsx(Q.LabelledTextInput,{...y,label:w,"aria-live":"polite",value:(k?s:b)??"",ref:p,placeholder:T,onFocus:A,onBlur:B,onChange:C,width:Xe(f),size:f==="large"?"large":"medium"})},Xe=e=>{switch(e){case"small":return"140px";case"medium":return"168px";case"large":return"196px";default:return m.exhaustSwitchCase(e,"168px")}},Fr=[/[1-2]/,/\d/,/\d/,/\d/],Hr=[/[0-1]/,/\d/],Or=[/[0-3]/,/\d/],jt=e=>Ur(e).flatMap($r),$r=e=>{switch(e){case"yyyy":return Fr;case"mm":case"MM":return Hr;case"dd":case"DD":return Or;default:return[e]}},Ur=e=>{if(e.length===0)return[];const t=[];let r=e[0];for(let n=1;n<e.length;n++)e[n]!==e[n-1]?(t.push(r),r=e[n]):r+=e[n];return t.push(r),t},le=e=>{const r=new Intl.DateTimeFormat(e,{dateStyle:"short"}).formatToParts(new Date),n={year:"yyyy",month:"MM",day:"dd"};return r.map(s=>n[s.type]||s.value).join("")},se=(e,t,r)=>{const n=$e(t,(r==null?void 0:r.matchLanguage)??!1,(r==null?void 0:r.fallbackLocaleCode)??Oe),s=ie(n);if(s==null)return;const a=d.parse(e,le(n),(r==null?void 0:r.referenceDate)??new Date,{locale:s});if(!isNaN(a.getTime()))return a},de=(e,t,r)=>{const n=$e(t,(r==null?void 0:r.matchLanguage)??!1,(r==null?void 0:r.fallbackLocaleCode)??Oe);return d.format(e,le(n),{locale:ie(n)})},je=(e,t)=>{const r=se(e,t);if(r!=null)return de(r,t)},Mt=({value:e,onValueChange:t,localeCode:r,startDateLabel:n="From",endDateLabel:s="To",onFocus:a,calendarSize:i,placeholderWhenBlurredStartDate:l,placeholderWhenBlurredEndDate:u,valueWhenBlurredStartDate:f,valueWhenBlurredEndDate:h,variant:D})=>{const{mask:x,placeholder:g}=c.useMemo(()=>{const b=le(r);return{mask:jt(b),placeholder:b.toLowerCase()}},[r]);return o.jsxs(m.Row,{children:[o.jsx(Pe,{mask:x,value:e==null?void 0:e.startDate,onValueChange:b=>{t==null||t({startDate:b})},onBlur:b=>{const w=je(b.target.value,r);w&&w!==(e==null?void 0:e.startDate)&&(t==null||t({startDate:w}))},onFocus:a,label:n,borderRadiusVariant:"onlyLeft",placeholder:g,placeholderWhenBlurred:l,valueWhenBlurred:f,calendarSize:i,variant:D}),o.jsx(Pe,{mask:x,value:e==null?void 0:e.endDate,onValueChange:b=>t==null?void 0:t({endDate:b}),onBlur:b=>{const w=je(b.target.value,r);w&&w!==(e==null?void 0:e.endDate)&&(t==null||t({endDate:w}))},onFocus:a,label:s,borderRadiusVariant:"onlyRight",placeholder:g,placeholderWhenBlurred:u,valueWhenBlurred:h,calendarSize:i,variant:D})]})},Ye=(e,t,r)=>{const n=d.isSameYear(e,t)?"":" y";return r.code.startsWith("en")?d.format(e,"eee MMM d"+n,{locale:r}).replace(".",""):d.format(e,"eee d MMM"+n,{locale:r}).replace(".","")},Rt=(e,t,r,n)=>{const s=ie(r),a=c.useId(),i=m.useToday(),l=c.useRef(null),u=c.useMemo(()=>le(r),[r]),f=c.useMemo(()=>{var I;return((I=e==null?void 0:e.startDate)==null?void 0:I.length)===u.length?se(e.startDate,r):void 0},[u.length,r,e==null?void 0:e.startDate]),h=c.useMemo(()=>{var I;return((I=e==null?void 0:e.endDate)==null?void 0:I.length)===u.length?se(e.endDate,r):void 0},[u.length,r,e==null?void 0:e.endDate]),D=c.useMemo(()=>f!=null?Ye(f,i,s):void 0,[s,f,i]),x=c.useMemo(()=>h!=null?Ye(h,i,s):void 0,[s,h,i]),[g,b]=c.useState(n??f??new Date),w=c.useCallback(I=>{d.isSameMonth(I,i)||d.isAfter(I,i)?b(I):b(i)},[i]),S=c.useMemo(()=>xe(g.getFullYear(),g.getMonth(),s),[s,g]),y=c.useMemo(()=>z.startCase(d.format(g,"MMMM yyyy",{locale:s})),[s,g]),p=c.useMemo(()=>d.isSameMonth(i,g),[i,g]),[k,j]=c.useState(),[C,A]=c.useState("calendar"),B=c.useCallback(I=>{var H,v;const U=((H=I==null?void 0:I.startDate)==null?void 0:H.length)===u.length?se(I.startDate,r):void 0,Y=((v=I==null?void 0:I.endDate)==null?void 0:v.length)===u.length?se(I.endDate,r):void 0;U?w(U):Y&&w(Y),t==null||t({...e,...I})},[u.length,r,t,w,e]),T=c.useMemo(()=>d.isSameMonth(i,g)||d.isBefore(g,i),[i,g]),R=c.useMemo(()=>(f&&h&&(d.isSameDay(f,h)||d.isBefore(f,h)))??!1,[h,f]);return{isDateDisabled:c.useCallback(I=>!d.isSameDay(I,i)&&d.isBefore(I,i),[i]),onClickDate:I=>{I.getFullYear()===g.getFullYear()&&I.getMonth()===g.getMonth()&&(f&&h==null?d.isBefore(I,f)?t==null||t({startDate:de(I,r),endDate:void 0}):t==null||t({startDate:e==null?void 0:e.startDate,endDate:de(I,r)}):t==null||t({startDate:de(I,r),endDate:void 0}))},onValueChangeByInputs:B,isValidDateRange:R,prevMonthDisabled:T,monthPickerButtonRef:l,calendarId:a,monthPickerButtonLabel:y,visiblePanel:C,setVisiblePanel:A,setVisibleMonth:b,visibleMonthData:S,todayIsInVisibleMonth:p,hoverDate:k,setHoverDate:j,selectedStartDate:f,selectedEndDate:h,today:i,visibleMonth:g,valueWhenBlurredStartDate:D,valueWhenBlurredEndDate:x}},Te=({previousMonthButtonAriaLabel:e,nextMonthButtonAriaLabel:t,monthPickerButtonLabel:r,visiblePanel:n,setVisiblePanel:s,monthPickerButtonRef:a,setVisibleMonth:i,visibleMonth:l,prevMonthDisabled:u,calendarSize:f,previousMonthButtonTestId:h,nextMonthButtonTestId:D})=>o.jsxs(m.Row,{alignSelf:"center",justifyContent:"space-between",width:"100%",children:[o.jsx(M.FlatButton,{"aria-live":"polite",label:r,rightIcon:n==="calendar"?M.stenaAngleDown:M.stenaAngleUp,onClick:()=>s(n==="calendar"?"month-picker":"calendar"),ref:a,size:f==="small"?"medium":"large"}),o.jsxs(m.Row,{alignItems:"center",gap:2,children:[o.jsx(M.SecondaryButton,{leftIcon:M.stenaArrowLeft,onClick:()=>i(d.subMonths(l,1)),disabled:u,"aria-label":e,size:f==="small"?"medium":"large","data-testid":h}),o.jsx(M.SecondaryButton,{leftIcon:M.stenaArrowRight,onClick:()=>i(d.addMonths(l,1)),"aria-label":t,size:f==="small"?"medium":"large","data-testid":D})]})]}),qr="_travelDateCell_h6vcn_1",zr="_small_h6vcn_4",Kr="_medium_h6vcn_9",Gr="_large_h6vcn_14",Jr="_outline_h6vcn_26",Qr="_contentWrapper_h6vcn_39",Xr="_disabled_h6vcn_60",Zr="_isToday_h6vcn_63",Vr="_isSelectionStart_h6vcn_67",en="_isSelectionEnd_h6vcn_68",tn="_hover_h6vcn_83",rn="_startSelected_h6vcn_86",nn="_endSelected_h6vcn_86",G={travelDateCell:qr,small:zr,medium:Kr,large:Gr,outline:Jr,contentWrapper:Qr,disabled:Xr,isToday:Zr,isSelectionStart:Vr,isSelectionEnd:en,hover:tn,startSelected:rn,endSelected:nn},ne=Me.cssColor("--lhds-color-red-100"),sn=(e,t,r,n,s,a)=>{if(!s)return{left:"transparent",right:"transparent"};if(t&&r&&d.isSameDay(t,r))return{left:"transparent",right:"transparent"};if(t&&r&&!a)return{left:"transparent",right:"transparent"};const i=t&&r?d.isAfter(e,t)&&d.isBefore(e,r)&&!d.isSameDay(e,t)&&!d.isSameDay(e,r):!1,l=t&&n?d.isAfter(e,t)&&d.isBefore(e,n)&&!d.isSameDay(e,t)&&!d.isSameDay(e,n):!1;if(i)return{left:ne,right:ne};if(t&&r)return d.isSameDay(e,t)?{left:"transparent",right:ne}:d.isSameDay(e,r)?{left:ne,right:"transparent"}:{left:"transparent",right:"transparent"};if(t&&n&&d.isAfter(n,t)){if(d.isSameDay(e,t))return{left:"transparent",right:ne};if(d.isSameDay(e,n))return{left:ne,right:"transparent"}}return l?{left:ne,right:ne}:{left:"transparent",right:"transparent"}},on=(e,t)=>{switch(t){case"PageUp":return d.subMonths(e,1);case"PageDown":return d.addMonths(e,1);case"Home":return d.startOfWeek(e);case"End":return d.addDays(d.startOfWeek(e),6);case"ArrowLeft":return d.subDays(e,1);case"ArrowUp":return d.subDays(e,7);case"ArrowRight":return d.addDays(e,1);case"ArrowDown":return d.addDays(e,7);default:return}},Ae=(e,t)=>d.format(d.addHours(e,12),te.fullDate)+t,an="_travelDateCellBackground_1k07m_1",cn="_small_1k07m_2",ln="_medium_1k07m_7",dn="_large_1k07m_12",ye={travelDateCellBackground:an,small:cn,medium:ln,large:dn},un=({calendarSize:e,bgColorLeft:t,bgColorRight:r})=>o.jsxs(m.Row,{children:[o.jsx(m.Box,{className:ae(ye.travelDateCellBackground,ye[e]),background:t}),o.jsx(m.Box,{className:ae(ye.travelDateCellBackground,ye[e]),background:r})]}),fn=({onClick:e,visibleMonth:t,onChangeVisibleMonth:r,day:n,isValidDateRange:s,selectedStartDate:a,selectedEndDate:i,onStartHover:l,onEndHover:u,hoverDate:f,today:h,todayIsInVisibleMonth:D,calendarId:x,isDateDisabled:g,size:b,dateTestId:w})=>{const S=c.useCallback(async B=>{var R;const T=on(n.date,B.key);T&&!g(T)&&(l(T),d.isSameMonth(n.date,T)?(R=document.getElementById(Ae(T,x)))==null||R.focus():(r(T),setTimeout(()=>{var E;(E=document.getElementById(Ae(T,x)))==null||E.focus()},10))),(B.key==="Enter"||B.code==="Space")&&e(n.date)},[x,n.date,g,r,e,l]),y=n.month===t.getMonth(),p=g(n.date),k=a?d.isSameDay(a,n.date):!1,j=i?d.isSameDay(i,n.date):!1,C=d.isSameDay(n.date,h),A=sn(n.date,a,i,f,y,s);return o.jsxs("td",{className:ae(G.travelDateCell,G[b]),onClick:p?void 0:()=>e(n.date),onMouseOver:p?void 0:()=>y&&l(n.date),onMouseOut:p?void 0:()=>y&&u(n.date),tabIndex:p?void 0:hn(n,a,C,t,D),id:p?void 0:Ae(n.date,x),onKeyDown:p?void 0:S,...p?void 0:{"aria-selected":k||j},"data-testid":w==null?void 0:w(n.date),children:[o.jsx("div",{className:G.outline}),o.jsx(un,{calendarSize:b,bgColorLeft:A.left,bgColorRight:A.right}),y&&o.jsx("div",{className:ae(G.contentWrapper,C?G.isToday:void 0,a?G.startSelected:void 0,i?G.endSelected:void 0,f&&d.isSameDay(f,n.date)?G.hover:void 0,k&&G.isSelectionStart,j&&G.isSelectionEnd,p&&G.disabled),children:o.jsx(m.Text,{variant:"bold",color:p?Me.cssColor("--lhds-color-ui-500"):void 0,children:n.dayOfMonth})})]})},hn=(e,t,r,n,s)=>{const a=t?d.isSameMonth(t,n):!1;return(t&&a?d.isSameDay(e.date,t):r)||!a&&!s&&e.date.getDate()===1?0:-1},mn="_travelCalendar_18pjj_1",gn={travelCalendar:mn},Ie=({visibleMonthData:e,onClickDate:t,setHoverDate:r,setVisibleMonth:n,visibleMonth:s,isValidDateRange:a,selectedStartDate:i,selectedEndDate:l,hoverDate:u,today:f,calendarId:h,isDateDisabled:D,todayIsInVisibleMonth:x,size:g="medium",multiSelectable:b,dateTestId:w})=>o.jsx("table",{className:gn.travelCalendar,role:"grid",...b?{"aria-multiselectable":!0}:void 0,children:o.jsxs("tbody",{children:[o.jsx("tr",{children:e.weeks[0].days.map(S=>o.jsx("th",{abbr:S.fullName,children:o.jsx(m.Text,{children:S.name})},S.name))}),e.weeks.map(S=>o.jsx(We.Fragment,{children:o.jsx("tr",{children:S.days.map(y=>o.jsx(fn,{size:g,onClick:p=>t(p),visibleMonth:s,onChangeVisibleMonth:n,isValidDateRange:a,day:y,onStartHover:p=>r(p),onEndHover:p=>r(k=>k&&d.isSameDay(k,p)?void 0:k),selectedStartDate:i,selectedEndDate:l,hoverDate:u,today:f,todayIsInVisibleMonth:x,calendarId:h,isDateDisabled:D,dateTestId:w},y.dateString))},S.weekNumber)},S.weekNumber))]})}),xn="_travelDateRangeInput_1j7rp_1",Dn="_overlay_1j7rp_2",bn="_calendarVisible_1j7rp_6",Le={travelDateRangeInput:xn,overlay:Dn,calendarVisible:bn},yn=({value:e,onValueChange:t,startDateLabel:r,endDateLabel:n,localeCode:s="sv",initialMonthInFocus:a,previousMonthButtonAriaLabel:i="Previous month",nextMonthButtonAriaLabel:l="Next month",placeholderWhenBlurredStartDate:u,placeholderWhenBlurredEndDate:f,heading:h,headingLevel:D,numMonthsInMonthPicker:x=12,firstMonthInMonthPicker:g=new Date,zIndex:b=1e3,zIndexWhenClosed:w,onHideCalendar:S,renderBelowCalendar:y,size:p="medium",dateTestId:k,previousMonthButtonTestId:j,nextMonthButtonTestId:C,textInputVariant:A="standard"})=>{const[B,T]=c.useState(!1),[R,E]=c.useState(!1),[_,I]=c.useState({width:336,height:66}),U=p==="large"?"8.8rem":"6.6rem",Y=c.useRef(!1),H=c.useCallback(()=>{Y.current=!0,E(!0),setTimeout(()=>{T(!0)},10)},[]),v=c.useCallback(()=>{R&&(T(!1),Y.current=!1,S==null||S(),setTimeout(()=>{Y.current||E(!1)},120))},[R,S]),O=c.useRef(null),q=c.useRef(null);m.useOnClickOutside(O,v),c.useLayoutEffect(()=>{var me,Ke;const L=(me=q.current)==null?void 0:me.offsetWidth,Z=(Ke=q.current)==null?void 0:Ke.offsetHeight;L!=null&&Z!=null&&(_.height!==Z||_.width!==L)&&I({width:L,height:Z})},[_.height,_.width]);const K=Rt(e,t,s,a),{visiblePanel:$,visibleMonth:N,onValueChangeByInputs:F,setVisibleMonth:re,setVisiblePanel:J,monthPickerButtonRef:X}=K,W=c.useCallback(L=>{L.key==="Escape"&&v()},[v]);return o.jsxs(m.Box,{position:"relative",className:Le.travelDateRangeInput,ref:O,onKeyDown:W,height:_.height,width:_.width,children:[o.jsx(m.Box,{position:"absolute",ref:q,zIndex:R?b:w,children:o.jsx(Mt,{...K,value:e,onValueChange:F,localeCode:s,startDateLabel:r,endDateLabel:n,onFocus:H,calendarSize:p,placeholderWhenBlurredStartDate:u,placeholderWhenBlurredEndDate:f,variant:A})}),R&&o.jsx(m.Box,{position:"absolute",zIndex:b-1,left:"-2.4rem",top:h?"-8.0rem":"-2.4rem",className:ae(Le.overlay,B&&Le.calendarVisible),children:o.jsx(m.Box,{background:"white",shadow:"popover",borderRadius:"var(--swui-border-radius-large)",children:o.jsxs(M.CardBody,{gap:3,children:[h&&o.jsx(m.Heading,{variant:"h2",as:D,children:h}),o.jsx(m.Box,{height:U}),o.jsx(Te,{...K,previousMonthButtonAriaLabel:i,nextMonthButtonAriaLabel:l,calendarSize:p,previousMonthButtonTestId:j,nextMonthButtonTestId:C}),$==="calendar"&&o.jsx(Ie,{...K,size:p,multiSelectable:!0,dateTestId:k}),$==="month-picker"&&o.jsx(he,{firstMonth:g,numMonths:x,value:N,size:p,localeCode:s,onValueChange:L=>{var Z;re(L),J("calendar"),(Z=X.current)==null||Z.focus()},onCancel:()=>{var L;J("calendar"),(L=X.current)==null||L.focus()}}),y==null?void 0:y({hideCalendar:v})]})})})]})},pn="_travelDateInput_hmfbf_1",wn="_overlay_hmfbf_2",Sn="_calendarVisible_hmfbf_6",_e={travelDateInput:pn,overlay:wn,calendarVisible:Sn},Ct=({value:e,onValueChange:t,label:r="Date",localeCode:n,onFocus:s,calendarSize:a,placeholderWhenBlurred:i,valueWhenBlurred:l,variant:u})=>{const{mask:f,placeholder:h}=c.useMemo(()=>{const D=le(n);return{mask:jt(D),placeholder:D.toLowerCase()}},[n]);return o.jsx(m.Row,{children:o.jsx(Pe,{mask:f,value:e,onValueChange:t,onBlur:D=>{const x=je(D.target.value,n);x&&x!==e&&(t==null||t(x))},onFocus:s,label:r,placeholder:h,calendarSize:a,placeholderWhenBlurred:i,valueWhenBlurred:l,variant:u})})},Tt=(e,t,r,n)=>{const s=ie(r),a=c.useId(),i=m.useToday(),l=c.useRef(null),u=c.useMemo(()=>le(r),[r]),f=c.useMemo(()=>(e==null?void 0:e.length)===u.length?se(e,r):void 0,[u.length,r,e]),h=c.useMemo(()=>f!=null?Ye(f,i,s):void 0,[s,f,i]),[D,x]=c.useState(n??f??new Date),g=c.useCallback(R=>{d.isSameMonth(R,i)||d.isAfter(R,i)?x(R):x(i)},[i]),b=c.useMemo(()=>xe(D.getFullYear(),D.getMonth(),s),[s,D]),w=c.useMemo(()=>z.startCase(d.format(D,"MMMM yyyy",{locale:s})),[s,D]),S=c.useMemo(()=>d.isSameMonth(i,D),[i,D]),[y,p]=c.useState(),[k,j]=c.useState("calendar"),C=c.useCallback(R=>{const E=(R==null?void 0:R.length)===u.length?se(R,r):void 0;E&&g(E),t==null||t(R)},[u.length,r,t,g]),A=c.useMemo(()=>d.isSameMonth(i,D)||d.isBefore(D,i),[i,D]);return{isDateDisabled:c.useCallback(R=>!d.isSameDay(R,i)&&d.isBefore(R,i),[i]),onClickDate:R=>{t==null||t(de(R,r))},onValueChangeByInputs:C,prevMonthDisabled:A,monthPickerButtonRef:l,calendarId:a,monthPickerButtonLabel:w,visiblePanel:k,setVisiblePanel:j,setVisibleMonth:x,visibleMonthData:b,todayIsInVisibleMonth:S,hoverDate:y,setHoverDate:p,selectedDate:f,today:i,visibleMonth:D,valueWhenBlurred:h}},kn=({value:e,onValueChange:t,label:r,localeCode:n="sv",initialMonthInFocus:s,previousMonthButtonAriaLabel:a="Previous month",nextMonthButtonAriaLabel:i="Next month",placeholderWhenBlurred:l,heading:u,headingLevel:f,numMonthsInMonthPicker:h=12,firstMonthInMonthPicker:D=new Date,zIndex:x=1e3,zIndexWhenClosed:g,onHideCalendar:b,renderBelowCalendar:w,size:S="medium",dateTestId:y,previousMonthButtonTestId:p,nextMonthButtonTestId:k,textInputVariant:j="standard"})=>{const[C,A]=c.useState(!1),[B,T]=c.useState(!1),[R,E]=c.useState({width:336,height:66}),_=S==="large"?"8.8rem":"6.6rem",I=c.useRef(!1),U=c.useCallback(()=>{I.current=!0,T(!0),setTimeout(()=>{A(!0)},10)},[]),Y=c.useCallback(()=>{B&&(A(!1),I.current=!1,b==null||b(),setTimeout(()=>{I.current||T(!1)},120))},[B,b]),H=c.useRef(null),v=c.useRef(null);m.useOnClickOutside(H,Y),c.useLayoutEffect(()=>{var Z,me;const W=(Z=v.current)==null?void 0:Z.offsetWidth,L=(me=v.current)==null?void 0:me.offsetHeight;W!=null&&L!=null&&(R.height!==L||R.width!==W)&&E({width:W,height:L})},[R.height,R.width]);const O=Tt(e,t,n,s),{visiblePanel:q,visibleMonth:K,onValueChangeByInputs:$,selectedDate:N,setVisibleMonth:F,setVisiblePanel:re,monthPickerButtonRef:J}=O,X=c.useCallback(W=>{W.key==="Escape"&&Y()},[Y]);return o.jsxs(m.Box,{position:"relative",className:_e.travelDateInput,ref:H,onKeyDown:X,height:R.height,width:R.width,children:[o.jsx(m.Box,{position:"absolute",ref:v,zIndex:B?x:g,children:o.jsx(Ct,{...O,value:e,onValueChange:$,localeCode:n,label:r,onFocus:U,calendarSize:S,placeholderWhenBlurred:l,variant:j})}),B&&o.jsx(m.Box,{position:"absolute",zIndex:x-1,left:"-2.4rem",top:u?"-8.0rem":"-2.4rem",className:ae(_e.overlay,C&&_e.calendarVisible),children:o.jsx(m.Box,{background:"white",shadow:"popover",borderRadius:"var(--swui-border-radius-large)",children:o.jsxs(M.CardBody,{gap:3,children:[u&&o.jsx(m.Heading,{variant:"h2",as:f,children:u}),o.jsx(m.Box,{height:_}),o.jsx(Te,{...O,previousMonthButtonAriaLabel:a,nextMonthButtonAriaLabel:i,calendarSize:S,previousMonthButtonTestId:p,nextMonthButtonTestId:k}),q==="calendar"&&o.jsx(Ie,{...O,size:S,isValidDateRange:!!N,selectedStartDate:N,selectedEndDate:N,multiSelectable:!1,dateTestId:y}),q==="month-picker"&&o.jsx(he,{firstMonth:D,numMonths:h,value:K,size:S,localeCode:n,onValueChange:W=>{var L;F(W),re("calendar"),(L=J.current)==null||L.focus()},onCancel:()=>{var W;re("calendar"),(W=J.current)==null||W.focus()}}),w==null?void 0:w({hideCalendar:Y})]})})})]})},jn=({value:e,onValueChange:t,label:r,localeCode:n="sv",initialMonthInFocus:s,previousMonthButtonAriaLabel:a="Previous month",nextMonthButtonAriaLabel:i="Next month",placeholderWhenBlurred:l,heading:u,headingLevel:f,numMonthsInMonthPicker:h=12,firstMonthInMonthPicker:D=new Date,dateTestId:x,size:g="medium",previousMonthButtonTestId:b,nextMonthButtonTestId:w,textInputVariant:S="standard"})=>{const y=Tt(e,t,n,s),{visiblePanel:p,visibleMonth:k,onValueChangeByInputs:j,setVisibleMonth:C,setVisiblePanel:A,monthPickerButtonRef:B,selectedDate:T}=y;return o.jsxs(m.Column,{gap:3,children:[u&&o.jsx(m.Heading,{variant:"h2",as:f,children:u}),o.jsx(Ct,{...y,value:e,onValueChange:j,localeCode:n,label:r,calendarSize:g,placeholderWhenBlurred:l,variant:S}),o.jsx(Te,{...y,previousMonthButtonAriaLabel:a,nextMonthButtonAriaLabel:i,calendarSize:g,previousMonthButtonTestId:b,nextMonthButtonTestId:w}),p==="calendar"&&o.jsx(Ie,{...y,size:g,selectedStartDate:T,selectedEndDate:T,isValidDateRange:!!T,multiSelectable:!1,dateTestId:x}),p==="month-picker"&&o.jsx(he,{firstMonth:D,numMonths:h,value:k,localeCode:n,size:g,onValueChange:R=>{var E;C(R),A("calendar"),(E=B.current)==null||E.focus()},onCancel:()=>{var R;A("calendar"),(R=B.current)==null||R.focus()}})]})},Mn=({value:e,onValueChange:t,startDateLabel:r,endDateLabel:n,localeCode:s="sv",initialMonthInFocus:a,previousMonthButtonAriaLabel:i="Previous month",nextMonthButtonAriaLabel:l="Next month",heading:u,headingLevel:f,numMonthsInMonthPicker:h=12,firstMonthInMonthPicker:D=new Date,size:x="medium",dateTestId:g,previousMonthButtonTestId:b,nextMonthButtonTestId:w,placeholderWhenBlurredStartDate:S,placeholderWhenBlurredEndDate:y,textInputVariant:p="standard"})=>{const k=Rt(e,t,s,a),{visiblePanel:j,visibleMonth:C,onValueChangeByInputs:A,setVisibleMonth:B,setVisiblePanel:T,monthPickerButtonRef:R}=k;return o.jsxs(m.Column,{gap:3,children:[u&&o.jsx(m.Heading,{variant:"h2",as:f,children:u}),o.jsx(Mt,{...k,value:e,onValueChange:A,localeCode:s,startDateLabel:r,endDateLabel:n,calendarSize:x,placeholderWhenBlurredStartDate:S,placeholderWhenBlurredEndDate:y,variant:p}),o.jsx(Te,{...k,previousMonthButtonAriaLabel:i,nextMonthButtonAriaLabel:l,calendarSize:x,previousMonthButtonTestId:b,nextMonthButtonTestId:w}),j==="calendar"&&o.jsx(Ie,{...k,size:x,multiSelectable:!0,dateTestId:g}),j==="month-picker"&&o.jsx(he,{firstMonth:D,numMonths:h,value:C,size:x,localeCode:s,onValueChange:E=>{var _;B(E),T("calendar"),(_=R.current)==null||_.focus()},onCancel:()=>{var E;T("calendar"),(E=R.current)==null||E.focus()}})]})};exports.Calendar=we;exports.CalendarDay=He;exports.DateInput=fr;exports.DateRangeCalendar=ir;exports.DateRangeDualTextInput=Wr;exports.DateRangeInput=mr;exports.DateTextInput=gr;exports.DateTimeInput=Er;exports.Month=tt;exports.MonthPicker=he;exports.MultiDateCalendar=lr;exports.PresetPicker=gt;exports.SingleDateCalendar=ze;exports.SingleWeekCalendar=dr;exports.TimeTextInput=Dr;exports.TravelDateCalendar=jn;exports.TravelDateInput=kn;exports.TravelDateRangeCalendar=Mn;exports.TravelDateRangeInput=yn;exports.WeekDay=rt;exports.WeekDayCell=dt;exports.WeekNumberCell=ut;exports.YearPicker=Lr;exports.addDayStateHighlights=ee;exports.addDayStateHighlightsOnSingleDay=Fe;exports.addWeekRangeHighlights=et;exports.addWeekStateHighlights=Lt;exports.buildDayStateForDateRange=ue;exports.buildDayStateForRange=Ve;exports.buildDayStateForSingleMonth=Ze;exports.calculateOverflowingMonth=at;exports.createDay=st;exports.dateRangeToStrings=xt;exports.dayHasHighlight=it;exports.dayHighlightSelect=V;exports.defaultCalendarTheme=oe;exports.defaultTextPropsProvider=lt;exports.defaultWrapperStyleProvider=ct;exports.extranetCalendarTheme=Pt;exports.fallbackLocaleCode=Oe;exports.fallbackLocaleCodeForFormatting=Kt;exports.formatLocalizedDate=de;exports.getDateFormatForLocaleCode=le;exports.getDaysForWeekForDate=ot;exports.getDefaultLocaleForFormatting=Gt;exports.getLocaleCodeForLocale=mt;exports.getLocaleForLocaleCode=ie;exports.getMonthInYear=xe;exports.getMonthsInYear=Ne;exports.getSupportedLocaleCode=$e;exports.getSupportedLocaleCodeMatchingLanguage=ht;exports.getWeekForDate=Re;exports.getWeeksForMonth=nt;exports.isDateRangeInvalid=Ue;exports.parseLocalizedDateString=se;exports.reformatLocalizedDateString=je;exports.setDayStateValue=Et;exports.setDayStateValueFunction=At;exports.stringsToDateRange=Dt;exports.toggleDateStringsIfEndIsEarlierThanStart=or;exports.toggleDatesIfEndIsEarlierThanStart=qe;exports.useDateRangeCalendarState=cr;exports.useDateRangeSelection=bt;exports.useMultiDateSelection=pt;exports.useSingleDateSelection=yt;exports.useSingleWeekSelection=wt;
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),m=require("@stenajs-webui/core"),M=require("@stenajs-webui/elements"),d=require("date-fns"),A=require("date-fns/locale"),z=require("lodash-es"),c=require("react"),ae=require("classnames"),Be=require("@emotion/styled"),Z=require("@stenajs-webui/forms"),ge=require("@stenajs-webui/tooltip"),Me=require("@stenajs-webui/theme"),It=require("@stenajs-webui/input-mask");function Bt(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const Fe=Bt(c),te={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"},ue=(e={},t,r)=>{if(t&&r&&d.isAfter(r,t))return d.eachDayOfInterval({start:t,end:r}).reduce((s,a)=>{const i=d.isSameDay(a,t),l=d.isSameDay(a,r);return ee(s,a,i?["selected","selectedStart","range"]:l?["selected","selectedEnd","range"]:["range"])},e);let n=e;return t&&(n=ee(n,t,["selected","singleSelected"])),r&&(n=ee(n,r,["selected","singleSelected"])),n},Xe=(e={},t,r,n)=>Ve(e,t,r,d.startOfMonth(n),d.endOfMonth(n)),Ve=(e={},t,r,n,s)=>t&&r?ue(e,d.max([t,d.subDays(n,1)]),d.min([r,d.addDays(s,1)])):ue(e,t,r),Et=(e,t,r)=>{const n=d.format(t,te.yearAndMonth),s=d.getISOWeek(t),a=d.getDate(t);return{...e,[n]:{...e&&e[n],[s]:{...e&&e[n]&&e[n][s],[a]:{...e&&e[n]&&e[n][s]&&e[n][s][a],...r}}}}},At=(e,t,r)=>{const n=d.format(t,te.yearAndMonth),s=d.getISOWeek(t),a=d.getDate(t);return{...e,[n]:{...e&&e[n],[s]:{...e&&e[n]&&e[n][s],[a]:{...e&&e[n]&&e[n][s]&&e[n][s][a],...r(e&&e[n]&&e[n][s]&&e[n][s][a])}}}}},ee=(e,t,r)=>{const n=t.getMonth()+1,s=`${t.getFullYear()}-${n<10?"0":""}${n}`,a=d.getISOWeek(t),i=d.getDate(t),l=e&&e[s]&&e[s][a]&&e[s][a][i];return{...e,[s]:{...e&&e[s],[a]:{...e&&e[s]&&e[s][a],[i]:We(l,r)}}}},We=(e,t)=>({...e,highlights:[...(e==null?void 0:e.highlights)??[],...t]}),Lt=(e,t,r)=>{const n=t.days[0].date,s=n.getMonth()+1,a=`${n.getFullYear()}-${s<10?"0":""}${s}`,i=t.weekNumber;let l=e;t.days.forEach(D=>{l=ee(l,D.date,r)});const u=l&&l[a]?l[a][i]:void 0,f=u&&u.highlights?[...u.highlights,...r]:r,h={...u,highlights:f};return{...l,[a]:{...e&&e[a],[i]:h}}},et=(e,t)=>{var s;if(!t.days.length)return{...e};const r=t.days[0].date,n=(s=z.last(t.days))==null?void 0:s.date;return{...ue(e,r,n)}},_t=(e,t)=>c.useMemo(()=>e?ee(t,new Date,["today"]):t,[e,t]);var tt=(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))(tt||{}),rt=(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))(rt||{});const Ne=(e,t,r,n)=>{const s=[];for(let a=0;a<r;a++)s.push(xe(e,t+a,n));return s},xe=(e,t,r)=>{if(isNaN(e)||isNaN(t))throw new Error("getMonthInYear() received NaN.");const n=e+Math.floor(t/12),s=t%12,a=new Date(n,s,1);return{monthString:d.format(a,te.yearAndMonth),name:z.startCase(d.format(a,te.fullMonthName,{locale:r})),year:n,monthInYear:s,weeks:nt(n,s,r)}},nt=(e,t,r,n=!0)=>{const s=new Date(e,t,1),a=d.startOfWeek(s,{locale:r}),i=[];for(let l=0;l<6;l++){const u=Re(d.addWeeks(a,l),r);if(l>0&&u.startMonth!==t&&!n)return i;i.push(u)}return i},Re=(e,t)=>{const r=d.getMonth(d.addDays(e,7))!==d.getMonth(e);return{weekNumber:d.getWeek(e,{locale:t}),startMonth:d.getMonth(e),startYear:d.getYear(e),endMonth:d.getMonth(d.addDays(e,6)),endYear:d.getYear(d.addDays(e,6)),days:ot(e,t),isLastWeekOfMonth:r}},st=(e,t)=>{const r=d.getISODay(e);return{date:e,name:d.format(e,"EEE",t?{locale:t}:void 0),fullName:d.format(e,"EEEE",t?{locale:t}:void 0),dateString:d.format(d.addHours(e,12),te.fullDate),weekNumber:d.getWeek(e,{locale:t}),year:d.getYear(e),month:d.getMonth(e),dayOfMonth:d.getDate(e),dayOfWeek:r,isFirstDayOfWeek:r===1,isLastDayOfWeek:r===7,isFirstDayOfMonth:d.isSameDay(d.startOfMonth(e),e),isLastDayOfMonth:d.isSameDay(d.endOfMonth(e),e)}},ot=(e,t)=>d.eachDayOfInterval({start:e,end:d.addDays(e,6)}).map(r=>st(r,t)),at=(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},Nt="_calendar_1b766_1",vt="_weekNumberVisible_1b766_41",Ge={calendar:Nt,weekNumberVisible:vt},it=(e,t,r)=>!!(t&&t.indexOf(r)>=0||e&&e.highlights&&e.highlights.indexOf(r)>=0),V=(e,t,r,n,s)=>{if(r.length!==n.length)throw new Error("Select highlight failed, number of values do not equal number of highlights.");if(r.length===0)return s;for(let a=0;a<r.length;a++)if(typeof r[a]=="boolean"&&r[a]||typeof r[a]=="string"&&it(e,t,r[a]))return n[a];return s},ct=({selectedBackground:e,todayBackground:t,rangeBackground:r,borderColor:n="transparent"})=>(s,a,i,l,u)=>({backgroundColor:V(a,s,["selected","range","today",i.month===u.monthInYear],[e,r,t,"#fff"],"transparent"),borderWidth:"1px",borderStyle:"solid",borderColor:V(a,s,["selectedStart","selectedEnd","singleSelected","range","today"],["var(--swui-calendar-wrapper-range-background)","var(--swui-calendar-wrapper-range-background)","var(--swui-calendar-wrapper-range-background)","var(--swui-calendar-wrapper-range-border)","var(--lhds-color-ui-500)"],n),borderTopLeftRadius:V(a,s,["selectedStart","singleSelected","today"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],"unset"),borderBottomLeftRadius:V(a,s,["selectedStart","singleSelected","today"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],"unset"),borderTopRightRadius:V(a,s,["selectedEnd","singleSelected","today"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],"unset"),borderBottomRightRadius:V(a,s,["selectedEnd","singleSelected","today"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],"unset"),boxSizing:"border-box"}),lt=({selectedColor:e,disabledColor:t,inOtherMonthColor:r,rangeTextColor:n})=>(s,a,i,l,u)=>{const f=i.month!==u.monthInYear;return{color:V(a,s,[f,"selected","range","enabled","disabled"],[r,e,n,void 0,t])}},oe={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)"},WeekDay:{textColor:"var(--swui-calendar-week-day-text-color)",clickableTextColor:"var(--swui-calendar-week-day-clickable-text-color)"},CalendarDay:{tdStyle:ct({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)"}},Pt={...oe,width:"37px",height:"37px"},dt=({onClickWeekDay:e,day:t,theme:r})=>{const n=o.jsx(m.Box,{width:r.width,height:r.height,justifyContent:"center",alignItems:"center",children:o.jsx(m.Text,{size:"small",color:e?r.WeekDay.clickableTextColor:r.WeekDay.textColor,children:t.name})});return e?o.jsx(m.Clickable,{borderRadius:"var(--swui-calendar-day-border-radius)",onClick:s=>e(t.dayOfWeek,s),disableFocusHighlight:!e,children:n}):n},Oe=function({day:t,week:r,month:n,dayState:s,userData:a,onClickDay:i,theme:l,extraDayContent:u,defaultHighlights:f}){const h=o.jsx(m.Box,{width:"100%",height:"100%",justifyContent:"center",alignItems:"center",children:o.jsx(m.Text,{...l.CalendarDay.textProps&&l.CalendarDay.textProps(f,s,t,r,n,a),children:t.dayOfMonth})}),D=Be.td({...l.CalendarDay.tdStyle&&l.CalendarDay.tdStyle(f,s,t,r,n,a)}),x=Be.div({...l.CalendarDay.innerWrapperStyle&&l.CalendarDay.innerWrapperStyle(f,s,t,r,n,a),width:"100%",height:"100%"}),g=Be.div({...l.CalendarDay.cellWrapperStyle&&l.CalendarDay.cellWrapperStyle(f,s,t,r,n,a),width:"100%",height:"100%",position:"relative"}),b=Yt(f,s);return o.jsx(D,{onClick:b?void 0:w=>i==null?void 0:i(t,a,w),children:o.jsx(x,{children:o.jsx(g,{children:t.month===n.monthInYear&&o.jsxs(o.Fragment,{children:[u&&o.jsx(u,{week:r,month:n,day:t,dayState:s,theme:l,userData:a}),h]})})})})},Yt=(e,t)=>!!V(t,e,["disabled"],[!0],!1),ut=({onClickWeek:e,theme:t,week:r,background:n,backgroundColor:s,prefix:a})=>{const i=o.jsxs(m.Box,{width:t.width,height:t.height,justifyContent:"center",alignItems:"center",children:[n&&o.jsx(m.Box,{position:"absolute",children:n}),o.jsx(m.Box,{position:"absolute",children:o.jsxs(m.Text,{color:e?t.WeekNumber.clickableTextColor:t.WeekNumber.textColor,children:[a,r.weekNumber]})})]});return o.jsx(m.Box,{background:s||t.WeekNumber.backgroundColor,position:"relative",children:e?o.jsx(m.Clickable,{borderRadius:"var(--swui-calendar-day-border-radius)",onClick:l=>e(r,l),disableFocusHighlight:!e,children:i}):i})},Ft=(e,t,r)=>t&&d.isBefore(e,t)?d.isSameDay(e,t):r&&d.isAfter(e,r)?d.isSameDay(e,r):!0,Wt=function({dayComponent:t,minDate:r,maxDate:n,dayState:s,day:a,...i}){const l=c.useMemo(()=>Ft(a.date,r,n)?s:We(s,["disabled"]),[a.date,s,n,r]);return o.jsx(t,{day:a,...i,dayState:l})};function Ot({month:e,dayComponent:t=Oe,statePerWeek:r,userDataPerWeek:n,minDate:s,maxDate:a,onClickDay:i,onClickWeek:l,onClickWeekDay:u,onClickMonth:f,renderWeekNumber:h,renderWeekDay:D,headerRightContent:x,theme:g=oe,extraDayContent:b,defaultHighlights:w,showWeekNumber:S}){return o.jsx(o.Fragment,{children:o.jsxs(m.Box,{alignItems:"stretch",children:[o.jsxs(m.Row,{justifyContent:x?"space-between":"center",alignItems:"center",children:[o.jsx(m.Row,{justifyContent:"center",alignItems:"center",children:f?o.jsx(M.FlatButton,{onClick:()=>f(e),label:e.name+" "+String(e.year),rightIcon:M.stenaAngleDown}):o.jsxs(m.Text,{whiteSpace:"nowrap",children:[e.name," ",e.year]})}),x&&o.jsx(m.Box,{alignItems:"center",children:x})]}),o.jsx("table",{children:o.jsxs("tbody",{children:[o.jsxs("tr",{children:[S&&o.jsx("td",{children:o.jsx(m.Box,{width:g.width,height:g.height})}),e.weeks[0].days.map(y=>o.jsx("td",{children:D?D(y.name,g,u):o.jsx(dt,{day:y,onClickWeekDay:u,theme:g})},y.name))]}),e.weeks.map(y=>o.jsxs("tr",{children:[S&&o.jsx("td",{children:h?h(y,g,l):o.jsx(ut,{week:y,onClickWeek:l,theme:g})}),y.days.map(p=>o.jsx(Wt,{dayComponent:t,day:p,week:y,month:e,dayState:r&&r[y.weekNumber]&&r[y.weekNumber][p.dayOfMonth],userData:n&&n[y.weekNumber]&&n[y.weekNumber][p.dayOfMonth],onClickDay:i,theme:g,extraDayContent:b,defaultHighlights:w,minDate:s,maxDate:a},p.dateString))]},y.weekNumber))]})})]})})}function Ht({monthRows:e,dayComponent:t=Oe,userDataPerMonth:r,statePerMonth:n,minDate:s,maxDate:a,onClickDay:i,onClickWeekDay:l,onClickWeek:u,onClickMonth:f,renderWeekDay:h,renderWeekNumber:D,headerRightContent:x,extraDayContent:g,defaultHighlights:b,showWeekNumber:w,theme:S=oe}){const y=c.useMemo(()=>s?d.parse(s,"yyyy-MM-dd",new Date):void 0,[s]),p=c.useMemo(()=>a?d.parse(a,"yyyy-MM-dd",new Date):void 0,[a]);return o.jsx("div",{className:ae(Ge.calendar,w&&Ge.weekNumberVisible),children:e.map((k,j)=>o.jsx(m.Spacing,{children:o.jsx(m.Row,{gap:2,children:k.map(C=>o.jsx(Ot,{month:C,dayComponent:t,userDataPerWeek:r&&r[C.monthString],statePerWeek:n&&n[C.monthString],onClickDay:i,onClickWeekDay:l,onClickWeek:u,onClickMonth:f,theme:S,renderWeekNumber:D,renderWeekDay:h,headerRightContent:x,extraDayContent:g,defaultHighlights:b,minDate:y,maxDate:p,showWeekNumber:w??!1},C.name))})},j))})}function we(e){const t=$t(e.year,e.month,e.date),{year:r,month:n}=at(t.year,t.month),s=Ut(r,n,e.locale??A.enGB,e.numMonths,e.monthsPerRow),a=_t(e.highlightToday,e.statePerMonth);return o.jsx(Ht,{year:r,month:n,monthRows:s,...e,statePerMonth:a})}const $t=(e,t,r)=>{if(t&&e)return{month:t,year:e};if(r)return{month:d.getMonth(r),year:d.getYear(r)};const n=new Date;return{month:d.getMonth(n),year:d.getYear(n)}},Ut=(e,t,r,n,s)=>n==null?[[xe(e,t,r)]]:s==null?[Ne(e,t,n,r)]:z.chunk(Ne(e,t,n,r),s),ft=(e,t)=>`${e.row}-${e.column}-${t}`,qt=(e,t,r,n)=>{let s=t;for(let a=0;a<n;a++){s=zt(s,e,n);const i=ft(s,r);if(document.getElementById(i))return i}},zt=(e,t,r)=>{let n=e.row,s=e.column;return t==="ArrowLeft"?s--:t==="ArrowUp"?n--:t==="ArrowRight"?s++:t==="ArrowDown"&&n++,s<0&&(s=r-1,n--),s>r-1&&(s=0,n++),{column:s,row:n}},fe={en:A.enGB,"en-US":A.enUS,"en-GB":A.enGB,"en-IE":A.enIE,"de-AT":A.deAT,"nl-BE":A.nlBE,"nl-NL":A.nl,"de-DE":A.de,"nb-NO":A.nb,"sv-SE":A.sv,"da-DK":A.da,"lv-LV":A.lv,"lt-LT":A.lt,"it-IT":A.it,"et-EE":A.et,"fi-FI":A.fi,"cs-CZ":A.cs,"es-ES":A.es,"fr-FR":A.fr,"pl-PL":A.pl,nl:A.nl,de:A.de,nb:A.nb,sv:A.sv,da:A.da,lv:A.lv,lt:A.lt,it:A.it,et:A.et,fi:A.fi,cs:A.cs,es:A.es,fr:A.fr,pl:A.pl},He="en-GB",Kt="sv",$e=(e,t,r)=>{if(fe[e])return e;if(t){const n=ht(e);if(n)return n}return r},ie=e=>fe[e],ht=e=>{const[t]=e.split("-"),r=Object.keys(fe);for(const n of r)if(n.startsWith(t))return n},Gt=()=>fe.sv,mt=e=>{const t=Object.keys(fe);for(const r of t)if(fe[r].code===e.code)return r},Jt=({month:e,onClick:t,selected:r,localeCode:n,autoFocus:s,monthPickerId:a,position:i,size:l})=>{const u=c.useMemo(()=>ie(n)??ie("en-GB"),[n]),f=c.useMemo(()=>z.startCase(d.format(e,"MMM",{locale:u})),[u,e]),h=c.useMemo(()=>z.startCase(d.format(e,"MMMM",{locale:u})),[u,e]),D=c.useRef(null),x=ft(i,a),g=r?0:-1;c.useEffect(()=>{var w;(w=D.current)==null||w.focus()},[]);const b=c.useCallback(w=>{var y;const S=qt(w.key,i,a,4);S&&((y=document.getElementById(S))==null||y.focus())},[a,i]);return o.jsx(m.Row,{justifyContent:"center",onKeyDown:b,children:r?o.jsx(M.PrimaryButton,{id:x,"aria-label":h,label:f,onClick:t,"aria-selected":!0,autoFocus:s,ref:D,size:l==="large"?"large":"medium",tabIndex:g}):o.jsx(M.FlatButton,{id:x,label:f,"aria-label":h,onClick:t,size:l==="large"?"large":"medium",tabIndex:g})})},Zt=(e,t,r)=>{let n=e.getFullYear(),s=0,a=0,i=e;const l={yearOrder:[],rows:[],years:{},lastMonthColumn:-1,lastMonthRow:-1};for(let u=0;u<t;u++){if(l.years[n]==null&&(l.yearOrder.push(n),l.years[n]={year:n,rows:[]}),l.rows[s]=l.rows[s]??{columns:[],rowIndex:s},l.rows[s].columns[a]={position:{column:a,row:s},month:i},u===t-1){l.years[n].rows.push(s);break}i=d.addMonths(i,1),i.getFullYear()!==n?(l.years[n].rows.push(s),n++,a=0,s++):(a++,a>r-1&&(l.years[n].rows.push(s),a=0,s++))}return l.lastMonthColumn=a,l.lastMonthRow=s,l},he=({value:e,onValueChange:t,firstMonth:r,localeCode:n,numMonths:s,onCancel:a,size:i="medium"})=>{const l=c.useId(),u=m.useToday(),f=s>0?s:12,[h,D]=c.useState(!1),x=Zt(r,f,Xt(i)),g=c.useMemo(()=>d.addMonths(r,f),[f,r]);c.useEffect(()=>{D(!0)},[]);const b=c.useCallback(w=>{w.key==="Escape"&&(a==null||a(),w.preventDefault(),w.stopPropagation())},[a]);return o.jsx(m.Column,{gap:1,maxWidth:Qt(i),onKeyDown:b,children:x.yearOrder.map((w,S)=>{const{rows:y}=x.years[w];return o.jsxs(Fe.Fragment,{children:[(S!==0||w!==u.getFullYear())&&o.jsx(m.Heading,{variant:"h4",children:w}),o.jsx("table",{style:{borderSpacing:"0 8px"},children:o.jsx("tbody",{children:y.map(p=>{const{columns:k}=x.rows[p];return o.jsx("tr",{children:k.map(({month:j,position:C})=>o.jsx("td",{children:o.jsx(Jt,{month:j,firstAvailableMonth:r,lastAvailableMonth:g,localeCode:n,selected:e?d.isSameMonth(e,j):!1,autoFocus:h,onClick:()=>t==null?void 0:t(j),monthPickerId:l,position:C,size:i})},j.getMonth()))},p)})})})]},w)})})},Qt=e=>{switch(e){case"small":return"280px";case"medium":return"336px";case"large":return"448px";default:return m.exhaustSwitchCase(e,"336px")}},Xt=e=>{switch(e){case"small":return 3;case"medium":return 4;case"large":return 5;default:return m.exhaustSwitchCase(e,4)}},Vt=e=>[{label:"Past",presets:[{label:"Last 3 days",startDate:e,endDate:d.subDays(e,2)},{label:"Last 7 days",startDate:e,endDate:d.subDays(e,6)},{label:"Last 30 days",startDate:e,endDate:d.subDays(e,29)},{label:"Last 45 days",startDate:e,endDate:d.subDays(e,44)}]},{label:"Future",presets:[{label:"Next 3 days",startDate:e,endDate:d.addDays(e,2)},{label:"Next 7 days",startDate:e,endDate:d.addDays(e,6)},{label:"Next 30 days",startDate:e,endDate:d.addDays(e,29)},{label:"Next 45 days",startDate:e,endDate:d.addDays(e,44)}]}],gt=({onClickPreset:e})=>{const[t,r]=c.useState(0),n=c.useMemo(()=>Vt(new Date),[]),s=n[t]??n[0];return o.jsxs(m.Column,{children:[o.jsxs(m.Row,{justifyContent:"space-between",alignItems:"center",width:"200px",children:[o.jsx(M.FlatButton,{size:"small",leftIcon:M.stenaAngleLeft,disabled:t===0,onClick:()=>r(t-1)}),o.jsx(m.Text,{children:s.label}),o.jsx(M.FlatButton,{size:"small",leftIcon:M.stenaAngleRight,disabled:t===n.length-1,onClick:()=>r(t+1)})]}),o.jsx(m.Space,{}),o.jsx(m.Column,{alignItems:"center",children:s.presets.map(a=>o.jsxs(Fe.Fragment,{children:[o.jsx(M.PrimaryButton,{label:a.label,onClick:()=>e(a)}),o.jsx(m.Space,{})]},a.label))})]})},er=function({locale:t,dateInFocus:r,firstMonthInMonthPicker:n,setDateInFocus:s,currentPanel:a,setCurrentPanel:i,renderMonthPicker:l,...u}){const f=c.useMemo(()=>t==null?"en-GB":mt(t)??"en-GB",[t]),h=m.useToday(),D=c.useCallback(g=>{s&&s(g),i("calendar")},[s,i]),x=c.useCallback(()=>{i("month")},[i]);switch(a){case"calendar":return o.jsx(we,{...u,date:r,onClickMonth:x,locale:t});case"month":return l?l({value:r,onValueChange:D,locale:t,firstMonth:n??h,numMonths:24,dateInFocus:r}):o.jsx(he,{value:r,onValueChange:D,localeCode:f,firstMonth:n??h,numMonths:24});case"presets":return o.jsx(gt,{onClickPreset:()=>{}});default:return o.jsx(m.Box,{children:o.jsx(M.PrimaryButton,{label:"Show calendar",onClick:()=>i("calendar")})})}},tr=(e,t,r,n)=>{const s=c.useCallback(()=>{const u=d.addMonths(e,r??n??1);t==null||t(u)},[t,e,r,n]),a=c.useCallback(()=>{const u=d.addYears(e,1);t==null||t(u)},[t,e]),i=c.useCallback(()=>{const u=d.subMonths(e,r??n??1);t==null||t(u)},[t,e,r,n]),l=c.useCallback(()=>{const u=d.subYears(e,1);t==null||t(u)},[t,e]);return{nextMonth:s,prevMonth:i,nextYear:a,prevYear:l}},rr=({children:e,prevMonth:t,nextMonth:r,prevYear:n,nextYear:s})=>o.jsxs("div",{children:[e,o.jsx(m.Indent,{children:o.jsxs(m.Row,{gap:1,children:[o.jsx(M.SecondaryButton,{onClick:n,leftIcon:M.stenaAngleLeftDouble}),o.jsx(M.SecondaryButton,{onClick:t,leftIcon:M.stenaArrowLeft}),o.jsx(m.Indent,{num:2}),o.jsx(M.SecondaryButton,{onClick:r,leftIcon:M.stenaArrowRight}),o.jsx(M.SecondaryButton,{onClick:s,leftIcon:M.stenaAngleRightDouble})]})}),o.jsx(m.Space,{})]}),nr=()=>{};function ce({monthSwitcherPlacement:e,theme:t=oe,dateInFocus:r,setDateInFocus:n,currentPanel:s,firstMonthInMonthPicker:a,setCurrentPanel:i,onSelectPreset:l=nr,renderMonthPicker:u,...f}){const{nextMonth:h,prevMonth:D,nextYear:x,prevYear:g}=tr(r,n,f.monthsPerRow,f.numMonths);switch(sr(e,f.numMonths)){case"below":return o.jsx(rr,{theme:t,nextMonth:h,prevMonth:D,nextYear:x,prevYear:g,children:o.jsx(we,{...f,theme:t,date:r})});case"header":return o.jsx(m.Column,{children:o.jsx(er,{...f,theme:t,renderMonthPicker:u,dateInFocus:r,firstMonthInMonthPicker:a,setDateInFocus:n,currentPanel:s,setCurrentPanel:i,onSelectPreset:l,headerRightContent:o.jsxs(m.Row,{alignItems:"center",gap:1,children:[o.jsx(M.SecondaryButton,{onClick:D,leftIcon:M.stenaArrowLeft}),o.jsx(M.SecondaryButton,{onClick:h,leftIcon:M.stenaArrowRight})]})})});default:return o.jsx(we,{...f,theme:t,date:r})}}const sr=(e,t)=>e||(t||1)>1?"below":"header",xt=e=>({startDate:e.startDate?d.format(e.startDate,"yyyy-MM-dd"):void 0,endDate:e.endDate?d.format(e.endDate,"yyyy-MM-dd"):void 0}),Dt=({startDate:e,endDate:t})=>{const r=new Date;return{startDate:e?d.parse(e,"yyyy-MM-dd",r):void 0,endDate:t?d.parse(t,"yyyy-MM-dd",r):void 0}},Ue=({startDate:e,endDate:t})=>!!(e&&t&&!d.isSameDay(e,t)&&d.isAfter(e,t)),qe=e=>Ue(e)?{startDate:e.endDate,endDate:e.startDate}:e,or=e=>e.startDate&&e.endDate?xt(qe(Dt(e))):e,ar=(e,t,r,n)=>c.useCallback(s=>{const a={startDate:r==="startDate"?s.date:e==null?void 0:e.startDate,endDate:r==="endDate"?s.date:e==null?void 0:e.endDate};Ue(a)||n(r==="startDate"?"endDate":"startDate"),t==null||t(qe(a))},[r,t,n,e==null?void 0:e.endDate,e==null?void 0:e.startDate]),Ce=e=>{const[t,r]=c.useState("calendar"),n=c.useCallback(s=>{r(s),e==null||e(s)},[e]);return{currentPanel:t,setCurrentPanel:n}},bt=({focusedInput:e,value:t,onValueChange:r,setFocusedInput:n,statePerMonth:s,onChangePanel:a,initialDateInFocus:i})=>{const{currentPanel:l,setCurrentPanel:u}=Ce(a),[f,h]=c.useState(()=>i??new Date),D=ar(t,r,e,n),x=c.useMemo(()=>ue(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:D,statePerMonth:x,currentPanel:l,setCurrentPanel:u,setDateInFocus:h,dateInFocus:f}};function ir(e){const t=bt(e);return o.jsx(ce,{...e,...t})}const cr=()=>{const[e,t]=c.useState(),[r,n]=c.useState(),[s,a]=c.useState("startDate");return{startDate:e,setStartDate:t,endDate:r,setEndDate:n,focusedInput:s,setFocusedInput:a}},yt=({onChange:e,value:t,statePerMonth:r,onChangePanel:n})=>{const{currentPanel:s,setCurrentPanel:a}=Ce(n),[i,l]=c.useState(()=>t??new Date),u=c.useCallback(h=>{e&&e(h.date)},[e]),f=c.useMemo(()=>t?ee(r,t,["selected","singleSelected"]):r,[r,t]);return{onClickDay:u,statePerMonth:f,date:t,currentPanel:s,setCurrentPanel:a,dateInFocus:i,setDateInFocus:l}};function ze(e){const t=yt(e);return o.jsx(ce,{...e,...t})}const pt=({onChange:e,value:t,statePerMonth:r,onChangePanel:n})=>{const{currentPanel:s,setCurrentPanel:a}=Ce(n),[i,l]=c.useState(()=>new Date),u=c.useCallback(h=>{if(!e)return;const D=t&&t.find(x=>d.isSameDay(x,h.date));e(t&&D?t.filter(x=>!d.isSameDay(x,h.date)):[...t||[],h.date])},[e,t]),f=c.useMemo(()=>t?t.reduce((h,D)=>ee(h,D,["selected"]),r):r,[r,t]);return{onClickDay:u,statePerMonth:f,currentPanel:s,setCurrentPanel:a,dateInFocus:i,setDateInFocus:l}};function lr(e){const t=pt(e);return o.jsx(ce,{...e,...t})}const wt=({onChange:e,value:t,statePerMonth:r,onChangePanel:n,locale:s=A.enGB})=>{const[a,i]=c.useState(()=>{const g=Ee(t,s);return g?g.days[0].date:new Date}),{currentPanel:l,setCurrentPanel:u}=Ce(n),f=c.useCallback(g=>{e&&e(Je(Re(g.date,s)))},[s,e]),h=c.useCallback(g=>{e&&e(Je(g))},[e]),D=c.useMemo(()=>{const g=Ee(t,s);return g?et(r,g):r},[t,s,r]),x=c.useMemo(()=>{const g=Ee(t,s);return g?g.days[0].date:new Date},[s,t]);return{statePerMonth:D,date:x,dateInFocus:a,setDateInFocus:i,onClickDay:f,onClickWeek:h,currentPanel:l,setCurrentPanel:u}},Je=e=>{if(e)return`${e.endYear}-${e.weekNumber}`},Ee=(e,t)=>{if(!e)return;const r=e.split("-"),n=parseInt(r[1],10),s=parseInt(r[0],10),a=new Date;a.setFullYear(s);const i=d.startOfWeek(d.setWeek(a,n),{locale:t});return Re(i,t)};function dr(e){const t=wt(e);return o.jsx(ce,{...e,...t})}const De="bottom",ur=(e,t,r)=>{const[n,s]=c.useState(r||!1),a=c.useCallback(()=>(s(!0),!0),[s]),i=c.useCallback(()=>{s(!1),t&&t()},[s,t]),l=c.useCallback(u=>{e&&e(u),setTimeout(i,150)},[e,i]);return{showCalendar:a,hideCalendar:i,showingCalendar:n,onSelectDate:l}},be="2999-12-31",fr=({displayFormat:e=te.fullDate,placeholder:t="Enter date",value:r,calendarTheme:n=oe,calendarProps:s,openOnMount:a,onClose:i,onChange:l,variant:u,width:f,minDate:h,maxDate:D=be,disabled:x,portalTarget:g,zIndex:b})=>{const{hideCalendar:w,showingCalendar:S,onSelectDate:y,showCalendar:p}=ur(l,i,a);return o.jsx(m.Box,{width:f,children:o.jsx(ge.ControlledPopover,{hideArrow:!0,open:S,onRequestClose:w,appendTo:g,zIndex:b,renderTrigger:k=>o.jsx(m.Box,{...k,children:o.jsx(Z.TextInput,{type:"date",onFocus:p,buttonRight:o.jsx(M.TextInputButton,{onClick:p,icon:M.stenaCalendar}),value:r?d.format(r,e):"",placeholder:t,size:9,disabled:x,autoFocus:a,variant:u,min:h,max:D})}),placement:De,children:o.jsx(ze,{...s,onChange:y,value:r,theme:n,minDate:h,maxDate:D})})})},hr=(e,t)=>{const r=c.useRef(null),n=c.useRef(null),[s,a]=c.useState(!1),[i,l]=c.useState(void 0),u=c.useCallback(()=>(l("startDate"),a(!0),!0),[l,a]),f=c.useCallback(()=>(l("endDate"),a(!0),!0),[l,a]),h=c.useCallback(()=>{a(!1)},[a]),D=c.useCallback(g=>{var b,w;i==="startDate"?(t==null||t({startDate:g.date,endDate:e==null?void 0:e.endDate}),e!=null&&e.endDate?setTimeout(h,150):(l("endDate"),(b=n.current)==null||b.focus())):i==="endDate"&&(t==null||t({startDate:e==null?void 0:e.startDate,endDate:g.date}),e!=null&&e.startDate?setTimeout(h,150):(l("startDate"),(w=r.current)==null||w.focus()))},[i,t,l,h,e]),x=c.useMemo(()=>(e==null?void 0:e.startDate)&&(e==null?void 0:e.endDate)&&d.isAfter(e.startDate,e.endDate),[e==null?void 0:e.startDate,e==null?void 0:e.endDate]);return{showingCalendar:s,hideCalendar:h,showCalendarEndDate:f,showCalendarStartDate:u,focusedInput:i,setFocusedInput:l,startDateInputRef:r,endDateInputRef:n,onClickDay:D,startDateIsAfterEnd:x}};function mr({displayFormat:e=te.fullDate,placeholderStartDate:t="Start date",placeholderEndDate:r="End date",value:n,onValueChange:s,width:a,calendarTheme:i=oe,calendarProps:l,minDate:u,maxDate:f=be,disabled:h,portalTarget:D,zIndex:x}){const[g,b]=c.useState("calendar"),{hideCalendar:w,showCalendarEndDate:S,showCalendarStartDate:y,showingCalendar:p,focusedInput:k,startDateInputRef:j,endDateInputRef:C,onClickDay:L,startDateIsAfterEnd:B}=hr(n,s),[T,R]=c.useState(()=>(k&&(n==null?void 0:n[k]))??new Date),E=c.useMemo(()=>ue(void 0,n==null?void 0:n.startDate,n==null?void 0:n.endDate),[n]);return o.jsx(ge.ControlledPopover,{hideArrow:!0,appendTo:D,zIndex:x,renderTrigger:N=>o.jsxs(m.Row,{alignItems:"center",...N,children:[o.jsx(Z.TextInput,{iconLeft:M.stenaCalendar,onFocus:y,value:n!=null&&n.startDate?d.format(n.startDate,e):"",placeholder:t,width:a,disabled:h,inputRef:j,size:9,variant:B?"error":void 0}),o.jsx(m.Space,{}),o.jsx(M.Icon,{icon:M.stenaArrowWideRight,color:Me.cssColor("--lhds-color-ui-500"),size:14}),o.jsx(m.Space,{}),o.jsx(Z.TextInput,{iconLeft:M.stenaCalendar,onFocus:S,value:n!=null&&n.endDate?d.format(n.endDate,e):"",placeholder:r,width:a,disabled:h,inputRef:C,size:9,variant:B?"error":void 0})]}),open:p,placement:De,onRequestClose:w,children:o.jsx(ce,{...l,dateInFocus:T,setDateInFocus:R,statePerMonth:E,theme:i,onClickDay:L,currentPanel:g,setCurrentPanel:b,minDate:u,maxDate:f})})}const gr=({calendarProps:e,closeOnCalendarSelectDate:t=!0,dateFormat:r=te.fullDate,disableCalender:n=!1,onValueChange:s,placeholder:a="yyyy-mm-dd",value:i,width:l="130px",calendarTheme:u=oe,hideCalenderIcon:f=!1,minDate:h,maxDate:D=be,variant:x,portalTarget:g,zIndex:b,...w})=>{const[S,y]=c.useState(!1),p=c.useCallback(()=>{y(!S)},[y,S]),k=c.useCallback(()=>{y(!1)},[y]),j=c.useCallback(E=>{s&&s(E)},[s]),C=c.useCallback(E=>{E&&(j(d.format(E,r)),t&&setTimeout(()=>y(!S),200))},[j,r,t,y,S]),L=!!i&&!/^[-/\\.0-9]+$/.test(i),B=!!i&&d.isValid(d.parse(i,r,new Date)),R=!!i&&i.length>=r.length&&!B||L;return o.jsx(m.Box,{width:l,children:o.jsx(ge.ControlledPopover,{appendTo:g,zIndex:b,renderTrigger:E=>o.jsx(Z.TextInput,{...w,variant:R?"error":x,disableContentPaddingRight:!0,contentRight:f?void 0:o.jsx(m.Row,{alignItems:"center",indent:.5,children:o.jsx(M.FlatButton,{size:"small",disabled:w.disabled||n,leftIcon:M.stenaCalendar,onClick:p})}),onValueChange:j,placeholder:a,value:i||"",min:h,max:D,size:10,...E}),hideArrow:!0,open:S,placement:De,onRequestClose:k,children:o.jsx(ze,{...e,onChange:C,value:i&&B?d.parse(i,r,new Date):void 0,minDate:h,maxDate:D,theme:u})})})},Se=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")}},ke=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")}},xr=e=>{if(!ve(e))return{time:e,success:!1};const t=e&&e.split(/-|:|,|;|[/]|[.]| /);if(t&&t.length===2)try{const r=Se(t[0]),n=ke(t[1]);return{time:`${r}:${n}`,success:!0}}catch{return{time:e,success:!1}}else if(t&&t.length===1){let r=0,n=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 n=parseInt(e.substring(1,3),10),n>=0&&n<=59?{time:`0${e.substring(0,1)}:${e.substring(1,3)}`,success:!0}:{time:e,success:!1};case 4:return r=parseInt(e.substring(0,2),10),n=parseInt(e.substring(2,4),10),r<0||r>23?{time:e,success:!1}:n<0||n>59?{time:e,success:!1}:{time:`${e.substring(0,2)}:${e.substring(2,4)}`,success:!0};default:return{time:e,success:!1}}}return{time:e,success:!1}},ve=e=>e?/^[-:.,/; 0-9]+$/.test(e):!0,Dr=({onValueChange:e,showPlaceholder:t=!0,useIcon:r=!0,value:n,width:s="85px",variant:a,...i})=>{const[l,u]=c.useState(()=>ve(n)),f="hh:mm",h=c.useCallback(()=>{if(n){const x=xr(n);u(x.success),x.success&&e&&e(x.time)}},[n,e,u]),D=c.useCallback(x=>{const g=x.target.value,b=ve(g);u(b&&g.length<=f.length),e&&e(g)},[e,u]);return o.jsx(Z.TextInput,{...i,type:"time",variant:l?a:"error",iconLeft:r?M.stenaClock:void 0,value:n,placeholder:t?f:void 0,onChange:D,onBlur:h,width:s})},St=({autoFocusLeft:e,autoFocusRight:t,onEsc:r,onEnter:n,onValueChangeLeft:s,onValueChangeRight:a,separatorIcon:i,placeholderLeft:l,placeholderRight:u,typeLeft:f,typeRight:h,onChangeLeft:D,onChangeRight:x,valueLeft:g,valueRight:b,minLeft:w,maxLeft:S,minRight:y,maxRight:p,onClickLeft:k,onClickRight:j,onClickCalendar:C,onClickArrowDown:L,onBlurLeft:B,onBlurRight:T,onFocusLeft:R,onFocusRight:E,inputRefLeft:N,inputRefRight:I,variant:U,variantLeft:Y,variantRight:O,onBlur:P,showPresets:H,widthLeft:q,widthRight:K,disabled:$})=>{const v=c.useRef(0),W=c.useMemo(()=>z.debounce(_=>{_===0&&(P==null||P())},10),[P]),re=c.useCallback(_=>{v.current++,W(v.current),R&&R(_)},[R,v,W]),J=c.useCallback(_=>{v.current++,W(v.current),E&&E(_)},[E,v,W]),Q=c.useCallback(_=>{v.current--,W(v.current),B&&B(_)},[B,v,W]),F=c.useCallback(_=>{v.current--,W(v.current),T&&T(_)},[T,v,W]);return o.jsx(m.Box,{children:o.jsxs(Z.TextInputBox,{disableContentPaddingRight:!0,disabled:$,variant:U,contentRight:o.jsxs(m.Row,{alignItems:"center",children:[o.jsx(m.Indent,{num:.5,children:o.jsx(M.FlatButton,{leftIcon:M.stenaCalendar,onClick:C,disabled:$,size:"small"})}),H?o.jsxs(o.Fragment,{children:[o.jsx(m.Row,{height:"22px",children:o.jsx(m.SeparatorLine,{vertical:!0})}),o.jsx(m.Indent,{num:.5,children:o.jsx(M.FlatButton,{leftIcon:M.stenaAngleDown,onClick:L,disabled:$,size:"small"})})]}):null]}),children:[o.jsx(m.Box,{width:q,children:o.jsx(Z.TextInput,{onEsc:r,onEnter:n,onClick:k,disabled:$,hideBorder:!0,placeholder:l,value:g,onValueChange:s,onChange:D,onBlur:Q,onFocus:re,inputRef:N,variant:Y,type:f,autoFocus:e,min:w,max:S})}),o.jsx(m.Row,{indent:.5,alignItems:"center",justifyContent:"center",children:o.jsx(M.Icon,{icon:i,size:12,color:Me.cssColor("--lhds-color-ui-500")})}),o.jsx(m.Box,{width:K,children:o.jsx(Z.TextInput,{onEsc:r,onEnter:n,onClick:j,disabled:$,hideBorder:!0,placeholder:u,value:b,onValueChange:a,onChange:x,onBlur:F,onFocus:J,inputRef:I,variant:O,type:h,autoFocus:t,min:y,max:p})})]})})},br=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 r=parseInt(t[0],10),n=parseInt(t[1],10);if(isNaN(r))throw new Error("Invalid time.");if(isNaN(n))throw new Error("Invalid time.");if(r<0||r>23)throw new Error("Invalid time.");if(n<0||n>59)throw new Error("Invalid time.");return r*100+n},yr=e=>{try{return br(e),!0}catch{return!1}},pe=e=>{if(e&&yr(e)){const t=e.split(":");return{hour:m.parseIntElseUndefined(t[0]),minute:m.parseIntElseUndefined(t[1])}}return{hour:void 0,minute:void 0}},pr=e=>`${Se(String(e.getHours()))}:${ke(String(e.getMinutes()))}`,wr="_timePicker_1w05d_1",Sr="_timePickerColumn_1w05d_6",kt={timePicker:wr,timePickerColumn:Sr},kr=({onClick:e,item:t,selected:r,columnRef:n,canScrollRef:s})=>{const a=c.useRef(null);return c.useEffect(function(){if(r&&n.current&&a.current&&s.current){const l=a.current.scrollHeight*Math.max(t-2,0);n.current.scrollTo(0,l),s.current=!1}},[n,t,r,s]),o.jsx(m.Row,{width:"64px",justifyContent:"center",spacing:.5,indent:.5,ref:a,children:r?o.jsx(M.PrimaryButton,{label:z.padStart(String(t),2,"0"),onClick:()=>e&&e(t)}):o.jsx(M.FlatButton,{label:String(t).padStart(2,"0"),onClick:()=>e&&e(t)})})},Ze=({onClick:e,items:t,selectedItem:r,canScrollRef:n})=>{const s=c.useRef(null);return o.jsx(m.Column,{className:kt.timePickerColumn,ref:s,children:t.map(a=>o.jsx(kr,{item:a,onClick:e,selected:a===r,columnRef:s,canScrollRef:n},a))})},jr=z.range(0,24),Mr=z.range(0,60),Rr=({value:e,onValueChange:t})=>{const r=c.useRef(!0),[n,s]=c.useState(void 0),[a,i]=c.useState(void 0);c.useEffect(()=>{if(e){const{minute:f,hour:h}=pe(e);s(h),i(f)}},[e]);const l=c.useCallback(f=>{s(f),t==null||t(`${Se(String(f??0))}:${ke(String(a??0))}`)},[a,t]),u=c.useCallback(f=>{i(f),t==null||t(`${Se(String(n??0))}:${ke(String(f??0))}`)},[n,t]);return o.jsxs(m.Row,{className:kt.timePicker,children:[o.jsx(Ze,{items:jr,onClick:l,selectedItem:n,canScrollRef:r}),o.jsx(m.Indent,{}),o.jsx(Ze,{items:Mr,onClick:u,selectedItem:a,canScrollRef:r})]})},Cr=(e,t,r)=>{c.useEffect(function(){e&&t(e)},[e,t]),c.useEffect(function(){r.current&&(e?r.current.valueAsDate=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())):r.current.valueAsDate=null)},[e,r])},Tr=(e,t,{setDateInFocus:r,showCalendarInternal:n,hideCalendarInternal:s,setFirstFocusedInput:a,setCurrentPanel:i,localTime:l,setLocalTime:u,localDate:f,setLocalDate:h},D)=>{const x=c.useCallback(p=>{if(!p)return;const k=new Date(p);if(e)k.setHours(e.getHours()),k.setMinutes(e.getMinutes()),t==null||t(k),h(void 0);else if(l){const{minute:j,hour:C}=pe(l);k.setHours(C??0),k.setMinutes(j??0),t==null||t(k),h(void 0)}else h(k);r(k),D.current&&(D.current.valueAsDate=new Date(Date.UTC(k.getFullYear(),k.getMonth(),k.getDate())))},[e,D,l,t,r,h]),g=c.useCallback(p=>{if(p)if(e){const k=pe(p),j=new Date(e);j.setHours(k.hour||0),j.setMinutes(k.minute||0),t==null||t(j),u(void 0)}else if(f){const k=pe(p),j=new Date(f);j.setHours(k.hour||0),j.setMinutes(k.minute||0),t==null||t(j),u(void 0)}else u(p)},[t,e,f,u]),b=c.useCallback(p=>{p.target.value[0]!=="0"&&x(p.target.valueAsDate)},[x]),w=c.useCallback(p=>g(p.target.value),[g]),S=c.useCallback(()=>{r(e||new Date),i("calendar"),n()},[e,i,n,r]),y=c.useCallback(()=>{a(void 0),s()},[a,s]);return{inputLeftChangeHandler:b,inputRightChangeHandler:w,hideCalendar:y,showCalendar:S,onChangeTime:g,onChangeDate:x}},Ir=e=>{const[t,r]=c.useState(void 0),[n,s]=c.useState(void 0),[a,i,l]=m.useBoolean(!1),[u,f,h]=m.useBoolean(!1),[D,x]=c.useState(void 0),[g,b]=c.useState(()=>e??new Date),[w,S]=c.useState("calendar");return{isCalendarVisible:a,showCalendarInternal:i,hideCalendarInternal:l,firstFocusedInput:D,setFirstFocusedInput:x,dateInFocus:g,setDateInFocus:b,currentPanel:w,setCurrentPanel:S,isTimePickerVisible:u,showTimePicker:f,hideTimePicker:h,localDate:t,setLocalDate:r,localTime:n,setLocalTime:s}},Br=(e,t,r,n,{isCalendarVisible:s,setCurrentPanel:a,showTimePicker:i,hideTimePicker:l})=>{const u=c.useCallback(()=>{s||r(),a("calendar"),l()},[l,s,a,r]),f=c.useCallback(()=>{n(),i()},[n,i]),h=c.useCallback(b=>{e(b.date),n(),i()},[e,n,i]),D=c.useCallback(()=>{a("presets"),r()},[a,r]),x=c.useCallback(()=>{var b;s?n():((b=t.current)==null||b.focus(),a("calendar"),r())},[s,n,t,a,r]),g=c.useCallback(b=>{b.key==="Escape"&&n()},[n]);return{onFocusLeft:u,onFocusRight:f,onClickDay:h,onClickArrowButton:D,onClickCalendarButton:x,onKeyDownHandler:g}},Er=({value:e,onValueChange:t,onEnter:r,onEsc:n,onBlur:s,autoFocus:a,minDate:i,widthLeft:l=128,widthRight:u=80,maxDate:f=be,variant:h,disabled:D,zIndex:x,appendTo:g})=>{const b=c.useRef(null),w=c.useRef(null),S=Ir(e),{setCurrentPanel:y,currentPanel:p,isCalendarVisible:k,dateInFocus:j,setDateInFocus:C,isTimePickerVisible:L,hideTimePicker:B,localTime:T,localDate:R}=S,{showCalendar:E,hideCalendar:N,inputLeftChangeHandler:I,inputRightChangeHandler:U,onChangeTime:Y,onChangeDate:O}=Tr(e,t,S,b),{onKeyDownHandler:P,onFocusRight:H,onFocusLeft:q,onClickDay:K,onClickCalendarButton:$,onClickArrowButton:v}=Br(O,b,E,N,S);Cr(e,C,b);const W=c.useMemo(()=>{const _=e||R;return _?ee(void 0,_,["singleSelected","selected"]):{}},[R,e]),re=c.useCallback(()=>{N(),B()},[N,B]),J=c.useMemo(()=>e?pr(e):T,[e,T]),Q=m.useDelayedFalse(k,300),F=m.useDelayedFalse(L,300);return o.jsx(m.Box,{onKeyDown:P,children:o.jsx(ge.ControlledPopover,{hideArrow:!0,zIndex:x,appendTo:g,renderTrigger:_=>o.jsx(m.Box,{..._,children:o.jsx(St,{autoFocusLeft:a,onEsc:n,onEnter:r,onBlur:s,disabled:D,separatorIcon:M.stenaClock,typeLeft:"date",typeRight:"time",placeholderLeft:"yyyy-mm-dd",placeholderRight:"hh:mm",onChangeLeft:I,onChangeRight:U,onClickArrowDown:v,onClickCalendar:$,onFocusLeft:q,onFocusRight:H,onClickLeft:q,onClickRight:H,inputRefLeft:b,inputRefRight:w,valueRight:J??"",widthLeft:l,widthRight:u,minLeft:i,maxLeft:f,variant:h})}),placement:De,open:k||L,onRequestClose:re,children:(Q||F)&&o.jsx(m.Column,{children:Q?o.jsx(ce,{statePerMonth:W,onClickDay:K,dateInFocus:j,setDateInFocus:C,currentPanel:p,setCurrentPanel:y,minDate:i,maxDate:f}):F?o.jsxs(m.Column,{children:[o.jsx(m.Column,{overflow:"hidden",height:"250px",children:o.jsx(Rr,{value:J??"",onValueChange:Y})}),o.jsx(m.Space,{}),o.jsx(m.Row,{justifyContent:"flex-end",children:o.jsx(M.PrimaryButton,{label:"Done",onClick:B})})]}):null})})})},Ar=({value:e,onValueChange:t,year:r})=>{const n=String(r);return o.jsx(m.Row,{justifyContent:"center",children:e===r?o.jsx(M.PrimaryButton,{label:n,onClick:()=>t==null?void 0:t(r)}):o.jsx(M.FlatButton,{label:n,onClick:()=>t==null?void 0:t(r)})})},Lr=({value:e,onValueChange:t,initialLastYear:r})=>{const[n,s]=c.useState(()=>e?e+4:r??new Date().getFullYear()+4),a=c.useMemo(()=>{const i=n-11;return z.chunk(z.range(i,n+1),3)},[n]);return c.useEffect(()=>{s(i=>_r(e,i))},[e]),o.jsxs(m.Row,{children:[o.jsx(m.Column,{justifyContent:"center",children:o.jsx(M.FlatButton,{leftIcon:M.stenaArrowLeft,onClick:()=>s(n-3)})}),o.jsx(m.Column,{gap:1,children:a.map(i=>o.jsx(m.Row,{gap:1,children:i.map(l=>o.jsx(Ar,{year:l,onValueChange:t,value:e},l))},i[0]))}),o.jsx(m.Column,{justifyContent:"center",children:o.jsx(M.FlatButton,{leftIcon:M.stenaArrowRight,onClick:()=>s(n+3)})})]})},_r=(e,t)=>{if(e==null)return t;if(e>t){const n=e-t,s=n%3,a=n-s+3;return t+a}const r=t-11;if(e<r){const n=r-e,s=n%3,a=n-s+3;return t-a}return t},Nr=(e,t,r,n,s)=>{c.useEffect(function(){e&&r(e)},[e,r]),c.useEffect(function(){t&&r(t)},[t,r]),c.useEffect(function(){n.current&&(e?n.current.valueAsDate=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())):n.current.valueAsDate=null)},[e,n]),c.useEffect(function(){s.current&&(t?s.current.valueAsDate=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())):s.current.valueAsDate=null)},[t,s])},vr=(e,t,r,{setDateInFocus:n,showCalendarInternal:s,hideCalendarInternal:a,setFirstFocusedInput:i,setCurrentPanel:l})=>{const u=c.useCallback(x=>{x.target.value[0]!=="0"&&(r==null||r({startDate:x.target.valueAsDate??void 0,endDate:t}))},[r,t]),f=c.useCallback(x=>{x.target.value[0]!=="0"&&(r==null||r({startDate:e,endDate:x.target.valueAsDate??void 0}))},[r,e]),h=c.useCallback(x=>{x!=null?n(x):n(e||t||new Date),l("calendar"),s()},[e,t,l,s,n]),D=c.useCallback(()=>{i(void 0),a()},[i,a]);return{inputLeftChangeHandler:u,inputRightChangeHandler:f,hideCalendar:D,setDateInFocus:n,setCurrentPanel:l,showCalendar:h}},Pr=(e,t)=>{const[r,n,s]=m.useBoolean(!1),[a,i]=c.useState(void 0),[l,u]=c.useState("startDate"),[f,h]=c.useState(()=>(l==="startDate"?e:l==="endDate"?t:void 0)??new Date),[D,x]=c.useState("calendar");return{isCalendarVisible:r,showCalendarInternal:n,hideCalendarInternal:s,firstFocusedInput:a,setFirstFocusedInput:i,focusedInput:l,setFocusedInput:u,dateInFocus:f,setDateInFocus:h,currentPanel:D,setCurrentPanel:x}},Yr=(e,t,r,n,s,a,i,{firstFocusedInput:l,setFirstFocusedInput:u,isCalendarVisible:f,setFocusedInput:h,focusedInput:D,setCurrentPanel:x,setDateInFocus:g})=>{const b=c.useCallback(()=>{l==null&&u("startDate"),h("startDate"),f?e!=null&&g(e):a(e)},[l,h,f,e,u,a,g]),w=c.useCallback(()=>{l==null&&u("endDate"),h("endDate"),f?t!=null&&g(t):a(t)},[l,h,f,t,u,a,g]),S=c.useCallback(j=>{var C,L,B,T;D==="startDate"?t!=null&&d.isAfter(j.date,t)?(r==null||r({startDate:j.date,endDate:void 0}),h("endDate"),(C=s.current)==null||C.focus()):(r==null||r({startDate:j.date,endDate:t}),l==="startDate"?(h("endDate"),(L=s.current)==null||L.focus()):setTimeout(i,50)):D==="endDate"&&(e?d.isAfter(e,j.date)?(r==null||r({startDate:j.date,endDate:void 0}),h("endDate"),(T=s.current)==null||T.focus()):(r==null||r({startDate:e,endDate:j.date}),setTimeout(i,50)):(r==null||r({startDate:e,endDate:j.date}),h("startDate"),(B=n.current)==null||B.focus()))},[D,r,t,l,h,s,i,e,n]),y=c.useCallback(()=>{x("presets"),a()},[x,a]),p=c.useCallback(()=>{var j;f?i():(h("startDate"),u("startDate"),(j=n.current)==null||j.focus(),x("calendar"),a())},[f,i,h,u,n,x,a]),k=c.useCallback(j=>{j.key==="Escape"&&i()},[i]);return{onFocusLeft:b,onFocusRight:w,onClickDay:S,onClickArrowButton:y,onClickCalendarButton:p,onKeyDownHandler:k}};function Fr({value:e,onValueChange:t,autoFocus:r,onBlur:n,onEnter:s,onEsc:a,minDate:i,maxDate:l=be,calendarProps:u,widthLeft:f=128,widthRight:h=128,firstMonthInMonthPicker:D,variant:x,disabled:g,zIndex:b,appendTo:w}){const{startDate:S,endDate:y}=e||{},p=c.useRef(null),k=c.useRef(null),j=Pr(S,y),{dateInFocus:C,setDateInFocus:L,isCalendarVisible:B,currentPanel:T,setCurrentPanel:R}=j,{showCalendar:E,hideCalendar:N,inputLeftChangeHandler:I,inputRightChangeHandler:U}=vr(S,y,t,j),{onKeyDownHandler:Y,onFocusRight:O,onFocusLeft:P,onClickDay:H,onClickCalendarButton:q,onClickArrowButton:K}=Yr(S,y,t,p,k,E,N,j);Nr(S,y,L,p,k);const $=c.useMemo(()=>S&&y&&d.isAfter(S,y),[S,y]),v=c.useMemo(()=>Xe(u==null?void 0:u.statePerMonth,S,y,C),[u==null?void 0:u.statePerMonth,S,y,C]);return o.jsx(m.Box,{onKeyDown:Y,children:o.jsx(ge.ControlledPopover,{hideArrow:!0,restoreFocus:!1,returnFocus:!1,zIndex:b,appendTo:w,renderTrigger:W=>o.jsx(m.Box,{...W,children:o.jsx(St,{autoFocusLeft:r,onEsc:a,onEnter:s,onBlur:n,disabled:g,separatorIcon:M.stenaArrowRight,typeLeft:"date",typeRight:"date",placeholderLeft:"Start date",placeholderRight:"End date",onChangeLeft:I,onChangeRight:U,onClickArrowDown:K,onClickCalendar:q,onFocusLeft:P,onFocusRight:O,onClickLeft:P,onClickRight:O,inputRefLeft:p,inputRefRight:k,variant:$?"error":x,widthLeft:f,widthRight:h,minLeft:i,maxLeft:l,minRight:i,maxRight:l})}),placement:De,onRequestClose:N,open:B,children:o.jsx(ce,{onClickDay:H,dateInFocus:C,firstMonthInMonthPicker:D,setDateInFocus:L,currentPanel:T,setCurrentPanel:R,minDate:i,maxDate:l,...u,statePerMonth:v})})})}const Pe=({onChange:e,onValueChange:t,mask:r,pipe:n,value:s,guide:a,keepCharPositions:i,placeholderChar:l,showMask:u,calendarSize:f,onFocus:h,onBlur:D,placeholderWhenBlurred:x,placeholder:g,valueWhenBlurred:b,label:w,variant:S,...y})=>{const p=c.useRef(null),[k,j]=c.useState(!1),{onChange:C}=It.useMaskedInput(p,e,t,r,n,s,a,i,l,u,k),L=c.useCallback(R=>{h==null||h(R),j(!0)},[h]),B=c.useCallback(R=>{D==null||D(R),j(!1)},[D]),T=k?g:x??g;return S==="standard"?o.jsx(M.Label,{text:w??"",children:o.jsx(Z.TextInput,{...y,"aria-live":"polite",value:(k?s:b)??"",inputRef:p,placeholder:T,onFocus:L,onBlur:B,onChange:C,width:Qe(f),alwaysShowPlaceholder:!0})}):o.jsx(Z.LabelledTextInput,{...y,label:w,"aria-live":"polite",value:(k?s:b)??"",ref:p,placeholder:T,onFocus:L,onBlur:B,onChange:C,width:Qe(f),size:f==="large"?"large":"medium"})},Qe=e=>{switch(e){case"small":return"140px";case"medium":return"168px";case"large":return"196px";default:return m.exhaustSwitchCase(e,"168px")}},Wr=[/[1-2]/,/\d/,/\d/,/\d/],Or=[/[0-1]/,/\d/],Hr=[/[0-3]/,/\d/],jt=e=>Ur(e).flatMap($r),$r=e=>{switch(e){case"yyyy":return Wr;case"mm":case"MM":return Or;case"dd":case"DD":return Hr;default:return[e]}},Ur=e=>{if(e.length===0)return[];const t=[];let r=e[0];for(let n=1;n<e.length;n++)e[n]!==e[n-1]?(t.push(r),r=e[n]):r+=e[n];return t.push(r),t},le=e=>{const r=new Intl.DateTimeFormat(e,{dateStyle:"short"}).formatToParts(new Date),n={year:"yyyy",month:"MM",day:"dd"};return r.map(s=>n[s.type]||s.value).join("")},se=(e,t,r)=>{const n=$e(t,(r==null?void 0:r.matchLanguage)??!1,(r==null?void 0:r.fallbackLocaleCode)??He),s=ie(n);if(s==null)return;const a=d.parse(e,le(n),(r==null?void 0:r.referenceDate)??new Date,{locale:s});if(!isNaN(a.getTime()))return a},de=(e,t,r)=>{const n=$e(t,(r==null?void 0:r.matchLanguage)??!1,(r==null?void 0:r.fallbackLocaleCode)??He);return d.format(e,le(n),{locale:ie(n)})},je=(e,t)=>{const r=se(e,t);if(r!=null)return de(r,t)},Mt=({value:e,onValueChange:t,localeCode:r,startDateLabel:n="From",endDateLabel:s="To",onFocus:a,calendarSize:i,placeholderWhenBlurredStartDate:l,placeholderWhenBlurredEndDate:u,valueWhenBlurredStartDate:f,valueWhenBlurredEndDate:h,variant:D})=>{const{mask:x,placeholder:g}=c.useMemo(()=>{const b=le(r);return{mask:jt(b),placeholder:b.toLowerCase()}},[r]);return o.jsxs(m.Row,{children:[o.jsx(Pe,{mask:x,value:e==null?void 0:e.startDate,onValueChange:b=>{t==null||t({startDate:b})},onBlur:b=>{const w=je(b.target.value,r);w&&w!==(e==null?void 0:e.startDate)&&(t==null||t({startDate:w}))},onFocus:a,label:n,borderRadiusVariant:"onlyLeft",placeholder:g,placeholderWhenBlurred:l,valueWhenBlurred:f,calendarSize:i,variant:D}),o.jsx(Pe,{mask:x,value:e==null?void 0:e.endDate,onValueChange:b=>t==null?void 0:t({endDate:b}),onBlur:b=>{const w=je(b.target.value,r);w&&w!==(e==null?void 0:e.endDate)&&(t==null||t({endDate:w}))},onFocus:a,label:s,borderRadiusVariant:"onlyRight",placeholder:g,placeholderWhenBlurred:u,valueWhenBlurred:h,calendarSize:i,variant:D})]})},Ye=(e,t,r)=>{const n=d.isSameYear(e,t)?"":" y";return r.code.startsWith("en")?d.format(e,"eee MMM d"+n,{locale:r}).replace(".",""):d.format(e,"eee d MMM"+n,{locale:r}).replace(".","")},Rt=(e,t,r,n)=>{const s=ie(r),a=c.useId(),i=m.useToday(),l=c.useRef(null),u=c.useMemo(()=>le(r),[r]),f=c.useMemo(()=>{var I;return((I=e==null?void 0:e.startDate)==null?void 0:I.length)===u.length?se(e.startDate,r):void 0},[u.length,r,e==null?void 0:e.startDate]),h=c.useMemo(()=>{var I;return((I=e==null?void 0:e.endDate)==null?void 0:I.length)===u.length?se(e.endDate,r):void 0},[u.length,r,e==null?void 0:e.endDate]),D=c.useMemo(()=>f!=null?Ye(f,i,s):void 0,[s,f,i]),x=c.useMemo(()=>h!=null?Ye(h,i,s):void 0,[s,h,i]),[g,b]=c.useState(n??f??new Date),w=c.useCallback(I=>{d.isSameMonth(I,i)||d.isAfter(I,i)?b(I):b(i)},[i]),S=c.useMemo(()=>xe(g.getFullYear(),g.getMonth(),s),[s,g]),y=c.useMemo(()=>z.startCase(d.format(g,"MMMM yyyy",{locale:s})),[s,g]),p=c.useMemo(()=>d.isSameMonth(i,g),[i,g]),[k,j]=c.useState(),[C,L]=c.useState("calendar"),B=c.useCallback(I=>{var O,P;const U=((O=I==null?void 0:I.startDate)==null?void 0:O.length)===u.length?se(I.startDate,r):void 0,Y=((P=I==null?void 0:I.endDate)==null?void 0:P.length)===u.length?se(I.endDate,r):void 0;U?w(U):Y&&w(Y),t==null||t({...e,...I})},[u.length,r,t,w,e]),T=c.useMemo(()=>d.isSameMonth(i,g)||d.isBefore(g,i),[i,g]),R=c.useMemo(()=>(f&&h&&(d.isSameDay(f,h)||d.isBefore(f,h)))??!1,[h,f]);return{isDateDisabled:c.useCallback(I=>!d.isSameDay(I,i)&&d.isBefore(I,i),[i]),onClickDate:I=>{I.getFullYear()===g.getFullYear()&&I.getMonth()===g.getMonth()&&(f&&h==null?d.isBefore(I,f)?t==null||t({startDate:de(I,r),endDate:void 0}):t==null||t({startDate:e==null?void 0:e.startDate,endDate:de(I,r)}):t==null||t({startDate:de(I,r),endDate:void 0}))},onValueChangeByInputs:B,isValidDateRange:R,prevMonthDisabled:T,monthPickerButtonRef:l,calendarId:a,monthPickerButtonLabel:y,visiblePanel:C,setVisiblePanel:L,setVisibleMonth:b,visibleMonthData:S,todayIsInVisibleMonth:p,hoverDate:k,setHoverDate:j,selectedStartDate:f,selectedEndDate:h,today:i,visibleMonth:g,valueWhenBlurredStartDate:D,valueWhenBlurredEndDate:x}},Te=({previousMonthButtonAriaLabel:e,nextMonthButtonAriaLabel:t,monthPickerButtonLabel:r,visiblePanel:n,setVisiblePanel:s,monthPickerButtonRef:a,setVisibleMonth:i,visibleMonth:l,prevMonthDisabled:u,calendarSize:f,previousMonthButtonTestId:h,nextMonthButtonTestId:D})=>o.jsxs(m.Row,{alignSelf:"center",justifyContent:"space-between",width:"100%",children:[o.jsx(M.FlatButton,{"aria-live":"polite",label:r,rightIcon:n==="calendar"?M.stenaAngleDown:M.stenaAngleUp,onClick:()=>s(n==="calendar"?"month-picker":"calendar"),ref:a,size:f==="small"?"medium":"large"}),o.jsxs(m.Row,{alignItems:"center",gap:2,children:[o.jsx(M.SecondaryButton,{leftIcon:M.stenaArrowLeft,onClick:()=>i(d.subMonths(l,1)),disabled:u,"aria-label":e,size:f==="small"?"medium":"large","data-testid":h}),o.jsx(M.SecondaryButton,{leftIcon:M.stenaArrowRight,onClick:()=>i(d.addMonths(l,1)),"aria-label":t,size:f==="small"?"medium":"large","data-testid":D})]})]}),qr="_travelDateCell_h6vcn_1",zr="_small_h6vcn_4",Kr="_medium_h6vcn_9",Gr="_large_h6vcn_14",Jr="_outline_h6vcn_26",Zr="_contentWrapper_h6vcn_39",Qr="_disabled_h6vcn_60",Xr="_isToday_h6vcn_63",Vr="_isSelectionStart_h6vcn_67",en="_isSelectionEnd_h6vcn_68",tn="_hover_h6vcn_83",rn="_startSelected_h6vcn_86",nn="_endSelected_h6vcn_86",G={travelDateCell:qr,small:zr,medium:Kr,large:Gr,outline:Jr,contentWrapper:Zr,disabled:Qr,isToday:Xr,isSelectionStart:Vr,isSelectionEnd:en,hover:tn,startSelected:rn,endSelected:nn},ne=Me.cssColor("--lhds-color-red-100"),sn=(e,t,r,n,s,a)=>{if(!s)return{left:"transparent",right:"transparent"};if(t&&r&&d.isSameDay(t,r))return{left:"transparent",right:"transparent"};if(t&&r&&!a)return{left:"transparent",right:"transparent"};const i=t&&r?d.isAfter(e,t)&&d.isBefore(e,r)&&!d.isSameDay(e,t)&&!d.isSameDay(e,r):!1,l=t&&n?d.isAfter(e,t)&&d.isBefore(e,n)&&!d.isSameDay(e,t)&&!d.isSameDay(e,n):!1;if(i)return{left:ne,right:ne};if(t&&r)return d.isSameDay(e,t)?{left:"transparent",right:ne}:d.isSameDay(e,r)?{left:ne,right:"transparent"}:{left:"transparent",right:"transparent"};if(t&&n&&d.isAfter(n,t)){if(d.isSameDay(e,t))return{left:"transparent",right:ne};if(d.isSameDay(e,n))return{left:ne,right:"transparent"}}return l?{left:ne,right:ne}:{left:"transparent",right:"transparent"}},on=(e,t)=>{switch(t){case"PageUp":return d.subMonths(e,1);case"PageDown":return d.addMonths(e,1);case"Home":return d.startOfWeek(e);case"End":return d.addDays(d.startOfWeek(e),6);case"ArrowLeft":return d.subDays(e,1);case"ArrowUp":return d.subDays(e,7);case"ArrowRight":return d.addDays(e,1);case"ArrowDown":return d.addDays(e,7);default:return}},Ae=(e,t)=>d.format(d.addHours(e,12),te.fullDate)+t,an="_travelDateCellBackground_1k07m_1",cn="_small_1k07m_2",ln="_medium_1k07m_7",dn="_large_1k07m_12",ye={travelDateCellBackground:an,small:cn,medium:ln,large:dn},un=({calendarSize:e,bgColorLeft:t,bgColorRight:r})=>o.jsxs(m.Row,{children:[o.jsx(m.Box,{className:ae(ye.travelDateCellBackground,ye[e]),background:t}),o.jsx(m.Box,{className:ae(ye.travelDateCellBackground,ye[e]),background:r})]}),fn=({onClick:e,visibleMonth:t,onChangeVisibleMonth:r,day:n,isValidDateRange:s,selectedStartDate:a,selectedEndDate:i,onStartHover:l,onEndHover:u,hoverDate:f,today:h,todayIsInVisibleMonth:D,calendarId:x,isDateDisabled:g,size:b,dateTestId:w})=>{const S=c.useCallback(async B=>{var R;const T=on(n.date,B.key);T&&!g(T)&&(l(T),d.isSameMonth(n.date,T)?(R=document.getElementById(Ae(T,x)))==null||R.focus():(r(T),setTimeout(()=>{var E;(E=document.getElementById(Ae(T,x)))==null||E.focus()},10))),(B.key==="Enter"||B.code==="Space")&&e(n.date)},[x,n.date,g,r,e,l]),y=n.month===t.getMonth(),p=g(n.date),k=a?d.isSameDay(a,n.date):!1,j=i?d.isSameDay(i,n.date):!1,C=d.isSameDay(n.date,h),L=sn(n.date,a,i,f,y,s);return o.jsxs("td",{className:ae(G.travelDateCell,G[b]),onClick:p?void 0:()=>e(n.date),onMouseOver:p?void 0:()=>y&&l(n.date),onMouseOut:p?void 0:()=>y&&u(n.date),tabIndex:p?void 0:hn(n,a,C,t,D),id:p?void 0:Ae(n.date,x),onKeyDown:p?void 0:S,...p?void 0:{"aria-selected":k||j},"data-testid":w==null?void 0:w(n.date),children:[o.jsx("div",{className:G.outline}),o.jsx(un,{calendarSize:b,bgColorLeft:L.left,bgColorRight:L.right}),y&&o.jsx("div",{className:ae(G.contentWrapper,C?G.isToday:void 0,a?G.startSelected:void 0,i?G.endSelected:void 0,f&&d.isSameDay(f,n.date)?G.hover:void 0,k&&G.isSelectionStart,j&&G.isSelectionEnd,p&&G.disabled),children:o.jsx(m.Text,{variant:"bold",color:p?Me.cssColor("--lhds-color-ui-500"):void 0,children:n.dayOfMonth})})]})},hn=(e,t,r,n,s)=>{const a=t?d.isSameMonth(t,n):!1;return(t&&a?d.isSameDay(e.date,t):r)||!a&&!s&&e.date.getDate()===1?0:-1},mn="_travelCalendar_18pjj_1",gn={travelCalendar:mn},Ie=({visibleMonthData:e,onClickDate:t,setHoverDate:r,setVisibleMonth:n,visibleMonth:s,isValidDateRange:a,selectedStartDate:i,selectedEndDate:l,hoverDate:u,today:f,calendarId:h,isDateDisabled:D,todayIsInVisibleMonth:x,size:g="medium",multiSelectable:b,dateTestId:w})=>o.jsx("table",{className:gn.travelCalendar,role:"grid",...b?{"aria-multiselectable":!0}:void 0,children:o.jsxs("tbody",{children:[o.jsx("tr",{children:e.weeks[0].days.map(S=>o.jsx("th",{abbr:S.fullName,children:o.jsx(m.Text,{children:S.name})},S.name))}),e.weeks.map(S=>o.jsx(Fe.Fragment,{children:o.jsx("tr",{children:S.days.map(y=>o.jsx(fn,{size:g,onClick:p=>t(p),visibleMonth:s,onChangeVisibleMonth:n,isValidDateRange:a,day:y,onStartHover:p=>r(p),onEndHover:p=>r(k=>k&&d.isSameDay(k,p)?void 0:k),selectedStartDate:i,selectedEndDate:l,hoverDate:u,today:f,todayIsInVisibleMonth:x,calendarId:h,isDateDisabled:D,dateTestId:w},y.dateString))},S.weekNumber)},S.weekNumber))]})}),xn="_travelDateRangeInput_1j7rp_1",Dn="_overlay_1j7rp_2",bn="_calendarVisible_1j7rp_6",Le={travelDateRangeInput:xn,overlay:Dn,calendarVisible:bn},yn=({value:e,onValueChange:t,startDateLabel:r,endDateLabel:n,localeCode:s="sv",initialMonthInFocus:a,previousMonthButtonAriaLabel:i="Previous month",nextMonthButtonAriaLabel:l="Next month",placeholderWhenBlurredStartDate:u,placeholderWhenBlurredEndDate:f,heading:h,headingLevel:D,numMonthsInMonthPicker:x=12,firstMonthInMonthPicker:g=new Date,zIndex:b=1e3,zIndexWhenClosed:w,onHideCalendar:S,renderBelowCalendar:y,size:p="medium",dateTestId:k,previousMonthButtonTestId:j,nextMonthButtonTestId:C,textInputVariant:L="standard"})=>{const[B,T]=c.useState(!1),[R,E]=c.useState(!1),[N,I]=c.useState({width:336,height:66}),U=p==="large"?"8.8rem":"6.6rem",Y=c.useRef(!1),O=c.useCallback(()=>{Y.current=!0,E(!0),setTimeout(()=>{T(!0)},10)},[]),P=c.useCallback(()=>{R&&(T(!1),Y.current=!1,S==null||S(),setTimeout(()=>{Y.current||E(!1)},120))},[R,S]),H=c.useRef(null),q=c.useRef(null);m.useOnClickOutside(H,P),c.useLayoutEffect(()=>{var me,Ke;const _=(me=q.current)==null?void 0:me.offsetWidth,X=(Ke=q.current)==null?void 0:Ke.offsetHeight;_!=null&&X!=null&&(N.height!==X||N.width!==_)&&I({width:_,height:X})},[N.height,N.width]);const K=Rt(e,t,s,a),{visiblePanel:$,visibleMonth:v,onValueChangeByInputs:W,setVisibleMonth:re,setVisiblePanel:J,monthPickerButtonRef:Q}=K,F=c.useCallback(_=>{_.key==="Escape"&&P()},[P]);return o.jsxs(m.Box,{position:"relative",className:Le.travelDateRangeInput,ref:H,onKeyDown:F,height:N.height,width:N.width,children:[o.jsx(m.Box,{position:"absolute",ref:q,zIndex:R?b:w,children:o.jsx(Mt,{...K,value:e,onValueChange:W,localeCode:s,startDateLabel:r,endDateLabel:n,onFocus:O,calendarSize:p,placeholderWhenBlurredStartDate:u,placeholderWhenBlurredEndDate:f,variant:L})}),R&&o.jsx(m.Box,{position:"absolute",zIndex:b-1,left:"-2.4rem",top:h?"-8.0rem":"-2.4rem",className:ae(Le.overlay,B&&Le.calendarVisible),children:o.jsx(m.Box,{background:"white",shadow:"popover",borderRadius:"var(--swui-border-radius-large)",children:o.jsxs(M.CardBody,{gap:3,children:[h&&o.jsx(m.Heading,{variant:"h2",as:D,children:h}),o.jsx(m.Box,{height:U}),o.jsx(Te,{...K,previousMonthButtonAriaLabel:i,nextMonthButtonAriaLabel:l,calendarSize:p,previousMonthButtonTestId:j,nextMonthButtonTestId:C}),$==="calendar"&&o.jsx(Ie,{...K,size:p,multiSelectable:!0,dateTestId:k}),$==="month-picker"&&o.jsx(he,{firstMonth:g,numMonths:x,value:v,size:p,localeCode:s,onValueChange:_=>{var X;re(_),J("calendar"),(X=Q.current)==null||X.focus()},onCancel:()=>{var _;J("calendar"),(_=Q.current)==null||_.focus()}}),y==null?void 0:y({hideCalendar:P})]})})})]})},pn="_travelDateInput_hmfbf_1",wn="_overlay_hmfbf_2",Sn="_calendarVisible_hmfbf_6",_e={travelDateInput:pn,overlay:wn,calendarVisible:Sn},Ct=({value:e,onValueChange:t,label:r="Date",localeCode:n,onFocus:s,calendarSize:a,placeholderWhenBlurred:i,valueWhenBlurred:l,variant:u})=>{const{mask:f,placeholder:h}=c.useMemo(()=>{const D=le(n);return{mask:jt(D),placeholder:D.toLowerCase()}},[n]);return o.jsx(m.Row,{children:o.jsx(Pe,{mask:f,value:e,onValueChange:t,onBlur:D=>{const x=je(D.target.value,n);x&&x!==e&&(t==null||t(x))},onFocus:s,label:r,placeholder:h,calendarSize:a,placeholderWhenBlurred:i,valueWhenBlurred:l,variant:u})})},Tt=(e,t,r,n)=>{const s=ie(r),a=c.useId(),i=m.useToday(),l=c.useRef(null),u=c.useMemo(()=>le(r),[r]),f=c.useMemo(()=>(e==null?void 0:e.length)===u.length?se(e,r):void 0,[u.length,r,e]),h=c.useMemo(()=>f!=null?Ye(f,i,s):void 0,[s,f,i]),[D,x]=c.useState(n??f??new Date),g=c.useCallback(R=>{d.isSameMonth(R,i)||d.isAfter(R,i)?x(R):x(i)},[i]),b=c.useMemo(()=>xe(D.getFullYear(),D.getMonth(),s),[s,D]),w=c.useMemo(()=>z.startCase(d.format(D,"MMMM yyyy",{locale:s})),[s,D]),S=c.useMemo(()=>d.isSameMonth(i,D),[i,D]),[y,p]=c.useState(),[k,j]=c.useState("calendar"),C=c.useCallback(R=>{const E=(R==null?void 0:R.length)===u.length?se(R,r):void 0;E&&g(E),t==null||t(R)},[u.length,r,t,g]),L=c.useMemo(()=>d.isSameMonth(i,D)||d.isBefore(D,i),[i,D]);return{isDateDisabled:c.useCallback(R=>!d.isSameDay(R,i)&&d.isBefore(R,i),[i]),onClickDate:R=>{t==null||t(de(R,r))},onValueChangeByInputs:C,prevMonthDisabled:L,monthPickerButtonRef:l,calendarId:a,monthPickerButtonLabel:w,visiblePanel:k,setVisiblePanel:j,setVisibleMonth:x,visibleMonthData:b,todayIsInVisibleMonth:S,hoverDate:y,setHoverDate:p,selectedDate:f,today:i,visibleMonth:D,valueWhenBlurred:h}},kn=({value:e,onValueChange:t,label:r,localeCode:n="sv",initialMonthInFocus:s,previousMonthButtonAriaLabel:a="Previous month",nextMonthButtonAriaLabel:i="Next month",placeholderWhenBlurred:l,heading:u,headingLevel:f,numMonthsInMonthPicker:h=12,firstMonthInMonthPicker:D=new Date,zIndex:x=1e3,zIndexWhenClosed:g,onHideCalendar:b,renderBelowCalendar:w,size:S="medium",dateTestId:y,previousMonthButtonTestId:p,nextMonthButtonTestId:k,textInputVariant:j="standard"})=>{const[C,L]=c.useState(!1),[B,T]=c.useState(!1),[R,E]=c.useState({width:336,height:66}),N=S==="large"?"8.8rem":"6.6rem",I=c.useRef(!1),U=c.useCallback(()=>{I.current=!0,T(!0),setTimeout(()=>{L(!0)},10)},[]),Y=c.useCallback(()=>{B&&(L(!1),I.current=!1,b==null||b(),setTimeout(()=>{I.current||T(!1)},120))},[B,b]),O=c.useRef(null),P=c.useRef(null);m.useOnClickOutside(O,Y),c.useLayoutEffect(()=>{var X,me;const F=(X=P.current)==null?void 0:X.offsetWidth,_=(me=P.current)==null?void 0:me.offsetHeight;F!=null&&_!=null&&(R.height!==_||R.width!==F)&&E({width:F,height:_})},[R.height,R.width]);const H=Tt(e,t,n,s),{visiblePanel:q,visibleMonth:K,onValueChangeByInputs:$,selectedDate:v,setVisibleMonth:W,setVisiblePanel:re,monthPickerButtonRef:J}=H,Q=c.useCallback(F=>{F.key==="Escape"&&Y()},[Y]);return o.jsxs(m.Box,{position:"relative",className:_e.travelDateInput,ref:O,onKeyDown:Q,height:R.height,width:R.width,children:[o.jsx(m.Box,{position:"absolute",ref:P,zIndex:B?x:g,children:o.jsx(Ct,{...H,value:e,onValueChange:$,localeCode:n,label:r,onFocus:U,calendarSize:S,placeholderWhenBlurred:l,variant:j})}),B&&o.jsx(m.Box,{position:"absolute",zIndex:x-1,left:"-2.4rem",top:u?"-8.0rem":"-2.4rem",className:ae(_e.overlay,C&&_e.calendarVisible),children:o.jsx(m.Box,{background:"white",shadow:"popover",borderRadius:"var(--swui-border-radius-large)",children:o.jsxs(M.CardBody,{gap:3,children:[u&&o.jsx(m.Heading,{variant:"h2",as:f,children:u}),o.jsx(m.Box,{height:N}),o.jsx(Te,{...H,previousMonthButtonAriaLabel:a,nextMonthButtonAriaLabel:i,calendarSize:S,previousMonthButtonTestId:p,nextMonthButtonTestId:k}),q==="calendar"&&o.jsx(Ie,{...H,size:S,isValidDateRange:!!v,selectedStartDate:v,selectedEndDate:v,multiSelectable:!1,dateTestId:y}),q==="month-picker"&&o.jsx(he,{firstMonth:D,numMonths:h,value:K,size:S,localeCode:n,onValueChange:F=>{var _;W(F),re("calendar"),(_=J.current)==null||_.focus()},onCancel:()=>{var F;re("calendar"),(F=J.current)==null||F.focus()}}),w==null?void 0:w({hideCalendar:Y})]})})})]})},jn=({value:e,onValueChange:t,label:r,localeCode:n="sv",initialMonthInFocus:s,previousMonthButtonAriaLabel:a="Previous month",nextMonthButtonAriaLabel:i="Next month",placeholderWhenBlurred:l,heading:u,headingLevel:f,numMonthsInMonthPicker:h=12,firstMonthInMonthPicker:D=new Date,dateTestId:x,size:g="medium",previousMonthButtonTestId:b,nextMonthButtonTestId:w,textInputVariant:S="standard"})=>{const y=Tt(e,t,n,s),{visiblePanel:p,visibleMonth:k,onValueChangeByInputs:j,setVisibleMonth:C,setVisiblePanel:L,monthPickerButtonRef:B,selectedDate:T}=y;return o.jsxs(m.Column,{gap:3,children:[u&&o.jsx(m.Heading,{variant:"h2",as:f,children:u}),o.jsx(Ct,{...y,value:e,onValueChange:j,localeCode:n,label:r,calendarSize:g,placeholderWhenBlurred:l,variant:S}),o.jsx(Te,{...y,previousMonthButtonAriaLabel:a,nextMonthButtonAriaLabel:i,calendarSize:g,previousMonthButtonTestId:b,nextMonthButtonTestId:w}),p==="calendar"&&o.jsx(Ie,{...y,size:g,selectedStartDate:T,selectedEndDate:T,isValidDateRange:!!T,multiSelectable:!1,dateTestId:x}),p==="month-picker"&&o.jsx(he,{firstMonth:D,numMonths:h,value:k,localeCode:n,size:g,onValueChange:R=>{var E;C(R),L("calendar"),(E=B.current)==null||E.focus()},onCancel:()=>{var R;L("calendar"),(R=B.current)==null||R.focus()}})]})},Mn=({value:e,onValueChange:t,startDateLabel:r,endDateLabel:n,localeCode:s="sv",initialMonthInFocus:a,previousMonthButtonAriaLabel:i="Previous month",nextMonthButtonAriaLabel:l="Next month",heading:u,headingLevel:f,numMonthsInMonthPicker:h=12,firstMonthInMonthPicker:D=new Date,size:x="medium",dateTestId:g,previousMonthButtonTestId:b,nextMonthButtonTestId:w,placeholderWhenBlurredStartDate:S,placeholderWhenBlurredEndDate:y,textInputVariant:p="standard"})=>{const k=Rt(e,t,s,a),{visiblePanel:j,visibleMonth:C,onValueChangeByInputs:L,setVisibleMonth:B,setVisiblePanel:T,monthPickerButtonRef:R}=k;return o.jsxs(m.Column,{gap:3,children:[u&&o.jsx(m.Heading,{variant:"h2",as:f,children:u}),o.jsx(Mt,{...k,value:e,onValueChange:L,localeCode:s,startDateLabel:r,endDateLabel:n,calendarSize:x,placeholderWhenBlurredStartDate:S,placeholderWhenBlurredEndDate:y,variant:p}),o.jsx(Te,{...k,previousMonthButtonAriaLabel:i,nextMonthButtonAriaLabel:l,calendarSize:x,previousMonthButtonTestId:b,nextMonthButtonTestId:w}),j==="calendar"&&o.jsx(Ie,{...k,size:x,multiSelectable:!0,dateTestId:g}),j==="month-picker"&&o.jsx(he,{firstMonth:D,numMonths:h,value:C,size:x,localeCode:s,onValueChange:E=>{var N;B(E),T("calendar"),(N=R.current)==null||N.focus()},onCancel:()=>{var E;T("calendar"),(E=R.current)==null||E.focus()}})]})};exports.Calendar=we;exports.CalendarDay=Oe;exports.DateInput=fr;exports.DateRangeCalendar=ir;exports.DateRangeDualTextInput=Fr;exports.DateRangeInput=mr;exports.DateTextInput=gr;exports.DateTimeInput=Er;exports.Month=tt;exports.MonthPicker=he;exports.MultiDateCalendar=lr;exports.PresetPicker=gt;exports.SingleDateCalendar=ze;exports.SingleWeekCalendar=dr;exports.TimeTextInput=Dr;exports.TravelDateCalendar=jn;exports.TravelDateInput=kn;exports.TravelDateRangeCalendar=Mn;exports.TravelDateRangeInput=yn;exports.WeekDay=rt;exports.WeekDayCell=dt;exports.WeekNumberCell=ut;exports.YearPicker=Lr;exports.addDayStateHighlights=ee;exports.addDayStateHighlightsOnSingleDay=We;exports.addWeekRangeHighlights=et;exports.addWeekStateHighlights=Lt;exports.buildDayStateForDateRange=ue;exports.buildDayStateForRange=Ve;exports.buildDayStateForSingleMonth=Xe;exports.calculateOverflowingMonth=at;exports.createDay=st;exports.dateRangeToStrings=xt;exports.dayHasHighlight=it;exports.dayHighlightSelect=V;exports.defaultCalendarTheme=oe;exports.defaultTextPropsProvider=lt;exports.defaultWrapperStyleProvider=ct;exports.extranetCalendarTheme=Pt;exports.fallbackLocaleCode=He;exports.fallbackLocaleCodeForFormatting=Kt;exports.formatLocalizedDate=de;exports.getDateFormatForLocaleCode=le;exports.getDaysForWeekForDate=ot;exports.getDefaultLocaleForFormatting=Gt;exports.getLocaleCodeForLocale=mt;exports.getLocaleForLocaleCode=ie;exports.getMonthInYear=xe;exports.getMonthsInYear=Ne;exports.getSupportedLocaleCode=$e;exports.getSupportedLocaleCodeMatchingLanguage=ht;exports.getWeekForDate=Re;exports.getWeeksForMonth=nt;exports.isDateRangeInvalid=Ue;exports.parseLocalizedDateString=se;exports.reformatLocalizedDateString=je;exports.setDayStateValue=Et;exports.setDayStateValueFunction=At;exports.stringsToDateRange=Dt;exports.toggleDateStringsIfEndIsEarlierThanStart=or;exports.toggleDatesIfEndIsEarlierThanStart=qe;exports.useDateRangeCalendarState=cr;exports.useDateRangeSelection=bt;exports.useMultiDateSelection=pt;exports.useSingleDateSelection=yt;exports.useSingleWeekSelection=wt;
|
|
3
3
|
//# sourceMappingURL=index.js.map
|