@descope/web-components-ui 1.35.0 → 1.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/cjs/index.cjs.js +3796 -3778
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +695 -678
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/umd/1519.js +1 -1
  6. package/dist/umd/1519.js.map +1 -1
  7. package/dist/umd/2672.js +1 -1
  8. package/dist/umd/2672.js.map +1 -1
  9. package/dist/umd/6424.js +1 -1
  10. package/dist/umd/6424.js.map +1 -1
  11. package/dist/umd/DescopeDev.js +1 -1
  12. package/dist/umd/DescopeDev.js.map +1 -1
  13. package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js +1 -1
  14. package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js.map +1 -1
  15. package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js +1 -1
  16. package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js.map +1 -1
  17. package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js +1 -1
  18. package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js.map +1 -1
  19. package/dist/umd/{descope-button-index-js.js → descope-button.js} +3 -3
  20. package/dist/umd/descope-button.js.map +1 -0
  21. package/dist/umd/descope-date-field-descope-calendar-index-js.js +1 -1
  22. package/dist/umd/descope-date-field-descope-calendar-index-js.js.map +1 -1
  23. package/dist/umd/descope-icon.js +2 -0
  24. package/dist/umd/descope-icon.js.map +1 -0
  25. package/dist/umd/descope-third-party-app-logo-index-js.js +1 -1
  26. package/dist/umd/descope-third-party-app-logo-index-js.js.map +1 -1
  27. package/dist/umd/descope-upload-file-index-js.js +1 -1
  28. package/dist/umd/descope-upload-file-index-js.js.map +1 -1
  29. package/dist/umd/descope-user-attribute-index-js.js +1 -1
  30. package/dist/umd/descope-user-attribute-index-js.js.map +1 -1
  31. package/dist/umd/descope-user-auth-method-index-js.js +1 -1
  32. package/dist/umd/descope-user-auth-method-index-js.js.map +1 -1
  33. package/dist/umd/index.js +1 -1
  34. package/dist/umd/index.js.map +1 -1
  35. package/dist/umd/mapping-fields-descope-mappings-field-index-js.js +1 -1
  36. package/dist/umd/mapping-fields-descope-mappings-field-index-js.js.map +1 -1
  37. package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js +1 -1
  38. package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js.map +1 -1
  39. package/package.json +3 -3
  40. package/src/components/button-selection-group-fields/descope-button-selection-group-item/ButtonSelectionGroupItemClass.js +1 -1
  41. package/src/components/button-selection-group-fields/descope-button-selection-group-item/index.js +1 -1
  42. package/src/components/descope-date-field/descope-calendar/CalendarClass.js +1 -1
  43. package/src/components/descope-date-field/descope-calendar/index.js +1 -1
  44. package/src/components/descope-third-party-app-logo/ThirdPartyAppLogoClass.js +1 -1
  45. package/src/components/descope-third-party-app-logo/index.js +1 -1
  46. package/src/components/descope-upload-file/UploadFileClass.js +1 -1
  47. package/src/components/descope-upload-file/index.js +1 -1
  48. package/src/components/descope-user-attribute/UserAttributeClass.js +1 -1
  49. package/src/components/descope-user-attribute/index.js +1 -1
  50. package/src/components/descope-user-auth-method/UserAuthMethodClass.js +2 -2
  51. package/src/components/descope-user-auth-method/index.js +1 -1
  52. package/src/components/mapping-fields/descope-mappings-field/index.js +1 -1
  53. package/src/index.cjs.js +0 -1
  54. package/src/index.js +0 -2
  55. package/src/theme/components/index.js +2 -2
  56. package/dist/umd/descope-button-index-js.js.map +0 -1
  57. package/dist/umd/descope-icon-index-js.js +0 -2
  58. package/dist/umd/descope-icon-index-js.js.map +0 -1
  59. package/src/components/descope-button/ButtonClass.js +0 -163
  60. package/src/components/descope-button/clickableMixin.js +0 -10
  61. package/src/components/descope-button/index.js +0 -6
  62. package/src/components/descope-icon/IconClass.js +0 -98
  63. package/src/components/descope-icon/helpers.js +0 -51
  64. package/src/components/descope-icon/index.js +0 -5
  65. package/src/theme/components/button.js +0 -133
  66. package/src/theme/components/icon.js +0 -7
  67. /package/dist/umd/{descope-button-index-js.js.LICENSE.txt → descope-button.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[6028],{3393:(t,e,n)=>{n.d(e,{y:()=>o});var a=n(9696),r=n(79365),i=n(81365);const o=(...t)=>(0,a.Zz)(r.XX,r._$,r.yF,r.jd)((0,i.q)(...t))},88068:(t,e,n)=>{n.d(e,{J:()=>u,T:()=>l});var a=n(9696),r=n(97810),i=n(79365),o=n(20618),s=n(12011);const l=(0,r.xE)("button"),{host:d,label:h,slottedIcon:p}={host:{selector:()=>":host"},label:{selector:"::part(label)"},slottedIcon:{selector:()=>"::slotted(descope-icon)"}};let c;const u=(0,a.Zz)((0,i.RF)({mappings:{hostWidth:{property:"width"},hostHeight:{property:"height"},hostDirection:{...d,property:"direction"},fontSize:{},fontFamily:{},cursor:{},backgroundColor:{},outlineOffset:{},outlineColor:{},outlineStyle:{},outlineWidth:{},borderRadius:{},borderColor:{},borderStyle:{},borderWidth:{},verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-right",fallback:"0.875em"},{property:"padding-left",fallback:"0.875em"}],labelTextColor:{property:"color"},iconColor:{selector:()=>"::slotted(*)",property:o.S.cssVarList.fill},labelTextDecoration:{...h,property:"text-decoration"},labelSpacing:{...h,property:"gap"},textAlign:{...h,property:"justify-content",fallback:"center"},iconSize:[{...p,property:"width"},{...p,property:"height"}]}}),s.G,i.VO,i.tQ)((0,i.tz)({slots:["","prefix","label","suffix"],wrappedEleName:"vaadin-button",style:()=>`\n\t\t\t\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n\n\t\t\t\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t\t\t${c}\n\t\t\tvaadin-button::part(label) { pointer-events: none; }\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${u.cssVarList.outlineWidth}) + var(${u.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width="true"]) {\n width: var(${u.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${u.cssVarList.hostHeight}) - var(${u.cssVarList.outlineWidth}) - var(${u.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square="true"]:not([full-width="true"]) {\n\t\t\t\twidth: calc(var(${u.cssVarList.hostWidth}) - var(${u.cssVarList.outlineWidth}) - var(${u.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,excludeAttrsSync:["tabindex"],componentName:l})),{color:y,fontSize:b}=u.cssVarList;c=`\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading="true"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${y});\n\t\ttop: calc(50% - (var(${b}) / 2));\n\t\tleft: calc(50% - (var(${b}) / 2));\n\t\tborder-width: calc(var(${b}) / 10);\n\t\twidth: var(${b});\n\t\theight: var(${b});\n\t}\n\t:host([disabled="true"]),\n\t:host([loading="true"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading="true"])::part(prefix),\n\t:host([loading="true"])::part(label) {\n\t\tvisibility: hidden;\n\t}\n`},12011:(t,e,n)=>{n.d(e,{G:()=>a});const a=t=>class extends t{get isLoading(){return"true"===this.getAttribute("loading")}click(){this.isLoading||super.click()}}},85076:(t,e,n)=>{n.r(e),n.d(e,{ButtonClass:()=>a.J,componentName:()=>a.T}),n(83799);var a=n(88068);customElements.define(a.T,a.J)},64101:(t,e,n)=>{n.d(e,{QF:()=>y,SP:()=>a,Tv:()=>c,US:()=>d,V$:()=>o,eT:()=>s,lv:()=>u,mx:()=>h,rR:()=>p,ui:()=>r,wJ:()=>i,xr:()=>l});const a=["MM/DD/YYYY","DD/MM/YYYY","YYYY/MM/DD"],r=a[0],i="YYYY-MM-DD",o=100,s="/",l=["Backspace","ArrowLeft","ArrowRight","ArrowDown","ArrowUp","PageUp","PageDown","Meta"],d=["January","February","March","April","May","June","July","August","September","October","November","December"],h=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],p={MONTH:{id:"month",min:1,max:12,placeholder:"MM",count:5,shiftCount:10},DAY:{id:"day",min:1,max:31,placeholder:"DD",count:5,shiftCount:10},YEAR:{id:"year",min:0,max:9999,placeholder:"YYYY",count:10,shiftCount:100}},c="Done",u="Cancel",y="Today"},88350:(t,e,n)=>{n.r(e),n.d(e,{CalendarClass:()=>q,componentName:()=>m}),n(27092),n(85076);var a=n(3393),r=n(9696),i=n(97810),o=n(73551),s=n(79365),l=n(49224),d=n(80071),h=n(64101);const p=(t,e)=>Array.isArray(t)&&t.length===e&&t.filter(Boolean).length===e,c=({label:t,dataId:e,dataName:n})=>`\n\t<div class="combo-box-item"\n\t\tdata-id="${e}"\n\t\tdata-name="${n}"\n\t>\n\t\t\t${t}\n\t</div>\n`,u=(t=h.US)=>t.map(((t,e)=>c({label:t,dataId:e+1,dataName:t}))).join(""),y=(t,e)=>{const[n,a]=(0,l.Pj)(e),[r,i]=(0,l.Pj)(t);return r===n&&i===a},b=(t,e,n)=>(t.addEventListener("input",e),t.addEventListener("focusout",n),t);var g=n(88068),v=n(25964);const m=(0,i.xE)("calendar"),C=["initial-value","initial-year","initial-month","years-range","calendar-months","calendar-weekdays","calendar-label-today","st-host-direction","disabled","full-width"],w=["calendar-label-submit","calendar-label-cancel"],f=(0,a.y)({componentName:m,baseSelector:"div"}),{calendar:x,day:V,dayEntry:S,currentDay:M,selectedDay:$,disabledDay:D,weekday:N,topNav:H,topNavSelectors:k,bottomNav:E,navPrev:L,navNext:A,navPrevRTL:T,navNextRTL:B,yearInput:Y,monthInput:I}={calendar:{selector:()=>".calendar"},topNav:{selector:()=>".nav.top-nav"},topNavSelectors:{selector:()=>".nav.top-nav .selectors > span"},bottomNav:{selector:()=>".nav.bottom-nav"},day:{selector:()=>".day"},dayEntry:{selector:()=>".day-entry"},currentDay:{selector:()=>".day-entry[data-current-day] .day"},selectedDay:{selector:()=>".day-entry[data-selected] .day"},disabledDay:{selector:()=>'.day-entry[data-disabled="true"] .day'},weekday:{selector:()=>".weekday"},navPrev:{selector:()=>".nav-prev"},navNext:{selector:()=>".nav-next"},navPrevRTL:{selector:()=>':host([st-host-direction="rtl"]) .nav-prev'},navNextRTL:{selector:()=>':host([st-host-direction="rtl"]) .nav-next'},yearInput:{selector:()=>".year-input"},monthInput:{selector:()=>".month-input"}},q=(0,r.Zz)((0,s.RF)({componentNameOverride:(0,i.xE)("input-wrapper")}),(0,s.RF)({mappings:{fontSize:{},fontFamily:{},hostWidth:[{selector:()=>":host",property:"width"},{selector:"table",property:"width"}],hostDirection:{property:"direction"},topNavVerticalPadding:[{...H,property:"padding-top"},{...H,property:"padding-bottom"}],topNavHorizointalPadding:[{...H,property:"padding-right"},{...H,property:"padding-left"}],topNavAlignment:{...H,property:"justify-content"},topNavGap:{...H,property:"gap"},topNavSelectorsGap:{...k,property:"gap"},bottomNavVerticalPadding:[{...E,property:"padding-top"},{...E,property:"padding-bottom"}],bottomNavHorizontalPadding:[{...E,property:"padding-right"},{...E,property:"padding-left"}],bottomNavAlignment:{...E,property:"justify-content"},bottomNavGap:{...E,property:"gap"},navMarginBottom:{...H,property:"margin-bottom"},calendarPadding:[{...x,property:"padding-bottom"},{...x,property:"padding-right"},{...x,property:"padding-left"}],navBorderBottomWidth:{...H,property:"border-bottom-width"},navBorderBottomColor:{...H,property:"border-bottom-color"},navBorderBottomStyle:{...H,property:"border-bottom-style"},weekdayFontSize:{...N,property:"font-size"},weekdayFontWeight:{...N,property:"font-weight"},currentDayBorderColor:{...M,property:"border-color"},currentDayBorderWidth:{...M,property:"border-width"},currentDayBorderStyle:{...M,property:"border-style"},dayHeight:{...S,property:"height"},daySize:[{...V,property:"height"},{...V,property:"width"}],dayPadding:{...V,property:"padding"},dayRadius:{...V,property:"border-radius"},dayTextAlign:{...V,property:"text-align"},dayBlockAlign:{...V,property:"margin"},dayTextColor:{...V,property:"color"},dayFontWeight:{...V,property:"font-weight"},dayBackgroundColor:{...V,property:"background-color"},dayCursor:{...V,property:"cursor"},dayFontSize:{...V,property:"font-size"},dayBackgroundColorHover:{selector:()=>".day:hover",property:"background-color"},daySelectedTextdColor:{...$,property:"color"},daySelectedBackgroundColor:{...$,property:"background-color"},dayDisabledTextdColor:{...D,property:"color"},yearInputWidth:{...Y,property:"width"},monthInputWidth:{...I,property:"width"},navButtonSize:[{...L,property:"width"},{...L,property:"height"},{...A,property:"width"},{...A,property:"height"}],navButtonCursor:[{...L,property:"cursor"},{...A,property:"cursor"}],navButtonRotation:[{...T,property:"transform"},{...B,property:"transform"}],navButtonOpacity:[{...L,property:"opacity"},{...A,property:"opacity"}]}}),s.VO,s.tQ)(class extends f{static get observedAttributes(){return[].concat(f.observedAttributes||[],C,w)}preview;timestamp;constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <div>\n <nav class="nav top-nav">\n <div class="nav-prev">\n </div>\n <div class="selectors"></div>\n <div class="nav-next">\n </div>\n </nav>\n <div class="calendar"></div>\n <nav class="nav bottom-nav">\n <descope-button class="cancel-button" variant="link" mode="primary">Cancel</descope-button>\n <descope-button class="submit-button" variant="link" mode="primary" disabled="true">Done</descope-button>\n </nav>\n </div>\n ',(0,v.fz)(`\n :host {\n display: inline-block;\n box-sizing: border-box;\n max-width: 100%;\n user-select: none;\n -webkit-user-select: none;\n }\n\n :host ::slotted {\n padding: 0;\n }\n\n [data-toggle-calendar] {\n cursor: pointer;\n display: flex;\n align-self: center;\n z-index: 1;\n }\n\n [data-disabled="true"] {\n pointer-events: none;\n }\n\n .calendar .day {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .nav {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n }\n\n .selectors,\n .selectors span {\n display: flex;\n justify-content: center;\n }\n\n descope-button {\n padding: 0;\n ${g.J.cssVarList.horizontalPadding}: 0;\n ${g.J.cssVarList.verticalPadding}: 0;\n ${g.J.cssVarList.outlineWidth}: 0;\n }\n\n .combo-box-item {\n display:flex;\n flex-direction: column;\n }\n\n ${(0,o.Kl)()}\n `,this)}set value(t){if(!t)return;const e=(0,l.Nq)(t).getTime();(0,l.xP)(e)&&e!==this.timestmap&&(this.timestamp=e,this.renderCalendar())}get value(){return this.timestamp?(0,l.Ey)(this.timestamp,h.wJ):""}get isSelectedView(){return y(this.preview,this.timestamp)}get isTodayView(){return y((0,l.Ln)(),this.preview)}get monthNames(){return(t=>{const e=t?.split(",");return p(e,12)?e:h.US})(this.getAttribute("calendar-months"))}get weekdayNames(){return(t=>{const e=t?.split?.(",");return p(e,7)?e:h.mx})(this.getAttribute("calendar-weekdays"))}get hasYearValue(){return!!this.yearInput.value}get hasMonthValue(){return!!this.monthInput.value}get yearsRange(){const t=this.getAttribute("years-range")?.split("-");if(2===t?.length){const[e,n]=t.map(Number);if(e<=n)return[e,n]}const e=(0,l.Nq)().getFullYear();return[e,e+h.V$]}init(){super.init?.(),this.initCalendar(),this.renderCalendar()}initCalendar(){this.calendar=this.shadowRoot.querySelector(".calendar"),this.navPrevEle=this.shadowRoot.querySelector(".nav-prev"),this.navNextEle=this.shadowRoot.querySelector(".nav-next"),this.submitButton=this.shadowRoot.querySelector(".submit-button"),this.cancelButton=this.shadowRoot.querySelector(".cancel-button"),this.initInputs(),this.initNav(),this.addEventListener("day-changed",(()=>this.submitButton.removeAttribute("disabled"))),this.submitButton.shadowRoot.querySelector("vaadin-button").setAttribute("disabled","true")}initInputs(){const t=(()=>{const t=document.createElement("span");return t.innerHTML=`\n <descope-combo-box\n label-type="static"\n bordered="true"\n item-label-path="data-name"\n item-value-path="data-id"\n class="month-input"\n >\n ${u()}\n </descope-combo-box>\n <descope-combo-box\n allow-custom-value="true"\n label-type="static"\n bordered="true"\n item-label-path="data-name"\n item-value-path="data-id"\n class="year-input"\n no-empty-value="true"\n >\n </descope-combo-box>\n `,t})(this.monthNames,this.yearsRange);this.shadowRoot.querySelector(".selectors").appendChild(t),this.monthInput=b(this.shadowRoot.querySelector(".month-input"),this.onMonthChange.bind(this),this.onMonthInputBlur.bind(this)),this.yearInput=b(this.shadowRoot.querySelector(".year-input"),this.onYearChange.bind(this),this.onYearInputBlur.bind(this)),[this.monthInput,this.yearInput].forEach((t=>(0,i.EA)(this,t,{includeAttrs:["disabled","size","st-host-direction"]})))}initNav(){this.navPrevEle.addEventListener("click",this.navPrevMonth.bind(this)),this.navNextEle.addEventListener("click",this.navNextMonth.bind(this)),this.cancelButton.addEventListener("click",this.onCancel.bind(this)),this.submitButton.addEventListener("click",this.onSubmit.bind(this)),[this.navPrevEle,this.navNextEle].forEach((t=>(0,i.EA)(this,t,{includeAttrs:["size"]}))),this.shadowRoot.querySelector(".nav-next").innerHTML=d.ZM,this.shadowRoot.querySelector(".nav-prev").innerHTML=d.i1}onSubmit(){this.isDisabled||this.value&&this.dispatchEvent(new CustomEvent("date-submit",{detail:(0,l.Nq)(this.preview)}))}onCancel(){this.isDisabled||(this.dispatchEvent(new CustomEvent("cancel")),this.dispatchEvent(new CustomEvent("date-cancel")),this.clearSelectedDay())}clearSelectedDay(){this.getSelectedDayEle()?.removeAttribute("data-selected"),this.submitButton.setAttribute("disabled","true"),this.timestamp=""}updateInputs(){if(this.yearInput&&this.monthInput){const t=this.preview||(0,l.Ln)(),e=(0,l.Bl)(t),n=(0,l.tj)(t);this.monthInput.value=n,setTimeout((()=>{this.yearInput.baseElement.value=e}))}}renderCalendar(){const t=(0,l.Nq)(this.preview||(0,l.Ln)()).getTime(),[e,n]=(0,l.Pj)(t);this.calendar&&(this.calendar.innerHTML=((t,e,n)=>{const a=((t,e)=>new Date(t,e,0).getDate())(t,e),r=new Date(t,e-1,1).getDay();let i="<table>";i+=`<thead><tr>${n.reduce(((t,e)=>`${t}<th><span class="weekday">${e}</span></th>`),"")}</tr></thead>`,i+="<tbody>",i+="<tr>";for(let t=0;t<r;t++)i+="<td></td>";let o=r;for(let t=1;t<=a;t++)7===o&&(o=0,i+="</tr><tr>"),i+=`\n <td\n data-date-day="${t}"\n class="day-entry">\n <span class="day" data-date-day=${t}>\n ${t}\n </span>\n </td>\n `,o++;for(;o<7;)i+="<td></td>",o++;return i+="</tr></tbody></table>",i})(e,n,this.weekdayNames.map((t=>t.substring(0,3))))),Array.from(this.calendar?.querySelectorAll(".day-entry .day")||[]).forEach((t=>t.addEventListener("click",this.onDayChange.bind(this)))),this.updateInputs(),this.setSelectedDay(),this.setCurrentDay()}onDayChange(t){if(this.isDisabled)return;const e=(0,l.Nq)(this.preview);e.setDate(Number(t.target.getAttribute("data-date-day"))),this.value=(0,l.Ey)(e.getTime(),h.wJ),this.dispatchEvent(new CustomEvent("day-changed",{detail:e}))}onYearChange(t){if(!t.target.value)return;const e=(0,l.Nq)(this.preview);e.setFullYear(Number(t.target.value.trim())),this.preview=e.getTime(),this.renderCalendar(),this.dispatchEvent(new CustomEvent("year-changed",{detail:e}))}onMonthChange(t){if(!t.target.value)return;const e=(0,l.Nq)(this.preview);e.setMonth(Number(t.target.value)-1),this.preview=e.getTime(),this.renderCalendar(),this.dispatchEvent(new CustomEvent("month-changed",{detail:e}))}onYearInputBlur(t){this.yearInput.baseElement.value=t.target.value||(0,l.Bl)(this.preview)}onMonthInputBlur(t){this.monthInput.baseElement.value=t.target.value||(0,l.tj)(this.preview)}getSelectedDayEle(){const t=(0,l.Nq)(this.timestamp).getDate();return this.calendar?.querySelector(`[data-date-day="${t}"]`)}getCurrentDayEle(){return this.calendar?.querySelector(`[data-date-day="${(0,l._B)()}"]`)}clearSelectedDays(){const t=this.calendar?.querySelectorAll("[data-selected]");t&&t.forEach((t=>t.removeAttribute("data-selected")))}setSelectedDay(){this.clearSelectedDays(),this.value&&this.isSelectedView&&this.getSelectedDayEle().setAttribute("data-selected","true")}setCurrentDay(){if(this.isTodayView){const t=this.getCurrentDayEle(),e=this.getAttribute("calendar-label-today")||h.QF;t.setAttribute("data-current-day","true"),t.setAttribute("title",e)}}navPrevMonth(){if(this.isDisabled)return;const t=(t=>{const e=(0,l.Nq)(t),n=e.getMonth();if(0===n){const t=e.getFullYear();e.setFullYear(t-1),e.setMonth(11)}else e.setMonth(n-1);return e})(this.preview);this.preview=t.getTime(),this.renderCalendar()}navNextMonth(){if(this.isDisabled)return;const t=(t=>{const e=(0,l.Nq)(t),n=e.getMonth();if(11===n){const t=e.getFullYear();e.setFullYear(t+1),e.setMonth(0)}else e.setMonth(n+1);return e})(this.preview);this.preview=t.getTime(),this.renderCalendar()}clearValue(){this.timestamp="",this.value="",this.removeAttribute("preview"),this.submitButton.setAttribute("disabled","true")}onInitialValueChange(t){if(this.value)return;const e=(0,l.Nq)(t).getTime();(0,l.xP)(e)?(this.timestamp=e,this.preview=e):this.clearValue()}onYearsRangeChange(){setTimeout((()=>{this.yearInput&&(this.yearInput.innerHTML=(t=>{const[e,n]=t,a=[];for(let t=e;t<=n;t++)a.push(t);return a})(this.yearsRange).map((t=>c({label:t,dataId:t,dataName:t}))).join(""))}))}onMonthNamesChange(){setTimeout((()=>{this.monthInput&&(this.monthInput.innerHTML=u(this.monthNames))}))}onSubmitLabelChange(t){this.submitButton&&(this.submitButton.textContent=t||h.Tv)}onCancelLabelChange(t){this.cancelButton&&(this.cancelButton.textContent=t||h.lv)}onInitialMonthChange(t){const e=(0,l.Bl)(this.preview);this.preview=(0,l.Nq)(`${e}/${t}/1`).getTime()}onInitialYearChange(t){const e=(0,l.tj)(this.preview);this.preview=(0,l.Nq)(`${t}/${e}/1`).getTime()}attributeChangedCallback(t,e,n){super.attributeChangedCallback(t,e,n),e!==n&&(w.includes(t)?("calendar-label-submit"===t&&this.onSubmitLabelChange(n),"calendar-label-cancel"===t&&this.onCancelLabelChange(n)):(n&&"initial-value"===t&&this.onInitialValueChange(n),n&&"initial-month"===t&&this.onInitialMonthChange(n),n&&"initial-year"===t&&this.onInitialYearChange(n),"years-range"===t&&this.onYearsRangeChange(Number(n)),"calendar-months"===t&&this.onMonthNamesChange(),"calendar-label-today"===t&&this.setCurrentDay(n),"disabled"===t&&setTimeout((()=>{this.cancelButton?.setAttribute("disabled","true"===n)})),this.renderCalendar()))}getValidity(){return this.isRequired&&!this.value?{valueMissing:!0}:{}}});customElements.define(m,q)},49224:(t,e,n)=>{n.d(e,{Bl:()=>c,Et:()=>i,Ey:()=>s,KQ:()=>d,Ln:()=>p,Nq:()=>l,Pj:()=>o,Xs:()=>b,_B:()=>y,tj:()=>u,xP:()=>r,y4:()=>h});var a=n(64101);const r=t=>!Number.isNaN(Number(t)),i=t=>!Number.isNaN(Number(t)),o=t=>{const e=new Date(t);return[e.getFullYear(),e.getMonth()+1,e.getDate()]},s=(t,e)=>{const[n,a,r]=o(t),i={DD:String(r).padStart(2,"0"),MM:String(a).padStart(2,"0"),YYYY:String(n)};return e.replace(/DD|MM|YYYY/g,(t=>i[t]))},l=t=>"number"==typeof t?new Date(t):"string"==typeof t?new Date(t.replace(/-/g,"/")):new Date,d=t=>a.xr.includes(t),h=(t,e,n)=>({refresh:n&&"r"===t.toLowerCase(),tab:"Tab"===t,shiftTab:e&&"Tab"===t,backspace:"Backspace"===t,arrowUp:!e&&"ArrowUp"===t,arrowDown:!e&&"ArrowDown"===t,arrowLeft:!e&&"ArrowLeft"===t,arrowRight:!e&&"ArrowRight"===t,pageUp:!e&&"PageUp"===t,pageDown:!e&&"PageDown"===t,shiftArrowUp:e&&"ArrowUp"===t,shiftArrowDown:e&&"ArrowDown"===t,shiftPageUp:e&&"PageUp"===t,shiftPageDown:e&&"PageDown"===t}),p=()=>l().getTime(),c=t=>l(t).getFullYear().toString(),u=t=>(l(t).getMonth()+1).toString(),y=()=>l().getDate(),b=t=>{const e=new CSSStyleSheet;e.insertRule(":host{display:block!important;}"),t?.shadowRoot?.adoptedStyleSheets?.push(e)}},80071:(t,e,n)=>{n.d(e,{ZM:()=>r,i1:()=>i,ki:()=>a});const a='\n<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path fill-rule="evenodd" clip-rule="evenodd" d="M9 5H15V4.50468C15 4.21404 15.226 4 15.5047 4H16.4953C16.786 4 17 4.22595 17 4.50468V5H18.7568C19.3028 5 19.75 5.44725 19.75 5.99896V7.00104C19.75 7.55734 19.3053 8 18.7568 8H5.24317C4.69717 8 4.25 7.55275 4.25 7.00104V5.99896C4.25 5.44266 4.69466 5 5.24317 5H7V4.50468C7 4.21404 7.22596 4 7.50468 4H8.49532C8.78596 4 9 4.22595 9 4.50468V5ZM5.50468 9H6.49532C6.78596 9 7 9.22596 7 9.50468V10.4953C7 10.786 6.77404 11 6.49532 11H5.50468C5.21404 11 5 10.774 5 10.4953V9.50468C5 9.21404 5.22595 9 5.50468 9ZM8.50468 9H9.49532C9.78596 9 10 9.22596 10 9.50468V10.4953C10 10.786 9.77404 11 9.49532 11H8.50468C8.21404 11 8 10.774 8 10.4953V9.50468C8 9.21404 8.22596 9 8.50468 9ZM11.5047 9H12.4953C12.786 9 13 9.22596 13 9.50468V10.4953C13 10.786 12.774 11 12.4953 11H11.5047C11.214 11 11 10.774 11 10.4953V9.50468C11 9.21404 11.226 9 11.5047 9ZM5.50468 12H6.49532C6.78596 12 7 12.226 7 12.5047V13.4953C7 13.786 6.77404 14 6.49532 14H5.50468C5.21404 14 5 13.774 5 13.4953V12.5047C5 12.214 5.22595 12 5.50468 12ZM8.50468 12H9.49532C9.78596 12 10 12.226 10 12.5047V13.4953C10 13.786 9.77404 14 9.49532 14H8.50468C8.21404 14 8 13.774 8 13.4953V12.5047C8 12.214 8.22596 12 8.50468 12ZM11.5047 12H12.4953C12.786 12 13 12.226 13 12.5047V13.4953C13 13.786 12.774 14 12.4953 14H11.5047C11.214 14 11 13.774 11 13.4953V12.5047C11 12.214 11.226 12 11.5047 12ZM5.50468 15H6.49532C6.78596 15 7 15.226 7 15.5047V16.4953C7 16.786 6.77404 17 6.49532 17H5.50468C5.21404 17 5 16.774 5 16.4953V15.5047C5 15.214 5.22595 15 5.50468 15ZM8.50468 15H9.49532C9.78596 15 10 15.226 10 15.5047V16.4953C10 16.786 9.77404 17 9.49532 17H8.50468C8.21404 17 8 16.774 8 16.4953V15.5047C8 15.214 8.22596 15 8.50468 15ZM11.5047 15H12.4953C12.786 15 13 15.226 13 15.5047V16.4953C13 16.786 12.774 17 12.4953 17H11.5047C11.214 17 11 16.774 11 16.4953V15.5047C11 15.214 11.226 15 11.5047 15ZM14.5047 9H15.4953C15.786 9 16 9.22596 16 9.50468V10.4953C16 10.786 15.774 11 15.4953 11H14.5047C14.214 11 14 10.774 14 10.4953V9.50468C14 9.21404 14.226 9 14.5047 9ZM14.5047 12H15.4953C15.786 12 16 12.226 16 12.5047V13.4953C16 13.786 15.774 14 15.4953 14H14.5047C14.214 14 14 13.774 14 13.4953V12.5047C14 12.214 14.226 12 14.5047 12ZM14.5047 15H15.4953C15.786 15 16 15.226 16 15.5047V16.4953C16 16.786 15.774 17 15.4953 17H14.5047C14.214 17 14 16.774 14 16.4953V15.5047C14 15.214 14.226 15 14.5047 15ZM17.5047 15H18.4953C18.786 15 19 15.226 19 15.5047V16.4953C19 16.786 18.774 17 18.4953 17H17.5047C17.214 17 17 16.774 17 16.4953V15.5047C17 15.214 17.226 15 17.5047 15ZM5.50468 18H6.49532C6.78596 18 7 18.226 7 18.5047V19.4953C7 19.786 6.77404 20 6.49532 20H5.50468C5.21404 20 5 19.774 5 19.4953V18.5047C5 18.214 5.22595 18 5.50468 18ZM8.50468 18H9.49532C9.78596 18 10 18.226 10 18.5047V19.4953C10 19.786 9.77404 20 9.49532 20H8.50468C8.21404 20 8 19.774 8 19.4953V18.5047C8 18.214 8.22596 18 8.50468 18ZM11.5047 18H12.4953C12.786 18 13 18.226 13 18.5047V19.4953C13 19.786 12.774 20 12.4953 20H11.5047C11.214 20 11 19.774 11 19.4953V18.5047C11 18.214 11.226 18 11.5047 18ZM14.5047 18H15.4953C15.786 18 16 18.226 16 18.5047V19.4953C16 19.786 15.774 20 15.4953 20H14.5047C14.214 20 14 19.774 14 19.4953V18.5047C14 18.214 14.226 18 14.5047 18ZM17.5047 18H18.4953C18.786 18 19 18.226 19 18.5047V19.4953C19 19.786 18.774 20 18.4953 20H17.5047C17.214 20 17 19.774 17 19.4953V18.5047C17 18.214 17.226 18 17.5047 18ZM17.5047 12H18.4953C18.786 12 19 12.226 19 12.5047V13.4953C19 13.786 18.774 14 18.4953 14H17.5047C17.214 14 17 13.774 17 13.4953V12.5047C17 12.214 17.226 12 17.5047 12ZM17.5047 9H18.4953C18.786 9 19 9.22596 19 9.50468V10.4953C19 10.786 18.774 11 18.4953 11H17.5047C17.214 11 17 10.774 17 10.4953V9.50468C17 9.21404 17.226 9 17.5047 9Z" fill="#808080"/>\n</svg>\n',r='\n<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M9.27283 6.78069C8.87912 6.34164 8.91587 5.66655 9.35492 5.27283C9.79397 4.87912 10.4691 4.91587 10.8628 5.35492C10.8628 5.35492 16.0022 10.9543 16.366 11.36C16.7298 11.7657 16.7298 12.2392 16.366 12.6448L10.8628 18.6451C10.4691 19.0841 9.79397 19.1209 9.35492 18.7272C8.91587 18.3334 8.87912 17.6584 9.27283 17.2193L14.1368 12L9.27283 6.78069Z" fill="#808080"/>\n</svg>',i='<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M14.7272 17.2193C15.1209 17.6584 15.0841 18.3334 14.6451 18.7272C14.206 19.1209 13.5309 19.0841 13.1372 18.6451C13.1372 18.6451 7.99776 13.0457 7.63399 12.64C7.27023 12.2343 7.27023 11.7608 7.63399 11.3552L13.1372 5.35492C13.5309 4.91587 14.206 4.87912 14.6451 5.27283C15.0841 5.66655 15.1209 6.34164 14.7272 6.78069L9.86322 12L14.7272 17.2193Z" fill="#808080"/>\n</svg>'},20618:(t,e,n)=>{n.d(e,{S:()=>p,T:()=>d});var a=n(79365),r=n(81365),i=n(9696),o=n(97810),s=n(28796),l=n(25964);const d=(0,o.xE)("icon");class h extends((0,r.q)({componentName:d,baseSelector:"slot"})){static get observedAttributes(){return["src"]}#t;constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n\t\t<slot></slot>\n\t",(0,l.fz)("\n\t\t\t:host > slot {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n ",this)}init(){super.init?.(),this.toggleVisibility(this.src)}toggleVisibility(t){this.style.display=t?"":"none"}get src(){return this.getAttribute("src")}updateFillColor(t){[t,...t.querySelectorAll("*[fill]")].forEach((t=>{t.setAttribute("fill",`var(${p.cssVarList.fill}, ${t.getAttribute("fill")||"''"})`)}))}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),e!==n&&"src"===t&&(this.toggleVisibility(n),(0,s.w)(this.src).then((t=>{if(this.innerHTML="",t){const e=t.cloneNode(!0);this.updateFillColor(e),this.appendChild(e)}})))}}const p=(0,i.Zz)((0,a.RF)({mappings:{fill:{}}}),a.VO,a.tQ)(h)},28796:(t,e,n)=>{n.d(e,{w:()=>i});var a=n(25414);const r=t=>{const e=a.A.sanitize(t,{USE_PROFILES:{svg:!0,svgFilters:!0}});return(new DOMParser).parseFromString(e,"image/svg+xml").querySelector("svg")},i=async t=>{try{let e;if((t=>t.startsWith("data:image/svg+xml;base64,"))(t)){const n=atob(t.slice(26));e=r(n)}else if("svg"===(t=>{const e=t.match(/\.([0-9a-z]+)(?:[\\?#]|$)/i);return e?e[1]:null})(t)){const n=await fetch(t),a=await n.text();e=r(a)}else e=(t=>{const e=document.createElement("img");return e.setAttribute("src",t),e})(t);return e.style.setProperty("max-width","100%"),e.style.setProperty("max-height","100%"),e}catch{return null}}},73551:(t,e,n)=>{n.d(e,{$J:()=>c,I4:()=>o,Kl:()=>u,LJ:()=>p,Qv:()=>i,X6:()=>l,cy:()=>a,fu:()=>d,kG:()=>h,lS:()=>s,zm:()=>r});const a=t=>`\n :host {\n padding: calc(var(${t.inputOutlineWidth}) + var(${t.inputOutlineOffset}))\n }\n`,r=t=>`\n ${t} {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n }\n`,i=t=>`\n ${t}::part(input-field) {\n overflow: hidden;\n padding: 0;\n box-shadow: none;\n }\n`,o=t=>`\n ${t} > label,\n ${t}::part(label),\n ${t}::part(required-indicator) {\n cursor: pointer;\n }\n`,s=(t,e="input")=>`\n ${t}[disabled] > ${e}:placeholder-shown,\n\t${t}[readonly] > ${e}:placeholder-shown {\n\t\topacity: 1;\n\t}\n`,l=()=>"\n :host {\n --vaadin-field-default-width: auto;\n box-sizing: border-box;\n }\n",d=t=>`\n ${t}::part(input-field)::after {\n opacity: 0;\n }\n`,h=t=>`\n ${t}::part(input-field)::after {\n background: none;\n }\n`,p=(t,e)=>`\n ${r(t)}\n ${o(t)}\n ${s(t)}\n ${i(t)}\n ${((t,e)=>`\n ${t} input:-webkit-autofill,\n ${t} input:-webkit-autofill::first-line,\n ${t} input:-webkit-autofill:hover,\n ${t} input:-webkit-autofill:active,\n ${t} input:-webkit-autofill:focus {\n -webkit-text-fill-color: var(${e.inputValueTextColor});\n box-shadow: 0 0 0 var(${e.inputHeight}) var(${e.inputBackgroundColor}) inset;\n }\n`)(t,e)}\n ${h(t)}\n ${(t=>`\n ${t}::before {\n\t\theight: unset;\n\t}\n`)(t)}\n ${(t=>`\n ${t} > input {\n -webkit-mask-image: none;\n min-height: 0;\n box-sizing: border-box;\n }\n`)(t)}\n ${(t=>`\n ${t}::part(input-field)::after {\n border: none;\n }\n`)(t)}\n`,c=t=>`\n :host ::part(error-message) {\n direction: ltr;\n }\n :host([required]) ::part(required-indicator) {\n width: 1em;\n display: inline-flex;\n }\n :host([required]) ::part(required-indicator)::after {\n position: static;\n }\n :host([has-label]) ::part(label) {\n padding-right: 0;\n padding-bottom: 0;\n display: flex;\n width: 100%;\n }\n ${t} [slot="label"] {\n max-width: calc(100% - 1em);\n overflow: hidden;\n text-overflow: ellipsis;\n padding-bottom: 0.5em;\n }\n`,u=()=>'\n :host([label-type="floating"]) {\n position: relative;\n }\n :host([label-type="floating"][has-label]) [slot="label"] {\n padding: 0;\n }\n :host([label-type="floating"][has-label]) > ::part(label) {\n z-index: 1;\n padding: 0;\n width: auto;\n }\n '}}]);
1
+ "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[6028],{19624:(t,e,n)=>{n.d(e,{J:()=>u,T:()=>l});var a=n(63200),r=n(25964),i=n(88961),o=n(98538),s=n(10767);const l=(0,r.xE)("button"),{host:d,label:h,slottedIcon:p}={host:{selector:()=>":host"},label:{selector:"::part(label)"},slottedIcon:{selector:()=>"::slotted(descope-icon)"}};let c;const u=(0,a.Zz)((0,i.RF)({mappings:{hostWidth:{property:"width"},hostHeight:{property:"height"},hostDirection:{...d,property:"direction"},fontSize:{},fontFamily:{},cursor:{},backgroundColor:{},outlineOffset:{},outlineColor:{},outlineStyle:{},outlineWidth:{},borderRadius:{},borderColor:{},borderStyle:{},borderWidth:{},verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-right",fallback:"0.875em"},{property:"padding-left",fallback:"0.875em"}],labelTextColor:{property:"color"},iconColor:{selector:()=>"::slotted(*)",property:o.S.cssVarList.fill},labelTextDecoration:{...h,property:"text-decoration"},labelSpacing:{...h,property:"gap"},textAlign:{...h,property:"justify-content",fallback:"center"},iconSize:[{...p,property:"width"},{...p,property:"height"}]}}),s.G,i.VO,i.tQ)((0,i.tz)({slots:["","prefix","label","suffix"],wrappedEleName:"vaadin-button",style:()=>`\n\t\t\t\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n\n\t\t\t\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t\t\t${c}\n\t\t\tvaadin-button::part(label) { pointer-events: none; }\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${u.cssVarList.outlineWidth}) + var(${u.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width="true"]) {\n width: var(${u.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${u.cssVarList.hostHeight}) - var(${u.cssVarList.outlineWidth}) - var(${u.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square="true"]:not([full-width="true"]) {\n\t\t\t\twidth: calc(var(${u.cssVarList.hostWidth}) - var(${u.cssVarList.outlineWidth}) - var(${u.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,excludeAttrsSync:["tabindex"],componentName:l})),{color:y,fontSize:b}=u.cssVarList;c=`\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading="true"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${y});\n\t\ttop: calc(50% - (var(${b}) / 2));\n\t\tleft: calc(50% - (var(${b}) / 2));\n\t\tborder-width: calc(var(${b}) / 10);\n\t\twidth: var(${b});\n\t\theight: var(${b});\n\t}\n\t:host([disabled="true"]),\n\t:host([loading="true"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading="true"])::part(prefix),\n\t:host([loading="true"])::part(label) {\n\t\tvisibility: hidden;\n\t}\n`},10767:(t,e,n)=>{n.d(e,{G:()=>a});const a=t=>class extends t{get isLoading(){return"true"===this.getAttribute("loading")}click(){this.isLoading||super.click()}}},30576:(t,e,n)=>{n.r(e),n.d(e,{ButtonClass:()=>a.J,componentName:()=>a.T});var a=n(19624);n(83799),customElements.define(a.T,a.J)},98538:(t,e,n)=>{n.d(e,{S:()=>h,T:()=>l});var a=n(88961),r=n(72270),i=n(63200),o=n(25964),s=n(31004);const l=(0,o.xE)("icon");class d extends((0,r.qu)({componentName:l,baseSelector:"slot"})){static get observedAttributes(){return["src"]}#t;constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n\t\t<slot></slot>\n\t",(0,o.fz)("\n\t\t\t:host > slot {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n ",this)}init(){super.init?.(),this.toggleVisibility(this.src)}toggleVisibility(t){this.style.display=t?"":"none"}get src(){return this.getAttribute("src")}updateFillColor(t){[t,...t.querySelectorAll("*[fill]")].forEach((t=>{t.setAttribute("fill",`var(${h.cssVarList.fill}, ${t.getAttribute("fill")||"''"})`)}))}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),e!==n&&"src"===t&&(this.toggleVisibility(n),(0,s.w)(this.src).then((t=>{if(this.innerHTML="",t){const e=t.cloneNode(!0);this.updateFillColor(e),this.appendChild(e)}})))}}const h=(0,i.Zz)((0,a.RF)({mappings:{fill:{}}}),a.VO,a.tQ)(d)},31004:(t,e,n)=>{n.d(e,{w:()=>i});var a=n(25414);const r=t=>{const e=a.A.sanitize(t,{USE_PROFILES:{svg:!0,svgFilters:!0}});return(new DOMParser).parseFromString(e,"image/svg+xml").querySelector("svg")},i=async t=>{try{let e;if((t=>t.startsWith("data:image/svg+xml;base64,"))(t)){const n=atob(t.slice(26));e=r(n)}else if("svg"===(t=>{const e=t.match(/\.([0-9a-z]+)(?:[\\?#]|$)/i);return e?e[1]:null})(t)){const n=await fetch(t),a=await n.text();e=r(a)}else e=(t=>{const e=document.createElement("img");return e.setAttribute("src",t),e})(t);return e.style.setProperty("max-width","100%"),e.style.setProperty("max-height","100%"),e}catch{return null}}},3393:(t,e,n)=>{n.d(e,{y:()=>o});var a=n(9696),r=n(79365),i=n(81365);const o=(...t)=>(0,a.Zz)(r.XX,r._$,r.yF,r.jd)((0,i.q)(...t))},64101:(t,e,n)=>{n.d(e,{QF:()=>y,SP:()=>a,Tv:()=>c,US:()=>d,V$:()=>o,eT:()=>s,lv:()=>u,mx:()=>h,rR:()=>p,ui:()=>r,wJ:()=>i,xr:()=>l});const a=["MM/DD/YYYY","DD/MM/YYYY","YYYY/MM/DD"],r=a[0],i="YYYY-MM-DD",o=100,s="/",l=["Backspace","ArrowLeft","ArrowRight","ArrowDown","ArrowUp","PageUp","PageDown","Meta"],d=["January","February","March","April","May","June","July","August","September","October","November","December"],h=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],p={MONTH:{id:"month",min:1,max:12,placeholder:"MM",count:5,shiftCount:10},DAY:{id:"day",min:1,max:31,placeholder:"DD",count:5,shiftCount:10},YEAR:{id:"year",min:0,max:9999,placeholder:"YYYY",count:10,shiftCount:100}},c="Done",u="Cancel",y="Today"},88350:(t,e,n)=>{n.r(e),n.d(e,{CalendarClass:()=>q,componentName:()=>m}),n(27092),n(30576);var a=n(3393),r=n(9696),i=n(97810),o=n(73551),s=n(79365),l=n(49224),d=n(80071),h=n(64101);const p=(t,e)=>Array.isArray(t)&&t.length===e&&t.filter(Boolean).length===e,c=({label:t,dataId:e,dataName:n})=>`\n\t<div class="combo-box-item"\n\t\tdata-id="${e}"\n\t\tdata-name="${n}"\n\t>\n\t\t\t${t}\n\t</div>\n`,u=(t=h.US)=>t.map(((t,e)=>c({label:t,dataId:e+1,dataName:t}))).join(""),y=(t,e)=>{const[n,a]=(0,l.Pj)(e),[r,i]=(0,l.Pj)(t);return r===n&&i===a},b=(t,e,n)=>(t.addEventListener("input",e),t.addEventListener("focusout",n),t);var g=n(19624),v=n(25964);const m=(0,i.xE)("calendar"),C=["initial-value","initial-year","initial-month","years-range","calendar-months","calendar-weekdays","calendar-label-today","st-host-direction","disabled","full-width"],w=["calendar-label-submit","calendar-label-cancel"],f=(0,a.y)({componentName:m,baseSelector:"div"}),{calendar:x,day:V,dayEntry:S,currentDay:M,selectedDay:$,disabledDay:D,weekday:N,topNav:H,topNavSelectors:k,bottomNav:E,navPrev:L,navNext:A,navPrevRTL:T,navNextRTL:B,yearInput:Y,monthInput:I}={calendar:{selector:()=>".calendar"},topNav:{selector:()=>".nav.top-nav"},topNavSelectors:{selector:()=>".nav.top-nav .selectors > span"},bottomNav:{selector:()=>".nav.bottom-nav"},day:{selector:()=>".day"},dayEntry:{selector:()=>".day-entry"},currentDay:{selector:()=>".day-entry[data-current-day] .day"},selectedDay:{selector:()=>".day-entry[data-selected] .day"},disabledDay:{selector:()=>'.day-entry[data-disabled="true"] .day'},weekday:{selector:()=>".weekday"},navPrev:{selector:()=>".nav-prev"},navNext:{selector:()=>".nav-next"},navPrevRTL:{selector:()=>':host([st-host-direction="rtl"]) .nav-prev'},navNextRTL:{selector:()=>':host([st-host-direction="rtl"]) .nav-next'},yearInput:{selector:()=>".year-input"},monthInput:{selector:()=>".month-input"}},q=(0,r.Zz)((0,s.RF)({componentNameOverride:(0,i.xE)("input-wrapper")}),(0,s.RF)({mappings:{fontSize:{},fontFamily:{},hostWidth:[{selector:()=>":host",property:"width"},{selector:"table",property:"width"}],hostDirection:{property:"direction"},topNavVerticalPadding:[{...H,property:"padding-top"},{...H,property:"padding-bottom"}],topNavHorizointalPadding:[{...H,property:"padding-right"},{...H,property:"padding-left"}],topNavAlignment:{...H,property:"justify-content"},topNavGap:{...H,property:"gap"},topNavSelectorsGap:{...k,property:"gap"},bottomNavVerticalPadding:[{...E,property:"padding-top"},{...E,property:"padding-bottom"}],bottomNavHorizontalPadding:[{...E,property:"padding-right"},{...E,property:"padding-left"}],bottomNavAlignment:{...E,property:"justify-content"},bottomNavGap:{...E,property:"gap"},navMarginBottom:{...H,property:"margin-bottom"},calendarPadding:[{...x,property:"padding-bottom"},{...x,property:"padding-right"},{...x,property:"padding-left"}],navBorderBottomWidth:{...H,property:"border-bottom-width"},navBorderBottomColor:{...H,property:"border-bottom-color"},navBorderBottomStyle:{...H,property:"border-bottom-style"},weekdayFontSize:{...N,property:"font-size"},weekdayFontWeight:{...N,property:"font-weight"},currentDayBorderColor:{...M,property:"border-color"},currentDayBorderWidth:{...M,property:"border-width"},currentDayBorderStyle:{...M,property:"border-style"},dayHeight:{...S,property:"height"},daySize:[{...V,property:"height"},{...V,property:"width"}],dayPadding:{...V,property:"padding"},dayRadius:{...V,property:"border-radius"},dayTextAlign:{...V,property:"text-align"},dayBlockAlign:{...V,property:"margin"},dayTextColor:{...V,property:"color"},dayFontWeight:{...V,property:"font-weight"},dayBackgroundColor:{...V,property:"background-color"},dayCursor:{...V,property:"cursor"},dayFontSize:{...V,property:"font-size"},dayBackgroundColorHover:{selector:()=>".day:hover",property:"background-color"},daySelectedTextdColor:{...$,property:"color"},daySelectedBackgroundColor:{...$,property:"background-color"},dayDisabledTextdColor:{...D,property:"color"},yearInputWidth:{...Y,property:"width"},monthInputWidth:{...I,property:"width"},navButtonSize:[{...L,property:"width"},{...L,property:"height"},{...A,property:"width"},{...A,property:"height"}],navButtonCursor:[{...L,property:"cursor"},{...A,property:"cursor"}],navButtonRotation:[{...T,property:"transform"},{...B,property:"transform"}],navButtonOpacity:[{...L,property:"opacity"},{...A,property:"opacity"}]}}),s.VO,s.tQ)(class extends f{static get observedAttributes(){return[].concat(f.observedAttributes||[],C,w)}preview;timestamp;constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <div>\n <nav class="nav top-nav">\n <div class="nav-prev">\n </div>\n <div class="selectors"></div>\n <div class="nav-next">\n </div>\n </nav>\n <div class="calendar"></div>\n <nav class="nav bottom-nav">\n <descope-button class="cancel-button" variant="link" mode="primary">Cancel</descope-button>\n <descope-button class="submit-button" variant="link" mode="primary" disabled="true">Done</descope-button>\n </nav>\n </div>\n ',(0,v.fz)(`\n :host {\n display: inline-block;\n box-sizing: border-box;\n max-width: 100%;\n user-select: none;\n -webkit-user-select: none;\n }\n\n :host ::slotted {\n padding: 0;\n }\n\n [data-toggle-calendar] {\n cursor: pointer;\n display: flex;\n align-self: center;\n z-index: 1;\n }\n\n [data-disabled="true"] {\n pointer-events: none;\n }\n\n .calendar .day {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .nav {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n }\n\n .selectors,\n .selectors span {\n display: flex;\n justify-content: center;\n }\n\n descope-button {\n padding: 0;\n ${g.J.cssVarList.horizontalPadding}: 0;\n ${g.J.cssVarList.verticalPadding}: 0;\n ${g.J.cssVarList.outlineWidth}: 0;\n }\n\n .combo-box-item {\n display:flex;\n flex-direction: column;\n }\n\n ${(0,o.Kl)()}\n `,this)}set value(t){if(!t)return;const e=(0,l.Nq)(t).getTime();(0,l.xP)(e)&&e!==this.timestmap&&(this.timestamp=e,this.renderCalendar())}get value(){return this.timestamp?(0,l.Ey)(this.timestamp,h.wJ):""}get isSelectedView(){return y(this.preview,this.timestamp)}get isTodayView(){return y((0,l.Ln)(),this.preview)}get monthNames(){return(t=>{const e=t?.split(",");return p(e,12)?e:h.US})(this.getAttribute("calendar-months"))}get weekdayNames(){return(t=>{const e=t?.split?.(",");return p(e,7)?e:h.mx})(this.getAttribute("calendar-weekdays"))}get hasYearValue(){return!!this.yearInput.value}get hasMonthValue(){return!!this.monthInput.value}get yearsRange(){const t=this.getAttribute("years-range")?.split("-");if(2===t?.length){const[e,n]=t.map(Number);if(e<=n)return[e,n]}const e=(0,l.Nq)().getFullYear();return[e,e+h.V$]}init(){super.init?.(),this.initCalendar(),this.renderCalendar()}initCalendar(){this.calendar=this.shadowRoot.querySelector(".calendar"),this.navPrevEle=this.shadowRoot.querySelector(".nav-prev"),this.navNextEle=this.shadowRoot.querySelector(".nav-next"),this.submitButton=this.shadowRoot.querySelector(".submit-button"),this.cancelButton=this.shadowRoot.querySelector(".cancel-button"),this.initInputs(),this.initNav(),this.addEventListener("day-changed",(()=>this.submitButton.removeAttribute("disabled"))),this.submitButton.shadowRoot.querySelector("vaadin-button").setAttribute("disabled","true")}initInputs(){const t=(()=>{const t=document.createElement("span");return t.innerHTML=`\n <descope-combo-box\n label-type="static"\n bordered="true"\n item-label-path="data-name"\n item-value-path="data-id"\n class="month-input"\n >\n ${u()}\n </descope-combo-box>\n <descope-combo-box\n allow-custom-value="true"\n label-type="static"\n bordered="true"\n item-label-path="data-name"\n item-value-path="data-id"\n class="year-input"\n no-empty-value="true"\n >\n </descope-combo-box>\n `,t})(this.monthNames,this.yearsRange);this.shadowRoot.querySelector(".selectors").appendChild(t),this.monthInput=b(this.shadowRoot.querySelector(".month-input"),this.onMonthChange.bind(this),this.onMonthInputBlur.bind(this)),this.yearInput=b(this.shadowRoot.querySelector(".year-input"),this.onYearChange.bind(this),this.onYearInputBlur.bind(this)),[this.monthInput,this.yearInput].forEach((t=>(0,i.EA)(this,t,{includeAttrs:["disabled","size","st-host-direction"]})))}initNav(){this.navPrevEle.addEventListener("click",this.navPrevMonth.bind(this)),this.navNextEle.addEventListener("click",this.navNextMonth.bind(this)),this.cancelButton.addEventListener("click",this.onCancel.bind(this)),this.submitButton.addEventListener("click",this.onSubmit.bind(this)),[this.navPrevEle,this.navNextEle].forEach((t=>(0,i.EA)(this,t,{includeAttrs:["size"]}))),this.shadowRoot.querySelector(".nav-next").innerHTML=d.ZM,this.shadowRoot.querySelector(".nav-prev").innerHTML=d.i1}onSubmit(){this.isDisabled||this.value&&this.dispatchEvent(new CustomEvent("date-submit",{detail:(0,l.Nq)(this.preview)}))}onCancel(){this.isDisabled||(this.dispatchEvent(new CustomEvent("cancel")),this.dispatchEvent(new CustomEvent("date-cancel")),this.clearSelectedDay())}clearSelectedDay(){this.getSelectedDayEle()?.removeAttribute("data-selected"),this.submitButton.setAttribute("disabled","true"),this.timestamp=""}updateInputs(){if(this.yearInput&&this.monthInput){const t=this.preview||(0,l.Ln)(),e=(0,l.Bl)(t),n=(0,l.tj)(t);this.monthInput.value=n,setTimeout((()=>{this.yearInput.baseElement.value=e}))}}renderCalendar(){const t=(0,l.Nq)(this.preview||(0,l.Ln)()).getTime(),[e,n]=(0,l.Pj)(t);this.calendar&&(this.calendar.innerHTML=((t,e,n)=>{const a=((t,e)=>new Date(t,e,0).getDate())(t,e),r=new Date(t,e-1,1).getDay();let i="<table>";i+=`<thead><tr>${n.reduce(((t,e)=>`${t}<th><span class="weekday">${e}</span></th>`),"")}</tr></thead>`,i+="<tbody>",i+="<tr>";for(let t=0;t<r;t++)i+="<td></td>";let o=r;for(let t=1;t<=a;t++)7===o&&(o=0,i+="</tr><tr>"),i+=`\n <td\n data-date-day="${t}"\n class="day-entry">\n <span class="day" data-date-day=${t}>\n ${t}\n </span>\n </td>\n `,o++;for(;o<7;)i+="<td></td>",o++;return i+="</tr></tbody></table>",i})(e,n,this.weekdayNames.map((t=>t.substring(0,3))))),Array.from(this.calendar?.querySelectorAll(".day-entry .day")||[]).forEach((t=>t.addEventListener("click",this.onDayChange.bind(this)))),this.updateInputs(),this.setSelectedDay(),this.setCurrentDay()}onDayChange(t){if(this.isDisabled)return;const e=(0,l.Nq)(this.preview);e.setDate(Number(t.target.getAttribute("data-date-day"))),this.value=(0,l.Ey)(e.getTime(),h.wJ),this.dispatchEvent(new CustomEvent("day-changed",{detail:e}))}onYearChange(t){if(!t.target.value)return;const e=(0,l.Nq)(this.preview);e.setFullYear(Number(t.target.value.trim())),this.preview=e.getTime(),this.renderCalendar(),this.dispatchEvent(new CustomEvent("year-changed",{detail:e}))}onMonthChange(t){if(!t.target.value)return;const e=(0,l.Nq)(this.preview);e.setMonth(Number(t.target.value)-1),this.preview=e.getTime(),this.renderCalendar(),this.dispatchEvent(new CustomEvent("month-changed",{detail:e}))}onYearInputBlur(t){this.yearInput.baseElement.value=t.target.value||(0,l.Bl)(this.preview)}onMonthInputBlur(t){this.monthInput.baseElement.value=t.target.value||(0,l.tj)(this.preview)}getSelectedDayEle(){const t=(0,l.Nq)(this.timestamp).getDate();return this.calendar?.querySelector(`[data-date-day="${t}"]`)}getCurrentDayEle(){return this.calendar?.querySelector(`[data-date-day="${(0,l._B)()}"]`)}clearSelectedDays(){const t=this.calendar?.querySelectorAll("[data-selected]");t&&t.forEach((t=>t.removeAttribute("data-selected")))}setSelectedDay(){this.clearSelectedDays(),this.value&&this.isSelectedView&&this.getSelectedDayEle().setAttribute("data-selected","true")}setCurrentDay(){if(this.isTodayView){const t=this.getCurrentDayEle(),e=this.getAttribute("calendar-label-today")||h.QF;t.setAttribute("data-current-day","true"),t.setAttribute("title",e)}}navPrevMonth(){if(this.isDisabled)return;const t=(t=>{const e=(0,l.Nq)(t),n=e.getMonth();if(0===n){const t=e.getFullYear();e.setFullYear(t-1),e.setMonth(11)}else e.setMonth(n-1);return e})(this.preview);this.preview=t.getTime(),this.renderCalendar()}navNextMonth(){if(this.isDisabled)return;const t=(t=>{const e=(0,l.Nq)(t),n=e.getMonth();if(11===n){const t=e.getFullYear();e.setFullYear(t+1),e.setMonth(0)}else e.setMonth(n+1);return e})(this.preview);this.preview=t.getTime(),this.renderCalendar()}clearValue(){this.timestamp="",this.value="",this.removeAttribute("preview"),this.submitButton.setAttribute("disabled","true")}onInitialValueChange(t){if(this.value)return;const e=(0,l.Nq)(t).getTime();(0,l.xP)(e)?(this.timestamp=e,this.preview=e):this.clearValue()}onYearsRangeChange(){setTimeout((()=>{this.yearInput&&(this.yearInput.innerHTML=(t=>{const[e,n]=t,a=[];for(let t=e;t<=n;t++)a.push(t);return a})(this.yearsRange).map((t=>c({label:t,dataId:t,dataName:t}))).join(""))}))}onMonthNamesChange(){setTimeout((()=>{this.monthInput&&(this.monthInput.innerHTML=u(this.monthNames))}))}onSubmitLabelChange(t){this.submitButton&&(this.submitButton.textContent=t||h.Tv)}onCancelLabelChange(t){this.cancelButton&&(this.cancelButton.textContent=t||h.lv)}onInitialMonthChange(t){const e=(0,l.Bl)(this.preview);this.preview=(0,l.Nq)(`${e}/${t}/1`).getTime()}onInitialYearChange(t){const e=(0,l.tj)(this.preview);this.preview=(0,l.Nq)(`${t}/${e}/1`).getTime()}attributeChangedCallback(t,e,n){super.attributeChangedCallback(t,e,n),e!==n&&(w.includes(t)?("calendar-label-submit"===t&&this.onSubmitLabelChange(n),"calendar-label-cancel"===t&&this.onCancelLabelChange(n)):(n&&"initial-value"===t&&this.onInitialValueChange(n),n&&"initial-month"===t&&this.onInitialMonthChange(n),n&&"initial-year"===t&&this.onInitialYearChange(n),"years-range"===t&&this.onYearsRangeChange(Number(n)),"calendar-months"===t&&this.onMonthNamesChange(),"calendar-label-today"===t&&this.setCurrentDay(n),"disabled"===t&&setTimeout((()=>{this.cancelButton?.setAttribute("disabled","true"===n)})),this.renderCalendar()))}getValidity(){return this.isRequired&&!this.value?{valueMissing:!0}:{}}});customElements.define(m,q)},49224:(t,e,n)=>{n.d(e,{Bl:()=>c,Et:()=>i,Ey:()=>s,KQ:()=>d,Ln:()=>p,Nq:()=>l,Pj:()=>o,Xs:()=>b,_B:()=>y,tj:()=>u,xP:()=>r,y4:()=>h});var a=n(64101);const r=t=>!Number.isNaN(Number(t)),i=t=>!Number.isNaN(Number(t)),o=t=>{const e=new Date(t);return[e.getFullYear(),e.getMonth()+1,e.getDate()]},s=(t,e)=>{const[n,a,r]=o(t),i={DD:String(r).padStart(2,"0"),MM:String(a).padStart(2,"0"),YYYY:String(n)};return e.replace(/DD|MM|YYYY/g,(t=>i[t]))},l=t=>"number"==typeof t?new Date(t):"string"==typeof t?new Date(t.replace(/-/g,"/")):new Date,d=t=>a.xr.includes(t),h=(t,e,n)=>({refresh:n&&"r"===t.toLowerCase(),tab:"Tab"===t,shiftTab:e&&"Tab"===t,backspace:"Backspace"===t,arrowUp:!e&&"ArrowUp"===t,arrowDown:!e&&"ArrowDown"===t,arrowLeft:!e&&"ArrowLeft"===t,arrowRight:!e&&"ArrowRight"===t,pageUp:!e&&"PageUp"===t,pageDown:!e&&"PageDown"===t,shiftArrowUp:e&&"ArrowUp"===t,shiftArrowDown:e&&"ArrowDown"===t,shiftPageUp:e&&"PageUp"===t,shiftPageDown:e&&"PageDown"===t}),p=()=>l().getTime(),c=t=>l(t).getFullYear().toString(),u=t=>(l(t).getMonth()+1).toString(),y=()=>l().getDate(),b=t=>{const e=new CSSStyleSheet;e.insertRule(":host{display:block!important;}"),t?.shadowRoot?.adoptedStyleSheets?.push(e)}},80071:(t,e,n)=>{n.d(e,{ZM:()=>r,i1:()=>i,ki:()=>a});const a='\n<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path fill-rule="evenodd" clip-rule="evenodd" d="M9 5H15V4.50468C15 4.21404 15.226 4 15.5047 4H16.4953C16.786 4 17 4.22595 17 4.50468V5H18.7568C19.3028 5 19.75 5.44725 19.75 5.99896V7.00104C19.75 7.55734 19.3053 8 18.7568 8H5.24317C4.69717 8 4.25 7.55275 4.25 7.00104V5.99896C4.25 5.44266 4.69466 5 5.24317 5H7V4.50468C7 4.21404 7.22596 4 7.50468 4H8.49532C8.78596 4 9 4.22595 9 4.50468V5ZM5.50468 9H6.49532C6.78596 9 7 9.22596 7 9.50468V10.4953C7 10.786 6.77404 11 6.49532 11H5.50468C5.21404 11 5 10.774 5 10.4953V9.50468C5 9.21404 5.22595 9 5.50468 9ZM8.50468 9H9.49532C9.78596 9 10 9.22596 10 9.50468V10.4953C10 10.786 9.77404 11 9.49532 11H8.50468C8.21404 11 8 10.774 8 10.4953V9.50468C8 9.21404 8.22596 9 8.50468 9ZM11.5047 9H12.4953C12.786 9 13 9.22596 13 9.50468V10.4953C13 10.786 12.774 11 12.4953 11H11.5047C11.214 11 11 10.774 11 10.4953V9.50468C11 9.21404 11.226 9 11.5047 9ZM5.50468 12H6.49532C6.78596 12 7 12.226 7 12.5047V13.4953C7 13.786 6.77404 14 6.49532 14H5.50468C5.21404 14 5 13.774 5 13.4953V12.5047C5 12.214 5.22595 12 5.50468 12ZM8.50468 12H9.49532C9.78596 12 10 12.226 10 12.5047V13.4953C10 13.786 9.77404 14 9.49532 14H8.50468C8.21404 14 8 13.774 8 13.4953V12.5047C8 12.214 8.22596 12 8.50468 12ZM11.5047 12H12.4953C12.786 12 13 12.226 13 12.5047V13.4953C13 13.786 12.774 14 12.4953 14H11.5047C11.214 14 11 13.774 11 13.4953V12.5047C11 12.214 11.226 12 11.5047 12ZM5.50468 15H6.49532C6.78596 15 7 15.226 7 15.5047V16.4953C7 16.786 6.77404 17 6.49532 17H5.50468C5.21404 17 5 16.774 5 16.4953V15.5047C5 15.214 5.22595 15 5.50468 15ZM8.50468 15H9.49532C9.78596 15 10 15.226 10 15.5047V16.4953C10 16.786 9.77404 17 9.49532 17H8.50468C8.21404 17 8 16.774 8 16.4953V15.5047C8 15.214 8.22596 15 8.50468 15ZM11.5047 15H12.4953C12.786 15 13 15.226 13 15.5047V16.4953C13 16.786 12.774 17 12.4953 17H11.5047C11.214 17 11 16.774 11 16.4953V15.5047C11 15.214 11.226 15 11.5047 15ZM14.5047 9H15.4953C15.786 9 16 9.22596 16 9.50468V10.4953C16 10.786 15.774 11 15.4953 11H14.5047C14.214 11 14 10.774 14 10.4953V9.50468C14 9.21404 14.226 9 14.5047 9ZM14.5047 12H15.4953C15.786 12 16 12.226 16 12.5047V13.4953C16 13.786 15.774 14 15.4953 14H14.5047C14.214 14 14 13.774 14 13.4953V12.5047C14 12.214 14.226 12 14.5047 12ZM14.5047 15H15.4953C15.786 15 16 15.226 16 15.5047V16.4953C16 16.786 15.774 17 15.4953 17H14.5047C14.214 17 14 16.774 14 16.4953V15.5047C14 15.214 14.226 15 14.5047 15ZM17.5047 15H18.4953C18.786 15 19 15.226 19 15.5047V16.4953C19 16.786 18.774 17 18.4953 17H17.5047C17.214 17 17 16.774 17 16.4953V15.5047C17 15.214 17.226 15 17.5047 15ZM5.50468 18H6.49532C6.78596 18 7 18.226 7 18.5047V19.4953C7 19.786 6.77404 20 6.49532 20H5.50468C5.21404 20 5 19.774 5 19.4953V18.5047C5 18.214 5.22595 18 5.50468 18ZM8.50468 18H9.49532C9.78596 18 10 18.226 10 18.5047V19.4953C10 19.786 9.77404 20 9.49532 20H8.50468C8.21404 20 8 19.774 8 19.4953V18.5047C8 18.214 8.22596 18 8.50468 18ZM11.5047 18H12.4953C12.786 18 13 18.226 13 18.5047V19.4953C13 19.786 12.774 20 12.4953 20H11.5047C11.214 20 11 19.774 11 19.4953V18.5047C11 18.214 11.226 18 11.5047 18ZM14.5047 18H15.4953C15.786 18 16 18.226 16 18.5047V19.4953C16 19.786 15.774 20 15.4953 20H14.5047C14.214 20 14 19.774 14 19.4953V18.5047C14 18.214 14.226 18 14.5047 18ZM17.5047 18H18.4953C18.786 18 19 18.226 19 18.5047V19.4953C19 19.786 18.774 20 18.4953 20H17.5047C17.214 20 17 19.774 17 19.4953V18.5047C17 18.214 17.226 18 17.5047 18ZM17.5047 12H18.4953C18.786 12 19 12.226 19 12.5047V13.4953C19 13.786 18.774 14 18.4953 14H17.5047C17.214 14 17 13.774 17 13.4953V12.5047C17 12.214 17.226 12 17.5047 12ZM17.5047 9H18.4953C18.786 9 19 9.22596 19 9.50468V10.4953C19 10.786 18.774 11 18.4953 11H17.5047C17.214 11 17 10.774 17 10.4953V9.50468C17 9.21404 17.226 9 17.5047 9Z" fill="#808080"/>\n</svg>\n',r='\n<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M9.27283 6.78069C8.87912 6.34164 8.91587 5.66655 9.35492 5.27283C9.79397 4.87912 10.4691 4.91587 10.8628 5.35492C10.8628 5.35492 16.0022 10.9543 16.366 11.36C16.7298 11.7657 16.7298 12.2392 16.366 12.6448L10.8628 18.6451C10.4691 19.0841 9.79397 19.1209 9.35492 18.7272C8.91587 18.3334 8.87912 17.6584 9.27283 17.2193L14.1368 12L9.27283 6.78069Z" fill="#808080"/>\n</svg>',i='<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M14.7272 17.2193C15.1209 17.6584 15.0841 18.3334 14.6451 18.7272C14.206 19.1209 13.5309 19.0841 13.1372 18.6451C13.1372 18.6451 7.99776 13.0457 7.63399 12.64C7.27023 12.2343 7.27023 11.7608 7.63399 11.3552L13.1372 5.35492C13.5309 4.91587 14.206 4.87912 14.6451 5.27283C15.0841 5.66655 15.1209 6.34164 14.7272 6.78069L9.86322 12L14.7272 17.2193Z" fill="#808080"/>\n</svg>'},73551:(t,e,n)=>{n.d(e,{$J:()=>c,I4:()=>o,Kl:()=>u,LJ:()=>p,Qv:()=>i,X6:()=>l,cy:()=>a,fu:()=>d,kG:()=>h,lS:()=>s,zm:()=>r});const a=t=>`\n :host {\n padding: calc(var(${t.inputOutlineWidth}) + var(${t.inputOutlineOffset}))\n }\n`,r=t=>`\n ${t} {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n }\n`,i=t=>`\n ${t}::part(input-field) {\n overflow: hidden;\n padding: 0;\n box-shadow: none;\n }\n`,o=t=>`\n ${t} > label,\n ${t}::part(label),\n ${t}::part(required-indicator) {\n cursor: pointer;\n }\n`,s=(t,e="input")=>`\n ${t}[disabled] > ${e}:placeholder-shown,\n\t${t}[readonly] > ${e}:placeholder-shown {\n\t\topacity: 1;\n\t}\n`,l=()=>"\n :host {\n --vaadin-field-default-width: auto;\n box-sizing: border-box;\n }\n",d=t=>`\n ${t}::part(input-field)::after {\n opacity: 0;\n }\n`,h=t=>`\n ${t}::part(input-field)::after {\n background: none;\n }\n`,p=(t,e)=>`\n ${r(t)}\n ${o(t)}\n ${s(t)}\n ${i(t)}\n ${((t,e)=>`\n ${t} input:-webkit-autofill,\n ${t} input:-webkit-autofill::first-line,\n ${t} input:-webkit-autofill:hover,\n ${t} input:-webkit-autofill:active,\n ${t} input:-webkit-autofill:focus {\n -webkit-text-fill-color: var(${e.inputValueTextColor});\n box-shadow: 0 0 0 var(${e.inputHeight}) var(${e.inputBackgroundColor}) inset;\n }\n`)(t,e)}\n ${h(t)}\n ${(t=>`\n ${t}::before {\n\t\theight: unset;\n\t}\n`)(t)}\n ${(t=>`\n ${t} > input {\n -webkit-mask-image: none;\n min-height: 0;\n box-sizing: border-box;\n }\n`)(t)}\n ${(t=>`\n ${t}::part(input-field)::after {\n border: none;\n }\n`)(t)}\n`,c=t=>`\n :host ::part(error-message) {\n direction: ltr;\n }\n :host([required]) ::part(required-indicator) {\n width: 1em;\n display: inline-flex;\n }\n :host([required]) ::part(required-indicator)::after {\n position: static;\n }\n :host([has-label]) ::part(label) {\n padding-right: 0;\n padding-bottom: 0;\n display: flex;\n width: 100%;\n }\n ${t} [slot="label"] {\n max-width: calc(100% - 1em);\n overflow: hidden;\n text-overflow: ellipsis;\n padding-bottom: 0.5em;\n }\n`,u=()=>'\n :host([label-type="floating"]) {\n position: relative;\n }\n :host([label-type="floating"][has-label]) [slot="label"] {\n padding: 0;\n }\n :host([label-type="floating"][has-label]) > ::part(label) {\n z-index: 1;\n padding: 0;\n width: auto;\n }\n '}}]);
2
2
  //# sourceMappingURL=descope-date-field-descope-calendar-index-js.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"descope-date-field-descope-calendar-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/./src/baseClasses/createBaseInputClass.js","webpack://@descope/web-components-ui/./src/components/descope-button/ButtonClass.js","webpack://@descope/web-components-ui/./src/components/descope-button/clickableMixin.js","webpack://@descope/web-components-ui/./src/components/descope-button/index.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/consts.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/descope-calendar/helpers.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/descope-calendar/CalendarClass.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/descope-calendar/index.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/helpers.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/icons.js","webpack://@descope/web-components-ui/./src/components/descope-icon/IconClass.js","webpack://@descope/web-components-ui/./src/components/descope-icon/helpers.js","webpack://@descope/web-components-ui/./src/helpers/themeHelpers/resetHelpers.js"],"sourcesContent":["import { compose } from '../helpers';\nimport {\n changeMixin,\n inputEventsDispatchingMixin,\n inputValidationMixin,\n normalizeBooleanAttributesMixin,\n} from '../mixins';\nimport { createBaseClass } from './createBaseClass';\n\nexport const createBaseInputClass = (...args) =>\n compose(\n inputValidationMixin,\n changeMixin,\n normalizeBooleanAttributesMixin,\n inputEventsDispatchingMixin\n )(createBaseClass(...args));\n","import { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n} from '../../mixins';\nimport { IconClass } from '../descope-icon/IconClass';\nimport { clickableMixin } from './clickableMixin';\n\nexport const componentName = getComponentName('button');\n\nconst resetStyles = `\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n`;\n\nconst iconStyles = `\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n`;\n\nconst editorOverrides = `vaadin-button::part(label) { pointer-events: none; }`;\n\nconst { host, label, slottedIcon } = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n slottedIcon: { selector: () => '::slotted(descope-icon)' },\n};\n\nlet loadingIndicatorStyles;\n\nexport const ButtonClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { property: 'width' },\n hostHeight: { property: 'height' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n fontFamily: {},\n\n cursor: {},\n backgroundColor: {},\n\n outlineOffset: {},\n outlineColor: {},\n outlineStyle: {},\n outlineWidth: {},\n\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n verticalPadding: [{ property: 'padding-top' }, { property: 'padding-bottom' }],\n horizontalPadding: [\n { property: 'padding-right', fallback: '0.875em' },\n { property: 'padding-left', fallback: '0.875em' },\n ],\n\n labelTextColor: { property: 'color' },\n iconColor: {\n selector: () => `::slotted(*)`,\n property: IconClass.cssVarList.fill,\n },\n labelTextDecoration: { ...label, property: 'text-decoration' },\n labelSpacing: { ...label, property: 'gap' },\n textAlign: { ...label, property: 'justify-content', fallback: 'center' },\n\n iconSize: [\n { ...slottedIcon, property: 'width' },\n { ...slottedIcon, property: 'height' },\n ],\n },\n }),\n clickableMixin,\n draggableMixin,\n componentNameValidationMixin\n)(\n createProxy({\n slots: ['', 'prefix', 'label', 'suffix'],\n wrappedEleName: 'vaadin-button',\n style: () => `\n\t\t\t${resetStyles}\n\t\t\t${iconStyles}\n\t\t\t${loadingIndicatorStyles}\n\t\t\t${editorOverrides}\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${ButtonClass.cssVarList.outlineWidth}) + var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width=\"true\"]) {\n width: var(${ButtonClass.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${ButtonClass.cssVarList.hostHeight}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square=\"true\"]:not([full-width=\"true\"]) {\n\t\t\t\twidth: calc(var(${ButtonClass.cssVarList.hostWidth}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n\nconst { color, fontSize } = ButtonClass.cssVarList;\nloadingIndicatorStyles = `\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading=\"true\"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${color});\n\t\ttop: calc(50% - (var(${fontSize}) / 2));\n\t\tleft: calc(50% - (var(${fontSize}) / 2));\n\t\tborder-width: calc(var(${fontSize}) / 10);\n\t\twidth: var(${fontSize});\n\t\theight: var(${fontSize});\n\t}\n\t:host([disabled=\"true\"]),\n\t:host([loading=\"true\"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading=\"true\"])::part(prefix),\n\t:host([loading=\"true\"])::part(label) {\n\t\tvisibility: hidden;\n\t}\n`;\n","export const clickableMixin = (superclass) =>\n class ClickableMixinClass extends superclass {\n get isLoading() {\n return this.getAttribute('loading') === 'true';\n }\n\n click() {\n this.isLoading || super.click();\n }\n };\n","import '@vaadin/button';\nimport { componentName, ButtonClass } from './ButtonClass';\n\ncustomElements.define(componentName, ButtonClass);\n\nexport { ButtonClass, componentName };\n","export const SUPPORTED_FORMATS = ['MM/DD/YYYY', 'DD/MM/YYYY', 'YYYY/MM/DD'];\n\nexport const DEFAULT_FORMAT = SUPPORTED_FORMATS[0];\n\nexport const NATIVE_FORMAT = 'YYYY-MM-DD';\n\nexport const YEARS_RANGE = 100;\n\nexport const DIVIDER = '/';\n\nexport const COUNTER_SUPPORTED_KEYS = [\n 'Backspace',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowDown',\n 'ArrowUp',\n 'PageUp',\n 'PageDown',\n 'Meta',\n];\n\nexport const months = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nexport const weekdays = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n];\n\nexport const counterConfig = {\n MONTH: { id: 'month', min: 1, max: 12, placeholder: 'MM', count: 5, shiftCount: 10 },\n DAY: { id: 'day', min: 1, max: 31, placeholder: 'DD', count: 5, shiftCount: 10 },\n YEAR: { id: 'year', min: 0, max: 9999, placeholder: 'YYYY', count: 10, shiftCount: 100 },\n};\n\nexport const BUTTON_LABEL_DONE = 'Done';\nexport const BUTTON_LABEL_CANCEL = 'Cancel';\nexport const CALENDAR_LABEL_TODAY = 'Today';\n","import { months, weekdays } from '../consts';\nimport { getTimestampParts, newDate } from '../helpers';\n\nconst isValidAttrArr = (arr, count) =>\n Array.isArray(arr) && arr.length === count && arr.filter(Boolean).length === count;\n\nconst generateYearList = (range) => {\n const [start, end] = range;\n const years = [];\n\n for (let year = start; year <= end; year++) {\n years.push(year);\n }\n\n return years;\n};\n\nconst getMaxDaysInMonth = (year, month) => {\n return new Date(year, month, 0).getDate();\n};\n\nconst comboBoxItemTpl = ({ label, dataId, dataName }) => `\n\t<div class=\"combo-box-item\"\n\t\tdata-id=\"${dataId}\"\n\t\tdata-name=\"${dataName}\"\n\t>\n\t\t\t${label}\n\t</div>\n`;\n\nexport const createMonthView = (year, month, shortWeekdays) => {\n const daysInMonth = getMaxDaysInMonth(year, month);\n\n // Get day of the week (0 = Sunday, 1 = Monday, etc.)\n const firstDayOfMonth = new Date(year, month - 1, 1).getDay();\n\n let monthView = '<table>';\n\n // Add the table headers (days of the week)\n monthView += `<thead><tr>${shortWeekdays.reduce(\n (acc, d) => `${acc}<th><span class=\"weekday\">${d}</span></th>`,\n ''\n )}</tr></thead>`;\n\n monthView += '<tbody>';\n\n // Add empty cells for the days before the start of the month\n monthView += '<tr>';\n for (let i = 0; i < firstDayOfMonth; i++) {\n monthView += '<td></td>';\n }\n\n // Add days of the month\n let dayOfWeek = firstDayOfMonth;\n for (let i = 1; i <= daysInMonth; i++) {\n if (dayOfWeek === 7) {\n dayOfWeek = 0;\n monthView += '</tr><tr>';\n }\n\n monthView += `\n <td\n data-date-day=\"${i}\"\n class=\"day-entry\">\n <span class=\"day\" data-date-day=${i}>\n ${i}\n </span>\n </td>\n `;\n dayOfWeek++;\n }\n\n // Add empty cells for the days after the end of the month\n while (dayOfWeek < 7) {\n monthView += '<td></td>';\n dayOfWeek++;\n }\n\n monthView += '</tr></tbody></table>';\n\n return monthView;\n};\n\nexport const getYearOptions = (range) =>\n generateYearList(range)\n .map((item) => comboBoxItemTpl({ label: item, dataId: item, dataName: item }))\n .join('');\n\nexport const getMonthsOptions = (customMonths = months) =>\n customMonths\n .map((item, index) => comboBoxItemTpl({ label: item, dataId: index + 1, dataName: item }))\n .join('');\n\nexport const isViewVisible = (selectionTimestamp, previewTimestamp) => {\n const [previewYear, previewMonth] = getTimestampParts(previewTimestamp);\n const [selectedYear, selectedMonth] = getTimestampParts(selectionTimestamp);\n return selectedYear === previewYear && selectedMonth === previewMonth;\n};\n\nexport const createInputs = () => {\n const ele = document.createElement('span');\n\n ele.innerHTML = `\n <descope-combo-box\n label-type=\"static\"\n bordered=\"true\"\n item-label-path=\"data-name\"\n item-value-path=\"data-id\"\n class=\"month-input\"\n >\n ${getMonthsOptions()}\n </descope-combo-box>\n <descope-combo-box\n allow-custom-value=\"true\"\n label-type=\"static\"\n bordered=\"true\"\n item-label-path=\"data-name\"\n item-value-path=\"data-id\"\n class=\"year-input\"\n no-empty-value=\"true\"\n >\n </descope-combo-box>\n `;\n\n return ele;\n};\n\nexport const initComboBox = (input, onChange, onBlur) => {\n input.addEventListener('input', onChange);\n input.addEventListener('focusout', onBlur);\n return input;\n};\n\nexport const ensureMonthNamesArr = (attrVal) => {\n const monthArr = attrVal?.split(',');\n return isValidAttrArr(monthArr, 12) ? monthArr : months;\n};\n\nexport const ensureWeekdayNamesArr = (attrVal) => {\n const customWeekdayArr = attrVal?.split?.(',');\n const isCustomValid = isValidAttrArr(customWeekdayArr, 7);\n return isCustomValid ? customWeekdayArr : weekdays;\n};\n\nexport const ensureShortWeekdayNamesArr = (attrVal) => {\n const customShortWeekdays = attrVal;\n\n if (!attrVal || !isValidAttrArr(customShortWeekdays, 7)) {\n return weekdays.map((d) => d.substring(0, 3));\n }\n\n return customShortWeekdays.map((d) => d.substring(0, 3));\n};\n\nexport const truncateWeekdays = (arr) => arr.map((d) => d.substring(0, 3));\n\nexport const prevMonth = (timestamp) => {\n const date = newDate(timestamp);\n const month = date.getMonth();\n\n if (month === 0) {\n const year = date.getFullYear();\n date.setFullYear(year - 1);\n date.setMonth(11);\n } else {\n date.setMonth(month - 1);\n }\n\n return date;\n};\n\nexport const nextMonth = (timestamp) => {\n const date = newDate(timestamp);\n const month = date.getMonth();\n\n if (month === 11) {\n const year = date.getFullYear();\n date.setFullYear(year + 1);\n date.setMonth(0);\n } else {\n date.setMonth(month + 1);\n }\n\n return date;\n};\n","import { createBaseInputClass } from '../../../baseClasses/createBaseInputClass';\nimport { compose } from '../../../helpers';\nimport { forwardAttrs, getComponentName } from '../../../helpers/componentHelpers';\nimport { inputFloatingLabelStyle } from '../../../helpers/themeHelpers/resetHelpers';\nimport { componentNameValidationMixin, createStyleMixin, draggableMixin } from '../../../mixins';\nimport {\n getCurrentDay,\n getTimestampParts,\n isValidTimestamp,\n newDate,\n formatTimestamp,\n getCurrentTime,\n getFullYear,\n getMonth,\n} from '../helpers';\nimport { arrowLeftIcon, arrowRightIcon } from '../icons';\nimport {\n BUTTON_LABEL_CANCEL,\n BUTTON_LABEL_DONE,\n CALENDAR_LABEL_TODAY,\n NATIVE_FORMAT,\n YEARS_RANGE,\n} from '../consts';\nimport {\n createMonthView,\n createInputs,\n getMonthsOptions,\n getYearOptions,\n initComboBox,\n ensureMonthNamesArr,\n isViewVisible,\n ensureWeekdayNamesArr,\n truncateWeekdays,\n prevMonth,\n nextMonth,\n} from './helpers';\nimport { ButtonClass } from '../../descope-button/ButtonClass';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('calendar');\n\nconst observedAttrs = [\n 'initial-value',\n 'initial-year',\n 'initial-month',\n 'years-range',\n 'calendar-months',\n 'calendar-weekdays',\n 'calendar-label-today',\n 'st-host-direction',\n 'disabled',\n 'full-width',\n];\n\nconst calendarUiAttrs = ['calendar-label-submit', 'calendar-label-cancel'];\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: 'div' });\n\nclass RawCalendar extends BaseInputClass {\n static get observedAttributes() {\n return [].concat(BaseInputClass.observedAttributes || [], observedAttrs, calendarUiAttrs);\n }\n\n // preview state timestamp\n preview;\n\n // value timestamp\n timestamp;\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div>\n <nav class=\"nav top-nav\">\n <div class=\"nav-prev\">\n </div>\n <div class=\"selectors\"></div>\n <div class=\"nav-next\">\n </div>\n </nav>\n <div class=\"calendar\"></div>\n <nav class=\"nav bottom-nav\">\n <descope-button class=\"cancel-button\" variant=\"link\" mode=\"primary\">Cancel</descope-button>\n <descope-button class=\"submit-button\" variant=\"link\" mode=\"primary\" disabled=\"true\">Done</descope-button>\n </nav>\n </div>\n `;\n\n injectStyle(\n `\n :host {\n display: inline-block;\n box-sizing: border-box;\n max-width: 100%;\n user-select: none;\n -webkit-user-select: none;\n }\n\n :host ::slotted {\n padding: 0;\n }\n\n [data-toggle-calendar] {\n cursor: pointer;\n display: flex;\n align-self: center;\n z-index: 1;\n }\n\n [data-disabled=\"true\"] {\n pointer-events: none;\n }\n\n .calendar .day {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .nav {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n }\n\n .selectors,\n .selectors span {\n display: flex;\n justify-content: center;\n }\n\n descope-button {\n padding: 0;\n ${ButtonClass.cssVarList.horizontalPadding}: 0;\n ${ButtonClass.cssVarList.verticalPadding}: 0;\n ${ButtonClass.cssVarList.outlineWidth}: 0;\n }\n\n .combo-box-item {\n display:flex;\n flex-direction: column;\n }\n\n ${inputFloatingLabelStyle()}\n `,\n this\n );\n }\n\n set value(val) {\n if (!val) return;\n\n const timestamp = newDate(val).getTime();\n\n if (!isValidTimestamp(timestamp) || timestamp === this.timestmap) {\n return;\n }\n\n this.timestamp = timestamp;\n\n this.renderCalendar();\n }\n\n get value() {\n return this.timestamp ? formatTimestamp(this.timestamp, NATIVE_FORMAT) : '';\n }\n\n get isSelectedView() {\n return isViewVisible(this.preview, this.timestamp);\n }\n\n get isTodayView() {\n return isViewVisible(getCurrentTime(), this.preview);\n }\n\n get monthNames() {\n return ensureMonthNamesArr(this.getAttribute('calendar-months'));\n }\n\n get weekdayNames() {\n return ensureWeekdayNamesArr(this.getAttribute('calendar-weekdays'));\n }\n\n get hasYearValue() {\n return !!this.yearInput.value;\n }\n\n get hasMonthValue() {\n return !!this.monthInput.value;\n }\n\n get yearsRange() {\n const range = this.getAttribute('years-range')?.split('-');\n\n if (range?.length === 2) {\n const [start, end] = range.map(Number);\n if (start <= end) return [start, end];\n }\n\n const currentYear = newDate().getFullYear();\n\n return [currentYear, currentYear + YEARS_RANGE];\n }\n\n init() {\n super.init?.();\n this.initCalendar();\n this.renderCalendar();\n }\n\n initCalendar() {\n this.calendar = this.shadowRoot.querySelector('.calendar');\n\n this.navPrevEle = this.shadowRoot.querySelector('.nav-prev');\n this.navNextEle = this.shadowRoot.querySelector('.nav-next');\n this.submitButton = this.shadowRoot.querySelector('.submit-button');\n this.cancelButton = this.shadowRoot.querySelector('.cancel-button');\n\n this.initInputs();\n this.initNav();\n\n this.addEventListener('day-changed', () => this.submitButton.removeAttribute('disabled'));\n // This is a workaround for descope-components inside Vaadin's Popover component.\n // When we sync attributes, the `disabled` attribute is being compared to the attribute\n // on Vaadin component; since the Vaadin component has no `disabled` attribute, we sync\n // that back to our component. This happens when using Popover, and for specific attributes,\n // namely `disabled`. This is pending a more generic fix in the way we sync attibutes.\n this.submitButton.shadowRoot.querySelector('vaadin-button').setAttribute('disabled', 'true');\n }\n\n initInputs() {\n const ele = createInputs(this.monthNames, this.yearsRange);\n this.shadowRoot.querySelector('.selectors').appendChild(ele);\n\n this.monthInput = initComboBox(\n this.shadowRoot.querySelector('.month-input'),\n this.onMonthChange.bind(this),\n this.onMonthInputBlur.bind(this)\n );\n\n this.yearInput = initComboBox(\n this.shadowRoot.querySelector('.year-input'),\n this.onYearChange.bind(this),\n this.onYearInputBlur.bind(this)\n );\n\n [this.monthInput, this.yearInput].forEach((selector) =>\n forwardAttrs(this, selector, {\n includeAttrs: ['disabled', 'size', 'st-host-direction'],\n })\n );\n }\n\n initNav() {\n this.navPrevEle.addEventListener('click', this.navPrevMonth.bind(this));\n this.navNextEle.addEventListener('click', this.navNextMonth.bind(this));\n this.cancelButton.addEventListener('click', this.onCancel.bind(this));\n this.submitButton.addEventListener('click', this.onSubmit.bind(this));\n\n [this.navPrevEle, this.navNextEle].forEach((btn) =>\n forwardAttrs(this, btn, {\n includeAttrs: ['size'],\n })\n );\n\n this.shadowRoot.querySelector('.nav-next').innerHTML = arrowRightIcon;\n this.shadowRoot.querySelector('.nav-prev').innerHTML = arrowLeftIcon;\n }\n\n onSubmit() {\n if (this.isDisabled) return;\n if (!this.value) return;\n this.dispatchEvent(new CustomEvent('date-submit', { detail: newDate(this.preview) }));\n }\n\n onCancel() {\n if (this.isDisabled) return;\n this.dispatchEvent(new CustomEvent('cancel'));\n this.dispatchEvent(new CustomEvent('date-cancel'));\n this.clearSelectedDay();\n }\n\n clearSelectedDay() {\n this.getSelectedDayEle()?.removeAttribute('data-selected');\n this.submitButton.setAttribute('disabled', 'true');\n this.timestamp = '';\n }\n\n updateInputs() {\n if (this.yearInput && this.monthInput) {\n const timestamp = this.preview || getCurrentTime();\n const year = getFullYear(timestamp);\n const month = getMonth(timestamp);\n this.monthInput.value = month;\n // For the yearInput we update the base element directly to properly trigger the change event\n // since this can be a custom value\n setTimeout(() => {\n this.yearInput.baseElement.value = year;\n });\n }\n }\n\n renderCalendar() {\n const date = newDate(this.preview || getCurrentTime());\n const timestamp = date.getTime();\n\n const [year, month] = getTimestampParts(timestamp);\n\n if (this.calendar) {\n this.calendar.innerHTML = createMonthView(year, month, truncateWeekdays(this.weekdayNames));\n }\n\n Array.from(this.calendar?.querySelectorAll('.day-entry .day') || []).forEach((ele) =>\n ele.addEventListener('click', this.onDayChange.bind(this))\n );\n\n this.updateInputs();\n this.setSelectedDay();\n this.setCurrentDay();\n }\n\n onDayChange(e) {\n if (this.isDisabled) return;\n const date = newDate(this.preview);\n date.setDate(Number(e.target.getAttribute('data-date-day')));\n this.value = formatTimestamp(date.getTime(), NATIVE_FORMAT);\n this.dispatchEvent(new CustomEvent('day-changed', { detail: date }));\n }\n\n onYearChange(e) {\n if (!e.target.value) return;\n const date = newDate(this.preview);\n date.setFullYear(Number(e.target.value.trim()));\n this.preview = date.getTime();\n this.renderCalendar();\n this.dispatchEvent(new CustomEvent('year-changed', { detail: date }));\n }\n\n onMonthChange(e) {\n if (!e.target.value) return;\n const date = newDate(this.preview);\n date.setMonth(Number(e.target.value) - 1);\n this.preview = date.getTime();\n this.renderCalendar();\n this.dispatchEvent(new CustomEvent('month-changed', { detail: date }));\n }\n\n onYearInputBlur(e) {\n this.yearInput.baseElement.value = e.target.value || getFullYear(this.preview);\n }\n\n onMonthInputBlur(e) {\n this.monthInput.baseElement.value = e.target.value || getMonth(this.preview);\n }\n\n getSelectedDayEle() {\n const day = newDate(this.timestamp).getDate();\n return this.calendar?.querySelector(`[data-date-day=\"${day}\"]`);\n }\n\n getCurrentDayEle() {\n return this.calendar?.querySelector(`[data-date-day=\"${getCurrentDay()}\"]`);\n }\n\n clearSelectedDays() {\n const cells = this.calendar?.querySelectorAll(`[data-selected]`);\n if (!cells) return;\n cells.forEach((c) => c.removeAttribute('data-selected'));\n }\n\n setSelectedDay() {\n this.clearSelectedDays();\n if (this.value && this.isSelectedView) {\n this.getSelectedDayEle().setAttribute('data-selected', 'true');\n }\n }\n\n setCurrentDay() {\n if (this.isTodayView) {\n const ele = this.getCurrentDayEle();\n const title = this.getAttribute('calendar-label-today') || CALENDAR_LABEL_TODAY;\n ele.setAttribute('data-current-day', 'true');\n ele.setAttribute('title', title);\n }\n }\n\n navPrevMonth() {\n if (this.isDisabled) {\n return;\n }\n const date = prevMonth(this.preview);\n this.preview = date.getTime();\n this.renderCalendar();\n }\n\n navNextMonth() {\n if (this.isDisabled) {\n return;\n }\n const date = nextMonth(this.preview);\n this.preview = date.getTime();\n this.renderCalendar();\n }\n\n clearValue() {\n this.timestamp = '';\n this.value = '';\n this.removeAttribute('preview');\n this.submitButton.setAttribute('disabled', 'true');\n }\n\n onInitialValueChange(newValue) {\n // if component already has a value don't re-set value\n if (this.value) {\n return;\n }\n\n const date = newDate(newValue);\n const timestamp = date.getTime();\n\n if (isValidTimestamp(timestamp)) {\n this.timestamp = timestamp;\n this.preview = timestamp;\n } else {\n this.clearValue();\n }\n }\n\n onYearsRangeChange() {\n setTimeout(() => {\n if (this.yearInput) {\n this.yearInput.innerHTML = getYearOptions(this.yearsRange);\n }\n });\n }\n\n onMonthNamesChange() {\n setTimeout(() => {\n if (this.monthInput) {\n this.monthInput.innerHTML = getMonthsOptions(this.monthNames);\n }\n });\n }\n\n onSubmitLabelChange(newValue) {\n if (this.submitButton) {\n this.submitButton.textContent = newValue || BUTTON_LABEL_DONE;\n }\n }\n\n onCancelLabelChange(newValue) {\n if (this.cancelButton) {\n this.cancelButton.textContent = newValue || BUTTON_LABEL_CANCEL;\n }\n }\n\n onInitialMonthChange(val) {\n const currYear = getFullYear(this.preview);\n this.preview = newDate(`${currYear}/${val}/1`).getTime();\n }\n\n onInitialYearChange(val) {\n const currMonth = getMonth(this.preview);\n this.preview = newDate(`${val}/${currMonth}/1`).getTime();\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (oldValue !== newValue) {\n // attrs for which affect static ui parts doesn't require calendar re-render\n if (calendarUiAttrs.includes(attrName)) {\n if (attrName === 'calendar-label-submit') {\n this.onSubmitLabelChange(newValue);\n }\n if (attrName === 'calendar-label-cancel') {\n this.onCancelLabelChange(newValue);\n }\n } else {\n // we want to render the calendar for each of these attr change\n\n if (newValue && attrName === 'initial-value') {\n this.onInitialValueChange(newValue);\n }\n if (newValue && attrName === 'initial-month') {\n this.onInitialMonthChange(newValue);\n }\n if (newValue && attrName === 'initial-year') {\n this.onInitialYearChange(newValue);\n }\n if (attrName === 'years-range') {\n this.onYearsRangeChange(Number(newValue));\n }\n if (attrName === 'calendar-months') {\n this.onMonthNamesChange();\n }\n if (attrName === 'calendar-label-today') {\n this.setCurrentDay(newValue);\n }\n if (attrName === 'disabled') {\n setTimeout(() => {\n this.cancelButton?.setAttribute('disabled', newValue === 'true');\n });\n }\n\n this.renderCalendar();\n }\n }\n }\n\n getValidity() {\n if (this.isRequired && !this.value) {\n return { valueMissing: true };\n }\n return {};\n }\n}\n\nconst {\n calendar,\n day,\n dayEntry,\n currentDay,\n selectedDay,\n disabledDay,\n weekday,\n topNav,\n topNavSelectors,\n bottomNav,\n navPrev,\n navNext,\n navPrevRTL,\n navNextRTL,\n yearInput,\n monthInput,\n} = {\n calendar: { selector: () => '.calendar' },\n topNav: { selector: () => '.nav.top-nav' },\n topNavSelectors: { selector: () => '.nav.top-nav .selectors > span' },\n bottomNav: { selector: () => '.nav.bottom-nav' },\n day: { selector: () => '.day' },\n dayEntry: { selector: () => '.day-entry' },\n currentDay: { selector: () => '.day-entry[data-current-day] .day' },\n selectedDay: { selector: () => '.day-entry[data-selected] .day' },\n disabledDay: { selector: () => '.day-entry[data-disabled=\"true\"] .day' },\n weekday: { selector: () => '.weekday' },\n navPrev: { selector: () => '.nav-prev' },\n navNext: { selector: () => '.nav-next' },\n navPrevRTL: { selector: () => ':host([st-host-direction=\"rtl\"]) .nav-prev' },\n navNextRTL: { selector: () => ':host([st-host-direction=\"rtl\"]) .nav-next' },\n yearInput: { selector: () => '.year-input' },\n monthInput: { selector: () => '.month-input' },\n};\n\nexport const CalendarClass = compose(\n createStyleMixin({ componentNameOverride: getComponentName('input-wrapper') }),\n createStyleMixin({\n mappings: {\n fontSize: {},\n fontFamily: {},\n hostWidth: [\n { selector: () => ':host', property: 'width' },\n { selector: 'table', property: 'width' },\n ],\n hostDirection: { property: 'direction' },\n\n topNavVerticalPadding: [\n { ...topNav, property: 'padding-top' },\n { ...topNav, property: 'padding-bottom' },\n ],\n topNavHorizointalPadding: [\n { ...topNav, property: 'padding-right' },\n { ...topNav, property: 'padding-left' },\n ],\n topNavAlignment: { ...topNav, property: 'justify-content' },\n topNavGap: { ...topNav, property: 'gap' },\n topNavSelectorsGap: { ...topNavSelectors, property: 'gap' },\n\n bottomNavVerticalPadding: [\n { ...bottomNav, property: 'padding-top' },\n { ...bottomNav, property: 'padding-bottom' },\n ],\n bottomNavHorizontalPadding: [\n { ...bottomNav, property: 'padding-right' },\n { ...bottomNav, property: 'padding-left' },\n ],\n bottomNavAlignment: { ...bottomNav, property: 'justify-content' },\n bottomNavGap: { ...bottomNav, property: 'gap' },\n\n navMarginBottom: { ...topNav, property: 'margin-bottom' },\n\n calendarPadding: [\n { ...calendar, property: 'padding-bottom' },\n { ...calendar, property: 'padding-right' },\n { ...calendar, property: 'padding-left' },\n ],\n\n navBorderBottomWidth: { ...topNav, property: 'border-bottom-width' },\n navBorderBottomColor: { ...topNav, property: 'border-bottom-color' },\n navBorderBottomStyle: { ...topNav, property: 'border-bottom-style' },\n\n weekdayFontSize: { ...weekday, property: 'font-size' },\n weekdayFontWeight: { ...weekday, property: 'font-weight' },\n\n currentDayBorderColor: {\n ...currentDay,\n property: 'border-color',\n },\n currentDayBorderWidth: {\n ...currentDay,\n property: 'border-width',\n },\n currentDayBorderStyle: {\n ...currentDay,\n property: 'border-style',\n },\n\n dayHeight: { ...dayEntry, property: 'height' },\n daySize: [\n { ...day, property: 'height' },\n { ...day, property: 'width' },\n ],\n dayPadding: { ...day, property: 'padding' },\n dayRadius: { ...day, property: 'border-radius' },\n dayTextAlign: { ...day, property: 'text-align' },\n dayBlockAlign: { ...day, property: 'margin' },\n dayTextColor: { ...day, property: 'color' },\n dayFontWeight: { ...day, property: 'font-weight' },\n dayBackgroundColor: { ...day, property: 'background-color' },\n dayCursor: { ...day, property: 'cursor' },\n dayFontSize: { ...day, property: 'font-size' },\n\n dayBackgroundColorHover: {\n selector: () => '.day:hover',\n property: 'background-color',\n },\n\n daySelectedTextdColor: {\n ...selectedDay,\n property: 'color',\n },\n daySelectedBackgroundColor: {\n ...selectedDay,\n property: 'background-color',\n },\n dayDisabledTextdColor: {\n ...disabledDay,\n property: 'color',\n },\n\n yearInputWidth: { ...yearInput, property: 'width' },\n monthInputWidth: { ...monthInput, property: 'width' },\n\n navButtonSize: [\n { ...navPrev, property: 'width' },\n { ...navPrev, property: 'height' },\n { ...navNext, property: 'width' },\n { ...navNext, property: 'height' },\n ],\n navButtonCursor: [\n { ...navPrev, property: 'cursor' },\n { ...navNext, property: 'cursor' },\n ],\n navButtonRotation: [\n { ...navPrevRTL, property: 'transform' },\n { ...navNextRTL, property: 'transform' },\n ],\n navButtonOpacity: [\n { ...navPrev, property: 'opacity' },\n { ...navNext, property: 'opacity' },\n ],\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawCalendar);\n","import '@descope-ui/descope-combo-box';\nimport '../../descope-button';\n\nimport { componentName, CalendarClass } from './CalendarClass';\n\ncustomElements.define(componentName, CalendarClass);\n\nexport { CalendarClass, componentName };\n","import { COUNTER_SUPPORTED_KEYS } from './consts';\n\nexport const isValidTimestamp = (val) => !Number.isNaN(Number(val));\n\nexport const isNumber = (val) => !Number.isNaN(Number(val));\n\nexport const getTimestampParts = (timestamp) => {\n const date = new Date(timestamp);\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n const day = date.getDate();\n return [year, month, day];\n};\n\nexport const formatTimestamp = (timestamp, format) => {\n const [year, month, day] = getTimestampParts(timestamp);\n\n const parts = {\n DD: String(day).padStart(2, '0'),\n MM: String(month).padStart(2, '0'),\n YYYY: String(year),\n };\n\n return format.replace(/DD|MM|YYYY/g, (match) => parts[match]);\n};\n\n// polyfill for safari Date API (which doesn't accept \"YYYY-MM-DD\" string as value)\nexport const newDate = (date) => {\n if (typeof date === 'number') {\n return new Date(date);\n }\n if (typeof date === 'string') {\n return new Date(date.replace(/-/g, '/'));\n }\n return new Date();\n};\n\nexport const isSupportedKey = (key) => COUNTER_SUPPORTED_KEYS.includes(key);\n\nexport const getKeyMap = (key, shiftKey, metaKey) => {\n return {\n refresh: metaKey && key.toLowerCase() === 'r',\n tab: key === 'Tab',\n shiftTab: shiftKey && key === 'Tab',\n backspace: key === 'Backspace',\n arrowUp: !shiftKey && key === 'ArrowUp',\n arrowDown: !shiftKey && key === 'ArrowDown',\n arrowLeft: !shiftKey && key === 'ArrowLeft',\n arrowRight: !shiftKey && key === 'ArrowRight',\n pageUp: !shiftKey && key === 'PageUp',\n pageDown: !shiftKey && key === 'PageDown',\n shiftArrowUp: shiftKey && key === 'ArrowUp',\n shiftArrowDown: shiftKey && key === 'ArrowDown',\n shiftPageUp: shiftKey && key === 'PageUp',\n shiftPageDown: shiftKey && key === 'PageDown',\n };\n};\n\nexport const getCurrentTime = () => newDate().getTime();\nexport const getFullYear = (timestamp) => newDate(timestamp).getFullYear().toString();\nexport const getMonth = (timestamp) => (newDate(timestamp).getMonth() + 1).toString();\nexport const getCurrentDay = () => newDate().getDate();\nexport const getCurrentYear = () => newDate().getFullYear().toString();\n\n// Vaadin uses \"constructed stylesheet\" to hide the host in dialog components.\n// To override it, we need to push an overriding constructed stylesheet to the shadow DOM\n// opened issue in vaadin: https://github.com/vaadin/web-components/issues/7979\nexport const overrideConstructedStylesheet = (ele) => {\n const cs = new CSSStyleSheet();\n cs.insertRule(':host{display:block!important;}');\n ele?.shadowRoot?.adoptedStyleSheets?.push(cs);\n};\n","export const calendarIcon = `\n<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9 5H15V4.50468C15 4.21404 15.226 4 15.5047 4H16.4953C16.786 4 17 4.22595 17 4.50468V5H18.7568C19.3028 5 19.75 5.44725 19.75 5.99896V7.00104C19.75 7.55734 19.3053 8 18.7568 8H5.24317C4.69717 8 4.25 7.55275 4.25 7.00104V5.99896C4.25 5.44266 4.69466 5 5.24317 5H7V4.50468C7 4.21404 7.22596 4 7.50468 4H8.49532C8.78596 4 9 4.22595 9 4.50468V5ZM5.50468 9H6.49532C6.78596 9 7 9.22596 7 9.50468V10.4953C7 10.786 6.77404 11 6.49532 11H5.50468C5.21404 11 5 10.774 5 10.4953V9.50468C5 9.21404 5.22595 9 5.50468 9ZM8.50468 9H9.49532C9.78596 9 10 9.22596 10 9.50468V10.4953C10 10.786 9.77404 11 9.49532 11H8.50468C8.21404 11 8 10.774 8 10.4953V9.50468C8 9.21404 8.22596 9 8.50468 9ZM11.5047 9H12.4953C12.786 9 13 9.22596 13 9.50468V10.4953C13 10.786 12.774 11 12.4953 11H11.5047C11.214 11 11 10.774 11 10.4953V9.50468C11 9.21404 11.226 9 11.5047 9ZM5.50468 12H6.49532C6.78596 12 7 12.226 7 12.5047V13.4953C7 13.786 6.77404 14 6.49532 14H5.50468C5.21404 14 5 13.774 5 13.4953V12.5047C5 12.214 5.22595 12 5.50468 12ZM8.50468 12H9.49532C9.78596 12 10 12.226 10 12.5047V13.4953C10 13.786 9.77404 14 9.49532 14H8.50468C8.21404 14 8 13.774 8 13.4953V12.5047C8 12.214 8.22596 12 8.50468 12ZM11.5047 12H12.4953C12.786 12 13 12.226 13 12.5047V13.4953C13 13.786 12.774 14 12.4953 14H11.5047C11.214 14 11 13.774 11 13.4953V12.5047C11 12.214 11.226 12 11.5047 12ZM5.50468 15H6.49532C6.78596 15 7 15.226 7 15.5047V16.4953C7 16.786 6.77404 17 6.49532 17H5.50468C5.21404 17 5 16.774 5 16.4953V15.5047C5 15.214 5.22595 15 5.50468 15ZM8.50468 15H9.49532C9.78596 15 10 15.226 10 15.5047V16.4953C10 16.786 9.77404 17 9.49532 17H8.50468C8.21404 17 8 16.774 8 16.4953V15.5047C8 15.214 8.22596 15 8.50468 15ZM11.5047 15H12.4953C12.786 15 13 15.226 13 15.5047V16.4953C13 16.786 12.774 17 12.4953 17H11.5047C11.214 17 11 16.774 11 16.4953V15.5047C11 15.214 11.226 15 11.5047 15ZM14.5047 9H15.4953C15.786 9 16 9.22596 16 9.50468V10.4953C16 10.786 15.774 11 15.4953 11H14.5047C14.214 11 14 10.774 14 10.4953V9.50468C14 9.21404 14.226 9 14.5047 9ZM14.5047 12H15.4953C15.786 12 16 12.226 16 12.5047V13.4953C16 13.786 15.774 14 15.4953 14H14.5047C14.214 14 14 13.774 14 13.4953V12.5047C14 12.214 14.226 12 14.5047 12ZM14.5047 15H15.4953C15.786 15 16 15.226 16 15.5047V16.4953C16 16.786 15.774 17 15.4953 17H14.5047C14.214 17 14 16.774 14 16.4953V15.5047C14 15.214 14.226 15 14.5047 15ZM17.5047 15H18.4953C18.786 15 19 15.226 19 15.5047V16.4953C19 16.786 18.774 17 18.4953 17H17.5047C17.214 17 17 16.774 17 16.4953V15.5047C17 15.214 17.226 15 17.5047 15ZM5.50468 18H6.49532C6.78596 18 7 18.226 7 18.5047V19.4953C7 19.786 6.77404 20 6.49532 20H5.50468C5.21404 20 5 19.774 5 19.4953V18.5047C5 18.214 5.22595 18 5.50468 18ZM8.50468 18H9.49532C9.78596 18 10 18.226 10 18.5047V19.4953C10 19.786 9.77404 20 9.49532 20H8.50468C8.21404 20 8 19.774 8 19.4953V18.5047C8 18.214 8.22596 18 8.50468 18ZM11.5047 18H12.4953C12.786 18 13 18.226 13 18.5047V19.4953C13 19.786 12.774 20 12.4953 20H11.5047C11.214 20 11 19.774 11 19.4953V18.5047C11 18.214 11.226 18 11.5047 18ZM14.5047 18H15.4953C15.786 18 16 18.226 16 18.5047V19.4953C16 19.786 15.774 20 15.4953 20H14.5047C14.214 20 14 19.774 14 19.4953V18.5047C14 18.214 14.226 18 14.5047 18ZM17.5047 18H18.4953C18.786 18 19 18.226 19 18.5047V19.4953C19 19.786 18.774 20 18.4953 20H17.5047C17.214 20 17 19.774 17 19.4953V18.5047C17 18.214 17.226 18 17.5047 18ZM17.5047 12H18.4953C18.786 12 19 12.226 19 12.5047V13.4953C19 13.786 18.774 14 18.4953 14H17.5047C17.214 14 17 13.774 17 13.4953V12.5047C17 12.214 17.226 12 17.5047 12ZM17.5047 9H18.4953C18.786 9 19 9.22596 19 9.50468V10.4953C19 10.786 18.774 11 18.4953 11H17.5047C17.214 11 17 10.774 17 10.4953V9.50468C17 9.21404 17.226 9 17.5047 9Z\" fill=\"#808080\"/>\n</svg>\n`;\n\nexport const arrowRightIcon = `\n<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M9.27283 6.78069C8.87912 6.34164 8.91587 5.66655 9.35492 5.27283C9.79397 4.87912 10.4691 4.91587 10.8628 5.35492C10.8628 5.35492 16.0022 10.9543 16.366 11.36C16.7298 11.7657 16.7298 12.2392 16.366 12.6448L10.8628 18.6451C10.4691 19.0841 9.79397 19.1209 9.35492 18.7272C8.91587 18.3334 8.87912 17.6584 9.27283 17.2193L14.1368 12L9.27283 6.78069Z\" fill=\"#808080\"/>\n</svg>`;\n\nexport const arrowLeftIcon = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M14.7272 17.2193C15.1209 17.6584 15.0841 18.3334 14.6451 18.7272C14.206 19.1209 13.5309 19.0841 13.1372 18.6451C13.1372 18.6451 7.99776 13.0457 7.63399 12.64C7.27023 12.2343 7.27023 11.7608 7.63399 11.3552L13.1372 5.35492C13.5309 4.91587 14.206 4.87912 14.6451 5.27283C15.0841 5.66655 15.1209 6.34164 14.7272 6.78069L9.86322 12L14.7272 17.2193Z\" fill=\"#808080\"/>\n</svg>`;\n","/* eslint-disable no-use-before-define */\nimport { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport { createIcon } from './helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('icon');\n\nclass RawIcon extends createBaseClass({ componentName, baseSelector: 'slot' }) {\n static get observedAttributes() {\n return ['src'];\n }\n\n #icon;\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<slot></slot>\n\t`;\n\n injectStyle(\n `\n\t\t\t:host > slot {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n `,\n this\n );\n }\n\n init() {\n super.init?.();\n this.toggleVisibility(this.src);\n }\n\n toggleVisibility(isVisible) {\n this.style.display = isVisible ? '' : 'none';\n }\n\n get src() {\n return this.getAttribute('src');\n }\n\n // in order to fill an SVG with `currentColor` override all of its `fill` and `path` nodes\n // with the value from the `st-fill` attribute\n // eslint-disable-next-line class-methods-use-this\n updateFillColor(node) {\n // set fill to root node and all its relevant selectors\n const elementsToReplace = [node, ...node.querySelectorAll('*[fill]')];\n\n elementsToReplace.forEach((ele) => {\n ele.setAttribute(\n 'fill',\n `var(${IconClass.cssVarList.fill}, ${ele.getAttribute('fill') || \"''\"})`\n );\n });\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue === newValue) return;\n\n if (attrName === 'src') {\n this.toggleVisibility(newValue);\n\n createIcon(this.src).then((res) => {\n this.innerHTML = '';\n if (res) {\n const clonedNode = res.cloneNode(true);\n this.updateFillColor(clonedNode);\n this.appendChild(clonedNode);\n }\n });\n }\n }\n}\n\nexport const IconClass = compose(\n createStyleMixin({\n mappings: {\n fill: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawIcon);\n","import DOMPurify from 'dompurify';\n\nconst getFileExtension = (path) => {\n const match = path.match(/\\.([0-9a-z]+)(?:[\\\\?#]|$)/i);\n return match ? match[1] : null;\n};\n\nconst base64Prefix = 'data:image/svg+xml;base64,';\n\nconst isBase64Svg = (src) => src.startsWith(base64Prefix);\n\nconst createImgEle = (src) => {\n const ele = document.createElement('img');\n ele.setAttribute('src', src);\n return ele;\n};\n\nconst createSvgEle = (text) => {\n // we want to purify the SVG to avoid XSS attacks\n const clean = DOMPurify.sanitize(text, { USE_PROFILES: { svg: true, svgFilters: true } });\n\n const parser = new DOMParser();\n const ele = parser.parseFromString(clean, 'image/svg+xml').querySelector('svg');\n return ele;\n};\n\nexport const createIcon = async (src) => {\n try {\n let ele;\n if (isBase64Svg(src)) {\n // handle base64 source\n const svgXml = atob(src.slice(base64Prefix.length));\n ele = createSvgEle(svgXml);\n } else if (getFileExtension(src) === 'svg') {\n // handle urls\n const fetchedSrc = await fetch(src);\n const text = await fetchedSrc.text();\n ele = createSvgEle(text);\n } else {\n // handle binary\n ele = createImgEle(src);\n }\n\n ele.style.setProperty('max-width', '100%');\n ele.style.setProperty('max-height', '100%');\n\n return ele;\n } catch {\n return null;\n }\n};\n","export const useHostExternalPadding = (cssVarList) => `\n :host {\n padding: calc(var(${cssVarList.inputOutlineWidth}) + var(${cssVarList.inputOutlineOffset}))\n }\n`;\n\nexport const resetInputFieldUnderlayingBorder = (name) => `\n ${name}::part(input-field)::after {\n border: none;\n }\n`;\n\nexport const resetInitialHeight = (name) => `\n ${name}::before {\n\t\theight: unset;\n\t}\n`;\n\nexport const resetInputElement = (name) => `\n ${name} > input {\n -webkit-mask-image: none;\n min-height: 0;\n box-sizing: border-box;\n }\n`;\n\nexport const resetInputContainer = (name) => `\n ${name} {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n }\n`;\n\nexport const resetInputField = (name) => `\n ${name}::part(input-field) {\n overflow: hidden;\n padding: 0;\n box-shadow: none;\n }\n`;\n\nexport const resetInputCursor = (name) => `\n ${name} > label,\n ${name}::part(label),\n ${name}::part(required-indicator) {\n cursor: pointer;\n }\n`;\n\nexport const resetInputPlaceholder = (name, ele = 'input') => `\n ${name}[disabled] > ${ele}:placeholder-shown,\n\t${name}[readonly] > ${ele}:placeholder-shown {\n\t\topacity: 1;\n\t}\n`;\n\nexport const resetInputAutoFill = (name, cssVarList) => `\n ${name} input:-webkit-autofill,\n ${name} input:-webkit-autofill::first-line,\n ${name} input:-webkit-autofill:hover,\n ${name} input:-webkit-autofill:active,\n ${name} input:-webkit-autofill:focus {\n -webkit-text-fill-color: var(${cssVarList.inputValueTextColor});\n box-shadow: 0 0 0 var(${cssVarList.inputHeight}) var(${cssVarList.inputBackgroundColor}) inset;\n }\n`;\n\nexport const resetInputFieldDefaultWidth = () => `\n :host {\n --vaadin-field-default-width: auto;\n box-sizing: border-box;\n }\n`;\n\nexport const resetInputReadonlyStyle = (name) => `\n ${name}::part(input-field)::after {\n opacity: 0;\n }\n`;\n\nexport const resetInputFieldInvalidBackgroundColor = (name) => `\n ${name}::part(input-field)::after {\n background: none;\n }\n`;\n\nexport const resetInputOverrides = (name, cssVarList) => `\n ${resetInputContainer(name)}\n ${resetInputCursor(name)}\n ${resetInputPlaceholder(name)}\n ${resetInputField(name)}\n ${resetInputAutoFill(name, cssVarList)}\n ${resetInputFieldInvalidBackgroundColor(name)}\n ${resetInitialHeight(name)}\n ${resetInputElement(name)}\n ${resetInputFieldUnderlayingBorder(name)}\n`;\n\n// This function is used to support RTL correctly for input components.\n// It also fixes the error message to be displayed LTR since we currently\n// don't support RTL for error messages.\nexport const resetInputLabelPosition = (name) => `\n :host ::part(error-message) {\n direction: ltr;\n }\n :host([required]) ::part(required-indicator) {\n width: 1em;\n display: inline-flex;\n }\n :host([required]) ::part(required-indicator)::after {\n position: static;\n }\n :host([has-label]) ::part(label) {\n padding-right: 0;\n padding-bottom: 0;\n display: flex;\n width: 100%;\n }\n ${name} [slot=\"label\"] {\n max-width: calc(100% - 1em);\n overflow: hidden;\n text-overflow: ellipsis;\n padding-bottom: 0.5em;\n }\n`;\n\nexport const inputFloatingLabelStyle = () => {\n return `\n :host([label-type=\"floating\"]) {\n position: relative;\n }\n :host([label-type=\"floating\"][has-label]) [slot=\"label\"] {\n padding: 0;\n }\n :host([label-type=\"floating\"][has-label]) > ::part(label) {\n z-index: 1;\n padding: 0;\n width: auto;\n }\n `;\n};\n"],"names":["createBaseInputClass","args","componentName","host","label","slottedIcon","selector","loadingIndicatorStyles","ButtonClass","mappings","hostWidth","property","hostHeight","hostDirection","fontSize","fontFamily","cursor","backgroundColor","outlineOffset","outlineColor","outlineStyle","outlineWidth","borderRadius","borderColor","borderStyle","borderWidth","verticalPadding","horizontalPadding","fallback","labelTextColor","iconColor","cssVarList","fill","labelTextDecoration","labelSpacing","textAlign","iconSize","slots","wrappedEleName","style","excludeAttrsSync","color","clickableMixin","superclass","isLoading","this","getAttribute","click","super","customElements","define","SUPPORTED_FORMATS","DEFAULT_FORMAT","NATIVE_FORMAT","YEARS_RANGE","DIVIDER","COUNTER_SUPPORTED_KEYS","months","weekdays","counterConfig","MONTH","id","min","max","placeholder","count","shiftCount","DAY","YEAR","BUTTON_LABEL_DONE","BUTTON_LABEL_CANCEL","CALENDAR_LABEL_TODAY","isValidAttrArr","arr","Array","isArray","length","filter","Boolean","comboBoxItemTpl","dataId","dataName","getMonthsOptions","customMonths","map","item","index","join","isViewVisible","selectionTimestamp","previewTimestamp","previewYear","previewMonth","selectedYear","selectedMonth","initComboBox","input","onChange","onBlur","addEventListener","observedAttrs","calendarUiAttrs","BaseInputClass","baseSelector","calendar","day","dayEntry","currentDay","selectedDay","disabledDay","weekday","topNav","topNavSelectors","bottomNav","navPrev","navNext","navPrevRTL","navNextRTL","yearInput","monthInput","CalendarClass","componentNameOverride","topNavVerticalPadding","topNavHorizointalPadding","topNavAlignment","topNavGap","topNavSelectorsGap","bottomNavVerticalPadding","bottomNavHorizontalPadding","bottomNavAlignment","bottomNavGap","navMarginBottom","calendarPadding","navBorderBottomWidth","navBorderBottomColor","navBorderBottomStyle","weekdayFontSize","weekdayFontWeight","currentDayBorderColor","currentDayBorderWidth","currentDayBorderStyle","dayHeight","daySize","dayPadding","dayRadius","dayTextAlign","dayBlockAlign","dayTextColor","dayFontWeight","dayBackgroundColor","dayCursor","dayFontSize","dayBackgroundColorHover","daySelectedTextdColor","daySelectedBackgroundColor","dayDisabledTextdColor","yearInputWidth","monthInputWidth","navButtonSize","navButtonCursor","navButtonRotation","navButtonOpacity","observedAttributes","concat","preview","timestamp","constructor","attachShadow","mode","innerHTML","value","val","getTime","timestmap","renderCalendar","isSelectedView","isTodayView","monthNames","attrVal","monthArr","split","ensureMonthNamesArr","weekdayNames","customWeekdayArr","ensureWeekdayNamesArr","hasYearValue","hasMonthValue","yearsRange","range","start","end","Number","currentYear","getFullYear","init","initCalendar","shadowRoot","querySelector","navPrevEle","navNextEle","submitButton","cancelButton","initInputs","initNav","removeAttribute","setAttribute","ele","document","createElement","createInputs","appendChild","onMonthChange","bind","onMonthInputBlur","onYearChange","onYearInputBlur","forEach","includeAttrs","navPrevMonth","navNextMonth","onCancel","onSubmit","btn","isDisabled","dispatchEvent","CustomEvent","detail","clearSelectedDay","getSelectedDayEle","updateInputs","year","month","setTimeout","baseElement","shortWeekdays","daysInMonth","Date","getDate","getMaxDaysInMonth","firstDayOfMonth","getDay","monthView","reduce","acc","d","i","dayOfWeek","createMonthView","substring","from","querySelectorAll","onDayChange","setSelectedDay","setCurrentDay","e","date","setDate","target","setFullYear","trim","setMonth","getCurrentDayEle","clearSelectedDays","cells","c","title","getMonth","prevMonth","nextMonth","clearValue","onInitialValueChange","newValue","onYearsRangeChange","years","push","generateYearList","onMonthNamesChange","onSubmitLabelChange","textContent","onCancelLabelChange","onInitialMonthChange","currYear","onInitialYearChange","currMonth","attributeChangedCallback","attrName","oldValue","includes","getValidity","isRequired","valueMissing","isValidTimestamp","isNaN","isNumber","getTimestampParts","formatTimestamp","format","parts","DD","String","padStart","MM","YYYY","replace","match","newDate","isSupportedKey","key","getKeyMap","shiftKey","metaKey","refresh","toLowerCase","tab","shiftTab","backspace","arrowUp","arrowDown","arrowLeft","arrowRight","pageUp","pageDown","shiftArrowUp","shiftArrowDown","shiftPageUp","shiftPageDown","getCurrentTime","toString","getCurrentDay","overrideConstructedStylesheet","cs","CSSStyleSheet","insertRule","adoptedStyleSheets","calendarIcon","arrowRightIcon","arrowLeftIcon","RawIcon","toggleVisibility","src","isVisible","display","updateFillColor","node","IconClass","then","res","clonedNode","cloneNode","createSvgEle","text","clean","sanitize","USE_PROFILES","svg","svgFilters","DOMParser","parseFromString","createIcon","async","startsWith","isBase64Svg","svgXml","atob","slice","base64Prefix","path","getFileExtension","fetchedSrc","fetch","createImgEle","setProperty","useHostExternalPadding","inputOutlineWidth","inputOutlineOffset","resetInputContainer","name","resetInputField","resetInputCursor","resetInputPlaceholder","resetInputFieldDefaultWidth","resetInputReadonlyStyle","resetInputFieldInvalidBackgroundColor","resetInputOverrides","inputValueTextColor","inputHeight","inputBackgroundColor","resetInputAutoFill","resetInitialHeight","resetInputElement","resetInputFieldUnderlayingBorder","resetInputLabelPosition","inputFloatingLabelStyle"],"sourceRoot":""}
1
+ {"version":3,"file":"descope-date-field-descope-calendar-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-button/src/component/ButtonClass.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/clickableMixin.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-icon/src/component/IconClass.js","webpack://@descope/web-components-ui/../components/descope-icon/src/component/helpers.js","webpack://@descope/web-components-ui/./src/baseClasses/createBaseInputClass.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/consts.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/descope-calendar/helpers.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/descope-calendar/CalendarClass.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/descope-calendar/index.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/helpers.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/icons.js","webpack://@descope/web-components-ui/./src/helpers/themeHelpers/resetHelpers.js"],"sourcesContent":["import { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { IconClass } from '@descope-ui/descope-icon/class';\nimport { clickableMixin } from './clickableMixin';\n\nexport const componentName = getComponentName('button');\n\nconst resetStyles = `\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n`;\n\nconst iconStyles = `\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n`;\n\nconst editorOverrides = `vaadin-button::part(label) { pointer-events: none; }`;\n\nconst { host, label, slottedIcon } = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n slottedIcon: { selector: () => '::slotted(descope-icon)' },\n};\n\nlet loadingIndicatorStyles;\n\nexport const ButtonClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { property: 'width' },\n hostHeight: { property: 'height' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n fontFamily: {},\n\n cursor: {},\n backgroundColor: {},\n\n outlineOffset: {},\n outlineColor: {},\n outlineStyle: {},\n outlineWidth: {},\n\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n verticalPadding: [{ property: 'padding-top' }, { property: 'padding-bottom' }],\n horizontalPadding: [\n { property: 'padding-right', fallback: '0.875em' },\n { property: 'padding-left', fallback: '0.875em' },\n ],\n\n labelTextColor: { property: 'color' },\n iconColor: {\n selector: () => `::slotted(*)`,\n property: IconClass.cssVarList.fill,\n },\n labelTextDecoration: { ...label, property: 'text-decoration' },\n labelSpacing: { ...label, property: 'gap' },\n textAlign: { ...label, property: 'justify-content', fallback: 'center' },\n\n iconSize: [\n { ...slottedIcon, property: 'width' },\n { ...slottedIcon, property: 'height' },\n ],\n },\n }),\n clickableMixin,\n draggableMixin,\n componentNameValidationMixin\n)(\n createProxy({\n slots: ['', 'prefix', 'label', 'suffix'],\n wrappedEleName: 'vaadin-button',\n style: () => `\n\t\t\t${resetStyles}\n\t\t\t${iconStyles}\n\t\t\t${loadingIndicatorStyles}\n\t\t\t${editorOverrides}\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${ButtonClass.cssVarList.outlineWidth}) + var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width=\"true\"]) {\n width: var(${ButtonClass.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${ButtonClass.cssVarList.hostHeight}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square=\"true\"]:not([full-width=\"true\"]) {\n\t\t\t\twidth: calc(var(${ButtonClass.cssVarList.hostWidth}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n\nconst { color, fontSize } = ButtonClass.cssVarList;\nloadingIndicatorStyles = `\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading=\"true\"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${color});\n\t\ttop: calc(50% - (var(${fontSize}) / 2));\n\t\tleft: calc(50% - (var(${fontSize}) / 2));\n\t\tborder-width: calc(var(${fontSize}) / 10);\n\t\twidth: var(${fontSize});\n\t\theight: var(${fontSize});\n\t}\n\t:host([disabled=\"true\"]),\n\t:host([loading=\"true\"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading=\"true\"])::part(prefix),\n\t:host([loading=\"true\"])::part(label) {\n\t\tvisibility: hidden;\n\t}\n`;\n","export const clickableMixin = (superclass) =>\n class ClickableMixinClass extends superclass {\n get isLoading() {\n return this.getAttribute('loading') === 'true';\n }\n\n click() {\n this.isLoading || super.click();\n }\n };\n","import { componentName, ButtonClass } from './ButtonClass';\nimport '@vaadin/button';\n\ncustomElements.define(componentName, ButtonClass);\n\nexport { ButtonClass, componentName };\n","/* eslint-disable no-use-before-define */\nimport { createStyleMixin, draggableMixin, componentNameValidationMixin } from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { createIcon } from './helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('icon');\n\nclass RawIcon extends createBaseClass({ componentName, baseSelector: 'slot' }) {\n static get observedAttributes() {\n return ['src'];\n }\n\n #icon;\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<slot></slot>\n\t`;\n\n injectStyle(\n `\n\t\t\t:host > slot {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n `,\n this\n );\n }\n\n init() {\n super.init?.();\n this.toggleVisibility(this.src);\n }\n\n toggleVisibility(isVisible) {\n this.style.display = isVisible ? '' : 'none';\n }\n\n get src() {\n return this.getAttribute('src');\n }\n\n // in order to fill an SVG with `currentColor` override all of its `fill` and `path` nodes\n // with the value from the `st-fill` attribute\n // eslint-disable-next-line class-methods-use-this\n updateFillColor(node) {\n // set fill to root node and all its relevant selectors\n const elementsToReplace = [node, ...node.querySelectorAll('*[fill]')];\n\n elementsToReplace.forEach((ele) => {\n ele.setAttribute(\n 'fill',\n `var(${IconClass.cssVarList.fill}, ${ele.getAttribute('fill') || \"''\"})`\n );\n });\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue === newValue) return;\n\n if (attrName === 'src') {\n this.toggleVisibility(newValue);\n\n createIcon(this.src).then((res) => {\n this.innerHTML = '';\n if (res) {\n const clonedNode = res.cloneNode(true);\n this.updateFillColor(clonedNode);\n this.appendChild(clonedNode);\n }\n });\n }\n }\n}\n\nexport const IconClass = compose(\n createStyleMixin({\n mappings: {\n fill: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawIcon);\n","import DOMPurify from 'dompurify';\n\nconst getFileExtension = (path) => {\n const match = path.match(/\\.([0-9a-z]+)(?:[\\\\?#]|$)/i);\n return match ? match[1] : null;\n};\n\nconst base64Prefix = 'data:image/svg+xml;base64,';\n\nconst isBase64Svg = (src) => src.startsWith(base64Prefix);\n\nconst createImgEle = (src) => {\n const ele = document.createElement('img');\n ele.setAttribute('src', src);\n return ele;\n};\n\nconst createSvgEle = (text) => {\n // we want to purify the SVG to avoid XSS attacks\n const clean = DOMPurify.sanitize(text, { USE_PROFILES: { svg: true, svgFilters: true } });\n\n const parser = new DOMParser();\n const ele = parser.parseFromString(clean, 'image/svg+xml').querySelector('svg');\n return ele;\n};\n\nexport const createIcon = async (src) => {\n try {\n let ele;\n if (isBase64Svg(src)) {\n // handle base64 source\n const svgXml = atob(src.slice(base64Prefix.length));\n ele = createSvgEle(svgXml);\n } else if (getFileExtension(src) === 'svg') {\n // handle urls\n const fetchedSrc = await fetch(src);\n const text = await fetchedSrc.text();\n ele = createSvgEle(text);\n } else {\n // handle binary\n ele = createImgEle(src);\n }\n\n ele.style.setProperty('max-width', '100%');\n ele.style.setProperty('max-height', '100%');\n\n return ele;\n } catch {\n return null;\n }\n};\n","import { compose } from '../helpers';\nimport {\n changeMixin,\n inputEventsDispatchingMixin,\n inputValidationMixin,\n normalizeBooleanAttributesMixin,\n} from '../mixins';\nimport { createBaseClass } from './createBaseClass';\n\nexport const createBaseInputClass = (...args) =>\n compose(\n inputValidationMixin,\n changeMixin,\n normalizeBooleanAttributesMixin,\n inputEventsDispatchingMixin\n )(createBaseClass(...args));\n","export const SUPPORTED_FORMATS = ['MM/DD/YYYY', 'DD/MM/YYYY', 'YYYY/MM/DD'];\n\nexport const DEFAULT_FORMAT = SUPPORTED_FORMATS[0];\n\nexport const NATIVE_FORMAT = 'YYYY-MM-DD';\n\nexport const YEARS_RANGE = 100;\n\nexport const DIVIDER = '/';\n\nexport const COUNTER_SUPPORTED_KEYS = [\n 'Backspace',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowDown',\n 'ArrowUp',\n 'PageUp',\n 'PageDown',\n 'Meta',\n];\n\nexport const months = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nexport const weekdays = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n];\n\nexport const counterConfig = {\n MONTH: { id: 'month', min: 1, max: 12, placeholder: 'MM', count: 5, shiftCount: 10 },\n DAY: { id: 'day', min: 1, max: 31, placeholder: 'DD', count: 5, shiftCount: 10 },\n YEAR: { id: 'year', min: 0, max: 9999, placeholder: 'YYYY', count: 10, shiftCount: 100 },\n};\n\nexport const BUTTON_LABEL_DONE = 'Done';\nexport const BUTTON_LABEL_CANCEL = 'Cancel';\nexport const CALENDAR_LABEL_TODAY = 'Today';\n","import { months, weekdays } from '../consts';\nimport { getTimestampParts, newDate } from '../helpers';\n\nconst isValidAttrArr = (arr, count) =>\n Array.isArray(arr) && arr.length === count && arr.filter(Boolean).length === count;\n\nconst generateYearList = (range) => {\n const [start, end] = range;\n const years = [];\n\n for (let year = start; year <= end; year++) {\n years.push(year);\n }\n\n return years;\n};\n\nconst getMaxDaysInMonth = (year, month) => {\n return new Date(year, month, 0).getDate();\n};\n\nconst comboBoxItemTpl = ({ label, dataId, dataName }) => `\n\t<div class=\"combo-box-item\"\n\t\tdata-id=\"${dataId}\"\n\t\tdata-name=\"${dataName}\"\n\t>\n\t\t\t${label}\n\t</div>\n`;\n\nexport const createMonthView = (year, month, shortWeekdays) => {\n const daysInMonth = getMaxDaysInMonth(year, month);\n\n // Get day of the week (0 = Sunday, 1 = Monday, etc.)\n const firstDayOfMonth = new Date(year, month - 1, 1).getDay();\n\n let monthView = '<table>';\n\n // Add the table headers (days of the week)\n monthView += `<thead><tr>${shortWeekdays.reduce(\n (acc, d) => `${acc}<th><span class=\"weekday\">${d}</span></th>`,\n ''\n )}</tr></thead>`;\n\n monthView += '<tbody>';\n\n // Add empty cells for the days before the start of the month\n monthView += '<tr>';\n for (let i = 0; i < firstDayOfMonth; i++) {\n monthView += '<td></td>';\n }\n\n // Add days of the month\n let dayOfWeek = firstDayOfMonth;\n for (let i = 1; i <= daysInMonth; i++) {\n if (dayOfWeek === 7) {\n dayOfWeek = 0;\n monthView += '</tr><tr>';\n }\n\n monthView += `\n <td\n data-date-day=\"${i}\"\n class=\"day-entry\">\n <span class=\"day\" data-date-day=${i}>\n ${i}\n </span>\n </td>\n `;\n dayOfWeek++;\n }\n\n // Add empty cells for the days after the end of the month\n while (dayOfWeek < 7) {\n monthView += '<td></td>';\n dayOfWeek++;\n }\n\n monthView += '</tr></tbody></table>';\n\n return monthView;\n};\n\nexport const getYearOptions = (range) =>\n generateYearList(range)\n .map((item) => comboBoxItemTpl({ label: item, dataId: item, dataName: item }))\n .join('');\n\nexport const getMonthsOptions = (customMonths = months) =>\n customMonths\n .map((item, index) => comboBoxItemTpl({ label: item, dataId: index + 1, dataName: item }))\n .join('');\n\nexport const isViewVisible = (selectionTimestamp, previewTimestamp) => {\n const [previewYear, previewMonth] = getTimestampParts(previewTimestamp);\n const [selectedYear, selectedMonth] = getTimestampParts(selectionTimestamp);\n return selectedYear === previewYear && selectedMonth === previewMonth;\n};\n\nexport const createInputs = () => {\n const ele = document.createElement('span');\n\n ele.innerHTML = `\n <descope-combo-box\n label-type=\"static\"\n bordered=\"true\"\n item-label-path=\"data-name\"\n item-value-path=\"data-id\"\n class=\"month-input\"\n >\n ${getMonthsOptions()}\n </descope-combo-box>\n <descope-combo-box\n allow-custom-value=\"true\"\n label-type=\"static\"\n bordered=\"true\"\n item-label-path=\"data-name\"\n item-value-path=\"data-id\"\n class=\"year-input\"\n no-empty-value=\"true\"\n >\n </descope-combo-box>\n `;\n\n return ele;\n};\n\nexport const initComboBox = (input, onChange, onBlur) => {\n input.addEventListener('input', onChange);\n input.addEventListener('focusout', onBlur);\n return input;\n};\n\nexport const ensureMonthNamesArr = (attrVal) => {\n const monthArr = attrVal?.split(',');\n return isValidAttrArr(monthArr, 12) ? monthArr : months;\n};\n\nexport const ensureWeekdayNamesArr = (attrVal) => {\n const customWeekdayArr = attrVal?.split?.(',');\n const isCustomValid = isValidAttrArr(customWeekdayArr, 7);\n return isCustomValid ? customWeekdayArr : weekdays;\n};\n\nexport const ensureShortWeekdayNamesArr = (attrVal) => {\n const customShortWeekdays = attrVal;\n\n if (!attrVal || !isValidAttrArr(customShortWeekdays, 7)) {\n return weekdays.map((d) => d.substring(0, 3));\n }\n\n return customShortWeekdays.map((d) => d.substring(0, 3));\n};\n\nexport const truncateWeekdays = (arr) => arr.map((d) => d.substring(0, 3));\n\nexport const prevMonth = (timestamp) => {\n const date = newDate(timestamp);\n const month = date.getMonth();\n\n if (month === 0) {\n const year = date.getFullYear();\n date.setFullYear(year - 1);\n date.setMonth(11);\n } else {\n date.setMonth(month - 1);\n }\n\n return date;\n};\n\nexport const nextMonth = (timestamp) => {\n const date = newDate(timestamp);\n const month = date.getMonth();\n\n if (month === 11) {\n const year = date.getFullYear();\n date.setFullYear(year + 1);\n date.setMonth(0);\n } else {\n date.setMonth(month + 1);\n }\n\n return date;\n};\n","import { createBaseInputClass } from '../../../baseClasses/createBaseInputClass';\nimport { compose } from '../../../helpers';\nimport { forwardAttrs, getComponentName } from '../../../helpers/componentHelpers';\nimport { inputFloatingLabelStyle } from '../../../helpers/themeHelpers/resetHelpers';\nimport { componentNameValidationMixin, createStyleMixin, draggableMixin } from '../../../mixins';\nimport {\n getCurrentDay,\n getTimestampParts,\n isValidTimestamp,\n newDate,\n formatTimestamp,\n getCurrentTime,\n getFullYear,\n getMonth,\n} from '../helpers';\nimport { arrowLeftIcon, arrowRightIcon } from '../icons';\nimport {\n BUTTON_LABEL_CANCEL,\n BUTTON_LABEL_DONE,\n CALENDAR_LABEL_TODAY,\n NATIVE_FORMAT,\n YEARS_RANGE,\n} from '../consts';\nimport {\n createMonthView,\n createInputs,\n getMonthsOptions,\n getYearOptions,\n initComboBox,\n ensureMonthNamesArr,\n isViewVisible,\n ensureWeekdayNamesArr,\n truncateWeekdays,\n prevMonth,\n nextMonth,\n} from './helpers';\nimport { ButtonClass } from '@descope-ui/descope-button/class';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('calendar');\n\nconst observedAttrs = [\n 'initial-value',\n 'initial-year',\n 'initial-month',\n 'years-range',\n 'calendar-months',\n 'calendar-weekdays',\n 'calendar-label-today',\n 'st-host-direction',\n 'disabled',\n 'full-width',\n];\n\nconst calendarUiAttrs = ['calendar-label-submit', 'calendar-label-cancel'];\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: 'div' });\n\nclass RawCalendar extends BaseInputClass {\n static get observedAttributes() {\n return [].concat(BaseInputClass.observedAttributes || [], observedAttrs, calendarUiAttrs);\n }\n\n // preview state timestamp\n preview;\n\n // value timestamp\n timestamp;\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div>\n <nav class=\"nav top-nav\">\n <div class=\"nav-prev\">\n </div>\n <div class=\"selectors\"></div>\n <div class=\"nav-next\">\n </div>\n </nav>\n <div class=\"calendar\"></div>\n <nav class=\"nav bottom-nav\">\n <descope-button class=\"cancel-button\" variant=\"link\" mode=\"primary\">Cancel</descope-button>\n <descope-button class=\"submit-button\" variant=\"link\" mode=\"primary\" disabled=\"true\">Done</descope-button>\n </nav>\n </div>\n `;\n\n injectStyle(\n `\n :host {\n display: inline-block;\n box-sizing: border-box;\n max-width: 100%;\n user-select: none;\n -webkit-user-select: none;\n }\n\n :host ::slotted {\n padding: 0;\n }\n\n [data-toggle-calendar] {\n cursor: pointer;\n display: flex;\n align-self: center;\n z-index: 1;\n }\n\n [data-disabled=\"true\"] {\n pointer-events: none;\n }\n\n .calendar .day {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .nav {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n }\n\n .selectors,\n .selectors span {\n display: flex;\n justify-content: center;\n }\n\n descope-button {\n padding: 0;\n ${ButtonClass.cssVarList.horizontalPadding}: 0;\n ${ButtonClass.cssVarList.verticalPadding}: 0;\n ${ButtonClass.cssVarList.outlineWidth}: 0;\n }\n\n .combo-box-item {\n display:flex;\n flex-direction: column;\n }\n\n ${inputFloatingLabelStyle()}\n `,\n this\n );\n }\n\n set value(val) {\n if (!val) return;\n\n const timestamp = newDate(val).getTime();\n\n if (!isValidTimestamp(timestamp) || timestamp === this.timestmap) {\n return;\n }\n\n this.timestamp = timestamp;\n\n this.renderCalendar();\n }\n\n get value() {\n return this.timestamp ? formatTimestamp(this.timestamp, NATIVE_FORMAT) : '';\n }\n\n get isSelectedView() {\n return isViewVisible(this.preview, this.timestamp);\n }\n\n get isTodayView() {\n return isViewVisible(getCurrentTime(), this.preview);\n }\n\n get monthNames() {\n return ensureMonthNamesArr(this.getAttribute('calendar-months'));\n }\n\n get weekdayNames() {\n return ensureWeekdayNamesArr(this.getAttribute('calendar-weekdays'));\n }\n\n get hasYearValue() {\n return !!this.yearInput.value;\n }\n\n get hasMonthValue() {\n return !!this.monthInput.value;\n }\n\n get yearsRange() {\n const range = this.getAttribute('years-range')?.split('-');\n\n if (range?.length === 2) {\n const [start, end] = range.map(Number);\n if (start <= end) return [start, end];\n }\n\n const currentYear = newDate().getFullYear();\n\n return [currentYear, currentYear + YEARS_RANGE];\n }\n\n init() {\n super.init?.();\n this.initCalendar();\n this.renderCalendar();\n }\n\n initCalendar() {\n this.calendar = this.shadowRoot.querySelector('.calendar');\n\n this.navPrevEle = this.shadowRoot.querySelector('.nav-prev');\n this.navNextEle = this.shadowRoot.querySelector('.nav-next');\n this.submitButton = this.shadowRoot.querySelector('.submit-button');\n this.cancelButton = this.shadowRoot.querySelector('.cancel-button');\n\n this.initInputs();\n this.initNav();\n\n this.addEventListener('day-changed', () => this.submitButton.removeAttribute('disabled'));\n // This is a workaround for descope-components inside Vaadin's Popover component.\n // When we sync attributes, the `disabled` attribute is being compared to the attribute\n // on Vaadin component; since the Vaadin component has no `disabled` attribute, we sync\n // that back to our component. This happens when using Popover, and for specific attributes,\n // namely `disabled`. This is pending a more generic fix in the way we sync attibutes.\n this.submitButton.shadowRoot.querySelector('vaadin-button').setAttribute('disabled', 'true');\n }\n\n initInputs() {\n const ele = createInputs(this.monthNames, this.yearsRange);\n this.shadowRoot.querySelector('.selectors').appendChild(ele);\n\n this.monthInput = initComboBox(\n this.shadowRoot.querySelector('.month-input'),\n this.onMonthChange.bind(this),\n this.onMonthInputBlur.bind(this)\n );\n\n this.yearInput = initComboBox(\n this.shadowRoot.querySelector('.year-input'),\n this.onYearChange.bind(this),\n this.onYearInputBlur.bind(this)\n );\n\n [this.monthInput, this.yearInput].forEach((selector) =>\n forwardAttrs(this, selector, {\n includeAttrs: ['disabled', 'size', 'st-host-direction'],\n })\n );\n }\n\n initNav() {\n this.navPrevEle.addEventListener('click', this.navPrevMonth.bind(this));\n this.navNextEle.addEventListener('click', this.navNextMonth.bind(this));\n this.cancelButton.addEventListener('click', this.onCancel.bind(this));\n this.submitButton.addEventListener('click', this.onSubmit.bind(this));\n\n [this.navPrevEle, this.navNextEle].forEach((btn) =>\n forwardAttrs(this, btn, {\n includeAttrs: ['size'],\n })\n );\n\n this.shadowRoot.querySelector('.nav-next').innerHTML = arrowRightIcon;\n this.shadowRoot.querySelector('.nav-prev').innerHTML = arrowLeftIcon;\n }\n\n onSubmit() {\n if (this.isDisabled) return;\n if (!this.value) return;\n this.dispatchEvent(new CustomEvent('date-submit', { detail: newDate(this.preview) }));\n }\n\n onCancel() {\n if (this.isDisabled) return;\n this.dispatchEvent(new CustomEvent('cancel'));\n this.dispatchEvent(new CustomEvent('date-cancel'));\n this.clearSelectedDay();\n }\n\n clearSelectedDay() {\n this.getSelectedDayEle()?.removeAttribute('data-selected');\n this.submitButton.setAttribute('disabled', 'true');\n this.timestamp = '';\n }\n\n updateInputs() {\n if (this.yearInput && this.monthInput) {\n const timestamp = this.preview || getCurrentTime();\n const year = getFullYear(timestamp);\n const month = getMonth(timestamp);\n this.monthInput.value = month;\n // For the yearInput we update the base element directly to properly trigger the change event\n // since this can be a custom value\n setTimeout(() => {\n this.yearInput.baseElement.value = year;\n });\n }\n }\n\n renderCalendar() {\n const date = newDate(this.preview || getCurrentTime());\n const timestamp = date.getTime();\n\n const [year, month] = getTimestampParts(timestamp);\n\n if (this.calendar) {\n this.calendar.innerHTML = createMonthView(year, month, truncateWeekdays(this.weekdayNames));\n }\n\n Array.from(this.calendar?.querySelectorAll('.day-entry .day') || []).forEach((ele) =>\n ele.addEventListener('click', this.onDayChange.bind(this))\n );\n\n this.updateInputs();\n this.setSelectedDay();\n this.setCurrentDay();\n }\n\n onDayChange(e) {\n if (this.isDisabled) return;\n const date = newDate(this.preview);\n date.setDate(Number(e.target.getAttribute('data-date-day')));\n this.value = formatTimestamp(date.getTime(), NATIVE_FORMAT);\n this.dispatchEvent(new CustomEvent('day-changed', { detail: date }));\n }\n\n onYearChange(e) {\n if (!e.target.value) return;\n const date = newDate(this.preview);\n date.setFullYear(Number(e.target.value.trim()));\n this.preview = date.getTime();\n this.renderCalendar();\n this.dispatchEvent(new CustomEvent('year-changed', { detail: date }));\n }\n\n onMonthChange(e) {\n if (!e.target.value) return;\n const date = newDate(this.preview);\n date.setMonth(Number(e.target.value) - 1);\n this.preview = date.getTime();\n this.renderCalendar();\n this.dispatchEvent(new CustomEvent('month-changed', { detail: date }));\n }\n\n onYearInputBlur(e) {\n this.yearInput.baseElement.value = e.target.value || getFullYear(this.preview);\n }\n\n onMonthInputBlur(e) {\n this.monthInput.baseElement.value = e.target.value || getMonth(this.preview);\n }\n\n getSelectedDayEle() {\n const day = newDate(this.timestamp).getDate();\n return this.calendar?.querySelector(`[data-date-day=\"${day}\"]`);\n }\n\n getCurrentDayEle() {\n return this.calendar?.querySelector(`[data-date-day=\"${getCurrentDay()}\"]`);\n }\n\n clearSelectedDays() {\n const cells = this.calendar?.querySelectorAll(`[data-selected]`);\n if (!cells) return;\n cells.forEach((c) => c.removeAttribute('data-selected'));\n }\n\n setSelectedDay() {\n this.clearSelectedDays();\n if (this.value && this.isSelectedView) {\n this.getSelectedDayEle().setAttribute('data-selected', 'true');\n }\n }\n\n setCurrentDay() {\n if (this.isTodayView) {\n const ele = this.getCurrentDayEle();\n const title = this.getAttribute('calendar-label-today') || CALENDAR_LABEL_TODAY;\n ele.setAttribute('data-current-day', 'true');\n ele.setAttribute('title', title);\n }\n }\n\n navPrevMonth() {\n if (this.isDisabled) {\n return;\n }\n const date = prevMonth(this.preview);\n this.preview = date.getTime();\n this.renderCalendar();\n }\n\n navNextMonth() {\n if (this.isDisabled) {\n return;\n }\n const date = nextMonth(this.preview);\n this.preview = date.getTime();\n this.renderCalendar();\n }\n\n clearValue() {\n this.timestamp = '';\n this.value = '';\n this.removeAttribute('preview');\n this.submitButton.setAttribute('disabled', 'true');\n }\n\n onInitialValueChange(newValue) {\n // if component already has a value don't re-set value\n if (this.value) {\n return;\n }\n\n const date = newDate(newValue);\n const timestamp = date.getTime();\n\n if (isValidTimestamp(timestamp)) {\n this.timestamp = timestamp;\n this.preview = timestamp;\n } else {\n this.clearValue();\n }\n }\n\n onYearsRangeChange() {\n setTimeout(() => {\n if (this.yearInput) {\n this.yearInput.innerHTML = getYearOptions(this.yearsRange);\n }\n });\n }\n\n onMonthNamesChange() {\n setTimeout(() => {\n if (this.monthInput) {\n this.monthInput.innerHTML = getMonthsOptions(this.monthNames);\n }\n });\n }\n\n onSubmitLabelChange(newValue) {\n if (this.submitButton) {\n this.submitButton.textContent = newValue || BUTTON_LABEL_DONE;\n }\n }\n\n onCancelLabelChange(newValue) {\n if (this.cancelButton) {\n this.cancelButton.textContent = newValue || BUTTON_LABEL_CANCEL;\n }\n }\n\n onInitialMonthChange(val) {\n const currYear = getFullYear(this.preview);\n this.preview = newDate(`${currYear}/${val}/1`).getTime();\n }\n\n onInitialYearChange(val) {\n const currMonth = getMonth(this.preview);\n this.preview = newDate(`${val}/${currMonth}/1`).getTime();\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n if (oldValue !== newValue) {\n // attrs for which affect static ui parts doesn't require calendar re-render\n if (calendarUiAttrs.includes(attrName)) {\n if (attrName === 'calendar-label-submit') {\n this.onSubmitLabelChange(newValue);\n }\n if (attrName === 'calendar-label-cancel') {\n this.onCancelLabelChange(newValue);\n }\n } else {\n // we want to render the calendar for each of these attr change\n\n if (newValue && attrName === 'initial-value') {\n this.onInitialValueChange(newValue);\n }\n if (newValue && attrName === 'initial-month') {\n this.onInitialMonthChange(newValue);\n }\n if (newValue && attrName === 'initial-year') {\n this.onInitialYearChange(newValue);\n }\n if (attrName === 'years-range') {\n this.onYearsRangeChange(Number(newValue));\n }\n if (attrName === 'calendar-months') {\n this.onMonthNamesChange();\n }\n if (attrName === 'calendar-label-today') {\n this.setCurrentDay(newValue);\n }\n if (attrName === 'disabled') {\n setTimeout(() => {\n this.cancelButton?.setAttribute('disabled', newValue === 'true');\n });\n }\n\n this.renderCalendar();\n }\n }\n }\n\n getValidity() {\n if (this.isRequired && !this.value) {\n return { valueMissing: true };\n }\n return {};\n }\n}\n\nconst {\n calendar,\n day,\n dayEntry,\n currentDay,\n selectedDay,\n disabledDay,\n weekday,\n topNav,\n topNavSelectors,\n bottomNav,\n navPrev,\n navNext,\n navPrevRTL,\n navNextRTL,\n yearInput,\n monthInput,\n} = {\n calendar: { selector: () => '.calendar' },\n topNav: { selector: () => '.nav.top-nav' },\n topNavSelectors: { selector: () => '.nav.top-nav .selectors > span' },\n bottomNav: { selector: () => '.nav.bottom-nav' },\n day: { selector: () => '.day' },\n dayEntry: { selector: () => '.day-entry' },\n currentDay: { selector: () => '.day-entry[data-current-day] .day' },\n selectedDay: { selector: () => '.day-entry[data-selected] .day' },\n disabledDay: { selector: () => '.day-entry[data-disabled=\"true\"] .day' },\n weekday: { selector: () => '.weekday' },\n navPrev: { selector: () => '.nav-prev' },\n navNext: { selector: () => '.nav-next' },\n navPrevRTL: { selector: () => ':host([st-host-direction=\"rtl\"]) .nav-prev' },\n navNextRTL: { selector: () => ':host([st-host-direction=\"rtl\"]) .nav-next' },\n yearInput: { selector: () => '.year-input' },\n monthInput: { selector: () => '.month-input' },\n};\n\nexport const CalendarClass = compose(\n createStyleMixin({ componentNameOverride: getComponentName('input-wrapper') }),\n createStyleMixin({\n mappings: {\n fontSize: {},\n fontFamily: {},\n hostWidth: [\n { selector: () => ':host', property: 'width' },\n { selector: 'table', property: 'width' },\n ],\n hostDirection: { property: 'direction' },\n\n topNavVerticalPadding: [\n { ...topNav, property: 'padding-top' },\n { ...topNav, property: 'padding-bottom' },\n ],\n topNavHorizointalPadding: [\n { ...topNav, property: 'padding-right' },\n { ...topNav, property: 'padding-left' },\n ],\n topNavAlignment: { ...topNav, property: 'justify-content' },\n topNavGap: { ...topNav, property: 'gap' },\n topNavSelectorsGap: { ...topNavSelectors, property: 'gap' },\n\n bottomNavVerticalPadding: [\n { ...bottomNav, property: 'padding-top' },\n { ...bottomNav, property: 'padding-bottom' },\n ],\n bottomNavHorizontalPadding: [\n { ...bottomNav, property: 'padding-right' },\n { ...bottomNav, property: 'padding-left' },\n ],\n bottomNavAlignment: { ...bottomNav, property: 'justify-content' },\n bottomNavGap: { ...bottomNav, property: 'gap' },\n\n navMarginBottom: { ...topNav, property: 'margin-bottom' },\n\n calendarPadding: [\n { ...calendar, property: 'padding-bottom' },\n { ...calendar, property: 'padding-right' },\n { ...calendar, property: 'padding-left' },\n ],\n\n navBorderBottomWidth: { ...topNav, property: 'border-bottom-width' },\n navBorderBottomColor: { ...topNav, property: 'border-bottom-color' },\n navBorderBottomStyle: { ...topNav, property: 'border-bottom-style' },\n\n weekdayFontSize: { ...weekday, property: 'font-size' },\n weekdayFontWeight: { ...weekday, property: 'font-weight' },\n\n currentDayBorderColor: {\n ...currentDay,\n property: 'border-color',\n },\n currentDayBorderWidth: {\n ...currentDay,\n property: 'border-width',\n },\n currentDayBorderStyle: {\n ...currentDay,\n property: 'border-style',\n },\n\n dayHeight: { ...dayEntry, property: 'height' },\n daySize: [\n { ...day, property: 'height' },\n { ...day, property: 'width' },\n ],\n dayPadding: { ...day, property: 'padding' },\n dayRadius: { ...day, property: 'border-radius' },\n dayTextAlign: { ...day, property: 'text-align' },\n dayBlockAlign: { ...day, property: 'margin' },\n dayTextColor: { ...day, property: 'color' },\n dayFontWeight: { ...day, property: 'font-weight' },\n dayBackgroundColor: { ...day, property: 'background-color' },\n dayCursor: { ...day, property: 'cursor' },\n dayFontSize: { ...day, property: 'font-size' },\n\n dayBackgroundColorHover: {\n selector: () => '.day:hover',\n property: 'background-color',\n },\n\n daySelectedTextdColor: {\n ...selectedDay,\n property: 'color',\n },\n daySelectedBackgroundColor: {\n ...selectedDay,\n property: 'background-color',\n },\n dayDisabledTextdColor: {\n ...disabledDay,\n property: 'color',\n },\n\n yearInputWidth: { ...yearInput, property: 'width' },\n monthInputWidth: { ...monthInput, property: 'width' },\n\n navButtonSize: [\n { ...navPrev, property: 'width' },\n { ...navPrev, property: 'height' },\n { ...navNext, property: 'width' },\n { ...navNext, property: 'height' },\n ],\n navButtonCursor: [\n { ...navPrev, property: 'cursor' },\n { ...navNext, property: 'cursor' },\n ],\n navButtonRotation: [\n { ...navPrevRTL, property: 'transform' },\n { ...navNextRTL, property: 'transform' },\n ],\n navButtonOpacity: [\n { ...navPrev, property: 'opacity' },\n { ...navNext, property: 'opacity' },\n ],\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawCalendar);\n","import '@descope-ui/descope-combo-box';\nimport '@descope-ui/descope-button';\n\nimport { componentName, CalendarClass } from './CalendarClass';\n\ncustomElements.define(componentName, CalendarClass);\n\nexport { CalendarClass, componentName };\n","import { COUNTER_SUPPORTED_KEYS } from './consts';\n\nexport const isValidTimestamp = (val) => !Number.isNaN(Number(val));\n\nexport const isNumber = (val) => !Number.isNaN(Number(val));\n\nexport const getTimestampParts = (timestamp) => {\n const date = new Date(timestamp);\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n const day = date.getDate();\n return [year, month, day];\n};\n\nexport const formatTimestamp = (timestamp, format) => {\n const [year, month, day] = getTimestampParts(timestamp);\n\n const parts = {\n DD: String(day).padStart(2, '0'),\n MM: String(month).padStart(2, '0'),\n YYYY: String(year),\n };\n\n return format.replace(/DD|MM|YYYY/g, (match) => parts[match]);\n};\n\n// polyfill for safari Date API (which doesn't accept \"YYYY-MM-DD\" string as value)\nexport const newDate = (date) => {\n if (typeof date === 'number') {\n return new Date(date);\n }\n if (typeof date === 'string') {\n return new Date(date.replace(/-/g, '/'));\n }\n return new Date();\n};\n\nexport const isSupportedKey = (key) => COUNTER_SUPPORTED_KEYS.includes(key);\n\nexport const getKeyMap = (key, shiftKey, metaKey) => {\n return {\n refresh: metaKey && key.toLowerCase() === 'r',\n tab: key === 'Tab',\n shiftTab: shiftKey && key === 'Tab',\n backspace: key === 'Backspace',\n arrowUp: !shiftKey && key === 'ArrowUp',\n arrowDown: !shiftKey && key === 'ArrowDown',\n arrowLeft: !shiftKey && key === 'ArrowLeft',\n arrowRight: !shiftKey && key === 'ArrowRight',\n pageUp: !shiftKey && key === 'PageUp',\n pageDown: !shiftKey && key === 'PageDown',\n shiftArrowUp: shiftKey && key === 'ArrowUp',\n shiftArrowDown: shiftKey && key === 'ArrowDown',\n shiftPageUp: shiftKey && key === 'PageUp',\n shiftPageDown: shiftKey && key === 'PageDown',\n };\n};\n\nexport const getCurrentTime = () => newDate().getTime();\nexport const getFullYear = (timestamp) => newDate(timestamp).getFullYear().toString();\nexport const getMonth = (timestamp) => (newDate(timestamp).getMonth() + 1).toString();\nexport const getCurrentDay = () => newDate().getDate();\nexport const getCurrentYear = () => newDate().getFullYear().toString();\n\n// Vaadin uses \"constructed stylesheet\" to hide the host in dialog components.\n// To override it, we need to push an overriding constructed stylesheet to the shadow DOM\n// opened issue in vaadin: https://github.com/vaadin/web-components/issues/7979\nexport const overrideConstructedStylesheet = (ele) => {\n const cs = new CSSStyleSheet();\n cs.insertRule(':host{display:block!important;}');\n ele?.shadowRoot?.adoptedStyleSheets?.push(cs);\n};\n","export const calendarIcon = `\n<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9 5H15V4.50468C15 4.21404 15.226 4 15.5047 4H16.4953C16.786 4 17 4.22595 17 4.50468V5H18.7568C19.3028 5 19.75 5.44725 19.75 5.99896V7.00104C19.75 7.55734 19.3053 8 18.7568 8H5.24317C4.69717 8 4.25 7.55275 4.25 7.00104V5.99896C4.25 5.44266 4.69466 5 5.24317 5H7V4.50468C7 4.21404 7.22596 4 7.50468 4H8.49532C8.78596 4 9 4.22595 9 4.50468V5ZM5.50468 9H6.49532C6.78596 9 7 9.22596 7 9.50468V10.4953C7 10.786 6.77404 11 6.49532 11H5.50468C5.21404 11 5 10.774 5 10.4953V9.50468C5 9.21404 5.22595 9 5.50468 9ZM8.50468 9H9.49532C9.78596 9 10 9.22596 10 9.50468V10.4953C10 10.786 9.77404 11 9.49532 11H8.50468C8.21404 11 8 10.774 8 10.4953V9.50468C8 9.21404 8.22596 9 8.50468 9ZM11.5047 9H12.4953C12.786 9 13 9.22596 13 9.50468V10.4953C13 10.786 12.774 11 12.4953 11H11.5047C11.214 11 11 10.774 11 10.4953V9.50468C11 9.21404 11.226 9 11.5047 9ZM5.50468 12H6.49532C6.78596 12 7 12.226 7 12.5047V13.4953C7 13.786 6.77404 14 6.49532 14H5.50468C5.21404 14 5 13.774 5 13.4953V12.5047C5 12.214 5.22595 12 5.50468 12ZM8.50468 12H9.49532C9.78596 12 10 12.226 10 12.5047V13.4953C10 13.786 9.77404 14 9.49532 14H8.50468C8.21404 14 8 13.774 8 13.4953V12.5047C8 12.214 8.22596 12 8.50468 12ZM11.5047 12H12.4953C12.786 12 13 12.226 13 12.5047V13.4953C13 13.786 12.774 14 12.4953 14H11.5047C11.214 14 11 13.774 11 13.4953V12.5047C11 12.214 11.226 12 11.5047 12ZM5.50468 15H6.49532C6.78596 15 7 15.226 7 15.5047V16.4953C7 16.786 6.77404 17 6.49532 17H5.50468C5.21404 17 5 16.774 5 16.4953V15.5047C5 15.214 5.22595 15 5.50468 15ZM8.50468 15H9.49532C9.78596 15 10 15.226 10 15.5047V16.4953C10 16.786 9.77404 17 9.49532 17H8.50468C8.21404 17 8 16.774 8 16.4953V15.5047C8 15.214 8.22596 15 8.50468 15ZM11.5047 15H12.4953C12.786 15 13 15.226 13 15.5047V16.4953C13 16.786 12.774 17 12.4953 17H11.5047C11.214 17 11 16.774 11 16.4953V15.5047C11 15.214 11.226 15 11.5047 15ZM14.5047 9H15.4953C15.786 9 16 9.22596 16 9.50468V10.4953C16 10.786 15.774 11 15.4953 11H14.5047C14.214 11 14 10.774 14 10.4953V9.50468C14 9.21404 14.226 9 14.5047 9ZM14.5047 12H15.4953C15.786 12 16 12.226 16 12.5047V13.4953C16 13.786 15.774 14 15.4953 14H14.5047C14.214 14 14 13.774 14 13.4953V12.5047C14 12.214 14.226 12 14.5047 12ZM14.5047 15H15.4953C15.786 15 16 15.226 16 15.5047V16.4953C16 16.786 15.774 17 15.4953 17H14.5047C14.214 17 14 16.774 14 16.4953V15.5047C14 15.214 14.226 15 14.5047 15ZM17.5047 15H18.4953C18.786 15 19 15.226 19 15.5047V16.4953C19 16.786 18.774 17 18.4953 17H17.5047C17.214 17 17 16.774 17 16.4953V15.5047C17 15.214 17.226 15 17.5047 15ZM5.50468 18H6.49532C6.78596 18 7 18.226 7 18.5047V19.4953C7 19.786 6.77404 20 6.49532 20H5.50468C5.21404 20 5 19.774 5 19.4953V18.5047C5 18.214 5.22595 18 5.50468 18ZM8.50468 18H9.49532C9.78596 18 10 18.226 10 18.5047V19.4953C10 19.786 9.77404 20 9.49532 20H8.50468C8.21404 20 8 19.774 8 19.4953V18.5047C8 18.214 8.22596 18 8.50468 18ZM11.5047 18H12.4953C12.786 18 13 18.226 13 18.5047V19.4953C13 19.786 12.774 20 12.4953 20H11.5047C11.214 20 11 19.774 11 19.4953V18.5047C11 18.214 11.226 18 11.5047 18ZM14.5047 18H15.4953C15.786 18 16 18.226 16 18.5047V19.4953C16 19.786 15.774 20 15.4953 20H14.5047C14.214 20 14 19.774 14 19.4953V18.5047C14 18.214 14.226 18 14.5047 18ZM17.5047 18H18.4953C18.786 18 19 18.226 19 18.5047V19.4953C19 19.786 18.774 20 18.4953 20H17.5047C17.214 20 17 19.774 17 19.4953V18.5047C17 18.214 17.226 18 17.5047 18ZM17.5047 12H18.4953C18.786 12 19 12.226 19 12.5047V13.4953C19 13.786 18.774 14 18.4953 14H17.5047C17.214 14 17 13.774 17 13.4953V12.5047C17 12.214 17.226 12 17.5047 12ZM17.5047 9H18.4953C18.786 9 19 9.22596 19 9.50468V10.4953C19 10.786 18.774 11 18.4953 11H17.5047C17.214 11 17 10.774 17 10.4953V9.50468C17 9.21404 17.226 9 17.5047 9Z\" fill=\"#808080\"/>\n</svg>\n`;\n\nexport const arrowRightIcon = `\n<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M9.27283 6.78069C8.87912 6.34164 8.91587 5.66655 9.35492 5.27283C9.79397 4.87912 10.4691 4.91587 10.8628 5.35492C10.8628 5.35492 16.0022 10.9543 16.366 11.36C16.7298 11.7657 16.7298 12.2392 16.366 12.6448L10.8628 18.6451C10.4691 19.0841 9.79397 19.1209 9.35492 18.7272C8.91587 18.3334 8.87912 17.6584 9.27283 17.2193L14.1368 12L9.27283 6.78069Z\" fill=\"#808080\"/>\n</svg>`;\n\nexport const arrowLeftIcon = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M14.7272 17.2193C15.1209 17.6584 15.0841 18.3334 14.6451 18.7272C14.206 19.1209 13.5309 19.0841 13.1372 18.6451C13.1372 18.6451 7.99776 13.0457 7.63399 12.64C7.27023 12.2343 7.27023 11.7608 7.63399 11.3552L13.1372 5.35492C13.5309 4.91587 14.206 4.87912 14.6451 5.27283C15.0841 5.66655 15.1209 6.34164 14.7272 6.78069L9.86322 12L14.7272 17.2193Z\" fill=\"#808080\"/>\n</svg>`;\n","export const useHostExternalPadding = (cssVarList) => `\n :host {\n padding: calc(var(${cssVarList.inputOutlineWidth}) + var(${cssVarList.inputOutlineOffset}))\n }\n`;\n\nexport const resetInputFieldUnderlayingBorder = (name) => `\n ${name}::part(input-field)::after {\n border: none;\n }\n`;\n\nexport const resetInitialHeight = (name) => `\n ${name}::before {\n\t\theight: unset;\n\t}\n`;\n\nexport const resetInputElement = (name) => `\n ${name} > input {\n -webkit-mask-image: none;\n min-height: 0;\n box-sizing: border-box;\n }\n`;\n\nexport const resetInputContainer = (name) => `\n ${name} {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n }\n`;\n\nexport const resetInputField = (name) => `\n ${name}::part(input-field) {\n overflow: hidden;\n padding: 0;\n box-shadow: none;\n }\n`;\n\nexport const resetInputCursor = (name) => `\n ${name} > label,\n ${name}::part(label),\n ${name}::part(required-indicator) {\n cursor: pointer;\n }\n`;\n\nexport const resetInputPlaceholder = (name, ele = 'input') => `\n ${name}[disabled] > ${ele}:placeholder-shown,\n\t${name}[readonly] > ${ele}:placeholder-shown {\n\t\topacity: 1;\n\t}\n`;\n\nexport const resetInputAutoFill = (name, cssVarList) => `\n ${name} input:-webkit-autofill,\n ${name} input:-webkit-autofill::first-line,\n ${name} input:-webkit-autofill:hover,\n ${name} input:-webkit-autofill:active,\n ${name} input:-webkit-autofill:focus {\n -webkit-text-fill-color: var(${cssVarList.inputValueTextColor});\n box-shadow: 0 0 0 var(${cssVarList.inputHeight}) var(${cssVarList.inputBackgroundColor}) inset;\n }\n`;\n\nexport const resetInputFieldDefaultWidth = () => `\n :host {\n --vaadin-field-default-width: auto;\n box-sizing: border-box;\n }\n`;\n\nexport const resetInputReadonlyStyle = (name) => `\n ${name}::part(input-field)::after {\n opacity: 0;\n }\n`;\n\nexport const resetInputFieldInvalidBackgroundColor = (name) => `\n ${name}::part(input-field)::after {\n background: none;\n }\n`;\n\nexport const resetInputOverrides = (name, cssVarList) => `\n ${resetInputContainer(name)}\n ${resetInputCursor(name)}\n ${resetInputPlaceholder(name)}\n ${resetInputField(name)}\n ${resetInputAutoFill(name, cssVarList)}\n ${resetInputFieldInvalidBackgroundColor(name)}\n ${resetInitialHeight(name)}\n ${resetInputElement(name)}\n ${resetInputFieldUnderlayingBorder(name)}\n`;\n\n// This function is used to support RTL correctly for input components.\n// It also fixes the error message to be displayed LTR since we currently\n// don't support RTL for error messages.\nexport const resetInputLabelPosition = (name) => `\n :host ::part(error-message) {\n direction: ltr;\n }\n :host([required]) ::part(required-indicator) {\n width: 1em;\n display: inline-flex;\n }\n :host([required]) ::part(required-indicator)::after {\n position: static;\n }\n :host([has-label]) ::part(label) {\n padding-right: 0;\n padding-bottom: 0;\n display: flex;\n width: 100%;\n }\n ${name} [slot=\"label\"] {\n max-width: calc(100% - 1em);\n overflow: hidden;\n text-overflow: ellipsis;\n padding-bottom: 0.5em;\n }\n`;\n\nexport const inputFloatingLabelStyle = () => {\n return `\n :host([label-type=\"floating\"]) {\n position: relative;\n }\n :host([label-type=\"floating\"][has-label]) [slot=\"label\"] {\n padding: 0;\n }\n :host([label-type=\"floating\"][has-label]) > ::part(label) {\n z-index: 1;\n padding: 0;\n width: auto;\n }\n `;\n};\n"],"names":["componentName","host","label","slottedIcon","selector","loadingIndicatorStyles","ButtonClass","mappings","hostWidth","property","hostHeight","hostDirection","fontSize","fontFamily","cursor","backgroundColor","outlineOffset","outlineColor","outlineStyle","outlineWidth","borderRadius","borderColor","borderStyle","borderWidth","verticalPadding","horizontalPadding","fallback","labelTextColor","iconColor","cssVarList","fill","labelTextDecoration","labelSpacing","textAlign","iconSize","slots","wrappedEleName","style","excludeAttrsSync","color","clickableMixin","superclass","isLoading","this","getAttribute","click","super","customElements","define","RawIcon","baseSelector","observedAttributes","constructor","attachShadow","mode","innerHTML","init","toggleVisibility","src","isVisible","display","updateFillColor","node","querySelectorAll","forEach","ele","setAttribute","IconClass","attributeChangedCallback","attrName","oldValue","newValue","then","res","clonedNode","cloneNode","appendChild","createSvgEle","text","clean","sanitize","USE_PROFILES","svg","svgFilters","DOMParser","parseFromString","querySelector","createIcon","async","startsWith","isBase64Svg","svgXml","atob","slice","base64Prefix","path","match","getFileExtension","fetchedSrc","fetch","document","createElement","createImgEle","setProperty","createBaseInputClass","args","SUPPORTED_FORMATS","DEFAULT_FORMAT","NATIVE_FORMAT","YEARS_RANGE","DIVIDER","COUNTER_SUPPORTED_KEYS","months","weekdays","counterConfig","MONTH","id","min","max","placeholder","count","shiftCount","DAY","YEAR","BUTTON_LABEL_DONE","BUTTON_LABEL_CANCEL","CALENDAR_LABEL_TODAY","isValidAttrArr","arr","Array","isArray","length","filter","Boolean","comboBoxItemTpl","dataId","dataName","getMonthsOptions","customMonths","map","item","index","join","isViewVisible","selectionTimestamp","previewTimestamp","previewYear","previewMonth","selectedYear","selectedMonth","initComboBox","input","onChange","onBlur","addEventListener","observedAttrs","calendarUiAttrs","BaseInputClass","calendar","day","dayEntry","currentDay","selectedDay","disabledDay","weekday","topNav","topNavSelectors","bottomNav","navPrev","navNext","navPrevRTL","navNextRTL","yearInput","monthInput","CalendarClass","componentNameOverride","topNavVerticalPadding","topNavHorizointalPadding","topNavAlignment","topNavGap","topNavSelectorsGap","bottomNavVerticalPadding","bottomNavHorizontalPadding","bottomNavAlignment","bottomNavGap","navMarginBottom","calendarPadding","navBorderBottomWidth","navBorderBottomColor","navBorderBottomStyle","weekdayFontSize","weekdayFontWeight","currentDayBorderColor","currentDayBorderWidth","currentDayBorderStyle","dayHeight","daySize","dayPadding","dayRadius","dayTextAlign","dayBlockAlign","dayTextColor","dayFontWeight","dayBackgroundColor","dayCursor","dayFontSize","dayBackgroundColorHover","daySelectedTextdColor","daySelectedBackgroundColor","dayDisabledTextdColor","yearInputWidth","monthInputWidth","navButtonSize","navButtonCursor","navButtonRotation","navButtonOpacity","concat","preview","timestamp","value","val","getTime","timestmap","renderCalendar","isSelectedView","isTodayView","monthNames","attrVal","monthArr","split","ensureMonthNamesArr","weekdayNames","customWeekdayArr","ensureWeekdayNamesArr","hasYearValue","hasMonthValue","yearsRange","range","start","end","Number","currentYear","getFullYear","initCalendar","shadowRoot","navPrevEle","navNextEle","submitButton","cancelButton","initInputs","initNav","removeAttribute","createInputs","onMonthChange","bind","onMonthInputBlur","onYearChange","onYearInputBlur","includeAttrs","navPrevMonth","navNextMonth","onCancel","onSubmit","btn","isDisabled","dispatchEvent","CustomEvent","detail","clearSelectedDay","getSelectedDayEle","updateInputs","year","month","setTimeout","baseElement","shortWeekdays","daysInMonth","Date","getDate","getMaxDaysInMonth","firstDayOfMonth","getDay","monthView","reduce","acc","d","i","dayOfWeek","createMonthView","substring","from","onDayChange","setSelectedDay","setCurrentDay","e","date","setDate","target","setFullYear","trim","setMonth","getCurrentDayEle","clearSelectedDays","cells","c","title","getMonth","prevMonth","nextMonth","clearValue","onInitialValueChange","onYearsRangeChange","years","push","generateYearList","onMonthNamesChange","onSubmitLabelChange","textContent","onCancelLabelChange","onInitialMonthChange","currYear","onInitialYearChange","currMonth","includes","getValidity","isRequired","valueMissing","isValidTimestamp","isNaN","isNumber","getTimestampParts","formatTimestamp","format","parts","DD","String","padStart","MM","YYYY","replace","newDate","isSupportedKey","key","getKeyMap","shiftKey","metaKey","refresh","toLowerCase","tab","shiftTab","backspace","arrowUp","arrowDown","arrowLeft","arrowRight","pageUp","pageDown","shiftArrowUp","shiftArrowDown","shiftPageUp","shiftPageDown","getCurrentTime","toString","getCurrentDay","overrideConstructedStylesheet","cs","CSSStyleSheet","insertRule","adoptedStyleSheets","calendarIcon","arrowRightIcon","arrowLeftIcon","useHostExternalPadding","inputOutlineWidth","inputOutlineOffset","resetInputContainer","name","resetInputField","resetInputCursor","resetInputPlaceholder","resetInputFieldDefaultWidth","resetInputReadonlyStyle","resetInputFieldInvalidBackgroundColor","resetInputOverrides","inputValueTextColor","inputHeight","inputBackgroundColor","resetInputAutoFill","resetInitialHeight","resetInputElement","resetInputFieldUnderlayingBorder","resetInputLabelPosition","inputFloatingLabelStyle"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[6724],{98538:(t,e,s)=>{s.d(e,{S:()=>h,T:()=>a});var i=s(88961),n=s(72270),r=s(63200),l=s(25964),o=s(31004);const a=(0,l.xE)("icon");class c extends((0,n.qu)({componentName:a,baseSelector:"slot"})){static get observedAttributes(){return["src"]}#t;constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n\t\t<slot></slot>\n\t",(0,l.fz)("\n\t\t\t:host > slot {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n ",this)}init(){super.init?.(),this.toggleVisibility(this.src)}toggleVisibility(t){this.style.display=t?"":"none"}get src(){return this.getAttribute("src")}updateFillColor(t){[t,...t.querySelectorAll("*[fill]")].forEach((t=>{t.setAttribute("fill",`var(${h.cssVarList.fill}, ${t.getAttribute("fill")||"''"})`)}))}attributeChangedCallback(t,e,s){super.attributeChangedCallback?.(t,e,s),e!==s&&"src"===t&&(this.toggleVisibility(s),(0,o.w)(this.src).then((t=>{if(this.innerHTML="",t){const e=t.cloneNode(!0);this.updateFillColor(e),this.appendChild(e)}})))}}const h=(0,r.Zz)((0,i.RF)({mappings:{fill:{}}}),i.VO,i.tQ)(c)},31004:(t,e,s)=>{s.d(e,{w:()=>r});var i=s(25414);const n=t=>{const e=i.A.sanitize(t,{USE_PROFILES:{svg:!0,svgFilters:!0}});return(new DOMParser).parseFromString(e,"image/svg+xml").querySelector("svg")},r=async t=>{try{let e;if((t=>t.startsWith("data:image/svg+xml;base64,"))(t)){const s=atob(t.slice(26));e=n(s)}else if("svg"===(t=>{const e=t.match(/\.([0-9a-z]+)(?:[\\?#]|$)/i);return e?e[1]:null})(t)){const s=await fetch(t),i=await s.text();e=n(i)}else e=(t=>{const e=document.createElement("img");return e.setAttribute("src",t),e})(t);return e.style.setProperty("max-width","100%"),e.style.setProperty("max-height","100%"),e}catch{return null}}},56737:(t,e,s)=>{s.r(e),s.d(e,{IconClass:()=>i.S,componentName:()=>i.T});var i=s(98538);customElements.define(i.T,i.S)}}]);
2
+ //# sourceMappingURL=descope-icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descope-icon.js","mappings":"6NAQO,MAAMA,GAAgB,QAAiB,QAE9C,MAAMC,WAAgB,QAAgB,CAAED,gBAAeE,aAAc,UACnE,6BAAWC,GACT,MAAO,CAAC,MACV,CAEA,GAEA,WAAAC,GACEC,QAEAC,KAAKC,aAAa,CAAEC,KAAM,SAAUC,UAAY,2BAIhD,QACE,+NAYAH,KAEJ,CAEA,IAAAI,GACEL,MAAMK,SACNJ,KAAKK,iBAAiBL,KAAKM,IAC7B,CAEA,gBAAAD,CAAiBE,GACfP,KAAKQ,MAAMC,QAAUF,EAAY,GAAK,MACxC,CAEA,OAAID,GACF,OAAON,KAAKU,aAAa,MAC3B,CAKA,eAAAC,CAAgBC,GAEY,CAACA,KAASA,EAAKC,iBAAiB,YAExCC,SAASC,IACzBA,EAAIC,aACF,OACA,OAAOC,EAAUC,WAAWC,SAASJ,EAAIL,aAAa,SAAW,QAClE,GAEL,CAEA,wBAAAU,CAAyBC,EAAUC,EAAUC,GAC3CxB,MAAMqB,2BAA2BC,EAAUC,EAAUC,GAEjDD,IAAaC,GAEA,QAAbF,IACFrB,KAAKK,iBAAiBkB,IAEtB,OAAWvB,KAAKM,KAAKkB,MAAMC,IAEzB,GADAzB,KAAKG,UAAY,GACbsB,EAAK,CACP,MAAMC,EAAaD,EAAIE,WAAU,GACjC3B,KAAKW,gBAAgBe,GACrB1B,KAAK4B,YAAYF,EACnB,KAGN,EAGK,MAAMT,GAAY,SACvB,QAAiB,CACfY,SAAU,CACRV,KAAM,CAAC,KAGX,KACA,KAPuB,CAQvBxB,E,kDC/FF,MAeMmC,EAAgBC,IAEpB,MAAMC,EAAQ,IAAUC,SAASF,EAAM,CAAEG,aAAc,CAAEC,KAAK,EAAMC,YAAY,KAIhF,OAFe,IAAIC,WACAC,gBAAgBN,EAAO,iBAAiBO,cAAc,MAC/D,EAGCC,EAAaC,MAAOnC,IAC/B,IACE,IAAIS,EACJ,GApBgB,CAACT,GAAQA,EAAIoC,WAFZ,8BAsBbC,CAAYrC,GAAM,CAEpB,MAAMsC,EAASC,KAAKvC,EAAIwC,MAAMC,KAC9BhC,EAAMe,EAAac,EACrB,MAAO,GAA8B,QA/BhB,CAACI,IACxB,MAAMC,EAAQD,EAAKC,MAAM,8BACzB,OAAOA,EAAQA,EAAM,GAAK,IAAI,EA6BjBC,CAAiB5C,GAAgB,CAE1C,MAAM6C,QAAmBC,MAAM9C,GACzByB,QAAaoB,EAAWpB,OAC9BhB,EAAMe,EAAaC,EACrB,MAEEhB,EA7Be,CAACT,IACpB,MAAMS,EAAMsC,SAASC,cAAc,OAEnC,OADAvC,EAAIC,aAAa,MAAOV,GACjBS,CAAG,EA0BAwC,CAAajD,GAMrB,OAHAS,EAAIP,MAAMgD,YAAY,YAAa,QACnCzC,EAAIP,MAAMgD,YAAY,aAAc,QAE7BzC,CACT,CAAE,MACA,OAAO,IACT,E,yFC/CF0C,eAAeC,OAAO,IAAe,I","sources":["webpack://@descope/web-components-ui/../components/descope-icon/src/component/IconClass.js","webpack://@descope/web-components-ui/../components/descope-icon/src/component/helpers.js","webpack://@descope/web-components-ui/../components/descope-icon/src/component/index.js"],"sourcesContent":["/* eslint-disable no-use-before-define */\nimport { createStyleMixin, draggableMixin, componentNameValidationMixin } from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { createIcon } from './helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('icon');\n\nclass RawIcon extends createBaseClass({ componentName, baseSelector: 'slot' }) {\n static get observedAttributes() {\n return ['src'];\n }\n\n #icon;\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<slot></slot>\n\t`;\n\n injectStyle(\n `\n\t\t\t:host > slot {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n `,\n this\n );\n }\n\n init() {\n super.init?.();\n this.toggleVisibility(this.src);\n }\n\n toggleVisibility(isVisible) {\n this.style.display = isVisible ? '' : 'none';\n }\n\n get src() {\n return this.getAttribute('src');\n }\n\n // in order to fill an SVG with `currentColor` override all of its `fill` and `path` nodes\n // with the value from the `st-fill` attribute\n // eslint-disable-next-line class-methods-use-this\n updateFillColor(node) {\n // set fill to root node and all its relevant selectors\n const elementsToReplace = [node, ...node.querySelectorAll('*[fill]')];\n\n elementsToReplace.forEach((ele) => {\n ele.setAttribute(\n 'fill',\n `var(${IconClass.cssVarList.fill}, ${ele.getAttribute('fill') || \"''\"})`\n );\n });\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue === newValue) return;\n\n if (attrName === 'src') {\n this.toggleVisibility(newValue);\n\n createIcon(this.src).then((res) => {\n this.innerHTML = '';\n if (res) {\n const clonedNode = res.cloneNode(true);\n this.updateFillColor(clonedNode);\n this.appendChild(clonedNode);\n }\n });\n }\n }\n}\n\nexport const IconClass = compose(\n createStyleMixin({\n mappings: {\n fill: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawIcon);\n","import DOMPurify from 'dompurify';\n\nconst getFileExtension = (path) => {\n const match = path.match(/\\.([0-9a-z]+)(?:[\\\\?#]|$)/i);\n return match ? match[1] : null;\n};\n\nconst base64Prefix = 'data:image/svg+xml;base64,';\n\nconst isBase64Svg = (src) => src.startsWith(base64Prefix);\n\nconst createImgEle = (src) => {\n const ele = document.createElement('img');\n ele.setAttribute('src', src);\n return ele;\n};\n\nconst createSvgEle = (text) => {\n // we want to purify the SVG to avoid XSS attacks\n const clean = DOMPurify.sanitize(text, { USE_PROFILES: { svg: true, svgFilters: true } });\n\n const parser = new DOMParser();\n const ele = parser.parseFromString(clean, 'image/svg+xml').querySelector('svg');\n return ele;\n};\n\nexport const createIcon = async (src) => {\n try {\n let ele;\n if (isBase64Svg(src)) {\n // handle base64 source\n const svgXml = atob(src.slice(base64Prefix.length));\n ele = createSvgEle(svgXml);\n } else if (getFileExtension(src) === 'svg') {\n // handle urls\n const fetchedSrc = await fetch(src);\n const text = await fetchedSrc.text();\n ele = createSvgEle(text);\n } else {\n // handle binary\n ele = createImgEle(src);\n }\n\n ele.style.setProperty('max-width', '100%');\n ele.style.setProperty('max-height', '100%');\n\n return ele;\n } catch {\n return null;\n }\n};\n","import { componentName, IconClass } from './IconClass';\n\ncustomElements.define(componentName, IconClass);\n\nexport { IconClass, componentName };\n"],"names":["componentName","RawIcon","baseSelector","observedAttributes","constructor","super","this","attachShadow","mode","innerHTML","init","toggleVisibility","src","isVisible","style","display","getAttribute","updateFillColor","node","querySelectorAll","forEach","ele","setAttribute","IconClass","cssVarList","fill","attributeChangedCallback","attrName","oldValue","newValue","then","res","clonedNode","cloneNode","appendChild","mappings","createSvgEle","text","clean","sanitize","USE_PROFILES","svg","svgFilters","DOMParser","parseFromString","querySelector","createIcon","async","startsWith","isBase64Svg","svgXml","atob","slice","base64Prefix","path","match","getFileExtension","fetchedSrc","fetch","document","createElement","createImgEle","setProperty","customElements","define"],"sourceRoot":""}