@descope/web-components-ui 2.2.24 → 2.2.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cjs/index.cjs.js +1 -0
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/index.esm.js +1 -0
- package/dist/index.esm.js.map +1 -1
- package/dist/umd/1408.js +2 -2
- package/dist/umd/1453.js +177 -0
- package/dist/umd/{1995.js.LICENSE.txt → 1453.js.LICENSE.txt} +6 -0
- package/dist/umd/1453.js.map +1 -0
- package/dist/umd/1899.js +2 -2
- package/dist/umd/2562.js +3 -0
- package/dist/umd/2562.js.map +1 -0
- package/dist/umd/3620.js +3 -3
- package/dist/umd/4518.js +3 -3
- package/dist/umd/4550.js +2 -2
- package/dist/umd/4623.js +1 -1
- package/dist/umd/4914.js +1 -1
- package/dist/umd/4914.js.map +1 -1
- package/dist/umd/5260.js +2 -2
- package/dist/umd/5263.js +498 -0
- package/dist/umd/5263.js.LICENSE.txt +17 -0
- package/dist/umd/5263.js.map +1 -0
- package/dist/umd/5648.js +1 -1
- package/dist/umd/5966.js +125 -0
- package/dist/umd/5966.js.map +1 -0
- package/dist/umd/6477.js +3 -3
- package/dist/umd/7291.js +2 -2
- package/dist/umd/7387.js +144 -0
- package/dist/umd/{6419.js.LICENSE.txt → 7387.js.LICENSE.txt} +8 -2
- package/dist/umd/7387.js.map +1 -0
- package/dist/umd/7774.js +3 -3
- package/dist/umd/7939.js +1 -1
- package/dist/umd/8202.js +82 -0
- package/dist/umd/{descope-apps-list.js.LICENSE.txt → 8202.js.LICENSE.txt} +0 -6
- package/dist/umd/8202.js.map +1 -0
- package/dist/umd/8983.js +1 -1
- package/dist/umd/9117.js +3 -3
- package/dist/umd/9970.js +1 -1
- package/dist/umd/DescopeDev.js +1 -1
- package/dist/umd/DescopeDev.js.map +1 -1
- package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js +2 -2
- package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js.map +1 -1
- package/dist/umd/descope-apps-list.js +1 -17
- package/dist/umd/descope-apps-list.js.map +1 -1
- package/dist/umd/descope-avatar.js +161 -2
- package/dist/umd/descope-avatar.js.LICENSE.txt +6 -0
- package/dist/umd/descope-avatar.js.map +1 -1
- package/dist/umd/descope-button.js +2 -2
- package/dist/umd/descope-button.js.map +1 -1
- package/dist/umd/descope-collapsible-container.js +1 -1
- package/dist/umd/descope-collapsible-container.js.map +1 -1
- package/dist/umd/descope-combo-box.js +2 -2
- package/dist/umd/descope-date-field-descope-calendar-index-js.js +1 -1
- package/dist/umd/descope-date-field-descope-calendar-index-js.js.map +1 -1
- package/dist/umd/descope-date-field-index-js.js +1 -1
- package/dist/umd/descope-email-field-index-js.js +1 -1
- package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js +1 -1
- package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js.map +1 -1
- package/dist/umd/descope-grid-descope-grid-item-details-column-index-js.js +1 -1
- package/dist/umd/descope-grid-descope-grid-item-details-column-index-js.js.map +1 -1
- package/dist/umd/descope-grid-descope-grid-selection-column-index-js.js +1 -1
- package/dist/umd/descope-grid-descope-grid-selection-column-index-js.js.map +1 -1
- package/dist/umd/descope-grid-descope-grid-text-column-index-js.js +1 -1
- package/dist/umd/descope-grid-descope-grid-text-column-index-js.js.map +1 -1
- package/dist/umd/descope-icon.js +1 -1
- package/dist/umd/descope-icon.js.map +1 -1
- package/dist/umd/descope-outbound-app-button.js +2 -2
- package/dist/umd/descope-outbound-app-button.js.map +1 -1
- package/dist/umd/descope-outbound-apps.js +1 -338
- package/dist/umd/descope-outbound-apps.js.map +1 -1
- package/dist/umd/descope-passcode-index-js.js +1 -1
- package/dist/umd/descope-security-questions-verify-index-js.js +1 -1
- package/dist/umd/descope-text-field-index-js.js +1 -1
- package/dist/umd/descope-third-party-app-logo-index-js.js +1 -1
- package/dist/umd/descope-third-party-app-logo-index-js.js.map +1 -1
- package/dist/umd/descope-timer-button.js +2 -2
- package/dist/umd/descope-timer-button.js.map +1 -1
- package/dist/umd/descope-timer.js +1 -1
- package/dist/umd/descope-timer.js.map +1 -1
- package/dist/umd/descope-tooltip.js +2 -1
- package/dist/umd/descope-tooltip.js.LICENSE.txt +11 -0
- package/dist/umd/descope-tooltip.js.map +1 -1
- package/dist/umd/descope-trusted-devices.js +1 -1
- package/dist/umd/descope-trusted-devices.js.map +1 -1
- package/dist/umd/descope-upload-file-index-js.js +2 -2
- package/dist/umd/descope-upload-file-index-js.js.map +1 -1
- package/dist/umd/descope-user-attribute-index-js.js +2 -2
- package/dist/umd/descope-user-attribute-index-js.js.map +1 -1
- package/dist/umd/descope-user-auth-method-index-js.js +2 -2
- package/dist/umd/descope-user-auth-method-index-js.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/dist/umd/mapping-fields-descope-mappings-field-index-js.js +1 -1
- package/dist/umd/mapping-fields-descope-mappings-field-index-js.js.map +1 -1
- package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js +1 -1
- package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js.map +1 -1
- package/dist/umd/phone-fields-descope-phone-input-box-field-descope-phone-input-box-internal-index-js.js +1 -1
- package/dist/umd/phone-fields-descope-phone-input-box-field-index-js.js +1 -1
- package/package.json +29 -29
- package/dist/umd/1519.js +0 -203
- package/dist/umd/1519.js.LICENSE.txt +0 -51
- package/dist/umd/1519.js.map +0 -1
- package/dist/umd/1995.js +0 -241
- package/dist/umd/1995.js.map +0 -1
- package/dist/umd/6419.js +0 -82
- package/dist/umd/6419.js.map +0 -1
- package/dist/umd/676.js +0 -3
- package/dist/umd/676.js.map +0 -1
- package/dist/umd/8618.js +0 -125
- package/dist/umd/8618.js.map +0 -1
- package/dist/umd/descope-outbound-apps.js.LICENSE.txt +0 -5
- /package/dist/umd/{676.js.LICENSE.txt → 2562.js.LICENSE.txt} +0 -0
- /package/dist/umd/{8618.js.LICENSE.txt → 5966.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descope-date-field-descope-calendar-index-js.js","mappings":"6LASO,MAAMA,EAAuB,IAAIC,KACtC,QACE,KACA,KACA,KACA,KAJF,EAKE,UAAmBA,G,qGCHhB,MAAMC,GAAgB,QAAiB,SAExCC,EAAW,CAAC,MAAO,YAEzB,MAAMC,WAAiB,QAAgB,CACrCF,gBACAG,aAAc,UAEd,6BAAWC,GACT,OAAOH,CACT,CAEA,WAAAI,GACEC,QAEAC,KAAKC,aAAa,CAAEC,KAAM,SAAUC,UAAY,2BAIhD,QACE,6UAoBAH,KAEJ,CAEA,IAAAI,GACEL,MAAMK,SACNJ,KAAKK,iBAAiBL,KAAKM,OAC7B,CAEA,aAAAC,GACEP,KAAKQ,aACP,CAEA,gBAAAH,CAAiBI,GACXA,EACFT,KAAKU,UAAUC,OAAO,UAEtBX,KAAKU,UAAUE,IAAI,SAEvB,CAEA,WAAIC,GACF,OAAOb,KAAKc,aAAa,QAAU,EACrC,CAEA,aAAIC,GACF,OAAOf,KAAKc,aAAa,MAC3B,CAEA,YAAIE,GACF,OAAOhB,KAAKc,aAAa,OAAOd,KAAKiB,mBACvC,CAEA,UAAIX,GACF,OAAON,KAAKgB,UAAYhB,KAAKe,SAC/B,CAKA,eAAAG,CAAgBC,GAEY,CAACA,KAASA,EAAKC,iBAAiB,YAExCC,QAASC,IACzBA,EAAIC,aACF,OACA,OAAOC,EAAWC,WAAWC,SAASJ,EAAIR,aAAa,SAAW,UAGxE,CAEA,WAAAN,GACER,KAAKK,iBAAiBL,KAAKM,SAE3B,OAAYN,KAAKM,OAAQN,KAAKa,SAASc,KAAMC,IAC3C5B,KAAKG,UAAY,GACbyB,IACF5B,KAAKkB,gBAAgBU,GACrB5B,KAAK6B,YAAYD,KAGvB,CAGA,YAAAE,CAAaC,GACX,MAAMC,EAAShC,KAAKc,aAAaiB,GACjC,OAAO/B,KAAKM,SAAW0B,CACzB,CAEA,wBAAAC,CAAyBC,EAAUC,EAAUC,GAC3CrC,MAAMkC,2BAA2BC,EAAUC,EAAUC,GAEjDD,IAAaC,GAEbpC,KAAK8B,aAAaI,IACpBlC,KAAKQ,aAET,EAGK,MAAMgB,GAAa,SACxB,QAAiB,CACfa,SAAU,CACRX,KAAM,CAAC,EACPY,OAAQ,CAAEC,SAAU,IAAM,SAC1BC,MAAO,CAAED,SAAU,IAAM,YAG7B,KACA,KATwB,CAUxB5C,E,mCC/IK,MAAM8C,EAAkBC,GAC7B,cAAkCA,EAChC,aAAIC,GACF,MAAwC,SAAjC3C,KAAKc,aAAa,UAC3B,CAEA,KAAA8B,GACE5C,KAAK2C,WAAa5C,MAAM6C,OAC1B,E,mCCPG,MAAMC,EAAU,CAACC,EAAMC,KAC5B,GAAoB,iBAATD,EACT,OAAO,IAAIE,KAAKF,GAElB,GAAoB,iBAATA,EAAmB,CAC5B,MAAMG,EAAI,IAAID,KAAKF,EAAKI,QAAQ,KAAM,MACtC,OAAIH,EACK,IAAIC,KACTA,KAAKG,IACHF,EAAEG,cACFH,EAAEI,WACFJ,EAAEK,UACFL,EAAEM,WACFN,EAAEO,aACFP,EAAEQ,aACFR,EAAES,oBAID,IAAIV,KAAKC,EAClB,CACA,OAAO,IAAID,K,kDCpBb,MAgBMW,EAAgBC,IAEpB,MAAMC,EAAQ,IAAUC,SAASF,EAAM,CACrCG,aAAc,CAAEC,KAAK,EAAMC,YAAY,GAEvCC,SAAU,CAAC,SAEXC,YAAa,CAAC,UAOhB,OAJe,IAAIC,WAEhBC,gBAAgBR,EAAO,iBACvBS,cAAc,QAINC,EAAcC,MAAOzC,EAAKlB,KACrC,IACE,IAAIS,EACJ,GA7BgB,CAACS,GAAQA,EAAI0C,WAFZ,8BA+BbC,CAAY3C,GAAM,CAEpB,MAAM4C,EAASC,KAAK7C,EAAI8C,MAAMC,KAC9BxD,EAAMqC,EAAagB,EACrB,MAAO,GAA8B,QAxChB,CAACI,IACxB,MAAMC,EAAQD,EAAKC,MAAM,8BACzB,OAAOA,EAAQA,EAAM,GAAK,MAsCbC,CAAiBlD,GAAgB,CAE1C,MAAMmD,QAAmBC,MAAMpD,GACzB6B,QAAasB,EAAWtB,OAC9BtC,EAAMqC,EAAaC,EACrB,MAEEtC,EAtCe,EAACS,EAAKlB,KACzB,MAAMS,EAAM8D,SAASC,cAAc,OAGnC,OAFA/D,EAAIC,aAAa,MAAOQ,GACxBT,EAAIC,aAAa,MAAOV,GACjBS,GAkCGgE,CAAavD,EAAKlB,GAM1B,OAHAS,EAAIiE,MAAMC,YAAY,YAAa,QACnClE,EAAIiE,MAAMC,YAAY,aAAc,QAE7BlE,CACT,CAAE,MACA,OAAO,IACT,E,sGC/CK,MAAM7B,GAAgB,QAAiB,WAsCxC,KAAEgG,EAAI,MAAEC,EAAK,YAAEC,GAAgB,CACnCF,KAAM,CAAElD,SAAU,IAAM,SACxBmD,MAAO,CAAEnD,SAAU,iBACnBoD,YAAa,CAAEpD,SAAU,IAAM,4BAGjC,IAAIqD,EAEG,MAAMC,GAAc,SACzB,QAAiB,CACfxD,SAAU,CACRyD,UAAW,CAAEC,SAAU,SACvBC,WAAY,CAAED,SAAU,UACxBE,cAAe,IAAKR,EAAMM,SAAU,aACpCG,SAAU,CAAC,EACXC,WAAY,CAAC,EAEbC,OAAQ,CAAC,EACTC,gBAAiB,CAAC,EAElBC,cAAe,CAAC,EAChBC,aAAc,CAAC,EACfC,aAAc,CAAC,EACfC,aAAc,CAAC,EAEfC,aAAc,CAAC,EACfC,YAAa,CAAC,EACdC,YAAa,CAAC,EACdC,YAAa,CAAC,EAEdC,gBAAiB,CAAC,CAAEf,SAAU,eAAiB,CAAEA,SAAU,mBAC3DgB,kBAAmB,CACjB,CAAEhB,SAAU,gBAAiBiB,SAAU,WACvC,CAAEjB,SAAU,eAAgBiB,SAAU,YAGxCC,eAAgB,CAAElB,SAAU,SAC5BmB,UAAW,CACf3E,SAAU,IAAM,eAChBwD,SAAU,IAAUtE,WAAWC,MAE3ByF,oBAAqB,IAAKzB,EAAOK,SAAU,mBAC3CqB,aAAc,IAAK1B,EAAOK,SAAU,OACpCsB,UAAW,IAAK3B,EAAOK,SAAU,kBAAmBiB,SAAU,UAE9DM,SAAU,CACR,IAAK3B,EAAaI,SAAU,SAC5B,IAAKJ,EAAaI,SAAU,cAIlC,IACA,KACA,KA7CyB,EA+CzB,QAAY,CACVwB,MAAO,CAAC,GAAI,SAAU,QAAS,UAC/BC,eAAgB,gBAChBjC,MAAO,IAAM,qjBAGZK,2GAGmBC,EAAYpE,WAAWgF,uBAAuBZ,EAAYpE,WAAW6E,qFAGxET,EAAYpE,WAAWqE,yEAGrBD,EAAYpE,WAAWuE,qBAAqBH,EAAYpE,WAAWgF,uBAAuBZ,EAAYpE,WAAW6E,wGAGlHT,EAAYpE,WAAWqE,oBAAoBD,EAAYpE,WAAWgF,uBAAuBZ,EAAYpE,WAAW6E,uDAIlImB,iBAAkB,CAAC,WAAY,QAAS,SACxChI,oBAIE,MAAEiI,EAAK,SAAExB,GAAaL,EAAYpE,WACxCmE,EAAyB,mbAeV8B,iCACUxB,wCACCA,yCACCA,6BACZA,wBACCA,0N,oGCrJhByB,eAAeC,OAAO,IAAe,I,wJCA9B,MAAMC,EAAgBC,IAASC,OAAOC,MAAMD,OAAOD,IAE7CG,EAAYH,KAAUI,OAAOJ,GAAO,IAAIK,SAAWJ,OAAOC,MAAMD,OAAOD,IAEvEM,EAAqBC,IAChC,MAAMvF,GAAO,OAAQuF,GAIrB,MAAO,CAHMvF,EAAKM,cACJN,EAAKO,WAAa,EACpBP,EAAKQ,YAINgF,EAAc,CAACD,EAAOE,KACjC,MAAOC,EAAMC,EAAOC,GAAON,EAAkBC,GAEvCM,EAAQ,CACZC,GAAIV,OAAOQ,GAAKG,SAAS,EAAG,KAC5BC,GAAIZ,OAAOO,GAAOI,SAAS,EAAG,KAC9BE,KAAMb,OAAOM,IAGf,OAAOD,EAAOrF,QAAQ,cAAgB8B,GAAU2D,EAAM3D,KAG3CgE,EAAiB,KAAM,SAAUC,UACjC7F,EAAeiF,IAAU,OAAQA,GAAOjF,cAAc8F,WACtD7F,EAAYgF,KAAW,OAAQA,GAAOhF,WAAa,GAAG6F,WACtDC,EAAgB,KAAM,SAAU7F,UAMhC8F,EAAiC9H,IAC5C,MAAM+H,EAAK,IAAIC,cACfD,EAAGE,WAAW,mCACdjI,GAAKkI,YAAYC,oBAAoBC,KAAKL,IAG/BM,EAAkB,CAAC7B,EAAKS,KACnC,MAAMqB,EAAU9B,EAAIK,SACpB,OAAKyB,EACE,IAAQrB,GAAQjF,QAAQsG,GADV,MAIVC,EAAc,CAAC/G,EAAMgH,IAEZ,iBAAThH,EACFA,EAGLgH,EACK9G,KAAKG,IAAIL,EAAKM,cAAeN,EAAKO,WAAYP,EAAKQ,WAIrDR,EAAKmG,S,gJC3DP,MAAMc,EAAoB,CAAC,aAAc,aAAc,cAEjDC,EAAiBD,EAAkB,GAEnCE,EAAgB,aAEhBC,EAAc,IAEdC,EAAU,IAEVC,EAAS,CACpB,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAGWC,EAAW,CACtB,SACA,SACA,UACA,YACA,WACA,SACA,YAGWC,EAAgB,CAC3BC,MAAO,CAAEC,GAAI,QAASC,IAAK,EAAGC,IAAK,GAAIC,YAAa,MACpDC,IAAK,CAAEJ,GAAI,MAAOC,IAAK,EAAGC,IAAK,GAAIC,YAAa,MAChDE,KAAM,CAAEL,GAAI,OAAQC,IAAK,EAAGC,IAAK,KAAMC,YAAa,SAGzCG,EAAW,CACtBtC,KAAM,CAAEiC,IAAK,KAAMC,IAAK,OAGbK,EAAoB,OACpBC,EAAsB,SACtBC,EAAuB,QAEvBC,EAAuC,G,6DC9CpD,MAAMC,EAAW,CACfrC,GAAI,mBACJF,GAAI,4BACJG,KAAM,cA8BFqC,EAAgB7C,IACpB,MAAM8C,EA5Bc,CAAC9C,GAMd,IALSA,EACb+C,MAAM,MACNC,IAAKC,GAASL,EAASK,IACvBC,KAAK,UAwBQC,CAAcnD,GACxBoD,EApBiB,CAACpD,IACxB,MAAMqD,EAAQrD,EAAO+C,MAAM,MAC3B,OAAQtG,IACN,MAAM6G,EAAS,CAAC,EAIhB,OAHAD,EAAMvK,QAAQ,CAACmK,EAAMM,KACnBD,EAAOL,GAAQxG,EAAM8G,EAAQ,KAExB,CAACD,EAAO9C,KAAM8C,EAAO/C,GAAI+C,EAAOjD,MAatBmD,CAAiBxD,GAC9ByD,EAAS,IAAIC,OAAOZ,GAE1B,MAAO,CACLA,UACAa,SAAWpE,GAAQkE,EAAOG,KAAKrE,GAC/BxE,QAAUwE,GAfK,EAACA,EAAKkE,EAAQL,KAC/B,MAAM3G,EAAQgH,EAAOI,KAAKtE,GAC1B,IAAK9C,EAAO,OAAO,KACnB,MAAOwD,EAAMC,EAAOC,GAAOiD,EAAW3G,GACtC,OAAO,OAAQ,CAACwD,EAAMC,EAAOC,GAAK+C,KAAK,QAWnBY,CAAWvE,EAAKkE,EAAQL,KAIjCW,EAAUC,OAAOC,YAAY,KAAkBjB,IAAKkB,GAAM,CAACA,EAAGrB,EAAaqB,K,sDChDjF,MAAMC,EAAe,yxHAMfC,EAAiB,ieAKjBC,EAAgB,8d,iMCP7B,MAAMC,EAAiB,CAACC,EAAKC,IAC3BC,MAAMC,QAAQH,IAAQA,EAAII,SAAWH,GAASD,EAAIK,OAAOC,SAASF,SAAWH,EAiBzEM,EAAkB,EAAG3H,QAAO4H,SAAQC,cAAe,iDAE5CD,sBACEC,kBAEV7H,gBA8DQ8H,EAAmB,CAACC,EAAe,OAC9CA,EACGlC,IAAI,CAACmC,EAAM5B,IAAUuB,EAAgB,CAAE3H,MAAOgI,EAAMJ,OAAQxB,EAAQ,EAAGyB,SAAUG,KACjFjC,KAAK,IAEGkC,EAAgB,CAACC,EAAgBC,KAC5C,MAAOC,EAAaC,IAAgB,QAAkBF,IAC/CG,EAAcC,IAAiB,QAAkBL,GACxD,OAAOI,IAAiBF,GAAeG,IAAkBF,GA+B9CG,EAAe,CAACC,EAAOC,EAAUC,KAC5CF,EAAMG,iBAAiB,QAASF,GAChCD,EAAMG,iBAAiB,WAAYD,GAC5BF,G,0BC5FF,MAAM1O,GAAgB,QAAiB,YAExC8O,EAAgB,CACpB,gBACA,eACA,gBACA,cACA,kBACA,oBACA,uBACA,oBACA,WACA,cAGIC,EAAkB,CAAC,wBAAyB,yBAE5CC,GAAiB,EAAAlP,EAAA,GAAqB,CAAEE,gBAAeG,aAAc,SA8crE,SACJ8O,EAAQ,IACRhG,EAAG,SACHiG,EAAQ,WACRC,EAAU,YACVC,EAAW,YACXC,EAAW,QACXC,EAAO,OACPC,EAAM,gBACNC,EAAe,UACfC,EAAS,QACTC,EAAO,QACPC,EAAO,WACPC,EAAU,WACVC,EAAU,UACVC,EAAS,WACTC,GACE,CACFd,SAAU,CAAEnM,SAAU,IAAM,aAC5ByM,OAAQ,CAAEzM,SAAU,IAAM,gBAC1B0M,gBAAiB,CAAE1M,SAAU,IAAM,kCACnC2M,UAAW,CAAE3M,SAAU,IAAM,mBAC7BmG,IAAK,CAAEnG,SAAU,IAAM,QACvBoM,SAAU,CAAEpM,SAAU,IAAM,cAC5BqM,WAAY,CAAErM,SAAU,IAAM,qCAC9BsM,YAAa,CAAEtM,SAAU,IAAM,kCAC/BuM,YAAa,CAAEvM,SAAU,IAAM,yCAC/BwM,QAAS,CAAExM,SAAU,IAAM,YAC3B4M,QAAS,CAAE5M,SAAU,IAAM,aAC3B6M,QAAS,CAAE7M,SAAU,IAAM,aAC3B8M,WAAY,CAAE9M,SAAU,IAAM,8CAC9B+M,WAAY,CAAE/M,SAAU,IAAM,8CAC9BgN,UAAW,CAAEhN,SAAU,IAAM,eAC7BiN,WAAY,CAAEjN,SAAU,IAAM,iBAGnBkN,GAAgB,SAC3B,QAAiB,CAAEC,uBAAuB,QAAiB,oBAC3D,QAAiB,CACfrN,SAAU,CACR6D,SAAU,CAAC,EACXC,WAAY,CAAC,EACbL,UAAW,CACT,CAAEvD,SAAU,IAAM,QAASwD,SAAU,SACrC,CAAExD,SAAU,QAASwD,SAAU,UAEjCE,cAAe,CAAEF,SAAU,aAE3B4J,sBAAuB,CACrB,IAAKX,EAAQjJ,SAAU,eACvB,IAAKiJ,EAAQjJ,SAAU,mBAEzB6J,yBAA0B,CACxB,IAAKZ,EAAQjJ,SAAU,iBACvB,IAAKiJ,EAAQjJ,SAAU,iBAEzB8J,gBAAiB,IAAKb,EAAQjJ,SAAU,mBACxC+J,UAAW,IAAKd,EAAQjJ,SAAU,OAClCgK,mBAAoB,IAAKd,EAAiBlJ,SAAU,OAEpDiK,yBAA0B,CACxB,IAAKd,EAAWnJ,SAAU,eAC1B,IAAKmJ,EAAWnJ,SAAU,mBAE5BkK,2BAA4B,CAC1B,IAAKf,EAAWnJ,SAAU,iBAC1B,IAAKmJ,EAAWnJ,SAAU,iBAE5BmK,mBAAoB,IAAKhB,EAAWnJ,SAAU,mBAC9CoK,aAAc,IAAKjB,EAAWnJ,SAAU,OAExCqK,gBAAiB,IAAKpB,EAAQjJ,SAAU,iBAExCsK,gBAAiB,CACf,IAAK3B,EAAU3I,SAAU,kBACzB,IAAK2I,EAAU3I,SAAU,iBACzB,IAAK2I,EAAU3I,SAAU,iBAG3BuK,qBAAsB,IAAKtB,EAAQjJ,SAAU,uBAC7CwK,qBAAsB,IAAKvB,EAAQjJ,SAAU,uBAC7CyK,qBAAsB,IAAKxB,EAAQjJ,SAAU,uBAE7C0K,gBAAiB,IAAK1B,EAAShJ,SAAU,aACzC2K,kBAAmB,IAAK3B,EAAShJ,SAAU,eAE3C4K,sBAAuB,IAClB/B,EACH7I,SAAU,gBAEZ6K,sBAAuB,IAClBhC,EACH7I,SAAU,gBAEZ8K,sBAAuB,IAClBjC,EACH7I,SAAU,gBAGZ+K,UAAW,IAAKnC,EAAU5I,SAAU,UACpCgL,QAAS,CACP,IAAKrI,EAAK3C,SAAU,UACpB,IAAK2C,EAAK3C,SAAU,UAEtBiL,WAAY,IAAKtI,EAAK3C,SAAU,WAChCkL,UAAW,IAAKvI,EAAK3C,SAAU,iBAC/BmL,aAAc,IAAKxI,EAAK3C,SAAU,cAClCoL,cAAe,IAAKzI,EAAK3C,SAAU,UACnCqL,aAAc,IAAK1I,EAAK3C,SAAU,SAClCsL,cAAe,IAAK3I,EAAK3C,SAAU,eACnCuL,mBAAoB,IAAK5I,EAAK3C,SAAU,oBACxCwL,UAAW,IAAK7I,EAAK3C,SAAU,UAC/ByL,YAAa,IAAK9I,EAAK3C,SAAU,aAEjC0L,wBAAyB,CACvBlP,SAAU,IAAM,aAChBwD,SAAU,oBAGZ2L,sBAAuB,IAClB7C,EACH9I,SAAU,SAEZ4L,2BAA4B,IACvB9C,EACH9I,SAAU,oBAEZ6L,sBAAuB,IAClB9C,EACH/I,SAAU,SAGZ8L,eAAgB,IAAKtC,EAAWxJ,SAAU,SAC1C+L,gBAAiB,IAAKtC,EAAYzJ,SAAU,SAE5CgM,cAAe,CACb,IAAK5C,EAASpJ,SAAU,SACxB,IAAKoJ,EAASpJ,SAAU,UACxB,IAAKqJ,EAASrJ,SAAU,SACxB,IAAKqJ,EAASrJ,SAAU,WAE1BiM,gBAAiB,CACf,IAAK7C,EAASpJ,SAAU,UACxB,IAAKqJ,EAASrJ,SAAU,WAE1BkM,kBAAmB,CACjB,IAAK5C,EAAYtJ,SAAU,aAC3B,IAAKuJ,EAAYvJ,SAAU,cAE7BmM,iBAAkB,CAChB,IAAK/C,EAASpJ,SAAU,WACxB,IAAKqJ,EAASrJ,SAAU,eAI9B,KACA,KAxH2B,CAhf7B,cAA0B0I,EACxB,6BAAW5O,GACT,MAAO,GAAGsS,OAAO1D,EAAe5O,oBAAsB,GAAI0O,EAAeC,EAC3E,CAGA4D,QAGA/J,MAEA,WAAAvI,GACEC,QAEAC,KAAKC,aAAa,CAAEC,KAAM,SAAUC,UAAY,mgBAiBhD,QACE,61BA4CI0F,EAAA,EAAYpE,WAAWsF,kCACvBlB,EAAA,EAAYpE,WAAWqF,gCACvBjB,EAAA,EAAYpE,WAAWgF,mIAQzB,oBAEFzG,KAEJ,CAEA,SAAIqS,CAAMvK,GACR,IAAKA,EAAK,OAEV,MAAMO,GAAQ,OAAQP,GAAKmB,WAEtB,QAAaZ,IAAUA,IAAUrI,KAAKqI,QAI3CrI,KAAKqI,MAAQA,EAEbrI,KAAKsS,iBACP,CAEA,SAAID,GACF,OAAOrS,KAAKqI,OAAQ,QAAYrI,KAAKqI,MAAO,MAAiB,EAC/D,CAEA,kBAAIkK,GACF,OAAO5E,EAAc3N,KAAKoS,QAASpS,KAAKqI,MAC1C,CAEA,eAAImK,GACF,OAAO7E,GAAc,UAAkB3N,KAAKoS,QAC9C,CAEA,cAAIK,GACF,MD3C+B,CAACC,IAClC,MAAMC,EAAWD,GAASpH,MAAM,KAChC,OAAOuB,EAAe8F,EAAU,IAAMA,EAAW,MCyCxCC,CAAoB5S,KAAKc,aAAa,mBAC/C,CAEA,gBAAI+R,GACF,MD1CiC,CAACH,IACpC,MAAMI,EAAmBJ,GAASpH,QAAQ,KAE1C,OADsBuB,EAAeiG,EAAkB,GAChCA,EAAmB,MCuCjCC,CAAsB/S,KAAKc,aAAa,qBACjD,CAEA,gBAAIkS,GACF,QAAShT,KAAKuP,UAAU8C,KAC1B,CAEA,iBAAIY,GACF,QAASjT,KAAKwP,WAAW6C,KAC3B,CAEA,cAAIa,GACF,MAAMC,EAAQnT,KAAKc,aAAa,gBAAgBwK,MAAM,KAEtD,GAAsB,IAAlB6H,GAAOjG,OAAc,CACvB,MAAOkG,EAAOC,GAAOF,EAAM5H,IAAIxD,QAC/B,GAAIqL,GAASC,EAAK,MAAO,CAACD,EAAOC,EACnC,CAEA,MAAMC,GAAc,SAAUlQ,cAE9B,MAAO,CAACkQ,EAAaA,EAAc,KACrC,CAEA,IAAAlT,GACEL,MAAMK,SACNJ,KAAKuT,eACLvT,KAAKsS,gBACP,CAEA,YAAAiB,GACEvT,KAAK0O,SAAW1O,KAAKwJ,WAAWlF,cAAc,aAE9CtE,KAAKwT,WAAaxT,KAAKwJ,WAAWlF,cAAc,aAChDtE,KAAKyT,WAAazT,KAAKwJ,WAAWlF,cAAc,aAChDtE,KAAK0T,aAAe1T,KAAKwJ,WAAWlF,cAAc,kBAClDtE,KAAK2T,aAAe3T,KAAKwJ,WAAWlF,cAAc,kBAElDtE,KAAK4T,aACL5T,KAAK6T,UAEL7T,KAAKsO,iBAAiB,cAAe,IAAMtO,KAAK0T,aAAaI,gBAAgB,aAM7E9T,KAAK0T,aAAalK,WAAWlF,cAAc,iBAAiB/C,aAAa,WAAY,OACvF,CAEA,UAAAqS,GACE,MAAMtS,EDpIkB,MAC1B,MAAMA,EAAM8D,SAASC,cAAc,QAwBnC,OAtBA/D,EAAInB,UAAY,yLAQZqN,2SAcGlM,GC2GOyS,CAAa/T,KAAKyS,WAAYzS,KAAKkT,YAC/ClT,KAAKwJ,WAAWlF,cAAc,cAAczC,YAAYP,GAExDtB,KAAKwP,WAAatB,EAChBlO,KAAKwJ,WAAWlF,cAAc,gBAC9BtE,KAAKgU,cAAcC,KAAKjU,MACxBA,KAAKkU,iBAAiBD,KAAKjU,OAG7BA,KAAKuP,UAAYrB,EACflO,KAAKwJ,WAAWlF,cAAc,eAC9BtE,KAAKmU,aAAaF,KAAKjU,MACvBA,KAAKoU,gBAAgBH,KAAKjU,OAG5B,CAACA,KAAKwP,WAAYxP,KAAKuP,WAAWlO,QAASkB,IACzC,QAAavC,KAAMuC,EAAU,CAC3B8R,aAAc,CAAC,WAAY,OAAQ,uBAGzC,CAEA,OAAAR,GACE7T,KAAKwT,WAAWlF,iBAAiB,QAAStO,KAAKsU,aAAaL,KAAKjU,OACjEA,KAAKyT,WAAWnF,iBAAiB,QAAStO,KAAKuU,aAAaN,KAAKjU,OACjEA,KAAK2T,aAAarF,iBAAiB,QAAStO,KAAKwU,SAASP,KAAKjU,OAC/DA,KAAK0T,aAAapF,iBAAiB,QAAStO,KAAKyU,SAASR,KAAKjU,OAE/D,CAACA,KAAKwT,WAAYxT,KAAKyT,YAAYpS,QAASqT,IAC1C,QAAa1U,KAAM0U,EAAK,CACtBL,aAAc,CAAC,WAInBrU,KAAKwJ,WAAWlF,cAAc,aAAanE,UAAY,KACvDH,KAAKwJ,WAAWlF,cAAc,aAAanE,UAAY,IACzD,CAEA,QAAAsU,GACMzU,KAAK2U,YACJ3U,KAAKqS,OACVrS,KAAK4U,cAAc,IAAIC,YAAY,cAAe,CAAEC,QAAQ,OAAQ9U,KAAKoS,WAC3E,CAEA,QAAAoC,GACMxU,KAAK2U,aACT3U,KAAK4U,cAAc,IAAIC,YAAY,WACnC7U,KAAK4U,cAAc,IAAIC,YAAY,gBACnC7U,KAAK+U,mBACP,CAEA,gBAAAA,GACE/U,KAAKgV,qBAAqBlB,gBAAgB,iBAC1C9T,KAAK0T,aAAanS,aAAa,WAAY,QAC3CvB,KAAKqI,MAAQ,EACf,CAEA,YAAA4M,GACE,GAAIjV,KAAKuP,WAAavP,KAAKwP,WAAY,CACrC,MAAMnH,EAAQrI,KAAKoS,UAAW,UACxB5J,GAAO,QAAYH,GACnBI,GAAQ,QAASJ,GACvBrI,KAAKwP,WAAW6C,MAAQ5J,EAGxByM,WAAW,KACTlV,KAAKuP,UAAU4F,YAAY9C,MAAQ7J,GAEvC,CACF,CAEA,cAAA8J,GACE,MACMjK,GADO,OAAQrI,KAAKoS,UAAW,WAClBnJ,WAEZT,EAAMC,IAAS,QAAkBJ,GAEpCrI,KAAK0O,WACP1O,KAAK0O,SAASvO,UDvRW,EAACqI,EAAMC,EAAO2M,KAC3C,MAAMC,EAdkB,EAAC7M,EAAMC,IACxB,IAAIzF,KAAKwF,EAAMC,EAAO,GAAGnF,UAaZgS,CAAkB9M,EAAMC,GAGtC8M,EAAkB,IAAIvS,KAAKwF,EAAMC,EAAQ,EAAG,GAAG+M,SAErD,IAAIC,EAAY,UAGhBA,GAAa,cAAcL,EAAcM,OACvC,CAACC,EAAK1S,IAAM,GAAG0S,8BAAgC1S,gBAC/C,mBAGFwS,GAAa,UAGbA,GAAa,OACb,IAAK,IAAIG,EAAI,EAAGA,EAAIL,EAAiBK,IACnCH,GAAa,YAIf,IAAII,EAAYN,EAChB,IAAK,IAAIK,EAAI,EAAGA,GAAKP,EAAaO,IACd,IAAdC,IACFA,EAAY,EACZJ,GAAa,aAGfA,GAAa,uCAEQG,2EAEiBA,iBAC9BA,wCAIRC,IAIF,KAAOA,EAAY,GACjBJ,GAAa,YACbI,IAKF,OAFAJ,GAAa,wBAENA,GCqOuBK,CAAgBtN,EAAMC,EAAwBzI,KAAK6S,aD3JtCtH,IAAKtI,GAAMA,EAAE8S,UAAU,EAAG,MC8JnE/I,MAAMgJ,KAAKhW,KAAK0O,UAAUtN,iBAAiB,oBAAsB,IAAIC,QAASC,GAC5EA,EAAIgN,iBAAiB,QAAStO,KAAKiW,YAAYhC,KAAKjU,QAGtDA,KAAKiV,eACLjV,KAAKkW,iBACLlW,KAAKmW,eACP,CAEA,WAAAF,CAAYG,GACV,GAAIpW,KAAK2U,WAAY,OACrB,MAAM7R,GAAO,OAAQ9C,KAAKoS,SAC1BtP,EAAKuT,QAAQtO,OAAOqO,EAAEE,OAAOxV,aAAa,mBAC1Cd,KAAKqS,OAAQ,QAAYvP,EAAKmG,UAAW,MACzCjJ,KAAK4U,cAAc,IAAIC,YAAY,cAAe,CAAEC,OAAQhS,IAC9D,CAEA,YAAAqR,CAAaiC,GACX,IAAKA,EAAEE,OAAOjE,MAAO,OACrB,MAAMvP,GAAO,OAAQ9C,KAAKoS,SAC1BtP,EAAKyT,YAAYxO,OAAOqO,EAAEE,OAAOjE,MAAMlK,SACvCnI,KAAKoS,QAAUtP,EAAKmG,UACpBjJ,KAAKsS,iBACLtS,KAAK4U,cAAc,IAAIC,YAAY,eAAgB,CAAEC,OAAQhS,IAC/D,CAEA,aAAAkR,CAAcoC,GACZ,IAAKA,EAAEE,OAAOjE,MAAO,OACrB,MAAMvP,GAAO,OAAQ9C,KAAKoS,SAC1BtP,EAAK0T,SAASzO,OAAOqO,EAAEE,OAAOjE,OAAS,GACvCrS,KAAKoS,QAAUtP,EAAKmG,UACpBjJ,KAAKsS,iBACLtS,KAAK4U,cAAc,IAAIC,YAAY,gBAAiB,CAAEC,OAAQhS,IAChE,CAEA,eAAAsR,CAAgBgC,GACdpW,KAAKuP,UAAU4F,YAAY9C,MAAQ+D,EAAEE,OAAOjE,QAAS,QAAYrS,KAAKoS,QACxE,CAEA,gBAAA8B,CAAiBkC,GACfpW,KAAKwP,WAAW2F,YAAY9C,MAAQ+D,EAAEE,OAAOjE,QAAS,QAASrS,KAAKoS,QACtE,CAEA,iBAAA4C,GACE,MAAMtM,GAAM,OAAQ1I,KAAKqI,OAAO/E,UAChC,OAAOtD,KAAK0O,UAAUpK,cAAc,mBAAmBoE,MACzD,CAEA,gBAAA+N,GACE,OAAOzW,KAAK0O,UAAUpK,cAAc,oBAAmB,cACzD,CAEA,iBAAAoS,GACE,MAAMC,EAAQ3W,KAAK0O,UAAUtN,iBAAiB,mBACzCuV,GACLA,EAAMtV,QAASuV,GAAMA,EAAE9C,gBAAgB,iBACzC,CAEA,cAAAoC,GACElW,KAAK0W,oBACD1W,KAAKqS,OAASrS,KAAKuS,gBACrBvS,KAAKgV,oBAAoBzT,aAAa,gBAAiB,OAE3D,CAEA,aAAA4U,GACE,GAAInW,KAAKwS,YAAa,CACpB,MAAMlR,EAAMtB,KAAKyW,mBACXI,EAAQ7W,KAAKc,aAAa,yBAA2B,KAC3DQ,GAAKC,aAAa,mBAAoB,QACtCD,GAAKC,aAAa,QAASsV,EAC7B,CACF,CAEA,YAAAvC,GACE,GAAItU,KAAK2U,WACP,OAEF,MAAM7R,ED1Oe,CAACuF,IACxB,MAAMvF,GAAO,OAAQuF,GACfI,EAAQ3F,EAAKO,WAEnB,GAAc,IAAVoF,EAAa,CACf,MAAMD,EAAO1F,EAAKM,cAClBN,EAAKyT,YAAY/N,EAAO,GACxB1F,EAAK0T,SAAS,GAChB,MACE1T,EAAK0T,SAAS/N,EAAQ,GAGxB,OAAO3F,GC8NQgU,CAAU9W,KAAKoS,SAC5BpS,KAAKoS,QAAUtP,EAAKmG,UACpBjJ,KAAKsS,gBACP,CAEA,YAAAiC,GACE,GAAIvU,KAAK2U,WACP,OAEF,MAAM7R,EDpOe,CAACuF,IACxB,MAAMvF,GAAO,OAAQuF,GACfI,EAAQ3F,EAAKO,WAEnB,GAAc,KAAVoF,EAAc,CAChB,MAAMD,EAAO1F,EAAKM,cAClBN,EAAKyT,YAAY/N,EAAO,GACxB1F,EAAK0T,SAAS,EAChB,MACE1T,EAAK0T,SAAS/N,EAAQ,GAGxB,OAAO3F,GCwNQiU,CAAU/W,KAAKoS,SAC5BpS,KAAKoS,QAAUtP,EAAKmG,UACpBjJ,KAAKsS,gBACP,CAEA,UAAA0E,GACEhX,KAAKqI,MAAQ,GACbrI,KAAKqS,MAAQ,GACbrS,KAAK8T,gBAAgB,WACrB9T,KAAK0T,aAAanS,aAAa,WAAY,OAC7C,CAEA,oBAAA0V,CAAqB7U,GAEnB,GAAIpC,KAAKqS,MACP,OAGF,MACMhK,GADO,OAAQjG,GACF6G,WAEf,QAAaZ,IACfrI,KAAKqI,MAAQA,EACbrI,KAAKoS,QAAU/J,GAEfrI,KAAKgX,YAET,CAEA,kBAAAE,GACEhC,WAAW,KACLlV,KAAKuP,YACPvP,KAAKuP,UAAUpP,UDzaE,CAACgT,IACxB,MAAOC,EAAOC,GAAOF,EACfgE,EAAQ,GAEd,IAAK,IAAI3O,EAAO4K,EAAO5K,GAAQ6K,EAAK7K,IAClC2O,EAAMzN,KAAKlB,GAGb,OAAO2O,GAsEPC,CC2VgDpX,KAAKkT,YD1VlD3H,IAAKmC,GAASL,EAAgB,CAAE3H,MAAOgI,EAAMJ,OAAQI,EAAMH,SAAUG,KACrEjC,KAAK,MC4VR,CAEA,kBAAA4L,GACEnC,WAAW,KACLlV,KAAKwP,aACPxP,KAAKwP,WAAWrP,UAAYqN,EAAiBxN,KAAKyS,cAGxD,CAEA,mBAAA6E,CAAoBlV,GACdpC,KAAK0T,eACP1T,KAAK0T,aAAa6D,YAAcnV,GAAY,KAEhD,CAEA,mBAAAoV,CAAoBpV,GACdpC,KAAK2T,eACP3T,KAAK2T,aAAa4D,YAAcnV,GAAY,KAEhD,CAEA,oBAAAqV,CAAqB3P,GACnB,MAAM4P,GAAW,QAAY1X,KAAKoS,SAClCpS,KAAKoS,SAAU,OAAQ,GAAGsF,KAAY5P,OAASmB,SACjD,CAEA,mBAAA0O,CAAoB7P,GAClB,MAAM8P,GAAY,QAAS5X,KAAKoS,SAChCpS,KAAKoS,SAAU,OAAQ,GAAGtK,KAAO8P,OAAe3O,SAClD,CAEA,wBAAAhH,CAAyBC,EAAUC,EAAUC,GAC3CrC,MAAMkC,yBAAyBC,EAAUC,EAAUC,GAC/CD,IAAaC,IAEXoM,EAAgBqJ,SAAS3V,IACV,0BAAbA,GACFlC,KAAKsX,oBAAoBlV,GAEV,0BAAbF,GACFlC,KAAKwX,oBAAoBpV,KAKvBA,GAAyB,kBAAbF,GACdlC,KAAKiX,qBAAqB7U,GAExBA,GAAyB,kBAAbF,GACdlC,KAAKyX,qBAAqBrV,GAExBA,GAAyB,iBAAbF,GACdlC,KAAK2X,oBAAoBvV,GAEV,gBAAbF,GACFlC,KAAKkX,mBAAmBnP,OAAO3F,IAEhB,oBAAbF,GACFlC,KAAKqX,qBAEU,yBAAbnV,GACFlC,KAAKmW,cAAc/T,GAEJ,aAAbF,GACFgT,WAAW,KACTlV,KAAK2T,cAAcpS,aAAa,WAAyB,SAAba,KAIhDpC,KAAKsS,kBAGX,CAEA,WAAAwF,GACE,OAAI9X,KAAK+X,aAAe/X,KAAKqS,MACpB,CAAE2F,cAAc,GAElB,CAAC,CACV,IC9fFrQ,eAAeC,OAAOnI,EAAegQ,E,0FCK9B,MAAMhQ,GAAgB,QAAiB,QAEjCwY,GAAY,SACvB,QAAiB,CACf5V,SAAU,CACRX,KAAM,CAAC,CAAC,EAAG,CAAEqE,SAAU,IAAWtE,WAAWC,UAGjD,KACA,KAPuB,EASvB,QAAY,CACV6F,MAAO,GACPC,eAAgB,gBAChBjC,MAAO,IAAM,kEAKbkC,iBAAkB,CAAC,WAAY,QAAS,SACxChI,kB","sources":["webpack://@descope/web-components-ui/./src/baseClasses/createBaseInputClass.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/ImageClass.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/clickableMixin.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/date-utils.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/helpers.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/ButtonClass.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/index.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/helpers.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/consts.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/formats.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/icons.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/../components/descope-icon/src/component/IconClass.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","/* eslint-disable no-use-before-define */\nimport {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} 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 { createImage } from './helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('image');\n\nconst srcAttrs = ['src', 'src-dark'];\n\nclass RawImage extends createBaseClass({\n componentName,\n baseSelector: 'slot',\n}) {\n static get observedAttributes() {\n return srcAttrs;\n }\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 {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n :host > slot {\n width: 100%;\n height: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n ::slotted(*) {\n width: 100%;\n\t\t\t}\n\n .hidden {\n display: none;\n }\n `,\n this,\n );\n }\n\n init() {\n super.init?.();\n this.toggleVisibility(this.getSrc);\n }\n\n onThemeChange() {\n this.renderImage();\n }\n\n toggleVisibility(isVisible) {\n if (isVisible) {\n this.classList.remove('hidden');\n } else {\n this.classList.add('hidden');\n }\n }\n\n get altText() {\n return this.getAttribute('alt') || '';\n }\n\n get legacySrc() {\n return this.getAttribute('src');\n }\n\n get themeSrc() {\n return this.getAttribute(`src-${this.currentThemeName}`);\n }\n\n get getSrc() {\n return this.themeSrc || this.legacySrc;\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(${ImageClass.cssVarList.fill}, ${ele.getAttribute('fill') || \"''\"})`,\n );\n });\n }\n\n renderImage() {\n this.toggleVisibility(this.getSrc);\n\n createImage(this.getSrc, this.altText).then((res) => {\n this.innerHTML = '';\n if (res) {\n this.updateFillColor(res);\n this.appendChild(res);\n }\n });\n }\n\n // render only when src attribute matches current theme\n shouldRender(src) {\n const srcVal = this.getAttribute(src);\n return this.getSrc === srcVal;\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue === newValue) return;\n\n if (this.shouldRender(attrName)) {\n this.renderImage();\n }\n }\n}\n\nexport const ImageClass = compose(\n createStyleMixin({\n mappings: {\n fill: {},\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawImage);\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","// polyfill for safari Date API (which doesn't accept \"YYYY-MM-DD\" string as value)\nexport const newDate = (date, isUtcTime) => {\n if (typeof date === 'number') {\n return new Date(date);\n }\n if (typeof date === 'string') {\n const d = new Date(date.replace(/-/g, '/'));\n if (isUtcTime) {\n return new Date(\n Date.UTC(\n d.getFullYear(),\n d.getMonth(),\n d.getDate(),\n d.getHours(),\n d.getMinutes(),\n d.getSeconds(),\n d.getMilliseconds()\n )\n );\n }\n return new Date(d);\n }\n return new Date();\n};\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, altText) => {\n const ele = document.createElement('img');\n ele.setAttribute('src', src);\n ele.setAttribute('alt', altText);\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, {\n USE_PROFILES: { svg: true, svgFilters: true },\n // allow image to render\n ADD_TAGS: ['image'],\n // forbid interactiviy via `use` tags (which are sanitized by default)\n FORBID_TAGS: ['defs']\n });\n\n const parser = new DOMParser();\n const ele = parser\n .parseFromString(clean, 'image/svg+xml')\n .querySelector('svg');\n return ele;\n};\n\nexport const createImage = async (src, altText) => {\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, altText);\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 '@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\t\tselector: () => `::slotted(*)`,\n\t\tproperty: IconClass.cssVarList.fill\n\t },\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', 'class', 'style'],\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","import { componentName, ButtonClass } from './ButtonClass';\nimport '@vaadin/button';\n\ncustomElements.define(componentName, ButtonClass);\n\nexport { ButtonClass, componentName };\n","import { formats } from './formats';\nimport { newDate } from './date-utils';\n\nexport const isValidEpoch = (val) => !Number.isNaN(Number(val));\n\nexport const isNumber = (val) => !!String(val || '').trim() && !Number.isNaN(Number(val));\n\nexport const getPartsFromEpoch = (epoch) => {\n const date = newDate(epoch);\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 formatEpoch = (epoch, format) => {\n const [year, month, day] = getPartsFromEpoch(epoch);\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\nexport const getCurrentTime = () => newDate().getTime();\nexport const getFullYear = (epoch) => newDate(epoch).getFullYear().toString();\nexport const getMonth = (epoch) => (newDate(epoch).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\nexport const parseDateString = (val, format) => {\n const trimmed = val.trim?.();\n if (!trimmed) return null;\n return formats[format].getDate(trimmed);\n};\n\nexport const dateToEpoch = (date, isUtc) => {\n // If it's already a number (epoch), return it directly - no conversion needed\n if (typeof date === 'number') {\n return date;\n }\n\n if (isUtc) {\n return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate());\n }\n\n // Default: return epoch in local timezone\n return date.getTime();\n};\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 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' },\n DAY: { id: 'day', min: 1, max: 31, placeholder: 'DD' },\n YEAR: { id: 'year', min: 0, max: 9999, placeholder: 'YYYY' },\n};\n\nexport const valRange = {\n year: { min: 1900, max: 2099 },\n};\n\nexport const BUTTON_LABEL_DONE = 'Done';\nexport const BUTTON_LABEL_CANCEL = 'Cancel';\nexport const CALENDAR_LABEL_TODAY = 'Today';\n\nexport const MOBILE_DEVICE_INTERACTION_TIMEOUT_MS = 150;\n","import { DIVIDER, SUPPORTED_FORMATS } from './consts';\nimport { newDate } from './date-utils';\n\nconst patterns = {\n MM: '(0?[1-9]|1[0-2])',\n DD: '(0?[1-9]|[12][0-9]|3[01])',\n YYYY: '([0-9]{4})',\n};\n\nconst createPattern = (format) => {\n const pattern = format\n .split(DIVIDER)\n .map((part) => patterns[part])\n .join('\\\\D');\n\n return `^${pattern}$`;\n};\n\nconst createToValuesFn = (format) => {\n const order = format.split(DIVIDER);\n return (match) => {\n const values = {};\n order.forEach((part, index) => {\n values[part] = match[index + 1];\n });\n return [values.YYYY, values.MM, values.DD];\n };\n};\n\nconst createDate = (val, regexp, toValuesFn) => {\n const match = regexp.exec(val);\n if (!match) return null;\n const [year, month, day] = toValuesFn(match);\n return newDate([year, month, day].join(DIVIDER));\n};\n\nconst createFormat = (format) => {\n const pattern = createPattern(format);\n const toValuesFn = createToValuesFn(format);\n const regexp = new RegExp(pattern);\n\n return {\n pattern,\n validate: (val) => regexp.test(val),\n getDate: (val) => createDate(val, regexp, toValuesFn),\n };\n};\n\nexport const formats = Object.fromEntries(SUPPORTED_FORMATS.map((f) => [f, createFormat(f)]));\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","import { months, weekdays } from '../consts';\nimport { getPartsFromEpoch } from '../helpers';\nimport { newDate } from '../date-utils';\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 = (selectionEpoch, previewEpoch) => {\n const [previewYear, previewMonth] = getPartsFromEpoch(previewEpoch);\n const [selectedYear, selectedMonth] = getPartsFromEpoch(selectionEpoch);\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 = (epoch) => {\n const date = newDate(epoch);\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 = (epoch) => {\n const date = newDate(epoch);\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 getPartsFromEpoch,\n isValidEpoch,\n formatEpoch,\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';\nimport { newDate } from '../date-utils';\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 epoch\n preview;\n\n // value epoch\n epoch;\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 epoch = newDate(val).getTime();\n\n if (!isValidEpoch(epoch) || epoch === this.epoch) {\n return;\n }\n\n this.epoch = epoch;\n\n this.renderCalendar();\n }\n\n get value() {\n return this.epoch ? formatEpoch(this.epoch, NATIVE_FORMAT) : '';\n }\n\n get isSelectedView() {\n return isViewVisible(this.preview, this.epoch);\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.epoch = '';\n }\n\n updateInputs() {\n if (this.yearInput && this.monthInput) {\n const epoch = this.preview || getCurrentTime();\n const year = getFullYear(epoch);\n const month = getMonth(epoch);\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 epoch = date.getTime();\n\n const [year, month] = getPartsFromEpoch(epoch);\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 = formatEpoch(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.epoch).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.epoch = '';\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 epoch = date.getTime();\n\n if (isValidEpoch(epoch)) {\n this.epoch = epoch;\n this.preview = epoch;\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 {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n draggableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { ImageClass } from '@descope-ui/descope-image/class';\nimport { compose } from '@descope-ui/common/utils';\n\nexport const componentName = getComponentName('icon');\n\nexport const IconClass = compose(\n createStyleMixin({\n mappings: {\n fill: [{}, { property: ImageClass.cssVarList.fill }],\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'descope-image',\n style: () => `\n :host {\n display: inline-flex;\n }\n `,\n excludeAttrsSync: ['tabindex', 'class', 'style'],\n componentName,\n }),\n);\n"],"names":["createBaseInputClass","args","componentName","srcAttrs","RawImage","baseSelector","observedAttributes","constructor","super","this","attachShadow","mode","innerHTML","init","toggleVisibility","getSrc","onThemeChange","renderImage","isVisible","classList","remove","add","altText","getAttribute","legacySrc","themeSrc","currentThemeName","updateFillColor","node","querySelectorAll","forEach","ele","setAttribute","ImageClass","cssVarList","fill","then","res","appendChild","shouldRender","src","srcVal","attributeChangedCallback","attrName","oldValue","newValue","mappings","height","selector","width","clickableMixin","superclass","isLoading","click","newDate","date","isUtcTime","Date","d","replace","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","createSvgEle","text","clean","sanitize","USE_PROFILES","svg","svgFilters","ADD_TAGS","FORBID_TAGS","DOMParser","parseFromString","querySelector","createImage","async","startsWith","isBase64Svg","svgXml","atob","slice","base64Prefix","path","match","getFileExtension","fetchedSrc","fetch","document","createElement","createImgEle","style","setProperty","host","label","slottedIcon","loadingIndicatorStyles","ButtonClass","hostWidth","property","hostHeight","hostDirection","fontSize","fontFamily","cursor","backgroundColor","outlineOffset","outlineColor","outlineStyle","outlineWidth","borderRadius","borderColor","borderStyle","borderWidth","verticalPadding","horizontalPadding","fallback","labelTextColor","iconColor","labelTextDecoration","labelSpacing","textAlign","iconSize","slots","wrappedEleName","excludeAttrsSync","color","customElements","define","isValidEpoch","val","Number","isNaN","isNumber","String","trim","getPartsFromEpoch","epoch","formatEpoch","format","year","month","day","parts","DD","padStart","MM","YYYY","getCurrentTime","getTime","toString","getCurrentDay","overrideConstructedStylesheet","cs","CSSStyleSheet","insertRule","shadowRoot","adoptedStyleSheets","push","parseDateString","trimmed","dateToEpoch","isUtc","SUPPORTED_FORMATS","DEFAULT_FORMAT","NATIVE_FORMAT","YEARS_RANGE","DIVIDER","months","weekdays","counterConfig","MONTH","id","min","max","placeholder","DAY","YEAR","valRange","BUTTON_LABEL_DONE","BUTTON_LABEL_CANCEL","CALENDAR_LABEL_TODAY","MOBILE_DEVICE_INTERACTION_TIMEOUT_MS","patterns","createFormat","pattern","split","map","part","join","createPattern","toValuesFn","order","values","index","createToValuesFn","regexp","RegExp","validate","test","exec","createDate","formats","Object","fromEntries","f","calendarIcon","arrowRightIcon","arrowLeftIcon","isValidAttrArr","arr","count","Array","isArray","length","filter","Boolean","comboBoxItemTpl","dataId","dataName","getMonthsOptions","customMonths","item","isViewVisible","selectionEpoch","previewEpoch","previewYear","previewMonth","selectedYear","selectedMonth","initComboBox","input","onChange","onBlur","addEventListener","observedAttrs","calendarUiAttrs","BaseInputClass","calendar","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","value","renderCalendar","isSelectedView","isTodayView","monthNames","attrVal","monthArr","ensureMonthNamesArr","weekdayNames","customWeekdayArr","ensureWeekdayNamesArr","hasYearValue","hasMonthValue","yearsRange","range","start","end","currentYear","initCalendar","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","setTimeout","baseElement","shortWeekdays","daysInMonth","getMaxDaysInMonth","firstDayOfMonth","getDay","monthView","reduce","acc","i","dayOfWeek","createMonthView","substring","from","onDayChange","setSelectedDay","setCurrentDay","e","setDate","target","setFullYear","setMonth","getCurrentDayEle","clearSelectedDays","cells","c","title","prevMonth","nextMonth","clearValue","onInitialValueChange","onYearsRangeChange","years","generateYearList","onMonthNamesChange","onSubmitLabelChange","textContent","onCancelLabelChange","onInitialMonthChange","currYear","onInitialYearChange","currMonth","includes","getValidity","isRequired","valueMissing","IconClass"],"sourceRoot":""}
|
|
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/../components/descope-image/src/component/ImageClass.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/clickableMixin.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/date-utils.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/helpers.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/ButtonClass.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/index.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/helpers.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/consts.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/formats.js","webpack://@descope/web-components-ui/./src/components/descope-date-field/icons.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/../components/descope-icon/src/component/IconClass.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","/* eslint-disable no-use-before-define */\nimport {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} 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 { createImage } from './helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('image');\n\nconst srcAttrs = ['src', 'src-dark'];\n\nclass RawImage extends createBaseClass({\n componentName,\n baseSelector: 'slot',\n}) {\n static get observedAttributes() {\n return srcAttrs;\n }\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 {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n :host > slot {\n width: 100%;\n height: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n ::slotted(*) {\n width: 100%;\n\t\t\t}\n\n .hidden {\n display: none;\n }\n `,\n this,\n );\n }\n\n init() {\n super.init?.();\n this.toggleVisibility(this.getSrc);\n }\n\n onThemeChange() {\n this.renderImage();\n }\n\n toggleVisibility(isVisible) {\n if (isVisible) {\n this.classList.remove('hidden');\n } else {\n this.classList.add('hidden');\n }\n }\n\n get altText() {\n return this.getAttribute('alt') || '';\n }\n\n get legacySrc() {\n return this.getAttribute('src');\n }\n\n get themeSrc() {\n return this.getAttribute(`src-${this.currentThemeName}`);\n }\n\n get getSrc() {\n return this.themeSrc || this.legacySrc;\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(${ImageClass.cssVarList.fill}, ${ele.getAttribute('fill') || \"''\"})`,\n );\n });\n }\n\n renderImage() {\n this.toggleVisibility(this.getSrc);\n\n createImage(this.getSrc, this.altText).then((res) => {\n this.innerHTML = '';\n if (res) {\n this.updateFillColor(res);\n this.appendChild(res);\n }\n });\n }\n\n // render only when src attribute matches current theme\n shouldRender(src) {\n const srcVal = this.getAttribute(src);\n return this.getSrc === srcVal;\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue === newValue) return;\n\n if (this.shouldRender(attrName)) {\n this.renderImage();\n }\n }\n}\n\nexport const ImageClass = compose(\n createStyleMixin({\n mappings: {\n fill: {},\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawImage);\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","// polyfill for safari Date API (which doesn't accept \"YYYY-MM-DD\" string as value)\nexport const newDate = (date, isUtcTime) => {\n if (typeof date === 'number') {\n return new Date(date);\n }\n if (typeof date === 'string') {\n const d = new Date(date.replace(/-/g, '/'));\n if (isUtcTime) {\n return new Date(\n Date.UTC(\n d.getFullYear(),\n d.getMonth(),\n d.getDate(),\n d.getHours(),\n d.getMinutes(),\n d.getSeconds(),\n d.getMilliseconds()\n )\n );\n }\n return new Date(d);\n }\n return new Date();\n};\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, altText) => {\n const ele = document.createElement('img');\n ele.setAttribute('src', src);\n ele.setAttribute('alt', altText);\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, {\n USE_PROFILES: { svg: true, svgFilters: true },\n // allow image to render\n ADD_TAGS: ['image'],\n // forbid interactiviy via `use` tags (which are sanitized by default)\n FORBID_TAGS: ['defs']\n });\n\n const parser = new DOMParser();\n const ele = parser\n .parseFromString(clean, 'image/svg+xml')\n .querySelector('svg');\n return ele;\n};\n\nexport const createImage = async (src, altText) => {\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, altText);\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 '@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\t\tselector: () => `::slotted(*)`,\n\t\tproperty: IconClass.cssVarList.fill\n\t },\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', 'class', 'style'],\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","import { componentName, ButtonClass } from './ButtonClass';\nimport '@vaadin/button';\n\ncustomElements.define(componentName, ButtonClass);\n\nexport { ButtonClass, componentName };\n","import { formats } from './formats';\nimport { newDate } from './date-utils';\n\nexport const isValidEpoch = (val) => !Number.isNaN(Number(val));\n\nexport const isNumber = (val) => !!String(val || '').trim() && !Number.isNaN(Number(val));\n\nexport const getPartsFromEpoch = (epoch) => {\n const date = newDate(epoch);\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 formatEpoch = (epoch, format) => {\n const [year, month, day] = getPartsFromEpoch(epoch);\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\nexport const getCurrentTime = () => newDate().getTime();\nexport const getFullYear = (epoch) => newDate(epoch).getFullYear().toString();\nexport const getMonth = (epoch) => (newDate(epoch).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\nexport const parseDateString = (val, format) => {\n const trimmed = val.trim?.();\n if (!trimmed) return null;\n return formats[format].getDate(trimmed);\n};\n\nexport const dateToEpoch = (date, isUtc) => {\n // If it's already a number (epoch), return it directly - no conversion needed\n if (typeof date === 'number') {\n return date;\n }\n\n if (isUtc) {\n return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate());\n }\n\n // Default: return epoch in local timezone\n return date.getTime();\n};\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 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' },\n DAY: { id: 'day', min: 1, max: 31, placeholder: 'DD' },\n YEAR: { id: 'year', min: 0, max: 9999, placeholder: 'YYYY' },\n};\n\nexport const valRange = {\n year: { min: 1900, max: 2099 },\n};\n\nexport const BUTTON_LABEL_DONE = 'Done';\nexport const BUTTON_LABEL_CANCEL = 'Cancel';\nexport const CALENDAR_LABEL_TODAY = 'Today';\n\nexport const MOBILE_DEVICE_INTERACTION_TIMEOUT_MS = 150;\n","import { DIVIDER, SUPPORTED_FORMATS } from './consts';\nimport { newDate } from './date-utils';\n\nconst patterns = {\n MM: '(0?[1-9]|1[0-2])',\n DD: '(0?[1-9]|[12][0-9]|3[01])',\n YYYY: '([0-9]{4})',\n};\n\nconst createPattern = (format) => {\n const pattern = format\n .split(DIVIDER)\n .map((part) => patterns[part])\n .join('\\\\D');\n\n return `^${pattern}$`;\n};\n\nconst createToValuesFn = (format) => {\n const order = format.split(DIVIDER);\n return (match) => {\n const values = {};\n order.forEach((part, index) => {\n values[part] = match[index + 1];\n });\n return [values.YYYY, values.MM, values.DD];\n };\n};\n\nconst createDate = (val, regexp, toValuesFn) => {\n const match = regexp.exec(val);\n if (!match) return null;\n const [year, month, day] = toValuesFn(match);\n return newDate([year, month, day].join(DIVIDER));\n};\n\nconst createFormat = (format) => {\n const pattern = createPattern(format);\n const toValuesFn = createToValuesFn(format);\n const regexp = new RegExp(pattern);\n\n return {\n pattern,\n validate: (val) => regexp.test(val),\n getDate: (val) => createDate(val, regexp, toValuesFn),\n };\n};\n\nexport const formats = Object.fromEntries(SUPPORTED_FORMATS.map((f) => [f, createFormat(f)]));\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","import { months, weekdays } from '../consts';\nimport { getPartsFromEpoch } from '../helpers';\nimport { newDate } from '../date-utils';\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 = (selectionEpoch, previewEpoch) => {\n const [previewYear, previewMonth] = getPartsFromEpoch(previewEpoch);\n const [selectedYear, selectedMonth] = getPartsFromEpoch(selectionEpoch);\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 = (epoch) => {\n const date = newDate(epoch);\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 = (epoch) => {\n const date = newDate(epoch);\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 getPartsFromEpoch,\n isValidEpoch,\n formatEpoch,\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';\nimport { newDate } from '../date-utils';\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 epoch\n preview;\n\n // value epoch\n epoch;\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 epoch = newDate(val).getTime();\n\n if (!isValidEpoch(epoch) || epoch === this.epoch) {\n return;\n }\n\n this.epoch = epoch;\n\n this.renderCalendar();\n }\n\n get value() {\n return this.epoch ? formatEpoch(this.epoch, NATIVE_FORMAT) : '';\n }\n\n get isSelectedView() {\n return isViewVisible(this.preview, this.epoch);\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.epoch = '';\n }\n\n updateInputs() {\n if (this.yearInput && this.monthInput) {\n const epoch = this.preview || getCurrentTime();\n const year = getFullYear(epoch);\n const month = getMonth(epoch);\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 epoch = date.getTime();\n\n const [year, month] = getPartsFromEpoch(epoch);\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 = formatEpoch(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.epoch).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.epoch = '';\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 epoch = date.getTime();\n\n if (isValidEpoch(epoch)) {\n this.epoch = epoch;\n this.preview = epoch;\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 {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n draggableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { ImageClass } from '@descope-ui/descope-image/class';\nimport { compose } from '@descope-ui/common/utils';\n\nexport const componentName = getComponentName('icon');\n\nexport const IconClass = compose(\n createStyleMixin({\n mappings: {\n fill: [{}, { property: ImageClass.cssVarList.fill }],\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'descope-image',\n style: () => `\n :host {\n display: inline-flex;\n max-height: 100%;\n }\n `,\n excludeAttrsSync: ['tabindex', 'class', 'style'],\n componentName,\n }),\n);\n"],"names":["createBaseInputClass","args","componentName","srcAttrs","RawImage","baseSelector","observedAttributes","constructor","super","this","attachShadow","mode","innerHTML","init","toggleVisibility","getSrc","onThemeChange","renderImage","isVisible","classList","remove","add","altText","getAttribute","legacySrc","themeSrc","currentThemeName","updateFillColor","node","querySelectorAll","forEach","ele","setAttribute","ImageClass","cssVarList","fill","then","res","appendChild","shouldRender","src","srcVal","attributeChangedCallback","attrName","oldValue","newValue","mappings","height","selector","width","clickableMixin","superclass","isLoading","click","newDate","date","isUtcTime","Date","d","replace","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","createSvgEle","text","clean","sanitize","USE_PROFILES","svg","svgFilters","ADD_TAGS","FORBID_TAGS","DOMParser","parseFromString","querySelector","createImage","async","startsWith","isBase64Svg","svgXml","atob","slice","base64Prefix","path","match","getFileExtension","fetchedSrc","fetch","document","createElement","createImgEle","style","setProperty","host","label","slottedIcon","loadingIndicatorStyles","ButtonClass","hostWidth","property","hostHeight","hostDirection","fontSize","fontFamily","cursor","backgroundColor","outlineOffset","outlineColor","outlineStyle","outlineWidth","borderRadius","borderColor","borderStyle","borderWidth","verticalPadding","horizontalPadding","fallback","labelTextColor","iconColor","labelTextDecoration","labelSpacing","textAlign","iconSize","slots","wrappedEleName","excludeAttrsSync","color","customElements","define","isValidEpoch","val","Number","isNaN","isNumber","String","trim","getPartsFromEpoch","epoch","formatEpoch","format","year","month","day","parts","DD","padStart","MM","YYYY","getCurrentTime","getTime","toString","getCurrentDay","overrideConstructedStylesheet","cs","CSSStyleSheet","insertRule","shadowRoot","adoptedStyleSheets","push","parseDateString","trimmed","dateToEpoch","isUtc","SUPPORTED_FORMATS","DEFAULT_FORMAT","NATIVE_FORMAT","YEARS_RANGE","DIVIDER","months","weekdays","counterConfig","MONTH","id","min","max","placeholder","DAY","YEAR","valRange","BUTTON_LABEL_DONE","BUTTON_LABEL_CANCEL","CALENDAR_LABEL_TODAY","MOBILE_DEVICE_INTERACTION_TIMEOUT_MS","patterns","createFormat","pattern","split","map","part","join","createPattern","toValuesFn","order","values","index","createToValuesFn","regexp","RegExp","validate","test","exec","createDate","formats","Object","fromEntries","f","calendarIcon","arrowRightIcon","arrowLeftIcon","isValidAttrArr","arr","count","Array","isArray","length","filter","Boolean","comboBoxItemTpl","dataId","dataName","getMonthsOptions","customMonths","item","isViewVisible","selectionEpoch","previewEpoch","previewYear","previewMonth","selectedYear","selectedMonth","initComboBox","input","onChange","onBlur","addEventListener","observedAttrs","calendarUiAttrs","BaseInputClass","calendar","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","value","renderCalendar","isSelectedView","isTodayView","monthNames","attrVal","monthArr","ensureMonthNamesArr","weekdayNames","customWeekdayArr","ensureWeekdayNamesArr","hasYearValue","hasMonthValue","yearsRange","range","start","end","currentYear","initCalendar","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","setTimeout","baseElement","shortWeekdays","daysInMonth","getMaxDaysInMonth","firstDayOfMonth","getDay","monthView","reduce","acc","i","dayOfWeek","createMonthView","substring","from","onDayChange","setSelectedDay","setCurrentDay","e","setDate","target","setFullYear","setMonth","getCurrentDayEle","clearSelectedDays","cells","c","title","prevMonth","nextMonth","clearValue","onInitialValueChange","onYearsRangeChange","years","generateYearList","onMonthNamesChange","onSubmitLabelChange","textContent","onCancelLabelChange","onInitialMonthChange","currYear","onInitialYearChange","currMonth","includes","getValidity","isRequired","valueMissing","IconClass"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[9257],{6424:(e,t,i)=>{i.d(t,{A:()=>C});const{host:r,label:n,placeholder:o,requiredIndicator:s,inputField:a,input:l,inputMask:p,helperText:d,errorMessage:h,disabledPlaceholder:c,inputDisabled:u,inputIcon:g,externalInput:y,externalInputDisabled:m,externalPlaceholder:b,externalDisabledPlaceholder:v}={host:{selector:()=>":host"},label:{selector:"::part(label)"},requiredIndicator:{selector:"[required]::part(required-indicator)::after"},placeholder:[{selector:"> input:placeholder-shown"},{selector:()=>":host::slotted(input:placeholder-shown)"}],disabledPlaceholder:{selector:"> input:disabled::placeholder"},inputField:{selector:"::part(input-field)"},input:{selector:"input"},inputMask:{selector:"::part(input-field)::before"},inputDisabled:{selector:"input:disabled"},helperText:{selector:"::part(helper-text)"},errorMessage:{selector:"::part(error-message)"},inputIcon:{selector:"vaadin-icon"},externalInput:{selector:()=>"::slotted(input)"},externalInputDisabled:{selector:()=>"::slotted(input:disabled)"},externalPlaceholder:{selector:()=>"::slotted(input:placeholder-shown)"},externalDisabledPlaceholder:{selector:()=>"::slotted(input:disabled::placeholder)"}},C={fontSize:[{},r],fontFamily:[n,a,d,h],labelFontSize:{...n,property:"font-size"},labelFontWeight:{...n,property:"font-weight"},labelTextColor:[{...n,property:"color"},{...s,property:"color"},{...n,property:"-webkit-text-fill-color"},{...s,property:"-webkit-text-fill-color"}],hostWidth:{...r,property:"width"},hostMinWidth:{...r,property:"min-width"},hostDirection:{...r,property:"direction"},inputDirection:{...l,property:"direction"},inputBackgroundColor:[{...a,property:"background-color"},{...p,property:"background-color"}],errorMessageTextColor:{...h,property:"color"},errorMessageIcon:{...h,property:"background-image"},errorMessageIconSize:{...h,property:"background-size"},errorMessageIconPadding:{...h,property:"padding-inline-start"},errorMessageIconRepeat:{...h,property:"background-repeat"},errorMessageIconPosition:{...h,property:"background-position"},errorMessageFontSize:{...h,property:"font-size"},helperTextColor:{...d,property:"-webkit-text-fill-color"},inputValueTextColor:[{...a,property:"color"},{...u,property:"-webkit-text-fill-color"},{...m,property:"-webkit-text-fill-color"}],inputCaretTextColor:[{...l,property:"caret-color"},{...y,property:"caret-color"}],labelRequiredIndicator:{...s,property:"content"},inputBorderColor:{...a,property:"border-color"},inputBorderWidth:{...a,property:"border-width"},inputBorderStyle:{...a,property:"border-style"},inputBorderRadius:{...a,property:"border-radius"},inputHeight:{...a,property:"height"},inputHorizontalPadding:[{...l,property:"padding-left"},{...l,property:"padding-right"},{...y,property:"padding-left"},{...y,property:"padding-right"}],inputOutlineColor:{...a,property:"outline-color"},inputOutlineStyle:{...a,property:"outline-style"},inputOutlineWidth:{...a,property:"outline-width"},inputOutlineOffset:{...a,property:"outline-offset"},textAlign:{},inputTextAlign:[{...l,property:"text-align"},{...y,property:"text-align"}],inputPlaceholderColor:[{selector:()=>":host input:placeholder-shown",property:"color"},{...b,property:"color"},{...o,property:"color"},{...c,property:"-webkit-text-fill-color"},{...v,property:"-webkit-text-fill-color"}],labelPosition:{...n,property:"position"},labelTopPosition:{...n,property:"top"},labelHorizontalPosition:[{...n,property:"left"},{...n,property:"right"}],inputTransformY:{...n,property:"transform"},inputTransition:{...n,property:"transition"},marginInlineStart:{...n,property:"margin-inline-start"},placeholderOpacity:[{selector:"> input:placeholder-shown",property:"opacity"},{...b,property:"opacity"}],inputVerticalAlignment:[{...a,property:"align-items"},{...y,property:"align-items"}],valueInputHeight:[{...l,property:"height"},{...y,property:"height"}],valueInputMarginBottom:[{...l,property:"margin-bottom"},{...y,property:"margin-bottom"}],inputIconOffset:[{...g,property:"margin-right"},{...g,property:"margin-left"}],inputIconSize:{...g,property:"font-size"},inputIconColor:{...g,property:"color"}}},21374:(e,t,i)=>{i.r(t),i.d(t,{TextFieldClass:()=>r.w,componentName:()=>r.T}),i(11284),i(37182),i(95260);var r=i(79275);customElements.define(r.T,r.w)},79275:(e,t,i)=>{i.d(t,{T:()=>l,w:()=>d});var r=i(79365),n=i(6424),o=i(9696),s=i(97810),a=i(73551);const l=(0,s.xE)("text-field"),p=["type","label-type","copy-to-clipboard"],d=(0,o.Zz)((0,r.RF)({mappings:n.A}),r.VO,(0,r.OZ)({proxyProps:["value","selectionStart"],useProxyTargets:!0}),r.tQ,e=>class extends e{static get observedAttributes(){return p.concat(e.observedAttributes||[])}icon;init(){super.init?.()}renderCopyToClipboard(e){if(!e)return void this.icon?.remove();const t={icon:"vaadin:copy-o",title:"Copy",style:"cursor: pointer"},i={icon:"vaadin:check-circle-o",title:"Copied",style:"cursor: initial"};this.icon=Object.assign(document.createElement("vaadin-icon"),{slot:"suffix",...t}),this.baseElement.appendChild(this.icon),this.icon.addEventListener("click",()=>{navigator.clipboard.writeText(this.value),Object.assign(this.icon,i),setTimeout(()=>{Object.assign(this.icon,t)},5e3)})}onLabelClick(){this.focus()}attributeChangedCallback(e,t,i){super.attributeChangeCallback?.(e,t,i),"type"===e&&this.baseElement._setType(i),t!==i&&("label-type"===e?"floating"===i?this.addEventListener("click",this.onLabelClick):this.removeEventListener("click",this.onLabelClick):"copy-to-clipboard"===e&&this.renderCopyToClipboard("true"===i))}})((0,r.tz)({slots:["prefix","suffix"],wrappedEleName:"vaadin-text-field",style:()=>`\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tpadding: calc(var(${d.cssVarList.inputOutlineWidth}) + var(${d.cssVarList.inputOutlineOffset}));\n box-sizing: border-box;\n\t\t\t}\n :host(:is([readonly], [disabled])) ::slotted(:is(input, textarea):placeholder-shown) {\n opacity: 1;\n }\n\n vaadin-text-field[label-type="floating"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-text-field[label-type="floating"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n ${(0,a.$J)("vaadin-text-field")}\n\t\t\t${(0,a.cy)(d.cssVarList)}\n\t\t\t${(0,a.LJ)("vaadin-text-field",d.cssVarList)}\n ${(0,a.Kl)()}\n\n vaadin-text-field vaadin-icon {\n align-self: center;\n }\n\t\t`,excludeAttrsSync:["tabindex","style"],componentName:l}))},79981:(e,t,i)=>{i.r(t),i.d(t,{DateFieldClass:()=>V,componentName:()=>y}),i(45992),i(88350),i(21374);var r=i(3393),n=i(79365),o=i(97810),s=i(9696),a=i(49224),l=i(77421),p=i(80071),d=i(64101);class h{#e=Object.freeze([]);constructor({id:e,min:t,max:i,placeholder:r},n){this.id=e,this.min=t,this.max=i,this.placeholder=r,this.onChange=n}get data(){return this.#e}set data(e){this.#e=Object.freeze(e),this.onChange?.()}get#t(){return this.data.length?this.numberValue:0}get numberValue(){return Number(this.stringValue)}get stringValue(){return(this.data.join("")||this.placeholder).padStart(this.length,"0")}get isFull(){return 10*this.numberValue>this.max||this.data.length===this.length}get isEmpty(){return this.stringValue===this.placeholder}get length(){return this.max.toString().length}set(e){this.data=e.toString().split("")}add(e){let t=this.data;return t=[...t,e],Number(t.join(""))>this.max?t=[e]:this.length<t.length&&(t=t.slice(1,t.length)),this.data=t,e}del(){this.data.filter(e=>"0"!==e).filter(Boolean).length?this.data=this.data.slice(0,this.data.length-1):this.data=[]}clear(){this.data=[]}inc(e){this.replaceValue(this.#t<this.max?Math.max(this.#t+(e||1),this.min):this.min)}dec(e){this.replaceValue(this.#t>this.min?Math.min(this.#t-(e||1),this.max):this.max)}isInRange(e){return e>=this.min&&e<=this.max}replaceValue(e){this.isInRange(e)&&(this.data=e.toString().padStart(this.length,0).split(""))}setMin(e){this.min=Number(e)}setMax(e){this.max=Number(e)}}var c=i(79275),u=i(25964),g=i(15177);const y=(0,o.xE)("date-field"),m=(0,r.y)({componentName:y,baseSelector:"vaadin-popover"}),b=["format","opened","initial-value","readonly","disable-calendar","utc-time"],v=["years-range","calendar-months","calendar-weekdays"],C=[...b,...v],f=c.w.cssVarList,{host:x,input:E,inputEleRTL:w,toggleButton:I,overlay:T,backdrop:S,errorMessage:k}={host:{selector:()=>":host"},input:{selector:()=>"descope-text-field"},inputEleRTL:{selector:()=>':host([st-host-direction="rtl"]) descope-text-field'},toggleButton:{selector:()=>".toggle-calendar"},overlay:{selector:"vaadin-popover-overlay::part(overlay)"},backdrop:{selector:"vaadin-popover-overlay::part(backdrop)"}},V=(0,s.Zz)((0,n.RF)({componentNameOverride:(0,o.xE)("input-wrapper")}),(0,n.RF)({mappings:{iconMargin:{...I,property:"margin-inline-end"},hostWidth:{...x,property:"width"},hostDirection:{...x,property:"direction"},textAlign:{...E,property:"text-align"},rtlInputDirection:{...w,property:f.inputDirection},rtlInputAlignment:{...w,property:f.inputTextAlign},overlayGap:{property:()=>V.cssVarList.overlayGap},overlayBackgroundColor:{property:()=>V.cssVarList.overlayBackgroundColor},overlayPadding:{property:()=>V.cssVarList.overlayPadding},overlayBoxShadow:{property:()=>V.overlayBoxShadow},overlayOutlineWidth:{property:()=>V.cssVarList.overlayOutlineWidth},overlayOutlineColor:{property:()=>V.cssVarList.overlayOutlineColor},overlayOutlineStyle:{property:()=>V.cssVarList.overlayOutlineStyle},errorMessageIcon:{selector:c.w.componentName,property:c.w.cssVarList.errorMessageIcon},errorMessageIconSize:{selector:c.w.componentName,property:c.w.cssVarList.errorMessageIconSize},errorMessageIconPadding:{selector:c.w.componentName,property:c.w.cssVarList.errorMessageIconPadding},errorMessageIconRepeat:{selector:c.w.componentName,property:c.w.cssVarList.errorMessageIconRepeat},errorMessageIconPosition:{selector:c.w.componentName,property:c.w.cssVarList.errorMessageIconPosition},errorMessageFontSize:{selector:c.w.componentName,property:c.w.cssVarList.errorMessageFontSize}}}),(0,n.mA)({name:"overlay",selector:"",mappings:{marginTop:{...T,property:"margin-top"},backgroundColor:{...T},backdropBackgroundColor:{...S,property:"background-color"},backdropPointerEvents:{...S,property:"pointer-events"},padding:{...T},boxShadow:{...T},outlineWidth:{...T},outlineColor:{...T},outlineStyle:{...T}}}),n.VO,n.tQ)(class extends m{epoch="";format=d.ui;selectedCounterIdx=0;updateCountersDisplay(){this.inputElement.value=this.countersValue}updateValue(){if(this.isCountersOutOfRange)this.resetEpoch();else{const e=l.F[this.format].getDate(this.inputElement.value);this.updateEpoch((0,a.xq)(e,this.isUtcTime))}}onDateCounterChange=()=>{this.updateCountersDisplay(),this.updateValue(),this.#i()};updateEpoch(e){this.epoch=(0,a.xq)(e,this.isUtcTime)}dateCounters=[new h(d.rR.MONTH,this.onDateCounterChange.bind(this)),new h(d.rR.DAY,this.onDateCounterChange.bind(this)),new h(d.rR.YEAR,this.onDateCounterChange.bind(this))];static get observedAttributes(){return[].concat(m.observedAttributes||[],C)}constructor(){super(),this.attachShadow({mode:"open"}).innerHTML=`\n <div>\n <descope-text-field inputmode="numeric">\n <span slot="suffix" class="toggle-calendar">\n ${p.ki}\n </span>\n </descope-text-field>\n <vaadin-popover></vaadin-popover>\n </div>\n `,(0,u.fz)('\n :host {\n display: inline-block;\n box-sizing: border-box;\n user-select: none;\n max-width: 100%;\n }\n\n :host ::slotted {\n padding: 0;\n }\n\n .toggle-calendar {\n cursor: pointer;\n display: flex;\n align-self: center;\n z-index: 1;\n height: 100%;\n align-items: center;\n }\n\n :host([readonly="true"]) .toggle-calendar {\n pointer-events: none;\n }\n\n .hidden {\n display: none;\n }\n ',this),this.inputElement=this.shadowRoot.querySelector("descope-text-field"),this.popoverToggleButton=this.inputElement.querySelector(".toggle-calendar")}get validationTarget(){return this.inputElement}get opened(){return"true"===this.getAttribute("opened")}get displayValueEpoch(){const e=l.F[this.format].getDate(this.inputElement.value);return(0,a.mZ)(e?.getTime())?e.getTime():null}get sortedCounters(){return this.format.split(d.eT).map(e=>this.dateCounters.find(t=>t.placeholder===e))}get activeCounter(){return this.sortedCounters[this.selectedCounterIdx]}get countersValue(){return this.sortedCounters.map(e=>e.stringValue).join(d.eT)}get overlay(){return this.baseElement.shadowRoot?.querySelector("vaadin-popover-overlay")}get backdrop(){return this.overlay.shadowRoot?.querySelector("#backdrop")}get calendar(){return this.overlay?.querySelector("descope-calendar")}get isRTL(){const e=getComputedStyle(this.baseElement).getPropertyValue("direction");return e?"rtl"===e:"rtl"===this.getAttribute("st-host-direction")}get value(){return this.isInvalidDate()?"":this.epoch}set value(e){let t=parseInt(e,10);Number.isNaN(t)?(this.resetEpoch(),this.resetDateCounters(),this.clearInputEle()):(this.updateEpoch(t),this.updateDateCounters(new Date(t)))}resetEpoch(){this.epoch=""}get isCountersEmpty(){return this.dateCounters.every(e=>e.isEmpty)}get isCountersOutOfRange(){return this.dateCounters.some(e=>!e.isInRange(e.numberValue))}get disableCalendar(){return"true"===this.getAttribute("disable-calendar")}get isUtcTime(){return"true"===this.getAttribute("utc-time")}get isSelectAll(){const e=this.inputElement.baseElement.inputElement;return e.value.length===e.selectionStart+e.selectionEnd}reportValidity(){this.inputElement.reportValidity()}#i(){this.inputElement.baseElement.dispatchEvent(new Event("input",{bubbles:!0}))}updateInputDisplay(){this.inputElement.value=(0,a.jO)((0,g.N)(this.countersValue).getTime(),this.format)}init(){super.init?.(),this.updateFormatPattern(),this.initPopover(),this.onDateCounterChange(),this.initInputElement(),setTimeout(()=>{this.#r()},0)}initInputElement(){this.inputElement.getValidity=this.getValidity.bind(this),this.inputElement.baseElement.checkValidity=this.checkValidity.bind(this),this.popoverToggleButton.addEventListener("click",this.onPopoverToggle.bind(this)),this.inputElement.addEventListener("focus",this.onFocus.bind(this)),this.inputElement.addEventListener("blur",this.onBlur.bind(this)),this.inputElement.addEventListener("click",this.handleMouseCaretPositionChange.bind(this)),this.inputElement.addEventListener("keydown",this.handleKeyboard.bind(this)),this.inputElement.addEventListener("beforeinput",this.handleInput.bind(this)),this.inputElement.addEventListener("pointerdown",this.onPointerDown.bind(this)),this.inputElement.addEventListener("paste",this.onPaste.bind(this)),(0,o.EA)(this,this.inputElement,{includeAttrs:["label","label-type","placeholder","disabled","readonly","bordered","required","full-width","st-host-direction","pattern","bordered","data-errormessage-value-missing","data-errormessage-pattern-mismatch","data-errormessage-range-underflow","data-errormessage-range-overflow","st-error-message-icon","st-error-message-icon-size","st-error-message-icon-padding"]})}handleInput(e){e.preventDefault(),this.handleSelectAll(),e.data&&(0,a.Et)(e.data)?(this.parseDigits(e.data),this.updateCountersDisplay()):e.inputType&&this.handleNavKeys(e)}initPopover(){this.baseElement.trigger=["click"],this.baseElement.withBackdrop=!0,this.baseElement.renderer=this.#n.bind(this),this.baseElement.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation()})}handleSelectAll(){this.isSelectAll&&this.selectFirstCounter()}#o;#n(e){e.firstChild||(this.overlay.positionTarget=this.shadowRoot.querySelector(".toggle-calendar"),e.appendChild(this.#s()),(0,a.Xs)(this.baseElement),this.backdrop.addEventListener("click",this.closePopover.bind(this))),e.style.setProperty("visibility","hidden"),setTimeout(()=>{this.#a(e),e.style.setProperty("visibility","visible"),this.updateCalendarView(e)},100)}#a(){const e=this.shadowRoot.querySelector("vaadin-popover").shadowRoot;this.#o?.remove();const t=document.body.getBoundingClientRect(),i=this.getBoundingClientRect(),r=this.calendar.getBoundingClientRect(),n=this.isRTL?"right":"left",o=i[n]-r[n],s=r.left,a=t.width-r.right;let l;l=o>0?Math.min(o,a):-1*Math.min(Math.abs(o),s),(0,u.fz)(`\n vaadin-popover-overlay::part(overlay) {\n transform: translateX(${l}px);\n }\n `,e)}#s(){const e=document.createElement("span");e.innerHTML="<descope-calendar></descope-calendar>";const t=e.querySelector("descope-calendar");return t.addEventListener("date-submit",this.onCalendarSubmit.bind(this)),t.addEventListener("cancel",this.closePopover.bind(this)),e}#r(){this.overlay._attachOverlay=()=>this.overlay.bringToFront(),this.overlay._detachOverlay=()=>{},this.overlay._enterModalState=()=>{}}onPopoverToggle(){this.opened?this.closePopover():this.openPopover()}openPopover(){this.disableCalendar||this.setAttribute("opened","true")}closePopover(){this.removeAttribute("opened"),this.inputElement.focus()}getCounterById(e){return this.dateCounters.find(t=>t.id===e)}onCalendarSubmit(){if(!this.isReadOnly){if(!this.calendar.value)return;const e=(0,g.N)(this.calendar.value);this.value=(0,a.xq)(e,this.isUtcTime),this.getCounterById("year").replaceValue(e.getFullYear()),this.getCounterById("month").replaceValue(e.getMonth()+1),this.getCounterById("day").replaceValue(e.getDate()),this.#i()}this.closePopover()}updateCalendarView(){const e=(0,a.mZ)((0,g.N)(this.inputElement.value||"").getTime())&&l.F[this.format].validate(this.inputElement.value);this.displayValueEpoch||e?this.calendar.setAttribute("initial-value",(0,a.jO)(this.displayValueEpoch||this.epoch,d.wJ)):(this.calendar.clearValue(),this.calendar.setAttribute("preview",(0,a.jO)((0,a.Ln)(),d.wJ))),(0,o.EA)(this,this.calendar,{includeAttrs:["st-host-direction","readonly","initial-month","initial-year","years-range","calendar-label-submit","calendar-label-cancel","calendar-months","calendar-weekdays","calendar-weekdays-short"]})}onPointerDown(e){setTimeout(()=>this.handleMouseCaretPositionChange(e),d.SZ)}onFocus(){this.isReadOnly||setTimeout(()=>this.resetDisplay())}resetDisplay(){this.inputElement.value||(this.inputElement.value=this.format),this.selectFirstCounter(),this.inputElement.setSelectionRange(0,this.sortedCounters[0].length)}onBlur(){this.opened||this.inputElement.value===this.format&&this.clearInputEle()}clearInputEle(){this.inputElement.value=""}onFormatUpdate(e){Object.keys(l.F).includes(e)&&(this.format=e,this.updateFormatPattern())}updateFormatPattern(){const e=this.getAttribute("format")||this.format||d.ui;this.setAttribute("type","date"),this.setAttribute("pattern",l.F[e].pattern)}parseDigits(e){this.activeCounter.add(e),this.activeCounter.isFull&&this.selectNextCounter(),this.setInputSelectionRange()}getCounterIdx(e){const[t,i]=this.sortedCounters.map(e=>e.length);return[e<=t,e>=t&&e<=t+i+1,e>=t+i+2].indexOf(!0)}setSelectedCounterByCaretPosition(e){this.selectedCounterIdx=this.getCounterIdx(e.target?.selectionStart||this.inputElement.selectionStart)}selectFirstCounter(){this.selectedCounterIdx=0}selectNextCounter(){this.selectedCounterIdx<this.dateCounters.length&&(this.selectedCounterIdx=Math.min(this.selectedCounterIdx+1,2))}selectPrevCounter(){this.selectedCounterIdx>0&&(this.selectedCounterIdx=Math.min(this.selectedCounterIdx-1,1))}setInputSelectionRange(){this.selectedCounterIdx<0||setTimeout(()=>{const e=this.sortedCounters.slice(0,this.selectedCounterIdx).reduce((e,t)=>e+t.length,this.selectedCounterIdx);this.inputElement.setSelectionRange(e,e+this.sortedCounters[this.selectedCounterIdx].length)})}resetDateCounters(){this.dateCounters.forEach(e=>e.clear())}updateDateCounters(e){this.dateCounters.forEach(t=>{switch(t.id){case d.rR.MONTH.id:t.set(this.isUtcTime?e.getUTCMonth()+1:e.getMonth()+1);break;case d.rR.YEAR.id:t.set(this.isUtcTime?e.getUTCFullYear():e.getFullYear());break;case d.rR.DAY.id:t.set(this.isUtcTime?e.getUTCDate():e.getDate())}})}handleKeyboard(e){e.metaKey||e.ctrlKey?"x"===e.key.toLowerCase()&&this.onCut(e):(this.handleSelectAll(),"ArrowUp"===e.key?this.activeCounter.inc():"ArrowDown"===e.key?this.activeCounter.dec():"ArrowRight"===e.key?this.selectNextCounter():"ArrowLeft"===e.key&&this.selectPrevCounter(),this.setInputSelectionRange())}handleNavKeys(e){this.isReadOnly||(this.opened&&this.closePopover(),this.activeCounter&&("deleteContentBackward"===e.inputType&&this.handleBackspace(),this.setInputSelectionRange()))}handleBackspace(){if(this.isSelectAll)return void this.resetToInitialState();const e=this.activeCounter;e.isEmpty?(this.selectPrevCounter(),this.setInputSelectionRange()):e.set(""),setTimeout(()=>{this.updateCountersDisplay(),this.setInputSelectionRange()})}handleMouseCaretPositionChange(e){this.opened||(e.preventDefault(),this.setSelectedCounterByCaretPosition(e),this.setInputSelectionRange())}onInitialValueChange(e){this.value||setTimeout(()=>{Number.isNaN(parseInt(e,10))||(this.value=Number(e))})}togglePopoverAccess(e){e?this.popoverToggleButton.classList.remove("hidden"):this.popoverToggleButton.classList.add("hidden")}attributeChangedCallback(e,t,i){super.attributeChangedCallback?.(e,t,i),t!==i&&("disable-calendar"===e&&this.togglePopoverAccess("true"!==i),b.includes(e)?(i&&"format"===e&&this.onFormatUpdate(i),"initial-value"===e&&this.onInitialValueChange(i)):v.includes(e)&&(i?this.calendar?.setAttribute(e,i):this.calendar?.removeAttribute(e)))}isInvalidDate(){const e=this.getCounterById("year"),t=e.numberValue>d.nr.year.max||e.numberValue<d.nr.year.min,i=Object.entries(this.getDateVals()).some(([e,t])=>{const i=this.getCounterById(e);return!t||i.numberValue!==t});return t||i}getValidity(){return this.isRequired&&this.isCountersEmpty?{valueMissing:!0}:this.isCountersOutOfRange||this.isInvalidDate()?{patternMismatch:!0}:{}}getDateVals(){const e={day:"",month:"",year:""};if(Number.isNaN(this.epoch))return e;try{const t=new Date(this.epoch);this.isUtcTime?(e.month=t.getUTCMonth()+1,e.day=t.getUTCDate(),e.year=t.getUTCFullYear()):(e.month=t.getMonth()+1,e.day=t.getDate(),e.year=t.getFullYear())}catch(e){}return e}resetToInitialState(){this.resetDateCounters(),this.selectFirstCounter(),this.resetDisplay()}onCut(e){e.preventDefault(),this.isSelectAll?(this.#l(this.countersValue),this.resetToInitialState()):(this.#l(this.activeCounter.stringValue),this.activeCounter.set("")),this.setInputSelectionRange()}#l(e){try{navigator.clipboard.writeText(e)}catch(e){console.error("Failed to copy date value:",e)}}onPaste(e){e.preventDefault();const t=(e.clipboardData||window.clipboardData).getData("Text"),i=(0,a.Rm)(t,this.format);if(i)this.value=(0,a.xq)(i,this.isUtcTime),this.onDateCounterChange(),setTimeout(()=>this.inputElement.setSelectionRange(0,this.inputElement.value.length));else{const e=Number(t);e&&this.activeCounter.min<=e&&this.activeCounter.max>=e&&(this.activeCounter.set(String(e)),setTimeout(()=>this.setInputSelectionRange()))}}});customElements.define(y,V)}}]);
|
|
1
|
+
"use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[9257],{6424:(e,t,i)=>{i.d(t,{A:()=>C});const{host:r,label:n,placeholder:o,requiredIndicator:s,inputField:a,input:l,inputMask:p,helperText:d,errorMessage:h,disabledPlaceholder:c,inputDisabled:u,inputIcon:g,externalInput:y,externalInputDisabled:m,externalPlaceholder:b,externalDisabledPlaceholder:v}={host:{selector:()=>":host"},label:{selector:"::part(label)"},requiredIndicator:{selector:"[required]::part(required-indicator)::after"},placeholder:[{selector:"> input:placeholder-shown"},{selector:()=>":host::slotted(input:placeholder-shown)"}],disabledPlaceholder:{selector:"> input:disabled::placeholder"},inputField:{selector:"::part(input-field)"},input:{selector:"input"},inputMask:{selector:"::part(input-field)::before"},inputDisabled:{selector:"input:disabled"},helperText:{selector:"::part(helper-text)"},errorMessage:{selector:"::part(error-message)"},inputIcon:{selector:"vaadin-icon"},externalInput:{selector:()=>"::slotted(input)"},externalInputDisabled:{selector:()=>"::slotted(input:disabled)"},externalPlaceholder:{selector:()=>"::slotted(input:placeholder-shown)"},externalDisabledPlaceholder:{selector:()=>"::slotted(input:disabled::placeholder)"}},C={fontSize:[{},r],fontFamily:[n,a,d,h],labelFontSize:{...n,property:"font-size"},labelFontWeight:{...n,property:"font-weight"},labelTextColor:[{...n,property:"color"},{...s,property:"color"},{...n,property:"-webkit-text-fill-color"},{...s,property:"-webkit-text-fill-color"}],hostWidth:{...r,property:"width"},hostMinWidth:{...r,property:"min-width"},hostDirection:{...r,property:"direction"},inputDirection:{...l,property:"direction"},inputBackgroundColor:[{...a,property:"background-color"},{...p,property:"background-color"}],errorMessageTextColor:{...h,property:"color"},errorMessageIcon:{...h,property:"background-image"},errorMessageIconSize:{...h,property:"background-size"},errorMessageIconPadding:{...h,property:"padding-inline-start"},errorMessageIconRepeat:{...h,property:"background-repeat"},errorMessageIconPosition:{...h,property:"background-position"},errorMessageFontSize:{...h,property:"font-size"},helperTextColor:{...d,property:"-webkit-text-fill-color"},inputValueTextColor:[{...a,property:"color"},{...u,property:"-webkit-text-fill-color"},{...m,property:"-webkit-text-fill-color"}],inputCaretTextColor:[{...l,property:"caret-color"},{...y,property:"caret-color"}],labelRequiredIndicator:{...s,property:"content"},inputBorderColor:{...a,property:"border-color"},inputBorderWidth:{...a,property:"border-width"},inputBorderStyle:{...a,property:"border-style"},inputBorderRadius:{...a,property:"border-radius"},inputHeight:{...a,property:"height"},inputHorizontalPadding:[{...l,property:"padding-left"},{...l,property:"padding-right"},{...y,property:"padding-left"},{...y,property:"padding-right"}],inputOutlineColor:{...a,property:"outline-color"},inputOutlineStyle:{...a,property:"outline-style"},inputOutlineWidth:{...a,property:"outline-width"},inputOutlineOffset:{...a,property:"outline-offset"},textAlign:{},inputTextAlign:[{...l,property:"text-align"},{...y,property:"text-align"}],inputPlaceholderColor:[{selector:()=>":host input:placeholder-shown",property:"color"},{...b,property:"color"},{...o,property:"color"},{...c,property:"-webkit-text-fill-color"},{...v,property:"-webkit-text-fill-color"}],labelPosition:{...n,property:"position"},labelTopPosition:{...n,property:"top"},labelHorizontalPosition:[{...n,property:"left"},{...n,property:"right"}],inputTransformY:{...n,property:"transform"},inputTransition:{...n,property:"transition"},marginInlineStart:{...n,property:"margin-inline-start"},placeholderOpacity:[{selector:"> input:placeholder-shown",property:"opacity"},{...b,property:"opacity"}],inputVerticalAlignment:[{...a,property:"align-items"},{...y,property:"align-items"}],valueInputHeight:[{...l,property:"height"},{...y,property:"height"}],valueInputMarginBottom:[{...l,property:"margin-bottom"},{...y,property:"margin-bottom"}],inputIconOffset:[{...g,property:"margin-right"},{...g,property:"margin-left"}],inputIconSize:{...g,property:"font-size"},inputIconColor:{...g,property:"color"}}},21374:(e,t,i)=>{i.r(t),i.d(t,{TextFieldClass:()=>r.w,componentName:()=>r.T}),i(11284),i(37182),i(95260);var r=i(79275);customElements.define(r.T,r.w)},79275:(e,t,i)=>{i.d(t,{T:()=>l,w:()=>d});var r=i(79365),n=i(6424),o=i(9696),s=i(97810),a=i(73551);const l=(0,s.xE)("text-field"),p=["type","label-type","copy-to-clipboard"],d=(0,o.Zz)((0,r.RF)({mappings:n.A}),r.VO,(0,r.OZ)({proxyProps:["value","selectionStart"],useProxyTargets:!0}),r.tQ,e=>class extends e{static get observedAttributes(){return p.concat(e.observedAttributes||[])}icon;init(){super.init?.()}renderCopyToClipboard(e){if(!e)return void this.icon?.remove();const t={icon:"vaadin:copy-o",title:"Copy",style:"cursor: pointer"},i={icon:"vaadin:check-circle-o",title:"Copied",style:"cursor: initial"};this.icon=Object.assign(document.createElement("vaadin-icon"),{slot:"suffix",...t}),this.baseElement.appendChild(this.icon),this.icon.addEventListener("click",()=>{navigator.clipboard.writeText(this.value),Object.assign(this.icon,i),setTimeout(()=>{Object.assign(this.icon,t)},5e3)})}onLabelClick(){this.focus()}attributeChangedCallback(e,t,i){super.attributeChangeCallback?.(e,t,i),"type"===e&&this.baseElement._setType(i),t!==i&&("label-type"===e?"floating"===i?this.addEventListener("click",this.onLabelClick):this.removeEventListener("click",this.onLabelClick):"copy-to-clipboard"===e&&this.renderCopyToClipboard("true"===i))}})((0,r.tz)({slots:["prefix","suffix"],wrappedEleName:"vaadin-text-field",style:()=>`\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tpadding: calc(var(${d.cssVarList.inputOutlineWidth}) + var(${d.cssVarList.inputOutlineOffset}));\n box-sizing: border-box;\n\t\t\t}\n :host(:is([readonly], [disabled])) ::slotted(:is(input, textarea):placeholder-shown) {\n opacity: 1;\n }\n\n vaadin-text-field[label-type="floating"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-text-field[label-type="floating"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n ${(0,a.$J)("vaadin-text-field")}\n\t\t\t${(0,a.cy)(d.cssVarList)}\n\t\t\t${(0,a.LJ)("vaadin-text-field",d.cssVarList)}\n ${(0,a.Kl)()}\n\n vaadin-text-field vaadin-icon {\n align-self: center;\n }\n\t\t`,excludeAttrsSync:["tabindex","style"],componentName:l}))},79981:(e,t,i)=>{i.r(t),i.d(t,{DateFieldClass:()=>V,componentName:()=>y}),i(20428),i(88350),i(21374);var r=i(3393),n=i(79365),o=i(97810),s=i(9696),a=i(49224),l=i(77421),p=i(80071),d=i(64101);class h{#e=Object.freeze([]);constructor({id:e,min:t,max:i,placeholder:r},n){this.id=e,this.min=t,this.max=i,this.placeholder=r,this.onChange=n}get data(){return this.#e}set data(e){this.#e=Object.freeze(e),this.onChange?.()}get#t(){return this.data.length?this.numberValue:0}get numberValue(){return Number(this.stringValue)}get stringValue(){return(this.data.join("")||this.placeholder).padStart(this.length,"0")}get isFull(){return 10*this.numberValue>this.max||this.data.length===this.length}get isEmpty(){return this.stringValue===this.placeholder}get length(){return this.max.toString().length}set(e){this.data=e.toString().split("")}add(e){let t=this.data;return t=[...t,e],Number(t.join(""))>this.max?t=[e]:this.length<t.length&&(t=t.slice(1,t.length)),this.data=t,e}del(){this.data.filter(e=>"0"!==e).filter(Boolean).length?this.data=this.data.slice(0,this.data.length-1):this.data=[]}clear(){this.data=[]}inc(e){this.replaceValue(this.#t<this.max?Math.max(this.#t+(e||1),this.min):this.min)}dec(e){this.replaceValue(this.#t>this.min?Math.min(this.#t-(e||1),this.max):this.max)}isInRange(e){return e>=this.min&&e<=this.max}replaceValue(e){this.isInRange(e)&&(this.data=e.toString().padStart(this.length,0).split(""))}setMin(e){this.min=Number(e)}setMax(e){this.max=Number(e)}}var c=i(79275),u=i(25964),g=i(15177);const y=(0,o.xE)("date-field"),m=(0,r.y)({componentName:y,baseSelector:"vaadin-popover"}),b=["format","opened","initial-value","readonly","disable-calendar","utc-time"],v=["years-range","calendar-months","calendar-weekdays"],C=[...b,...v],f=c.w.cssVarList,{host:x,input:E,inputEleRTL:w,toggleButton:I,overlay:T,backdrop:S,errorMessage:k}={host:{selector:()=>":host"},input:{selector:()=>"descope-text-field"},inputEleRTL:{selector:()=>':host([st-host-direction="rtl"]) descope-text-field'},toggleButton:{selector:()=>".toggle-calendar"},overlay:{selector:"vaadin-popover-overlay::part(overlay)"},backdrop:{selector:"vaadin-popover-overlay::part(backdrop)"}},V=(0,s.Zz)((0,n.RF)({componentNameOverride:(0,o.xE)("input-wrapper")}),(0,n.RF)({mappings:{iconMargin:{...I,property:"margin-inline-end"},hostWidth:{...x,property:"width"},hostDirection:{...x,property:"direction"},textAlign:{...E,property:"text-align"},rtlInputDirection:{...w,property:f.inputDirection},rtlInputAlignment:{...w,property:f.inputTextAlign},overlayGap:{property:()=>V.cssVarList.overlayGap},overlayBackgroundColor:{property:()=>V.cssVarList.overlayBackgroundColor},overlayPadding:{property:()=>V.cssVarList.overlayPadding},overlayBoxShadow:{property:()=>V.overlayBoxShadow},overlayOutlineWidth:{property:()=>V.cssVarList.overlayOutlineWidth},overlayOutlineColor:{property:()=>V.cssVarList.overlayOutlineColor},overlayOutlineStyle:{property:()=>V.cssVarList.overlayOutlineStyle},errorMessageIcon:{selector:c.w.componentName,property:c.w.cssVarList.errorMessageIcon},errorMessageIconSize:{selector:c.w.componentName,property:c.w.cssVarList.errorMessageIconSize},errorMessageIconPadding:{selector:c.w.componentName,property:c.w.cssVarList.errorMessageIconPadding},errorMessageIconRepeat:{selector:c.w.componentName,property:c.w.cssVarList.errorMessageIconRepeat},errorMessageIconPosition:{selector:c.w.componentName,property:c.w.cssVarList.errorMessageIconPosition},errorMessageFontSize:{selector:c.w.componentName,property:c.w.cssVarList.errorMessageFontSize}}}),(0,n.mA)({name:"overlay",selector:"",mappings:{marginTop:{...T,property:"margin-top"},backgroundColor:{...T},backdropBackgroundColor:{...S,property:"background-color"},backdropPointerEvents:{...S,property:"pointer-events"},padding:{...T},boxShadow:{...T},outlineWidth:{...T},outlineColor:{...T},outlineStyle:{...T}}}),n.VO,n.tQ)(class extends m{epoch="";format=d.ui;selectedCounterIdx=0;updateCountersDisplay(){this.inputElement.value=this.countersValue}updateValue(){if(this.isCountersOutOfRange)this.resetEpoch();else{const e=l.F[this.format].getDate(this.inputElement.value);this.updateEpoch((0,a.xq)(e,this.isUtcTime))}}onDateCounterChange=()=>{this.updateCountersDisplay(),this.updateValue(),this.#i()};updateEpoch(e){this.epoch=(0,a.xq)(e,this.isUtcTime)}dateCounters=[new h(d.rR.MONTH,this.onDateCounterChange.bind(this)),new h(d.rR.DAY,this.onDateCounterChange.bind(this)),new h(d.rR.YEAR,this.onDateCounterChange.bind(this))];static get observedAttributes(){return[].concat(m.observedAttributes||[],C)}constructor(){super(),this.attachShadow({mode:"open"}).innerHTML=`\n <div>\n <descope-text-field inputmode="numeric">\n <span slot="suffix" class="toggle-calendar">\n ${p.ki}\n </span>\n </descope-text-field>\n <vaadin-popover></vaadin-popover>\n </div>\n `,(0,u.fz)('\n :host {\n display: inline-block;\n box-sizing: border-box;\n user-select: none;\n max-width: 100%;\n }\n\n :host ::slotted {\n padding: 0;\n }\n\n .toggle-calendar {\n cursor: pointer;\n display: flex;\n align-self: center;\n z-index: 1;\n height: 100%;\n align-items: center;\n }\n\n :host([readonly="true"]) .toggle-calendar {\n pointer-events: none;\n }\n\n .hidden {\n display: none;\n }\n ',this),this.inputElement=this.shadowRoot.querySelector("descope-text-field"),this.popoverToggleButton=this.inputElement.querySelector(".toggle-calendar")}get validationTarget(){return this.inputElement}get opened(){return"true"===this.getAttribute("opened")}get displayValueEpoch(){const e=l.F[this.format].getDate(this.inputElement.value);return(0,a.mZ)(e?.getTime())?e.getTime():null}get sortedCounters(){return this.format.split(d.eT).map(e=>this.dateCounters.find(t=>t.placeholder===e))}get activeCounter(){return this.sortedCounters[this.selectedCounterIdx]}get countersValue(){return this.sortedCounters.map(e=>e.stringValue).join(d.eT)}get overlay(){return this.baseElement.shadowRoot?.querySelector("vaadin-popover-overlay")}get backdrop(){return this.overlay.shadowRoot?.querySelector("#backdrop")}get calendar(){return this.overlay?.querySelector("descope-calendar")}get isRTL(){const e=getComputedStyle(this.baseElement).getPropertyValue("direction");return e?"rtl"===e:"rtl"===this.getAttribute("st-host-direction")}get value(){return this.isInvalidDate()?"":this.epoch}set value(e){let t=parseInt(e,10);Number.isNaN(t)?(this.resetEpoch(),this.resetDateCounters(),this.clearInputEle()):(this.updateEpoch(t),this.updateDateCounters(new Date(t)))}resetEpoch(){this.epoch=""}get isCountersEmpty(){return this.dateCounters.every(e=>e.isEmpty)}get isCountersOutOfRange(){return this.dateCounters.some(e=>!e.isInRange(e.numberValue))}get disableCalendar(){return"true"===this.getAttribute("disable-calendar")}get isUtcTime(){return"true"===this.getAttribute("utc-time")}get isSelectAll(){const e=this.inputElement.baseElement.inputElement;return e.value.length===e.selectionStart+e.selectionEnd}reportValidity(){this.inputElement.reportValidity()}#i(){this.inputElement.baseElement.dispatchEvent(new Event("input",{bubbles:!0}))}updateInputDisplay(){this.inputElement.value=(0,a.jO)((0,g.N)(this.countersValue).getTime(),this.format)}init(){super.init?.(),this.updateFormatPattern(),this.initPopover(),this.onDateCounterChange(),this.initInputElement(),setTimeout(()=>{this.#r()},0)}initInputElement(){this.inputElement.getValidity=this.getValidity.bind(this),this.inputElement.baseElement.checkValidity=this.checkValidity.bind(this),this.popoverToggleButton.addEventListener("click",this.onPopoverToggle.bind(this)),this.inputElement.addEventListener("focus",this.onFocus.bind(this)),this.inputElement.addEventListener("blur",this.onBlur.bind(this)),this.inputElement.addEventListener("click",this.handleMouseCaretPositionChange.bind(this)),this.inputElement.addEventListener("keydown",this.handleKeyboard.bind(this)),this.inputElement.addEventListener("beforeinput",this.handleInput.bind(this)),this.inputElement.addEventListener("pointerdown",this.onPointerDown.bind(this)),this.inputElement.addEventListener("paste",this.onPaste.bind(this)),(0,o.EA)(this,this.inputElement,{includeAttrs:["label","label-type","placeholder","disabled","readonly","bordered","required","full-width","st-host-direction","pattern","bordered","data-errormessage-value-missing","data-errormessage-pattern-mismatch","data-errormessage-range-underflow","data-errormessage-range-overflow","st-error-message-icon","st-error-message-icon-size","st-error-message-icon-padding"]})}handleInput(e){e.preventDefault(),this.handleSelectAll(),e.data&&(0,a.Et)(e.data)?(this.parseDigits(e.data),this.updateCountersDisplay()):e.inputType&&this.handleNavKeys(e)}initPopover(){this.baseElement.trigger=["click"],this.baseElement.withBackdrop=!0,this.baseElement.renderer=this.#n.bind(this),this.baseElement.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation()})}handleSelectAll(){this.isSelectAll&&this.selectFirstCounter()}#o;#n(e){e.firstChild||(this.overlay.positionTarget=this.shadowRoot.querySelector(".toggle-calendar"),e.appendChild(this.#s()),(0,a.Xs)(this.baseElement),this.backdrop.addEventListener("click",this.closePopover.bind(this))),e.style.setProperty("visibility","hidden"),setTimeout(()=>{this.#a(e),e.style.setProperty("visibility","visible"),this.updateCalendarView(e)},100)}#a(){const e=this.shadowRoot.querySelector("vaadin-popover").shadowRoot;this.#o?.remove();const t=document.body.getBoundingClientRect(),i=this.getBoundingClientRect(),r=this.calendar.getBoundingClientRect(),n=this.isRTL?"right":"left",o=i[n]-r[n],s=r.left,a=t.width-r.right;let l;l=o>0?Math.min(o,a):-1*Math.min(Math.abs(o),s),(0,u.fz)(`\n vaadin-popover-overlay::part(overlay) {\n transform: translateX(${l}px);\n }\n `,e)}#s(){const e=document.createElement("span");e.innerHTML="<descope-calendar></descope-calendar>";const t=e.querySelector("descope-calendar");return t.addEventListener("date-submit",this.onCalendarSubmit.bind(this)),t.addEventListener("cancel",this.closePopover.bind(this)),e}#r(){this.overlay._attachOverlay=()=>this.overlay.bringToFront(),this.overlay._detachOverlay=()=>{},this.overlay._enterModalState=()=>{}}onPopoverToggle(){this.opened?this.closePopover():this.openPopover()}openPopover(){this.disableCalendar||this.setAttribute("opened","true")}closePopover(){this.removeAttribute("opened"),this.inputElement.focus()}getCounterById(e){return this.dateCounters.find(t=>t.id===e)}onCalendarSubmit(){if(!this.isReadOnly){if(!this.calendar.value)return;const e=(0,g.N)(this.calendar.value);this.value=(0,a.xq)(e,this.isUtcTime),this.getCounterById("year").replaceValue(e.getFullYear()),this.getCounterById("month").replaceValue(e.getMonth()+1),this.getCounterById("day").replaceValue(e.getDate()),this.#i()}this.closePopover()}updateCalendarView(){const e=(0,a.mZ)((0,g.N)(this.inputElement.value||"").getTime())&&l.F[this.format].validate(this.inputElement.value);this.displayValueEpoch||e?this.calendar.setAttribute("initial-value",(0,a.jO)(this.displayValueEpoch||this.epoch,d.wJ)):(this.calendar.clearValue(),this.calendar.setAttribute("preview",(0,a.jO)((0,a.Ln)(),d.wJ))),(0,o.EA)(this,this.calendar,{includeAttrs:["st-host-direction","readonly","initial-month","initial-year","years-range","calendar-label-submit","calendar-label-cancel","calendar-months","calendar-weekdays","calendar-weekdays-short"]})}onPointerDown(e){setTimeout(()=>this.handleMouseCaretPositionChange(e),d.SZ)}onFocus(){this.isReadOnly||setTimeout(()=>this.resetDisplay())}resetDisplay(){this.inputElement.value||(this.inputElement.value=this.format),this.selectFirstCounter(),this.inputElement.setSelectionRange(0,this.sortedCounters[0].length)}onBlur(){this.opened||this.inputElement.value===this.format&&this.clearInputEle()}clearInputEle(){this.inputElement.value=""}onFormatUpdate(e){Object.keys(l.F).includes(e)&&(this.format=e,this.updateFormatPattern())}updateFormatPattern(){const e=this.getAttribute("format")||this.format||d.ui;this.setAttribute("type","date"),this.setAttribute("pattern",l.F[e].pattern)}parseDigits(e){this.activeCounter.add(e),this.activeCounter.isFull&&this.selectNextCounter(),this.setInputSelectionRange()}getCounterIdx(e){const[t,i]=this.sortedCounters.map(e=>e.length);return[e<=t,e>=t&&e<=t+i+1,e>=t+i+2].indexOf(!0)}setSelectedCounterByCaretPosition(e){this.selectedCounterIdx=this.getCounterIdx(e.target?.selectionStart||this.inputElement.selectionStart)}selectFirstCounter(){this.selectedCounterIdx=0}selectNextCounter(){this.selectedCounterIdx<this.dateCounters.length&&(this.selectedCounterIdx=Math.min(this.selectedCounterIdx+1,2))}selectPrevCounter(){this.selectedCounterIdx>0&&(this.selectedCounterIdx=Math.min(this.selectedCounterIdx-1,1))}setInputSelectionRange(){this.selectedCounterIdx<0||setTimeout(()=>{const e=this.sortedCounters.slice(0,this.selectedCounterIdx).reduce((e,t)=>e+t.length,this.selectedCounterIdx);this.inputElement.setSelectionRange(e,e+this.sortedCounters[this.selectedCounterIdx].length)})}resetDateCounters(){this.dateCounters.forEach(e=>e.clear())}updateDateCounters(e){this.dateCounters.forEach(t=>{switch(t.id){case d.rR.MONTH.id:t.set(this.isUtcTime?e.getUTCMonth()+1:e.getMonth()+1);break;case d.rR.YEAR.id:t.set(this.isUtcTime?e.getUTCFullYear():e.getFullYear());break;case d.rR.DAY.id:t.set(this.isUtcTime?e.getUTCDate():e.getDate())}})}handleKeyboard(e){e.metaKey||e.ctrlKey?"x"===e.key.toLowerCase()&&this.onCut(e):(this.handleSelectAll(),"ArrowUp"===e.key?this.activeCounter.inc():"ArrowDown"===e.key?this.activeCounter.dec():"ArrowRight"===e.key?this.selectNextCounter():"ArrowLeft"===e.key&&this.selectPrevCounter(),this.setInputSelectionRange())}handleNavKeys(e){this.isReadOnly||(this.opened&&this.closePopover(),this.activeCounter&&("deleteContentBackward"===e.inputType&&this.handleBackspace(),this.setInputSelectionRange()))}handleBackspace(){if(this.isSelectAll)return void this.resetToInitialState();const e=this.activeCounter;e.isEmpty?(this.selectPrevCounter(),this.setInputSelectionRange()):e.set(""),setTimeout(()=>{this.updateCountersDisplay(),this.setInputSelectionRange()})}handleMouseCaretPositionChange(e){this.opened||(e.preventDefault(),this.setSelectedCounterByCaretPosition(e),this.setInputSelectionRange())}onInitialValueChange(e){this.value||setTimeout(()=>{Number.isNaN(parseInt(e,10))||(this.value=Number(e))})}togglePopoverAccess(e){e?this.popoverToggleButton.classList.remove("hidden"):this.popoverToggleButton.classList.add("hidden")}attributeChangedCallback(e,t,i){super.attributeChangedCallback?.(e,t,i),t!==i&&("disable-calendar"===e&&this.togglePopoverAccess("true"!==i),b.includes(e)?(i&&"format"===e&&this.onFormatUpdate(i),"initial-value"===e&&this.onInitialValueChange(i)):v.includes(e)&&(i?this.calendar?.setAttribute(e,i):this.calendar?.removeAttribute(e)))}isInvalidDate(){const e=this.getCounterById("year"),t=e.numberValue>d.nr.year.max||e.numberValue<d.nr.year.min,i=Object.entries(this.getDateVals()).some(([e,t])=>{const i=this.getCounterById(e);return!t||i.numberValue!==t});return t||i}getValidity(){return this.isRequired&&this.isCountersEmpty?{valueMissing:!0}:this.isCountersOutOfRange||this.isInvalidDate()?{patternMismatch:!0}:{}}getDateVals(){const e={day:"",month:"",year:""};if(Number.isNaN(this.epoch))return e;try{const t=new Date(this.epoch);this.isUtcTime?(e.month=t.getUTCMonth()+1,e.day=t.getUTCDate(),e.year=t.getUTCFullYear()):(e.month=t.getMonth()+1,e.day=t.getDate(),e.year=t.getFullYear())}catch(e){}return e}resetToInitialState(){this.resetDateCounters(),this.selectFirstCounter(),this.resetDisplay()}onCut(e){e.preventDefault(),this.isSelectAll?(this.#l(this.countersValue),this.resetToInitialState()):(this.#l(this.activeCounter.stringValue),this.activeCounter.set("")),this.setInputSelectionRange()}#l(e){try{navigator.clipboard.writeText(e)}catch(e){console.error("Failed to copy date value:",e)}}onPaste(e){e.preventDefault();const t=(e.clipboardData||window.clipboardData).getData("Text"),i=(0,a.Rm)(t,this.format);if(i)this.value=(0,a.xq)(i,this.isUtcTime),this.onDateCounterChange(),setTimeout(()=>this.inputElement.setSelectionRange(0,this.inputElement.value.length));else{const e=Number(t);e&&this.activeCounter.min<=e&&this.activeCounter.max>=e&&(this.activeCounter.set(String(e)),setTimeout(()=>this.setInputSelectionRange()))}}});customElements.define(y,V)}}]);
|
|
2
2
|
//# sourceMappingURL=descope-date-field-index-js.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*! For license information please see descope-email-field-index-js.js.LICENSE.txt */
|
|
2
|
-
"use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[4838,5695],{6424:(t,e,r)=>{r.d(e,{A:()=>x});const{host:i,label:o,placeholder:l,requiredIndicator:n,inputField:a,input:p,inputMask:s,helperText:d,errorMessage:u,disabledPlaceholder:c,inputDisabled:h,inputIcon:y,externalInput:m,externalInputDisabled:g,externalPlaceholder:f,externalDisabledPlaceholder:b}={host:{selector:()=>":host"},label:{selector:"::part(label)"},requiredIndicator:{selector:"[required]::part(required-indicator)::after"},placeholder:[{selector:"> input:placeholder-shown"},{selector:()=>":host::slotted(input:placeholder-shown)"}],disabledPlaceholder:{selector:"> input:disabled::placeholder"},inputField:{selector:"::part(input-field)"},input:{selector:"input"},inputMask:{selector:"::part(input-field)::before"},inputDisabled:{selector:"input:disabled"},helperText:{selector:"::part(helper-text)"},errorMessage:{selector:"::part(error-message)"},inputIcon:{selector:"vaadin-icon"},externalInput:{selector:()=>"::slotted(input)"},externalInputDisabled:{selector:()=>"::slotted(input:disabled)"},externalPlaceholder:{selector:()=>"::slotted(input:placeholder-shown)"},externalDisabledPlaceholder:{selector:()=>"::slotted(input:disabled::placeholder)"}},x={fontSize:[{},i],fontFamily:[o,a,d,u],labelFontSize:{...o,property:"font-size"},labelFontWeight:{...o,property:"font-weight"},labelTextColor:[{...o,property:"color"},{...n,property:"color"},{...o,property:"-webkit-text-fill-color"},{...n,property:"-webkit-text-fill-color"}],hostWidth:{...i,property:"width"},hostMinWidth:{...i,property:"min-width"},hostDirection:{...i,property:"direction"},inputDirection:{...p,property:"direction"},inputBackgroundColor:[{...a,property:"background-color"},{...s,property:"background-color"}],errorMessageTextColor:{...u,property:"color"},errorMessageIcon:{...u,property:"background-image"},errorMessageIconSize:{...u,property:"background-size"},errorMessageIconPadding:{...u,property:"padding-inline-start"},errorMessageIconRepeat:{...u,property:"background-repeat"},errorMessageIconPosition:{...u,property:"background-position"},errorMessageFontSize:{...u,property:"font-size"},helperTextColor:{...d,property:"-webkit-text-fill-color"},inputValueTextColor:[{...a,property:"color"},{...h,property:"-webkit-text-fill-color"},{...g,property:"-webkit-text-fill-color"}],inputCaretTextColor:[{...p,property:"caret-color"},{...m,property:"caret-color"}],labelRequiredIndicator:{...n,property:"content"},inputBorderColor:{...a,property:"border-color"},inputBorderWidth:{...a,property:"border-width"},inputBorderStyle:{...a,property:"border-style"},inputBorderRadius:{...a,property:"border-radius"},inputHeight:{...a,property:"height"},inputHorizontalPadding:[{...p,property:"padding-left"},{...p,property:"padding-right"},{...m,property:"padding-left"},{...m,property:"padding-right"}],inputOutlineColor:{...a,property:"outline-color"},inputOutlineStyle:{...a,property:"outline-style"},inputOutlineWidth:{...a,property:"outline-width"},inputOutlineOffset:{...a,property:"outline-offset"},textAlign:{},inputTextAlign:[{...p,property:"text-align"},{...m,property:"text-align"}],inputPlaceholderColor:[{selector:()=>":host input:placeholder-shown",property:"color"},{...f,property:"color"},{...l,property:"color"},{...c,property:"-webkit-text-fill-color"},{...b,property:"-webkit-text-fill-color"}],labelPosition:{...o,property:"position"},labelTopPosition:{...o,property:"top"},labelHorizontalPosition:[{...o,property:"left"},{...o,property:"right"}],inputTransformY:{...o,property:"transform"},inputTransition:{...o,property:"transition"},marginInlineStart:{...o,property:"margin-inline-start"},placeholderOpacity:[{selector:"> input:placeholder-shown",property:"opacity"},{...f,property:"opacity"}],inputVerticalAlignment:[{...a,property:"align-items"},{...m,property:"align-items"}],valueInputHeight:[{...p,property:"height"},{...m,property:"height"}],valueInputMarginBottom:[{...p,property:"margin-bottom"},{...m,property:"margin-bottom"}],inputIconOffset:[{...y,property:"margin-right"},{...y,property:"margin-left"}],inputIconSize:{...y,property:"font-size"},inputIconColor:{...y,property:"color"}}},18330:(t,e,r)=>{r.d(e,{f:()=>o});var i=r(44099);class o extends i.r{constructor(t,e){super(t,"input","input",{initializer:(t,r)=>{r.value&&(t.value=r.value),r.type&&t.setAttribute("type",r.type),t.id=this.defaultId,"function"==typeof e&&e(t)},useUniqueId:!0})}}},27136:(t,e,r)=>{r.d(e,{A:()=>h}),r(86689);var i=r(13256),o=r(82901),l=r(
|
|
2
|
+
"use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[4838,5695],{6424:(t,e,r)=>{r.d(e,{A:()=>x});const{host:i,label:o,placeholder:l,requiredIndicator:n,inputField:a,input:p,inputMask:s,helperText:d,errorMessage:u,disabledPlaceholder:c,inputDisabled:h,inputIcon:y,externalInput:m,externalInputDisabled:g,externalPlaceholder:f,externalDisabledPlaceholder:b}={host:{selector:()=>":host"},label:{selector:"::part(label)"},requiredIndicator:{selector:"[required]::part(required-indicator)::after"},placeholder:[{selector:"> input:placeholder-shown"},{selector:()=>":host::slotted(input:placeholder-shown)"}],disabledPlaceholder:{selector:"> input:disabled::placeholder"},inputField:{selector:"::part(input-field)"},input:{selector:"input"},inputMask:{selector:"::part(input-field)::before"},inputDisabled:{selector:"input:disabled"},helperText:{selector:"::part(helper-text)"},errorMessage:{selector:"::part(error-message)"},inputIcon:{selector:"vaadin-icon"},externalInput:{selector:()=>"::slotted(input)"},externalInputDisabled:{selector:()=>"::slotted(input:disabled)"},externalPlaceholder:{selector:()=>"::slotted(input:placeholder-shown)"},externalDisabledPlaceholder:{selector:()=>"::slotted(input:disabled::placeholder)"}},x={fontSize:[{},i],fontFamily:[o,a,d,u],labelFontSize:{...o,property:"font-size"},labelFontWeight:{...o,property:"font-weight"},labelTextColor:[{...o,property:"color"},{...n,property:"color"},{...o,property:"-webkit-text-fill-color"},{...n,property:"-webkit-text-fill-color"}],hostWidth:{...i,property:"width"},hostMinWidth:{...i,property:"min-width"},hostDirection:{...i,property:"direction"},inputDirection:{...p,property:"direction"},inputBackgroundColor:[{...a,property:"background-color"},{...s,property:"background-color"}],errorMessageTextColor:{...u,property:"color"},errorMessageIcon:{...u,property:"background-image"},errorMessageIconSize:{...u,property:"background-size"},errorMessageIconPadding:{...u,property:"padding-inline-start"},errorMessageIconRepeat:{...u,property:"background-repeat"},errorMessageIconPosition:{...u,property:"background-position"},errorMessageFontSize:{...u,property:"font-size"},helperTextColor:{...d,property:"-webkit-text-fill-color"},inputValueTextColor:[{...a,property:"color"},{...h,property:"-webkit-text-fill-color"},{...g,property:"-webkit-text-fill-color"}],inputCaretTextColor:[{...p,property:"caret-color"},{...m,property:"caret-color"}],labelRequiredIndicator:{...n,property:"content"},inputBorderColor:{...a,property:"border-color"},inputBorderWidth:{...a,property:"border-width"},inputBorderStyle:{...a,property:"border-style"},inputBorderRadius:{...a,property:"border-radius"},inputHeight:{...a,property:"height"},inputHorizontalPadding:[{...p,property:"padding-left"},{...p,property:"padding-right"},{...m,property:"padding-left"},{...m,property:"padding-right"}],inputOutlineColor:{...a,property:"outline-color"},inputOutlineStyle:{...a,property:"outline-style"},inputOutlineWidth:{...a,property:"outline-width"},inputOutlineOffset:{...a,property:"outline-offset"},textAlign:{},inputTextAlign:[{...p,property:"text-align"},{...m,property:"text-align"}],inputPlaceholderColor:[{selector:()=>":host input:placeholder-shown",property:"color"},{...f,property:"color"},{...l,property:"color"},{...c,property:"-webkit-text-fill-color"},{...b,property:"-webkit-text-fill-color"}],labelPosition:{...o,property:"position"},labelTopPosition:{...o,property:"top"},labelHorizontalPosition:[{...o,property:"left"},{...o,property:"right"}],inputTransformY:{...o,property:"transform"},inputTransition:{...o,property:"transition"},marginInlineStart:{...o,property:"margin-inline-start"},placeholderOpacity:[{selector:"> input:placeholder-shown",property:"opacity"},{...f,property:"opacity"}],inputVerticalAlignment:[{...a,property:"align-items"},{...m,property:"align-items"}],valueInputHeight:[{...p,property:"height"},{...m,property:"height"}],valueInputMarginBottom:[{...p,property:"margin-bottom"},{...m,property:"margin-bottom"}],inputIconOffset:[{...y,property:"margin-right"},{...y,property:"margin-left"}],inputIconSize:{...y,property:"font-size"},inputIconColor:{...y,property:"color"}}},18330:(t,e,r)=>{r.d(e,{f:()=>o});var i=r(44099);class o extends i.r{constructor(t,e){super(t,"input","input",{initializer:(t,r)=>{r.value&&(t.value=r.value),r.type&&t.setAttribute("type",r.type),t.id=this.defaultId,"function"==typeof e&&e(t)},useUniqueId:!0})}}},27136:(t,e,r)=>{r.d(e,{A:()=>h}),r(86689);var i=r(13256),o=r(82901),l=r(72562),n=r(81488),a=r(86314),p=r(87550),s=r(18330),d=r(37436),u=r(37720);const c=t=>class extends((0,d.a)(t)){static get properties(){return{maxlength:{type:Number},minlength:{type:Number},pattern:{type:String}}}static get delegateAttrs(){return[...super.delegateAttrs,"maxlength","minlength","pattern"]}static get constraints(){return[...super.constraints,"maxlength","minlength","pattern"]}constructor(){super(),this._setType("text")}get clearElement(){return this.$.clearButton}ready(){super.ready(),this.addController(new s.f(this,t=>{this._setInputElement(t),this._setFocusElement(t),this.stateTarget=t,this.ariaTarget=t})),this.addController(new u.q(this.inputElement,this._labelController))}};(0,p.SF)("vaadin-text-field",a.k,{moduleId:"vaadin-text-field-styles"});class h extends(c((0,p.cp)((0,l.q)(i.Pu)))){static get is(){return"vaadin-text-field"}static get template(){return i.qy`
|
|
3
3
|
<style>
|
|
4
4
|
[part='input-field'] {
|
|
5
5
|
flex-grow: 0;
|
|
@@ -316,7 +316,7 @@
|
|
|
316
316
|
background-color: var(--lumo-contrast-10pct);
|
|
317
317
|
border-radius: var(--lumo-border-radius-m);
|
|
318
318
|
}
|
|
319
|
-
`;(0,r.SF)("",c,{moduleId:"lumo-color"})},85725:(t,o,e)=>{function r(t,o){return t.split(".").reduce((t,o)=>t?t[o]:void 0,o)}e.d(o,{J:()=>r})},94591:(t,o,e)=>{e.d(o,{v:()=>m}),e(64511),e(3241),e(9433);var r=e(87550);(0,r.SF)("vaadin-grid-sorter",r.AH`
|
|
319
|
+
`;(0,r.SF)("",c,{moduleId:"lumo-color"})},85725:(t,o,e)=>{function r(t,o){return t.split(".").reduce((t,o)=>t?t[o]:void 0,o)}function a(t,o,e){const r=t.split("."),a=r.pop();r.reduce((t,o)=>t[o],e)[a]=o}e.d(o,{J:()=>r,h:()=>a})},94591:(t,o,e)=>{e.d(o,{v:()=>m}),e(64511),e(3241),e(9433);var r=e(87550);(0,r.SF)("vaadin-grid-sorter",r.AH`
|
|
320
320
|
:host {
|
|
321
321
|
justify-content: flex-start;
|
|
322
322
|
align-items: baseline;
|