@kyndryl-design-system/shidoka-applications 2.20.4 → 2.20.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/helpers/flatpickr.d.ts.map +1 -1
- package/common/helpers/flatpickr.js +1 -1
- package/common/helpers/flatpickr.js.map +1 -1
- package/components/ai/sourcesFeedback/aiSourcesFeedback.d.ts +0 -7
- package/components/ai/sourcesFeedback/aiSourcesFeedback.d.ts.map +1 -1
- package/components/ai/sourcesFeedback/aiSourcesFeedback.js +5 -5
- package/components/ai/sourcesFeedback/aiSourcesFeedback.js.map +1 -1
- package/components/reusable/datePicker/datepicker.d.ts +14 -2
- package/components/reusable/datePicker/datepicker.d.ts.map +1 -1
- package/components/reusable/datePicker/datepicker.js +16 -16
- package/components/reusable/datePicker/datepicker.js.map +1 -1
- package/components/reusable/daterangepicker/daterangepicker.d.ts +30 -11
- package/components/reusable/daterangepicker/daterangepicker.d.ts.map +1 -1
- package/components/reusable/daterangepicker/daterangepicker.js +44 -37
- package/components/reusable/daterangepicker/daterangepicker.js.map +1 -1
- package/components/reusable/table/story-helpers/table-story.sample.d.ts +2 -0
- package/components/reusable/table/story-helpers/table-story.sample.d.ts.map +1 -1
- package/components/reusable/table/story-helpers/ultils.sample.d.ts +12 -0
- package/components/reusable/table/story-helpers/ultils.sample.d.ts.map +1 -1
- package/components/reusable/timepicker/timepicker.d.ts +25 -13
- package/components/reusable/timepicker/timepicker.d.ts.map +1 -1
- package/components/reusable/timepicker/timepicker.js +16 -14
- package/components/reusable/timepicker/timepicker.js.map +1 -1
- package/package.json +1 -1
|
@@ -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":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAMrD,UAAU,oBAAoB;IAC5B,mBAAmB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IACzD,qBAAqB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpD,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;CAChD;AAED,UAAU,sBAAuB,SAAQ,oBAAoB;IAC3D,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,UAAU,qBAAsB,SAAQ,oBAAoB;IAC1D,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;CAaf,CAAC;AAEX,KAAK,gBAAgB,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAEzD,UAAU,uBAAuB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGzD;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,sBAAsB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAC/C,IAAI,CAKN;AAED,wBAAgB,gBAAgB,CAC9B,sBAAsB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAC/C,IAAI,CAEN;AAED,wBAAgB,gBAAgB,CAC9B,mBAAmB,EAAE,OAAO,EAC5B,cAAc,EAAE,MAAM,IAAI,EAC1B,sBAAsB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAC/C,IAAI,CAKN;AAED,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAM5E;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAQ/D;AAED,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAmF/B;AAED,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,sBAAsB,GAAG;IAAE,QAAQ,CAAC,EAAE,WAAW,CAAA;CAAE,GAC3D,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAkE/B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,gBAAgB,CAE5E;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,OAAO,GACpB,MAAM,CAYR;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAMnE;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAkL/B;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,QAAQ,EAClB,aAAa,CAAC,EAAE,OAAO,GACtB,IAAI,CA4BN;AAID,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CA2BzE;AAED,wBAAgB,aAAa,IAAI,IAAI,CAqBpC;AAED,wBAAgB,QAAQ,CACtB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,OAAO,EACjB,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,MAAM,EAC3B,aAAa,EAAE,OAAO,EACtB,SAAS,EAAE,gBAAgB,GAC1B;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CA4BjD;AAED,wBAAgB,SAAS,CACvB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,GAAG,GACV,IAAI,CAQN"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,f as t,E as n}from"../../vendor/flatpickr-bbd13d61.js";import{langsArray as a}from"../flatpickrLangs.js";let i=!1;const o={"Y-m-d":"yyyy-mm-dd","m-d-Y":"mm-dd-yyyy","d-m-Y":"dd-mm-yyyy","Y-m-d H:i":"yyyy-mm-dd —— : ——","Y-m-d h:i K":"yyyy-mm-dd —— : ——","m-d-Y H:i":"mm-dd-yyyy —— : ——","m-d-Y h:i K":"mm-dd-yyyy —— : ——","d-m-Y H:i":"dd-mm-yyyy —— : ——","d-m-Y h:i K":"dd-mm-yyyy —— : ——","Y-m-d H:i:s":"yyyy-mm-dd —— : —— ——","m-d-Y H:i:s":"mm-dd-yyyy —— : —— ——","d-m-Y H:i:s":"dd-mm-yyyy —— : —— ——"};function r(e){const t=e.split("-")[0].toLowerCase();return a.includes(t)}function l(e,t){e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),t(!1)}function s(e){e(!0)}function c(e,t,n){e||(t(),n(!0))}function d(e){e.weekdays&&e.weekdays.shorthand&&(e.weekdays.shorthand=e.weekdays.shorthand.map((e=>e.charAt(0))))}function u(e){if(!i){const t=document.createElement("style");t.id="flatpickr-custom-styles",t.textContent=e,document.head.appendChild(t),i=!0}}async function m(n){const{inputEl:a,endinputEl:i,getFlatpickrOptions:o,setCalendarAttributes:r,setInitialDates:l}=n;if(a)try{const n=await o(),s=e=>{if(e instanceof HTMLInputElement)return e;try{let t=e.querySelector("input");if(!t){if(t=document.createElement("input"),t.type="text",t.style.display="none",!e.isConnected)throw new Error("Element is not connected to the DOM");e.appendChild(t)}return t}catch(e){throw console.error("Error creating or appending input element:",e),e}},c=s(a);if(i){const t=s(i);n.plugins=[...n.plugins||[],e({input:t})]}const d=t(c,n);return d?(setTimeout((()=>{r&&r(d)}),0),l&&l(d),a instanceof HTMLInputElement||a.addEventListener("click",(()=>{d.open()})),!i||i instanceof HTMLInputElement||i.addEventListener("click",(()=>{d.open()})),d):void console.error("Failed to initialize Flatpickr")}catch(e){return void console.error("Error initializing Flatpickr:",e)}else console.error("Cannot initialize Flatpickr: inputEl is undefined")}async function p(e){const{inputEl:n,getFlatpickrOptions:a,setCalendarAttributes:i,setInitialDates:o,appendTo:r}=e;if(n)try{const e=await a(),l=e.dateFormat||("time"===e.mode?"H:i":"Y-m-d");let s;if(e.dateFormat=l,n instanceof HTMLInputElement)s=n,e.clickOpens=!0;else try{s=document.createElement("input"),s.type="text",s.style.display="none";const t=r||n;if(!t)throw new Error("No valid element to append input to");t.appendChild(s),e.clickOpens=!1,e.positionElement=n}catch(e){throw console.error("Error creating input element:",e),e}const c=t(s,e);return c?(setTimeout((()=>{i&&i(c)}),0),o&&o(c),n instanceof HTMLInputElement||n.addEventListener("click",(()=>c.open())),c):void console.error("Failed to initialize Flatpickr")}catch(e){return console.error("Error initializing Flatpickr:",e),void(e instanceof Error&&console.error("Error details:",e.message))}else console.error("Cannot initialize Flatpickr: inputEl is undefined")}function y(e){return e in o}function f(e,t){if(y(e)){return t?`${o[e]} to ${o[e]}`:o[e]}return"Select date"}function h(e){return["kyn-modal","kyn-side-drawer"].map((t=>e.closest(t))).find((e=>null!==e))||document.body}async function g(e){var a;if(!e)return console.error("Context is required for getFlatpickrOptions"),{};const{locale:i,dateFormat:o,enableTime:r,twentyFourHourFormat:l,inputEl:s,allowInput:c,minDate:u,maxDate:m,minTime:p,maxTime:y,defaultDate:f,defaultHour:h,defaultMinute:g,enable:w,disable:E,mode:k="single",closeOnSelect:b,wrap:v=!1,noCalendar:C=!1,appendTo:L,onChange: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 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};
|
|
2
2
|
//# sourceMappingURL=flatpickr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flatpickr.js","sources":["../../../src/common/helpers/flatpickr.ts"],"sourcesContent":["import flatpickr from 'flatpickr';\nimport rangePlugin from 'flatpickr/dist/plugins/rangePlugin';\nimport { Instance } from 'flatpickr/dist/types/instance';\nimport { BaseOptions, Hook } from 'flatpickr/dist/types/options';\nimport { Locale } from 'flatpickr/dist/types/locale';\nimport { default as English } from 'flatpickr/dist/l10n/default.js';\nimport { langsArray, SupportedLocale } from '../flatpickrLangs';\n\nlet flatpickrStylesInjected = false;\n\ninterface BaseFlatpickrContext {\n getFlatpickrOptions: () => Promise<Partial<BaseOptions>>;\n setCalendarAttributes: (instance: Instance) => void;\n setInitialDates?: (instance: Instance) => void;\n}\n\ninterface SingleFlatpickrContext extends BaseFlatpickrContext {\n inputEl: HTMLElement;\n}\n\ninterface RangeFlatpickrContext extends BaseFlatpickrContext {\n inputEl: HTMLElement;\n endinputEl?: HTMLElement;\n}\n\nconst DATE_FORMAT_OPTIONS = {\n 'Y-m-d': 'yyyy-mm-dd',\n 'm-d-Y': 'mm-dd-yyyy',\n 'd-m-Y': 'dd-mm-yyyy',\n 'Y-m-d H:i': 'yyyy-mm-dd —— : ——',\n 'Y-m-d h:i K': 'yyyy-mm-dd —— : ——',\n 'm-d-Y H:i': 'mm-dd-yyyy —— : ——',\n 'm-d-Y h:i K': 'mm-dd-yyyy —— : ——',\n 'd-m-Y H:i': 'dd-mm-yyyy —— : ——',\n 'd-m-Y h:i K': 'dd-mm-yyyy —— : ——',\n 'Y-m-d H:i:s': 'yyyy-mm-dd —— : —— ——',\n 'm-d-Y H:i:s': 'mm-dd-yyyy —— : —— ——',\n 'd-m-Y H:i:s': 'dd-mm-yyyy —— : —— ——',\n} as const;\n\ntype DateFormatOption = keyof typeof DATE_FORMAT_OPTIONS;\n\ninterface FlatpickrOptionsContext {\n locale: string;\n dateFormat?: string;\n defaultDate?: string | Date | string[] | Date[];\n defaultHour?: number;\n defaultMinute?: number;\n enableTime: boolean;\n twentyFourHourFormat?: boolean;\n endinputEl?: HTMLElement;\n inputEl: HTMLElement;\n allowInput?: boolean;\n minDate?: string | number | Date;\n maxDate?: string | number | Date;\n minTime?: string | number | Date;\n maxTime?: string | number | Date;\n enable?: (string | number | Date)[];\n disable?: (string | number | Date)[];\n onChange?: Hook;\n onClose?: Hook;\n onOpen?: Hook;\n loadLocale: (locale: string) => Promise<Partial<Locale>>;\n mode?: 'single' | 'multiple' | 'range' | 'time';\n closeOnSelect?: boolean;\n wrap?: boolean;\n noCalendar?: boolean;\n appendTo?: HTMLElement;\n static?: boolean;\n}\n\nexport function isSupportedLocale(locale: string): boolean {\n const baseLocale = locale.split('-')[0].toLowerCase();\n return langsArray.includes(baseLocale as SupportedLocale);\n}\n\nexport function preventFlatpickrOpen(\n event: Event,\n setShouldFlatpickrOpen: (value: boolean) => void\n): void {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n setShouldFlatpickrOpen(false);\n}\n\nexport function handleInputClick(\n setShouldFlatpickrOpen: (value: boolean) => void\n): void {\n setShouldFlatpickrOpen(true);\n}\n\nexport function handleInputFocus(\n shouldFlatpickrOpen: boolean,\n closeFlatpickr: () => void,\n setShouldFlatpickrOpen: (value: boolean) => void\n): void {\n if (!shouldFlatpickrOpen) {\n closeFlatpickr();\n setShouldFlatpickrOpen(true);\n }\n}\n\nexport function modifyWeekdayShorthands(localeOptions: Partial<Locale>): void {\n if (localeOptions.weekdays && localeOptions.weekdays.shorthand) {\n localeOptions.weekdays.shorthand = localeOptions.weekdays.shorthand.map(\n (day) => day.charAt(0)\n ) as [string, string, string, string, string, string, string];\n }\n}\n\nexport function injectFlatpickrStyles(customStyle: string): void {\n if (!flatpickrStylesInjected) {\n const styleElement = document.createElement('style');\n styleElement.id = 'flatpickr-custom-styles';\n styleElement.textContent = customStyle;\n document.head.appendChild(styleElement);\n flatpickrStylesInjected = true;\n }\n}\n\nexport async function initializeMultiAnchorFlatpickr(\n context: RangeFlatpickrContext\n): Promise<Instance | undefined> {\n const {\n inputEl,\n endinputEl,\n getFlatpickrOptions,\n setCalendarAttributes,\n setInitialDates,\n } = context;\n\n if (!inputEl) {\n console.error('Cannot initialize Flatpickr: inputEl is undefined');\n return undefined;\n }\n\n try {\n const options = await getFlatpickrOptions();\n\n const getInputElement = (el: HTMLElement): HTMLInputElement => {\n if (el instanceof HTMLInputElement) {\n return el;\n } else {\n try {\n let input = el.querySelector('input') as HTMLInputElement | null;\n if (!input) {\n input = document.createElement('input');\n input.type = 'text';\n input.style.display = 'none';\n if (!el.isConnected) {\n throw new Error('Element is not connected to the DOM');\n }\n el.appendChild(input);\n }\n return input;\n } catch (error) {\n console.error('Error creating or appending input element:', error);\n throw error;\n }\n }\n };\n\n const inputElement = getInputElement(inputEl);\n if (endinputEl) {\n const endInputElement = getInputElement(endinputEl);\n options.plugins = [\n ...(options.plugins || []),\n rangePlugin({ input: endInputElement }),\n ];\n }\n\n const flatpickrInstance = flatpickr(inputElement, options) as Instance;\n\n if (flatpickrInstance) {\n setTimeout(() => {\n if (setCalendarAttributes) {\n setCalendarAttributes(flatpickrInstance);\n }\n }, 0);\n\n if (setInitialDates) {\n setInitialDates(flatpickrInstance);\n }\n\n if (!(inputEl instanceof HTMLInputElement)) {\n inputEl.addEventListener('click', () => {\n flatpickrInstance.open();\n });\n }\n\n if (endinputEl && !(endinputEl instanceof HTMLInputElement)) {\n endinputEl.addEventListener('click', () => {\n flatpickrInstance.open();\n });\n }\n\n return flatpickrInstance;\n } else {\n console.error('Failed to initialize Flatpickr');\n return undefined;\n }\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n return undefined;\n }\n}\n\nexport async function initializeSingleAnchorFlatpickr(\n context: SingleFlatpickrContext & { appendTo?: HTMLElement }\n): Promise<Instance | undefined> {\n const {\n inputEl,\n getFlatpickrOptions,\n setCalendarAttributes,\n setInitialDates,\n appendTo,\n } = context;\n if (!inputEl) {\n console.error('Cannot initialize Flatpickr: inputEl is undefined');\n return undefined;\n }\n try {\n const options = await getFlatpickrOptions();\n const effectiveDateFormat =\n options.dateFormat || (options.mode === 'time' ? 'H:i' : 'Y-m-d');\n options.dateFormat = effectiveDateFormat;\n\n let inputElement: HTMLInputElement;\n if (inputEl instanceof HTMLInputElement) {\n inputElement = inputEl;\n options.clickOpens = true;\n } else {\n try {\n inputElement = document.createElement('input');\n inputElement.type = 'text';\n inputElement.style.display = 'none';\n\n const targetElement = appendTo || inputEl;\n if (!targetElement) {\n throw new Error('No valid element to append input to');\n }\n\n targetElement.appendChild(inputElement);\n options.clickOpens = false;\n options.positionElement = inputEl;\n } catch (error) {\n console.error('Error creating input element:', error);\n throw error;\n }\n }\n const flatpickrInstance = flatpickr(inputElement, options) as Instance;\n if (flatpickrInstance) {\n setTimeout(() => {\n if (setCalendarAttributes) {\n setCalendarAttributes(flatpickrInstance);\n }\n }, 0);\n if (setInitialDates) {\n setInitialDates(flatpickrInstance);\n }\n if (!(inputEl instanceof HTMLInputElement)) {\n inputEl.addEventListener('click', () => flatpickrInstance.open());\n }\n return flatpickrInstance;\n } else {\n console.error('Failed to initialize Flatpickr');\n return undefined;\n }\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n if (error instanceof Error) {\n console.error('Error details:', error.message);\n }\n return undefined;\n }\n}\n\nexport function isValidDateFormat(format: string): format is DateFormatOption {\n return format in DATE_FORMAT_OPTIONS;\n}\n\nexport function getPlaceholder(\n dateFormat: string,\n isDateRange?: boolean\n): string {\n if (isValidDateFormat(dateFormat)) {\n const placeholder = isDateRange\n ? `${DATE_FORMAT_OPTIONS[dateFormat]} to ${DATE_FORMAT_OPTIONS[dateFormat]}`\n : DATE_FORMAT_OPTIONS[dateFormat];\n return placeholder;\n }\n return 'Select date';\n}\n\nexport function getModalContainer(element: HTMLElement): HTMLElement {\n return (\n ['kyn-modal', 'kyn-side-drawer']\n .map((selector) => element.closest(selector))\n .find((el): el is HTMLElement => el !== null) || document.body\n );\n}\n\nexport async function getFlatpickrOptions(\n context: FlatpickrOptionsContext\n): Promise<Partial<BaseOptions>> {\n if (!context) {\n console.error('Context is required for getFlatpickrOptions');\n return {};\n }\n\n const {\n locale,\n dateFormat,\n enableTime,\n twentyFourHourFormat,\n inputEl,\n allowInput,\n minDate,\n maxDate,\n minTime,\n maxTime,\n defaultDate,\n defaultHour,\n defaultMinute,\n enable,\n disable,\n mode = 'single',\n closeOnSelect,\n wrap = false,\n noCalendar = false,\n appendTo,\n onChange,\n onClose,\n onOpen,\n loadLocale,\n } = context;\n\n if (!locale) {\n console.warn('Locale not provided. Falling back to default.');\n }\n\n if (!dateFormat) {\n console.warn('Date format not provided. Using default format.');\n }\n\n let localeOptions;\n try {\n localeOptions = await loadLocale(locale);\n modifyWeekdayShorthands(localeOptions);\n } catch (error) {\n console.warn('Error loading locale, falling back to default:', error);\n localeOptions = English;\n }\n\n const baseLocale = locale.split('-')[0].toLowerCase();\n const isEnglishOr12HourLocale = ['en', 'es'].includes(baseLocale);\n\n const isWideScreen = window.innerWidth >= 767;\n\n const effectiveDateFormat =\n dateFormat ||\n (mode === 'time' ? (twentyFourHourFormat ? 'H:i' : 'h:i K') : 'Y-m-d');\n\n const options: Partial<BaseOptions> = {\n dateFormat: effectiveDateFormat,\n mode: mode === 'time' ? 'single' : mode,\n enableTime: mode === 'time' ? true : enableTime,\n noCalendar: mode === 'time' ? true : noCalendar,\n defaultDate: defaultDate,\n enableSeconds: false,\n allowInput: allowInput || false,\n clickOpens: true,\n time_24hr:\n typeof twentyFourHourFormat === 'boolean'\n ? twentyFourHourFormat\n : !isEnglishOr12HourLocale,\n weekNumbers: false,\n static: context.static ?? false,\n wrap,\n showMonths: mode === 'range' && isWideScreen ? 2 : 1,\n monthSelectorType: 'static',\n locale: localeOptions,\n closeOnSelect: closeOnSelect ?? !(mode === 'multiple' || enableTime),\n onChange: (selectedDates, dateStr, instance) => {\n onChange && onChange(selectedDates, dateStr, instance);\n },\n onClose: (selectedDates, dateStr, instance) => {\n if (mode === 'range' && instance.calendarContainer) {\n const timeContainer =\n instance.calendarContainer.querySelector('.flatpickr-time');\n if (selectedDates.length === 0) {\n timeContainer?.classList.add('default-time-select');\n timeContainer?.classList.remove('start-date', 'end-date');\n }\n }\n onClose && onClose(selectedDates, dateStr, instance);\n },\n onOpen: (selectedDates, dateStr, instance) => {\n onOpen && onOpen(selectedDates, dateStr, instance);\n },\n };\n\n if (mode === 'range') {\n options.onReady = (_, __, instance) => {\n if (instance.calendarContainer) {\n const timeContainer =\n instance.calendarContainer.querySelector('.flatpickr-time');\n timeContainer?.classList.add('default-time-select');\n }\n };\n }\n\n if (!(inputEl instanceof HTMLInputElement)) {\n options.positionElement = inputEl;\n }\n\n if (minDate) options.minDate = minDate;\n if (maxDate) options.maxDate = maxDate;\n if (minTime) options.minTime = minTime;\n if (maxTime) options.maxTime = maxTime;\n\n if (defaultDate) {\n if (\n Array.isArray(defaultDate) &&\n (mode === 'range' || mode === 'multiple')\n ) {\n options.defaultDate = defaultDate;\n } else if (!Array.isArray(defaultDate)) {\n if (typeof defaultDate === 'string') {\n let parsedDate: Date | null = null;\n switch (effectiveDateFormat) {\n case 'Y-m-d': {\n const [year, month, day] = defaultDate.split('-').map(Number);\n parsedDate =\n !isNaN(year) && !isNaN(month) && !isNaN(day)\n ? new Date(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":"uHAQA,IAAIA,GAA0B,EAiB9B,MAAMC,EAAsB,CAC1B,QAAS,aACT,QAAS,aACT,QAAS,aACT,YAAa,qBACb,cAAe,qBACf,YAAa,qBACb,cAAe,qBACf,YAAa,qBACb,cAAe,qBACf,cAAe,wBACf,cAAe,wBACf,cAAe,yBAkCX,SAAUC,EAAkBC,GAChC,MAAMC,EAAaD,EAAOE,MAAM,KAAK,GAAGC,cACxC,OAAOC,EAAWC,SAASJ,EAC7B,CAEgB,SAAAK,EACdC,EACAC,GAEAD,EAAME,iBACNF,EAAMG,kBACNH,EAAMI,2BACNH,GAAuB,EACzB,CAEM,SAAUI,EACdJ,GAEAA,GAAuB,EACzB,UAEgBK,EACdC,EACAC,EACAP,GAEKM,IACHC,IACAP,GAAuB,GAE3B,CAEM,SAAUQ,EAAwBC,GAClCA,EAAcC,UAAYD,EAAcC,SAASC,YACnDF,EAAcC,SAASC,UAAYF,EAAcC,SAASC,UAAUC,KACjEC,GAAQA,EAAIC,OAAO,KAG1B,CAEM,SAAUC,EAAsBC,GACpC,IAAK3B,EAAyB,CAC5B,MAAM4B,EAAeC,SAASC,cAAc,SAC5CF,EAAaG,GAAK,0BAClBH,EAAaI,YAAcL,EAC3BE,SAASI,KAAKC,YAAYN,GAC1B5B,GAA0B,CAC3B,CACH,CAEOmC,eAAeC,EACpBC,GAEA,MAAMC,QACJA,EAAOC,WACPA,EAAUC,oBACVA,EAAmBC,sBACnBA,EAAqBC,gBACrBA,GACEL,EAEJ,GAAKC,EAKL,IACE,MAAMK,QAAgBH,IAEhBI,EAAmBC,IACvB,GAAIA,aAAcC,iBAChB,OAAOD,EAEP,IACE,IAAIE,EAAQF,EAAGG,cAAc,SAC7B,IAAKD,EAAO,CAIV,GAHAA,EAAQlB,SAASC,cAAc,SAC/BiB,EAAME,KAAO,OACbF,EAAMG,MAAMC,QAAU,QACjBN,EAAGO,YACN,MAAM,IAAIC,MAAM,uCAElBR,EAAGX,YAAYa,EAChB,CACD,OAAOA,CACR,CAAC,MAAOO,GAEP,MADAC,QAAQD,MAAM,6CAA8CA,GACtDA,CACP,CACF,EAGGE,EAAeZ,EAAgBN,GACrC,GAAIC,EAAY,CACd,MAAMkB,EAAkBb,EAAgBL,GACxCI,EAAQe,QAAU,IACZf,EAAQe,SAAW,GACvBC,EAAY,CAAEZ,MAAOU,IAExB,CAED,MAAMG,EAAoBC,EAAUL,EAAcb,GAElD,OAAIiB,GACFE,YAAW,KACLrB,GACFA,EAAsBmB,EACvB,GACA,GAEClB,GACFA,EAAgBkB,GAGZtB,aAAmBQ,kBACvBR,EAAQyB,iBAAiB,SAAS,KAChCH,EAAkBI,MAAM,KAIxBzB,GAAgBA,aAAsBO,kBACxCP,EAAWwB,iBAAiB,SAAS,KACnCH,EAAkBI,MAAM,IAIrBJ,QAEPL,QAAQD,MAAM,iCAGjB,CAAC,MAAOA,GAEP,YADAC,QAAQD,MAAM,gCAAiCA,EAEhD,MAxECC,QAAQD,MAAM,oDAyElB,CAEOnB,eAAe8B,EACpB5B,GAEA,MAAMC,QACJA,EAAOE,oBACPA,EAAmBC,sBACnBA,EAAqBC,gBACrBA,EAAewB,SACfA,GACE7B,EACJ,GAAKC,EAIL,IACE,MAAMK,QAAgBH,IAChB2B,EACJxB,EAAQyB,aAAgC,SAAjBzB,EAAQ0B,KAAkB,MAAQ,SAG3D,IAAIb,EACJ,GAHAb,EAAQyB,WAAaD,EAGjB7B,aAAmBQ,iBACrBU,EAAelB,EACfK,EAAQ2B,YAAa,OAErB,IACEd,EAAe3B,SAASC,cAAc,SACtC0B,EAAaP,KAAO,OACpBO,EAAaN,MAAMC,QAAU,OAE7B,MAAMoB,EAAgBL,GAAY5B,EAClC,IAAKiC,EACH,MAAM,IAAIlB,MAAM,uCAGlBkB,EAAcrC,YAAYsB,GAC1Bb,EAAQ2B,YAAa,EACrB3B,EAAQ6B,gBAAkBlC,CAC3B,CAAC,MAAOgB,GAEP,MADAC,QAAQD,MAAM,gCAAiCA,GACzCA,CACP,CAEH,MAAMM,EAAoBC,EAAUL,EAAcb,GAClD,OAAIiB,GACFE,YAAW,KACLrB,GACFA,EAAsBmB,EACvB,GACA,GACClB,GACFA,EAAgBkB,GAEZtB,aAAmBQ,kBACvBR,EAAQyB,iBAAiB,SAAS,IAAMH,EAAkBI,SAErDJ,QAEPL,QAAQD,MAAM,iCAGjB,CAAC,MAAOA,GAKP,OAJAC,QAAQD,MAAM,gCAAiCA,QAC3CA,aAAiBD,OACnBE,QAAQD,MAAM,iBAAkBA,EAAMmB,SAGzC,MAxDClB,QAAQD,MAAM,oDAyDlB,CAEM,SAAUoB,EAAkBC,GAChC,OAAOA,KAAU1E,CACnB,CAEgB,SAAA2E,EACdR,EACAS,GAEA,GAAIH,EAAkBN,GAAa,CAIjC,OAHoBS,EAChB,GAAG5E,EAAoBmE,SAAkBnE,EAAoBmE,KAC7DnE,EAAoBmE,EAEzB,CACD,MAAO,aACT,CAEM,SAAUU,EAAkBC,GAChC,MACE,CAAC,YAAa,mBACXxD,KAAKyD,GAAaD,EAAQE,QAAQD,KAClCE,MAAMrC,GAAiC,OAAPA,KAAgBhB,SAASsD,IAEhE,CAEOhD,eAAeK,EACpBH,SAEA,IAAKA,EAEH,OADAkB,QAAQD,MAAM,+CACP,GAGT,MAAMnD,OACJA,EAAMiE,WACNA,EAAUgB,WACVA,EAAUC,qBACVA,EAAoB/C,QACpBA,EAAOgD,WACPA,EAAUC,QACVA,EAAOC,QACPA,EAAOC,QACPA,EAAOC,QACPA,EAAOC,YACPA,EAAWC,YACXA,EAAWC,cACXA,EAAaC,OACbA,EAAMC,QACNA,EAAO1B,KACPA,EAAO,SAAQ2B,cACfA,EAAaC,KACbA,GAAO,EAAKC,WACZA,GAAa,EAAKhC,SAClBA,EAAQiC,SACRA,EAAQC,QACRA,EAAOC,OACPA,EAAMC,WACNA,GACEjE,EAUJ,IAAIjB,EARCjB,GACHoD,QAAQgD,KAAK,iDAGVnC,GACHb,QAAQgD,KAAK,mDAIf,IACEnF,QAAsBkF,EAAWnG,GACjCgB,EAAwBC,EACzB,CAAC,MAAOkC,GACPC,QAAQgD,KAAK,iDAAkDjD,GAC/DlC,EAAgBoF,CACjB,CAED,MAAMpG,EAAaD,EAAOE,MAAM,KAAK,GAAGC,cAClCmG,EAA0B,CAAC,KAAM,MAAMjG,SAASJ,GAEhDsG,EAAeC,OAAOC,YAAc,IAEpCzC,EACJC,IACU,SAATC,EAAmBgB,EAAuB,MAAQ,QAAW,SAE1D1C,EAAgC,CACpCyB,WAAYD,EACZE,KAAe,SAATA,EAAkB,SAAWA,EACnCe,WAAqB,SAATf,GAAyBe,EACrCc,WAAqB,SAAT7B,GAAyB6B,EACrCP,YAAaA,EACbkB,eAAe,EACfvB,WAAYA,IAAc,EAC1BhB,YAAY,EACZwC,UACkC,kBAAzBzB,EACHA,GACCoB,EACPM,aAAa,EACbC,eAAQC,EAAA5E,EAAQ2E,uBAChBf,OACAiB,WAAqB,UAAT7C,GAAoBqC,EAAe,EAAI,EACnDS,kBAAmB,SACnBhH,OAAQiB,EACR4E,cAAeA,QAAAA,IAA4B,aAAT3B,GAAuBe,GACzDe,SAAU,CAACiB,EAAeC,EAASC,KACjCnB,GAAYA,EAASiB,EAAeC,EAASC,EAAS,EAExDlB,QAAS,CAACgB,EAAeC,EAASC,KAChC,GAAa,UAATjD,GAAoBiD,EAASC,kBAAmB,CAClD,MAAMC,EACJF,EAASC,kBAAkBvE,cAAc,mBACd,IAAzBoE,EAAcK,SAChBD,SAAAA,EAAeE,UAAUC,IAAI,uBAC7BH,SAAAA,EAAeE,UAAUE,OAAO,aAAc,YAEjD,CACDxB,GAAWA,EAAQgB,EAAeC,EAASC,EAAS,EAEtDjB,OAAQ,CAACe,EAAeC,EAASC,KAC/BjB,GAAUA,EAAOe,EAAeC,EAASC,EAAS,GAuBtD,GAnBa,UAATjD,IACF1B,EAAQkF,QAAU,CAACC,EAAGC,EAAIT,KACxB,GAAIA,EAASC,kBAAmB,CAC9B,MAAMC,EACJF,EAASC,kBAAkBvE,cAAc,mBAC3CwE,SAAAA,EAAeE,UAAUC,IAAI,sBAC9B,IAICrF,aAAmBQ,mBACvBH,EAAQ6B,gBAAkBlC,GAGxBiD,IAAS5C,EAAQ4C,QAAUA,GAC3BC,IAAS7C,EAAQ6C,QAAUA,GAC3BC,IAAS9C,EAAQ8C,QAAUA,GAC3BC,IAAS/C,EAAQ+C,QAAUA,GAE3BC,EACF,IACEqC,MAAMC,QAAQtC,IACJ,UAATtB,GAA6B,aAATA,GAGhB,IAAK2D,MAAMC,QAAQtC,IACG,iBAAhBA,EAA0B,CACnC,IAAIuC,EAA0B,KAC9B,OAAQ/D,GACN,IAAK,QAAS,CACZ,MAAOgE,EAAMC,EAAO5G,GAAOmE,EAAYtF,MAAM,KAAKkB,IAAI8G,QACtDH,EACGI,MAAMH,IAAUG,MAAMF,IAAWE,MAAM9G,GAEpC,KADA,IAAI+G,KAAKJ,EAAMC,EAAQ,EAAG5G,EAAK,IAErC,KACD,CACD,IAAK,QAAS,CACZ,MAAOA,EAAK4G,EAAOD,GAAQxC,EAAYtF,MAAM,KAAKkB,IAAI8G,QACtDH,EACGI,MAAM9G,IAAS8G,MAAMF,IAAWE,MAAMH,GAEnC,KADA,IAAII,KAAKJ,EAAMC,EAAQ,EAAG5G,EAAK,IAErC,KACD,CACD,IAAK,QAAS,CACZ,MAAO4G,EAAO5G,EAAK2G,GAAQxC,EAAYtF,MAAM,KAAKkB,IAAI8G,QACtDH,EACGI,MAAMF,IAAWE,MAAM9G,IAAS8G,MAAMH,GAEnC,KADA,IAAII,KAAKJ,EAAMC,EAAQ,EAAG5G,EAAK,IAErC,KACD,CACD,QACE0G,EAAa,IAAIK,KAAK5C,GAG1BhD,EAAQgD,YAAcuC,GAAcvC,CACrC,OAlCDhD,EAAQgD,YAAcA,EAuD1B,OAlBIC,UACFjD,EAAQiD,YAAcA,GACpBC,UACFlD,EAAQkD,cAAgBA,GACtBC,GAAUA,EAAO2B,OAAS,IAAG9E,EAAQmD,OAASA,GAC9CC,GAAWA,EAAQ0B,OAAS,IAC9B9E,EAAQoD,QAAUA,EAAQxE,KAAKiH,IAC7B,GAAIA,aAAgBD,KAAM,OAAOC,EACjC,GAAoB,iBAATA,EAAmB,OAAO,IAAID,KAAKC,GAC9C,GAAoB,iBAATA,EAAmB,CAE5B,OADe3E,EAAU4E,UAAUD,EAAMrE,IACxBqE,CAClB,CACD,OAAOA,CAAI,KAGXtE,IAAUvB,EAAQuB,SAAWA,GAE1BvB,CACT,CAEM,SAAU+F,EAAiBtE,GAC/B,OAAOA,EAAW5D,SAAS,OAAS4D,EAAW5D,SAAS,KAC1D,CAEgB,SAAAiC,EACd6E,EACAqB,IAEIrB,eAAAA,EAAUC,mBACZqB,uBAAsB,KACpB,IACE,MAAMrB,kBAAEA,EAAiBsB,OAAEA,GAAWvB,EACtCC,EAAkBuB,aAAa,OAAQ,eACvCvB,EAAkBuB,aAAa,aAAc,YAE7CvB,EAAkBG,UAAUE,OAAO,kBAAmB,kBACtD,MAAMmB,EAAiBJ,EACnB,kBACA,oBACJpB,EAAkBG,UAAUC,IAAIoB,GAE5BF,QAAmC,IAAlBA,EAAO7B,SAC1BO,EAAkBG,UAAUE,OAC1B,uBACA,yBAEFL,EAAkBG,UAAUC,IAAI,mBAAmBkB,EAAO7B,UAE7D,CAAC,MAAO1D,GACPC,QAAQgD,KAAK,qCAAsCjD,EACpD,KAGHC,QAAQgD,KAAK,sCAEjB,CAEA,MAAMyC,EAA+C,CAAA,EAE9C7G,eAAemE,EAAWnG,aAC/B,GAAe,OAAXA,EAAiB,OAAOqG,EAC5B,GAAIwC,EAAY7I,GAAS,OAAO6I,EAAY7I,GAC5C,IAAKD,EAAkBC,GAErB,OADAoD,QAAQgD,KAAK,uBAAuBpG,gCAC7BqG,EAET,IACE,MAAMpG,EAAaD,EAAOE,MAAM,KAAK,GAAGC,cAClC2I,QAAeC,OAAO,uBAAuB9I,QAC7C+I,UACJC,EAAsB,QAAtBnC,EAAAgC,EAAO7I,UAAe,IAAA6G,EAAAA,UAAAoC,EAAAJ,EAAOK,8BAAUlJ,kBAAe6I,EAAOK,QAC/D,OAAKH,GAMLH,EAAY7I,GAAUgJ,EACfA,IANL5F,QAAQgD,KACN,uCAAuCpG,gCAElCqG,EAIV,CAAC,MAAOlD,GAKP,OAJAC,QAAQD,MACN,0BAA0BnD,+BAC1BmD,GAEKkD,CACR,CACH,UAEgB+C,IACd,MAAMC,EAAe3H,SAASmB,cAC5B,2CAEFnB,SAAS4H,iBAAiB,oBAAoBC,SAASC,IACrD,MAAMC,EAAYD,EAAQ3G,cACxB,sBAGA4G,GACAA,EAAUC,KACVD,EAAUE,KACVF,EAAUC,MAAQD,EAAUE,MAE3BH,EAAwBzG,MAAMC,QAAU,OAErCqG,IACFA,EAAatG,MAAM6G,WAAa,QAEnC,GAEL,CAEgB,SAAAC,EACd1H,EACA2H,EACAC,EACAC,EACAC,EACAC,GAEA,IAAK/H,EAEH,OADAiB,QAAQgD,KAAK,iCACN,CAAE+D,SAAS,EAAMC,kBAAmB,IAG7C,MAAMC,GAAWlI,EAAQmI,MAAMC,OACzBC,EAAaV,EAEnB,IAAIW,EAAWtI,EAAQsI,SACnBL,EAAoBjI,EAAQiI,kBAE5BI,GAAcH,IAChBI,EAAW,IAAKA,EAAUC,cAAc,GACxCN,EAAoBJ,GAGlBD,IACFU,EAAW,IAAKA,EAAUE,aAAa,GACvCP,EAAoBL,GAGtBG,EAAUU,YAAYH,EAAUL,EAAmBjI,GAKnD,MAAO,CAAEgI,SAFNJ,KAAiBE,IAAkBI,GAAYA,IAAYG,GAE5CJ,oBACpB,UAEgBS,EACdjG,EACAkG,EACAC,GAEAnG,EAAQoG,cACN,IAAIC,YAAYH,EAAW,CACzBC,SACAG,SAAS,EACTC,UAAU,IAGhB"}
|
|
1
|
+
{"version":3,"file":"flatpickr.js","sources":["../../../src/common/helpers/flatpickr.ts"],"sourcesContent":["import flatpickr from 'flatpickr';\nimport rangePlugin from 'flatpickr/dist/plugins/rangePlugin';\nimport { Instance } from 'flatpickr/dist/types/instance';\nimport { BaseOptions, Hook } from 'flatpickr/dist/types/options';\nimport { Locale } from 'flatpickr/dist/types/locale';\nimport { default as English } from 'flatpickr/dist/l10n/default.js';\nimport { langsArray, SupportedLocale } from '../flatpickrLangs';\n\nlet flatpickrStylesInjected = false;\n\ninterface BaseFlatpickrContext {\n getFlatpickrOptions: () => Promise<Partial<BaseOptions>>;\n setCalendarAttributes: (instance: Instance) => void;\n setInitialDates?: (instance: Instance) => void;\n}\n\ninterface SingleFlatpickrContext extends BaseFlatpickrContext {\n inputEl: HTMLElement;\n}\n\ninterface RangeFlatpickrContext extends BaseFlatpickrContext {\n inputEl: HTMLElement;\n endinputEl?: HTMLElement;\n}\n\nconst DATE_FORMAT_OPTIONS = {\n 'Y-m-d': 'yyyy-mm-dd',\n 'm-d-Y': 'mm-dd-yyyy',\n 'd-m-Y': 'dd-mm-yyyy',\n 'Y-m-d H:i': 'yyyy-mm-dd —— : ——',\n 'Y-m-d h:i K': 'yyyy-mm-dd —— : ——',\n 'm-d-Y H:i': 'mm-dd-yyyy —— : ——',\n 'm-d-Y h:i K': 'mm-dd-yyyy —— : ——',\n 'd-m-Y H:i': 'dd-mm-yyyy —— : ——',\n 'd-m-Y h:i K': 'dd-mm-yyyy —— : ——',\n 'Y-m-d H:i:s': 'yyyy-mm-dd —— : —— ——',\n 'm-d-Y H:i:s': 'mm-dd-yyyy —— : —— ——',\n 'd-m-Y H:i:s': 'dd-mm-yyyy —— : —— ——',\n} as const;\n\ntype DateFormatOption = keyof typeof DATE_FORMAT_OPTIONS;\n\ninterface FlatpickrOptionsContext {\n locale: string;\n dateFormat?: string;\n defaultDate?: string | Date | string[] | Date[];\n defaultHour?: number;\n defaultMinute?: number;\n enableTime: boolean;\n twentyFourHourFormat?: boolean;\n endinputEl?: HTMLElement;\n inputEl: HTMLElement;\n allowInput?: boolean;\n minDate?: string | number | Date;\n maxDate?: string | number | Date;\n minTime?: string | number | Date;\n maxTime?: string | number | Date;\n enable?: (string | number | Date)[];\n disable?: (string | number | Date)[];\n onChange?: Hook;\n onClose?: Hook;\n onOpen?: Hook;\n loadLocale: (locale: string) => Promise<Partial<Locale>>;\n mode?: 'single' | 'multiple' | 'range' | 'time';\n closeOnSelect?: boolean;\n wrap?: boolean;\n noCalendar?: boolean;\n appendTo?: HTMLElement;\n static?: boolean;\n}\n\nexport function isSupportedLocale(locale: string): boolean {\n const baseLocale = locale.split('-')[0].toLowerCase();\n return langsArray.includes(baseLocale as SupportedLocale);\n}\n\nexport function preventFlatpickrOpen(\n event: Event,\n setShouldFlatpickrOpen: (value: boolean) => void\n): void {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n setShouldFlatpickrOpen(false);\n}\n\nexport function handleInputClick(\n setShouldFlatpickrOpen: (value: boolean) => void\n): void {\n setShouldFlatpickrOpen(true);\n}\n\nexport function handleInputFocus(\n shouldFlatpickrOpen: boolean,\n closeFlatpickr: () => void,\n setShouldFlatpickrOpen: (value: boolean) => void\n): void {\n if (!shouldFlatpickrOpen) {\n closeFlatpickr();\n setShouldFlatpickrOpen(true);\n }\n}\n\nexport function modifyWeekdayShorthands(localeOptions: Partial<Locale>): void {\n if (localeOptions.weekdays && localeOptions.weekdays.shorthand) {\n localeOptions.weekdays.shorthand = localeOptions.weekdays.shorthand.map(\n (day) => day.charAt(0)\n ) as [string, string, string, string, string, string, string];\n }\n}\n\nexport function injectFlatpickrStyles(customStyle: string): void {\n if (!flatpickrStylesInjected) {\n const styleElement = document.createElement('style');\n styleElement.id = 'flatpickr-custom-styles';\n styleElement.textContent = customStyle;\n document.head.appendChild(styleElement);\n flatpickrStylesInjected = true;\n }\n}\n\nexport async function initializeMultiAnchorFlatpickr(\n context: RangeFlatpickrContext\n): Promise<Instance | undefined> {\n const {\n inputEl,\n endinputEl,\n getFlatpickrOptions,\n setCalendarAttributes,\n setInitialDates,\n } = context;\n\n if (!inputEl) {\n console.error('Cannot initialize Flatpickr: inputEl is undefined');\n return undefined;\n }\n\n try {\n const options = await getFlatpickrOptions();\n\n const getInputElement = (el: HTMLElement): HTMLInputElement => {\n if (el instanceof HTMLInputElement) {\n return el;\n } else {\n try {\n let input = el.querySelector('input') as HTMLInputElement | null;\n if (!input) {\n input = document.createElement('input');\n input.type = 'text';\n input.style.display = 'none';\n if (!el.isConnected) {\n throw new Error('Element is not connected to the DOM');\n }\n el.appendChild(input);\n }\n return input;\n } catch (error) {\n console.error('Error creating or appending input element:', error);\n throw error;\n }\n }\n };\n\n const inputElement = getInputElement(inputEl);\n if (endinputEl) {\n const endInputElement = getInputElement(endinputEl);\n options.plugins = [\n ...(options.plugins || []),\n rangePlugin({ input: endInputElement }),\n ];\n }\n\n const flatpickrInstance = flatpickr(inputElement, options) as Instance;\n\n if (flatpickrInstance) {\n setTimeout(() => {\n if (setCalendarAttributes) {\n setCalendarAttributes(flatpickrInstance);\n }\n }, 0);\n\n if (setInitialDates) {\n setInitialDates(flatpickrInstance);\n }\n\n if (!(inputEl instanceof HTMLInputElement)) {\n inputEl.addEventListener('click', () => {\n flatpickrInstance.open();\n });\n }\n\n if (endinputEl && !(endinputEl instanceof HTMLInputElement)) {\n endinputEl.addEventListener('click', () => {\n flatpickrInstance.open();\n });\n }\n\n return flatpickrInstance;\n } else {\n console.error('Failed to initialize Flatpickr');\n return undefined;\n }\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n return undefined;\n }\n}\n\nexport async function initializeSingleAnchorFlatpickr(\n context: SingleFlatpickrContext & { appendTo?: HTMLElement }\n): Promise<Instance | undefined> {\n const {\n inputEl,\n getFlatpickrOptions,\n setCalendarAttributes,\n setInitialDates,\n appendTo,\n } = context;\n if (!inputEl) {\n console.error('Cannot initialize Flatpickr: inputEl is undefined');\n return undefined;\n }\n try {\n const options = await getFlatpickrOptions();\n const effectiveDateFormat =\n options.dateFormat || (options.mode === 'time' ? 'H:i' : 'Y-m-d');\n options.dateFormat = effectiveDateFormat;\n\n let inputElement: HTMLInputElement;\n if (inputEl instanceof HTMLInputElement) {\n inputElement = inputEl;\n options.clickOpens = true;\n } else {\n try {\n inputElement = document.createElement('input');\n inputElement.type = 'text';\n inputElement.style.display = 'none';\n\n const targetElement = appendTo || inputEl;\n if (!targetElement) {\n throw new Error('No valid element to append input to');\n }\n\n targetElement.appendChild(inputElement);\n options.clickOpens = false;\n options.positionElement = inputEl;\n } catch (error) {\n console.error('Error creating input element:', error);\n throw error;\n }\n }\n const flatpickrInstance = flatpickr(inputElement, options) as Instance;\n if (flatpickrInstance) {\n setTimeout(() => {\n if (setCalendarAttributes) {\n setCalendarAttributes(flatpickrInstance);\n }\n }, 0);\n if (setInitialDates) {\n setInitialDates(flatpickrInstance);\n }\n if (!(inputEl instanceof HTMLInputElement)) {\n inputEl.addEventListener('click', () => flatpickrInstance.open());\n }\n return flatpickrInstance;\n } else {\n console.error('Failed to initialize Flatpickr');\n return undefined;\n }\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n if (error instanceof Error) {\n console.error('Error details:', error.message);\n }\n return undefined;\n }\n}\n\nexport function isValidDateFormat(format: string): format is DateFormatOption {\n return format in DATE_FORMAT_OPTIONS;\n}\n\nexport function getPlaceholder(\n dateFormat: string,\n isDateRange?: boolean\n): string {\n if (!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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"}
|
|
@@ -62,10 +62,6 @@ export declare class AISourcesFeedback extends LitElement {
|
|
|
62
62
|
* @ignore
|
|
63
63
|
*/
|
|
64
64
|
_sourceEls: any;
|
|
65
|
-
/** Sources anchor text
|
|
66
|
-
* @internal
|
|
67
|
-
*/
|
|
68
|
-
sourcesOriginalText: any;
|
|
69
65
|
/** Tracks the number of clicks on thumbs up icon
|
|
70
66
|
* @internal
|
|
71
67
|
*/
|
|
@@ -84,9 +80,6 @@ export declare class AISourcesFeedback extends LitElement {
|
|
|
84
80
|
private _toggleLimitRevealed;
|
|
85
81
|
willUpdate(changedProps: any): void;
|
|
86
82
|
protected updated(changedProps: any): void;
|
|
87
|
-
connectedCallback(): void;
|
|
88
|
-
disconnectedCallback(): void;
|
|
89
|
-
private updateSourcesText;
|
|
90
83
|
}
|
|
91
84
|
declare global {
|
|
92
85
|
interface HTMLElementTagNameMap {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiSourcesFeedback.d.ts","sourceRoot":"","sources":["../../../../src/components/ai/sourcesFeedback/aiSourcesFeedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAoBvC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,uBAAuB,CAAC;AAW/B;;;;;;;;GAQG;AAEH,qBACa,iBAAkB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,QAAgB;IAEtC,uDAAuD;IAEvD,aAAa,UAAS;IAEtB,2DAA2D;IAE3D,cAAc,UAAS;IAEvB,0DAA0D;IAE1D,eAAe,UAAS;IAExB,6DAA6D;IAE7D,gBAAgB,UAAS;IAEzB,0DAA0D;IAE1D,gBAAgB,UAAS;IAEzB,iCAAiC;IAEjC,WAAW;;;;;;;MAAuB;IAElC,yBAAyB;IAEzB,SAAS,SAAW;IAEpB;;OAEG;IAEH,WAAW,SAAK;IAEhB;;OAEG;IAEH,aAAa,UAAS;IAEtB;;OAEG;IAEH,YAAY;;;;;;;MAAuB;IAEnC;;OAEG;IAEH,qBAAqB,EAAE,GAAG,CAAQ;IAElC;;;OAGG;IAEH,UAAU,EAAG,GAAG,CAAC;IAEjB;;OAEG;
|
|
1
|
+
{"version":3,"file":"aiSourcesFeedback.d.ts","sourceRoot":"","sources":["../../../../src/components/ai/sourcesFeedback/aiSourcesFeedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAoBvC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,uBAAuB,CAAC;AAW/B;;;;;;;;GAQG;AAEH,qBACa,iBAAkB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,QAAgB;IAEtC,uDAAuD;IAEvD,aAAa,UAAS;IAEtB,2DAA2D;IAE3D,cAAc,UAAS;IAEvB,0DAA0D;IAE1D,eAAe,UAAS;IAExB,6DAA6D;IAE7D,gBAAgB,UAAS;IAEzB,0DAA0D;IAE1D,gBAAgB,UAAS;IAEzB,iCAAiC;IAEjC,WAAW;;;;;;;MAAuB;IAElC,yBAAyB;IAEzB,SAAS,SAAW;IAEpB;;OAEG;IAEH,WAAW,SAAK;IAEhB;;OAEG;IAEH,aAAa,UAAS;IAEtB;;OAEG;IAEH,YAAY;;;;;;;MAAuB;IAEnC;;OAEG;IAEH,qBAAqB,EAAE,GAAG,CAAQ;IAElC;;;OAGG;IAEH,UAAU,EAAG,GAAG,CAAC;IAEjB;;OAEG;IACM,kBAAkB,SAAK;IAEhC;;OAEG;IACM,oBAAoB,SAAK;IAEzB,MAAM;IAuKf,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,qBAAqB;IAyB7B,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,oBAAoB;IAY5B,SAAS,CAAC,iBAAiB;IAI3B,OAAO,CAAC,oBAAoB;IAgBnB,UAAU,CAAC,YAAY,EAAE,GAAG;cAMlB,OAAO,CAAC,YAAY,EAAE,GAAG,GAAG,IAAI;CAQpD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,yBAAyB,EAAE,iBAAiB,CAAC;KAC9C;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as e}from"../../../vendor/tslib-53a81efe.js";import{n as t,t as s,l as i,c as o,e as n}from"../../../vendor/lit-446874c7.js";import{i as d,s as a,x as l}from"../../../vendor/lit-element-c6c02f24.js";import{d as r}from"../../../vendor/deepmerge-ts-e62363e6.js";import{e as c}from"../../../vendor/lit-html-29220869.js";import{f as p,D as h,E as
|
|
1
|
+
import{_ as e}from"../../../vendor/tslib-53a81efe.js";import{n as t,t as s,l as i,c as o,e as n}from"../../../vendor/lit-446874c7.js";import{i as d,s as a,x as l}from"../../../vendor/lit-element-c6c02f24.js";import{d as r}from"../../../vendor/deepmerge-ts-e62363e6.js";import{e as c}from"../../../vendor/lit-html-29220869.js";import{f as p,D as h,E as b,F as k,G as u,c as m}from"../../../vendor/@kyndryl-design-system/shidoka-icons-ab960376.js";import"../../reusable/link/link.js";import"../../reusable/card/card.js";import"../../reusable/card/vitalCard.skeleton.js";import"../../reusable/card/informationalCard.skeleton.js";import"../../reusable/button/button.js";import"../../reusable/link/defs.js";import"../../reusable/loaders/skeleton.js";import"../../../cardSample-a67570dc.js";import"../../../common/helpers/helpers.js";import"../../reusable/button/defs.js";var v=d`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
box-sizing: border-box;
|
|
@@ -115,7 +115,7 @@ import{_ as e}from"../../../vendor/tslib-53a81efe.js";import{n as t,t as s,l as
|
|
|
115
115
|
@on-click="${e=>this._handleClick(e,"sources")}"
|
|
116
116
|
id="kyn-sources-title"
|
|
117
117
|
>
|
|
118
|
-
|
|
118
|
+
<span>${this._textStrings.sourcesText}</span>
|
|
119
119
|
<span class="expand-icon" slot="icon"
|
|
120
120
|
>${o(p)}</span
|
|
121
121
|
>
|
|
@@ -137,7 +137,7 @@ import{_ as e}from"../../../vendor/tslib-53a81efe.js";import{n as t,t as s,l as
|
|
|
137
137
|
@on-click=${e=>this._handleClick(e,"feedback","positive")}
|
|
138
138
|
>
|
|
139
139
|
<span slot="icon">
|
|
140
|
-
${o(this.thumbsUpClickCount%2==0?h:
|
|
140
|
+
${o(this.thumbsUpClickCount%2==0?h:b)}
|
|
141
141
|
</span>
|
|
142
142
|
</kyn-button>
|
|
143
143
|
</div>
|
|
@@ -155,7 +155,7 @@ import{_ as e}from"../../../vendor/tslib-53a81efe.js";import{n as t,t as s,l as
|
|
|
155
155
|
@on-click="${e=>this._handleClick(e,"feedback","negative")}"
|
|
156
156
|
>
|
|
157
157
|
<span slot="icon"
|
|
158
|
-
>${o(this.thumbsDownClickCount%2==0?
|
|
158
|
+
>${o(this.thumbsDownClickCount%2==0?k:u)}
|
|
159
159
|
</span>
|
|
160
160
|
</kyn-button>
|
|
161
161
|
</div>
|
|
@@ -223,5 +223,5 @@ import{_ as e}from"../../../vendor/tslib-53a81efe.js";import{n as t,t as s,l as
|
|
|
223
223
|
|
|
224
224
|
<slot name="feedback-form"></slot>
|
|
225
225
|
</div>
|
|
226
|
-
`}_handleClick(e,t,s){var i;if(e.preventDefault(),"sources"===t&&this.sourcesDisabled||"feedback"===t&&this.feedbackDisabled)return;(null===(i=e.target.id)||void 0===i?void 0:i.includes("kyn-feedback-title"))&&s&&this._updateFeedbackCounts(s),("sources"===t||this._shouldEmitFeedbackEvent(s))&&this._emitToggleEvent(t,s)}_updateFeedbackCounts(e){const t="positive"===e&&this.thumbsUpClickCount%2!=0||"negative"===e&&this.thumbsDownClickCount%2!=0;"positive"===e?(this.thumbsUpClickCount++,this.thumbsDownClickCount-=this.thumbsDownClickCount%2):(this.thumbsDownClickCount++,this.thumbsUpClickCount-=this.thumbsUpClickCount%2),t&&this.dispatchEvent(new CustomEvent("on-feedback-deselected",{detail:{feedbackType:e},bubbles:!0,composed:!0}))}_shouldEmitFeedbackEvent(e){if(!e)return!1;const t=e=>e%2!=0;return"positive"===e&&(t(this.thumbsUpClickCount)||this.feedbackOpened&&!t(this.thumbsUpClickCount))||"negative"===e&&(t(this.thumbsDownClickCount)||this.feedbackOpened&&!t(this.thumbsDownClickCount))}_emitToggleEvent(e,t){"sources"===e?(this.sourcesOpened=!this.sourcesOpened,this.feedbackOpened=!1):"feedback"===e&&(this.sourcesOpened=!1,this._toggleFeedbackPanel(t)),this.dispatchEvent(new CustomEvent("on-toggle",{detail:{sourcesOpened:this.sourcesOpened,feedbackOpened:this.feedbackOpened,selectedFeedbackType:this._selectedFeedbackType}}))}_toggleFeedbackPanel(e){e&&(this._selectedFeedbackType===e&&this.feedbackOpened?(this.feedbackOpened=!1,this._selectedFeedbackType=null):(this.feedbackOpened=!0,this._selectedFeedbackType=e))}_handleSlotChange(){this._toggleLimitRevealed(this.limitRevealed)}_toggleLimitRevealed(e){this.limitRevealed=e,this._sourceEls.forEach(((e,t)=>{this.revealAllSources||this.limitRevealed||t<this._limitCount?e.style.display="block":e.style.display="none"}))}willUpdate(e){e.has("textStrings")&&(this._textStrings=r(y,this.textStrings)
|
|
226
|
+
`}_handleClick(e,t,s){var i;if(e.preventDefault(),"sources"===t&&this.sourcesDisabled||"feedback"===t&&this.feedbackDisabled)return;(null===(i=e.target.id)||void 0===i?void 0:i.includes("kyn-feedback-title"))&&s&&this._updateFeedbackCounts(s),("sources"===t||this._shouldEmitFeedbackEvent(s))&&this._emitToggleEvent(t,s)}_updateFeedbackCounts(e){const t="positive"===e&&this.thumbsUpClickCount%2!=0||"negative"===e&&this.thumbsDownClickCount%2!=0;"positive"===e?(this.thumbsUpClickCount++,this.thumbsDownClickCount-=this.thumbsDownClickCount%2):(this.thumbsDownClickCount++,this.thumbsUpClickCount-=this.thumbsUpClickCount%2),t&&this.dispatchEvent(new CustomEvent("on-feedback-deselected",{detail:{feedbackType:e},bubbles:!0,composed:!0}))}_shouldEmitFeedbackEvent(e){if(!e)return!1;const t=e=>e%2!=0;return"positive"===e&&(t(this.thumbsUpClickCount)||this.feedbackOpened&&!t(this.thumbsUpClickCount))||"negative"===e&&(t(this.thumbsDownClickCount)||this.feedbackOpened&&!t(this.thumbsDownClickCount))}_emitToggleEvent(e,t){"sources"===e?(this.sourcesOpened=!this.sourcesOpened,this.feedbackOpened=!1):"feedback"===e&&(this.sourcesOpened=!1,this._toggleFeedbackPanel(t)),this.dispatchEvent(new CustomEvent("on-toggle",{detail:{sourcesOpened:this.sourcesOpened,feedbackOpened:this.feedbackOpened,selectedFeedbackType:this._selectedFeedbackType}}))}_toggleFeedbackPanel(e){e&&(this._selectedFeedbackType===e&&this.feedbackOpened?(this.feedbackOpened=!1,this._selectedFeedbackType=null):(this.feedbackOpened=!0,this._selectedFeedbackType=e))}_handleSlotChange(){this._toggleLimitRevealed(this.limitRevealed)}_toggleLimitRevealed(e){this.limitRevealed=e,this._sourceEls.forEach(((e,t)=>{this.revealAllSources||this.limitRevealed||t<this._limitCount?e.style.display="block":e.style.display="none"}))}willUpdate(e){e.has("textStrings")&&(this._textStrings=r(y,this.textStrings))}updated(e){e.has("revealAllSources")&&void 0!==e.get("revealAllSources")&&this._toggleLimitRevealed(!1)}};g.styles=[v],e([t({type:Boolean})],g.prototype,"sourcesOpened",void 0),e([t({type:Boolean})],g.prototype,"feedbackOpened",void 0),e([t({type:Boolean})],g.prototype,"sourcesDisabled",void 0),e([t({type:Boolean})],g.prototype,"feedbackDisabled",void 0),e([t({type:Boolean})],g.prototype,"revealAllSources",void 0),e([t({type:Object})],g.prototype,"textStrings",void 0),e([t({type:String})],g.prototype,"closeText",void 0),e([s()],g.prototype,"_limitCount",void 0),e([s()],g.prototype,"limitRevealed",void 0),e([s()],g.prototype,"_textStrings",void 0),e([s()],g.prototype,"_selectedFeedbackType",void 0),e([i({slot:"sources"})],g.prototype,"_sourceEls",void 0),e([s()],g.prototype,"thumbsUpClickCount",void 0),e([s()],g.prototype,"thumbsDownClickCount",void 0),g=e([n("kyn-ai-sources-feedback")],g);export{g as AISourcesFeedback};
|
|
227
227
|
//# sourceMappingURL=aiSourcesFeedback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiSourcesFeedback.js","sources":["../../../../src/components/ai/sourcesFeedback/aiSourcesFeedback.ts"],"sourcesContent":["import { html, LitElement } from 'lit';\nimport {\n customElement,\n property,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport { deepmerge } from 'deepmerge-ts';\nimport { classMap } from 'lit-html/directives/class-map.js';\n\nimport stylesheet from './aiSourcesFeedback.scss';\n\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport chevronIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\nimport thumbsUpIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/thumbs-up.svg';\nimport thumbsDownIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/thumbs-down.svg';\nimport thumbsUpFilledIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/thumbs-up-filled.svg';\nimport thumbsDownFilledIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/thumbs-down-filled.svg';\nimport closeIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\nimport '../../reusable/link';\nimport '../../reusable/card';\nimport '../../reusable/button';\n\nconst _defaultTextStrings = {\n sourcesText: 'Sources',\n foundSources: 'Found sources',\n showMore: 'Show more',\n showLess: 'Show less',\n positiveFeedback: 'Share what you liked',\n negativeFeedback: 'Help us improve',\n};\n\n/**\n * AISourcesFeedback Component.\n *\n * @slot copy - copy button\n * @slot sources - source cards in source panel.\n * @slot feedback-form - Positive feedback form.\n * @fires on-toggle - Emits the `opened` state when the panel item opens/closes.\n * @fires on-feedback-deselected - Emits when thumbs-up or thumbs-down button is deselected.\n */\n\n@customElement('kyn-ai-sources-feedback')\nexport class AISourcesFeedback extends LitElement {\n static override styles = [stylesheet];\n\n /** expandable anchor opened state for Sources used. */\n @property({ type: Boolean })\n sourcesOpened = false;\n\n /** expandable anchor opened state for Feedback buttons. */\n @property({ type: Boolean })\n feedbackOpened = false;\n\n /** expandable anchor disabled state for Sources used.. */\n @property({ type: Boolean })\n sourcesDisabled = false;\n\n /** expandable anchor disabled state for Feedback buttons. */\n @property({ type: Boolean })\n feedbackDisabled = false;\n\n /** Limits visible sources behind a \"Show more\" button. */\n @property({ type: Boolean })\n revealAllSources = false;\n\n /** Text string customization. */\n @property({ type: Object })\n textStrings = _defaultTextStrings;\n\n /** Close button text. */\n @property({ type: String })\n closeText = 'Close';\n\n /** Number of sources visible when limited.\n * @internal\n */\n @state()\n _limitCount = 4;\n\n /** Sources limit visibility.\n * @internal\n */\n @state()\n limitRevealed = false;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n _textStrings = _defaultTextStrings;\n\n /** Selecting Positive or Negative Feedback\n * @internal\n */\n @state()\n _selectedFeedbackType: any = null;\n\n /**\n * Queries slotted sources.\n * @ignore\n */\n @queryAssignedElements({ slot: 'sources' })\n _sourceEls!: any;\n\n /** Sources anchor text\n * @internal\n */\n @state()\n sourcesOriginalText: any;\n\n /** Tracks the number of clicks on thumbs up icon\n * @internal\n */\n @state() thumbsUpClickCount = 0;\n\n /** Tracks the number of clicks on thumbs down icon\n * @internal\n */\n @state() thumbsDownClickCount = 0;\n\n override render() {\n const classesSources: any = classMap({\n 'kyn-sources': true,\n opened: this.sourcesOpened,\n disabled: this.sourcesDisabled,\n });\n const classesFeedback1: any = classMap({\n 'kyn-pos-feedback': true,\n disabled:\n this.feedbackDisabled && this._selectedFeedbackType === 'positive',\n });\n const classesFeedback2: any = classMap({\n 'kyn-neg-feedback': true,\n disabled:\n this.feedbackDisabled && this._selectedFeedbackType === 'positive',\n });\n return html`\n <div class=\"action-bar\">\n <div class=\"left-div\">\n <slot name=\"copy\"></slot>\n\n <div class=\"${classesSources}\">\n <kyn-button\n kind=\"ghost\"\n size=\"small\"\n class=\"kyn-sources-title\"\n iconPosition=\"right\"\n aria-controls=\"kyn-sources-body\"\n aria-expanded=${this.sourcesOpened}\n ?disabled=${this.sourcesDisabled}\n @on-click=\"${(e: Event) => this._handleClick(e, 'sources')}\"\n id=\"kyn-sources-title\"\n >\n ${this._textStrings.sourcesText}\n <span class=\"expand-icon\" slot=\"icon\"\n >${unsafeSVG(chevronIcon)}</span\n >\n </kyn-button>\n </div>\n </div>\n\n <div class=\"right-div\">\n <div class=\"${classesFeedback1}\">\n <kyn-button\n kind=\"ghost\"\n size=\"small\"\n id=\"kyn-feedback-title-positive\"\n class=\"kyn-feedback-title\"\n aria-controls=\"kyn-feedback-body\"\n aria-expanded=${this.feedbackOpened}\n ?disabled=${this.feedbackDisabled}\n description=${this._textStrings.positiveFeedback}\n @on-click=${(e: Event) =>\n this._handleClick(e, 'feedback', 'positive')}\n >\n <span slot=\"icon\">\n ${unsafeSVG(\n this.thumbsUpClickCount % 2 === 0\n ? thumbsUpIcon\n : thumbsUpFilledIcon\n )}\n </span>\n </kyn-button>\n </div>\n\n <div class=\"${classesFeedback2}\">\n <kyn-button\n kind=\"ghost\"\n size=\"small\"\n id=\"kyn-feedback-title-negative\"\n class=\"kyn-feedback-title\"\n aria-controls=\"kyn-feedback-body\"\n aria-expanded=${this.feedbackOpened}\n ?disabled=${this.feedbackDisabled}\n description=${this._textStrings.negativeFeedback}\n @on-click=\"${(e: Event) =>\n this._handleClick(e, 'feedback', 'negative')}\"\n >\n <span slot=\"icon\"\n >${unsafeSVG(\n this.thumbsDownClickCount % 2 === 0\n ? thumbsDownIcon\n : thumbsDownFilledIcon\n )}\n </span>\n </kyn-button>\n </div>\n </div>\n </div>\n\n <div\n class=\"${classMap({\n opened: this.sourcesOpened,\n 'kyn-sources-body': true,\n })}\"\n id=\"kyn-sources-body\"\n role=\"region\"\n aria-labelledby=\"kyn-sources-title\"\n >\n <div class=\"close-container\">\n <kyn-button\n class=\"close\"\n @on-click=${(e: Event) => this._handleClick(e, 'sources')}\n }}\n kind=\"ghost\"\n size=\"small\"\n description=${this.closeText}\n >\n <span slot=\"icon\">${unsafeSVG(closeIcon)}</span>\n </kyn-button>\n </div>\n\n <div class=\"found-sources\">\n ${this._textStrings.foundSources} (${this._sourceEls.length}) :\n </div>\n <div class=\"card-container\">\n <slot name=\"sources\" @slotchange=${this._handleSlotChange}></slot>\n </div>\n ${!this.revealAllSources && this._sourceEls.length > this._limitCount\n ? html`\n <kyn-button\n class=\"reveal-toggle\"\n kind=\"ghost\"\n size=\"small\"\n @on-click=${() =>\n this._toggleLimitRevealed(!this.limitRevealed)}\n >\n ${this.limitRevealed\n ? html`${this._textStrings.showLess}`\n : html`\n ${this._textStrings.showMore}\n (${this._sourceEls.length - this._limitCount})\n `}\n </kyn-button>\n `\n : null}\n </div>\n\n <div\n class=\"${classMap({\n opened: this.feedbackOpened,\n 'kyn-feedback-body': true,\n })}\"\n id=\"kyn-feedback-body\"\n role=\"region\"\n aria-labelledby=\"kyn-feedback-title-${this._selectedFeedbackType\n ? 'positive'\n : 'negative'}\"\n >\n <div class=\"close-container\">\n <kyn-button\n class=\"close\"\n description=${this.closeText}\n @on-click=${(e: Event) =>\n this._handleClick(e, 'feedback', this._selectedFeedbackType)}\n }}\n kind=\"ghost\"\n size=\"small\"\n >\n <span slot=\"icon\">${unsafeSVG(closeIcon)}</span>\n </kyn-button>\n </div>\n\n <slot name=\"feedback-form\"></slot>\n </div>\n `;\n }\n private _handleClick(\n e: Event,\n panel: 'sources' | 'feedback',\n feedbackType?: 'positive' | 'negative'\n ) {\n e.preventDefault();\n\n if (\n (panel === 'sources' && this.sourcesDisabled) ||\n (panel === 'feedback' && this.feedbackDisabled)\n ) {\n return;\n }\n\n const target = e.target as HTMLElement;\n const isFeedbackButton = target.id?.includes('kyn-feedback-title');\n\n if (isFeedbackButton && feedbackType) {\n this._updateFeedbackCounts(feedbackType);\n }\n\n if (panel === 'sources' || this._shouldEmitFeedbackEvent(feedbackType)) {\n this._emitToggleEvent(panel, feedbackType);\n }\n }\n\n private _updateFeedbackCounts(feedbackType: 'positive' | 'negative') {\n // Checks if the feedbackType was already selected before updating the counts.\n const wasSelected =\n (feedbackType === 'positive' && this.thumbsUpClickCount % 2 !== 0) ||\n (feedbackType === 'negative' && this.thumbsDownClickCount % 2 !== 0);\n\n if (feedbackType === 'positive') {\n this.thumbsUpClickCount++;\n this.thumbsDownClickCount -= this.thumbsDownClickCount % 2;\n } else {\n this.thumbsDownClickCount++;\n this.thumbsUpClickCount -= this.thumbsUpClickCount % 2;\n }\n\n if (wasSelected) {\n this.dispatchEvent(\n new CustomEvent('on-feedback-deselected', {\n detail: { feedbackType },\n bubbles: true,\n composed: true,\n })\n );\n }\n }\n\n private _shouldEmitFeedbackEvent(\n feedbackType?: 'positive' | 'negative'\n ): boolean {\n if (!feedbackType) return false;\n const isOddClick = (count: number) => count % 2 !== 0;\n\n return (\n (feedbackType === 'positive' &&\n (isOddClick(this.thumbsUpClickCount) ||\n (this.feedbackOpened && !isOddClick(this.thumbsUpClickCount)))) ||\n (feedbackType === 'negative' &&\n (isOddClick(this.thumbsDownClickCount) ||\n (this.feedbackOpened && !isOddClick(this.thumbsDownClickCount))))\n );\n }\n\n private _emitToggleEvent(\n panel: 'sources' | 'feedback',\n feedbackType?: 'positive' | 'negative'\n ) {\n if (panel === 'sources') {\n this.sourcesOpened = !this.sourcesOpened;\n this.feedbackOpened = false;\n } else if (panel === 'feedback') {\n this.sourcesOpened = false;\n this._toggleFeedbackPanel(feedbackType);\n }\n\n this.dispatchEvent(\n new CustomEvent('on-toggle', {\n detail: {\n sourcesOpened: this.sourcesOpened,\n feedbackOpened: this.feedbackOpened,\n selectedFeedbackType: this._selectedFeedbackType,\n },\n })\n );\n }\n\n private _toggleFeedbackPanel(feedbackType?: 'positive' | 'negative') {\n if (!feedbackType) return;\n\n if (this._selectedFeedbackType === feedbackType && this.feedbackOpened) {\n this.feedbackOpened = false;\n this._selectedFeedbackType = null;\n } else {\n this.feedbackOpened = true;\n this._selectedFeedbackType = feedbackType;\n }\n }\n\n protected _handleSlotChange() {\n this._toggleLimitRevealed(this.limitRevealed);\n }\n\n private _toggleLimitRevealed(revealed: boolean) {\n this.limitRevealed = revealed;\n\n this._sourceEls.forEach((sourceEl: any, index: any) => {\n if (this.revealAllSources || this.limitRevealed) {\n sourceEl.style.display = 'block';\n } else {\n if (index < this._limitCount) {\n sourceEl.style.display = 'block';\n } else {\n sourceEl.style.display = 'none';\n }\n }\n });\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('textStrings')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n this.sourcesOriginalText = this._textStrings.sourcesText;\n }\n }\n\n protected override updated(changedProps: any): void {\n if (\n changedProps.has('revealAllSources') &&\n changedProps.get('revealAllSources') !== undefined\n ) {\n this._toggleLimitRevealed(false);\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n window.addEventListener('resize', () => this.updateSourcesText());\n }\n\n override disconnectedCallback() {\n window.removeEventListener('resize', () => this.updateSourcesText());\n super.disconnectedCallback();\n }\n\n private updateSourcesText() {\n this._textStrings.sourcesText =\n window.innerWidth > 672\n ? this.sourcesOriginalText\n : this.sourcesOriginalText.split(' ')[0];\n this.requestUpdate();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-ai-sources-feedback': AISourcesFeedback;\n }\n}\n"],"names":["_defaultTextStrings","sourcesText","foundSources","showMore","showLess","positiveFeedback","negativeFeedback","AISourcesFeedback","LitElement","constructor","this","sourcesOpened","feedbackOpened","sourcesDisabled","feedbackDisabled","revealAllSources","textStrings","closeText","_limitCount","limitRevealed","_textStrings","_selectedFeedbackType","thumbsUpClickCount","thumbsDownClickCount","render","classesSources","classMap","opened","disabled","classesFeedback1","classesFeedback2","html","e","_handleClick","unsafeSVG","chevronIcon","thumbsUpIcon","thumbsUpFilledIcon","thumbsDownIcon","thumbsDownFilledIcon","closeIcon","_sourceEls","length","_handleSlotChange","_toggleLimitRevealed","panel","feedbackType","preventDefault","_a","target","id","includes","_updateFeedbackCounts","_shouldEmitFeedbackEvent","_emitToggleEvent","wasSelected","dispatchEvent","CustomEvent","detail","bubbles","composed","isOddClick","count","_toggleFeedbackPanel","selectedFeedbackType","revealed","forEach","sourceEl","index","style","display","willUpdate","changedProps","has","deepmerge","sourcesOriginalText","updated","undefined","get","connectedCallback","super","window","addEventListener","updateSourcesText","disconnectedCallback","removeEventListener","innerWidth","split","requestUpdate","styles","stylesheet","__decorate","property","type","Boolean","prototype","Object","String","state","queryAssignedElements","slot","customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aiSourcesFeedback.js","sources":["../../../../src/components/ai/sourcesFeedback/aiSourcesFeedback.ts"],"sourcesContent":["import { html, LitElement } from 'lit';\nimport {\n customElement,\n property,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport { deepmerge } from 'deepmerge-ts';\nimport { classMap } from 'lit-html/directives/class-map.js';\n\nimport stylesheet from './aiSourcesFeedback.scss';\n\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport chevronIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\nimport thumbsUpIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/thumbs-up.svg';\nimport thumbsDownIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/thumbs-down.svg';\nimport thumbsUpFilledIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/thumbs-up-filled.svg';\nimport thumbsDownFilledIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/thumbs-down-filled.svg';\nimport closeIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\nimport '../../reusable/link';\nimport '../../reusable/card';\nimport '../../reusable/button';\n\nconst _defaultTextStrings = {\n sourcesText: 'Sources',\n foundSources: 'Found sources',\n showMore: 'Show more',\n showLess: 'Show less',\n positiveFeedback: 'Share what you liked',\n negativeFeedback: 'Help us improve',\n};\n\n/**\n * AISourcesFeedback Component.\n *\n * @slot copy - copy button\n * @slot sources - source cards in source panel.\n * @slot feedback-form - Positive feedback form.\n * @fires on-toggle - Emits the `opened` state when the panel item opens/closes.\n * @fires on-feedback-deselected - Emits when thumbs-up or thumbs-down button is deselected.\n */\n\n@customElement('kyn-ai-sources-feedback')\nexport class AISourcesFeedback extends LitElement {\n static override styles = [stylesheet];\n\n /** expandable anchor opened state for Sources used. */\n @property({ type: Boolean })\n sourcesOpened = false;\n\n /** expandable anchor opened state for Feedback buttons. */\n @property({ type: Boolean })\n feedbackOpened = false;\n\n /** expandable anchor disabled state for Sources used.. */\n @property({ type: Boolean })\n sourcesDisabled = false;\n\n /** expandable anchor disabled state for Feedback buttons. */\n @property({ type: Boolean })\n feedbackDisabled = false;\n\n /** Limits visible sources behind a \"Show more\" button. */\n @property({ type: Boolean })\n revealAllSources = false;\n\n /** Text string customization. */\n @property({ type: Object })\n textStrings = _defaultTextStrings;\n\n /** Close button text. */\n @property({ type: String })\n closeText = 'Close';\n\n /** Number of sources visible when limited.\n * @internal\n */\n @state()\n _limitCount = 4;\n\n /** Sources limit visibility.\n * @internal\n */\n @state()\n limitRevealed = false;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n _textStrings = _defaultTextStrings;\n\n /** Selecting Positive or Negative Feedback\n * @internal\n */\n @state()\n _selectedFeedbackType: any = null;\n\n /**\n * Queries slotted sources.\n * @ignore\n */\n @queryAssignedElements({ slot: 'sources' })\n _sourceEls!: any;\n\n /** Tracks the number of clicks on thumbs up icon\n * @internal\n */\n @state() thumbsUpClickCount = 0;\n\n /** Tracks the number of clicks on thumbs down icon\n * @internal\n */\n @state() thumbsDownClickCount = 0;\n\n override render() {\n const classesSources: any = classMap({\n 'kyn-sources': true,\n opened: this.sourcesOpened,\n disabled: this.sourcesDisabled,\n });\n const classesFeedback1: any = classMap({\n 'kyn-pos-feedback': true,\n disabled:\n this.feedbackDisabled && this._selectedFeedbackType === 'positive',\n });\n const classesFeedback2: any = classMap({\n 'kyn-neg-feedback': true,\n disabled:\n this.feedbackDisabled && this._selectedFeedbackType === 'positive',\n });\n return html`\n <div class=\"action-bar\">\n <div class=\"left-div\">\n <slot name=\"copy\"></slot>\n\n <div class=\"${classesSources}\">\n <kyn-button\n kind=\"ghost\"\n size=\"small\"\n class=\"kyn-sources-title\"\n iconPosition=\"right\"\n aria-controls=\"kyn-sources-body\"\n aria-expanded=${this.sourcesOpened}\n ?disabled=${this.sourcesDisabled}\n @on-click=\"${(e: Event) => this._handleClick(e, 'sources')}\"\n id=\"kyn-sources-title\"\n >\n <span>${this._textStrings.sourcesText}</span>\n <span class=\"expand-icon\" slot=\"icon\"\n >${unsafeSVG(chevronIcon)}</span\n >\n </kyn-button>\n </div>\n </div>\n\n <div class=\"right-div\">\n <div class=\"${classesFeedback1}\">\n <kyn-button\n kind=\"ghost\"\n size=\"small\"\n id=\"kyn-feedback-title-positive\"\n class=\"kyn-feedback-title\"\n aria-controls=\"kyn-feedback-body\"\n aria-expanded=${this.feedbackOpened}\n ?disabled=${this.feedbackDisabled}\n description=${this._textStrings.positiveFeedback}\n @on-click=${(e: Event) =>\n this._handleClick(e, 'feedback', 'positive')}\n >\n <span slot=\"icon\">\n ${unsafeSVG(\n this.thumbsUpClickCount % 2 === 0\n ? thumbsUpIcon\n : thumbsUpFilledIcon\n )}\n </span>\n </kyn-button>\n </div>\n\n <div class=\"${classesFeedback2}\">\n <kyn-button\n kind=\"ghost\"\n size=\"small\"\n id=\"kyn-feedback-title-negative\"\n class=\"kyn-feedback-title\"\n aria-controls=\"kyn-feedback-body\"\n aria-expanded=${this.feedbackOpened}\n ?disabled=${this.feedbackDisabled}\n description=${this._textStrings.negativeFeedback}\n @on-click=\"${(e: Event) =>\n this._handleClick(e, 'feedback', 'negative')}\"\n >\n <span slot=\"icon\"\n >${unsafeSVG(\n this.thumbsDownClickCount % 2 === 0\n ? thumbsDownIcon\n : thumbsDownFilledIcon\n )}\n </span>\n </kyn-button>\n </div>\n </div>\n </div>\n\n <div\n class=\"${classMap({\n opened: this.sourcesOpened,\n 'kyn-sources-body': true,\n })}\"\n id=\"kyn-sources-body\"\n role=\"region\"\n aria-labelledby=\"kyn-sources-title\"\n >\n <div class=\"close-container\">\n <kyn-button\n class=\"close\"\n @on-click=${(e: Event) => this._handleClick(e, 'sources')}\n }}\n kind=\"ghost\"\n size=\"small\"\n description=${this.closeText}\n >\n <span slot=\"icon\">${unsafeSVG(closeIcon)}</span>\n </kyn-button>\n </div>\n\n <div class=\"found-sources\">\n ${this._textStrings.foundSources} (${this._sourceEls.length}) :\n </div>\n <div class=\"card-container\">\n <slot name=\"sources\" @slotchange=${this._handleSlotChange}></slot>\n </div>\n ${!this.revealAllSources && this._sourceEls.length > this._limitCount\n ? html`\n <kyn-button\n class=\"reveal-toggle\"\n kind=\"ghost\"\n size=\"small\"\n @on-click=${() =>\n this._toggleLimitRevealed(!this.limitRevealed)}\n >\n ${this.limitRevealed\n ? html`${this._textStrings.showLess}`\n : html`\n ${this._textStrings.showMore}\n (${this._sourceEls.length - this._limitCount})\n `}\n </kyn-button>\n `\n : null}\n </div>\n\n <div\n class=\"${classMap({\n opened: this.feedbackOpened,\n 'kyn-feedback-body': true,\n })}\"\n id=\"kyn-feedback-body\"\n role=\"region\"\n aria-labelledby=\"kyn-feedback-title-${this._selectedFeedbackType\n ? 'positive'\n : 'negative'}\"\n >\n <div class=\"close-container\">\n <kyn-button\n class=\"close\"\n description=${this.closeText}\n @on-click=${(e: Event) =>\n this._handleClick(e, 'feedback', this._selectedFeedbackType)}\n }}\n kind=\"ghost\"\n size=\"small\"\n >\n <span slot=\"icon\">${unsafeSVG(closeIcon)}</span>\n </kyn-button>\n </div>\n\n <slot name=\"feedback-form\"></slot>\n </div>\n `;\n }\n private _handleClick(\n e: Event,\n panel: 'sources' | 'feedback',\n feedbackType?: 'positive' | 'negative'\n ) {\n e.preventDefault();\n\n if (\n (panel === 'sources' && this.sourcesDisabled) ||\n (panel === 'feedback' && this.feedbackDisabled)\n ) {\n return;\n }\n\n const target = e.target as HTMLElement;\n const isFeedbackButton = target.id?.includes('kyn-feedback-title');\n\n if (isFeedbackButton && feedbackType) {\n this._updateFeedbackCounts(feedbackType);\n }\n\n if (panel === 'sources' || this._shouldEmitFeedbackEvent(feedbackType)) {\n this._emitToggleEvent(panel, feedbackType);\n }\n }\n\n private _updateFeedbackCounts(feedbackType: 'positive' | 'negative') {\n // Checks if the feedbackType was already selected before updating the counts.\n const wasSelected =\n (feedbackType === 'positive' && this.thumbsUpClickCount % 2 !== 0) ||\n (feedbackType === 'negative' && this.thumbsDownClickCount % 2 !== 0);\n\n if (feedbackType === 'positive') {\n this.thumbsUpClickCount++;\n this.thumbsDownClickCount -= this.thumbsDownClickCount % 2;\n } else {\n this.thumbsDownClickCount++;\n this.thumbsUpClickCount -= this.thumbsUpClickCount % 2;\n }\n\n if (wasSelected) {\n this.dispatchEvent(\n new CustomEvent('on-feedback-deselected', {\n detail: { feedbackType },\n bubbles: true,\n composed: true,\n })\n );\n }\n }\n\n private _shouldEmitFeedbackEvent(\n feedbackType?: 'positive' | 'negative'\n ): boolean {\n if (!feedbackType) return false;\n const isOddClick = (count: number) => count % 2 !== 0;\n\n return (\n (feedbackType === 'positive' &&\n (isOddClick(this.thumbsUpClickCount) ||\n (this.feedbackOpened && !isOddClick(this.thumbsUpClickCount)))) ||\n (feedbackType === 'negative' &&\n (isOddClick(this.thumbsDownClickCount) ||\n (this.feedbackOpened && !isOddClick(this.thumbsDownClickCount))))\n );\n }\n\n private _emitToggleEvent(\n panel: 'sources' | 'feedback',\n feedbackType?: 'positive' | 'negative'\n ) {\n if (panel === 'sources') {\n this.sourcesOpened = !this.sourcesOpened;\n this.feedbackOpened = false;\n } else if (panel === 'feedback') {\n this.sourcesOpened = false;\n this._toggleFeedbackPanel(feedbackType);\n }\n\n this.dispatchEvent(\n new CustomEvent('on-toggle', {\n detail: {\n sourcesOpened: this.sourcesOpened,\n feedbackOpened: this.feedbackOpened,\n selectedFeedbackType: this._selectedFeedbackType,\n },\n })\n );\n }\n\n private _toggleFeedbackPanel(feedbackType?: 'positive' | 'negative') {\n if (!feedbackType) return;\n\n if (this._selectedFeedbackType === feedbackType && this.feedbackOpened) {\n this.feedbackOpened = false;\n this._selectedFeedbackType = null;\n } else {\n this.feedbackOpened = true;\n this._selectedFeedbackType = feedbackType;\n }\n }\n\n protected _handleSlotChange() {\n this._toggleLimitRevealed(this.limitRevealed);\n }\n\n private _toggleLimitRevealed(revealed: boolean) {\n this.limitRevealed = revealed;\n\n this._sourceEls.forEach((sourceEl: any, index: any) => {\n if (this.revealAllSources || this.limitRevealed) {\n sourceEl.style.display = 'block';\n } else {\n if (index < this._limitCount) {\n sourceEl.style.display = 'block';\n } else {\n sourceEl.style.display = 'none';\n }\n }\n });\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('textStrings')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n protected override updated(changedProps: any): void {\n if (\n changedProps.has('revealAllSources') &&\n changedProps.get('revealAllSources') !== undefined\n ) {\n this._toggleLimitRevealed(false);\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-ai-sources-feedback': AISourcesFeedback;\n }\n}\n"],"names":["_defaultTextStrings","sourcesText","foundSources","showMore","showLess","positiveFeedback","negativeFeedback","AISourcesFeedback","LitElement","constructor","this","sourcesOpened","feedbackOpened","sourcesDisabled","feedbackDisabled","revealAllSources","textStrings","closeText","_limitCount","limitRevealed","_textStrings","_selectedFeedbackType","thumbsUpClickCount","thumbsDownClickCount","render","classesSources","classMap","opened","disabled","classesFeedback1","classesFeedback2","html","e","_handleClick","unsafeSVG","chevronIcon","thumbsUpIcon","thumbsUpFilledIcon","thumbsDownIcon","thumbsDownFilledIcon","closeIcon","_sourceEls","length","_handleSlotChange","_toggleLimitRevealed","panel","feedbackType","preventDefault","_a","target","id","includes","_updateFeedbackCounts","_shouldEmitFeedbackEvent","_emitToggleEvent","wasSelected","dispatchEvent","CustomEvent","detail","bubbles","composed","isOddClick","count","_toggleFeedbackPanel","selectedFeedbackType","revealed","forEach","sourceEl","index","style","display","willUpdate","changedProps","has","deepmerge","updated","undefined","get","styles","stylesheet","__decorate","property","type","Boolean","prototype","Object","String","state","queryAssignedElements","slot","customElement"],"mappings":"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"}
|
|
@@ -24,7 +24,15 @@ export declare class DatePicker extends DatePicker_base {
|
|
|
24
24
|
required: boolean;
|
|
25
25
|
/** Input size. "sm", "md", or "lg". */
|
|
26
26
|
size: string;
|
|
27
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* Sets the date/time value for the component.
|
|
29
|
+
*
|
|
30
|
+
* For controlled usage patterns, this property allows parent components to directly control the selected date.
|
|
31
|
+
* When used together with defaultDate, value takes precedence if both are provided.
|
|
32
|
+
*
|
|
33
|
+
* In uncontrolled usage, this is populated automatically based on defaultDate and user selections.
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
28
36
|
value: Date | Date[] | null;
|
|
29
37
|
/** Sets validation warning messaging. */
|
|
30
38
|
warnText: string;
|
|
@@ -102,6 +110,8 @@ export declare class DatePicker extends DatePicker_base {
|
|
|
102
110
|
* @internal
|
|
103
111
|
*/
|
|
104
112
|
private _shouldFlatpickrOpen;
|
|
113
|
+
/** Track if we initially had a defaultDate when the component was first connected */
|
|
114
|
+
private _hasInitialDefaultDate;
|
|
105
115
|
/** Track initialization state
|
|
106
116
|
* @internal
|
|
107
117
|
*/
|
|
@@ -113,6 +123,7 @@ export declare class DatePicker extends DatePicker_base {
|
|
|
113
123
|
private debounce;
|
|
114
124
|
private debouncedUpdate;
|
|
115
125
|
connectedCallback(): void;
|
|
126
|
+
disconnectedCallback(): void;
|
|
116
127
|
private hasValue;
|
|
117
128
|
render(): import("lit").TemplateResult<1>;
|
|
118
129
|
private renderValidationMessage;
|
|
@@ -123,11 +134,13 @@ export declare class DatePicker extends DatePicker_base {
|
|
|
123
134
|
'date-picker__disabled': boolean;
|
|
124
135
|
};
|
|
125
136
|
firstUpdated(changedProperties: PropertyValues): Promise<void>;
|
|
137
|
+
private processDefaultDates;
|
|
126
138
|
updated(changedProperties: PropertyValues): void;
|
|
127
139
|
private setupAnchor;
|
|
128
140
|
private _handleClear;
|
|
129
141
|
initializeFlatpickr(): Promise<void>;
|
|
130
142
|
updateFlatpickrOptions(): Promise<void>;
|
|
143
|
+
private parseDateString;
|
|
131
144
|
setInitialDates(): void;
|
|
132
145
|
getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>>;
|
|
133
146
|
handleOpen(): void;
|
|
@@ -141,7 +154,6 @@ export declare class DatePicker extends DatePicker_base {
|
|
|
141
154
|
private _validate;
|
|
142
155
|
private _onChange;
|
|
143
156
|
private _handleFormReset;
|
|
144
|
-
disconnectedCallback(): void;
|
|
145
157
|
}
|
|
146
158
|
declare global {
|
|
147
159
|
interface HTMLElementTagNameMap {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/datePicker/datepicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAKvD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAgB5D,OAAO,uBAAuB,CAAC;AAG/B,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAS3D,KAAK,eAAe,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;;AAUnD;;;;GAIG;AACH,qBACa,UAAW,SAAQ,eAAqB;IACnD,OAAgB,MAAM,QAA6C;IAEnE,kBAAkB;IAElB,KAAK,SAAM;IAIX,MAAM,EAAE,eAAe,GAAG,MAAM,CAAQ;IAExC,wGAAwG;IAExG,UAAU,SAAW;IAErB,kHAAkH;IAElH,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAQ;IAE7C,kCAAkC;IAElC,mBAAmB,SAAM;IAEzB,6DAA6D;IAE7D,QAAQ,UAAS;IAEjB,uCAAuC;IAEvC,IAAI,SAAQ;IAEZ
|
|
1
|
+
{"version":3,"file":"datepicker.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/datePicker/datepicker.ts"],"names":[],"mappings":"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"}
|