@kyndryl-design-system/shidoka-applications 2.16.1 → 2.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import{r as e,f as t,E as n}from"../../vendor/flatpickr-bbd13d61.js";import{langsArray as a}from"../flatpickrLangs.js";let i=!1;const o={"Y-m-d":"yyyy-mm-dd","m-d-Y":"mm-dd-yyyy","d-m-Y":"dd-mm-yyyy","Y-m-d H:i":"yyyy-mm-dd —— : ——","Y-m-d h:i K":"yyyy-mm-dd —— : ——","m-d-Y H:i":"mm-dd-yyyy —— : ——","m-d-Y h:i K":"mm-dd-yyyy —— : ——","d-m-Y H:i":"dd-mm-yyyy —— : ——","d-m-Y h:i K":"dd-mm-yyyy —— : ——","Y-m-d H:i:s":"yyyy-mm-dd —— : —— ——","m-d-Y H:i:s":"mm-dd-yyyy —— : —— ——","d-m-Y H:i:s":"dd-mm-yyyy —— : —— ——"};function r(e){const t=e.split("-")[0].toLowerCase();return a.includes(t)}function l(e,t){e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),t(!1)}function s(e){e(!0)}function c(e,t,n){e||(t(),n(!0))}function d(e){e.weekdays&&e.weekdays.shorthand&&(e.weekdays.shorthand=e.weekdays.shorthand.map((e=>e.charAt(0))))}function u(e){if(!i){const t=document.createElement("style");t.id="flatpickr-custom-styles",t.textContent=e,document.head.appendChild(t),i=!0}}async function m(n){const{inputEl:a,endinputEl:i,getFlatpickrOptions:o,setCalendarAttributes:r,setInitialDates:l}=n;if(a)try{const n=await o(),s=e=>{if(e instanceof HTMLInputElement)return e;try{let t=e.querySelector("input");if(!t){if(t=document.createElement("input"),t.type="text",t.style.display="none",!e.isConnected)throw new Error("Element is not connected to the DOM");e.appendChild(t)}return t}catch(e){throw console.error("Error creating or appending input element:",e),e}},c=s(a);if(i){const t=s(i);n.plugins=[...n.plugins||[],e({input:t})]}const d=t(c,n);return d?(setTimeout((()=>{r&&r(d)}),0),l&&l(d),a instanceof HTMLInputElement||a.addEventListener("click",(()=>{d.open()})),!i||i instanceof HTMLInputElement||i.addEventListener("click",(()=>{d.open()})),d):void console.error("Failed to initialize Flatpickr")}catch(e){return void console.error("Error initializing Flatpickr:",e)}else console.error("Cannot initialize Flatpickr: inputEl is undefined")}async function p(e){const{inputEl:n,getFlatpickrOptions:a,setCalendarAttributes:i,setInitialDates:o,appendTo:r}=e;if(n)try{const e=await a(),l=e.dateFormat||("time"===e.mode?"H:i":"Y-m-d");let s;if(e.dateFormat=l,n instanceof HTMLInputElement)s=n,e.clickOpens=!0;else try{s=document.createElement("input"),s.type="text",s.style.display="none";const t=r||n;if(!t)throw new Error("No valid element to append input to");t.appendChild(s),e.clickOpens=!1,e.positionElement=n}catch(e){throw console.error("Error creating input element:",e),e}const c=t(s,e);return c?(setTimeout((()=>{i&&i(c)}),0),o&&o(c),n instanceof HTMLInputElement||n.addEventListener("click",(()=>c.open())),c):void console.error("Failed to initialize Flatpickr")}catch(e){return console.error("Error initializing Flatpickr:",e),void(e instanceof Error&&console.error("Error details:",e.message))}else console.error("Cannot initialize Flatpickr: inputEl is undefined")}function y(e){return e in o}function f(e,t){if(y(e)){return t?`${o[e]} to ${o[e]}`:o[e]}return"Select date"}function h(e){return["kyn-modal","kyn-side-drawer"].map((t=>e.closest(t))).find((e=>null!==e))||document.body}async function g(e){var a;if(!e)return console.error("Context is required for getFlatpickrOptions"),{};const{locale:i,dateFormat:o,enableTime:r,twentyFourHourFormat:l,inputEl:s,allowInput:c,minDate:u,maxDate:m,minTime:p,maxTime:y,defaultDate:f,defaultHour:h,defaultMinute:g,enable:w,disable:E,mode:k="single",closeOnSelect:b,wrap:v=!1,noCalendar:C=!1,appendTo:L,onChange:D,onClose:F,onOpen:N,loadLocale:T}=e;let H;i||console.warn("Locale not provided. Falling back to default."),o||console.warn("Date format not provided. Using default format.");try{H=await T(i),d(H)}catch(e){console.warn("Error loading locale, falling back to default:",e),H=n}const Y=i.split("-")[0].toLowerCase(),I=["en","es"].includes(Y),M=window.innerWidth>=767,x=o||("time"===k?l?"H:i":"h:i K":"Y-m-d"),A={dateFormat:x,mode:"time"===k?"single":k,enableTime:"time"===k||r,noCalendar:"time"===k||C,defaultDate:f,enableSeconds:!1,allowInput:c||!1,clickOpens:!0,time_24hr:"boolean"==typeof l?l:!I,weekNumbers:!1,static:null!==(a=e.static)&&void 0!==a&&a,wrap:v,showMonths:"range"===k&&M?2:1,monthSelectorType:"static",locale:H,closeOnSelect:null!=b?b:!("multiple"===k||r),onChange:(e,t,n)=>{D&&D(e,t,n)},onClose:(e,t,n)=>{if("range"===k&&n.calendarContainer){const t=n.calendarContainer.querySelector(".flatpickr-time");0===e.length&&(null==t||t.classList.add("default-time-select"),null==t||t.classList.remove("start-date","end-date"))}F&&F(e,t,n)},onOpen:(e,t,n)=>{N&&N(e,t,n)}};if("range"===k&&(A.onReady=(e,t,n)=>{if(n.calendarContainer){const e=n.calendarContainer.querySelector(".flatpickr-time");null==e||e.classList.add("default-time-select")}}),s instanceof HTMLInputElement||(A.positionElement=s),u&&(A.minDate=u),m&&(A.maxDate=m),p&&(A.minTime=p),y&&(A.maxTime=y),f)if(!Array.isArray(f)||"range"!==k&&"multiple"!==k){if(!Array.isArray(f)&&"string"==typeof f){let e=null;switch(x){case"Y-m-d":{const[t,n,a]=f.split("-").map(Number);e=isNaN(t)||isNaN(n)||isNaN(a)?null:new Date(Date.UTC(t,n-1,a,12));break}case"d-m-Y":{const[t,n,a]=f.split("-").map(Number);e=isNaN(t)||isNaN(n)||isNaN(a)?null:new Date(Date.UTC(a,n-1,t,12));break}case"m-d-Y":{const[t,n,a]=f.split("-").map(Number);e=isNaN(t)||isNaN(n)||isNaN(a)?null:new Date(Date.UTC(a,t-1,n,12));break}default:e=new Date(f)}A.defaultDate=e||f}}else A.defaultDate=f;return null!=h&&(A.defaultHour=h),null!=g&&(A.defaultMinute=g),w&&w.length>0&&(A.enable=w),E&&E.length>0&&(A.disable=E.map((e=>{if(e instanceof Date)return e;if("number"==typeof e)return new Date(e);if("string"==typeof e){return t.parseDate(e,x)||e}return e}))),L&&(A.appendTo=L),A}function w(e){return e.includes("H:")||e.includes("h:")}function E(e,t){(null==e?void 0:e.calendarContainer)?requestAnimationFrame((()=>{try{const{calendarContainer:n,config:a}=e;n.setAttribute("role","application"),n.setAttribute("aria-label","Calendar"),n.classList.remove("container-modal","container-body");const i=t?"container-modal":"container-default";n.classList.add(i),a&&void 0!==a.static&&(n.classList.remove("static-position-true","static-position-false"),n.classList.add(`static-position-${a.static}`))}catch(e){console.warn("Error setting calendar attributes:",e)}})):console.warn("Calendar container not available...")}const k={};async function b(e){var t,a,i;if("en"===e)return n;if(k[e])return k[e];if(!r(e))return console.warn(`Unsupported locale "${e}". Falling back to English.`),n;try{const o=e.split("-")[0].toLowerCase(),r=await import(`flatpickr/dist/l10n/${o}.js`),l=null!==(i=null!==(t=r[o])&&void 0!==t?t:null===(a=r.default)||void 0===a?void 0:a[o])&&void 0!==i?i:r.default;return l?(k[e]=l,l):(console.warn(`Locale configuration not found for "${e}". Falling back to English.`),n)}catch(t){return console.error(`Failed to load locale "${e}". Falling back to English.`,t),n}}function v(){const e=document.querySelector(".flatpickr-current-month span.cur-month");document.querySelectorAll(".numInputWrapper").forEach((t=>{const n=t.querySelector(".numInput.cur-year");n&&n.min&&n.max&&n.min===n.max&&(t.style.display="none",e&&(e.style.marginLeft="auto"))}))}function C(e,t,n,a,i,o){if(!e)return console.warn("Input element is undefined..."),{isValid:!0,validationMessage:""};const r=!e.value.trim(),l=t;let s=e.validity,c=e.validationMessage;l&&r&&(s={...s,valueMissing:!0},c=a),n&&(s={...s,customError:!0},c=n),o.setValidity(s,c,e);return{isValid:!n&&(!i||!r||r&&!l),validationMessage:c}}function L(e,t,n){e.dispatchEvent(new CustomEvent(t,{detail:n,bubbles:!0,composed:!0}))}export{L as emitValue,g as getFlatpickrOptions,h as getModalContainer,f as getPlaceholder,s as handleInputClick,c as handleInputFocus,v as hideEmptyYear,m as initializeMultiAnchorFlatpickr,p as initializeSingleAnchorFlatpickr,u as injectFlatpickrStyles,r as isSupportedLocale,y as isValidDateFormat,b as loadLocale,d as modifyWeekdayShorthands,l as preventFlatpickrOpen,E as setCalendarAttributes,w as updateEnableTime,C as validate};
1
+ import{r as e,f as t,E as n}from"../../vendor/flatpickr-bbd13d61.js";import{langsArray as a}from"../flatpickrLangs.js";let i=!1;const o={"Y-m-d":"yyyy-mm-dd","m-d-Y":"mm-dd-yyyy","d-m-Y":"dd-mm-yyyy","Y-m-d H:i":"yyyy-mm-dd —— : ——","Y-m-d h:i K":"yyyy-mm-dd —— : ——","m-d-Y H:i":"mm-dd-yyyy —— : ——","m-d-Y h:i K":"mm-dd-yyyy —— : ——","d-m-Y H:i":"dd-mm-yyyy —— : ——","d-m-Y h:i K":"dd-mm-yyyy —— : ——","Y-m-d H:i:s":"yyyy-mm-dd —— : —— ——","m-d-Y H:i:s":"mm-dd-yyyy —— : —— ——","d-m-Y H:i:s":"dd-mm-yyyy —— : —— ——"};function r(e){const t=e.split("-")[0].toLowerCase();return a.includes(t)}function l(e,t){e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),t(!1)}function s(e){e(!0)}function c(e,t,n){e||(t(),n(!0))}function d(e){e.weekdays&&e.weekdays.shorthand&&(e.weekdays.shorthand=e.weekdays.shorthand.map((e=>e.charAt(0))))}function u(e){if(!i){const t=document.createElement("style");t.id="flatpickr-custom-styles",t.textContent=e,document.head.appendChild(t),i=!0}}async function m(n){const{inputEl:a,endinputEl:i,getFlatpickrOptions:o,setCalendarAttributes:r,setInitialDates:l}=n;if(a)try{const n=await o(),s=e=>{if(e instanceof HTMLInputElement)return e;try{let t=e.querySelector("input");if(!t){if(t=document.createElement("input"),t.type="text",t.style.display="none",!e.isConnected)throw new Error("Element is not connected to the DOM");e.appendChild(t)}return t}catch(e){throw console.error("Error creating or appending input element:",e),e}},c=s(a);if(i){const t=s(i);n.plugins=[...n.plugins||[],e({input:t})]}const d=t(c,n);return d?(setTimeout((()=>{r&&r(d)}),0),l&&l(d),a instanceof HTMLInputElement||a.addEventListener("click",(()=>{d.open()})),!i||i instanceof HTMLInputElement||i.addEventListener("click",(()=>{d.open()})),d):void console.error("Failed to initialize Flatpickr")}catch(e){return void console.error("Error initializing Flatpickr:",e)}else console.error("Cannot initialize Flatpickr: inputEl is undefined")}async function p(e){const{inputEl:n,getFlatpickrOptions:a,setCalendarAttributes:i,setInitialDates:o,appendTo:r}=e;if(n)try{const e=await a(),l=e.dateFormat||("time"===e.mode?"H:i":"Y-m-d");let s;if(e.dateFormat=l,n instanceof HTMLInputElement)s=n,e.clickOpens=!0;else try{s=document.createElement("input"),s.type="text",s.style.display="none";const t=r||n;if(!t)throw new Error("No valid element to append input to");t.appendChild(s),e.clickOpens=!1,e.positionElement=n}catch(e){throw console.error("Error creating input element:",e),e}const c=t(s,e);return c?(setTimeout((()=>{i&&i(c)}),0),o&&o(c),n instanceof HTMLInputElement||n.addEventListener("click",(()=>c.open())),c):void console.error("Failed to initialize Flatpickr")}catch(e){return console.error("Error initializing Flatpickr:",e),void(e instanceof Error&&console.error("Error details:",e.message))}else console.error("Cannot initialize Flatpickr: inputEl is undefined")}function y(e){return e in o}function f(e,t){if(y(e)){return t?`${o[e]} to ${o[e]}`:o[e]}return"Select date"}function h(e){return["kyn-modal","kyn-side-drawer"].map((t=>e.closest(t))).find((e=>null!==e))||document.body}async function g(e){var a;if(!e)return console.error("Context is required for getFlatpickrOptions"),{};const{locale:i,dateFormat:o,enableTime:r,twentyFourHourFormat:l,inputEl:s,allowInput:c,minDate:u,maxDate:m,minTime:p,maxTime:y,defaultDate:f,defaultHour:h,defaultMinute:g,enable:w,disable:E,mode:k="single",closeOnSelect:b,wrap:v=!1,noCalendar:C=!1,appendTo:L,onChange:F,onClose:N,onOpen:D,loadLocale:H}=e;let T;i||console.warn("Locale not provided. Falling back to default."),o||console.warn("Date format not provided. Using default format.");try{T=await H(i),d(T)}catch(e){console.warn("Error loading locale, falling back to default:",e),T=n}const Y=i.split("-")[0].toLowerCase(),I=["en","es"].includes(Y),M=window.innerWidth>=767,x=o||("time"===k?l?"H:i":"h:i K":"Y-m-d"),A={dateFormat:x,mode:"time"===k?"single":k,enableTime:"time"===k||r,noCalendar:"time"===k||C,defaultDate:f,enableSeconds:!1,allowInput:c||!1,clickOpens:!0,time_24hr:"boolean"==typeof l?l:!I,weekNumbers:!1,static:null!==(a=e.static)&&void 0!==a&&a,wrap:v,showMonths:"range"===k&&M?2:1,monthSelectorType:"static",locale:T,closeOnSelect:null!=b?b:!("multiple"===k||r),onChange:(e,t,n)=>{F&&F(e,t,n)},onClose:(e,t,n)=>{if("range"===k&&n.calendarContainer){const t=n.calendarContainer.querySelector(".flatpickr-time");0===e.length&&(null==t||t.classList.add("default-time-select"),null==t||t.classList.remove("start-date","end-date"))}N&&N(e,t,n)},onOpen:(e,t,n)=>{D&&D(e,t,n)}};if("range"===k&&(A.onReady=(e,t,n)=>{if(n.calendarContainer){const e=n.calendarContainer.querySelector(".flatpickr-time");null==e||e.classList.add("default-time-select")}}),s instanceof HTMLInputElement||(A.positionElement=s),u&&(A.minDate=u),m&&(A.maxDate=m),p&&(A.minTime=p),y&&(A.maxTime=y),f)if(!Array.isArray(f)||"range"!==k&&"multiple"!==k){if(!Array.isArray(f)&&"string"==typeof f){let e=null;switch(x){case"Y-m-d":{const[t,n,a]=f.split("-").map(Number);e=isNaN(t)||isNaN(n)||isNaN(a)?null:new Date(t,n-1,a,12);break}case"d-m-Y":{const[t,n,a]=f.split("-").map(Number);e=isNaN(t)||isNaN(n)||isNaN(a)?null:new Date(a,n-1,t,12);break}case"m-d-Y":{const[t,n,a]=f.split("-").map(Number);e=isNaN(t)||isNaN(n)||isNaN(a)?null:new Date(a,t-1,n,12);break}default:e=new Date(f)}A.defaultDate=e||f}}else A.defaultDate=f;return null!=h&&(A.defaultHour=h),null!=g&&(A.defaultMinute=g),w&&w.length>0&&(A.enable=w),E&&E.length>0&&(A.disable=E.map((e=>{if(e instanceof Date)return e;if("number"==typeof e)return new Date(e);if("string"==typeof e){return t.parseDate(e,x)||e}return e}))),L&&(A.appendTo=L),A}function w(e){return e.includes("H:")||e.includes("h:")}function E(e,t){(null==e?void 0:e.calendarContainer)?requestAnimationFrame((()=>{try{const{calendarContainer:n,config:a}=e;n.setAttribute("role","application"),n.setAttribute("aria-label","Calendar"),n.classList.remove("container-modal","container-body");const i=t?"container-modal":"container-default";n.classList.add(i),a&&void 0!==a.static&&(n.classList.remove("static-position-true","static-position-false"),n.classList.add(`static-position-${a.static}`))}catch(e){console.warn("Error setting calendar attributes:",e)}})):console.warn("Calendar container not available...")}const k={};async function b(e){var t,a,i;if("en"===e)return n;if(k[e])return k[e];if(!r(e))return console.warn(`Unsupported locale "${e}". Falling back to English.`),n;try{const o=e.split("-")[0].toLowerCase(),r=await import(`flatpickr/dist/l10n/${o}.js`),l=null!==(i=null!==(t=r[o])&&void 0!==t?t:null===(a=r.default)||void 0===a?void 0:a[o])&&void 0!==i?i:r.default;return l?(k[e]=l,l):(console.warn(`Locale configuration not found for "${e}". Falling back to English.`),n)}catch(t){return console.error(`Failed to load locale "${e}". Falling back to English.`,t),n}}function v(){const e=document.querySelector(".flatpickr-current-month span.cur-month");document.querySelectorAll(".numInputWrapper").forEach((t=>{const n=t.querySelector(".numInput.cur-year");n&&n.min&&n.max&&n.min===n.max&&(t.style.display="none",e&&(e.style.marginLeft="auto"))}))}function C(e,t,n,a,i,o){if(!e)return console.warn("Input element is undefined..."),{isValid:!0,validationMessage:""};const r=!e.value.trim(),l=t;let s=e.validity,c=e.validationMessage;l&&r&&(s={...s,valueMissing:!0},c=a),n&&(s={...s,customError:!0},c=n),o.setValidity(s,c,e);return{isValid:!n&&(!i||!r||r&&!l),validationMessage:c}}function L(e,t,n){e.dispatchEvent(new CustomEvent(t,{detail:n,bubbles:!0,composed:!0}))}export{L as emitValue,g as getFlatpickrOptions,h as getModalContainer,f as getPlaceholder,s as handleInputClick,c as handleInputFocus,v as hideEmptyYear,m as initializeMultiAnchorFlatpickr,p as initializeSingleAnchorFlatpickr,u as injectFlatpickrStyles,r as isSupportedLocale,y as isValidDateFormat,b as loadLocale,d as modifyWeekdayShorthands,l as preventFlatpickrOpen,E as setCalendarAttributes,w as updateEnableTime,C as validate};
2
2
  //# sourceMappingURL=flatpickr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flatpickr.js","sources":["../../../src/common/helpers/flatpickr.ts"],"sourcesContent":["import flatpickr from 'flatpickr';\nimport rangePlugin from 'flatpickr/dist/plugins/rangePlugin';\nimport { Instance } from 'flatpickr/dist/types/instance';\nimport { BaseOptions, Hook } from 'flatpickr/dist/types/options';\nimport { Locale } from 'flatpickr/dist/types/locale';\nimport { default as English } from 'flatpickr/dist/l10n/default.js';\nimport { langsArray, SupportedLocale } from '../flatpickrLangs';\n\nlet flatpickrStylesInjected = false;\n\ninterface BaseFlatpickrContext {\n getFlatpickrOptions: () => Promise<Partial<BaseOptions>>;\n setCalendarAttributes: (instance: Instance) => void;\n setInitialDates?: (instance: Instance) => void;\n}\n\ninterface SingleFlatpickrContext extends BaseFlatpickrContext {\n inputEl: HTMLElement;\n}\n\ninterface RangeFlatpickrContext extends BaseFlatpickrContext {\n inputEl: HTMLElement;\n endinputEl?: HTMLElement;\n}\n\nconst DATE_FORMAT_OPTIONS = {\n 'Y-m-d': 'yyyy-mm-dd',\n 'm-d-Y': 'mm-dd-yyyy',\n 'd-m-Y': 'dd-mm-yyyy',\n 'Y-m-d H:i': 'yyyy-mm-dd —— : ——',\n 'Y-m-d h:i K': 'yyyy-mm-dd —— : ——',\n 'm-d-Y H:i': 'mm-dd-yyyy —— : ——',\n 'm-d-Y h:i K': 'mm-dd-yyyy —— : ——',\n 'd-m-Y H:i': 'dd-mm-yyyy —— : ——',\n 'd-m-Y h:i K': 'dd-mm-yyyy —— : ——',\n 'Y-m-d H:i:s': 'yyyy-mm-dd —— : —— ——',\n 'm-d-Y H:i:s': 'mm-dd-yyyy —— : —— ——',\n 'd-m-Y H:i:s': 'dd-mm-yyyy —— : —— ——',\n} as const;\n\ntype DateFormatOption = keyof typeof DATE_FORMAT_OPTIONS;\n\ninterface FlatpickrOptionsContext {\n locale: string;\n dateFormat?: string;\n defaultDate?: string | Date | string[] | Date[];\n defaultHour?: number;\n defaultMinute?: number;\n enableTime: boolean;\n twentyFourHourFormat?: boolean;\n endinputEl?: HTMLElement;\n inputEl: HTMLElement;\n allowInput?: boolean;\n minDate?: string | number | Date;\n maxDate?: string | number | Date;\n minTime?: string | number | Date;\n maxTime?: string | number | Date;\n enable?: (string | number | Date)[];\n disable?: (string | number | Date)[];\n onChange?: Hook;\n onClose?: Hook;\n onOpen?: Hook;\n loadLocale: (locale: string) => Promise<Partial<Locale>>;\n mode?: 'single' | 'multiple' | 'range' | 'time';\n closeOnSelect?: boolean;\n wrap?: boolean;\n noCalendar?: boolean;\n appendTo?: HTMLElement;\n static?: boolean;\n}\n\nexport function isSupportedLocale(locale: string): boolean {\n const baseLocale = locale.split('-')[0].toLowerCase();\n return langsArray.includes(baseLocale as SupportedLocale);\n}\n\nexport function preventFlatpickrOpen(\n event: Event,\n setShouldFlatpickrOpen: (value: boolean) => void\n): void {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n setShouldFlatpickrOpen(false);\n}\n\nexport function handleInputClick(\n setShouldFlatpickrOpen: (value: boolean) => void\n): void {\n setShouldFlatpickrOpen(true);\n}\n\nexport function handleInputFocus(\n shouldFlatpickrOpen: boolean,\n closeFlatpickr: () => void,\n setShouldFlatpickrOpen: (value: boolean) => void\n): void {\n if (!shouldFlatpickrOpen) {\n closeFlatpickr();\n setShouldFlatpickrOpen(true);\n }\n}\n\nexport function modifyWeekdayShorthands(localeOptions: Partial<Locale>): void {\n if (localeOptions.weekdays && localeOptions.weekdays.shorthand) {\n localeOptions.weekdays.shorthand = localeOptions.weekdays.shorthand.map(\n (day) => day.charAt(0)\n ) as [string, string, string, string, string, string, string];\n }\n}\n\nexport function injectFlatpickrStyles(customStyle: string): void {\n if (!flatpickrStylesInjected) {\n const styleElement = document.createElement('style');\n styleElement.id = 'flatpickr-custom-styles';\n styleElement.textContent = customStyle;\n document.head.appendChild(styleElement);\n flatpickrStylesInjected = true;\n }\n}\n\nexport async function initializeMultiAnchorFlatpickr(\n context: RangeFlatpickrContext\n): Promise<Instance | undefined> {\n const {\n inputEl,\n endinputEl,\n getFlatpickrOptions,\n setCalendarAttributes,\n setInitialDates,\n } = context;\n\n if (!inputEl) {\n console.error('Cannot initialize Flatpickr: inputEl is undefined');\n return undefined;\n }\n\n try {\n const options = await getFlatpickrOptions();\n\n const getInputElement = (el: HTMLElement): HTMLInputElement => {\n if (el instanceof HTMLInputElement) {\n return el;\n } else {\n try {\n let input = el.querySelector('input') as HTMLInputElement | null;\n if (!input) {\n input = document.createElement('input');\n input.type = 'text';\n input.style.display = 'none';\n if (!el.isConnected) {\n throw new Error('Element is not connected to the DOM');\n }\n el.appendChild(input);\n }\n return input;\n } catch (error) {\n console.error('Error creating or appending input element:', error);\n throw error;\n }\n }\n };\n\n const inputElement = getInputElement(inputEl);\n if (endinputEl) {\n const endInputElement = getInputElement(endinputEl);\n options.plugins = [\n ...(options.plugins || []),\n rangePlugin({ input: endInputElement }),\n ];\n }\n\n const flatpickrInstance = flatpickr(inputElement, options) as Instance;\n\n if (flatpickrInstance) {\n setTimeout(() => {\n if (setCalendarAttributes) {\n setCalendarAttributes(flatpickrInstance);\n }\n }, 0);\n\n if (setInitialDates) {\n setInitialDates(flatpickrInstance);\n }\n\n if (!(inputEl instanceof HTMLInputElement)) {\n inputEl.addEventListener('click', () => {\n flatpickrInstance.open();\n });\n }\n\n if (endinputEl && !(endinputEl instanceof HTMLInputElement)) {\n endinputEl.addEventListener('click', () => {\n flatpickrInstance.open();\n });\n }\n\n return flatpickrInstance;\n } else {\n console.error('Failed to initialize Flatpickr');\n return undefined;\n }\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n return undefined;\n }\n}\n\nexport async function initializeSingleAnchorFlatpickr(\n context: SingleFlatpickrContext & { appendTo?: HTMLElement }\n): Promise<Instance | undefined> {\n const {\n inputEl,\n getFlatpickrOptions,\n setCalendarAttributes,\n setInitialDates,\n appendTo,\n } = context;\n if (!inputEl) {\n console.error('Cannot initialize Flatpickr: inputEl is undefined');\n return undefined;\n }\n try {\n const options = await getFlatpickrOptions();\n const effectiveDateFormat =\n options.dateFormat || (options.mode === 'time' ? 'H:i' : 'Y-m-d');\n options.dateFormat = effectiveDateFormat;\n\n let inputElement: HTMLInputElement;\n if (inputEl instanceof HTMLInputElement) {\n inputElement = inputEl;\n options.clickOpens = true;\n } else {\n try {\n inputElement = document.createElement('input');\n inputElement.type = 'text';\n inputElement.style.display = 'none';\n\n const targetElement = appendTo || inputEl;\n if (!targetElement) {\n throw new Error('No valid element to append input to');\n }\n\n targetElement.appendChild(inputElement);\n options.clickOpens = false;\n options.positionElement = inputEl;\n } catch (error) {\n console.error('Error creating input element:', error);\n throw error;\n }\n }\n const flatpickrInstance = flatpickr(inputElement, options) as Instance;\n if (flatpickrInstance) {\n setTimeout(() => {\n if (setCalendarAttributes) {\n setCalendarAttributes(flatpickrInstance);\n }\n }, 0);\n if (setInitialDates) {\n setInitialDates(flatpickrInstance);\n }\n if (!(inputEl instanceof HTMLInputElement)) {\n inputEl.addEventListener('click', () => flatpickrInstance.open());\n }\n return flatpickrInstance;\n } else {\n console.error('Failed to initialize Flatpickr');\n return undefined;\n }\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n if (error instanceof Error) {\n console.error('Error details:', error.message);\n }\n return undefined;\n }\n}\n\nexport function isValidDateFormat(format: string): format is DateFormatOption {\n return format in DATE_FORMAT_OPTIONS;\n}\n\nexport function getPlaceholder(\n dateFormat: string,\n isDateRange?: boolean\n): string {\n if (isValidDateFormat(dateFormat)) {\n const placeholder = isDateRange\n ? `${DATE_FORMAT_OPTIONS[dateFormat]} to ${DATE_FORMAT_OPTIONS[dateFormat]}`\n : DATE_FORMAT_OPTIONS[dateFormat];\n return placeholder;\n }\n return 'Select date';\n}\n\nexport function getModalContainer(element: HTMLElement): HTMLElement {\n return (\n ['kyn-modal', 'kyn-side-drawer']\n .map((selector) => element.closest(selector))\n .find((el): el is HTMLElement => el !== null) || document.body\n );\n}\n\nexport async function getFlatpickrOptions(\n context: FlatpickrOptionsContext\n): Promise<Partial<BaseOptions>> {\n if (!context) {\n console.error('Context is required for getFlatpickrOptions');\n return {};\n }\n\n const {\n locale,\n dateFormat,\n enableTime,\n twentyFourHourFormat,\n inputEl,\n allowInput,\n minDate,\n maxDate,\n minTime,\n maxTime,\n defaultDate,\n defaultHour,\n defaultMinute,\n enable,\n disable,\n mode = 'single',\n closeOnSelect,\n wrap = false,\n noCalendar = false,\n appendTo,\n onChange,\n onClose,\n onOpen,\n loadLocale,\n } = context;\n\n if (!locale) {\n console.warn('Locale not provided. Falling back to default.');\n }\n\n if (!dateFormat) {\n console.warn('Date format not provided. Using default format.');\n }\n\n let localeOptions;\n try {\n localeOptions = await loadLocale(locale);\n modifyWeekdayShorthands(localeOptions);\n } catch (error) {\n console.warn('Error loading locale, falling back to default:', error);\n localeOptions = English;\n }\n\n const baseLocale = locale.split('-')[0].toLowerCase();\n const isEnglishOr12HourLocale = ['en', 'es'].includes(baseLocale);\n\n const isWideScreen = window.innerWidth >= 767;\n\n const effectiveDateFormat =\n dateFormat ||\n (mode === 'time' ? (twentyFourHourFormat ? 'H:i' : 'h:i K') : 'Y-m-d');\n\n const options: Partial<BaseOptions> = {\n dateFormat: effectiveDateFormat,\n mode: mode === 'time' ? 'single' : mode,\n enableTime: mode === 'time' ? true : enableTime,\n noCalendar: mode === 'time' ? true : noCalendar,\n defaultDate: defaultDate,\n enableSeconds: false,\n allowInput: allowInput || false,\n clickOpens: true,\n time_24hr:\n typeof twentyFourHourFormat === 'boolean'\n ? twentyFourHourFormat\n : !isEnglishOr12HourLocale,\n weekNumbers: false,\n static: context.static ?? false,\n wrap,\n showMonths: mode === 'range' && isWideScreen ? 2 : 1,\n monthSelectorType: 'static',\n locale: localeOptions,\n closeOnSelect: closeOnSelect ?? !(mode === 'multiple' || enableTime),\n onChange: (selectedDates, dateStr, instance) => {\n onChange && onChange(selectedDates, dateStr, instance);\n },\n onClose: (selectedDates, dateStr, instance) => {\n if (mode === 'range' && instance.calendarContainer) {\n const timeContainer =\n instance.calendarContainer.querySelector('.flatpickr-time');\n if (selectedDates.length === 0) {\n timeContainer?.classList.add('default-time-select');\n timeContainer?.classList.remove('start-date', 'end-date');\n }\n }\n onClose && onClose(selectedDates, dateStr, instance);\n },\n onOpen: (selectedDates, dateStr, instance) => {\n onOpen && onOpen(selectedDates, dateStr, instance);\n },\n };\n\n if (mode === 'range') {\n options.onReady = (_, __, instance) => {\n if (instance.calendarContainer) {\n const timeContainer =\n instance.calendarContainer.querySelector('.flatpickr-time');\n timeContainer?.classList.add('default-time-select');\n }\n };\n }\n\n if (!(inputEl instanceof HTMLInputElement)) {\n options.positionElement = inputEl;\n }\n\n if (minDate) options.minDate = minDate;\n if (maxDate) options.maxDate = maxDate;\n if (minTime) options.minTime = minTime;\n if (maxTime) options.maxTime = maxTime;\n\n if (defaultDate) {\n if (\n Array.isArray(defaultDate) &&\n (mode === 'range' || mode === 'multiple')\n ) {\n options.defaultDate = defaultDate;\n } else if (!Array.isArray(defaultDate)) {\n if (typeof defaultDate === 'string') {\n let parsedDate: Date | null = null;\n switch (effectiveDateFormat) {\n case 'Y-m-d': {\n const [year, month, day] = defaultDate.split('-').map(Number);\n parsedDate =\n !isNaN(year) && !isNaN(month) && !isNaN(day)\n ? new Date(Date.UTC(year, month - 1, day, 12))\n : null;\n break;\n }\n case 'd-m-Y': {\n const [day, month, year] = defaultDate.split('-').map(Number);\n parsedDate =\n !isNaN(day) && !isNaN(month) && !isNaN(year)\n ? new Date(Date.UTC(year, month - 1, day, 12))\n : null;\n break;\n }\n case 'm-d-Y': {\n const [month, day, year] = defaultDate.split('-').map(Number);\n parsedDate =\n !isNaN(month) && !isNaN(day) && !isNaN(year)\n ? new Date(Date.UTC(year, month - 1, day, 12))\n : null;\n break;\n }\n default:\n parsedDate = new Date(defaultDate);\n break;\n }\n options.defaultDate = parsedDate || defaultDate;\n }\n }\n }\n if (defaultHour !== undefined && defaultHour !== null)\n options.defaultHour = defaultHour;\n if (defaultMinute !== undefined && defaultMinute !== null)\n options.defaultMinute = defaultMinute;\n if (enable && enable.length > 0) options.enable = enable;\n if (disable && disable.length > 0) {\n options.disable = disable.map((date) => {\n if (date instanceof Date) return date;\n if (typeof date === 'number') return new Date(date);\n if (typeof date === 'string') {\n const parsed = flatpickr.parseDate(date, effectiveDateFormat);\n return parsed || date;\n }\n return date;\n });\n }\n if (appendTo) options.appendTo = appendTo;\n\n return options;\n}\n\nexport function updateEnableTime(dateFormat: string): boolean {\n return dateFormat.includes('H:') || dateFormat.includes('h:');\n}\n\nexport function setCalendarAttributes(\n instance: Instance,\n modalDetected?: boolean\n): void {\n if (instance?.calendarContainer) {\n requestAnimationFrame(() => {\n try {\n const { calendarContainer, config } = instance;\n calendarContainer.setAttribute('role', 'application');\n calendarContainer.setAttribute('aria-label', 'Calendar');\n\n calendarContainer.classList.remove('container-modal', 'container-body');\n const containerClass = modalDetected\n ? 'container-modal'\n : 'container-default';\n calendarContainer.classList.add(containerClass);\n\n if (config && typeof config.static !== 'undefined') {\n calendarContainer.classList.remove(\n 'static-position-true',\n 'static-position-false'\n );\n calendarContainer.classList.add(`static-position-${config.static}`);\n }\n } catch (error) {\n console.warn('Error setting calendar attributes:', error);\n }\n });\n } else {\n console.warn('Calendar container not available...');\n }\n}\n\nconst localeCache: Record<string, Partial<Locale>> = {};\n\nexport async function loadLocale(locale: string): Promise<Partial<Locale>> {\n if (locale === 'en') return English;\n if (localeCache[locale]) return localeCache[locale];\n if (!isSupportedLocale(locale)) {\n console.warn(`Unsupported locale \"${locale}\". Falling back to English.`);\n return English;\n }\n try {\n const baseLocale = locale.split('-')[0].toLowerCase();\n const module = await import(`flatpickr/dist/l10n/${baseLocale}.js`);\n const localeConfig =\n module[baseLocale] ?? module.default?.[baseLocale] ?? module.default;\n if (!localeConfig) {\n console.warn(\n `Locale configuration not found for \"${locale}\". Falling back to English.`\n );\n return English;\n }\n localeCache[locale] = localeConfig;\n return localeConfig;\n } catch (error) {\n console.error(\n `Failed to load locale \"${locale}\". Falling back to English.`,\n error\n );\n return English;\n }\n}\n\nexport function hideEmptyYear(): void {\n const currentMonth = document.querySelector(\n '.flatpickr-current-month span.cur-month'\n ) as HTMLElement;\n document.querySelectorAll('.numInputWrapper').forEach((wrapper) => {\n const yearInput = wrapper.querySelector(\n '.numInput.cur-year'\n ) as HTMLInputElement;\n if (\n yearInput &&\n yearInput.min &&\n yearInput.max &&\n yearInput.min === yearInput.max\n ) {\n (wrapper as HTMLElement).style.display = 'none';\n\n if (currentMonth) {\n currentMonth.style.marginLeft = 'auto';\n }\n }\n });\n}\n\nexport function validate(\n inputEl: HTMLInputElement,\n required: boolean,\n invalidText: string,\n defaultErrorMessage: string,\n hasInteracted: boolean,\n internals: ElementInternals\n): { isValid: boolean; validationMessage: string } {\n if (!inputEl) {\n console.warn('Input element is undefined...');\n return { isValid: true, validationMessage: '' };\n }\n\n const isEmpty = !inputEl.value.trim();\n const isRequired = required;\n\n let validity = inputEl.validity;\n let validationMessage = inputEl.validationMessage;\n\n if (isRequired && isEmpty) {\n validity = { ...validity, valueMissing: true };\n validationMessage = defaultErrorMessage;\n }\n\n if (invalidText) {\n validity = { ...validity, customError: true };\n validationMessage = invalidText;\n }\n\n internals.setValidity(validity, validationMessage, inputEl);\n\n const isValid =\n !invalidText && (!hasInteracted || !isEmpty || (isEmpty && !isRequired));\n\n return { isValid, validationMessage };\n}\n\nexport function emitValue(\n element: HTMLElement,\n eventName: string,\n detail: any\n): void {\n element.dispatchEvent(\n new CustomEvent(eventName, {\n detail,\n bubbles: true,\n composed: true,\n })\n );\n}\n"],"names":["flatpickrStylesInjected","DATE_FORMAT_OPTIONS","isSupportedLocale","locale","baseLocale","split","toLowerCase","langsArray","includes","preventFlatpickrOpen","event","setShouldFlatpickrOpen","preventDefault","stopPropagation","stopImmediatePropagation","handleInputClick","handleInputFocus","shouldFlatpickrOpen","closeFlatpickr","modifyWeekdayShorthands","localeOptions","weekdays","shorthand","map","day","charAt","injectFlatpickrStyles","customStyle","styleElement","document","createElement","id","textContent","head","appendChild","async","initializeMultiAnchorFlatpickr","context","inputEl","endinputEl","getFlatpickrOptions","setCalendarAttributes","setInitialDates","options","getInputElement","el","HTMLInputElement","input","querySelector","type","style","display","isConnected","Error","error","console","inputElement","endInputElement","plugins","rangePlugin","flatpickrInstance","flatpickr","setTimeout","addEventListener","open","initializeSingleAnchorFlatpickr","appendTo","effectiveDateFormat","dateFormat","mode","clickOpens","targetElement","positionElement","message","isValidDateFormat","format","getPlaceholder","isDateRange","getModalContainer","element","selector","closest","find","body","enableTime","twentyFourHourFormat","allowInput","minDate","maxDate","minTime","maxTime","defaultDate","defaultHour","defaultMinute","enable","disable","closeOnSelect","wrap","noCalendar","onChange","onClose","onOpen","loadLocale","warn","English","isEnglishOr12HourLocale","isWideScreen","window","innerWidth","enableSeconds","time_24hr","weekNumbers","static","_a","showMonths","monthSelectorType","selectedDates","dateStr","instance","calendarContainer","timeContainer","length","classList","add","remove","onReady","_","__","Array","isArray","parsedDate","year","month","Number","isNaN","Date","UTC","date","parseDate","updateEnableTime","modalDetected","requestAnimationFrame","config","setAttribute","containerClass","localeCache","module","import","localeConfig","_c","_b","default","hideEmptyYear","currentMonth","querySelectorAll","forEach","wrapper","yearInput","min","max","marginLeft","validate","required","invalidText","defaultErrorMessage","hasInteracted","internals","isValid","validationMessage","isEmpty","value","trim","isRequired","validity","valueMissing","customError","setValidity","emitValue","eventName","detail","dispatchEvent","CustomEvent","bubbles","composed"],"mappings":"uHAQA,IAAIA,GAA0B,EAiB9B,MAAMC,EAAsB,CAC1B,QAAS,aACT,QAAS,aACT,QAAS,aACT,YAAa,qBACb,cAAe,qBACf,YAAa,qBACb,cAAe,qBACf,YAAa,qBACb,cAAe,qBACf,cAAe,wBACf,cAAe,wBACf,cAAe,yBAkCX,SAAUC,EAAkBC,GAChC,MAAMC,EAAaD,EAAOE,MAAM,KAAK,GAAGC,cACxC,OAAOC,EAAWC,SAASJ,EAC7B,CAEgB,SAAAK,EACdC,EACAC,GAEAD,EAAME,iBACNF,EAAMG,kBACNH,EAAMI,2BACNH,GAAuB,EACzB,CAEM,SAAUI,EACdJ,GAEAA,GAAuB,EACzB,UAEgBK,EACdC,EACAC,EACAP,GAEKM,IACHC,IACAP,GAAuB,GAE3B,CAEM,SAAUQ,EAAwBC,GAClCA,EAAcC,UAAYD,EAAcC,SAASC,YACnDF,EAAcC,SAASC,UAAYF,EAAcC,SAASC,UAAUC,KACjEC,GAAQA,EAAIC,OAAO,KAG1B,CAEM,SAAUC,EAAsBC,GACpC,IAAK3B,EAAyB,CAC5B,MAAM4B,EAAeC,SAASC,cAAc,SAC5CF,EAAaG,GAAK,0BAClBH,EAAaI,YAAcL,EAC3BE,SAASI,KAAKC,YAAYN,GAC1B5B,GAA0B,CAC3B,CACH,CAEOmC,eAAeC,EACpBC,GAEA,MAAMC,QACJA,EAAOC,WACPA,EAAUC,oBACVA,EAAmBC,sBACnBA,EAAqBC,gBACrBA,GACEL,EAEJ,GAAKC,EAKL,IACE,MAAMK,QAAgBH,IAEhBI,EAAmBC,IACvB,GAAIA,aAAcC,iBAChB,OAAOD,EAEP,IACE,IAAIE,EAAQF,EAAGG,cAAc,SAC7B,IAAKD,EAAO,CAIV,GAHAA,EAAQlB,SAASC,cAAc,SAC/BiB,EAAME,KAAO,OACbF,EAAMG,MAAMC,QAAU,QACjBN,EAAGO,YACN,MAAM,IAAIC,MAAM,uCAElBR,EAAGX,YAAYa,EAChB,CACD,OAAOA,CACR,CAAC,MAAOO,GAEP,MADAC,QAAQD,MAAM,6CAA8CA,GACtDA,CACP,CACF,EAGGE,EAAeZ,EAAgBN,GACrC,GAAIC,EAAY,CACd,MAAMkB,EAAkBb,EAAgBL,GACxCI,EAAQe,QAAU,IACZf,EAAQe,SAAW,GACvBC,EAAY,CAAEZ,MAAOU,IAExB,CAED,MAAMG,EAAoBC,EAAUL,EAAcb,GAElD,OAAIiB,GACFE,YAAW,KACLrB,GACFA,EAAsBmB,EACvB,GACA,GAEClB,GACFA,EAAgBkB,GAGZtB,aAAmBQ,kBACvBR,EAAQyB,iBAAiB,SAAS,KAChCH,EAAkBI,MAAM,KAIxBzB,GAAgBA,aAAsBO,kBACxCP,EAAWwB,iBAAiB,SAAS,KACnCH,EAAkBI,MAAM,IAIrBJ,QAEPL,QAAQD,MAAM,iCAGjB,CAAC,MAAOA,GAEP,YADAC,QAAQD,MAAM,gCAAiCA,EAEhD,MAxECC,QAAQD,MAAM,oDAyElB,CAEOnB,eAAe8B,EACpB5B,GAEA,MAAMC,QACJA,EAAOE,oBACPA,EAAmBC,sBACnBA,EAAqBC,gBACrBA,EAAewB,SACfA,GACE7B,EACJ,GAAKC,EAIL,IACE,MAAMK,QAAgBH,IAChB2B,EACJxB,EAAQyB,aAAgC,SAAjBzB,EAAQ0B,KAAkB,MAAQ,SAG3D,IAAIb,EACJ,GAHAb,EAAQyB,WAAaD,EAGjB7B,aAAmBQ,iBACrBU,EAAelB,EACfK,EAAQ2B,YAAa,OAErB,IACEd,EAAe3B,SAASC,cAAc,SACtC0B,EAAaP,KAAO,OACpBO,EAAaN,MAAMC,QAAU,OAE7B,MAAMoB,EAAgBL,GAAY5B,EAClC,IAAKiC,EACH,MAAM,IAAIlB,MAAM,uCAGlBkB,EAAcrC,YAAYsB,GAC1Bb,EAAQ2B,YAAa,EACrB3B,EAAQ6B,gBAAkBlC,CAC3B,CAAC,MAAOgB,GAEP,MADAC,QAAQD,MAAM,gCAAiCA,GACzCA,CACP,CAEH,MAAMM,EAAoBC,EAAUL,EAAcb,GAClD,OAAIiB,GACFE,YAAW,KACLrB,GACFA,EAAsBmB,EACvB,GACA,GACClB,GACFA,EAAgBkB,GAEZtB,aAAmBQ,kBACvBR,EAAQyB,iBAAiB,SAAS,IAAMH,EAAkBI,SAErDJ,QAEPL,QAAQD,MAAM,iCAGjB,CAAC,MAAOA,GAKP,OAJAC,QAAQD,MAAM,gCAAiCA,QAC3CA,aAAiBD,OACnBE,QAAQD,MAAM,iBAAkBA,EAAMmB,SAGzC,MAxDClB,QAAQD,MAAM,oDAyDlB,CAEM,SAAUoB,EAAkBC,GAChC,OAAOA,KAAU1E,CACnB,CAEgB,SAAA2E,EACdR,EACAS,GAEA,GAAIH,EAAkBN,GAAa,CAIjC,OAHoBS,EAChB,GAAG5E,EAAoBmE,SAAkBnE,EAAoBmE,KAC7DnE,EAAoBmE,EAEzB,CACD,MAAO,aACT,CAEM,SAAUU,EAAkBC,GAChC,MACE,CAAC,YAAa,mBACXxD,KAAKyD,GAAaD,EAAQE,QAAQD,KAClCE,MAAMrC,GAAiC,OAAPA,KAAgBhB,SAASsD,IAEhE,CAEOhD,eAAeK,EACpBH,SAEA,IAAKA,EAEH,OADAkB,QAAQD,MAAM,+CACP,GAGT,MAAMnD,OACJA,EAAMiE,WACNA,EAAUgB,WACVA,EAAUC,qBACVA,EAAoB/C,QACpBA,EAAOgD,WACPA,EAAUC,QACVA,EAAOC,QACPA,EAAOC,QACPA,EAAOC,QACPA,EAAOC,YACPA,EAAWC,YACXA,EAAWC,cACXA,EAAaC,OACbA,EAAMC,QACNA,EAAO1B,KACPA,EAAO,SAAQ2B,cACfA,EAAaC,KACbA,GAAO,EAAKC,WACZA,GAAa,EAAKhC,SAClBA,EAAQiC,SACRA,EAAQC,QACRA,EAAOC,OACPA,EAAMC,WACNA,GACEjE,EAUJ,IAAIjB,EARCjB,GACHoD,QAAQgD,KAAK,iDAGVnC,GACHb,QAAQgD,KAAK,mDAIf,IACEnF,QAAsBkF,EAAWnG,GACjCgB,EAAwBC,EACzB,CAAC,MAAOkC,GACPC,QAAQgD,KAAK,iDAAkDjD,GAC/DlC,EAAgBoF,CACjB,CAED,MAAMpG,EAAaD,EAAOE,MAAM,KAAK,GAAGC,cAClCmG,EAA0B,CAAC,KAAM,MAAMjG,SAASJ,GAEhDsG,EAAeC,OAAOC,YAAc,IAEpCzC,EACJC,IACU,SAATC,EAAmBgB,EAAuB,MAAQ,QAAW,SAE1D1C,EAAgC,CACpCyB,WAAYD,EACZE,KAAe,SAATA,EAAkB,SAAWA,EACnCe,WAAqB,SAATf,GAAyBe,EACrCc,WAAqB,SAAT7B,GAAyB6B,EACrCP,YAAaA,EACbkB,eAAe,EACfvB,WAAYA,IAAc,EAC1BhB,YAAY,EACZwC,UACkC,kBAAzBzB,EACHA,GACCoB,EACPM,aAAa,EACbC,eAAQC,EAAA5E,EAAQ2E,uBAChBf,OACAiB,WAAqB,UAAT7C,GAAoBqC,EAAe,EAAI,EACnDS,kBAAmB,SACnBhH,OAAQiB,EACR4E,cAAeA,QAAAA,IAA4B,aAAT3B,GAAuBe,GACzDe,SAAU,CAACiB,EAAeC,EAASC,KACjCnB,GAAYA,EAASiB,EAAeC,EAASC,EAAS,EAExDlB,QAAS,CAACgB,EAAeC,EAASC,KAChC,GAAa,UAATjD,GAAoBiD,EAASC,kBAAmB,CAClD,MAAMC,EACJF,EAASC,kBAAkBvE,cAAc,mBACd,IAAzBoE,EAAcK,SAChBD,SAAAA,EAAeE,UAAUC,IAAI,uBAC7BH,SAAAA,EAAeE,UAAUE,OAAO,aAAc,YAEjD,CACDxB,GAAWA,EAAQgB,EAAeC,EAASC,EAAS,EAEtDjB,OAAQ,CAACe,EAAeC,EAASC,KAC/BjB,GAAUA,EAAOe,EAAeC,EAASC,EAAS,GAuBtD,GAnBa,UAATjD,IACF1B,EAAQkF,QAAU,CAACC,EAAGC,EAAIT,KACxB,GAAIA,EAASC,kBAAmB,CAC9B,MAAMC,EACJF,EAASC,kBAAkBvE,cAAc,mBAC3CwE,SAAAA,EAAeE,UAAUC,IAAI,sBAC9B,IAICrF,aAAmBQ,mBACvBH,EAAQ6B,gBAAkBlC,GAGxBiD,IAAS5C,EAAQ4C,QAAUA,GAC3BC,IAAS7C,EAAQ6C,QAAUA,GAC3BC,IAAS9C,EAAQ8C,QAAUA,GAC3BC,IAAS/C,EAAQ+C,QAAUA,GAE3BC,EACF,IACEqC,MAAMC,QAAQtC,IACJ,UAATtB,GAA6B,aAATA,GAGhB,IAAK2D,MAAMC,QAAQtC,IACG,iBAAhBA,EAA0B,CACnC,IAAIuC,EAA0B,KAC9B,OAAQ/D,GACN,IAAK,QAAS,CACZ,MAAOgE,EAAMC,EAAO5G,GAAOmE,EAAYtF,MAAM,KAAKkB,IAAI8G,QACtDH,EACGI,MAAMH,IAAUG,MAAMF,IAAWE,MAAM9G,GAEpC,KADA,IAAI+G,KAAKA,KAAKC,IAAIL,EAAMC,EAAQ,EAAG5G,EAAK,KAE9C,KACD,CACD,IAAK,QAAS,CACZ,MAAOA,EAAK4G,EAAOD,GAAQxC,EAAYtF,MAAM,KAAKkB,IAAI8G,QACtDH,EACGI,MAAM9G,IAAS8G,MAAMF,IAAWE,MAAMH,GAEnC,KADA,IAAII,KAAKA,KAAKC,IAAIL,EAAMC,EAAQ,EAAG5G,EAAK,KAE9C,KACD,CACD,IAAK,QAAS,CACZ,MAAO4G,EAAO5G,EAAK2G,GAAQxC,EAAYtF,MAAM,KAAKkB,IAAI8G,QACtDH,EACGI,MAAMF,IAAWE,MAAM9G,IAAS8G,MAAMH,GAEnC,KADA,IAAII,KAAKA,KAAKC,IAAIL,EAAMC,EAAQ,EAAG5G,EAAK,KAE9C,KACD,CACD,QACE0G,EAAa,IAAIK,KAAK5C,GAG1BhD,EAAQgD,YAAcuC,GAAcvC,CACrC,OAlCDhD,EAAQgD,YAAcA,EAuD1B,OAlBIC,UACFjD,EAAQiD,YAAcA,GACpBC,UACFlD,EAAQkD,cAAgBA,GACtBC,GAAUA,EAAO2B,OAAS,IAAG9E,EAAQmD,OAASA,GAC9CC,GAAWA,EAAQ0B,OAAS,IAC9B9E,EAAQoD,QAAUA,EAAQxE,KAAKkH,IAC7B,GAAIA,aAAgBF,KAAM,OAAOE,EACjC,GAAoB,iBAATA,EAAmB,OAAO,IAAIF,KAAKE,GAC9C,GAAoB,iBAATA,EAAmB,CAE5B,OADe5E,EAAU6E,UAAUD,EAAMtE,IACxBsE,CAClB,CACD,OAAOA,CAAI,KAGXvE,IAAUvB,EAAQuB,SAAWA,GAE1BvB,CACT,CAEM,SAAUgG,EAAiBvE,GAC/B,OAAOA,EAAW5D,SAAS,OAAS4D,EAAW5D,SAAS,KAC1D,CAEgB,SAAAiC,EACd6E,EACAsB,IAEItB,eAAAA,EAAUC,mBACZsB,uBAAsB,KACpB,IACE,MAAMtB,kBAAEA,EAAiBuB,OAAEA,GAAWxB,EACtCC,EAAkBwB,aAAa,OAAQ,eACvCxB,EAAkBwB,aAAa,aAAc,YAE7CxB,EAAkBG,UAAUE,OAAO,kBAAmB,kBACtD,MAAMoB,EAAiBJ,EACnB,kBACA,oBACJrB,EAAkBG,UAAUC,IAAIqB,GAE5BF,QAAmC,IAAlBA,EAAO9B,SAC1BO,EAAkBG,UAAUE,OAC1B,uBACA,yBAEFL,EAAkBG,UAAUC,IAAI,mBAAmBmB,EAAO9B,UAE7D,CAAC,MAAO1D,GACPC,QAAQgD,KAAK,qCAAsCjD,EACpD,KAGHC,QAAQgD,KAAK,sCAEjB,CAEA,MAAM0C,EAA+C,CAAA,EAE9C9G,eAAemE,EAAWnG,aAC/B,GAAe,OAAXA,EAAiB,OAAOqG,EAC5B,GAAIyC,EAAY9I,GAAS,OAAO8I,EAAY9I,GAC5C,IAAKD,EAAkBC,GAErB,OADAoD,QAAQgD,KAAK,uBAAuBpG,gCAC7BqG,EAET,IACE,MAAMpG,EAAaD,EAAOE,MAAM,KAAK,GAAGC,cAClC4I,QAAeC,OAAO,uBAAuB/I,QAC7CgJ,UACJC,EAAsB,QAAtBpC,EAAAiC,EAAO9I,UAAe,IAAA6G,EAAAA,UAAAqC,EAAAJ,EAAOK,8BAAUnJ,kBAAe8I,EAAOK,QAC/D,OAAKH,GAMLH,EAAY9I,GAAUiJ,EACfA,IANL7F,QAAQgD,KACN,uCAAuCpG,gCAElCqG,EAIV,CAAC,MAAOlD,GAKP,OAJAC,QAAQD,MACN,0BAA0BnD,+BAC1BmD,GAEKkD,CACR,CACH,UAEgBgD,IACd,MAAMC,EAAe5H,SAASmB,cAC5B,2CAEFnB,SAAS6H,iBAAiB,oBAAoBC,SAASC,IACrD,MAAMC,EAAYD,EAAQ5G,cACxB,sBAGA6G,GACAA,EAAUC,KACVD,EAAUE,KACVF,EAAUC,MAAQD,EAAUE,MAE3BH,EAAwB1G,MAAMC,QAAU,OAErCsG,IACFA,EAAavG,MAAM8G,WAAa,QAEnC,GAEL,CAEgB,SAAAC,EACd3H,EACA4H,EACAC,EACAC,EACAC,EACAC,GAEA,IAAKhI,EAEH,OADAiB,QAAQgD,KAAK,iCACN,CAAEgE,SAAS,EAAMC,kBAAmB,IAG7C,MAAMC,GAAWnI,EAAQoI,MAAMC,OACzBC,EAAaV,EAEnB,IAAIW,EAAWvI,EAAQuI,SACnBL,EAAoBlI,EAAQkI,kBAE5BI,GAAcH,IAChBI,EAAW,IAAKA,EAAUC,cAAc,GACxCN,EAAoBJ,GAGlBD,IACFU,EAAW,IAAKA,EAAUE,aAAa,GACvCP,EAAoBL,GAGtBG,EAAUU,YAAYH,EAAUL,EAAmBlI,GAKnD,MAAO,CAAEiI,SAFNJ,KAAiBE,IAAkBI,GAAYA,IAAYG,GAE5CJ,oBACpB,UAEgBS,EACdlG,EACAmG,EACAC,GAEApG,EAAQqG,cACN,IAAIC,YAAYH,EAAW,CACzBC,SACAG,SAAS,EACTC,UAAU,IAGhB"}
1
+ {"version":3,"file":"flatpickr.js","sources":["../../../src/common/helpers/flatpickr.ts"],"sourcesContent":["import flatpickr from 'flatpickr';\nimport rangePlugin from 'flatpickr/dist/plugins/rangePlugin';\nimport { Instance } from 'flatpickr/dist/types/instance';\nimport { BaseOptions, Hook } from 'flatpickr/dist/types/options';\nimport { Locale } from 'flatpickr/dist/types/locale';\nimport { default as English } from 'flatpickr/dist/l10n/default.js';\nimport { langsArray, SupportedLocale } from '../flatpickrLangs';\n\nlet flatpickrStylesInjected = false;\n\ninterface BaseFlatpickrContext {\n getFlatpickrOptions: () => Promise<Partial<BaseOptions>>;\n setCalendarAttributes: (instance: Instance) => void;\n setInitialDates?: (instance: Instance) => void;\n}\n\ninterface SingleFlatpickrContext extends BaseFlatpickrContext {\n inputEl: HTMLElement;\n}\n\ninterface RangeFlatpickrContext extends BaseFlatpickrContext {\n inputEl: HTMLElement;\n endinputEl?: HTMLElement;\n}\n\nconst DATE_FORMAT_OPTIONS = {\n 'Y-m-d': 'yyyy-mm-dd',\n 'm-d-Y': 'mm-dd-yyyy',\n 'd-m-Y': 'dd-mm-yyyy',\n 'Y-m-d H:i': 'yyyy-mm-dd —— : ——',\n 'Y-m-d h:i K': 'yyyy-mm-dd —— : ——',\n 'm-d-Y H:i': 'mm-dd-yyyy —— : ——',\n 'm-d-Y h:i K': 'mm-dd-yyyy —— : ——',\n 'd-m-Y H:i': 'dd-mm-yyyy —— : ——',\n 'd-m-Y h:i K': 'dd-mm-yyyy —— : ——',\n 'Y-m-d H:i:s': 'yyyy-mm-dd —— : —— ——',\n 'm-d-Y H:i:s': 'mm-dd-yyyy —— : —— ——',\n 'd-m-Y H:i:s': 'dd-mm-yyyy —— : —— ——',\n} as const;\n\ntype DateFormatOption = keyof typeof DATE_FORMAT_OPTIONS;\n\ninterface FlatpickrOptionsContext {\n locale: string;\n dateFormat?: string;\n defaultDate?: string | Date | string[] | Date[];\n defaultHour?: number;\n defaultMinute?: number;\n enableTime: boolean;\n twentyFourHourFormat?: boolean;\n endinputEl?: HTMLElement;\n inputEl: HTMLElement;\n allowInput?: boolean;\n minDate?: string | number | Date;\n maxDate?: string | number | Date;\n minTime?: string | number | Date;\n maxTime?: string | number | Date;\n enable?: (string | number | Date)[];\n disable?: (string | number | Date)[];\n onChange?: Hook;\n onClose?: Hook;\n onOpen?: Hook;\n loadLocale: (locale: string) => Promise<Partial<Locale>>;\n mode?: 'single' | 'multiple' | 'range' | 'time';\n closeOnSelect?: boolean;\n wrap?: boolean;\n noCalendar?: boolean;\n appendTo?: HTMLElement;\n static?: boolean;\n}\n\nexport function isSupportedLocale(locale: string): boolean {\n const baseLocale = locale.split('-')[0].toLowerCase();\n return langsArray.includes(baseLocale as SupportedLocale);\n}\n\nexport function preventFlatpickrOpen(\n event: Event,\n setShouldFlatpickrOpen: (value: boolean) => void\n): void {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n setShouldFlatpickrOpen(false);\n}\n\nexport function handleInputClick(\n setShouldFlatpickrOpen: (value: boolean) => void\n): void {\n setShouldFlatpickrOpen(true);\n}\n\nexport function handleInputFocus(\n shouldFlatpickrOpen: boolean,\n closeFlatpickr: () => void,\n setShouldFlatpickrOpen: (value: boolean) => void\n): void {\n if (!shouldFlatpickrOpen) {\n closeFlatpickr();\n setShouldFlatpickrOpen(true);\n }\n}\n\nexport function modifyWeekdayShorthands(localeOptions: Partial<Locale>): void {\n if (localeOptions.weekdays && localeOptions.weekdays.shorthand) {\n localeOptions.weekdays.shorthand = localeOptions.weekdays.shorthand.map(\n (day) => day.charAt(0)\n ) as [string, string, string, string, string, string, string];\n }\n}\n\nexport function injectFlatpickrStyles(customStyle: string): void {\n if (!flatpickrStylesInjected) {\n const styleElement = document.createElement('style');\n styleElement.id = 'flatpickr-custom-styles';\n styleElement.textContent = customStyle;\n document.head.appendChild(styleElement);\n flatpickrStylesInjected = true;\n }\n}\n\nexport async function initializeMultiAnchorFlatpickr(\n context: RangeFlatpickrContext\n): Promise<Instance | undefined> {\n const {\n inputEl,\n endinputEl,\n getFlatpickrOptions,\n setCalendarAttributes,\n setInitialDates,\n } = context;\n\n if (!inputEl) {\n console.error('Cannot initialize Flatpickr: inputEl is undefined');\n return undefined;\n }\n\n try {\n const options = await getFlatpickrOptions();\n\n const getInputElement = (el: HTMLElement): HTMLInputElement => {\n if (el instanceof HTMLInputElement) {\n return el;\n } else {\n try {\n let input = el.querySelector('input') as HTMLInputElement | null;\n if (!input) {\n input = document.createElement('input');\n input.type = 'text';\n input.style.display = 'none';\n if (!el.isConnected) {\n throw new Error('Element is not connected to the DOM');\n }\n el.appendChild(input);\n }\n return input;\n } catch (error) {\n console.error('Error creating or appending input element:', error);\n throw error;\n }\n }\n };\n\n const inputElement = getInputElement(inputEl);\n if (endinputEl) {\n const endInputElement = getInputElement(endinputEl);\n options.plugins = [\n ...(options.plugins || []),\n rangePlugin({ input: endInputElement }),\n ];\n }\n\n const flatpickrInstance = flatpickr(inputElement, options) as Instance;\n\n if (flatpickrInstance) {\n setTimeout(() => {\n if (setCalendarAttributes) {\n setCalendarAttributes(flatpickrInstance);\n }\n }, 0);\n\n if (setInitialDates) {\n setInitialDates(flatpickrInstance);\n }\n\n if (!(inputEl instanceof HTMLInputElement)) {\n inputEl.addEventListener('click', () => {\n flatpickrInstance.open();\n });\n }\n\n if (endinputEl && !(endinputEl instanceof HTMLInputElement)) {\n endinputEl.addEventListener('click', () => {\n flatpickrInstance.open();\n });\n }\n\n return flatpickrInstance;\n } else {\n console.error('Failed to initialize Flatpickr');\n return undefined;\n }\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n return undefined;\n }\n}\n\nexport async function initializeSingleAnchorFlatpickr(\n context: SingleFlatpickrContext & { appendTo?: HTMLElement }\n): Promise<Instance | undefined> {\n const {\n inputEl,\n getFlatpickrOptions,\n setCalendarAttributes,\n setInitialDates,\n appendTo,\n } = context;\n if (!inputEl) {\n console.error('Cannot initialize Flatpickr: inputEl is undefined');\n return undefined;\n }\n try {\n const options = await getFlatpickrOptions();\n const effectiveDateFormat =\n options.dateFormat || (options.mode === 'time' ? 'H:i' : 'Y-m-d');\n options.dateFormat = effectiveDateFormat;\n\n let inputElement: HTMLInputElement;\n if (inputEl instanceof HTMLInputElement) {\n inputElement = inputEl;\n options.clickOpens = true;\n } else {\n try {\n inputElement = document.createElement('input');\n inputElement.type = 'text';\n inputElement.style.display = 'none';\n\n const targetElement = appendTo || inputEl;\n if (!targetElement) {\n throw new Error('No valid element to append input to');\n }\n\n targetElement.appendChild(inputElement);\n options.clickOpens = false;\n options.positionElement = inputEl;\n } catch (error) {\n console.error('Error creating input element:', error);\n throw error;\n }\n }\n const flatpickrInstance = flatpickr(inputElement, options) as Instance;\n if (flatpickrInstance) {\n setTimeout(() => {\n if (setCalendarAttributes) {\n setCalendarAttributes(flatpickrInstance);\n }\n }, 0);\n if (setInitialDates) {\n setInitialDates(flatpickrInstance);\n }\n if (!(inputEl instanceof HTMLInputElement)) {\n inputEl.addEventListener('click', () => flatpickrInstance.open());\n }\n return flatpickrInstance;\n } else {\n console.error('Failed to initialize Flatpickr');\n return undefined;\n }\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n if (error instanceof Error) {\n console.error('Error details:', error.message);\n }\n return undefined;\n }\n}\n\nexport function isValidDateFormat(format: string): format is DateFormatOption {\n return format in DATE_FORMAT_OPTIONS;\n}\n\nexport function getPlaceholder(\n dateFormat: string,\n isDateRange?: boolean\n): string {\n if (isValidDateFormat(dateFormat)) {\n const placeholder = isDateRange\n ? `${DATE_FORMAT_OPTIONS[dateFormat]} to ${DATE_FORMAT_OPTIONS[dateFormat]}`\n : DATE_FORMAT_OPTIONS[dateFormat];\n return placeholder;\n }\n return 'Select date';\n}\n\nexport function getModalContainer(element: HTMLElement): HTMLElement {\n return (\n ['kyn-modal', 'kyn-side-drawer']\n .map((selector) => element.closest(selector))\n .find((el): el is HTMLElement => el !== null) || document.body\n );\n}\n\nexport async function getFlatpickrOptions(\n context: FlatpickrOptionsContext\n): Promise<Partial<BaseOptions>> {\n if (!context) {\n console.error('Context is required for getFlatpickrOptions');\n return {};\n }\n\n const {\n locale,\n dateFormat,\n enableTime,\n twentyFourHourFormat,\n inputEl,\n allowInput,\n minDate,\n maxDate,\n minTime,\n maxTime,\n defaultDate,\n defaultHour,\n defaultMinute,\n enable,\n disable,\n mode = 'single',\n closeOnSelect,\n wrap = false,\n noCalendar = false,\n appendTo,\n onChange,\n onClose,\n onOpen,\n loadLocale,\n } = context;\n\n if (!locale) {\n console.warn('Locale not provided. Falling back to default.');\n }\n\n if (!dateFormat) {\n console.warn('Date format not provided. Using default format.');\n }\n\n let localeOptions;\n try {\n localeOptions = await loadLocale(locale);\n modifyWeekdayShorthands(localeOptions);\n } catch (error) {\n console.warn('Error loading locale, falling back to default:', error);\n localeOptions = English;\n }\n\n const baseLocale = locale.split('-')[0].toLowerCase();\n const isEnglishOr12HourLocale = ['en', 'es'].includes(baseLocale);\n\n const isWideScreen = window.innerWidth >= 767;\n\n const effectiveDateFormat =\n dateFormat ||\n (mode === 'time' ? (twentyFourHourFormat ? 'H:i' : 'h:i K') : 'Y-m-d');\n\n const options: Partial<BaseOptions> = {\n dateFormat: effectiveDateFormat,\n mode: mode === 'time' ? 'single' : mode,\n enableTime: mode === 'time' ? true : enableTime,\n noCalendar: mode === 'time' ? true : noCalendar,\n defaultDate: defaultDate,\n enableSeconds: false,\n allowInput: allowInput || false,\n clickOpens: true,\n time_24hr:\n typeof twentyFourHourFormat === 'boolean'\n ? twentyFourHourFormat\n : !isEnglishOr12HourLocale,\n weekNumbers: false,\n static: context.static ?? false,\n wrap,\n showMonths: mode === 'range' && isWideScreen ? 2 : 1,\n monthSelectorType: 'static',\n locale: localeOptions,\n closeOnSelect: closeOnSelect ?? !(mode === 'multiple' || enableTime),\n onChange: (selectedDates, dateStr, instance) => {\n onChange && onChange(selectedDates, dateStr, instance);\n },\n onClose: (selectedDates, dateStr, instance) => {\n if (mode === 'range' && instance.calendarContainer) {\n const timeContainer =\n instance.calendarContainer.querySelector('.flatpickr-time');\n if (selectedDates.length === 0) {\n timeContainer?.classList.add('default-time-select');\n timeContainer?.classList.remove('start-date', 'end-date');\n }\n }\n onClose && onClose(selectedDates, dateStr, instance);\n },\n onOpen: (selectedDates, dateStr, instance) => {\n onOpen && onOpen(selectedDates, dateStr, instance);\n },\n };\n\n if (mode === 'range') {\n options.onReady = (_, __, instance) => {\n if (instance.calendarContainer) {\n const timeContainer =\n instance.calendarContainer.querySelector('.flatpickr-time');\n timeContainer?.classList.add('default-time-select');\n }\n };\n }\n\n if (!(inputEl instanceof HTMLInputElement)) {\n options.positionElement = inputEl;\n }\n\n if (minDate) options.minDate = minDate;\n if (maxDate) options.maxDate = maxDate;\n if (minTime) options.minTime = minTime;\n if (maxTime) options.maxTime = maxTime;\n\n if (defaultDate) {\n if (\n Array.isArray(defaultDate) &&\n (mode === 'range' || mode === 'multiple')\n ) {\n options.defaultDate = defaultDate;\n } else if (!Array.isArray(defaultDate)) {\n if (typeof defaultDate === 'string') {\n let parsedDate: Date | null = null;\n switch (effectiveDateFormat) {\n case 'Y-m-d': {\n const [year, month, day] = defaultDate.split('-').map(Number);\n parsedDate =\n !isNaN(year) && !isNaN(month) && !isNaN(day)\n ? new Date(year, month - 1, day, 12)\n : null;\n break;\n }\n case 'd-m-Y': {\n const [day, month, year] = defaultDate.split('-').map(Number);\n parsedDate =\n !isNaN(day) && !isNaN(month) && !isNaN(year)\n ? new Date(year, month - 1, day, 12)\n : null;\n break;\n }\n case 'm-d-Y': {\n const [month, day, year] = defaultDate.split('-').map(Number);\n parsedDate =\n !isNaN(month) && !isNaN(day) && !isNaN(year)\n ? new Date(year, month - 1, day, 12)\n : null;\n break;\n }\n default:\n parsedDate = new Date(defaultDate);\n break;\n }\n options.defaultDate = parsedDate || defaultDate;\n }\n }\n }\n if (defaultHour !== undefined && defaultHour !== null)\n options.defaultHour = defaultHour;\n if (defaultMinute !== undefined && defaultMinute !== null)\n options.defaultMinute = defaultMinute;\n if (enable && enable.length > 0) options.enable = enable;\n if (disable && disable.length > 0) {\n options.disable = disable.map((date) => {\n if (date instanceof Date) return date;\n if (typeof date === 'number') return new Date(date);\n if (typeof date === 'string') {\n const parsed = flatpickr.parseDate(date, effectiveDateFormat);\n return parsed || date;\n }\n return date;\n });\n }\n if (appendTo) options.appendTo = appendTo;\n\n return options;\n}\n\nexport function updateEnableTime(dateFormat: string): boolean {\n return dateFormat.includes('H:') || dateFormat.includes('h:');\n}\n\nexport function setCalendarAttributes(\n instance: Instance,\n modalDetected?: boolean\n): void {\n if (instance?.calendarContainer) {\n requestAnimationFrame(() => {\n try {\n const { calendarContainer, config } = instance;\n calendarContainer.setAttribute('role', 'application');\n calendarContainer.setAttribute('aria-label', 'Calendar');\n\n calendarContainer.classList.remove('container-modal', 'container-body');\n const containerClass = modalDetected\n ? 'container-modal'\n : 'container-default';\n calendarContainer.classList.add(containerClass);\n\n if (config && typeof config.static !== 'undefined') {\n calendarContainer.classList.remove(\n 'static-position-true',\n 'static-position-false'\n );\n calendarContainer.classList.add(`static-position-${config.static}`);\n }\n } catch (error) {\n console.warn('Error setting calendar attributes:', error);\n }\n });\n } else {\n console.warn('Calendar container not available...');\n }\n}\n\nconst localeCache: Record<string, Partial<Locale>> = {};\n\nexport async function loadLocale(locale: string): Promise<Partial<Locale>> {\n if (locale === 'en') return English;\n if (localeCache[locale]) return localeCache[locale];\n if (!isSupportedLocale(locale)) {\n console.warn(`Unsupported locale \"${locale}\". Falling back to English.`);\n return English;\n }\n try {\n const baseLocale = locale.split('-')[0].toLowerCase();\n const module = await import(`flatpickr/dist/l10n/${baseLocale}.js`);\n const localeConfig =\n module[baseLocale] ?? module.default?.[baseLocale] ?? module.default;\n if (!localeConfig) {\n console.warn(\n `Locale configuration not found for \"${locale}\". Falling back to English.`\n );\n return English;\n }\n localeCache[locale] = localeConfig;\n return localeConfig;\n } catch (error) {\n console.error(\n `Failed to load locale \"${locale}\". Falling back to English.`,\n error\n );\n return English;\n }\n}\n\nexport function hideEmptyYear(): void {\n const currentMonth = document.querySelector(\n '.flatpickr-current-month span.cur-month'\n ) as HTMLElement;\n document.querySelectorAll('.numInputWrapper').forEach((wrapper) => {\n const yearInput = wrapper.querySelector(\n '.numInput.cur-year'\n ) as HTMLInputElement;\n if (\n yearInput &&\n yearInput.min &&\n yearInput.max &&\n yearInput.min === yearInput.max\n ) {\n (wrapper as HTMLElement).style.display = 'none';\n\n if (currentMonth) {\n currentMonth.style.marginLeft = 'auto';\n }\n }\n });\n}\n\nexport function validate(\n inputEl: HTMLInputElement,\n required: boolean,\n invalidText: string,\n defaultErrorMessage: string,\n hasInteracted: boolean,\n internals: ElementInternals\n): { isValid: boolean; validationMessage: string } {\n if (!inputEl) {\n console.warn('Input element is undefined...');\n return { isValid: true, validationMessage: '' };\n }\n\n const isEmpty = !inputEl.value.trim();\n const isRequired = required;\n\n let validity = inputEl.validity;\n let validationMessage = inputEl.validationMessage;\n\n if (isRequired && isEmpty) {\n validity = { ...validity, valueMissing: true };\n validationMessage = defaultErrorMessage;\n }\n\n if (invalidText) {\n validity = { ...validity, customError: true };\n validationMessage = invalidText;\n }\n\n internals.setValidity(validity, validationMessage, inputEl);\n\n const isValid =\n !invalidText && (!hasInteracted || !isEmpty || (isEmpty && !isRequired));\n\n return { isValid, validationMessage };\n}\n\nexport function emitValue(\n element: HTMLElement,\n eventName: string,\n detail: any\n): void {\n element.dispatchEvent(\n new CustomEvent(eventName, {\n detail,\n bubbles: true,\n composed: true,\n })\n );\n}\n"],"names":["flatpickrStylesInjected","DATE_FORMAT_OPTIONS","isSupportedLocale","locale","baseLocale","split","toLowerCase","langsArray","includes","preventFlatpickrOpen","event","setShouldFlatpickrOpen","preventDefault","stopPropagation","stopImmediatePropagation","handleInputClick","handleInputFocus","shouldFlatpickrOpen","closeFlatpickr","modifyWeekdayShorthands","localeOptions","weekdays","shorthand","map","day","charAt","injectFlatpickrStyles","customStyle","styleElement","document","createElement","id","textContent","head","appendChild","async","initializeMultiAnchorFlatpickr","context","inputEl","endinputEl","getFlatpickrOptions","setCalendarAttributes","setInitialDates","options","getInputElement","el","HTMLInputElement","input","querySelector","type","style","display","isConnected","Error","error","console","inputElement","endInputElement","plugins","rangePlugin","flatpickrInstance","flatpickr","setTimeout","addEventListener","open","initializeSingleAnchorFlatpickr","appendTo","effectiveDateFormat","dateFormat","mode","clickOpens","targetElement","positionElement","message","isValidDateFormat","format","getPlaceholder","isDateRange","getModalContainer","element","selector","closest","find","body","enableTime","twentyFourHourFormat","allowInput","minDate","maxDate","minTime","maxTime","defaultDate","defaultHour","defaultMinute","enable","disable","closeOnSelect","wrap","noCalendar","onChange","onClose","onOpen","loadLocale","warn","English","isEnglishOr12HourLocale","isWideScreen","window","innerWidth","enableSeconds","time_24hr","weekNumbers","static","_a","showMonths","monthSelectorType","selectedDates","dateStr","instance","calendarContainer","timeContainer","length","classList","add","remove","onReady","_","__","Array","isArray","parsedDate","year","month","Number","isNaN","Date","date","parseDate","updateEnableTime","modalDetected","requestAnimationFrame","config","setAttribute","containerClass","localeCache","module","import","localeConfig","_c","_b","default","hideEmptyYear","currentMonth","querySelectorAll","forEach","wrapper","yearInput","min","max","marginLeft","validate","required","invalidText","defaultErrorMessage","hasInteracted","internals","isValid","validationMessage","isEmpty","value","trim","isRequired","validity","valueMissing","customError","setValidity","emitValue","eventName","detail","dispatchEvent","CustomEvent","bubbles","composed"],"mappings":"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"}
@@ -125,14 +125,13 @@ export declare class DatePicker extends DatePicker_base {
125
125
  firstUpdated(changedProperties: PropertyValues): Promise<void>;
126
126
  updated(changedProperties: PropertyValues): void;
127
127
  private setupAnchor;
128
- private _clearInput;
129
128
  private _handleClear;
130
- handleClose(): Promise<void>;
131
129
  initializeFlatpickr(): Promise<void>;
132
130
  updateFlatpickrOptions(): Promise<void>;
133
131
  setInitialDates(): void;
134
132
  getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>>;
135
133
  handleOpen(): void;
134
+ handleClose(): Promise<void>;
136
135
  handleDateChange(selectedDates: Date[], dateStr: string): Promise<void>;
137
136
  private setShouldFlatpickrOpen;
138
137
  private closeFlatpickr;
@@ -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 n}from"../../../vendor/lit-446874c7.js";import{i as l,x as s,s as o}from"../../../vendor/lit-element-c6c02f24.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,emitValue as m,initializeSingleAnchorFlatpickr as v,getModalContainer as k,setCalendarAttributes as g,hideEmptyYear as f,getFlatpickrOptions as b,loadLocale as y,preventFlatpickrOpen as x,handleInputClick as w,handleInputFocus as _}from"../../../common/helpers/flatpickr.js";import"../button/button.js";import{c as D}from"../../../shidoka-flatpickr-theme-a5fbea77.js";import{c as z,L as F,M as I}from"../../../vendor/@kyndryl-design-system/shidoka-icons-a6eca21f.js";import"../../../vendor/flatpickr-bbd13d61.js";import"../../../common/flatpickrLangs.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";var $=l`*,
1
+ import{_ as t}from"../../../vendor/tslib-53a81efe.js";import{o as e,n as i,t as a,i as r,e as n}from"../../../vendor/lit-446874c7.js";import{i as l,x as o,s}from"../../../vendor/lit-element-c6c02f24.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,emitValue as m,initializeSingleAnchorFlatpickr as v,getModalContainer as k,setCalendarAttributes as g,hideEmptyYear as f,getFlatpickrOptions as b,loadLocale as y,preventFlatpickrOpen as x,handleInputClick as w,handleInputFocus as _}from"../../../common/helpers/flatpickr.js";import"../button/button.js";import{c as z}from"../../../shidoka-flatpickr-theme-a5fbea77.js";import{c as D,L as F,M as $}from"../../../vendor/@kyndryl-design-system/shidoka-icons-a6eca21f.js";import"../../../vendor/flatpickr-bbd13d61.js";import"../../../common/flatpickrLangs.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";var E=l`*,
2
2
  *::before,
3
3
  *::after {
4
4
  box-sizing: border-box;
@@ -495,7 +495,7 @@ input {
495
495
  }
496
496
  .date-picker__disabled .label-text .required {
497
497
  color: var(--kd-color-text-level-disabled);
498
- }`;const E={requiredText:"Required",clearAll:"Clear",pleaseSelectDate:"Please select a date",noDateSelected:"No date selected",pleaseSelectValidDate:"Please select a valid date"};let C=class extends(d(o)){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._processedDisableDates=[],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.staticPosition=!1,this._enableTime=!1,this._hasInteracted=!1,this._isClearing=!1,this.textStrings=E,this._textStrings=E,this._shouldFlatpickrOpen=!1,this._initialized=!1,this._isDestroyed=!1,this.debouncedUpdate=this.debounce((async()=>{if(this.flatpickrInstance)try{await this.initializeFlatpickr()}catch(t){console.error("Error in debounced update:",t)}}),100)}debounce(t,e){let i=null;return(...a)=>{null!==i&&window.clearTimeout(i),i=window.setTimeout((()=>{t.apply(this,a),i=null}),e)}}connectedCallback(){super.connectedCallback(),this.addEventListener("change",this._onChange),this.addEventListener("reset",this._handleFormReset)}hasValue(){var t;return!!(null===(t=this._inputEl)||void 0===t?void 0:t.value)||(this.value?!Array.isArray(this.value)||this.value.length>0&&!this.value.every((t=>null===t)):!!this.defaultDate&&(Array.isArray(this.defaultDate)?this.defaultDate.length>0&&!this.defaultDate.every((t=>!t||""===t)):!!this.defaultDate))}render(){var t,i,a;const r=`${this.name}-error-message`,n=`${this.name}-warning-message`,l=this.name?`${this.name}-${Math.random().toString(36).slice(2,11)}`:`date-picker-${Math.random().toString(36).slice(2,11)}`,o=null!==(t=this.name)&&void 0!==t?t:"",d=c(this.dateFormat);return s`
498
+ }`;const I={requiredText:"Required",clearAll:"Clear",pleaseSelectDate:"Please select a date",noDateSelected:"No date selected",pleaseSelectValidDate:"Please select a valid date"};let C=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._processedDisableDates=[],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.staticPosition=!1,this._enableTime=!1,this._hasInteracted=!1,this._isClearing=!1,this.textStrings=I,this._textStrings=I,this._shouldFlatpickrOpen=!1,this._initialized=!1,this._isDestroyed=!1,this.debouncedUpdate=this.debounce((async()=>{if(this.flatpickrInstance)try{await this.initializeFlatpickr()}catch(t){console.error("Error in debounced update:",t)}}),100)}debounce(t,e){let i=null;return(...a)=>{null!==i&&window.clearTimeout(i),i=window.setTimeout((()=>{t.apply(this,a),i=null}),e)}}connectedCallback(){super.connectedCallback(),this.addEventListener("change",this._onChange),this.addEventListener("reset",this._handleFormReset)}hasValue(){var t;return!!(null===(t=this._inputEl)||void 0===t?void 0:t.value)||(this.value?!Array.isArray(this.value)||this.value.length>0&&!this.value.every((t=>null===t)):!!this.defaultDate&&(Array.isArray(this.defaultDate)?this.defaultDate.length>0&&!this.defaultDate.every((t=>!t||""===t)):!!this.defaultDate))}render(){var t,i,a;const r=`${this.name}-error-message`,n=`${this.name}-warning-message`,l=this.name?`${this.name}-${Math.random().toString(36).slice(2,11)}`:`date-picker-${Math.random().toString(36).slice(2,11)}`,s=null!==(t=this.name)&&void 0!==t?t:"",d=c(this.dateFormat);return o`
499
499
  <div class=${e(this.getDatepickerClasses())}>
500
500
  <div
501
501
  class="label-text"
@@ -504,7 +504,7 @@ input {
504
504
  ?disabled=${this.datePickerDisabled}
505
505
  id=${`label-${l}`}
506
506
  >
507
- ${this.required?s`<abbr
507
+ ${this.required?o`<abbr
508
508
  class="required"
509
509
  title=${null===(i=this._textStrings)||void 0===i?void 0:i.requiredText}
510
510
  role="img"
@@ -530,7 +530,7 @@ input {
530
530
  @click=${this.handleInputClickEvent}
531
531
  @focus=${this.handleInputFocusEvent}
532
532
  />
533
- ${this.hasValue()?s`
533
+ ${this.hasValue()?o`
534
534
  <kyn-button
535
535
  ?disabled=${this.datePickerDisabled}
536
536
  class="clear-button"
@@ -540,14 +540,14 @@ input {
540
540
  @click=${this._handleClear}
541
541
  >
542
542
  <span style="display:flex;" slot="icon"
543
- >${p(z)}</span
543
+ >${p(D)}</span
544
544
  >
545
545
  </kyn-button>
546
- `:s`<span class="input-icon">${p(F)}</span>`}
546
+ `:o`<span class="input-icon">${p(F)}</span>`}
547
547
  </div>
548
548
 
549
- ${this.caption?s`<div
550
- id=${o}
549
+ ${this.caption?o`<div
550
+ id=${s}
551
551
  class="caption"
552
552
  aria-disabled=${this.datePickerDisabled}
553
553
  @mousedown=${this.preventFlatpickrOpen}
@@ -557,7 +557,7 @@ input {
557
557
  </div>`:""}
558
558
  ${this.renderValidationMessage(r,n)}
559
559
  </div>
560
- `}renderValidationMessage(t,e){return this.invalidText||this._isInvalid&&this._hasInteracted?s`<div
560
+ `}renderValidationMessage(t,e){return this.invalidText||this._isInvalid&&this._hasInteracted?o`<div
561
561
  id=${t}
562
562
  class="error error-text"
563
563
  role="alert"
@@ -569,9 +569,9 @@ input {
569
569
  class="error-icon"
570
570
  aria-label=${`${this.errorAriaLabel}`||"Error message icon"}
571
571
  role="button"
572
- >${p(I)}</span
572
+ >${p($)}</span
573
573
  >${this.invalidText||this._internalValidationMsg||this.defaultErrorMessage}
574
- </div>`:this.warnText?s`<div
574
+ </div>`:this.warnText?o`<div
575
575
  id=${e}
576
576
  class="warn warn-text"
577
577
  role="alert"
@@ -581,5 +581,5 @@ input {
581
581
  @click=${this.preventFlatpickrOpen}
582
582
  >
583
583
  ${this.warnText}
584
- </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(D.toString()),this._initialized=!0,await this.updateComplete,this.setupAnchor())}updated(t){if(super.updated(t),t.has("value")&&!this._isClearing){const t=this.value;if(null===t||Array.isArray(t)&&0===t.length){if(this.flatpickrInstance){this._isClearing=!0;try{this.flatpickrInstance.clear(),this._inputEl&&(this._inputEl.value="")}finally{this._isClearing=!1}}}else if(this.flatpickrInstance){let e=!1;if("multiple"===this.mode&&Array.isArray(t)){const i=this.flatpickrInstance.selectedDates;if(i&&i.length===t.length){for(let a=0;a<t.length;a++)if(i[a].getTime()!==t[a].getTime()){e=!0;break}}else e=!0}else if("single"===this.mode&&t instanceof Date){const i=this.flatpickrInstance.selectedDates[0];i&&i.getTime()===t.getTime()||(e=!0)}e&&this.setInitialDates()}this.requestUpdate()}t.has("defaultDate")&&this.flatpickrInstance&&!this._isClearing&&this.debouncedUpdate(),t.has("disable")&&(Array.isArray(this.disable)?this._processedDisableDates=this.disable.map((t=>{if(t instanceof Date)return t;if("number"==typeof t)return new Date(t);if("string"==typeof t){const[e,i,a]=t.split("-").map(Number);if(!isNaN(e)&&!isNaN(i)&&!isNaN(a))return new Date(e,i-1,a)}return t})):(this._processedDisableDates=[],console.warn("Disable prop must be an array")),this.flatpickrInstance&&this.debouncedUpdate()),(t.has("dateFormat")||t.has("minDate")||t.has("maxDate")||t.has("locale")||t.has("twentyFourHourFormat"))&&(this._enableTime=u(this.dateFormat),this.flatpickrInstance&&this._initialized&&!this._isClearing&&this.debouncedUpdate()),t.has("datePickerDisabled")&&this.datePickerDisabled&&this.flatpickrInstance&&this.flatpickrInstance.close()}async setupAnchor(){if(this._inputEl)try{await this.initializeFlatpickr()}catch(t){console.error("Error setting up flatpickr:",t)}else console.warn("Input element not found during setup")}async _clearInput(t={reinitFlatpickr:!0}){this.value="multiple"===this.mode?[]:null,this.defaultDate=null,this.flatpickrInstance&&this.flatpickrInstance.clear(),this._inputEl&&(this._inputEl.value=""),m(this,"on-change",{dates:this.value,source:"clear"}),this._validate(!0,!1),await this.updateComplete,t.reinitFlatpickr&&(await this.initializeFlatpickr(),this.requestUpdate())}async _handleClear(t){t.preventDefault(),t.stopPropagation(),this._isClearing=!0;try{await this._clearInput()}finally{this._isClearing=!1}}async handleClose(){this._hasInteracted=!0,this._validate(!0,!1),await this.updateComplete}async initializeFlatpickr(){if(!this._isDestroyed)if(this._inputEl&&this._inputEl.isConnected)try{if(this.flatpickrInstance&&this.flatpickrInstance.destroy(),this.flatpickrInstance=await v({inputEl:this._inputEl,getFlatpickrOptions:()=>this.getComponentFlatpickrOptions(),setCalendarAttributes:t=>{try{const e=k(this);g(t,e!==document.body),t.calendarContainer&&t.calendarContainer.setAttribute("aria-label","Date picker")}catch(t){console.warn("Error setting calendar attributes:",t)}},setInitialDates:this.setInitialDates.bind(this)}),!this.flatpickrInstance)throw new Error("Failed to initialize Flatpickr instance");f(),this._validate(!1,!1)}catch(t){console.error("Error initializing Flatpickr:",t),t instanceof Error&&console.error("Error details:",t.message)}else console.warn("Cannot initialize Flatpickr: input element not available or not connected to DOM")}async updateFlatpickrOptions(){this.flatpickrInstance?await this.debouncedUpdate():console.warn("Cannot update options: Flatpickr instance not available")}setInitialDates(){if(this.flatpickrInstance)try{const t=this.defaultDate||this.value;if(!t)return;if(Array.isArray(t)){const e=t.map((t=>{if("string"==typeof t){const e=t.trim();if(e.includes("T")){const t=new Date(e);return isNaN(t.getTime())?null:t}{const t=e.split("-").map(Number);if(3===t.length){const[e,i,a]=t;if(!isNaN(e)&&!isNaN(i)&&!isNaN(a)){const t=new Date;return t.setFullYear(e,i-1,a),t.setHours(0,0,0,0),t}}return null}}return t instanceof Date?t:null})).filter((t=>null!==t));e.length>0&&this.flatpickrInstance.setDate(e,!0)}else if("string"==typeof t){const e=t.trim();if(e.includes("T")){const t=new Date(e);isNaN(t.getTime())||this.flatpickrInstance.setDate(t,!0)}else{const t=e.split("-").map(Number);if(3===t.length){const[e,i,a]=t;if(!isNaN(e)&&!isNaN(i)&&!isNaN(a)){const t=new Date;t.setFullYear(e,i-1,a),t.setHours(0,0,0,0),this.flatpickrInstance.setDate(t,!0)}}}}else t instanceof Date&&this.flatpickrInstance.setDate(t,!0)}catch(t){console.warn("Error setting initial dates:",t),t instanceof Error&&console.warn("Error details:",t.message)}else console.warn("Cannot set initial dates: Flatpickr instance not available")}async getComponentFlatpickrOptions(){var t;const e=k(this);return await b({locale:this.locale,dateFormat:this.dateFormat,defaultDate:this.defaultDate?this.defaultDate:void 0,enableTime:this._enableTime,twentyFourHourFormat:null!==(t=this.twentyFourHourFormat)&&void 0!==t?t:void 0,inputEl:this._inputEl,minDate:this.minDate,maxDate:this.maxDate,enable:this.enable,disable:this._processedDisableDates,mode:this.mode,closeOnSelect:!("multiple"===this.mode||this._enableTime),loadLocale:y,onOpen:this.handleOpen.bind(this),onClose:this.handleClose.bind(this),onChange:this.handleDateChange.bind(this),appendTo:e,noCalendar:!1,static:this.staticPosition})}handleOpen(){var t;this._shouldFlatpickrOpen||(null===(t=this.flatpickrInstance)||void 0===t||t.close(),this._shouldFlatpickrOpen=!0)}async handleDateChange(t,e){var i;if(!this._isClearing){this._hasInteracted=!0;try{let a;"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,m(this,"on-change",{dates:a,dateString:(null===(i=this._inputEl)||void 0===i?void 0:i.value)||e,source:0===t.length?"clear":void 0}),this._validate(!0,!1),await this.updateComplete,this.requestUpdate()}catch(t){console.warn("Error handling date change:",t)}}}setShouldFlatpickrOpen(t){this._shouldFlatpickrOpen=t}closeFlatpickr(){var t;null===(t=this.flatpickrInstance)||void 0===t||t.close()}preventFlatpickrOpen(t){x(t,this.setShouldFlatpickrOpen.bind(this))}handleInputClickEvent(){w(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,n=this._inputEl.validationMessage;a&&i&&(r={...r,valueMissing:!0},n=this.defaultErrorMessage||this._textStrings.pleaseSelectDate),this.invalidText&&(r={...r,customError:!0},n=this.invalidText);const l=!r.valueMissing&&!r.customError;l||n||(n=this._textStrings.pleaseSelectValidDate),this._internals.setValidity(r,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)}disconnectedCallback(){this._isDestroyed=!0,super.disconnectedCallback(),this.removeEventListener("change",this._onChange),this.removeEventListener("reset",this._handleFormReset),this.flatpickrInstance&&(this.flatpickrInstance.destroy(),this.flatpickrInstance=void 0)}};C.styles=[$,D],t([i({type:String})],C.prototype,"label",void 0),t([i({type:String})],C.prototype,"locale",void 0),t([i({type:String})],C.prototype,"dateFormat",void 0),t([i({type:Array})],C.prototype,"defaultDate",void 0),t([i({type:String})],C.prototype,"defaultErrorMessage",void 0),t([i({type:Boolean})],C.prototype,"required",void 0),t([i({type:String})],C.prototype,"size",void 0),t([i({type:Array})],C.prototype,"value",void 0),t([i({type:String})],C.prototype,"warnText",void 0),t([i({type:Array})],C.prototype,"disable",void 0),t([a()],C.prototype,"_processedDisableDates",void 0),t([i({type:Array})],C.prototype,"enable",void 0),t([i({type:String})],C.prototype,"mode",void 0),t([i({type:String})],C.prototype,"caption",void 0),t([i({type:Boolean})],C.prototype,"datePickerDisabled",void 0),t([i({type:Boolean})],C.prototype,"twentyFourHourFormat",void 0),t([i({type:String})],C.prototype,"minDate",void 0),t([i({type:String})],C.prototype,"maxDate",void 0),t([i({type:String})],C.prototype,"errorAriaLabel",void 0),t([i({type:String})],C.prototype,"errorTitle",void 0),t([i({type:String})],C.prototype,"warningAriaLabel",void 0),t([i({type:String})],C.prototype,"warningTitle",void 0),t([i({type:Boolean})],C.prototype,"staticPosition",void 0),t([a()],C.prototype,"_enableTime",void 0),t([a()],C.prototype,"_hasInteracted",void 0),t([a()],C.prototype,"flatpickrInstance",void 0),t([r("input")],C.prototype,"_inputEl",void 0),t([a()],C.prototype,"_isClearing",void 0),t([i({type:Object})],C.prototype,"textStrings",void 0),t([a()],C.prototype,"_textStrings",void 0),t([a()],C.prototype,"_shouldFlatpickrOpen",void 0),C=t([n("kyn-date-picker")],C);export{C as DatePicker};
584
+ </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(z.toString()),this._initialized=!0,await this.updateComplete,this.setupAnchor())}updated(t){if(super.updated(t),t.has("value")&&!this._isClearing){let t=this.value;if("string"==typeof t)try{const e=t;if(""!==e.trim()&&/\d{4}-\d{2}-\d{2}/.test(e)){const[i,a,r]=e.split("-").map(Number);isNaN(i)||isNaN(a)||isNaN(r)||(this.value=new Date(i,a-1,r,12),t=this.value,this.flatpickrInstance&&this.flatpickrInstance.setDate(t,!0))}}catch(t){console.warn("Error parsing date string:",t)}if((null===t||Array.isArray(t)&&0===t.length)&&this.flatpickrInstance){this._isClearing=!0;try{this.flatpickrInstance.clear(),this._inputEl&&(this._inputEl.value="")}finally{this._isClearing=!1}}this.requestUpdate()}t.has("defaultDate")&&this.flatpickrInstance&&!this._isClearing&&this.debouncedUpdate(),t.has("disable")&&(Array.isArray(this.disable)?this._processedDisableDates=this.disable.map((t=>{if(t instanceof Date)return t;if("number"==typeof t)return new Date(t);if("string"==typeof t){const[e,i,a]=t.split("-").map(Number);if(!isNaN(e)&&!isNaN(i)&&!isNaN(a))return new Date(e,i-1,a)}return t})):(this._processedDisableDates=[],console.warn("Disable prop must be an array")),this.flatpickrInstance&&this.debouncedUpdate()),(t.has("dateFormat")||t.has("minDate")||t.has("maxDate")||t.has("locale")||t.has("twentyFourHourFormat"))&&(this._enableTime=u(this.dateFormat),this.flatpickrInstance&&this._initialized&&!this._isClearing&&(t.has("dateFormat"),this.debouncedUpdate())),t.has("datePickerDisabled")&&this.datePickerDisabled&&this.flatpickrInstance&&this.flatpickrInstance.close()}async setupAnchor(){if(this._inputEl)try{await this.initializeFlatpickr()}catch(t){console.error("Error setting up flatpickr:",t)}else console.warn("Input element not found during setup")}async _handleClear(t){var e;if(t.preventDefault(),t.stopPropagation(),this.flatpickrInstance){this._isClearing=!0;try{this.value="multiple"===this.mode?[]:null,this.defaultDate=null,this.flatpickrInstance.clear(),this._inputEl&&(this._inputEl.value=""),m(this,"on-change",{dates:this.value,dateString:null===(e=this._inputEl)||void 0===e?void 0:e.value,source:"clear"}),this._validate(!0,!1),await this.updateComplete,await this.initializeFlatpickr(),this.requestUpdate()}catch(t){console.error("Error clearing datepicker:",t)}finally{this._isClearing=!1}}else console.warn("Cannot clear: Flatpickr instance not available")}async initializeFlatpickr(){if(!this._isDestroyed)if(this._inputEl&&this._inputEl.isConnected)try{if(this.flatpickrInstance&&this.flatpickrInstance.destroy(),this.flatpickrInstance=await v({inputEl:this._inputEl,getFlatpickrOptions:()=>this.getComponentFlatpickrOptions(),setCalendarAttributes:t=>{try{const e=k(this);g(t,e!==document.body),t.calendarContainer&&t.calendarContainer.setAttribute("aria-label","Date picker")}catch(t){console.warn("Error setting calendar attributes:",t)}},setInitialDates:this.setInitialDates.bind(this)}),!this.flatpickrInstance)throw new Error("Failed to initialize Flatpickr instance");f(),this._validate(!1,!1)}catch(t){console.error("Error initializing Flatpickr:",t),t instanceof Error&&console.error("Error details:",t.message)}else console.warn("Cannot initialize Flatpickr: input element not available or not connected to DOM")}async updateFlatpickrOptions(){this.flatpickrInstance?await this.debouncedUpdate():console.warn("Cannot update options: Flatpickr instance not available")}setInitialDates(){if(this.flatpickrInstance)try{const t=this.defaultDate||this.value;if(!t)return;if(Array.isArray(t)){const e=t.filter((t=>!!t&&!("string"==typeof t&&!t.trim())));e.length>0&&this.flatpickrInstance.setDate(e,!0)}else("string"==typeof t&&t.trim()||t instanceof Date)&&this.flatpickrInstance.setDate(t,!0)}catch(t){console.warn("Error setting initial dates:",t),t instanceof Error&&console.warn("Error details:",t.message)}else console.warn("Cannot set initial dates: Flatpickr instance not available")}async getComponentFlatpickrOptions(){var t;const e=k(this);return await b({locale:this.locale,dateFormat:this.dateFormat,defaultDate:this.defaultDate?this.defaultDate:void 0,enableTime:this._enableTime,twentyFourHourFormat:null!==(t=this.twentyFourHourFormat)&&void 0!==t?t:void 0,inputEl:this._inputEl,minDate:this.minDate,maxDate:this.maxDate,enable:this.enable,disable:this._processedDisableDates,mode:this.mode,closeOnSelect:!("multiple"===this.mode||this._enableTime),loadLocale:y,onOpen:this.handleOpen.bind(this),onClose:this.handleClose.bind(this),onChange:this.handleDateChange.bind(this),appendTo:e,noCalendar:!1,static:this.staticPosition})}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;if(!this._isClearing){this._hasInteracted=!0;try{let a;"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,m(this,"on-change",{dates:a,dateString:(null===(i=this._inputEl)||void 0===i?void 0:i.value)||e,source:0===t.length?"clear":void 0}),this._validate(!0,!1),await this.updateComplete,this.requestUpdate()}catch(t){console.warn("Error handling date change:",t)}}}setShouldFlatpickrOpen(t){this._shouldFlatpickrOpen=t}closeFlatpickr(){var t;null===(t=this.flatpickrInstance)||void 0===t||t.close()}preventFlatpickrOpen(t){x(t,this.setShouldFlatpickrOpen.bind(this))}handleInputClickEvent(){w(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,n=this._inputEl.validationMessage;a&&i&&(r={...r,valueMissing:!0},n=this.defaultErrorMessage||this._textStrings.pleaseSelectDate),this.invalidText&&(r={...r,customError:!0},n=this.invalidText);const l=!r.valueMissing&&!r.customError;l||n||(n=this._textStrings.pleaseSelectValidDate),this._internals.setValidity(r,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)}disconnectedCallback(){this._isDestroyed=!0,super.disconnectedCallback(),this.removeEventListener("change",this._onChange),this.removeEventListener("reset",this._handleFormReset),this.flatpickrInstance&&(this.flatpickrInstance.destroy(),this.flatpickrInstance=void 0)}};C.styles=[E,z],t([i({type:String})],C.prototype,"label",void 0),t([i({type:String})],C.prototype,"locale",void 0),t([i({type:String})],C.prototype,"dateFormat",void 0),t([i({type:Array})],C.prototype,"defaultDate",void 0),t([i({type:String})],C.prototype,"defaultErrorMessage",void 0),t([i({type:Boolean})],C.prototype,"required",void 0),t([i({type:String})],C.prototype,"size",void 0),t([i({type:Array})],C.prototype,"value",void 0),t([i({type:String})],C.prototype,"warnText",void 0),t([i({type:Array})],C.prototype,"disable",void 0),t([a()],C.prototype,"_processedDisableDates",void 0),t([i({type:Array})],C.prototype,"enable",void 0),t([i({type:String})],C.prototype,"mode",void 0),t([i({type:String})],C.prototype,"caption",void 0),t([i({type:Boolean})],C.prototype,"datePickerDisabled",void 0),t([i({type:Boolean})],C.prototype,"twentyFourHourFormat",void 0),t([i({type:String})],C.prototype,"minDate",void 0),t([i({type:String})],C.prototype,"maxDate",void 0),t([i({type:String})],C.prototype,"errorAriaLabel",void 0),t([i({type:String})],C.prototype,"errorTitle",void 0),t([i({type:String})],C.prototype,"warningAriaLabel",void 0),t([i({type:String})],C.prototype,"warningTitle",void 0),t([i({type:Boolean})],C.prototype,"staticPosition",void 0),t([a()],C.prototype,"_enableTime",void 0),t([a()],C.prototype,"_hasInteracted",void 0),t([a()],C.prototype,"flatpickrInstance",void 0),t([r("input")],C.prototype,"_inputEl",void 0),t([a()],C.prototype,"_isClearing",void 0),t([i({type:Object})],C.prototype,"textStrings",void 0),t([a()],C.prototype,"_textStrings",void 0),t([a()],C.prototype,"_shouldFlatpickrOpen",void 0),C=t([n("kyn-date-picker")],C);export{C as DatePicker};
585
585
  //# 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 { langsArray } from '../../../common/flatpickrLangs';\nimport {\n injectFlatpickrStyles,\n initializeSingleAnchorFlatpickr,\n getFlatpickrOptions,\n getPlaceholder,\n preventFlatpickrOpen,\n handleInputClick,\n handleInputFocus,\n updateEnableTime,\n setCalendarAttributes,\n loadLocale,\n emitValue,\n hideEmptyYear,\n getModalContainer,\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/16/close-simple.svg';\n\ntype SupportedLocale = (typeof langsArray)[number];\n\nconst _defaultTextStrings = {\n requiredText: 'Required',\n clearAll: 'Clear',\n pleaseSelectDate: 'Please select a date',\n noDateSelected: 'No date selected',\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 | string = 'en';\n\n /** Sets flatpickr value to define how the date will be displayed in the input box (ex: `Y-m-d H:i`). */\n @property({ type: String })\n 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. Accepts array of dates in Y-m-d format, timestamps, or Date objects. */\n @property({ type: Array })\n disable: (string | number | Date)[] = [];\n\n /** Internal storage for processed disable dates */\n @state()\n private _processedDisableDates: (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 whether the Flatpickr calendar UI should use static positioning. */\n @property({ type: Boolean })\n staticPosition = false;\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 /** Tracks if we're in a clear operation to prevent duplicate events\n * @internal\n */\n @state()\n private _isClearing = 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 /** Track destroyed state\n * @internal\n */\n private _isDestroyed = false;\n\n private debounce<T extends (...args: any[]) => any>(\n func: T,\n wait: number\n ): (...args: Parameters<T>) => void {\n let timeout: number | null = null;\n\n return (...args: Parameters<T>) => {\n if (timeout !== null) {\n window.clearTimeout(timeout);\n }\n\n timeout = window.setTimeout(() => {\n func.apply(this, args);\n timeout = null;\n }, wait);\n };\n }\n\n private debouncedUpdate = this.debounce(async () => {\n if (!this.flatpickrInstance) return;\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n console.error('Error in debounced update:', error);\n }\n }, 100);\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('change', this._onChange);\n this.addEventListener('reset', this._handleFormReset);\n }\n\n private hasValue(): boolean {\n if (this._inputEl?.value) return true;\n if (this.value) {\n if (Array.isArray(this.value)) {\n return (\n this.value.length > 0 && !this.value.every((date) => date === null)\n );\n }\n return true;\n }\n if (this.defaultDate) {\n if (Array.isArray(this.defaultDate)) {\n return (\n this.defaultDate.length > 0 &&\n !this.defaultDate.every((date) => !date || date === '')\n );\n }\n return !!this.defaultDate;\n }\n return false;\n }\n\n 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.hasValue()\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 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 (changedProperties.has('value') && !this._isClearing) {\n const newValue = this.value;\n if (\n newValue === null ||\n (Array.isArray(newValue) && newValue.length === 0)\n ) {\n if (this.flatpickrInstance) {\n this._isClearing = true;\n try {\n this.flatpickrInstance.clear();\n if (this._inputEl) {\n this._inputEl.value = '';\n }\n } finally {\n this._isClearing = false;\n }\n }\n } else if (this.flatpickrInstance) {\n let shouldSetInitialDates = false;\n if (this.mode === 'multiple' && Array.isArray(newValue)) {\n const currentDates = this.flatpickrInstance.selectedDates;\n if (!currentDates || currentDates.length !== newValue.length) {\n shouldSetInitialDates = true;\n } else {\n for (let i = 0; i < newValue.length; i++) {\n if (\n currentDates[i].getTime() !== (newValue[i] as Date).getTime()\n ) {\n shouldSetInitialDates = true;\n break;\n }\n }\n }\n } else if (this.mode === 'single' && newValue instanceof Date) {\n const currentDate = this.flatpickrInstance.selectedDates[0];\n if (!currentDate || currentDate.getTime() !== newValue.getTime()) {\n shouldSetInitialDates = true;\n }\n }\n if (shouldSetInitialDates) {\n this.setInitialDates();\n }\n }\n this.requestUpdate();\n }\n\n if (\n changedProperties.has('defaultDate') &&\n this.flatpickrInstance &&\n !this._isClearing\n ) {\n this.debouncedUpdate();\n }\n\n if (changedProperties.has('disable')) {\n if (Array.isArray(this.disable)) {\n this._processedDisableDates = this.disable.map((date) => {\n if (date instanceof Date) return date;\n if (typeof date === 'number') return new Date(date);\n if (typeof date === 'string') {\n const [year, month, day] = date.split('-').map(Number);\n if (!isNaN(year) && !isNaN(month) && !isNaN(day)) {\n return new Date(year, month - 1, day);\n }\n }\n return date;\n });\n } else {\n this._processedDisableDates = [];\n console.warn('Disable prop must be an array');\n }\n if (this.flatpickrInstance) {\n this.debouncedUpdate();\n }\n }\n\n if (\n changedProperties.has('dateFormat') ||\n changedProperties.has('minDate') ||\n changedProperties.has('maxDate') ||\n changedProperties.has('locale') ||\n changedProperties.has('twentyFourHourFormat')\n ) {\n this._enableTime = updateEnableTime(this.dateFormat);\n if (this.flatpickrInstance && this._initialized && !this._isClearing) {\n this.debouncedUpdate();\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 setupAnchor() {\n if (!this._inputEl) {\n console.warn('Input element not found during setup');\n return;\n }\n\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n console.error('Error setting up flatpickr:', error);\n }\n }\n\n private async _clearInput(\n options: { reinitFlatpickr?: boolean } = { reinitFlatpickr: true }\n ): Promise<void> {\n this.value = this.mode === 'multiple' ? [] : null;\n this.defaultDate = null;\n\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n }\n if (this._inputEl) {\n this._inputEl.value = '';\n }\n\n emitValue(this, 'on-change', {\n dates: this.value,\n source: 'clear',\n });\n\n this._validate(true, false);\n await this.updateComplete;\n\n if (options.reinitFlatpickr) {\n await this.initializeFlatpickr();\n this.requestUpdate();\n }\n }\n\n private async _handleClear(event: Event): Promise<void> {\n event.preventDefault();\n event.stopPropagation();\n this._isClearing = true;\n try {\n await this._clearInput();\n } finally {\n this._isClearing = false;\n }\n }\n\n async handleClose(): Promise<void> {\n this._hasInteracted = true;\n this._validate(true, false);\n await this.updateComplete;\n }\n\n async initializeFlatpickr(): Promise<void> {\n if (this._isDestroyed) {\n return;\n }\n\n if (!this._inputEl || !this._inputEl.isConnected) {\n console.warn(\n 'Cannot initialize Flatpickr: input element not available or not connected to DOM'\n );\n return;\n }\n\n try {\n if (this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n }\n\n this.flatpickrInstance = await initializeSingleAnchorFlatpickr({\n inputEl: this._inputEl,\n getFlatpickrOptions: () => this.getComponentFlatpickrOptions(),\n setCalendarAttributes: (instance) => {\n try {\n const container = getModalContainer(this);\n setCalendarAttributes(instance, container !== document.body);\n if (instance.calendarContainer) {\n instance.calendarContainer.setAttribute(\n 'aria-label',\n 'Date picker'\n );\n }\n } catch (error) {\n console.warn('Error setting calendar attributes:', error);\n }\n },\n setInitialDates: this.setInitialDates.bind(this),\n });\n\n if (!this.flatpickrInstance) {\n throw new Error('Failed to initialize Flatpickr instance');\n }\n\n hideEmptyYear();\n this._validate(false, false);\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n if (error instanceof Error) {\n console.error('Error details:', error.message);\n }\n }\n }\n\n async updateFlatpickrOptions(): Promise<void> {\n if (!this.flatpickrInstance) {\n console.warn('Cannot update options: Flatpickr instance not available');\n return;\n }\n await this.debouncedUpdate();\n }\n\n setInitialDates(): void {\n if (!this.flatpickrInstance) {\n console.warn(\n 'Cannot set initial dates: Flatpickr instance not available'\n );\n return;\n }\n\n try {\n const dateToSet = this.defaultDate || this.value;\n if (!dateToSet) return;\n\n if (Array.isArray(dateToSet)) {\n const validDates = dateToSet\n .map((date) => {\n if (typeof date === 'string') {\n const trimmed = date.trim();\n if (trimmed.includes('T')) {\n const parsed = new Date(trimmed);\n return isNaN(parsed.getTime()) ? null : parsed;\n } else {\n const parts = trimmed.split('-').map(Number);\n if (parts.length === 3) {\n const [year, month, day] = parts;\n if (!isNaN(year) && !isNaN(month) && !isNaN(day)) {\n const localDate = new Date();\n localDate.setFullYear(year, month - 1, day);\n localDate.setHours(0, 0, 0, 0);\n return localDate;\n }\n }\n return null;\n }\n } else if (date instanceof Date) {\n return date;\n }\n return null;\n })\n .filter((date): date is Date => date !== null);\n\n if (validDates.length > 0) {\n this.flatpickrInstance.setDate(validDates, true);\n }\n } else if (typeof dateToSet === 'string') {\n const trimmed = dateToSet.trim();\n if (trimmed.includes('T')) {\n const parsed = new Date(trimmed);\n if (!isNaN(parsed.getTime())) {\n this.flatpickrInstance.setDate(parsed, true);\n }\n } else {\n const parts = trimmed.split('-').map(Number);\n if (parts.length === 3) {\n const [year, month, day] = parts;\n if (!isNaN(year) && !isNaN(month) && !isNaN(day)) {\n const localDate = new Date();\n localDate.setFullYear(year, month - 1, day);\n localDate.setHours(0, 0, 0, 0);\n this.flatpickrInstance.setDate(localDate, true);\n }\n }\n }\n } else if (dateToSet instanceof Date) {\n this.flatpickrInstance.setDate(dateToSet, true);\n }\n } catch (error) {\n console.warn('Error setting initial dates:', error);\n if (error instanceof Error) {\n console.warn('Error details:', error.message);\n }\n }\n }\n\n async getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>> {\n const container = getModalContainer(this);\n const options = await getFlatpickrOptions({\n locale: this.locale,\n dateFormat: this.dateFormat,\n defaultDate: this.defaultDate ? this.defaultDate : undefined,\n enableTime: this._enableTime,\n twentyFourHourFormat: this.twentyFourHourFormat ?? undefined,\n inputEl: this._inputEl!,\n minDate: this.minDate,\n maxDate: this.maxDate,\n enable: this.enable,\n disable: this._processedDisableDates,\n mode: 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 noCalendar: false,\n static: this.staticPosition,\n });\n return options;\n }\n\n handleOpen(): void {\n if (!this._shouldFlatpickrOpen) {\n this.flatpickrInstance?.close();\n this._shouldFlatpickrOpen = true;\n }\n }\n\n async handleDateChange(\n selectedDates: Date[],\n dateStr: string\n ): Promise<void> {\n if (this._isClearing) return;\n\n this._hasInteracted = true;\n\n try {\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 source: selectedDates.length === 0 ? 'clear' : undefined,\n });\n\n this._validate(true, false);\n await this.updateComplete;\n this.requestUpdate();\n } catch (error) {\n console.warn('Error handling date change:', error);\n }\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 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 this._isDestroyed = true;\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","noDateSelected","pleaseSelectValidDate","DatePicker","FormMixin","LitElement","constructor","this","label","locale","dateFormat","defaultDate","defaultErrorMessage","required","size","value","warnText","disable","_processedDisableDates","enable","mode","caption","datePickerDisabled","twentyFourHourFormat","minDate","maxDate","errorAriaLabel","errorTitle","warningAriaLabel","warningTitle","staticPosition","_enableTime","_hasInteracted","_isClearing","textStrings","_textStrings","_shouldFlatpickrOpen","_initialized","_isDestroyed","debouncedUpdate","debounce","async","flatpickrInstance","initializeFlatpickr","error","console","func","wait","timeout","args","window","clearTimeout","setTimeout","apply","connectedCallback","super","addEventListener","_onChange","_handleFormReset","hasValue","_a","_inputEl","Array","isArray","length","every","date","render","errorId","name","warningId","anchorId","Math","random","toString","slice","descriptionId","placeholder","getPlaceholder","html","classMap","getDatepickerClasses","preventFlatpickrOpen","_b","_c","_isInvalid","handleInputClickEvent","handleInputFocusEvent","_handleClear","unsafeSVG","clearIcon","calendarIcon","renderValidationMessage","invalidText","errorIcon","_internalValidationMsg","firstUpdated","changedProperties","injectFlatpickrStyles","ShidokaFlatpickrTheme","updateComplete","setupAnchor","updated","has","newValue","clear","shouldSetInitialDates","currentDates","selectedDates","i","getTime","Date","currentDate","setInitialDates","requestUpdate","map","year","month","day","split","Number","isNaN","warn","updateEnableTime","close","_clearInput","options","reinitFlatpickr","emitValue","dates","source","_validate","event","preventDefault","stopPropagation","handleClose","isConnected","destroy","initializeSingleAnchorFlatpickr","inputEl","getFlatpickrOptions","getComponentFlatpickrOptions","setCalendarAttributes","instance","container","getModalContainer","document","body","calendarContainer","setAttribute","bind","Error","hideEmptyYear","message","updateFlatpickrOptions","dateToSet","validDates","trimmed","trim","includes","parsed","parts","localDate","setFullYear","setHours","filter","setDate","undefined","enableTime","closeOnSelect","loadLocale","onOpen","handleOpen","onClose","onChange","handleDateChange","appendTo","noCalendar","static","dateStr","formattedDates","toISOString","dateString","setShouldFlatpickrOpen","closeFlatpickr","handleInputClick","handleInputFocus","interacted","report","HTMLInputElement","isEmpty","isRequired","validity","validationMessage","valueMissing","customError","isValid","_internals","setValidity","reportValidity","disconnectedCallback","removeEventListener","styles","DatePickerStyles","__decorate","property","type","String","prototype","Boolean","state","query","Object","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 { langsArray } from '../../../common/flatpickrLangs';\nimport {\n injectFlatpickrStyles,\n initializeSingleAnchorFlatpickr,\n getFlatpickrOptions,\n getPlaceholder,\n preventFlatpickrOpen,\n handleInputClick,\n handleInputFocus,\n updateEnableTime,\n setCalendarAttributes,\n loadLocale,\n emitValue,\n hideEmptyYear,\n getModalContainer,\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/16/close-simple.svg';\n\ntype SupportedLocale = (typeof langsArray)[number];\n\nconst _defaultTextStrings = {\n requiredText: 'Required',\n clearAll: 'Clear',\n pleaseSelectDate: 'Please select a date',\n noDateSelected: 'No date selected',\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 | string = 'en';\n\n /** Sets flatpickr value to define how the date will be displayed in the input box (ex: `Y-m-d H:i`). */\n @property({ type: String })\n 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. Accepts array of dates in Y-m-d format, timestamps, or Date objects. */\n @property({ type: Array })\n disable: (string | number | Date)[] = [];\n\n /** Internal storage for processed disable dates */\n @state()\n private _processedDisableDates: (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 whether the Flatpickr calendar UI should use static positioning. */\n @property({ type: Boolean })\n staticPosition = false;\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 /** Tracks if we're in a clear operation to prevent duplicate events\n * @internal\n */\n @state()\n private _isClearing = 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 /** Track destroyed state\n * @internal\n */\n private _isDestroyed = false;\n\n private debounce<T extends (...args: any[]) => any>(\n func: T,\n wait: number\n ): (...args: Parameters<T>) => void {\n let timeout: number | null = null;\n\n return (...args: Parameters<T>) => {\n if (timeout !== null) {\n window.clearTimeout(timeout);\n }\n\n timeout = window.setTimeout(() => {\n func.apply(this, args);\n timeout = null;\n }, wait);\n };\n }\n\n private debouncedUpdate = this.debounce(async () => {\n if (!this.flatpickrInstance) return;\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n console.error('Error in debounced update:', error);\n }\n }, 100);\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('change', this._onChange);\n this.addEventListener('reset', this._handleFormReset);\n }\n\n private hasValue(): boolean {\n if (this._inputEl?.value) return true;\n if (this.value) {\n if (Array.isArray(this.value)) {\n return (\n this.value.length > 0 && !this.value.every((date) => date === null)\n );\n }\n return true;\n }\n if (this.defaultDate) {\n if (Array.isArray(this.defaultDate)) {\n return (\n this.defaultDate.length > 0 &&\n !this.defaultDate.every((date) => !date || date === '')\n );\n }\n return !!this.defaultDate;\n }\n return false;\n }\n\n 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.hasValue()\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 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 (changedProperties.has('value') && !this._isClearing) {\n let newValue = this.value;\n\n if (typeof newValue === 'string') {\n try {\n const strValue = newValue as string;\n if (strValue.trim() !== '' && /\\d{4}-\\d{2}-\\d{2}/.test(strValue)) {\n const [year, month, day] = strValue.split('-').map(Number);\n if (!isNaN(year) && !isNaN(month) && !isNaN(day)) {\n this.value = new Date(year, month - 1, day, 12);\n newValue = this.value;\n if (this.flatpickrInstance) {\n this.flatpickrInstance.setDate(newValue, true);\n }\n }\n }\n } catch (e) {\n console.warn('Error parsing date string:', e);\n }\n }\n\n const isNull =\n newValue === null || (Array.isArray(newValue) && newValue.length === 0);\n if (isNull && this.flatpickrInstance) {\n this._isClearing = true;\n try {\n this.flatpickrInstance.clear();\n if (this._inputEl) {\n this._inputEl.value = '';\n }\n } finally {\n this._isClearing = false;\n }\n }\n this.requestUpdate();\n }\n\n if (\n changedProperties.has('defaultDate') &&\n this.flatpickrInstance &&\n !this._isClearing\n ) {\n this.debouncedUpdate();\n }\n\n if (changedProperties.has('disable')) {\n if (Array.isArray(this.disable)) {\n this._processedDisableDates = this.disable.map((date) => {\n if (date instanceof Date) return date;\n if (typeof date === 'number') return new Date(date);\n if (typeof date === 'string') {\n const [year, month, day] = date.split('-').map(Number);\n if (!isNaN(year) && !isNaN(month) && !isNaN(day)) {\n return new Date(year, month - 1, day);\n }\n }\n return date;\n });\n } else {\n this._processedDisableDates = [];\n console.warn('Disable prop must be an array');\n }\n if (this.flatpickrInstance) {\n this.debouncedUpdate();\n }\n }\n\n if (\n changedProperties.has('dateFormat') ||\n changedProperties.has('minDate') ||\n changedProperties.has('maxDate') ||\n changedProperties.has('locale') ||\n changedProperties.has('twentyFourHourFormat')\n ) {\n this._enableTime = updateEnableTime(this.dateFormat);\n if (this.flatpickrInstance && this._initialized && !this._isClearing) {\n if (changedProperties.has('dateFormat')) {\n this.debouncedUpdate();\n } else {\n this.debouncedUpdate();\n }\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 setupAnchor() {\n if (!this._inputEl) {\n console.warn('Input element not found during setup');\n return;\n }\n\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n console.error('Error setting up flatpickr:', error);\n }\n }\n\n private async _handleClear(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (!this.flatpickrInstance) {\n console.warn('Cannot clear: Flatpickr instance not available');\n return;\n }\n\n this._isClearing = true;\n\n try {\n this.value = this.mode === 'multiple' ? [] : null;\n this.defaultDate = null;\n\n this.flatpickrInstance.clear();\n if (this._inputEl) {\n this._inputEl.value = '';\n }\n\n emitValue(this, 'on-change', {\n dates: this.value,\n dateString: (this._inputEl as HTMLInputElement)?.value,\n source: 'clear',\n });\n\n this._validate(true, false);\n await this.updateComplete;\n await this.initializeFlatpickr();\n this.requestUpdate();\n } catch (error) {\n console.error('Error clearing datepicker:', error);\n } finally {\n this._isClearing = false;\n }\n }\n\n async initializeFlatpickr(): Promise<void> {\n if (this._isDestroyed) {\n return;\n }\n\n if (!this._inputEl || !this._inputEl.isConnected) {\n console.warn(\n 'Cannot initialize Flatpickr: input element not available or not connected to DOM'\n );\n return;\n }\n\n try {\n if (this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n }\n\n this.flatpickrInstance = await initializeSingleAnchorFlatpickr({\n inputEl: this._inputEl,\n getFlatpickrOptions: () => this.getComponentFlatpickrOptions(),\n setCalendarAttributes: (instance) => {\n try {\n const container = getModalContainer(this);\n setCalendarAttributes(instance, container !== document.body);\n if (instance.calendarContainer) {\n instance.calendarContainer.setAttribute(\n 'aria-label',\n 'Date picker'\n );\n }\n } catch (error) {\n console.warn('Error setting calendar attributes:', error);\n }\n },\n setInitialDates: this.setInitialDates.bind(this),\n });\n\n if (!this.flatpickrInstance) {\n throw new Error('Failed to initialize Flatpickr instance');\n }\n\n hideEmptyYear();\n this._validate(false, false);\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n if (error instanceof Error) {\n console.error('Error details:', error.message);\n }\n }\n }\n\n async updateFlatpickrOptions(): Promise<void> {\n if (!this.flatpickrInstance) {\n console.warn('Cannot update options: Flatpickr instance not available');\n return;\n }\n await this.debouncedUpdate();\n }\n\n setInitialDates(): void {\n if (!this.flatpickrInstance) {\n console.warn(\n 'Cannot set initial dates: Flatpickr instance not available'\n );\n return;\n }\n\n try {\n const dateToSet = this.defaultDate || this.value;\n if (!dateToSet) return;\n\n if (Array.isArray(dateToSet)) {\n const validDates = dateToSet.filter((date) => {\n if (!date) return false;\n if (typeof date === 'string' && !date.trim()) return false;\n return true;\n });\n\n if (validDates.length > 0) {\n this.flatpickrInstance.setDate(validDates, true);\n }\n } else if (typeof dateToSet === 'string' && dateToSet.trim()) {\n this.flatpickrInstance.setDate(dateToSet, true);\n } else if (dateToSet instanceof Date) {\n this.flatpickrInstance.setDate(dateToSet, true);\n }\n } catch (error) {\n console.warn('Error setting initial dates:', error);\n\n if (error instanceof Error) {\n console.warn('Error details:', error.message);\n }\n }\n }\n\n async getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>> {\n const container = getModalContainer(this);\n const options = await getFlatpickrOptions({\n locale: this.locale,\n dateFormat: this.dateFormat,\n defaultDate: this.defaultDate ? this.defaultDate : undefined,\n enableTime: this._enableTime,\n twentyFourHourFormat: this.twentyFourHourFormat ?? undefined,\n inputEl: this._inputEl!,\n minDate: this.minDate,\n maxDate: this.maxDate,\n enable: this.enable,\n disable: this._processedDisableDates,\n mode: 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 noCalendar: false,\n static: this.staticPosition,\n });\n return options;\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 if (this._isClearing) return;\n\n this._hasInteracted = true;\n\n try {\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 source: selectedDates.length === 0 ? 'clear' : undefined,\n });\n\n this._validate(true, false);\n await this.updateComplete;\n this.requestUpdate();\n } catch (error) {\n console.warn('Error handling date change:', error);\n }\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 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 this._isDestroyed = true;\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","noDateSelected","pleaseSelectValidDate","DatePicker","FormMixin","LitElement","constructor","this","label","locale","dateFormat","defaultDate","defaultErrorMessage","required","size","value","warnText","disable","_processedDisableDates","enable","mode","caption","datePickerDisabled","twentyFourHourFormat","minDate","maxDate","errorAriaLabel","errorTitle","warningAriaLabel","warningTitle","staticPosition","_enableTime","_hasInteracted","_isClearing","textStrings","_textStrings","_shouldFlatpickrOpen","_initialized","_isDestroyed","debouncedUpdate","debounce","async","flatpickrInstance","initializeFlatpickr","error","console","func","wait","timeout","args","window","clearTimeout","setTimeout","apply","connectedCallback","super","addEventListener","_onChange","_handleFormReset","hasValue","_a","_inputEl","Array","isArray","length","every","date","render","errorId","name","warningId","anchorId","Math","random","toString","slice","descriptionId","placeholder","getPlaceholder","html","classMap","getDatepickerClasses","preventFlatpickrOpen","_b","_c","_isInvalid","handleInputClickEvent","handleInputFocusEvent","_handleClear","unsafeSVG","clearIcon","calendarIcon","renderValidationMessage","invalidText","errorIcon","_internalValidationMsg","firstUpdated","changedProperties","injectFlatpickrStyles","ShidokaFlatpickrTheme","updateComplete","setupAnchor","updated","has","newValue","strValue","trim","test","year","month","day","split","map","Number","isNaN","Date","setDate","e","warn","clear","requestUpdate","updateEnableTime","close","event","preventDefault","stopPropagation","emitValue","dates","dateString","source","_validate","isConnected","destroy","initializeSingleAnchorFlatpickr","inputEl","getFlatpickrOptions","getComponentFlatpickrOptions","setCalendarAttributes","instance","container","getModalContainer","document","body","calendarContainer","setAttribute","setInitialDates","bind","Error","hideEmptyYear","message","updateFlatpickrOptions","dateToSet","validDates","filter","undefined","enableTime","closeOnSelect","loadLocale","onOpen","handleOpen","onClose","handleClose","onChange","handleDateChange","appendTo","noCalendar","static","selectedDates","dateStr","formattedDates","toISOString","setShouldFlatpickrOpen","closeFlatpickr","handleInputClick","handleInputFocus","interacted","report","HTMLInputElement","isEmpty","isRequired","validity","validationMessage","valueMissing","customError","isValid","_internals","setValidity","reportValidity","disconnectedCallback","removeEventListener","styles","DatePickerStyles","__decorate","property","type","String","prototype","Boolean","state","query","Object","customElement"],"mappings":"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"}
@@ -111,9 +111,7 @@ export declare class TimePicker extends TimePicker_base {
111
111
  };
112
112
  firstUpdated(changedProperties: PropertyValues): Promise<void>;
113
113
  updated(changedProperties: PropertyValues): Promise<void>;
114
- private _clearInput;
115
114
  private _handleClear;
116
- handleClose(): Promise<void>;
117
115
  private setupAnchor;
118
116
  private _isDestroyed;
119
117
  initializeFlatpickr(): Promise<void>;
@@ -121,6 +119,7 @@ export declare class TimePicker extends TimePicker_base {
121
119
  getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>>;
122
120
  setInitialDates(instance: flatpickr.Instance): void;
123
121
  handleOpen(): void;
122
+ handleClose(): Promise<void>;
124
123
  handleTimeChange(selectedDates: Date[], dateStr: string): Promise<void>;
125
124
  private _validate;
126
125
  private _onChange;
@@ -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-446874c7.js";import{i as l,x as o,s}from"../../../vendor/lit-element-c6c02f24.js";import{FormMixin as d}from"../../../common/mixins/form-input.js";import"../button/button.js";import{injectFlatpickrStyles as c,emitValue as p,initializeSingleAnchorFlatpickr as h,getModalContainer as u,setCalendarAttributes as m,hideEmptyYear as v,getFlatpickrOptions as k,loadLocale as f,preventFlatpickrOpen as g,handleInputClick as b,handleInputFocus as y}from"../../../common/helpers/flatpickr.js";import{c as x}from"../../../shidoka-flatpickr-theme-a5fbea77.js";import{o as w}from"../../../vendor/lit-html-29220869.js";import{c as _,O as z,M as I}from"../../../vendor/@kyndryl-design-system/shidoka-icons-a6eca21f.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";import"../../../vendor/flatpickr-bbd13d61.js";import"../../../common/flatpickrLangs.js";var F=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 n}from"../../../vendor/lit-446874c7.js";import{i as l,x as o,s}from"../../../vendor/lit-element-c6c02f24.js";import{FormMixin as d}from"../../../common/mixins/form-input.js";import"../button/button.js";import{injectFlatpickrStyles as c,emitValue as p,initializeSingleAnchorFlatpickr as h,getModalContainer as u,setCalendarAttributes as m,hideEmptyYear as v,getFlatpickrOptions as k,loadLocale as f,preventFlatpickrOpen as g,handleInputClick as b,handleInputFocus as y}from"../../../common/helpers/flatpickr.js";import{c as x}from"../../../shidoka-flatpickr-theme-a5fbea77.js";import{o as w}from"../../../vendor/lit-html-29220869.js";import{c as _,O as z,M as I}from"../../../vendor/@kyndryl-design-system/shidoka-icons-a6eca21f.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";import"../../../vendor/flatpickr-bbd13d61.js";import"../../../common/flatpickrLangs.js";var $=l`*,
2
2
  *::before,
3
3
  *::after {
4
4
  box-sizing: border-box;
@@ -496,7 +496,7 @@ input {
496
496
  }
497
497
  .time-picker__disabled .input-custom {
498
498
  pointer-events: none;
499
- }`;const $={requiredText:"Required",clearAll:"Clear",pleaseSelectDate:"Please select a date",noTimeSelected:"No time selected",pleaseSelectValidDate:"Please select a valid date"};let C=class extends(d(s)){constructor(){super(...arguments),this.label="",this.locale="en",this.value=null,this.defaultDate=null,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.staticPosition=!1,this._hasInteracted=!1,this._isClearing=!1,this.textStrings=$,this._textStrings=$,this._shouldFlatpickrOpen=!0,this._initialized=!1,this.debouncedUpdate=this.debounce((async()=>{if(this.flatpickrInstance)try{await this.initializeFlatpickr()}catch(t){console.error("Error in debounced update:",t)}}),100),this._isDestroyed=!1}debounce(t,e){let i=null;return(...r)=>{null!==i&&window.clearTimeout(i),i=window.setTimeout((()=>{t.apply(this,r),i=null}),e)}}generateRandomId(t){return`${t}-${Math.random().toString(36).slice(2,11)}`}connectedCallback(){super.connectedCallback(),this.addEventListener("change",this._onChange),this.addEventListener("reset",this._handleFormReset)}hasValue(){return null!==this.value&&this._hasInteracted}render(){var t,i,r;const a=`${this.name}-error-message`,n=`${this.name}-warning-message`,l=this.name?this.generateRandomId(this.name):this.generateRandomId("time-picker"),s=null!==(t=this.name)&&void 0!==t?t:"";return o`
499
+ }`;const F={requiredText:"Required",clearAll:"Clear",pleaseSelectDate:"Please select a date",noTimeSelected:"No time selected",pleaseSelectValidDate:"Please select a valid date"};let E=class extends(d(s)){constructor(){super(...arguments),this.label="",this.locale="en",this.value=null,this.defaultDate=null,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.staticPosition=!1,this._hasInteracted=!1,this._isClearing=!1,this.textStrings=F,this._textStrings=F,this._shouldFlatpickrOpen=!0,this._initialized=!1,this.debouncedUpdate=this.debounce((async()=>{if(this.flatpickrInstance)try{await this.initializeFlatpickr()}catch(t){console.error("Error in debounced update:",t)}}),100),this._isDestroyed=!1}debounce(t,e){let i=null;return(...r)=>{null!==i&&window.clearTimeout(i),i=window.setTimeout((()=>{t.apply(this,r),i=null}),e)}}generateRandomId(t){return`${t}-${Math.random().toString(36).slice(2,11)}`}connectedCallback(){super.connectedCallback(),this.addEventListener("change",this._onChange),this.addEventListener("reset",this._handleFormReset)}hasValue(){var t;return!!(null===(t=this._inputEl)||void 0===t?void 0:t.value)||(null!==this.value||(!!this.defaultDate||(null!==this.defaultHour||null!==this.defaultMinute)))}render(){var t,i,r;const a=`${this.name}-error-message`,n=`${this.name}-warning-message`,l=this.name?this.generateRandomId(this.name):this.generateRandomId("time-picker"),s=null!==(t=this.name)&&void 0!==t?t:"";return o`
500
500
  <div class=${e(this.getTimepickerClasses())}>
501
501
  <div
502
502
  class="label-text"
@@ -580,5 +580,5 @@ input {
580
580
  @click=${this.preventFlatpickrOpen}
581
581
  >
582
582
  ${this.warnText}
583
- </div>`:null}getTimepickerClasses(){return{"time-picker":!0,"time-picker__disabled":this.timepickerDisabled}}async firstUpdated(t){super.firstUpdated(t),this._initialized||(c(x.toString()),this._initialized=!0,await this.updateComplete,this.setupAnchor())}async updated(t){if(await super.updated(t),t.has("defaultHour")||t.has("defaultMinute")||t.has("defaultDate")||t.has("invalidText")||t.has("minTime")||t.has("maxTime")?this.flatpickrInstance&&!this._isClearing&&await this.debouncedUpdate():t.has("twentyFourHourFormat")&&this.flatpickrInstance&&!this._isClearing&&await this.debouncedUpdate(),t.has("value")&&!this._isClearing){const t=this.value;if(null===t&&this.flatpickrInstance){this._isClearing=!0;try{this.flatpickrInstance.clear(),this._inputEl&&(this._inputEl.value="")}finally{this._isClearing=!1}}else if(this.flatpickrInstance&&t instanceof Date){const e=this.flatpickrInstance.selectedDates[0];e&&e.getTime()===t.getTime()||this.setInitialDates(this.flatpickrInstance)}this.requestUpdate()}t.has("timepickerDisabled")&&this.timepickerDisabled&&this.flatpickrInstance&&this.flatpickrInstance.close()}async _clearInput(t={reinitFlatpickr:!0}){this.value=null,this.flatpickrInstance&&this.flatpickrInstance.clear(),this._inputEl&&(this._inputEl.value="",this._inputEl.setAttribute("aria-label",this._textStrings.noTimeSelected)),p(this,"on-change",{time:this.value,source:"clear"}),this._validate(!0,!1),await this.updateComplete,t.reinitFlatpickr&&(await this.initializeFlatpickr(),this.requestUpdate())}async _handleClear(t){t.preventDefault(),t.stopPropagation(),this._isClearing=!0;try{await this._clearInput()}finally{this._isClearing=!1}}async handleClose(){this._hasInteracted=!0,this._validate(!0,!1),await this.updateComplete}async setupAnchor(){if(this._inputEl)try{await this.initializeFlatpickr()}catch(t){console.error("Error setting up flatpickr:",t)}else console.warn("Input element not found during setup")}async initializeFlatpickr(){if(this._isDestroyed)return;if(!this._inputEl||!this._inputEl.isConnected)return void console.warn("Cannot initialize Flatpickr: input element not available or not connected to DOM");const t=this._inputEl;try{if(this.flatpickrInstance&&(this.flatpickrInstance.destroy(),this.flatpickrInstance=void 0,await new Promise((t=>setTimeout(t,0)))),this._isDestroyed||!t.isConnected)return;if(await new Promise((t=>requestAnimationFrame(t))),this._isDestroyed||!t.isConnected)return;if(this.flatpickrInstance=await h({inputEl:this._inputEl,getFlatpickrOptions:async()=>{const t=await this.getComponentFlatpickrOptions();return!1===t.noCalendar&&(console.warn("Time picker requires noCalendar option to be true"),t.noCalendar=!0),t},setCalendarAttributes:t=>{try{const e=u(this)!==document.body;m(t,e),t.calendarContainer&&t.calendarContainer.setAttribute("aria-label","Time picker")}catch(t){console.warn("Error setting calendar attributes:",t)}},setInitialDates:this.setInitialDates.bind(this)}),!this.flatpickrInstance)throw new Error("Failed to initialize Flatpickr instance");v(),this._validate(!1,!1)}catch(t){console.error("Error initializing Flatpickr:",t),t instanceof Error&&console.error("Error details:",t.message)}}async updateFlatpickrOptions(){this.flatpickrInstance?await this.debouncedUpdate():console.warn("Cannot update options: Flatpickr instance not available")}async getComponentFlatpickrOptions(){var t,e,i,r;const a=u(this),n=this.twentyFourHourFormat?"H:i":"h:i K";return k({locale:this.locale,enableTime:!0,twentyFourHourFormat:null!==(t=this.twentyFourHourFormat)&&void 0!==t?t:void 0,inputEl:this._inputEl,allowInput:!0,dateFormat:n,minTime:this.minTime,maxTime:this.maxTime,loadLocale:f,mode:"time",noCalendar:!0,onChange:this.handleTimeChange.bind(this),onClose:this.handleClose.bind(this),onOpen:this.handleOpen.bind(this),appendTo:a,static:this.staticPosition,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})}setInitialDates(t){try{if(this._hasInteracted||this.value)return;if(null!=this.defaultDate)if("string"==typeof this.defaultDate){const e=this.defaultDate.trim();if(e.includes("T")){const i=new Date(e);if(!isNaN(i.getTime()))return void t.setDate(i,!1)}else{const i=e.split(":").map(Number);if(i.length>=2&&!isNaN(i[0])&&!isNaN(i[1])){const e=new Date;return e.setHours(i[0],i[1],0,0),void t.setDate(e,!1)}}}else if(this.defaultDate instanceof Date)return void t.setDate(this.defaultDate,!1);if(null!==this.defaultHour||null!==this.defaultMinute){const e=new Date;null!==this.defaultHour&&e.setHours(this.defaultHour),null!==this.defaultMinute&&e.setMinutes(this.defaultMinute),e.setSeconds(0),e.setMilliseconds(0),t.setDate(e,!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 handleTimeChange(t,e){if(!this._isClearing)try{if(t.length>0){this._hasInteracted||(this._hasInteracted=!0);const i=t[0],r=new Date;r.setHours(i.getHours()),r.setMinutes(i.getMinutes()),r.setSeconds(0),r.setMilliseconds(0),this.value=r,p(this,"on-change",{time:e,source:void 0})}else this.value=null,p(this,"on-change",{time:this.value,dateStr:e||"",source:"clear"});this._validate(!0,!1),await this.updateComplete,this.requestUpdate()}catch(t){console.warn("Error handling time change:",t)}}_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._textStrings.pleaseSelectDate),this.invalidText&&(a={...a,customError:!0},n=this.invalidText);const l=!a.valueMissing&&!a.customError;l||n||(n=this._textStrings.pleaseSelectValidDate),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){g(t,this.setShouldFlatpickrOpen.bind(this))}handleInputClickEvent(){b(this.setShouldFlatpickrOpen.bind(this))}handleInputFocusEvent(){y(this._shouldFlatpickrOpen,this.closeFlatpickr.bind(this),this.setShouldFlatpickrOpen.bind(this))}disconnectedCallback(){this._isDestroyed=!0,super.disconnectedCallback(),this.removeEventListener("change",this._onChange),this.removeEventListener("reset",this._handleFormReset),this.flatpickrInstance&&(this.flatpickrInstance.destroy(),this.flatpickrInstance=void 0)}};C.styles=[F,x],t([i({type:String})],C.prototype,"label",void 0),t([i({type:String})],C.prototype,"locale",void 0),t([i({type:Object})],C.prototype,"value",void 0),t([i({type:Array})],C.prototype,"defaultDate",void 0),t([i({type:Number})],C.prototype,"defaultHour",void 0),t([i({type:Number})],C.prototype,"defaultMinute",void 0),t([i({type:String})],C.prototype,"defaultErrorMessage",void 0),t([i({type:String})],C.prototype,"warnText",void 0),t([i({type:String})],C.prototype,"caption",void 0),t([i({type:Boolean})],C.prototype,"required",void 0),t([i({type:String})],C.prototype,"size",void 0),t([i({type:Boolean})],C.prototype,"timepickerDisabled",void 0),t([i({type:Boolean})],C.prototype,"twentyFourHourFormat",void 0),t([i({type:String})],C.prototype,"minTime",void 0),t([i({type:String})],C.prototype,"maxTime",void 0),t([i({type:String})],C.prototype,"errorAriaLabel",void 0),t([i({type:String})],C.prototype,"errorTitle",void 0),t([i({type:String})],C.prototype,"warningAriaLabel",void 0),t([i({type:String})],C.prototype,"warningTitle",void 0),t([i({type:Boolean})],C.prototype,"staticPosition",void 0),t([r()],C.prototype,"_hasInteracted",void 0),t([r()],C.prototype,"flatpickrInstance",void 0),t([a("input.input-custom")],C.prototype,"_inputEl",void 0),t([r()],C.prototype,"_isClearing",void 0),t([i({type:Object})],C.prototype,"textStrings",void 0),t([r()],C.prototype,"_textStrings",void 0),C=t([n("kyn-time-picker")],C);export{C as TimePicker};
583
+ </div>`:null}getTimepickerClasses(){return{"time-picker":!0,"time-picker__disabled":this.timepickerDisabled}}async firstUpdated(t){super.firstUpdated(t),this._initialized||(c(x.toString()),this._initialized=!0,await this.updateComplete,this.setupAnchor())}async updated(t){if(await super.updated(t),t.has("defaultHour")||t.has("defaultMinute")||t.has("defaultDate")||t.has("invalidText")||t.has("minTime")||t.has("maxTime")?this.flatpickrInstance&&!this._isClearing&&await this.debouncedUpdate():t.has("twentyFourHourFormat")&&this.flatpickrInstance&&!this._isClearing&&await this.debouncedUpdate(),t.has("value")&&!this._isClearing){let t=this.value;if("string"==typeof t)try{const e=t;if(""!==e.trim())if(this._hasInteracted=!0,/\d{1,2}:\d{2}/.test(e)){const[i,r]=e.split(":").map(Number);if(!isNaN(i)&&!isNaN(r)){const e=new Date;e.setHours(i,r,0,0),this.value=e,t=this.value,this.flatpickrInstance&&this.flatpickrInstance.setDate(t,!0)}}else/\d{4}-\d{2}-\d{2}/.test(e)&&(this.value=new Date(e),t=this.value,this.flatpickrInstance&&this.flatpickrInstance.setDate(t,!0))}catch(t){console.warn("Error parsing time string:",t)}if(null===t&&this.flatpickrInstance){this._isClearing=!0;try{this.flatpickrInstance.clear(),this._inputEl&&(this._inputEl.value="")}finally{this._isClearing=!1}}this.requestUpdate()}t.has("timepickerDisabled")&&this.timepickerDisabled&&this.flatpickrInstance&&this.flatpickrInstance.close()}async _handleClear(t){t.preventDefault(),t.stopPropagation(),this._isClearing=!0;try{this.value=null,this.flatpickrInstance&&(this.flatpickrInstance.clear(),this._inputEl&&(this._inputEl.value="",this._inputEl.setAttribute("aria-label",this._textStrings.noTimeSelected))),p(this,"on-change",{time:this.value,source:"clear"}),this._validate(!0,!1),await this.updateComplete,await this.initializeFlatpickr(),this.requestUpdate()}finally{this._isClearing=!1}}async setupAnchor(){if(this._inputEl)try{await this.initializeFlatpickr()}catch(t){console.error("Error setting up flatpickr:",t)}else console.warn("Input element not found during setup")}async initializeFlatpickr(){if(this._isDestroyed)return;if(!this._inputEl||!this._inputEl.isConnected)return void console.warn("Cannot initialize Flatpickr: input element not available or not connected to DOM");const t=this._inputEl;try{if(this.flatpickrInstance&&(this.flatpickrInstance.destroy(),this.flatpickrInstance=void 0,await new Promise((t=>setTimeout(t,0)))),this._isDestroyed||!t.isConnected)return;if(await new Promise((t=>requestAnimationFrame(t))),this._isDestroyed||!t.isConnected)return;if(this.flatpickrInstance=await h({inputEl:this._inputEl,getFlatpickrOptions:async()=>{const t=await this.getComponentFlatpickrOptions();return!1===t.noCalendar&&(console.warn("Time picker requires noCalendar option to be true"),t.noCalendar=!0),t},setCalendarAttributes:t=>{try{const e=u(this)!==document.body;m(t,e),t.calendarContainer&&t.calendarContainer.setAttribute("aria-label","Time picker")}catch(t){console.warn("Error setting calendar attributes:",t)}},setInitialDates:this.setInitialDates.bind(this)}),!this.flatpickrInstance)throw new Error("Failed to initialize Flatpickr instance");v(),this._validate(!1,!1)}catch(t){console.error("Error initializing Flatpickr:",t),t instanceof Error&&console.error("Error details:",t.message)}}async updateFlatpickrOptions(){this.flatpickrInstance?await this.debouncedUpdate():console.warn("Cannot update options: Flatpickr instance not available")}async getComponentFlatpickrOptions(){var t,e,i,r;const a=u(this),n=this.twentyFourHourFormat?"H:i":"h:i K";return k({locale:this.locale,enableTime:!0,twentyFourHourFormat:null!==(t=this.twentyFourHourFormat)&&void 0!==t?t:void 0,inputEl:this._inputEl,allowInput:!0,dateFormat:n,minTime:this.minTime,maxTime:this.maxTime,loadLocale:f,mode:"time",noCalendar:!0,onChange:this.handleTimeChange.bind(this),onClose:this.handleClose.bind(this),onOpen:this.handleOpen.bind(this),appendTo:a,static:this.staticPosition,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})}setInitialDates(t){try{if(this._hasInteracted||this.value)return;if(null!=this.defaultDate)if("string"==typeof this.defaultDate){const e=this.defaultDate.trim();if(e.includes(":")&&!e.includes("-")){const i=e.split(":").map(Number);if(i.length>=2&&!isNaN(i[0])&&!isNaN(i[1])){const e=new Date;return e.setHours(i[0],i[1],0,0),void t.setDate(e,!1)}}else if(/\d{4}-\d{2}-\d{2}/.test(e))try{const i=new Date(e);if(!isNaN(i.getTime()))return void t.setDate(i,!1)}catch(t){console.warn("Error parsing date string:",t)}}else if(this.defaultDate instanceof Date)return void t.setDate(this.defaultDate,!1);if(null!==this.defaultHour||null!==this.defaultMinute){const e=new Date;null!==this.defaultHour&&e.setHours(this.defaultHour),null!==this.defaultMinute&&e.setMinutes(this.defaultMinute),e.setSeconds(0),e.setMilliseconds(0),t.setDate(e,!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 handleClose(){this._hasInteracted=!0,this._validate(!0,!1),await this.updateComplete}async handleTimeChange(t,e){if(!this._isClearing)try{if(t.length>0){this._hasInteracted||(this._hasInteracted=!0);const i=t[0],r=new Date;r.setHours(i.getHours()),r.setMinutes(i.getMinutes()),r.setSeconds(0),r.setMilliseconds(0),this.value=r,p(this,"on-change",{time:e,source:void 0})}else this.value=null,p(this,"on-change",{time:this.value,source:"clear"});this._validate(!0,!1),await this.updateComplete,this.requestUpdate()}catch(t){console.warn("Error handling time change:",t)}}_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._textStrings.pleaseSelectDate),this.invalidText&&(a={...a,customError:!0},n=this.invalidText);const l=!a.valueMissing&&!a.customError;l||n||(n=this._textStrings.pleaseSelectValidDate),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){g(t,this.setShouldFlatpickrOpen.bind(this))}handleInputClickEvent(){b(this.setShouldFlatpickrOpen.bind(this))}handleInputFocusEvent(){y(this._shouldFlatpickrOpen,this.closeFlatpickr.bind(this),this.setShouldFlatpickrOpen.bind(this))}disconnectedCallback(){this._isDestroyed=!0,super.disconnectedCallback(),this.removeEventListener("change",this._onChange),this.removeEventListener("reset",this._handleFormReset),this.flatpickrInstance&&(this.flatpickrInstance.destroy(),this.flatpickrInstance=void 0)}};E.styles=[$,x],t([i({type:String})],E.prototype,"label",void 0),t([i({type:String})],E.prototype,"locale",void 0),t([i({type:Object})],E.prototype,"value",void 0),t([i({type:Array})],E.prototype,"defaultDate",void 0),t([i({type:Number})],E.prototype,"defaultHour",void 0),t([i({type:Number})],E.prototype,"defaultMinute",void 0),t([i({type:String})],E.prototype,"defaultErrorMessage",void 0),t([i({type:String})],E.prototype,"warnText",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,"timepickerDisabled",void 0),t([i({type:Boolean})],E.prototype,"twentyFourHourFormat",void 0),t([i({type:String})],E.prototype,"minTime",void 0),t([i({type:String})],E.prototype,"maxTime",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([i({type:Boolean})],E.prototype,"staticPosition",void 0),t([r()],E.prototype,"_hasInteracted",void 0),t([r()],E.prototype,"flatpickrInstance",void 0),t([a("input.input-custom")],E.prototype,"_inputEl",void 0),t([r()],E.prototype,"_isClearing",void 0),t([i({type:Object})],E.prototype,"textStrings",void 0),t([r()],E.prototype,"_textStrings",void 0),E=t([n("kyn-time-picker")],E);export{E as TimePicker};
584
584
  //# 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';\nimport { langsArray } from '../../../common/flatpickrLangs';\n\nimport '../../reusable/button';\n\nimport {\n injectFlatpickrStyles,\n initializeSingleAnchorFlatpickr,\n getFlatpickrOptions,\n preventFlatpickrOpen,\n handleInputClick,\n handleInputFocus,\n setCalendarAttributes,\n loadLocale,\n emitValue,\n hideEmptyYear,\n getModalContainer,\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/16/close-simple.svg';\n\ntype SupportedLocale = (typeof langsArray)[number];\n\nconst _defaultTextStrings = {\n requiredText: 'Required',\n clearAll: 'Clear',\n pleaseSelectDate: 'Please select a date',\n noTimeSelected: 'No time selected',\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 | string = 'en';\n\n /** Sets date/time value. */\n @property({ type: Object })\n override value: Date | null = null;\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 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 /** Sets whether the Flatpickr calendar UI should use static positioning. */\n @property({ type: Boolean })\n staticPosition = false;\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 /** Tracks if we're in a clear operation to prevent duplicate events\n * @internal\n */\n @state()\n private _isClearing = 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 determine if Flatpickr should open\n * @internal\n */\n private _shouldFlatpickrOpen = true;\n\n /** Track initialization state\n * @internal\n */\n private _initialized = false;\n\n private debounce<T extends (...args: any[]) => any>(\n func: T,\n wait: number\n ): (...args: Parameters<T>) => void {\n let timeout: number | null = null;\n\n return (...args: Parameters<T>) => {\n if (timeout !== null) {\n window.clearTimeout(timeout);\n }\n\n timeout = window.setTimeout(() => {\n func.apply(this, args);\n timeout = null;\n }, wait);\n };\n }\n\n private debouncedUpdate = this.debounce(async () => {\n if (!this.flatpickrInstance) return;\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n console.error('Error in debounced update:', error);\n }\n }, 100);\n\n private generateRandomId(prefix: string): string {\n return `${prefix}-${Math.random().toString(36).slice(2, 11)}`;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('change', this._onChange);\n this.addEventListener('reset', this._handleFormReset);\n }\n\n private hasValue(): boolean {\n return this.value !== null && this._hasInteracted;\n }\n\n override render() {\n const errorId = `${this.name}-error-message`;\n const warningId = `${this.name}-warning-message`;\n const anchorId = this.name\n ? this.generateRandomId(this.name)\n : this.generateRandomId('time-picker');\n const descriptionId = this.name ?? '';\n const placeholder = '—— : ——';\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 <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.hasValue()\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 ${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 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 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 if (!this._initialized) {\n injectFlatpickrStyles(ShidokaFlatpickrTheme.toString());\n this._initialized = true;\n await this.updateComplete;\n this.setupAnchor();\n }\n }\n\n override async updated(changedProperties: PropertyValues) {\n await super.updated(changedProperties);\n\n if (\n changedProperties.has('defaultHour') ||\n changedProperties.has('defaultMinute') ||\n changedProperties.has('defaultDate')\n ) {\n if (this.flatpickrInstance && !this._isClearing) {\n await this.debouncedUpdate();\n }\n } else if (\n changedProperties.has('invalidText') ||\n changedProperties.has('minTime') ||\n changedProperties.has('maxTime')\n ) {\n if (this.flatpickrInstance && !this._isClearing) {\n await this.debouncedUpdate();\n }\n } else if (changedProperties.has('twentyFourHourFormat')) {\n if (this.flatpickrInstance && !this._isClearing) {\n await this.debouncedUpdate();\n }\n }\n\n if (changedProperties.has('value') && !this._isClearing) {\n const newValue = this.value;\n if (newValue === null && this.flatpickrInstance) {\n this._isClearing = true;\n try {\n this.flatpickrInstance.clear();\n if (this._inputEl) {\n this._inputEl.value = '';\n }\n } finally {\n this._isClearing = false;\n }\n } else if (this.flatpickrInstance && newValue instanceof Date) {\n const currentDate = this.flatpickrInstance.selectedDates[0];\n if (!currentDate || currentDate.getTime() !== newValue.getTime()) {\n this.setInitialDates(this.flatpickrInstance);\n }\n }\n this.requestUpdate();\n }\n\n if (\n changedProperties.has('timepickerDisabled') &&\n this.timepickerDisabled &&\n this.flatpickrInstance\n ) {\n this.flatpickrInstance.close();\n }\n }\n\n private async _clearInput(\n options: { reinitFlatpickr?: boolean } = { reinitFlatpickr: true }\n ): Promise<void> {\n this.value = null;\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n }\n if (this._inputEl) {\n this._inputEl.value = '';\n this._inputEl.setAttribute(\n 'aria-label',\n this._textStrings.noTimeSelected\n );\n }\n emitValue(this, 'on-change', {\n time: this.value,\n source: 'clear',\n });\n this._validate(true, false);\n await this.updateComplete;\n if (options.reinitFlatpickr) {\n await this.initializeFlatpickr();\n this.requestUpdate();\n }\n }\n\n private async _handleClear(event: Event): Promise<void> {\n event.preventDefault();\n event.stopPropagation();\n this._isClearing = true;\n try {\n await this._clearInput();\n } finally {\n this._isClearing = false;\n }\n }\n\n async handleClose(): Promise<void> {\n this._hasInteracted = true;\n this._validate(true, false);\n await this.updateComplete;\n }\n\n private async setupAnchor() {\n if (!this._inputEl) {\n console.warn('Input element not found during setup');\n return;\n }\n\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n console.error('Error setting up flatpickr:', error);\n }\n }\n\n private _isDestroyed = false;\n\n async initializeFlatpickr(): Promise<void> {\n if (this._isDestroyed) {\n return;\n }\n\n if (!this._inputEl || !this._inputEl.isConnected) {\n console.warn(\n 'Cannot initialize Flatpickr: input element not available or not connected to DOM'\n );\n return;\n }\n\n const inputEl = this._inputEl;\n try {\n if (this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n this.flatpickrInstance = undefined;\n await new Promise((resolve) => setTimeout(resolve, 0));\n }\n\n if (this._isDestroyed || !inputEl.isConnected) {\n return;\n }\n\n await new Promise((resolve) => requestAnimationFrame(resolve));\n\n if (this._isDestroyed || !inputEl.isConnected) {\n return;\n }\n\n this.flatpickrInstance = await initializeSingleAnchorFlatpickr({\n inputEl: this._inputEl,\n getFlatpickrOptions: async () => {\n const options = await this.getComponentFlatpickrOptions();\n if (options.noCalendar === false) {\n console.warn('Time picker requires noCalendar option to be true');\n options.noCalendar = true;\n }\n return options;\n },\n setCalendarAttributes: (instance) => {\n try {\n const container = getModalContainer(this);\n const modalDetected = container !== document.body;\n setCalendarAttributes(instance, modalDetected);\n if (instance.calendarContainer) {\n instance.calendarContainer.setAttribute(\n 'aria-label',\n 'Time picker'\n );\n }\n } catch (error) {\n console.warn('Error setting calendar attributes:', error);\n }\n },\n setInitialDates: this.setInitialDates.bind(this),\n });\n\n if (!this.flatpickrInstance) {\n throw new Error('Failed to initialize Flatpickr instance');\n }\n\n hideEmptyYear();\n this._validate(false, false);\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n\n if (error instanceof Error) {\n console.error('Error details:', error.message);\n }\n }\n }\n\n async updateFlatpickrOptions(): Promise<void> {\n if (!this.flatpickrInstance) {\n console.warn('Cannot update options: Flatpickr instance not available');\n return;\n }\n await this.debouncedUpdate();\n }\n\n async getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>> {\n const container = getModalContainer(this);\n const effectiveDateFormat = this.twentyFourHourFormat ? 'H:i' : 'h:i K';\n return getFlatpickrOptions({\n locale: this.locale,\n enableTime: true,\n twentyFourHourFormat: this.twentyFourHourFormat ?? undefined,\n inputEl: this._inputEl!,\n allowInput: true,\n dateFormat: effectiveDateFormat,\n minTime: this.minTime,\n maxTime: this.maxTime,\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 static: this.staticPosition,\n defaultDate: this.defaultDate ?? undefined,\n defaultHour: this.defaultHour ?? undefined,\n defaultMinute: this.defaultMinute ?? undefined,\n });\n }\n\n setInitialDates(instance: flatpickr.Instance): void {\n try {\n if (this._hasInteracted || this.value) return;\n\n if (this.defaultDate != null) {\n if (typeof this.defaultDate === 'string') {\n const trimmed = this.defaultDate.trim();\n if (trimmed.includes('T')) {\n const parsed = new Date(trimmed);\n if (!isNaN(parsed.getTime())) {\n instance.setDate(parsed, false);\n return;\n }\n } else {\n const parts = trimmed.split(':').map(Number);\n if (parts.length >= 2 && !isNaN(parts[0]) && !isNaN(parts[1])) {\n const newDate = new Date();\n newDate.setHours(parts[0], parts[1], 0, 0);\n instance.setDate(newDate, false);\n return;\n }\n }\n } else if (this.defaultDate instanceof Date) {\n instance.setDate(this.defaultDate, false);\n return;\n }\n }\n\n if (this.defaultHour !== null || this.defaultMinute !== null) {\n const newDate = new Date();\n if (this.defaultHour !== null) {\n newDate.setHours(this.defaultHour);\n }\n if (this.defaultMinute !== null) {\n newDate.setMinutes(this.defaultMinute);\n }\n newDate.setSeconds(0);\n newDate.setMilliseconds(0);\n instance.setDate(newDate, false);\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 handleTimeChange(\n selectedDates: Date[],\n dateStr: string\n ): Promise<void> {\n if (this._isClearing) return;\n try {\n if (selectedDates.length > 0) {\n if (!this._hasInteracted) {\n this._hasInteracted = true;\n }\n const selectedTime = selectedDates[0];\n const newDate = new Date();\n newDate.setHours(selectedTime.getHours());\n newDate.setMinutes(selectedTime.getMinutes());\n newDate.setSeconds(0);\n newDate.setMilliseconds(0);\n this.value = newDate;\n emitValue(this, 'on-change', {\n time: dateStr,\n source: undefined,\n });\n } else {\n this.value = null;\n emitValue(this, 'on-change', {\n time: this.value,\n dateStr: dateStr || '',\n source: 'clear',\n });\n }\n this._validate(true, false);\n await this.updateComplete;\n this.requestUpdate();\n } catch (error) {\n console.warn('Error handling time change:', error);\n }\n }\n\n private _validate(interacted: boolean, report: boolean): void {\n if (!this._inputEl || !(this._inputEl instanceof HTMLInputElement)) {\n return;\n }\n if (interacted) {\n this._hasInteracted = true;\n }\n const isEmpty = !this._inputEl.value.trim();\n const isRequired = this.required;\n let validity = this._inputEl.validity;\n let validationMessage = this._inputEl.validationMessage;\n if (isRequired && isEmpty) {\n validity = { ...validity, valueMissing: true };\n validationMessage =\n this.defaultErrorMessage || this._textStrings.pleaseSelectDate;\n }\n if (this.invalidText) {\n validity = { ...validity, customError: true };\n validationMessage = this.invalidText;\n }\n const isValid = !validity.valueMissing && !validity.customError;\n if (!isValid && !validationMessage) {\n validationMessage = this._textStrings.pleaseSelectValidDate;\n }\n this._internals.setValidity(validity, validationMessage, this._inputEl);\n this._isInvalid =\n !isValid && (this._hasInteracted || this.invalidText !== '');\n this._internalValidationMsg = validationMessage;\n if (report) {\n this._internals.reportValidity();\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 this._isDestroyed = true;\n super.disconnectedCallback();\n this.removeEventListener('change', this._onChange);\n this.removeEventListener('reset', this._handleFormReset);\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","noTimeSelected","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","staticPosition","_hasInteracted","_isClearing","textStrings","_textStrings","_shouldFlatpickrOpen","_initialized","debouncedUpdate","debounce","async","flatpickrInstance","initializeFlatpickr","error","console","_isDestroyed","func","wait","timeout","args","window","clearTimeout","setTimeout","apply","generateRandomId","prefix","Math","random","toString","slice","connectedCallback","super","addEventListener","_onChange","_handleFormReset","hasValue","render","errorId","name","warningId","anchorId","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","newValue","clear","_inputEl","Date","currentDate","selectedDates","getTime","setInitialDates","requestUpdate","close","_clearInput","options","reinitFlatpickr","setAttribute","emitValue","time","source","_validate","event","preventDefault","stopPropagation","handleClose","warn","isConnected","inputEl","destroy","undefined","Promise","resolve","requestAnimationFrame","initializeSingleAnchorFlatpickr","getFlatpickrOptions","getComponentFlatpickrOptions","noCalendar","setCalendarAttributes","instance","modalDetected","getModalContainer","document","body","calendarContainer","bind","Error","hideEmptyYear","message","updateFlatpickrOptions","container","effectiveDateFormat","enableTime","allowInput","dateFormat","loadLocale","mode","onChange","handleTimeChange","onClose","onOpen","handleOpen","appendTo","static","_d","trimmed","trim","includes","parsed","isNaN","setDate","parts","split","map","Number","length","newDate","setHours","setMinutes","setSeconds","setMilliseconds","dateStr","selectedTime","getHours","getMinutes","interacted","report","HTMLInputElement","isEmpty","isRequired","validity","validationMessage","valueMissing","customError","isValid","_internals","setValidity","reportValidity","setShouldFlatpickrOpen","closeFlatpickr","handleInputClick","handleInputFocus","disconnectedCallback","removeEventListener","styles","TimepickerStyles","__decorate","property","type","String","prototype","Object","Array","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';\nimport { langsArray } from '../../../common/flatpickrLangs';\n\nimport '../../reusable/button';\n\nimport {\n injectFlatpickrStyles,\n initializeSingleAnchorFlatpickr,\n getFlatpickrOptions,\n preventFlatpickrOpen,\n handleInputClick,\n handleInputFocus,\n setCalendarAttributes,\n loadLocale,\n emitValue,\n hideEmptyYear,\n getModalContainer,\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/16/close-simple.svg';\n\ntype SupportedLocale = (typeof langsArray)[number];\n\nconst _defaultTextStrings = {\n requiredText: 'Required',\n clearAll: 'Clear',\n pleaseSelectDate: 'Please select a date',\n noTimeSelected: 'No time selected',\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 | string = 'en';\n\n /** Sets date/time value. */\n @property({ type: Object })\n override value: Date | null = null;\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 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 /** Sets whether the Flatpickr calendar UI should use static positioning. */\n @property({ type: Boolean })\n staticPosition = false;\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 /** Tracks if we're in a clear operation to prevent duplicate events\n * @internal\n */\n @state()\n private _isClearing = 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 determine if Flatpickr should open\n * @internal\n */\n private _shouldFlatpickrOpen = true;\n\n /** Track initialization state\n * @internal\n */\n private _initialized = false;\n\n private debounce<T extends (...args: any[]) => any>(\n func: T,\n wait: number\n ): (...args: Parameters<T>) => void {\n let timeout: number | null = null;\n\n return (...args: Parameters<T>) => {\n if (timeout !== null) {\n window.clearTimeout(timeout);\n }\n\n timeout = window.setTimeout(() => {\n func.apply(this, args);\n timeout = null;\n }, wait);\n };\n }\n\n private debouncedUpdate = this.debounce(async () => {\n if (!this.flatpickrInstance) return;\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n console.error('Error in debounced update:', error);\n }\n }, 100);\n\n private generateRandomId(prefix: string): string {\n return `${prefix}-${Math.random().toString(36).slice(2, 11)}`;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('change', this._onChange);\n this.addEventListener('reset', this._handleFormReset);\n }\n\n private hasValue(): boolean {\n if (this._inputEl?.value) return true;\n if (this.value !== null) return true;\n if (this.defaultDate) return true;\n if (this.defaultHour !== null || this.defaultMinute !== null) return true;\n return false;\n }\n\n override render() {\n const errorId = `${this.name}-error-message`;\n const warningId = `${this.name}-warning-message`;\n const anchorId = this.name\n ? this.generateRandomId(this.name)\n : this.generateRandomId('time-picker');\n const descriptionId = this.name ?? '';\n const placeholder = '—— : ——';\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 <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.hasValue()\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 ${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 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 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 if (!this._initialized) {\n injectFlatpickrStyles(ShidokaFlatpickrTheme.toString());\n this._initialized = true;\n await this.updateComplete;\n this.setupAnchor();\n }\n }\n\n override async updated(changedProperties: PropertyValues) {\n await super.updated(changedProperties);\n\n if (\n changedProperties.has('defaultHour') ||\n changedProperties.has('defaultMinute') ||\n changedProperties.has('defaultDate')\n ) {\n if (this.flatpickrInstance && !this._isClearing) {\n await this.debouncedUpdate();\n }\n } else if (\n changedProperties.has('invalidText') ||\n changedProperties.has('minTime') ||\n changedProperties.has('maxTime')\n ) {\n if (this.flatpickrInstance && !this._isClearing) {\n await this.debouncedUpdate();\n }\n } else if (changedProperties.has('twentyFourHourFormat')) {\n if (this.flatpickrInstance && !this._isClearing) {\n await this.debouncedUpdate();\n }\n }\n if (changedProperties.has('value') && !this._isClearing) {\n let newValue = this.value;\n\n if (typeof newValue === 'string') {\n try {\n const strValue = newValue as string;\n if (strValue.trim() !== '') {\n this._hasInteracted = true;\n\n if (/\\d{1,2}:\\d{2}/.test(strValue)) {\n const [hours, minutes] = strValue.split(':').map(Number);\n if (!isNaN(hours) && !isNaN(minutes)) {\n const date = new Date();\n date.setHours(hours, minutes, 0, 0);\n this.value = date;\n newValue = this.value;\n\n if (this.flatpickrInstance) {\n this.flatpickrInstance.setDate(newValue, true);\n }\n }\n } else if (/\\d{4}-\\d{2}-\\d{2}/.test(strValue)) {\n this.value = new Date(strValue);\n newValue = this.value;\n\n if (this.flatpickrInstance) {\n this.flatpickrInstance.setDate(newValue, true);\n }\n }\n }\n } catch (e) {\n console.warn('Error parsing time string:', e);\n }\n }\n\n if (newValue === null && this.flatpickrInstance) {\n this._isClearing = true;\n try {\n this.flatpickrInstance.clear();\n if (this._inputEl) {\n this._inputEl.value = '';\n }\n } finally {\n this._isClearing = false;\n }\n }\n this.requestUpdate();\n }\n if (\n changedProperties.has('timepickerDisabled') &&\n this.timepickerDisabled &&\n this.flatpickrInstance\n ) {\n this.flatpickrInstance.close();\n }\n }\n\n private async _handleClear(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n this._isClearing = true;\n try {\n this.value = null;\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n if (this._inputEl) {\n this._inputEl.value = '';\n this._inputEl.setAttribute(\n 'aria-label',\n this._textStrings.noTimeSelected\n );\n }\n }\n emitValue(this, 'on-change', {\n time: this.value,\n source: 'clear',\n });\n this._validate(true, false);\n await this.updateComplete;\n await this.initializeFlatpickr();\n this.requestUpdate();\n } finally {\n this._isClearing = false;\n }\n }\n\n private async setupAnchor() {\n if (!this._inputEl) {\n console.warn('Input element not found during setup');\n return;\n }\n\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n console.error('Error setting up flatpickr:', error);\n }\n }\n\n private _isDestroyed = false;\n\n async initializeFlatpickr(): Promise<void> {\n if (this._isDestroyed) {\n return;\n }\n\n if (!this._inputEl || !this._inputEl.isConnected) {\n console.warn(\n 'Cannot initialize Flatpickr: input element not available or not connected to DOM'\n );\n return;\n }\n\n const inputEl = this._inputEl;\n try {\n if (this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n this.flatpickrInstance = undefined;\n await new Promise((resolve) => setTimeout(resolve, 0));\n }\n\n if (this._isDestroyed || !inputEl.isConnected) {\n return;\n }\n\n await new Promise((resolve) => requestAnimationFrame(resolve));\n\n if (this._isDestroyed || !inputEl.isConnected) {\n return;\n }\n\n this.flatpickrInstance = await initializeSingleAnchorFlatpickr({\n inputEl: this._inputEl,\n getFlatpickrOptions: async () => {\n const options = await this.getComponentFlatpickrOptions();\n if (options.noCalendar === false) {\n console.warn('Time picker requires noCalendar option to be true');\n options.noCalendar = true;\n }\n return options;\n },\n setCalendarAttributes: (instance) => {\n try {\n const container = getModalContainer(this);\n const modalDetected = container !== document.body;\n setCalendarAttributes(instance, modalDetected);\n if (instance.calendarContainer) {\n instance.calendarContainer.setAttribute(\n 'aria-label',\n 'Time picker'\n );\n }\n } catch (error) {\n console.warn('Error setting calendar attributes:', error);\n }\n },\n setInitialDates: this.setInitialDates.bind(this),\n });\n\n if (!this.flatpickrInstance) {\n throw new Error('Failed to initialize Flatpickr instance');\n }\n\n hideEmptyYear();\n this._validate(false, false);\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n\n if (error instanceof Error) {\n console.error('Error details:', error.message);\n }\n }\n }\n\n async updateFlatpickrOptions(): Promise<void> {\n if (!this.flatpickrInstance) {\n console.warn('Cannot update options: Flatpickr instance not available');\n return;\n }\n await this.debouncedUpdate();\n }\n\n async getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>> {\n const container = getModalContainer(this);\n const effectiveDateFormat = this.twentyFourHourFormat ? 'H:i' : 'h:i K';\n return getFlatpickrOptions({\n locale: this.locale,\n enableTime: true,\n twentyFourHourFormat: this.twentyFourHourFormat ?? undefined,\n inputEl: this._inputEl!,\n allowInput: true,\n dateFormat: effectiveDateFormat,\n minTime: this.minTime,\n maxTime: this.maxTime,\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 static: this.staticPosition,\n defaultDate: this.defaultDate ?? undefined,\n defaultHour: this.defaultHour ?? undefined,\n defaultMinute: this.defaultMinute ?? undefined,\n });\n }\n\n setInitialDates(instance: flatpickr.Instance): void {\n try {\n if (this._hasInteracted || this.value) return;\n if (this.defaultDate != null) {\n if (typeof this.defaultDate === 'string') {\n const dateStr = this.defaultDate.trim();\n if (dateStr.includes(':') && !dateStr.includes('-')) {\n const parts = dateStr.split(':').map(Number);\n if (parts.length >= 2 && !isNaN(parts[0]) && !isNaN(parts[1])) {\n const newDate = new Date();\n newDate.setHours(parts[0], parts[1], 0, 0);\n instance.setDate(newDate, false);\n return;\n }\n } else if (/\\d{4}-\\d{2}-\\d{2}/.test(dateStr)) {\n try {\n const newDate = new Date(dateStr);\n if (!isNaN(newDate.getTime())) {\n instance.setDate(newDate, false);\n return;\n }\n } catch (e) {\n console.warn('Error parsing date string:', e);\n }\n }\n } else if (this.defaultDate instanceof Date) {\n instance.setDate(this.defaultDate, false);\n return;\n }\n }\n if (this.defaultHour !== null || this.defaultMinute !== null) {\n const newDate = new Date();\n if (this.defaultHour !== null) {\n newDate.setHours(this.defaultHour);\n }\n if (this.defaultMinute !== null) {\n newDate.setMinutes(this.defaultMinute);\n }\n newDate.setSeconds(0);\n newDate.setMilliseconds(0);\n instance.setDate(newDate, false);\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 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 (this._isClearing) return;\n try {\n if (selectedDates.length > 0) {\n if (!this._hasInteracted) {\n this._hasInteracted = true;\n }\n const selectedTime = selectedDates[0];\n const newDate = new Date();\n newDate.setHours(selectedTime.getHours());\n newDate.setMinutes(selectedTime.getMinutes());\n newDate.setSeconds(0);\n newDate.setMilliseconds(0);\n this.value = newDate;\n emitValue(this, 'on-change', {\n time: dateStr,\n source: undefined,\n });\n } else {\n this.value = null;\n emitValue(this, 'on-change', {\n time: this.value,\n source: 'clear',\n });\n }\n this._validate(true, false);\n await this.updateComplete;\n this.requestUpdate();\n } catch (error) {\n console.warn('Error handling time change:', error);\n }\n }\n\n private _validate(interacted: boolean, report: boolean): void {\n if (!this._inputEl || !(this._inputEl instanceof HTMLInputElement)) {\n return;\n }\n if (interacted) {\n this._hasInteracted = true;\n }\n const isEmpty = !this._inputEl.value.trim();\n const isRequired = this.required;\n let validity = this._inputEl.validity;\n let validationMessage = this._inputEl.validationMessage;\n if (isRequired && isEmpty) {\n validity = { ...validity, valueMissing: true };\n validationMessage =\n this.defaultErrorMessage || this._textStrings.pleaseSelectDate;\n }\n if (this.invalidText) {\n validity = { ...validity, customError: true };\n validationMessage = this.invalidText;\n }\n const isValid = !validity.valueMissing && !validity.customError;\n if (!isValid && !validationMessage) {\n validationMessage = this._textStrings.pleaseSelectValidDate;\n }\n this._internals.setValidity(validity, validationMessage, this._inputEl);\n this._isInvalid =\n !isValid && (this._hasInteracted || this.invalidText !== '');\n this._internalValidationMsg = validationMessage;\n if (report) {\n this._internals.reportValidity();\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 this._isDestroyed = true;\n super.disconnectedCallback();\n this.removeEventListener('change', this._onChange);\n this.removeEventListener('reset', this._handleFormReset);\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","noTimeSelected","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","staticPosition","_hasInteracted","_isClearing","textStrings","_textStrings","_shouldFlatpickrOpen","_initialized","debouncedUpdate","debounce","async","flatpickrInstance","initializeFlatpickr","error","console","_isDestroyed","func","wait","timeout","args","window","clearTimeout","setTimeout","apply","generateRandomId","prefix","Math","random","toString","slice","connectedCallback","super","addEventListener","_onChange","_handleFormReset","hasValue","_a","_inputEl","render","errorId","name","warningId","anchorId","descriptionId","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","newValue","strValue","trim","test","hours","minutes","split","map","Number","isNaN","date","Date","setHours","setDate","e","warn","clear","requestUpdate","close","event","preventDefault","stopPropagation","setAttribute","emitValue","time","source","_validate","isConnected","inputEl","destroy","undefined","Promise","resolve","requestAnimationFrame","initializeSingleAnchorFlatpickr","getFlatpickrOptions","options","getComponentFlatpickrOptions","noCalendar","setCalendarAttributes","instance","modalDetected","getModalContainer","document","body","calendarContainer","setInitialDates","bind","Error","hideEmptyYear","message","updateFlatpickrOptions","container","effectiveDateFormat","enableTime","allowInput","dateFormat","loadLocale","mode","onChange","handleTimeChange","onClose","handleClose","onOpen","handleOpen","appendTo","static","_d","dateStr","includes","parts","length","newDate","getTime","setMinutes","setSeconds","setMilliseconds","selectedDates","selectedTime","getHours","getMinutes","interacted","report","HTMLInputElement","isEmpty","isRequired","validity","validationMessage","valueMissing","customError","isValid","_internals","setValidity","reportValidity","setShouldFlatpickrOpen","closeFlatpickr","handleInputClick","handleInputFocus","disconnectedCallback","removeEventListener","styles","TimepickerStyles","__decorate","property","type","String","prototype","Object","Array","Boolean","state","query","customElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCA,MAAMA,EAAsB,CAC1BC,aAAc,WACdC,SAAU,QACVC,iBAAkB,uBAClBC,eAAgB,mBAChBC,sBAAuB,8BASZ,IAAAC,EAAN,cAAyBC,EAAUC,IAAnC,WAAAC,uBAKLC,KAAKC,MAAG,GAIRD,KAAME,OAA6B,KAI1BF,KAAKG,MAAgB,KAI9BH,KAAWI,YAA6B,KAIxCJ,KAAWK,YAAkB,KAI7BL,KAAaM,cAAkB,KAI/BN,KAAmBO,oBAAG,GAItBP,KAAQQ,SAAG,GAIXR,KAAOS,QAAG,GAIVT,KAAQU,UAAG,EAIXV,KAAIW,KAAG,KAIPX,KAAkBY,oBAAG,EAMrBZ,KAAoBa,qBAAmB,KAIvCb,KAAOc,QAA2B,GAIlCd,KAAOe,QAA2B,GAIlCf,KAAcgB,eAAG,GAIjBhB,KAAUiB,WAAG,GAIbjB,KAAgBkB,iBAAG,GAInBlB,KAAYmB,aAAG,GAIfnB,KAAcoB,gBAAG,EAOTpB,KAAcqB,gBAAG,EAmBjBrB,KAAWsB,aAAG,EAItBtB,KAAWuB,YAAGjC,EAMdU,KAAYwB,aAAGlC,EAKPU,KAAoByB,sBAAG,EAKvBzB,KAAY0B,cAAG,EAoBf1B,KAAA2B,gBAAkB3B,KAAK4B,UAASC,UACtC,GAAK7B,KAAK8B,kBACV,UACQ9B,KAAK+B,qBACZ,CAAC,MAAOC,GACPC,QAAQD,MAAM,6BAA8BA,EAC7C,IACA,KAoRKhC,KAAYkC,cAAG,CA8RxB,CA3kBS,QAAAN,CACNO,EACAC,GAEA,IAAIC,EAAyB,KAE7B,MAAO,IAAIC,KACO,OAAZD,GACFE,OAAOC,aAAaH,GAGtBA,EAAUE,OAAOE,YAAW,KAC1BN,EAAKO,MAAM1C,KAAMsC,GACjBD,EAAU,IAAI,GACbD,EAAK,CAEX,CAWO,gBAAAO,CAAiBC,GACvB,MAAO,GAAGA,KAAUC,KAAKC,SAASC,SAAS,IAAIC,MAAM,EAAG,KACzD,CAEQ,iBAAAC,GACPC,MAAMD,oBACNjD,KAAKmD,iBAAiB,SAAUnD,KAAKoD,WACrCpD,KAAKmD,iBAAiB,QAASnD,KAAKqD,iBACrC,CAEO,QAAAC,SACN,iBAAIC,EAAAvD,KAAKwD,+BAAUrD,SACA,OAAfH,KAAKG,UACLH,KAAKI,cACgB,OAArBJ,KAAKK,aAA+C,OAAvBL,KAAKM,gBAEvC,CAEQ,MAAAmD,aACP,MAAMC,EAAU,GAAG1D,KAAK2D,qBAClBC,EAAY,GAAG5D,KAAK2D,uBACpBE,EAAW7D,KAAK2D,KAClB3D,KAAK2C,iBAAiB3C,KAAK2D,MAC3B3D,KAAK2C,iBAAiB,eACpBmB,EAAyB,QAATP,EAAAvD,KAAK2D,YAAI,IAAAJ,EAAAA,EAAI,GAEnC,OAAOQ,CAAI;mBACIC,EAAShE,KAAKiE;;;uBAGVjE,KAAKkE;mBACTlE,KAAKkE;sBACFlE,KAAKY;eACZ,SAASiD;;YAEZ7D,KAAKU,SACHqD,CAAI;;wBAEuB,QAAjBI,EAAAnE,KAAKwB,oBAAY,IAAA2C,OAAA,EAAAA,EAAE5E;;6BAEG,QAAjB6E,EAAApE,KAAKwB,oBAAY,IAAA4C,OAAA,EAAAA,EAAE7E;;iBAGlC;YACFS,KAAKC;;;;;qBAKI+D,EAAS,CAChB,CAAC,SAAShE,KAAKW,SAAS,EACxB,gBAAgB;;iBAGbkD;mBACE7D,KAAK2D;0BA9BA;wBAgCA3D,KAAKY;wBACLZ,KAAKU;uBACNV,KAAKqE;2BACDrE,KAAKqE;8BACF,SAASR;qBAClB7D,KAAKsE;qBACLtE,KAAKuE;;YAEdvE,KAAKsD,WACHS,CAAI;;8BAEY/D,KAAKY;;;;gCAIHZ,KAAKwB,aAAahC;2BACvBQ,KAAKwE;;;sBAGVC,EAAUC;;;gBAIlBX,CAAI,4BAA4BU,EAAUE;;UAE9C3E,KAAKS,QACHsD,CAAI;mBACGD;;8BAEW9D,KAAKY;2BACRZ,KAAKkE;uBACTlE,KAAKkE;;gBAEZlE,KAAKS;oBAET;UACFT,KAAK4E,wBAAwBlB,EAASE;;KAG7C,CAEO,uBAAAgB,CAAwBlB,EAAiBE,GAC/C,OAAI5D,KAAK6E,aAAgB7E,KAAKqE,YAAcrE,KAAKqB,eACxC0C,CAAI;aACJL;;;gBAGG1D,KAAKiB,YAAc;qBACdjB,KAAKkE;iBACTlE,KAAKkE;;;;uBAIClE,KAAKgB,gBAAkB;;aAEjCyD,EAAUK;WACZ9E,KAAK6E,aACR7E,KAAK+E,wBACL/E,KAAKO;cAGLP,KAAKQ,SACAuD,CAAI;aACJH;;;qBAGQ5D,KAAKkB,kBAAoB;gBAC9BlB,KAAKmB,cAAgB;qBAChBnB,KAAKkE;iBACTlE,KAAKkE;;UAEZlE,KAAKQ;cAGJ,IACR,CAED,oBAAAyD,GACE,MAAO,CACL,eAAe,EACf,wBAAyBjE,KAAKY,mBAEjC,CAEQ,kBAAMoE,CAAaC,GAC1B/B,MAAM8B,aAAaC,GACdjF,KAAK0B,eACRwD,EAAsBC,EAAsBpC,YAC5C/C,KAAK0B,cAAe,QACd1B,KAAKoF,eACXpF,KAAKqF,cAER,CAEQ,aAAMC,CAAQL,GAwBrB,SAvBM/B,MAAMoC,QAAQL,GAGlBA,EAAkBM,IAAI,gBACtBN,EAAkBM,IAAI,kBACtBN,EAAkBM,IAAI,gBAMtBN,EAAkBM,IAAI,gBACtBN,EAAkBM,IAAI,YACtBN,EAAkBM,IAAI,WANlBvF,KAAK8B,oBAAsB9B,KAAKsB,mBAC5BtB,KAAK2B,kBAUJsD,EAAkBM,IAAI,yBAC3BvF,KAAK8B,oBAAsB9B,KAAKsB,mBAC5BtB,KAAK2B,kBAGXsD,EAAkBM,IAAI,WAAavF,KAAKsB,YAAa,CACvD,IAAIkE,EAAWxF,KAAKG,MAEpB,GAAwB,iBAAbqF,EACT,IACE,MAAMC,EAAWD,EACjB,GAAwB,KAApBC,EAASC,OAGX,GAFA1F,KAAKqB,gBAAiB,EAElB,gBAAgBsE,KAAKF,GAAW,CAClC,MAAOG,EAAOC,GAAWJ,EAASK,MAAM,KAAKC,IAAIC,QACjD,IAAKC,MAAML,KAAWK,MAAMJ,GAAU,CACpC,MAAMK,EAAO,IAAIC,KACjBD,EAAKE,SAASR,EAAOC,EAAS,EAAG,GACjC7F,KAAKG,MAAQ+F,EACbV,EAAWxF,KAAKG,MAEZH,KAAK8B,mBACP9B,KAAK8B,kBAAkBuE,QAAQb,GAAU,EAE5C,CACF,KAAU,oBAAoBG,KAAKF,KAClCzF,KAAKG,MAAQ,IAAIgG,KAAKV,GACtBD,EAAWxF,KAAKG,MAEZH,KAAK8B,mBACP9B,KAAK8B,kBAAkBuE,QAAQb,GAAU,GAIhD,CAAC,MAAOc,GACPrE,QAAQsE,KAAK,6BAA8BD,EAC5C,CAGH,GAAiB,OAAbd,GAAqBxF,KAAK8B,kBAAmB,CAC/C9B,KAAKsB,aAAc,EACnB,IACEtB,KAAK8B,kBAAkB0E,QACnBxG,KAAKwD,WACPxD,KAAKwD,SAASrD,MAAQ,GAEzB,CAAS,QACRH,KAAKsB,aAAc,CACpB,CACF,CACDtB,KAAKyG,eACN,CAECxB,EAAkBM,IAAI,uBACtBvF,KAAKY,oBACLZ,KAAK8B,mBAEL9B,KAAK8B,kBAAkB4E,OAE1B,CAEO,kBAAMlC,CAAamC,GACzBA,EAAMC,iBACND,EAAME,kBACN7G,KAAKsB,aAAc,EACnB,IACEtB,KAAKG,MAAQ,KACTH,KAAK8B,oBACP9B,KAAK8B,kBAAkB0E,QACnBxG,KAAKwD,WACPxD,KAAKwD,SAASrD,MAAQ,GACtBH,KAAKwD,SAASsD,aACZ,aACA9G,KAAKwB,aAAa9B,kBAIxBqH,EAAU/G,KAAM,YAAa,CAC3BgH,KAAMhH,KAAKG,MACX8G,OAAQ,UAEVjH,KAAKkH,WAAU,GAAM,SACflH,KAAKoF,qBACLpF,KAAK+B,sBACX/B,KAAKyG,eACN,CAAS,QACRzG,KAAKsB,aAAc,CACpB,CACF,CAEO,iBAAM+D,GACZ,GAAKrF,KAAKwD,SAKV,UACQxD,KAAK+B,qBACZ,CAAC,MAAOC,GACPC,QAAQD,MAAM,8BAA+BA,EAC9C,MARCC,QAAQsE,KAAK,uCAShB,CAID,yBAAMxE,GACJ,GAAI/B,KAAKkC,aACP,OAGF,IAAKlC,KAAKwD,WAAaxD,KAAKwD,SAAS2D,YAInC,YAHAlF,QAAQsE,KACN,oFAKJ,MAAMa,EAAUpH,KAAKwD,SACrB,IAOE,GANIxD,KAAK8B,oBACP9B,KAAK8B,kBAAkBuF,UACvBrH,KAAK8B,uBAAoBwF,QACnB,IAAIC,SAASC,GAAY/E,WAAW+E,EAAS,MAGjDxH,KAAKkC,eAAiBkF,EAAQD,YAChC,OAKF,SAFM,IAAII,SAASC,GAAYC,sBAAsBD,KAEjDxH,KAAKkC,eAAiBkF,EAAQD,YAChC,OA+BF,GA5BAnH,KAAK8B,wBAA0B4F,EAAgC,CAC7DN,QAASpH,KAAKwD,SACdmE,oBAAqB9F,UACnB,MAAM+F,QAAgB5H,KAAK6H,+BAK3B,OAJ2B,IAAvBD,EAAQE,aACV7F,QAAQsE,KAAK,qDACbqB,EAAQE,YAAa,GAEhBF,CAAO,EAEhBG,sBAAwBC,IACtB,IACE,MACMC,EADYC,EAAkBlI,QACAmI,SAASC,KAC7CL,EAAsBC,EAAUC,GAC5BD,EAASK,mBACXL,EAASK,kBAAkBvB,aACzB,aACA,cAGL,CAAC,MAAO9E,GACPC,QAAQsE,KAAK,qCAAsCvE,EACpD,GAEHsG,gBAAiBtI,KAAKsI,gBAAgBC,KAAKvI,SAGxCA,KAAK8B,kBACR,MAAM,IAAI0G,MAAM,2CAGlBC,IACAzI,KAAKkH,WAAU,GAAO,EACvB,CAAC,MAAOlF,GACPC,QAAQD,MAAM,gCAAiCA,GAE3CA,aAAiBwG,OACnBvG,QAAQD,MAAM,iBAAkBA,EAAM0G,QAEzC,CACF,CAED,4BAAMC,GACC3I,KAAK8B,wBAIJ9B,KAAK2B,kBAHTM,QAAQsE,KAAK,0DAIhB,CAED,kCAAMsB,eACJ,MAAMe,EAAYV,EAAkBlI,MAC9B6I,EAAsB7I,KAAKa,qBAAuB,MAAQ,QAChE,OAAO8G,EAAoB,CACzBzH,OAAQF,KAAKE,OACb4I,YAAY,EACZjI,6BAAsB0C,EAAAvD,KAAKa,yCAAwByG,EACnDF,QAASpH,KAAKwD,SACduF,YAAY,EACZC,WAAYH,EACZ/H,QAASd,KAAKc,QACdC,QAASf,KAAKe,QACdkI,aACAC,KAAM,OACNpB,YAAY,EACZqB,SAAUnJ,KAAKoJ,iBAAiBb,KAAKvI,MACrCqJ,QAASrJ,KAAKsJ,YAAYf,KAAKvI,MAC/BuJ,OAAQvJ,KAAKwJ,WAAWjB,KAAKvI,MAC7ByJ,SAAUb,EACVc,OAAQ1J,KAAKoB,eACbhB,oBAAa+D,EAAAnE,KAAKI,gCAAekH,EACjCjH,oBAAa+D,EAAApE,KAAKK,gCAAeiH,EACjChH,sBAAeqJ,EAAA3J,KAAKM,kCAAiBgH,GAExC,CAED,eAAAgB,CAAgBN,GACd,IACE,GAAIhI,KAAKqB,gBAAkBrB,KAAKG,MAAO,OACvC,GAAwB,MAApBH,KAAKI,YACP,GAAgC,iBAArBJ,KAAKI,YAA0B,CACxC,MAAMwJ,EAAU5J,KAAKI,YAAYsF,OACjC,GAAIkE,EAAQC,SAAS,OAASD,EAAQC,SAAS,KAAM,CACnD,MAAMC,EAAQF,EAAQ9D,MAAM,KAAKC,IAAIC,QACrC,GAAI8D,EAAMC,QAAU,IAAM9D,MAAM6D,EAAM,MAAQ7D,MAAM6D,EAAM,IAAK,CAC7D,MAAME,EAAU,IAAI7D,KAGpB,OAFA6D,EAAQ5D,SAAS0D,EAAM,GAAIA,EAAM,GAAI,EAAG,QACxC9B,EAAS3B,QAAQ2D,GAAS,EAE3B,CACF,MAAM,GAAI,oBAAoBrE,KAAKiE,GAClC,IACE,MAAMI,EAAU,IAAI7D,KAAKyD,GACzB,IAAK3D,MAAM+D,EAAQC,WAEjB,YADAjC,EAAS3B,QAAQ2D,GAAS,EAG7B,CAAC,MAAO1D,GACPrE,QAAQsE,KAAK,6BAA8BD,EAC5C,CAEJ,MAAM,GAAItG,KAAKI,uBAAuB+F,KAErC,YADA6B,EAAS3B,QAAQrG,KAAKI,aAAa,GAIvC,GAAyB,OAArBJ,KAAKK,aAA+C,OAAvBL,KAAKM,cAAwB,CAC5D,MAAM0J,EAAU,IAAI7D,KACK,OAArBnG,KAAKK,aACP2J,EAAQ5D,SAASpG,KAAKK,aAEG,OAAvBL,KAAKM,eACP0J,EAAQE,WAAWlK,KAAKM,eAE1B0J,EAAQG,WAAW,GACnBH,EAAQI,gBAAgB,GACxBpC,EAAS3B,QAAQ2D,GAAS,EAC3B,CACF,CAAC,MAAOhI,GACPC,QAAQsE,KAAK,+BAAgCvE,EAC9C,CACF,CAED,UAAAwH,SACOxJ,KAAKyB,uBACgB,QAAxB8B,EAAAvD,KAAK8B,yBAAmB,IAAAyB,GAAAA,EAAAmD,QACxB1G,KAAKyB,sBAAuB,EAE/B,CAED,iBAAM6H,GACJtJ,KAAKqB,gBAAiB,EACtBrB,KAAKkH,WAAU,GAAM,SACflH,KAAKoF,cACZ,CAED,sBAAMgE,CACJiB,EACAT,GAEA,IAAI5J,KAAKsB,YACT,IACE,GAAI+I,EAAcN,OAAS,EAAG,CACvB/J,KAAKqB,iBACRrB,KAAKqB,gBAAiB,GAExB,MAAMiJ,EAAeD,EAAc,GAC7BL,EAAU,IAAI7D,KACpB6D,EAAQ5D,SAASkE,EAAaC,YAC9BP,EAAQE,WAAWI,EAAaE,cAChCR,EAAQG,WAAW,GACnBH,EAAQI,gBAAgB,GACxBpK,KAAKG,MAAQ6J,EACbjD,EAAU/G,KAAM,YAAa,CAC3BgH,KAAM4C,EACN3C,YAAQK,GAEX,MACCtH,KAAKG,MAAQ,KACb4G,EAAU/G,KAAM,YAAa,CAC3BgH,KAAMhH,KAAKG,MACX8G,OAAQ,UAGZjH,KAAKkH,WAAU,GAAM,SACflH,KAAKoF,eACXpF,KAAKyG,eACN,CAAC,MAAOzE,GACPC,QAAQsE,KAAK,8BAA+BvE,EAC7C,CACF,CAEO,SAAAkF,CAAUuD,EAAqBC,GACrC,KAAK1K,KAAKwD,UAAcxD,KAAKwD,oBAAoBmH,kBAC/C,OAEEF,IACFzK,KAAKqB,gBAAiB,GAExB,MAAMuJ,GAAW5K,KAAKwD,SAASrD,MAAMuF,OAC/BmF,EAAa7K,KAAKU,SACxB,IAAIoK,EAAW9K,KAAKwD,SAASsH,SACzBC,EAAoB/K,KAAKwD,SAASuH,kBAClCF,GAAcD,IAChBE,EAAW,IAAKA,EAAUE,cAAc,GACxCD,EACE/K,KAAKO,qBAAuBP,KAAKwB,aAAa/B,kBAE9CO,KAAK6E,cACPiG,EAAW,IAAKA,EAAUG,aAAa,GACvCF,EAAoB/K,KAAK6E,aAE3B,MAAMqG,GAAWJ,EAASE,eAAiBF,EAASG,YAC/CC,GAAYH,IACfA,EAAoB/K,KAAKwB,aAAa7B,uBAExCK,KAAKmL,WAAWC,YAAYN,EAAUC,EAAmB/K,KAAKwD,UAC9DxD,KAAKqE,YACF6G,IAAYlL,KAAKqB,gBAAuC,KAArBrB,KAAK6E,aAC3C7E,KAAK+E,uBAAyBgG,EAC1BL,GACF1K,KAAKmL,WAAWE,iBAElBrL,KAAKyG,eACN,CAEO,SAAArD,GACNpD,KAAKkH,WAAU,GAAM,EACtB,CAEO,gBAAA7D,GACNrD,KAAKG,MAAQ,KACTH,KAAK8B,mBACP9B,KAAK8B,kBAAkB0E,QAEzBxG,KAAKqB,gBAAiB,EACtBrB,KAAKkH,WAAU,GAAO,EACvB,CAEO,sBAAAoE,CAAuBnL,GAC7BH,KAAKyB,qBAAuBtB,CAC7B,CAEO,cAAAoL,SACkB,QAAxBhI,EAAAvD,KAAK8B,yBAAmB,IAAAyB,GAAAA,EAAAmD,OACzB,CAEO,oBAAAxC,CAAqByC,GAC3BzC,EAAqByC,EAAO3G,KAAKsL,uBAAuB/C,KAAKvI,MAC9D,CAEO,qBAAAsE,GACNkH,EAAiBxL,KAAKsL,uBAAuB/C,KAAKvI,MACnD,CAEO,qBAAAuE,GACNkH,EACEzL,KAAKyB,qBACLzB,KAAKuL,eAAehD,KAAKvI,MACzBA,KAAKsL,uBAAuB/C,KAAKvI,MAEpC,CAEQ,oBAAA0L,GACP1L,KAAKkC,cAAe,EACpBgB,MAAMwI,uBACN1L,KAAK2L,oBAAoB,SAAU3L,KAAKoD,WACxCpD,KAAK2L,oBAAoB,QAAS3L,KAAKqD,kBACnCrD,KAAK8B,oBACP9B,KAAK8B,kBAAkBuF,UACvBrH,KAAK8B,uBAAoBwF,EAE5B,GA5sBe1H,EAAAgM,OAAS,CAACC,EAAkB1G,GAI5C2G,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACPrM,EAAAsM,UAAA,aAAA,GAIXJ,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACsBrM,EAAAsM,UAAA,cAAA,GAIxCJ,EAAA,CADCC,EAAS,CAAEC,KAAMG,UACiBvM,EAAAsM,UAAA,aAAA,GAInCJ,EAAA,CADCC,EAAS,CAAEC,KAAMI,SAC2BxM,EAAAsM,UAAA,mBAAA,GAI7CJ,EAAA,CADCC,EAAS,CAAEC,KAAMhG,UACgBpG,EAAAsM,UAAA,mBAAA,GAIlCJ,EAAA,CADCC,EAAS,CAAEC,KAAMhG,UACkBpG,EAAAsM,UAAA,qBAAA,GAIpCJ,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACOrM,EAAAsM,UAAA,2BAAA,GAIzBJ,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACJrM,EAAAsM,UAAA,gBAAA,GAIdJ,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACLrM,EAAAsM,UAAA,eAAA,GAIbJ,EAAA,CADCC,EAAS,CAAEC,KAAMK,WACDzM,EAAAsM,UAAA,gBAAA,GAIjBJ,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACNrM,EAAAsM,UAAA,YAAA,GAIZJ,EAAA,CADCC,EAAS,CAAEC,KAAMK,WACSzM,EAAAsM,UAAA,0BAAA,GAM3BJ,EAAA,CADCC,EAAS,CAAEC,KAAMK,WAC0BzM,EAAAsM,UAAA,4BAAA,GAI5CJ,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACmBrM,EAAAsM,UAAA,eAAA,GAIrCJ,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACmBrM,EAAAsM,UAAA,eAAA,GAIrCJ,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACErM,EAAAsM,UAAA,sBAAA,GAIpBJ,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACFrM,EAAAsM,UAAA,kBAAA,GAIhBJ,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACIrM,EAAAsM,UAAA,wBAAA,GAItBJ,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACArM,EAAAsM,UAAA,oBAAA,GAIlBJ,EAAA,CADCC,EAAS,CAAEC,KAAMK,WACKzM,EAAAsM,UAAA,sBAAA,GAOvBJ,EAAA,CADCQ,KAC8B1M,EAAAsM,UAAA,sBAAA,GAM/BJ,EAAA,CADCQ,KAC8C1M,EAAAsM,UAAA,yBAAA,GAO/CJ,EAAA,CADCS,EAAM,uBAC6B3M,EAAAsM,UAAA,gBAAA,GAMpCJ,EAAA,CADCQ,KAC2B1M,EAAAsM,UAAA,mBAAA,GAI5BJ,EAAA,CADCC,EAAS,CAAEC,KAAMG,UACgBvM,EAAAsM,UAAA,mBAAA,GAMlCJ,EAAA,CADCQ,KACkC1M,EAAAsM,UAAA,oBAAA,GAvHxBtM,EAAUkM,EAAA,CADtBU,EAAc,oBACF5M"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kyndryl-design-system/shidoka-applications",
3
- "version": "2.16.1",
3
+ "version": "2.16.2",
4
4
  "description": "Shidoka Web Components for Applications",
5
5
  "main": "index.js",
6
6
  "type": "module",