@kyndryl-design-system/shidoka-applications 2.31.3 → 2.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/common/helpers/flatpickr.d.ts +22 -0
  2. package/common/helpers/flatpickr.d.ts.map +1 -1
  3. package/common/helpers/flatpickr.js +1 -1
  4. package/common/helpers/flatpickr.js.map +1 -1
  5. package/common/scss/shidoka-flatpickr-theme.scss +19 -6
  6. package/components/reusable/button/button.js +2 -3
  7. package/components/reusable/button/button.js.map +1 -1
  8. package/components/reusable/checkbox/checkbox.d.ts +4 -0
  9. package/components/reusable/checkbox/checkbox.d.ts.map +1 -1
  10. package/components/reusable/checkbox/checkbox.js +34 -33
  11. package/components/reusable/checkbox/checkbox.js.map +1 -1
  12. package/components/reusable/datePicker/datepicker.d.ts +15 -4
  13. package/components/reusable/datePicker/datepicker.d.ts.map +1 -1
  14. package/components/reusable/datePicker/datepicker.js +11 -7
  15. package/components/reusable/datePicker/datepicker.js.map +1 -1
  16. package/components/reusable/datePicker/index.js +1 -1
  17. package/components/reusable/daterangepicker/daterangepicker.d.ts +21 -0
  18. package/components/reusable/daterangepicker/daterangepicker.d.ts.map +1 -1
  19. package/components/reusable/daterangepicker/daterangepicker.js +14 -7
  20. package/components/reusable/daterangepicker/daterangepicker.js.map +1 -1
  21. package/components/reusable/daterangepicker/index.js +1 -1
  22. package/components/reusable/dropdown/dropdown.d.ts +27 -0
  23. package/components/reusable/dropdown/dropdown.d.ts.map +1 -1
  24. package/components/reusable/dropdown/dropdown.js +64 -32
  25. package/components/reusable/dropdown/dropdown.js.map +1 -1
  26. package/components/reusable/dropdown/dropdownOption.d.ts +10 -0
  27. package/components/reusable/dropdown/dropdownOption.d.ts.map +1 -1
  28. package/components/reusable/dropdown/dropdownOption.js +56 -28
  29. package/components/reusable/dropdown/dropdownOption.js.map +1 -1
  30. package/components/reusable/pagination/Pagination.js +1 -1
  31. package/components/reusable/pagination/Pagination.js.map +1 -1
  32. package/components/reusable/timepicker/index.js +1 -1
  33. package/components/reusable/timepicker/timepicker.d.ts +10 -0
  34. package/components/reusable/timepicker/timepicker.d.ts.map +1 -1
  35. package/components/reusable/timepicker/timepicker.js +6 -7
  36. package/components/reusable/timepicker/timepicker.js.map +1 -1
  37. package/index.js +1 -1
  38. package/package.json +1 -1
  39. package/{shidoka-flatpickr-theme-469e3123.js → shidoka-flatpickr-theme-2851f9e1.js} +16 -6
  40. package/{shidoka-flatpickr-theme-469e3123.js.map → shidoka-flatpickr-theme-2851f9e1.js.map} +1 -1
@@ -1,6 +1,16 @@
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 _defaultCalendarTooltipStrings: {
5
+ lockedStartDate: string;
6
+ lockedEndDate: string;
7
+ dateLocked: string;
8
+ dateNotAvailable: string;
9
+ dateInSelectedRange: string;
10
+ };
11
+ export type FlatpickrTextStrings = Partial<typeof _defaultCalendarTooltipStrings>;
12
+ export declare function setTooltipStrings(customTextStrings?: FlatpickrTextStrings): void;
13
+ export declare function getTextStrings(customTextStrings?: FlatpickrTextStrings): typeof _defaultCalendarTooltipStrings;
4
14
  interface BaseFlatpickrContext {
5
15
  getFlatpickrOptions: () => Promise<Partial<BaseOptions>>;
6
16
  setCalendarAttributes: (instance: Instance) => void;
@@ -79,5 +89,17 @@ export declare function validate(inputEl: HTMLInputElement, required: boolean, i
79
89
  validationMessage: string;
80
90
  };
81
91
  export declare function emitValue(element: HTMLElement, eventName: string, detail: any): void;
92
+ export declare function clearFlatpickrInput(flatpickrInstance: Instance | undefined, inputEl: HTMLInputElement | undefined, updateCallback?: () => void): Promise<void>;
93
+ export declare enum DateRangeEditableMode {
94
+ BOTH = "both",
95
+ START = "start",
96
+ END = "end",
97
+ NONE = "none"
98
+ }
99
+ export declare function createDateRangeDayLockHandler(editableMode: DateRangeEditableMode, currentValue: [Date | null, Date | null]): (dObj: Date, dStr: string, fp: Instance, dayElem: HTMLElement & {
100
+ dateObj: Date;
101
+ }) => void;
102
+ export declare function createDateRangeChangeLockHandler(editableMode: DateRangeEditableMode, currentValue: [Date | null, Date | null], originalOnChange: Hook | Hook[]): (selectedDates: Date[], dateStr: string, instance: Instance) => void;
103
+ export declare function applyDateRangeEditingRestrictions(options: Partial<BaseOptions>, editableMode: DateRangeEditableMode, currentValue: [Date | null, Date | null], tooltipStrings?: FlatpickrTextStrings): Partial<BaseOptions>;
82
104
  export {};
83
105
  //# sourceMappingURL=flatpickr.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"flatpickr.d.ts","sourceRoot":"","sources":["../../../src/common/helpers/flatpickr.ts"],"names":[],"mappings":"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"}
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";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(!e)return t?"yyyy-mm-dd to yyyy-mm-dd":"yyyy-mm-dd";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};
1
+ import{r as t,f as e,E as n}from"../../vendor/flatpickr-bbd13d61.js";import{langsArray as a}from"../flatpickrLangs.js";let i=!1;const l={lockedStartDate:"Start date is locked",lockedEndDate:"End date is locked",dateLocked:"Date is locked",dateNotAvailable:"Date is not available",dateInSelectedRange:"Date is in selected range"};let r={...l};function o(t={}){r={...l,...t}}function s(t={}){return{...r,...t}}const c={"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 d(t){const e=t.split("-")[0].toLowerCase();return a.includes(e)}function u(t,e){t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),e(!1)}function m(t){t(!0)}function p(t,e,n){t||(e(),n(!0))}function f(t){t.weekdays&&t.weekdays.shorthand&&(t.weekdays.shorthand=t.weekdays.shorthand.map((t=>t.charAt(0))))}function y(t){if(!i){const e=document.createElement("style");e.id="flatpickr-custom-styles",e.textContent=t,document.head.appendChild(e),i=!0}}async function g(n){const{inputEl:a,endinputEl:i,getFlatpickrOptions:l,setCalendarAttributes:r,setInitialDates:o}=n;if(a)try{const n=await l(),s=t=>{if(t instanceof HTMLInputElement)return t;try{let e=t.querySelector("input");if(!e){if(e=document.createElement("input"),e.type="text",e.style.display="none",!t.isConnected)throw new Error("Element is not connected to the DOM");t.appendChild(e)}return e}catch(t){throw console.error("Error creating or appending input element:",t),t}},c=s(a);if(i){const e=s(i);n.plugins=[...n.plugins||[],t({input:e})]}const d=e(c,n);return d?(setTimeout((()=>{r&&r(d)}),0),o&&o(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(t){return void console.error("Error initializing Flatpickr:",t)}else console.error("Cannot initialize Flatpickr: inputEl is undefined")}async function k(t){const{inputEl:n,getFlatpickrOptions:a,setCalendarAttributes:i,setInitialDates:l,appendTo:r}=t;if(n)try{const t=await a(),o=t.dateFormat||("time"===t.mode?"H:i":"Y-m-d");let s;if(t.dateFormat=o,n instanceof HTMLInputElement)s=n,t.clickOpens=!0;else try{s=document.createElement("input"),s.type="text",s.style.display="none";const e=r||n;if(!e)throw new Error("No valid element to append input to");e.appendChild(s),t.clickOpens=!1,t.positionElement=n}catch(t){throw console.error("Error creating input element:",t),t}const c=e(s,t);return c?(setTimeout((()=>{i&&i(c)}),0),l&&l(c),n instanceof HTMLInputElement||n.addEventListener("click",(()=>c.open())),c):void console.error("Failed to initialize Flatpickr")}catch(t){return console.error("Error initializing Flatpickr:",t),void(t instanceof Error&&console.error("Error details:",t.message))}else console.error("Cannot initialize Flatpickr: inputEl is undefined")}function b(t){return t in c}function h(t,e){if(!t)return e?"yyyy-mm-dd to yyyy-mm-dd":"yyyy-mm-dd";if(b(t)){return e?`${c[t]} to ${c[t]}`:c[t]}return"Select date"}function E(t){return["kyn-modal","kyn-side-drawer"].map((e=>t.closest(e))).find((t=>null!==t))||document.body}async function T(t){var a;if(!t)return console.error("Context is required for getFlatpickrOptions"),{};const{locale:i,dateFormat:l,enableTime:r,twentyFourHourFormat:o,inputEl:s,allowInput:c,minDate:d,maxDate:u,minTime:m,maxTime:p,defaultDate:y,defaultHour:g,defaultMinute:k,enable:b,disable:h,mode:E="single",closeOnSelect:T,wrap:w=!1,noCalendar:v=!1,appendTo:A,onChange:L,onClose:N,onOpen:D,loadLocale:C}=t;let F;i||console.warn("Locale not provided. Falling back to default."),l||console.warn("Date format not provided. Using default format.");try{F=await C(i),f(F)}catch(t){console.warn("Error loading locale, falling back to default:",t),F=n}const S=i.split("-")[0].toLowerCase(),H=["en","es"].includes(S),O=window.innerWidth>=767,Y=l||("time"===E?o?"H:i":"h:i K":"Y-m-d"),I={dateFormat:Y,mode:"time"===E?"single":E,enableTime:"time"===E||r,noCalendar:"time"===E||v,defaultDate:y,enableSeconds:!1,allowInput:c||!1,clickOpens:!0,time_24hr:"boolean"==typeof o?o:!H,weekNumbers:!1,static:null!==(a=t.static)&&void 0!==a&&a,wrap:w,showMonths:"range"===E&&O?2:1,monthSelectorType:"static",locale:F,closeOnSelect:null!=T?T:!("multiple"===E||r),onChange:(t,e,n)=>{L&&L(t,e,n)},onClose:(t,e,n)=>{if("range"===E&&n.calendarContainer){const e=n.calendarContainer.querySelector(".flatpickr-time");0===t.length&&(null==e||e.classList.add("default-time-select"),null==e||e.classList.remove("start-date","end-date"))}N&&N(t,e,n)},onOpen:(t,e,n)=>{D&&D(t,e,n)}};if("range"===E&&(I.onReady=(t,e,n)=>{if(n.calendarContainer){const t=n.calendarContainer.querySelector(".flatpickr-time");null==t||t.classList.add("default-time-select")}}),s instanceof HTMLInputElement||(I.positionElement=s),d&&(I.minDate=d),u&&(I.maxDate=u),m&&(I.minTime=m),p&&(I.maxTime=p),y)if(!Array.isArray(y)||"range"!==E&&"multiple"!==E){if(!Array.isArray(y)&&"string"==typeof y){let t=null;switch(Y){case"Y-m-d":{const[e,n,a]=y.split("-").map(Number);t=isNaN(e)||isNaN(n)||isNaN(a)?null:new Date(e,n-1,a,12);break}case"d-m-Y":{const[e,n,a]=y.split("-").map(Number);t=isNaN(e)||isNaN(n)||isNaN(a)?null:new Date(a,n-1,e,12);break}case"m-d-Y":{const[e,n,a]=y.split("-").map(Number);t=isNaN(e)||isNaN(n)||isNaN(a)?null:new Date(a,e-1,n,12);break}default:t=new Date(y)}I.defaultDate=t||y}}else I.defaultDate=y;return null!=g&&(I.defaultHour=g),null!=k&&(I.defaultMinute=k),b&&b.length>0&&(I.enable=b),h&&h.length>0&&(I.disable=h.map((t=>{if(t instanceof Date)return t;if("number"==typeof t)return new Date(t);if("string"==typeof t){return e.parseDate(t,Y)||t}return t}))),A&&(I.appendTo=A),I}function w(t){return t.includes("H:")||t.includes("h:")}function v(t,e){(null==t?void 0:t.calendarContainer)?requestAnimationFrame((()=>{try{const{calendarContainer:n,config:a}=t;n.setAttribute("role","application"),n.setAttribute("aria-label","Calendar"),n.classList.remove("container-modal","container-body");const i=e?"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}`));n.querySelectorAll(".flatpickr-day").forEach((t=>{t.hasAttribute("role")||t.setAttribute("role","button"),t.hasAttribute("aria-label")&&!t.hasAttribute("role")&&t.setAttribute("role","button")}))}catch(t){console.warn("Error setting calendar attributes:",t)}})):console.warn("Calendar container not available...")}const A={};async function L(t){var e,a,i;if("en"===t)return n;if(A[t])return A[t];if(!d(t))return console.warn(`Unsupported locale "${t}". Falling back to English.`),n;try{const l=t.split("-")[0].toLowerCase(),r=await import(`flatpickr/dist/l10n/${l}.js`),o=null!==(i=null!==(e=r[l])&&void 0!==e?e:null===(a=r.default)||void 0===a?void 0:a[l])&&void 0!==i?i:r.default;return o?(A[t]=o,o):(console.warn(`Locale configuration not found for "${t}". Falling back to English.`),n)}catch(e){return console.error(`Failed to load locale "${t}". Falling back to English.`,e),n}}function N(){const t=document.querySelector(".flatpickr-current-month span.cur-month");document.querySelectorAll(".numInputWrapper").forEach((e=>{const n=e.querySelector(".numInput.cur-year");n&&n.min&&n.max&&n.min===n.max&&(e.style.display="none",t&&(t.style.marginLeft="auto"))}))}function D(t,e,n,a,i,l){if(!t)return console.warn("Input element is undefined..."),{isValid:!0,validationMessage:""};const r=!t.value.trim(),o=e;let s=t.validity,c=t.validationMessage;o&&r&&(s={...s,valueMissing:!0},c=a),n&&(s={...s,customError:!0},c=n),l.setValidity(s,c,t);return{isValid:!n&&(!i||!r||r&&!o),validationMessage:c}}function C(t,e,n){t.dispatchEvent(new CustomEvent(e,{detail:n,bubbles:!0,composed:!0}))}async function F(t,e,n){t&&t.clear(),e&&(e.value=""),n&&await n()}var S;function H(t,e){return(n,a,i,l)=>{const r=l.dateObj;t===S.END&&null!==e[0]?r.getTime()<=e[0].getTime()&&(r.getTime()===e[0].getTime()?(l.classList.add("flatpickr-locked-date"),l.setAttribute("title",s().dateNotAvailable),l.setAttribute("locked","start"),l.setAttribute("aria-disabled","true")):(l.classList.add("flatpickr-locked-date","flatpickr-disabled"),l.setAttribute("title",s().lockedStartDate))):t===S.START&&null!==e[1]?r.getTime()>=e[1].getTime()&&(r.getTime()===e[1].getTime()?(l.classList.add("flatpickr-locked-date"),l.setAttribute("title",s().lockedEndDate),l.setAttribute("locked","end"),l.setAttribute("aria-disabled","true")):(l.classList.add("flatpickr-locked-date","flatpickr-disabled"),l.setAttribute("title",s().dateNotAvailable))):t===S.NONE&&null!==e[0]&&null!==e[1]&&(r.getTime()===e[0].getTime()?(l.classList.add("flatpickr-locked-date"),l.setAttribute("title",s().dateLocked),l.setAttribute("locked","start"),l.setAttribute("aria-disabled","true")):r.getTime()===e[1].getTime()?(l.classList.add("flatpickr-locked-date"),l.setAttribute("title",s().dateLocked),l.setAttribute("locked","end"),l.setAttribute("aria-disabled","true")):r.getTime()>e[0].getTime()&&r.getTime()<e[1].getTime()?(l.classList.add("flatpickr-locked-date"),l.setAttribute("title",s().dateInSelectedRange)):(l.classList.add("flatpickr-locked-date","flatpickr-disabled"),l.setAttribute("title",s().dateNotAvailable))),l.classList.contains("flatpickr-disabled")&&!l.classList.contains("flatpickr-locked-date")&&l.classList.add("flatpickr-locked-date")}}function O(t,e,n){return(a,i,l)=>{let r=null,o=null;if(t===S.END&&null!==e[0]&&(r=e[0]),t===S.START&&null!==e[1]&&(o=e[1]),t!==S.NONE||null===e[0]||null===e[1])if(null!==e[0]||null!==e[1]){if(t===S.END&&null!==r){let t=!1;const e=[...a];if(2===a.length&&a[0].getTime()!==r.getTime()?(e[0]=r,t=!0):1===a.length&&(e.splice(0,0,r),t=!0),t)return l.setDate(e,!1),void Y(n,e,l.input.value,l)}if(t===S.START&&null!==o){let t=!1;const e=[...a];if(2===a.length&&a[1].getTime()!==o.getTime()?(e[1]=o,t=!0):1===a.length&&(e.push(o),t=!0),t)return l.setDate(e,!1),void Y(n,e,l.input.value,l)}Y(n,a,i,l)}else Y(n,a,i,l);else l.setDate([e[0],e[1]],!1)}}function Y(t,e,n,a){try{"function"==typeof t?t(e,n,a):Array.isArray(t)&&t.forEach((t=>{if("function"==typeof t)try{t(e,n,a)}catch(t){console.warn("Error in onChange hook:",t)}}))}catch(t){console.warn("Error calling original onChange handler:",t)}}function I(t,e,n,a){a&&o(a);const i={...t};if(e===S.BOTH)return i;const l=i.onChange;i.clickOpens=!0;try{i.onDayCreate=H(e,n),i.onChange=O(e,n,l||(()=>{}))}catch(t){console.warn("Error setting up date range editing restrictions:",t)}return i}!function(t){t.BOTH="both",t.START="start",t.END="end",t.NONE="none"}(S||(S={}));export{S as DateRangeEditableMode,l as _defaultCalendarTooltipStrings,I as applyDateRangeEditingRestrictions,F as clearFlatpickrInput,O as createDateRangeChangeLockHandler,H as createDateRangeDayLockHandler,C as emitValue,T as getFlatpickrOptions,E as getModalContainer,h as getPlaceholder,s as getTextStrings,m as handleInputClick,p as handleInputFocus,N as hideEmptyYear,g as initializeMultiAnchorFlatpickr,k as initializeSingleAnchorFlatpickr,y as injectFlatpickrStyles,d as isSupportedLocale,b as isValidDateFormat,L as loadLocale,f as modifyWeekdayShorthands,u as preventFlatpickrOpen,v as setCalendarAttributes,o as setTooltipStrings,w as updateEnableTime,D 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 (!dateFormat) {\n return isDateRange ? 'yyyy-mm-dd to yyyy-mm-dd' : 'yyyy-mm-dd';\n }\n\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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"}
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\nexport const _defaultCalendarTooltipStrings = {\n lockedStartDate: 'Start date is locked',\n lockedEndDate: 'End date is locked',\n dateLocked: 'Date is locked',\n dateNotAvailable: 'Date is not available',\n dateInSelectedRange: 'Date is in selected range',\n};\n\nexport type FlatpickrTextStrings = Partial<\n typeof _defaultCalendarTooltipStrings\n>;\n\nlet currentTooltipStrings = { ..._defaultCalendarTooltipStrings };\n\nexport function setTooltipStrings(\n customTextStrings: FlatpickrTextStrings = {}\n): void {\n currentTooltipStrings = {\n ..._defaultCalendarTooltipStrings,\n ...customTextStrings,\n };\n}\n\nexport function getTextStrings(\n customTextStrings: FlatpickrTextStrings = {}\n): typeof _defaultCalendarTooltipStrings {\n return { ...currentTooltipStrings, ...customTextStrings };\n}\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 (!dateFormat) {\n return isDateRange ? 'yyyy-mm-dd to yyyy-mm-dd' : 'yyyy-mm-dd';\n }\n\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\n const dayElements =\n calendarContainer.querySelectorAll('.flatpickr-day');\n dayElements.forEach((dayElem) => {\n if (!dayElem.hasAttribute('role')) {\n dayElem.setAttribute('role', 'button');\n }\n\n if (\n dayElem.hasAttribute('aria-label') &&\n !dayElem.hasAttribute('role')\n ) {\n dayElem.setAttribute('role', 'button');\n }\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\nexport async function clearFlatpickrInput(\n flatpickrInstance: Instance | undefined,\n inputEl: HTMLInputElement | undefined,\n updateCallback?: () => void\n): Promise<void> {\n if (flatpickrInstance) {\n flatpickrInstance.clear();\n }\n\n if (inputEl) {\n inputEl.value = '';\n }\n\n if (updateCallback) {\n await updateCallback();\n }\n}\n\nexport enum DateRangeEditableMode {\n BOTH = 'both',\n START = 'start',\n END = 'end',\n NONE = 'none',\n}\n\nexport function createDateRangeDayLockHandler(\n editableMode: DateRangeEditableMode,\n currentValue: [Date | null, Date | null]\n): (\n dObj: Date,\n dStr: string,\n fp: Instance,\n dayElem: HTMLElement & { dateObj: Date }\n) => void {\n return (_dObj, _dStr, _fp, dayElem: HTMLElement & { dateObj: Date }) => {\n const currentDate = dayElem.dateObj;\n\n if (\n editableMode === DateRangeEditableMode.END &&\n currentValue[0] !== null\n ) {\n if (currentDate.getTime() <= currentValue[0].getTime()) {\n if (currentDate.getTime() === currentValue[0].getTime()) {\n dayElem.classList.add('flatpickr-locked-date');\n dayElem.setAttribute('title', getTextStrings().dateNotAvailable);\n dayElem.setAttribute('locked', 'start');\n dayElem.setAttribute('aria-disabled', 'true');\n } else {\n dayElem.classList.add('flatpickr-locked-date', 'flatpickr-disabled');\n dayElem.setAttribute('title', getTextStrings().lockedStartDate);\n }\n }\n } else if (\n editableMode === DateRangeEditableMode.START &&\n currentValue[1] !== null\n ) {\n if (currentDate.getTime() >= currentValue[1].getTime()) {\n if (currentDate.getTime() === currentValue[1].getTime()) {\n dayElem.classList.add('flatpickr-locked-date');\n dayElem.setAttribute('title', getTextStrings().lockedEndDate);\n dayElem.setAttribute('locked', 'end');\n dayElem.setAttribute('aria-disabled', 'true');\n } else {\n dayElem.classList.add('flatpickr-locked-date', 'flatpickr-disabled');\n dayElem.setAttribute('title', getTextStrings().dateNotAvailable);\n }\n }\n } else if (\n editableMode === DateRangeEditableMode.NONE &&\n currentValue[0] !== null &&\n currentValue[1] !== null\n ) {\n if (currentDate.getTime() === currentValue[0].getTime()) {\n dayElem.classList.add('flatpickr-locked-date');\n dayElem.setAttribute('title', getTextStrings().dateLocked);\n dayElem.setAttribute('locked', 'start');\n dayElem.setAttribute('aria-disabled', 'true');\n } else if (currentDate.getTime() === currentValue[1].getTime()) {\n dayElem.classList.add('flatpickr-locked-date');\n dayElem.setAttribute('title', getTextStrings().dateLocked);\n dayElem.setAttribute('locked', 'end');\n dayElem.setAttribute('aria-disabled', 'true');\n } else if (\n currentDate.getTime() > currentValue[0].getTime() &&\n currentDate.getTime() < currentValue[1].getTime()\n ) {\n dayElem.classList.add('flatpickr-locked-date');\n dayElem.setAttribute('title', getTextStrings().dateInSelectedRange);\n } else {\n dayElem.classList.add('flatpickr-locked-date', 'flatpickr-disabled');\n dayElem.setAttribute('title', getTextStrings().dateNotAvailable);\n }\n }\n\n if (\n dayElem.classList.contains('flatpickr-disabled') &&\n !dayElem.classList.contains('flatpickr-locked-date')\n ) {\n dayElem.classList.add('flatpickr-locked-date');\n }\n };\n}\n\nexport function createDateRangeChangeLockHandler(\n editableMode: DateRangeEditableMode,\n currentValue: [Date | null, Date | null],\n originalOnChange: Hook | Hook[]\n): (selectedDates: Date[], dateStr: string, instance: Instance) => void {\n return (selectedDates, dateStr, instance) => {\n let lockedStartDate: Date | null = null;\n let lockedEndDate: Date | null = null;\n\n if (\n editableMode === DateRangeEditableMode.END &&\n currentValue[0] !== null\n ) {\n lockedStartDate = currentValue[0];\n }\n if (\n editableMode === DateRangeEditableMode.START &&\n currentValue[1] !== null\n ) {\n lockedEndDate = currentValue[1];\n }\n\n if (editableMode === DateRangeEditableMode.NONE) {\n if (currentValue[0] !== null && currentValue[1] !== null) {\n instance.setDate([currentValue[0], currentValue[1]], false);\n return;\n }\n }\n\n if (currentValue[0] === null && currentValue[1] === null) {\n callOriginalOnChange(originalOnChange, selectedDates, dateStr, instance);\n return;\n }\n\n if (\n editableMode === DateRangeEditableMode.END &&\n lockedStartDate !== null\n ) {\n let modified = false;\n const newDates = [...selectedDates];\n\n if (\n selectedDates.length === 2 &&\n selectedDates[0].getTime() !== lockedStartDate.getTime()\n ) {\n newDates[0] = lockedStartDate;\n modified = true;\n } else if (selectedDates.length === 1) {\n newDates.splice(0, 0, lockedStartDate);\n modified = true;\n }\n\n if (modified) {\n instance.setDate(newDates, false);\n callOriginalOnChange(\n originalOnChange,\n newDates,\n instance.input.value,\n instance\n );\n return;\n }\n }\n\n if (\n editableMode === DateRangeEditableMode.START &&\n lockedEndDate !== null\n ) {\n let modified = false;\n const newDates = [...selectedDates];\n\n if (\n selectedDates.length === 2 &&\n selectedDates[1].getTime() !== lockedEndDate.getTime()\n ) {\n newDates[1] = lockedEndDate;\n modified = true;\n } else if (selectedDates.length === 1) {\n newDates.push(lockedEndDate);\n modified = true;\n }\n\n if (modified) {\n instance.setDate(newDates, false);\n callOriginalOnChange(\n originalOnChange,\n newDates,\n instance.input.value,\n instance\n );\n return;\n }\n }\n\n callOriginalOnChange(originalOnChange, selectedDates, dateStr, instance);\n };\n}\n\nfunction callOriginalOnChange(\n originalOnChange: Hook | Hook[],\n selectedDates: Date[],\n dateStr: string,\n instance: Instance\n): void {\n try {\n if (typeof originalOnChange === 'function') {\n originalOnChange(selectedDates, dateStr, instance);\n } else if (Array.isArray(originalOnChange)) {\n originalOnChange.forEach((hook) => {\n if (typeof hook === 'function') {\n try {\n hook(selectedDates, dateStr, instance);\n } catch (e) {\n console.warn('Error in onChange hook:', e);\n }\n }\n });\n }\n } catch (e) {\n console.warn('Error calling original onChange handler:', e);\n }\n}\n\nexport function applyDateRangeEditingRestrictions(\n options: Partial<BaseOptions>,\n editableMode: DateRangeEditableMode,\n currentValue: [Date | null, Date | null],\n tooltipStrings?: FlatpickrTextStrings\n): Partial<BaseOptions> {\n if (tooltipStrings) {\n setTooltipStrings(tooltipStrings);\n }\n const newOptions = { ...options };\n\n if (editableMode === DateRangeEditableMode.BOTH) {\n return newOptions;\n }\n\n const originalOnChange = newOptions.onChange;\n\n newOptions.clickOpens = true;\n\n try {\n newOptions.onDayCreate = createDateRangeDayLockHandler(\n editableMode,\n currentValue\n ) as any;\n\n newOptions.onChange = createDateRangeChangeLockHandler(\n editableMode,\n currentValue,\n originalOnChange || (() => {})\n );\n } catch (e) {\n console.warn('Error setting up date range editing restrictions:', e);\n }\n\n return newOptions;\n}\n"],"names":["flatpickrStylesInjected","_defaultCalendarTooltipStrings","lockedStartDate","lockedEndDate","dateLocked","dateNotAvailable","dateInSelectedRange","currentTooltipStrings","setTooltipStrings","customTextStrings","getTextStrings","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","querySelectorAll","forEach","dayElem","hasAttribute","localeCache","module","import","localeConfig","_c","_b","default","hideEmptyYear","currentMonth","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","clearFlatpickrInput","updateCallback","clear","DateRangeEditableMode","createDateRangeDayLockHandler","editableMode","currentValue","_dObj","_dStr","_fp","currentDate","dateObj","END","getTime","START","NONE","contains","createDateRangeChangeLockHandler","originalOnChange","modified","newDates","splice","setDate","callOriginalOnChange","push","hook","e","applyDateRangeEditingRestrictions","tooltipStrings","newOptions","BOTH","onDayCreate"],"mappings":"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"}
@@ -199,6 +199,21 @@ $calendar-box-shadow: 0px 4px 12px 0px rgba(0, 0, 0, 0.08),
199
199
  }
200
200
  }
201
201
 
202
+ // FLATPICKR LOCKED DATE STYLES (OVERRIDING DEFAULTS)
203
+ .flatpickr-locked-date:not(.flatpickr-disabled) {
204
+ opacity: 0.8 !important;
205
+ background: var(
206
+ --kd-color-date-and-time-picker-background-default
207
+ ) !important;
208
+ border-color: var(--kd-color-date-and-time-picker-border-focus) !important;
209
+ cursor: not-allowed !important;
210
+ }
211
+
212
+ .flatpickr-locked-date.inRange {
213
+ color: var(--kd-color-date-and-time-picker-text-secondary) !important;
214
+ }
215
+ ////
216
+
202
217
  .flatpickr-calendar.animate.open {
203
218
  -webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
204
219
  animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
@@ -545,7 +560,7 @@ $calendar-box-shadow: 0px 4px 12px 0px rgba(0, 0, 0, 0.08),
545
560
  color: inherit;
546
561
  display: inline-block;
547
562
  padding: 0;
548
- width: 8ch;
563
+ width: auto;
549
564
  text-align: right;
550
565
  }
551
566
 
@@ -554,7 +569,8 @@ $calendar-box-shadow: 0px 4px 12px 0px rgba(0, 0, 0, 0.08),
554
569
  }
555
570
 
556
571
  .flatpickr-current-month .numInputWrapper {
557
- width: 8ch;
572
+ min-width: 5ch;
573
+ margin-left: 12px;
558
574
  text-align: center;
559
575
  display: inline-block;
560
576
  }
@@ -576,6 +592,7 @@ $calendar-box-shadow: 0px 4px 12px 0px rgba(0, 0, 0, 0.08),
576
592
  height: auto;
577
593
  border: none;
578
594
  max-width: 5.5ch;
595
+ margin-right: 4px;
579
596
  border-radius: 0;
580
597
  vertical-align: initial;
581
598
  -webkit-appearance: textfield;
@@ -1116,10 +1133,6 @@ span.flatpickr-weekday {
1116
1133
  .flatpickr-month {
1117
1134
  .flatpickr-current-month {
1118
1135
  padding: 9px 0 0 0;
1119
-
1120
- .cur-month {
1121
- margin-left: -0.5ch;
1122
- }
1123
1136
  }
1124
1137
  }
1125
1138
  }
@@ -1,4 +1,4 @@
1
- import{_ as o}from"../../../vendor/tslib-53a81efe.js";import{t,n as r,a as e,l as i,i as n,b as d,e as a}from"../../../vendor/lit-461e78e6.js";import{i as l,s,x as c}from"../../../vendor/lit-element-c6c02f24.js";import{e as b}from"../../../vendor/lit-html-29220869.js";import{debounce as u}from"../../../common/helpers/helpers.js";import{BUTTON_TYPES as k,BUTTON_KINDS as v,BUTTON_SIZES as h,BUTTON_ICON_POSITION as p,BUTTON_KINDS_SOLID as y,BUTTON_KINDS_OUTLINE as g}from"./defs.js";var m=l`/**
1
+ import{_ as o}from"../../../vendor/tslib-53a81efe.js";import{t,n as r,a as e,l as n,i,b as d,e as a}from"../../../vendor/lit-461e78e6.js";import{i as l,s,x as c}from"../../../vendor/lit-element-c6c02f24.js";import{e as b}from"../../../vendor/lit-html-29220869.js";import{debounce as u}from"../../../common/helpers/helpers.js";import{BUTTON_TYPES as k,BUTTON_KINDS as v,BUTTON_SIZES as h,BUTTON_ICON_POSITION as p,BUTTON_KINDS_SOLID as y,BUTTON_KINDS_OUTLINE as g}from"./defs.js";var m=l`/**
2
2
  * Copyright Kyndryl, Inc. 2023
3
3
  */
4
4
  *,
@@ -50,7 +50,6 @@ import{_ as o}from"../../../vendor/tslib-53a81efe.js";import{t,n as r,a as e,l a
50
50
  text-decoration: none;
51
51
  cursor: pointer;
52
52
  width: 100%;
53
- min-width: 96px;
54
53
  max-width: 100%;
55
54
  display: flex;
56
55
  align-items: center;
@@ -416,5 +415,5 @@ import{_ as o}from"../../../vendor/tslib-53a81efe.js";import{t,n as r,a as e,l a
416
415
  </span>
417
416
  </button>
418
417
  `}
419
- `}handleClick(o){this.internals.form&&("submit"===this.type?this.internals.form.requestSubmit():"reset"===this.type&&this.internals.form.reset());const t=new CustomEvent("on-click",{detail:{origEvent:o}});this.dispatchEvent(t)}_testIconOnly(){var o,t;if(!(null===(o=this._iconEls)||void 0===o?void 0:o.length))return!1;return!(null===(t=this._slottedEls)||void 0===t?void 0:t.filter((o=>""!==o.textContent.trim()))).filter((o=>{if(o.tagName){const t=getComputedStyle(o);return"none"!==t.display&&"hidden"!==t.visibility}return!0})).length}_handleSlotChange(){this.iconOnly=this._testIconOnly(),this.requestUpdate()}_reSizeButton(){(this.isFloating||this.showOnScroll)&&window.innerWidth<=672?this._reSizeBtn=!0:this._reSizeBtn=!1}_handleScroll(){const o=window.scrollY,t=window.innerHeight,r=document.documentElement.scrollHeight;this._showButton=o>(r-t)/2}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this._debounceResize),this.showOnScroll&&window.addEventListener("scroll",this._debounceScroll)}disconnectedCallback(){window.removeEventListener("resize",this._debounceResize),this.showOnScroll&&window.removeEventListener("scroll",this._debounceScroll),super.disconnectedCallback()}};f.styles=[m],f.shadowRootOptions={...s.shadowRootOptions,delegatesFocus:!0},f.formAssociated=!0,o([t()],f.prototype,"internals",void 0),o([r({type:String})],f.prototype,"description",void 0),o([r({type:String})],f.prototype,"type",void 0),o([r({type:String})],f.prototype,"kind",void 0),o([r({type:String})],f.prototype,"href",void 0),o([r({type:String})],f.prototype,"target",void 0),o([r({type:String})],f.prototype,"size",void 0),o([r({type:String})],f.prototype,"iconPosition",void 0),o([t()],f.prototype,"iconOnly",void 0),o([r({type:Boolean,reflect:!0})],f.prototype,"disabled",void 0),o([r({type:String})],f.prototype,"value",void 0),o([r({type:String})],f.prototype,"name",void 0),o([r({type:Boolean})],f.prototype,"isFloating",void 0),o([r({type:Boolean})],f.prototype,"showOnScroll",void 0),o([t()],f.prototype,"_showButton",void 0),o([t()],f.prototype,"_reSizeBtn",void 0),o([r({type:String})],f.prototype,"formmethod",void 0),o([e()],f.prototype,"_slottedEls",void 0),o([i({slot:"icon"})],f.prototype,"_iconEls",void 0),o([n(".button")],f.prototype,"_btnEl",void 0),f=o([a("kyn-button")],f);export{f as Button};
418
+ `}handleClick(o){this.internals.form&&("submit"===this.type?this.internals.form.requestSubmit():"reset"===this.type&&this.internals.form.reset());const t=new CustomEvent("on-click",{detail:{origEvent:o}});this.dispatchEvent(t)}_testIconOnly(){var o,t;if(!(null===(o=this._iconEls)||void 0===o?void 0:o.length))return!1;return!(null===(t=this._slottedEls)||void 0===t?void 0:t.filter((o=>""!==o.textContent.trim()))).filter((o=>{if(o.tagName){const t=getComputedStyle(o);return"none"!==t.display&&"hidden"!==t.visibility}return!0})).length}_handleSlotChange(){this.iconOnly=this._testIconOnly(),this.requestUpdate()}_reSizeButton(){(this.isFloating||this.showOnScroll)&&window.innerWidth<=672?this._reSizeBtn=!0:this._reSizeBtn=!1}_handleScroll(){const o=window.scrollY,t=window.innerHeight,r=document.documentElement.scrollHeight;this._showButton=o>(r-t)/2}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this._debounceResize),this.showOnScroll&&window.addEventListener("scroll",this._debounceScroll)}disconnectedCallback(){window.removeEventListener("resize",this._debounceResize),this.showOnScroll&&window.removeEventListener("scroll",this._debounceScroll),super.disconnectedCallback()}};f.styles=[m],f.shadowRootOptions={...s.shadowRootOptions,delegatesFocus:!0},f.formAssociated=!0,o([t()],f.prototype,"internals",void 0),o([r({type:String})],f.prototype,"description",void 0),o([r({type:String})],f.prototype,"type",void 0),o([r({type:String})],f.prototype,"kind",void 0),o([r({type:String})],f.prototype,"href",void 0),o([r({type:String})],f.prototype,"target",void 0),o([r({type:String})],f.prototype,"size",void 0),o([r({type:String})],f.prototype,"iconPosition",void 0),o([t()],f.prototype,"iconOnly",void 0),o([r({type:Boolean,reflect:!0})],f.prototype,"disabled",void 0),o([r({type:String})],f.prototype,"value",void 0),o([r({type:String})],f.prototype,"name",void 0),o([r({type:Boolean})],f.prototype,"isFloating",void 0),o([r({type:Boolean})],f.prototype,"showOnScroll",void 0),o([t()],f.prototype,"_showButton",void 0),o([t()],f.prototype,"_reSizeBtn",void 0),o([r({type:String})],f.prototype,"formmethod",void 0),o([e()],f.prototype,"_slottedEls",void 0),o([n({slot:"icon"})],f.prototype,"_iconEls",void 0),o([i(".button")],f.prototype,"_btnEl",void 0),f=o([a("kyn-button")],f);export{f as Button};
420
419
  //# sourceMappingURL=button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sources":["../../../../src/components/reusable/button/button.ts"],"sourcesContent":["/**\n * Copyright Kyndryl, Inc. 2023\n */\n\nimport { html, LitElement } from 'lit';\nimport {\n customElement,\n property,\n state,\n query,\n queryAssignedNodes,\n queryAssignedElements,\n} from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { classMap } from 'lit-html/directives/class-map.js';\nimport { debounce } from '../../../common/helpers/helpers';\n\nimport {\n BUTTON_KINDS,\n BUTTON_SIZES,\n BUTTON_TYPES,\n BUTTON_ICON_POSITION,\n BUTTON_KINDS_SOLID,\n BUTTON_KINDS_OUTLINE,\n} from './defs';\n\nimport stylesheet from './button.scss';\n\n/**\n * Button component.\n *\n * @slot unnamed - Slot for button text.\n * @slot icon - Slot for an icon.\n * @fires on-click - Emits the original click event.\n */\n@customElement('kyn-button')\nexport class Button extends LitElement {\n static override styles = [stylesheet];\n\n /** @ignore */\n static override shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * Associate the component with forms.\n * @ignore\n */\n static formAssociated = true;\n\n /**\n * Attached internals for form association.\n * @ignore\n */\n @state()\n internals = this.attachInternals();\n\n /** ARIA label for the button for accessibility. */\n @property({ type: String })\n description = '';\n\n /** Type for the &lt;button&gt; element. */\n @property({ type: String })\n type: BUTTON_TYPES = BUTTON_TYPES.BUTTON;\n\n /** Specifies the visual appearance/kind of the button. */\n @property({ type: String })\n kind: BUTTON_KINDS = BUTTON_KINDS.PRIMARY;\n\n /** Converts the button to an &lt;a&gt; tag if specified. */\n @property({ type: String })\n href = '';\n\n /** Link target, only valid if href is supplied. */\n @property({ type: String })\n target = '_self';\n\n /** Specifies the size of the button. */\n @property({ type: String })\n size: BUTTON_SIZES = BUTTON_SIZES.MEDIUM;\n\n /** Specifies the position of the icon relative to any button text. */\n @property({ type: String })\n iconPosition: BUTTON_ICON_POSITION = BUTTON_ICON_POSITION.CENTER;\n\n /** Determines if the button is disabled.\n * @internal\n */\n @state()\n iconOnly = false;\n\n /** Determines if the button is disabled. */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /** Button value. */\n @property({ type: String })\n value = '';\n\n /** Button name. */\n @property({ type: String })\n name = '';\n\n /** Determines if the button is Floatable */\n @property({ type: Boolean })\n isFloating = false;\n\n /** Show button after scrolling to 50% of the page*/\n @property({ type: Boolean })\n showOnScroll = false;\n\n /** Determines showButton state .\n * @internal\n */\n @state()\n _showButton = false;\n\n /** re-size button to 'medium' at mobile breakpoint.\n * @internal\n */\n @state()\n _reSizeBtn = false;\n\n /** Button formmethod. */\n @property({ type: String })\n formmethod!: any;\n\n /** Queries default slot nodes.\n * @internal\n */\n @queryAssignedNodes()\n _slottedEls!: Array<any>;\n\n /** Queries icon slot nodes.\n * @internal\n */\n @queryAssignedElements({ slot: 'icon' })\n _iconEls!: Array<any>;\n\n /** Queries the .button element.\n * @internal\n */\n @query('.button')\n _btnEl!: any;\n\n override render() {\n const BtnClasses = {\n 'kd-btn': true,\n [`kd-btn--${this.kind}`]: true,\n 'kd-btn--solid-styles': BUTTON_KINDS_SOLID.includes(this.kind),\n 'kd-btn--outline-styles': BUTTON_KINDS_OUTLINE.includes(this.kind),\n 'kd-btn--large': this.size === BUTTON_SIZES.LARGE,\n 'kd-btn--small': this.size === BUTTON_SIZES.SMALL,\n 'kd-btn--medium': this._reSizeBtn || this.size === BUTTON_SIZES.MEDIUM,\n 'kd-btn--icon-align': !!this.iconPosition,\n [`kd-btn--icon-${this.iconPosition}`]:\n !!this.iconPosition && !this.iconOnly,\n [`kd-btn--icon-center`]: this._iconEls?.length && this.iconOnly,\n 'kd-btn--float': this.isFloating,\n 'kd-btn--hidden': this.showOnScroll && !this._showButton,\n 'icon-only': this._iconEls?.length && this.iconOnly,\n };\n\n return html`\n ${this.href && this.href !== ''\n ? html`\n <a\n part=\"button\"\n class=${classMap(BtnClasses)}\n href=${this.href}\n target=${this.target}\n ?disabled=${this.disabled}\n aria-label=${ifDefined(this.description)}\n title=${ifDefined(this.description)}\n @click=${(e: Event) => this.handleClick(e)}\n >\n <span>\n <slot @slotchange=${() => this._handleSlotChange()}></slot>\n <slot\n name=\"icon\"\n @slotchange=${() => this._handleSlotChange()}\n ></slot>\n </span>\n </a>\n `\n : html`\n <button\n part=\"button\"\n class=${classMap(BtnClasses)}\n type=${this.type}\n ?disabled=${this.disabled}\n aria-label=${ifDefined(this.description)}\n title=${ifDefined(this.description)}\n name=${ifDefined(this.name)}\n value=${ifDefined(this.value)}\n formmethod=${ifDefined(this.formmethod)}\n @click=${(e: Event) => this.handleClick(e)}\n >\n <span>\n <slot @slotchange=${() => this._handleSlotChange()}></slot>\n <slot\n name=\"icon\"\n @slotchange=${() => this._handleSlotChange()}\n ></slot>\n </span>\n </button>\n `}\n `;\n }\n\n private handleClick(e: Event) {\n if (this.internals.form) {\n if (this.type === 'submit') {\n this.internals.form.requestSubmit();\n } else if (this.type === 'reset') {\n this.internals.form.reset();\n }\n }\n\n const event = new CustomEvent('on-click', {\n detail: { origEvent: e },\n });\n this.dispatchEvent(event);\n }\n\n private _testIconOnly() {\n if (!this._iconEls?.length) {\n return false;\n }\n\n const TextNodes = this._slottedEls?.filter((node: any) => {\n return node.textContent.trim() !== '';\n });\n\n const VisibleTextNodes = TextNodes.filter((node: any) => {\n if (node.tagName) {\n const Styles = getComputedStyle(node);\n return Styles.display !== 'none' && Styles.visibility !== 'hidden';\n } else {\n return true;\n }\n });\n\n return !VisibleTextNodes.length;\n }\n\n private _handleSlotChange() {\n this.iconOnly = this._testIconOnly();\n this.requestUpdate();\n }\n\n /** @internal */\n private _debounceResize = debounce(() => {\n this._reSizeButton();\n this.iconOnly = this._testIconOnly();\n });\n\n /** @internal */\n private _reSizeButton() {\n // Resize button to medium at mobile breakpoint\n if ((this.isFloating || this.showOnScroll) && window.innerWidth <= 672) {\n this._reSizeBtn = true;\n } else {\n this._reSizeBtn = false;\n }\n }\n\n /** @internal */\n private _debounceScroll = debounce(() => {\n if (this.showOnScroll) {\n this._handleScroll();\n }\n });\n\n /** @internal */\n private _handleScroll() {\n const scrollPosition = window.scrollY;\n const windowHeight = window.innerHeight;\n const pageHeight = document.documentElement.scrollHeight;\n // Show the button if scrolled 50% of the page\n this._showButton = scrollPosition > (pageHeight - windowHeight) / 2;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n window.addEventListener('resize', this._debounceResize);\n if (this.showOnScroll) {\n window.addEventListener('scroll', this._debounceScroll);\n }\n }\n\n override disconnectedCallback() {\n window.removeEventListener('resize', this._debounceResize);\n if (this.showOnScroll) {\n window.removeEventListener('scroll', this._debounceScroll);\n }\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-button': Button;\n }\n}\n"],"names":["Button","LitElement","constructor","this","internals","attachInternals","description","type","BUTTON_TYPES","BUTTON","kind","BUTTON_KINDS","PRIMARY","href","target","size","BUTTON_SIZES","MEDIUM","iconPosition","BUTTON_ICON_POSITION","CENTER","iconOnly","disabled","value","name","isFloating","showOnScroll","_showButton","_reSizeBtn","_debounceResize","debounce","_reSizeButton","_testIconOnly","_debounceScroll","_handleScroll","render","BtnClasses","BUTTON_KINDS_SOLID","includes","BUTTON_KINDS_OUTLINE","LARGE","SMALL","_a","_iconEls","length","_b","html","classMap","ifDefined","e","handleClick","_handleSlotChange","formmethod","form","requestSubmit","reset","event","CustomEvent","detail","origEvent","dispatchEvent","_slottedEls","filter","node","textContent","trim","tagName","Styles","getComputedStyle","display","visibility","requestUpdate","window","innerWidth","scrollPosition","scrollY","windowHeight","innerHeight","pageHeight","document","documentElement","scrollHeight","connectedCallback","super","addEventListener","disconnectedCallback","removeEventListener","styles","stylesheet","shadowRootOptions","delegatesFocus","formAssociated","__decorate","state","prototype","property","String","Boolean","reflect","queryAssignedNodes","queryAssignedElements","slot","query","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"button.js","sources":["../../../../src/components/reusable/button/button.ts"],"sourcesContent":["/**\n * Copyright Kyndryl, Inc. 2023\n */\n\nimport { html, LitElement } from 'lit';\nimport {\n customElement,\n property,\n state,\n query,\n queryAssignedNodes,\n queryAssignedElements,\n} from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { classMap } from 'lit-html/directives/class-map.js';\nimport { debounce } from '../../../common/helpers/helpers';\n\nimport {\n BUTTON_KINDS,\n BUTTON_SIZES,\n BUTTON_TYPES,\n BUTTON_ICON_POSITION,\n BUTTON_KINDS_SOLID,\n BUTTON_KINDS_OUTLINE,\n} from './defs';\n\nimport stylesheet from './button.scss';\n\n/**\n * Button component.\n *\n * @slot unnamed - Slot for button text.\n * @slot icon - Slot for an icon.\n * @fires on-click - Emits the original click event.\n */\n@customElement('kyn-button')\nexport class Button extends LitElement {\n static override styles = [stylesheet];\n\n /** @ignore */\n static override shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * Associate the component with forms.\n * @ignore\n */\n static formAssociated = true;\n\n /**\n * Attached internals for form association.\n * @ignore\n */\n @state()\n internals = this.attachInternals();\n\n /** ARIA label for the button for accessibility. */\n @property({ type: String })\n description = '';\n\n /** Type for the &lt;button&gt; element. */\n @property({ type: String })\n type: BUTTON_TYPES = BUTTON_TYPES.BUTTON;\n\n /** Specifies the visual appearance/kind of the button. */\n @property({ type: String })\n kind: BUTTON_KINDS = BUTTON_KINDS.PRIMARY;\n\n /** Converts the button to an &lt;a&gt; tag if specified. */\n @property({ type: String })\n href = '';\n\n /** Link target, only valid if href is supplied. */\n @property({ type: String })\n target = '_self';\n\n /** Specifies the size of the button. */\n @property({ type: String })\n size: BUTTON_SIZES = BUTTON_SIZES.MEDIUM;\n\n /** Specifies the position of the icon relative to any button text. */\n @property({ type: String })\n iconPosition: BUTTON_ICON_POSITION = BUTTON_ICON_POSITION.CENTER;\n\n /** Determines if the button is disabled.\n * @internal\n */\n @state()\n iconOnly = false;\n\n /** Determines if the button is disabled. */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /** Button value. */\n @property({ type: String })\n value = '';\n\n /** Button name. */\n @property({ type: String })\n name = '';\n\n /** Determines if the button is Floatable */\n @property({ type: Boolean })\n isFloating = false;\n\n /** Show button after scrolling to 50% of the page*/\n @property({ type: Boolean })\n showOnScroll = false;\n\n /** Determines showButton state .\n * @internal\n */\n @state()\n _showButton = false;\n\n /** re-size button to 'medium' at mobile breakpoint.\n * @internal\n */\n @state()\n _reSizeBtn = false;\n\n /** Button formmethod. */\n @property({ type: String })\n formmethod!: any;\n\n /** Queries default slot nodes.\n * @internal\n */\n @queryAssignedNodes()\n _slottedEls!: Array<any>;\n\n /** Queries icon slot nodes.\n * @internal\n */\n @queryAssignedElements({ slot: 'icon' })\n _iconEls!: Array<any>;\n\n /** Queries the .button element.\n * @internal\n */\n @query('.button')\n _btnEl!: any;\n\n override render() {\n const BtnClasses = {\n 'kd-btn': true,\n [`kd-btn--${this.kind}`]: true,\n 'kd-btn--solid-styles': BUTTON_KINDS_SOLID.includes(this.kind),\n 'kd-btn--outline-styles': BUTTON_KINDS_OUTLINE.includes(this.kind),\n 'kd-btn--large': this.size === BUTTON_SIZES.LARGE,\n 'kd-btn--small': this.size === BUTTON_SIZES.SMALL,\n 'kd-btn--medium': this._reSizeBtn || this.size === BUTTON_SIZES.MEDIUM,\n 'kd-btn--icon-align': !!this.iconPosition,\n [`kd-btn--icon-${this.iconPosition}`]:\n !!this.iconPosition && !this.iconOnly,\n [`kd-btn--icon-center`]: this._iconEls?.length && this.iconOnly,\n 'kd-btn--float': this.isFloating,\n 'kd-btn--hidden': this.showOnScroll && !this._showButton,\n 'icon-only': this._iconEls?.length && this.iconOnly,\n };\n\n return html`\n ${this.href && this.href !== ''\n ? html`\n <a\n part=\"button\"\n class=${classMap(BtnClasses)}\n href=${this.href}\n target=${this.target}\n ?disabled=${this.disabled}\n aria-label=${ifDefined(this.description)}\n title=${ifDefined(this.description)}\n @click=${(e: Event) => this.handleClick(e)}\n >\n <span>\n <slot @slotchange=${() => this._handleSlotChange()}></slot>\n <slot\n name=\"icon\"\n @slotchange=${() => this._handleSlotChange()}\n ></slot>\n </span>\n </a>\n `\n : html`\n <button\n part=\"button\"\n class=${classMap(BtnClasses)}\n type=${this.type}\n ?disabled=${this.disabled}\n aria-label=${ifDefined(this.description)}\n title=${ifDefined(this.description)}\n name=${ifDefined(this.name)}\n value=${ifDefined(this.value)}\n formmethod=${ifDefined(this.formmethod)}\n @click=${(e: Event) => this.handleClick(e)}\n >\n <span>\n <slot @slotchange=${() => this._handleSlotChange()}></slot>\n <slot\n name=\"icon\"\n @slotchange=${() => this._handleSlotChange()}\n ></slot>\n </span>\n </button>\n `}\n `;\n }\n\n private handleClick(e: Event) {\n if (this.internals.form) {\n if (this.type === 'submit') {\n this.internals.form.requestSubmit();\n } else if (this.type === 'reset') {\n this.internals.form.reset();\n }\n }\n\n const event = new CustomEvent('on-click', {\n detail: { origEvent: e },\n });\n this.dispatchEvent(event);\n }\n\n private _testIconOnly() {\n if (!this._iconEls?.length) {\n return false;\n }\n\n const TextNodes = this._slottedEls?.filter((node: any) => {\n return node.textContent.trim() !== '';\n });\n\n const VisibleTextNodes = TextNodes.filter((node: any) => {\n if (node.tagName) {\n const Styles = getComputedStyle(node);\n return Styles.display !== 'none' && Styles.visibility !== 'hidden';\n } else {\n return true;\n }\n });\n\n return !VisibleTextNodes.length;\n }\n\n private _handleSlotChange() {\n this.iconOnly = this._testIconOnly();\n this.requestUpdate();\n }\n\n /** @internal */\n private _debounceResize = debounce(() => {\n this._reSizeButton();\n this.iconOnly = this._testIconOnly();\n });\n\n /** @internal */\n private _reSizeButton() {\n // Resize button to medium at mobile breakpoint\n if ((this.isFloating || this.showOnScroll) && window.innerWidth <= 672) {\n this._reSizeBtn = true;\n } else {\n this._reSizeBtn = false;\n }\n }\n\n /** @internal */\n private _debounceScroll = debounce(() => {\n if (this.showOnScroll) {\n this._handleScroll();\n }\n });\n\n /** @internal */\n private _handleScroll() {\n const scrollPosition = window.scrollY;\n const windowHeight = window.innerHeight;\n const pageHeight = document.documentElement.scrollHeight;\n // Show the button if scrolled 50% of the page\n this._showButton = scrollPosition > (pageHeight - windowHeight) / 2;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n window.addEventListener('resize', this._debounceResize);\n if (this.showOnScroll) {\n window.addEventListener('scroll', this._debounceScroll);\n }\n }\n\n override disconnectedCallback() {\n window.removeEventListener('resize', this._debounceResize);\n if (this.showOnScroll) {\n window.removeEventListener('scroll', this._debounceScroll);\n }\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-button': Button;\n }\n}\n"],"names":["Button","LitElement","constructor","this","internals","attachInternals","description","type","BUTTON_TYPES","BUTTON","kind","BUTTON_KINDS","PRIMARY","href","target","size","BUTTON_SIZES","MEDIUM","iconPosition","BUTTON_ICON_POSITION","CENTER","iconOnly","disabled","value","name","isFloating","showOnScroll","_showButton","_reSizeBtn","_debounceResize","debounce","_reSizeButton","_testIconOnly","_debounceScroll","_handleScroll","render","BtnClasses","BUTTON_KINDS_SOLID","includes","BUTTON_KINDS_OUTLINE","LARGE","SMALL","_a","_iconEls","length","_b","html","classMap","ifDefined","e","handleClick","_handleSlotChange","formmethod","form","requestSubmit","reset","event","CustomEvent","detail","origEvent","dispatchEvent","_slottedEls","filter","node","textContent","trim","tagName","Styles","getComputedStyle","display","visibility","requestUpdate","window","innerWidth","scrollPosition","scrollY","windowHeight","innerHeight","pageHeight","document","documentElement","scrollHeight","connectedCallback","super","addEventListener","disconnectedCallback","removeEventListener","styles","stylesheet","shadowRootOptions","delegatesFocus","formAssociated","__decorate","state","prototype","property","String","Boolean","reflect","queryAssignedNodes","queryAssignedElements","slot","query","customElement"],"mappings":"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"}
@@ -33,6 +33,10 @@ export declare class Checkbox extends LitElement {
33
33
  * Checkbox disabled state, inherited from the parent group.
34
34
  */
35
35
  disabled: boolean;
36
+ /**
37
+ * Prevent checkbox from being focusable. Disables it functionally but not visually.
38
+ */
39
+ notFocusable: boolean;
36
40
  /**
37
41
  * Checkbox group invalid state, inherited from the parent group.
38
42
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/checkbox/checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAKvC;;;;GAIG;AACH,qBACa,QAAS,SAAQ,UAAU;IACtC,OAAgB,MAAM,MAAgB;IAEtC,cAAc;IACd,OAAgB,iBAAiB;;;;MAG/B;IAEF,sBAAsB;IAEtB,KAAK,SAAM;IAEX;;;OAGG;IAEH,IAAI,SAAM;IAEV;;;OAGG;IAEH,OAAO,UAAS;IAEhB;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;;OAGG;IAEH,OAAO,UAAS;IAEhB;;;OAGG;IAEH,aAAa,UAAS;IAEtB,oEAAoE;IAEpE,aAAa,UAAS;IAEb,MAAM;IA2Bf,OAAO,CAAC,YAAY;CAarB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,QAAQ,CAAC;KAC1B;CACF"}
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/checkbox/checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAKvC;;;;GAIG;AACH,qBACa,QAAS,SAAQ,UAAU;IACtC,OAAgB,MAAM,MAAgB;IAEtC,cAAc;IACd,OAAgB,iBAAiB;;;;MAG/B;IAEF,sBAAsB;IAEtB,KAAK,SAAM;IAEX;;;OAGG;IAEH,IAAI,SAAM;IAEV;;;OAGG;IAEH,OAAO,UAAS;IAEhB;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,YAAY,UAAS;IAErB;;;OAGG;IAEH,OAAO,UAAS;IAEhB;;;OAGG;IAEH,aAAa,UAAS;IAEtB,oEAAoE;IAEpE,aAAa,UAAS;IAEb,MAAM;IA4Bf,OAAO,CAAC,YAAY;CAarB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,QAAQ,CAAC;KAC1B;CACF"}