@kyndryl-design-system/shidoka-applications 2.14.2 → 2.14.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/flatpickrLangs.d.ts +3 -0
- package/common/flatpickrLangs.d.ts.map +1 -0
- package/common/flatpickrLangs.js +2 -0
- package/common/flatpickrLangs.js.map +1 -0
- package/common/helpers/flatpickr.d.ts +7 -2
- package/common/helpers/flatpickr.d.ts.map +1 -1
- package/common/helpers/flatpickr.js +1 -1
- package/common/helpers/flatpickr.js.map +1 -1
- package/common/scss/shidoka-flatpickr-theme.scss +11 -6
- package/components/reusable/datePicker/datepicker.d.ts +22 -5
- package/components/reusable/datePicker/datepicker.d.ts.map +1 -1
- package/components/reusable/datePicker/datepicker.js +13 -13
- package/components/reusable/datePicker/datepicker.js.map +1 -1
- package/components/reusable/datePicker/index.js +1 -1
- package/components/reusable/daterangepicker/daterangepicker.d.ts +23 -7
- package/components/reusable/daterangepicker/daterangepicker.d.ts.map +1 -1
- package/components/reusable/daterangepicker/daterangepicker.js +14 -14
- package/components/reusable/daterangepicker/daterangepicker.js.map +1 -1
- package/components/reusable/daterangepicker/index.js +1 -1
- package/components/reusable/timepicker/index.js +1 -1
- package/components/reusable/timepicker/timepicker.d.ts +19 -4
- package/components/reusable/timepicker/timepicker.d.ts.map +1 -1
- package/components/reusable/timepicker/timepicker.js +15 -17
- package/components/reusable/timepicker/timepicker.js.map +1 -1
- package/index.js +1 -1
- package/package.json +1 -1
- package/{shidoka-flatpickr-theme-d7d388aa.js → shidoka-flatpickr-theme-3d6e1af1.js} +12 -7
- package/{shidoka-flatpickr-theme-d7d388aa.js.map → shidoka-flatpickr-theme-3d6e1af1.js.map} +1 -1
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const langsArray: readonly ["ar", "at", "az", "be", "bg", "bn", "bs", "cat", "cs", "cy", "da", "de", "en", "eo", "es", "et", "fa", "fi", "fo", "fr", "ga", "gr", "he", "hi", "hr", "hu", "id", "is", "it", "ja", "ka", "km", "ko", "kz", "lt", "lv", "mk", "mn", "ms", "my", "nl", "no", "pa", "pl", "pt", "ro", "ru", "si", "sk", "sl", "sq", "sr", "sv", "th", "tr", "uk", "uz", "uz_latn", "vn", "zh_tw", "zh"];
|
|
2
|
+
export type SupportedLocale = (typeof langsArray)[number];
|
|
3
|
+
//# sourceMappingURL=flatpickrLangs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flatpickrLangs.d.ts","sourceRoot":"","sources":["../../src/common/flatpickrLangs.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,kYA8Db,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const s=["ar","at","az","be","bg","bn","bs","cat","cs","cy","da","de","en","eo","es","et","fa","fi","fo","fr","ga","gr","he","hi","hr","hu","id","is","it","ja","ka","km","ko","kz","lt","lv","mk","mn","ms","my","nl","no","pa","pl","pt","ro","ru","si","sk","sl","sq","sr","sv","th","tr","uk","uz","uz_latn","vn","zh_tw","zh"];export{s as langsArray};
|
|
2
|
+
//# sourceMappingURL=flatpickrLangs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flatpickrLangs.js","sources":["../../src/common/flatpickrLangs.ts"],"sourcesContent":["export const langsArray = [\n 'ar', // Arabic\n 'at', // Austria\n 'az', // Azerbaijan\n 'be', // Belarusian\n 'bg', // Bulgarian\n 'bn', // Bangla\n 'bs', // Bosnia\n 'cat', // Catalan\n 'cs', // Czech\n 'cy', // Welsh\n 'da', // Danish\n 'de', // German\n 'en', // English\n 'eo', // Esperanto\n 'es', // Spanish\n 'et', // Estonian\n 'fa', // Persian\n 'fi', // Finnish\n 'fo', // Faroese\n 'fr', // French\n 'ga', // Gaelic\n 'gr', // Greek\n 'he', // Hebrew\n 'hi', // Hindi\n 'hr', // Croatian\n 'hu', // Hungarian\n 'id', // Indonesian\n 'is', // Icelandic\n 'it', // Italian\n 'ja', // Japanese\n 'ka', // Georgian\n 'km', // Khmer\n 'ko', // Korean\n 'kz', // Kazakh\n 'lt', // Lithuanian\n 'lv', // Latvian\n 'mk', // Macedonian\n 'mn', // Mongolian\n 'ms', // Malaysian\n 'my', // Burmese\n 'nl', // Dutch\n 'no', // Norwegian\n 'pa', // Punjabi\n 'pl', // Polish\n 'pt', // Portuguese\n 'ro', // Romanian\n 'ru', // Russian\n 'si', // Sinhala\n 'sk', // Slovak\n 'sl', // Slovenian\n 'sq', // Albanian\n 'sr', // Serbian\n 'sv', // Swedish\n 'th', // Thai\n 'tr', // Turkish\n 'uk', // Ukrainian\n 'uz', // Uzbek\n 'uz_latn', // Uzbek Latin\n 'vn', // Vietnamese\n 'zh_tw', // Mandarin Traditional\n 'zh', // Mandarin\n] as const;\n\nexport type SupportedLocale = (typeof langsArray)[number];\n"],"names":["langsArray"],"mappings":"AAAa,MAAAA,EAAa,CACxB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,UACA,KACA,QACA"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Instance } from 'flatpickr/dist/types/instance';
|
|
2
2
|
import { BaseOptions, Hook } from 'flatpickr/dist/types/options';
|
|
3
3
|
import { Locale } from 'flatpickr/dist/types/locale';
|
|
4
|
-
export declare const langsArray: string[];
|
|
5
4
|
interface BaseFlatpickrContext {
|
|
6
5
|
getFlatpickrOptions: () => Promise<Partial<BaseOptions>>;
|
|
7
6
|
setCalendarAttributes: (instance: Instance) => void;
|
|
@@ -19,8 +18,13 @@ declare const DATE_FORMAT_OPTIONS: {
|
|
|
19
18
|
readonly 'm-d-Y': "mm-dd-yyyy";
|
|
20
19
|
readonly 'd-m-Y': "dd-mm-yyyy";
|
|
21
20
|
readonly 'Y-m-d H:i': "yyyy-mm-dd —— : ——";
|
|
21
|
+
readonly 'Y-m-d h:i K': "yyyy-mm-dd —— : ——";
|
|
22
|
+
readonly 'm-d-Y H:i': "mm-dd-yyyy —— : ——";
|
|
23
|
+
readonly 'm-d-Y h:i K': "mm-dd-yyyy —— : ——";
|
|
24
|
+
readonly 'd-m-Y H:i': "dd-mm-yyyy —— : ——";
|
|
25
|
+
readonly 'd-m-Y h:i K': "dd-mm-yyyy —— : ——";
|
|
22
26
|
readonly 'Y-m-d H:i:s': "yyyy-mm-dd —— : —— ——";
|
|
23
|
-
readonly 'm-d-Y H:i:s': "mm-dd-yyyy
|
|
27
|
+
readonly 'm-d-Y H:i:s': "mm-dd-yyyy —— : —— ——";
|
|
24
28
|
readonly 'd-m-Y H:i:s': "dd-mm-yyyy —— : —— ——";
|
|
25
29
|
};
|
|
26
30
|
type DateFormatOption = keyof typeof DATE_FORMAT_OPTIONS;
|
|
@@ -64,6 +68,7 @@ export declare function initializeSingleAnchorFlatpickr(context: SingleFlatpickr
|
|
|
64
68
|
}): Promise<Instance | undefined>;
|
|
65
69
|
export declare function isValidDateFormat(format: string): format is DateFormatOption;
|
|
66
70
|
export declare function getPlaceholder(dateFormat: string, isDateRange?: boolean): string;
|
|
71
|
+
export declare function getModalContainer(element: HTMLElement): HTMLElement;
|
|
67
72
|
export declare function getFlatpickrOptions(context: FlatpickrOptionsContext): Promise<Partial<BaseOptions>>;
|
|
68
73
|
export declare function updateEnableTime(dateFormat: string): boolean;
|
|
69
74
|
export declare function setCalendarAttributes(instance: Instance, modalDetected?: boolean): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flatpickr.d.ts","sourceRoot":"","sources":["../../../src/common/helpers/flatpickr.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"flatpickr.d.ts","sourceRoot":"","sources":["../../../src/common/helpers/flatpickr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,f as t,E as n}from"../../vendor/flatpickr-bbd13d61.js";let
|
|
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){return a.includes(e)}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:D,onChange:F,onClose:N,onOpen:L,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=["en","en-US","en-GB","es-MX"].includes(i),M=window.innerWidth>=767,I=o||("time"===k?l?"H:i":"h:i K":"Y-m-d"),S={dateFormat:I,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:!Y,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)=>{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)=>{L&&L(e,t,n)}};if("range"===k&&(S.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||(S.positionElement=s),u&&(S.minDate=u),m&&(S.maxDate=m),p&&(S.minTime=p),y&&(S.maxTime=y),f)if(!Array.isArray(f)||"range"!==k&&"multiple"!==k){if(!Array.isArray(f)&&"string"==typeof f){let e=null;switch(I){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)}S.defaultDate=e||f}}else S.defaultDate=f;return null!=h&&(S.defaultHour=h),null!=g&&(S.defaultMinute=g),w&&w.length>0&&(S.enable=w),E&&E.length>0&&(S.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,I)||e}return e}))),D&&(S.appendTo=D),S}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...")}async function k(e){var t,a,i;if("en"===e)return n;if(!r(e))return console.warn(`Unsupported locale "${e}". Falling back to English.`),n;try{const o=await import(`flatpickr/dist/l10n/${e}.js`),r=null!==(i=null!==(t=o[e])&&void 0!==t?t:null===(a=o.default)||void 0===a?void 0:a[e])&&void 0!==i?i:o.default;return r||(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 b(){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 v(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 C(e,t,n){e.dispatchEvent(new CustomEvent(t,{detail:n,bubbles:!0,composed:!0}))}export{C as emitValue,g as getFlatpickrOptions,h as getModalContainer,f as getPlaceholder,s as handleInputClick,c as handleInputFocus,b as hideEmptyYear,m as initializeMultiAnchorFlatpickr,p as initializeSingleAnchorFlatpickr,u as injectFlatpickrStyles,r as isSupportedLocale,y as isValidDateFormat,k as loadLocale,d as modifyWeekdayShorthands,l as preventFlatpickrOpen,E as setCalendarAttributes,w as updateEnableTime,v 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';\n\nlet flatpickrStylesInjected = false;\n\nexport const langsArray = [\n 'ar', // Arabic\n 'at', // Austria\n 'az', // Azerbaijan\n 'be', // Belarusian\n 'bg', // Bulgarian\n 'bn', // Bangla\n 'bs', // Bosnia\n 'cat', // Catalan\n 'cs', // Czech\n 'cy', // Welsh\n 'da', // Danish\n 'de', // German\n 'en', // English\n 'eo', // Esperanto\n 'es', // Spanish\n 'et', // Estonian\n 'fa', // Persian\n 'fi', // Finnish\n 'fo', // Faroese\n 'fr', // French\n 'ga', // Gaelic\n 'gr', // Greek\n 'he', // Hebrew\n 'hi', // Hindi\n 'hr', // Croatian\n 'hu', // Hungarian\n 'id', // Indonesian\n 'is', // Icelandic\n 'it', // Italian\n 'ja', // Japanese\n 'ka', // Georgian\n 'km', // Khmer\n 'ko', // Korean\n 'kz', // Kazakh\n 'lt', // Lithuanian\n 'lv', // Latvian\n 'mk', // Macedonian\n 'mn', // Mongolian\n 'ms', // Malaysian\n 'my', // Burmese\n 'nl', // Dutch\n 'no', // Norwegian\n 'pa', // Punjabi\n 'pl', // Polish\n 'pt', // Portuguese\n 'ro', // Romanian\n 'ru', // Russian\n 'si', // Sinhala\n 'sk', // Slovak\n 'sl', // Slovenian\n 'sq', // Albanian\n 'sr', // Serbian\n 'sv', // Swedish\n 'th', // Thai\n 'tr', // Turkish\n 'uk', // Ukrainian\n 'uz', // Uzbek\n 'uz_latn', // Uzbek Latin\n 'vn', // Vietnamese\n 'zh_tw', // Mandarin Traditional\n 'zh', // Mandarin\n];\n\ntype SupportedLocale = (typeof langsArray)[number];\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: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 return langsArray.includes(locale 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 = (inputEl: HTMLElement): HTMLInputElement => {\n if (inputEl instanceof HTMLInputElement) {\n return inputEl;\n } else {\n let input = inputEl.querySelector('input');\n if (!input) {\n input = document.createElement('input');\n input.type = 'text';\n input.style.display = 'none';\n inputEl.appendChild(input);\n }\n return input as HTMLInputElement;\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 options.dateFormat = options.dateFormat || 'Y-m-d';\n let inputElement: HTMLInputElement;\n if (inputEl instanceof HTMLInputElement) {\n inputElement = inputEl;\n options.clickOpens = true;\n } else {\n inputElement = document.createElement('input');\n inputElement.type = 'text';\n inputElement.style.display = 'none';\n\n if (appendTo) {\n appendTo.appendChild(inputElement);\n } else if (\n inputEl instanceof HTMLElement &&\n !(inputEl instanceof HTMLInputElement)\n ) {\n inputEl.appendChild(inputElement);\n } else {\n document.body.appendChild(inputElement);\n }\n\n options.clickOpens = false;\n options.positionElement = inputEl;\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 let placeholderFormat;\n\n if (isValidDateFormat(dateFormat)) {\n if (isDateRange) {\n placeholderFormat = `${DATE_FORMAT_OPTIONS[dateFormat]} to ${DATE_FORMAT_OPTIONS[dateFormat]}`;\n } else {\n placeholderFormat = DATE_FORMAT_OPTIONS[dateFormat];\n }\n return placeholderFormat;\n }\n return 'Select date';\n}\n\nexport async function getFlatpickrOptions(\n context: FlatpickrOptionsContext\n): Promise<Partial<BaseOptions>> {\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 const localeOptions = await loadLocale(locale);\n modifyWeekdayShorthands(localeOptions);\n\n const isEnglishOr12HourLocale = ['en', 'en-US', 'en-GB', 'es-MX'].includes(\n locale\n );\n\n const isWideScreen = window.innerWidth >= 767;\n const options: Partial<BaseOptions> = {\n dateFormat: dateFormat || (mode === 'time' ? 'H:i' : 'Y-m-d'),\n mode: mode === 'time' ? 'single' : mode,\n enableTime: mode === 'time' ? true : enableTime,\n noCalendar: mode === 'time' ? true : noCalendar,\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 if (onChange) {\n onChange(selectedDates, dateStr, instance);\n }\n },\n onClose: (selectedDates, dateStr, instance) => {\n if (mode === 'range') {\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 if (onClose) {\n onClose(selectedDates, dateStr, instance);\n }\n },\n onOpen: (selectedDates, dateStr, instance) => {\n if (onOpen) {\n onOpen(selectedDates, dateStr, instance);\n }\n },\n };\n\n if (mode === 'range') {\n options.onReady = (_, __, instance) => {\n const timeContainer =\n instance.calendarContainer.querySelector('.flatpickr-time');\n timeContainer?.classList.add('default-time-select');\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 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 options.defaultDate = defaultDate;\n }\n }\n if (defaultHour !== undefined) options.defaultHour = defaultHour;\n if (defaultMinute !== undefined) options.defaultMinute = defaultMinute;\n if (enable && enable.length > 0) options.enable = enable;\n if (disable && disable.length > 0) options.disable = disable;\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 && instance.calendarContainer) {\n instance.calendarContainer.setAttribute('role', 'application');\n instance.calendarContainer.setAttribute('aria-label', 'Calendar');\n\n instance.calendarContainer.classList.remove(\n 'container-modal',\n 'container-body'\n );\n\n instance.calendarContainer.classList.remove(\n 'container-modal',\n 'container-body'\n );\n\n const containerClass = modalDetected\n ? 'container-modal'\n : 'container-default';\n instance.calendarContainer.classList.add(containerClass);\n\n // Add static position class based on the static option\n instance.calendarContainer.classList.remove(\n 'static-position-true',\n 'static-position-false'\n );\n instance.calendarContainer.classList.add(\n `static-position-${instance.config.static}`\n );\n } else {\n console.warn('Calendar container not available...');\n }\n}\n\nexport async function loadLocale(locale: string): Promise<Partial<Locale>> {\n if (locale === 'en') return English;\n if (!isSupportedLocale(locale)) {\n console.warn(`Unsupported locale: ${locale}. Falling back to English.`);\n return English;\n }\n\n try {\n const module = await import(`flatpickr/dist/l10n/${locale}.js`);\n const localeConfig =\n module[locale] || module.default[locale] || 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 return localeConfig;\n } catch (error) {\n console.error(\n `Failed to load locale ${locale}. Falling back to English.`,\n error\n );\n if (error instanceof Error) {\n console.error('Error details:', error.message);\n }\n return English;\n }\n}\n\nexport function hideEmptyYear(): void {\n document.querySelectorAll('.numInputWrapper').forEach((wrapper) => {\n const yearInput = wrapper.querySelector(\n '.numInput.cur-year'\n ) as HTMLInputElement;\n\n const currentMonth = document.querySelector(\n '.flatpickr-current-month span.cur-month'\n ) as HTMLElement;\n\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","langsArray","DATE_FORMAT_OPTIONS","isSupportedLocale","locale","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","HTMLInputElement","input","querySelector","type","style","display","inputElement","endInputElement","plugins","rangePlugin","flatpickrInstance","flatpickr","setTimeout","addEventListener","open","console","error","initializeSingleAnchorFlatpickr","appendTo","dateFormat","clickOpens","HTMLElement","body","positionElement","Error","message","isValidDateFormat","format","getPlaceholder","isDateRange","placeholderFormat","enableTime","twentyFourHourFormat","allowInput","minDate","maxDate","minTime","maxTime","defaultDate","defaultHour","defaultMinute","enable","disable","mode","closeOnSelect","wrap","noCalendar","onChange","onClose","onOpen","loadLocale","warn","isEnglishOr12HourLocale","isWideScreen","window","innerWidth","time_24hr","weekNumbers","static","_a","showMonths","monthSelectorType","selectedDates","dateStr","instance","timeContainer","calendarContainer","length","classList","add","remove","onReady","_","__","Array","isArray","undefined","updateEnableTime","modalDetected","setAttribute","containerClass","config","English","module","import","localeConfig","default","hideEmptyYear","querySelectorAll","forEach","wrapper","yearInput","currentMonth","min","max","marginLeft","validate","required","invalidText","defaultErrorMessage","hasInteracted","internals","isValid","validationMessage","isEmpty","value","trim","isRequired","validity","valueMissing","customError","setValidity","emitValue","element","eventName","detail","dispatchEvent","CustomEvent","bubbles","composed"],"mappings":"qEAOA,IAAIA,GAA0B,EAEjB,MAAAC,EAAa,CACxB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,UACA,KACA,QACA,MAoBIC,EAAsB,CAC1B,QAAS,aACT,QAAS,aACT,QAAS,aACT,YAAa,qBACb,cAAe,wBACf,cAAe,yBACf,cAAe,yBAkCX,SAAUC,EAAkBC,GAChC,OAAOH,EAAWI,SAASD,EAC7B,CAEgB,SAAAE,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,IAAKxB,EAAyB,CAC5B,MAAMyB,EAAeC,SAASC,cAAc,SAC5CF,EAAaG,GAAK,0BAClBH,EAAaI,YAAcL,EAC3BE,SAASI,KAAKC,YAAYN,GAC1BzB,GAA0B,CAC3B,CACH,CAEOgC,eAAeC,EACpBC,GAEA,MAAMC,QACJA,EAAOC,WACPA,EAAUC,oBACVA,EAAmBC,sBACnBA,EAAqBC,gBACrBA,GACEL,EAEJ,GAAKC,EAKL,IACE,MAAMK,QAAgBH,IAEhBI,EAAmBN,IACvB,GAAIA,aAAmBO,iBACrB,OAAOP,EACF,CACL,IAAIQ,EAAQR,EAAQS,cAAc,SAOlC,OANKD,IACHA,EAAQjB,SAASC,cAAc,SAC/BgB,EAAME,KAAO,OACbF,EAAMG,MAAMC,QAAU,OACtBZ,EAAQJ,YAAYY,IAEfA,CACR,GAGGK,EAAeP,EAAgBN,GACrC,GAAIC,EAAY,CACd,MAAMa,EAAkBR,EAAgBL,GACxCI,EAAQU,QAAU,IACZV,EAAQU,SAAW,GACvBC,EAAY,CAAER,MAAOM,IAExB,CAED,MAAMG,EAAoBC,EAAUL,EAAcR,GAElD,OAAIY,GACFE,YAAW,KACLhB,GACFA,EAAsBc,EACvB,GACA,GAECb,GACFA,EAAgBa,GAGZjB,aAAmBO,kBACvBP,EAAQoB,iBAAiB,SAAS,KAChCH,EAAkBI,MAAM,KAIxBpB,GAAgBA,aAAsBM,kBACxCN,EAAWmB,iBAAiB,SAAS,KACnCH,EAAkBI,MAAM,IAIrBJ,QAEPK,QAAQC,MAAM,iCAGjB,CAAC,MAAOA,GAEP,YADAD,QAAQC,MAAM,gCAAiCA,EAEhD,MAhECD,QAAQC,MAAM,oDAiElB,CAEO1B,eAAe2B,EACpBzB,GAEA,MAAMC,QACJA,EAAOE,oBACPA,EAAmBC,sBACnBA,EAAqBC,gBACrBA,EAAeqB,SACfA,GACE1B,EACJ,GAAKC,EAIL,IACE,MAAMK,QAAgBH,IAEtB,IAAIW,EADJR,EAAQqB,WAAarB,EAAQqB,YAAc,QAEvC1B,aAAmBO,kBACrBM,EAAeb,EACfK,EAAQsB,YAAa,IAErBd,EAAetB,SAASC,cAAc,SACtCqB,EAAaH,KAAO,OACpBG,EAAaF,MAAMC,QAAU,OAEzBa,EACFA,EAAS7B,YAAYiB,GAErBb,aAAmB4B,eACjB5B,aAAmBO,kBAErBP,EAAQJ,YAAYiB,GAEpBtB,SAASsC,KAAKjC,YAAYiB,GAG5BR,EAAQsB,YAAa,EACrBtB,EAAQyB,gBAAkB9B,GAE5B,MAAMiB,EAAoBC,EAAUL,EAAcR,GAClD,OAAIY,GACFE,YAAW,KACLhB,GACFA,EAAsBc,EACvB,GACA,GACCb,GACFA,EAAgBa,GAEZjB,aAAmBO,kBACvBP,EAAQoB,iBAAiB,SAAS,IAAMH,EAAkBI,SAErDJ,QAEPK,QAAQC,MAAM,iCAGjB,CAAC,MAAOA,GAKP,OAJAD,QAAQC,MAAM,gCAAiCA,QAC3CA,aAAiBQ,OACnBT,QAAQC,MAAM,iBAAkBA,EAAMS,SAGzC,MArDCV,QAAQC,MAAM,oDAsDlB,CAEM,SAAUU,EAAkBC,GAChC,OAAOA,KAAUnE,CACnB,CAEgB,SAAAoE,EACdT,EACAU,GAEA,IAAIC,EAEJ,OAAIJ,EAAkBP,IAElBW,EADED,EACkB,GAAGrE,EAAoB2D,SAAkB3D,EAAoB2D,KAE7D3D,EAAoB2D,GAEnCW,GAEF,aACT,CAEOxC,eAAeK,EACpBH,SAEA,MAAM9B,OACJA,EAAMyD,WACNA,EAAUY,WACVA,EAAUC,qBACVA,EAAoBvC,QACpBA,EAAOwC,WACPA,EAAUC,QACVA,EAAOC,QACPA,EAAOC,QACPA,EAAOC,QACPA,EAAOC,YACPA,EAAWC,YACXA,EAAWC,cACXA,EAAaC,OACbA,EAAMC,QACNA,EAAOC,KACPA,EAAO,SAAQC,cACfA,EAAaC,KACbA,GAAO,EAAKC,WACZA,GAAa,EAAK5B,SAClBA,EAAQ6B,SACRA,EAAQC,QACRA,EAAOC,OACPA,EAAMC,WACNA,GACE1D,EAEC9B,GACHqD,QAAQoC,KAAK,iDAGVhC,GACHJ,QAAQoC,KAAK,mDAGf,MAAM5E,QAAsB2E,EAAWxF,GACvCY,EAAwBC,GAExB,MAAM6E,EAA0B,CAAC,KAAM,QAAS,QAAS,SAASzF,SAChED,GAGI2F,EAAeC,OAAOC,YAAc,IACpCzD,EAAgC,CACpCqB,WAAYA,IAAwB,SAATwB,EAAkB,MAAQ,SACrDA,KAAe,SAATA,EAAkB,SAAWA,EACnCZ,WAAqB,SAATY,GAAyBZ,EACrCe,WAAqB,SAATH,GAAyBG,EACrCb,WAAYA,IAAc,EAC1Bb,YAAY,EACZoC,UACkC,kBAAzBxB,EACHA,GACCoB,EACPK,aAAa,EACbC,eAAQC,EAAAnE,EAAQkE,uBAChBb,OACAe,WAAqB,UAATjB,GAAoBU,EAAe,EAAI,EACnDQ,kBAAmB,SACnBnG,OAAQa,EACRqE,cAAeA,QAAAA,IAA4B,aAATD,GAAuBZ,GACzDgB,SAAU,CAACe,EAAeC,EAASC,KAC7BjB,GACFA,EAASe,EAAeC,EAASC,EAClC,EAEHhB,QAAS,CAACc,EAAeC,EAASC,KAChC,GAAa,UAATrB,EAAkB,CACpB,MAAMsB,EACJD,EAASE,kBAAkBhE,cAAc,mBACd,IAAzB4D,EAAcK,SAChBF,SAAAA,EAAeG,UAAUC,IAAI,uBAC7BJ,SAAAA,EAAeG,UAAUE,OAAO,aAAc,YAEjD,CACGtB,GACFA,EAAQc,EAAeC,EAASC,EACjC,EAEHf,OAAQ,CAACa,EAAeC,EAASC,KAC3Bf,GACFA,EAAOa,EAAeC,EAASC,EAChC,GAoCL,MAhCa,UAATrB,IACF7C,EAAQyE,QAAU,CAACC,EAAGC,EAAIT,KACxB,MAAMC,EACJD,EAASE,kBAAkBhE,cAAc,mBAC3C+D,SAAAA,EAAeG,UAAUC,IAAI,sBAAsB,GAIjD5E,aAAmBO,mBACvBF,EAAQyB,gBAAkB9B,GAGxByC,IAASpC,EAAQoC,QAAUA,GAC3BC,IAASrC,EAAQqC,QAAUA,GAC3BC,IAAStC,EAAQsC,QAAUA,GAC3BC,IAASvC,EAAQuC,QAAUA,GAC3BC,MAEAoC,MAAMC,QAAQrC,IACJ,UAATK,GAA6B,aAATA,IAGX+B,MAAMC,QAAQrC,KADxBxC,EAAQwC,YAAcA,SAKNsC,IAAhBrC,IAA2BzC,EAAQyC,YAAcA,QAC/BqC,IAAlBpC,IAA6B1C,EAAQ0C,cAAgBA,GACrDC,GAAUA,EAAO0B,OAAS,IAAGrE,EAAQ2C,OAASA,GAC9CC,GAAWA,EAAQyB,OAAS,IAAGrE,EAAQ4C,QAAUA,GACjDxB,IAAUpB,EAAQoB,SAAWA,GAE1BpB,CACT,CAEM,SAAU+E,EAAiB1D,GAC/B,OAAOA,EAAWxD,SAAS,OAASwD,EAAWxD,SAAS,KAC1D,CAEgB,SAAAiC,EACdoE,EACAc,GAEA,GAAId,GAAYA,EAASE,kBAAmB,CAC1CF,EAASE,kBAAkBa,aAAa,OAAQ,eAChDf,EAASE,kBAAkBa,aAAa,aAAc,YAEtDf,EAASE,kBAAkBE,UAAUE,OACnC,kBACA,kBAGFN,EAASE,kBAAkBE,UAAUE,OACnC,kBACA,kBAGF,MAAMU,EAAiBF,EACnB,kBACA,oBACJd,EAASE,kBAAkBE,UAAUC,IAAIW,GAGzChB,EAASE,kBAAkBE,UAAUE,OACnC,uBACA,yBAEFN,EAASE,kBAAkBE,UAAUC,IACnC,mBAAmBL,EAASiB,OAAOvB,SAEtC,MACC3C,QAAQoC,KAAK,sCAEjB,CAEO7D,eAAe4D,EAAWxF,GAC/B,GAAe,OAAXA,EAAiB,OAAOwH,EAC5B,IAAKzH,EAAkBC,GAErB,OADAqD,QAAQoC,KAAK,uBAAuBzF,+BAC7BwH,EAGT,IACE,MAAMC,QAAeC,OAAO,uBAAuB1H,QAC7C2H,EACJF,EAAOzH,IAAWyH,EAAOG,QAAQ5H,IAAWyH,EAAOG,QACrD,OAAKD,IACHtE,QAAQoC,KACN,sCAAsCzF,+BAEjCwH,EAGV,CAAC,MAAOlE,GAQP,OAPAD,QAAQC,MACN,yBAAyBtD,8BACzBsD,GAEEA,aAAiBQ,OACnBT,QAAQC,MAAM,iBAAkBA,EAAMS,SAEjCyD,CACR,CACH,UAEgBK,IACdvG,SAASwG,iBAAiB,oBAAoBC,SAASC,IACrD,MAAMC,EAAYD,EAAQxF,cACxB,sBAGI0F,EAAe5G,SAASkB,cAC5B,2CAIAyF,GACAA,EAAUE,KACVF,EAAUG,KACVH,EAAUE,MAAQF,EAAUG,MAE3BJ,EAAwBtF,MAAMC,QAAU,OAErCuF,IACFA,EAAaxF,MAAM2F,WAAa,QAEnC,GAEL,CAEgB,SAAAC,EACdvG,EACAwG,EACAC,EACAC,EACAC,EACAC,GAEA,IAAK5G,EAEH,OADAsB,QAAQoC,KAAK,iCACN,CAAEmD,SAAS,EAAMC,kBAAmB,IAG7C,MAAMC,GAAW/G,EAAQgH,MAAMC,OACzBC,EAAaV,EAEnB,IAAIW,EAAWnH,EAAQmH,SACnBL,EAAoB9G,EAAQ8G,kBAE5BI,GAAcH,IAChBI,EAAW,IAAKA,EAAUC,cAAc,GACxCN,EAAoBJ,GAGlBD,IACFU,EAAW,IAAKA,EAAUE,aAAa,GACvCP,EAAoBL,GAGtBG,EAAUU,YAAYH,EAAUL,EAAmB9G,GAKnD,MAAO,CAAE6G,SAFNJ,KAAiBE,IAAkBI,GAAYA,IAAYG,GAE5CJ,oBACpB,UAEgBS,EACdC,EACAC,EACAC,GAEAF,EAAQG,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 return langsArray.includes(locale 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 isEnglishOr12HourLocale = ['en', 'en-US', 'en-GB', 'es-MX'].includes(\n locale\n );\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\nexport async function loadLocale(locale: string): Promise<Partial<Locale>> {\n if (locale === 'en') return English;\n\n if (!isSupportedLocale(locale)) {\n console.warn(`Unsupported locale \"${locale}\". Falling back to English.`);\n return English;\n }\n\n try {\n const module = await import(`flatpickr/dist/l10n/${locale}.js`);\n const localeConfig =\n module[locale] ?? module.default?.[locale] ?? module.default;\n\n if (!localeConfig) {\n console.warn(\n `Locale configuration not found for \"${locale}\". Falling back to English.`\n );\n return English;\n }\n\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","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","split","Number","isNaN","Date","UTC","date","parseDate","updateEnableTime","modalDetected","requestAnimationFrame","config","setAttribute","containerClass","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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"}
|
|
@@ -191,10 +191,10 @@ $calendar-box-shadow: 0px 4px 12px 0px rgba(0, 0, 0, 0.08),
|
|
|
191
191
|
|
|
192
192
|
.flatpickr-calendar.open {
|
|
193
193
|
display: inline-block;
|
|
194
|
-
z-index:
|
|
194
|
+
z-index: 999;
|
|
195
195
|
|
|
196
196
|
&.static {
|
|
197
|
-
z-index:
|
|
197
|
+
z-index: 999;
|
|
198
198
|
display: block;
|
|
199
199
|
}
|
|
200
200
|
}
|
|
@@ -862,14 +862,20 @@ span.flatpickr-weekday {
|
|
|
862
862
|
border-radius: 50px;
|
|
863
863
|
}
|
|
864
864
|
|
|
865
|
+
.flatpickr-day.prevMonthDay,
|
|
866
|
+
.flatpickr-day.nextMonthDay {
|
|
867
|
+
color: var(--kd-color-date-and-time-picker-text-secondary);
|
|
868
|
+
background: transparent;
|
|
869
|
+
border-color: transparent;
|
|
870
|
+
cursor: default;
|
|
871
|
+
}
|
|
872
|
+
|
|
865
873
|
.flatpickr-day.flatpickr-disabled,
|
|
866
874
|
.flatpickr-day.flatpickr-disabled:hover,
|
|
867
|
-
.flatpickr-day.prevMonthDay,
|
|
868
|
-
.flatpickr-day.nextMonthDay,
|
|
869
875
|
.flatpickr-day.notAllowed,
|
|
870
876
|
.flatpickr-day.notAllowed.prevMonthDay,
|
|
871
877
|
.flatpickr-day.notAllowed.nextMonthDay {
|
|
872
|
-
color: var(--kd-color-
|
|
878
|
+
color: var(--kd-color-text-level-disabled);
|
|
873
879
|
background: transparent;
|
|
874
880
|
border-color: transparent;
|
|
875
881
|
cursor: default;
|
|
@@ -878,7 +884,6 @@ span.flatpickr-weekday {
|
|
|
878
884
|
.flatpickr-day.flatpickr-disabled,
|
|
879
885
|
.flatpickr-day.flatpickr-disabled:hover {
|
|
880
886
|
cursor: not-allowed;
|
|
881
|
-
color: rgba(72, 72, 72, 0.1);
|
|
882
887
|
}
|
|
883
888
|
|
|
884
889
|
.flatpickr-day.week.selected {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LitElement, PropertyValues } from 'lit';
|
|
2
|
-
import { langsArray } from '../../../common/
|
|
2
|
+
import { langsArray } from '../../../common/flatpickrLangs';
|
|
3
3
|
import '../../reusable/button';
|
|
4
4
|
import { BaseOptions } from 'flatpickr/dist/types/options';
|
|
5
5
|
type SupportedLocale = (typeof langsArray)[number];
|
|
@@ -13,7 +13,7 @@ export declare class DatePicker extends DatePicker_base {
|
|
|
13
13
|
static styles: any[];
|
|
14
14
|
/** Label text. */
|
|
15
15
|
label: string;
|
|
16
|
-
locale: SupportedLocale;
|
|
16
|
+
locale: SupportedLocale | string;
|
|
17
17
|
/** Sets flatpickr value to define how the date will be displayed in the input box (ex: `Y-m-d H:i`). */
|
|
18
18
|
dateFormat: string;
|
|
19
19
|
/** Sets the initial selected date(s). For multiple mode, provide an array of date strings matching dateFormat. */
|
|
@@ -28,8 +28,10 @@ export declare class DatePicker extends DatePicker_base {
|
|
|
28
28
|
value: Date | Date[] | null;
|
|
29
29
|
/** Sets validation warning messaging. */
|
|
30
30
|
warnText: string;
|
|
31
|
-
/** Sets flatpickr options setting to disable specific dates. */
|
|
31
|
+
/** Sets flatpickr options setting to disable specific dates. Accepts array of dates in Y-m-d format, timestamps, or Date objects. */
|
|
32
32
|
disable: (string | number | Date)[];
|
|
33
|
+
/** Internal storage for processed disable dates */
|
|
34
|
+
private _processedDisableDates;
|
|
33
35
|
/** Sets flatpickr options setting to enable specific dates. */
|
|
34
36
|
enable: (string | number | Date)[];
|
|
35
37
|
/** Sets flatpickr mode to select single (default), multiple dates. */
|
|
@@ -74,11 +76,16 @@ export declare class DatePicker extends DatePicker_base {
|
|
|
74
76
|
* @internal
|
|
75
77
|
*/
|
|
76
78
|
private _inputEl?;
|
|
79
|
+
/** Tracks if we're in a clear operation to prevent duplicate events
|
|
80
|
+
* @internal
|
|
81
|
+
*/
|
|
82
|
+
private _isClearing;
|
|
77
83
|
/** Customizable text strings. */
|
|
78
84
|
textStrings: {
|
|
79
85
|
requiredText: string;
|
|
80
86
|
clearAll: string;
|
|
81
87
|
pleaseSelectDate: string;
|
|
88
|
+
noDateSelected: string;
|
|
82
89
|
pleaseSelectValidDate: string;
|
|
83
90
|
};
|
|
84
91
|
/** Internal text strings.
|
|
@@ -88,13 +95,25 @@ export declare class DatePicker extends DatePicker_base {
|
|
|
88
95
|
requiredText: string;
|
|
89
96
|
clearAll: string;
|
|
90
97
|
pleaseSelectDate: string;
|
|
98
|
+
noDateSelected: string;
|
|
91
99
|
pleaseSelectValidDate: string;
|
|
92
100
|
};
|
|
93
101
|
/** Control flag to prevent Flatpickr from opening when clicking caption, error, label, or warning elements.
|
|
94
102
|
* @internal
|
|
95
103
|
*/
|
|
96
104
|
private _shouldFlatpickrOpen;
|
|
105
|
+
/** Track initialization state
|
|
106
|
+
* @internal
|
|
107
|
+
*/
|
|
108
|
+
private _initialized;
|
|
109
|
+
/** Track destroyed state
|
|
110
|
+
* @internal
|
|
111
|
+
*/
|
|
112
|
+
private _isDestroyed;
|
|
113
|
+
private debounce;
|
|
114
|
+
private debouncedUpdate;
|
|
97
115
|
connectedCallback(): void;
|
|
116
|
+
private hasValue;
|
|
98
117
|
render(): import("lit").TemplateResult<1>;
|
|
99
118
|
private renderValidationMessage;
|
|
100
119
|
getDatepickerClasses(): {
|
|
@@ -103,10 +122,8 @@ export declare class DatePicker extends DatePicker_base {
|
|
|
103
122
|
'date-picker__multiple-select': boolean;
|
|
104
123
|
'date-picker__disabled': boolean;
|
|
105
124
|
};
|
|
106
|
-
private _initialized;
|
|
107
125
|
firstUpdated(changedProperties: PropertyValues): Promise<void>;
|
|
108
126
|
updated(changedProperties: PropertyValues): void;
|
|
109
|
-
private reinitializeFlatpickr;
|
|
110
127
|
private setupAnchor;
|
|
111
128
|
private _handleClear;
|
|
112
129
|
initializeFlatpickr(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/datePicker/datepicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAKvD,OAAO,
|
|
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
|
|
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-7b0f5ebf.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 b,getFlatpickrOptions as f,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-3d6e1af1.js";import{j as D,H as F,I as $}from"../../../vendor/@kyndryl-design-system/shidoka-icons-726d44b0.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;
|
|
@@ -491,14 +491,14 @@ input {
|
|
|
491
491
|
}
|
|
492
492
|
.date-picker__disabled .label-text .required {
|
|
493
493
|
color: var(--kd-color-text-level-disabled);
|
|
494
|
-
}`;const I={requiredText:"Required",clearAll:"Clear",pleaseSelectDate:"Please select a date",pleaseSelectValidDate:"Please select a valid date"};let
|
|
494
|
+
}`;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`
|
|
495
495
|
<div class=${e(this.getDatepickerClasses())}>
|
|
496
496
|
<div
|
|
497
497
|
class="label-text"
|
|
498
498
|
@mousedown=${this.preventFlatpickrOpen}
|
|
499
499
|
@click=${this.preventFlatpickrOpen}
|
|
500
500
|
?disabled=${this.datePickerDisabled}
|
|
501
|
-
id=${`label-${
|
|
501
|
+
id=${`label-${l}`}
|
|
502
502
|
>
|
|
503
503
|
${this.required?o`<abbr
|
|
504
504
|
class="required"
|
|
@@ -515,18 +515,18 @@ input {
|
|
|
515
515
|
<input
|
|
516
516
|
class="${e({[`size--${this.size}`]:!0,"input-custom":!0})}"
|
|
517
517
|
type="text"
|
|
518
|
-
id=${
|
|
518
|
+
id=${l}
|
|
519
519
|
name=${this.name}
|
|
520
|
-
placeholder=${
|
|
520
|
+
placeholder=${d}
|
|
521
521
|
?disabled=${this.datePickerDisabled}
|
|
522
522
|
?required=${this.required}
|
|
523
523
|
?invalid=${this._isInvalid}
|
|
524
524
|
aria-invalid=${this._isInvalid?"true":"false"}
|
|
525
|
-
aria-labelledby=${`label-${
|
|
525
|
+
aria-labelledby=${`label-${l}`}
|
|
526
526
|
@click=${this.handleInputClickEvent}
|
|
527
527
|
@focus=${this.handleInputFocusEvent}
|
|
528
528
|
/>
|
|
529
|
-
${
|
|
529
|
+
${this.hasValue()?o`
|
|
530
530
|
<kyn-button
|
|
531
531
|
?disabled=${this.datePickerDisabled}
|
|
532
532
|
class="clear-button"
|
|
@@ -536,14 +536,14 @@ input {
|
|
|
536
536
|
@click=${this._handleClear}
|
|
537
537
|
>
|
|
538
538
|
<span style="display:flex;" slot="icon"
|
|
539
|
-
>${p(
|
|
539
|
+
>${p(D)}</span
|
|
540
540
|
>
|
|
541
541
|
</kyn-button>
|
|
542
|
-
`:o`<span class="input-icon">${p(
|
|
542
|
+
`:o`<span class="input-icon">${p(F)}</span>`}
|
|
543
543
|
</div>
|
|
544
544
|
|
|
545
545
|
${this.caption?o`<div
|
|
546
|
-
id=${
|
|
546
|
+
id=${s}
|
|
547
547
|
class="caption"
|
|
548
548
|
aria-disabled=${this.datePickerDisabled}
|
|
549
549
|
@mousedown=${this.preventFlatpickrOpen}
|
|
@@ -551,7 +551,7 @@ input {
|
|
|
551
551
|
>
|
|
552
552
|
${this.caption}
|
|
553
553
|
</div>`:""}
|
|
554
|
-
${this.renderValidationMessage(
|
|
554
|
+
${this.renderValidationMessage(r,n)}
|
|
555
555
|
</div>
|
|
556
556
|
`}renderValidationMessage(t,e){return this.invalidText||this._isInvalid&&this._hasInteracted?o`<div
|
|
557
557
|
id=${t}
|
|
@@ -565,7 +565,7 @@ input {
|
|
|
565
565
|
class="error-icon"
|
|
566
566
|
aria-label=${`${this.errorAriaLabel}`||"Error message icon"}
|
|
567
567
|
role="button"
|
|
568
|
-
>${p(
|
|
568
|
+
>${p($)}</span
|
|
569
569
|
>${this.invalidText||this._internalValidationMsg||this.defaultErrorMessage}
|
|
570
570
|
</div>`:this.warnText?o`<div
|
|
571
571
|
id=${e}
|
|
@@ -577,5 +577,5 @@ input {
|
|
|
577
577
|
@click=${this.preventFlatpickrOpen}
|
|
578
578
|
>
|
|
579
579
|
${this.warnText}
|
|
580
|
-
</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(
|
|
580
|
+
</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){const t=this.value;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){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="",this._inputEl.setAttribute("aria-label",this._textStrings.noDateSelected)),m(this,"on-change",{dates:null,dateString:"",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");b(),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 f({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};
|
|
581
581
|
//# sourceMappingURL=datepicker.js.map
|