@descope/web-components-ui 2.3.3 → 3.0.1
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/dist/cjs/index.cjs.js +16884 -16946
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/index.esm.js +5291 -5373
- package/dist/index.esm.js.map +1 -1
- package/dist/umd/9365.js +1 -1
- package/dist/umd/9365.js.map +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-multi-selection-group-index-js.js.map +1 -1
- package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-internal-index-js.js.map +1 -1
- package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js.map +1 -1
- package/dist/umd/button-selection-group-fields-descope-button-selection-group-internal-index-js.js.map +1 -1
- package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js +1 -1
- package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js.map +1 -1
- package/dist/umd/descope-alert-index-js.js +1 -1
- package/dist/umd/descope-alert-index-js.js.map +1 -1
- package/dist/umd/descope-code-snippet-index-js.js +1 -1
- package/dist/umd/descope-code-snippet-index-js.js.map +1 -1
- package/dist/umd/descope-container-index-js.js +1 -1
- package/dist/umd/descope-container-index-js.js.map +1 -1
- 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-date-field-index-js.js.map +1 -1
- package/dist/umd/descope-divider-index-js.js +1 -1
- package/dist/umd/descope-divider-index-js.js.map +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.map +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.map +1 -1
- package/dist/umd/descope-grid-index-js.js +1 -1
- package/dist/umd/descope-grid-index-js.js.map +1 -1
- package/dist/umd/descope-hybrid-field-index-js.js +1 -1
- package/dist/umd/descope-hybrid-field-index-js.js.map +1 -1
- package/dist/umd/descope-loader-linear-index-js.js +1 -1
- package/dist/umd/descope-loader-linear-index-js.js.map +1 -1
- package/dist/umd/descope-loader-radial-index-js.js +1 -1
- package/dist/umd/descope-loader-radial-index-js.js.map +1 -1
- package/dist/umd/descope-multi-select-combo-box-index-js.js.map +1 -1
- package/dist/umd/descope-new-password-descope-new-password-internal-index-js.js +1 -1
- package/dist/umd/descope-new-password-descope-new-password-internal-index-js.js.map +1 -1
- package/dist/umd/descope-new-password-index-js.js +1 -1
- package/dist/umd/descope-new-password-index-js.js.map +1 -1
- package/dist/umd/descope-notification-index-js.js.map +1 -1
- package/dist/umd/descope-passcode-descope-passcode-internal-index-js.js +1 -1
- package/dist/umd/descope-passcode-descope-passcode-internal-index-js.js.map +1 -1
- package/dist/umd/descope-passcode-index-js.js +1 -1
- package/dist/umd/descope-passcode-index-js.js.map +1 -1
- package/dist/umd/descope-policy-validation-index-js.js +1 -1
- package/dist/umd/descope-policy-validation-index-js.js.map +1 -1
- package/dist/umd/descope-radio-group-index-js.js.map +1 -1
- package/dist/umd/descope-recaptcha-index-js.js +1 -1
- package/dist/umd/descope-recaptcha-index-js.js.map +1 -1
- package/dist/umd/descope-scopes-list-index-js.js.map +1 -1
- package/dist/umd/descope-security-questions-setup-index-js.js +1 -1
- package/dist/umd/descope-security-questions-setup-index-js.js.map +1 -1
- package/dist/umd/descope-security-questions-verify-index-js.js +1 -1
- package/dist/umd/descope-security-questions-verify-index-js.js.map +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-upload-file-index-js.js +1 -1
- package/dist/umd/descope-upload-file-index-js.js.map +1 -1
- package/dist/umd/descope-user-attribute-index-js.js +1 -1
- package/dist/umd/descope-user-attribute-index-js.js.map +1 -1
- package/dist/umd/descope-user-auth-method-index-js.js +1 -1
- package/dist/umd/descope-user-auth-method-index-js.js.map +1 -1
- package/dist/umd/index.js.map +1 -1
- package/dist/umd/mapping-fields-descope-mappings-field-descope-mappings-field-internal-index-js.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-field-descope-phone-field-internal-index-js.js +1 -1
- package/dist/umd/phone-fields-descope-phone-field-descope-phone-field-internal-index-js.js.map +1 -1
- package/dist/umd/phone-fields-descope-phone-field-index-js.js +1 -1
- package/dist/umd/phone-fields-descope-phone-field-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-descope-phone-input-box-internal-index-js.js.map +1 -1
- package/dist/umd/phone-fields-descope-phone-input-box-field-index-js.js +1 -1
- package/dist/umd/phone-fields-descope-phone-input-box-field-index-js.js.map +1 -1
- package/package.json +32 -32
- package/src/baseClasses/createBaseClass.js +1 -1
- package/src/components/button-selection-group-fields/baseButtonSelectionGroup.js +0 -2
- package/src/components/button-selection-group-fields/createBaseButtonSelectionGroupInternalClass.js +1 -3
- package/src/components/button-selection-group-fields/descope-button-multi-selection-group-internal/ButtonMultiSelectionGroupInternalClass.js +0 -1
- package/src/components/button-selection-group-fields/descope-button-selection-group-item/ButtonSelectionGroupItemClass.js +2 -2
- package/src/components/descope-alert/AlertClass.js +2 -2
- package/src/components/descope-code-snippet/CodeSnippetClass.js +1 -1
- package/src/components/descope-code-snippet/helpers.js +1 -3
- package/src/components/descope-container/ContainerClass.js +1 -1
- package/src/components/descope-date-field/DateCounterClass.js +1 -1
- package/src/components/descope-date-field/DateFieldClass.js +4 -5
- package/src/components/descope-date-field/descope-calendar/CalendarClass.js +2 -2
- package/src/components/descope-date-field/descope-calendar/helpers.js +1 -3
- package/src/components/descope-divider/DividerClass.js +2 -2
- package/src/components/descope-grid/GridClass.js +15 -19
- package/src/components/descope-grid/descope-grid-custom-column/GridCustomColumnClass.js +0 -1
- package/src/components/descope-grid/descope-grid-custom-column/index.js +0 -1
- package/src/components/descope-grid/descope-grid-item-details-column/GridItemDetailsColumnClass.js +0 -2
- package/src/components/descope-grid/descope-grid-selection-column/GridSelectionColumnClass.js +0 -3
- package/src/components/descope-grid/descope-grid-text-column/GridTextColumnClass.js +0 -1
- package/src/components/descope-grid/helpers.js +1 -3
- package/src/components/descope-hybrid-field/HybridFieldClass.js +1 -1
- package/src/components/descope-loader-linear/LoaderLinearClass.js +1 -1
- package/src/components/descope-loader-radial/LoaderRadialClass.js +1 -1
- package/src/components/descope-multi-select-combo-box/MultiSelectComboBoxClass.js +3 -9
- package/src/components/descope-new-password/descope-new-password-internal/NewPasswordInternal.js +3 -6
- package/src/components/descope-notification/NotificationClass.js +0 -2
- package/src/components/descope-passcode/PasscodeClass.js +1 -1
- package/src/components/descope-passcode/descope-passcode-internal/PasscodeInternal.js +1 -3
- package/src/components/descope-passcode/descope-passcode-internal/helpers.js +1 -3
- package/src/components/descope-policy-validation/PolicyValidationClass.js +1 -2
- package/src/components/descope-radio-group/RadioGroupClass.js +3 -8
- package/src/components/descope-recaptcha/RecaptchaClass.js +1 -1
- package/src/components/descope-scopes-list/ScopesListClass.js +0 -3
- package/src/components/descope-security-questions-setup/SecurityQuestionsSetupClass.js +5 -8
- package/src/components/descope-security-questions-verify/SecurityQuestionsVerifyClass.js +3 -4
- package/src/components/descope-third-party-app-logo/ThirdPartyAppLogoClass.js +1 -1
- package/src/components/descope-upload-file/UploadFileClass.js +2 -2
- package/src/components/descope-upload-file/helpers.js +3 -6
- package/src/components/descope-user-attribute/UserAttributeClass.js +4 -4
- package/src/components/descope-user-auth-method/UserAuthMethodClass.js +5 -5
- package/src/components/mapping-fields/descope-mappings-field/MappingsFieldClass.js +1 -1
- package/src/components/mapping-fields/descope-mappings-field/descope-mappings-field-internal/MappingsFieldInternal.js +0 -1
- package/src/components/phone-fields/descope-phone-field/PhoneFieldClass.js +1 -1
- package/src/components/phone-fields/descope-phone-field/descope-phone-field-internal/PhoneFieldInternal.js +1 -1
- package/src/components/phone-fields/descope-phone-input-box-field/PhoneFieldInputBoxClass.js +1 -1
- package/src/components/phone-fields/descope-phone-input-box-field/descope-phone-input-box-internal/PhoneFieldInternalInputBox.js +1 -1
- package/src/components/phone-fields/helpers.js +2 -3
- package/src/helpers/componentHelpers.js +0 -1
- package/src/helpers/themeHelpers/colorsHelpers.js +2 -3
- package/src/helpers/themeHelpers/index.js +4 -6
- package/src/helpers/themeHelpers/resetHelpers.js +1 -3
- package/src/index.umd.js +0 -1
- package/src/mixins/createDynamicDataMixin.js +0 -1
- package/src/mixins/createStyleMixin/helpers.js +1 -1
- package/src/mixins/createStyleMixin/index.js +1 -2
- package/src/mixins/externalInputHelpers.js +0 -2
- package/src/mixins/externalInputMixin.js +1 -1
- package/src/mixins/inputValidationMixin.js +0 -4
- package/src/mixins/normalizeBooleanAttributesMixin.js +1 -3
- package/src/mixins/portalMixin.js +0 -1
- package/src/mixins/proxyInputMixin.js +0 -1
- package/src/theme/components/alert.js +1 -1
- package/src/theme/components/index.js +22 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descope-grid-descope-grid-text-column-index-js.js","mappings":";oKAGO,MAAMA,UAA4B,IACvC,YAAIC,GACF,MAAyC,SAAlCC,KAAKC,aAAa,WAC3B,CAEA,gBAAAC,CAAiBC,EAAMC,EAAMC,GAC3B,MAAMC,EAAOD,EAAME,KAAKP,KAAKQ,OAAS,GAChCC,EAAUC,MAAMC,QAAQL,GAAQA,EAAKM,KAAK,MAAQN,EAExDN,KAAKa,iBAAiBV,EAAMM,GAC5BN,EAAKW,MAAQL,CACf,CAEA,sBAAAM,CAAuBC,EAAMC,GACvBjB,KAAKD,SACPmB,MAAMH,uBAAuBC,EAAMC,GAKrCjB,KAAKa,iBAAiBG,EAAMhB,KAAKmB,YAAYnB,KAAKoB,OAAQpB,KAAKQ,MACjE,E,2ECrBK,MAAMa,GAAgB,QAAiB,oBAE9CC,eAAeC,OAAOF,EAAe,I,cCW9B,SAASG,EAAqBC,GACnC,MAAMC,EAAS,GAEf,KAAOD,GAAM,CACX,GAAIA,EAAKE,WAAaC,KAAKC,cAAe,CACxCH,EAAOI,KAAKL,GACZ,KACF,CAEIA,EAAKE,WAAaC,KAAKG,uBAOzBN,EADEA,EAAKO,aACAP,EAAKO,aAIPP,EAAKQ,YAVVP,EAAOI,KAAKL,GACZA,EAAOA,EAAKS,KAUhB,CAEA,OAAOR,CACT,CAUO,SAASS,EAAqBV,GACnC,MAAMC,EAAS,GACf,IAAIU,EAQJ,MAPuB,SAAnBX,EAAKY,UACPD,EAAWX,EAAKa,oBAEhBZ,EAAOI,KAAKL,GACZW,EAAW,IAAIX,EAAKc,WAEtBH,EAASI,QAASC,GAASf,EAAOI,QAAQK,EAAqBM,KACxDf,CACT,CAUO,SAASgB,EAAkBC,EAAUlB,GAC1C,OAAKA,EAIEA,EAAKmB,QAAQD,IAAaD,EAAkBC,EAAUlB,EAAKoB,cAAcX,MAHvE,IAIX,CAQO,SAASY,EAA0BC,GACxC,OAAKA,EAIE,IAAIC,IAAID,EAAME,MAAM,MAHlB,IAAID,GAIf,CAQO,SAASE,EAAwBC,GACtC,OAAOA,EAAS,IAAIA,GAAQvC,KAAK,KAAO,EAC1C,CASO,SAASwC,EAAoBC,EAASC,EAAMP,GACjD,MAAMI,EAASL,EAA0BO,EAAQpD,aAAaqD,IAC9DH,EAAOI,IAAIR,GACXM,EAAQG,aAAaF,EAAMJ,EAAwBC,GACrD,CAUO,SAASM,EAAyBJ,EAASC,EAAMP,GACtD,MAAMI,EAASL,EAA0BO,EAAQpD,aAAaqD,IAC9DH,EAAOO,OAAOX,GACM,IAAhBI,EAAOQ,KAIXN,EAAQG,aAAaF,EAAMJ,EAAwBC,IAHjDE,EAAQO,gBAAgBN,EAI5B,CAQO,SAASO,EAAgBpC,GAC9B,OAAOA,EAAKE,WAAaC,KAAKkC,WAAyC,KAA5BrC,EAAKsC,YAAYC,MAC9D,C,+FClIO,SAASC,EAAIzD,EAAM0D,GACxB,OAAO1D,EAAKyC,MAAM,KAAKkB,OAAO,CAACC,EAAKC,IAAcD,EAAMA,EAAIC,QAAYC,EAAYJ,EACtF,CASO,SAASK,EAAI/D,EAAMuC,EAAOmB,GAC/B,MAAMM,EAAYhE,EAAKyC,MAAM,KACvBwB,EAAWD,EAAUE,MACZF,EAAUL,OAAO,CAACQ,EAAQC,IAASD,EAAOC,GAAOV,GACzDO,GAAY1B,CACrB,C,uCChBO,SAAS8B,EAAiBC,GAC3BC,OAAOC,QAAUD,OAAOC,OAAOC,yBACjCF,OAAOC,OAAOC,yBAAyBH,GAIrCA,EAAUI,cAAc,aAC1BC,QAAQC,KACN,+BAA+BN,EAAUzC,yHAG/C,C,yFClBA,QACE,qBACA,IAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4CH,CAAEgD,SAAU,qB,qCC5Cd,MAAMC,EAAWC,SAASC,cAAc,YAExCF,EAASG,UAAY,oBACJV,OAAOW,qGAGJ,IAA0B,4GAO9CH,SAASI,KAAKC,YAAYN,EAAS7E,UAEnC,QACE,qBACA,IAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuCH,CAAE4E,SAAU,8BAQP,MAAMQ,EAAmBC,GAC9B,cAAmCA,EACjC,qBAAWC,GACT,MAAO,CAILvF,KAAMwF,OAQNC,UAAW,CACTC,KAAMF,OACNG,oBAAoB,EACpBC,QAAQ,EACRrD,MAAO,KACPsD,MAAM,GAORC,OAAQ,CACNJ,KAAMK,OACNxD,MAAO,KACPsD,MAAM,GAIRG,aAAc,CACZN,KAAMO,QACNC,SAAU,wBAGhB,CAEA,oBAAWC,GACT,MAAO,CAAC,2CACV,CAGA,KAAAC,GACE1F,MAAM0F,QACN5G,KAAK6G,iBAAiB,QAAS7G,KAAK8G,SAASC,KAAK/G,MACpD,CAGA,iBAAAgH,GACE9F,MAAM8F,oBACNhH,KAAKwG,cAAe,CACtB,CAGA,oBAAAS,GACE/F,MAAM+F,uBACNjH,KAAKwG,cAAe,GAEfxG,KAAKiC,YAAcjC,KAAKkH,OAC3BlH,KAAKkH,MAAMC,gBAAgB,CAACnH,MAEhC,CAGA,uBAAAoH,GACEpH,KAAKqH,uCACP,CAGA,oBAAAC,CAAqBC,EAAUC,IACZ,IAAbA,GAIJxH,KAAKqH,uCACP,CAGA,qCAAAA,QACoB/C,IAAdtE,KAAKQ,WAAyC8D,IAAnBtE,KAAKiG,WAA4BjG,KAAKwG,eAIrExG,KAAKyH,cACH,IAAIC,YAAY,iBAAkB,CAChCC,OAAQ,CAAEC,WAAYnB,QAAQzG,KAAK6H,aAAcC,gBAAiBrB,QAAQzG,KAAK+H,mBAC/EC,SAAS,EACTC,UAAU,KAIdjI,KAAK+H,kBAAmB,EACxB/H,KAAK6H,aAAc,EACrB,CAGA,gBAAAK,CAAiBC,GACf,OAAiB,OAAVA,EAAiB,GAAKA,EAAQ,CACvC,CAGA,QAAArB,CAASsB,GACP,GAAIA,EAAEC,iBAEJ,OAGF,MAAMC,EAAgBtI,KAAK6C,cAAcyF,cACrCtI,OAASsI,GAAiBtI,KAAKuI,SAASD,KAK5CF,EAAEI,iBACFxI,KAAK6H,YAAcO,EAAEK,SACrBzI,KAAK+H,kBAAmB,EACD,QAAnB/H,KAAKiG,UACPjG,KAAKiG,UAAY,OACW,SAAnBjG,KAAKiG,UACdjG,KAAKiG,UAAY,KAEjBjG,KAAKiG,UAAY,MAErB,GC9IJ,MAAMyC,UAAmB7C,GAAgB,SAAc,OAAS,SAC9D,mBAAWP,GACT,OAAO,IAAI;;;;;;;KAQb,CAEA,aAAWqD,GACT,MAAO,oBACT,GAGF,OAAoBD,G,eChEb,MAAME,EAAuB9C,GAClC,cAAcA,EACZ,qBAAWC,GACT,MAAO,CAILvF,KAAM,CACJ0F,KAAMF,OACNK,MAAM,GASRJ,UAAW,CACTC,KAAMF,OACNI,QAAQ,EACRC,MAAM,GAGZ,CAEA,oBAAWM,GACT,MAAO,CAAC,2FACV,CAEA,WAAAkC,GACE3H,QAEAlB,KAAK8I,0BAA4B9I,KAAK+I,qBAAqBhC,KAAK/G,KAClE,CAOA,sBAAAe,CAAuBC,EAAMC,GAC3B,IAAI+H,EAAShI,EAAKiI,kBACbD,IACHA,EAASzD,SAASC,cAAc,sBAChCwD,EAAOnC,iBAAiB,oBAAqB7G,KAAK8I,2BAClD9H,EAAK4E,YAAYoD,IAGnBA,EAAOxI,KAAOR,KAAKQ,KACnBwI,EAAOE,oBAAsBlJ,KAAKiG,UAClC+C,EAAO/C,UAAYjG,KAAKiG,UACxB+C,EAAOjF,YAAc/D,KAAKmB,YAAYnB,KAAKoB,OAAQpB,KAAKQ,KAC1D,CASA,sBAAA2I,GACE,OAAOnJ,KAAKe,sBACd,CAQA,oBAAAgI,CAAqBX,GAEfA,EAAET,OAAO5E,QAAUqF,EAAEzD,OAAOuE,sBAIhClJ,KAAKiG,UAAYmC,EAAET,OAAO5E,MAC5B,CAGA,WAAA5B,CAAYC,EAAQZ,GAClB,OAAIY,IAIAZ,EACKR,KAAKoJ,gBAAgB5I,QAD9B,EAGF,GCtEJ,MAAM6I,UAAuBT,EAAoB,MAC/C,aAAWD,GACT,MAAO,yBACT,GAGF,OAAoBU,E,kDC1BpB,MAAMC,EAAY,IAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuFrB,OAAoB,cAAeA,GAEnC,MAAMC,EAAQ,IAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqHjB,QAAe,GAAIA,EAAO,CAAElE,SAAU,c,iDC9MtC,MAAMmE,EAAU,IAAG;;;;;;;;;;;;;;;;;;;;;;;GAyBnB,OAAoB,gBAAiBA,E,iDCzBrC,MAAMC,EAAQ,IAAG;;;;;;;;;;;;;;;;;EAsBD,IAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EnB,OAAoB,cAAeA,E","sources":["webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-text-column/GridTextColumnClass.js","webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-text-column/index.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/dom-utils.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/path-utils.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/templates.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/grid/theme/lumo/vaadin-grid-sorter-styles.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/grid/src/vaadin-grid-sorter-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/grid/src/vaadin-grid-sorter.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/grid/src/vaadin-grid-sort-column-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/grid/src/vaadin-grid-sort-column.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/vaadin-lumo-styles/color.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/vaadin-lumo-styles/spacing.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/vaadin-lumo-styles/style.js"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport { GridSortColumn } from '@vaadin/grid/vaadin-grid-sort-column';\n\nexport class GridTextColumnClass extends GridSortColumn {\n get sortable() {\n return this.getAttribute('sortable') === 'true';\n }\n\n _defaultRenderer(cell, _col, model) {\n const data = model.item[this.path] || '';\n const content = Array.isArray(data) ? data.join(', ') : data;\n\n this.__setTextContent(cell, content);\n cell.title = content;\n }\n\n _defaultHeaderRenderer(root, _column) {\n if (this.sortable) {\n super._defaultHeaderRenderer(root, _column);\n\n return;\n }\n\n this.__setTextContent(root, this.__getHeader(this.header, this.path));\n }\n}\n","import { getComponentName } from '../../../helpers/componentHelpers';\nimport { GridTextColumnClass } from './GridTextColumnClass';\n\nexport const componentName = getComponentName('grid-text-column');\n\ncustomElements.define(componentName, GridTextColumnClass);\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\n/**\n * Returns an array of ancestor root nodes for the given node.\n *\n * A root node is either a document node or a document fragment node (Shadow Root).\n * The array is collected by a bottom-up DOM traversing that starts with the given node\n * and involves both the light DOM and ancestor shadow DOM trees.\n *\n * @param {Node} node\n * @return {Node[]}\n */\nexport function getAncestorRootNodes(node) {\n const result = [];\n\n while (node) {\n if (node.nodeType === Node.DOCUMENT_NODE) {\n result.push(node);\n break;\n }\n\n if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n result.push(node);\n node = node.host;\n continue;\n }\n\n if (node.assignedSlot) {\n node = node.assignedSlot;\n continue;\n }\n\n node = node.parentNode;\n }\n\n return result;\n}\n\n/**\n * Returns the list of flattened elements for the given `node`.\n * This list consists of a node's children and, for any children that are\n * `<slot>` elements, the expanded flattened list of `assignedElements`.\n *\n * @param {Node} node\n * @return {Element[]}\n */\nexport function getFlattenedElements(node) {\n const result = [];\n let elements;\n if (node.localName === 'slot') {\n elements = node.assignedElements();\n } else {\n result.push(node);\n elements = [...node.children];\n }\n elements.forEach((elem) => result.push(...getFlattenedElements(elem)));\n return result;\n}\n\n/**\n * Traverses the given node and its parents, including those that are across\n * the shadow root boundaries, until it finds a node that matches the selector.\n *\n * @param {string} selector The CSS selector to match against\n * @param {Node} node The starting node for the traversal\n * @return {Node | null} The closest matching element, or null if no match is found\n */\nexport function getClosestElement(selector, node) {\n if (!node) {\n return null;\n }\n\n return node.closest(selector) || getClosestElement(selector, node.getRootNode().host);\n}\n\n/**\n * Takes a string with values separated by space and returns a set the values\n *\n * @param {string} value\n * @return {Set<string>}\n */\nexport function deserializeAttributeValue(value) {\n if (!value) {\n return new Set();\n }\n\n return new Set(value.split(' '));\n}\n\n/**\n * Takes a set of string values and returns a string with values separated by space\n *\n * @param {Set<string>} values\n * @return {string}\n */\nexport function serializeAttributeValue(values) {\n return values ? [...values].join(' ') : '';\n}\n\n/**\n * Adds a value to an attribute containing space-delimited values.\n *\n * @param {HTMLElement} element\n * @param {string} attr\n * @param {string} value\n */\nexport function addValueToAttribute(element, attr, value) {\n const values = deserializeAttributeValue(element.getAttribute(attr));\n values.add(value);\n element.setAttribute(attr, serializeAttributeValue(values));\n}\n\n/**\n * Removes a value from an attribute containing space-delimited values.\n * If the value is the last one, the whole attribute is removed.\n *\n * @param {HTMLElement} element\n * @param {string} attr\n * @param {string} value\n */\nexport function removeValueFromAttribute(element, attr, value) {\n const values = deserializeAttributeValue(element.getAttribute(attr));\n values.delete(value);\n if (values.size === 0) {\n element.removeAttribute(attr);\n return;\n }\n element.setAttribute(attr, serializeAttributeValue(values));\n}\n\n/**\n * Returns true if the given node is an empty text node, false otherwise.\n *\n * @param {Node} node\n * @return {boolean}\n */\nexport function isEmptyTextNode(node) {\n return node.nodeType === Node.TEXT_NODE && node.textContent.trim() === '';\n}\n","/**\n * @license\n * Copyright (c) 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\n/**\n * Convenience method for reading a value from a path.\n *\n * @param {string} path\n * @param {object} object\n */\nexport function get(path, object) {\n return path.split('.').reduce((obj, property) => (obj ? obj[property] : undefined), object);\n}\n\n/**\n * Convenience method for setting a value to a path.\n *\n * @param {string} path\n * @param {unknown} value\n * @param {object} object\n */\nexport function set(path, value, object) {\n const pathParts = path.split('.');\n const lastPart = pathParts.pop();\n const target = pathParts.reduce((target, part) => target[part], object);\n target[lastPart] = value;\n}\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\n/**\n * Passes the component to the template renderer callback if the template renderer is imported.\n * Otherwise, if there is a template, it warns that the template renderer needs to be imported.\n *\n * @param {HTMLElement} component\n */\nexport function processTemplates(component) {\n if (window.Vaadin && window.Vaadin.templateRendererCallback) {\n window.Vaadin.templateRendererCallback(component);\n return;\n }\n\n if (component.querySelector('template')) {\n console.warn(\n `WARNING: <template> inside <${component.localName}> is no longer supported. Import @vaadin/polymer-legacy-adapter/template-renderer.js to enable compatibility.`,\n );\n }\n}\n","import '@vaadin/vaadin-lumo-styles/color.js';\nimport '@vaadin/vaadin-lumo-styles/style.js';\nimport '@vaadin/vaadin-lumo-styles/spacing.js';\nimport { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nregisterStyles(\n 'vaadin-grid-sorter',\n css`\n :host {\n justify-content: flex-start;\n align-items: baseline;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n cursor: var(--lumo-clickable-cursor);\n }\n\n [part='content'] {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n [part='indicators'] {\n margin-left: var(--lumo-space-s);\n }\n\n [part='indicators']::before {\n transform: scale(0.8);\n }\n\n :host(:not([direction]):not(:hover)) [part='indicators'] {\n color: var(--lumo-tertiary-text-color);\n }\n\n :host([direction]) {\n color: var(--vaadin-selection-color-text, var(--lumo-primary-text-color));\n }\n\n [part='order'] {\n font-size: var(--lumo-font-size-xxs);\n line-height: 1;\n }\n\n /* RTL specific styles */\n\n :host([dir='rtl']) [part='indicators'] {\n margin-right: var(--lumo-space-s);\n margin-left: 0;\n }\n `,\n { moduleId: 'lumo-grid-sorter' },\n);\n","/**\n * @license\n * Copyright (c) 2016 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nconst template = document.createElement('template');\n\ntemplate.innerHTML = `\n <style nonce=${window.DESCOPE_NONCE}>\n @font-face {\n font-family: 'vaadin-grid-sorter-icons';\n src: url('` + __webpack_public_path__ + `fonts/font-1364590020.woff');\n font-weight: normal;\n font-style: normal;\n }\n </style>\n`;\n\ndocument.head.appendChild(template.content);\n\nregisterStyles(\n 'vaadin-grid-sorter',\n css`\n :host {\n display: inline-flex;\n cursor: pointer;\n max-width: 100%;\n }\n\n [part='content'] {\n flex: 1 1 auto;\n }\n\n [part='indicators'] {\n position: relative;\n align-self: center;\n flex: none;\n }\n\n [part='order'] {\n display: inline;\n vertical-align: super;\n }\n\n [part='indicators']::before {\n font-family: 'vaadin-grid-sorter-icons';\n display: inline-block;\n }\n\n :host(:not([direction])) [part='indicators']::before {\n content: '\\\\e901';\n }\n\n :host([direction='asc']) [part='indicators']::before {\n content: '\\\\e900';\n }\n\n :host([direction='desc']) [part='indicators']::before {\n content: '\\\\e902';\n }\n `,\n { moduleId: 'vaadin-grid-sorter-styles' },\n);\n\n/**\n * A mixin providing common sorter functionality.\n *\n * @polymerMixin\n */\nexport const GridSorterMixin = (superClass) =>\n class GridSorterMixinClass extends superClass {\n static get properties() {\n return {\n /**\n * JS Path of the property in the item used for sorting the data.\n */\n path: String,\n\n /**\n * How to sort the data.\n * Possible values are `asc` to use an ascending algorithm, `desc` to sort the data in\n * descending direction, or `null` for not sorting the data.\n * @type {GridSorterDirection | undefined}\n */\n direction: {\n type: String,\n reflectToAttribute: true,\n notify: true,\n value: null,\n sync: true,\n },\n\n /**\n * @type {number | null}\n * @protected\n */\n _order: {\n type: Number,\n value: null,\n sync: true,\n },\n\n /** @private */\n _isConnected: {\n type: Boolean,\n observer: '__isConnectedChanged',\n },\n };\n }\n\n static get observers() {\n return ['_pathOrDirectionChanged(path, direction)'];\n }\n\n /** @protected */\n ready() {\n super.ready();\n this.addEventListener('click', this._onClick.bind(this));\n }\n\n /** @protected */\n connectedCallback() {\n super.connectedCallback();\n this._isConnected = true;\n }\n\n /** @protected */\n disconnectedCallback() {\n super.disconnectedCallback();\n this._isConnected = false;\n\n if (!this.parentNode && this._grid) {\n this._grid.__removeSorters([this]);\n }\n }\n\n /** @private */\n _pathOrDirectionChanged() {\n this.__dispatchSorterChangedEvenIfPossible();\n }\n\n /** @private */\n __isConnectedChanged(newValue, oldValue) {\n if (oldValue === false) {\n return;\n }\n\n this.__dispatchSorterChangedEvenIfPossible();\n }\n\n /** @private */\n __dispatchSorterChangedEvenIfPossible() {\n if (this.path === undefined || this.direction === undefined || !this._isConnected) {\n return;\n }\n\n this.dispatchEvent(\n new CustomEvent('sorter-changed', {\n detail: { shiftClick: Boolean(this._shiftClick), fromSorterClick: Boolean(this._fromSorterClick) },\n bubbles: true,\n composed: true,\n }),\n );\n // Cleaning up as a programatically sorting can be done after some user interaction\n this._fromSorterClick = false;\n this._shiftClick = false;\n }\n\n /** @private */\n _getDisplayOrder(order) {\n return order === null ? '' : order + 1;\n }\n\n /** @private */\n _onClick(e) {\n if (e.defaultPrevented) {\n // Something else has already handled the click event, do nothing.\n return;\n }\n\n const activeElement = this.getRootNode().activeElement;\n if (this !== activeElement && this.contains(activeElement)) {\n // Some focusable content inside the sorter was clicked, do nothing.\n return;\n }\n\n e.preventDefault();\n this._shiftClick = e.shiftKey;\n this._fromSorterClick = true;\n if (this.direction === 'asc') {\n this.direction = 'desc';\n } else if (this.direction === 'desc') {\n this.direction = null;\n } else {\n this.direction = 'asc';\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2016 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { html, PolymerElement } from '@polymer/polymer/polymer-element.js';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\nimport { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';\nimport { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { GridSorterMixin } from './vaadin-grid-sorter-mixin.js';\n\n/**\n * `<vaadin-grid-sorter>` is a helper element for the `<vaadin-grid>` that provides out-of-the-box UI controls,\n * visual feedback, and handlers for sorting the grid data.\n *\n * #### Example:\n * ```html\n * <vaadin-grid-column id=\"column\"></vaadin-grid-column>\n * ```\n * ```js\n * const column = document.querySelector('#column');\n * column.renderer = (root, column, model) => {\n * let sorter = root.firstElementChild;\n * if (!sorter) {\n * sorter = document.createElement('vaadin-grid-sorter');\n * root.appendChild(sorter);\n * }\n * sorter.path = 'name.first';\n * };\n * ```\n *\n * ### Styling\n *\n * The following shadow DOM parts are available for styling:\n *\n * Part name | Description\n * ----------------|----------------\n * `content` | The slotted content wrapper\n * `indicators` | The internal sorter indicators.\n * `order` | The internal sorter order\n *\n * The following state attributes are available for styling:\n *\n * Attribute | Description | Part name\n * -------------|-------------|------------\n * `direction` | Sort direction of a sorter | :host\n *\n * @fires {CustomEvent} direction-changed - Fired when the `direction` property changes.\n * @fires {CustomEvent} sorter-changed - Fired when the `path` or `direction` property changes.\n *\n * @customElement\n * @extends HTMLElement\n * @mixes GridSorterMixin\n * @mixes ThemableMixin\n * @mixes DirMixin\n */\nclass GridSorter extends GridSorterMixin(ThemableMixin(DirMixin(PolymerElement))) {\n static get template() {\n return html`\n <div part=\"content\">\n <slot></slot>\n </div>\n <div part=\"indicators\">\n <span part=\"order\">[[_getDisplayOrder(_order)]]</span>\n </div>\n `;\n }\n\n static get is() {\n return 'vaadin-grid-sorter';\n }\n}\n\ndefineCustomElement(GridSorter);\n\nexport { GridSorter };\n","/**\n * @license\n * Copyright (c) 2016 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\n/**\n * @polymerMixin\n */\nexport const GridSortColumnMixin = (superClass) =>\n class extends superClass {\n static get properties() {\n return {\n /**\n * JS Path of the property in the item used for sorting the data.\n */\n path: {\n type: String,\n sync: true,\n },\n\n /**\n * How to sort the data.\n * Possible values are `asc` to use an ascending algorithm, `desc` to sort the data in\n * descending direction, or `null` for not sorting the data.\n * @type {GridSorterDirection | undefined}\n */\n direction: {\n type: String,\n notify: true,\n sync: true,\n },\n };\n }\n\n static get observers() {\n return ['_onHeaderRendererOrBindingChanged(_headerRenderer, _headerCell, path, header, direction)'];\n }\n\n constructor() {\n super();\n\n this.__boundOnDirectionChanged = this.__onDirectionChanged.bind(this);\n }\n\n /**\n * Renders the grid sorter to the header cell.\n *\n * @override\n */\n _defaultHeaderRenderer(root, _column) {\n let sorter = root.firstElementChild;\n if (!sorter) {\n sorter = document.createElement('vaadin-grid-sorter');\n sorter.addEventListener('direction-changed', this.__boundOnDirectionChanged);\n root.appendChild(sorter);\n }\n\n sorter.path = this.path;\n sorter.__rendererDirection = this.direction;\n sorter.direction = this.direction;\n sorter.textContent = this.__getHeader(this.header, this.path);\n }\n\n /**\n * The sort column doesn't allow to use a custom header renderer\n * to override the header cell content.\n * It always renders the grid sorter to the header cell.\n *\n * @override\n */\n _computeHeaderRenderer() {\n return this._defaultHeaderRenderer;\n }\n\n /**\n * Updates the sorting direction once the grid sorter's direction is changed.\n * The listener handles only user-fired events.\n *\n * @private\n */\n __onDirectionChanged(e) {\n // Skip if the direction is changed by the renderer.\n if (e.detail.value === e.target.__rendererDirection) {\n return;\n }\n\n this.direction = e.detail.value;\n }\n\n /** @private */\n __getHeader(header, path) {\n if (header) {\n return header;\n }\n\n if (path) {\n return this._generateHeader(path);\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2016 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport './vaadin-grid-sorter.js';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\nimport { GridColumn } from './vaadin-grid-column.js';\nimport { GridSortColumnMixin } from './vaadin-grid-sort-column-mixin.js';\n\n/**\n * `<vaadin-grid-sort-column>` is a helper element for the `<vaadin-grid>`\n * that provides default header renderer and functionality for sorting.\n *\n * #### Example:\n * ```html\n * <vaadin-grid items=\"[[items]]\">\n * <vaadin-grid-sort-column path=\"name.first\" direction=\"asc\"></vaadin-grid-sort-column>\n *\n * <vaadin-grid-column>\n * ...\n * ```\n *\n * @fires {CustomEvent} direction-changed - Fired when the `direction` property changes.\n *\n * @customElement\n * @extends GridColumn\n * @mixes GridSortColumnMixin\n */\nclass GridSortColumn extends GridSortColumnMixin(GridColumn) {\n static get is() {\n return 'vaadin-grid-sort-column';\n }\n}\n\ndefineCustomElement(GridSortColumn);\n\nexport { GridSortColumn };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport './version.js';\nimport { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { addLumoGlobalStyles } from './global.js';\n\nconst colorBase = css`\n :host {\n /* Base (background) */\n --lumo-base-color: #fff;\n\n /* Tint */\n --lumo-tint-5pct: hsla(0, 0%, 100%, 0.3);\n --lumo-tint-10pct: hsla(0, 0%, 100%, 0.37);\n --lumo-tint-20pct: hsla(0, 0%, 100%, 0.44);\n --lumo-tint-30pct: hsla(0, 0%, 100%, 0.5);\n --lumo-tint-40pct: hsla(0, 0%, 100%, 0.57);\n --lumo-tint-50pct: hsla(0, 0%, 100%, 0.64);\n --lumo-tint-60pct: hsla(0, 0%, 100%, 0.7);\n --lumo-tint-70pct: hsla(0, 0%, 100%, 0.77);\n --lumo-tint-80pct: hsla(0, 0%, 100%, 0.84);\n --lumo-tint-90pct: hsla(0, 0%, 100%, 0.9);\n --lumo-tint: #fff;\n\n /* Shade */\n --lumo-shade-5pct: hsla(214, 61%, 25%, 0.05);\n --lumo-shade-10pct: hsla(214, 57%, 24%, 0.1);\n --lumo-shade-20pct: hsla(214, 53%, 23%, 0.16);\n --lumo-shade-30pct: hsla(214, 50%, 22%, 0.26);\n --lumo-shade-40pct: hsla(214, 47%, 21%, 0.38);\n --lumo-shade-50pct: hsla(214, 45%, 20%, 0.52);\n --lumo-shade-60pct: hsla(214, 43%, 19%, 0.6);\n --lumo-shade-70pct: hsla(214, 42%, 18%, 0.69);\n --lumo-shade-80pct: hsla(214, 41%, 17%, 0.83);\n --lumo-shade-90pct: hsla(214, 40%, 16%, 0.94);\n --lumo-shade: hsl(214, 35%, 15%);\n\n /* Contrast */\n --lumo-contrast-5pct: var(--lumo-shade-5pct);\n --lumo-contrast-10pct: var(--lumo-shade-10pct);\n --lumo-contrast-20pct: var(--lumo-shade-20pct);\n --lumo-contrast-30pct: var(--lumo-shade-30pct);\n --lumo-contrast-40pct: var(--lumo-shade-40pct);\n --lumo-contrast-50pct: var(--lumo-shade-50pct);\n --lumo-contrast-60pct: var(--lumo-shade-60pct);\n --lumo-contrast-70pct: var(--lumo-shade-70pct);\n --lumo-contrast-80pct: var(--lumo-shade-80pct);\n --lumo-contrast-90pct: var(--lumo-shade-90pct);\n --lumo-contrast: var(--lumo-shade);\n\n /* Text */\n --lumo-header-text-color: var(--lumo-contrast);\n --lumo-body-text-color: var(--lumo-contrast-90pct);\n --lumo-secondary-text-color: var(--lumo-contrast-70pct);\n --lumo-tertiary-text-color: var(--lumo-contrast-50pct);\n --lumo-disabled-text-color: var(--lumo-contrast-30pct);\n\n /* Primary */\n --lumo-primary-color: hsl(214, 100%, 48%);\n --lumo-primary-color-50pct: hsla(214, 100%, 49%, 0.76);\n --lumo-primary-color-10pct: hsla(214, 100%, 60%, 0.13);\n --lumo-primary-text-color: hsl(214, 100%, 43%);\n --lumo-primary-contrast-color: #fff;\n\n /* Error */\n --lumo-error-color: hsl(3, 85%, 48%);\n --lumo-error-color-50pct: hsla(3, 85%, 49%, 0.5);\n --lumo-error-color-10pct: hsla(3, 85%, 49%, 0.1);\n --lumo-error-text-color: hsl(3, 89%, 42%);\n --lumo-error-contrast-color: #fff;\n\n /* Success */\n --lumo-success-color: hsl(145, 72%, 30%);\n --lumo-success-color-50pct: hsla(145, 72%, 31%, 0.5);\n --lumo-success-color-10pct: hsla(145, 72%, 31%, 0.1);\n --lumo-success-text-color: hsl(145, 85%, 25%);\n --lumo-success-contrast-color: #fff;\n\n /* Warning */\n --lumo-warning-color: hsl(48, 100%, 50%);\n --lumo-warning-color-10pct: hsla(48, 100%, 50%, 0.25);\n --lumo-warning-text-color: hsl(32, 100%, 30%);\n --lumo-warning-contrast-color: var(--lumo-shade-90pct);\n }\n\n /* forced-colors mode adjustments */\n @media (forced-colors: active) {\n html {\n --lumo-disabled-text-color: GrayText;\n }\n }\n`;\n\naddLumoGlobalStyles('color-props', colorBase);\n\nconst color = css`\n [theme~='dark'] {\n /* Base (background) */\n --lumo-base-color: hsl(214, 35%, 21%);\n\n /* Tint */\n --lumo-tint-5pct: hsla(214, 65%, 85%, 0.06);\n --lumo-tint-10pct: hsla(214, 60%, 80%, 0.14);\n --lumo-tint-20pct: hsla(214, 64%, 82%, 0.23);\n --lumo-tint-30pct: hsla(214, 69%, 84%, 0.32);\n --lumo-tint-40pct: hsla(214, 73%, 86%, 0.41);\n --lumo-tint-50pct: hsla(214, 78%, 88%, 0.5);\n --lumo-tint-60pct: hsla(214, 82%, 90%, 0.58);\n --lumo-tint-70pct: hsla(214, 87%, 92%, 0.69);\n --lumo-tint-80pct: hsla(214, 91%, 94%, 0.8);\n --lumo-tint-90pct: hsla(214, 96%, 96%, 0.9);\n --lumo-tint: hsl(214, 100%, 98%);\n\n /* Shade */\n --lumo-shade-5pct: hsla(214, 0%, 0%, 0.07);\n --lumo-shade-10pct: hsla(214, 4%, 2%, 0.15);\n --lumo-shade-20pct: hsla(214, 8%, 4%, 0.23);\n --lumo-shade-30pct: hsla(214, 12%, 6%, 0.32);\n --lumo-shade-40pct: hsla(214, 16%, 8%, 0.41);\n --lumo-shade-50pct: hsla(214, 20%, 10%, 0.5);\n --lumo-shade-60pct: hsla(214, 24%, 12%, 0.6);\n --lumo-shade-70pct: hsla(214, 28%, 13%, 0.7);\n --lumo-shade-80pct: hsla(214, 32%, 13%, 0.8);\n --lumo-shade-90pct: hsla(214, 33%, 13%, 0.9);\n --lumo-shade: hsl(214, 33%, 13%);\n\n /* Contrast */\n --lumo-contrast-5pct: var(--lumo-tint-5pct);\n --lumo-contrast-10pct: var(--lumo-tint-10pct);\n --lumo-contrast-20pct: var(--lumo-tint-20pct);\n --lumo-contrast-30pct: var(--lumo-tint-30pct);\n --lumo-contrast-40pct: var(--lumo-tint-40pct);\n --lumo-contrast-50pct: var(--lumo-tint-50pct);\n --lumo-contrast-60pct: var(--lumo-tint-60pct);\n --lumo-contrast-70pct: var(--lumo-tint-70pct);\n --lumo-contrast-80pct: var(--lumo-tint-80pct);\n --lumo-contrast-90pct: var(--lumo-tint-90pct);\n --lumo-contrast: var(--lumo-tint);\n\n /* Text */\n --lumo-header-text-color: var(--lumo-contrast);\n --lumo-body-text-color: var(--lumo-contrast-90pct);\n --lumo-secondary-text-color: var(--lumo-contrast-70pct);\n --lumo-tertiary-text-color: var(--lumo-contrast-50pct);\n --lumo-disabled-text-color: var(--lumo-contrast-30pct);\n\n /* Primary */\n --lumo-primary-color: hsl(214, 90%, 48%);\n --lumo-primary-color-50pct: hsla(214, 90%, 70%, 0.69);\n --lumo-primary-color-10pct: hsla(214, 90%, 55%, 0.13);\n --lumo-primary-text-color: hsl(214, 90%, 77%);\n --lumo-primary-contrast-color: #fff;\n\n /* Error */\n --lumo-error-color: hsl(3, 79%, 49%);\n --lumo-error-color-50pct: hsla(3, 75%, 62%, 0.5);\n --lumo-error-color-10pct: hsla(3, 75%, 62%, 0.14);\n --lumo-error-text-color: hsl(3, 100%, 80%);\n\n /* Success */\n --lumo-success-color: hsl(145, 72%, 30%);\n --lumo-success-color-50pct: hsla(145, 92%, 51%, 0.5);\n --lumo-success-color-10pct: hsla(145, 92%, 51%, 0.1);\n --lumo-success-text-color: hsl(145, 85%, 46%);\n\n /* Warning */\n --lumo-warning-color: hsl(43, 100%, 48%);\n --lumo-warning-color-10pct: hsla(40, 100%, 50%, 0.2);\n --lumo-warning-text-color: hsl(45, 100%, 60%);\n --lumo-warning-contrast-color: var(--lumo-shade-90pct);\n }\n\n html {\n color: var(--lumo-body-text-color);\n background-color: var(--lumo-base-color);\n color-scheme: light;\n }\n\n [theme~='dark'] {\n color: var(--lumo-body-text-color);\n background-color: var(--lumo-base-color);\n color-scheme: dark;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n color: var(--lumo-header-text-color);\n }\n\n a:where(:any-link) {\n color: var(--lumo-primary-text-color);\n }\n\n a:not(:any-link) {\n color: var(--lumo-disabled-text-color);\n }\n\n blockquote {\n color: var(--lumo-secondary-text-color);\n }\n\n code,\n pre {\n background-color: var(--lumo-contrast-10pct);\n border-radius: var(--lumo-border-radius-m);\n }\n`;\n\nregisterStyles('', color, { moduleId: 'lumo-color' });\n\nexport { colorBase, color };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport './version.js';\nimport { css } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { addLumoGlobalStyles } from './global.js';\n\nconst spacing = css`\n :host {\n /* Square */\n --lumo-space-xs: 0.25rem;\n --lumo-space-s: 0.5rem;\n --lumo-space-m: 1rem;\n --lumo-space-l: 1.5rem;\n --lumo-space-xl: 2.5rem;\n\n /* Wide */\n --lumo-space-wide-xs: calc(var(--lumo-space-xs) / 2) var(--lumo-space-xs);\n --lumo-space-wide-s: calc(var(--lumo-space-s) / 2) var(--lumo-space-s);\n --lumo-space-wide-m: calc(var(--lumo-space-m) / 2) var(--lumo-space-m);\n --lumo-space-wide-l: calc(var(--lumo-space-l) / 2) var(--lumo-space-l);\n --lumo-space-wide-xl: calc(var(--lumo-space-xl) / 2) var(--lumo-space-xl);\n\n /* Tall */\n --lumo-space-tall-xs: var(--lumo-space-xs) calc(var(--lumo-space-xs) / 2);\n --lumo-space-tall-s: var(--lumo-space-s) calc(var(--lumo-space-s) / 2);\n --lumo-space-tall-m: var(--lumo-space-m) calc(var(--lumo-space-m) / 2);\n --lumo-space-tall-l: var(--lumo-space-l) calc(var(--lumo-space-l) / 2);\n --lumo-space-tall-xl: var(--lumo-space-xl) calc(var(--lumo-space-xl) / 2);\n }\n`;\n\naddLumoGlobalStyles('spacing-props', spacing);\n\nexport { spacing };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport './version.js';\nimport { css } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { addLumoGlobalStyles } from './global.js';\n\nconst style = css`\n :host {\n /* Border radius */\n --lumo-border-radius-s: 0.25em; /* Checkbox, badge, date-picker year indicator, etc */\n --lumo-border-radius-m: var(--lumo-border-radius, 0.25em); /* Button, text field, menu overlay, etc */\n --lumo-border-radius-l: 0.5em; /* Dialog, notification, etc */\n\n /* Shadow */\n --lumo-box-shadow-xs: 0 1px 4px -1px var(--lumo-shade-50pct);\n --lumo-box-shadow-s: 0 2px 4px -1px var(--lumo-shade-20pct), 0 3px 12px -1px var(--lumo-shade-30pct);\n --lumo-box-shadow-m: 0 2px 6px -1px var(--lumo-shade-20pct), 0 8px 24px -4px var(--lumo-shade-40pct);\n --lumo-box-shadow-l: 0 3px 18px -2px var(--lumo-shade-20pct), 0 12px 48px -6px var(--lumo-shade-40pct);\n --lumo-box-shadow-xl: 0 4px 24px -3px var(--lumo-shade-20pct), 0 18px 64px -8px var(--lumo-shade-40pct);\n\n /* Clickable element cursor */\n --lumo-clickable-cursor: default;\n }\n`;\n\n/**\n * Default values for component-specific custom properties.\n */\nconst globals = css`\n html {\n /* Button */\n --vaadin-button-background: var(--lumo-contrast-5pct);\n --vaadin-button-border: none;\n --vaadin-button-border-radius: var(--lumo-border-radius-m);\n --vaadin-button-font-size: var(--lumo-font-size-m);\n --vaadin-button-font-weight: 500;\n --vaadin-button-height: var(--lumo-size-m);\n --vaadin-button-margin: var(--lumo-space-xs) 0;\n --vaadin-button-min-width: calc(var(--vaadin-button-height) * 2);\n --vaadin-button-padding: 0 calc(var(--vaadin-button-height) / 3 + var(--lumo-border-radius-m) / 2);\n --vaadin-button-text-color: var(--lumo-primary-text-color);\n --vaadin-button-primary-background: var(--lumo-primary-color);\n --vaadin-button-primary-border: none;\n --vaadin-button-primary-font-weight: 600;\n --vaadin-button-primary-text-color: var(--lumo-primary-contrast-color);\n --vaadin-button-tertiary-background: transparent !important;\n --vaadin-button-tertiary-text-color: var(--lumo-primary-text-color);\n --vaadin-button-tertiary-font-weight: 500;\n --vaadin-button-tertiary-padding: 0 calc(var(--vaadin-button-height) / 6);\n /* Checkbox */\n --vaadin-checkbox-background: var(--lumo-contrast-20pct);\n --vaadin-checkbox-background-hover: var(--lumo-contrast-30pct);\n --vaadin-checkbox-border-radius: var(--lumo-border-radius-s);\n --vaadin-checkbox-checkmark-char: var(--lumo-icons-checkmark);\n --vaadin-checkbox-checkmark-char-indeterminate: '';\n --vaadin-checkbox-checkmark-color: var(--lumo-primary-contrast-color);\n --vaadin-checkbox-checkmark-size: calc(var(--vaadin-checkbox-size) + 2px);\n --vaadin-checkbox-label-color: var(--lumo-body-text-color);\n --vaadin-checkbox-label-font-size: var(--lumo-font-size-m);\n --vaadin-checkbox-label-padding: var(--lumo-space-xs) var(--lumo-space-s) var(--lumo-space-xs) var(--lumo-space-xs);\n --vaadin-checkbox-size: calc(var(--lumo-size-m) / 2);\n /* Radio button */\n --vaadin-radio-button-background: var(--lumo-contrast-20pct);\n --vaadin-radio-button-background-hover: var(--lumo-contrast-30pct);\n --vaadin-radio-button-dot-color: var(--lumo-primary-contrast-color);\n --vaadin-radio-button-dot-size: 3px;\n --vaadin-radio-button-label-color: var(--lumo-body-text-color);\n --vaadin-radio-button-label-font-size: var(--lumo-font-size-m);\n --vaadin-radio-button-label-padding: var(--lumo-space-xs) var(--lumo-space-s) var(--lumo-space-xs)\n var(--lumo-space-xs);\n --vaadin-radio-button-size: calc(var(--lumo-size-m) / 2);\n --vaadin-selection-color: var(--lumo-primary-color);\n --vaadin-selection-color-text: var(--lumo-primary-text-color);\n --vaadin-input-field-border-radius: var(--lumo-border-radius-m);\n --vaadin-focus-ring-color: var(--lumo-primary-color-50pct);\n --vaadin-focus-ring-width: 2px;\n /* Label */\n --vaadin-input-field-label-color: var(--lumo-secondary-text-color);\n --vaadin-input-field-focused-label-color: var(--lumo-primary-text-color);\n --vaadin-input-field-hovered-label-color: var(--lumo-body-text-color);\n --vaadin-input-field-label-font-size: var(--lumo-font-size-s);\n --vaadin-input-field-label-font-weight: 500;\n /* Helper */\n --vaadin-input-field-helper-color: var(--lumo-secondary-text-color);\n --vaadin-input-field-helper-font-size: var(--lumo-font-size-xs);\n --vaadin-input-field-helper-font-weight: 400;\n --vaadin-input-field-helper-spacing: 0.4em;\n /* Error message */\n --vaadin-input-field-error-color: var(--lumo-error-text-color);\n --vaadin-input-field-error-font-size: var(--lumo-font-size-xs);\n --vaadin-input-field-error-font-weight: 400;\n /* Input field */\n --vaadin-input-field-background: var(--lumo-contrast-10pct);\n --vaadin-input-field-icon-color: var(--lumo-contrast-60pct);\n --vaadin-input-field-icon-size: var(--lumo-icon-size-m);\n --vaadin-input-field-invalid-background: var(--lumo-error-color-10pct);\n --vaadin-input-field-invalid-hover-highlight: var(--lumo-error-color-50pct);\n --vaadin-input-field-height: var(--lumo-size-m);\n --vaadin-input-field-hover-highlight: var(--lumo-contrast-50pct);\n --vaadin-input-field-placeholder-color: var(--lumo-secondary-text-color);\n --vaadin-input-field-readonly-border: 1px dashed var(--lumo-contrast-30pct);\n --vaadin-input-field-value-color: var(--lumo-body-text-color);\n --vaadin-input-field-value-font-size: var(--lumo-font-size-m);\n --vaadin-input-field-value-font-weight: 400;\n }\n`;\n\naddLumoGlobalStyles('style-props', style);\n\nexport { globals, style };\n"],"names":["GridTextColumnClass","sortable","this","getAttribute","_defaultRenderer","cell","_col","model","data","item","path","content","Array","isArray","join","__setTextContent","title","_defaultHeaderRenderer","root","_column","super","__getHeader","header","componentName","customElements","define","getAncestorRootNodes","node","result","nodeType","Node","DOCUMENT_NODE","push","DOCUMENT_FRAGMENT_NODE","assignedSlot","parentNode","host","getFlattenedElements","elements","localName","assignedElements","children","forEach","elem","getClosestElement","selector","closest","getRootNode","deserializeAttributeValue","value","Set","split","serializeAttributeValue","values","addValueToAttribute","element","attr","add","setAttribute","removeValueFromAttribute","delete","size","removeAttribute","isEmptyTextNode","TEXT_NODE","textContent","trim","get","object","reduce","obj","property","undefined","set","pathParts","lastPart","pop","target","part","processTemplates","component","window","Vaadin","templateRendererCallback","querySelector","console","warn","moduleId","template","document","createElement","innerHTML","DESCOPE_NONCE","head","appendChild","GridSorterMixin","superClass","properties","String","direction","type","reflectToAttribute","notify","sync","_order","Number","_isConnected","Boolean","observer","observers","ready","addEventListener","_onClick","bind","connectedCallback","disconnectedCallback","_grid","__removeSorters","_pathOrDirectionChanged","__dispatchSorterChangedEvenIfPossible","__isConnectedChanged","newValue","oldValue","dispatchEvent","CustomEvent","detail","shiftClick","_shiftClick","fromSorterClick","_fromSorterClick","bubbles","composed","_getDisplayOrder","order","e","defaultPrevented","activeElement","contains","preventDefault","shiftKey","GridSorter","is","GridSortColumnMixin","constructor","__boundOnDirectionChanged","__onDirectionChanged","sorter","firstElementChild","__rendererDirection","_computeHeaderRenderer","_generateHeader","GridSortColumn","colorBase","color","spacing","style"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"descope-grid-descope-grid-text-column-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-text-column/GridTextColumnClass.js","webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-text-column/index.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/dom-utils.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/path-utils.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/templates.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/grid/theme/lumo/vaadin-grid-sorter-styles.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/grid/src/vaadin-grid-sorter-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/grid/src/vaadin-grid-sorter.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/grid/src/vaadin-grid-sort-column-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/grid/src/vaadin-grid-sort-column.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/vaadin-lumo-styles/color.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/vaadin-lumo-styles/spacing.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/vaadin-lumo-styles/style.js"],"sourcesContent":["import { GridSortColumn } from '@vaadin/grid/vaadin-grid-sort-column';\n\nexport class GridTextColumnClass extends GridSortColumn {\n get sortable() {\n return this.getAttribute('sortable') === 'true';\n }\n\n _defaultRenderer(cell, _col, model) {\n const data = model.item[this.path] || '';\n const content = Array.isArray(data) ? data.join(', ') : data;\n\n this.__setTextContent(cell, content);\n cell.title = content;\n }\n\n _defaultHeaderRenderer(root, _column) {\n if (this.sortable) {\n super._defaultHeaderRenderer(root, _column);\n\n return;\n }\n\n this.__setTextContent(root, this.__getHeader(this.header, this.path));\n }\n}\n","import { getComponentName } from '../../../helpers/componentHelpers';\nimport { GridTextColumnClass } from './GridTextColumnClass';\n\nexport const componentName = getComponentName('grid-text-column');\n\ncustomElements.define(componentName, GridTextColumnClass);\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\n/**\n * Returns an array of ancestor root nodes for the given node.\n *\n * A root node is either a document node or a document fragment node (Shadow Root).\n * The array is collected by a bottom-up DOM traversing that starts with the given node\n * and involves both the light DOM and ancestor shadow DOM trees.\n *\n * @param {Node} node\n * @return {Node[]}\n */\nexport function getAncestorRootNodes(node) {\n const result = [];\n\n while (node) {\n if (node.nodeType === Node.DOCUMENT_NODE) {\n result.push(node);\n break;\n }\n\n if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n result.push(node);\n node = node.host;\n continue;\n }\n\n if (node.assignedSlot) {\n node = node.assignedSlot;\n continue;\n }\n\n node = node.parentNode;\n }\n\n return result;\n}\n\n/**\n * Returns the list of flattened elements for the given `node`.\n * This list consists of a node's children and, for any children that are\n * `<slot>` elements, the expanded flattened list of `assignedElements`.\n *\n * @param {Node} node\n * @return {Element[]}\n */\nexport function getFlattenedElements(node) {\n const result = [];\n let elements;\n if (node.localName === 'slot') {\n elements = node.assignedElements();\n } else {\n result.push(node);\n elements = [...node.children];\n }\n elements.forEach((elem) => result.push(...getFlattenedElements(elem)));\n return result;\n}\n\n/**\n * Traverses the given node and its parents, including those that are across\n * the shadow root boundaries, until it finds a node that matches the selector.\n *\n * @param {string} selector The CSS selector to match against\n * @param {Node} node The starting node for the traversal\n * @return {Node | null} The closest matching element, or null if no match is found\n */\nexport function getClosestElement(selector, node) {\n if (!node) {\n return null;\n }\n\n return node.closest(selector) || getClosestElement(selector, node.getRootNode().host);\n}\n\n/**\n * Takes a string with values separated by space and returns a set the values\n *\n * @param {string} value\n * @return {Set<string>}\n */\nexport function deserializeAttributeValue(value) {\n if (!value) {\n return new Set();\n }\n\n return new Set(value.split(' '));\n}\n\n/**\n * Takes a set of string values and returns a string with values separated by space\n *\n * @param {Set<string>} values\n * @return {string}\n */\nexport function serializeAttributeValue(values) {\n return values ? [...values].join(' ') : '';\n}\n\n/**\n * Adds a value to an attribute containing space-delimited values.\n *\n * @param {HTMLElement} element\n * @param {string} attr\n * @param {string} value\n */\nexport function addValueToAttribute(element, attr, value) {\n const values = deserializeAttributeValue(element.getAttribute(attr));\n values.add(value);\n element.setAttribute(attr, serializeAttributeValue(values));\n}\n\n/**\n * Removes a value from an attribute containing space-delimited values.\n * If the value is the last one, the whole attribute is removed.\n *\n * @param {HTMLElement} element\n * @param {string} attr\n * @param {string} value\n */\nexport function removeValueFromAttribute(element, attr, value) {\n const values = deserializeAttributeValue(element.getAttribute(attr));\n values.delete(value);\n if (values.size === 0) {\n element.removeAttribute(attr);\n return;\n }\n element.setAttribute(attr, serializeAttributeValue(values));\n}\n\n/**\n * Returns true if the given node is an empty text node, false otherwise.\n *\n * @param {Node} node\n * @return {boolean}\n */\nexport function isEmptyTextNode(node) {\n return node.nodeType === Node.TEXT_NODE && node.textContent.trim() === '';\n}\n","/**\n * @license\n * Copyright (c) 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\n/**\n * Convenience method for reading a value from a path.\n *\n * @param {string} path\n * @param {object} object\n */\nexport function get(path, object) {\n return path.split('.').reduce((obj, property) => (obj ? obj[property] : undefined), object);\n}\n\n/**\n * Convenience method for setting a value to a path.\n *\n * @param {string} path\n * @param {unknown} value\n * @param {object} object\n */\nexport function set(path, value, object) {\n const pathParts = path.split('.');\n const lastPart = pathParts.pop();\n const target = pathParts.reduce((target, part) => target[part], object);\n target[lastPart] = value;\n}\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\n/**\n * Passes the component to the template renderer callback if the template renderer is imported.\n * Otherwise, if there is a template, it warns that the template renderer needs to be imported.\n *\n * @param {HTMLElement} component\n */\nexport function processTemplates(component) {\n if (window.Vaadin && window.Vaadin.templateRendererCallback) {\n window.Vaadin.templateRendererCallback(component);\n return;\n }\n\n if (component.querySelector('template')) {\n console.warn(\n `WARNING: <template> inside <${component.localName}> is no longer supported. Import @vaadin/polymer-legacy-adapter/template-renderer.js to enable compatibility.`,\n );\n }\n}\n","import '@vaadin/vaadin-lumo-styles/color.js';\nimport '@vaadin/vaadin-lumo-styles/style.js';\nimport '@vaadin/vaadin-lumo-styles/spacing.js';\nimport { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nregisterStyles(\n 'vaadin-grid-sorter',\n css`\n :host {\n justify-content: flex-start;\n align-items: baseline;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n cursor: var(--lumo-clickable-cursor);\n }\n\n [part='content'] {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n [part='indicators'] {\n margin-left: var(--lumo-space-s);\n }\n\n [part='indicators']::before {\n transform: scale(0.8);\n }\n\n :host(:not([direction]):not(:hover)) [part='indicators'] {\n color: var(--lumo-tertiary-text-color);\n }\n\n :host([direction]) {\n color: var(--vaadin-selection-color-text, var(--lumo-primary-text-color));\n }\n\n [part='order'] {\n font-size: var(--lumo-font-size-xxs);\n line-height: 1;\n }\n\n /* RTL specific styles */\n\n :host([dir='rtl']) [part='indicators'] {\n margin-right: var(--lumo-space-s);\n margin-left: 0;\n }\n `,\n { moduleId: 'lumo-grid-sorter' },\n);\n","/**\n * @license\n * Copyright (c) 2016 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nconst template = document.createElement('template');\n\ntemplate.innerHTML = `\n <style nonce=${window.DESCOPE_NONCE}>\n @font-face {\n font-family: 'vaadin-grid-sorter-icons';\n src: url('` + __webpack_public_path__ + `fonts/font-1364590020.woff');\n font-weight: normal;\n font-style: normal;\n }\n </style>\n`;\n\ndocument.head.appendChild(template.content);\n\nregisterStyles(\n 'vaadin-grid-sorter',\n css`\n :host {\n display: inline-flex;\n cursor: pointer;\n max-width: 100%;\n }\n\n [part='content'] {\n flex: 1 1 auto;\n }\n\n [part='indicators'] {\n position: relative;\n align-self: center;\n flex: none;\n }\n\n [part='order'] {\n display: inline;\n vertical-align: super;\n }\n\n [part='indicators']::before {\n font-family: 'vaadin-grid-sorter-icons';\n display: inline-block;\n }\n\n :host(:not([direction])) [part='indicators']::before {\n content: '\\\\e901';\n }\n\n :host([direction='asc']) [part='indicators']::before {\n content: '\\\\e900';\n }\n\n :host([direction='desc']) [part='indicators']::before {\n content: '\\\\e902';\n }\n `,\n { moduleId: 'vaadin-grid-sorter-styles' },\n);\n\n/**\n * A mixin providing common sorter functionality.\n *\n * @polymerMixin\n */\nexport const GridSorterMixin = (superClass) =>\n class GridSorterMixinClass extends superClass {\n static get properties() {\n return {\n /**\n * JS Path of the property in the item used for sorting the data.\n */\n path: String,\n\n /**\n * How to sort the data.\n * Possible values are `asc` to use an ascending algorithm, `desc` to sort the data in\n * descending direction, or `null` for not sorting the data.\n * @type {GridSorterDirection | undefined}\n */\n direction: {\n type: String,\n reflectToAttribute: true,\n notify: true,\n value: null,\n sync: true,\n },\n\n /**\n * @type {number | null}\n * @protected\n */\n _order: {\n type: Number,\n value: null,\n sync: true,\n },\n\n /** @private */\n _isConnected: {\n type: Boolean,\n observer: '__isConnectedChanged',\n },\n };\n }\n\n static get observers() {\n return ['_pathOrDirectionChanged(path, direction)'];\n }\n\n /** @protected */\n ready() {\n super.ready();\n this.addEventListener('click', this._onClick.bind(this));\n }\n\n /** @protected */\n connectedCallback() {\n super.connectedCallback();\n this._isConnected = true;\n }\n\n /** @protected */\n disconnectedCallback() {\n super.disconnectedCallback();\n this._isConnected = false;\n\n if (!this.parentNode && this._grid) {\n this._grid.__removeSorters([this]);\n }\n }\n\n /** @private */\n _pathOrDirectionChanged() {\n this.__dispatchSorterChangedEvenIfPossible();\n }\n\n /** @private */\n __isConnectedChanged(newValue, oldValue) {\n if (oldValue === false) {\n return;\n }\n\n this.__dispatchSorterChangedEvenIfPossible();\n }\n\n /** @private */\n __dispatchSorterChangedEvenIfPossible() {\n if (this.path === undefined || this.direction === undefined || !this._isConnected) {\n return;\n }\n\n this.dispatchEvent(\n new CustomEvent('sorter-changed', {\n detail: { shiftClick: Boolean(this._shiftClick), fromSorterClick: Boolean(this._fromSorterClick) },\n bubbles: true,\n composed: true,\n }),\n );\n // Cleaning up as a programatically sorting can be done after some user interaction\n this._fromSorterClick = false;\n this._shiftClick = false;\n }\n\n /** @private */\n _getDisplayOrder(order) {\n return order === null ? '' : order + 1;\n }\n\n /** @private */\n _onClick(e) {\n if (e.defaultPrevented) {\n // Something else has already handled the click event, do nothing.\n return;\n }\n\n const activeElement = this.getRootNode().activeElement;\n if (this !== activeElement && this.contains(activeElement)) {\n // Some focusable content inside the sorter was clicked, do nothing.\n return;\n }\n\n e.preventDefault();\n this._shiftClick = e.shiftKey;\n this._fromSorterClick = true;\n if (this.direction === 'asc') {\n this.direction = 'desc';\n } else if (this.direction === 'desc') {\n this.direction = null;\n } else {\n this.direction = 'asc';\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2016 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { html, PolymerElement } from '@polymer/polymer/polymer-element.js';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\nimport { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';\nimport { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { GridSorterMixin } from './vaadin-grid-sorter-mixin.js';\n\n/**\n * `<vaadin-grid-sorter>` is a helper element for the `<vaadin-grid>` that provides out-of-the-box UI controls,\n * visual feedback, and handlers for sorting the grid data.\n *\n * #### Example:\n * ```html\n * <vaadin-grid-column id=\"column\"></vaadin-grid-column>\n * ```\n * ```js\n * const column = document.querySelector('#column');\n * column.renderer = (root, column, model) => {\n * let sorter = root.firstElementChild;\n * if (!sorter) {\n * sorter = document.createElement('vaadin-grid-sorter');\n * root.appendChild(sorter);\n * }\n * sorter.path = 'name.first';\n * };\n * ```\n *\n * ### Styling\n *\n * The following shadow DOM parts are available for styling:\n *\n * Part name | Description\n * ----------------|----------------\n * `content` | The slotted content wrapper\n * `indicators` | The internal sorter indicators.\n * `order` | The internal sorter order\n *\n * The following state attributes are available for styling:\n *\n * Attribute | Description | Part name\n * -------------|-------------|------------\n * `direction` | Sort direction of a sorter | :host\n *\n * @fires {CustomEvent} direction-changed - Fired when the `direction` property changes.\n * @fires {CustomEvent} sorter-changed - Fired when the `path` or `direction` property changes.\n *\n * @customElement\n * @extends HTMLElement\n * @mixes GridSorterMixin\n * @mixes ThemableMixin\n * @mixes DirMixin\n */\nclass GridSorter extends GridSorterMixin(ThemableMixin(DirMixin(PolymerElement))) {\n static get template() {\n return html`\n <div part=\"content\">\n <slot></slot>\n </div>\n <div part=\"indicators\">\n <span part=\"order\">[[_getDisplayOrder(_order)]]</span>\n </div>\n `;\n }\n\n static get is() {\n return 'vaadin-grid-sorter';\n }\n}\n\ndefineCustomElement(GridSorter);\n\nexport { GridSorter };\n","/**\n * @license\n * Copyright (c) 2016 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\n/**\n * @polymerMixin\n */\nexport const GridSortColumnMixin = (superClass) =>\n class extends superClass {\n static get properties() {\n return {\n /**\n * JS Path of the property in the item used for sorting the data.\n */\n path: {\n type: String,\n sync: true,\n },\n\n /**\n * How to sort the data.\n * Possible values are `asc` to use an ascending algorithm, `desc` to sort the data in\n * descending direction, or `null` for not sorting the data.\n * @type {GridSorterDirection | undefined}\n */\n direction: {\n type: String,\n notify: true,\n sync: true,\n },\n };\n }\n\n static get observers() {\n return ['_onHeaderRendererOrBindingChanged(_headerRenderer, _headerCell, path, header, direction)'];\n }\n\n constructor() {\n super();\n\n this.__boundOnDirectionChanged = this.__onDirectionChanged.bind(this);\n }\n\n /**\n * Renders the grid sorter to the header cell.\n *\n * @override\n */\n _defaultHeaderRenderer(root, _column) {\n let sorter = root.firstElementChild;\n if (!sorter) {\n sorter = document.createElement('vaadin-grid-sorter');\n sorter.addEventListener('direction-changed', this.__boundOnDirectionChanged);\n root.appendChild(sorter);\n }\n\n sorter.path = this.path;\n sorter.__rendererDirection = this.direction;\n sorter.direction = this.direction;\n sorter.textContent = this.__getHeader(this.header, this.path);\n }\n\n /**\n * The sort column doesn't allow to use a custom header renderer\n * to override the header cell content.\n * It always renders the grid sorter to the header cell.\n *\n * @override\n */\n _computeHeaderRenderer() {\n return this._defaultHeaderRenderer;\n }\n\n /**\n * Updates the sorting direction once the grid sorter's direction is changed.\n * The listener handles only user-fired events.\n *\n * @private\n */\n __onDirectionChanged(e) {\n // Skip if the direction is changed by the renderer.\n if (e.detail.value === e.target.__rendererDirection) {\n return;\n }\n\n this.direction = e.detail.value;\n }\n\n /** @private */\n __getHeader(header, path) {\n if (header) {\n return header;\n }\n\n if (path) {\n return this._generateHeader(path);\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2016 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport './vaadin-grid-sorter.js';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\nimport { GridColumn } from './vaadin-grid-column.js';\nimport { GridSortColumnMixin } from './vaadin-grid-sort-column-mixin.js';\n\n/**\n * `<vaadin-grid-sort-column>` is a helper element for the `<vaadin-grid>`\n * that provides default header renderer and functionality for sorting.\n *\n * #### Example:\n * ```html\n * <vaadin-grid items=\"[[items]]\">\n * <vaadin-grid-sort-column path=\"name.first\" direction=\"asc\"></vaadin-grid-sort-column>\n *\n * <vaadin-grid-column>\n * ...\n * ```\n *\n * @fires {CustomEvent} direction-changed - Fired when the `direction` property changes.\n *\n * @customElement\n * @extends GridColumn\n * @mixes GridSortColumnMixin\n */\nclass GridSortColumn extends GridSortColumnMixin(GridColumn) {\n static get is() {\n return 'vaadin-grid-sort-column';\n }\n}\n\ndefineCustomElement(GridSortColumn);\n\nexport { GridSortColumn };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport './version.js';\nimport { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { addLumoGlobalStyles } from './global.js';\n\nconst colorBase = css`\n :host {\n /* Base (background) */\n --lumo-base-color: #fff;\n\n /* Tint */\n --lumo-tint-5pct: hsla(0, 0%, 100%, 0.3);\n --lumo-tint-10pct: hsla(0, 0%, 100%, 0.37);\n --lumo-tint-20pct: hsla(0, 0%, 100%, 0.44);\n --lumo-tint-30pct: hsla(0, 0%, 100%, 0.5);\n --lumo-tint-40pct: hsla(0, 0%, 100%, 0.57);\n --lumo-tint-50pct: hsla(0, 0%, 100%, 0.64);\n --lumo-tint-60pct: hsla(0, 0%, 100%, 0.7);\n --lumo-tint-70pct: hsla(0, 0%, 100%, 0.77);\n --lumo-tint-80pct: hsla(0, 0%, 100%, 0.84);\n --lumo-tint-90pct: hsla(0, 0%, 100%, 0.9);\n --lumo-tint: #fff;\n\n /* Shade */\n --lumo-shade-5pct: hsla(214, 61%, 25%, 0.05);\n --lumo-shade-10pct: hsla(214, 57%, 24%, 0.1);\n --lumo-shade-20pct: hsla(214, 53%, 23%, 0.16);\n --lumo-shade-30pct: hsla(214, 50%, 22%, 0.26);\n --lumo-shade-40pct: hsla(214, 47%, 21%, 0.38);\n --lumo-shade-50pct: hsla(214, 45%, 20%, 0.52);\n --lumo-shade-60pct: hsla(214, 43%, 19%, 0.6);\n --lumo-shade-70pct: hsla(214, 42%, 18%, 0.69);\n --lumo-shade-80pct: hsla(214, 41%, 17%, 0.83);\n --lumo-shade-90pct: hsla(214, 40%, 16%, 0.94);\n --lumo-shade: hsl(214, 35%, 15%);\n\n /* Contrast */\n --lumo-contrast-5pct: var(--lumo-shade-5pct);\n --lumo-contrast-10pct: var(--lumo-shade-10pct);\n --lumo-contrast-20pct: var(--lumo-shade-20pct);\n --lumo-contrast-30pct: var(--lumo-shade-30pct);\n --lumo-contrast-40pct: var(--lumo-shade-40pct);\n --lumo-contrast-50pct: var(--lumo-shade-50pct);\n --lumo-contrast-60pct: var(--lumo-shade-60pct);\n --lumo-contrast-70pct: var(--lumo-shade-70pct);\n --lumo-contrast-80pct: var(--lumo-shade-80pct);\n --lumo-contrast-90pct: var(--lumo-shade-90pct);\n --lumo-contrast: var(--lumo-shade);\n\n /* Text */\n --lumo-header-text-color: var(--lumo-contrast);\n --lumo-body-text-color: var(--lumo-contrast-90pct);\n --lumo-secondary-text-color: var(--lumo-contrast-70pct);\n --lumo-tertiary-text-color: var(--lumo-contrast-50pct);\n --lumo-disabled-text-color: var(--lumo-contrast-30pct);\n\n /* Primary */\n --lumo-primary-color: hsl(214, 100%, 48%);\n --lumo-primary-color-50pct: hsla(214, 100%, 49%, 0.76);\n --lumo-primary-color-10pct: hsla(214, 100%, 60%, 0.13);\n --lumo-primary-text-color: hsl(214, 100%, 43%);\n --lumo-primary-contrast-color: #fff;\n\n /* Error */\n --lumo-error-color: hsl(3, 85%, 48%);\n --lumo-error-color-50pct: hsla(3, 85%, 49%, 0.5);\n --lumo-error-color-10pct: hsla(3, 85%, 49%, 0.1);\n --lumo-error-text-color: hsl(3, 89%, 42%);\n --lumo-error-contrast-color: #fff;\n\n /* Success */\n --lumo-success-color: hsl(145, 72%, 30%);\n --lumo-success-color-50pct: hsla(145, 72%, 31%, 0.5);\n --lumo-success-color-10pct: hsla(145, 72%, 31%, 0.1);\n --lumo-success-text-color: hsl(145, 85%, 25%);\n --lumo-success-contrast-color: #fff;\n\n /* Warning */\n --lumo-warning-color: hsl(48, 100%, 50%);\n --lumo-warning-color-10pct: hsla(48, 100%, 50%, 0.25);\n --lumo-warning-text-color: hsl(32, 100%, 30%);\n --lumo-warning-contrast-color: var(--lumo-shade-90pct);\n }\n\n /* forced-colors mode adjustments */\n @media (forced-colors: active) {\n html {\n --lumo-disabled-text-color: GrayText;\n }\n }\n`;\n\naddLumoGlobalStyles('color-props', colorBase);\n\nconst color = css`\n [theme~='dark'] {\n /* Base (background) */\n --lumo-base-color: hsl(214, 35%, 21%);\n\n /* Tint */\n --lumo-tint-5pct: hsla(214, 65%, 85%, 0.06);\n --lumo-tint-10pct: hsla(214, 60%, 80%, 0.14);\n --lumo-tint-20pct: hsla(214, 64%, 82%, 0.23);\n --lumo-tint-30pct: hsla(214, 69%, 84%, 0.32);\n --lumo-tint-40pct: hsla(214, 73%, 86%, 0.41);\n --lumo-tint-50pct: hsla(214, 78%, 88%, 0.5);\n --lumo-tint-60pct: hsla(214, 82%, 90%, 0.58);\n --lumo-tint-70pct: hsla(214, 87%, 92%, 0.69);\n --lumo-tint-80pct: hsla(214, 91%, 94%, 0.8);\n --lumo-tint-90pct: hsla(214, 96%, 96%, 0.9);\n --lumo-tint: hsl(214, 100%, 98%);\n\n /* Shade */\n --lumo-shade-5pct: hsla(214, 0%, 0%, 0.07);\n --lumo-shade-10pct: hsla(214, 4%, 2%, 0.15);\n --lumo-shade-20pct: hsla(214, 8%, 4%, 0.23);\n --lumo-shade-30pct: hsla(214, 12%, 6%, 0.32);\n --lumo-shade-40pct: hsla(214, 16%, 8%, 0.41);\n --lumo-shade-50pct: hsla(214, 20%, 10%, 0.5);\n --lumo-shade-60pct: hsla(214, 24%, 12%, 0.6);\n --lumo-shade-70pct: hsla(214, 28%, 13%, 0.7);\n --lumo-shade-80pct: hsla(214, 32%, 13%, 0.8);\n --lumo-shade-90pct: hsla(214, 33%, 13%, 0.9);\n --lumo-shade: hsl(214, 33%, 13%);\n\n /* Contrast */\n --lumo-contrast-5pct: var(--lumo-tint-5pct);\n --lumo-contrast-10pct: var(--lumo-tint-10pct);\n --lumo-contrast-20pct: var(--lumo-tint-20pct);\n --lumo-contrast-30pct: var(--lumo-tint-30pct);\n --lumo-contrast-40pct: var(--lumo-tint-40pct);\n --lumo-contrast-50pct: var(--lumo-tint-50pct);\n --lumo-contrast-60pct: var(--lumo-tint-60pct);\n --lumo-contrast-70pct: var(--lumo-tint-70pct);\n --lumo-contrast-80pct: var(--lumo-tint-80pct);\n --lumo-contrast-90pct: var(--lumo-tint-90pct);\n --lumo-contrast: var(--lumo-tint);\n\n /* Text */\n --lumo-header-text-color: var(--lumo-contrast);\n --lumo-body-text-color: var(--lumo-contrast-90pct);\n --lumo-secondary-text-color: var(--lumo-contrast-70pct);\n --lumo-tertiary-text-color: var(--lumo-contrast-50pct);\n --lumo-disabled-text-color: var(--lumo-contrast-30pct);\n\n /* Primary */\n --lumo-primary-color: hsl(214, 90%, 48%);\n --lumo-primary-color-50pct: hsla(214, 90%, 70%, 0.69);\n --lumo-primary-color-10pct: hsla(214, 90%, 55%, 0.13);\n --lumo-primary-text-color: hsl(214, 90%, 77%);\n --lumo-primary-contrast-color: #fff;\n\n /* Error */\n --lumo-error-color: hsl(3, 79%, 49%);\n --lumo-error-color-50pct: hsla(3, 75%, 62%, 0.5);\n --lumo-error-color-10pct: hsla(3, 75%, 62%, 0.14);\n --lumo-error-text-color: hsl(3, 100%, 80%);\n\n /* Success */\n --lumo-success-color: hsl(145, 72%, 30%);\n --lumo-success-color-50pct: hsla(145, 92%, 51%, 0.5);\n --lumo-success-color-10pct: hsla(145, 92%, 51%, 0.1);\n --lumo-success-text-color: hsl(145, 85%, 46%);\n\n /* Warning */\n --lumo-warning-color: hsl(43, 100%, 48%);\n --lumo-warning-color-10pct: hsla(40, 100%, 50%, 0.2);\n --lumo-warning-text-color: hsl(45, 100%, 60%);\n --lumo-warning-contrast-color: var(--lumo-shade-90pct);\n }\n\n html {\n color: var(--lumo-body-text-color);\n background-color: var(--lumo-base-color);\n color-scheme: light;\n }\n\n [theme~='dark'] {\n color: var(--lumo-body-text-color);\n background-color: var(--lumo-base-color);\n color-scheme: dark;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n color: var(--lumo-header-text-color);\n }\n\n a:where(:any-link) {\n color: var(--lumo-primary-text-color);\n }\n\n a:not(:any-link) {\n color: var(--lumo-disabled-text-color);\n }\n\n blockquote {\n color: var(--lumo-secondary-text-color);\n }\n\n code,\n pre {\n background-color: var(--lumo-contrast-10pct);\n border-radius: var(--lumo-border-radius-m);\n }\n`;\n\nregisterStyles('', color, { moduleId: 'lumo-color' });\n\nexport { colorBase, color };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport './version.js';\nimport { css } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { addLumoGlobalStyles } from './global.js';\n\nconst spacing = css`\n :host {\n /* Square */\n --lumo-space-xs: 0.25rem;\n --lumo-space-s: 0.5rem;\n --lumo-space-m: 1rem;\n --lumo-space-l: 1.5rem;\n --lumo-space-xl: 2.5rem;\n\n /* Wide */\n --lumo-space-wide-xs: calc(var(--lumo-space-xs) / 2) var(--lumo-space-xs);\n --lumo-space-wide-s: calc(var(--lumo-space-s) / 2) var(--lumo-space-s);\n --lumo-space-wide-m: calc(var(--lumo-space-m) / 2) var(--lumo-space-m);\n --lumo-space-wide-l: calc(var(--lumo-space-l) / 2) var(--lumo-space-l);\n --lumo-space-wide-xl: calc(var(--lumo-space-xl) / 2) var(--lumo-space-xl);\n\n /* Tall */\n --lumo-space-tall-xs: var(--lumo-space-xs) calc(var(--lumo-space-xs) / 2);\n --lumo-space-tall-s: var(--lumo-space-s) calc(var(--lumo-space-s) / 2);\n --lumo-space-tall-m: var(--lumo-space-m) calc(var(--lumo-space-m) / 2);\n --lumo-space-tall-l: var(--lumo-space-l) calc(var(--lumo-space-l) / 2);\n --lumo-space-tall-xl: var(--lumo-space-xl) calc(var(--lumo-space-xl) / 2);\n }\n`;\n\naddLumoGlobalStyles('spacing-props', spacing);\n\nexport { spacing };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport './version.js';\nimport { css } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { addLumoGlobalStyles } from './global.js';\n\nconst style = css`\n :host {\n /* Border radius */\n --lumo-border-radius-s: 0.25em; /* Checkbox, badge, date-picker year indicator, etc */\n --lumo-border-radius-m: var(--lumo-border-radius, 0.25em); /* Button, text field, menu overlay, etc */\n --lumo-border-radius-l: 0.5em; /* Dialog, notification, etc */\n\n /* Shadow */\n --lumo-box-shadow-xs: 0 1px 4px -1px var(--lumo-shade-50pct);\n --lumo-box-shadow-s: 0 2px 4px -1px var(--lumo-shade-20pct), 0 3px 12px -1px var(--lumo-shade-30pct);\n --lumo-box-shadow-m: 0 2px 6px -1px var(--lumo-shade-20pct), 0 8px 24px -4px var(--lumo-shade-40pct);\n --lumo-box-shadow-l: 0 3px 18px -2px var(--lumo-shade-20pct), 0 12px 48px -6px var(--lumo-shade-40pct);\n --lumo-box-shadow-xl: 0 4px 24px -3px var(--lumo-shade-20pct), 0 18px 64px -8px var(--lumo-shade-40pct);\n\n /* Clickable element cursor */\n --lumo-clickable-cursor: default;\n }\n`;\n\n/**\n * Default values for component-specific custom properties.\n */\nconst globals = css`\n html {\n /* Button */\n --vaadin-button-background: var(--lumo-contrast-5pct);\n --vaadin-button-border: none;\n --vaadin-button-border-radius: var(--lumo-border-radius-m);\n --vaadin-button-font-size: var(--lumo-font-size-m);\n --vaadin-button-font-weight: 500;\n --vaadin-button-height: var(--lumo-size-m);\n --vaadin-button-margin: var(--lumo-space-xs) 0;\n --vaadin-button-min-width: calc(var(--vaadin-button-height) * 2);\n --vaadin-button-padding: 0 calc(var(--vaadin-button-height) / 3 + var(--lumo-border-radius-m) / 2);\n --vaadin-button-text-color: var(--lumo-primary-text-color);\n --vaadin-button-primary-background: var(--lumo-primary-color);\n --vaadin-button-primary-border: none;\n --vaadin-button-primary-font-weight: 600;\n --vaadin-button-primary-text-color: var(--lumo-primary-contrast-color);\n --vaadin-button-tertiary-background: transparent !important;\n --vaadin-button-tertiary-text-color: var(--lumo-primary-text-color);\n --vaadin-button-tertiary-font-weight: 500;\n --vaadin-button-tertiary-padding: 0 calc(var(--vaadin-button-height) / 6);\n /* Checkbox */\n --vaadin-checkbox-background: var(--lumo-contrast-20pct);\n --vaadin-checkbox-background-hover: var(--lumo-contrast-30pct);\n --vaadin-checkbox-border-radius: var(--lumo-border-radius-s);\n --vaadin-checkbox-checkmark-char: var(--lumo-icons-checkmark);\n --vaadin-checkbox-checkmark-char-indeterminate: '';\n --vaadin-checkbox-checkmark-color: var(--lumo-primary-contrast-color);\n --vaadin-checkbox-checkmark-size: calc(var(--vaadin-checkbox-size) + 2px);\n --vaadin-checkbox-label-color: var(--lumo-body-text-color);\n --vaadin-checkbox-label-font-size: var(--lumo-font-size-m);\n --vaadin-checkbox-label-padding: var(--lumo-space-xs) var(--lumo-space-s) var(--lumo-space-xs) var(--lumo-space-xs);\n --vaadin-checkbox-size: calc(var(--lumo-size-m) / 2);\n /* Radio button */\n --vaadin-radio-button-background: var(--lumo-contrast-20pct);\n --vaadin-radio-button-background-hover: var(--lumo-contrast-30pct);\n --vaadin-radio-button-dot-color: var(--lumo-primary-contrast-color);\n --vaadin-radio-button-dot-size: 3px;\n --vaadin-radio-button-label-color: var(--lumo-body-text-color);\n --vaadin-radio-button-label-font-size: var(--lumo-font-size-m);\n --vaadin-radio-button-label-padding: var(--lumo-space-xs) var(--lumo-space-s) var(--lumo-space-xs)\n var(--lumo-space-xs);\n --vaadin-radio-button-size: calc(var(--lumo-size-m) / 2);\n --vaadin-selection-color: var(--lumo-primary-color);\n --vaadin-selection-color-text: var(--lumo-primary-text-color);\n --vaadin-input-field-border-radius: var(--lumo-border-radius-m);\n --vaadin-focus-ring-color: var(--lumo-primary-color-50pct);\n --vaadin-focus-ring-width: 2px;\n /* Label */\n --vaadin-input-field-label-color: var(--lumo-secondary-text-color);\n --vaadin-input-field-focused-label-color: var(--lumo-primary-text-color);\n --vaadin-input-field-hovered-label-color: var(--lumo-body-text-color);\n --vaadin-input-field-label-font-size: var(--lumo-font-size-s);\n --vaadin-input-field-label-font-weight: 500;\n /* Helper */\n --vaadin-input-field-helper-color: var(--lumo-secondary-text-color);\n --vaadin-input-field-helper-font-size: var(--lumo-font-size-xs);\n --vaadin-input-field-helper-font-weight: 400;\n --vaadin-input-field-helper-spacing: 0.4em;\n /* Error message */\n --vaadin-input-field-error-color: var(--lumo-error-text-color);\n --vaadin-input-field-error-font-size: var(--lumo-font-size-xs);\n --vaadin-input-field-error-font-weight: 400;\n /* Input field */\n --vaadin-input-field-background: var(--lumo-contrast-10pct);\n --vaadin-input-field-icon-color: var(--lumo-contrast-60pct);\n --vaadin-input-field-icon-size: var(--lumo-icon-size-m);\n --vaadin-input-field-invalid-background: var(--lumo-error-color-10pct);\n --vaadin-input-field-invalid-hover-highlight: var(--lumo-error-color-50pct);\n --vaadin-input-field-height: var(--lumo-size-m);\n --vaadin-input-field-hover-highlight: var(--lumo-contrast-50pct);\n --vaadin-input-field-placeholder-color: var(--lumo-secondary-text-color);\n --vaadin-input-field-readonly-border: 1px dashed var(--lumo-contrast-30pct);\n --vaadin-input-field-value-color: var(--lumo-body-text-color);\n --vaadin-input-field-value-font-size: var(--lumo-font-size-m);\n --vaadin-input-field-value-font-weight: 400;\n }\n`;\n\naddLumoGlobalStyles('style-props', style);\n\nexport { globals, style };\n"],"names":["GridTextColumnClass","sortable","this","getAttribute","_defaultRenderer","cell","_col","model","data","item","path","content","Array","isArray","join","__setTextContent","title","_defaultHeaderRenderer","root","_column","super","__getHeader","header","componentName","customElements","define","getAncestorRootNodes","node","result","nodeType","Node","DOCUMENT_NODE","push","DOCUMENT_FRAGMENT_NODE","assignedSlot","parentNode","host","getFlattenedElements","elements","localName","assignedElements","children","forEach","elem","getClosestElement","selector","closest","getRootNode","deserializeAttributeValue","value","Set","split","serializeAttributeValue","values","addValueToAttribute","element","attr","add","setAttribute","removeValueFromAttribute","delete","size","removeAttribute","isEmptyTextNode","TEXT_NODE","textContent","trim","get","object","reduce","obj","property","undefined","set","pathParts","lastPart","pop","target","part","processTemplates","component","window","Vaadin","templateRendererCallback","querySelector","console","warn","moduleId","template","document","createElement","innerHTML","DESCOPE_NONCE","head","appendChild","GridSorterMixin","superClass","properties","String","direction","type","reflectToAttribute","notify","sync","_order","Number","_isConnected","Boolean","observer","observers","ready","addEventListener","_onClick","bind","connectedCallback","disconnectedCallback","_grid","__removeSorters","_pathOrDirectionChanged","__dispatchSorterChangedEvenIfPossible","__isConnectedChanged","newValue","oldValue","dispatchEvent","CustomEvent","detail","shiftClick","_shiftClick","fromSorterClick","_fromSorterClick","bubbles","composed","_getDisplayOrder","order","e","defaultPrevented","activeElement","contains","preventDefault","shiftKey","GridSorter","is","GridSortColumnMixin","constructor","__boundOnDirectionChanged","__onDirectionChanged","sorter","firstElementChild","__rendererDirection","_computeHeaderRenderer","_generateHeader","GridSortColumn","colorBase","color","spacing","style"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[2200,3521],{80522(e,t,r){r.r(t),r.d(t,{CodeSnippetClass:()=>le,componentName:()=>c});var o=r(75780),l=r(79365),s=r(9696),n=r(97810),a=r(81365),i=r(25964);const c=(0,n.xE)("code-snippet");class d extends((0,a.q)({componentName:c,baseSelector:":host > code"})){static get observedAttributes(){return["lang","inline"]}constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <code class="hljs"></code>\n ',(0,i.fz)("\n :host {\n display: inline-block;\n width: 100%;\n }\n code {\n display: block;\n width: 100%;\n min-height: 1em;\n overflow-x: scroll;\n overflow-y: scroll;\n }\n pre {\n margin: 0;\n }\n ",this)}init(){super.init?.(),this.lang=this.getAttribute("lang"),this.isInline="true"===this.getAttribute("inline"),(0,n.Ge)(this,this.#e.bind(this))}get contentNode(){return this.shadowRoot.querySelector(this.baseSelector)}attributeChangedCallback(e,t,r){super.attributeChangedCallback?.(e,t,r),t!==r&&("inline"===e&&(this.isInline=r),"lang"===e&&(this.lang=r),this.#e())}#e(){const e=(e=>{const t=document.createElement("textarea");return t.innerHTML=e,t.value})(this.textContent),t=this.lang;if(!t)return void(this.contentNode.textContent=e);const{value:r}=o.A.highlight(e,{language:t});var l;this.contentNode.innerHTML=(l=r,this.isInline?l:`<pre>${l}</pre>`)}}const{root:p,docTag:h,keyword:u,metaKeyword:m,templateTag:g,templateVariable:b,type:y,variableLanguage:C,title:x,titleClass:w,titleClassInherited:v,titleFunction:T,attr:j,attribute:_,literal:f,meta:R,number:k,operator:E,variable:I,selectorAttr:A,selectorClass:S,selectorId:D,regexp:P,string:H,metaString:L,builtIn:N,symbol:$,comment:O,code:B,formula:z,name:F,quote:q,selectorTag:M,selectorPseudo:V,subst:G,section:K,bullet:W,emphasis:J,strong:Q,addition:Z,deletion:U,charEscape:X,link:Y,params:ee,property:te,punctuation:re,tag:oe}={root:{selector:()=>".hljs"},docTag:{selector:()=>".hljs-doctag"},keyword:{selector:()=>".hljs-keyword"},metaKeyword:{selector:()=>".hljs-meta .hljs-keyword"},templateTag:{selector:()=>".hljs-template-tag"},templateVariable:{selector:()=>".hljs-template-variable"},type:{selector:()=>".hljs-type"},variableLanguage:{selector:()=>".hljs-variable.language"},title:{selector:()=>".hljs-title"},titleClass:{selector:()=>".hljs-title.class_"},titleClassInherited:{selector:()=>".hljs-title.class_.inherited__"},titleFunction:{selector:()=>".hljs-title.function_"},attr:{selector:()=>".hljs-attr"},attribute:{selector:()=>".hljs-attribute"},literal:{selector:()=>".hljs-literal"},meta:{selector:()=>".hljs-meta"},number:{selector:()=>".hljs-number"},operator:{selector:()=>".hljs-operator"},variable:{selector:()=>".hljs-variable"},selectorAttr:{selector:()=>".hljs-selector-attr"},selectorClass:{selector:()=>".hljs-selector-class"},selectorId:{selector:()=>".hljs-selector-id"},regexp:{selector:()=>".hljs-regexp"},string:{selector:()=>".hljs-string"},metaString:{selector:()=>".hljs-meta .hljs-string"},builtIn:{selector:()=>".hljs-built_in"},symbol:{selector:()=>".hljs-symbol"},comment:{selector:()=>".hljs-comment"},code:{selector:()=>".hljs-code"},formula:{selector:()=>".hljs-formula"},name:{selector:()=>".hljs-name"},quote:{selector:()=>".hljs-quote"},selectorTag:{selector:()=>".hljs-selector-tag"},selectorPseudo:{selector:()=>".hljs-selector-pseudo"},subst:{selector:()=>".hljs-subst"},section:{selector:()=>".hljs-section"},bullet:{selector:()=>".hljs-bullet"},emphasis:{selector:()=>".hljs-emphasis"},strong:{selector:()=>".hljs-strong"},addition:{selector:()=>".hljs-addition"},deletion:{selector:()=>".hljs-deletion"},charEscape:{selector:()=>".hljs-char.escape"},link:{selector:()=>".hljs-link"},params:{selector:()=>".hljs-params"},property:{selector:()=>".hljs-property"},punctuation:{selector:()=>".hljs-punctuation"},tag:{selector:()=>".hljs-tag"}},le=(0,s.Zz)((0,l.RF)({mappings:{rootBgColor:{...p,property:"background-color"},rootTextColor:{...p,property:"color"},docTagTextColor:{...h,property:"color"},keywordTextColor:{...u,property:"color"},metaKeywordTextColor:{...m,property:"color"},templateTagTextColor:{...g,property:"color"},templateVariableTextColor:{...b,property:"color"},typeTextColor:{...y,property:"color"},variableLanguageTextColor:{...C,property:"color"},titleTextColor:{...x,property:"color"},titleClassTextColor:{...w,property:"color"},titleClassInheritedTextColor:{...v,property:"color"},titleFunctionTextColor:{...T,property:"color"},attrTextColor:{...j,property:"color"},attributeTextColor:{..._,property:"color"},literalTextColor:{...f,property:"color"},metaTextColor:{...R,property:"color"},numberTextColor:{...k,property:"color"},operatorTextColor:{...E,property:"color"},variableTextColor:{...I,property:"color"},selectorAttrTextColor:{...A,property:"color"},selectorClassTextColor:{...S,property:"color"},selectorIdTextColor:{...D,property:"color"},regexpTextColor:{...P,property:"color"},stringTextColor:{...H,property:"color"},metaStringTextColor:{...L,property:"color"},builtInTextColor:{...N,property:"color"},symbolTextColor:{...$,property:"color"},commentTextColor:{...O,property:"color"},codeTextColor:{...B,property:"color"},formulaTextColor:{...z,property:"color"},nameTextColor:{...F,property:"color"},quoteTextColor:{...q,property:"color"},selectorTagTextColor:{...M,property:"color"},selectorPseudoTextColor:{...V,property:"color"},substTextColor:{...G,property:"color"},sectionTextColor:{...K,property:"color"},bulletTextColor:{...W,property:"color"},emphasisTextColor:{...J,property:"color"},strongTextColor:{...Q,property:"color"},additionTextColor:{...Z,property:"color"},additionBgColor:{...Z,property:"background-color"},deletionTextColor:{...U,property:"color"},deletionBgColor:{...U,property:"background-color"},charEscapeTextColor:{...X,property:"color"},linkTextColor:{...Y,property:"color"},paramsTextColor:{...ee,property:"color"},propertyTextColor:{...te,property:"color"},punctuationTextColor:{...re,property:"color"},tagTextColor:{...oe,property:"color"}}}),l.VO,l.tQ)(d);customElements.define(c,le)},12909(e,t,r){r.r(t),r.d(t,{componentName:()=>n});var o=r(97810),l=r(115);class s extends l.i{_defaultRenderer(e,t,r){const o=r.item[this.path]||"",l=Array.from(this.children).find(e=>{const t=e.getAttribute("data-pattern");return!t||new RegExp(t).test(o)});if(!l)return void this.__setTextContent(e,r.item[this.path]||"");const s=l.cloneNode(!0);s.textContent=o||"",e.innerHTML="",e.append(s)}}const n=(0,o.xE)("grid-custom-column");customElements.define(n,s)},92107(e,t,r){r.r(t),r.d(t,{componentName:()=>n});var o=r(97810),l=r(94591);class s extends l.v{get sortable(){return"true"===this.getAttribute("sortable")}_defaultRenderer(e,t,r){const o=t._gridValue,l=o.detailsOpenedItems?.indexOf(r.item)??-1,s=-1!==l,n=document.createElement("vaadin-icon");n.icon=s?"vaadin:angle-up":"vaadin:angle-down",n.classList.add("toggle-details-button",s?"opened":"closed"),e.innerHTML="",e.append(n),n.onclick=()=>{o.detailsOpenedItems=s?o.detailsOpenedItems.toSpliced(l,1):[...o.detailsOpenedItems,r.item]}}_defaultHeaderRenderer(e,t){this.sortable?super._defaultHeaderRenderer(e,t):this.__setTextContent(e,this.__getHeader(this.header,this.path))}}r(95260),r(37182);const n=(0,o.xE)("grid-item-details-column");customElements.define(n,s)},57641(e,t,r){r.r(t),r.d(t,{componentName:()=>i}),r(49582);var o=r(97810),l=r(49654);const s=()=>{const e=document.createElement("descope-checkbox");return e.setAttribute("bordered","true"),e.setAttribute("size","xs"),e},n=e=>!!e.items?.length&&e.selectedItems.length===e.items.length;class a extends l.${_onHeaderRendererOrBindingChanged(){}_headerRenderer(e){const t=e.parentNode;let r=e.querySelector("descope-checkbox");r||(r=s(),r.addEventListener("input",()=>{const e=n(t);t.selectedItems=e?[]:t.items}),e.appendChild(r)),r.setAttribute("checked",n(t))}_defaultRenderer(e,t,r){const o=e.parentNode;let l=e.querySelector("descope-checkbox");l||(l=s(),e.appendChild(l)),l.onchange=()=>{l.checked?o.selectItem(r.item):o.deselectItem(r.item)},l.setAttribute("checked",r.selected)}}const i=(0,o.xE)("grid-selection-column");customElements.define(i,a)},115(e,t,r){r.d(t,{i:()=>l});var o=r(94591);class l extends o.v{get sortable(){return"true"===this.getAttribute("sortable")}_defaultRenderer(e,t,r){const o=r.item[this.path]||"",l=Array.isArray(o)?o.join(", "):o;this.__setTextContent(e,l),e.title=l}_defaultHeaderRenderer(e,t){this.sortable?super._defaultHeaderRenderer(e,t):this.__setTextContent(e,this.__getHeader(this.header,this.path))}}},57148(e,t,r){r.r(t),r.d(t,{componentName:()=>s});var o=r(97810),l=r(115);const s=(0,o.xE)("grid-text-column");customElements.define(s,l.i)},38976(e,t,r){r.r(t),r.d(t,{GridClass:()=>A,componentName:()=>h}),r(6735),r(57148),r(12909),r(57641),r(92107),r(80522);var o=r(9696),l=r(97810),s=r(79365);const n=e=>{const t=Array.isArray(e);return t||console.error("data must be an array, received:",e),t},a=e=>{const t=document.createElement("div");return t.textContent=e,t.innerHTML},i=e=>(e=>e?.constructor===Object)(e)?"object":Array.isArray(e)?"array":/^\s*<[\s\S]*>/.test(e)?"xml":"text",c=(e,t)=>`<descope-code-snippet lang="${t}" class="row-details__value code">${a(e)}</descope-code-snippet>`,d=e=>`<div class="row-details__value text" title="${e}">${a(e)}</div>`,p=e=>c(JSON.stringify(e,null,2),"json"),h=(0,l.xE)("grid"),{host:u,headerRow:m,headerRowCell:g,contentRow:b,firstRow:y,sortIndicators:C,activeSortIndicator:x,selectedRow:w,rowSeparator:v,resizeHandle:T,toggleDetailsPanelButton:j,toggleDetailsPanelButtonOpened:_,toggleDetailsPanelButtonClosed:f,detailsPanel:R,detailsPanelLabels:k,selectedRowCell:E,detailsPanelContent:I}={host:{selector:()=>"vaadin-grid"},headerRow:{selector:()=>"::part(header-cell)"},headerRowCell:{selector:()=>"vaadin-grid::part(header-cell)"},contentRow:{selector:()=>"::part(cell)"},firstRow:{selector:()=>"::part(first-header-row-cell)"},selectedRow:{selector:()=>"::part(selected-row)"},selectedRowCell:{selector:()=>"::part(selected-row-cell)"},sortIndicators:{selector:()=>"vaadin-grid-sorter::part(indicators)"},activeSortIndicator:{selector:()=>"vaadin-grid-sorter[direction]"},rowSeparator:{selector:()=>"vaadin-grid::part(body-cell)"},resizeHandle:{selector:()=>"::part(resize-handle)"},toggleDetailsPanelButton:{selector:()=>"vaadin-grid vaadin-icon.toggle-details-button"},toggleDetailsPanelButtonOpened:{selector:()=>"vaadin-grid vaadin-icon.toggle-details-button.opened"},toggleDetailsPanelButtonClosed:{selector:()=>"vaadin-grid vaadin-icon.toggle-details-button.closed"},detailsPanel:{selector:()=>"vaadin-grid::part(details-cell)"},detailsPanelLabels:{selector:()=>"vaadin-grid .row-details__label"},detailsPanelContent:{selector:()=>"vaadin-grid .row-details"}},A=(0,o.Zz)((0,s.RF)({componentNameOverride:(0,l.xE)("input-wrapper")}),(0,s.RF)({mappings:{hostWidth:{selector:()=>":host",property:"width"},hostHeight:{selector:()=>":host",property:"height"},hostMinHeight:{selector:()=>":host",property:"min-height"},fontFamily:[{...m},{...b}],fontSize:[{...m},{...b}],fontWeight:{...b},valueTextColor:{...b,property:"color"},backgroundColor:[{...u,property:"background-color"},{...b,property:"background-color"}],sortIndicatorsColor:{...C,property:"color"},activeSortIndicator:{...x,property:"color"},borderColor:{...u,property:"border-color"},borderWidth:{...u,property:"border-width"},borderStyle:{...u,property:"border-style"},borderRadius:{...u,property:"border-radius"},selectedBackgroundColor:[{...w,property:"background-color"},{...E,property:"background-color"}],headerRowTextColor:{...g,property:"color"},separatorColor:[{...y,property:"border-bottom-color"},{...v,property:"border-top-color"}],resizeHandleColor:{...T,property:"background-color"},hostDirection:{...u,property:"direction",fallback:"ltr"},toggleDetailsPanelButtonSize:[{...j,property:"width"},{...j,property:"height"}],toggleDetailsPanelButtonOpenedColor:{..._,property:"color"},toggleDetailsPanelButtonClosedColor:{...f,property:"color"},toggleDetailsPanelButtonCursor:{...j,property:"cursor"},detailsPanelBackgroundColor:{...R,property:"background-color"},detailsPanelBorderTopColor:{...R,property:"border-top-color"},detailsPanelLabelsColor:{...k,property:"color"},detailsPanelLabelsFontSize:{...k,property:"font-size"},detailsPanelItemsGap:{...I,property:"grid-gap"},detailsPanelPadding:{...I,property:"padding"}}}),s.VO,s.tQ,e=>class extends e{#t;init(){super.init?.(),this.handleColumns(),this.forwardSelectedItemsChange(),this.baseElement._mapSorters=()=>{};const e=this.baseElement._updateDetailsCellHeight;this.baseElement._updateDetailsCellHeight=t=>{t&&e.call(this.baseElement,t)},this.baseElement.rowDetailsRenderer=this.#r.bind(this)}#r=async(e,t,r)=>{e.addEventListener("mousedown",e=>e.stopImmediatePropagation(),!0);const o=this.getRowDetailsTemplate(r.item);e.innerHTML="",e.append(o.content.cloneNode(!0))};getRowDetailsTemplate(e){const t=this.#t.reduce((e,{path:t,header:r})=>t&&r?{...e,[t]:r}:e,{}),r=this.rowDetailsRenderer?.(e,t)??((e,t)=>`\n <div class="row-details">\n ${Object.entries(e).map(([e,r])=>`<div class="row-details__item" >\n <div class="row-details__label">${t[e]||(0,o.wy)(e)}</div>\n ${(e=>{const t=i(e);return"object"===t?p(e):"xml"===t?(e=>c(e,"xml"))(e):"array"===t?e.some(e=>"object"===i(e))?p(e):d(e.join(",\n")):d(e)})(r)}\n </div>`).join("\n")}\n</div>\n `)(e,t);switch(!0){case r instanceof HTMLTemplateElement:return r;case"string"==typeof r:return Object.assign(document.createElement("template"),{innerHTML:r});default:throw new Error("rowDetailsRenderer should return a string or a template")}}forwardSelectedItemsChange(){this.baseElement.addEventListener("selected-items-changed",e=>{this.dispatchEvent(new CustomEvent("selected-items-changed",{bubbles:!0,composed:!0,detail:e.detail}))})}attributeChangedCallback(e,t,r){super.attributeChangedCallback?.(e,t,r),"columns"===e&&this.setColumnsDataFromAttr()}handleColumns(){this.columnsAttr?this.setColumnsDataFromAttr():this.children.length&&this.setColumnsFromChildren()}setColumnsFromChildren(){this.#t=Array.from(this.children).map(e=>({path:e.getAttribute("path"),header:e.getAttribute("header"),type:e.localName.match("^descope-grid-(\\w+)-column$")?.[1]||"text",attrs:["frozen","resizable","auto-width","status"].reduce((t,r)=>{const o=e.getAttribute(r);return o&&(t[r]=o),t},{})}))}get columnsAttr(){return this.getAttribute("columns")}setColumnsDataFromAttr(){try{const e=JSON.parse(this.columnsAttr);n(e)&&(this.columns=e)}catch(e){console.error('could not parse data string from attribute "columns" -',e.message)}}#o=({path:e,header:t,type:r,attrs:o})=>{const l=`descope-grid-${r}-column`;return`<${l} header="${t}" path="${e}" ${Object.entries(o).map(([e,t])=>`${e}="${t}"`).join(" ")}></${l}>`};get renderColumn(){return this.#o}set renderColumn(e){this.#o=e,this.renderColumns()}getColumnsTemplate(){return this.#t?.reduce?.((e,t)=>e+(this.renderColumn?.(t||{})||""),"")}reassignRowDetailsRenderer(){this.baseElement.rowDetailsRenderer=null,setTimeout(()=>{this.baseElement.rowDetailsRenderer=this.#r.bind(this)},0)}renderColumns(){const e=this.getColumnsTemplate();e&&(this.reassignRowDetailsRenderer(),this.innerHTML=e)}get grid(){return this.shadowRoot.querySelector("vaadin-grid")}get data(){return this.grid.items}set data(e){if(n(e)&&this.grid.items!==e&&(this.grid.items=e,this.grid.selectedItems)){const e=new Set(this.grid.items.map(e=>e[this.uniqueColumnId]??e)),t=this.grid.selectedItems.filter(t=>e.has(t[this.uniqueColumnId]??t));this.grid.selectedItems.length!==t.length&&(this.grid.selectedItems=t)}}get columns(){return this.#t}set columns(e){this.#t=e,this.renderColumns()}get paths(){return this.columns.map(e=>e.path)}get uniqueColumnId(){return this.getAttribute("unique-column-id")}})((0,s.tz)({delegatesFocus:!1,slots:[""],wrappedEleName:"vaadin-grid",style:()=>`\n /*css*/\n vaadin-grid {\n overflow: hidden;\n height: 100%;\n min-height: 300px;\n }\n vaadin-grid-cell-content {\n display: flex;\n }\n vaadin-grid::part(selected-row-cell) {\n background-image: none;\n box-shadow: none;\n background-color: inherit;\n }\n vaadin-grid::part(details-cell) {\n border-top-style: dashed;\n border-top-width: 1px;\n }\n vaadin-grid .row-details {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(max(200px, calc(100%/4 - var(${A.cssVarList.detailsPanelItemsGap}))), 1fr));\n width: 100%;\n }\n vaadin-grid .row-details__item:has(.row-details__value.code) {\n grid-column: 1 / -1;\n order: 2;\n }\n vaadin-grid .row-details__value.text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: pre;\n }\n vaadin-grid .row-details__value.code {\n margin-top: 5px;\n max-height: 120px;\n overflow: scroll;\n font-size: 0.85em;\n }\n vaadin-grid vaadin-icon.toggle-details-button {\n margin: auto;\n }\n /*!css*/\n\t\t`,excludeAttrsSync:["columns","tabindex","style"],componentName:h}));customElements.define(h,A)}}]);
|
|
1
|
+
"use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[2200,3521],{80522(e,t,r){r.r(t),r.d(t,{CodeSnippetClass:()=>le,componentName:()=>c});var o=r(75780),l=r(25964),s=r(79365),n=r(9696),a=r(97810),i=r(81365);const c=(0,a.xE)("code-snippet");class d extends((0,i.q)({componentName:c,baseSelector:":host > code"})){static get observedAttributes(){return["lang","inline"]}constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <code class="hljs"></code>\n ',(0,l.fz)("\n :host {\n display: inline-block;\n width: 100%;\n }\n code {\n display: block;\n width: 100%;\n min-height: 1em;\n overflow-x: scroll;\n overflow-y: scroll;\n }\n pre {\n margin: 0;\n }\n ",this)}init(){super.init?.(),this.lang=this.getAttribute("lang"),this.isInline="true"===this.getAttribute("inline"),(0,a.Ge)(this,this.#e.bind(this))}get contentNode(){return this.shadowRoot.querySelector(this.baseSelector)}attributeChangedCallback(e,t,r){super.attributeChangedCallback?.(e,t,r),t!==r&&("inline"===e&&(this.isInline=r),"lang"===e&&(this.lang=r),this.#e())}#e(){const e=(e=>{const t=document.createElement("textarea");return t.innerHTML=e,t.value})(this.textContent),t=this.lang;if(!t)return void(this.contentNode.textContent=e);const{value:r}=o.A.highlight(e,{language:t});var l;this.contentNode.innerHTML=(l=r,this.isInline?l:`<pre>${l}</pre>`)}}const{root:p,docTag:h,keyword:u,metaKeyword:m,templateTag:g,templateVariable:b,type:y,variableLanguage:C,title:x,titleClass:w,titleClassInherited:v,titleFunction:T,attr:j,attribute:_,literal:f,meta:R,number:k,operator:E,variable:I,selectorAttr:A,selectorClass:S,selectorId:D,regexp:P,string:H,metaString:L,builtIn:N,symbol:$,comment:O,code:B,formula:z,name:F,quote:q,selectorTag:M,selectorPseudo:V,subst:G,section:K,bullet:W,emphasis:J,strong:Q,addition:Z,deletion:U,charEscape:X,link:Y,params:ee,property:te,punctuation:re,tag:oe}={root:{selector:()=>".hljs"},docTag:{selector:()=>".hljs-doctag"},keyword:{selector:()=>".hljs-keyword"},metaKeyword:{selector:()=>".hljs-meta .hljs-keyword"},templateTag:{selector:()=>".hljs-template-tag"},templateVariable:{selector:()=>".hljs-template-variable"},type:{selector:()=>".hljs-type"},variableLanguage:{selector:()=>".hljs-variable.language"},title:{selector:()=>".hljs-title"},titleClass:{selector:()=>".hljs-title.class_"},titleClassInherited:{selector:()=>".hljs-title.class_.inherited__"},titleFunction:{selector:()=>".hljs-title.function_"},attr:{selector:()=>".hljs-attr"},attribute:{selector:()=>".hljs-attribute"},literal:{selector:()=>".hljs-literal"},meta:{selector:()=>".hljs-meta"},number:{selector:()=>".hljs-number"},operator:{selector:()=>".hljs-operator"},variable:{selector:()=>".hljs-variable"},selectorAttr:{selector:()=>".hljs-selector-attr"},selectorClass:{selector:()=>".hljs-selector-class"},selectorId:{selector:()=>".hljs-selector-id"},regexp:{selector:()=>".hljs-regexp"},string:{selector:()=>".hljs-string"},metaString:{selector:()=>".hljs-meta .hljs-string"},builtIn:{selector:()=>".hljs-built_in"},symbol:{selector:()=>".hljs-symbol"},comment:{selector:()=>".hljs-comment"},code:{selector:()=>".hljs-code"},formula:{selector:()=>".hljs-formula"},name:{selector:()=>".hljs-name"},quote:{selector:()=>".hljs-quote"},selectorTag:{selector:()=>".hljs-selector-tag"},selectorPseudo:{selector:()=>".hljs-selector-pseudo"},subst:{selector:()=>".hljs-subst"},section:{selector:()=>".hljs-section"},bullet:{selector:()=>".hljs-bullet"},emphasis:{selector:()=>".hljs-emphasis"},strong:{selector:()=>".hljs-strong"},addition:{selector:()=>".hljs-addition"},deletion:{selector:()=>".hljs-deletion"},charEscape:{selector:()=>".hljs-char.escape"},link:{selector:()=>".hljs-link"},params:{selector:()=>".hljs-params"},property:{selector:()=>".hljs-property"},punctuation:{selector:()=>".hljs-punctuation"},tag:{selector:()=>".hljs-tag"}},le=(0,n.Zz)((0,s.RF)({mappings:{rootBgColor:{...p,property:"background-color"},rootTextColor:{...p,property:"color"},docTagTextColor:{...h,property:"color"},keywordTextColor:{...u,property:"color"},metaKeywordTextColor:{...m,property:"color"},templateTagTextColor:{...g,property:"color"},templateVariableTextColor:{...b,property:"color"},typeTextColor:{...y,property:"color"},variableLanguageTextColor:{...C,property:"color"},titleTextColor:{...x,property:"color"},titleClassTextColor:{...w,property:"color"},titleClassInheritedTextColor:{...v,property:"color"},titleFunctionTextColor:{...T,property:"color"},attrTextColor:{...j,property:"color"},attributeTextColor:{..._,property:"color"},literalTextColor:{...f,property:"color"},metaTextColor:{...R,property:"color"},numberTextColor:{...k,property:"color"},operatorTextColor:{...E,property:"color"},variableTextColor:{...I,property:"color"},selectorAttrTextColor:{...A,property:"color"},selectorClassTextColor:{...S,property:"color"},selectorIdTextColor:{...D,property:"color"},regexpTextColor:{...P,property:"color"},stringTextColor:{...H,property:"color"},metaStringTextColor:{...L,property:"color"},builtInTextColor:{...N,property:"color"},symbolTextColor:{...$,property:"color"},commentTextColor:{...O,property:"color"},codeTextColor:{...B,property:"color"},formulaTextColor:{...z,property:"color"},nameTextColor:{...F,property:"color"},quoteTextColor:{...q,property:"color"},selectorTagTextColor:{...M,property:"color"},selectorPseudoTextColor:{...V,property:"color"},substTextColor:{...G,property:"color"},sectionTextColor:{...K,property:"color"},bulletTextColor:{...W,property:"color"},emphasisTextColor:{...J,property:"color"},strongTextColor:{...Q,property:"color"},additionTextColor:{...Z,property:"color"},additionBgColor:{...Z,property:"background-color"},deletionTextColor:{...U,property:"color"},deletionBgColor:{...U,property:"background-color"},charEscapeTextColor:{...X,property:"color"},linkTextColor:{...Y,property:"color"},paramsTextColor:{...ee,property:"color"},propertyTextColor:{...te,property:"color"},punctuationTextColor:{...re,property:"color"},tagTextColor:{...oe,property:"color"}}}),s.VO,s.tQ)(d);customElements.define(c,le)},12909(e,t,r){r.r(t),r.d(t,{componentName:()=>n});var o=r(97810),l=r(115);class s extends l.i{_defaultRenderer(e,t,r){const o=r.item[this.path]||"",l=Array.from(this.children).find(e=>{const t=e.getAttribute("data-pattern");return!t||new RegExp(t).test(o)});if(!l)return void this.__setTextContent(e,r.item[this.path]||"");const s=l.cloneNode(!0);s.textContent=o||"",e.innerHTML="",e.append(s)}}const n=(0,o.xE)("grid-custom-column");customElements.define(n,s)},92107(e,t,r){r.r(t),r.d(t,{componentName:()=>n});var o=r(97810),l=r(94591);class s extends l.v{get sortable(){return"true"===this.getAttribute("sortable")}_defaultRenderer(e,t,r){const o=t._gridValue,l=o.detailsOpenedItems?.indexOf(r.item)??-1,s=-1!==l,n=document.createElement("vaadin-icon");n.icon=s?"vaadin:angle-up":"vaadin:angle-down",n.classList.add("toggle-details-button",s?"opened":"closed"),e.innerHTML="",e.append(n),n.onclick=()=>{o.detailsOpenedItems=s?o.detailsOpenedItems.toSpliced(l,1):[...o.detailsOpenedItems,r.item]}}_defaultHeaderRenderer(e,t){this.sortable?super._defaultHeaderRenderer(e,t):this.__setTextContent(e,this.__getHeader(this.header,this.path))}}r(95260),r(37182);const n=(0,o.xE)("grid-item-details-column");customElements.define(n,s)},57641(e,t,r){r.r(t),r.d(t,{componentName:()=>i}),r(49582);var o=r(97810),l=r(49654);const s=()=>{const e=document.createElement("descope-checkbox");return e.setAttribute("bordered","true"),e.setAttribute("size","xs"),e},n=e=>!!e.items?.length&&e.selectedItems.length===e.items.length;class a extends l.${_onHeaderRendererOrBindingChanged(){}_headerRenderer(e){const t=e.parentNode;let r=e.querySelector("descope-checkbox");r||(r=s(),r.addEventListener("input",()=>{const e=n(t);t.selectedItems=e?[]:t.items}),e.appendChild(r)),r.setAttribute("checked",n(t))}_defaultRenderer(e,t,r){const o=e.parentNode;let l=e.querySelector("descope-checkbox");l||(l=s(),e.appendChild(l)),l.onchange=()=>{l.checked?o.selectItem(r.item):o.deselectItem(r.item)},l.setAttribute("checked",r.selected)}}const i=(0,o.xE)("grid-selection-column");customElements.define(i,a)},115(e,t,r){r.d(t,{i:()=>l});var o=r(94591);class l extends o.v{get sortable(){return"true"===this.getAttribute("sortable")}_defaultRenderer(e,t,r){const o=r.item[this.path]||"",l=Array.isArray(o)?o.join(", "):o;this.__setTextContent(e,l),e.title=l}_defaultHeaderRenderer(e,t){this.sortable?super._defaultHeaderRenderer(e,t):this.__setTextContent(e,this.__getHeader(this.header,this.path))}}},57148(e,t,r){r.r(t),r.d(t,{componentName:()=>s});var o=r(97810),l=r(115);const s=(0,o.xE)("grid-text-column");customElements.define(s,l.i)},38976(e,t,r){r.r(t),r.d(t,{GridClass:()=>A,componentName:()=>h}),r(6735),r(57148),r(12909),r(57641),r(92107),r(80522);var o=r(9696),l=r(97810),s=r(79365);const n=e=>{const t=Array.isArray(e);return t||console.error("data must be an array, received:",e),t},a=e=>{const t=document.createElement("div");return t.textContent=e,t.innerHTML},i=e=>(e=>e?.constructor===Object)(e)?"object":Array.isArray(e)?"array":/^\s*<[\s\S]*>/.test(e)?"xml":"text",c=(e,t)=>`<descope-code-snippet lang="${t}" class="row-details__value code">${a(e)}</descope-code-snippet>`,d=e=>`<div class="row-details__value text" title="${e}">${a(e)}</div>`,p=e=>c(JSON.stringify(e,null,2),"json"),h=(0,l.xE)("grid"),{host:u,headerRow:m,headerRowCell:g,contentRow:b,firstRow:y,sortIndicators:C,activeSortIndicator:x,selectedRow:w,rowSeparator:v,resizeHandle:T,toggleDetailsPanelButton:j,toggleDetailsPanelButtonOpened:_,toggleDetailsPanelButtonClosed:f,detailsPanel:R,detailsPanelLabels:k,selectedRowCell:E,detailsPanelContent:I}={host:{selector:()=>"vaadin-grid"},headerRow:{selector:()=>"::part(header-cell)"},headerRowCell:{selector:()=>"vaadin-grid::part(header-cell)"},contentRow:{selector:()=>"::part(cell)"},firstRow:{selector:()=>"::part(first-header-row-cell)"},selectedRow:{selector:()=>"::part(selected-row)"},selectedRowCell:{selector:()=>"::part(selected-row-cell)"},sortIndicators:{selector:()=>"vaadin-grid-sorter::part(indicators)"},activeSortIndicator:{selector:()=>"vaadin-grid-sorter[direction]"},rowSeparator:{selector:()=>"vaadin-grid::part(body-cell)"},resizeHandle:{selector:()=>"::part(resize-handle)"},toggleDetailsPanelButton:{selector:()=>"vaadin-grid vaadin-icon.toggle-details-button"},toggleDetailsPanelButtonOpened:{selector:()=>"vaadin-grid vaadin-icon.toggle-details-button.opened"},toggleDetailsPanelButtonClosed:{selector:()=>"vaadin-grid vaadin-icon.toggle-details-button.closed"},detailsPanel:{selector:()=>"vaadin-grid::part(details-cell)"},detailsPanelLabels:{selector:()=>"vaadin-grid .row-details__label"},detailsPanelContent:{selector:()=>"vaadin-grid .row-details"}},A=(0,o.Zz)((0,s.RF)({componentNameOverride:(0,l.xE)("input-wrapper")}),(0,s.RF)({mappings:{hostWidth:{selector:()=>":host",property:"width"},hostHeight:{selector:()=>":host",property:"height"},hostMinHeight:{selector:()=>":host",property:"min-height"},fontFamily:[{...m},{...b}],fontSize:[{...m},{...b}],fontWeight:{...b},valueTextColor:{...b,property:"color"},backgroundColor:[{...u,property:"background-color"},{...b,property:"background-color"}],sortIndicatorsColor:{...C,property:"color"},activeSortIndicator:{...x,property:"color"},borderColor:{...u,property:"border-color"},borderWidth:{...u,property:"border-width"},borderStyle:{...u,property:"border-style"},borderRadius:{...u,property:"border-radius"},selectedBackgroundColor:[{...w,property:"background-color"},{...E,property:"background-color"}],headerRowTextColor:{...g,property:"color"},separatorColor:[{...y,property:"border-bottom-color"},{...v,property:"border-top-color"}],resizeHandleColor:{...T,property:"background-color"},hostDirection:{...u,property:"direction",fallback:"ltr"},toggleDetailsPanelButtonSize:[{...j,property:"width"},{...j,property:"height"}],toggleDetailsPanelButtonOpenedColor:{..._,property:"color"},toggleDetailsPanelButtonClosedColor:{...f,property:"color"},toggleDetailsPanelButtonCursor:{...j,property:"cursor"},detailsPanelBackgroundColor:{...R,property:"background-color"},detailsPanelBorderTopColor:{...R,property:"border-top-color"},detailsPanelLabelsColor:{...k,property:"color"},detailsPanelLabelsFontSize:{...k,property:"font-size"},detailsPanelItemsGap:{...I,property:"grid-gap"},detailsPanelPadding:{...I,property:"padding"}}}),s.VO,s.tQ,e=>class extends e{#t;init(){super.init?.(),this.handleColumns(),this.forwardSelectedItemsChange(),this.baseElement._mapSorters=()=>{};const e=this.baseElement._updateDetailsCellHeight;this.baseElement._updateDetailsCellHeight=t=>{t&&e.call(this.baseElement,t)},this.baseElement.rowDetailsRenderer=this.#r.bind(this)}#r=async(e,t,r)=>{e.addEventListener("mousedown",e=>e.stopImmediatePropagation(),!0);const o=this.getRowDetailsTemplate(r.item);e.innerHTML="",e.append(o.content.cloneNode(!0))};getRowDetailsTemplate(e){const t=this.#t.reduce((e,{path:t,header:r})=>t&&r?{...e,[t]:r}:e,{}),r=this.rowDetailsRenderer?.(e,t)??((e,t)=>`\n <div class="row-details">\n ${Object.entries(e).map(([e,r])=>`<div class="row-details__item" >\n <div class="row-details__label">${t[e]||(0,o.wy)(e)}</div>\n ${(e=>{const t=i(e);return"object"===t?p(e):"xml"===t?(e=>c(e,"xml"))(e):"array"===t?e.some(e=>"object"===i(e))?p(e):d(e.join(",\n")):d(e)})(r)}\n </div>`).join("\n")}\n</div>\n `)(e,t);switch(!0){case r instanceof HTMLTemplateElement:return r;case"string"==typeof r:return Object.assign(document.createElement("template"),{innerHTML:r});default:throw new Error("rowDetailsRenderer should return a string or a template")}}forwardSelectedItemsChange(){this.baseElement.addEventListener("selected-items-changed",e=>{this.dispatchEvent(new CustomEvent("selected-items-changed",{bubbles:!0,composed:!0,detail:e.detail}))})}attributeChangedCallback(e,t,r){super.attributeChangedCallback?.(e,t,r),"columns"===e&&this.setColumnsDataFromAttr()}handleColumns(){this.columnsAttr?this.setColumnsDataFromAttr():this.children.length&&this.setColumnsFromChildren()}setColumnsFromChildren(){this.#t=Array.from(this.children).map(e=>({path:e.getAttribute("path"),header:e.getAttribute("header"),type:e.localName.match("^descope-grid-(\\w+)-column$")?.[1]||"text",attrs:["frozen","resizable","auto-width","status"].reduce((t,r)=>{const o=e.getAttribute(r);return o&&(t[r]=o),t},{})}))}get columnsAttr(){return this.getAttribute("columns")}setColumnsDataFromAttr(){try{const e=JSON.parse(this.columnsAttr);n(e)&&(this.columns=e)}catch(e){console.error('could not parse data string from attribute "columns" -',e.message)}}#o=({path:e,header:t,type:r,attrs:o})=>{const l=`descope-grid-${r}-column`;return`<${l} header="${t}" path="${e}" ${Object.entries(o).map(([e,t])=>`${e}="${t}"`).join(" ")}></${l}>`};get renderColumn(){return this.#o}set renderColumn(e){this.#o=e,this.renderColumns()}getColumnsTemplate(){return this.#t?.reduce?.((e,t)=>e+(this.renderColumn?.(t||{})||""),"")}reassignRowDetailsRenderer(){this.baseElement.rowDetailsRenderer=null,setTimeout(()=>{this.baseElement.rowDetailsRenderer=this.#r.bind(this)},0)}renderColumns(){const e=this.getColumnsTemplate();e&&(this.reassignRowDetailsRenderer(),this.innerHTML=e)}get grid(){return this.shadowRoot.querySelector("vaadin-grid")}get data(){return this.grid.items}set data(e){if(n(e)&&this.grid.items!==e&&(this.grid.items=e,this.grid.selectedItems)){const e=new Set(this.grid.items.map(e=>e[this.uniqueColumnId]??e)),t=this.grid.selectedItems.filter(t=>e.has(t[this.uniqueColumnId]??t));this.grid.selectedItems.length!==t.length&&(this.grid.selectedItems=t)}}get columns(){return this.#t}set columns(e){this.#t=e,this.renderColumns()}get paths(){return this.columns.map(e=>e.path)}get uniqueColumnId(){return this.getAttribute("unique-column-id")}})((0,s.tz)({delegatesFocus:!1,slots:[""],wrappedEleName:"vaadin-grid",style:()=>`\n /*css*/\n vaadin-grid {\n overflow: hidden;\n height: 100%;\n min-height: 300px;\n }\n vaadin-grid-cell-content {\n display: flex;\n }\n vaadin-grid::part(selected-row-cell) {\n background-image: none;\n box-shadow: none;\n background-color: inherit;\n }\n vaadin-grid::part(details-cell) {\n border-top-style: dashed;\n border-top-width: 1px;\n }\n vaadin-grid .row-details {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(max(200px, calc(100%/4 - var(${A.cssVarList.detailsPanelItemsGap}))), 1fr));\n width: 100%;\n }\n vaadin-grid .row-details__item:has(.row-details__value.code) {\n grid-column: 1 / -1;\n order: 2;\n }\n vaadin-grid .row-details__value.text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: pre;\n }\n vaadin-grid .row-details__value.code {\n margin-top: 5px;\n max-height: 120px;\n overflow: scroll;\n font-size: 0.85em;\n }\n vaadin-grid vaadin-icon.toggle-details-button {\n margin: auto;\n }\n /*!css*/\n\t\t`,excludeAttrsSync:["columns","tabindex","style"],componentName:h}));customElements.define(h,A)}}]);
|
|
2
2
|
//# sourceMappingURL=descope-grid-index-js.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descope-grid-index-js.js","mappings":"4QAQO,MAAMA,GAAgB,QAAiB,gBAE9C,MAAMC,WAAoB,EAAAC,EAAA,GAAgB,CAAEF,gBAAeG,aAAc,kBACvE,6BAAWC,GACT,MAAO,CAAC,OAAQ,SAClB,CAEA,WAAAC,GACEC,QAEAC,KAAKC,aAAa,CAAEC,KAAM,SAAUC,UAAY,0CAIhD,QACE,6RAgBAH,KAEJ,CAEA,IAAAI,GACEL,MAAMK,SAENJ,KAAKK,KAAOL,KAAKM,aAAa,QAC9BN,KAAKO,SAA2C,SAAhCP,KAAKM,aAAa,WAElC,QAAgBN,KAAMA,MAAK,EAAeQ,KAAKR,MACjD,CAEA,eAAIS,GACF,OAAOT,KAAKU,WAAWC,cAAcX,KAAKJ,aAC5C,CAEA,wBAAAgB,CAAyBC,EAAUC,EAAUC,GAC3ChB,MAAMa,2BAA2BC,EAAUC,EAAUC,GAEjDD,IAAaC,IACE,WAAbF,IACFb,KAAKO,SAAWQ,GAGD,SAAbF,IACFb,KAAKK,KAAOU,GAGdf,MAAK,IAET,CAEA,KACE,MAAMgB,ECzEY,CAACC,IACrB,MAAMC,EAAMC,SAASC,cAAc,YAEnC,OADAF,EAAIf,UAAYc,EACTC,EAAIG,ODsESC,CAAOtB,KAAKuB,aACxBC,EAAWxB,KAAKK,KAEtB,IAAKmB,EAEH,YADAxB,KAAKS,YAAYc,YAAcP,GAIjC,MAAQK,MAAOI,GAAgB,IAAKC,UAAUV,EAAW,CAAEQ,aC3E5C,IAACP,ED6EhBjB,KAAKS,YAAYN,WC7EDc,ED6EiBQ,EAAazB,KAAKO,SC5ErCU,EAAQ,QAAQA,UD6EhC,EAGF,MAAM,KACJU,EAAI,OACJC,EAAM,QACNC,EAAO,YACPC,EAAW,YACXC,EAAW,iBACXC,EAAgB,KAChBC,EAAI,iBACJC,EAAgB,MAChBC,EAAK,WACLC,EAAU,oBACVC,EAAmB,cACnBC,EAAa,KACbC,EAAI,UACJC,EAAS,QACTC,EAAO,KACPC,EAAI,OACJC,EAAM,SACNC,EAAQ,SACRC,EAAQ,aACRC,EAAY,cACZC,EAAa,WACbC,EAAU,OACVC,EAAM,OACNC,EAAM,WACNC,EAAU,QACVC,EAAO,OACPC,EAAM,QACNC,EAAO,KACPC,EAAI,QACJC,EACAC,KAAI,QACJC,EAAK,YACLC,EAAW,eACXC,EAAc,MACdC,EAAK,QACLC,EAAO,OACPC,EAAM,SACNC,EAAQ,OACRC,EAAM,SACNC,EAAQ,SACRC,EAAQ,WACRC,EACAC,KAAI,SACJC,GAAM,SACNC,GAAQ,YACRC,GAAW,IACXC,IACE,CACF9C,KAAM,CAAE+C,SAAU,IAAM,SACxB9C,OAAQ,CAAE8C,SAAU,IAAM,gBAC1B7C,QAAS,CAAE6C,SAAU,IAAM,iBAC3B5C,YAAa,CAAE4C,SAAU,IAAM,4BAC/B3C,YAAa,CAAE2C,SAAU,IAAM,sBAC/B1C,iBAAkB,CAAE0C,SAAU,IAAM,2BACpCzC,KAAM,CAAEyC,SAAU,IAAM,cACxBxC,iBAAkB,CAAEwC,SAAU,IAAM,2BACpCvC,MAAO,CAAEuC,SAAU,IAAM,eACzBtC,WAAY,CAAEsC,SAAU,IAAM,sBAC9BrC,oBAAqB,CAAEqC,SAAU,IAAM,kCACvCpC,cAAe,CAAEoC,SAAU,IAAM,yBACjCnC,KAAM,CAAEmC,SAAU,IAAM,cACxBlC,UAAW,CAAEkC,SAAU,IAAM,mBAC7BjC,QAAS,CAAEiC,SAAU,IAAM,iBAC3BhC,KAAM,CAAEgC,SAAU,IAAM,cACxB/B,OAAQ,CAAE+B,SAAU,IAAM,gBAC1B9B,SAAU,CAAE8B,SAAU,IAAM,kBAC5B7B,SAAU,CAAE6B,SAAU,IAAM,kBAC5B5B,aAAc,CAAE4B,SAAU,IAAM,uBAChC3B,cAAe,CAAE2B,SAAU,IAAM,wBACjC1B,WAAY,CAAE0B,SAAU,IAAM,qBAC9BzB,OAAQ,CAAEyB,SAAU,IAAM,gBAC1BxB,OAAQ,CAAEwB,SAAU,IAAM,gBAC1BvB,WAAY,CAAEuB,SAAU,IAAM,2BAC9BtB,QAAS,CAAEsB,SAAU,IAAM,kBAC3BrB,OAAQ,CAAEqB,SAAU,IAAM,gBAC1BpB,QAAS,CAAEoB,SAAU,IAAM,iBAC3BnB,KAAM,CAAEmB,SAAU,IAAM,cACxBlB,QAAS,CAAEkB,SAAU,IAAM,iBAC3BjB,KAAM,CAAEiB,SAAU,IAAM,cACxBhB,MAAO,CAAEgB,SAAU,IAAM,eACzBf,YAAa,CAAEe,SAAU,IAAM,sBAC/Bd,eAAgB,CAAEc,SAAU,IAAM,yBAClCb,MAAO,CAAEa,SAAU,IAAM,eACzBZ,QAAS,CAAEY,SAAU,IAAM,iBAC3BX,OAAQ,CAAEW,SAAU,IAAM,gBAC1BV,SAAU,CAAEU,SAAU,IAAM,kBAC5BT,OAAQ,CAAES,SAAU,IAAM,gBAC1BR,SAAU,CAAEQ,SAAU,IAAM,kBAC5BP,SAAU,CAAEO,SAAU,IAAM,kBAC5BN,WAAY,CAAEM,SAAU,IAAM,qBAC9BL,KAAM,CAAEK,SAAU,IAAM,cACxBJ,OAAQ,CAAEI,SAAU,IAAM,gBAC1BH,SAAU,CAAEG,SAAU,IAAM,kBAC5BF,YAAa,CAAEE,SAAU,IAAM,qBAC/BD,IAAK,CAAEC,SAAU,IAAM,cAGZC,IAAmB,SAC9B,QAAiB,CACfC,SAAU,CACRC,YAAa,IAAKlD,EAAM4C,SAAU,oBAClCO,cAAe,IAAKnD,EAAM4C,SAAU,SACpCQ,gBAAiB,IAAKnD,EAAQ2C,SAAU,SACxCS,iBAAkB,IAAKnD,EAAS0C,SAAU,SAC1CU,qBAAsB,IAAKnD,EAAayC,SAAU,SAClDW,qBAAsB,IAAKnD,EAAawC,SAAU,SAClDY,0BAA2B,IAAKnD,EAAkBuC,SAAU,SAC5Da,cAAe,IAAKnD,EAAMsC,SAAU,SACpCc,0BAA2B,IAAKnD,EAAkBqC,SAAU,SAC5De,eAAgB,IAAKnD,EAAOoC,SAAU,SACtCgB,oBAAqB,IAAKnD,EAAYmC,SAAU,SAChDiB,6BAA8B,IAAKnD,EAAqBkC,SAAU,SAClEkB,uBAAwB,IAAKnD,EAAeiC,SAAU,SACtDmB,cAAe,IAAKnD,EAAMgC,SAAU,SACpCoB,mBAAoB,IAAKnD,EAAW+B,SAAU,SAC9CqB,iBAAkB,IAAKnD,EAAS8B,SAAU,SAC1CsB,cAAe,IAAKnD,EAAM6B,SAAU,SACpCuB,gBAAiB,IAAKnD,EAAQ4B,SAAU,SACxCwB,kBAAmB,IAAKnD,EAAU2B,SAAU,SAC5CyB,kBAAmB,IAAKnD,EAAU0B,SAAU,SAC5C0B,sBAAuB,IAAKnD,EAAcyB,SAAU,SACpD2B,uBAAwB,IAAKnD,EAAewB,SAAU,SACtD4B,oBAAqB,IAAKnD,EAAYuB,SAAU,SAChD6B,gBAAiB,IAAKnD,EAAQsB,SAAU,SACxC8B,gBAAiB,IAAKnD,EAAQqB,SAAU,SACxC+B,oBAAqB,IAAKnD,EAAYoB,SAAU,SAChDgC,iBAAkB,IAAKnD,EAASmB,SAAU,SAC1CiC,gBAAiB,IAAKnD,EAAQkB,SAAU,SACxCkC,iBAAkB,IAAKnD,EAASiB,SAAU,SAC1CmC,cAAe,IAAKnD,EAAMgB,SAAU,SACpCoC,iBAAkB,IAAKnD,EAASe,SAAU,SAC1CqC,cAAe,IAAK,EAAMrC,SAAU,SACpCsC,eAAgB,IAAKnD,EAAOa,SAAU,SACtCuC,qBAAsB,IAAKnD,EAAaY,SAAU,SAClDwC,wBAAyB,IAAKnD,EAAgBW,SAAU,SACxDyC,eAAgB,IAAKnD,EAAOU,SAAU,SACtC0C,iBAAkB,IAAKnD,EAASS,SAAU,SAC1C2C,gBAAiB,IAAKnD,EAAQQ,SAAU,SACxC4C,kBAAmB,IAAKnD,EAAUO,SAAU,SAC5C6C,gBAAiB,IAAKnD,EAAQM,SAAU,SACxC8C,kBAAmB,IAAKnD,EAAUK,SAAU,SAC5C+C,gBAAiB,IAAKpD,EAAUK,SAAU,oBAC1CgD,kBAAmB,IAAKpD,EAAUI,SAAU,SAC5CiD,gBAAiB,IAAKrD,EAAUI,SAAU,oBAC1CkD,oBAAqB,IAAKrD,EAAYG,SAAU,SAChDmD,cAAe,IAAK,EAAMnD,SAAU,SACpCoD,gBAAiB,IAAKrD,GAAQC,SAAU,SACxCqD,kBAAmB,IAAKrD,GAAUA,SAAU,SAC5CsD,qBAAsB,IAAKrD,GAAaD,SAAU,SAClDuD,aAAc,IAAKrD,GAAKF,SAAU,YAGtC,KACA,KAxD8B,CAyD9B7E,GEhPFqI,eAAeC,OAAOvI,EAAekF,G,2ECC9B,MAAMsD,UAA8BC,EAAA,EACzC,gBAAAC,CAAiBC,EAAMC,EAAMC,GAC3B,MAAMC,EAAUD,EAAME,KAAKxI,KAAKyI,OAAS,GAMnCC,EAAaC,MAAMC,KAAK5I,KAAK6I,UAAUC,KAAMC,IACjD,MAAMC,EAAUD,EAAMzI,aAAa,gBACnC,OAAK0I,GAES,IAAIC,OAAOD,GACZE,KAAKX,KAGpB,IAAKG,EAGH,YAFA1I,KAAKmJ,iBAAiBf,EAAME,EAAME,KAAKxI,KAAKyI,OAAS,IAKvD,MAAMW,EAASV,EAAWW,WAAU,GACpCD,EAAO7H,YAAcgH,GAAW,GAChCH,EAAKjI,UAAY,GACjBiI,EAAKkB,OAAOF,EACd,ECzBK,MAAM3J,GAAgB,QAAiB,sBAE9CsI,eAAeC,OAAOvI,EAAewI,E,6ECH9B,MAAMsB,UAAmC,IAC9C,YAAIC,GACF,MAAyC,SAAlCxJ,KAAKM,aAAa,WAC3B,CAGA,gBAAA6H,CAAiBC,EAAMC,EAAMC,GAC3B,MAAMmB,EAAOpB,EAAKqB,WACZC,EAAUF,EAAKG,oBAAoBC,QAAQvB,EAAME,QAAU,EAC3DsB,GAAwB,IAAbH,EAEXI,EAAa5I,SAASC,cAAc,eAC1C2I,EAAWC,KAAOF,EAAW,kBAAoB,oBACjDC,EAAWE,UAAUC,IAAI,wBAAyBJ,EAAW,SAAW,UACxE1B,EAAKjI,UAAY,GACjBiI,EAAKkB,OAAOS,GAEZA,EAAWI,QAAU,KACnBV,EAAKG,mBAAqBE,EACtBL,EAAKG,mBAAmBQ,UAAUT,EAAS,GAC3C,IAAIF,EAAKG,mBAAoBtB,EAAME,MAE3C,CAEA,sBAAA6B,CAAuB1I,EAAM2I,GACvBtK,KAAKwJ,SACPzJ,MAAMsK,uBAAuB1I,EAAM2I,GAKrCtK,KAAKmJ,iBAAiBxH,EAAM3B,KAAKuK,YAAYvK,KAAKwK,OAAQxK,KAAKyI,MACjE,E,kBC9BK,MAAMhJ,GAAgB,QAAiB,4BAE9CsI,eAAeC,OAAOvI,EAAe8J,E,sFCLrC,MAAMkB,EAAoB,KACxB,MAAMC,EAAWvJ,SAASC,cAAc,oBAKxC,OAHAsJ,EAASC,aAAa,WAAY,QAClCD,EAASC,aAAa,OAAQ,MAEvBD,GAGHE,EAAyBnB,KAC3BA,EAAKoB,OAAOC,QAAUrB,EAAKsB,cAAcD,SAAWrB,EAAKoB,MAAMC,OAE5D,MAAME,UAAiC,IAE5C,iCAAAC,GAAqC,CAGrC,eAAAC,CAAgB9C,GACd,MAAMqB,EAAOrB,EAAK+C,WAElB,IAAIT,EAAWtC,EAAKzH,cAAc,oBAC7B+J,IACHA,EAAWD,IAEXC,EAASU,iBAAiB,QAAS,KACjC,MAAMC,EAAqBT,EAAsBnB,GAE/CA,EAAKsB,cADHM,EACmB,GAEA5B,EAAKoB,QAI9BzC,EAAKkD,YAAYZ,IAGnBA,EAASC,aAAa,UAAWC,EAAsBnB,GACzD,CAGA,gBAAAtB,CAAiBC,EAAMmD,EAAKjD,GAC1B,MAAMmB,EAAOrB,EAAK+C,WAElB,IAAIT,EAAWtC,EAAKzH,cAAc,oBAC7B+J,IACHA,EAAWD,IACXrC,EAAKkD,YAAYZ,IAGnBA,EAASc,SAAW,KAClBd,EAASe,QAAUhC,EAAKiC,WAAWpD,EAAME,MAAQiB,EAAKkC,aAAarD,EAAME,OAG3EkC,EAASC,aAAa,UAAWrC,EAAMsD,SACzC,ECpDK,MAAMnM,GAAgB,QAAiB,yBAE9CsI,eAAeC,OAAOvI,EAAeuL,E,6CCH9B,MAAM9C,UAA4B,IACvC,YAAIsB,GACF,MAAyC,SAAlCxJ,KAAKM,aAAa,WAC3B,CAEA,gBAAA6H,CAAiBC,EAAMC,EAAMC,GAC3B,MAAMuD,EAAOvD,EAAME,KAAKxI,KAAKyI,OAAS,GAChCF,EAAUI,MAAMmD,QAAQD,GAAQA,EAAKE,KAAK,MAAQF,EAExD7L,KAAKmJ,iBAAiBf,EAAMG,GAC5BH,EAAKjG,MAAQoG,CACf,CAEA,sBAAA8B,CAAuB1I,EAAM2I,GACvBtK,KAAKwJ,SACPzJ,MAAMsK,uBAAuB1I,EAAM2I,GAKrCtK,KAAKmJ,iBAAiBxH,EAAM3B,KAAKuK,YAAYvK,KAAKwK,OAAQxK,KAAKyI,MACjE,E,2ECrBK,MAAMhJ,GAAgB,QAAiB,oBAE9CsI,eAAeC,OAAOvI,EAAe,I,4JCH9B,MAAMuM,EAAmBH,IAC9B,MAAMI,EAAUtD,MAAMmD,QAAQD,GAM9B,OALKI,GAEHC,QAAQC,MAAM,mCAAoCN,GAG7CI,GAOHG,EAAaC,IACjB,MAAMC,EAAMnL,SAASC,cAAc,OAEnC,OADAkL,EAAI/K,YAAc8K,EACXC,EAAInM,WAGAoM,EAAgBlL,GAVA,CAACA,GAAUA,GAAOvB,cAAgB0M,OAWzDC,CAAcpL,GAAe,SAC7BsH,MAAMmD,QAAQzK,GAAe,QAVZ,gBAAgB6H,KAW3B7H,GAAe,MAElB,OAGIqL,EAAoB,CAACrL,EAAOhB,IACvC,+BAA+BA,sCAAyC+L,EAAU/K,4BAEvEsL,EAAcC,GACzB,+CAA+CA,MAASR,EAAUQ,WAC9DC,EAAcxL,GAAUqL,EAAkBI,KAAKC,UAAU1L,EAAO,KAAM,GAAI,QCxBnE5B,GAAgB,QAAiB,SAoNxC,KACJuN,EAAI,UACJC,EAAS,cACTC,EAAa,WACbC,EAAU,SACVC,EAAQ,eACRC,EAAc,oBACdC,EAAmB,YACnBC,EAAW,aACXC,EAAY,aACZC,EAAY,yBACZC,EAAwB,+BACxBC,EAA8B,+BAC9BC,EAA8B,aAC9BC,EAAY,mBACZC,EAAkB,gBAClBC,EAAe,oBACfC,GACE,CACFhB,KAAM,CAAEtI,SAAU,IAAM,eACxBuI,UAAW,CAAEvI,SAAU,IAAM,uBAC7BwI,cAAe,CAAExI,SAAU,IAAM,kCACjCyI,WAAY,CAAEzI,SAAU,IAAM,gBAC9B0I,SAAU,CAAE1I,SAAU,IAAM,iCAC5B6I,YAAa,CAAE7I,SAAU,IAAM,wBAC/BqJ,gBAAiB,CAAErJ,SAAU,IAAM,6BACnC2I,eAAgB,CAAE3I,SAAU,IAAM,wCAClC4I,oBAAqB,CAAE5I,SAAU,IAAM,iCACvC8I,aAAc,CAAE9I,SAAU,IAAM,gCAChC+I,aAAc,CAAE/I,SAAU,IAAM,yBAChCgJ,yBAA0B,CAAEhJ,SAAU,IAAM,iDAC5CiJ,+BAAgC,CAC9BjJ,SAAU,IAAM,wDAElBkJ,+BAAgC,CAC9BlJ,SAAU,IAAM,wDAElBmJ,aAAc,CAAEnJ,SAAU,IAAM,mCAChCoJ,mBAAoB,CAAEpJ,SAAU,IAAM,mCACtCsJ,oBAAqB,CAAEtJ,SAAU,IAAM,6BAG5BuJ,GAAY,SACvB,QAAiB,CAAEC,uBAAuB,QAAiB,oBAC3D,QAAiB,CACftJ,SAAU,CACRuJ,UAAW,CAAEzJ,SAAU,IAAM,QAASH,SAAU,SAChD6J,WAAY,CAAE1J,SAAU,IAAM,QAASH,SAAU,UACjD8J,cAAe,CAAE3J,SAAU,IAAM,QAASH,SAAU,cACpD+J,WAAY,CAAC,IAAKrB,GAAa,IAAKE,IACpCoB,SAAU,CAAC,IAAKtB,GAAa,IAAKE,IAClCqB,WAAY,IAAKrB,GACjBsB,eAAgB,IAAKtB,EAAY5I,SAAU,SAC3CmK,gBAAiB,CACf,IAAK1B,EAAMzI,SAAU,oBACrB,IAAK4I,EAAY5I,SAAU,qBAE7BoK,oBAAqB,IAAKtB,EAAgB9I,SAAU,SACpD+I,oBAAqB,IAAKA,EAAqB/I,SAAU,SACzDqK,YAAa,IAAK5B,EAAMzI,SAAU,gBAClCsK,YAAa,IAAK7B,EAAMzI,SAAU,gBAClCuK,YAAa,IAAK9B,EAAMzI,SAAU,gBAClCwK,aAAc,IAAK/B,EAAMzI,SAAU,iBACnCyK,wBAAyB,CACvB,IAAKzB,EAAahJ,SAAU,oBAC5B,IAAKwJ,EAAiBxJ,SAAU,qBAElC0K,mBAAoB,IAAK/B,EAAe3I,SAAU,SAClD2K,eAAgB,CACd,IAAK9B,EAAU7I,SAAU,uBACzB,IAAKiJ,EAAcjJ,SAAU,qBAE/B4K,kBAAmB,IAAK1B,EAAclJ,SAAU,oBAChD6K,cAAe,IAAKpC,EAAMzI,SAAU,YAAa8K,SAAU,OAC3DC,6BAA8B,CAC5B,IAAK5B,EAA0BnJ,SAAU,SACzC,IAAKmJ,EAA0BnJ,SAAU,WAE3CgL,oCAAqC,IAAK5B,EAAgCpJ,SAAU,SACpFiL,oCAAqC,IAAK5B,EAAgCrJ,SAAU,SACpFkL,+BAAgC,IAAK/B,EAA0BnJ,SAAU,UACzEmL,4BAA6B,IAAK7B,EAActJ,SAAU,oBAC1DoL,2BAA4B,IAAK9B,EAActJ,SAAU,oBACzDqL,wBAAyB,IAAK9B,EAAoBvJ,SAAU,SAC5DsL,2BAA4B,IAAK/B,EAAoBvJ,SAAU,aAC/DuL,qBAAsB,IAAK9B,EAAqBzJ,SAAU,YAC1DwL,oBAAqB,IAAK/B,EAAqBzJ,SAAU,cAG7D,KACA,KA5SiByL,GACjB,cAA6BA,EAC3B,GAEA,IAAA5P,GACEL,MAAMK,SACNJ,KAAKiQ,gBACLjQ,KAAKkQ,6BAGLlQ,KAAKmQ,YAAYC,YAAc,OAI/B,MAAMC,EAA8BrQ,KAAKmQ,YAAYG,yBACrDtQ,KAAKmQ,YAAYG,yBAA4BC,IACtCA,GACLF,EAA4BG,KAAKxQ,KAAKmQ,YAAaI,IAGrDvQ,KAAKmQ,YAAYM,mBAAqBzQ,MAAK,EAAoBQ,KAAKR,KACtE,CAIA,GAAsB0Q,MAAOtI,EAAMC,EAAMC,KAEvCF,EAAKgD,iBAAiB,YAAcuF,GAAMA,EAAEC,4BAA4B,GAExE,MAAMC,EAAW7Q,KAAK8Q,sBAAsBxI,EAAME,MAGlDJ,EAAKjI,UAAY,GACjBiI,EAAKkB,OAAOuH,EAAStI,QAAQc,WAAU,KAGzC,qBAAAyH,CAAsBtI,GACpB,MAAMuI,EAAoB/Q,MAAK,EAASgR,OACtC,CAACC,GAAOxI,OAAM+B,YAAe/B,GAAS+B,EAAe,IAAKyG,EAAK,CAACxI,GAAO+B,GAAxByG,EAC/C,CAAC,GAEGJ,EACJ7Q,KAAKyQ,qBAAqBjI,EAAMuI,IDIC,EAACvI,EAAMuI,IACvC,oCAELvE,OAAO0E,QAAQ1I,GACd2I,IACC,EAAEC,EAAK/P,KACL,+EACoC0P,EAAkBK,KAAQ,QAAQA,uBA5BvC,CAAC/P,IACtC,MAAMgQ,EAAY9E,EAAalL,GAE/B,MAAkB,WAAdgQ,EACKxE,EAAWxL,GAGF,QAAdgQ,EATY,CAAChQ,GAAUqL,EAAkBrL,EAAO,OAU3CiQ,CAAUjQ,GAGD,UAAdgQ,EACEhQ,EAAMkQ,KAAMC,GAA0B,WAApBjF,EAAaiF,IAC1B3E,EAAWxL,GAEbsL,EAAWtL,EAAM0K,KAAK,QAGxBY,EAAWtL,IAWRoQ,CAA+BpQ,sBAGtC0K,KAAK,oBCdF2F,CAA0BlJ,EAAMuI,GAElC,QAAQ,GACN,KAAKF,aAAoBc,oBACvB,OAAOd,EACT,IAAyB,iBAAbA,EACV,OAAOrE,OAAOoF,OAAOzQ,SAASC,cAAc,YAAa,CAAEjB,UAAW0Q,IACxE,QACE,MAAM,IAAIgB,MAAM,2DAEtB,CAEA,0BAAA3B,GACElQ,KAAKmQ,YAAY/E,iBAAiB,yBAA2BuF,IAC3D3Q,KAAK8R,cACH,IAAIC,YAAY,yBAA0B,CACxCC,SAAS,EACTC,UAAU,EACVC,OAAQvB,EAAEuB,WAIlB,CAEA,wBAAAtR,CAAyBC,EAAUC,EAAUC,GAC3ChB,MAAMa,2BAA2BC,EAAUC,EAAUC,GAEpC,YAAbF,GACFb,KAAKmS,wBAET,CAEA,aAAAlC,GACMjQ,KAAKoS,YACPpS,KAAKmS,yBACInS,KAAK6I,SAASiC,QACvB9K,KAAKqS,wBAET,CAEA,sBAAAA,GACErS,MAAK,EAAW2I,MAAMC,KAAK5I,KAAK6I,UAAUsI,IAAKpI,IACtC,CACLN,KAAMM,EAAMzI,aAAa,QACzBkK,OAAQzB,EAAMzI,aAAa,UAC3B2B,KAAM8G,EAAMuJ,UAAUC,MAAM,kCAAkC,IAAM,OAEpEC,MAAO,CAAC,SAAU,YAAa,aAAc,UAAUxB,OAAO,CAACC,EAAKpQ,KAClE,MAAM4R,EAAU1J,EAAMzI,aAAaO,GAMnC,OAJI4R,IACFxB,EAAIpQ,GAAY4R,GAGXxB,GACN,CAAC,KAGV,CAEA,eAAImB,GACF,OAAOpS,KAAKM,aAAa,UAC3B,CAEA,sBAAA6R,GACE,IACE,MAAMtG,EAAOiB,KAAK4F,MAAM1S,KAAKoS,aACzBpG,EAAgBH,KAClB7L,KAAK2S,QAAU9G,EAEnB,CAAE,MAAO8E,GAEPzE,QAAQC,MAAM,yDAA0DwE,EAAEiC,QAC5E,CACF,CAGA,GAAgB,EAAGnK,OAAM+B,SAAQvI,OAAMuQ,YACrC,MAIMK,EAAU,gBAAgB5Q,WAEhC,MAAO,IAAI4Q,aAAmBrI,YAAiB/B,MAN9B+D,OAAO0E,QAAQsB,GAC7BrB,IAAI,EAAEC,EAAK/P,KAAW,GAAG+P,MAAQ/P,MACjC0K,KAAK,UAI8D8G,MAGxE,gBAAIC,GACF,OAAO9S,MAAK,CACd,CAEA,gBAAI8S,CAAaC,GACf/S,MAAK,EAAgB+S,EACrB/S,KAAKgT,eACP,CAEA,kBAAAC,GACE,OAAOjT,MAAK,GAAUgR,SACpB,CAACC,EAAKzI,IAASyI,GAAOjR,KAAK8S,eAAetK,GAAQ,CAAC,IAAM,IACzD,GAEJ,CAGA,0BAAA0K,GACElT,KAAKmQ,YAAYM,mBAAqB,KACtC0C,WAAW,KACTnT,KAAKmQ,YAAYM,mBAAqBzQ,MAAK,EAAoBQ,KAAKR,OACnE,EACL,CAEA,aAAAgT,GACE,MAAMnC,EAAW7Q,KAAKiT,qBAClBpC,IACF7Q,KAAKkT,6BACLlT,KAAKG,UAAY0Q,EAErB,CAEA,QAAIpH,GACF,OAAOzJ,KAAKU,WAAWC,cAAc,cACvC,CAEA,QAAIkL,GACF,OAAO7L,KAAKyJ,KAAKoB,KACnB,CAEA,QAAIgB,CAAKA,GACP,GAAIG,EAAgBH,IAAS7L,KAAKyJ,KAAKoB,QAAUgB,IAC/C7L,KAAKyJ,KAAKoB,MAAQgB,EAEd7L,KAAKyJ,KAAKsB,eAAe,CAC3B,MAAMqI,EAAW,IAAIC,IACnBrT,KAAKyJ,KAAKoB,MAAMsG,IAAK3I,GAASA,EAAKxI,KAAKsT,iBAAmB9K,IAGvD+K,EAAmBvT,KAAKyJ,KAAKsB,cAAcyI,OAAQC,GACvDL,EAASM,IAAID,EAAazT,KAAKsT,iBAAmBG,IAKhDzT,KAAKyJ,KAAKsB,cAAcD,SAAWyI,EAAiBzI,SACtD9K,KAAKyJ,KAAKsB,cAAgBwI,EAE9B,CAEJ,CAEA,WAAIZ,GACF,OAAO3S,MAAK,CACd,CAEA,WAAI2S,CAAQ9G,GACV7L,MAAK,EAAW6L,EAChB7L,KAAKgT,eACP,CAEA,SAAIW,GACF,OAAO3T,KAAK2S,QAAQxB,IAAK5F,GAAQA,EAAI9C,KACvC,CAEA,kBAAI6K,GACF,OAAOtT,KAAKM,aAAa,mBAC3B,GA6CqB,EAmDvB,QAAY,CACVsT,gBAAgB,EAChBC,MAAO,CAAC,IACRC,eAAgB,cAChBC,MAAO,IAAM,6lBAqBqE9F,EAAU+F,WAAWlE,+lBAuBvGmE,iBAAkB,CAAC,UAAW,WAAY,SAC1CxU,mBCpWJsI,eAAeC,OAAOvI,EAAewO,E","sources":["webpack://@descope/web-components-ui/./src/components/descope-code-snippet/CodeSnippetClass.js","webpack://@descope/web-components-ui/./src/components/descope-code-snippet/helpers.js","webpack://@descope/web-components-ui/./src/components/descope-code-snippet/index.js","webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-custom-column/GridCustomColumnClass.js","webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-custom-column/index.js","webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-item-details-column/GridItemDetailsColumnClass.js","webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-item-details-column/index.js","webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-selection-column/GridSelectionColumnClass.js","webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-selection-column/index.js","webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-text-column/GridTextColumnClass.js","webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-text-column/index.js","webpack://@descope/web-components-ui/./src/components/descope-grid/helpers.js","webpack://@descope/web-components-ui/./src/components/descope-grid/GridClass.js","webpack://@descope/web-components-ui/./src/components/descope-grid/index.js"],"sourcesContent":["import hljs from 'highlight.js';\nimport { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { compose } from '../../helpers';\nimport { getComponentName, observeChildren } from '../../helpers/componentHelpers';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { decode, tpl } from './helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('code-snippet');\n\nclass CodeSnippet extends createBaseClass({ componentName, baseSelector: ':host > code' }) {\n static get observedAttributes() {\n return ['lang', 'inline'];\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <code class=\"hljs\"></code>\n `;\n\n injectStyle(\n `\n :host {\n display: inline-block;\n width: 100%;\n }\n code {\n display: block;\n width: 100%;\n min-height: 1em;\n overflow-x: scroll;\n overflow-y: scroll;\n }\n pre {\n margin: 0;\n }\n `,\n this\n );\n }\n\n init() {\n super.init?.();\n\n this.lang = this.getAttribute('lang');\n this.isInline = this.getAttribute('inline') === 'true';\n\n observeChildren(this, this.#renderSnippet.bind(this));\n }\n\n get contentNode() {\n return this.shadowRoot.querySelector(this.baseSelector);\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue !== newValue) {\n if (attrName === 'inline') {\n this.isInline = newValue;\n }\n\n if (attrName === 'lang') {\n this.lang = newValue;\n }\n\n this.#renderSnippet();\n }\n }\n\n #renderSnippet() {\n const sanitized = decode(this.textContent);\n const language = this.lang;\n\n if (!language) {\n this.contentNode.textContent = sanitized;\n return;\n }\n\n const { value: highlighted } = hljs.highlight(sanitized, { language });\n\n this.contentNode.innerHTML = tpl(highlighted, this.isInline);\n }\n}\n\nconst {\n root,\n docTag,\n keyword,\n metaKeyword,\n templateTag,\n templateVariable,\n type,\n variableLanguage,\n title,\n titleClass,\n titleClassInherited,\n titleFunction,\n attr,\n attribute,\n literal,\n meta,\n number,\n operator,\n variable,\n selectorAttr,\n selectorClass,\n selectorId,\n regexp,\n string,\n metaString,\n builtIn,\n symbol,\n comment,\n code,\n formula,\n name,\n quote,\n selectorTag,\n selectorPseudo,\n subst,\n section,\n bullet,\n emphasis,\n strong,\n addition,\n deletion,\n charEscape,\n link,\n params,\n property,\n punctuation,\n tag,\n} = {\n root: { selector: () => '.hljs' },\n docTag: { selector: () => '.hljs-doctag' },\n keyword: { selector: () => '.hljs-keyword' },\n metaKeyword: { selector: () => '.hljs-meta .hljs-keyword' },\n templateTag: { selector: () => '.hljs-template-tag' },\n templateVariable: { selector: () => '.hljs-template-variable' },\n type: { selector: () => '.hljs-type' },\n variableLanguage: { selector: () => '.hljs-variable.language' },\n title: { selector: () => '.hljs-title' },\n titleClass: { selector: () => '.hljs-title.class_' },\n titleClassInherited: { selector: () => '.hljs-title.class_.inherited__' },\n titleFunction: { selector: () => '.hljs-title.function_' },\n attr: { selector: () => '.hljs-attr' },\n attribute: { selector: () => '.hljs-attribute' },\n literal: { selector: () => '.hljs-literal' },\n meta: { selector: () => '.hljs-meta' },\n number: { selector: () => '.hljs-number' },\n operator: { selector: () => '.hljs-operator' },\n variable: { selector: () => '.hljs-variable' },\n selectorAttr: { selector: () => '.hljs-selector-attr' },\n selectorClass: { selector: () => '.hljs-selector-class' },\n selectorId: { selector: () => '.hljs-selector-id' },\n regexp: { selector: () => '.hljs-regexp' },\n string: { selector: () => '.hljs-string' },\n metaString: { selector: () => '.hljs-meta .hljs-string' },\n builtIn: { selector: () => '.hljs-built_in' },\n symbol: { selector: () => '.hljs-symbol' },\n comment: { selector: () => '.hljs-comment' },\n code: { selector: () => '.hljs-code' },\n formula: { selector: () => '.hljs-formula' },\n name: { selector: () => '.hljs-name' },\n quote: { selector: () => '.hljs-quote' },\n selectorTag: { selector: () => '.hljs-selector-tag' },\n selectorPseudo: { selector: () => '.hljs-selector-pseudo' },\n subst: { selector: () => '.hljs-subst' },\n section: { selector: () => '.hljs-section' },\n bullet: { selector: () => '.hljs-bullet' },\n emphasis: { selector: () => '.hljs-emphasis' },\n strong: { selector: () => '.hljs-strong' },\n addition: { selector: () => '.hljs-addition' },\n deletion: { selector: () => '.hljs-deletion' },\n charEscape: { selector: () => '.hljs-char.escape' },\n link: { selector: () => '.hljs-link' },\n params: { selector: () => '.hljs-params' },\n property: { selector: () => '.hljs-property' },\n punctuation: { selector: () => '.hljs-punctuation' },\n tag: { selector: () => '.hljs-tag' },\n};\n\nexport const CodeSnippetClass = compose(\n createStyleMixin({\n mappings: {\n rootBgColor: { ...root, property: 'background-color' },\n rootTextColor: { ...root, property: 'color' },\n docTagTextColor: { ...docTag, property: 'color' },\n keywordTextColor: { ...keyword, property: 'color' },\n metaKeywordTextColor: { ...metaKeyword, property: 'color' },\n templateTagTextColor: { ...templateTag, property: 'color' },\n templateVariableTextColor: { ...templateVariable, property: 'color' },\n typeTextColor: { ...type, property: 'color' },\n variableLanguageTextColor: { ...variableLanguage, property: 'color' },\n titleTextColor: { ...title, property: 'color' },\n titleClassTextColor: { ...titleClass, property: 'color' },\n titleClassInheritedTextColor: { ...titleClassInherited, property: 'color' },\n titleFunctionTextColor: { ...titleFunction, property: 'color' },\n attrTextColor: { ...attr, property: 'color' },\n attributeTextColor: { ...attribute, property: 'color' },\n literalTextColor: { ...literal, property: 'color' },\n metaTextColor: { ...meta, property: 'color' },\n numberTextColor: { ...number, property: 'color' },\n operatorTextColor: { ...operator, property: 'color' },\n variableTextColor: { ...variable, property: 'color' },\n selectorAttrTextColor: { ...selectorAttr, property: 'color' },\n selectorClassTextColor: { ...selectorClass, property: 'color' },\n selectorIdTextColor: { ...selectorId, property: 'color' },\n regexpTextColor: { ...regexp, property: 'color' },\n stringTextColor: { ...string, property: 'color' },\n metaStringTextColor: { ...metaString, property: 'color' },\n builtInTextColor: { ...builtIn, property: 'color' },\n symbolTextColor: { ...symbol, property: 'color' },\n commentTextColor: { ...comment, property: 'color' },\n codeTextColor: { ...code, property: 'color' },\n formulaTextColor: { ...formula, property: 'color' },\n nameTextColor: { ...name, property: 'color' },\n quoteTextColor: { ...quote, property: 'color' },\n selectorTagTextColor: { ...selectorTag, property: 'color' },\n selectorPseudoTextColor: { ...selectorPseudo, property: 'color' },\n substTextColor: { ...subst, property: 'color' },\n sectionTextColor: { ...section, property: 'color' },\n bulletTextColor: { ...bullet, property: 'color' },\n emphasisTextColor: { ...emphasis, property: 'color' },\n strongTextColor: { ...strong, property: 'color' },\n additionTextColor: { ...addition, property: 'color' },\n additionBgColor: { ...addition, property: 'background-color' },\n deletionTextColor: { ...deletion, property: 'color' },\n deletionBgColor: { ...deletion, property: 'background-color' },\n charEscapeTextColor: { ...charEscape, property: 'color' },\n linkTextColor: { ...link, property: 'color' },\n paramsTextColor: { ...params, property: 'color' },\n propertyTextColor: { ...property, property: 'color' },\n punctuationTextColor: { ...punctuation, property: 'color' },\n tagTextColor: { ...tag, property: 'color' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(CodeSnippet);\n","export const decode = (input) => {\n const txt = document.createElement('textarea');\n txt.innerHTML = input;\n return txt.value;\n};\n\nexport const tpl = (input, inline) => {\n return inline ? input : `<pre>${input}</pre>`;\n};\n","import { componentName, CodeSnippetClass } from './CodeSnippetClass';\n\ncustomElements.define(componentName, CodeSnippetClass);\n\nexport { CodeSnippetClass, componentName };\n","/* eslint-disable no-param-reassign */\nimport { GridTextColumnClass } from '../descope-grid-text-column/GridTextColumnClass';\n\nexport class GridCustomColumnClass extends GridTextColumnClass {\n _defaultRenderer(cell, _col, model) {\n const content = model.item[this.path] || '';\n\n // we get a list of elements that can be used to render the content\n // each element can have a \"pattern\" attribute which contains regex expression\n // we are going over the elements, and when finding an element which is pattern matches the data,\n // we are cloning this element, and injecting the data as its child\n const contentEle = Array.from(this.children).find((child) => {\n const pattern = child.getAttribute('data-pattern');\n if (!pattern) return true;\n\n const regEx = new RegExp(pattern);\n return regEx.test(content);\n });\n\n if (!contentEle) {\n this.__setTextContent(cell, model.item[this.path] || '');\n\n return;\n }\n\n const newEle = contentEle.cloneNode(true);\n newEle.textContent = content || '';\n cell.innerHTML = '';\n cell.append(newEle);\n }\n}\n","/* eslint-disable no-param-reassign */\nimport { getComponentName } from '../../../helpers/componentHelpers';\nimport { GridCustomColumnClass } from './GridCustomColumnClass';\n\nexport const componentName = getComponentName('grid-custom-column');\n\ncustomElements.define(componentName, GridCustomColumnClass);\n","/* eslint-disable no-param-reassign */\nimport { GridSortColumn } from '@vaadin/grid/vaadin-grid-sort-column';\n\nexport class GridItemDetailsColumnClass extends GridSortColumn {\n get sortable() {\n return this.getAttribute('sortable') === 'true';\n }\n\n // eslint-disable-next-line class-methods-use-this\n _defaultRenderer(cell, _col, model) {\n const grid = _col._gridValue;\n const itemIdx = grid.detailsOpenedItems?.indexOf(model.item) ?? -1;\n const isOpened = itemIdx !== -1;\n\n const toggleIcon = document.createElement('vaadin-icon');\n toggleIcon.icon = isOpened ? 'vaadin:angle-up' : 'vaadin:angle-down';\n toggleIcon.classList.add('toggle-details-button', isOpened ? 'opened' : 'closed');\n cell.innerHTML = '';\n cell.append(toggleIcon);\n\n toggleIcon.onclick = () => {\n grid.detailsOpenedItems = isOpened\n ? grid.detailsOpenedItems.toSpliced(itemIdx, 1)\n : [...grid.detailsOpenedItems, model.item];\n };\n }\n\n _defaultHeaderRenderer(root, _column) {\n if (this.sortable) {\n super._defaultHeaderRenderer(root, _column);\n\n return;\n }\n\n this.__setTextContent(root, this.__getHeader(this.header, this.path));\n }\n}\n","import { getComponentName } from '../../../helpers/componentHelpers';\nimport { GridItemDetailsColumnClass } from './GridItemDetailsColumnClass';\nimport '@vaadin/icon';\nimport '@vaadin/icons';\n\nexport const componentName = getComponentName('grid-item-details-column');\n\ncustomElements.define(componentName, GridItemDetailsColumnClass);\n","import { GridSelectionColumn } from '@vaadin/grid/vaadin-grid-selection-column';\n\nconst createCheckboxEle = () => {\n const checkbox = document.createElement('descope-checkbox');\n\n checkbox.setAttribute('bordered', 'true');\n checkbox.setAttribute('size', 'xs');\n\n return checkbox;\n};\n\nconst getIsAllItemsSelected = (grid) =>\n !!grid.items?.length && grid.selectedItems.length === grid.items.length;\n\nexport class GridSelectionColumnClass extends GridSelectionColumn {\n // eslint-disable-next-line class-methods-use-this\n _onHeaderRendererOrBindingChanged() {}\n\n // eslint-disable-next-line class-methods-use-this\n _headerRenderer(cell) {\n const grid = cell.parentNode;\n\n let checkbox = cell.querySelector('descope-checkbox');\n if (!checkbox) {\n checkbox = createCheckboxEle();\n\n checkbox.addEventListener('input', () => {\n const isAllItemsSelected = getIsAllItemsSelected(grid);\n if (isAllItemsSelected) {\n grid.selectedItems = [];\n } else {\n grid.selectedItems = grid.items;\n }\n });\n\n cell.appendChild(checkbox);\n }\n\n checkbox.setAttribute('checked', getIsAllItemsSelected(grid));\n }\n\n // eslint-disable-next-line class-methods-use-this\n _defaultRenderer(cell, col, model) {\n const grid = cell.parentNode;\n\n let checkbox = cell.querySelector('descope-checkbox');\n if (!checkbox) {\n checkbox = createCheckboxEle();\n cell.appendChild(checkbox);\n }\n\n checkbox.onchange = () => {\n checkbox.checked ? grid.selectItem(model.item) : grid.deselectItem(model.item);\n };\n\n checkbox.setAttribute('checked', model.selected);\n }\n}\n","import '../../boolean-fields/descope-checkbox';\nimport { getComponentName } from '../../../helpers/componentHelpers';\nimport { GridSelectionColumnClass } from './GridSelectionColumnClass';\n\nexport const componentName = getComponentName('grid-selection-column');\n\ncustomElements.define(componentName, GridSelectionColumnClass);\n","/* eslint-disable no-param-reassign */\nimport { GridSortColumn } from '@vaadin/grid/vaadin-grid-sort-column';\n\nexport class GridTextColumnClass extends GridSortColumn {\n get sortable() {\n return this.getAttribute('sortable') === 'true';\n }\n\n _defaultRenderer(cell, _col, model) {\n const data = model.item[this.path] || '';\n const content = Array.isArray(data) ? data.join(', ') : data;\n\n this.__setTextContent(cell, content);\n cell.title = content;\n }\n\n _defaultHeaderRenderer(root, _column) {\n if (this.sortable) {\n super._defaultHeaderRenderer(root, _column);\n\n return;\n }\n\n this.__setTextContent(root, this.__getHeader(this.header, this.path));\n }\n}\n","import { getComponentName } from '../../../helpers/componentHelpers';\nimport { GridTextColumnClass } from './GridTextColumnClass';\n\nexport const componentName = getComponentName('grid-text-column');\n\ncustomElements.define(componentName, GridTextColumnClass);\n","import { toTitle } from '../../helpers';\n\nexport const isValidDataType = (data) => {\n const isValid = Array.isArray(data);\n if (!isValid) {\n // eslint-disable-next-line no-console\n console.error('data must be an array, received:', data);\n }\n\n return isValid;\n};\n\nexport const isPlainObject = (value) => value?.constructor === Object;\n\nconst isXml = (str) => /^\\s*<[\\s\\S]*>/.test(str);\n\nconst escapeXML = (s) => {\n const dom = document.createElement('div');\n dom.textContent = s;\n return dom.innerHTML;\n};\n\nexport const getValueType = (value) => {\n if (isPlainObject(value)) return 'object';\n if (Array.isArray(value)) return 'array';\n if (isXml(value)) return 'xml';\n\n return 'text';\n};\n\nexport const renderCodeSnippet = (value, lang) =>\n `<descope-code-snippet lang=\"${lang}\" class=\"row-details__value code\">${escapeXML(value)}</descope-code-snippet>`;\n\nexport const renderText = (text) =>\n `<div class=\"row-details__value text\" title=\"${text}\">${escapeXML(text)}</div>`;\nconst renderJson = (value) => renderCodeSnippet(JSON.stringify(value, null, 2), 'json');\nconst renderXml = (value) => renderCodeSnippet(value, 'xml');\n\nconst defaultRowDetailsValueRenderer = (value) => {\n const valueType = getValueType(value);\n\n if (valueType === 'object') {\n return renderJson(value);\n }\n\n if (valueType === 'xml') {\n return renderXml(value);\n }\n\n if (valueType === 'array') {\n if (value.some((v) => getValueType(v) === 'object')) {\n return renderJson(value);\n }\n return renderText(value.join(',\\n'));\n }\n\n return renderText(value);\n};\n\nexport const defaultRowDetailsRenderer = (item, itemLabelsMapping) => {\n return `\n <div class=\"row-details\">\n ${Object.entries(item)\n .map(\n ([key, value]) =>\n `<div class=\"row-details__item\" >\n <div class=\"row-details__label\">${itemLabelsMapping[key] || toTitle(key)}</div>\n ${defaultRowDetailsValueRenderer(value)}\n </div>`\n )\n .join('\\n')}\n</div>\n `;\n};\n","import { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n draggableMixin,\n} from '../../mixins';\n\nimport { defaultRowDetailsRenderer, isValidDataType } from './helpers';\n\nexport const componentName = getComponentName('grid');\n\nconst GridMixin = (superclass) =>\n class GridMixinClass extends superclass {\n #columns;\n\n init() {\n super.init?.();\n this.handleColumns();\n this.forwardSelectedItemsChange();\n\n // disable the grid sort\n this.baseElement._mapSorters = () => {};\n\n // there is an issue in vaadin that on some cases when trying to render the details panel, the row is null and this fn throwing\n // so we override it to prevent the error\n const origUpdateDetailsCellHeight = this.baseElement._updateDetailsCellHeight;\n this.baseElement._updateDetailsCellHeight = (row) => {\n if (!row) return;\n origUpdateDetailsCellHeight.call(this.baseElement, row);\n };\n\n this.baseElement.rowDetailsRenderer = this.#rowDetailsRenderer.bind(this);\n }\n\n // this renders the details panel content\n // in order to open it, the descope-grid-item-details-column should be used\n #rowDetailsRenderer = async (cell, _col, model) => {\n // prevent details panel from being scrolled into view when clicked\n cell.addEventListener('mousedown', (e) => e.stopImmediatePropagation(), true);\n\n const template = this.getRowDetailsTemplate(model.item);\n\n // eslint-disable-next-line no-param-reassign\n cell.innerHTML = '';\n cell.append(template.content.cloneNode(true));\n };\n\n getRowDetailsTemplate(item) {\n const itemLabelsMapping = this.#columns.reduce(\n (acc, { path, header }) => (!path || !header ? acc : { ...acc, [path]: header }),\n {}\n );\n const template =\n this.rowDetailsRenderer?.(item, itemLabelsMapping) ??\n defaultRowDetailsRenderer(item, itemLabelsMapping);\n\n switch (true) {\n case template instanceof HTMLTemplateElement:\n return template;\n case typeof template === 'string':\n return Object.assign(document.createElement('template'), { innerHTML: template });\n default:\n throw new Error('rowDetailsRenderer should return a string or a template');\n }\n }\n\n forwardSelectedItemsChange() {\n this.baseElement.addEventListener('selected-items-changed', (e) => {\n this.dispatchEvent(\n new CustomEvent('selected-items-changed', {\n bubbles: true,\n composed: true,\n detail: e.detail,\n })\n );\n });\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (attrName === 'columns') {\n this.setColumnsDataFromAttr();\n }\n }\n\n handleColumns() {\n if (this.columnsAttr) {\n this.setColumnsDataFromAttr();\n } else if (this.children.length) {\n this.setColumnsFromChildren();\n }\n }\n\n setColumnsFromChildren() {\n this.#columns = Array.from(this.children).map((child) => {\n return {\n path: child.getAttribute('path'),\n header: child.getAttribute('header'),\n type: child.localName.match('^descope-grid-(\\\\w+)-column$')?.[1] || 'text',\n\n attrs: ['frozen', 'resizable', 'auto-width', 'status'].reduce((acc, attrName) => {\n const attrVal = child.getAttribute(attrName);\n\n if (attrVal) {\n acc[attrName] = attrVal;\n }\n\n return acc;\n }, {}),\n };\n });\n }\n\n get columnsAttr() {\n return this.getAttribute('columns');\n }\n\n setColumnsDataFromAttr() {\n try {\n const data = JSON.parse(this.columnsAttr);\n if (isValidDataType(data)) {\n this.columns = data;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"columns\" -', e.message);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n #renderColumn = ({ path, header, type, attrs }) => {\n const colAttrs = Object.entries(attrs)\n .map(([key, value]) => `${key}=\"${value}\"`)\n .join(' ');\n\n const tagName = `descope-grid-${type}-column`;\n\n return `<${tagName} header=\"${header}\" path=\"${path}\" ${colAttrs}></${tagName}>`;\n };\n\n get renderColumn() {\n return this.#renderColumn;\n }\n\n set renderColumn(renderFn) {\n this.#renderColumn = renderFn;\n this.renderColumns();\n }\n\n getColumnsTemplate() {\n return this.#columns?.reduce?.(\n (acc, item) => acc + (this.renderColumn?.(item || {}) || ''),\n ''\n );\n }\n\n // there is an issue in vaadin-grid, when rowDetailsRenderer is set, it renders an empty details panel\n reassignRowDetailsRenderer() {\n this.baseElement.rowDetailsRenderer = null;\n setTimeout(() => {\n this.baseElement.rowDetailsRenderer = this.#rowDetailsRenderer.bind(this);\n }, 0);\n }\n\n renderColumns() {\n const template = this.getColumnsTemplate();\n if (template) {\n this.reassignRowDetailsRenderer();\n this.innerHTML = template;\n }\n }\n\n get grid() {\n return this.shadowRoot.querySelector('vaadin-grid');\n }\n\n get data() {\n return this.grid.items;\n }\n\n set data(data) {\n if (isValidDataType(data) && this.grid.items !== data) {\n this.grid.items = data;\n\n if (this.grid.selectedItems) {\n const itemsIds = new Set(\n this.grid.items.map((item) => item[this.uniqueColumnId] ?? item)\n );\n\n const newSelectedItems = this.grid.selectedItems.filter((selectedItem) =>\n itemsIds.has(selectedItem[this.uniqueColumnId] ?? selectedItem)\n );\n\n // we want to update the selected items only if there is a reason,\n // to prevent redundant notifications\n if (this.grid.selectedItems.length !== newSelectedItems.length) {\n this.grid.selectedItems = newSelectedItems;\n }\n }\n }\n }\n\n get columns() {\n return this.#columns;\n }\n\n set columns(data) {\n this.#columns = data;\n this.renderColumns();\n }\n\n get paths() {\n return this.columns.map((col) => col.path);\n }\n\n get uniqueColumnId() {\n return this.getAttribute('unique-column-id');\n }\n };\n\nconst {\n host,\n headerRow,\n headerRowCell,\n contentRow,\n firstRow,\n sortIndicators,\n activeSortIndicator,\n selectedRow,\n rowSeparator,\n resizeHandle,\n toggleDetailsPanelButton,\n toggleDetailsPanelButtonOpened,\n toggleDetailsPanelButtonClosed,\n detailsPanel,\n detailsPanelLabels,\n selectedRowCell,\n detailsPanelContent,\n} = {\n host: { selector: () => 'vaadin-grid' },\n headerRow: { selector: () => '::part(header-cell)' },\n headerRowCell: { selector: () => 'vaadin-grid::part(header-cell)' },\n contentRow: { selector: () => '::part(cell)' },\n firstRow: { selector: () => '::part(first-header-row-cell)' },\n selectedRow: { selector: () => '::part(selected-row)' },\n selectedRowCell: { selector: () => '::part(selected-row-cell)' },\n sortIndicators: { selector: () => 'vaadin-grid-sorter::part(indicators)' },\n activeSortIndicator: { selector: () => 'vaadin-grid-sorter[direction]' },\n rowSeparator: { selector: () => 'vaadin-grid::part(body-cell)' },\n resizeHandle: { selector: () => '::part(resize-handle)' },\n toggleDetailsPanelButton: { selector: () => 'vaadin-grid vaadin-icon.toggle-details-button' },\n toggleDetailsPanelButtonOpened: {\n selector: () => 'vaadin-grid vaadin-icon.toggle-details-button.opened',\n },\n toggleDetailsPanelButtonClosed: {\n selector: () => 'vaadin-grid vaadin-icon.toggle-details-button.closed',\n },\n detailsPanel: { selector: () => 'vaadin-grid::part(details-cell)' },\n detailsPanelLabels: { selector: () => 'vaadin-grid .row-details__label' },\n detailsPanelContent: { selector: () => 'vaadin-grid .row-details' },\n};\n\nexport const GridClass = compose(\n createStyleMixin({ componentNameOverride: getComponentName('input-wrapper') }),\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n hostHeight: { selector: () => ':host', property: 'height' },\n hostMinHeight: { selector: () => ':host', property: 'min-height' },\n fontFamily: [{ ...headerRow }, { ...contentRow }],\n fontSize: [{ ...headerRow }, { ...contentRow }],\n fontWeight: { ...contentRow },\n valueTextColor: { ...contentRow, property: 'color' },\n backgroundColor: [\n { ...host, property: 'background-color' },\n { ...contentRow, property: 'background-color' },\n ],\n sortIndicatorsColor: { ...sortIndicators, property: 'color' },\n activeSortIndicator: { ...activeSortIndicator, property: 'color' },\n borderColor: { ...host, property: 'border-color' },\n borderWidth: { ...host, property: 'border-width' },\n borderStyle: { ...host, property: 'border-style' },\n borderRadius: { ...host, property: 'border-radius' },\n selectedBackgroundColor: [\n { ...selectedRow, property: 'background-color' },\n { ...selectedRowCell, property: 'background-color' },\n ],\n headerRowTextColor: { ...headerRowCell, property: 'color' },\n separatorColor: [\n { ...firstRow, property: 'border-bottom-color' },\n { ...rowSeparator, property: 'border-top-color' },\n ],\n resizeHandleColor: { ...resizeHandle, property: 'background-color' },\n hostDirection: { ...host, property: 'direction', fallback: 'ltr' },\n toggleDetailsPanelButtonSize: [\n { ...toggleDetailsPanelButton, property: 'width' },\n { ...toggleDetailsPanelButton, property: 'height' },\n ],\n toggleDetailsPanelButtonOpenedColor: { ...toggleDetailsPanelButtonOpened, property: 'color' },\n toggleDetailsPanelButtonClosedColor: { ...toggleDetailsPanelButtonClosed, property: 'color' },\n toggleDetailsPanelButtonCursor: { ...toggleDetailsPanelButton, property: 'cursor' },\n detailsPanelBackgroundColor: { ...detailsPanel, property: 'background-color' },\n detailsPanelBorderTopColor: { ...detailsPanel, property: 'border-top-color' },\n detailsPanelLabelsColor: { ...detailsPanelLabels, property: 'color' },\n detailsPanelLabelsFontSize: { ...detailsPanelLabels, property: 'font-size' },\n detailsPanelItemsGap: { ...detailsPanelContent, property: 'grid-gap' },\n detailsPanelPadding: { ...detailsPanelContent, property: 'padding' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n GridMixin\n)(\n createProxy({\n delegatesFocus: false,\n slots: [''],\n wrappedEleName: 'vaadin-grid',\n style: () => `\n /*css*/\n vaadin-grid {\n overflow: hidden;\n height: 100%;\n min-height: 300px;\n }\n vaadin-grid-cell-content {\n display: flex;\n }\n vaadin-grid::part(selected-row-cell) {\n background-image: none;\n box-shadow: none;\n background-color: inherit;\n }\n vaadin-grid::part(details-cell) {\n border-top-style: dashed;\n border-top-width: 1px;\n }\n vaadin-grid .row-details {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(max(200px, calc(100%/4 - var(${GridClass.cssVarList.detailsPanelItemsGap}))), 1fr));\n width: 100%;\n }\n vaadin-grid .row-details__item:has(.row-details__value.code) {\n grid-column: 1 / -1;\n order: 2;\n }\n vaadin-grid .row-details__value.text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: pre;\n }\n vaadin-grid .row-details__value.code {\n margin-top: 5px;\n max-height: 120px;\n overflow: scroll;\n font-size: 0.85em;\n }\n vaadin-grid vaadin-icon.toggle-details-button {\n margin: auto;\n }\n /*!css*/\n\t\t`,\n excludeAttrsSync: ['columns', 'tabindex', 'style'],\n componentName,\n })\n);\n","import '@vaadin/grid';\nimport './descope-grid-text-column';\nimport './descope-grid-custom-column';\nimport './descope-grid-selection-column';\nimport './descope-grid-item-details-column';\nimport '../descope-code-snippet'; // this is needed for the details panel\n\nimport { componentName, GridClass } from './GridClass';\n\ncustomElements.define(componentName, GridClass);\n\nexport { GridClass, componentName };\n"],"names":["componentName","CodeSnippet","createBaseClass","baseSelector","observedAttributes","constructor","super","this","attachShadow","mode","innerHTML","init","lang","getAttribute","isInline","bind","contentNode","shadowRoot","querySelector","attributeChangedCallback","attrName","oldValue","newValue","sanitized","input","txt","document","createElement","value","decode","textContent","language","highlighted","highlight","root","docTag","keyword","metaKeyword","templateTag","templateVariable","type","variableLanguage","title","titleClass","titleClassInherited","titleFunction","attr","attribute","literal","meta","number","operator","variable","selectorAttr","selectorClass","selectorId","regexp","string","metaString","builtIn","symbol","comment","code","formula","name","quote","selectorTag","selectorPseudo","subst","section","bullet","emphasis","strong","addition","deletion","charEscape","link","params","property","punctuation","tag","selector","CodeSnippetClass","mappings","rootBgColor","rootTextColor","docTagTextColor","keywordTextColor","metaKeywordTextColor","templateTagTextColor","templateVariableTextColor","typeTextColor","variableLanguageTextColor","titleTextColor","titleClassTextColor","titleClassInheritedTextColor","titleFunctionTextColor","attrTextColor","attributeTextColor","literalTextColor","metaTextColor","numberTextColor","operatorTextColor","variableTextColor","selectorAttrTextColor","selectorClassTextColor","selectorIdTextColor","regexpTextColor","stringTextColor","metaStringTextColor","builtInTextColor","symbolTextColor","commentTextColor","codeTextColor","formulaTextColor","nameTextColor","quoteTextColor","selectorTagTextColor","selectorPseudoTextColor","substTextColor","sectionTextColor","bulletTextColor","emphasisTextColor","strongTextColor","additionTextColor","additionBgColor","deletionTextColor","deletionBgColor","charEscapeTextColor","linkTextColor","paramsTextColor","propertyTextColor","punctuationTextColor","tagTextColor","customElements","define","GridCustomColumnClass","GridTextColumnClass","_defaultRenderer","cell","_col","model","content","item","path","contentEle","Array","from","children","find","child","pattern","RegExp","test","__setTextContent","newEle","cloneNode","append","GridItemDetailsColumnClass","sortable","grid","_gridValue","itemIdx","detailsOpenedItems","indexOf","isOpened","toggleIcon","icon","classList","add","onclick","toSpliced","_defaultHeaderRenderer","_column","__getHeader","header","createCheckboxEle","checkbox","setAttribute","getIsAllItemsSelected","items","length","selectedItems","GridSelectionColumnClass","_onHeaderRendererOrBindingChanged","_headerRenderer","parentNode","addEventListener","isAllItemsSelected","appendChild","col","onchange","checked","selectItem","deselectItem","selected","data","isArray","join","isValidDataType","isValid","console","error","escapeXML","s","dom","getValueType","Object","isPlainObject","renderCodeSnippet","renderText","text","renderJson","JSON","stringify","host","headerRow","headerRowCell","contentRow","firstRow","sortIndicators","activeSortIndicator","selectedRow","rowSeparator","resizeHandle","toggleDetailsPanelButton","toggleDetailsPanelButtonOpened","toggleDetailsPanelButtonClosed","detailsPanel","detailsPanelLabels","selectedRowCell","detailsPanelContent","GridClass","componentNameOverride","hostWidth","hostHeight","hostMinHeight","fontFamily","fontSize","fontWeight","valueTextColor","backgroundColor","sortIndicatorsColor","borderColor","borderWidth","borderStyle","borderRadius","selectedBackgroundColor","headerRowTextColor","separatorColor","resizeHandleColor","hostDirection","fallback","toggleDetailsPanelButtonSize","toggleDetailsPanelButtonOpenedColor","toggleDetailsPanelButtonClosedColor","toggleDetailsPanelButtonCursor","detailsPanelBackgroundColor","detailsPanelBorderTopColor","detailsPanelLabelsColor","detailsPanelLabelsFontSize","detailsPanelItemsGap","detailsPanelPadding","superclass","handleColumns","forwardSelectedItemsChange","baseElement","_mapSorters","origUpdateDetailsCellHeight","_updateDetailsCellHeight","row","call","rowDetailsRenderer","async","e","stopImmediatePropagation","template","getRowDetailsTemplate","itemLabelsMapping","reduce","acc","entries","map","key","valueType","renderXml","some","v","defaultRowDetailsValueRenderer","defaultRowDetailsRenderer","HTMLTemplateElement","assign","Error","dispatchEvent","CustomEvent","bubbles","composed","detail","setColumnsDataFromAttr","columnsAttr","setColumnsFromChildren","localName","match","attrs","attrVal","parse","columns","message","tagName","renderColumn","renderFn","renderColumns","getColumnsTemplate","reassignRowDetailsRenderer","setTimeout","itemsIds","Set","uniqueColumnId","newSelectedItems","filter","selectedItem","has","paths","delegatesFocus","slots","wrappedEleName","style","cssVarList","excludeAttrsSync"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"descope-grid-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/./src/components/descope-code-snippet/helpers.js","webpack://@descope/web-components-ui/./src/components/descope-code-snippet/CodeSnippetClass.js","webpack://@descope/web-components-ui/./src/components/descope-code-snippet/index.js","webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-custom-column/GridCustomColumnClass.js","webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-custom-column/index.js","webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-item-details-column/GridItemDetailsColumnClass.js","webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-item-details-column/index.js","webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-selection-column/GridSelectionColumnClass.js","webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-selection-column/index.js","webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-text-column/GridTextColumnClass.js","webpack://@descope/web-components-ui/./src/components/descope-grid/descope-grid-text-column/index.js","webpack://@descope/web-components-ui/./src/components/descope-grid/helpers.js","webpack://@descope/web-components-ui/./src/components/descope-grid/GridClass.js","webpack://@descope/web-components-ui/./src/components/descope-grid/index.js"],"sourcesContent":["export const decode = (input) => {\n const txt = document.createElement('textarea');\n txt.innerHTML = input;\n return txt.value;\n};\n\nexport const tpl = (input, inline) => (inline ? input : `<pre>${input}</pre>`);\n","import hljs from 'highlight.js';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\nimport { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { compose } from '../../helpers';\nimport { getComponentName, observeChildren } from '../../helpers/componentHelpers';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { decode, tpl } from './helpers';\n\nexport const componentName = getComponentName('code-snippet');\n\nclass CodeSnippet extends createBaseClass({ componentName, baseSelector: ':host > code' }) {\n static get observedAttributes() {\n return ['lang', 'inline'];\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <code class=\"hljs\"></code>\n `;\n\n injectStyle(\n `\n :host {\n display: inline-block;\n width: 100%;\n }\n code {\n display: block;\n width: 100%;\n min-height: 1em;\n overflow-x: scroll;\n overflow-y: scroll;\n }\n pre {\n margin: 0;\n }\n `,\n this\n );\n }\n\n init() {\n super.init?.();\n\n this.lang = this.getAttribute('lang');\n this.isInline = this.getAttribute('inline') === 'true';\n\n observeChildren(this, this.#renderSnippet.bind(this));\n }\n\n get contentNode() {\n return this.shadowRoot.querySelector(this.baseSelector);\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue !== newValue) {\n if (attrName === 'inline') {\n this.isInline = newValue;\n }\n\n if (attrName === 'lang') {\n this.lang = newValue;\n }\n\n this.#renderSnippet();\n }\n }\n\n #renderSnippet() {\n const sanitized = decode(this.textContent);\n const language = this.lang;\n\n if (!language) {\n this.contentNode.textContent = sanitized;\n return;\n }\n\n const { value: highlighted } = hljs.highlight(sanitized, { language });\n\n this.contentNode.innerHTML = tpl(highlighted, this.isInline);\n }\n}\n\nconst {\n root,\n docTag,\n keyword,\n metaKeyword,\n templateTag,\n templateVariable,\n type,\n variableLanguage,\n title,\n titleClass,\n titleClassInherited,\n titleFunction,\n attr,\n attribute,\n literal,\n meta,\n number,\n operator,\n variable,\n selectorAttr,\n selectorClass,\n selectorId,\n regexp,\n string,\n metaString,\n builtIn,\n symbol,\n comment,\n code,\n formula,\n name,\n quote,\n selectorTag,\n selectorPseudo,\n subst,\n section,\n bullet,\n emphasis,\n strong,\n addition,\n deletion,\n charEscape,\n link,\n params,\n property,\n punctuation,\n tag,\n} = {\n root: { selector: () => '.hljs' },\n docTag: { selector: () => '.hljs-doctag' },\n keyword: { selector: () => '.hljs-keyword' },\n metaKeyword: { selector: () => '.hljs-meta .hljs-keyword' },\n templateTag: { selector: () => '.hljs-template-tag' },\n templateVariable: { selector: () => '.hljs-template-variable' },\n type: { selector: () => '.hljs-type' },\n variableLanguage: { selector: () => '.hljs-variable.language' },\n title: { selector: () => '.hljs-title' },\n titleClass: { selector: () => '.hljs-title.class_' },\n titleClassInherited: { selector: () => '.hljs-title.class_.inherited__' },\n titleFunction: { selector: () => '.hljs-title.function_' },\n attr: { selector: () => '.hljs-attr' },\n attribute: { selector: () => '.hljs-attribute' },\n literal: { selector: () => '.hljs-literal' },\n meta: { selector: () => '.hljs-meta' },\n number: { selector: () => '.hljs-number' },\n operator: { selector: () => '.hljs-operator' },\n variable: { selector: () => '.hljs-variable' },\n selectorAttr: { selector: () => '.hljs-selector-attr' },\n selectorClass: { selector: () => '.hljs-selector-class' },\n selectorId: { selector: () => '.hljs-selector-id' },\n regexp: { selector: () => '.hljs-regexp' },\n string: { selector: () => '.hljs-string' },\n metaString: { selector: () => '.hljs-meta .hljs-string' },\n builtIn: { selector: () => '.hljs-built_in' },\n symbol: { selector: () => '.hljs-symbol' },\n comment: { selector: () => '.hljs-comment' },\n code: { selector: () => '.hljs-code' },\n formula: { selector: () => '.hljs-formula' },\n name: { selector: () => '.hljs-name' },\n quote: { selector: () => '.hljs-quote' },\n selectorTag: { selector: () => '.hljs-selector-tag' },\n selectorPseudo: { selector: () => '.hljs-selector-pseudo' },\n subst: { selector: () => '.hljs-subst' },\n section: { selector: () => '.hljs-section' },\n bullet: { selector: () => '.hljs-bullet' },\n emphasis: { selector: () => '.hljs-emphasis' },\n strong: { selector: () => '.hljs-strong' },\n addition: { selector: () => '.hljs-addition' },\n deletion: { selector: () => '.hljs-deletion' },\n charEscape: { selector: () => '.hljs-char.escape' },\n link: { selector: () => '.hljs-link' },\n params: { selector: () => '.hljs-params' },\n property: { selector: () => '.hljs-property' },\n punctuation: { selector: () => '.hljs-punctuation' },\n tag: { selector: () => '.hljs-tag' },\n};\n\nexport const CodeSnippetClass = compose(\n createStyleMixin({\n mappings: {\n rootBgColor: { ...root, property: 'background-color' },\n rootTextColor: { ...root, property: 'color' },\n docTagTextColor: { ...docTag, property: 'color' },\n keywordTextColor: { ...keyword, property: 'color' },\n metaKeywordTextColor: { ...metaKeyword, property: 'color' },\n templateTagTextColor: { ...templateTag, property: 'color' },\n templateVariableTextColor: { ...templateVariable, property: 'color' },\n typeTextColor: { ...type, property: 'color' },\n variableLanguageTextColor: { ...variableLanguage, property: 'color' },\n titleTextColor: { ...title, property: 'color' },\n titleClassTextColor: { ...titleClass, property: 'color' },\n titleClassInheritedTextColor: { ...titleClassInherited, property: 'color' },\n titleFunctionTextColor: { ...titleFunction, property: 'color' },\n attrTextColor: { ...attr, property: 'color' },\n attributeTextColor: { ...attribute, property: 'color' },\n literalTextColor: { ...literal, property: 'color' },\n metaTextColor: { ...meta, property: 'color' },\n numberTextColor: { ...number, property: 'color' },\n operatorTextColor: { ...operator, property: 'color' },\n variableTextColor: { ...variable, property: 'color' },\n selectorAttrTextColor: { ...selectorAttr, property: 'color' },\n selectorClassTextColor: { ...selectorClass, property: 'color' },\n selectorIdTextColor: { ...selectorId, property: 'color' },\n regexpTextColor: { ...regexp, property: 'color' },\n stringTextColor: { ...string, property: 'color' },\n metaStringTextColor: { ...metaString, property: 'color' },\n builtInTextColor: { ...builtIn, property: 'color' },\n symbolTextColor: { ...symbol, property: 'color' },\n commentTextColor: { ...comment, property: 'color' },\n codeTextColor: { ...code, property: 'color' },\n formulaTextColor: { ...formula, property: 'color' },\n nameTextColor: { ...name, property: 'color' },\n quoteTextColor: { ...quote, property: 'color' },\n selectorTagTextColor: { ...selectorTag, property: 'color' },\n selectorPseudoTextColor: { ...selectorPseudo, property: 'color' },\n substTextColor: { ...subst, property: 'color' },\n sectionTextColor: { ...section, property: 'color' },\n bulletTextColor: { ...bullet, property: 'color' },\n emphasisTextColor: { ...emphasis, property: 'color' },\n strongTextColor: { ...strong, property: 'color' },\n additionTextColor: { ...addition, property: 'color' },\n additionBgColor: { ...addition, property: 'background-color' },\n deletionTextColor: { ...deletion, property: 'color' },\n deletionBgColor: { ...deletion, property: 'background-color' },\n charEscapeTextColor: { ...charEscape, property: 'color' },\n linkTextColor: { ...link, property: 'color' },\n paramsTextColor: { ...params, property: 'color' },\n propertyTextColor: { ...property, property: 'color' },\n punctuationTextColor: { ...punctuation, property: 'color' },\n tagTextColor: { ...tag, property: 'color' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(CodeSnippet);\n","import { componentName, CodeSnippetClass } from './CodeSnippetClass';\n\ncustomElements.define(componentName, CodeSnippetClass);\n\nexport { CodeSnippetClass, componentName };\n","import { GridTextColumnClass } from '../descope-grid-text-column/GridTextColumnClass';\n\nexport class GridCustomColumnClass extends GridTextColumnClass {\n _defaultRenderer(cell, _col, model) {\n const content = model.item[this.path] || '';\n\n // we get a list of elements that can be used to render the content\n // each element can have a \"pattern\" attribute which contains regex expression\n // we are going over the elements, and when finding an element which is pattern matches the data,\n // we are cloning this element, and injecting the data as its child\n const contentEle = Array.from(this.children).find((child) => {\n const pattern = child.getAttribute('data-pattern');\n if (!pattern) return true;\n\n const regEx = new RegExp(pattern);\n return regEx.test(content);\n });\n\n if (!contentEle) {\n this.__setTextContent(cell, model.item[this.path] || '');\n\n return;\n }\n\n const newEle = contentEle.cloneNode(true);\n newEle.textContent = content || '';\n cell.innerHTML = '';\n cell.append(newEle);\n }\n}\n","import { getComponentName } from '../../../helpers/componentHelpers';\nimport { GridCustomColumnClass } from './GridCustomColumnClass';\n\nexport const componentName = getComponentName('grid-custom-column');\n\ncustomElements.define(componentName, GridCustomColumnClass);\n","import { GridSortColumn } from '@vaadin/grid/vaadin-grid-sort-column';\n\nexport class GridItemDetailsColumnClass extends GridSortColumn {\n get sortable() {\n return this.getAttribute('sortable') === 'true';\n }\n\n _defaultRenderer(cell, _col, model) {\n const grid = _col._gridValue;\n const itemIdx = grid.detailsOpenedItems?.indexOf(model.item) ?? -1;\n const isOpened = itemIdx !== -1;\n\n const toggleIcon = document.createElement('vaadin-icon');\n toggleIcon.icon = isOpened ? 'vaadin:angle-up' : 'vaadin:angle-down';\n toggleIcon.classList.add('toggle-details-button', isOpened ? 'opened' : 'closed');\n cell.innerHTML = '';\n cell.append(toggleIcon);\n\n toggleIcon.onclick = () => {\n grid.detailsOpenedItems = isOpened\n ? grid.detailsOpenedItems.toSpliced(itemIdx, 1)\n : [...grid.detailsOpenedItems, model.item];\n };\n }\n\n _defaultHeaderRenderer(root, _column) {\n if (this.sortable) {\n super._defaultHeaderRenderer(root, _column);\n\n return;\n }\n\n this.__setTextContent(root, this.__getHeader(this.header, this.path));\n }\n}\n","import { getComponentName } from '../../../helpers/componentHelpers';\nimport { GridItemDetailsColumnClass } from './GridItemDetailsColumnClass';\nimport '@vaadin/icon';\nimport '@vaadin/icons';\n\nexport const componentName = getComponentName('grid-item-details-column');\n\ncustomElements.define(componentName, GridItemDetailsColumnClass);\n","import { GridSelectionColumn } from '@vaadin/grid/vaadin-grid-selection-column';\n\nconst createCheckboxEle = () => {\n const checkbox = document.createElement('descope-checkbox');\n\n checkbox.setAttribute('bordered', 'true');\n checkbox.setAttribute('size', 'xs');\n\n return checkbox;\n};\n\nconst getIsAllItemsSelected = (grid) =>\n !!grid.items?.length && grid.selectedItems.length === grid.items.length;\n\nexport class GridSelectionColumnClass extends GridSelectionColumn {\n _onHeaderRendererOrBindingChanged() {}\n\n _headerRenderer(cell) {\n const grid = cell.parentNode;\n\n let checkbox = cell.querySelector('descope-checkbox');\n if (!checkbox) {\n checkbox = createCheckboxEle();\n\n checkbox.addEventListener('input', () => {\n const isAllItemsSelected = getIsAllItemsSelected(grid);\n if (isAllItemsSelected) {\n grid.selectedItems = [];\n } else {\n grid.selectedItems = grid.items;\n }\n });\n\n cell.appendChild(checkbox);\n }\n\n checkbox.setAttribute('checked', getIsAllItemsSelected(grid));\n }\n\n _defaultRenderer(cell, col, model) {\n const grid = cell.parentNode;\n\n let checkbox = cell.querySelector('descope-checkbox');\n if (!checkbox) {\n checkbox = createCheckboxEle();\n cell.appendChild(checkbox);\n }\n\n checkbox.onchange = () => {\n checkbox.checked ? grid.selectItem(model.item) : grid.deselectItem(model.item);\n };\n\n checkbox.setAttribute('checked', model.selected);\n }\n}\n","import '../../boolean-fields/descope-checkbox';\nimport { getComponentName } from '../../../helpers/componentHelpers';\nimport { GridSelectionColumnClass } from './GridSelectionColumnClass';\n\nexport const componentName = getComponentName('grid-selection-column');\n\ncustomElements.define(componentName, GridSelectionColumnClass);\n","import { GridSortColumn } from '@vaadin/grid/vaadin-grid-sort-column';\n\nexport class GridTextColumnClass extends GridSortColumn {\n get sortable() {\n return this.getAttribute('sortable') === 'true';\n }\n\n _defaultRenderer(cell, _col, model) {\n const data = model.item[this.path] || '';\n const content = Array.isArray(data) ? data.join(', ') : data;\n\n this.__setTextContent(cell, content);\n cell.title = content;\n }\n\n _defaultHeaderRenderer(root, _column) {\n if (this.sortable) {\n super._defaultHeaderRenderer(root, _column);\n\n return;\n }\n\n this.__setTextContent(root, this.__getHeader(this.header, this.path));\n }\n}\n","import { getComponentName } from '../../../helpers/componentHelpers';\nimport { GridTextColumnClass } from './GridTextColumnClass';\n\nexport const componentName = getComponentName('grid-text-column');\n\ncustomElements.define(componentName, GridTextColumnClass);\n","import { toTitle } from '../../helpers';\n\nexport const isValidDataType = (data) => {\n const isValid = Array.isArray(data);\n if (!isValid) {\n // eslint-disable-next-line no-console\n console.error('data must be an array, received:', data);\n }\n\n return isValid;\n};\n\nexport const isPlainObject = (value) => value?.constructor === Object;\n\nconst isXml = (str) => /^\\s*<[\\s\\S]*>/.test(str);\n\nconst escapeXML = (s) => {\n const dom = document.createElement('div');\n dom.textContent = s;\n return dom.innerHTML;\n};\n\nexport const getValueType = (value) => {\n if (isPlainObject(value)) return 'object';\n if (Array.isArray(value)) return 'array';\n if (isXml(value)) return 'xml';\n\n return 'text';\n};\n\nexport const renderCodeSnippet = (value, lang) =>\n `<descope-code-snippet lang=\"${lang}\" class=\"row-details__value code\">${escapeXML(value)}</descope-code-snippet>`;\n\nexport const renderText = (text) =>\n `<div class=\"row-details__value text\" title=\"${text}\">${escapeXML(text)}</div>`;\nconst renderJson = (value) => renderCodeSnippet(JSON.stringify(value, null, 2), 'json');\nconst renderXml = (value) => renderCodeSnippet(value, 'xml');\n\nconst defaultRowDetailsValueRenderer = (value) => {\n const valueType = getValueType(value);\n\n if (valueType === 'object') {\n return renderJson(value);\n }\n\n if (valueType === 'xml') {\n return renderXml(value);\n }\n\n if (valueType === 'array') {\n if (value.some((v) => getValueType(v) === 'object')) {\n return renderJson(value);\n }\n return renderText(value.join(',\\n'));\n }\n\n return renderText(value);\n};\n\nexport const defaultRowDetailsRenderer = (item, itemLabelsMapping) => `\n <div class=\"row-details\">\n ${Object.entries(item)\n .map(\n ([key, value]) =>\n `<div class=\"row-details__item\" >\n <div class=\"row-details__label\">${itemLabelsMapping[key] || toTitle(key)}</div>\n ${defaultRowDetailsValueRenderer(value)}\n </div>`\n )\n .join('\\n')}\n</div>\n `;\n","import { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n draggableMixin,\n} from '../../mixins';\n\nimport { defaultRowDetailsRenderer, isValidDataType } from './helpers';\n\nexport const componentName = getComponentName('grid');\n\nconst GridMixin = (superclass) =>\n class GridMixinClass extends superclass {\n #columns;\n\n init() {\n super.init?.();\n this.handleColumns();\n this.forwardSelectedItemsChange();\n\n // disable the grid sort\n this.baseElement._mapSorters = () => {};\n\n // there is an issue in vaadin that on some cases when trying to render the details panel, the row is null and this fn throwing\n // so we override it to prevent the error\n const origUpdateDetailsCellHeight = this.baseElement._updateDetailsCellHeight;\n this.baseElement._updateDetailsCellHeight = (row) => {\n if (!row) return;\n origUpdateDetailsCellHeight.call(this.baseElement, row);\n };\n\n this.baseElement.rowDetailsRenderer = this.#rowDetailsRenderer.bind(this);\n }\n\n // this renders the details panel content\n // in order to open it, the descope-grid-item-details-column should be used\n #rowDetailsRenderer = async (cell, _col, model) => {\n // prevent details panel from being scrolled into view when clicked\n cell.addEventListener('mousedown', (e) => e.stopImmediatePropagation(), true);\n\n const template = this.getRowDetailsTemplate(model.item);\n\n cell.innerHTML = '';\n cell.append(template.content.cloneNode(true));\n };\n\n getRowDetailsTemplate(item) {\n const itemLabelsMapping = this.#columns.reduce(\n (acc, { path, header }) => (!path || !header ? acc : { ...acc, [path]: header }),\n {}\n );\n const template =\n this.rowDetailsRenderer?.(item, itemLabelsMapping) ??\n defaultRowDetailsRenderer(item, itemLabelsMapping);\n\n switch (true) {\n case template instanceof HTMLTemplateElement:\n return template;\n case typeof template === 'string':\n return Object.assign(document.createElement('template'), { innerHTML: template });\n default:\n throw new Error('rowDetailsRenderer should return a string or a template');\n }\n }\n\n forwardSelectedItemsChange() {\n this.baseElement.addEventListener('selected-items-changed', (e) => {\n this.dispatchEvent(\n new CustomEvent('selected-items-changed', {\n bubbles: true,\n composed: true,\n detail: e.detail,\n })\n );\n });\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (attrName === 'columns') {\n this.setColumnsDataFromAttr();\n }\n }\n\n handleColumns() {\n if (this.columnsAttr) {\n this.setColumnsDataFromAttr();\n } else if (this.children.length) {\n this.setColumnsFromChildren();\n }\n }\n\n setColumnsFromChildren() {\n this.#columns = Array.from(this.children).map((child) => ({\n path: child.getAttribute('path'),\n header: child.getAttribute('header'),\n type: child.localName.match('^descope-grid-(\\\\w+)-column$')?.[1] || 'text',\n\n attrs: ['frozen', 'resizable', 'auto-width', 'status'].reduce((acc, attrName) => {\n const attrVal = child.getAttribute(attrName);\n\n if (attrVal) {\n acc[attrName] = attrVal;\n }\n\n return acc;\n }, {}),\n }));\n }\n\n get columnsAttr() {\n return this.getAttribute('columns');\n }\n\n setColumnsDataFromAttr() {\n try {\n const data = JSON.parse(this.columnsAttr);\n if (isValidDataType(data)) {\n this.columns = data;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"columns\" -', e.message);\n }\n }\n\n #renderColumn = ({ path, header, type, attrs }) => {\n const colAttrs = Object.entries(attrs)\n .map(([key, value]) => `${key}=\"${value}\"`)\n .join(' ');\n\n const tagName = `descope-grid-${type}-column`;\n\n return `<${tagName} header=\"${header}\" path=\"${path}\" ${colAttrs}></${tagName}>`;\n };\n\n get renderColumn() {\n return this.#renderColumn;\n }\n\n set renderColumn(renderFn) {\n this.#renderColumn = renderFn;\n this.renderColumns();\n }\n\n getColumnsTemplate() {\n return this.#columns?.reduce?.(\n (acc, item) => acc + (this.renderColumn?.(item || {}) || ''),\n ''\n );\n }\n\n // there is an issue in vaadin-grid, when rowDetailsRenderer is set, it renders an empty details panel\n reassignRowDetailsRenderer() {\n this.baseElement.rowDetailsRenderer = null;\n setTimeout(() => {\n this.baseElement.rowDetailsRenderer = this.#rowDetailsRenderer.bind(this);\n }, 0);\n }\n\n renderColumns() {\n const template = this.getColumnsTemplate();\n if (template) {\n this.reassignRowDetailsRenderer();\n this.innerHTML = template;\n }\n }\n\n get grid() {\n return this.shadowRoot.querySelector('vaadin-grid');\n }\n\n get data() {\n return this.grid.items;\n }\n\n set data(data) {\n if (isValidDataType(data) && this.grid.items !== data) {\n this.grid.items = data;\n\n if (this.grid.selectedItems) {\n const itemsIds = new Set(\n this.grid.items.map((item) => item[this.uniqueColumnId] ?? item)\n );\n\n const newSelectedItems = this.grid.selectedItems.filter((selectedItem) =>\n itemsIds.has(selectedItem[this.uniqueColumnId] ?? selectedItem)\n );\n\n // we want to update the selected items only if there is a reason,\n // to prevent redundant notifications\n if (this.grid.selectedItems.length !== newSelectedItems.length) {\n this.grid.selectedItems = newSelectedItems;\n }\n }\n }\n }\n\n get columns() {\n return this.#columns;\n }\n\n set columns(data) {\n this.#columns = data;\n this.renderColumns();\n }\n\n get paths() {\n return this.columns.map((col) => col.path);\n }\n\n get uniqueColumnId() {\n return this.getAttribute('unique-column-id');\n }\n };\n\nconst {\n host,\n headerRow,\n headerRowCell,\n contentRow,\n firstRow,\n sortIndicators,\n activeSortIndicator,\n selectedRow,\n rowSeparator,\n resizeHandle,\n toggleDetailsPanelButton,\n toggleDetailsPanelButtonOpened,\n toggleDetailsPanelButtonClosed,\n detailsPanel,\n detailsPanelLabels,\n selectedRowCell,\n detailsPanelContent,\n} = {\n host: { selector: () => 'vaadin-grid' },\n headerRow: { selector: () => '::part(header-cell)' },\n headerRowCell: { selector: () => 'vaadin-grid::part(header-cell)' },\n contentRow: { selector: () => '::part(cell)' },\n firstRow: { selector: () => '::part(first-header-row-cell)' },\n selectedRow: { selector: () => '::part(selected-row)' },\n selectedRowCell: { selector: () => '::part(selected-row-cell)' },\n sortIndicators: { selector: () => 'vaadin-grid-sorter::part(indicators)' },\n activeSortIndicator: { selector: () => 'vaadin-grid-sorter[direction]' },\n rowSeparator: { selector: () => 'vaadin-grid::part(body-cell)' },\n resizeHandle: { selector: () => '::part(resize-handle)' },\n toggleDetailsPanelButton: { selector: () => 'vaadin-grid vaadin-icon.toggle-details-button' },\n toggleDetailsPanelButtonOpened: {\n selector: () => 'vaadin-grid vaadin-icon.toggle-details-button.opened',\n },\n toggleDetailsPanelButtonClosed: {\n selector: () => 'vaadin-grid vaadin-icon.toggle-details-button.closed',\n },\n detailsPanel: { selector: () => 'vaadin-grid::part(details-cell)' },\n detailsPanelLabels: { selector: () => 'vaadin-grid .row-details__label' },\n detailsPanelContent: { selector: () => 'vaadin-grid .row-details' },\n};\n\nexport const GridClass = compose(\n createStyleMixin({ componentNameOverride: getComponentName('input-wrapper') }),\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n hostHeight: { selector: () => ':host', property: 'height' },\n hostMinHeight: { selector: () => ':host', property: 'min-height' },\n fontFamily: [{ ...headerRow }, { ...contentRow }],\n fontSize: [{ ...headerRow }, { ...contentRow }],\n fontWeight: { ...contentRow },\n valueTextColor: { ...contentRow, property: 'color' },\n backgroundColor: [\n { ...host, property: 'background-color' },\n { ...contentRow, property: 'background-color' },\n ],\n sortIndicatorsColor: { ...sortIndicators, property: 'color' },\n activeSortIndicator: { ...activeSortIndicator, property: 'color' },\n borderColor: { ...host, property: 'border-color' },\n borderWidth: { ...host, property: 'border-width' },\n borderStyle: { ...host, property: 'border-style' },\n borderRadius: { ...host, property: 'border-radius' },\n selectedBackgroundColor: [\n { ...selectedRow, property: 'background-color' },\n { ...selectedRowCell, property: 'background-color' },\n ],\n headerRowTextColor: { ...headerRowCell, property: 'color' },\n separatorColor: [\n { ...firstRow, property: 'border-bottom-color' },\n { ...rowSeparator, property: 'border-top-color' },\n ],\n resizeHandleColor: { ...resizeHandle, property: 'background-color' },\n hostDirection: { ...host, property: 'direction', fallback: 'ltr' },\n toggleDetailsPanelButtonSize: [\n { ...toggleDetailsPanelButton, property: 'width' },\n { ...toggleDetailsPanelButton, property: 'height' },\n ],\n toggleDetailsPanelButtonOpenedColor: { ...toggleDetailsPanelButtonOpened, property: 'color' },\n toggleDetailsPanelButtonClosedColor: { ...toggleDetailsPanelButtonClosed, property: 'color' },\n toggleDetailsPanelButtonCursor: { ...toggleDetailsPanelButton, property: 'cursor' },\n detailsPanelBackgroundColor: { ...detailsPanel, property: 'background-color' },\n detailsPanelBorderTopColor: { ...detailsPanel, property: 'border-top-color' },\n detailsPanelLabelsColor: { ...detailsPanelLabels, property: 'color' },\n detailsPanelLabelsFontSize: { ...detailsPanelLabels, property: 'font-size' },\n detailsPanelItemsGap: { ...detailsPanelContent, property: 'grid-gap' },\n detailsPanelPadding: { ...detailsPanelContent, property: 'padding' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n GridMixin\n)(\n createProxy({\n delegatesFocus: false,\n slots: [''],\n wrappedEleName: 'vaadin-grid',\n style: () => `\n /*css*/\n vaadin-grid {\n overflow: hidden;\n height: 100%;\n min-height: 300px;\n }\n vaadin-grid-cell-content {\n display: flex;\n }\n vaadin-grid::part(selected-row-cell) {\n background-image: none;\n box-shadow: none;\n background-color: inherit;\n }\n vaadin-grid::part(details-cell) {\n border-top-style: dashed;\n border-top-width: 1px;\n }\n vaadin-grid .row-details {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(max(200px, calc(100%/4 - var(${GridClass.cssVarList.detailsPanelItemsGap}))), 1fr));\n width: 100%;\n }\n vaadin-grid .row-details__item:has(.row-details__value.code) {\n grid-column: 1 / -1;\n order: 2;\n }\n vaadin-grid .row-details__value.text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: pre;\n }\n vaadin-grid .row-details__value.code {\n margin-top: 5px;\n max-height: 120px;\n overflow: scroll;\n font-size: 0.85em;\n }\n vaadin-grid vaadin-icon.toggle-details-button {\n margin: auto;\n }\n /*!css*/\n\t\t`,\n excludeAttrsSync: ['columns', 'tabindex', 'style'],\n componentName,\n })\n);\n","import '@vaadin/grid';\nimport './descope-grid-text-column';\nimport './descope-grid-custom-column';\nimport './descope-grid-selection-column';\nimport './descope-grid-item-details-column';\nimport '../descope-code-snippet'; // this is needed for the details panel\n\nimport { componentName, GridClass } from './GridClass';\n\ncustomElements.define(componentName, GridClass);\n\nexport { GridClass, componentName };\n"],"names":["componentName","CodeSnippet","createBaseClass","baseSelector","observedAttributes","constructor","super","this","attachShadow","mode","innerHTML","init","lang","getAttribute","isInline","bind","contentNode","shadowRoot","querySelector","attributeChangedCallback","attrName","oldValue","newValue","sanitized","input","txt","document","createElement","value","decode","textContent","language","highlighted","highlight","root","docTag","keyword","metaKeyword","templateTag","templateVariable","type","variableLanguage","title","titleClass","titleClassInherited","titleFunction","attr","attribute","literal","meta","number","operator","variable","selectorAttr","selectorClass","selectorId","regexp","string","metaString","builtIn","symbol","comment","code","formula","name","quote","selectorTag","selectorPseudo","subst","section","bullet","emphasis","strong","addition","deletion","charEscape","link","params","property","punctuation","tag","selector","CodeSnippetClass","mappings","rootBgColor","rootTextColor","docTagTextColor","keywordTextColor","metaKeywordTextColor","templateTagTextColor","templateVariableTextColor","typeTextColor","variableLanguageTextColor","titleTextColor","titleClassTextColor","titleClassInheritedTextColor","titleFunctionTextColor","attrTextColor","attributeTextColor","literalTextColor","metaTextColor","numberTextColor","operatorTextColor","variableTextColor","selectorAttrTextColor","selectorClassTextColor","selectorIdTextColor","regexpTextColor","stringTextColor","metaStringTextColor","builtInTextColor","symbolTextColor","commentTextColor","codeTextColor","formulaTextColor","nameTextColor","quoteTextColor","selectorTagTextColor","selectorPseudoTextColor","substTextColor","sectionTextColor","bulletTextColor","emphasisTextColor","strongTextColor","additionTextColor","additionBgColor","deletionTextColor","deletionBgColor","charEscapeTextColor","linkTextColor","paramsTextColor","propertyTextColor","punctuationTextColor","tagTextColor","customElements","define","GridCustomColumnClass","GridTextColumnClass","_defaultRenderer","cell","_col","model","content","item","path","contentEle","Array","from","children","find","child","pattern","RegExp","test","__setTextContent","newEle","cloneNode","append","GridItemDetailsColumnClass","sortable","grid","_gridValue","itemIdx","detailsOpenedItems","indexOf","isOpened","toggleIcon","icon","classList","add","onclick","toSpliced","_defaultHeaderRenderer","_column","__getHeader","header","createCheckboxEle","checkbox","setAttribute","getIsAllItemsSelected","items","length","selectedItems","GridSelectionColumnClass","_onHeaderRendererOrBindingChanged","_headerRenderer","parentNode","addEventListener","isAllItemsSelected","appendChild","col","onchange","checked","selectItem","deselectItem","selected","data","isArray","join","isValidDataType","isValid","console","error","escapeXML","s","dom","getValueType","Object","isPlainObject","renderCodeSnippet","renderText","text","renderJson","JSON","stringify","host","headerRow","headerRowCell","contentRow","firstRow","sortIndicators","activeSortIndicator","selectedRow","rowSeparator","resizeHandle","toggleDetailsPanelButton","toggleDetailsPanelButtonOpened","toggleDetailsPanelButtonClosed","detailsPanel","detailsPanelLabels","selectedRowCell","detailsPanelContent","GridClass","componentNameOverride","hostWidth","hostHeight","hostMinHeight","fontFamily","fontSize","fontWeight","valueTextColor","backgroundColor","sortIndicatorsColor","borderColor","borderWidth","borderStyle","borderRadius","selectedBackgroundColor","headerRowTextColor","separatorColor","resizeHandleColor","hostDirection","fallback","toggleDetailsPanelButtonSize","toggleDetailsPanelButtonOpenedColor","toggleDetailsPanelButtonClosedColor","toggleDetailsPanelButtonCursor","detailsPanelBackgroundColor","detailsPanelBorderTopColor","detailsPanelLabelsColor","detailsPanelLabelsFontSize","detailsPanelItemsGap","detailsPanelPadding","superclass","handleColumns","forwardSelectedItemsChange","baseElement","_mapSorters","origUpdateDetailsCellHeight","_updateDetailsCellHeight","row","call","rowDetailsRenderer","async","e","stopImmediatePropagation","template","getRowDetailsTemplate","itemLabelsMapping","reduce","acc","entries","map","key","valueType","renderXml","some","v","defaultRowDetailsValueRenderer","defaultRowDetailsRenderer","HTMLTemplateElement","assign","Error","dispatchEvent","CustomEvent","bubbles","composed","detail","setColumnsDataFromAttr","columnsAttr","setColumnsFromChildren","localName","match","attrs","attrVal","parse","columns","message","tagName","renderColumn","renderFn","renderColumns","getColumnsTemplate","reassignRowDetailsRenderer","setTimeout","itemsIds","Set","uniqueColumnId","newSelectedItems","filter","selectedItem","has","paths","delegatesFocus","slots","wrappedEleName","style","cssVarList","excludeAttrsSync"],"sourceRoot":""}
|