@kyndryl-design-system/shidoka-applications 2.70.7 → 2.70.8
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daterangepicker.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/daterangepicker/daterangepicker.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"daterangepicker.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/daterangepicker/daterangepicker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{__setFunctionName as t,__esDecorate as e,__runInitializers as i,__classPrivateFieldGet as a,__classPrivateFieldSet as s}from"tslib";import{css as n,LitElement as r,unsafeCSS as l,html as o}from"lit";import{customElement as d,property as c,state as h,query as u}from"lit/decorators.js";import{classMap as p}from"lit/directives/class-map.js";import{FormMixin as m}from"../../../common/mixins/form-input.js";import{unsafeSVG as g}from"lit-html/directives/unsafe-svg.js";import{DateRangeEditableMode as f,getPlaceholder as v,injectFlatpickrStyles as k,updateEnableTime as b,clearFlatpickrInput as y,emitValue as
|
|
1
|
+
import{__setFunctionName as t,__esDecorate as e,__runInitializers as i,__classPrivateFieldGet as a,__classPrivateFieldSet as s}from"tslib";import{css as n,LitElement as r,unsafeCSS as l,html as o}from"lit";import{customElement as d,property as c,state as h,query as u}from"lit/decorators.js";import{classMap as p}from"lit/directives/class-map.js";import{FormMixin as m}from"../../../common/mixins/form-input.js";import{unsafeSVG as g}from"lit-html/directives/unsafe-svg.js";import{DateRangeEditableMode as f,getPlaceholder as v,injectFlatpickrStyles as k,updateEnableTime as b,clearFlatpickrInput as y,emitValue as D,initializeSingleAnchorFlatpickr as x,getModalContainer as w,setCalendarAttributes as _,hideEmptyYear as I,getFlatpickrOptions as E,applyDateRangeEditingRestrictions as S,preventFlatpickrOpen as F,handleInputClick as z,handleInputFocus as M,loadLocale as T}from"../../../common/helpers/flatpickr.js";import"../button/button.js";import{c as A}from"../../../shidoka-flatpickr-theme-DpNQHCIC.js";import{c as $,q as O,r as R}from"../../../vendor/@kyndryl-design-system/shidoka-icons-oqOblwTK.js";import"flatpickr";import"flatpickr/dist/esm/plugins/rangePlugin";import"flatpickr/dist/esm/l10n/default.js";import"../../../common/flatpickrLangs.js";import"../../../common/helpers/flatpickrOverlayPosition.js";import"lit/directives/if-defined.js";import"lit-html/directives/class-map.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";var C=n`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
box-sizing: border-box;
|
|
@@ -602,7 +602,7 @@ input {
|
|
|
602
602
|
}
|
|
603
603
|
.date-range-picker__disabled ::slotted(*) {
|
|
604
604
|
pointer-events: none;
|
|
605
|
-
}`;const P={requiredText:"Required",clearAll:"Clear",pleaseSelectDate:"Please select a date",pleaseSelectValidDate:"Please select a valid date",pleaseSelectBothDates:"Please select a start and end date.",dateRange:"Date range",noDateSelected:"No dates selected",startDateSelected:"Start date selected: {0}. Please select end date.",invalidDateRange:"Invalid date range: End date cannot be earlier than start date",dateRangeSelected:"Selected date range: {0} to {1}",lockedStartDate:"Start date is locked",lockedEndDate:"End date is locked",dateLocked:"Date is locked",dateNotAvailable:"Date is not available",dateInSelectedRange:"Date is in selected range"};let L=(()=>{var n,L,N,W,V,q,j,Y,H,B,U,K,G,J,Q,X,Z,tt,et,it,at,st,nt,rt,lt,ot,dt,ct,ht,ut,pt,mt,gt;let ft,vt,kt,bt,yt,xt,wt,
|
|
605
|
+
}`;const P={requiredText:"Required",clearAll:"Clear",pleaseSelectDate:"Please select a date",pleaseSelectValidDate:"Please select a valid date",pleaseSelectBothDates:"Please select a start and end date.",dateRange:"Date range",noDateSelected:"No dates selected",startDateSelected:"Start date selected: {0}. Please select end date.",invalidDateRange:"Invalid date range: End date cannot be earlier than start date",dateRangeSelected:"Selected date range: {0} to {1}",lockedStartDate:"Start date is locked",lockedEndDate:"End date is locked",dateLocked:"Date is locked",dateNotAvailable:"Date is not available",dateInSelectedRange:"Date is in selected range"};let L=(()=>{var n,L,N,W,V,q,j,Y,H,B,U,K,G,J,Q,X,Z,tt,et,it,at,st,nt,rt,lt,ot,dt,ct,ht,ut,pt,mt,gt;let ft,vt,kt,bt,yt,Dt,xt,wt,_t,It,Et,St,Ft,zt,Mt,Tt,At,$t,Ot,Rt,Ct,Pt,Lt,Nt,Wt,Vt,qt,jt,Yt,Ht,Bt,Ut,Kt,Gt,Jt,Qt=[d("kyn-date-range-picker")],Xt=[],Zt=m(r),te=[],ee=[],ie=[],ae=[],se=[],ne=[],re=[],le=[],oe=[],de=[],ce=[],he=[],ue=[],pe=[],me=[],ge=[],fe=[],ve=[],ke=[],be=[],ye=[],De=[],xe=[],we=[],_e=[],Ie=[],Ee=[],Se=[],Fe=[],ze=[],Me=[],Te=[],Ae=[],$e=[],Oe=[],Re=[],Ce=[],Pe=[],Le=[],Ne=[],We=[],Ve=[],qe=[],je=[],Ye=[],He=[],Be=[],Ue=[],Ke=[],Ge=[],Je=[],Qe=[],Xe=[],Ze=[],ti=[],ei=[],ii=[],ai=[],si=[],ni=[],ri=[],li=[],oi=[],di=[],ci=[],hi=[];return vt=class extends Zt{constructor(){super(...arguments),n.set(this,i(this,te,"")),L.set(this,(i(this,ee),i(this,ie,"en"))),N.set(this,(i(this,ae),i(this,se,"Y-m-d"))),W.set(this,(i(this,ne),i(this,re,null))),V.set(this,(i(this,le),i(this,oe,f.BOTH))),q.set(this,(i(this,de),i(this,ce,""))),this.value=(i(this,he),[null,null]),j.set(this,i(this,ue,"")),Y.set(this,(i(this,pe),i(this,me,[]))),H.set(this,(i(this,ge),i(this,fe,[]))),B.set(this,(i(this,ve),i(this,ke,[]))),U.set(this,(i(this,be),i(this,ye,""))),K.set(this,(i(this,De),i(this,xe,!1))),G.set(this,(i(this,we),i(this,_e,"md"))),J.set(this,(i(this,Ie),i(this,Ee,!1))),Q.set(this,(i(this,Se),i(this,Fe,!1))),X.set(this,(i(this,ze),i(this,Me,null))),Z.set(this,(i(this,Te),i(this,Ae,""))),tt.set(this,(i(this,$e),i(this,Oe,!1))),et.set(this,(i(this,Re),i(this,Ce,""))),it.set(this,(i(this,Pe),i(this,Le,""))),at.set(this,(i(this,Ne),i(this,We,""))),st.set(this,(i(this,Ve),i(this,qe,""))),nt.set(this,(i(this,je),i(this,Ye,""))),rt.set(this,(i(this,He),i(this,Be,!1))),lt.set(this,(i(this,Ue),i(this,Ke,!1))),ot.set(this,(i(this,Ge),i(this,Je,void 0))),dt.set(this,(i(this,Qe),i(this,Xe,null))),ct.set(this,(i(this,Ze),i(this,ti,!1))),ht.set(this,(i(this,ei),i(this,ii,P))),ut.set(this,(i(this,ai),i(this,si,{...P}))),pt.set(this,(i(this,ni),i(this,ri,!1))),mt.set(this,(i(this,li),i(this,oi,!1))),gt.set(this,(i(this,di),i(this,ci,!1))),this._initialized=(i(this,hi),!1),this._isDestroyed=!1,this._submitListener=null,this.debouncedUpdate=this.debounce((async()=>{if(this.flatpickrInstance&&!this._isDestroyed)try{await this.initializeFlatpickr()}catch(t){"development"===process.env.NODE_ENV&&t instanceof Error&&!t.message.includes("calendarContainer")&&!t.message.includes("selectedDates")&&console.warn("DateRangePicker update info:",t.message)}}),100),this.handleResize=this.debounce((async()=>{if(this.flatpickrInstance&&!this._isDestroyed)try{await this.initializeFlatpickr()}catch(t){"development"===process.env.NODE_ENV&&t instanceof Error&&!t.message.includes("calendarContainer")&&!t.message.includes("selectedDates")&&console.debug("DateRangePicker resize info:",t.message)}}),250)}get label(){return a(this,n,"f")}set label(t){s(this,n,t,"f")}get locale(){return a(this,L,"f")}set locale(t){s(this,L,t,"f")}get dateFormat(){return a(this,N,"f")}set dateFormat(t){s(this,N,t,"f")}get defaultDate(){return a(this,W,"f")}set defaultDate(t){s(this,W,t,"f")}get rangeEditMode(){return a(this,V,"f")}set rangeEditMode(t){s(this,V,t,"f")}get defaultErrorMessage(){return a(this,q,"f")}set defaultErrorMessage(t){s(this,q,t,"f")}get warnText(){return a(this,j,"f")}set warnText(t){s(this,j,t,"f")}get disable(){return a(this,Y,"f")}set disable(t){s(this,Y,t,"f")}get _processedDisableDates(){return a(this,H,"f")}set _processedDisableDates(t){s(this,H,t,"f")}get enable(){return a(this,B,"f")}set enable(t){s(this,B,t,"f")}get caption(){return a(this,U,"f")}set caption(t){s(this,U,t,"f")}get required(){return a(this,K,"f")}set required(t){s(this,K,t,"f")}get size(){return a(this,G,"f")}set size(t){s(this,G,t,"f")}get dateRangePickerDisabled(){return a(this,J,"f")}set dateRangePickerDisabled(t){s(this,J,t,"f")}get readonly(){return a(this,Q,"f")}set readonly(t){s(this,Q,t,"f")}get twentyFourHourFormat(){return a(this,X,"f")}set twentyFourHourFormat(t){s(this,X,t,"f")}get minDate(){return a(this,Z,"f")}set minDate(t){s(this,Z,t,"f")}get allowManualInput(){return a(this,tt,"f")}set allowManualInput(t){s(this,tt,t,"f")}get maxDate(){return a(this,et,"f")}set maxDate(t){s(this,et,t,"f")}get errorAriaLabel(){return a(this,it,"f")}set errorAriaLabel(t){s(this,it,t,"f")}get errorTitle(){return a(this,at,"f")}set errorTitle(t){s(this,at,t,"f")}get warningAriaLabel(){return a(this,st,"f")}set warningAriaLabel(t){s(this,st,t,"f")}get warningTitle(){return a(this,nt,"f")}set warningTitle(t){s(this,nt,t,"f")}get staticPosition(){return a(this,rt,"f")}set staticPosition(t){s(this,rt,t,"f")}get _enableTime(){return a(this,lt,"f")}set _enableTime(t){s(this,lt,t,"f")}get flatpickrInstance(){return a(this,ot,"f")}set flatpickrInstance(t){s(this,ot,t,"f")}get _inputEl(){return a(this,dt,"f")}set _inputEl(t){s(this,dt,t,"f")}get _hasInteracted(){return a(this,ct,"f")}set _hasInteracted(t){s(this,ct,t,"f")}get textStrings(){return a(this,ht,"f")}set textStrings(t){s(this,ht,t,"f")}get _textStrings(){return a(this,ut,"f")}set _textStrings(t){s(this,ut,t,"f")}get _isClearing(){return a(this,pt,"f")}set _isClearing(t){s(this,pt,t,"f")}get _shouldFlatpickrOpen(){return a(this,mt,"f")}set _shouldFlatpickrOpen(t){s(this,mt,t,"f")}get _hasInitialDefaultDate(){return a(this,gt,"f")}set _hasInitialDefaultDate(t){s(this,gt,t,"f")}debounce(t,e){let i=null;return(...a)=>{null!==i&&window.clearTimeout(i),i=window.setTimeout((()=>{t(...a),i=null}),e)}}generateRandomId(t){return`${t}-${Math.random().toString(36).slice(2,11)}`}connectedCallback(){super.connectedCallback(),this.addEventListener("change",this._onChange),this.addEventListener("reset",this._handleFormReset),window.addEventListener("resize",this.handleResize),this._internals.form&&(this._submitListener=t=>{this._validate(!0,!0),this._internals.checkValidity()||t.preventDefault()},this._internals.form.addEventListener("submit",this._submitListener)),(!this.value||Array.isArray(this.value)&&this.value.every((t=>null===t)))&&this.defaultDate&&(this._hasInitialDefaultDate=!0,Array.isArray(this.defaultDate)&&1===this.defaultDate.length&&(this._hasInteracted=!0))}disconnectedCallback(){var t;this._isDestroyed=!0,super.disconnectedCallback(),this.removeEventListener("change",this._onChange),this.removeEventListener("reset",this._handleFormReset),window.removeEventListener("resize",this.handleResize),this._internals.form&&this._submitListener&&(this._internals.form.removeEventListener("submit",this._submitListener),this._submitListener=null),null===(t=this.flatpickrInstance)||void 0===t||t.destroy(),this.flatpickrInstance=void 0}hasValue(){var t;return!!(null===(t=this._inputEl)||void 0===t?void 0:t.value)||(this.value&&Array.isArray(this.value)&&2===this.value.length?null!==this.value[0]||null!==this.value[1]:!!this.defaultDate&&(Array.isArray(this.defaultDate)?this.defaultDate.length>0&&!this.defaultDate.every((t=>!t||""===t)):!!this.defaultDate))}updateFormValue(){if(!this._internals||!this._inputEl)return;const[t,e]=this.value;if(t instanceof Date&&e instanceof Date){const i=[t.toISOString(),e.toISOString()].join(",");this._internals.setFormValue(i),this.name&&this._inputEl.setAttribute("value",i)}else this._internals.setFormValue(""),this.name&&this._inputEl.removeAttribute("value")}render(){var t;const e=`${this.name}-error-message`,i=`${this.name}-warning-message`,a=this.name?this.generateRandomId(this.name):this.generateRandomId("date-range-picker"),s=null!==(t=this.name)&&void 0!==t?t:"",n=v(this.dateFormat,!0),r=this.hasValue()&&!this.readonly&&this.rangeEditMode!==f.START&&this.rangeEditMode!==f.END&&this.rangeEditMode!==f.NONE;return o`
|
|
606
606
|
<div class=${p(this.getDateRangePickerClasses())}>
|
|
607
607
|
<div
|
|
608
608
|
class="label-text"
|
|
@@ -650,7 +650,7 @@ input {
|
|
|
650
650
|
@click=${this._handleClear}
|
|
651
651
|
>
|
|
652
652
|
<span style="display:flex;" slot="icon">
|
|
653
|
-
${g(
|
|
653
|
+
${g($)}
|
|
654
654
|
</span>
|
|
655
655
|
</kyn-button>`:o`<span
|
|
656
656
|
class="input-icon ${this.dateRangePickerDisabled?"is-disabled":""}"
|
|
@@ -694,7 +694,7 @@ input {
|
|
|
694
694
|
role="img"
|
|
695
695
|
aria-label=${this.errorAriaLabel||"Error message icon"}
|
|
696
696
|
>
|
|
697
|
-
${g(
|
|
697
|
+
${g(R)}
|
|
698
698
|
</span>
|
|
699
699
|
${this.invalidText||this._internalValidationMsg||this.defaultErrorMessage}
|
|
700
700
|
</div>
|
|
@@ -712,5 +712,5 @@ input {
|
|
|
712
712
|
>
|
|
713
713
|
${this.warnText}
|
|
714
714
|
</div>
|
|
715
|
-
`:null}getDateRangePickerClasses(){return{"date-range-picker":!0,"date-range-picker__enable-time":this._enableTime,"date-range-picker__disabled":this.dateRangePickerDisabled}}parseDateString(t){if(!t||!t.trim())return null;t=t.trim();const e=this.dateFormat||"Y-m-d";if(t.includes("T")){const e=new Date(t);return isNaN(e.getTime())?null:e}if(t.includes(" ")){const i=t.split(/\s+/),a=i[0],s=i[1]||"";let n=i[2]?i[2].toUpperCase():void 0;const r=a.split("-").map(Number);let l,o,d;switch(e){case"Y-m-d":default:[l,o,d]=r;break;case"m-d-Y":[o,d,l]=r;break;case"d-m-Y":[d,o,l]=r}if(!l||!o||!d)return null;let c=0,h=0,u=0;if(s){const t=s.split(":");if(c=parseInt(t[0],10),t.length>1)if(t[1].includes(" ")){const[e,i]=t[1].split(" ");h=parseInt(e,10),n=i?i.toUpperCase():n}else h=parseInt(t[1],10);t.length>2&&(u=parseInt(t[2],10)),n&&("PM"===n&&c<12?c+=12:"AM"===n&&12===c&&(c=0))}const p=new Date(l,o-1,d,c,h,u);return isNaN(p.getTime())?null:p}const i={"Y-m-d":/^\d{4}-\d{2}-\d{2}$/,"m-d-Y":/^\d{2}-\d{2}-\d{4}$/,"d-m-Y":/^\d{2}-\d{2}-\d{4}$/,"Y-m-d h:i K":/^\d{4}-\d{2}-\d{2}( \d{1,2}:\d{2} [AP]M)?$/}[e];if(!i||!i.test(t))return null;const a=t.split(" ")[0].split("-").map(Number);let s,n,r;switch(e){case"Y-m-d":default:[s,n,r]=a;break;case"m-d-Y":[n,r,s]=a;break;case"d-m-Y":[r,n,s]=a}if(!s||!n||!r)return null;const l=new Date(s,n-1,r);return isNaN(l.getTime())?null:l}async firstUpdated(t){if(super.firstUpdated(t),!this._initialized){k($.toString()),this._initialized=!0,this._enableTime=b(this.dateFormat),await this.updateComplete,this.setupAnchor();if((!this.value||2===this.value.length&&null===this.value[0]&&null===this.value[1])&&this._hasInitialDefaultDate&&this.defaultDate){const t=this.processDefaultDates(this.defaultDate);t&&t.length>0&&(1===t.length?(this.value=[t[0],null],this._hasInteracted=!0):t.length>=2&&(this.value=[t[0],t[1]]),null===this.value[0]&&null===this.value[1]||this.updateFormValue(),this._validate(!0,!1))}setTimeout((()=>{(Array.isArray(this.defaultDate)&&1===this.defaultDate.length||2===this.value.length&&(null!==this.value[0]&&null===this.value[1]||null===this.value[0]&&null!==this.value[1]))&&(this._hasInteracted=!0,this._validate(!0,!1))}),0)}}updated(t){var e,i,a;if(super.updated(t),t.has("textStrings")&&(this._textStrings={...P,...this.textStrings},this.flatpickrInstance&&this.rangeEditMode!==f.BOTH&&this.updateFlatpickrOptions()),t.has("dateRangePickerDisabled")&&this.dateRangePickerDisabled||t.has("readonly")&&this.readonly){if(this.dateRangePickerDisabled||this.readonly)return void(null===(e=this.flatpickrInstance)||void 0===e||e.close());this.value[0]&&this.value[1]&&this.setInitialDates()}if(t.has("rangeEditMode")&&this.flatpickrInstance){if(Array.isArray(this.defaultDate)&&2===this.defaultDate.length)if(this.rangeEditMode===f.START&&!this.defaultDate[0]&&this.defaultDate[1]){const t=this.processDefaultDates([this.defaultDate[1]]);1===t.length&&(this.value=[null,t[0]])}else if(this.rangeEditMode===f.END&&this.defaultDate[0]&&!this.defaultDate[1]){const t=this.processDefaultDates([this.defaultDate[0]]);1===t.length&&(this.value=[t[0],null])}this.flatpickrInstance.destroy(),setTimeout((()=>{this.initializeFlatpickr().then((()=>{this._inputEl&&this.flatpickrInstance&&(this._inputEl.value=this.flatpickrInstance.input.value,this.flatpickrInstance.redraw(),this.updateFormValue())}))}),0)}if(t.has("value")&&!this.dateRangePickerDisabled&&this.flatpickrInstance&&!this._isClearing){const t=this.value;if(t.every((t=>null===t)))this._isClearing=!0,this.flatpickrInstance.clear(),this._isClearing=!1,this._inputEl&&(this._inputEl.value="",this.updateFormValue());else{const e=this.flatpickrInstance.selectedDates;2===e.length&&e[0]&&e[1]&&e[0].getTime()===(null===(i=t[0])||void 0===i?void 0:i.getTime())&&e[1].getTime()===(null===(a=t[1])||void 0===a?void 0:a.getTime())||this.setInitialDates(),(null!==t[0]&&null===t[1]||null===t[0]&&null!==t[1])&&(this._hasInteracted=!0,this._validate(!0,!1))}}if(t.has("defaultDate")){if(this.defaultDate&&this.value.every((t=>null===t))){const t=this.processDefaultDates(this.defaultDate);if(this.value=2===t.length?[t[0],t[1]]:1===t.length?[t[0],null]:[null,null],Array.isArray(this.defaultDate)&&2===this.defaultDate.length)if(this.rangeEditMode===f.START&&!this.defaultDate[0]&&this.defaultDate[1]){const t=this.processDefaultDates([this.defaultDate[1]]);1===t.length&&(this.value=[null,t[0]])}else if(this.rangeEditMode===f.END&&this.defaultDate[0]&&!this.defaultDate[1]){const t=this.processDefaultDates([this.defaultDate[0]]);1===t.length&&(this.value=[t[0],null])}this.updateFormValue(),this.requestUpdate()}this.flatpickrInstance&&(this.flatpickrInstance.destroy(),this.initializeFlatpickr().then((()=>{this._inputEl&&this.flatpickrInstance&&(this._inputEl.value=this.flatpickrInstance.input.value,this.flatpickrInstance.redraw(),this.updateFormValue())})))}t.has("disable")&&(Array.isArray(this.disable)?this._processedDisableDates=this.disable.map((t=>{if(t instanceof Date)return t;if("number"==typeof t)return new Date(t);if("string"==typeof t){const[e,i,a]=t.split("-").map(Number);if(!isNaN(e)&&!isNaN(i)&&!isNaN(a))return new Date(e,i-1,a)}return t})):this._processedDisableDates=[],this.flatpickrInstance&&this.updateFlatpickrOptions()),(t.has("dateFormat")||t.has("minDate")||t.has("maxDate")||t.has("locale")||t.has("twentyFourHourFormat"))&&this.flatpickrInstance&&!this._isClearing&&(this._enableTime=b(this.dateFormat),this.updateFlatpickrOptions()),t.has("allowManualInput")&&this.syncAllowInput()}syncAllowInput(){this.flatpickrInstance&&(this.flatpickrInstance.set("allowInput",this.allowManualInput),!this.readonly&&this._inputEl&&(this._inputEl.readOnly=!this.allowManualInput))}async setupAnchor(){if(this._inputEl)try{await this.initializeFlatpickr()}catch(t){console.error("Error setting up flatpickr:",t)}}normalizeToDate(t){if(!t)return null;if(t instanceof Date)return isNaN(t.getTime())?null:t;if("number"==typeof t){const e=new Date(t);return isNaN(e.getTime())?null:e}return"string"==typeof t?this.parseDateString(t):null}processDefaultDates(t){if(!t)return[];const e=(Array.isArray(t)?t:[t]).map((t=>t instanceof Date?t:"string"==typeof t?this.parseDateString(t):null)).filter((t=>t instanceof Date&&!isNaN(t.getTime())));if(2===e.length&&e[1]<e[0])return console.error("Invalid date range: End date cannot be earlier than start date"),this.invalidText=this._textStrings.invalidDateRange,[e[0]];const i=this.normalizeToDate(this.minDate),a=this.normalizeToDate(this.maxDate),s=e.filter((t=>(!i||t>=i)&&(!a||t<=a)));return s.length!==e.length&&(console.error("Invalid date(s) provided in defaultDate",s),this.invalidText=this._textStrings.pleaseSelectValidDate,this.defaultDate=null),s}async _clearInput(t={reinitFlatpickr:!0}){var e,i;if(this.rangeEditMode===f.NONE)return;this.value=[null,null],this.defaultDate=null,await y(this.flatpickrInstance,null!==(e=this._inputEl)&&void 0!==e?e:void 0,(()=>{this.updateFormValue()})),x(this,"on-change",{dates:this.value,dateString:null===(i=this._inputEl)||void 0===i?void 0:i.value,source:"clear"}),this._validate(!0,!1),await this.updateComplete,t.reinitFlatpickr&&(await this.initializeFlatpickr(),this.requestUpdate())}async _handleClear(t){t.preventDefault(),t.stopPropagation(),this._isClearing=!0;try{await this._clearInput()}finally{this._isClearing=!1}}async handleClose(){this._hasInteracted=!0,this._validate(!0,!1),await this.updateComplete}async initializeFlatpickr(){var t;if(!this._isDestroyed)if(this._inputEl&&this._inputEl.isConnected){this.dateFormat||(console.warn("Date format not set, using default Y-m-d"),this.dateFormat="Y-m-d");try{if(null===(t=this.flatpickrInstance)||void 0===t||t.destroy(),this.flatpickrInstance=await w({inputEl:this._inputEl,getFlatpickrOptions:()=>this.getComponentFlatpickrOptions(),setCalendarAttributes:t=>{try{if(!(null==t?void 0:t.calendarContainer))throw new Error("Calendar container not available");const e=D(this);_(t,e!==document.body),t.calendarContainer.setAttribute("aria-label","Date range calendar")}catch(t){console.warn("Error setting calendar attributes:",t)}},setInitialDates:()=>this.setInitialDates()}),!this.flatpickrInstance)throw new Error("Failed to initialize Flatpickr instance");I(),this._validate(!1,!1)}catch(t){console.error("Error initializing Flatpickr:",t),t instanceof Error&&console.error("Error details:",t.message)}}else console.warn("Cannot initialize Flatpickr: input element not available or not connected to DOM")}async updateFlatpickrOptions(){this.flatpickrInstance?await this.debouncedUpdate():console.warn("Cannot update options: Flatpickr instance not available")}async getComponentFlatpickrOptions(){var t,e;if(this.dateFormat||(this.dateFormat="Y-m-d"),!this._inputEl)return{};const i=D(this),a=await E({locale:this.locale||"en",dateFormat:this.dateFormat,defaultDate:null!==(t=this.defaultDate)&&void 0!==t?t:void 0,enableTime:this._enableTime,twentyFourHourFormat:null!==(e=this.twentyFourHourFormat)&&void 0!==e?e:void 0,inputEl:this._inputEl,minDate:this.minDate,maxDate:this.maxDate,enable:this.enable,disable:this._processedDisableDates,mode:"range",closeOnSelect:!1,allowInput:this.allowManualInput,loadLocale:T,onOpen:this.handleOpen.bind(this),onClose:this.handleClose.bind(this),onChange:this.handleDateChange.bind(this),appendTo:i,noCalendar:!1,static:this.staticPosition}),s=a.onOpen;a.onOpen=(t,e,i)=>{"function"==typeof s?s(t,e,i):Array.isArray(s)&&s.forEach((a=>a(t,e,i))),setTimeout((()=>{const t=i.calendarContainer.querySelector(".flatpickr-day:not(.flatpickr-disabled)");t&&t.focus()}),0)};const n=a.onReady;return a.onReady=(t,e,i)=>{"function"==typeof n?n(t,e,i):Array.isArray(n)&&n.forEach((a=>a(t,e,i)));i.calendarContainer.addEventListener("keydown",(t=>{if("Enter"!==t.key)return;const e=t.target;if(!e.classList.contains("flatpickr-day")||e.classList.contains("flatpickr-disabled"))return;t.preventDefault();const a=i.selectedDates;0===a.length?i.setDate([e.dateObj],!0):1===a.length&&(i.setDate([a[0],e.dateObj],!0),i.close())}))},this.rangeEditMode!==f.BOTH?F(a,this.rangeEditMode,this.value,{lockedStartDate:this._textStrings.lockedStartDate,lockedEndDate:this._textStrings.lockedEndDate,dateLocked:this._textStrings.dateLocked,dateNotAvailable:this._textStrings.dateNotAvailable,dateInSelectedRange:this._textStrings.dateInSelectedRange}):a}setInitialDates(){if(this.flatpickrInstance)try{this.dateFormat||(this.dateFormat="Y-m-d");if(!(Array.isArray(this.value)&&2===this.value.length&&(null!==this.value[0]||null!==this.value[1]))&&this.defaultDate){const t=this.processDefaultDates(this.defaultDate);return void(2===t.length?(this.flatpickrInstance.setDate(t,!0),this.flatpickrInstance.redraw(),this.value=t,this._inputEl.value=this.flatpickrInstance.input.value,this.updateFormValue()):1===t.length&&(this.flatpickrInstance.setDate([t[0]],!0),this.flatpickrInstance.redraw(),this.value=[t[0],null],this._inputEl.value=this.flatpickrInstance.input.value,this.updateFormValue(),this._validate(!0,!1)))}if(Array.isArray(this.value)&&2===this.value.length){const t=this.value.map((t=>t instanceof Date?t:this.parseDateString(t))).filter((t=>null!==t));2===t.length&&(this.flatpickrInstance.setDate(t,!0),this.flatpickrInstance.redraw(),this._inputEl.value=this.flatpickrInstance.input.value,this.updateFormValue())}}catch(t){console.error("Error in setInitialDates:",t.message)}}handleOpen(){var t;this.readonly?null===(t=this.flatpickrInstance)||void 0===t||t.close():(this._shouldFlatpickrOpen=!0,this._isInvalid=!1,this.requestUpdate())}async handleDateChange(t,e){if(this._hasInteracted=!0,!this._isClearing){if(0===t.length)this.value=[null,null],this._inputEl&&(this._inputEl.value="",this.updateFormValue()),x(this,"on-change",{dates:this.value,source:"clear"});else if(1===t.length)this.value=[t[0],null],this._inputEl&&(this._inputEl.value=e,this.updateFormValue()),x(this,"on-change",{dates:[t[0].toISOString()],dateString:e,source:"date-selection"});else{this.value=[t[0],t[1]];const e=t.map((t=>t.toISOString())),i=this.flatpickrInstance.input.value;this._inputEl&&(this._inputEl.value=i,this.updateFormValue()),x(this,"on-change",{dates:e,dateString:i,source:"date-selection"})}this.updateSelectedDateRangeAria(t),this._validate(!0,!1)}}updateSelectedDateRangeAria(t){var e;if(!this._inputEl)return;const i=null===(e=this.shadowRoot)||void 0===e?void 0:e.getElementById(`${this._inputEl.id}-announcer`);if(!i)return;let a="";a=0===t.length?this._textStrings.noDateSelected:1===t.length?this._textStrings.startDateSelected.replace("{0}",t[0].toLocaleDateString(this.locale)):this._textStrings.dateRangeSelected.replace("{0}",t[0].toLocaleDateString(this.locale)).replace("{1}",t[1].toLocaleDateString(this.locale)),i.textContent=a}setShouldFlatpickrOpen(t){this._shouldFlatpickrOpen=t}closeFlatpickr(){var t;null===(t=this.flatpickrInstance)||void 0===t||t.close()}preventFlatpickrOpen(t){S(t,this.setShouldFlatpickrOpen.bind(this))}handleInputClickEvent(){try{this._shouldFlatpickrOpen=!0,z(this.setShouldFlatpickrOpen.bind(this)),!this.flatpickrInstance||this.flatpickrInstance.isOpen||this.readonly||this.dateRangePickerDisabled||setTimeout((()=>{this.flatpickrInstance&&!this.flatpickrInstance.isOpen&&this.flatpickrInstance.open()}),0)}catch(t){console.warn("Error handling input click event:",t)}}handleInputFocusEvent(){try{this._shouldFlatpickrOpen=!0,M(this._shouldFlatpickrOpen,this.closeFlatpickr.bind(this),this.setShouldFlatpickrOpen.bind(this)),!this.flatpickrInstance||this.flatpickrInstance.isOpen||this.readonly||this.dateRangePickerDisabled||setTimeout((()=>{this.flatpickrInstance&&!this.flatpickrInstance.isOpen&&this.flatpickrInstance.open()}),0)}catch(t){console.warn("Error handling input focus event:",t)}}_validate(t,e){var i;if(!(this._inputEl&&this._inputEl instanceof HTMLInputElement))return;if(this.dateRangePickerDisabled)return this._internals.setValidity({},"",this._inputEl),this._isInvalid=!1,void(this._internalValidationMsg="");t&&(this._hasInteracted=!0);const a=this._hasInteracted||e||!!this.invalidText,s=[this.value[0],this.value[1]].filter((t=>null!==t)).length;let n=this._inputEl.validity,r=this._inputEl.validationMessage;(null===(i=this.flatpickrInstance)||void 0===i?void 0:i.isOpen)?(n={...n,valueMissing:!1,customError:!1},r=""):1===s?(n={...n,customError:!0},r=this._textStrings.pleaseSelectBothDates):this.required&&0===s?(n={...n,valueMissing:!0},r=this.defaultErrorMessage||this._textStrings.pleaseSelectDate):(n={...n,valueMissing:!1,customError:!1},r=""),this.invalidText&&(n={...n,customError:!0},r=this.invalidText);const l=!n.valueMissing&&!n.customError;l||r||(r=this._textStrings.pleaseSelectValidDate),this._internals.setValidity(n,r,this._inputEl),this._isInvalid=!l&&a,this._internalValidationMsg=r,e&&this._internals.reportValidity(),this.requestUpdate()}_onChange(){this._validate(!0,!1)}_handleFormReset(){var t;this.value=[null,null],null===(t=this.flatpickrInstance)||void 0===t||t.clear(),this._hasInteracted=!1,this._validate(!1,!1)}getValue(){var t,e;if(this.flatpickrInstance){const i=this.flatpickrInstance.selectedDates;return[null!==(t=i[0])&&void 0!==t?t:null,null!==(e=i[1])&&void 0!==e?e:null]}return this.value}setValue(t){var e,i;const a=!t||Array.isArray(t)&&t.every((t=>null===t));this._isClearing=a;try{if(this.flatpickrInstance){if(a)this.flatpickrInstance.clear();else{const e=t.filter((t=>t instanceof Date));this.flatpickrInstance.setDate(e,!0)}const s=this.flatpickrInstance.selectedDates,n=null!==(e=s[0])&&void 0!==e?e:null,r=null!==(i=s[1])&&void 0!==i?i:null;this.value=[n,r],this._inputEl&&(this._inputEl.value=a?"":this.flatpickrInstance.input.value,this.updateFormValue())}else this.value=t;this.requestUpdate("value")}finally{this._isClearing=!1}}},n=new WeakMap,L=new WeakMap,N=new WeakMap,W=new WeakMap,V=new WeakMap,q=new WeakMap,j=new WeakMap,Y=new WeakMap,H=new WeakMap,B=new WeakMap,U=new WeakMap,K=new WeakMap,G=new WeakMap,J=new WeakMap,Q=new WeakMap,X=new WeakMap,Z=new WeakMap,tt=new WeakMap,et=new WeakMap,it=new WeakMap,at=new WeakMap,st=new WeakMap,nt=new WeakMap,rt=new WeakMap,lt=new WeakMap,ot=new WeakMap,dt=new WeakMap,ct=new WeakMap,ht=new WeakMap,ut=new WeakMap,pt=new WeakMap,mt=new WeakMap,gt=new WeakMap,t(vt,"DateRangePicker"),(()=>{var t;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(t=Zt[Symbol.metadata])&&void 0!==t?t:null):void 0;kt=[c({type:String})],bt=[c({type:String})],yt=[c({type:String})],xt=[c({type:Array})],wt=[c({type:String})],Dt=[c({type:String})],_t=[c({type:String})],It=[c({type:Array})],Et=[h()],Ft=[c({type:Array})],St=[c({type:String})],zt=[c({type:Boolean})],Mt=[c({type:String})],Tt=[c({type:Boolean})],$t=[c({type:Boolean})],At=[c({type:Boolean})],Ot=[c({type:String})],Ct=[c({type:Boolean})],Rt=[c({type:String})],Pt=[c({type:String})],Lt=[c({type:String})],Nt=[c({type:String})],Wt=[c({type:String})],Vt=[c({type:Boolean})],qt=[h()],jt=[h()],Yt=[u("input")],Ht=[h()],Bt=[c({type:Object})],Ut=[h()],Kt=[h()],Gt=[h()],Jt=[h()],e(vt,null,kt,{kind:"accessor",name:"label",static:!1,private:!1,access:{has:t=>"label"in t,get:t=>t.label,set:(t,e)=>{t.label=e}},metadata:i},te,ee),e(vt,null,bt,{kind:"accessor",name:"locale",static:!1,private:!1,access:{has:t=>"locale"in t,get:t=>t.locale,set:(t,e)=>{t.locale=e}},metadata:i},ie,ae),e(vt,null,yt,{kind:"accessor",name:"dateFormat",static:!1,private:!1,access:{has:t=>"dateFormat"in t,get:t=>t.dateFormat,set:(t,e)=>{t.dateFormat=e}},metadata:i},se,ne),e(vt,null,xt,{kind:"accessor",name:"defaultDate",static:!1,private:!1,access:{has:t=>"defaultDate"in t,get:t=>t.defaultDate,set:(t,e)=>{t.defaultDate=e}},metadata:i},re,le),e(vt,null,wt,{kind:"accessor",name:"rangeEditMode",static:!1,private:!1,access:{has:t=>"rangeEditMode"in t,get:t=>t.rangeEditMode,set:(t,e)=>{t.rangeEditMode=e}},metadata:i},oe,de),e(vt,null,Dt,{kind:"accessor",name:"defaultErrorMessage",static:!1,private:!1,access:{has:t=>"defaultErrorMessage"in t,get:t=>t.defaultErrorMessage,set:(t,e)=>{t.defaultErrorMessage=e}},metadata:i},ce,he),e(vt,null,_t,{kind:"accessor",name:"warnText",static:!1,private:!1,access:{has:t=>"warnText"in t,get:t=>t.warnText,set:(t,e)=>{t.warnText=e}},metadata:i},ue,pe),e(vt,null,It,{kind:"accessor",name:"disable",static:!1,private:!1,access:{has:t=>"disable"in t,get:t=>t.disable,set:(t,e)=>{t.disable=e}},metadata:i},me,ge),e(vt,null,Et,{kind:"accessor",name:"_processedDisableDates",static:!1,private:!1,access:{has:t=>"_processedDisableDates"in t,get:t=>t._processedDisableDates,set:(t,e)=>{t._processedDisableDates=e}},metadata:i},fe,ve),e(vt,null,Ft,{kind:"accessor",name:"enable",static:!1,private:!1,access:{has:t=>"enable"in t,get:t=>t.enable,set:(t,e)=>{t.enable=e}},metadata:i},ke,be),e(vt,null,St,{kind:"accessor",name:"caption",static:!1,private:!1,access:{has:t=>"caption"in t,get:t=>t.caption,set:(t,e)=>{t.caption=e}},metadata:i},ye,xe),e(vt,null,zt,{kind:"accessor",name:"required",static:!1,private:!1,access:{has:t=>"required"in t,get:t=>t.required,set:(t,e)=>{t.required=e}},metadata:i},we,De),e(vt,null,Mt,{kind:"accessor",name:"size",static:!1,private:!1,access:{has:t=>"size"in t,get:t=>t.size,set:(t,e)=>{t.size=e}},metadata:i},_e,Ie),e(vt,null,Tt,{kind:"accessor",name:"dateRangePickerDisabled",static:!1,private:!1,access:{has:t=>"dateRangePickerDisabled"in t,get:t=>t.dateRangePickerDisabled,set:(t,e)=>{t.dateRangePickerDisabled=e}},metadata:i},Ee,Fe),e(vt,null,$t,{kind:"accessor",name:"readonly",static:!1,private:!1,access:{has:t=>"readonly"in t,get:t=>t.readonly,set:(t,e)=>{t.readonly=e}},metadata:i},Se,ze),e(vt,null,At,{kind:"accessor",name:"twentyFourHourFormat",static:!1,private:!1,access:{has:t=>"twentyFourHourFormat"in t,get:t=>t.twentyFourHourFormat,set:(t,e)=>{t.twentyFourHourFormat=e}},metadata:i},Me,Te),e(vt,null,Ot,{kind:"accessor",name:"minDate",static:!1,private:!1,access:{has:t=>"minDate"in t,get:t=>t.minDate,set:(t,e)=>{t.minDate=e}},metadata:i},$e,Ae),e(vt,null,Ct,{kind:"accessor",name:"allowManualInput",static:!1,private:!1,access:{has:t=>"allowManualInput"in t,get:t=>t.allowManualInput,set:(t,e)=>{t.allowManualInput=e}},metadata:i},Oe,Ce),e(vt,null,Rt,{kind:"accessor",name:"maxDate",static:!1,private:!1,access:{has:t=>"maxDate"in t,get:t=>t.maxDate,set:(t,e)=>{t.maxDate=e}},metadata:i},Re,Pe),e(vt,null,Pt,{kind:"accessor",name:"errorAriaLabel",static:!1,private:!1,access:{has:t=>"errorAriaLabel"in t,get:t=>t.errorAriaLabel,set:(t,e)=>{t.errorAriaLabel=e}},metadata:i},Le,Ne),e(vt,null,Lt,{kind:"accessor",name:"errorTitle",static:!1,private:!1,access:{has:t=>"errorTitle"in t,get:t=>t.errorTitle,set:(t,e)=>{t.errorTitle=e}},metadata:i},We,Ve),e(vt,null,Nt,{kind:"accessor",name:"warningAriaLabel",static:!1,private:!1,access:{has:t=>"warningAriaLabel"in t,get:t=>t.warningAriaLabel,set:(t,e)=>{t.warningAriaLabel=e}},metadata:i},qe,je),e(vt,null,Wt,{kind:"accessor",name:"warningTitle",static:!1,private:!1,access:{has:t=>"warningTitle"in t,get:t=>t.warningTitle,set:(t,e)=>{t.warningTitle=e}},metadata:i},Ye,He),e(vt,null,Vt,{kind:"accessor",name:"staticPosition",static:!1,private:!1,access:{has:t=>"staticPosition"in t,get:t=>t.staticPosition,set:(t,e)=>{t.staticPosition=e}},metadata:i},Be,Ue),e(vt,null,qt,{kind:"accessor",name:"_enableTime",static:!1,private:!1,access:{has:t=>"_enableTime"in t,get:t=>t._enableTime,set:(t,e)=>{t._enableTime=e}},metadata:i},Ke,Ge),e(vt,null,jt,{kind:"accessor",name:"flatpickrInstance",static:!1,private:!1,access:{has:t=>"flatpickrInstance"in t,get:t=>t.flatpickrInstance,set:(t,e)=>{t.flatpickrInstance=e}},metadata:i},Je,Qe),e(vt,null,Yt,{kind:"accessor",name:"_inputEl",static:!1,private:!1,access:{has:t=>"_inputEl"in t,get:t=>t._inputEl,set:(t,e)=>{t._inputEl=e}},metadata:i},Xe,Ze),e(vt,null,Ht,{kind:"accessor",name:"_hasInteracted",static:!1,private:!1,access:{has:t=>"_hasInteracted"in t,get:t=>t._hasInteracted,set:(t,e)=>{t._hasInteracted=e}},metadata:i},ti,ei),e(vt,null,Bt,{kind:"accessor",name:"textStrings",static:!1,private:!1,access:{has:t=>"textStrings"in t,get:t=>t.textStrings,set:(t,e)=>{t.textStrings=e}},metadata:i},ii,ai),e(vt,null,Ut,{kind:"accessor",name:"_textStrings",static:!1,private:!1,access:{has:t=>"_textStrings"in t,get:t=>t._textStrings,set:(t,e)=>{t._textStrings=e}},metadata:i},si,ni),e(vt,null,Kt,{kind:"accessor",name:"_isClearing",static:!1,private:!1,access:{has:t=>"_isClearing"in t,get:t=>t._isClearing,set:(t,e)=>{t._isClearing=e}},metadata:i},ri,li),e(vt,null,Gt,{kind:"accessor",name:"_shouldFlatpickrOpen",static:!1,private:!1,access:{has:t=>"_shouldFlatpickrOpen"in t,get:t=>t._shouldFlatpickrOpen,set:(t,e)=>{t._shouldFlatpickrOpen=e}},metadata:i},oi,di),e(vt,null,Jt,{kind:"accessor",name:"_hasInitialDefaultDate",static:!1,private:!1,access:{has:t=>"_hasInitialDefaultDate"in t,get:t=>t._hasInitialDefaultDate,set:(t,e)=>{t._hasInitialDefaultDate=e}},metadata:i},ci,hi),e(null,ft={value:vt},Qt,{kind:"class",name:vt.name,metadata:i},null,Xt),vt=ft.value,i&&Object.defineProperty(vt,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),vt.styles=[l(R),l($)],i(vt,Xt),vt})();export{L as DateRangePicker};
|
|
715
|
+
`:null}getDateRangePickerClasses(){return{"date-range-picker":!0,"date-range-picker__enable-time":this._enableTime,"date-range-picker__disabled":this.dateRangePickerDisabled}}parseDateString(t){if(!t||!t.trim())return null;t=t.trim();const e=this.dateFormat||"Y-m-d";if(t.includes("T")){const e=new Date(t);return isNaN(e.getTime())?null:e}if(t.includes(" ")){const i=t.split(/\s+/),a=i[0],s=i[1]||"";let n=i[2]?i[2].toUpperCase():void 0;const r=a.split("-").map(Number);let l,o,d;switch(e){case"Y-m-d":default:[l,o,d]=r;break;case"m-d-Y":[o,d,l]=r;break;case"d-m-Y":[d,o,l]=r}if(!l||!o||!d)return null;let c=0,h=0,u=0;if(s){const t=s.split(":");if(c=parseInt(t[0],10),t.length>1)if(t[1].includes(" ")){const[e,i]=t[1].split(" ");h=parseInt(e,10),n=i?i.toUpperCase():n}else h=parseInt(t[1],10);t.length>2&&(u=parseInt(t[2],10)),n&&("PM"===n&&c<12?c+=12:"AM"===n&&12===c&&(c=0))}const p=new Date(l,o-1,d,c,h,u);return isNaN(p.getTime())?null:p}const i={"Y-m-d":/^\d{4}-\d{2}-\d{2}$/,"m-d-Y":/^\d{2}-\d{2}-\d{4}$/,"d-m-Y":/^\d{2}-\d{2}-\d{4}$/,"Y-m-d h:i K":/^\d{4}-\d{2}-\d{2}( \d{1,2}:\d{2} [AP]M)?$/}[e];if(!i||!i.test(t))return null;const a=t.split(" ")[0].split("-").map(Number);let s,n,r;switch(e){case"Y-m-d":default:[s,n,r]=a;break;case"m-d-Y":[n,r,s]=a;break;case"d-m-Y":[r,n,s]=a}if(!s||!n||!r)return null;const l=new Date(s,n-1,r);return isNaN(l.getTime())?null:l}async firstUpdated(t){if(super.firstUpdated(t),!this._initialized){k(A.toString()),this._initialized=!0,this._enableTime=b(this.dateFormat),await this.updateComplete,this.setupAnchor();if((!this.value||2===this.value.length&&null===this.value[0]&&null===this.value[1])&&this._hasInitialDefaultDate&&this.defaultDate){const t=this.processDefaultDates(this.defaultDate);t&&t.length>0&&(1===t.length?(this.value=[t[0],null],this._hasInteracted=!0):t.length>=2&&(this.value=[t[0],t[1]]),null===this.value[0]&&null===this.value[1]||this.updateFormValue(),this._validate(!0,!1))}setTimeout((()=>{(Array.isArray(this.defaultDate)&&1===this.defaultDate.length||2===this.value.length&&(null!==this.value[0]&&null===this.value[1]||null===this.value[0]&&null!==this.value[1]))&&(this._hasInteracted=!0,this._validate(!0,!1))}),0)}}updated(t){var e,i,a;if(super.updated(t),t.has("textStrings")&&(this._textStrings={...P,...this.textStrings},this.flatpickrInstance&&this.rangeEditMode!==f.BOTH&&this.updateFlatpickrOptions()),t.has("dateRangePickerDisabled")&&this.dateRangePickerDisabled||t.has("readonly")&&this.readonly){if(this.dateRangePickerDisabled||this.readonly)return void(null===(e=this.flatpickrInstance)||void 0===e||e.close());this.value[0]&&this.value[1]&&this.setInitialDates()}if(t.has("rangeEditMode")&&this.flatpickrInstance){if(Array.isArray(this.defaultDate)&&2===this.defaultDate.length)if(this.rangeEditMode===f.START&&!this.defaultDate[0]&&this.defaultDate[1]){const t=this.processDefaultDates([this.defaultDate[1]]);1===t.length&&(this.value=[null,t[0]])}else if(this.rangeEditMode===f.END&&this.defaultDate[0]&&!this.defaultDate[1]){const t=this.processDefaultDates([this.defaultDate[0]]);1===t.length&&(this.value=[t[0],null])}this.flatpickrInstance.destroy(),setTimeout((()=>{this.initializeFlatpickr().then((()=>{this._inputEl&&this.flatpickrInstance&&(this._inputEl.value=this.flatpickrInstance.input.value,this.flatpickrInstance.redraw(),this.updateFormValue())}))}),0)}if(t.has("value")&&!this.dateRangePickerDisabled&&this.flatpickrInstance&&!this._isClearing){const t=this.value;if(t.every((t=>null===t)))this._isClearing=!0,this.flatpickrInstance.clear(),this._isClearing=!1,this._inputEl&&(this._inputEl.value="",this.updateFormValue()),this.updateSelectedDateRangeAria([]);else{const e=this.flatpickrInstance.selectedDates;2===e.length&&e[0]&&e[1]&&e[0].getTime()===(null===(i=t[0])||void 0===i?void 0:i.getTime())&&e[1].getTime()===(null===(a=t[1])||void 0===a?void 0:a.getTime())||this.setInitialDates();const s=this.flatpickrInstance.selectedDates.length>0?this.flatpickrInstance.selectedDates:t.filter((t=>t instanceof Date));s.length>0&&this.updateSelectedDateRangeAria(s),(null!==t[0]&&null===t[1]||null===t[0]&&null!==t[1])&&(this._hasInteracted=!0,this._validate(!0,!1))}}if(t.has("defaultDate")){if(this.defaultDate&&this.value.every((t=>null===t))){const t=this.processDefaultDates(this.defaultDate);if(this.value=2===t.length?[t[0],t[1]]:1===t.length?[t[0],null]:[null,null],Array.isArray(this.defaultDate)&&2===this.defaultDate.length)if(this.rangeEditMode===f.START&&!this.defaultDate[0]&&this.defaultDate[1]){const t=this.processDefaultDates([this.defaultDate[1]]);1===t.length&&(this.value=[null,t[0]])}else if(this.rangeEditMode===f.END&&this.defaultDate[0]&&!this.defaultDate[1]){const t=this.processDefaultDates([this.defaultDate[0]]);1===t.length&&(this.value=[t[0],null])}this.updateFormValue(),this.requestUpdate()}this.flatpickrInstance&&(this.flatpickrInstance.destroy(),this.initializeFlatpickr().then((()=>{this._inputEl&&this.flatpickrInstance&&(this._inputEl.value=this.flatpickrInstance.input.value,this.flatpickrInstance.redraw(),this.updateFormValue())})))}t.has("disable")&&(Array.isArray(this.disable)?this._processedDisableDates=this.disable.map((t=>{if(t instanceof Date)return t;if("number"==typeof t)return new Date(t);if("string"==typeof t){const[e,i,a]=t.split("-").map(Number);if(!isNaN(e)&&!isNaN(i)&&!isNaN(a))return new Date(e,i-1,a)}return t})):this._processedDisableDates=[],this.flatpickrInstance&&this.updateFlatpickrOptions()),(t.has("dateFormat")||t.has("minDate")||t.has("maxDate")||t.has("locale")||t.has("twentyFourHourFormat"))&&this.flatpickrInstance&&!this._isClearing&&(this._enableTime=b(this.dateFormat),this.updateFlatpickrOptions()),t.has("allowManualInput")&&this.syncAllowInput()}syncAllowInput(){this.flatpickrInstance&&(this.flatpickrInstance.set("allowInput",this.allowManualInput),!this.readonly&&this._inputEl&&(this._inputEl.readOnly=!this.allowManualInput))}async setupAnchor(){if(this._inputEl)try{await this.initializeFlatpickr()}catch(t){console.error("Error setting up flatpickr:",t)}}normalizeToDate(t){if(!t)return null;if(t instanceof Date)return isNaN(t.getTime())?null:t;if("number"==typeof t){const e=new Date(t);return isNaN(e.getTime())?null:e}return"string"==typeof t?this.parseDateString(t):null}processDefaultDates(t){if(!t)return[];const e=(Array.isArray(t)?t:[t]).map((t=>t instanceof Date?t:"string"==typeof t?this.parseDateString(t):null)).filter((t=>t instanceof Date&&!isNaN(t.getTime())));if(2===e.length&&e[1]<e[0])return console.error("Invalid date range: End date cannot be earlier than start date"),this.invalidText=this._textStrings.invalidDateRange,[e[0]];const i=this.normalizeToDate(this.minDate),a=this.normalizeToDate(this.maxDate),s=e.filter((t=>(!i||t>=i)&&(!a||t<=a)));return s.length!==e.length&&(console.error("Invalid date(s) provided in defaultDate",s),this.invalidText=this._textStrings.pleaseSelectValidDate,this.defaultDate=null),s}async _clearInput(t={reinitFlatpickr:!0}){var e,i;if(this.rangeEditMode===f.NONE)return;this.value=[null,null],this.defaultDate=null,await y(this.flatpickrInstance,null!==(e=this._inputEl)&&void 0!==e?e:void 0,(()=>{this.updateFormValue()})),this.updateSelectedDateRangeAria([]),D(this,"on-change",{dates:this.value,dateString:null===(i=this._inputEl)||void 0===i?void 0:i.value,source:"clear"}),this._validate(!0,!1),await this.updateComplete,t.reinitFlatpickr&&(await this.initializeFlatpickr(),this.requestUpdate())}async _handleClear(t){t.preventDefault(),t.stopPropagation(),this._isClearing=!0;try{await this._clearInput()}finally{this._isClearing=!1}}async handleClose(){this._hasInteracted=!0,this._validate(!0,!1),await this.updateComplete}async initializeFlatpickr(){var t;if(!this._isDestroyed)if(this._inputEl&&this._inputEl.isConnected){this.dateFormat||(console.warn("Date format not set, using default Y-m-d"),this.dateFormat="Y-m-d");try{if(null===(t=this.flatpickrInstance)||void 0===t||t.destroy(),this.flatpickrInstance=await x({inputEl:this._inputEl,getFlatpickrOptions:()=>this.getComponentFlatpickrOptions(),setCalendarAttributes:t=>{try{if(!(null==t?void 0:t.calendarContainer))throw new Error("Calendar container not available");const e=w(this);_(t,e!==document.body),t.calendarContainer.setAttribute("aria-label","Date range calendar")}catch(t){console.warn("Error setting calendar attributes:",t)}},setInitialDates:()=>this.setInitialDates()}),!this.flatpickrInstance)throw new Error("Failed to initialize Flatpickr instance");I(),this._validate(!1,!1)}catch(t){console.error("Error initializing Flatpickr:",t),t instanceof Error&&console.error("Error details:",t.message)}}else console.warn("Cannot initialize Flatpickr: input element not available or not connected to DOM")}async updateFlatpickrOptions(){this.flatpickrInstance?await this.debouncedUpdate():console.warn("Cannot update options: Flatpickr instance not available")}async getComponentFlatpickrOptions(){var t,e;if(this.dateFormat||(this.dateFormat="Y-m-d"),!this._inputEl)return{};const i=w(this),a=await E({locale:this.locale||"en",dateFormat:this.dateFormat,defaultDate:null!==(t=this.defaultDate)&&void 0!==t?t:void 0,enableTime:this._enableTime,twentyFourHourFormat:null!==(e=this.twentyFourHourFormat)&&void 0!==e?e:void 0,inputEl:this._inputEl,minDate:this.minDate,maxDate:this.maxDate,enable:this.enable,disable:this._processedDisableDates,mode:"range",closeOnSelect:!1,allowInput:this.allowManualInput,loadLocale:T,onOpen:this.handleOpen.bind(this),onClose:this.handleClose.bind(this),onChange:this.handleDateChange.bind(this),appendTo:i,noCalendar:!1,static:this.staticPosition}),s=a.onOpen;a.onOpen=(t,e,i)=>{"function"==typeof s?s(t,e,i):Array.isArray(s)&&s.forEach((a=>a(t,e,i))),setTimeout((()=>{const t=i.calendarContainer.querySelector(".flatpickr-day:not(.flatpickr-disabled)");t&&t.focus()}),0)};const n=a.onReady;return a.onReady=(t,e,i)=>{"function"==typeof n?n(t,e,i):Array.isArray(n)&&n.forEach((a=>a(t,e,i)));i.calendarContainer.addEventListener("keydown",(t=>{if("Enter"!==t.key)return;const e=t.target;if(!e.classList.contains("flatpickr-day")||e.classList.contains("flatpickr-disabled"))return;t.preventDefault();const a=i.selectedDates;0===a.length?i.setDate([e.dateObj],!0):1===a.length&&(i.setDate([a[0],e.dateObj],!0),i.close())}))},this.rangeEditMode!==f.BOTH?S(a,this.rangeEditMode,this.value,{lockedStartDate:this._textStrings.lockedStartDate,lockedEndDate:this._textStrings.lockedEndDate,dateLocked:this._textStrings.dateLocked,dateNotAvailable:this._textStrings.dateNotAvailable,dateInSelectedRange:this._textStrings.dateInSelectedRange}):a}setInitialDates(){if(this.flatpickrInstance)try{this.dateFormat||(this.dateFormat="Y-m-d");if(!(Array.isArray(this.value)&&2===this.value.length&&(null!==this.value[0]||null!==this.value[1]))&&this.defaultDate){const t=this.processDefaultDates(this.defaultDate);return void(2===t.length?(this.flatpickrInstance.setDate(t,!0),this.flatpickrInstance.redraw(),this.value=t,this._inputEl.value=this.flatpickrInstance.input.value,this.updateFormValue()):1===t.length&&(this.flatpickrInstance.setDate([t[0]],!0),this.flatpickrInstance.redraw(),this.value=[t[0],null],this._inputEl.value=this.flatpickrInstance.input.value,this.updateFormValue(),this._validate(!0,!1)))}if(Array.isArray(this.value)&&2===this.value.length){const t=this.value.map((t=>t instanceof Date?t:this.parseDateString(t))).filter((t=>null!==t));2===t.length&&(this.flatpickrInstance.setDate(t,!0),this.flatpickrInstance.redraw(),this._inputEl.value=this.flatpickrInstance.input.value,this.updateFormValue())}}catch(t){console.error("Error in setInitialDates:",t.message)}}handleOpen(){var t;this.readonly?null===(t=this.flatpickrInstance)||void 0===t||t.close():(this._shouldFlatpickrOpen=!0,this._isInvalid=!1,this.requestUpdate())}async handleDateChange(t,e){if(this._hasInteracted=!0,!this._isClearing){if(0===t.length)this.value=[null,null],this._inputEl&&(this._inputEl.value="",this.updateFormValue()),D(this,"on-change",{dates:this.value,source:"clear"});else if(1===t.length)this.value=[t[0],null],this._inputEl&&(this._inputEl.value=e,this.updateFormValue()),D(this,"on-change",{dates:[t[0].toISOString()],dateString:e,source:"date-selection"});else{this.value=[t[0],t[1]];const e=t.map((t=>t.toISOString())),i=this.flatpickrInstance.input.value;this._inputEl&&(this._inputEl.value=i,this.updateFormValue()),D(this,"on-change",{dates:e,dateString:i,source:"date-selection"})}this.updateSelectedDateRangeAria(t),this._validate(!0,!1)}}updateSelectedDateRangeAria(t){var e;if(!this._inputEl)return;const i=null===(e=this.shadowRoot)||void 0===e?void 0:e.getElementById(`${this._inputEl.id}-announcer`);if(!i)return;let a="";a=0===t.length?this._textStrings.noDateSelected:1===t.length?this._textStrings.startDateSelected.replace("{0}",t[0].toLocaleDateString(this.locale)):this._textStrings.dateRangeSelected.replace("{0}",t[0].toLocaleDateString(this.locale)).replace("{1}",t[1].toLocaleDateString(this.locale)),i.textContent=a}setShouldFlatpickrOpen(t){this._shouldFlatpickrOpen=t}closeFlatpickr(){var t;null===(t=this.flatpickrInstance)||void 0===t||t.close()}preventFlatpickrOpen(t){F(t,this.setShouldFlatpickrOpen.bind(this))}handleInputClickEvent(){try{this._shouldFlatpickrOpen=!0,z(this.setShouldFlatpickrOpen.bind(this)),!this.flatpickrInstance||this.flatpickrInstance.isOpen||this.readonly||this.dateRangePickerDisabled||setTimeout((()=>{this.flatpickrInstance&&!this.flatpickrInstance.isOpen&&this.flatpickrInstance.open()}),0)}catch(t){console.warn("Error handling input click event:",t)}}handleInputFocusEvent(){try{this._shouldFlatpickrOpen=!0,M(this._shouldFlatpickrOpen,this.closeFlatpickr.bind(this),this.setShouldFlatpickrOpen.bind(this)),!this.flatpickrInstance||this.flatpickrInstance.isOpen||this.readonly||this.dateRangePickerDisabled||setTimeout((()=>{this.flatpickrInstance&&!this.flatpickrInstance.isOpen&&this.flatpickrInstance.open()}),0)}catch(t){console.warn("Error handling input focus event:",t)}}_validate(t,e){var i;if(!(this._inputEl&&this._inputEl instanceof HTMLInputElement))return;if(this.dateRangePickerDisabled)return this._internals.setValidity({},"",this._inputEl),this._isInvalid=!1,void(this._internalValidationMsg="");t&&(this._hasInteracted=!0);const a=this._hasInteracted||e||!!this.invalidText,s=[this.value[0],this.value[1]].filter((t=>null!==t)).length;let n=this._inputEl.validity,r=this._inputEl.validationMessage;(null===(i=this.flatpickrInstance)||void 0===i?void 0:i.isOpen)?(n={...n,valueMissing:!1,customError:!1},r=""):1===s?(n={...n,customError:!0},r=this._textStrings.pleaseSelectBothDates):this.required&&0===s?(n={...n,valueMissing:!0},r=this.defaultErrorMessage||this._textStrings.pleaseSelectDate):(n={...n,valueMissing:!1,customError:!1},r=""),this.invalidText&&(n={...n,customError:!0},r=this.invalidText);const l=!n.valueMissing&&!n.customError;l||r||(r=this._textStrings.pleaseSelectValidDate),this._internals.setValidity(n,r,this._inputEl),this._isInvalid=!l&&a,this._internalValidationMsg=r,e&&this._internals.reportValidity(),this.requestUpdate()}_onChange(){this._validate(!0,!1)}_handleFormReset(){var t;this.value=[null,null],null===(t=this.flatpickrInstance)||void 0===t||t.clear(),this._hasInteracted=!1,this._validate(!1,!1),this.updateSelectedDateRangeAria([])}getValue(){var t,e;if(this.flatpickrInstance){const i=this.flatpickrInstance.selectedDates;return[null!==(t=i[0])&&void 0!==t?t:null,null!==(e=i[1])&&void 0!==e?e:null]}return this.value}setValue(t){var e,i;const a=!t||Array.isArray(t)&&t.every((t=>null===t));this._isClearing=a;try{if(this.flatpickrInstance){if(a)this.flatpickrInstance.clear();else{const e=t.filter((t=>t instanceof Date));this.flatpickrInstance.setDate(e,!0)}const s=this.flatpickrInstance.selectedDates,n=null!==(e=s[0])&&void 0!==e?e:null,r=null!==(i=s[1])&&void 0!==i?i:null;this.value=[n,r],this._inputEl&&(this._inputEl.value=a?"":this.flatpickrInstance.input.value,this.updateFormValue()),a?this.updateSelectedDateRangeAria([]):this.updateSelectedDateRangeAria(s)}else this.value=t;this.requestUpdate("value")}finally{this._isClearing=!1}}},n=new WeakMap,L=new WeakMap,N=new WeakMap,W=new WeakMap,V=new WeakMap,q=new WeakMap,j=new WeakMap,Y=new WeakMap,H=new WeakMap,B=new WeakMap,U=new WeakMap,K=new WeakMap,G=new WeakMap,J=new WeakMap,Q=new WeakMap,X=new WeakMap,Z=new WeakMap,tt=new WeakMap,et=new WeakMap,it=new WeakMap,at=new WeakMap,st=new WeakMap,nt=new WeakMap,rt=new WeakMap,lt=new WeakMap,ot=new WeakMap,dt=new WeakMap,ct=new WeakMap,ht=new WeakMap,ut=new WeakMap,pt=new WeakMap,mt=new WeakMap,gt=new WeakMap,t(vt,"DateRangePicker"),(()=>{var t;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(t=Zt[Symbol.metadata])&&void 0!==t?t:null):void 0;kt=[c({type:String})],bt=[c({type:String})],yt=[c({type:String})],Dt=[c({type:Array})],xt=[c({type:String})],wt=[c({type:String})],_t=[c({type:String})],It=[c({type:Array})],Et=[h()],St=[c({type:Array})],Ft=[c({type:String})],zt=[c({type:Boolean})],Mt=[c({type:String})],Tt=[c({type:Boolean})],At=[c({type:Boolean})],$t=[c({type:Boolean})],Ot=[c({type:String})],Rt=[c({type:Boolean})],Ct=[c({type:String})],Pt=[c({type:String})],Lt=[c({type:String})],Nt=[c({type:String})],Wt=[c({type:String})],Vt=[c({type:Boolean})],qt=[h()],jt=[h()],Yt=[u("input")],Ht=[h()],Bt=[c({type:Object})],Ut=[h()],Kt=[h()],Gt=[h()],Jt=[h()],e(vt,null,kt,{kind:"accessor",name:"label",static:!1,private:!1,access:{has:t=>"label"in t,get:t=>t.label,set:(t,e)=>{t.label=e}},metadata:i},te,ee),e(vt,null,bt,{kind:"accessor",name:"locale",static:!1,private:!1,access:{has:t=>"locale"in t,get:t=>t.locale,set:(t,e)=>{t.locale=e}},metadata:i},ie,ae),e(vt,null,yt,{kind:"accessor",name:"dateFormat",static:!1,private:!1,access:{has:t=>"dateFormat"in t,get:t=>t.dateFormat,set:(t,e)=>{t.dateFormat=e}},metadata:i},se,ne),e(vt,null,Dt,{kind:"accessor",name:"defaultDate",static:!1,private:!1,access:{has:t=>"defaultDate"in t,get:t=>t.defaultDate,set:(t,e)=>{t.defaultDate=e}},metadata:i},re,le),e(vt,null,xt,{kind:"accessor",name:"rangeEditMode",static:!1,private:!1,access:{has:t=>"rangeEditMode"in t,get:t=>t.rangeEditMode,set:(t,e)=>{t.rangeEditMode=e}},metadata:i},oe,de),e(vt,null,wt,{kind:"accessor",name:"defaultErrorMessage",static:!1,private:!1,access:{has:t=>"defaultErrorMessage"in t,get:t=>t.defaultErrorMessage,set:(t,e)=>{t.defaultErrorMessage=e}},metadata:i},ce,he),e(vt,null,_t,{kind:"accessor",name:"warnText",static:!1,private:!1,access:{has:t=>"warnText"in t,get:t=>t.warnText,set:(t,e)=>{t.warnText=e}},metadata:i},ue,pe),e(vt,null,It,{kind:"accessor",name:"disable",static:!1,private:!1,access:{has:t=>"disable"in t,get:t=>t.disable,set:(t,e)=>{t.disable=e}},metadata:i},me,ge),e(vt,null,Et,{kind:"accessor",name:"_processedDisableDates",static:!1,private:!1,access:{has:t=>"_processedDisableDates"in t,get:t=>t._processedDisableDates,set:(t,e)=>{t._processedDisableDates=e}},metadata:i},fe,ve),e(vt,null,St,{kind:"accessor",name:"enable",static:!1,private:!1,access:{has:t=>"enable"in t,get:t=>t.enable,set:(t,e)=>{t.enable=e}},metadata:i},ke,be),e(vt,null,Ft,{kind:"accessor",name:"caption",static:!1,private:!1,access:{has:t=>"caption"in t,get:t=>t.caption,set:(t,e)=>{t.caption=e}},metadata:i},ye,De),e(vt,null,zt,{kind:"accessor",name:"required",static:!1,private:!1,access:{has:t=>"required"in t,get:t=>t.required,set:(t,e)=>{t.required=e}},metadata:i},xe,we),e(vt,null,Mt,{kind:"accessor",name:"size",static:!1,private:!1,access:{has:t=>"size"in t,get:t=>t.size,set:(t,e)=>{t.size=e}},metadata:i},_e,Ie),e(vt,null,Tt,{kind:"accessor",name:"dateRangePickerDisabled",static:!1,private:!1,access:{has:t=>"dateRangePickerDisabled"in t,get:t=>t.dateRangePickerDisabled,set:(t,e)=>{t.dateRangePickerDisabled=e}},metadata:i},Ee,Se),e(vt,null,At,{kind:"accessor",name:"readonly",static:!1,private:!1,access:{has:t=>"readonly"in t,get:t=>t.readonly,set:(t,e)=>{t.readonly=e}},metadata:i},Fe,ze),e(vt,null,$t,{kind:"accessor",name:"twentyFourHourFormat",static:!1,private:!1,access:{has:t=>"twentyFourHourFormat"in t,get:t=>t.twentyFourHourFormat,set:(t,e)=>{t.twentyFourHourFormat=e}},metadata:i},Me,Te),e(vt,null,Ot,{kind:"accessor",name:"minDate",static:!1,private:!1,access:{has:t=>"minDate"in t,get:t=>t.minDate,set:(t,e)=>{t.minDate=e}},metadata:i},Ae,$e),e(vt,null,Rt,{kind:"accessor",name:"allowManualInput",static:!1,private:!1,access:{has:t=>"allowManualInput"in t,get:t=>t.allowManualInput,set:(t,e)=>{t.allowManualInput=e}},metadata:i},Oe,Re),e(vt,null,Ct,{kind:"accessor",name:"maxDate",static:!1,private:!1,access:{has:t=>"maxDate"in t,get:t=>t.maxDate,set:(t,e)=>{t.maxDate=e}},metadata:i},Ce,Pe),e(vt,null,Pt,{kind:"accessor",name:"errorAriaLabel",static:!1,private:!1,access:{has:t=>"errorAriaLabel"in t,get:t=>t.errorAriaLabel,set:(t,e)=>{t.errorAriaLabel=e}},metadata:i},Le,Ne),e(vt,null,Lt,{kind:"accessor",name:"errorTitle",static:!1,private:!1,access:{has:t=>"errorTitle"in t,get:t=>t.errorTitle,set:(t,e)=>{t.errorTitle=e}},metadata:i},We,Ve),e(vt,null,Nt,{kind:"accessor",name:"warningAriaLabel",static:!1,private:!1,access:{has:t=>"warningAriaLabel"in t,get:t=>t.warningAriaLabel,set:(t,e)=>{t.warningAriaLabel=e}},metadata:i},qe,je),e(vt,null,Wt,{kind:"accessor",name:"warningTitle",static:!1,private:!1,access:{has:t=>"warningTitle"in t,get:t=>t.warningTitle,set:(t,e)=>{t.warningTitle=e}},metadata:i},Ye,He),e(vt,null,Vt,{kind:"accessor",name:"staticPosition",static:!1,private:!1,access:{has:t=>"staticPosition"in t,get:t=>t.staticPosition,set:(t,e)=>{t.staticPosition=e}},metadata:i},Be,Ue),e(vt,null,qt,{kind:"accessor",name:"_enableTime",static:!1,private:!1,access:{has:t=>"_enableTime"in t,get:t=>t._enableTime,set:(t,e)=>{t._enableTime=e}},metadata:i},Ke,Ge),e(vt,null,jt,{kind:"accessor",name:"flatpickrInstance",static:!1,private:!1,access:{has:t=>"flatpickrInstance"in t,get:t=>t.flatpickrInstance,set:(t,e)=>{t.flatpickrInstance=e}},metadata:i},Je,Qe),e(vt,null,Yt,{kind:"accessor",name:"_inputEl",static:!1,private:!1,access:{has:t=>"_inputEl"in t,get:t=>t._inputEl,set:(t,e)=>{t._inputEl=e}},metadata:i},Xe,Ze),e(vt,null,Ht,{kind:"accessor",name:"_hasInteracted",static:!1,private:!1,access:{has:t=>"_hasInteracted"in t,get:t=>t._hasInteracted,set:(t,e)=>{t._hasInteracted=e}},metadata:i},ti,ei),e(vt,null,Bt,{kind:"accessor",name:"textStrings",static:!1,private:!1,access:{has:t=>"textStrings"in t,get:t=>t.textStrings,set:(t,e)=>{t.textStrings=e}},metadata:i},ii,ai),e(vt,null,Ut,{kind:"accessor",name:"_textStrings",static:!1,private:!1,access:{has:t=>"_textStrings"in t,get:t=>t._textStrings,set:(t,e)=>{t._textStrings=e}},metadata:i},si,ni),e(vt,null,Kt,{kind:"accessor",name:"_isClearing",static:!1,private:!1,access:{has:t=>"_isClearing"in t,get:t=>t._isClearing,set:(t,e)=>{t._isClearing=e}},metadata:i},ri,li),e(vt,null,Gt,{kind:"accessor",name:"_shouldFlatpickrOpen",static:!1,private:!1,access:{has:t=>"_shouldFlatpickrOpen"in t,get:t=>t._shouldFlatpickrOpen,set:(t,e)=>{t._shouldFlatpickrOpen=e}},metadata:i},oi,di),e(vt,null,Jt,{kind:"accessor",name:"_hasInitialDefaultDate",static:!1,private:!1,access:{has:t=>"_hasInitialDefaultDate"in t,get:t=>t._hasInitialDefaultDate,set:(t,e)=>{t._hasInitialDefaultDate=e}},metadata:i},ci,hi),e(null,ft={value:vt},Qt,{kind:"class",name:vt.name,metadata:i},null,Xt),vt=ft.value,i&&Object.defineProperty(vt,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),vt.styles=[l(C),l(A)],i(vt,Xt),vt})();export{L as DateRangePicker};
|
|
716
716
|
//# sourceMappingURL=daterangepicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daterangepicker.js","sources":["../../../../src/components/reusable/daterangepicker/daterangepicker.ts"],"sourcesContent":["import { html, LitElement, PropertyValues, unsafeCSS } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { FormMixin } from '../../../common/mixins/form-input';\nimport { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { langsArray } from '../../../common/flatpickrLangs';\nimport { DateRangeEditableMode } from '../../../common/helpers/flatpickr';\nimport {\n injectFlatpickrStyles,\n initializeSingleAnchorFlatpickr,\n getFlatpickrOptions,\n getPlaceholder,\n preventFlatpickrOpen,\n handleInputClick,\n handleInputFocus,\n setCalendarAttributes,\n loadLocale,\n emitValue,\n updateEnableTime,\n hideEmptyYear,\n getModalContainer,\n applyDateRangeEditingRestrictions,\n clearFlatpickrInput,\n} from '../../../common/helpers/flatpickr';\nimport '../../reusable/button';\n\nimport { BaseOptions } from 'flatpickr/dist/types/options';\nimport type { Instance } from 'flatpickr/dist/types/instance';\n\nimport DateRangePickerStyles from './daterangepicker.scss?inline';\nimport ShidokaFlatpickrTheme from '../../../common/scss/shidoka-flatpickr-theme.scss?inline';\n\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-filled.svg';\nimport calendarIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/24/calendar.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\ntype SupportedLocale = (typeof langsArray)[number];\n\nconst _defaultTextStrings = {\n requiredText: 'Required',\n clearAll: 'Clear',\n pleaseSelectDate: 'Please select a date',\n pleaseSelectValidDate: 'Please select a valid date',\n pleaseSelectBothDates: 'Please select a start and end date.',\n dateRange: 'Date range',\n noDateSelected: 'No dates selected',\n startDateSelected: 'Start date selected: {0}. Please select end date.',\n invalidDateRange:\n 'Invalid date range: End date cannot be earlier than start date',\n dateRangeSelected: 'Selected date range: {0} to {1}',\n\n lockedStartDate: 'Start date is locked',\n lockedEndDate: 'End date is locked',\n dateLocked: 'Date is locked',\n dateNotAvailable: 'Date is not available',\n dateInSelectedRange: 'Date is in selected range',\n};\n\n/**\n * Date Range Picker: uses Flatpickr library, range picker implementation -- `https://flatpickr.js.org/examples/#range-calendar`\n * @fires on-change - Emitted when the selected date range changes. Event.detail has the shape:\n * { dates: string[] | (Date | null)[] | null, dateString?: string, source?: string }\n * - dates: array of ISO strings for selected dates (length 1 or 2), or an array containing Date/null values,\n * or null/empty when cleared.\n * - dateString: the display string from the input (may be empty when cleared)\n * - source: 'clear' when the value was cleared; otherwise may be 'date-selection' or undefined.\n * @slot tooltip - Slot for tooltip.\n * @attr {string} [name=''] - The name of the input, used for form submission.\n * @attr {string} [invalidText=''] - The custom validation message when the input is invalid.\n */\n@customElement('kyn-date-range-picker')\nexport class DateRangePicker extends FormMixin(LitElement) {\n static override styles = [\n unsafeCSS(DateRangePickerStyles),\n unsafeCSS(ShidokaFlatpickrTheme),\n ];\n\n /** Label text. */\n @property({ type: String })\n accessor label = '';\n\n /** Sets and dynamically imports specific l10n calendar localization. */\n @property({ type: String })\n accessor locale: SupportedLocale | string = 'en';\n\n /** Sets flatpickr value to define how the date will be displayed in the input box (ex: `Y-m-d H:i`). */\n @property({ type: String })\n accessor dateFormat = 'Y-m-d';\n\n /** Sets the initial selected date(s). For range mode, provide an array of date strings matching dateFormat (e.g. [\"2024-01-01\", \"2024-01-07\"]). */\n @property({ type: Array })\n accessor defaultDate: string[] | null = null;\n\n /** Controls which parts of the date range are editable. */\n @property({ type: String })\n accessor rangeEditMode: DateRangeEditableMode = DateRangeEditableMode.BOTH;\n\n /** Sets default error message. */\n @property({ type: String })\n accessor defaultErrorMessage = '';\n\n /**\n * Current date range value for the component.\n *\n * - Uncontrolled: populated from `defaultDate` and user selections.\n * - Controlled: can be set from the host (e.g. Vue `:value`) as a tuple\n * `[startDate, endDate]`, where each entry is a `Date` or `null`.\n *\n * When both `defaultDate` and `value` are provided, `value` takes precedence.\n */\n override value: [Date | null, Date | null] = [null, null];\n\n /** Sets validation warning messaging. */\n @property({ type: String })\n accessor warnText = '';\n\n /** Sets flatpickr options setting to disable specific dates. Accepts array of dates in Y-m-d format, timestamps, or Date objects. */\n @property({ type: Array })\n accessor disable: (string | number | Date)[] = [];\n\n /** Internal storage for processed disable dates */\n @state()\n private accessor _processedDisableDates: (string | number | Date)[] = [];\n\n /** Sets flatpickr options setting to enable specific dates. */\n @property({ type: Array })\n accessor enable: (string | number | Date)[] = [];\n\n /** Sets caption to be displayed under primary date picker elements. */\n @property({ type: String })\n accessor caption = '';\n\n /** Sets date range picker form input value to required. */\n @property({ type: Boolean })\n accessor required = false;\n\n /** Input size. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n accessor size = 'md';\n\n /** Sets entire date range picker form element to enabled/disabled. */\n @property({ type: Boolean })\n accessor dateRangePickerDisabled = false;\n\n /** Sets entire date range picker form element to readonly. */\n @property({ type: Boolean })\n accessor readonly = false;\n\n /** Sets 24-hour formatting true/false.\n * Defaults to 12H for all `en-` locales and 24H for all other locales.\n */\n @property({ type: Boolean })\n accessor twentyFourHourFormat: boolean | null = null;\n\n /** Sets lower boundary of date range picker date selection. */\n @property({ type: String })\n accessor minDate: string | number | Date = '';\n\n /** Allows manual input of date/time string that matches dateFormat when true. */\n @property({ type: Boolean })\n accessor allowManualInput = false;\n\n /** Sets upper boundary of date range picker date selection. */\n @property({ type: String })\n accessor maxDate: string | number | Date = '';\n\n /** Sets aria label attribute for error message. */\n @property({ type: String })\n accessor errorAriaLabel = '';\n\n /** Sets title attribute for error message. */\n @property({ type: String })\n accessor errorTitle = '';\n\n /** Sets aria label attribute for warning message. */\n @property({ type: String })\n accessor warningAriaLabel = '';\n\n /** Sets title attribute for warning message. */\n @property({ type: String })\n accessor warningTitle = '';\n\n /** Sets whether the Flatpickr calendar UI should use static positioning. */\n @property({ type: Boolean })\n accessor staticPosition = false;\n\n /** Sets flatpickr enableTime value based on detected dateFormat.\n * @internal\n */\n @state()\n private accessor _enableTime = false;\n\n /** Flatpickr instantiation.\n * @internal\n */\n @state()\n private accessor flatpickrInstance: Instance | undefined;\n\n /**\n * Queries the input DOM element.\n * @internal\n */\n @query('input')\n private accessor _inputEl: HTMLInputElement | null = null;\n\n /**\n * Sets whether user has interacted with datepicker for error handling.\n * @internal\n */\n @state()\n private accessor _hasInteracted = false;\n\n /** Customizable text strings. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n accessor _textStrings = { ..._defaultTextStrings };\n\n /** Tracks if we're in a clear operation to prevent duplicate events\n * @internal\n */\n @state()\n private accessor _isClearing = false;\n\n /** Control flag to prevent Flatpickr from opening when clicking caption, error, label, or warning elements.\n * @internal\n */\n @state()\n private accessor _shouldFlatpickrOpen = false;\n\n /** Track if we initially had a defaultDate when the component was first connected\n * @internal\n */\n @state()\n private accessor _hasInitialDefaultDate = false;\n\n /** Track initialization state\n * @internal\n */\n private _initialized = false;\n\n /** Track destroyed state\n * @internal\n */\n private _isDestroyed = false;\n\n /** Store submit event listener reference for cleanup\n * @internal\n */\n private _submitListener: ((e: SubmitEvent) => void) | null = null;\n\n private debounce<T extends (...args: unknown[]) => unknown>(\n func: T,\n wait: number\n ): (...args: Parameters<T>) => void {\n let timeout: number | null = null;\n\n return (...args: Parameters<T>) => {\n if (timeout !== null) {\n window.clearTimeout(timeout);\n }\n\n timeout = window.setTimeout(() => {\n void func(...args);\n timeout = null;\n }, wait);\n };\n }\n\n private debouncedUpdate = this.debounce(async () => {\n if (!this.flatpickrInstance || this._isDestroyed) return;\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n if (\n process.env.NODE_ENV === 'development' &&\n error instanceof Error &&\n !error.message.includes('calendarContainer') &&\n !error.message.includes('selectedDates')\n ) {\n console.warn('DateRangePicker update info:', error.message);\n }\n }\n }, 100);\n\n private handleResize = this.debounce(async () => {\n if (this.flatpickrInstance && !this._isDestroyed) {\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n if (\n process.env.NODE_ENV === 'development' &&\n error instanceof Error &&\n !error.message.includes('calendarContainer') &&\n !error.message.includes('selectedDates')\n ) {\n console.debug('DateRangePicker resize info:', error.message);\n }\n }\n }\n }, 250);\n\n private generateRandomId(prefix: string): string {\n return `${prefix}-${Math.random().toString(36).slice(2, 11)}`;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('change', this._onChange);\n this.addEventListener('reset', this._handleFormReset);\n window.addEventListener('resize', this.handleResize);\n\n if (this._internals.form) {\n this._submitListener = (e: SubmitEvent) => {\n this._validate(true, true);\n if (!this._internals.checkValidity()) {\n e.preventDefault();\n }\n };\n this._internals.form.addEventListener('submit', this._submitListener);\n }\n\n if (\n (!this.value ||\n (Array.isArray(this.value) &&\n this.value.every((date) => date === null))) &&\n this.defaultDate\n ) {\n this._hasInitialDefaultDate = true;\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 1) {\n this._hasInteracted = true;\n }\n }\n }\n\n override disconnectedCallback() {\n this._isDestroyed = true;\n super.disconnectedCallback();\n this.removeEventListener('change', this._onChange);\n this.removeEventListener('reset', this._handleFormReset);\n window.removeEventListener('resize', this.handleResize);\n\n if (this._internals.form && this._submitListener) {\n this._internals.form.removeEventListener('submit', this._submitListener);\n this._submitListener = null;\n }\n\n this.flatpickrInstance?.destroy();\n this.flatpickrInstance = undefined;\n }\n\n private hasValue(): boolean {\n if (this._inputEl?.value) return true;\n if (this.value && Array.isArray(this.value) && this.value.length === 2) {\n return this.value[0] !== null || this.value[1] !== null;\n }\n if (this.defaultDate) {\n if (Array.isArray(this.defaultDate)) {\n return (\n this.defaultDate.length > 0 &&\n !this.defaultDate.every((date) => !date || date === '')\n );\n }\n return !!this.defaultDate;\n }\n return false;\n }\n\n private updateFormValue() {\n if (!this._internals || !this._inputEl) return;\n\n const [start, end] = this.value;\n\n if (start instanceof Date && end instanceof Date) {\n const formattedValue = [start.toISOString(), end.toISOString()].join(',');\n this._internals.setFormValue(formattedValue);\n\n if (this.name) {\n this._inputEl.setAttribute('value', formattedValue);\n }\n } else {\n this._internals.setFormValue('');\n if (this.name) {\n this._inputEl.removeAttribute('value');\n }\n }\n }\n\n override render() {\n const errorId = `${this.name}-error-message`;\n const warningId = `${this.name}-warning-message`;\n const anchorId = this.name\n ? this.generateRandomId(this.name)\n : this.generateRandomId('date-range-picker');\n const descriptionId = this.name ?? '';\n const placeholder = getPlaceholder(this.dateFormat, true);\n\n const showClearButton =\n this.hasValue() &&\n !this.readonly &&\n this.rangeEditMode !== DateRangeEditableMode.START &&\n this.rangeEditMode !== DateRangeEditableMode.END &&\n this.rangeEditMode !== DateRangeEditableMode.NONE;\n return html`\n <div class=${classMap(this.getDateRangePickerClasses())}>\n <div\n class=\"label-text\"\n ?readonly=${this.readonly}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n aria-disabled=${this.dateRangePickerDisabled ? 'true' : 'false'}\n id=${`label-${anchorId}`}\n >\n ${this.required\n ? html`<abbr\n class=\"required\"\n title=${this._textStrings.requiredText}\n role=\"img\"\n aria-label=${this._textStrings.requiredText}\n >\n *\n </abbr>`\n : null}\n ${this.label}\n <slot name=\"tooltip\"></slot>\n </div>\n\n <div class=\"input-wrapper\">\n <input\n class=\"${classMap({\n [`size--${this.size}`]: true,\n 'input-custom': true,\n 'is-readonly': this.readonly,\n })}\"\n type=\"text\"\n id=${anchorId}\n name=${this.name}\n placeholder=${placeholder}\n ?disabled=${this.dateRangePickerDisabled}\n ?readonly=${!this.dateRangePickerDisabled && this.readonly}\n ?required=${this.required}\n ?invalid=${this._isInvalid}\n aria-invalid=${this._isInvalid ? 'true' : 'false'}\n aria-labelledby=${`label-${anchorId}`}\n autocomplete=\"off\"\n @click=${this.handleInputClickEvent}\n @focus=${this.handleInputFocusEvent}\n />\n ${showClearButton\n ? html`<kyn-button\n ?disabled=${this.dateRangePickerDisabled}\n class=\"clear-button\"\n kind=\"ghost\"\n size=\"small\"\n description=${this._textStrings.clearAll}\n @click=${this._handleClear}\n >\n <span style=\"display:flex;\" slot=\"icon\">\n ${unsafeSVG(clearIcon)}\n </span>\n </kyn-button>`\n : html`<span\n class=\"input-icon ${this.dateRangePickerDisabled\n ? 'is-disabled'\n : ''}\"\n aria-hidden=\"true\"\n @click=${this.handleInputClickEvent}\n >\n ${unsafeSVG(calendarIcon)}\n </span>`}\n </div>\n\n <div\n id=${`${anchorId}-announcer`}\n class=\"sr-only\"\n aria-live=\"polite\"\n ></div>\n\n ${this.caption\n ? html`<div\n id=${descriptionId}\n class=\"caption\"\n aria-disabled=${this.dateRangePickerDisabled ? 'true' : 'false'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n >\n ${this.caption}\n </div>`\n : ''}\n ${this.renderValidationMessage(errorId, warningId)}\n </div>\n `;\n }\n\n private renderValidationMessage(errorId: string, warningId: string) {\n if (this.dateRangePickerDisabled) return null;\n\n if (this.invalidText || (this._isInvalid && this._hasInteracted)) {\n return html`\n <div\n id=${errorId}\n class=\"error error-text\"\n role=\"alert\"\n title=${this.errorTitle || 'Error'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n tabindex=\"0\"\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.preventFlatpickrOpen(e);\n }\n }}\n >\n <span\n class=\"error-icon\"\n role=\"img\"\n aria-label=${this.errorAriaLabel || 'Error message icon'}\n >\n ${unsafeSVG(errorIcon)}\n </span>\n ${this.invalidText ||\n this._internalValidationMsg ||\n this.defaultErrorMessage}\n </div>\n `;\n }\n\n if (this.warnText) {\n return html`\n <div\n id=${warningId}\n class=\"warn warn-text\"\n role=\"alert\"\n aria-label=${this.warningAriaLabel || 'Warning message'}\n title=${this.warningTitle || 'Warning'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n tabindex=\"0\"\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.preventFlatpickrOpen(e);\n }\n }}\n >\n ${this.warnText}\n </div>\n `;\n }\n\n return null;\n }\n\n private getDateRangePickerClasses() {\n return {\n 'date-range-picker': true,\n 'date-range-picker__enable-time': this._enableTime,\n 'date-range-picker__disabled': this.dateRangePickerDisabled,\n };\n }\n\n private parseDateString(dateStr: string): Date | null {\n if (!dateStr || !dateStr.trim()) return null;\n dateStr = dateStr.trim();\n\n const dateFormat = this.dateFormat || 'Y-m-d';\n\n if (dateStr.includes('T')) {\n const date = new Date(dateStr);\n return isNaN(date.getTime()) ? null : date;\n }\n\n if (dateStr.includes(' ')) {\n const parts = dateStr.split(/\\s+/);\n const datePart = parts[0];\n const timePart = parts[1] || '';\n let ampm = parts[2] ? parts[2].toUpperCase() : undefined;\n const dateTokens = datePart.split('-').map(Number);\n let year: number, month: number, day: number;\n\n switch (dateFormat) {\n case 'Y-m-d':\n [year, month, day] = dateTokens;\n break;\n case 'm-d-Y':\n [month, day, year] = dateTokens;\n break;\n case 'd-m-Y':\n [day, month, year] = dateTokens;\n break;\n default:\n [year, month, day] = dateTokens;\n }\n\n if (!year || !month || !day) return null;\n\n let hours = 0;\n let minutes = 0;\n let seconds = 0;\n\n if (timePart) {\n const timeComponents = timePart.split(':');\n hours = parseInt(timeComponents[0], 10);\n\n if (timeComponents.length > 1) {\n if (timeComponents[1].includes(' ')) {\n const [mins, token] = timeComponents[1].split(' ');\n minutes = parseInt(mins, 10);\n ampm = token ? token.toUpperCase() : ampm;\n } else {\n minutes = parseInt(timeComponents[1], 10);\n }\n }\n\n if (timeComponents.length > 2) {\n seconds = parseInt(timeComponents[2], 10);\n }\n\n if (ampm) {\n if (ampm === 'PM' && hours < 12) {\n hours += 12;\n } else if (ampm === 'AM' && hours === 12) {\n hours = 0;\n }\n }\n }\n\n const date = new Date(year, month - 1, day, hours, minutes, seconds);\n return isNaN(date.getTime()) ? null : date;\n }\n\n const formats: { [key: string]: RegExp } = {\n 'Y-m-d': /^\\d{4}-\\d{2}-\\d{2}$/,\n 'm-d-Y': /^\\d{2}-\\d{2}-\\d{4}$/,\n 'd-m-Y': /^\\d{2}-\\d{2}-\\d{4}$/,\n 'Y-m-d h:i K': /^\\d{4}-\\d{2}-\\d{2}( \\d{1,2}:\\d{2} [AP]M)?$/,\n };\n const pattern = formats[dateFormat];\n if (!pattern || !pattern.test(dateStr)) return null;\n\n const datePart = dateStr.split(' ')[0];\n const dateTokens = datePart.split('-').map(Number);\n let year: number, month: number, day: number;\n\n switch (dateFormat) {\n case 'Y-m-d':\n [year, month, day] = dateTokens;\n break;\n case 'm-d-Y':\n [month, day, year] = dateTokens;\n break;\n case 'd-m-Y':\n [day, month, year] = dateTokens;\n break;\n default:\n [year, month, day] = dateTokens;\n }\n\n if (!year || !month || !day) return null;\n const date = new Date(year, month - 1, day);\n return isNaN(date.getTime()) ? null : date;\n }\n\n override async firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n if (!this._initialized) {\n injectFlatpickrStyles(ShidokaFlatpickrTheme.toString());\n this._initialized = true;\n\n this._enableTime = updateEnableTime(this.dateFormat);\n\n await this.updateComplete;\n this.setupAnchor();\n\n const valueEmpty =\n !this.value ||\n (this.value.length === 2 &&\n this.value[0] === null &&\n this.value[1] === null);\n\n if (valueEmpty && this._hasInitialDefaultDate && this.defaultDate) {\n const processedDates = this.processDefaultDates(this.defaultDate);\n if (processedDates && processedDates.length > 0) {\n if (processedDates.length === 1) {\n this.value = [processedDates[0], null];\n this._hasInteracted = true;\n } else if (processedDates.length >= 2) {\n this.value = [processedDates[0], processedDates[1]];\n }\n\n if (this.value[0] !== null || this.value[1] !== null) {\n this.updateFormValue();\n }\n\n this._validate(true, false);\n }\n }\n\n setTimeout(() => {\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 1) {\n this._hasInteracted = true;\n this._validate(true, false);\n } else if (\n this.value.length === 2 &&\n ((this.value[0] !== null && this.value[1] === null) ||\n (this.value[0] === null && this.value[1] !== null))\n ) {\n this._hasInteracted = true;\n this._validate(true, false);\n }\n }, 0);\n }\n }\n\n override updated(changedProperties: PropertyValues) {\n super.updated(changedProperties);\n\n if (changedProperties.has('textStrings')) {\n this._textStrings = { ..._defaultTextStrings, ...this.textStrings };\n\n if (\n this.flatpickrInstance &&\n this.rangeEditMode !== DateRangeEditableMode.BOTH\n ) {\n this.updateFlatpickrOptions();\n }\n }\n\n if (\n (changedProperties.has('dateRangePickerDisabled') &&\n this.dateRangePickerDisabled) ||\n (changedProperties.has('readonly') && this.readonly)\n ) {\n if (this.dateRangePickerDisabled || this.readonly) {\n this.flatpickrInstance?.close();\n return;\n } else if (this.value[0] && this.value[1]) {\n this.setInitialDates();\n }\n }\n\n if (changedProperties.has('rangeEditMode') && this.flatpickrInstance) {\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 2) {\n if (\n this.rangeEditMode === DateRangeEditableMode.START &&\n !this.defaultDate[0] &&\n this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([this.defaultDate[1]]);\n if (processedDate.length === 1) {\n this.value = [null, processedDate[0]];\n }\n } else if (\n this.rangeEditMode === DateRangeEditableMode.END &&\n this.defaultDate[0] &&\n !this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([this.defaultDate[0]]);\n if (processedDate.length === 1) {\n this.value = [processedDate[0], null];\n }\n }\n }\n\n this.flatpickrInstance.destroy();\n setTimeout(() => {\n this.initializeFlatpickr().then(() => {\n if (this._inputEl && this.flatpickrInstance) {\n this._inputEl.value = this.flatpickrInstance.input.value;\n this.flatpickrInstance.redraw();\n this.updateFormValue();\n }\n });\n }, 0);\n }\n\n if (\n changedProperties.has('value') &&\n !this.dateRangePickerDisabled &&\n this.flatpickrInstance &&\n !this._isClearing\n ) {\n const newValue = this.value;\n if (newValue.every((v) => v === null)) {\n this._isClearing = true;\n this.flatpickrInstance.clear();\n this._isClearing = false;\n if (this._inputEl) {\n this._inputEl.value = '';\n this.updateFormValue();\n }\n } else {\n const currentDates = this.flatpickrInstance.selectedDates;\n if (\n currentDates.length !== 2 ||\n !currentDates[0] ||\n !currentDates[1] ||\n currentDates[0].getTime() !== newValue[0]?.getTime() ||\n currentDates[1].getTime() !== newValue[1]?.getTime()\n ) {\n this.setInitialDates();\n }\n\n if (\n (newValue[0] !== null && newValue[1] === null) ||\n (newValue[0] === null && newValue[1] !== null)\n ) {\n this._hasInteracted = true;\n this._validate(true, false);\n }\n }\n }\n\n if (changedProperties.has('defaultDate')) {\n if (this.defaultDate && this.value.every((v) => v === null)) {\n const dates = this.processDefaultDates(this.defaultDate);\n this.value =\n dates.length === 2\n ? ([dates[0], dates[1]] as [Date, Date])\n : dates.length === 1\n ? ([dates[0], null] as [Date, null])\n : ([null, null] as [null, null]);\n\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 2) {\n if (\n this.rangeEditMode === DateRangeEditableMode.START &&\n !this.defaultDate[0] &&\n this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([\n this.defaultDate[1],\n ]);\n if (processedDate.length === 1) {\n this.value = [null, processedDate[0]];\n }\n } else if (\n this.rangeEditMode === DateRangeEditableMode.END &&\n this.defaultDate[0] &&\n !this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([\n this.defaultDate[0],\n ]);\n if (processedDate.length === 1) {\n this.value = [processedDate[0], null];\n }\n }\n }\n\n this.updateFormValue();\n this.requestUpdate();\n }\n\n if (this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n this.initializeFlatpickr().then(() => {\n if (this._inputEl && this.flatpickrInstance) {\n this._inputEl.value = this.flatpickrInstance.input.value;\n this.flatpickrInstance.redraw();\n this.updateFormValue();\n }\n });\n }\n }\n\n if (changedProperties.has('disable')) {\n if (Array.isArray(this.disable)) {\n this._processedDisableDates = this.disable.map((date) => {\n if (date instanceof Date) return date;\n if (typeof date === 'number') return new Date(date);\n if (typeof date === 'string') {\n const [year, month, day] = date.split('-').map(Number);\n if (!isNaN(year) && !isNaN(month) && !isNaN(day)) {\n return new Date(year, month - 1, day);\n }\n }\n return date;\n });\n } else {\n this._processedDisableDates = [];\n }\n if (this.flatpickrInstance) {\n this.updateFlatpickrOptions();\n }\n }\n\n if (\n (changedProperties.has('dateFormat') ||\n changedProperties.has('minDate') ||\n changedProperties.has('maxDate') ||\n changedProperties.has('locale') ||\n changedProperties.has('twentyFourHourFormat')) &&\n this.flatpickrInstance &&\n !this._isClearing\n ) {\n this._enableTime = updateEnableTime(this.dateFormat);\n this.updateFlatpickrOptions();\n }\n\n if (changedProperties.has('allowManualInput')) {\n this.syncAllowInput();\n }\n }\n\n private syncAllowInput(): void {\n if (!this.flatpickrInstance) return;\n this.flatpickrInstance.set('allowInput', this.allowManualInput);\n if (!this.readonly && this._inputEl) {\n this._inputEl.readOnly = !this.allowManualInput;\n }\n }\n\n private async setupAnchor() {\n if (!this._inputEl) {\n return;\n }\n\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n console.error('Error setting up flatpickr:', error);\n }\n }\n\n private normalizeToDate(value: string | number | Date | ''): Date | null {\n if (!value) return null;\n\n if (value instanceof Date) {\n return isNaN(value.getTime()) ? null : value;\n }\n\n if (typeof value === 'number') {\n const d = new Date(value);\n return isNaN(d.getTime()) ? null : d;\n }\n\n if (typeof value === 'string') {\n return this.parseDateString(value);\n }\n\n return null;\n }\n\n private processDefaultDates(\n defaultDate: string | string[] | Date | Date[] | null\n ): Date[] {\n if (!defaultDate) return [];\n\n const rawValues = Array.isArray(defaultDate) ? defaultDate : [defaultDate];\n\n const parsed = rawValues.map((d) => {\n if (d instanceof Date) return d;\n if (typeof d === 'string') return this.parseDateString(d);\n return null;\n });\n\n const validDates = parsed.filter(\n (date): date is Date => date instanceof Date && !isNaN(date.getTime())\n );\n\n if (validDates.length === 2 && validDates[1] < validDates[0]) {\n console.error(\n 'Invalid date range: End date cannot be earlier than start date'\n );\n this.invalidText = this._textStrings.invalidDateRange;\n return [validDates[0]];\n }\n\n const min = this.normalizeToDate(this.minDate);\n const max = this.normalizeToDate(this.maxDate);\n\n const inRange = validDates.filter((d) => {\n return (!min || d >= min) && (!max || d <= max);\n });\n\n if (inRange.length !== validDates.length) {\n console.error('Invalid date(s) provided in defaultDate', inRange);\n this.invalidText = this._textStrings.pleaseSelectValidDate;\n this.defaultDate = null;\n }\n\n return inRange;\n }\n\n private async _clearInput(\n options: { reinitFlatpickr?: boolean } = { reinitFlatpickr: true }\n ) {\n if (this.rangeEditMode === DateRangeEditableMode.NONE) {\n return;\n }\n\n const newValue: [Date | null, Date | null] = [null, null];\n const preservedDateExists = false;\n\n this.value = newValue;\n this.defaultDate = null;\n\n if (preservedDateExists) {\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n\n const datesToSet = newValue.filter(\n (date): date is Date => date !== null\n );\n if (datesToSet.length > 0) {\n this.flatpickrInstance.setDate(datesToSet, true);\n }\n }\n\n this.updateFormValue();\n } else {\n await clearFlatpickrInput(\n this.flatpickrInstance,\n this._inputEl ?? undefined,\n () => {\n this.updateFormValue();\n }\n );\n }\n\n emitValue(this, 'on-change', {\n dates: this.value,\n dateString: this._inputEl?.value,\n source: 'clear',\n });\n\n this._validate(true, false);\n await this.updateComplete;\n\n if (options.reinitFlatpickr) {\n await this.initializeFlatpickr();\n this.requestUpdate();\n }\n }\n\n private async _handleClear(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n this._isClearing = true;\n try {\n await this._clearInput();\n } finally {\n this._isClearing = false;\n }\n }\n\n public async handleClose() {\n this._hasInteracted = true;\n this._validate(true, false);\n await this.updateComplete;\n }\n\n public async initializeFlatpickr() {\n if (this._isDestroyed) {\n return;\n }\n\n if (!this._inputEl || !this._inputEl.isConnected) {\n console.warn(\n 'Cannot initialize Flatpickr: input element not available or not connected to DOM'\n );\n return;\n }\n\n if (!this.dateFormat) {\n console.warn('Date format not set, using default Y-m-d');\n this.dateFormat = 'Y-m-d';\n }\n\n try {\n this.flatpickrInstance?.destroy();\n this.flatpickrInstance = await initializeSingleAnchorFlatpickr({\n inputEl: this._inputEl,\n getFlatpickrOptions: () => this.getComponentFlatpickrOptions(),\n setCalendarAttributes: (instance) => {\n try {\n if (!instance?.calendarContainer) {\n throw new Error('Calendar container not available');\n }\n const container = getModalContainer(this);\n setCalendarAttributes(instance, container !== document.body);\n instance.calendarContainer.setAttribute(\n 'aria-label',\n 'Date range calendar'\n );\n } catch (error) {\n console.warn('Error setting calendar attributes:', error);\n }\n },\n setInitialDates: () => this.setInitialDates(),\n });\n\n if (!this.flatpickrInstance) {\n throw new Error('Failed to initialize Flatpickr instance');\n }\n\n hideEmptyYear();\n this._validate(false, false);\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n\n if (error instanceof Error) {\n console.error('Error details:', error.message);\n }\n }\n }\n\n public async updateFlatpickrOptions() {\n if (!this.flatpickrInstance) {\n console.warn('Cannot update options: Flatpickr instance not available');\n return;\n }\n await this.debouncedUpdate();\n }\n\n public async getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>> {\n if (!this.dateFormat) {\n this.dateFormat = 'Y-m-d';\n }\n\n if (!this._inputEl) {\n return {};\n }\n\n const container = getModalContainer(this);\n const options = await getFlatpickrOptions({\n locale: this.locale || 'en',\n dateFormat: this.dateFormat,\n defaultDate: this.defaultDate ?? undefined,\n enableTime: this._enableTime,\n twentyFourHourFormat: this.twentyFourHourFormat ?? undefined,\n inputEl: this._inputEl,\n minDate: this.minDate,\n maxDate: this.maxDate,\n enable: this.enable,\n disable: this._processedDisableDates,\n mode: 'range',\n closeOnSelect: false,\n allowInput: this.allowManualInput,\n loadLocale,\n onOpen: this.handleOpen.bind(this),\n onClose: this.handleClose.bind(this),\n onChange: this.handleDateChange.bind(this),\n appendTo: container,\n noCalendar: false,\n static: this.staticPosition,\n });\n\n const origOnOpen = options.onOpen;\n options.onOpen = (selectedDates, dateStr, instance) => {\n if (typeof origOnOpen === 'function') {\n origOnOpen(selectedDates, dateStr, instance);\n } else if (Array.isArray(origOnOpen)) {\n origOnOpen.forEach((fn) => fn(selectedDates, dateStr, instance));\n }\n setTimeout(() => {\n const firstDay = instance.calendarContainer.querySelector<HTMLElement>(\n '.flatpickr-day:not(.flatpickr-disabled)'\n );\n if (firstDay) firstDay.focus();\n }, 0);\n };\n\n const origOnReady = options.onReady;\n options.onReady = (_sel, _str, instance) => {\n if (typeof origOnReady === 'function') {\n origOnReady(_sel, _str, instance);\n } else if (Array.isArray(origOnReady)) {\n origOnReady.forEach((fn) => fn(_sel, _str, instance));\n }\n const handler = (e: KeyboardEvent) => {\n if (e.key !== 'Enter') return;\n const target = e.target as HTMLElement & { dateObj: Date };\n if (\n !target.classList.contains('flatpickr-day') ||\n target.classList.contains('flatpickr-disabled')\n ) {\n return;\n }\n e.preventDefault();\n const sel = instance.selectedDates;\n if (sel.length === 0) {\n instance.setDate([target.dateObj], true);\n } else if (sel.length === 1) {\n instance.setDate([sel[0], target.dateObj], true);\n instance.close();\n }\n };\n instance.calendarContainer.addEventListener('keydown', handler);\n };\n\n if (this.rangeEditMode !== DateRangeEditableMode.BOTH) {\n return applyDateRangeEditingRestrictions(\n options,\n this.rangeEditMode,\n this.value,\n {\n lockedStartDate: this._textStrings.lockedStartDate,\n lockedEndDate: this._textStrings.lockedEndDate,\n dateLocked: this._textStrings.dateLocked,\n dateNotAvailable: this._textStrings.dateNotAvailable,\n dateInSelectedRange: this._textStrings.dateInSelectedRange,\n }\n );\n }\n\n return options;\n }\n\n public setInitialDates() {\n if (!this.flatpickrInstance) return;\n\n try {\n if (!this.dateFormat) {\n this.dateFormat = 'Y-m-d';\n }\n\n const hasValidValue =\n Array.isArray(this.value) &&\n this.value.length === 2 &&\n (this.value[0] !== null || this.value[1] !== null);\n\n if (!hasValidValue && this.defaultDate) {\n const validDates = this.processDefaultDates(this.defaultDate);\n if (validDates.length === 2) {\n this.flatpickrInstance.setDate(validDates, true);\n this.flatpickrInstance.redraw();\n this.value = validDates as [Date, Date];\n this._inputEl!.value = this.flatpickrInstance.input.value;\n this.updateFormValue();\n } else if (validDates.length === 1) {\n this.flatpickrInstance.setDate([validDates[0]], true);\n this.flatpickrInstance.redraw();\n this.value = [validDates[0], null];\n this._inputEl!.value = this.flatpickrInstance.input.value;\n this.updateFormValue();\n this._validate(true, false);\n }\n return;\n }\n\n if (Array.isArray(this.value) && this.value.length === 2) {\n const validDates = (this.value as (string | Date)[])\n .map((d) => (d instanceof Date ? d : this.parseDateString(d)))\n .filter((d): d is Date => d !== null);\n\n if (validDates.length === 2) {\n this.flatpickrInstance.setDate(validDates, true);\n this.flatpickrInstance.redraw();\n this._inputEl!.value = this.flatpickrInstance.input.value;\n this.updateFormValue();\n }\n }\n } catch (e) {\n console.error('Error in setInitialDates:', (e as Error).message);\n }\n }\n\n public handleOpen() {\n if (this.readonly) {\n this.flatpickrInstance?.close();\n return;\n }\n\n this._shouldFlatpickrOpen = true;\n this._isInvalid = false;\n this.requestUpdate();\n }\n\n public async handleDateChange(selectedDates: Date[], dateStr: string) {\n this._hasInteracted = true;\n\n if (this._isClearing) return;\n\n if (selectedDates.length === 0) {\n this.value = [null, null];\n if (this._inputEl) {\n this._inputEl.value = '';\n this.updateFormValue();\n }\n emitValue(this, 'on-change', { dates: this.value, source: 'clear' });\n } else if (selectedDates.length === 1) {\n this.value = [selectedDates[0], null];\n\n if (this._inputEl) {\n this._inputEl.value = dateStr;\n this.updateFormValue();\n }\n\n emitValue(this, 'on-change', {\n dates: [selectedDates[0].toISOString()],\n dateString: dateStr,\n source: 'date-selection',\n });\n } else {\n this.value = [selectedDates[0], selectedDates[1]];\n const iso = selectedDates.map((d) => d.toISOString());\n const display = this.flatpickrInstance!.input.value;\n if (this._inputEl) {\n this._inputEl.value = display;\n this.updateFormValue();\n }\n emitValue(this, 'on-change', {\n dates: iso,\n dateString: display,\n source: 'date-selection',\n });\n }\n\n this.updateSelectedDateRangeAria(selectedDates);\n this._validate(true, false);\n }\n\n private updateSelectedDateRangeAria(selectedDates: Date[]) {\n if (!this._inputEl) return;\n const announcer = this.shadowRoot?.getElementById(\n `${this._inputEl.id}-announcer`\n );\n\n if (!announcer) return;\n\n let announcement = '';\n\n if (selectedDates.length === 0) {\n announcement = this._textStrings.noDateSelected;\n } else if (selectedDates.length === 1) {\n announcement = this._textStrings.startDateSelected.replace(\n '{0}',\n selectedDates[0].toLocaleDateString(this.locale)\n );\n } else {\n announcement = this._textStrings.dateRangeSelected\n .replace('{0}', selectedDates[0].toLocaleDateString(this.locale))\n .replace('{1}', selectedDates[1].toLocaleDateString(this.locale));\n }\n\n announcer.textContent = announcement;\n }\n\n private setShouldFlatpickrOpen(value: boolean) {\n this._shouldFlatpickrOpen = value;\n }\n\n private closeFlatpickr() {\n this.flatpickrInstance?.close();\n }\n\n private preventFlatpickrOpen(event: Event) {\n preventFlatpickrOpen(event, this.setShouldFlatpickrOpen.bind(this));\n }\n\n private handleInputClickEvent() {\n try {\n this._shouldFlatpickrOpen = true;\n\n handleInputClick(this.setShouldFlatpickrOpen.bind(this));\n\n if (\n this.flatpickrInstance &&\n !this.flatpickrInstance.isOpen &&\n !this.readonly &&\n !this.dateRangePickerDisabled\n ) {\n setTimeout(() => {\n if (this.flatpickrInstance && !this.flatpickrInstance.isOpen) {\n this.flatpickrInstance.open();\n }\n }, 0);\n }\n } catch (e) {\n console.warn('Error handling input click event:', e);\n }\n }\n\n private handleInputFocusEvent() {\n try {\n this._shouldFlatpickrOpen = true;\n\n handleInputFocus(\n this._shouldFlatpickrOpen,\n this.closeFlatpickr.bind(this),\n this.setShouldFlatpickrOpen.bind(this)\n );\n\n if (\n this.flatpickrInstance &&\n !this.flatpickrInstance.isOpen &&\n !this.readonly &&\n !this.dateRangePickerDisabled\n ) {\n setTimeout(() => {\n if (this.flatpickrInstance && !this.flatpickrInstance.isOpen) {\n this.flatpickrInstance.open();\n }\n }, 0);\n }\n } catch (e) {\n console.warn('Error handling input focus event:', e);\n }\n }\n\n private _validate(interacted: boolean, report: boolean) {\n if (!this._inputEl || !(this._inputEl instanceof HTMLInputElement)) return;\n\n if (this.dateRangePickerDisabled) {\n this._internals.setValidity({}, '', this._inputEl);\n this._isInvalid = false;\n this._internalValidationMsg = '';\n return;\n }\n\n if (interacted) {\n this._hasInteracted = true;\n }\n\n const shouldShowValidationErrors =\n this._hasInteracted || report || !!this.invalidText;\n\n const selectedCount = [this.value[0], this.value[1]].filter(\n (d) => d !== null\n ).length;\n let validity = this._inputEl.validity;\n let validationMessage = this._inputEl.validationMessage;\n\n if (this.flatpickrInstance?.isOpen) {\n validity = { ...validity, valueMissing: false, customError: false };\n validationMessage = '';\n } else if (selectedCount === 1) {\n validity = { ...validity, customError: true };\n validationMessage = this._textStrings.pleaseSelectBothDates;\n } else if (this.required && selectedCount === 0) {\n validity = { ...validity, valueMissing: true };\n validationMessage =\n this.defaultErrorMessage || this._textStrings.pleaseSelectDate;\n } else {\n validity = { ...validity, valueMissing: false, customError: false };\n validationMessage = '';\n }\n\n if (this.invalidText) {\n validity = { ...validity, customError: true };\n validationMessage = this.invalidText;\n }\n\n const isValid = !validity.valueMissing && !validity.customError;\n if (!isValid && !validationMessage) {\n validationMessage = this._textStrings.pleaseSelectValidDate;\n }\n\n this._internals.setValidity(validity, validationMessage, this._inputEl);\n\n this._isInvalid = !isValid && shouldShowValidationErrors;\n this._internalValidationMsg = validationMessage;\n\n if (report) this._internals.reportValidity();\n this.requestUpdate();\n }\n\n private _onChange() {\n this._validate(true, false);\n }\n\n private _handleFormReset() {\n this.value = [null, null];\n this.flatpickrInstance?.clear();\n this._hasInteracted = false;\n this._validate(false, false);\n }\n\n public getValue(): [Date | null, Date | null] {\n if (this.flatpickrInstance) {\n const selected = this.flatpickrInstance.selectedDates;\n\n const start = selected[0] ?? null;\n const end = selected[1] ?? null;\n\n return [start, end];\n }\n\n return this.value;\n }\n\n public setValue(newValue: [Date | null, Date | null]): void {\n const isClear =\n !newValue ||\n (Array.isArray(newValue) && newValue.every((d) => d === null));\n\n this._isClearing = isClear;\n\n try {\n if (this.flatpickrInstance) {\n if (isClear) {\n this.flatpickrInstance.clear();\n } else {\n const datesToSet = newValue.filter(\n (d): d is Date => d instanceof Date\n );\n this.flatpickrInstance.setDate(datesToSet, true);\n }\n\n const selected = this.flatpickrInstance.selectedDates;\n const start = selected[0] ?? null;\n const end = selected[1] ?? null;\n\n this.value = [start, end];\n\n if (this._inputEl) {\n if (isClear) {\n this._inputEl.value = '';\n } else {\n this._inputEl.value = this.flatpickrInstance.input.value;\n }\n this.updateFormValue();\n }\n } else {\n this.value = newValue;\n }\n\n this.requestUpdate('value');\n } finally {\n this._isClearing = false;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-date-range-picker': DateRangePicker;\n }\n}\n"],"names":["_defaultTextStrings","requiredText","clearAll","pleaseSelectDate","pleaseSelectValidDate","pleaseSelectBothDates","dateRange","noDateSelected","startDateSelected","invalidDateRange","dateRangeSelected","lockedStartDate","lockedEndDate","dateLocked","dateNotAvailable","dateInSelectedRange","DateRangePicker","customElement","FormMixin","LitElement","_classThis","_classSuper","_DateRangePicker_label_accessor_storage","set","this","__runInitializers","_label_initializers","_DateRangePicker_locale_accessor_storage","_label_extraInitializers","_locale_initializers","_DateRangePicker_dateFormat_accessor_storage","_locale_extraInitializers","_dateFormat_initializers","_DateRangePicker_defaultDate_accessor_storage","_dateFormat_extraInitializers","_defaultDate_initializers","_DateRangePicker_rangeEditMode_accessor_storage","_defaultDate_extraInitializers","_rangeEditMode_initializers","DateRangeEditableMode","BOTH","_DateRangePicker_defaultErrorMessage_accessor_storage","_rangeEditMode_extraInitializers","_defaultErrorMessage_initializers","value","_DateRangePicker_warnText_accessor_storage","_warnText_initializers","_DateRangePicker_disable_accessor_storage","_warnText_extraInitializers","_disable_initializers","_DateRangePicker__processedDisableDates_accessor_storage","_disable_extraInitializers","__processedDisableDates_initializers","_DateRangePicker_enable_accessor_storage","__processedDisableDates_extraInitializers","_enable_initializers","_DateRangePicker_caption_accessor_storage","_enable_extraInitializers","_caption_initializers","_DateRangePicker_required_accessor_storage","_caption_extraInitializers","_required_initializers","_DateRangePicker_size_accessor_storage","_required_extraInitializers","_size_initializers","_DateRangePicker_dateRangePickerDisabled_accessor_storage","_size_extraInitializers","_dateRangePickerDisabled_initializers","_DateRangePicker_readonly_accessor_storage","_dateRangePickerDisabled_extraInitializers","_readonly_initializers","_DateRangePicker_twentyFourHourFormat_accessor_storage","_readonly_extraInitializers","_twentyFourHourFormat_initializers","_DateRangePicker_minDate_accessor_storage","_twentyFourHourFormat_extraInitializers","_minDate_initializers","_DateRangePicker_allowManualInput_accessor_storage","_minDate_extraInitializers","_allowManualInput_initializers","_DateRangePicker_maxDate_accessor_storage","_allowManualInput_extraInitializers","_maxDate_initializers","_DateRangePicker_errorAriaLabel_accessor_storage","_maxDate_extraInitializers","_errorAriaLabel_initializers","_DateRangePicker_errorTitle_accessor_storage","_errorAriaLabel_extraInitializers","_errorTitle_initializers","_DateRangePicker_warningAriaLabel_accessor_storage","_errorTitle_extraInitializers","_warningAriaLabel_initializers","_DateRangePicker_warningTitle_accessor_storage","_warningAriaLabel_extraInitializers","_warningTitle_initializers","_DateRangePicker_staticPosition_accessor_storage","_warningTitle_extraInitializers","_staticPosition_initializers","_DateRangePicker__enableTime_accessor_storage","_staticPosition_extraInitializers","__enableTime_initializers","_DateRangePicker_flatpickrInstance_accessor_storage","__enableTime_extraInitializers","_flatpickrInstance_initializers","_DateRangePicker__inputEl_accessor_storage","_flatpickrInstance_extraInitializers","__inputEl_initializers","_DateRangePicker__hasInteracted_accessor_storage","__inputEl_extraInitializers","__hasInteracted_initializers","_DateRangePicker_textStrings_accessor_storage","__hasInteracted_extraInitializers","_textStrings_initializers","_DateRangePicker__textStrings_accessor_storage","_textStrings_extraInitializers","__textStrings_initializers","_DateRangePicker__isClearing_accessor_storage","__textStrings_extraInitializers","__isClearing_initializers","_DateRangePicker__shouldFlatpickrOpen_accessor_storage","__isClearing_extraInitializers","__shouldFlatpickrOpen_initializers","_DateRangePicker__hasInitialDefaultDate_accessor_storage","__shouldFlatpickrOpen_extraInitializers","__hasInitialDefaultDate_initializers","_initialized","__hasInitialDefaultDate_extraInitializers","_isDestroyed","_submitListener","debouncedUpdate","debounce","async","flatpickrInstance","initializeFlatpickr","error","process","env","NODE_ENV","Error","message","includes","console","warn","handleResize","debug","label","__classPrivateFieldGet","__classPrivateFieldSet","locale","dateFormat","defaultDate","rangeEditMode","defaultErrorMessage","warnText","disable","_processedDisableDates","enable","caption","required","size","dateRangePickerDisabled","readonly","twentyFourHourFormat","minDate","allowManualInput","maxDate","errorAriaLabel","errorTitle","warningAriaLabel","warningTitle","staticPosition","_enableTime","_inputEl","_hasInteracted","textStrings","_textStrings","_isClearing","_shouldFlatpickrOpen","_hasInitialDefaultDate","func","wait","timeout","args","window","clearTimeout","setTimeout","generateRandomId","prefix","Math","random","toString","slice","connectedCallback","super","addEventListener","_onChange","_handleFormReset","_internals","form","e","_validate","checkValidity","preventDefault","Array","isArray","every","date","length","disconnectedCallback","removeEventListener","_a","destroy","undefined","hasValue","updateFormValue","start","end","Date","formattedValue","toISOString","join","setFormValue","name","setAttribute","removeAttribute","render","errorId","warningId","anchorId","descriptionId","placeholder","getPlaceholder","showClearButton","START","END","NONE","html","classMap","getDateRangePickerClasses","preventFlatpickrOpen","_isInvalid","handleInputClickEvent","handleInputFocusEvent","_handleClear","unsafeSVG","clearIcon","calendarIcon","renderValidationMessage","invalidText","key","errorIcon","_internalValidationMsg","parseDateString","dateStr","trim","isNaN","getTime","parts","split","datePart","timePart","ampm","toUpperCase","dateTokens","map","Number","year","month","day","hours","minutes","seconds","timeComponents","parseInt","mins","token","pattern","test","firstUpdated","changedProperties","injectFlatpickrStyles","ShidokaFlatpickrTheme","updateEnableTime","updateComplete","setupAnchor","processedDates","processDefaultDates","updated","has","updateFlatpickrOptions","close","setInitialDates","processedDate","then","input","redraw","newValue","v","clear","currentDates","selectedDates","_b","_c","dates","requestUpdate","syncAllowInput","readOnly","normalizeToDate","d","validDates","filter","min","max","inRange","_clearInput","options","reinitFlatpickr","clearFlatpickrInput","emitValue","dateString","source","event","stopPropagation","handleClose","isConnected","initializeSingleAnchorFlatpickr","inputEl","getFlatpickrOptions","getComponentFlatpickrOptions","setCalendarAttributes","instance","calendarContainer","container","getModalContainer","document","body","hideEmptyYear","enableTime","mode","closeOnSelect","allowInput","loadLocale","onOpen","handleOpen","bind","onClose","onChange","handleDateChange","appendTo","noCalendar","static","origOnOpen","forEach","fn","firstDay","querySelector","focus","origOnReady","onReady","_sel","_str","target","classList","contains","sel","setDate","dateObj","applyDateRangeEditingRestrictions","iso","display","updateSelectedDateRangeAria","announcer","shadowRoot","getElementById","id","announcement","replace","toLocaleDateString","textContent","setShouldFlatpickrOpen","closeFlatpickr","handleInputClick","isOpen","open","handleInputFocus","interacted","report","HTMLInputElement","setValidity","shouldShowValidationErrors","selectedCount","validity","validationMessage","valueMissing","customError","isValid","reportValidity","getValue","selected","setValue","isClear","datesToSet","_label_decorators","property","type","String","_locale_decorators","_dateFormat_decorators","_defaultDate_decorators","_rangeEditMode_decorators","_defaultErrorMessage_decorators","_warnText_decorators","_disable_decorators","__processedDisableDates_decorators","state","_enable_decorators","_caption_decorators","_required_decorators","Boolean","_size_decorators","_dateRangePickerDisabled_decorators","_readonly_decorators","_twentyFourHourFormat_decorators","_minDate_decorators","_allowManualInput_decorators","_maxDate_decorators","_errorAriaLabel_decorators","_errorTitle_decorators","_warningAriaLabel_decorators","_warningTitle_decorators","_staticPosition_decorators","__enableTime_decorators","_flatpickrInstance_decorators","query","__hasInteracted_decorators","_textStrings_decorators","Object","__textStrings_decorators","__isClearing_decorators","__shouldFlatpickrOpen_decorators","__hasInitialDefaultDate_decorators","__esDecorate","kind","private","access","obj","get","metadata","_metadata","_defaultErrorMessage_extraInitializers","__inputEl_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","DateRangePickerStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daterangepicker.js","sources":["../../../../src/components/reusable/daterangepicker/daterangepicker.ts"],"sourcesContent":["import { html, LitElement, PropertyValues, unsafeCSS } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { FormMixin } from '../../../common/mixins/form-input';\nimport { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { langsArray } from '../../../common/flatpickrLangs';\nimport { DateRangeEditableMode } from '../../../common/helpers/flatpickr';\nimport {\n injectFlatpickrStyles,\n initializeSingleAnchorFlatpickr,\n getFlatpickrOptions,\n getPlaceholder,\n preventFlatpickrOpen,\n handleInputClick,\n handleInputFocus,\n setCalendarAttributes,\n loadLocale,\n emitValue,\n updateEnableTime,\n hideEmptyYear,\n getModalContainer,\n applyDateRangeEditingRestrictions,\n clearFlatpickrInput,\n} from '../../../common/helpers/flatpickr';\nimport '../../reusable/button';\n\nimport { BaseOptions } from 'flatpickr/dist/types/options';\nimport type { Instance } from 'flatpickr/dist/types/instance';\n\nimport DateRangePickerStyles from './daterangepicker.scss?inline';\nimport ShidokaFlatpickrTheme from '../../../common/scss/shidoka-flatpickr-theme.scss?inline';\n\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-filled.svg';\nimport calendarIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/24/calendar.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\ntype SupportedLocale = (typeof langsArray)[number];\n\nconst _defaultTextStrings = {\n requiredText: 'Required',\n clearAll: 'Clear',\n pleaseSelectDate: 'Please select a date',\n pleaseSelectValidDate: 'Please select a valid date',\n pleaseSelectBothDates: 'Please select a start and end date.',\n dateRange: 'Date range',\n noDateSelected: 'No dates selected',\n startDateSelected: 'Start date selected: {0}. Please select end date.',\n invalidDateRange:\n 'Invalid date range: End date cannot be earlier than start date',\n dateRangeSelected: 'Selected date range: {0} to {1}',\n\n lockedStartDate: 'Start date is locked',\n lockedEndDate: 'End date is locked',\n dateLocked: 'Date is locked',\n dateNotAvailable: 'Date is not available',\n dateInSelectedRange: 'Date is in selected range',\n};\n\n/**\n * Date Range Picker: uses Flatpickr library, range picker implementation -- `https://flatpickr.js.org/examples/#range-calendar`\n * @fires on-change - Emitted when the selected date range changes. Event.detail has the shape:\n * { dates: string[] | (Date | null)[] | null, dateString?: string, source?: string }\n * - dates: array of ISO strings for selected dates (length 1 or 2), or an array containing Date/null values,\n * or null/empty when cleared.\n * - dateString: the display string from the input (may be empty when cleared)\n * - source: 'clear' when the value was cleared; otherwise may be 'date-selection' or undefined.\n * @slot tooltip - Slot for tooltip.\n * @attr {string} [name=''] - The name of the input, used for form submission.\n * @attr {string} [invalidText=''] - The custom validation message when the input is invalid.\n */\n@customElement('kyn-date-range-picker')\nexport class DateRangePicker extends FormMixin(LitElement) {\n static override styles = [\n unsafeCSS(DateRangePickerStyles),\n unsafeCSS(ShidokaFlatpickrTheme),\n ];\n\n /** Label text. */\n @property({ type: String })\n accessor label = '';\n\n /** Sets and dynamically imports specific l10n calendar localization. */\n @property({ type: String })\n accessor locale: SupportedLocale | string = 'en';\n\n /** Sets flatpickr value to define how the date will be displayed in the input box (ex: `Y-m-d H:i`). */\n @property({ type: String })\n accessor dateFormat = 'Y-m-d';\n\n /** Sets the initial selected date(s). For range mode, provide an array of date strings matching dateFormat (e.g. [\"2024-01-01\", \"2024-01-07\"]). */\n @property({ type: Array })\n accessor defaultDate: string[] | null = null;\n\n /** Controls which parts of the date range are editable. */\n @property({ type: String })\n accessor rangeEditMode: DateRangeEditableMode = DateRangeEditableMode.BOTH;\n\n /** Sets default error message. */\n @property({ type: String })\n accessor defaultErrorMessage = '';\n\n /**\n * Current date range value for the component.\n *\n * - Uncontrolled: populated from `defaultDate` and user selections.\n * - Controlled: can be set from the host (e.g. Vue `:value`) as a tuple\n * `[startDate, endDate]`, where each entry is a `Date` or `null`.\n *\n * When both `defaultDate` and `value` are provided, `value` takes precedence.\n */\n override value: [Date | null, Date | null] = [null, null];\n\n /** Sets validation warning messaging. */\n @property({ type: String })\n accessor warnText = '';\n\n /** Sets flatpickr options setting to disable specific dates. Accepts array of dates in Y-m-d format, timestamps, or Date objects. */\n @property({ type: Array })\n accessor disable: (string | number | Date)[] = [];\n\n /** Internal storage for processed disable dates */\n @state()\n private accessor _processedDisableDates: (string | number | Date)[] = [];\n\n /** Sets flatpickr options setting to enable specific dates. */\n @property({ type: Array })\n accessor enable: (string | number | Date)[] = [];\n\n /** Sets caption to be displayed under primary date picker elements. */\n @property({ type: String })\n accessor caption = '';\n\n /** Sets date range picker form input value to required. */\n @property({ type: Boolean })\n accessor required = false;\n\n /** Input size. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n accessor size = 'md';\n\n /** Sets entire date range picker form element to enabled/disabled. */\n @property({ type: Boolean })\n accessor dateRangePickerDisabled = false;\n\n /** Sets entire date range picker form element to readonly. */\n @property({ type: Boolean })\n accessor readonly = false;\n\n /** Sets 24-hour formatting true/false.\n * Defaults to 12H for all `en-` locales and 24H for all other locales.\n */\n @property({ type: Boolean })\n accessor twentyFourHourFormat: boolean | null = null;\n\n /** Sets lower boundary of date range picker date selection. */\n @property({ type: String })\n accessor minDate: string | number | Date = '';\n\n /** Allows manual input of date/time string that matches dateFormat when true. */\n @property({ type: Boolean })\n accessor allowManualInput = false;\n\n /** Sets upper boundary of date range picker date selection. */\n @property({ type: String })\n accessor maxDate: string | number | Date = '';\n\n /** Sets aria label attribute for error message. */\n @property({ type: String })\n accessor errorAriaLabel = '';\n\n /** Sets title attribute for error message. */\n @property({ type: String })\n accessor errorTitle = '';\n\n /** Sets aria label attribute for warning message. */\n @property({ type: String })\n accessor warningAriaLabel = '';\n\n /** Sets title attribute for warning message. */\n @property({ type: String })\n accessor warningTitle = '';\n\n /** Sets whether the Flatpickr calendar UI should use static positioning. */\n @property({ type: Boolean })\n accessor staticPosition = false;\n\n /** Sets flatpickr enableTime value based on detected dateFormat.\n * @internal\n */\n @state()\n private accessor _enableTime = false;\n\n /** Flatpickr instantiation.\n * @internal\n */\n @state()\n private accessor flatpickrInstance: Instance | undefined;\n\n /**\n * Queries the input DOM element.\n * @internal\n */\n @query('input')\n private accessor _inputEl: HTMLInputElement | null = null;\n\n /**\n * Sets whether user has interacted with datepicker for error handling.\n * @internal\n */\n @state()\n private accessor _hasInteracted = false;\n\n /** Customizable text strings. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n accessor _textStrings = { ..._defaultTextStrings };\n\n /** Tracks if we're in a clear operation to prevent duplicate events\n * @internal\n */\n @state()\n private accessor _isClearing = false;\n\n /** Control flag to prevent Flatpickr from opening when clicking caption, error, label, or warning elements.\n * @internal\n */\n @state()\n private accessor _shouldFlatpickrOpen = false;\n\n /** Track if we initially had a defaultDate when the component was first connected\n * @internal\n */\n @state()\n private accessor _hasInitialDefaultDate = false;\n\n /** Track initialization state\n * @internal\n */\n private _initialized = false;\n\n /** Track destroyed state\n * @internal\n */\n private _isDestroyed = false;\n\n /** Store submit event listener reference for cleanup\n * @internal\n */\n private _submitListener: ((e: SubmitEvent) => void) | null = null;\n\n private debounce<T extends (...args: unknown[]) => unknown>(\n func: T,\n wait: number\n ): (...args: Parameters<T>) => void {\n let timeout: number | null = null;\n\n return (...args: Parameters<T>) => {\n if (timeout !== null) {\n window.clearTimeout(timeout);\n }\n\n timeout = window.setTimeout(() => {\n void func(...args);\n timeout = null;\n }, wait);\n };\n }\n\n private debouncedUpdate = this.debounce(async () => {\n if (!this.flatpickrInstance || this._isDestroyed) return;\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n if (\n process.env.NODE_ENV === 'development' &&\n error instanceof Error &&\n !error.message.includes('calendarContainer') &&\n !error.message.includes('selectedDates')\n ) {\n console.warn('DateRangePicker update info:', error.message);\n }\n }\n }, 100);\n\n private handleResize = this.debounce(async () => {\n if (this.flatpickrInstance && !this._isDestroyed) {\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n if (\n process.env.NODE_ENV === 'development' &&\n error instanceof Error &&\n !error.message.includes('calendarContainer') &&\n !error.message.includes('selectedDates')\n ) {\n console.debug('DateRangePicker resize info:', error.message);\n }\n }\n }\n }, 250);\n\n private generateRandomId(prefix: string): string {\n return `${prefix}-${Math.random().toString(36).slice(2, 11)}`;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('change', this._onChange);\n this.addEventListener('reset', this._handleFormReset);\n window.addEventListener('resize', this.handleResize);\n\n if (this._internals.form) {\n this._submitListener = (e: SubmitEvent) => {\n this._validate(true, true);\n if (!this._internals.checkValidity()) {\n e.preventDefault();\n }\n };\n this._internals.form.addEventListener('submit', this._submitListener);\n }\n\n if (\n (!this.value ||\n (Array.isArray(this.value) &&\n this.value.every((date) => date === null))) &&\n this.defaultDate\n ) {\n this._hasInitialDefaultDate = true;\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 1) {\n this._hasInteracted = true;\n }\n }\n }\n\n override disconnectedCallback() {\n this._isDestroyed = true;\n super.disconnectedCallback();\n this.removeEventListener('change', this._onChange);\n this.removeEventListener('reset', this._handleFormReset);\n window.removeEventListener('resize', this.handleResize);\n\n if (this._internals.form && this._submitListener) {\n this._internals.form.removeEventListener('submit', this._submitListener);\n this._submitListener = null;\n }\n\n this.flatpickrInstance?.destroy();\n this.flatpickrInstance = undefined;\n }\n\n private hasValue(): boolean {\n if (this._inputEl?.value) return true;\n if (this.value && Array.isArray(this.value) && this.value.length === 2) {\n return this.value[0] !== null || this.value[1] !== null;\n }\n if (this.defaultDate) {\n if (Array.isArray(this.defaultDate)) {\n return (\n this.defaultDate.length > 0 &&\n !this.defaultDate.every((date) => !date || date === '')\n );\n }\n return !!this.defaultDate;\n }\n return false;\n }\n\n private updateFormValue() {\n if (!this._internals || !this._inputEl) return;\n\n const [start, end] = this.value;\n\n if (start instanceof Date && end instanceof Date) {\n const formattedValue = [start.toISOString(), end.toISOString()].join(',');\n this._internals.setFormValue(formattedValue);\n\n if (this.name) {\n this._inputEl.setAttribute('value', formattedValue);\n }\n } else {\n this._internals.setFormValue('');\n if (this.name) {\n this._inputEl.removeAttribute('value');\n }\n }\n }\n\n override render() {\n const errorId = `${this.name}-error-message`;\n const warningId = `${this.name}-warning-message`;\n const anchorId = this.name\n ? this.generateRandomId(this.name)\n : this.generateRandomId('date-range-picker');\n const descriptionId = this.name ?? '';\n const placeholder = getPlaceholder(this.dateFormat, true);\n\n const showClearButton =\n this.hasValue() &&\n !this.readonly &&\n this.rangeEditMode !== DateRangeEditableMode.START &&\n this.rangeEditMode !== DateRangeEditableMode.END &&\n this.rangeEditMode !== DateRangeEditableMode.NONE;\n return html`\n <div class=${classMap(this.getDateRangePickerClasses())}>\n <div\n class=\"label-text\"\n ?readonly=${this.readonly}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n aria-disabled=${this.dateRangePickerDisabled ? 'true' : 'false'}\n id=${`label-${anchorId}`}\n >\n ${this.required\n ? html`<abbr\n class=\"required\"\n title=${this._textStrings.requiredText}\n role=\"img\"\n aria-label=${this._textStrings.requiredText}\n >\n *\n </abbr>`\n : null}\n ${this.label}\n <slot name=\"tooltip\"></slot>\n </div>\n\n <div class=\"input-wrapper\">\n <input\n class=\"${classMap({\n [`size--${this.size}`]: true,\n 'input-custom': true,\n 'is-readonly': this.readonly,\n })}\"\n type=\"text\"\n id=${anchorId}\n name=${this.name}\n placeholder=${placeholder}\n ?disabled=${this.dateRangePickerDisabled}\n ?readonly=${!this.dateRangePickerDisabled && this.readonly}\n ?required=${this.required}\n ?invalid=${this._isInvalid}\n aria-invalid=${this._isInvalid ? 'true' : 'false'}\n aria-labelledby=${`label-${anchorId}`}\n autocomplete=\"off\"\n @click=${this.handleInputClickEvent}\n @focus=${this.handleInputFocusEvent}\n />\n ${showClearButton\n ? html`<kyn-button\n ?disabled=${this.dateRangePickerDisabled}\n class=\"clear-button\"\n kind=\"ghost\"\n size=\"small\"\n description=${this._textStrings.clearAll}\n @click=${this._handleClear}\n >\n <span style=\"display:flex;\" slot=\"icon\">\n ${unsafeSVG(clearIcon)}\n </span>\n </kyn-button>`\n : html`<span\n class=\"input-icon ${this.dateRangePickerDisabled\n ? 'is-disabled'\n : ''}\"\n aria-hidden=\"true\"\n @click=${this.handleInputClickEvent}\n >\n ${unsafeSVG(calendarIcon)}\n </span>`}\n </div>\n\n <div\n id=${`${anchorId}-announcer`}\n class=\"sr-only\"\n aria-live=\"polite\"\n ></div>\n\n ${this.caption\n ? html`<div\n id=${descriptionId}\n class=\"caption\"\n aria-disabled=${this.dateRangePickerDisabled ? 'true' : 'false'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n >\n ${this.caption}\n </div>`\n : ''}\n ${this.renderValidationMessage(errorId, warningId)}\n </div>\n `;\n }\n\n private renderValidationMessage(errorId: string, warningId: string) {\n if (this.dateRangePickerDisabled) return null;\n\n if (this.invalidText || (this._isInvalid && this._hasInteracted)) {\n return html`\n <div\n id=${errorId}\n class=\"error error-text\"\n role=\"alert\"\n title=${this.errorTitle || 'Error'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n tabindex=\"0\"\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.preventFlatpickrOpen(e);\n }\n }}\n >\n <span\n class=\"error-icon\"\n role=\"img\"\n aria-label=${this.errorAriaLabel || 'Error message icon'}\n >\n ${unsafeSVG(errorIcon)}\n </span>\n ${this.invalidText ||\n this._internalValidationMsg ||\n this.defaultErrorMessage}\n </div>\n `;\n }\n\n if (this.warnText) {\n return html`\n <div\n id=${warningId}\n class=\"warn warn-text\"\n role=\"alert\"\n aria-label=${this.warningAriaLabel || 'Warning message'}\n title=${this.warningTitle || 'Warning'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n tabindex=\"0\"\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.preventFlatpickrOpen(e);\n }\n }}\n >\n ${this.warnText}\n </div>\n `;\n }\n\n return null;\n }\n\n private getDateRangePickerClasses() {\n return {\n 'date-range-picker': true,\n 'date-range-picker__enable-time': this._enableTime,\n 'date-range-picker__disabled': this.dateRangePickerDisabled,\n };\n }\n\n private parseDateString(dateStr: string): Date | null {\n if (!dateStr || !dateStr.trim()) return null;\n dateStr = dateStr.trim();\n\n const dateFormat = this.dateFormat || 'Y-m-d';\n\n if (dateStr.includes('T')) {\n const date = new Date(dateStr);\n return isNaN(date.getTime()) ? null : date;\n }\n\n if (dateStr.includes(' ')) {\n const parts = dateStr.split(/\\s+/);\n const datePart = parts[0];\n const timePart = parts[1] || '';\n let ampm = parts[2] ? parts[2].toUpperCase() : undefined;\n const dateTokens = datePart.split('-').map(Number);\n let year: number, month: number, day: number;\n\n switch (dateFormat) {\n case 'Y-m-d':\n [year, month, day] = dateTokens;\n break;\n case 'm-d-Y':\n [month, day, year] = dateTokens;\n break;\n case 'd-m-Y':\n [day, month, year] = dateTokens;\n break;\n default:\n [year, month, day] = dateTokens;\n }\n\n if (!year || !month || !day) return null;\n\n let hours = 0;\n let minutes = 0;\n let seconds = 0;\n\n if (timePart) {\n const timeComponents = timePart.split(':');\n hours = parseInt(timeComponents[0], 10);\n\n if (timeComponents.length > 1) {\n if (timeComponents[1].includes(' ')) {\n const [mins, token] = timeComponents[1].split(' ');\n minutes = parseInt(mins, 10);\n ampm = token ? token.toUpperCase() : ampm;\n } else {\n minutes = parseInt(timeComponents[1], 10);\n }\n }\n\n if (timeComponents.length > 2) {\n seconds = parseInt(timeComponents[2], 10);\n }\n\n if (ampm) {\n if (ampm === 'PM' && hours < 12) {\n hours += 12;\n } else if (ampm === 'AM' && hours === 12) {\n hours = 0;\n }\n }\n }\n\n const date = new Date(year, month - 1, day, hours, minutes, seconds);\n return isNaN(date.getTime()) ? null : date;\n }\n\n const formats: { [key: string]: RegExp } = {\n 'Y-m-d': /^\\d{4}-\\d{2}-\\d{2}$/,\n 'm-d-Y': /^\\d{2}-\\d{2}-\\d{4}$/,\n 'd-m-Y': /^\\d{2}-\\d{2}-\\d{4}$/,\n 'Y-m-d h:i K': /^\\d{4}-\\d{2}-\\d{2}( \\d{1,2}:\\d{2} [AP]M)?$/,\n };\n const pattern = formats[dateFormat];\n if (!pattern || !pattern.test(dateStr)) return null;\n\n const datePart = dateStr.split(' ')[0];\n const dateTokens = datePart.split('-').map(Number);\n let year: number, month: number, day: number;\n\n switch (dateFormat) {\n case 'Y-m-d':\n [year, month, day] = dateTokens;\n break;\n case 'm-d-Y':\n [month, day, year] = dateTokens;\n break;\n case 'd-m-Y':\n [day, month, year] = dateTokens;\n break;\n default:\n [year, month, day] = dateTokens;\n }\n\n if (!year || !month || !day) return null;\n const date = new Date(year, month - 1, day);\n return isNaN(date.getTime()) ? null : date;\n }\n\n override async firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n if (!this._initialized) {\n injectFlatpickrStyles(ShidokaFlatpickrTheme.toString());\n this._initialized = true;\n\n this._enableTime = updateEnableTime(this.dateFormat);\n\n await this.updateComplete;\n this.setupAnchor();\n\n const valueEmpty =\n !this.value ||\n (this.value.length === 2 &&\n this.value[0] === null &&\n this.value[1] === null);\n\n if (valueEmpty && this._hasInitialDefaultDate && this.defaultDate) {\n const processedDates = this.processDefaultDates(this.defaultDate);\n if (processedDates && processedDates.length > 0) {\n if (processedDates.length === 1) {\n this.value = [processedDates[0], null];\n this._hasInteracted = true;\n } else if (processedDates.length >= 2) {\n this.value = [processedDates[0], processedDates[1]];\n }\n\n if (this.value[0] !== null || this.value[1] !== null) {\n this.updateFormValue();\n }\n\n this._validate(true, false);\n }\n }\n\n setTimeout(() => {\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 1) {\n this._hasInteracted = true;\n this._validate(true, false);\n } else if (\n this.value.length === 2 &&\n ((this.value[0] !== null && this.value[1] === null) ||\n (this.value[0] === null && this.value[1] !== null))\n ) {\n this._hasInteracted = true;\n this._validate(true, false);\n }\n }, 0);\n }\n }\n\n override updated(changedProperties: PropertyValues) {\n super.updated(changedProperties);\n\n if (changedProperties.has('textStrings')) {\n this._textStrings = { ..._defaultTextStrings, ...this.textStrings };\n\n if (\n this.flatpickrInstance &&\n this.rangeEditMode !== DateRangeEditableMode.BOTH\n ) {\n this.updateFlatpickrOptions();\n }\n }\n\n if (\n (changedProperties.has('dateRangePickerDisabled') &&\n this.dateRangePickerDisabled) ||\n (changedProperties.has('readonly') && this.readonly)\n ) {\n if (this.dateRangePickerDisabled || this.readonly) {\n this.flatpickrInstance?.close();\n return;\n } else if (this.value[0] && this.value[1]) {\n this.setInitialDates();\n }\n }\n\n if (changedProperties.has('rangeEditMode') && this.flatpickrInstance) {\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 2) {\n if (\n this.rangeEditMode === DateRangeEditableMode.START &&\n !this.defaultDate[0] &&\n this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([this.defaultDate[1]]);\n if (processedDate.length === 1) {\n this.value = [null, processedDate[0]];\n }\n } else if (\n this.rangeEditMode === DateRangeEditableMode.END &&\n this.defaultDate[0] &&\n !this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([this.defaultDate[0]]);\n if (processedDate.length === 1) {\n this.value = [processedDate[0], null];\n }\n }\n }\n\n this.flatpickrInstance.destroy();\n setTimeout(() => {\n this.initializeFlatpickr().then(() => {\n if (this._inputEl && this.flatpickrInstance) {\n this._inputEl.value = this.flatpickrInstance.input.value;\n this.flatpickrInstance.redraw();\n this.updateFormValue();\n }\n });\n }, 0);\n }\n\n if (\n changedProperties.has('value') &&\n !this.dateRangePickerDisabled &&\n this.flatpickrInstance &&\n !this._isClearing\n ) {\n const newValue = this.value;\n if (newValue.every((v) => v === null)) {\n this._isClearing = true;\n this.flatpickrInstance.clear();\n this._isClearing = false;\n\n if (this._inputEl) {\n this._inputEl.value = '';\n this.updateFormValue();\n }\n\n // no dates selected\n this.updateSelectedDateRangeAria([]);\n } else {\n const currentDates = this.flatpickrInstance.selectedDates;\n if (\n currentDates.length !== 2 ||\n !currentDates[0] ||\n !currentDates[1] ||\n currentDates[0].getTime() !== newValue[0]?.getTime() ||\n currentDates[1].getTime() !== newValue[1]?.getTime()\n ) {\n this.setInitialDates();\n }\n\n const announcedDates =\n this.flatpickrInstance.selectedDates.length > 0\n ? this.flatpickrInstance.selectedDates\n : newValue.filter((d): d is Date => d instanceof Date);\n\n if (announcedDates.length > 0) {\n this.updateSelectedDateRangeAria(announcedDates);\n }\n\n if (\n (newValue[0] !== null && newValue[1] === null) ||\n (newValue[0] === null && newValue[1] !== null)\n ) {\n this._hasInteracted = true;\n this._validate(true, false);\n }\n }\n }\n\n if (changedProperties.has('defaultDate')) {\n if (this.defaultDate && this.value.every((v) => v === null)) {\n const dates = this.processDefaultDates(this.defaultDate);\n this.value =\n dates.length === 2\n ? ([dates[0], dates[1]] as [Date, Date])\n : dates.length === 1\n ? ([dates[0], null] as [Date, null])\n : ([null, null] as [null, null]);\n\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 2) {\n if (\n this.rangeEditMode === DateRangeEditableMode.START &&\n !this.defaultDate[0] &&\n this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([\n this.defaultDate[1],\n ]);\n if (processedDate.length === 1) {\n this.value = [null, processedDate[0]];\n }\n } else if (\n this.rangeEditMode === DateRangeEditableMode.END &&\n this.defaultDate[0] &&\n !this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([\n this.defaultDate[0],\n ]);\n if (processedDate.length === 1) {\n this.value = [processedDate[0], null];\n }\n }\n }\n\n this.updateFormValue();\n this.requestUpdate();\n }\n\n if (this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n this.initializeFlatpickr().then(() => {\n if (this._inputEl && this.flatpickrInstance) {\n this._inputEl.value = this.flatpickrInstance.input.value;\n this.flatpickrInstance.redraw();\n this.updateFormValue();\n }\n });\n }\n }\n\n if (changedProperties.has('disable')) {\n if (Array.isArray(this.disable)) {\n this._processedDisableDates = this.disable.map((date) => {\n if (date instanceof Date) return date;\n if (typeof date === 'number') return new Date(date);\n if (typeof date === 'string') {\n const [year, month, day] = date.split('-').map(Number);\n if (!isNaN(year) && !isNaN(month) && !isNaN(day)) {\n return new Date(year, month - 1, day);\n }\n }\n return date;\n });\n } else {\n this._processedDisableDates = [];\n }\n if (this.flatpickrInstance) {\n this.updateFlatpickrOptions();\n }\n }\n\n if (\n (changedProperties.has('dateFormat') ||\n changedProperties.has('minDate') ||\n changedProperties.has('maxDate') ||\n changedProperties.has('locale') ||\n changedProperties.has('twentyFourHourFormat')) &&\n this.flatpickrInstance &&\n !this._isClearing\n ) {\n this._enableTime = updateEnableTime(this.dateFormat);\n this.updateFlatpickrOptions();\n }\n\n if (changedProperties.has('allowManualInput')) {\n this.syncAllowInput();\n }\n }\n\n private syncAllowInput(): void {\n if (!this.flatpickrInstance) return;\n this.flatpickrInstance.set('allowInput', this.allowManualInput);\n if (!this.readonly && this._inputEl) {\n this._inputEl.readOnly = !this.allowManualInput;\n }\n }\n\n private async setupAnchor() {\n if (!this._inputEl) {\n return;\n }\n\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n console.error('Error setting up flatpickr:', error);\n }\n }\n\n private normalizeToDate(value: string | number | Date | ''): Date | null {\n if (!value) return null;\n\n if (value instanceof Date) {\n return isNaN(value.getTime()) ? null : value;\n }\n\n if (typeof value === 'number') {\n const d = new Date(value);\n return isNaN(d.getTime()) ? null : d;\n }\n\n if (typeof value === 'string') {\n return this.parseDateString(value);\n }\n\n return null;\n }\n\n private processDefaultDates(\n defaultDate: string | string[] | Date | Date[] | null\n ): Date[] {\n if (!defaultDate) return [];\n\n const rawValues = Array.isArray(defaultDate) ? defaultDate : [defaultDate];\n\n const parsed = rawValues.map((d) => {\n if (d instanceof Date) return d;\n if (typeof d === 'string') return this.parseDateString(d);\n return null;\n });\n\n const validDates = parsed.filter(\n (date): date is Date => date instanceof Date && !isNaN(date.getTime())\n );\n\n if (validDates.length === 2 && validDates[1] < validDates[0]) {\n console.error(\n 'Invalid date range: End date cannot be earlier than start date'\n );\n this.invalidText = this._textStrings.invalidDateRange;\n return [validDates[0]];\n }\n\n const min = this.normalizeToDate(this.minDate);\n const max = this.normalizeToDate(this.maxDate);\n\n const inRange = validDates.filter((d) => {\n return (!min || d >= min) && (!max || d <= max);\n });\n\n if (inRange.length !== validDates.length) {\n console.error('Invalid date(s) provided in defaultDate', inRange);\n this.invalidText = this._textStrings.pleaseSelectValidDate;\n this.defaultDate = null;\n }\n\n return inRange;\n }\n\n private async _clearInput(\n options: { reinitFlatpickr?: boolean } = { reinitFlatpickr: true }\n ) {\n if (this.rangeEditMode === DateRangeEditableMode.NONE) {\n return;\n }\n\n const newValue: [Date | null, Date | null] = [null, null];\n const preservedDateExists = false;\n\n this.value = newValue;\n this.defaultDate = null;\n\n if (preservedDateExists) {\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n\n const datesToSet = newValue.filter(\n (date): date is Date => date !== null\n );\n if (datesToSet.length > 0) {\n this.flatpickrInstance.setDate(datesToSet, true);\n }\n }\n\n this.updateFormValue();\n } else {\n await clearFlatpickrInput(\n this.flatpickrInstance,\n this._inputEl ?? undefined,\n () => {\n this.updateFormValue();\n }\n );\n }\n\n this.updateSelectedDateRangeAria([]);\n\n emitValue(this, 'on-change', {\n dates: this.value,\n dateString: this._inputEl?.value,\n source: 'clear',\n });\n\n this._validate(true, false);\n await this.updateComplete;\n\n if (options.reinitFlatpickr) {\n await this.initializeFlatpickr();\n this.requestUpdate();\n }\n }\n\n private async _handleClear(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n this._isClearing = true;\n try {\n await this._clearInput();\n } finally {\n this._isClearing = false;\n }\n }\n\n public async handleClose() {\n this._hasInteracted = true;\n this._validate(true, false);\n await this.updateComplete;\n }\n\n public async initializeFlatpickr() {\n if (this._isDestroyed) {\n return;\n }\n\n if (!this._inputEl || !this._inputEl.isConnected) {\n console.warn(\n 'Cannot initialize Flatpickr: input element not available or not connected to DOM'\n );\n return;\n }\n\n if (!this.dateFormat) {\n console.warn('Date format not set, using default Y-m-d');\n this.dateFormat = 'Y-m-d';\n }\n\n try {\n this.flatpickrInstance?.destroy();\n this.flatpickrInstance = await initializeSingleAnchorFlatpickr({\n inputEl: this._inputEl,\n getFlatpickrOptions: () => this.getComponentFlatpickrOptions(),\n setCalendarAttributes: (instance) => {\n try {\n if (!instance?.calendarContainer) {\n throw new Error('Calendar container not available');\n }\n const container = getModalContainer(this);\n setCalendarAttributes(instance, container !== document.body);\n instance.calendarContainer.setAttribute(\n 'aria-label',\n 'Date range calendar'\n );\n } catch (error) {\n console.warn('Error setting calendar attributes:', error);\n }\n },\n setInitialDates: () => this.setInitialDates(),\n });\n\n if (!this.flatpickrInstance) {\n throw new Error('Failed to initialize Flatpickr instance');\n }\n\n hideEmptyYear();\n this._validate(false, false);\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n\n if (error instanceof Error) {\n console.error('Error details:', error.message);\n }\n }\n }\n\n public async updateFlatpickrOptions() {\n if (!this.flatpickrInstance) {\n console.warn('Cannot update options: Flatpickr instance not available');\n return;\n }\n await this.debouncedUpdate();\n }\n\n public async getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>> {\n if (!this.dateFormat) {\n this.dateFormat = 'Y-m-d';\n }\n\n if (!this._inputEl) {\n return {};\n }\n\n const container = getModalContainer(this);\n const options = await getFlatpickrOptions({\n locale: this.locale || 'en',\n dateFormat: this.dateFormat,\n defaultDate: this.defaultDate ?? undefined,\n enableTime: this._enableTime,\n twentyFourHourFormat: this.twentyFourHourFormat ?? undefined,\n inputEl: this._inputEl,\n minDate: this.minDate,\n maxDate: this.maxDate,\n enable: this.enable,\n disable: this._processedDisableDates,\n mode: 'range',\n closeOnSelect: false,\n allowInput: this.allowManualInput,\n loadLocale,\n onOpen: this.handleOpen.bind(this),\n onClose: this.handleClose.bind(this),\n onChange: this.handleDateChange.bind(this),\n appendTo: container,\n noCalendar: false,\n static: this.staticPosition,\n });\n\n const origOnOpen = options.onOpen;\n options.onOpen = (selectedDates, dateStr, instance) => {\n if (typeof origOnOpen === 'function') {\n origOnOpen(selectedDates, dateStr, instance);\n } else if (Array.isArray(origOnOpen)) {\n origOnOpen.forEach((fn) => fn(selectedDates, dateStr, instance));\n }\n setTimeout(() => {\n const firstDay = instance.calendarContainer.querySelector<HTMLElement>(\n '.flatpickr-day:not(.flatpickr-disabled)'\n );\n if (firstDay) firstDay.focus();\n }, 0);\n };\n\n const origOnReady = options.onReady;\n options.onReady = (_sel, _str, instance) => {\n if (typeof origOnReady === 'function') {\n origOnReady(_sel, _str, instance);\n } else if (Array.isArray(origOnReady)) {\n origOnReady.forEach((fn) => fn(_sel, _str, instance));\n }\n const handler = (e: KeyboardEvent) => {\n if (e.key !== 'Enter') return;\n const target = e.target as HTMLElement & { dateObj: Date };\n if (\n !target.classList.contains('flatpickr-day') ||\n target.classList.contains('flatpickr-disabled')\n ) {\n return;\n }\n e.preventDefault();\n const sel = instance.selectedDates;\n if (sel.length === 0) {\n instance.setDate([target.dateObj], true);\n } else if (sel.length === 1) {\n instance.setDate([sel[0], target.dateObj], true);\n instance.close();\n }\n };\n instance.calendarContainer.addEventListener('keydown', handler);\n };\n\n if (this.rangeEditMode !== DateRangeEditableMode.BOTH) {\n return applyDateRangeEditingRestrictions(\n options,\n this.rangeEditMode,\n this.value,\n {\n lockedStartDate: this._textStrings.lockedStartDate,\n lockedEndDate: this._textStrings.lockedEndDate,\n dateLocked: this._textStrings.dateLocked,\n dateNotAvailable: this._textStrings.dateNotAvailable,\n dateInSelectedRange: this._textStrings.dateInSelectedRange,\n }\n );\n }\n\n return options;\n }\n\n public setInitialDates() {\n if (!this.flatpickrInstance) return;\n\n try {\n if (!this.dateFormat) {\n this.dateFormat = 'Y-m-d';\n }\n\n const hasValidValue =\n Array.isArray(this.value) &&\n this.value.length === 2 &&\n (this.value[0] !== null || this.value[1] !== null);\n\n if (!hasValidValue && this.defaultDate) {\n const validDates = this.processDefaultDates(this.defaultDate);\n if (validDates.length === 2) {\n this.flatpickrInstance.setDate(validDates, true);\n this.flatpickrInstance.redraw();\n this.value = validDates as [Date, Date];\n this._inputEl!.value = this.flatpickrInstance.input.value;\n this.updateFormValue();\n } else if (validDates.length === 1) {\n this.flatpickrInstance.setDate([validDates[0]], true);\n this.flatpickrInstance.redraw();\n this.value = [validDates[0], null];\n this._inputEl!.value = this.flatpickrInstance.input.value;\n this.updateFormValue();\n this._validate(true, false);\n }\n return;\n }\n\n if (Array.isArray(this.value) && this.value.length === 2) {\n const validDates = (this.value as (string | Date)[])\n .map((d) => (d instanceof Date ? d : this.parseDateString(d)))\n .filter((d): d is Date => d !== null);\n\n if (validDates.length === 2) {\n this.flatpickrInstance.setDate(validDates, true);\n this.flatpickrInstance.redraw();\n this._inputEl!.value = this.flatpickrInstance.input.value;\n this.updateFormValue();\n }\n }\n } catch (e) {\n console.error('Error in setInitialDates:', (e as Error).message);\n }\n }\n\n public handleOpen() {\n if (this.readonly) {\n this.flatpickrInstance?.close();\n return;\n }\n\n this._shouldFlatpickrOpen = true;\n this._isInvalid = false;\n this.requestUpdate();\n }\n\n public async handleDateChange(selectedDates: Date[], dateStr: string) {\n this._hasInteracted = true;\n\n if (this._isClearing) return;\n\n if (selectedDates.length === 0) {\n this.value = [null, null];\n if (this._inputEl) {\n this._inputEl.value = '';\n this.updateFormValue();\n }\n emitValue(this, 'on-change', { dates: this.value, source: 'clear' });\n } else if (selectedDates.length === 1) {\n this.value = [selectedDates[0], null];\n\n if (this._inputEl) {\n this._inputEl.value = dateStr;\n this.updateFormValue();\n }\n\n emitValue(this, 'on-change', {\n dates: [selectedDates[0].toISOString()],\n dateString: dateStr,\n source: 'date-selection',\n });\n } else {\n this.value = [selectedDates[0], selectedDates[1]];\n const iso = selectedDates.map((d) => d.toISOString());\n const display = this.flatpickrInstance!.input.value;\n if (this._inputEl) {\n this._inputEl.value = display;\n this.updateFormValue();\n }\n emitValue(this, 'on-change', {\n dates: iso,\n dateString: display,\n source: 'date-selection',\n });\n }\n\n this.updateSelectedDateRangeAria(selectedDates);\n this._validate(true, false);\n }\n\n private updateSelectedDateRangeAria(selectedDates: Date[]) {\n if (!this._inputEl) return;\n const announcer = this.shadowRoot?.getElementById(\n `${this._inputEl.id}-announcer`\n );\n\n if (!announcer) return;\n\n let announcement = '';\n\n if (selectedDates.length === 0) {\n announcement = this._textStrings.noDateSelected;\n } else if (selectedDates.length === 1) {\n announcement = this._textStrings.startDateSelected.replace(\n '{0}',\n selectedDates[0].toLocaleDateString(this.locale)\n );\n } else {\n announcement = this._textStrings.dateRangeSelected\n .replace('{0}', selectedDates[0].toLocaleDateString(this.locale))\n .replace('{1}', selectedDates[1].toLocaleDateString(this.locale));\n }\n\n announcer.textContent = announcement;\n }\n\n private setShouldFlatpickrOpen(value: boolean) {\n this._shouldFlatpickrOpen = value;\n }\n\n private closeFlatpickr() {\n this.flatpickrInstance?.close();\n }\n\n private preventFlatpickrOpen(event: Event) {\n preventFlatpickrOpen(event, this.setShouldFlatpickrOpen.bind(this));\n }\n\n private handleInputClickEvent() {\n try {\n this._shouldFlatpickrOpen = true;\n\n handleInputClick(this.setShouldFlatpickrOpen.bind(this));\n\n if (\n this.flatpickrInstance &&\n !this.flatpickrInstance.isOpen &&\n !this.readonly &&\n !this.dateRangePickerDisabled\n ) {\n setTimeout(() => {\n if (this.flatpickrInstance && !this.flatpickrInstance.isOpen) {\n this.flatpickrInstance.open();\n }\n }, 0);\n }\n } catch (e) {\n console.warn('Error handling input click event:', e);\n }\n }\n\n private handleInputFocusEvent() {\n try {\n this._shouldFlatpickrOpen = true;\n\n handleInputFocus(\n this._shouldFlatpickrOpen,\n this.closeFlatpickr.bind(this),\n this.setShouldFlatpickrOpen.bind(this)\n );\n\n if (\n this.flatpickrInstance &&\n !this.flatpickrInstance.isOpen &&\n !this.readonly &&\n !this.dateRangePickerDisabled\n ) {\n setTimeout(() => {\n if (this.flatpickrInstance && !this.flatpickrInstance.isOpen) {\n this.flatpickrInstance.open();\n }\n }, 0);\n }\n } catch (e) {\n console.warn('Error handling input focus event:', e);\n }\n }\n\n private _validate(interacted: boolean, report: boolean) {\n if (!this._inputEl || !(this._inputEl instanceof HTMLInputElement)) return;\n\n if (this.dateRangePickerDisabled) {\n this._internals.setValidity({}, '', this._inputEl);\n this._isInvalid = false;\n this._internalValidationMsg = '';\n return;\n }\n\n if (interacted) {\n this._hasInteracted = true;\n }\n\n const shouldShowValidationErrors =\n this._hasInteracted || report || !!this.invalidText;\n\n const selectedCount = [this.value[0], this.value[1]].filter(\n (d) => d !== null\n ).length;\n let validity = this._inputEl.validity;\n let validationMessage = this._inputEl.validationMessage;\n\n if (this.flatpickrInstance?.isOpen) {\n validity = { ...validity, valueMissing: false, customError: false };\n validationMessage = '';\n } else if (selectedCount === 1) {\n validity = { ...validity, customError: true };\n validationMessage = this._textStrings.pleaseSelectBothDates;\n } else if (this.required && selectedCount === 0) {\n validity = { ...validity, valueMissing: true };\n validationMessage =\n this.defaultErrorMessage || this._textStrings.pleaseSelectDate;\n } else {\n validity = { ...validity, valueMissing: false, customError: false };\n validationMessage = '';\n }\n\n if (this.invalidText) {\n validity = { ...validity, customError: true };\n validationMessage = this.invalidText;\n }\n\n const isValid = !validity.valueMissing && !validity.customError;\n if (!isValid && !validationMessage) {\n validationMessage = this._textStrings.pleaseSelectValidDate;\n }\n\n this._internals.setValidity(validity, validationMessage, this._inputEl);\n\n this._isInvalid = !isValid && shouldShowValidationErrors;\n this._internalValidationMsg = validationMessage;\n\n if (report) this._internals.reportValidity();\n this.requestUpdate();\n }\n\n private _onChange() {\n this._validate(true, false);\n }\n\n private _handleFormReset() {\n this.value = [null, null];\n this.flatpickrInstance?.clear();\n this._hasInteracted = false;\n this._validate(false, false);\n\n this.updateSelectedDateRangeAria([]);\n }\n\n public getValue(): [Date | null, Date | null] {\n if (this.flatpickrInstance) {\n const selected = this.flatpickrInstance.selectedDates;\n\n const start = selected[0] ?? null;\n const end = selected[1] ?? null;\n\n return [start, end];\n }\n\n return this.value;\n }\n\n public setValue(newValue: [Date | null, Date | null]): void {\n const isClear =\n !newValue ||\n (Array.isArray(newValue) && newValue.every((d) => d === null));\n\n this._isClearing = isClear;\n\n try {\n if (this.flatpickrInstance) {\n if (isClear) {\n this.flatpickrInstance.clear();\n } else {\n const datesToSet = newValue.filter(\n (d): d is Date => d instanceof Date\n );\n this.flatpickrInstance.setDate(datesToSet, true);\n }\n\n const selected = this.flatpickrInstance.selectedDates;\n const start = selected[0] ?? null;\n const end = selected[1] ?? null;\n\n this.value = [start, end];\n\n if (this._inputEl) {\n if (isClear) {\n this._inputEl.value = '';\n } else {\n this._inputEl.value = this.flatpickrInstance.input.value;\n }\n this.updateFormValue();\n }\n\n if (isClear) {\n this.updateSelectedDateRangeAria([]);\n } else {\n this.updateSelectedDateRangeAria(selected);\n }\n } else {\n this.value = newValue;\n }\n\n this.requestUpdate('value');\n } finally {\n this._isClearing = false;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-date-range-picker': DateRangePicker;\n }\n}\n"],"names":["_defaultTextStrings","requiredText","clearAll","pleaseSelectDate","pleaseSelectValidDate","pleaseSelectBothDates","dateRange","noDateSelected","startDateSelected","invalidDateRange","dateRangeSelected","lockedStartDate","lockedEndDate","dateLocked","dateNotAvailable","dateInSelectedRange","DateRangePicker","customElement","FormMixin","LitElement","_classThis","_classSuper","_DateRangePicker_label_accessor_storage","set","this","__runInitializers","_label_initializers","_DateRangePicker_locale_accessor_storage","_label_extraInitializers","_locale_initializers","_DateRangePicker_dateFormat_accessor_storage","_locale_extraInitializers","_dateFormat_initializers","_DateRangePicker_defaultDate_accessor_storage","_dateFormat_extraInitializers","_defaultDate_initializers","_DateRangePicker_rangeEditMode_accessor_storage","_defaultDate_extraInitializers","_rangeEditMode_initializers","DateRangeEditableMode","BOTH","_DateRangePicker_defaultErrorMessage_accessor_storage","_rangeEditMode_extraInitializers","_defaultErrorMessage_initializers","value","_DateRangePicker_warnText_accessor_storage","_warnText_initializers","_DateRangePicker_disable_accessor_storage","_warnText_extraInitializers","_disable_initializers","_DateRangePicker__processedDisableDates_accessor_storage","_disable_extraInitializers","__processedDisableDates_initializers","_DateRangePicker_enable_accessor_storage","__processedDisableDates_extraInitializers","_enable_initializers","_DateRangePicker_caption_accessor_storage","_enable_extraInitializers","_caption_initializers","_DateRangePicker_required_accessor_storage","_caption_extraInitializers","_required_initializers","_DateRangePicker_size_accessor_storage","_required_extraInitializers","_size_initializers","_DateRangePicker_dateRangePickerDisabled_accessor_storage","_size_extraInitializers","_dateRangePickerDisabled_initializers","_DateRangePicker_readonly_accessor_storage","_dateRangePickerDisabled_extraInitializers","_readonly_initializers","_DateRangePicker_twentyFourHourFormat_accessor_storage","_readonly_extraInitializers","_twentyFourHourFormat_initializers","_DateRangePicker_minDate_accessor_storage","_twentyFourHourFormat_extraInitializers","_minDate_initializers","_DateRangePicker_allowManualInput_accessor_storage","_minDate_extraInitializers","_allowManualInput_initializers","_DateRangePicker_maxDate_accessor_storage","_allowManualInput_extraInitializers","_maxDate_initializers","_DateRangePicker_errorAriaLabel_accessor_storage","_maxDate_extraInitializers","_errorAriaLabel_initializers","_DateRangePicker_errorTitle_accessor_storage","_errorAriaLabel_extraInitializers","_errorTitle_initializers","_DateRangePicker_warningAriaLabel_accessor_storage","_errorTitle_extraInitializers","_warningAriaLabel_initializers","_DateRangePicker_warningTitle_accessor_storage","_warningAriaLabel_extraInitializers","_warningTitle_initializers","_DateRangePicker_staticPosition_accessor_storage","_warningTitle_extraInitializers","_staticPosition_initializers","_DateRangePicker__enableTime_accessor_storage","_staticPosition_extraInitializers","__enableTime_initializers","_DateRangePicker_flatpickrInstance_accessor_storage","__enableTime_extraInitializers","_flatpickrInstance_initializers","_DateRangePicker__inputEl_accessor_storage","_flatpickrInstance_extraInitializers","__inputEl_initializers","_DateRangePicker__hasInteracted_accessor_storage","__inputEl_extraInitializers","__hasInteracted_initializers","_DateRangePicker_textStrings_accessor_storage","__hasInteracted_extraInitializers","_textStrings_initializers","_DateRangePicker__textStrings_accessor_storage","_textStrings_extraInitializers","__textStrings_initializers","_DateRangePicker__isClearing_accessor_storage","__textStrings_extraInitializers","__isClearing_initializers","_DateRangePicker__shouldFlatpickrOpen_accessor_storage","__isClearing_extraInitializers","__shouldFlatpickrOpen_initializers","_DateRangePicker__hasInitialDefaultDate_accessor_storage","__shouldFlatpickrOpen_extraInitializers","__hasInitialDefaultDate_initializers","_initialized","__hasInitialDefaultDate_extraInitializers","_isDestroyed","_submitListener","debouncedUpdate","debounce","async","flatpickrInstance","initializeFlatpickr","error","process","env","NODE_ENV","Error","message","includes","console","warn","handleResize","debug","label","__classPrivateFieldGet","__classPrivateFieldSet","locale","dateFormat","defaultDate","rangeEditMode","defaultErrorMessage","warnText","disable","_processedDisableDates","enable","caption","required","size","dateRangePickerDisabled","readonly","twentyFourHourFormat","minDate","allowManualInput","maxDate","errorAriaLabel","errorTitle","warningAriaLabel","warningTitle","staticPosition","_enableTime","_inputEl","_hasInteracted","textStrings","_textStrings","_isClearing","_shouldFlatpickrOpen","_hasInitialDefaultDate","func","wait","timeout","args","window","clearTimeout","setTimeout","generateRandomId","prefix","Math","random","toString","slice","connectedCallback","super","addEventListener","_onChange","_handleFormReset","_internals","form","e","_validate","checkValidity","preventDefault","Array","isArray","every","date","length","disconnectedCallback","removeEventListener","_a","destroy","undefined","hasValue","updateFormValue","start","end","Date","formattedValue","toISOString","join","setFormValue","name","setAttribute","removeAttribute","render","errorId","warningId","anchorId","descriptionId","placeholder","getPlaceholder","showClearButton","START","END","NONE","html","classMap","getDateRangePickerClasses","preventFlatpickrOpen","_isInvalid","handleInputClickEvent","handleInputFocusEvent","_handleClear","unsafeSVG","clearIcon","calendarIcon","renderValidationMessage","invalidText","key","errorIcon","_internalValidationMsg","parseDateString","dateStr","trim","isNaN","getTime","parts","split","datePart","timePart","ampm","toUpperCase","dateTokens","map","Number","year","month","day","hours","minutes","seconds","timeComponents","parseInt","mins","token","pattern","test","firstUpdated","changedProperties","injectFlatpickrStyles","ShidokaFlatpickrTheme","updateEnableTime","updateComplete","setupAnchor","processedDates","processDefaultDates","updated","has","updateFlatpickrOptions","close","setInitialDates","processedDate","then","input","redraw","newValue","v","clear","updateSelectedDateRangeAria","currentDates","selectedDates","_b","_c","announcedDates","filter","d","dates","requestUpdate","syncAllowInput","readOnly","normalizeToDate","validDates","min","max","inRange","_clearInput","options","reinitFlatpickr","clearFlatpickrInput","emitValue","dateString","source","event","stopPropagation","handleClose","isConnected","initializeSingleAnchorFlatpickr","inputEl","getFlatpickrOptions","getComponentFlatpickrOptions","setCalendarAttributes","instance","calendarContainer","container","getModalContainer","document","body","hideEmptyYear","enableTime","mode","closeOnSelect","allowInput","loadLocale","onOpen","handleOpen","bind","onClose","onChange","handleDateChange","appendTo","noCalendar","static","origOnOpen","forEach","fn","firstDay","querySelector","focus","origOnReady","onReady","_sel","_str","target","classList","contains","sel","setDate","dateObj","applyDateRangeEditingRestrictions","iso","display","announcer","shadowRoot","getElementById","id","announcement","replace","toLocaleDateString","textContent","setShouldFlatpickrOpen","closeFlatpickr","handleInputClick","isOpen","open","handleInputFocus","interacted","report","HTMLInputElement","setValidity","shouldShowValidationErrors","selectedCount","validity","validationMessage","valueMissing","customError","isValid","reportValidity","getValue","selected","setValue","isClear","datesToSet","_label_decorators","property","type","String","_locale_decorators","_dateFormat_decorators","_defaultDate_decorators","_rangeEditMode_decorators","_defaultErrorMessage_decorators","_warnText_decorators","_disable_decorators","__processedDisableDates_decorators","state","_enable_decorators","_caption_decorators","_required_decorators","Boolean","_size_decorators","_dateRangePickerDisabled_decorators","_readonly_decorators","_twentyFourHourFormat_decorators","_minDate_decorators","_allowManualInput_decorators","_maxDate_decorators","_errorAriaLabel_decorators","_errorTitle_decorators","_warningAriaLabel_decorators","_warningTitle_decorators","_staticPosition_decorators","__enableTime_decorators","_flatpickrInstance_decorators","query","__hasInteracted_decorators","_textStrings_decorators","Object","__textStrings_decorators","__isClearing_decorators","__shouldFlatpickrOpen_decorators","__hasInitialDefaultDate_decorators","__esDecorate","kind","private","access","obj","get","metadata","_metadata","_defaultErrorMessage_extraInitializers","__inputEl_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","DateRangePickerStyles"],"mappings":"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"}
|