@kyndryl-design-system/shidoka-applications 2.9.0 → 2.9.1

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.
@@ -76,6 +76,8 @@ export declare class DatePicker extends DatePicker_base {
76
76
  textStrings: {
77
77
  requiredText: string;
78
78
  clearAll: string;
79
+ pleaseSelectDate: string;
80
+ pleaseSelectValidDate: string;
79
81
  };
80
82
  /** Internal text strings.
81
83
  * @internal
@@ -83,6 +85,8 @@ export declare class DatePicker extends DatePicker_base {
83
85
  _textStrings: {
84
86
  requiredText: string;
85
87
  clearAll: string;
88
+ pleaseSelectDate: string;
89
+ pleaseSelectValidDate: string;
86
90
  };
87
91
  /** Control flag to prevent Flatpickr from opening when clicking caption, error, label, or warning elements.
88
92
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/datePicker/datepicker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datepicker.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/datePicker/datepicker.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import{_ as t}from"../../../vendor/tslib-53a81efe.js";import{o as e,n as i,t as a,i as r,e as l}from"../../../vendor/lit-6e2a7867.js";import{i as n,x as o,s}from"../../../vendor/lit-element-3185f710.js";import{FormMixin as d}from"../../../common/mixins/form-input.js";import{o as p}from"../../../vendor/lit-html-29220869.js";import{getPlaceholder as c,injectFlatpickrStyles as h,updateEnableTime as u,initializeSingleAnchorFlatpickr as m,setCalendarAttributes as v,hideEmptyYear as k,getFlatpickrOptions as g,loadLocale as f,emitValue as b,preventFlatpickrOpen as y,handleInputClick as x,handleInputFocus as w}from"../../../common/helpers/flatpickr.js";import"../button/button.js";import{c as _}from"../../../shidoka-flatpickr-theme-0e8883f1.js";import{j as z,H as $,I as F}from"../../../vendor/@kyndryl-design-system/shidoka-icons-e426f09b.js";import"../../../vendor/flatpickr-bbd13d61.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";var I=n`*,
1
+ import{_ as t}from"../../../vendor/tslib-53a81efe.js";import{o as e,n as i,t as a,i as r,e as l}from"../../../vendor/lit-6e2a7867.js";import{i as n,x as o,s}from"../../../vendor/lit-element-3185f710.js";import{FormMixin as d}from"../../../common/mixins/form-input.js";import{o as p}from"../../../vendor/lit-html-29220869.js";import{getPlaceholder as c,injectFlatpickrStyles as h,updateEnableTime as u,initializeSingleAnchorFlatpickr as m,setCalendarAttributes as v,hideEmptyYear as k,getFlatpickrOptions as g,loadLocale as f,emitValue as b,preventFlatpickrOpen as y,handleInputClick as x,handleInputFocus as _}from"../../../common/helpers/flatpickr.js";import"../button/button.js";import{c as w}from"../../../shidoka-flatpickr-theme-0e8883f1.js";import{j as z,H as $,I as D}from"../../../vendor/@kyndryl-design-system/shidoka-icons-e426f09b.js";import"../../../vendor/flatpickr-bbd13d61.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";var F=n`*,
2
2
  *::before,
3
3
  *::after {
4
4
  box-sizing: border-box;
@@ -461,7 +461,7 @@ input {
461
461
  }
462
462
  .date-picker__disabled .label-text .required {
463
463
  color: var(--kd-color-text-level-disabled);
464
- }`;const D={requiredText:"Required",clearAll:"Clear"};let E=class extends(d(s)){constructor(){super(...arguments),this.label="",this.locale="en",this.dateFormat="Y-m-d",this.defaultDate=null,this.defaultErrorMessage="",this.required=!1,this.size="md",this.value=null,this.warnText="",this.disable=[],this.enable=[],this.mode="single",this.caption="",this.datePickerDisabled=!1,this.twentyFourHourFormat=null,this.minDate="",this.maxDate="",this.errorAriaLabel="",this.errorTitle="",this.warningAriaLabel="",this.warningTitle="",this._enableTime=!1,this._hasInteracted=!1,this.textStrings=D,this._textStrings=D,this._shouldFlatpickrOpen=!1,this._initialized=!1}connectedCallback(){super.connectedCallback(),this.addEventListener("change",this._onChange),this.addEventListener("reset",this._handleFormReset)}render(){var t,i,a,r;const l=`${this.name}-error-message`,n=`${this.name}-warning-message`,s=this.name?`${this.name}-${Math.random().toString(36).slice(2,11)}`:`date-picker-${Math.random().toString(36).slice(2,11)}`,d=null!==(t=this.name)&&void 0!==t?t:"",h=c(this.dateFormat);return o`
464
+ }`;const I={requiredText:"Required",clearAll:"Clear",pleaseSelectDate:"Please select a date",pleaseSelectValidDate:"Please select a valid date"};let S=class extends(d(s)){constructor(){super(...arguments),this.label="",this.locale="en",this.dateFormat="Y-m-d",this.defaultDate=null,this.defaultErrorMessage="",this.required=!1,this.size="md",this.value=null,this.warnText="",this.disable=[],this.enable=[],this.mode="single",this.caption="",this.datePickerDisabled=!1,this.twentyFourHourFormat=null,this.minDate="",this.maxDate="",this.errorAriaLabel="",this.errorTitle="",this.warningAriaLabel="",this.warningTitle="",this._enableTime=!1,this._hasInteracted=!1,this.textStrings=I,this._textStrings=I,this._shouldFlatpickrOpen=!1,this._initialized=!1}connectedCallback(){super.connectedCallback(),this.addEventListener("change",this._onChange),this.addEventListener("reset",this._handleFormReset)}render(){var t,i,a,r;const l=`${this.name}-error-message`,n=`${this.name}-warning-message`,s=this.name?`${this.name}-${Math.random().toString(36).slice(2,11)}`:`date-picker-${Math.random().toString(36).slice(2,11)}`,d=null!==(t=this.name)&&void 0!==t?t:"",h=c(this.dateFormat);return o`
465
465
  <div class=${e(this.getDatepickerClasses())}>
466
466
  <div
467
467
  class="label-text"
@@ -535,7 +535,7 @@ input {
535
535
  class="error-icon"
536
536
  aria-label=${`${this.errorAriaLabel}`||"Error message icon"}
537
537
  role="button"
538
- >${p(F)}</span
538
+ >${p(D)}</span
539
539
  >${this.invalidText||this._internalValidationMsg||this.defaultErrorMessage}
540
540
  </div>`:this.warnText?o`<div
541
541
  id=${e}
@@ -547,5 +547,5 @@ input {
547
547
  @click=${this.preventFlatpickrOpen}
548
548
  >
549
549
  ${this.warnText}
550
- </div>`:null}getDatepickerClasses(){return{"date-picker":!0,"date-picker__enable-time":this._enableTime,"date-picker__multiple-select":"multiple"===this.mode,"date-picker__disabled":this.datePickerDisabled}}async firstUpdated(t){super.firstUpdated(t),this._initialized||(h(_.toString()),this._initialized=!0,await this.updateComplete,this.setupAnchor())}updated(t){super.updated(t),(t.has("dateFormat")||t.has("defaultDate")||t.has("minDate")||t.has("maxDate")||t.has("locale")||t.has("twentyFourHourFormat"))&&(this._enableTime=u(this.dateFormat),this.flatpickrInstance&&this._initialized&&this.updateFlatpickrOptions()),t.has("datePickerDisabled")&&this.datePickerDisabled&&this.flatpickrInstance&&this.flatpickrInstance.close()}async reinitializeFlatpickr(){this._initialized&&this.flatpickrInstance&&(this.flatpickrInstance.destroy(),await this.initializeFlatpickr())}async setupAnchor(){this._inputEl&&await this.initializeFlatpickr()}_handleClear(t){t.preventDefault(),t.stopPropagation(),this.value="multiple"===this.mode?[]:null,this.defaultDate="multiple"===this.mode?[]:null,this.flatpickrInstance&&this.flatpickrInstance.clear(),this._inputEl&&(this._inputEl.value=""),this.reinitializeFlatpickr(),this._validate(!0,!1),this.requestUpdate()}async initializeFlatpickr(){this._inputEl&&(this.flatpickrInstance&&this.flatpickrInstance.destroy(),this.flatpickrInstance=await m({inputEl:this._inputEl,getFlatpickrOptions:()=>this.getComponentFlatpickrOptions(),setCalendarAttributes:t=>{const e=!!this.closest("kyn-modal");v(t,e),t.calendarContainer.setAttribute("aria-label","Date picker")},setInitialDates:this.setInitialDates.bind(this)}),k(),this._validate(!1,!1))}async updateFlatpickrOptions(){if(!this.flatpickrInstance)return;const t=await this.getComponentFlatpickrOptions()||{};Object.keys(t).forEach((e=>{this.flatpickrInstance.config&&e in this.flatpickrInstance.config&&this.flatpickrInstance.set(e,t[e])})),this.flatpickrInstance.redraw(),setTimeout((()=>{this.flatpickrInstance&&this.flatpickrInstance.calendarContainer?(v(this.flatpickrInstance),this.flatpickrInstance.calendarContainer.setAttribute("aria-label","Date picker")):console.warn("Calendar container not available...")}),0)}setInitialDates(){if(this.flatpickrInstance)try{if(this.defaultDate)if(Array.isArray(this.defaultDate)){const t=this.defaultDate.filter((t=>t&&""!==t)).map((t=>{const e=new Date(t);return isNaN(e.getTime())?null:e})).filter((t=>null!==t));t.length>0&&(this.value="multiple"===this.mode?t:t[0],this.flatpickrInstance.setDate(t,!1))}else{const t=new Date(this.defaultDate);isNaN(t.getTime())||(this.value=t,this.flatpickrInstance.setDate([t],!1))}else if(this.value){const t=(Array.isArray(this.value)?this.value:[this.value]).filter((t=>t instanceof Date&&!isNaN(t.getTime())));t.length>0&&this.flatpickrInstance.setDate(t,!1)}}catch(t){console.warn("Error setting initial dates:",t)}}async getComponentFlatpickrOptions(){var t,e;const i=this.closest("kyn-modal"),a=i||document.body;return g({locale:this.locale,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.disable,mode:this.mode,closeOnSelect:!("multiple"===this.mode||this._enableTime),loadLocale:f,onOpen:this.handleOpen.bind(this),onClose:this.handleClose.bind(this),onChange:this.handleDateChange.bind(this),appendTo:a})}handleOpen(){var t;this._shouldFlatpickrOpen||(null===(t=this.flatpickrInstance)||void 0===t||t.close(),this._shouldFlatpickrOpen=!0)}async handleClose(){this._hasInteracted=!0,this._validate(!0,!1),await this.updateComplete}async handleDateChange(t,e){var i;let a;this._hasInteracted=!0,"multiple"===this.mode?this.value=t.length>0?[...t]:null:this.value=t.length>0?t[0]:null,a=Array.isArray(this.value)?this.value.map((t=>t.toISOString())):this.value instanceof Date?this.value.toISOString():null,b(this,"on-change",{dates:a,dateString:(null===(i=this._inputEl)||void 0===i?void 0:i.value)||e}),this._validate(!0,!1),await this.updateComplete}setShouldFlatpickrOpen(t){this._shouldFlatpickrOpen=t}closeFlatpickr(){var t;null===(t=this.flatpickrInstance)||void 0===t||t.close()}preventFlatpickrOpen(t){y(t,this.setShouldFlatpickrOpen.bind(this))}handleInputClickEvent(){x(this.setShouldFlatpickrOpen.bind(this))}handleInputFocusEvent(){w(this._shouldFlatpickrOpen,this.closeFlatpickr.bind(this),this.setShouldFlatpickrOpen.bind(this))}_validate(t,e){if(!(this._inputEl&&this._inputEl instanceof HTMLInputElement))return;t&&(this._hasInteracted=!0);const i=!this._inputEl.value.trim(),a=this.required;let r=this._inputEl.validity,l=this._inputEl.validationMessage;a&&i&&(r={...r,valueMissing:!0},l=this.defaultErrorMessage),this.invalidText&&(r={...r,customError:!0},l=this.invalidText);const n=!r.valueMissing&&!r.customError;this._internals.setValidity(r,l,this._inputEl),this._isInvalid=!n&&(this._hasInteracted||""!==this.invalidText),this._internalValidationMsg=l,e&&this._internals.reportValidity(),this.requestUpdate()}_onChange(){this._validate(!0,!1)}_handleFormReset(){this.value=null,this.flatpickrInstance&&this.flatpickrInstance.clear(),this._hasInteracted=!1,this._validate(!1,!1)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",this._onChange),this.removeEventListener("reset",this._handleFormReset),this.flatpickrInstance&&(this.flatpickrInstance.destroy(),this.flatpickrInstance=void 0)}};E.styles=[I,_],t([i({type:String})],E.prototype,"label",void 0),t([i({type:String})],E.prototype,"locale",void 0),t([i({type:String})],E.prototype,"dateFormat",void 0),t([i({type:Array})],E.prototype,"defaultDate",void 0),t([i({type:String})],E.prototype,"defaultErrorMessage",void 0),t([i({type:Boolean})],E.prototype,"required",void 0),t([i({type:String})],E.prototype,"size",void 0),t([i({type:Array})],E.prototype,"value",void 0),t([i({type:String})],E.prototype,"warnText",void 0),t([i({type:Array})],E.prototype,"disable",void 0),t([i({type:Array})],E.prototype,"enable",void 0),t([i({type:String})],E.prototype,"mode",void 0),t([i({type:String})],E.prototype,"caption",void 0),t([i({type:Boolean})],E.prototype,"datePickerDisabled",void 0),t([i({type:Boolean})],E.prototype,"twentyFourHourFormat",void 0),t([i({type:String})],E.prototype,"minDate",void 0),t([i({type:String})],E.prototype,"maxDate",void 0),t([i({type:String})],E.prototype,"errorAriaLabel",void 0),t([i({type:String})],E.prototype,"errorTitle",void 0),t([i({type:String})],E.prototype,"warningAriaLabel",void 0),t([i({type:String})],E.prototype,"warningTitle",void 0),t([a()],E.prototype,"_enableTime",void 0),t([a()],E.prototype,"_hasInteracted",void 0),t([a()],E.prototype,"flatpickrInstance",void 0),t([r("input")],E.prototype,"_inputEl",void 0),t([i({type:Object})],E.prototype,"textStrings",void 0),t([a()],E.prototype,"_textStrings",void 0),t([a()],E.prototype,"_shouldFlatpickrOpen",void 0),E=t([l("kyn-date-picker")],E);export{E as DatePicker};
550
+ </div>`:null}getDatepickerClasses(){return{"date-picker":!0,"date-picker__enable-time":this._enableTime,"date-picker__multiple-select":"multiple"===this.mode,"date-picker__disabled":this.datePickerDisabled}}async firstUpdated(t){super.firstUpdated(t),this._initialized||(h(w.toString()),this._initialized=!0,await this.updateComplete,this.setupAnchor())}updated(t){super.updated(t),(t.has("dateFormat")||t.has("defaultDate")||t.has("minDate")||t.has("maxDate")||t.has("locale")||t.has("twentyFourHourFormat"))&&(this._enableTime=u(this.dateFormat),this.flatpickrInstance&&this._initialized&&this.updateFlatpickrOptions()),t.has("datePickerDisabled")&&this.datePickerDisabled&&this.flatpickrInstance&&this.flatpickrInstance.close()}async reinitializeFlatpickr(){this._initialized&&this.flatpickrInstance&&(this.flatpickrInstance.destroy(),await this.initializeFlatpickr())}async setupAnchor(){this._inputEl&&await this.initializeFlatpickr()}_handleClear(t){t.preventDefault(),t.stopPropagation(),this.value="multiple"===this.mode?[]:null,this.defaultDate="multiple"===this.mode?[]:null,this.flatpickrInstance&&this.flatpickrInstance.clear(),this._inputEl&&(this._inputEl.value=""),this.reinitializeFlatpickr(),this._validate(!0,!1),this.requestUpdate()}async initializeFlatpickr(){this._inputEl&&(this.flatpickrInstance&&this.flatpickrInstance.destroy(),this.flatpickrInstance=await m({inputEl:this._inputEl,getFlatpickrOptions:()=>this.getComponentFlatpickrOptions(),setCalendarAttributes:t=>{const e=!!this.closest("kyn-modal");v(t,e),t.calendarContainer.setAttribute("aria-label","Date picker")},setInitialDates:this.setInitialDates.bind(this)}),k(),this._validate(!1,!1))}async updateFlatpickrOptions(){if(!this.flatpickrInstance)return;const t=await this.getComponentFlatpickrOptions()||{};Object.keys(t).forEach((e=>{this.flatpickrInstance.config&&e in this.flatpickrInstance.config&&this.flatpickrInstance.set(e,t[e])})),this.flatpickrInstance.redraw(),setTimeout((()=>{this.flatpickrInstance&&this.flatpickrInstance.calendarContainer?(v(this.flatpickrInstance),this.flatpickrInstance.calendarContainer.setAttribute("aria-label","Date picker")):console.warn("Calendar container not available...")}),0)}setInitialDates(){if(this.flatpickrInstance)try{if(this.defaultDate)if(Array.isArray(this.defaultDate)){const t=this.defaultDate.filter((t=>t&&""!==t)).map((t=>{const e=new Date(t);return isNaN(e.getTime())?null:e})).filter((t=>null!==t));t.length>0&&(this.value="multiple"===this.mode?t:t[0],this.flatpickrInstance.setDate(t,!1))}else{const t=new Date(this.defaultDate);isNaN(t.getTime())||(this.value=t,this.flatpickrInstance.setDate([t],!1))}else if(this.value){const t=(Array.isArray(this.value)?this.value:[this.value]).filter((t=>t instanceof Date&&!isNaN(t.getTime())));t.length>0&&this.flatpickrInstance.setDate(t,!1)}}catch(t){console.warn("Error setting initial dates:",t)}}async getComponentFlatpickrOptions(){var t,e;const i=this.closest("kyn-modal"),a=i||document.body;return g({locale:this.locale,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.disable,mode:this.mode,closeOnSelect:!("multiple"===this.mode||this._enableTime),loadLocale:f,onOpen:this.handleOpen.bind(this),onClose:this.handleClose.bind(this),onChange:this.handleDateChange.bind(this),appendTo:a})}handleOpen(){var t;this._shouldFlatpickrOpen||(null===(t=this.flatpickrInstance)||void 0===t||t.close(),this._shouldFlatpickrOpen=!0)}async handleClose(){this._hasInteracted=!0,this._validate(!0,!1),await this.updateComplete}async handleDateChange(t,e){var i;let a;this._hasInteracted=!0,"multiple"===this.mode?this.value=t.length>0?[...t]:null:this.value=t.length>0?t[0]:null,a=Array.isArray(this.value)?this.value.map((t=>t.toISOString())):this.value instanceof Date?this.value.toISOString():null,b(this,"on-change",{dates:a,dateString:(null===(i=this._inputEl)||void 0===i?void 0:i.value)||e}),this._validate(!0,!1),await this.updateComplete}setShouldFlatpickrOpen(t){this._shouldFlatpickrOpen=t}closeFlatpickr(){var t;null===(t=this.flatpickrInstance)||void 0===t||t.close()}preventFlatpickrOpen(t){y(t,this.setShouldFlatpickrOpen.bind(this))}handleInputClickEvent(){x(this.setShouldFlatpickrOpen.bind(this))}handleInputFocusEvent(){_(this._shouldFlatpickrOpen,this.closeFlatpickr.bind(this),this.setShouldFlatpickrOpen.bind(this))}_validate(t,e){if(!(this._inputEl&&this._inputEl instanceof HTMLInputElement))return;t&&(this._hasInteracted=!0);const i=!this._inputEl.value.trim(),a=this.required;let r=this._inputEl.validity,l=this._inputEl.validationMessage;a&&i&&(r={...r,valueMissing:!0},l=this.defaultErrorMessage||this._textStrings.pleaseSelectDate),this.invalidText&&(r={...r,customError:!0},l=this.invalidText);const n=!r.valueMissing&&!r.customError;n||l||(l=this._textStrings.pleaseSelectValidDate),this._internals.setValidity(r,l,this._inputEl),this._isInvalid=!n&&(this._hasInteracted||""!==this.invalidText),this._internalValidationMsg=l,e&&this._internals.reportValidity(),this.requestUpdate()}_onChange(){this._validate(!0,!1)}_handleFormReset(){this.value=null,this.flatpickrInstance&&this.flatpickrInstance.clear(),this._hasInteracted=!1,this._validate(!1,!1)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",this._onChange),this.removeEventListener("reset",this._handleFormReset),this.flatpickrInstance&&(this.flatpickrInstance.destroy(),this.flatpickrInstance=void 0)}};S.styles=[F,w],t([i({type:String})],S.prototype,"label",void 0),t([i({type:String})],S.prototype,"locale",void 0),t([i({type:String})],S.prototype,"dateFormat",void 0),t([i({type:Array})],S.prototype,"defaultDate",void 0),t([i({type:String})],S.prototype,"defaultErrorMessage",void 0),t([i({type:Boolean})],S.prototype,"required",void 0),t([i({type:String})],S.prototype,"size",void 0),t([i({type:Array})],S.prototype,"value",void 0),t([i({type:String})],S.prototype,"warnText",void 0),t([i({type:Array})],S.prototype,"disable",void 0),t([i({type:Array})],S.prototype,"enable",void 0),t([i({type:String})],S.prototype,"mode",void 0),t([i({type:String})],S.prototype,"caption",void 0),t([i({type:Boolean})],S.prototype,"datePickerDisabled",void 0),t([i({type:Boolean})],S.prototype,"twentyFourHourFormat",void 0),t([i({type:String})],S.prototype,"minDate",void 0),t([i({type:String})],S.prototype,"maxDate",void 0),t([i({type:String})],S.prototype,"errorAriaLabel",void 0),t([i({type:String})],S.prototype,"errorTitle",void 0),t([i({type:String})],S.prototype,"warningAriaLabel",void 0),t([i({type:String})],S.prototype,"warningTitle",void 0),t([a()],S.prototype,"_enableTime",void 0),t([a()],S.prototype,"_hasInteracted",void 0),t([a()],S.prototype,"flatpickrInstance",void 0),t([r("input")],S.prototype,"_inputEl",void 0),t([i({type:Object})],S.prototype,"textStrings",void 0),t([a()],S.prototype,"_textStrings",void 0),t([a()],S.prototype,"_shouldFlatpickrOpen",void 0),S=t([l("kyn-date-picker")],S);export{S as DatePicker};
551
551
  //# sourceMappingURL=datepicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker.js","sources":["../../../../src/components/reusable/datePicker/datepicker.ts"],"sourcesContent":["import { html, LitElement, PropertyValues } 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 {\n injectFlatpickrStyles,\n langsArray,\n initializeSingleAnchorFlatpickr,\n getFlatpickrOptions,\n getPlaceholder,\n preventFlatpickrOpen,\n handleInputClick,\n handleInputFocus,\n updateEnableTime,\n setCalendarAttributes,\n loadLocale,\n emitValue,\n hideEmptyYear,\n} from '../../../common/helpers/flatpickr';\nimport '../../reusable/button';\n\nimport flatpickr from 'flatpickr';\nimport { BaseOptions } from 'flatpickr/dist/types/options';\n\nimport DatePickerStyles from './datepicker.scss';\nimport ShidokaFlatpickrTheme from '../../../common/scss/shidoka-flatpickr-theme.scss';\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/20/close-simple.svg';\n\ntype SupportedLocale = (typeof langsArray)[number];\n\nconst _defaultTextStrings = {\n requiredText: 'Required',\n clearAll: 'Clear',\n};\n\n/**\n * Datepicker: uses Flatpickr's datetime picker library -- `https://flatpickr.js.org`\n * @fires on-change - Captures the input event and emits the selected value and original event details.\n * @slot tooltip - Slot for tooltip.\n */\n@customElement('kyn-date-picker')\nexport class DatePicker extends FormMixin(LitElement) {\n static override styles = [DatePickerStyles, ShidokaFlatpickrTheme];\n\n /** Label text. */\n @property({ type: String })\n label = '';\n\n /* Sets desired locale and, if supported, dynamically loads language lib */\n @property({ type: String })\n locale: SupportedLocale = '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 dateFormat = 'Y-m-d';\n\n /** Sets the initial selected date(s). For multiple mode, provide an array of date strings matching dateFormat. */\n @property({ type: Array })\n defaultDate: string | string[] | null = null;\n\n /** Sets default error message. */\n @property({ type: String })\n defaultErrorMessage = '';\n\n /** Sets datepicker form input value to required/required. */\n @property({ type: Boolean })\n required = false;\n\n /** Input size. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n size = 'md';\n\n /** Sets pre-selected date/time value. */\n @property({ type: Array })\n override value: Date | Date[] | null = null;\n\n /** Sets validation warning messaging. */\n @property({ type: String })\n warnText = '';\n\n /** Sets flatpickr options setting to disable specific dates. */\n @property({ type: Array })\n disable: (string | number | Date)[] = [];\n\n /** Sets flatpickr options setting to enable specific dates. */\n @property({ type: Array })\n enable: (string | number | Date)[] = [];\n\n /** Sets flatpickr mode to select single (default), multiple dates. */\n @property({ type: String })\n mode: 'single' | 'multiple' = 'single';\n\n /** Sets caption to be displayed under primary date picker elements. */\n @property({ type: String })\n caption = '';\n\n /** Sets entire datepicker form element to enabled/disabled. */\n @property({ type: Boolean })\n datePickerDisabled = 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 twentyFourHourFormat: boolean | null = null;\n\n /** Sets lower boundary of datepicker date selection. */\n @property({ type: String })\n minDate: string | number | Date = '';\n\n /** Sets upper boundary of datepicker date selection. */\n @property({ type: String })\n maxDate: string | number | Date = '';\n\n /** Sets aria label attribute for error message. */\n @property({ type: String })\n errorAriaLabel = '';\n\n /** Sets title attribute for error message. */\n @property({ type: String })\n errorTitle = '';\n\n /** Sets aria label attribute for warning message. */\n @property({ type: String })\n warningAriaLabel = '';\n\n /** Sets title attribute for warning message. */\n @property({ type: String })\n warningTitle = '';\n\n /** Sets flatpickr enableTime value based on detected dateFormat.\n * @internal\n */\n @state()\n private _enableTime = false;\n\n /**\n * Sets whether user has interacted with datepicker for error handling.\n * @internal\n */\n @state()\n private _hasInteracted = false;\n\n /** Flatpickr instantiation.\n * @internal\n */\n @state()\n private flatpickrInstance?: flatpickr.Instance;\n\n /**\n * Queries the anchor DOM element.\n * @internal\n */\n @query('input')\n private _inputEl?: HTMLInputElement;\n\n /** Customizable text strings. */\n @property({ type: Object })\n textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n _textStrings = _defaultTextStrings;\n\n /** Control flag to prevent Flatpickr from opening when clicking caption, error, label, or warning elements.\n * @internal\n */\n @state()\n private _shouldFlatpickrOpen = false;\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('change', this._onChange);\n this.addEventListener('reset', this._handleFormReset);\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.name}-${Math.random().toString(36).slice(2, 11)}`\n : `date-picker-${Math.random().toString(36).slice(2, 11)}`;\n const descriptionId = this.name ?? '';\n const placeholder = getPlaceholder(this.dateFormat);\n\n return html`\n <div class=${classMap(this.getDatepickerClasses())}>\n <div\n class=\"label-text\"\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n ?disabled=${this.datePickerDisabled}\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 >*</abbr\n >`\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 })}\"\n type=\"text\"\n id=${anchorId}\n name=${this.name}\n placeholder=${placeholder}\n ?disabled=${this.datePickerDisabled}\n ?required=${this.required}\n ?invalid=${this._isInvalid}\n aria-invalid=${this._isInvalid ? 'true' : 'false'}\n aria-labelledby=${`label-${anchorId}`}\n @click=${this.handleInputClickEvent}\n @focus=${this.handleInputFocusEvent}\n />\n ${this._inputEl?.value ||\n (this.value &&\n Array.isArray(this.value) &&\n this.value.length > 0 &&\n !this.value.every((date) => date === null)) ||\n (this.defaultDate &&\n Array.isArray(this.defaultDate) &&\n this.defaultDate.length > 0 &&\n !this.defaultDate.every((date) => date === null || date === ''))\n ? html`\n <kyn-button\n ?disabled=${this.datePickerDisabled}\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)}</span\n >\n </kyn-button>\n `\n : html`<span class=\"input-icon\">${unsafeSVG(calendarIcon)}</span>`}\n </div>\n\n ${this.caption\n ? html`<div\n id=${descriptionId}\n class=\"caption\"\n aria-disabled=${this.datePickerDisabled}\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.invalidText || (this._isInvalid && this._hasInteracted)) {\n return html`<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 >\n <span\n class=\"error-icon\"\n aria-label=${`${this.errorAriaLabel}` || 'Error message icon'}\n role=\"button\"\n >${unsafeSVG(errorIcon)}</span\n >${this.invalidText ||\n this._internalValidationMsg ||\n this.defaultErrorMessage}\n </div>`;\n }\n\n if (this.warnText) {\n return html`<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 >\n ${this.warnText}\n </div>`;\n }\n\n return null;\n }\n\n getDatepickerClasses() {\n return {\n 'date-picker': true,\n 'date-picker__enable-time': this._enableTime,\n 'date-picker__multiple-select': this.mode === 'multiple',\n 'date-picker__disabled': this.datePickerDisabled,\n };\n }\n\n private _initialized = false;\n\n override async firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n if (!this._initialized) {\n injectFlatpickrStyles(ShidokaFlatpickrTheme.toString());\n this._initialized = true;\n await this.updateComplete;\n this.setupAnchor();\n }\n }\n\n override updated(changedProperties: PropertyValues) {\n super.updated(changedProperties);\n if (\n changedProperties.has('dateFormat') ||\n changedProperties.has('defaultDate') ||\n changedProperties.has('minDate') ||\n changedProperties.has('maxDate') ||\n changedProperties.has('locale') ||\n changedProperties.has('twentyFourHourFormat')\n ) {\n this._enableTime = updateEnableTime(this.dateFormat);\n if (this.flatpickrInstance && this._initialized) {\n this.updateFlatpickrOptions();\n }\n }\n\n if (\n changedProperties.has('datePickerDisabled') &&\n this.datePickerDisabled &&\n this.flatpickrInstance\n ) {\n this.flatpickrInstance.close();\n }\n }\n\n private async reinitializeFlatpickr() {\n if (this._initialized && this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n await this.initializeFlatpickr();\n }\n }\n\n private async setupAnchor() {\n if (this._inputEl) {\n await this.initializeFlatpickr();\n }\n }\n\n private _handleClear(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n\n this.value = this.mode === 'multiple' ? [] : null;\n this.defaultDate = this.mode === 'multiple' ? [] : null;\n\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n }\n if (this._inputEl) {\n this._inputEl.value = '';\n }\n\n this.reinitializeFlatpickr();\n\n this._validate(true, false);\n this.requestUpdate();\n }\n\n async initializeFlatpickr(): Promise<void> {\n if (!this._inputEl) return;\n if (this.flatpickrInstance) this.flatpickrInstance.destroy();\n\n this.flatpickrInstance = await initializeSingleAnchorFlatpickr({\n inputEl: this._inputEl,\n getFlatpickrOptions: () => this.getComponentFlatpickrOptions(),\n setCalendarAttributes: (instance) => {\n const modalDetected = !!this.closest('kyn-modal');\n setCalendarAttributes(instance, modalDetected);\n instance.calendarContainer.setAttribute('aria-label', 'Date picker');\n },\n setInitialDates: this.setInitialDates.bind(this),\n });\n\n hideEmptyYear();\n this._validate(false, false);\n }\n\n async updateFlatpickrOptions(): Promise<void> {\n if (!this.flatpickrInstance) return;\n const newOptions = (await this.getComponentFlatpickrOptions()) || {};\n Object.keys(newOptions).forEach((key) => {\n if (\n this.flatpickrInstance!.config &&\n key in this.flatpickrInstance!.config\n ) {\n this.flatpickrInstance!.set(\n key as keyof BaseOptions,\n newOptions[key as keyof BaseOptions]\n );\n }\n });\n this.flatpickrInstance.redraw();\n setTimeout(() => {\n if (this.flatpickrInstance && this.flatpickrInstance.calendarContainer) {\n setCalendarAttributes(this.flatpickrInstance);\n this.flatpickrInstance.calendarContainer.setAttribute(\n 'aria-label',\n 'Date picker'\n );\n } else {\n console.warn('Calendar container not available...');\n }\n }, 0);\n }\n\n setInitialDates(): void {\n if (!this.flatpickrInstance) return;\n\n try {\n if (this.defaultDate) {\n if (Array.isArray(this.defaultDate)) {\n const validDates = this.defaultDate\n .filter((date) => date && date !== '')\n .map((date) => {\n const parsed = new Date(date);\n return isNaN(parsed.getTime()) ? null : parsed;\n })\n .filter((date): date is Date => date !== null);\n\n if (validDates.length > 0) {\n this.value = this.mode === 'multiple' ? validDates : validDates[0];\n this.flatpickrInstance.setDate(validDates, false);\n }\n } else {\n const parsed = new Date(this.defaultDate);\n if (!isNaN(parsed.getTime())) {\n this.value = parsed;\n this.flatpickrInstance.setDate([parsed], false);\n }\n }\n } else if (this.value) {\n const dates = Array.isArray(this.value) ? this.value : [this.value];\n const validDates = dates.filter(\n (date): date is Date => date instanceof Date && !isNaN(date.getTime())\n );\n\n if (validDates.length > 0) {\n this.flatpickrInstance.setDate(validDates, false);\n }\n }\n } catch (error) {\n console.warn('Error setting initial dates:', error);\n }\n }\n\n async getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>> {\n const modal = this.closest('kyn-modal');\n const container = modal ? modal : document.body;\n\n return getFlatpickrOptions({\n locale: this.locale,\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.disable,\n mode: this.mode,\n closeOnSelect: !(this.mode === 'multiple' || this._enableTime),\n loadLocale,\n onOpen: this.handleOpen.bind(this),\n onClose: this.handleClose.bind(this),\n onChange: this.handleDateChange.bind(this),\n appendTo: container,\n });\n }\n\n handleOpen(): void {\n if (!this._shouldFlatpickrOpen) {\n this.flatpickrInstance?.close();\n this._shouldFlatpickrOpen = true;\n }\n }\n\n async handleClose(): Promise<void> {\n this._hasInteracted = true;\n this._validate(true, false);\n await this.updateComplete;\n }\n\n async handleDateChange(\n selectedDates: Date[],\n dateStr: string\n ): Promise<void> {\n this._hasInteracted = true;\n\n if (this.mode === 'multiple') {\n this.value = selectedDates.length > 0 ? [...selectedDates] : null;\n } else {\n this.value = selectedDates.length > 0 ? selectedDates[0] : null;\n }\n\n let formattedDates;\n if (Array.isArray(this.value)) {\n formattedDates = this.value.map((date) => date.toISOString());\n } else if (this.value instanceof Date) {\n formattedDates = this.value.toISOString();\n } else {\n formattedDates = null;\n }\n\n emitValue(this, 'on-change', {\n dates: formattedDates,\n dateString: (this._inputEl as HTMLInputElement)?.value || dateStr,\n });\n\n this._validate(true, false);\n await this.updateComplete;\n }\n\n private setShouldFlatpickrOpen(value: boolean): void {\n this._shouldFlatpickrOpen = value;\n }\n\n private closeFlatpickr(): void {\n this.flatpickrInstance?.close();\n }\n\n private preventFlatpickrOpen(event: Event): void {\n preventFlatpickrOpen(event, this.setShouldFlatpickrOpen.bind(this));\n }\n\n private handleInputClickEvent(): void {\n handleInputClick(this.setShouldFlatpickrOpen.bind(this));\n }\n\n private handleInputFocusEvent(): void {\n handleInputFocus(\n this._shouldFlatpickrOpen,\n this.closeFlatpickr.bind(this),\n this.setShouldFlatpickrOpen.bind(this)\n );\n }\n\n private _validate(interacted: boolean, report: boolean): void {\n if (!this._inputEl || !(this._inputEl instanceof HTMLInputElement)) {\n return;\n }\n\n if (interacted) {\n this._hasInteracted = true;\n }\n\n const isEmpty = !this._inputEl.value.trim();\n const isRequired = this.required;\n\n let validity = this._inputEl.validity;\n let validationMessage = this._inputEl.validationMessage;\n\n if (isRequired && isEmpty) {\n validity = { ...validity, valueMissing: true };\n validationMessage = this.defaultErrorMessage;\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\n this._internals.setValidity(validity, validationMessage, this._inputEl);\n this._isInvalid =\n !isValid && (this._hasInteracted || this.invalidText !== '');\n this._internalValidationMsg = validationMessage;\n\n if (report) {\n this._internals.reportValidity();\n }\n\n this.requestUpdate();\n }\n\n private _onChange() {\n this._validate(true, false);\n }\n\n private _handleFormReset() {\n this.value = null;\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n }\n this._hasInteracted = false;\n this._validate(false, false);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('change', this._onChange);\n this.removeEventListener('reset', this._handleFormReset);\n\n if (this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n this.flatpickrInstance = undefined;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-date-picker': DatePicker;\n }\n}\n"],"names":["_defaultTextStrings","requiredText","clearAll","DatePicker","FormMixin","LitElement","constructor","this","label","locale","dateFormat","defaultDate","defaultErrorMessage","required","size","value","warnText","disable","enable","mode","caption","datePickerDisabled","twentyFourHourFormat","minDate","maxDate","errorAriaLabel","errorTitle","warningAriaLabel","warningTitle","_enableTime","_hasInteracted","textStrings","_textStrings","_shouldFlatpickrOpen","_initialized","connectedCallback","super","addEventListener","_onChange","_handleFormReset","render","errorId","name","warningId","anchorId","Math","random","toString","slice","descriptionId","_a","placeholder","getPlaceholder","html","classMap","getDatepickerClasses","preventFlatpickrOpen","_b","_c","_isInvalid","handleInputClickEvent","handleInputFocusEvent","_d","_inputEl","Array","isArray","length","every","date","_handleClear","unsafeSVG","clearIcon","calendarIcon","renderValidationMessage","invalidText","errorIcon","_internalValidationMsg","firstUpdated","changedProperties","injectFlatpickrStyles","ShidokaFlatpickrTheme","updateComplete","setupAnchor","updated","has","updateEnableTime","flatpickrInstance","updateFlatpickrOptions","close","reinitializeFlatpickr","destroy","initializeFlatpickr","event","preventDefault","stopPropagation","clear","_validate","requestUpdate","initializeSingleAnchorFlatpickr","inputEl","getFlatpickrOptions","getComponentFlatpickrOptions","setCalendarAttributes","instance","modalDetected","closest","calendarContainer","setAttribute","setInitialDates","bind","hideEmptyYear","newOptions","Object","keys","forEach","key","config","set","redraw","setTimeout","console","warn","validDates","filter","map","parsed","Date","isNaN","getTime","setDate","error","modal","container","document","body","undefined","enableTime","closeOnSelect","loadLocale","onOpen","handleOpen","onClose","handleClose","onChange","handleDateChange","appendTo","selectedDates","dateStr","formattedDates","toISOString","emitValue","dates","dateString","setShouldFlatpickrOpen","closeFlatpickr","handleInputClick","handleInputFocus","interacted","report","HTMLInputElement","isEmpty","trim","isRequired","validity","validationMessage","valueMissing","customError","isValid","_internals","setValidity","reportValidity","disconnectedCallback","removeEventListener","styles","DatePickerStyles","__decorate","property","type","String","prototype","Boolean","state","query","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"datepicker.js","sources":["../../../../src/components/reusable/datePicker/datepicker.ts"],"sourcesContent":["import { html, LitElement, PropertyValues } 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 {\n injectFlatpickrStyles,\n langsArray,\n initializeSingleAnchorFlatpickr,\n getFlatpickrOptions,\n getPlaceholder,\n preventFlatpickrOpen,\n handleInputClick,\n handleInputFocus,\n updateEnableTime,\n setCalendarAttributes,\n loadLocale,\n emitValue,\n hideEmptyYear,\n} from '../../../common/helpers/flatpickr';\nimport '../../reusable/button';\n\nimport flatpickr from 'flatpickr';\nimport { BaseOptions } from 'flatpickr/dist/types/options';\n\nimport DatePickerStyles from './datepicker.scss';\nimport ShidokaFlatpickrTheme from '../../../common/scss/shidoka-flatpickr-theme.scss';\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/20/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};\n\n/**\n * Datepicker: uses Flatpickr's datetime picker library -- `https://flatpickr.js.org`\n * @fires on-change - Captures the input event and emits the selected value and original event details.\n * @slot tooltip - Slot for tooltip.\n */\n@customElement('kyn-date-picker')\nexport class DatePicker extends FormMixin(LitElement) {\n static override styles = [DatePickerStyles, ShidokaFlatpickrTheme];\n\n /** Label text. */\n @property({ type: String })\n label = '';\n\n /* Sets desired locale and, if supported, dynamically loads language lib */\n @property({ type: String })\n locale: SupportedLocale = '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 dateFormat = 'Y-m-d';\n\n /** Sets the initial selected date(s). For multiple mode, provide an array of date strings matching dateFormat. */\n @property({ type: Array })\n defaultDate: string | string[] | null = null;\n\n /** Sets default error message. */\n @property({ type: String })\n defaultErrorMessage = '';\n\n /** Sets datepicker form input value to required/required. */\n @property({ type: Boolean })\n required = false;\n\n /** Input size. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n size = 'md';\n\n /** Sets pre-selected date/time value. */\n @property({ type: Array })\n override value: Date | Date[] | null = null;\n\n /** Sets validation warning messaging. */\n @property({ type: String })\n warnText = '';\n\n /** Sets flatpickr options setting to disable specific dates. */\n @property({ type: Array })\n disable: (string | number | Date)[] = [];\n\n /** Sets flatpickr options setting to enable specific dates. */\n @property({ type: Array })\n enable: (string | number | Date)[] = [];\n\n /** Sets flatpickr mode to select single (default), multiple dates. */\n @property({ type: String })\n mode: 'single' | 'multiple' = 'single';\n\n /** Sets caption to be displayed under primary date picker elements. */\n @property({ type: String })\n caption = '';\n\n /** Sets entire datepicker form element to enabled/disabled. */\n @property({ type: Boolean })\n datePickerDisabled = 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 twentyFourHourFormat: boolean | null = null;\n\n /** Sets lower boundary of datepicker date selection. */\n @property({ type: String })\n minDate: string | number | Date = '';\n\n /** Sets upper boundary of datepicker date selection. */\n @property({ type: String })\n maxDate: string | number | Date = '';\n\n /** Sets aria label attribute for error message. */\n @property({ type: String })\n errorAriaLabel = '';\n\n /** Sets title attribute for error message. */\n @property({ type: String })\n errorTitle = '';\n\n /** Sets aria label attribute for warning message. */\n @property({ type: String })\n warningAriaLabel = '';\n\n /** Sets title attribute for warning message. */\n @property({ type: String })\n warningTitle = '';\n\n /** Sets flatpickr enableTime value based on detected dateFormat.\n * @internal\n */\n @state()\n private _enableTime = false;\n\n /**\n * Sets whether user has interacted with datepicker for error handling.\n * @internal\n */\n @state()\n private _hasInteracted = false;\n\n /** Flatpickr instantiation.\n * @internal\n */\n @state()\n private flatpickrInstance?: flatpickr.Instance;\n\n /**\n * Queries the anchor DOM element.\n * @internal\n */\n @query('input')\n private _inputEl?: HTMLInputElement;\n\n /** Customizable text strings. */\n @property({ type: Object })\n textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n _textStrings = _defaultTextStrings;\n\n /** Control flag to prevent Flatpickr from opening when clicking caption, error, label, or warning elements.\n * @internal\n */\n @state()\n private _shouldFlatpickrOpen = false;\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('change', this._onChange);\n this.addEventListener('reset', this._handleFormReset);\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.name}-${Math.random().toString(36).slice(2, 11)}`\n : `date-picker-${Math.random().toString(36).slice(2, 11)}`;\n const descriptionId = this.name ?? '';\n const placeholder = getPlaceholder(this.dateFormat);\n\n return html`\n <div class=${classMap(this.getDatepickerClasses())}>\n <div\n class=\"label-text\"\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n ?disabled=${this.datePickerDisabled}\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 >*</abbr\n >`\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 })}\"\n type=\"text\"\n id=${anchorId}\n name=${this.name}\n placeholder=${placeholder}\n ?disabled=${this.datePickerDisabled}\n ?required=${this.required}\n ?invalid=${this._isInvalid}\n aria-invalid=${this._isInvalid ? 'true' : 'false'}\n aria-labelledby=${`label-${anchorId}`}\n @click=${this.handleInputClickEvent}\n @focus=${this.handleInputFocusEvent}\n />\n ${this._inputEl?.value ||\n (this.value &&\n Array.isArray(this.value) &&\n this.value.length > 0 &&\n !this.value.every((date) => date === null)) ||\n (this.defaultDate &&\n Array.isArray(this.defaultDate) &&\n this.defaultDate.length > 0 &&\n !this.defaultDate.every((date) => date === null || date === ''))\n ? html`\n <kyn-button\n ?disabled=${this.datePickerDisabled}\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)}</span\n >\n </kyn-button>\n `\n : html`<span class=\"input-icon\">${unsafeSVG(calendarIcon)}</span>`}\n </div>\n\n ${this.caption\n ? html`<div\n id=${descriptionId}\n class=\"caption\"\n aria-disabled=${this.datePickerDisabled}\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.invalidText || (this._isInvalid && this._hasInteracted)) {\n return html`<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 >\n <span\n class=\"error-icon\"\n aria-label=${`${this.errorAriaLabel}` || 'Error message icon'}\n role=\"button\"\n >${unsafeSVG(errorIcon)}</span\n >${this.invalidText ||\n this._internalValidationMsg ||\n this.defaultErrorMessage}\n </div>`;\n }\n\n if (this.warnText) {\n return html`<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 >\n ${this.warnText}\n </div>`;\n }\n\n return null;\n }\n\n getDatepickerClasses() {\n return {\n 'date-picker': true,\n 'date-picker__enable-time': this._enableTime,\n 'date-picker__multiple-select': this.mode === 'multiple',\n 'date-picker__disabled': this.datePickerDisabled,\n };\n }\n\n private _initialized = false;\n\n override async firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n if (!this._initialized) {\n injectFlatpickrStyles(ShidokaFlatpickrTheme.toString());\n this._initialized = true;\n await this.updateComplete;\n this.setupAnchor();\n }\n }\n\n override updated(changedProperties: PropertyValues) {\n super.updated(changedProperties);\n if (\n changedProperties.has('dateFormat') ||\n changedProperties.has('defaultDate') ||\n changedProperties.has('minDate') ||\n changedProperties.has('maxDate') ||\n changedProperties.has('locale') ||\n changedProperties.has('twentyFourHourFormat')\n ) {\n this._enableTime = updateEnableTime(this.dateFormat);\n if (this.flatpickrInstance && this._initialized) {\n this.updateFlatpickrOptions();\n }\n }\n\n if (\n changedProperties.has('datePickerDisabled') &&\n this.datePickerDisabled &&\n this.flatpickrInstance\n ) {\n this.flatpickrInstance.close();\n }\n }\n\n private async reinitializeFlatpickr() {\n if (this._initialized && this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n await this.initializeFlatpickr();\n }\n }\n\n private async setupAnchor() {\n if (this._inputEl) {\n await this.initializeFlatpickr();\n }\n }\n\n private _handleClear(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n\n this.value = this.mode === 'multiple' ? [] : null;\n this.defaultDate = this.mode === 'multiple' ? [] : null;\n\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n }\n if (this._inputEl) {\n this._inputEl.value = '';\n }\n\n this.reinitializeFlatpickr();\n\n this._validate(true, false);\n this.requestUpdate();\n }\n\n async initializeFlatpickr(): Promise<void> {\n if (!this._inputEl) return;\n if (this.flatpickrInstance) this.flatpickrInstance.destroy();\n\n this.flatpickrInstance = await initializeSingleAnchorFlatpickr({\n inputEl: this._inputEl,\n getFlatpickrOptions: () => this.getComponentFlatpickrOptions(),\n setCalendarAttributes: (instance) => {\n const modalDetected = !!this.closest('kyn-modal');\n setCalendarAttributes(instance, modalDetected);\n instance.calendarContainer.setAttribute('aria-label', 'Date picker');\n },\n setInitialDates: this.setInitialDates.bind(this),\n });\n\n hideEmptyYear();\n this._validate(false, false);\n }\n\n async updateFlatpickrOptions(): Promise<void> {\n if (!this.flatpickrInstance) return;\n const newOptions = (await this.getComponentFlatpickrOptions()) || {};\n Object.keys(newOptions).forEach((key) => {\n if (\n this.flatpickrInstance!.config &&\n key in this.flatpickrInstance!.config\n ) {\n this.flatpickrInstance!.set(\n key as keyof BaseOptions,\n newOptions[key as keyof BaseOptions]\n );\n }\n });\n this.flatpickrInstance.redraw();\n setTimeout(() => {\n if (this.flatpickrInstance && this.flatpickrInstance.calendarContainer) {\n setCalendarAttributes(this.flatpickrInstance);\n this.flatpickrInstance.calendarContainer.setAttribute(\n 'aria-label',\n 'Date picker'\n );\n } else {\n console.warn('Calendar container not available...');\n }\n }, 0);\n }\n\n setInitialDates(): void {\n if (!this.flatpickrInstance) return;\n\n try {\n if (this.defaultDate) {\n if (Array.isArray(this.defaultDate)) {\n const validDates = this.defaultDate\n .filter((date) => date && date !== '')\n .map((date) => {\n const parsed = new Date(date);\n return isNaN(parsed.getTime()) ? null : parsed;\n })\n .filter((date): date is Date => date !== null);\n\n if (validDates.length > 0) {\n this.value = this.mode === 'multiple' ? validDates : validDates[0];\n this.flatpickrInstance.setDate(validDates, false);\n }\n } else {\n const parsed = new Date(this.defaultDate);\n if (!isNaN(parsed.getTime())) {\n this.value = parsed;\n this.flatpickrInstance.setDate([parsed], false);\n }\n }\n } else if (this.value) {\n const dates = Array.isArray(this.value) ? this.value : [this.value];\n const validDates = dates.filter(\n (date): date is Date => date instanceof Date && !isNaN(date.getTime())\n );\n\n if (validDates.length > 0) {\n this.flatpickrInstance.setDate(validDates, false);\n }\n }\n } catch (error) {\n console.warn('Error setting initial dates:', error);\n }\n }\n\n async getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>> {\n const modal = this.closest('kyn-modal');\n const container = modal ? modal : document.body;\n\n return getFlatpickrOptions({\n locale: this.locale,\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.disable,\n mode: this.mode,\n closeOnSelect: !(this.mode === 'multiple' || this._enableTime),\n loadLocale,\n onOpen: this.handleOpen.bind(this),\n onClose: this.handleClose.bind(this),\n onChange: this.handleDateChange.bind(this),\n appendTo: container,\n });\n }\n\n handleOpen(): void {\n if (!this._shouldFlatpickrOpen) {\n this.flatpickrInstance?.close();\n this._shouldFlatpickrOpen = true;\n }\n }\n\n async handleClose(): Promise<void> {\n this._hasInteracted = true;\n this._validate(true, false);\n await this.updateComplete;\n }\n\n async handleDateChange(\n selectedDates: Date[],\n dateStr: string\n ): Promise<void> {\n this._hasInteracted = true;\n\n if (this.mode === 'multiple') {\n this.value = selectedDates.length > 0 ? [...selectedDates] : null;\n } else {\n this.value = selectedDates.length > 0 ? selectedDates[0] : null;\n }\n\n let formattedDates;\n if (Array.isArray(this.value)) {\n formattedDates = this.value.map((date) => date.toISOString());\n } else if (this.value instanceof Date) {\n formattedDates = this.value.toISOString();\n } else {\n formattedDates = null;\n }\n\n emitValue(this, 'on-change', {\n dates: formattedDates,\n dateString: (this._inputEl as HTMLInputElement)?.value || dateStr,\n });\n\n this._validate(true, false);\n await this.updateComplete;\n }\n\n private setShouldFlatpickrOpen(value: boolean): void {\n this._shouldFlatpickrOpen = value;\n }\n\n private closeFlatpickr(): void {\n this.flatpickrInstance?.close();\n }\n\n private preventFlatpickrOpen(event: Event): void {\n preventFlatpickrOpen(event, this.setShouldFlatpickrOpen.bind(this));\n }\n\n private handleInputClickEvent(): void {\n handleInputClick(this.setShouldFlatpickrOpen.bind(this));\n }\n\n private handleInputFocusEvent(): void {\n handleInputFocus(\n this._shouldFlatpickrOpen,\n this.closeFlatpickr.bind(this),\n this.setShouldFlatpickrOpen.bind(this)\n );\n }\n\n private _validate(interacted: boolean, report: boolean): void {\n if (!this._inputEl || !(this._inputEl instanceof HTMLInputElement)) {\n return;\n }\n\n if (interacted) {\n this._hasInteracted = true;\n }\n\n const isEmpty = !this._inputEl.value.trim();\n const isRequired = this.required;\n\n let validity = this._inputEl.validity;\n let validationMessage = this._inputEl.validationMessage;\n\n if (isRequired && isEmpty) {\n validity = { ...validity, valueMissing: true };\n validationMessage =\n this.defaultErrorMessage || this._textStrings.pleaseSelectDate;\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\n // fix: ensure we have a validation message when validity flags are true\n if (!isValid && !validationMessage) {\n validationMessage = this._textStrings.pleaseSelectValidDate;\n }\n\n this._internals.setValidity(validity, validationMessage, this._inputEl);\n this._isInvalid =\n !isValid && (this._hasInteracted || this.invalidText !== '');\n this._internalValidationMsg = validationMessage;\n\n if (report) {\n this._internals.reportValidity();\n }\n\n this.requestUpdate();\n }\n\n private _onChange() {\n this._validate(true, false);\n }\n\n private _handleFormReset() {\n this.value = null;\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n }\n this._hasInteracted = false;\n this._validate(false, false);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('change', this._onChange);\n this.removeEventListener('reset', this._handleFormReset);\n\n if (this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n this.flatpickrInstance = undefined;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-date-picker': DatePicker;\n }\n}\n"],"names":["_defaultTextStrings","requiredText","clearAll","pleaseSelectDate","pleaseSelectValidDate","DatePicker","FormMixin","LitElement","constructor","this","label","locale","dateFormat","defaultDate","defaultErrorMessage","required","size","value","warnText","disable","enable","mode","caption","datePickerDisabled","twentyFourHourFormat","minDate","maxDate","errorAriaLabel","errorTitle","warningAriaLabel","warningTitle","_enableTime","_hasInteracted","textStrings","_textStrings","_shouldFlatpickrOpen","_initialized","connectedCallback","super","addEventListener","_onChange","_handleFormReset","render","errorId","name","warningId","anchorId","Math","random","toString","slice","descriptionId","_a","placeholder","getPlaceholder","html","classMap","getDatepickerClasses","preventFlatpickrOpen","_b","_c","_isInvalid","handleInputClickEvent","handleInputFocusEvent","_d","_inputEl","Array","isArray","length","every","date","_handleClear","unsafeSVG","clearIcon","calendarIcon","renderValidationMessage","invalidText","errorIcon","_internalValidationMsg","firstUpdated","changedProperties","injectFlatpickrStyles","ShidokaFlatpickrTheme","updateComplete","setupAnchor","updated","has","updateEnableTime","flatpickrInstance","updateFlatpickrOptions","close","reinitializeFlatpickr","destroy","initializeFlatpickr","event","preventDefault","stopPropagation","clear","_validate","requestUpdate","initializeSingleAnchorFlatpickr","inputEl","getFlatpickrOptions","getComponentFlatpickrOptions","setCalendarAttributes","instance","modalDetected","closest","calendarContainer","setAttribute","setInitialDates","bind","hideEmptyYear","newOptions","Object","keys","forEach","key","config","set","redraw","setTimeout","console","warn","validDates","filter","map","parsed","Date","isNaN","getTime","setDate","error","modal","container","document","body","undefined","enableTime","closeOnSelect","loadLocale","onOpen","handleOpen","onClose","handleClose","onChange","handleDateChange","appendTo","selectedDates","dateStr","formattedDates","toISOString","emitValue","dates","dateString","setShouldFlatpickrOpen","closeFlatpickr","handleInputClick","handleInputFocus","interacted","report","HTMLInputElement","isEmpty","trim","isRequired","validity","validationMessage","valueMissing","customError","isValid","_internals","setValidity","reportValidity","disconnectedCallback","removeEventListener","styles","DatePickerStyles","__decorate","property","type","String","prototype","Boolean","state","query","customElement"],"mappings":"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"}
@@ -75,6 +75,8 @@ export declare class DateRangePicker extends DateRangePicker_base {
75
75
  textStrings: {
76
76
  requiredText: string;
77
77
  clearAll: string;
78
+ pleaseSelectDate: string;
79
+ pleaseSelectValidDate: string;
78
80
  };
79
81
  /** Internal text strings.
80
82
  * @internal
@@ -82,6 +84,8 @@ export declare class DateRangePicker extends DateRangePicker_base {
82
84
  _textStrings: {
83
85
  requiredText: string;
84
86
  clearAll: string;
87
+ pleaseSelectDate: string;
88
+ pleaseSelectValidDate: string;
85
89
  };
86
90
  /** Control flag to prevent Flatpickr from opening when clicking caption, error, label, or warning elements.
87
91
  * @internal
@@ -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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"}
@@ -467,7 +467,7 @@ input {
467
467
  }
468
468
  .date-range-picker__disabled ::slotted(*) {
469
469
  pointer-events: none;
470
- }`;const F={requiredText:"Required",clearAll:"Clear"};let E=class extends(d(s)){constructor(){super(...arguments),this.label="",this.locale="en",this.dateFormat="Y-m-d",this.defaultDate=null,this.defaultErrorMessage="",this.value=[null,null],this.warnText="",this.disable=[],this.enable=[],this.caption="",this.required=!1,this.size="md",this.dateRangePickerDisabled=!1,this.twentyFourHourFormat=null,this.minDate="",this.maxDate="",this.errorAriaLabel="",this.errorTitle="",this.warningAriaLabel="",this.warningTitle="",this._enableTime=!1,this._hasInteracted=!1,this.textStrings=F,this._textStrings=F,this._shouldFlatpickrOpen=!1,this._initialized=!1,this.resizeTimeout=null,this.handleResize=()=>{this.resizeTimeout&&window.clearTimeout(this.resizeTimeout),this.resizeTimeout=window.setTimeout((async()=>{this.flatpickrInstance&&await this.initializeFlatpickr(),this.resizeTimeout=null}),250)}}disconnectedCallback(){var t;super.disconnectedCallback(),this.removeEventListener("change",this._onChange),this.removeEventListener("reset",this._handleFormReset),window.removeEventListener("resize",this.handleResize),this.resizeTimeout&&window.clearTimeout(this.resizeTimeout),null===(t=this.flatpickrInstance)||void 0===t||t.destroy()}connectedCallback(){super.connectedCallback(),this.addEventListener("change",this._onChange),this.addEventListener("reset",this._handleFormReset),window.addEventListener("resize",this.handleResize)}render(){var t,i,a;const r=`${this.name}-error-message`,l=`${this.name}-warning-message`,n=this.name?`${this.name}-${Math.random().toString(36).slice(2,11)}`:`date-range-picker-${Math.random().toString(36).slice(2,11)}`,s=null!==(t=this.name)&&void 0!==t?t:"",d=c(this.dateFormat,!0);return o`
470
+ }`;const F={requiredText:"Required",clearAll:"Clear",pleaseSelectDate:"Please select a date",pleaseSelectValidDate:"Please select a valid date"};let E=class extends(d(s)){constructor(){super(...arguments),this.label="",this.locale="en",this.dateFormat="Y-m-d",this.defaultDate=null,this.defaultErrorMessage="",this.value=[null,null],this.warnText="",this.disable=[],this.enable=[],this.caption="",this.required=!1,this.size="md",this.dateRangePickerDisabled=!1,this.twentyFourHourFormat=null,this.minDate="",this.maxDate="",this.errorAriaLabel="",this.errorTitle="",this.warningAriaLabel="",this.warningTitle="",this._enableTime=!1,this._hasInteracted=!1,this.textStrings=F,this._textStrings=F,this._shouldFlatpickrOpen=!1,this._initialized=!1,this.resizeTimeout=null,this.handleResize=()=>{this.resizeTimeout&&window.clearTimeout(this.resizeTimeout),this.resizeTimeout=window.setTimeout((async()=>{this.flatpickrInstance&&await this.initializeFlatpickr(),this.resizeTimeout=null}),250)}}disconnectedCallback(){var t;super.disconnectedCallback(),this.removeEventListener("change",this._onChange),this.removeEventListener("reset",this._handleFormReset),window.removeEventListener("resize",this.handleResize),this.resizeTimeout&&window.clearTimeout(this.resizeTimeout),null===(t=this.flatpickrInstance)||void 0===t||t.destroy()}connectedCallback(){super.connectedCallback(),this.addEventListener("change",this._onChange),this.addEventListener("reset",this._handleFormReset),window.addEventListener("resize",this.handleResize)}render(){var t,i,a;const r=`${this.name}-error-message`,l=`${this.name}-warning-message`,n=this.name?`${this.name}-${Math.random().toString(36).slice(2,11)}`:`date-range-picker-${Math.random().toString(36).slice(2,11)}`,s=null!==(t=this.name)&&void 0!==t?t:"",d=c(this.dateFormat,!0);return o`
471
471
  <div class=${e(this.getDateRangePickerClasses())}>
472
472
  <div
473
473
  class="label-text"
@@ -553,5 +553,5 @@ input {
553
553
  @click=${this.preventFlatpickrOpen}
554
554
  >
555
555
  ${this.warnText}
556
- </div>`:null}_handleClear(t){t.preventDefault(),t.stopPropagation(),this.flatpickrInstance&&this.flatpickrInstance.clear(),this._inputEl&&(this._inputEl.value=""),this.value=[null,null],this.defaultDate=[],this._validate(!0,!1),this.requestUpdate()}getDateRangePickerClasses(){return{"date-range-picker":!0,"date-range-picker__enable-time":this._enableTime,"date-range-picker__disabled":this.dateRangePickerDisabled}}async firstUpdated(t){super.firstUpdated(t),this._initialized||(h(_.toString()),this._initialized=!0,await this.updateComplete,this.setupAnchor())}updated(t){super.updated(t),(t.has("dateFormat")||t.has("minDate")||t.has("defaultDate")||t.has("maxDate")||t.has("locale")||t.has("twentyFourHourFormat"))&&(this._enableTime=u(this.dateFormat),this.flatpickrInstance&&this._initialized&&this.updateFlatpickrOptions()),t.has("dateRangePickerDisabled")&&this.dateRangePickerDisabled&&this.flatpickrInstance&&this.flatpickrInstance.close()}async setupAnchor(){this._inputEl&&await this.initializeFlatpickr()}async initializeFlatpickr(){this._inputEl&&(this.flatpickrInstance&&this.flatpickrInstance.destroy(),this.flatpickrInstance=await m({inputEl:this._inputEl,getFlatpickrOptions:()=>this.getComponentFlatpickrOptions(),setCalendarAttributes:t=>{if(t&&t.calendarContainer){const e=!!this.closest("kyn-modal");v(t,e),t.calendarContainer.setAttribute("aria-label","Date range calendar")}else console.warn("Calendar container not available...")},setInitialDates:this.setInitialDates.bind(this)}),k(),this._validate(!1,!1))}async getComponentFlatpickrOptions(){var t,e;const i=this.closest("kyn-modal"),a=i||document.body;return g({locale:this.locale,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,mode:"range",allowInput:!1,inputEl:this._inputEl,minDate:this.minDate,maxDate:this.maxDate,enable:this.enable,disable:this.disable,loadLocale:f,onChange:this.handleDateChange.bind(this),onClose:this.handleClose.bind(this),onOpen:this.handleOpen.bind(this),appendTo:a})}async updateFlatpickrOptions(){if(!this.flatpickrInstance)return;const t=this.flatpickrInstance.selectedDates,e=await this.getComponentFlatpickrOptions();Object.keys(e).forEach((t=>{this.flatpickrInstance.set(t,e[t])})),this.flatpickrInstance.redraw(),k(),t&&2===t.length&&this.flatpickrInstance.setDate(t,!1),setTimeout((()=>{if(this.flatpickrInstance&&this.flatpickrInstance.calendarContainer){const t=!!this.closest("kyn-modal");v(this.flatpickrInstance,t),this.flatpickrInstance.calendarContainer.setAttribute("aria-label","Date range calendar")}else console.warn("Calendar container not available...")}),0)}setInitialDates(){if(this.flatpickrInstance)try{if(Array.isArray(this.defaultDate)){const t=this.defaultDate.filter((t=>t&&""!==t)).map((t=>{const e=new Date(t);return isNaN(e.getTime())?null:e})).filter((t=>null!==t));2===t.length&&(this.value=t,this.flatpickrInstance.setDate(t,!1))}else if(Array.isArray(this.value)&&2===this.value.length){const t=this.value.map((t=>t instanceof Date&&!isNaN(t.getTime())?t:null)).filter((t=>null!==t));2===t.length&&this.flatpickrInstance.setDate(t,!1)}}catch(t){console.warn("Error setting initial dates:",t)}}handleOpen(){var t;this._shouldFlatpickrOpen||(null===(t=this.flatpickrInstance)||void 0===t||t.close(),this._shouldFlatpickrOpen=!0)}async handleDateChange(t){var e;if(this._hasInteracted=!0,0===t.length?this.value=[null,null]:1===t.length?this.value=[t[0],null]:this.value=[t[0],t[1]],2===t.length){const i=t.map((t=>t.toISOString())),a=(null===(e=this._inputEl)||void 0===e?void 0:e.value)||i.join(" to ");b(this,"on-change",{dates:i,dateString:a})}this.updateSelectedDateRangeAria(t),this._validate(!0,!1),await this.updateComplete}async handleClose(){this._hasInteracted=!0,this.flatpickrInstance&&this.flatpickrInstance.selectedDates&&1===this.flatpickrInstance.selectedDates.length&&(this.flatpickrInstance.clear(),this._inputEl&&(this._inputEl.value=""),this.value=[null,null]),this._validate(!0,!1),await this.updateComplete}updateSelectedDateRangeAria(t){var e,i;if(2===t.length){const[i,a]=t;null===(e=this._inputEl)||void 0===e||e.setAttribute("aria-label",`Selected date range: ${i.toLocaleDateString()} to ${a.toLocaleDateString()}`)}else null===(i=this._inputEl)||void 0===i||i.setAttribute("aria-label","Date range")}setShouldFlatpickrOpen(t){this._shouldFlatpickrOpen=t}closeFlatpickr(){var t;null===(t=this.flatpickrInstance)||void 0===t||t.close()}preventFlatpickrOpen(t){y(t,this.setShouldFlatpickrOpen.bind(this))}handleInputClickEvent(){x(this.setShouldFlatpickrOpen.bind(this))}handleInputFocusEvent(){w(this._shouldFlatpickrOpen,this.closeFlatpickr.bind(this),this.setShouldFlatpickrOpen.bind(this))}_validate(t,e){if(!(this._inputEl&&this._inputEl instanceof HTMLInputElement))return;t&&(this._hasInteracted=!0);const i=!this._inputEl.value.trim()||!this.value[0]||!this.value[1],a=this.required;let r=this._inputEl.validity,l=this._inputEl.validationMessage;a&&i&&(r={...r,valueMissing:!0},l=this.defaultErrorMessage),this.invalidText&&(r={...r,customError:!0},l=this.invalidText);const n=!r.valueMissing&&!r.customError;this._internals.setValidity(r,l,this._inputEl),this._isInvalid=!n&&(this._hasInteracted||""!==this.invalidText),this._internalValidationMsg=l,e&&this._internals.reportValidity(),this.requestUpdate()}_onChange(){this._validate(!0,!1)}_handleFormReset(){this.value=[null,null],this.flatpickrInstance&&this.flatpickrInstance.clear(),this._hasInteracted=!1,this._validate(!1,!1)}};E.styles=[I,_],t([i({type:String})],E.prototype,"label",void 0),t([i({type:String})],E.prototype,"locale",void 0),t([i({type:String})],E.prototype,"dateFormat",void 0),t([i({type:Array})],E.prototype,"defaultDate",void 0),t([i({type:String})],E.prototype,"defaultErrorMessage",void 0),t([i({type:Array})],E.prototype,"value",void 0),t([i({type:String})],E.prototype,"warnText",void 0),t([i({type:Array})],E.prototype,"disable",void 0),t([i({type:Array})],E.prototype,"enable",void 0),t([i({type:String})],E.prototype,"caption",void 0),t([i({type:Boolean})],E.prototype,"required",void 0),t([i({type:String})],E.prototype,"size",void 0),t([i({type:Boolean})],E.prototype,"dateRangePickerDisabled",void 0),t([i({type:Boolean})],E.prototype,"twentyFourHourFormat",void 0),t([i({type:String})],E.prototype,"minDate",void 0),t([i({type:String})],E.prototype,"maxDate",void 0),t([i({type:String})],E.prototype,"errorAriaLabel",void 0),t([i({type:String})],E.prototype,"errorTitle",void 0),t([i({type:String})],E.prototype,"warningAriaLabel",void 0),t([i({type:String})],E.prototype,"warningTitle",void 0),t([a()],E.prototype,"_enableTime",void 0),t([a()],E.prototype,"flatpickrInstance",void 0),t([r("input")],E.prototype,"_inputEl",void 0),t([a()],E.prototype,"_hasInteracted",void 0),t([i({type:Object})],E.prototype,"textStrings",void 0),t([a()],E.prototype,"_textStrings",void 0),t([a()],E.prototype,"_shouldFlatpickrOpen",void 0),E=t([l("kyn-date-range-picker")],E);export{E as DateRangePicker};
556
+ </div>`:null}_handleClear(t){t.preventDefault(),t.stopPropagation(),this.flatpickrInstance&&this.flatpickrInstance.clear(),this._inputEl&&(this._inputEl.value=""),this.value=[null,null],this.defaultDate=[],this._validate(!0,!1),this.requestUpdate()}getDateRangePickerClasses(){return{"date-range-picker":!0,"date-range-picker__enable-time":this._enableTime,"date-range-picker__disabled":this.dateRangePickerDisabled}}async firstUpdated(t){super.firstUpdated(t),this._initialized||(h(_.toString()),this._initialized=!0,await this.updateComplete,this.setupAnchor())}updated(t){super.updated(t),(t.has("dateFormat")||t.has("minDate")||t.has("defaultDate")||t.has("maxDate")||t.has("locale")||t.has("twentyFourHourFormat"))&&(this._enableTime=u(this.dateFormat),this.flatpickrInstance&&this._initialized&&this.updateFlatpickrOptions()),t.has("dateRangePickerDisabled")&&this.dateRangePickerDisabled&&this.flatpickrInstance&&this.flatpickrInstance.close()}async setupAnchor(){this._inputEl&&await this.initializeFlatpickr()}async initializeFlatpickr(){this._inputEl&&(this.flatpickrInstance&&this.flatpickrInstance.destroy(),this.flatpickrInstance=await m({inputEl:this._inputEl,getFlatpickrOptions:()=>this.getComponentFlatpickrOptions(),setCalendarAttributes:t=>{if(t&&t.calendarContainer){const e=!!this.closest("kyn-modal");v(t,e),t.calendarContainer.setAttribute("aria-label","Date range calendar")}else console.warn("Calendar container not available...")},setInitialDates:this.setInitialDates.bind(this)}),k(),this._validate(!1,!1))}async getComponentFlatpickrOptions(){var t,e;const i=this.closest("kyn-modal"),a=i||document.body;return g({locale:this.locale,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,mode:"range",allowInput:!1,inputEl:this._inputEl,minDate:this.minDate,maxDate:this.maxDate,enable:this.enable,disable:this.disable,loadLocale:f,onChange:this.handleDateChange.bind(this),onClose:this.handleClose.bind(this),onOpen:this.handleOpen.bind(this),appendTo:a})}async updateFlatpickrOptions(){if(!this.flatpickrInstance)return;const t=this.flatpickrInstance.selectedDates,e=await this.getComponentFlatpickrOptions();Object.keys(e).forEach((t=>{this.flatpickrInstance.set(t,e[t])})),this.flatpickrInstance.redraw(),k(),t&&2===t.length&&this.flatpickrInstance.setDate(t,!1),setTimeout((()=>{if(this.flatpickrInstance&&this.flatpickrInstance.calendarContainer){const t=!!this.closest("kyn-modal");v(this.flatpickrInstance,t),this.flatpickrInstance.calendarContainer.setAttribute("aria-label","Date range calendar")}else console.warn("Calendar container not available...")}),0)}setInitialDates(){if(this.flatpickrInstance)try{if(Array.isArray(this.defaultDate)){const t=this.defaultDate.filter((t=>t&&""!==t)).map((t=>{const e=new Date(t);return isNaN(e.getTime())?null:e})).filter((t=>null!==t));2===t.length&&(this.value=t,this.flatpickrInstance.setDate(t,!1))}else if(Array.isArray(this.value)&&2===this.value.length){const t=this.value.map((t=>t instanceof Date&&!isNaN(t.getTime())?t:null)).filter((t=>null!==t));2===t.length&&this.flatpickrInstance.setDate(t,!1)}}catch(t){console.warn("Error setting initial dates:",t)}}handleOpen(){var t;this._shouldFlatpickrOpen||(null===(t=this.flatpickrInstance)||void 0===t||t.close(),this._shouldFlatpickrOpen=!0)}async handleDateChange(t){var e;if(this._hasInteracted=!0,0===t.length?this.value=[null,null]:1===t.length?this.value=[t[0],null]:this.value=[t[0],t[1]],2===t.length){const i=t.map((t=>t.toISOString())),a=(null===(e=this._inputEl)||void 0===e?void 0:e.value)||i.join(" to ");b(this,"on-change",{dates:i,dateString:a})}this.updateSelectedDateRangeAria(t),this._validate(!0,!1),await this.updateComplete}async handleClose(){this._hasInteracted=!0,this.flatpickrInstance&&this.flatpickrInstance.selectedDates&&1===this.flatpickrInstance.selectedDates.length&&(this.flatpickrInstance.clear(),this._inputEl&&(this._inputEl.value=""),this.value=[null,null]),this._validate(!0,!1),await this.updateComplete}updateSelectedDateRangeAria(t){var e,i;if(2===t.length){const[i,a]=t;null===(e=this._inputEl)||void 0===e||e.setAttribute("aria-label",`Selected date range: ${i.toLocaleDateString()} to ${a.toLocaleDateString()}`)}else null===(i=this._inputEl)||void 0===i||i.setAttribute("aria-label","Date range")}setShouldFlatpickrOpen(t){this._shouldFlatpickrOpen=t}closeFlatpickr(){var t;null===(t=this.flatpickrInstance)||void 0===t||t.close()}preventFlatpickrOpen(t){y(t,this.setShouldFlatpickrOpen.bind(this))}handleInputClickEvent(){x(this.setShouldFlatpickrOpen.bind(this))}handleInputFocusEvent(){w(this._shouldFlatpickrOpen,this.closeFlatpickr.bind(this),this.setShouldFlatpickrOpen.bind(this))}_validate(t,e){if(!(this._inputEl&&this._inputEl instanceof HTMLInputElement))return;t&&(this._hasInteracted=!0);const i=!this._inputEl.value.trim()||!this.value[0]||!this.value[1],a=this.required;let r=this._inputEl.validity,l=this._inputEl.validationMessage;a&&i&&(r={...r,valueMissing:!0},l=this.defaultErrorMessage||this._textStrings.pleaseSelectDate),this.invalidText&&(r={...r,customError:!0},l=this.invalidText);const n=!r.valueMissing&&!r.customError;n||l||(l=this._textStrings.pleaseSelectValidDate),this._internals.setValidity(r,l,this._inputEl),this._isInvalid=!n&&(this._hasInteracted||""!==this.invalidText),this._internalValidationMsg=l,e&&this._internals.reportValidity(),this.requestUpdate()}_onChange(){this._validate(!0,!1)}_handleFormReset(){this.value=[null,null],this.flatpickrInstance&&this.flatpickrInstance.clear(),this._hasInteracted=!1,this._validate(!1,!1)}};E.styles=[I,_],t([i({type:String})],E.prototype,"label",void 0),t([i({type:String})],E.prototype,"locale",void 0),t([i({type:String})],E.prototype,"dateFormat",void 0),t([i({type:Array})],E.prototype,"defaultDate",void 0),t([i({type:String})],E.prototype,"defaultErrorMessage",void 0),t([i({type:Array})],E.prototype,"value",void 0),t([i({type:String})],E.prototype,"warnText",void 0),t([i({type:Array})],E.prototype,"disable",void 0),t([i({type:Array})],E.prototype,"enable",void 0),t([i({type:String})],E.prototype,"caption",void 0),t([i({type:Boolean})],E.prototype,"required",void 0),t([i({type:String})],E.prototype,"size",void 0),t([i({type:Boolean})],E.prototype,"dateRangePickerDisabled",void 0),t([i({type:Boolean})],E.prototype,"twentyFourHourFormat",void 0),t([i({type:String})],E.prototype,"minDate",void 0),t([i({type:String})],E.prototype,"maxDate",void 0),t([i({type:String})],E.prototype,"errorAriaLabel",void 0),t([i({type:String})],E.prototype,"errorTitle",void 0),t([i({type:String})],E.prototype,"warningAriaLabel",void 0),t([i({type:String})],E.prototype,"warningTitle",void 0),t([a()],E.prototype,"_enableTime",void 0),t([a()],E.prototype,"flatpickrInstance",void 0),t([r("input")],E.prototype,"_inputEl",void 0),t([a()],E.prototype,"_hasInteracted",void 0),t([i({type:Object})],E.prototype,"textStrings",void 0),t([a()],E.prototype,"_textStrings",void 0),t([a()],E.prototype,"_shouldFlatpickrOpen",void 0),E=t([l("kyn-date-range-picker")],E);export{E as DateRangePicker};
557
557
  //# sourceMappingURL=daterangepicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"daterangepicker.js","sources":["../../../../src/components/reusable/daterangepicker/daterangepicker.ts"],"sourcesContent":["import { html, LitElement, PropertyValues } 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 {\n langsArray,\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} 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';\nimport ShidokaFlatpickrTheme from '../../../common/scss/shidoka-flatpickr-theme.scss';\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/20/close-simple.svg';\n\ntype SupportedLocale = (typeof langsArray)[number];\n\nconst _defaultTextStrings = {\n requiredText: 'Required',\n clearAll: 'Clear',\n};\n\n/**\n * Date Range Picker: uses Flatpickr library, range picker implementation -- `https://flatpickr.js.org/examples/#range-calendar`\n * @fires on-change - Captures the input event and emits the selected value and original event details.\n * @slot tooltip - Slot for tooltip.\n */\n@customElement('kyn-date-range-picker')\nexport class DateRangePicker extends FormMixin(LitElement) {\n static override styles = [DateRangePickerStyles, ShidokaFlatpickrTheme];\n\n /** Label text. */\n @property({ type: String })\n label = '';\n\n /** Sets and dynamically imports specific l10n calendar localization. */\n @property({ type: String })\n locale: SupportedLocale = '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 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 defaultDate: string | string[] | null = null;\n\n /** Sets default error message. */\n @property({ type: String })\n defaultErrorMessage = '';\n\n /** Sets date/time range value. */\n @property({ type: Array })\n override value: [Date | null, Date | null] = [null, null];\n\n /** Sets validation warning messaging. */\n @property({ type: String })\n warnText = '';\n\n /** Sets flatpickr options setting to disable specific dates. */\n @property({ type: Array })\n disable: (string | number | Date)[] = [];\n\n /** Sets flatpickr options setting to enable specific dates. */\n @property({ type: Array })\n enable: (string | number | Date)[] = [];\n\n /** Sets caption to be displayed under primary date picker elements. */\n @property({ type: String })\n caption = '';\n\n /** Sets date range picker form input value to required/required. */\n @property({ type: Boolean })\n required = false;\n\n /** Input size. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n size = 'md';\n\n /** Sets entire date range picker form element to enabled/disabled. */\n @property({ type: Boolean })\n dateRangePickerDisabled = 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 twentyFourHourFormat: boolean | null = null;\n\n /** Sets lower boundary of date range picker date selection. */\n @property({ type: String })\n minDate: string | number | Date = '';\n\n /** Sets upper boundary of date range picker date selection. */\n @property({ type: String })\n maxDate: string | number | Date = '';\n\n /** Sets aria label attribute for error message. */\n @property({ type: String })\n errorAriaLabel = '';\n\n /** Sets title attribute for error message. */\n @property({ type: String })\n errorTitle = '';\n\n /** Sets aria label attribute for warning message. */\n @property({ type: String })\n warningAriaLabel = '';\n\n /** Sets title attribute for warning message. */\n @property({ type: String })\n warningTitle = '';\n\n /** Sets flatpickr enableTime value based on detected dateFormat.\n * @internal\n */\n @state()\n private _enableTime = false;\n\n /** Flatpickr instantiation.\n * @internal\n */\n @state()\n private flatpickrInstance?: Instance;\n\n /**\n * Queries the input DOM element.\n * @internal\n */\n @query('input')\n private _inputEl?: HTMLInputElement;\n\n /**\n * Sets whether user has interacted with datepicker for error handling.\n * @internal\n */\n @state()\n private _hasInteracted = false;\n\n /** Customizable text strings. */\n @property({ type: Object })\n textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n _textStrings = _defaultTextStrings;\n\n /** Control flag to prevent Flatpickr from opening when clicking caption, error, label, or warning elements.\n * @internal\n */\n @state()\n private _shouldFlatpickrOpen = false;\n\n /** Track initialization state\n * @internal\n */\n private _initialized = false;\n\n private resizeTimeout: number | null = null;\n\n private handleResize = () => {\n if (this.resizeTimeout) {\n window.clearTimeout(this.resizeTimeout);\n }\n this.resizeTimeout = window.setTimeout(async () => {\n if (this.flatpickrInstance) {\n await this.initializeFlatpickr();\n }\n this.resizeTimeout = null;\n }, 250);\n };\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('change', this._onChange);\n this.removeEventListener('reset', this._handleFormReset);\n window.removeEventListener('resize', this.handleResize);\n if (this.resizeTimeout) {\n window.clearTimeout(this.resizeTimeout);\n }\n this.flatpickrInstance?.destroy();\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\n override render() {\n const errorId = `${this.name}-error-message`;\n const warningId = `${this.name}-warning-message`;\n const anchorId = this.name\n ? `${this.name}-${Math.random().toString(36).slice(2, 11)}`\n : `date-range-picker-${Math.random().toString(36).slice(2, 11)}`;\n const descriptionId = this.name ?? '';\n\n const placeholder = getPlaceholder(this.dateFormat, true);\n\n return html`\n <div class=${classMap(this.getDateRangePickerClasses())}>\n <div\n class=\"label-text\"\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n ?disabled=${this.dateRangePickerDisabled}\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 >*</abbr\n >`\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 })}\"\n type=\"text\"\n id=${anchorId}\n name=${this.name}\n placeholder=${placeholder}\n ?disabled=${this.dateRangePickerDisabled}\n ?required=${this.required}\n ?invalid=${this._isInvalid}\n aria-invalid=${this._isInvalid ? 'true' : 'false'}\n aria-labelledby=${`label-${anchorId}`}\n @click=${this.handleInputClickEvent}\n @focus=${this.handleInputFocusEvent}\n />\n ${(this.value &&\n Array.isArray(this.value) &&\n this.value.length === 2 &&\n this.value[0] !== null &&\n this.value[1] !== null) ||\n (this.defaultDate &&\n Array.isArray(this.defaultDate) &&\n this.defaultDate.length === 2 &&\n this.defaultDate[0] &&\n this.defaultDate[1] &&\n this.defaultDate[0] !== '' &&\n this.defaultDate[1] !== '')\n ? html`\n <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)}</span\n >\n </kyn-button>\n `\n : html`<span class=\"input-icon\">${unsafeSVG(calendarIcon)}</span>`}\n </div>\n\n ${this.caption\n ? html`<div\n id=${descriptionId}\n class=\"caption\"\n aria-disabled=${this.dateRangePickerDisabled}\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.invalidText || (this._isInvalid && this._hasInteracted)) {\n return html`<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 >\n <span\n class=\"error-icon\"\n aria-label=${`${this.errorAriaLabel}` || 'Error message icon'}\n role=\"button\"\n >${unsafeSVG(errorIcon)}</span\n >${this.invalidText ||\n this._internalValidationMsg ||\n this.defaultErrorMessage}\n </div>`;\n }\n\n if (this.warnText) {\n return html`<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 >\n ${this.warnText}\n </div>`;\n }\n\n return null;\n }\n\n private _handleClear(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n }\n\n if (this._inputEl) {\n this._inputEl.value = '';\n }\n\n this.value = [null, null];\n this.defaultDate = [];\n\n this._validate(true, false);\n this.requestUpdate();\n }\n\n 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 override async firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n if (!this._initialized) {\n injectFlatpickrStyles(ShidokaFlatpickrTheme.toString());\n this._initialized = true;\n await this.updateComplete;\n this.setupAnchor();\n }\n }\n\n override updated(changedProperties: PropertyValues) {\n super.updated(changedProperties);\n\n if (\n changedProperties.has('dateFormat') ||\n changedProperties.has('minDate') ||\n changedProperties.has('defaultDate') ||\n changedProperties.has('maxDate') ||\n changedProperties.has('locale') ||\n changedProperties.has('twentyFourHourFormat')\n ) {\n this._enableTime = updateEnableTime(this.dateFormat);\n if (this.flatpickrInstance && this._initialized) {\n this.updateFlatpickrOptions();\n }\n }\n\n if (\n changedProperties.has('dateRangePickerDisabled') &&\n this.dateRangePickerDisabled &&\n this.flatpickrInstance\n ) {\n this.flatpickrInstance.close();\n }\n }\n\n private async setupAnchor() {\n if (this._inputEl) {\n await this.initializeFlatpickr();\n }\n }\n\n private async initializeFlatpickr() {\n if (!this._inputEl) return;\n if (this.flatpickrInstance) this.flatpickrInstance.destroy();\n\n this.flatpickrInstance = await initializeSingleAnchorFlatpickr({\n inputEl: this._inputEl,\n getFlatpickrOptions: () => this.getComponentFlatpickrOptions(),\n setCalendarAttributes: (instance) => {\n if (instance && instance.calendarContainer) {\n const modalDetected = !!this.closest('kyn-modal');\n setCalendarAttributes(instance, modalDetected);\n instance.calendarContainer.setAttribute(\n 'aria-label',\n 'Date range calendar'\n );\n } else {\n console.warn('Calendar container not available...');\n }\n },\n setInitialDates: this.setInitialDates.bind(this),\n });\n\n hideEmptyYear();\n this._validate(false, false);\n }\n\n async getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>> {\n const modal = this.closest('kyn-modal');\n const container = modal ? modal : document.body;\n\n return getFlatpickrOptions({\n locale: this.locale,\n dateFormat: this.dateFormat,\n defaultDate: this.defaultDate ?? undefined,\n enableTime: this._enableTime,\n twentyFourHourFormat: this.twentyFourHourFormat ?? undefined,\n mode: 'range',\n allowInput: false,\n inputEl: this._inputEl!,\n minDate: this.minDate,\n maxDate: this.maxDate,\n enable: this.enable,\n disable: this.disable,\n loadLocale,\n onChange: this.handleDateChange.bind(this),\n onClose: this.handleClose.bind(this),\n onOpen: this.handleOpen.bind(this),\n appendTo: container,\n });\n }\n\n async updateFlatpickrOptions() {\n if (!this.flatpickrInstance) return;\n\n const currentDates = this.flatpickrInstance.selectedDates;\n const newOptions = await this.getComponentFlatpickrOptions();\n\n Object.keys(newOptions).forEach((key) => {\n this.flatpickrInstance!.set(\n key as keyof BaseOptions,\n newOptions[key as keyof BaseOptions]\n );\n });\n\n this.flatpickrInstance.redraw();\n\n hideEmptyYear();\n\n if (currentDates && currentDates.length === 2) {\n this.flatpickrInstance.setDate(currentDates, false);\n }\n\n setTimeout(() => {\n if (this.flatpickrInstance && this.flatpickrInstance.calendarContainer) {\n const modalDetected = !!this.closest('kyn-modal');\n setCalendarAttributes(this.flatpickrInstance, modalDetected);\n this.flatpickrInstance.calendarContainer.setAttribute(\n 'aria-label',\n 'Date range calendar'\n );\n } else {\n console.warn('Calendar container not available...');\n }\n }, 0);\n }\n\n setInitialDates(): void {\n if (!this.flatpickrInstance) return;\n\n try {\n if (Array.isArray(this.defaultDate)) {\n const validDates = this.defaultDate\n .filter((date) => date && date !== '')\n .map((date) => {\n const parsed = new Date(date);\n return isNaN(parsed.getTime()) ? null : parsed;\n })\n .filter((date): date is Date => date !== null);\n\n if (validDates.length === 2) {\n this.value = validDates as [Date, Date];\n this.flatpickrInstance.setDate(validDates, false);\n }\n } else if (Array.isArray(this.value) && this.value.length === 2) {\n const validDates = this.value\n .map((date) =>\n date instanceof Date && !isNaN(date.getTime()) ? date : null\n )\n .filter((date): date is Date => date !== null);\n\n if (validDates.length === 2) {\n this.flatpickrInstance.setDate(validDates, false);\n }\n }\n } catch (error) {\n console.warn('Error setting initial dates:', error);\n }\n }\n\n handleOpen(): void {\n if (!this._shouldFlatpickrOpen) {\n this.flatpickrInstance?.close();\n this._shouldFlatpickrOpen = true;\n }\n }\n\n async handleDateChange(selectedDates: Date[]): Promise<void> {\n this._hasInteracted = true;\n\n if (selectedDates.length === 0) {\n this.value = [null, null];\n } else if (selectedDates.length === 1) {\n this.value = [selectedDates[0], null];\n } else {\n this.value = [selectedDates[0], selectedDates[1]];\n }\n\n if (selectedDates.length === 2) {\n const formattedDates = selectedDates.map((date) => date.toISOString());\n const dateString = this._inputEl?.value || formattedDates.join(' to ');\n\n emitValue(this, 'on-change', {\n dates: formattedDates,\n dateString,\n });\n }\n\n this.updateSelectedDateRangeAria(selectedDates);\n this._validate(true, false);\n await this.updateComplete;\n }\n\n async handleClose() {\n this._hasInteracted = true;\n\n if (\n this.flatpickrInstance &&\n this.flatpickrInstance.selectedDates &&\n this.flatpickrInstance.selectedDates.length === 1\n ) {\n this.flatpickrInstance.clear();\n if (this._inputEl) {\n this._inputEl.value = '';\n }\n this.value = [null, null];\n }\n\n this._validate(true, false);\n await this.updateComplete;\n }\n\n updateSelectedDateRangeAria(selectedDates: Date[]) {\n if (selectedDates.length === 2) {\n const [startDate, endDate] = selectedDates;\n this._inputEl?.setAttribute(\n 'aria-label',\n `Selected date range: ${startDate.toLocaleDateString()} to ${endDate.toLocaleDateString()}`\n );\n } else {\n this._inputEl?.setAttribute('aria-label', 'Date range');\n }\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 handleInputClick(this.setShouldFlatpickrOpen.bind(this));\n }\n\n private handleInputFocusEvent() {\n handleInputFocus(\n this._shouldFlatpickrOpen,\n this.closeFlatpickr.bind(this),\n this.setShouldFlatpickrOpen.bind(this)\n );\n }\n\n private _validate(interacted: boolean, report: boolean): void {\n if (!this._inputEl || !(this._inputEl instanceof HTMLInputElement)) {\n return;\n }\n\n if (interacted) {\n this._hasInteracted = true;\n }\n\n const isEmpty =\n !this._inputEl.value.trim() || !this.value[0] || !this.value[1];\n const isRequired = this.required;\n\n let validity = this._inputEl.validity;\n let validationMessage = this._inputEl.validationMessage;\n\n if (isRequired && isEmpty) {\n validity = { ...validity, valueMissing: true };\n validationMessage = this.defaultErrorMessage;\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\n this._internals.setValidity(validity, validationMessage, this._inputEl);\n this._isInvalid =\n !isValid && (this._hasInteracted || this.invalidText !== '');\n this._internalValidationMsg = validationMessage;\n\n if (report) {\n this._internals.reportValidity();\n }\n\n this.requestUpdate();\n }\n\n private _onChange() {\n this._validate(true, false);\n }\n\n private _handleFormReset() {\n this.value = [null, null];\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n }\n this._hasInteracted = false;\n this._validate(false, false);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-date-range-picker': DateRangePicker;\n }\n}\n"],"names":["_defaultTextStrings","requiredText","clearAll","DateRangePicker","FormMixin","LitElement","constructor","this","label","locale","dateFormat","defaultDate","defaultErrorMessage","value","warnText","disable","enable","caption","required","size","dateRangePickerDisabled","twentyFourHourFormat","minDate","maxDate","errorAriaLabel","errorTitle","warningAriaLabel","warningTitle","_enableTime","_hasInteracted","textStrings","_textStrings","_shouldFlatpickrOpen","_initialized","resizeTimeout","handleResize","window","clearTimeout","setTimeout","async","flatpickrInstance","initializeFlatpickr","disconnectedCallback","super","removeEventListener","_onChange","_handleFormReset","_a","destroy","connectedCallback","addEventListener","render","errorId","name","warningId","anchorId","Math","random","toString","slice","descriptionId","placeholder","getPlaceholder","html","classMap","getDateRangePickerClasses","preventFlatpickrOpen","_b","_c","_isInvalid","handleInputClickEvent","handleInputFocusEvent","Array","isArray","length","_handleClear","unsafeSVG","clearIcon","calendarIcon","renderValidationMessage","invalidText","errorIcon","_internalValidationMsg","event","preventDefault","stopPropagation","clear","_inputEl","_validate","requestUpdate","firstUpdated","changedProperties","injectFlatpickrStyles","ShidokaFlatpickrTheme","updateComplete","setupAnchor","updated","has","updateEnableTime","updateFlatpickrOptions","close","initializeSingleAnchorFlatpickr","inputEl","getFlatpickrOptions","getComponentFlatpickrOptions","setCalendarAttributes","instance","calendarContainer","modalDetected","closest","setAttribute","console","warn","setInitialDates","bind","hideEmptyYear","modal","container","document","body","undefined","enableTime","mode","allowInput","loadLocale","onChange","handleDateChange","onClose","handleClose","onOpen","handleOpen","appendTo","currentDates","selectedDates","newOptions","Object","keys","forEach","key","set","redraw","setDate","validDates","filter","date","map","parsed","Date","isNaN","getTime","error","formattedDates","toISOString","dateString","join","emitValue","dates","updateSelectedDateRangeAria","startDate","endDate","toLocaleDateString","setShouldFlatpickrOpen","closeFlatpickr","handleInputClick","handleInputFocus","interacted","report","HTMLInputElement","isEmpty","trim","isRequired","validity","validationMessage","valueMissing","customError","isValid","_internals","setValidity","reportValidity","styles","DateRangePickerStyles","__decorate","property","type","String","prototype","Boolean","state","query","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"daterangepicker.js","sources":["../../../../src/components/reusable/daterangepicker/daterangepicker.ts"],"sourcesContent":["import { html, LitElement, PropertyValues } 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 {\n langsArray,\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} 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';\nimport ShidokaFlatpickrTheme from '../../../common/scss/shidoka-flatpickr-theme.scss';\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/20/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};\n/**\n * Date Range Picker: uses Flatpickr library, range picker implementation -- `https://flatpickr.js.org/examples/#range-calendar`\n * @fires on-change - Captures the input event and emits the selected value and original event details.\n * @slot tooltip - Slot for tooltip.\n */\n@customElement('kyn-date-range-picker')\nexport class DateRangePicker extends FormMixin(LitElement) {\n static override styles = [DateRangePickerStyles, ShidokaFlatpickrTheme];\n\n /** Label text. */\n @property({ type: String })\n label = '';\n\n /** Sets and dynamically imports specific l10n calendar localization. */\n @property({ type: String })\n locale: SupportedLocale = '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 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 defaultDate: string | string[] | null = null;\n\n /** Sets default error message. */\n @property({ type: String })\n defaultErrorMessage = '';\n\n /** Sets date/time range value. */\n @property({ type: Array })\n override value: [Date | null, Date | null] = [null, null];\n\n /** Sets validation warning messaging. */\n @property({ type: String })\n warnText = '';\n\n /** Sets flatpickr options setting to disable specific dates. */\n @property({ type: Array })\n disable: (string | number | Date)[] = [];\n\n /** Sets flatpickr options setting to enable specific dates. */\n @property({ type: Array })\n enable: (string | number | Date)[] = [];\n\n /** Sets caption to be displayed under primary date picker elements. */\n @property({ type: String })\n caption = '';\n\n /** Sets date range picker form input value to required/required. */\n @property({ type: Boolean })\n required = false;\n\n /** Input size. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n size = 'md';\n\n /** Sets entire date range picker form element to enabled/disabled. */\n @property({ type: Boolean })\n dateRangePickerDisabled = 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 twentyFourHourFormat: boolean | null = null;\n\n /** Sets lower boundary of date range picker date selection. */\n @property({ type: String })\n minDate: string | number | Date = '';\n\n /** Sets upper boundary of date range picker date selection. */\n @property({ type: String })\n maxDate: string | number | Date = '';\n\n /** Sets aria label attribute for error message. */\n @property({ type: String })\n errorAriaLabel = '';\n\n /** Sets title attribute for error message. */\n @property({ type: String })\n errorTitle = '';\n\n /** Sets aria label attribute for warning message. */\n @property({ type: String })\n warningAriaLabel = '';\n\n /** Sets title attribute for warning message. */\n @property({ type: String })\n warningTitle = '';\n\n /** Sets flatpickr enableTime value based on detected dateFormat.\n * @internal\n */\n @state()\n private _enableTime = false;\n\n /** Flatpickr instantiation.\n * @internal\n */\n @state()\n private flatpickrInstance?: Instance;\n\n /**\n * Queries the input DOM element.\n * @internal\n */\n @query('input')\n private _inputEl?: HTMLInputElement;\n\n /**\n * Sets whether user has interacted with datepicker for error handling.\n * @internal\n */\n @state()\n private _hasInteracted = false;\n\n /** Customizable text strings. */\n @property({ type: Object })\n textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n _textStrings = _defaultTextStrings;\n\n /** Control flag to prevent Flatpickr from opening when clicking caption, error, label, or warning elements.\n * @internal\n */\n @state()\n private _shouldFlatpickrOpen = false;\n\n /** Track initialization state\n * @internal\n */\n private _initialized = false;\n\n private resizeTimeout: number | null = null;\n\n private handleResize = () => {\n if (this.resizeTimeout) {\n window.clearTimeout(this.resizeTimeout);\n }\n this.resizeTimeout = window.setTimeout(async () => {\n if (this.flatpickrInstance) {\n await this.initializeFlatpickr();\n }\n this.resizeTimeout = null;\n }, 250);\n };\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('change', this._onChange);\n this.removeEventListener('reset', this._handleFormReset);\n window.removeEventListener('resize', this.handleResize);\n if (this.resizeTimeout) {\n window.clearTimeout(this.resizeTimeout);\n }\n this.flatpickrInstance?.destroy();\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\n override render() {\n const errorId = `${this.name}-error-message`;\n const warningId = `${this.name}-warning-message`;\n const anchorId = this.name\n ? `${this.name}-${Math.random().toString(36).slice(2, 11)}`\n : `date-range-picker-${Math.random().toString(36).slice(2, 11)}`;\n const descriptionId = this.name ?? '';\n\n const placeholder = getPlaceholder(this.dateFormat, true);\n\n return html`\n <div class=${classMap(this.getDateRangePickerClasses())}>\n <div\n class=\"label-text\"\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n ?disabled=${this.dateRangePickerDisabled}\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 >*</abbr\n >`\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 })}\"\n type=\"text\"\n id=${anchorId}\n name=${this.name}\n placeholder=${placeholder}\n ?disabled=${this.dateRangePickerDisabled}\n ?required=${this.required}\n ?invalid=${this._isInvalid}\n aria-invalid=${this._isInvalid ? 'true' : 'false'}\n aria-labelledby=${`label-${anchorId}`}\n @click=${this.handleInputClickEvent}\n @focus=${this.handleInputFocusEvent}\n />\n ${(this.value &&\n Array.isArray(this.value) &&\n this.value.length === 2 &&\n this.value[0] !== null &&\n this.value[1] !== null) ||\n (this.defaultDate &&\n Array.isArray(this.defaultDate) &&\n this.defaultDate.length === 2 &&\n this.defaultDate[0] &&\n this.defaultDate[1] &&\n this.defaultDate[0] !== '' &&\n this.defaultDate[1] !== '')\n ? html`\n <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)}</span\n >\n </kyn-button>\n `\n : html`<span class=\"input-icon\">${unsafeSVG(calendarIcon)}</span>`}\n </div>\n\n ${this.caption\n ? html`<div\n id=${descriptionId}\n class=\"caption\"\n aria-disabled=${this.dateRangePickerDisabled}\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.invalidText || (this._isInvalid && this._hasInteracted)) {\n return html`<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 >\n <span\n class=\"error-icon\"\n aria-label=${`${this.errorAriaLabel}` || 'Error message icon'}\n role=\"button\"\n >${unsafeSVG(errorIcon)}</span\n >${this.invalidText ||\n this._internalValidationMsg ||\n this.defaultErrorMessage}\n </div>`;\n }\n\n if (this.warnText) {\n return html`<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 >\n ${this.warnText}\n </div>`;\n }\n\n return null;\n }\n\n private _handleClear(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n }\n\n if (this._inputEl) {\n this._inputEl.value = '';\n }\n\n this.value = [null, null];\n this.defaultDate = [];\n\n this._validate(true, false);\n this.requestUpdate();\n }\n\n 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 override async firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n if (!this._initialized) {\n injectFlatpickrStyles(ShidokaFlatpickrTheme.toString());\n this._initialized = true;\n await this.updateComplete;\n this.setupAnchor();\n }\n }\n\n override updated(changedProperties: PropertyValues) {\n super.updated(changedProperties);\n\n if (\n changedProperties.has('dateFormat') ||\n changedProperties.has('minDate') ||\n changedProperties.has('defaultDate') ||\n changedProperties.has('maxDate') ||\n changedProperties.has('locale') ||\n changedProperties.has('twentyFourHourFormat')\n ) {\n this._enableTime = updateEnableTime(this.dateFormat);\n if (this.flatpickrInstance && this._initialized) {\n this.updateFlatpickrOptions();\n }\n }\n\n if (\n changedProperties.has('dateRangePickerDisabled') &&\n this.dateRangePickerDisabled &&\n this.flatpickrInstance\n ) {\n this.flatpickrInstance.close();\n }\n }\n\n private async setupAnchor() {\n if (this._inputEl) {\n await this.initializeFlatpickr();\n }\n }\n\n private async initializeFlatpickr() {\n if (!this._inputEl) return;\n if (this.flatpickrInstance) this.flatpickrInstance.destroy();\n\n this.flatpickrInstance = await initializeSingleAnchorFlatpickr({\n inputEl: this._inputEl,\n getFlatpickrOptions: () => this.getComponentFlatpickrOptions(),\n setCalendarAttributes: (instance) => {\n if (instance && instance.calendarContainer) {\n const modalDetected = !!this.closest('kyn-modal');\n setCalendarAttributes(instance, modalDetected);\n instance.calendarContainer.setAttribute(\n 'aria-label',\n 'Date range calendar'\n );\n } else {\n console.warn('Calendar container not available...');\n }\n },\n setInitialDates: this.setInitialDates.bind(this),\n });\n\n hideEmptyYear();\n this._validate(false, false);\n }\n\n async getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>> {\n const modal = this.closest('kyn-modal');\n const container = modal ? modal : document.body;\n\n return getFlatpickrOptions({\n locale: this.locale,\n dateFormat: this.dateFormat,\n defaultDate: this.defaultDate ?? undefined,\n enableTime: this._enableTime,\n twentyFourHourFormat: this.twentyFourHourFormat ?? undefined,\n mode: 'range',\n allowInput: false,\n inputEl: this._inputEl!,\n minDate: this.minDate,\n maxDate: this.maxDate,\n enable: this.enable,\n disable: this.disable,\n loadLocale,\n onChange: this.handleDateChange.bind(this),\n onClose: this.handleClose.bind(this),\n onOpen: this.handleOpen.bind(this),\n appendTo: container,\n });\n }\n\n async updateFlatpickrOptions() {\n if (!this.flatpickrInstance) return;\n\n const currentDates = this.flatpickrInstance.selectedDates;\n const newOptions = await this.getComponentFlatpickrOptions();\n\n Object.keys(newOptions).forEach((key) => {\n this.flatpickrInstance!.set(\n key as keyof BaseOptions,\n newOptions[key as keyof BaseOptions]\n );\n });\n\n this.flatpickrInstance.redraw();\n\n hideEmptyYear();\n\n if (currentDates && currentDates.length === 2) {\n this.flatpickrInstance.setDate(currentDates, false);\n }\n\n setTimeout(() => {\n if (this.flatpickrInstance && this.flatpickrInstance.calendarContainer) {\n const modalDetected = !!this.closest('kyn-modal');\n setCalendarAttributes(this.flatpickrInstance, modalDetected);\n this.flatpickrInstance.calendarContainer.setAttribute(\n 'aria-label',\n 'Date range calendar'\n );\n } else {\n console.warn('Calendar container not available...');\n }\n }, 0);\n }\n\n setInitialDates(): void {\n if (!this.flatpickrInstance) return;\n\n try {\n if (Array.isArray(this.defaultDate)) {\n const validDates = this.defaultDate\n .filter((date) => date && date !== '')\n .map((date) => {\n const parsed = new Date(date);\n return isNaN(parsed.getTime()) ? null : parsed;\n })\n .filter((date): date is Date => date !== null);\n\n if (validDates.length === 2) {\n this.value = validDates as [Date, Date];\n this.flatpickrInstance.setDate(validDates, false);\n }\n } else if (Array.isArray(this.value) && this.value.length === 2) {\n const validDates = this.value\n .map((date) =>\n date instanceof Date && !isNaN(date.getTime()) ? date : null\n )\n .filter((date): date is Date => date !== null);\n\n if (validDates.length === 2) {\n this.flatpickrInstance.setDate(validDates, false);\n }\n }\n } catch (error) {\n console.warn('Error setting initial dates:', error);\n }\n }\n\n handleOpen(): void {\n if (!this._shouldFlatpickrOpen) {\n this.flatpickrInstance?.close();\n this._shouldFlatpickrOpen = true;\n }\n }\n\n async handleDateChange(selectedDates: Date[]): Promise<void> {\n this._hasInteracted = true;\n\n if (selectedDates.length === 0) {\n this.value = [null, null];\n } else if (selectedDates.length === 1) {\n this.value = [selectedDates[0], null];\n } else {\n this.value = [selectedDates[0], selectedDates[1]];\n }\n\n if (selectedDates.length === 2) {\n const formattedDates = selectedDates.map((date) => date.toISOString());\n const dateString = this._inputEl?.value || formattedDates.join(' to ');\n\n emitValue(this, 'on-change', {\n dates: formattedDates,\n dateString,\n });\n }\n\n this.updateSelectedDateRangeAria(selectedDates);\n this._validate(true, false);\n await this.updateComplete;\n }\n\n async handleClose() {\n this._hasInteracted = true;\n\n if (\n this.flatpickrInstance &&\n this.flatpickrInstance.selectedDates &&\n this.flatpickrInstance.selectedDates.length === 1\n ) {\n this.flatpickrInstance.clear();\n if (this._inputEl) {\n this._inputEl.value = '';\n }\n this.value = [null, null];\n }\n\n this._validate(true, false);\n await this.updateComplete;\n }\n\n updateSelectedDateRangeAria(selectedDates: Date[]) {\n if (selectedDates.length === 2) {\n const [startDate, endDate] = selectedDates;\n this._inputEl?.setAttribute(\n 'aria-label',\n `Selected date range: ${startDate.toLocaleDateString()} to ${endDate.toLocaleDateString()}`\n );\n } else {\n this._inputEl?.setAttribute('aria-label', 'Date range');\n }\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 handleInputClick(this.setShouldFlatpickrOpen.bind(this));\n }\n\n private handleInputFocusEvent() {\n handleInputFocus(\n this._shouldFlatpickrOpen,\n this.closeFlatpickr.bind(this),\n this.setShouldFlatpickrOpen.bind(this)\n );\n }\n\n private _validate(interacted: boolean, report: boolean): void {\n if (!this._inputEl || !(this._inputEl instanceof HTMLInputElement)) {\n return;\n }\n\n if (interacted) {\n this._hasInteracted = true;\n }\n\n const isEmpty =\n !this._inputEl.value.trim() || !this.value[0] || !this.value[1];\n const isRequired = this.required;\n\n let validity = this._inputEl.validity;\n let validationMessage = this._inputEl.validationMessage;\n\n if (isRequired && isEmpty) {\n validity = { ...validity, valueMissing: true };\n validationMessage =\n this.defaultErrorMessage || this._textStrings.pleaseSelectDate;\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\n if (!isValid && !validationMessage) {\n validationMessage = this._textStrings.pleaseSelectValidDate;\n }\n\n this._internals.setValidity(validity, validationMessage, this._inputEl);\n this._isInvalid =\n !isValid && (this._hasInteracted || this.invalidText !== '');\n this._internalValidationMsg = validationMessage;\n\n if (report) {\n this._internals.reportValidity();\n }\n\n this.requestUpdate();\n }\n\n private _onChange() {\n this._validate(true, false);\n }\n\n private _handleFormReset() {\n this.value = [null, null];\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n }\n this._hasInteracted = false;\n this._validate(false, false);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-date-range-picker': DateRangePicker;\n }\n}\n"],"names":["_defaultTextStrings","requiredText","clearAll","pleaseSelectDate","pleaseSelectValidDate","DateRangePicker","FormMixin","LitElement","constructor","this","label","locale","dateFormat","defaultDate","defaultErrorMessage","value","warnText","disable","enable","caption","required","size","dateRangePickerDisabled","twentyFourHourFormat","minDate","maxDate","errorAriaLabel","errorTitle","warningAriaLabel","warningTitle","_enableTime","_hasInteracted","textStrings","_textStrings","_shouldFlatpickrOpen","_initialized","resizeTimeout","handleResize","window","clearTimeout","setTimeout","async","flatpickrInstance","initializeFlatpickr","disconnectedCallback","super","removeEventListener","_onChange","_handleFormReset","_a","destroy","connectedCallback","addEventListener","render","errorId","name","warningId","anchorId","Math","random","toString","slice","descriptionId","placeholder","getPlaceholder","html","classMap","getDateRangePickerClasses","preventFlatpickrOpen","_b","_c","_isInvalid","handleInputClickEvent","handleInputFocusEvent","Array","isArray","length","_handleClear","unsafeSVG","clearIcon","calendarIcon","renderValidationMessage","invalidText","errorIcon","_internalValidationMsg","event","preventDefault","stopPropagation","clear","_inputEl","_validate","requestUpdate","firstUpdated","changedProperties","injectFlatpickrStyles","ShidokaFlatpickrTheme","updateComplete","setupAnchor","updated","has","updateEnableTime","updateFlatpickrOptions","close","initializeSingleAnchorFlatpickr","inputEl","getFlatpickrOptions","getComponentFlatpickrOptions","setCalendarAttributes","instance","calendarContainer","modalDetected","closest","setAttribute","console","warn","setInitialDates","bind","hideEmptyYear","modal","container","document","body","undefined","enableTime","mode","allowInput","loadLocale","onChange","handleDateChange","onClose","handleClose","onOpen","handleOpen","appendTo","currentDates","selectedDates","newOptions","Object","keys","forEach","key","set","redraw","setDate","validDates","filter","date","map","parsed","Date","isNaN","getTime","error","formattedDates","toISOString","dateString","join","emitValue","dates","updateSelectedDateRangeAria","startDate","endDate","toLocaleDateString","setShouldFlatpickrOpen","closeFlatpickr","handleInputClick","handleInputFocus","interacted","report","HTMLInputElement","isEmpty","trim","isRequired","validity","validationMessage","valueMissing","customError","isValid","_internals","setValidity","reportValidity","styles","DateRangePickerStyles","__decorate","property","type","String","prototype","Boolean","state","query","customElement"],"mappings":"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"}
@@ -70,6 +70,8 @@ export declare class TimePicker extends TimePicker_base {
70
70
  textStrings: {
71
71
  requiredText: string;
72
72
  clearAll: string;
73
+ pleaseSelectDate: string;
74
+ pleaseSelectValidDate: string;
73
75
  };
74
76
  /** Internal text strings.
75
77
  * @internal
@@ -77,6 +79,8 @@ export declare class TimePicker extends TimePicker_base {
77
79
  _textStrings: {
78
80
  requiredText: string;
79
81
  clearAll: string;
82
+ pleaseSelectDate: string;
83
+ pleaseSelectValidDate: string;
80
84
  };
81
85
  /** Control flag to determine if Flatpickr should open
82
86
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"timepicker.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/timepicker/timepicker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timepicker.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/timepicker/timepicker.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import{_ as t}from"../../../vendor/tslib-53a81efe.js";import{o as e,n as i,t as r,i as a,e as n}from"../../../vendor/lit-6e2a7867.js";import{i as l,x as o,s}from"../../../vendor/lit-element-3185f710.js";import{FormMixin as d}from"../../../common/mixins/form-input.js";import"../button/button.js";import{injectFlatpickrStyles as p,initializeSingleAnchorFlatpickr as c,setCalendarAttributes as h,hideEmptyYear as u,getFlatpickrOptions as m,loadLocale as v,emitValue as k,preventFlatpickrOpen as f,handleInputClick as g,handleInputFocus as b}from"../../../common/helpers/flatpickr.js";import{c as x}from"../../../shidoka-flatpickr-theme-0e8883f1.js";import{o as y}from"../../../vendor/lit-html-29220869.js";import{j as w,J as _,I as z}from"../../../vendor/@kyndryl-design-system/shidoka-icons-e426f09b.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";import"../../../vendor/flatpickr-bbd13d61.js";var $=l`*,
1
+ import{_ as t}from"../../../vendor/tslib-53a81efe.js";import{o as e,n as i,t as r,i as a,e as l}from"../../../vendor/lit-6e2a7867.js";import{i as n,x as o,s}from"../../../vendor/lit-element-3185f710.js";import{FormMixin as d}from"../../../common/mixins/form-input.js";import"../button/button.js";import{injectFlatpickrStyles as p,initializeSingleAnchorFlatpickr as c,setCalendarAttributes as h,hideEmptyYear as u,getFlatpickrOptions as m,loadLocale as v,emitValue as k,preventFlatpickrOpen as f,handleInputClick as g,handleInputFocus as b}from"../../../common/helpers/flatpickr.js";import{c as x}from"../../../shidoka-flatpickr-theme-0e8883f1.js";import{o as y}from"../../../vendor/lit-html-29220869.js";import{j as w,J as _,I as z}from"../../../vendor/@kyndryl-design-system/shidoka-icons-e426f09b.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";import"../../../vendor/flatpickr-bbd13d61.js";var $=n`*,
2
2
  *::before,
3
3
  *::after {
4
4
  box-sizing: border-box;
@@ -462,14 +462,14 @@ input {
462
462
  }
463
463
  .time-picker__disabled .input-custom {
464
464
  pointer-events: none;
465
- }`;const F={requiredText:"Required",clearAll:"Clear"};let I=class extends(d(s)){constructor(){super(...arguments),this.label="",this.locale="en",this.value=null,this.defaultDate="",this.defaultHour=null,this.defaultMinute=null,this.defaultErrorMessage="",this.warnText="",this.caption="",this.required=!1,this.size="md",this.timepickerDisabled=!1,this.twentyFourHourFormat=null,this.minTime="",this.maxTime="",this.errorAriaLabel="",this.errorTitle="",this.warningAriaLabel="",this.warningTitle="",this._hasInteracted=!1,this.textStrings=F,this._textStrings=F,this._shouldFlatpickrOpen=!0}connectedCallback(){super.connectedCallback(),this.addEventListener("change",this._onChange),this.addEventListener("reset",this._handleFormReset)}render(){var t,i,r;const a=`${this.name}-error-message`,n=`${this.name}-warning-message`,l=this.name?`${this.name}-${Math.random().toString(36).slice(2,11)}`:`time-picker-${Math.random().toString(36).slice(2,11)}`,s=null!==(t=this.name)&&void 0!==t?t:"";return o`
465
+ }`;const F={requiredText:"Required",clearAll:"Clear",pleaseSelectDate:"Please select a date",pleaseSelectValidDate:"Please select a valid date"};let I=class extends(d(s)){constructor(){super(...arguments),this.label="",this.locale="en",this.value=null,this.defaultDate="",this.defaultHour=null,this.defaultMinute=null,this.defaultErrorMessage="",this.warnText="",this.caption="",this.required=!1,this.size="md",this.timepickerDisabled=!1,this.twentyFourHourFormat=null,this.minTime="",this.maxTime="",this.errorAriaLabel="",this.errorTitle="",this.warningAriaLabel="",this.warningTitle="",this._hasInteracted=!1,this.textStrings=F,this._textStrings=F,this._shouldFlatpickrOpen=!0}connectedCallback(){super.connectedCallback(),this.addEventListener("change",this._onChange),this.addEventListener("reset",this._handleFormReset)}render(){var t,i,r;const a=`${this.name}-error-message`,l=`${this.name}-warning-message`,n=this.name?`${this.name}-${Math.random().toString(36).slice(2,11)}`:`time-picker-${Math.random().toString(36).slice(2,11)}`,s=null!==(t=this.name)&&void 0!==t?t:"";return o`
466
466
  <div class=${e(this.getTimepickerClasses())}>
467
467
  <div
468
468
  class="label-text"
469
469
  @mousedown=${this.preventFlatpickrOpen}
470
470
  @click=${this.preventFlatpickrOpen}
471
471
  ?disabled=${this.timepickerDisabled}
472
- id=${`label-${l}`}
472
+ id=${`label-${n}`}
473
473
  >
474
474
  ${this.required?o`<abbr
475
475
  class="required"
@@ -486,14 +486,14 @@ input {
486
486
  <input
487
487
  class="${e({[`size--${this.size}`]:!0,"input-custom":!0})}"
488
488
  type="text"
489
- id=${l}
489
+ id=${n}
490
490
  name=${this.name}
491
491
  placeholder=${"—— : ——"}
492
492
  ?disabled=${this.timepickerDisabled}
493
493
  ?required=${this.required}
494
494
  ?invalid=${this._isInvalid}
495
495
  aria-invalid=${this._isInvalid}
496
- aria-labelledby=${`label-${l}`}
496
+ aria-labelledby=${`label-${n}`}
497
497
  @click=${this.handleInputClickEvent}
498
498
  @focus=${this.handleInputFocusEvent}
499
499
  />
@@ -522,7 +522,7 @@ input {
522
522
  >
523
523
  ${this.caption}
524
524
  </div>`:""}
525
- ${this.renderValidationMessage(a,n)}
525
+ ${this.renderValidationMessage(a,l)}
526
526
  </div>
527
527
  `}renderValidationMessage(t,e){return this.invalidText||this._isInvalid&&this._hasInteracted?o`<div
528
528
  id=${t}
@@ -548,5 +548,5 @@ input {
548
548
  @click=${this.preventFlatpickrOpen}
549
549
  >
550
550
  ${this.warnText}
551
- </div>`:null}getTimepickerClasses(){return{"time-picker":!0,"time-picker__disabled":this.timepickerDisabled}}async firstUpdated(t){super.firstUpdated(t),p(x.toString()),await this.updateComplete,this.setupAnchor()}async updated(t){await super.updated(t),(t.has("defaultDate")||t.has("defaultHour")||t.has("defaultMinute")||t.has("invalidText")||t.has("minTime")||t.has("maxTime")||t.has("twentyFourHourFormat"))&&(this.flatpickrInstance?this.updateFlatpickrOptions():this.initializeFlatpickr()),t.has("timepickerDisabled")&&this.timepickerDisabled&&this.flatpickrInstance&&this.flatpickrInstance.close()}_handleClear(t){t.preventDefault(),t.stopPropagation(),this.value=null,this.flatpickrInstance&&this.flatpickrInstance.clear(),this._validate(!0,!1)}setupAnchor(){this._inputEl?this.initializeFlatpickr():console.error("Internal input element not found")}async initializeFlatpickr(){this._inputEl&&(this.flatpickrInstance&&this.flatpickrInstance.destroy(),this.flatpickrInstance=await c({inputEl:this._inputEl,getFlatpickrOptions:()=>this.getComponentFlatpickrOptions(),setCalendarAttributes:t=>{if(t&&t.calendarContainer){const e=!!this.closest("kyn-modal");h(t,e),t.calendarContainer.setAttribute("aria-label","Time picker")}else console.warn("Calendar container not available...")},setInitialDates:void 0}),u(),this._validate(!1,!1))}async updateFlatpickrOptions(){if(!this.flatpickrInstance)return;const t=await this.getComponentFlatpickrOptions();Object.keys(t).forEach((e=>{e in this.flatpickrInstance.config&&this.flatpickrInstance.set(e,t[e])})),this.flatpickrInstance.redraw(),u(),this.setInitialDates(this.flatpickrInstance),setTimeout((()=>{if(this.flatpickrInstance&&this.flatpickrInstance.calendarContainer){const t=!!this.closest("kyn-modal");h(this.flatpickrInstance,t),this.flatpickrInstance.calendarContainer.setAttribute("aria-label","Time picker")}else console.warn("Calendar container not available...")}),0)}async getComponentFlatpickrOptions(){var t,e,i,r;const a=this.closest("kyn-modal"),n=a||document.body;return m({locale:this.locale,enableTime:!0,twentyFourHourFormat:null!==(t=this.twentyFourHourFormat)&&void 0!==t?t:void 0,inputEl:this._inputEl,allowInput:!0,dateFormat:this.twentyFourHourFormat?"H:i":"h:i K",minTime:this.minTime,maxTime:this.maxTime,defaultDate:null!==(e=this.defaultDate)&&void 0!==e?e:void 0,defaultHour:null!==(i=this.defaultHour)&&void 0!==i?i:void 0,defaultMinute:null!==(r=this.defaultMinute)&&void 0!==r?r:void 0,loadLocale:v,mode:"time",noCalendar:!0,onChange:this.handleTimeChange.bind(this),onClose:this.handleClose.bind(this),onOpen:this.handleOpen.bind(this),appendTo:n})}setInitialDates(t){if(this.defaultDate)t.setDate(this.defaultDate,!0);else if(null!==this.defaultHour&&null!==this.defaultMinute){const e=new Date;e.setHours(this.defaultHour),e.setMinutes(this.defaultMinute),e.setSeconds(0),e.setMilliseconds(0),t.setDate(e,!0)}else t.clear();this._inputEl&&(this._inputEl.value=t.input.value)}handleOpen(){var t;this._shouldFlatpickrOpen||(null===(t=this.flatpickrInstance)||void 0===t||t.close(),this._shouldFlatpickrOpen=!0)}async handleClose(){this._hasInteracted=!0,this._validate(!0,!1),await this.updateComplete}async handleTimeChange(t,e){t.length>0?(this.value=t[0],k(this,"on-change",{time:e})):(this.value=null,k(this,"on-change",{time:""})),this._validate(!0,!1),await this.updateComplete}_validate(t,e){if(!(this._inputEl&&this._inputEl instanceof HTMLInputElement))return;t&&(this._hasInteracted=!0);const i=!this._inputEl.value.trim(),r=this.required;let a=this._inputEl.validity,n=this._inputEl.validationMessage;r&&i&&(a={...a,valueMissing:!0},n=this.defaultErrorMessage),this.invalidText&&(a={...a,customError:!0},n=this.invalidText);const l=!a.valueMissing&&!a.customError;this._internals.setValidity(a,n,this._inputEl),this._isInvalid=!l&&(this._hasInteracted||""!==this.invalidText),this._internalValidationMsg=n,e&&this._internals.reportValidity(),this.requestUpdate()}_onChange(){this._validate(!0,!1)}_handleFormReset(){this.value=null,this.flatpickrInstance&&this.flatpickrInstance.clear(),this._hasInteracted=!1,this._validate(!1,!1)}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(){g(this.setShouldFlatpickrOpen.bind(this))}handleInputFocusEvent(){b(this._shouldFlatpickrOpen,this.closeFlatpickr.bind(this),this.setShouldFlatpickrOpen.bind(this))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",this._onChange),this.removeEventListener("reset",this._handleFormReset),this.flatpickrInstance&&(this.flatpickrInstance.destroy(),this.flatpickrInstance=void 0)}};I.styles=[$,x],t([i({type:String})],I.prototype,"label",void 0),t([i({type:String})],I.prototype,"locale",void 0),t([i({type:Object})],I.prototype,"value",void 0),t([i({type:String})],I.prototype,"defaultDate",void 0),t([i({type:Number})],I.prototype,"defaultHour",void 0),t([i({type:Number})],I.prototype,"defaultMinute",void 0),t([i({type:String})],I.prototype,"defaultErrorMessage",void 0),t([i({type:String})],I.prototype,"warnText",void 0),t([i({type:String})],I.prototype,"caption",void 0),t([i({type:Boolean})],I.prototype,"required",void 0),t([i({type:String})],I.prototype,"size",void 0),t([i({type:Boolean})],I.prototype,"timepickerDisabled",void 0),t([i({type:Boolean})],I.prototype,"twentyFourHourFormat",void 0),t([i({type:String})],I.prototype,"minTime",void 0),t([i({type:String})],I.prototype,"maxTime",void 0),t([i({type:String})],I.prototype,"errorAriaLabel",void 0),t([i({type:String})],I.prototype,"errorTitle",void 0),t([i({type:String})],I.prototype,"warningAriaLabel",void 0),t([i({type:String})],I.prototype,"warningTitle",void 0),t([r()],I.prototype,"_hasInteracted",void 0),t([r()],I.prototype,"flatpickrInstance",void 0),t([a("input.input-custom")],I.prototype,"_inputEl",void 0),t([i({type:Object})],I.prototype,"textStrings",void 0),t([r()],I.prototype,"_textStrings",void 0),I=t([n("kyn-time-picker")],I);export{I as TimePicker};
551
+ </div>`:null}getTimepickerClasses(){return{"time-picker":!0,"time-picker__disabled":this.timepickerDisabled}}async firstUpdated(t){super.firstUpdated(t),p(x.toString()),await this.updateComplete,this.setupAnchor()}async updated(t){await super.updated(t),(t.has("defaultDate")||t.has("defaultHour")||t.has("defaultMinute")||t.has("invalidText")||t.has("minTime")||t.has("maxTime")||t.has("twentyFourHourFormat"))&&(this.flatpickrInstance?this.updateFlatpickrOptions():this.initializeFlatpickr()),t.has("timepickerDisabled")&&this.timepickerDisabled&&this.flatpickrInstance&&this.flatpickrInstance.close()}_handleClear(t){t.preventDefault(),t.stopPropagation(),this.value=null,this.flatpickrInstance&&this.flatpickrInstance.clear(),this._validate(!0,!1)}setupAnchor(){this._inputEl?this.initializeFlatpickr():console.error("Internal input element not found")}async initializeFlatpickr(){this._inputEl&&(this.flatpickrInstance&&this.flatpickrInstance.destroy(),this.flatpickrInstance=await c({inputEl:this._inputEl,getFlatpickrOptions:()=>this.getComponentFlatpickrOptions(),setCalendarAttributes:t=>{if(t&&t.calendarContainer){const e=!!this.closest("kyn-modal");h(t,e),t.calendarContainer.setAttribute("aria-label","Time picker")}else console.warn("Calendar container not available...")},setInitialDates:void 0}),u(),this._validate(!1,!1))}async updateFlatpickrOptions(){if(!this.flatpickrInstance)return;const t=await this.getComponentFlatpickrOptions();Object.keys(t).forEach((e=>{e in this.flatpickrInstance.config&&this.flatpickrInstance.set(e,t[e])})),this.flatpickrInstance.redraw(),u(),this.setInitialDates(this.flatpickrInstance),setTimeout((()=>{if(this.flatpickrInstance&&this.flatpickrInstance.calendarContainer){const t=!!this.closest("kyn-modal");h(this.flatpickrInstance,t),this.flatpickrInstance.calendarContainer.setAttribute("aria-label","Time picker")}else console.warn("Calendar container not available...")}),0)}async getComponentFlatpickrOptions(){var t,e,i,r;const a=this.closest("kyn-modal"),l=a||document.body;return m({locale:this.locale,enableTime:!0,twentyFourHourFormat:null!==(t=this.twentyFourHourFormat)&&void 0!==t?t:void 0,inputEl:this._inputEl,allowInput:!0,dateFormat:this.twentyFourHourFormat?"H:i":"h:i K",minTime:this.minTime,maxTime:this.maxTime,defaultDate:null!==(e=this.defaultDate)&&void 0!==e?e:void 0,defaultHour:null!==(i=this.defaultHour)&&void 0!==i?i:void 0,defaultMinute:null!==(r=this.defaultMinute)&&void 0!==r?r:void 0,loadLocale:v,mode:"time",noCalendar:!0,onChange:this.handleTimeChange.bind(this),onClose:this.handleClose.bind(this),onOpen:this.handleOpen.bind(this),appendTo:l})}setInitialDates(t){if(this.defaultDate)t.setDate(this.defaultDate,!0);else if(null!==this.defaultHour&&null!==this.defaultMinute){const e=new Date;e.setHours(this.defaultHour),e.setMinutes(this.defaultMinute),e.setSeconds(0),e.setMilliseconds(0),t.setDate(e,!0)}else t.clear();this._inputEl&&(this._inputEl.value=t.input.value)}handleOpen(){var t;this._shouldFlatpickrOpen||(null===(t=this.flatpickrInstance)||void 0===t||t.close(),this._shouldFlatpickrOpen=!0)}async handleClose(){this._hasInteracted=!0,this._validate(!0,!1),await this.updateComplete}async handleTimeChange(t,e){t.length>0?(this.value=t[0],k(this,"on-change",{time:e})):(this.value=null,k(this,"on-change",{time:""})),this._validate(!0,!1),await this.updateComplete}_validate(t,e){if(!(this._inputEl&&this._inputEl instanceof HTMLInputElement))return;t&&(this._hasInteracted=!0);const i=!this._inputEl.value.trim(),r=this.required;let a=this._inputEl.validity,l=this._inputEl.validationMessage;r&&i&&(a={...a,valueMissing:!0},l=this.defaultErrorMessage||this._textStrings.pleaseSelectDate),this.invalidText&&(a={...a,customError:!0},l=this.invalidText);const n=!a.valueMissing&&!a.customError;n||l||(l=this._textStrings.pleaseSelectValidDate),this._internals.setValidity(a,l,this._inputEl),this._isInvalid=!n&&(this._hasInteracted||""!==this.invalidText),this._internalValidationMsg=l,e&&this._internals.reportValidity(),this.requestUpdate()}_onChange(){this._validate(!0,!1)}_handleFormReset(){this.value=null,this.flatpickrInstance&&this.flatpickrInstance.clear(),this._hasInteracted=!1,this._validate(!1,!1)}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(){g(this.setShouldFlatpickrOpen.bind(this))}handleInputFocusEvent(){b(this._shouldFlatpickrOpen,this.closeFlatpickr.bind(this),this.setShouldFlatpickrOpen.bind(this))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",this._onChange),this.removeEventListener("reset",this._handleFormReset),this.flatpickrInstance&&(this.flatpickrInstance.destroy(),this.flatpickrInstance=void 0)}};I.styles=[$,x],t([i({type:String})],I.prototype,"label",void 0),t([i({type:String})],I.prototype,"locale",void 0),t([i({type:Object})],I.prototype,"value",void 0),t([i({type:String})],I.prototype,"defaultDate",void 0),t([i({type:Number})],I.prototype,"defaultHour",void 0),t([i({type:Number})],I.prototype,"defaultMinute",void 0),t([i({type:String})],I.prototype,"defaultErrorMessage",void 0),t([i({type:String})],I.prototype,"warnText",void 0),t([i({type:String})],I.prototype,"caption",void 0),t([i({type:Boolean})],I.prototype,"required",void 0),t([i({type:String})],I.prototype,"size",void 0),t([i({type:Boolean})],I.prototype,"timepickerDisabled",void 0),t([i({type:Boolean})],I.prototype,"twentyFourHourFormat",void 0),t([i({type:String})],I.prototype,"minTime",void 0),t([i({type:String})],I.prototype,"maxTime",void 0),t([i({type:String})],I.prototype,"errorAriaLabel",void 0),t([i({type:String})],I.prototype,"errorTitle",void 0),t([i({type:String})],I.prototype,"warningAriaLabel",void 0),t([i({type:String})],I.prototype,"warningTitle",void 0),t([r()],I.prototype,"_hasInteracted",void 0),t([r()],I.prototype,"flatpickrInstance",void 0),t([a("input.input-custom")],I.prototype,"_inputEl",void 0),t([i({type:Object})],I.prototype,"textStrings",void 0),t([r()],I.prototype,"_textStrings",void 0),I=t([l("kyn-time-picker")],I);export{I as TimePicker};
552
552
  //# sourceMappingURL=timepicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timepicker.js","sources":["../../../../src/components/reusable/timepicker/timepicker.ts"],"sourcesContent":["import { html, LitElement, PropertyValues } 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';\n\nimport '../../reusable/button';\n\nimport {\n langsArray,\n injectFlatpickrStyles,\n initializeSingleAnchorFlatpickr,\n getFlatpickrOptions,\n preventFlatpickrOpen,\n handleInputClick,\n handleInputFocus,\n setCalendarAttributes,\n loadLocale,\n emitValue,\n hideEmptyYear,\n} from '../../../common/helpers/flatpickr';\n\nimport flatpickr from 'flatpickr';\nimport { BaseOptions } from 'flatpickr/dist/types/options';\n\nimport TimepickerStyles from './timepicker.scss';\nimport ShidokaFlatpickrTheme from '../../../common/scss/shidoka-flatpickr-theme.scss';\n\nimport { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\n\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-filled.svg';\nimport clockIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/24/time.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/close-simple.svg';\n\ntype SupportedLocale = (typeof langsArray)[number];\n\nconst _defaultTextStrings = {\n requiredText: 'Required',\n clearAll: 'Clear',\n};\n\n/**\n * Timepicker: uses Flatpickr library,time picker implementation -- `https://flatpickr.js.org/examples/#time-picker`\n * @fires on-change - Captures the input event and emits the selected value and original event details.\n * @slot tooltip - Slot for tooltip.\n */\n@customElement('kyn-time-picker')\nexport class TimePicker extends FormMixin(LitElement) {\n static override styles = [TimepickerStyles, ShidokaFlatpickrTheme];\n\n /** Label text. */\n @property({ type: String })\n label = '';\n\n /** Sets desired locale and, if supported, dynamically loads language lib */\n @property({ type: String })\n locale: SupportedLocale = 'en';\n\n /** Sets date/time value. */\n @property({ type: Object })\n override value: Date | null = null;\n\n /** Sets default time value. */\n @property({ type: String })\n defaultDate = '';\n\n /** Sets initial value of the hour element. */\n @property({ type: Number })\n defaultHour: number | null = null;\n\n /** Sets initial value of the minute element. */\n @property({ type: Number })\n defaultMinute: number | null = null;\n\n /** Sets default error message. */\n @property({ type: String })\n defaultErrorMessage = '';\n\n /** Sets validation warning messaging. */\n @property({ type: String })\n warnText = '';\n\n /** Sets caption to be displayed under primary date picker elements. */\n @property({ type: String })\n caption = '';\n\n /** Sets datepicker form input value to required/required. */\n @property({ type: Boolean })\n required = false;\n\n /** Input size. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n size = 'md';\n\n /** Sets entire datepicker form element to enabled/disabled. */\n @property({ type: Boolean })\n timepickerDisabled = 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 twentyFourHourFormat: boolean | null = null;\n\n /** Sets lower boundary of datepicker date selection. */\n @property({ type: String })\n minTime: string | number | Date = '';\n\n /** Sets upper boundary of datepicker date selection. */\n @property({ type: String })\n maxTime: string | number | Date = '';\n\n /** Sets aria label attribute for error message. */\n @property({ type: String })\n errorAriaLabel = '';\n\n /** Sets title attribute for error message. */\n @property({ type: String })\n errorTitle = '';\n\n /** Sets aria label attribute for warning message. */\n @property({ type: String })\n warningAriaLabel = '';\n\n /** Sets title attribute for warning message. */\n @property({ type: String })\n warningTitle = '';\n\n /**\n * Sets whether user has interacted with timepicker for error handling.\n * @internal\n */\n @state()\n private _hasInteracted = false;\n\n /** Flatpickr instantiation.\n * @internal\n */\n @state()\n private flatpickrInstance?: flatpickr.Instance;\n\n /**\n * Queries the anchor DOM element.\n * @ignore\n */\n @query('input.input-custom')\n private _inputEl?: HTMLInputElement;\n\n /** Customizable text strings. */\n @property({ type: Object })\n textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n _textStrings = _defaultTextStrings;\n\n /** Control flag to determine if Flatpickr should open\n * @internal\n */\n private _shouldFlatpickrOpen = true;\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('change', this._onChange);\n this.addEventListener('reset', this._handleFormReset);\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.name}-${Math.random().toString(36).slice(2, 11)}`\n : `time-picker-${Math.random().toString(36).slice(2, 11)}`;\n const descriptionId = this.name ?? '';\n const placeholder = '—— : ——';\n\n return html`\n <div class=${classMap(this.getTimepickerClasses())}>\n <div\n class=\"label-text\"\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n ?disabled=${this.timepickerDisabled}\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 >*</abbr\n >`\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 })}\"\n type=\"text\"\n id=${anchorId}\n name=${this.name}\n placeholder=${placeholder}\n ?disabled=${this.timepickerDisabled}\n ?required=${this.required}\n ?invalid=${this._isInvalid}\n aria-invalid=${this._isInvalid}\n aria-labelledby=${`label-${anchorId}`}\n @click=${this.handleInputClickEvent}\n @focus=${this.handleInputFocusEvent}\n />\n ${this.value\n ? html`\n <kyn-button\n ?disabled=${this.timepickerDisabled}\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 `\n : html`<span class=\"input-icon\">${unsafeSVG(clockIcon)}</span>`}\n </div>\n\n ${this.caption\n ? html`<div\n id=${descriptionId}\n class=\"caption\"\n aria-disabled=${this.timepickerDisabled}\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.invalidText || (this._isInvalid && this._hasInteracted)) {\n return html`<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 >\n <span\n class=\"error-icon\"\n aria-label=${`${this.errorAriaLabel}` || 'Error message icon'}\n role=\"button\"\n >${unsafeSVG(errorIcon)}</span\n >${this.invalidText ||\n this._internalValidationMsg ||\n this.defaultErrorMessage}\n </div>`;\n }\n\n if (this.warnText) {\n return html`<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 >\n ${this.warnText}\n </div>`;\n }\n\n return null;\n }\n\n getTimepickerClasses() {\n return {\n 'time-picker': true,\n 'time-picker__disabled': this.timepickerDisabled,\n };\n }\n\n override async firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n injectFlatpickrStyles(ShidokaFlatpickrTheme.toString());\n await this.updateComplete;\n this.setupAnchor();\n }\n\n override async updated(changedProperties: PropertyValues) {\n await super.updated(changedProperties);\n if (\n changedProperties.has('defaultDate') ||\n changedProperties.has('defaultHour') ||\n changedProperties.has('defaultMinute') ||\n changedProperties.has('invalidText') ||\n changedProperties.has('minTime') ||\n changedProperties.has('maxTime') ||\n changedProperties.has('twentyFourHourFormat')\n ) {\n if (this.flatpickrInstance) {\n this.updateFlatpickrOptions();\n } else {\n this.initializeFlatpickr();\n }\n }\n\n if (\n changedProperties.has('timepickerDisabled') &&\n this.timepickerDisabled &&\n this.flatpickrInstance\n ) {\n this.flatpickrInstance.close();\n }\n }\n\n private _handleClear(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n this.value = null;\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n }\n this._validate(true, false);\n }\n\n private setupAnchor() {\n if (this._inputEl) {\n this.initializeFlatpickr();\n } else {\n console.error('Internal input element not found');\n }\n }\n\n async initializeFlatpickr(): Promise<void> {\n if (!this._inputEl) return;\n if (this.flatpickrInstance) this.flatpickrInstance.destroy();\n\n this.flatpickrInstance = await initializeSingleAnchorFlatpickr({\n inputEl: this._inputEl,\n getFlatpickrOptions: () => this.getComponentFlatpickrOptions(),\n setCalendarAttributes: (instance) => {\n if (instance && instance.calendarContainer) {\n const modalDetected = !!this.closest('kyn-modal');\n setCalendarAttributes(instance, modalDetected);\n instance.calendarContainer.setAttribute('aria-label', 'Time picker');\n } else {\n console.warn('Calendar container not available...');\n }\n },\n setInitialDates: undefined,\n });\n\n hideEmptyYear();\n this._validate(false, false);\n }\n\n async updateFlatpickrOptions(): Promise<void> {\n if (!this.flatpickrInstance) return;\n\n const newOptions = await this.getComponentFlatpickrOptions();\n Object.keys(newOptions).forEach((key) => {\n if (key in this.flatpickrInstance!.config) {\n this.flatpickrInstance!.set(\n key as keyof BaseOptions,\n newOptions[key as keyof BaseOptions]\n );\n }\n });\n\n this.flatpickrInstance.redraw();\n\n hideEmptyYear();\n\n this.setInitialDates(this.flatpickrInstance);\n\n setTimeout(() => {\n if (this.flatpickrInstance && this.flatpickrInstance.calendarContainer) {\n const modalDetected = !!this.closest('kyn-modal');\n setCalendarAttributes(this.flatpickrInstance, modalDetected);\n this.flatpickrInstance.calendarContainer.setAttribute(\n 'aria-label',\n 'Time picker'\n );\n } else {\n console.warn('Calendar container not available...');\n }\n }, 0);\n }\n\n async getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>> {\n const modal = this.closest('kyn-modal');\n const container = modal ? modal : document.body;\n\n return getFlatpickrOptions({\n locale: this.locale,\n enableTime: true,\n twentyFourHourFormat: this.twentyFourHourFormat ?? undefined,\n inputEl: this._inputEl!,\n allowInput: true,\n dateFormat: !this.twentyFourHourFormat ? 'h:i K' : 'H:i',\n minTime: this.minTime,\n maxTime: this.maxTime,\n defaultDate: this.defaultDate ?? undefined,\n defaultHour: this.defaultHour ?? undefined,\n defaultMinute: this.defaultMinute ?? undefined,\n loadLocale,\n mode: 'time',\n noCalendar: true,\n onChange: this.handleTimeChange.bind(this),\n onClose: this.handleClose.bind(this),\n onOpen: this.handleOpen.bind(this),\n appendTo: container,\n });\n }\n\n setInitialDates(instance: flatpickr.Instance): void {\n if (this.defaultDate) {\n instance.setDate(this.defaultDate, true);\n } else if (this.defaultHour !== null && this.defaultMinute !== null) {\n const now = new Date();\n now.setHours(this.defaultHour);\n now.setMinutes(this.defaultMinute);\n now.setSeconds(0);\n now.setMilliseconds(0);\n instance.setDate(now, true);\n } else {\n instance.clear();\n }\n\n if (this._inputEl) {\n this._inputEl.value = instance.input.value;\n }\n }\n\n handleOpen(): void {\n if (!this._shouldFlatpickrOpen) {\n this.flatpickrInstance?.close();\n this._shouldFlatpickrOpen = true;\n }\n }\n\n async handleClose(): Promise<void> {\n this._hasInteracted = true;\n this._validate(true, false);\n await this.updateComplete;\n }\n\n async handleTimeChange(\n selectedDates: Date[],\n dateStr: string\n ): Promise<void> {\n if (selectedDates.length > 0) {\n this.value = selectedDates[0];\n emitValue(this, 'on-change', { time: dateStr });\n } else {\n this.value = null;\n emitValue(this, 'on-change', { time: '' });\n }\n\n this._validate(true, false);\n await this.updateComplete;\n }\n\n private _validate(interacted: boolean, report: boolean): void {\n if (!this._inputEl || !(this._inputEl instanceof HTMLInputElement)) {\n return;\n }\n\n if (interacted) {\n this._hasInteracted = true;\n }\n\n const isEmpty = !this._inputEl.value.trim();\n const isRequired = this.required;\n\n let validity = this._inputEl.validity;\n let validationMessage = this._inputEl.validationMessage;\n\n if (isRequired && isEmpty) {\n validity = { ...validity, valueMissing: true };\n validationMessage = this.defaultErrorMessage;\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\n this._internals.setValidity(validity, validationMessage, this._inputEl);\n this._isInvalid =\n !isValid && (this._hasInteracted || this.invalidText !== '');\n this._internalValidationMsg = validationMessage;\n\n if (report) {\n this._internals.reportValidity();\n }\n\n this.requestUpdate();\n }\n\n private _onChange() {\n this._validate(true, false);\n }\n\n private _handleFormReset() {\n this.value = null;\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n }\n this._hasInteracted = false;\n this._validate(false, false);\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 handleInputClick(this.setShouldFlatpickrOpen.bind(this));\n }\n\n private handleInputFocusEvent() {\n handleInputFocus(\n this._shouldFlatpickrOpen,\n this.closeFlatpickr.bind(this),\n this.setShouldFlatpickrOpen.bind(this)\n );\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('change', this._onChange);\n this.removeEventListener('reset', this._handleFormReset);\n\n if (this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n this.flatpickrInstance = undefined;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-time-picker': TimePicker;\n }\n}\n"],"names":["_defaultTextStrings","requiredText","clearAll","TimePicker","FormMixin","LitElement","constructor","this","label","locale","value","defaultDate","defaultHour","defaultMinute","defaultErrorMessage","warnText","caption","required","size","timepickerDisabled","twentyFourHourFormat","minTime","maxTime","errorAriaLabel","errorTitle","warningAriaLabel","warningTitle","_hasInteracted","textStrings","_textStrings","_shouldFlatpickrOpen","connectedCallback","super","addEventListener","_onChange","_handleFormReset","render","errorId","name","warningId","anchorId","Math","random","toString","slice","descriptionId","_a","html","classMap","getTimepickerClasses","preventFlatpickrOpen","_b","_c","_isInvalid","handleInputClickEvent","handleInputFocusEvent","_handleClear","unsafeSVG","clearIcon","clockIcon","renderValidationMessage","invalidText","errorIcon","_internalValidationMsg","firstUpdated","changedProperties","injectFlatpickrStyles","ShidokaFlatpickrTheme","updateComplete","setupAnchor","updated","has","flatpickrInstance","updateFlatpickrOptions","initializeFlatpickr","close","event","preventDefault","stopPropagation","clear","_validate","_inputEl","console","error","destroy","initializeSingleAnchorFlatpickr","inputEl","getFlatpickrOptions","getComponentFlatpickrOptions","setCalendarAttributes","instance","calendarContainer","modalDetected","closest","setAttribute","warn","setInitialDates","undefined","hideEmptyYear","newOptions","Object","keys","forEach","key","config","set","redraw","setTimeout","modal","container","document","body","enableTime","allowInput","dateFormat","_d","loadLocale","mode","noCalendar","onChange","handleTimeChange","bind","onClose","handleClose","onOpen","handleOpen","appendTo","setDate","now","Date","setHours","setMinutes","setSeconds","setMilliseconds","input","selectedDates","dateStr","length","emitValue","time","interacted","report","HTMLInputElement","isEmpty","trim","isRequired","validity","validationMessage","valueMissing","customError","isValid","_internals","setValidity","reportValidity","requestUpdate","setShouldFlatpickrOpen","closeFlatpickr","handleInputClick","handleInputFocus","disconnectedCallback","removeEventListener","styles","TimepickerStyles","__decorate","property","type","String","prototype","Number","Boolean","state","query","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"timepicker.js","sources":["../../../../src/components/reusable/timepicker/timepicker.ts"],"sourcesContent":["import { html, LitElement, PropertyValues } 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';\n\nimport '../../reusable/button';\n\nimport {\n langsArray,\n injectFlatpickrStyles,\n initializeSingleAnchorFlatpickr,\n getFlatpickrOptions,\n preventFlatpickrOpen,\n handleInputClick,\n handleInputFocus,\n setCalendarAttributes,\n loadLocale,\n emitValue,\n hideEmptyYear,\n} from '../../../common/helpers/flatpickr';\n\nimport flatpickr from 'flatpickr';\nimport { BaseOptions } from 'flatpickr/dist/types/options';\n\nimport TimepickerStyles from './timepicker.scss';\nimport ShidokaFlatpickrTheme from '../../../common/scss/shidoka-flatpickr-theme.scss';\n\nimport { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\n\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-filled.svg';\nimport clockIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/24/time.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/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};\n\n/**\n * Timepicker: uses Flatpickr library,time picker implementation -- `https://flatpickr.js.org/examples/#time-picker`\n * @fires on-change - Captures the input event and emits the selected value and original event details.\n * @slot tooltip - Slot for tooltip.\n */\n@customElement('kyn-time-picker')\nexport class TimePicker extends FormMixin(LitElement) {\n static override styles = [TimepickerStyles, ShidokaFlatpickrTheme];\n\n /** Label text. */\n @property({ type: String })\n label = '';\n\n /** Sets desired locale and, if supported, dynamically loads language lib */\n @property({ type: String })\n locale: SupportedLocale = 'en';\n\n /** Sets date/time value. */\n @property({ type: Object })\n override value: Date | null = null;\n\n /** Sets default time value. */\n @property({ type: String })\n defaultDate = '';\n\n /** Sets initial value of the hour element. */\n @property({ type: Number })\n defaultHour: number | null = null;\n\n /** Sets initial value of the minute element. */\n @property({ type: Number })\n defaultMinute: number | null = null;\n\n /** Sets default error message. */\n @property({ type: String })\n defaultErrorMessage = '';\n\n /** Sets validation warning messaging. */\n @property({ type: String })\n warnText = '';\n\n /** Sets caption to be displayed under primary date picker elements. */\n @property({ type: String })\n caption = '';\n\n /** Sets datepicker form input value to required/required. */\n @property({ type: Boolean })\n required = false;\n\n /** Input size. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n size = 'md';\n\n /** Sets entire datepicker form element to enabled/disabled. */\n @property({ type: Boolean })\n timepickerDisabled = 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 twentyFourHourFormat: boolean | null = null;\n\n /** Sets lower boundary of datepicker date selection. */\n @property({ type: String })\n minTime: string | number | Date = '';\n\n /** Sets upper boundary of datepicker date selection. */\n @property({ type: String })\n maxTime: string | number | Date = '';\n\n /** Sets aria label attribute for error message. */\n @property({ type: String })\n errorAriaLabel = '';\n\n /** Sets title attribute for error message. */\n @property({ type: String })\n errorTitle = '';\n\n /** Sets aria label attribute for warning message. */\n @property({ type: String })\n warningAriaLabel = '';\n\n /** Sets title attribute for warning message. */\n @property({ type: String })\n warningTitle = '';\n\n /**\n * Sets whether user has interacted with timepicker for error handling.\n * @internal\n */\n @state()\n private _hasInteracted = false;\n\n /** Flatpickr instantiation.\n * @internal\n */\n @state()\n private flatpickrInstance?: flatpickr.Instance;\n\n /**\n * Queries the anchor DOM element.\n * @ignore\n */\n @query('input.input-custom')\n private _inputEl?: HTMLInputElement;\n\n /** Customizable text strings. */\n @property({ type: Object })\n textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n _textStrings = _defaultTextStrings;\n\n /** Control flag to determine if Flatpickr should open\n * @internal\n */\n private _shouldFlatpickrOpen = true;\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('change', this._onChange);\n this.addEventListener('reset', this._handleFormReset);\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.name}-${Math.random().toString(36).slice(2, 11)}`\n : `time-picker-${Math.random().toString(36).slice(2, 11)}`;\n const descriptionId = this.name ?? '';\n const placeholder = '—— : ——';\n\n return html`\n <div class=${classMap(this.getTimepickerClasses())}>\n <div\n class=\"label-text\"\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n ?disabled=${this.timepickerDisabled}\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 >*</abbr\n >`\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 })}\"\n type=\"text\"\n id=${anchorId}\n name=${this.name}\n placeholder=${placeholder}\n ?disabled=${this.timepickerDisabled}\n ?required=${this.required}\n ?invalid=${this._isInvalid}\n aria-invalid=${this._isInvalid}\n aria-labelledby=${`label-${anchorId}`}\n @click=${this.handleInputClickEvent}\n @focus=${this.handleInputFocusEvent}\n />\n ${this.value\n ? html`\n <kyn-button\n ?disabled=${this.timepickerDisabled}\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 `\n : html`<span class=\"input-icon\">${unsafeSVG(clockIcon)}</span>`}\n </div>\n\n ${this.caption\n ? html`<div\n id=${descriptionId}\n class=\"caption\"\n aria-disabled=${this.timepickerDisabled}\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.invalidText || (this._isInvalid && this._hasInteracted)) {\n return html`<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 >\n <span\n class=\"error-icon\"\n aria-label=${`${this.errorAriaLabel}` || 'Error message icon'}\n role=\"button\"\n >${unsafeSVG(errorIcon)}</span\n >${this.invalidText ||\n this._internalValidationMsg ||\n this.defaultErrorMessage}\n </div>`;\n }\n\n if (this.warnText) {\n return html`<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 >\n ${this.warnText}\n </div>`;\n }\n\n return null;\n }\n\n getTimepickerClasses() {\n return {\n 'time-picker': true,\n 'time-picker__disabled': this.timepickerDisabled,\n };\n }\n\n override async firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n injectFlatpickrStyles(ShidokaFlatpickrTheme.toString());\n await this.updateComplete;\n this.setupAnchor();\n }\n\n override async updated(changedProperties: PropertyValues) {\n await super.updated(changedProperties);\n if (\n changedProperties.has('defaultDate') ||\n changedProperties.has('defaultHour') ||\n changedProperties.has('defaultMinute') ||\n changedProperties.has('invalidText') ||\n changedProperties.has('minTime') ||\n changedProperties.has('maxTime') ||\n changedProperties.has('twentyFourHourFormat')\n ) {\n if (this.flatpickrInstance) {\n this.updateFlatpickrOptions();\n } else {\n this.initializeFlatpickr();\n }\n }\n\n if (\n changedProperties.has('timepickerDisabled') &&\n this.timepickerDisabled &&\n this.flatpickrInstance\n ) {\n this.flatpickrInstance.close();\n }\n }\n\n private _handleClear(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n this.value = null;\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n }\n this._validate(true, false);\n }\n\n private setupAnchor() {\n if (this._inputEl) {\n this.initializeFlatpickr();\n } else {\n console.error('Internal input element not found');\n }\n }\n\n async initializeFlatpickr(): Promise<void> {\n if (!this._inputEl) return;\n if (this.flatpickrInstance) this.flatpickrInstance.destroy();\n\n this.flatpickrInstance = await initializeSingleAnchorFlatpickr({\n inputEl: this._inputEl,\n getFlatpickrOptions: () => this.getComponentFlatpickrOptions(),\n setCalendarAttributes: (instance) => {\n if (instance && instance.calendarContainer) {\n const modalDetected = !!this.closest('kyn-modal');\n setCalendarAttributes(instance, modalDetected);\n instance.calendarContainer.setAttribute('aria-label', 'Time picker');\n } else {\n console.warn('Calendar container not available...');\n }\n },\n setInitialDates: undefined,\n });\n\n hideEmptyYear();\n this._validate(false, false);\n }\n\n async updateFlatpickrOptions(): Promise<void> {\n if (!this.flatpickrInstance) return;\n\n const newOptions = await this.getComponentFlatpickrOptions();\n Object.keys(newOptions).forEach((key) => {\n if (key in this.flatpickrInstance!.config) {\n this.flatpickrInstance!.set(\n key as keyof BaseOptions,\n newOptions[key as keyof BaseOptions]\n );\n }\n });\n\n this.flatpickrInstance.redraw();\n\n hideEmptyYear();\n\n this.setInitialDates(this.flatpickrInstance);\n\n setTimeout(() => {\n if (this.flatpickrInstance && this.flatpickrInstance.calendarContainer) {\n const modalDetected = !!this.closest('kyn-modal');\n setCalendarAttributes(this.flatpickrInstance, modalDetected);\n this.flatpickrInstance.calendarContainer.setAttribute(\n 'aria-label',\n 'Time picker'\n );\n } else {\n console.warn('Calendar container not available...');\n }\n }, 0);\n }\n\n async getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>> {\n const modal = this.closest('kyn-modal');\n const container = modal ? modal : document.body;\n\n return getFlatpickrOptions({\n locale: this.locale,\n enableTime: true,\n twentyFourHourFormat: this.twentyFourHourFormat ?? undefined,\n inputEl: this._inputEl!,\n allowInput: true,\n dateFormat: !this.twentyFourHourFormat ? 'h:i K' : 'H:i',\n minTime: this.minTime,\n maxTime: this.maxTime,\n defaultDate: this.defaultDate ?? undefined,\n defaultHour: this.defaultHour ?? undefined,\n defaultMinute: this.defaultMinute ?? undefined,\n loadLocale,\n mode: 'time',\n noCalendar: true,\n onChange: this.handleTimeChange.bind(this),\n onClose: this.handleClose.bind(this),\n onOpen: this.handleOpen.bind(this),\n appendTo: container,\n });\n }\n\n setInitialDates(instance: flatpickr.Instance): void {\n if (this.defaultDate) {\n instance.setDate(this.defaultDate, true);\n } else if (this.defaultHour !== null && this.defaultMinute !== null) {\n const now = new Date();\n now.setHours(this.defaultHour);\n now.setMinutes(this.defaultMinute);\n now.setSeconds(0);\n now.setMilliseconds(0);\n instance.setDate(now, true);\n } else {\n instance.clear();\n }\n\n if (this._inputEl) {\n this._inputEl.value = instance.input.value;\n }\n }\n\n handleOpen(): void {\n if (!this._shouldFlatpickrOpen) {\n this.flatpickrInstance?.close();\n this._shouldFlatpickrOpen = true;\n }\n }\n\n async handleClose(): Promise<void> {\n this._hasInteracted = true;\n this._validate(true, false);\n await this.updateComplete;\n }\n\n async handleTimeChange(\n selectedDates: Date[],\n dateStr: string\n ): Promise<void> {\n if (selectedDates.length > 0) {\n this.value = selectedDates[0];\n emitValue(this, 'on-change', { time: dateStr });\n } else {\n this.value = null;\n emitValue(this, 'on-change', { time: '' });\n }\n\n this._validate(true, false);\n await this.updateComplete;\n }\n\n private _validate(interacted: boolean, report: boolean): void {\n if (!this._inputEl || !(this._inputEl instanceof HTMLInputElement)) {\n return;\n }\n\n if (interacted) {\n this._hasInteracted = true;\n }\n\n const isEmpty = !this._inputEl.value.trim();\n const isRequired = this.required;\n\n let validity = this._inputEl.validity;\n let validationMessage = this._inputEl.validationMessage;\n\n if (isRequired && isEmpty) {\n validity = { ...validity, valueMissing: true };\n validationMessage =\n this.defaultErrorMessage || this._textStrings.pleaseSelectDate;\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\n if (!isValid && !validationMessage) {\n validationMessage = this._textStrings.pleaseSelectValidDate;\n }\n\n this._internals.setValidity(validity, validationMessage, this._inputEl);\n this._isInvalid =\n !isValid && (this._hasInteracted || this.invalidText !== '');\n this._internalValidationMsg = validationMessage;\n\n if (report) {\n this._internals.reportValidity();\n }\n\n this.requestUpdate();\n }\n\n private _onChange() {\n this._validate(true, false);\n }\n\n private _handleFormReset() {\n this.value = null;\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n }\n this._hasInteracted = false;\n this._validate(false, false);\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 handleInputClick(this.setShouldFlatpickrOpen.bind(this));\n }\n\n private handleInputFocusEvent() {\n handleInputFocus(\n this._shouldFlatpickrOpen,\n this.closeFlatpickr.bind(this),\n this.setShouldFlatpickrOpen.bind(this)\n );\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('change', this._onChange);\n this.removeEventListener('reset', this._handleFormReset);\n\n if (this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n this.flatpickrInstance = undefined;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-time-picker': TimePicker;\n }\n}\n"],"names":["_defaultTextStrings","requiredText","clearAll","pleaseSelectDate","pleaseSelectValidDate","TimePicker","FormMixin","LitElement","constructor","this","label","locale","value","defaultDate","defaultHour","defaultMinute","defaultErrorMessage","warnText","caption","required","size","timepickerDisabled","twentyFourHourFormat","minTime","maxTime","errorAriaLabel","errorTitle","warningAriaLabel","warningTitle","_hasInteracted","textStrings","_textStrings","_shouldFlatpickrOpen","connectedCallback","super","addEventListener","_onChange","_handleFormReset","render","errorId","name","warningId","anchorId","Math","random","toString","slice","descriptionId","_a","html","classMap","getTimepickerClasses","preventFlatpickrOpen","_b","_c","_isInvalid","handleInputClickEvent","handleInputFocusEvent","_handleClear","unsafeSVG","clearIcon","clockIcon","renderValidationMessage","invalidText","errorIcon","_internalValidationMsg","firstUpdated","changedProperties","injectFlatpickrStyles","ShidokaFlatpickrTheme","updateComplete","setupAnchor","updated","has","flatpickrInstance","updateFlatpickrOptions","initializeFlatpickr","close","event","preventDefault","stopPropagation","clear","_validate","_inputEl","console","error","destroy","initializeSingleAnchorFlatpickr","inputEl","getFlatpickrOptions","getComponentFlatpickrOptions","setCalendarAttributes","instance","calendarContainer","modalDetected","closest","setAttribute","warn","setInitialDates","undefined","hideEmptyYear","newOptions","Object","keys","forEach","key","config","set","redraw","setTimeout","modal","container","document","body","enableTime","allowInput","dateFormat","_d","loadLocale","mode","noCalendar","onChange","handleTimeChange","bind","onClose","handleClose","onOpen","handleOpen","appendTo","setDate","now","Date","setHours","setMinutes","setSeconds","setMilliseconds","input","selectedDates","dateStr","length","emitValue","time","interacted","report","HTMLInputElement","isEmpty","trim","isRequired","validity","validationMessage","valueMissing","customError","isValid","_internals","setValidity","reportValidity","requestUpdate","setShouldFlatpickrOpen","closeFlatpickr","handleInputClick","handleInputFocus","disconnectedCallback","removeEventListener","styles","TimepickerStyles","__decorate","property","type","String","prototype","Number","Boolean","state","query","customElement"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kyndryl-design-system/shidoka-applications",
3
- "version": "2.9.0",
3
+ "version": "2.9.1",
4
4
  "description": "Shidoka Web Components for Applications",
5
5
  "main": "index.js",
6
6
  "type": "module",