@descope/web-components-ui 1.34.0 → 1.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/cjs/index.cjs.js +3796 -3778
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +695 -678
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/umd/1519.js +1 -1
  6. package/dist/umd/1519.js.map +1 -1
  7. package/dist/umd/2672.js +1 -1
  8. package/dist/umd/2672.js.map +1 -1
  9. package/dist/umd/6424.js +1 -1
  10. package/dist/umd/6424.js.map +1 -1
  11. package/dist/umd/DescopeDev.js +1 -1
  12. package/dist/umd/DescopeDev.js.map +1 -1
  13. package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js +1 -1
  14. package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js.map +1 -1
  15. package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js +1 -1
  16. package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js.map +1 -1
  17. package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js +1 -1
  18. package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js.map +1 -1
  19. package/dist/umd/{descope-button-index-js.js → descope-button.js} +3 -3
  20. package/dist/umd/descope-button.js.map +1 -0
  21. package/dist/umd/descope-date-field-descope-calendar-index-js.js +1 -1
  22. package/dist/umd/descope-date-field-descope-calendar-index-js.js.map +1 -1
  23. package/dist/umd/descope-icon.js +2 -0
  24. package/dist/umd/descope-icon.js.map +1 -0
  25. package/dist/umd/descope-third-party-app-logo-index-js.js +1 -1
  26. package/dist/umd/descope-third-party-app-logo-index-js.js.map +1 -1
  27. package/dist/umd/descope-upload-file-index-js.js +1 -1
  28. package/dist/umd/descope-upload-file-index-js.js.map +1 -1
  29. package/dist/umd/descope-user-attribute-index-js.js +1 -1
  30. package/dist/umd/descope-user-attribute-index-js.js.map +1 -1
  31. package/dist/umd/descope-user-auth-method-index-js.js +1 -1
  32. package/dist/umd/descope-user-auth-method-index-js.js.map +1 -1
  33. package/dist/umd/index.js +1 -1
  34. package/dist/umd/index.js.map +1 -1
  35. package/dist/umd/mapping-fields-descope-mappings-field-index-js.js +1 -1
  36. package/dist/umd/mapping-fields-descope-mappings-field-index-js.js.map +1 -1
  37. package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js +1 -1
  38. package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js.map +1 -1
  39. package/package.json +3 -3
  40. package/src/components/button-selection-group-fields/descope-button-selection-group-item/ButtonSelectionGroupItemClass.js +1 -1
  41. package/src/components/button-selection-group-fields/descope-button-selection-group-item/index.js +1 -1
  42. package/src/components/descope-date-field/descope-calendar/CalendarClass.js +1 -1
  43. package/src/components/descope-date-field/descope-calendar/index.js +1 -1
  44. package/src/components/descope-third-party-app-logo/ThirdPartyAppLogoClass.js +1 -1
  45. package/src/components/descope-third-party-app-logo/index.js +1 -1
  46. package/src/components/descope-upload-file/UploadFileClass.js +1 -1
  47. package/src/components/descope-upload-file/index.js +1 -1
  48. package/src/components/descope-user-attribute/UserAttributeClass.js +1 -1
  49. package/src/components/descope-user-attribute/index.js +1 -1
  50. package/src/components/descope-user-auth-method/UserAuthMethodClass.js +2 -2
  51. package/src/components/descope-user-auth-method/index.js +1 -1
  52. package/src/components/mapping-fields/descope-mappings-field/index.js +1 -1
  53. package/src/index.cjs.js +0 -1
  54. package/src/index.js +0 -2
  55. package/src/theme/components/index.js +2 -2
  56. package/dist/umd/descope-button-index-js.js.map +0 -1
  57. package/dist/umd/descope-icon-index-js.js +0 -2
  58. package/dist/umd/descope-icon-index-js.js.map +0 -1
  59. package/src/components/descope-button/ButtonClass.js +0 -163
  60. package/src/components/descope-button/clickableMixin.js +0 -10
  61. package/src/components/descope-button/index.js +0 -6
  62. package/src/components/descope-icon/IconClass.js +0 -98
  63. package/src/components/descope-icon/helpers.js +0 -51
  64. package/src/components/descope-icon/index.js +0 -5
  65. package/src/theme/components/button.js +0 -133
  66. package/src/theme/components/icon.js +0 -7
  67. /package/dist/umd/{descope-button-index-js.js.LICENSE.txt → descope-button.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[2230,2294,6832,7095,9522,9708],{66434:(t,e,n)=>{n.d(e,{T:()=>s,s:()=>p});var i=n(88961),r=n(63200),o=n(25964),a=n(72270);const s=(0,o.xE)("text");class l extends((0,a.qu)({componentName:s,baseSelector:":host > slot"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <slot part="text-wrapper"></slot>\n ',(0,o.fz)("\n :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n ",this)}get hideWhenEmpty(){return"true"===this.getAttribute("hide-when-empty")}init(){super.init(),(0,o.Ge)(this,(()=>{const t=!!this.childNodes.length;this.style.display=!t&&this.hideWhenEmpty?"none":""}))}}const p=(0,r.Zz)((0,i.RF)({mappings:{hostWidth:{selector:()=>":host",property:"width"},hostDirection:{selector:()=>":host",property:"direction"},fontSize:{},textColor:{property:"color"},textLineHeight:{property:"line-height"},textLetterSpacing:{property:"letter-spacing"},textShadow:{},textAlign:{},textTransform:{},fontFamily:{},fontStyle:{},fontWeight:{},borderWidth:{},borderStyle:{},borderColor:{}}}),i.VO,i.tQ)(l)},63595:(t,e,n)=>{n.r(e),n.d(e,{TextClass:()=>i.s,componentName:()=>i.T});var i=n(66434);customElements.define(i.T,i.s)},3393:(t,e,n)=>{n.d(e,{y:()=>a});var i=n(9696),r=n(79365),o=n(81365);const a=(...t)=>(0,i.Zz)(r.XX,r._$,r.yF,r.jd)((0,o.q)(...t))},88068:(t,e,n)=>{n.d(e,{J:()=>h,T:()=>l});var i=n(9696),r=n(97810),o=n(79365),a=n(20618),s=n(12011);const l=(0,r.xE)("button"),{host:p,label:d,slottedIcon:c}={host:{selector:()=>":host"},label:{selector:"::part(label)"},slottedIcon:{selector:()=>"::slotted(descope-icon)"}};let u;const h=(0,i.Zz)((0,o.RF)({mappings:{hostWidth:{property:"width"},hostHeight:{property:"height"},hostDirection:{...p,property:"direction"},fontSize:{},fontFamily:{},cursor:{},backgroundColor:{},outlineOffset:{},outlineColor:{},outlineStyle:{},outlineWidth:{},borderRadius:{},borderColor:{},borderStyle:{},borderWidth:{},verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-right",fallback:"0.875em"},{property:"padding-left",fallback:"0.875em"}],labelTextColor:{property:"color"},iconColor:{selector:()=>"::slotted(*)",property:a.S.cssVarList.fill},labelTextDecoration:{...d,property:"text-decoration"},labelSpacing:{...d,property:"gap"},textAlign:{...d,property:"justify-content",fallback:"center"},iconSize:[{...c,property:"width"},{...c,property:"height"}]}}),s.G,o.VO,o.tQ)((0,o.tz)({slots:["","prefix","label","suffix"],wrappedEleName:"vaadin-button",style:()=>`\n\t\t\t\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n\n\t\t\t\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t\t\t${u}\n\t\t\tvaadin-button::part(label) { pointer-events: none; }\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${h.cssVarList.outlineWidth}) + var(${h.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width="true"]) {\n width: var(${h.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${h.cssVarList.hostHeight}) - var(${h.cssVarList.outlineWidth}) - var(${h.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square="true"]:not([full-width="true"]) {\n\t\t\t\twidth: calc(var(${h.cssVarList.hostWidth}) - var(${h.cssVarList.outlineWidth}) - var(${h.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,excludeAttrsSync:["tabindex"],componentName:l})),{color:b,fontSize:g}=h.cssVarList;u=`\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading="true"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${b});\n\t\ttop: calc(50% - (var(${g}) / 2));\n\t\tleft: calc(50% - (var(${g}) / 2));\n\t\tborder-width: calc(var(${g}) / 10);\n\t\twidth: var(${g});\n\t\theight: var(${g});\n\t}\n\t:host([disabled="true"]),\n\t:host([loading="true"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading="true"])::part(prefix),\n\t:host([loading="true"])::part(label) {\n\t\tvisibility: hidden;\n\t}\n`},12011:(t,e,n)=>{n.d(e,{G:()=>i});const i=t=>class extends t{get isLoading(){return"true"===this.getAttribute("loading")}click(){this.isLoading||super.click()}}},85076:(t,e,n)=>{n.r(e),n.d(e,{ButtonClass:()=>i.J,componentName:()=>i.T}),n(83799);var i=n(88068);customElements.define(i.T,i.J)},20618:(t,e,n)=>{n.d(e,{S:()=>c,T:()=>p});var i=n(79365),r=n(81365),o=n(9696),a=n(97810),s=n(28796),l=n(25964);const p=(0,a.xE)("icon");class d extends((0,r.q)({componentName:p,baseSelector:"slot"})){static get observedAttributes(){return["src"]}#t;constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n\t\t<slot></slot>\n\t",(0,l.fz)("\n\t\t\t:host > slot {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n ",this)}init(){super.init?.(),this.toggleVisibility(this.src)}toggleVisibility(t){this.style.display=t?"":"none"}get src(){return this.getAttribute("src")}updateFillColor(t){[t,...t.querySelectorAll("*[fill]")].forEach((t=>{t.setAttribute("fill",`var(${c.cssVarList.fill}, ${t.getAttribute("fill")||"''"})`)}))}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),e!==n&&"src"===t&&(this.toggleVisibility(n),(0,s.w)(this.src).then((t=>{if(this.innerHTML="",t){const e=t.cloneNode(!0);this.updateFillColor(e),this.appendChild(e)}})))}}const c=(0,o.Zz)((0,i.RF)({mappings:{fill:{}}}),i.VO,i.tQ)(d)},28796:(t,e,n)=>{n.d(e,{w:()=>o});var i=n(25414);const r=t=>{const e=i.A.sanitize(t,{USE_PROFILES:{svg:!0,svgFilters:!0}});return(new DOMParser).parseFromString(e,"image/svg+xml").querySelector("svg")},o=async t=>{try{let e;if((t=>t.startsWith("data:image/svg+xml;base64,"))(t)){const n=atob(t.slice(26));e=r(n)}else if("svg"===(t=>{const e=t.match(/\.([0-9a-z]+)(?:[\\?#]|$)/i);return e?e[1]:null})(t)){const n=await fetch(t),i=await n.text();e=r(i)}else e=(t=>{const e=document.createElement("img");return e.setAttribute("src",t),e})(t);return e.style.setProperty("max-width","100%"),e.style.setProperty("max-height","100%"),e}catch{return null}}},79275:(t,e,n)=>{n.d(e,{T:()=>l,w:()=>d});var i=n(79365),r=n(6424),o=n(9696),a=n(97810),s=n(73551);const l=(0,a.xE)("text-field"),p=["type","label-type","copy-to-clipboard"],d=(0,o.Zz)((0,i.RF)({mappings:r.A}),i.VO,(0,i.OZ)({proxyProps:["value","selectionStart"],useProxyTargets:!0}),i.tQ,(t=>class extends t{static get observedAttributes(){return p.concat(t.observedAttributes||[])}icon;init(){super.init?.()}renderCopyToClipboard(t){if(!t)return void this.icon?.remove();const e={icon:"vaadin:copy-o",title:"Copy",style:"cursor: pointer"},n={icon:"vaadin:check-circle-o",title:"Copied",style:"cursor: initial"};this.icon=Object.assign(document.createElement("vaadin-icon"),{slot:"suffix",...e}),this.baseElement.appendChild(this.icon),this.icon.addEventListener("click",(()=>{navigator.clipboard.writeText(this.value),Object.assign(this.icon,n),setTimeout((()=>{Object.assign(this.icon,e)}),5e3)}))}onLabelClick(){this.focus()}attributeChangedCallback(t,e,n){super.attributeChangeCallback?.(t,e,n),"type"===t&&this.baseElement._setType(n),e!==n&&("label-type"===t?"floating"===n?this.addEventListener("click",this.onLabelClick):this.removeEventListener("click",this.onLabelClick):"copy-to-clipboard"===t&&this.renderCopyToClipboard("true"===n))}}))((0,i.tz)({slots:["prefix","suffix"],wrappedEleName:"vaadin-text-field",style:()=>`\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tpadding: calc(var(${d.cssVarList.inputOutlineWidth}) + var(${d.cssVarList.inputOutlineOffset}));\n box-sizing: border-box;\n\t\t\t}\n :host(:is([readonly], [disabled])) ::slotted(:is(input, textarea):placeholder-shown) {\n opacity: 1;\n }\n\n vaadin-text-field[label-type="floating"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-text-field[label-type="floating"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n ${(0,s.$J)("vaadin-text-field")}\n\t\t\t${(0,s.cy)(d.cssVarList)}\n\t\t\t${(0,s.LJ)("vaadin-text-field",d.cssVarList)}\n ${(0,s.Kl)()}\n\n vaadin-text-field vaadin-icon {\n align-self: center;\n }\n\t\t`,excludeAttrsSync:["tabindex","style"],componentName:l}))},21374:(t,e,n)=>{n.r(e),n.d(e,{TextFieldClass:()=>i.w,componentName:()=>i.T}),n(11284),n(37182),n(95260);var i=n(79275);customElements.define(i.T,i.w)},6424:(t,e,n)=>{n.d(e,{A:()=>f});const{host:i,label:r,placeholder:o,requiredIndicator:a,inputField:s,input:l,inputMask:p,helperText:d,errorMessage:c,disabledPlaceholder:u,inputDisabled:h,inputIcon:b,externalInput:g,externalInputDisabled:m,externalPlaceholder:y,externalDisabledPlaceholder:v}={host:{selector:()=>":host"},label:{selector:"::part(label)"},requiredIndicator:{selector:"[required]::part(required-indicator)::after"},placeholder:[{selector:"> input:placeholder-shown"},{selector:()=>":host::slotted(input:placeholder-shown)"}],disabledPlaceholder:{selector:"> input:disabled::placeholder"},inputField:{selector:"::part(input-field)"},input:{selector:"input"},inputMask:{selector:"::part(input-field)::before"},inputDisabled:{selector:"input:disabled"},helperText:{selector:"::part(helper-text)"},errorMessage:{selector:"::part(error-message)"},inputIcon:{selector:"vaadin-icon"},externalInput:{selector:()=>"::slotted(input)"},externalInputDisabled:{selector:()=>"::slotted(input:disabled)"},externalPlaceholder:{selector:()=>"::slotted(input:placeholder-shown)"},externalDisabledPlaceholder:{selector:()=>"::slotted(input:disabled::placeholder)"}},f={fontSize:[{},i],fontFamily:[r,s,d,c],labelFontSize:{...r,property:"font-size"},labelFontWeight:{...r,property:"font-weight"},labelTextColor:[{...r,property:"color"},{...a,property:"color"},{...r,property:"-webkit-text-fill-color"},{...a,property:"-webkit-text-fill-color"}],hostWidth:{...i,property:"width"},hostMinWidth:{...i,property:"min-width"},hostDirection:{...i,property:"direction"},inputDirection:{...l,property:"direction"},inputBackgroundColor:[{...s,property:"background-color"},{...p,property:"background-color"}],errorMessageTextColor:{...c,property:"color"},errorMessageIcon:{...c,property:"background-image"},errorMessageIconSize:{...c,property:"background-size"},errorMessageIconPadding:{...c,property:"padding-inline-start"},errorMessageIconRepeat:{...c,property:"background-repeat"},errorMessageIconPosition:{...c,property:"background-position"},helperTextColor:{...d,property:"-webkit-text-fill-color"},inputValueTextColor:[{...s,property:"color"},{...h,property:"-webkit-text-fill-color"},{...m,property:"-webkit-text-fill-color"}],inputCaretTextColor:[{...l,property:"caret-color"},{...g,property:"caret-color"}],labelRequiredIndicator:{...a,property:"content"},inputBorderColor:{...s,property:"border-color"},inputBorderWidth:{...s,property:"border-width"},inputBorderStyle:{...s,property:"border-style"},inputBorderRadius:{...s,property:"border-radius"},inputHeight:{...s,property:"height"},inputHorizontalPadding:[{...l,property:"padding-left"},{...l,property:"padding-right"},{...g,property:"padding-left"},{...g,property:"padding-right"}],inputOutlineColor:{...s,property:"outline-color"},inputOutlineStyle:{...s,property:"outline-style"},inputOutlineWidth:{...s,property:"outline-width"},inputOutlineOffset:{...s,property:"outline-offset"},textAlign:{},inputTextAlign:[{...l,property:"text-align"},{...g,property:"text-align"}],inputPlaceholderColor:[{selector:()=>":host input:placeholder-shown",property:"color"},{...y,property:"color"},{...o,property:"color"},{...u,property:"-webkit-text-fill-color"},{...v,property:"-webkit-text-fill-color"}],labelPosition:{...r,property:"position"},labelTopPosition:{...r,property:"top"},labelHorizontalPosition:[{...r,property:"left"},{...r,property:"right"}],inputTransformY:{...r,property:"transform"},inputTransition:{...r,property:"transition"},marginInlineStart:{...r,property:"margin-inline-start"},placeholderOpacity:[{selector:"> input:placeholder-shown",property:"opacity"},{...y,property:"opacity"}],inputVerticalAlignment:[{...s,property:"align-items"},{...g,property:"align-items"}],valueInputHeight:[{...l,property:"height"},{...g,property:"height"}],valueInputMarginBottom:[{...l,property:"margin-bottom"},{...g,property:"margin-bottom"}],inputIconOffset:[{...b,property:"margin-right"},{...b,property:"margin-left"}],inputIconSize:{...b,property:"font-size"},inputIconColor:{...b,property:"color"}}},29172:(t,e,n)=>{var i=n(25964),r=n(3393),o=n(97810);const a=(0,o.xE)("mapping-item"),s=["size","bordered","readonly","full-width","disabled","st-error-message-icon","st-error-message-icon-size","st-error-message-icon-padding"],l=(0,r.y)({componentName:a,baseSelector:"div"});customElements.define(a,class extends l{static get observedAttributes(){return[].concat(l.observedAttributes||[],s,["separator","options","invalid","disabled"])}get separator(){return this.getAttribute("separator")||"map to"}get value(){const t=this.attributeInput.value,e=this.valueInput.value;return t&&e?{[t]:e}:null}set value(t){if(1!==Object.entries(t).length)return void console.error("descope-mapping item expected expects only one key-value pair in the value but received: ",t);const[e,n]=Object.entries(t)[0];this.valueInput.value=n,this.attributeInput.value=e,this.dispatchEvent(new InputEvent("input",{bubbles:!0,composed:!0}))}constructor(){super(),this.attachShadow({mode:"open"}).innerHTML=`\n <div class="wrapper" part="wrapper">\n <descope-text-field required="true"></descope-text-field>\n <div class="separator" part="separator">${this.separator}</div>\n <descope-combo-box\n item-label-path="data-name"\n item-value-path="data-id"\n required="true"\n >\n </descope-combo-box>\n <descope-button variant="link" mode="primary">\n <vaadin-icon icon="vaadin:minus"></vaadin-icon>\n </descope-button>\n </div>\n\t`,(0,i.fz)("\n .wrapper {\n display: flex;\n }\n .separator {\n text-align: center;\n flex-shrink: 0;\n }\n ",this),this.valueInput=this.shadowRoot.querySelector("descope-text-field"),this.attributeInput=this.shadowRoot.querySelector("descope-combo-box"),this.inputs=[this.valueInput,this.attributeInput],this.removeButton=this.shadowRoot.querySelector("descope-button"),(0,o.EA)(this,this.valueInput,{includeAttrs:s}),(0,o.EA)(this,this.attributeInput,{includeAttrs:[...s,"options"],mapAttrs:{options:"data"}}),(0,o.EA)(this,this.removeButton,{includeAttrs:["disabled"]})}initRemoveButton(){this.removeButton.addEventListener("click",(()=>this.dispatchEvent(new CustomEvent("mapping-item-removed",{bubbles:!0,composed:!0}))))}init(){super.init?.(),this.initRemoveButton()}getValidity(){const t=this.attributeInput.value,e=this.valueInput.value;return t&&e?{}:{badInput:!0}}reportValidity(){this.inputs.forEach((t=>t.reportValidity()))}focus(){(this.checkValidity()||!this.valueInput.checkValidity()?this.valueInput:this.attributeInput).focus()}handleSeparatorChange(){this.shadowRoot.querySelector(".separator").textContent=this.separator}#e(t){"true"===t&&(this.valueInput.value||(this.valueInput.setAttribute("invalid","true"),this.valueInput.setAttribute("error-message",this.defaultErrorMsgValueMissing)),this.attributeInput.value||(this.attributeInput.setAttribute("invalid","true"),this.attributeInput.setAttribute("error-message",this.defaultErrorMsgValueMissing)))}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),"separator"===t&&this.handleSeparatorChange(),"invalid"===t&&this.#e(n)}})},1428:(t,e,n)=>{n.d(e,{A:()=>s,T:()=>o});var i=n(3393),r=n(97810);const o=(0,r.xE)("mappings-field-internal"),a=(0,i.y)({componentName:o,baseSelector:"div"}),s=class extends a{#n;static get observedAttributes(){return[].concat(a.observedAttributes||[],["label-value","label-attr","button-label","invalid","readonly","disabled","st-error-message-icon","st-error-message-icon-size","st-error-message-icon-padding"])}isValidDataType(t){try{return t.every((t=>"object"==typeof t&&!Array.isArray(t)&&1===Object.getOwnPropertyNames(t).length&&"string"==typeof t[Object.keys(t)[0]]&&""!==t[Object.keys(t)[0]].trim()))}catch(t){return!1}}get labelValue(){return this.getAttribute("label-value")||"Value"}get labelAttr(){return this.getAttribute("label-attr")||"Attribute"}get buttonLabel(){return this.getAttribute("button-label")||"Add mapping"}get options(){return this.getAttribute("options")||[]}addNewMappingItem(t){const e=document.createElement("descope-mapping-item");return e.setAttribute("bordered","true"),this.mappingsContainerEle.appendChild(e),(0,r.EA)(this,e,{includeAttrs:["size","full-width","separator","options","disabled","st-error-message-icon","st-error-message-icon-size","st-error-message-icon-padding"]}),setTimeout((()=>{this.setCustomValidity(""),e.addEventListener("mapping-item-removed",(()=>{e===this.#n&&(this.resetInvalidIndication(),this.#n=void 0),e.remove(),this.setCustomValidity("")})),this.dispatchEvent(new CustomEvent("mapping-item-added",{bubbles:!0,composed:!0})),t&&e.focus()}),0),e}get items(){return Array.from(this.mappingsContainerEle.querySelectorAll("descope-mapping-item"))}get value(){return this.items.reduce(((t,e)=>e.value?[...t,e.value]:t),[])}set value(t){if(!this.isValidDataType(t))return void console.error("received invalid value to set - should be an array of objects with one key-value pair");const e=this.items;if(e.length>t.length)for(let n=t.length;n<e.length;n++)this.mappingsContainerEle.removeChild(e[n]);t.forEach(((t,n)=>{const i=e[n];if(i)i.value=t;else{const e=this.addNewMappingItem(!1);setTimeout((()=>{e.value=t}),0)}}))}constructor(){super(),this.innerHTML='\n <div class="labels-container" part="labels"></div>\n <div class="mappings-container"></div>\n <div class="button-container"></div>\n ',this.labelsEle=this.querySelector(".labels-container"),this.mappingsContainerEle=this.querySelector(".mappings-container"),this.buttonContainer=this.querySelector(".button-container")}initLabels(){this.labelsEle.innerHTML=`\n <descope-text variant="body2" part="value-label">${this.labelValue}</descope-text>\n <descope-text variant="body2" part="attr-label">${this.labelAttr}</descope-text>\n `}initAddButton(){this.buttonContainer.innerHTML=`\n <descope-button variant="link" mode="primary" disabled="${this.isDisabled}">\n <vaadin-icon icon="vaadin:plus"></vaadin-icon>\n ${this.buttonLabel}\n </descope-button>\n `;const t=this.querySelector("descope-button");t.onclick=()=>{this.addNewMappingItem(!0)},(0,r.EA)(this,t,{includeAttrs:["disabled"]})}#i(){this.labelsEle.style.display=this.items.length?"grid":"none"}init(){this.addEventListener("focus",(t=>{t.isTrusted&&(this.#n||this.items[0]||this.querySelector("descope-button")).focus()})),super.init?.(),this.initLabels(),this.initAddButton(),this.addEventListener("input",(()=>{this.mappingsContainerEle.contains(this.#n)&&this.#n?.checkValidity()&&(this.resetInvalidIndication(),this.#n.removeAttribute("invalid"),this.#n=void 0)})),(0,r.Ge)(this.mappingsContainerEle,this.#i.bind(this))}resetInvalidIndication(){this.removeAttribute("invalid")}getValidity(){const t=this.items.find((t=>!t.checkValidity()));return t?t.validity:{}}#r(t){t&&(this.#n=this.items.find((t=>!t.checkValidity())),this.#n?.reportValidity(),this.#n?.setAttribute("invalid","true"))}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),"label-value"!==t&&"label-attr"!==t||this.initLabels(),"button-label"===t&&this.initAddButton(),"invalid"===t&&this.#r("true"===n),"readonly"===t&&this.toggleAttribute("inert","true"===n)}}},34884:(t,e,n)=>{n.r(e);var i=n(1428);customElements.define(i.T,i.A)},84719:(t,e,n)=>{n.r(e),n.d(e,{MappingsFieldClass:()=>f,componentName:()=>l}),n(25003),n(95260),n(37182);var i=n(79365),r=n(66434),o=n(9696),a=n(97810),s=n(1428);const l=(0,a.xE)("mappings-field"),{host:p,helperText:d,errorMessage:c,mappingItem:u,labels:h,labelsText:b,valueLabel:g,attrLabel:m,separator:y,labelsContainer:v}={host:{selector:()=>":host"},helperText:{selector:"::part(helper-text)"},errorMessage:{selector:"::part(error-message)"},mappingItem:{selector:"descope-mapping-item::part(wrapper)"},labels:{selector:'descope-mappings-field-internal [part="labels"] descope-text'},labelsText:{selector:'descope-mappings-field-internal [part="labels"] descope-text::part(text-wrapper)'},valueLabel:{selector:'descope-mappings-field-internal [part="labels"] [part="value-label"]'},attrLabel:{selector:'descope-mappings-field-internal [part="labels"] [part="attr-label"]'},separator:{selector:"descope-mapping-item::part(separator)"},labelsContainer:{selector:'descope-mappings-field-internal [part="labels"]'}},f=(0,o.Zz)((0,i.RF)({mappings:{hostWidth:{...p,property:"width"},hostDirection:{...p,property:"direction"},fontSize:[{},p,{...y,property:"margin-top"}],fontFamily:[d,c,h],separatorFontSize:{...y,property:"font-size"},labelsFontSize:{...b,property:"font-size"},labelsLineHeight:[{...b,property:"line-height"},{...h,property:"line-height"}],labelTextColor:[{...h,property:r.s.cssVarList.textColor},{...y,property:"color"}],itemMarginBottom:{...u,property:"margin-bottom"},valueLabelMinWidth:{...g,property:"min-width"},attrLabelMinWidth:{...m,property:"min-width"},labelsMarginBottom:{...v,property:"margin-bottom"},separatorWidth:{},removeButtonWidth:{}}}),i.VO,(0,i.OZ)({proxyProps:["value","selectionStart"],inputEvent:"input",proxyParentValidation:!0}),i.tQ,(t=>class extends t{get defaultValues(){const t=this.getAttribute("default-values");if(t)try{return JSON.parse(t)}catch(t){console.error('could not parse data string from attribute "default-values" -',t.message)}return[]}setDefaultValues(){const t=this.defaultValues;Object.keys(t).length>0&&(this.inputElement.value=t)}init(){super.init?.();const t=document.createElement("template");t.innerHTML=`\n <${s.T}\n tabindex="-1"\n ></${s.T}>\n `,this.baseElement.appendChild(t.content.cloneNode(!0)),this.inputElement=this.shadowRoot.querySelector(s.T),(0,a.EA)(this,this.inputElement,{includeAttrs:["size","full-width","label-value","label-attr","button-label","separator","options","default-values","invalid","readonly","disabled","st-error-message-icon","st-error-message-icon-size","st-error-message-icon-padding"]}),(0,a.Gh)(this,this.inputElement,{includeAttrs:["invalid"]}),this.setDefaultValues()}}))((0,i.tz)({slots:[],wrappedEleName:"vaadin-custom-field",style:()=>`\n :host {\n display: inline-flex;\n max-width: 100%;\n direction: ltr;\n }\n vaadin-custom-field {\n line-height: unset;\n width: 100%;\n }\n\n descope-mappings-field-internal [part="labels"] {\n display: none;\n grid-template-columns: 1fr var(${f.cssVarList.separatorWidth}) 1fr var(${f.cssVarList.removeButtonWidth});\n }\n\n descope-mappings-field-internal [part="labels"] [part="value-label"],\n descope-mappings-field-internal [part="labels"] [part="attr-label"] {\n ${r.s.cssVarList.fontWeight}: 500;\n }\n\n descope-mappings-field-internal [part="labels"] [part="value-label"] {\n grid-column: 1 / span 1;\n }\n\n descope-mappings-field-internal [part="labels"] [part="attr-label"] {\n grid-column: 3 / span 1;\n }\n\n descope-mapping-item::part(wrapper) {\n display: grid;\n grid-template-columns: 1fr var(${f.cssVarList.separatorWidth}) 1fr var(${f.cssVarList.removeButtonWidth});\n }\n `,excludeAttrsSync:["tabindex","label-value","label-attr","button-label","options","error-message"],componentName:l}));n(63595),n(85076),n(21374),n(27092),n(34884),n(29172),customElements.define(l,f)},98096:(t,e,n)=>{n.d(e,{A:()=>s,T:()=>o});var i=n(3393),r=n(97810);const o=(0,r.xE)("saml-group-mappings-internal"),a=(0,i.y)({componentName:o,baseSelector:""}),s=class extends a{static get observedAttributes(){return["invalid"].concat(a.observedAttributes||[])}constructor(){super(),this.innerHTML='\n <descope-text-field variant="body2" bordered="true"></descope-text-field>\n <descope-mappings-field></descope-mappings-field>\n ',this.groupInputElement=this.querySelector("descope-text-field"),this.mappingsElement=this.querySelector("descope-mappings-field")}resetInvalidIndication(){this.removeAttribute("invalid")}handleMappingsInvalidChange(t){t.includes("invalid")&&(this.mappingsElement.hasAttribute("invalid")||this.resetInvalidIndication())}initFocusHandler(){this.addEventListener("focus",(t=>{t.isTrusted&&(this.mappingsElement.checkValidity()?this.groupInputElement:this.mappingsElement).focus()}))}init(){this.initFocusHandler(),super.init?.(),(0,r.EA)(this,this.groupInputElement,{mapAttrs:{"label-group":"label"},includeAttrs:["size","label-group","readonly","disabled"]}),(0,r.EA)(this,this.mappingsElement,{includeAttrs:["size","full-width","label-value","label-attr","button-label","separator","options","readonly","disabled","data-errormessage-pattern-mismatch"]}),(0,r.mx)(this.mappingsElement,this.handleMappingsInvalidChange.bind(this),{includeAttrs:["invalid"]})}get value(){return{group:this.groupInputElement.value,mappings:this.mappingsElement.value}}set value(t){t?.group&&"string"==typeof t.group&&(this.groupInputElement.value=t.group),Array.isArray(t?.mappings)&&(this.mappingsElement.value=t.mappings)}getValidity(){return this.groupInputElement.checkValidity()?this.mappingsElement.checkValidity()?{}:this.mappingsElement.validity:this.groupInputElement.validity}#o(t){if(t){if(!this.groupInputElement.checkValidity())return void this.groupInputElement.setAttribute("invalid","true");this.mappingsElement.checkValidity()||this.mappingsElement.setAttribute("invalid","true")}}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),"invalid"===t&&this.#o("true"===n)}}},9894:(t,e,n)=>{n.r(e);var i=n(98096);customElements.define(i.T,i.A)},45103:(t,e,n)=>{n.r(e),n.d(e,{SamlGroupMappingsClass:()=>c,componentName:()=>s}),n(25003);var i=n(79365),r=n(9696),o=n(97810),a=n(98096);const s=(0,o.xE)("saml-group-mappings"),{host:l,groupInput:p,errorMessage:d}={host:{selector:()=>":host"},groupInput:{selector:"descope-text-field"},errorMessage:{selector:"::part(error-message)"}},c=(0,r.Zz)((0,i.RF)({mappings:{hostWidth:{...l,property:"width"},hostDirection:{...l,property:"direction"},groupNameInputMarginBottom:{...p,property:"margin-bottom"},errorMessageIcon:{...d,property:"background-image"},errorMessageIconSize:{...d,property:"background-size"},errorMessageIconPadding:{...d,property:"padding-inline-start"},errorMessageIconRepeat:{...d,property:"background-repeat"},errorMessageIconPosition:{...d,property:"background-position"}}}),i.VO,(0,i.OZ)({proxyProps:["value","selectionStart"],inputEvent:"input",triggerValidationEvents:["mapping-item-added","mapping-item-removed"],proxyParentValidation:!0}),i.tQ,(t=>class extends t{init(){super.init?.();const t=document.createElement("template");t.innerHTML=`\n <${a.T}\n tabindex="-1"\n ></${a.T}>\n `,this.baseElement.appendChild(t.content.cloneNode(!0)),this.inputElement=this.shadowRoot.querySelector(a.T),(0,o.EA)(this,this.inputElement,{includeAttrs:["size","full-width","label-group","label-value","label-attr","button-label","separator","options","readonly","disabled"]}),(0,o.Gh)(this,this.inputElement,{includeAttrs:["invalid"]})}}))((0,i.tz)({slots:[],wrappedEleName:"vaadin-custom-field",style:()=>"\n :host {\n display: inline-flex;\n max-width: 100%;\n direction: ltr;\n }\n\n vaadin-custom-field {\n line-height: unset;\n width: 100%;\n }\n\n descope-text-field {\n width: auto;\n }\n\n descope-mappings-field {\n display: block;\n }\n ",excludeAttrsSync:["tabindex","label-group","label-value","label-attr","button-label","separator","options","error-message"],componentName:s}));n(21374),n(84719),n(9894),customElements.define(s,c)},73551:(t,e,n)=>{n.d(e,{$J:()=>u,I4:()=>a,Kl:()=>h,LJ:()=>c,Qv:()=>o,X6:()=>l,cy:()=>i,fu:()=>p,kG:()=>d,lS:()=>s,zm:()=>r});const i=t=>`\n :host {\n padding: calc(var(${t.inputOutlineWidth}) + var(${t.inputOutlineOffset}))\n }\n`,r=t=>`\n ${t} {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n }\n`,o=t=>`\n ${t}::part(input-field) {\n overflow: hidden;\n padding: 0;\n box-shadow: none;\n }\n`,a=t=>`\n ${t} > label,\n ${t}::part(label),\n ${t}::part(required-indicator) {\n cursor: pointer;\n }\n`,s=(t,e="input")=>`\n ${t}[disabled] > ${e}:placeholder-shown,\n\t${t}[readonly] > ${e}:placeholder-shown {\n\t\topacity: 1;\n\t}\n`,l=()=>"\n :host {\n --vaadin-field-default-width: auto;\n box-sizing: border-box;\n }\n",p=t=>`\n ${t}::part(input-field)::after {\n opacity: 0;\n }\n`,d=t=>`\n ${t}::part(input-field)::after {\n background: none;\n }\n`,c=(t,e)=>`\n ${r(t)}\n ${a(t)}\n ${s(t)}\n ${o(t)}\n ${((t,e)=>`\n ${t} input:-webkit-autofill,\n ${t} input:-webkit-autofill::first-line,\n ${t} input:-webkit-autofill:hover,\n ${t} input:-webkit-autofill:active,\n ${t} input:-webkit-autofill:focus {\n -webkit-text-fill-color: var(${e.inputValueTextColor});\n box-shadow: 0 0 0 var(${e.inputHeight}) var(${e.inputBackgroundColor}) inset;\n }\n`)(t,e)}\n ${d(t)}\n ${(t=>`\n ${t}::before {\n\t\theight: unset;\n\t}\n`)(t)}\n ${(t=>`\n ${t} > input {\n -webkit-mask-image: none;\n min-height: 0;\n box-sizing: border-box;\n }\n`)(t)}\n ${(t=>`\n ${t}::part(input-field)::after {\n border: none;\n }\n`)(t)}\n`,u=t=>`\n :host ::part(error-message) {\n direction: ltr;\n }\n :host([required]) ::part(required-indicator) {\n width: 1em;\n display: inline-flex;\n }\n :host([required]) ::part(required-indicator)::after {\n position: static;\n }\n :host([has-label]) ::part(label) {\n padding-right: 0;\n padding-bottom: 0;\n display: flex;\n width: 100%;\n }\n ${t} [slot="label"] {\n max-width: calc(100% - 1em);\n overflow: hidden;\n text-overflow: ellipsis;\n padding-bottom: 0.5em;\n }\n`,h=()=>'\n :host([label-type="floating"]) {\n position: relative;\n }\n :host([label-type="floating"][has-label]) [slot="label"] {\n padding: 0;\n }\n :host([label-type="floating"][has-label]) > ::part(label) {\n z-index: 1;\n padding: 0;\n width: auto;\n }\n '}}]);
1
+ "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[2230,2294,6832,7095,9522,9708],{19624:(t,e,n)=>{n.d(e,{J:()=>h,T:()=>l});var i=n(63200),r=n(25964),o=n(88961),a=n(98538),s=n(10767);const l=(0,r.xE)("button"),{host:p,label:d,slottedIcon:c}={host:{selector:()=>":host"},label:{selector:"::part(label)"},slottedIcon:{selector:()=>"::slotted(descope-icon)"}};let u;const h=(0,i.Zz)((0,o.RF)({mappings:{hostWidth:{property:"width"},hostHeight:{property:"height"},hostDirection:{...p,property:"direction"},fontSize:{},fontFamily:{},cursor:{},backgroundColor:{},outlineOffset:{},outlineColor:{},outlineStyle:{},outlineWidth:{},borderRadius:{},borderColor:{},borderStyle:{},borderWidth:{},verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-right",fallback:"0.875em"},{property:"padding-left",fallback:"0.875em"}],labelTextColor:{property:"color"},iconColor:{selector:()=>"::slotted(*)",property:a.S.cssVarList.fill},labelTextDecoration:{...d,property:"text-decoration"},labelSpacing:{...d,property:"gap"},textAlign:{...d,property:"justify-content",fallback:"center"},iconSize:[{...c,property:"width"},{...c,property:"height"}]}}),s.G,o.VO,o.tQ)((0,o.tz)({slots:["","prefix","label","suffix"],wrappedEleName:"vaadin-button",style:()=>`\n\t\t\t\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n\n\t\t\t\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t\t\t${u}\n\t\t\tvaadin-button::part(label) { pointer-events: none; }\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${h.cssVarList.outlineWidth}) + var(${h.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width="true"]) {\n width: var(${h.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${h.cssVarList.hostHeight}) - var(${h.cssVarList.outlineWidth}) - var(${h.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square="true"]:not([full-width="true"]) {\n\t\t\t\twidth: calc(var(${h.cssVarList.hostWidth}) - var(${h.cssVarList.outlineWidth}) - var(${h.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,excludeAttrsSync:["tabindex"],componentName:l})),{color:b,fontSize:g}=h.cssVarList;u=`\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading="true"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${b});\n\t\ttop: calc(50% - (var(${g}) / 2));\n\t\tleft: calc(50% - (var(${g}) / 2));\n\t\tborder-width: calc(var(${g}) / 10);\n\t\twidth: var(${g});\n\t\theight: var(${g});\n\t}\n\t:host([disabled="true"]),\n\t:host([loading="true"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading="true"])::part(prefix),\n\t:host([loading="true"])::part(label) {\n\t\tvisibility: hidden;\n\t}\n`},10767:(t,e,n)=>{n.d(e,{G:()=>i});const i=t=>class extends t{get isLoading(){return"true"===this.getAttribute("loading")}click(){this.isLoading||super.click()}}},30576:(t,e,n)=>{n.r(e),n.d(e,{ButtonClass:()=>i.J,componentName:()=>i.T});var i=n(19624);n(83799),customElements.define(i.T,i.J)},98538:(t,e,n)=>{n.d(e,{S:()=>d,T:()=>l});var i=n(88961),r=n(72270),o=n(63200),a=n(25964),s=n(31004);const l=(0,a.xE)("icon");class p extends((0,r.qu)({componentName:l,baseSelector:"slot"})){static get observedAttributes(){return["src"]}#t;constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n\t\t<slot></slot>\n\t",(0,a.fz)("\n\t\t\t:host > slot {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n ",this)}init(){super.init?.(),this.toggleVisibility(this.src)}toggleVisibility(t){this.style.display=t?"":"none"}get src(){return this.getAttribute("src")}updateFillColor(t){[t,...t.querySelectorAll("*[fill]")].forEach((t=>{t.setAttribute("fill",`var(${d.cssVarList.fill}, ${t.getAttribute("fill")||"''"})`)}))}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),e!==n&&"src"===t&&(this.toggleVisibility(n),(0,s.w)(this.src).then((t=>{if(this.innerHTML="",t){const e=t.cloneNode(!0);this.updateFillColor(e),this.appendChild(e)}})))}}const d=(0,o.Zz)((0,i.RF)({mappings:{fill:{}}}),i.VO,i.tQ)(p)},31004:(t,e,n)=>{n.d(e,{w:()=>o});var i=n(25414);const r=t=>{const e=i.A.sanitize(t,{USE_PROFILES:{svg:!0,svgFilters:!0}});return(new DOMParser).parseFromString(e,"image/svg+xml").querySelector("svg")},o=async t=>{try{let e;if((t=>t.startsWith("data:image/svg+xml;base64,"))(t)){const n=atob(t.slice(26));e=r(n)}else if("svg"===(t=>{const e=t.match(/\.([0-9a-z]+)(?:[\\?#]|$)/i);return e?e[1]:null})(t)){const n=await fetch(t),i=await n.text();e=r(i)}else e=(t=>{const e=document.createElement("img");return e.setAttribute("src",t),e})(t);return e.style.setProperty("max-width","100%"),e.style.setProperty("max-height","100%"),e}catch{return null}}},66434:(t,e,n)=>{n.d(e,{T:()=>s,s:()=>p});var i=n(88961),r=n(63200),o=n(25964),a=n(72270);const s=(0,o.xE)("text");class l extends((0,a.qu)({componentName:s,baseSelector:":host > slot"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <slot part="text-wrapper"></slot>\n ',(0,o.fz)("\n :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n ",this)}get hideWhenEmpty(){return"true"===this.getAttribute("hide-when-empty")}init(){super.init(),(0,o.Ge)(this,(()=>{const t=!!this.childNodes.length;this.style.display=!t&&this.hideWhenEmpty?"none":""}))}}const p=(0,r.Zz)((0,i.RF)({mappings:{hostWidth:{selector:()=>":host",property:"width"},hostDirection:{selector:()=>":host",property:"direction"},fontSize:{},textColor:{property:"color"},textLineHeight:{property:"line-height"},textLetterSpacing:{property:"letter-spacing"},textShadow:{},textAlign:{},textTransform:{},fontFamily:{},fontStyle:{},fontWeight:{},borderWidth:{},borderStyle:{},borderColor:{}}}),i.VO,i.tQ)(l)},63595:(t,e,n)=>{n.r(e),n.d(e,{TextClass:()=>i.s,componentName:()=>i.T});var i=n(66434);customElements.define(i.T,i.s)},3393:(t,e,n)=>{n.d(e,{y:()=>a});var i=n(9696),r=n(79365),o=n(81365);const a=(...t)=>(0,i.Zz)(r.XX,r._$,r.yF,r.jd)((0,o.q)(...t))},79275:(t,e,n)=>{n.d(e,{T:()=>l,w:()=>d});var i=n(79365),r=n(6424),o=n(9696),a=n(97810),s=n(73551);const l=(0,a.xE)("text-field"),p=["type","label-type","copy-to-clipboard"],d=(0,o.Zz)((0,i.RF)({mappings:r.A}),i.VO,(0,i.OZ)({proxyProps:["value","selectionStart"],useProxyTargets:!0}),i.tQ,(t=>class extends t{static get observedAttributes(){return p.concat(t.observedAttributes||[])}icon;init(){super.init?.()}renderCopyToClipboard(t){if(!t)return void this.icon?.remove();const e={icon:"vaadin:copy-o",title:"Copy",style:"cursor: pointer"},n={icon:"vaadin:check-circle-o",title:"Copied",style:"cursor: initial"};this.icon=Object.assign(document.createElement("vaadin-icon"),{slot:"suffix",...e}),this.baseElement.appendChild(this.icon),this.icon.addEventListener("click",(()=>{navigator.clipboard.writeText(this.value),Object.assign(this.icon,n),setTimeout((()=>{Object.assign(this.icon,e)}),5e3)}))}onLabelClick(){this.focus()}attributeChangedCallback(t,e,n){super.attributeChangeCallback?.(t,e,n),"type"===t&&this.baseElement._setType(n),e!==n&&("label-type"===t?"floating"===n?this.addEventListener("click",this.onLabelClick):this.removeEventListener("click",this.onLabelClick):"copy-to-clipboard"===t&&this.renderCopyToClipboard("true"===n))}}))((0,i.tz)({slots:["prefix","suffix"],wrappedEleName:"vaadin-text-field",style:()=>`\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tpadding: calc(var(${d.cssVarList.inputOutlineWidth}) + var(${d.cssVarList.inputOutlineOffset}));\n box-sizing: border-box;\n\t\t\t}\n :host(:is([readonly], [disabled])) ::slotted(:is(input, textarea):placeholder-shown) {\n opacity: 1;\n }\n\n vaadin-text-field[label-type="floating"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-text-field[label-type="floating"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n ${(0,s.$J)("vaadin-text-field")}\n\t\t\t${(0,s.cy)(d.cssVarList)}\n\t\t\t${(0,s.LJ)("vaadin-text-field",d.cssVarList)}\n ${(0,s.Kl)()}\n\n vaadin-text-field vaadin-icon {\n align-self: center;\n }\n\t\t`,excludeAttrsSync:["tabindex","style"],componentName:l}))},21374:(t,e,n)=>{n.r(e),n.d(e,{TextFieldClass:()=>i.w,componentName:()=>i.T}),n(11284),n(37182),n(95260);var i=n(79275);customElements.define(i.T,i.w)},6424:(t,e,n)=>{n.d(e,{A:()=>f});const{host:i,label:r,placeholder:o,requiredIndicator:a,inputField:s,input:l,inputMask:p,helperText:d,errorMessage:c,disabledPlaceholder:u,inputDisabled:h,inputIcon:b,externalInput:g,externalInputDisabled:m,externalPlaceholder:y,externalDisabledPlaceholder:v}={host:{selector:()=>":host"},label:{selector:"::part(label)"},requiredIndicator:{selector:"[required]::part(required-indicator)::after"},placeholder:[{selector:"> input:placeholder-shown"},{selector:()=>":host::slotted(input:placeholder-shown)"}],disabledPlaceholder:{selector:"> input:disabled::placeholder"},inputField:{selector:"::part(input-field)"},input:{selector:"input"},inputMask:{selector:"::part(input-field)::before"},inputDisabled:{selector:"input:disabled"},helperText:{selector:"::part(helper-text)"},errorMessage:{selector:"::part(error-message)"},inputIcon:{selector:"vaadin-icon"},externalInput:{selector:()=>"::slotted(input)"},externalInputDisabled:{selector:()=>"::slotted(input:disabled)"},externalPlaceholder:{selector:()=>"::slotted(input:placeholder-shown)"},externalDisabledPlaceholder:{selector:()=>"::slotted(input:disabled::placeholder)"}},f={fontSize:[{},i],fontFamily:[r,s,d,c],labelFontSize:{...r,property:"font-size"},labelFontWeight:{...r,property:"font-weight"},labelTextColor:[{...r,property:"color"},{...a,property:"color"},{...r,property:"-webkit-text-fill-color"},{...a,property:"-webkit-text-fill-color"}],hostWidth:{...i,property:"width"},hostMinWidth:{...i,property:"min-width"},hostDirection:{...i,property:"direction"},inputDirection:{...l,property:"direction"},inputBackgroundColor:[{...s,property:"background-color"},{...p,property:"background-color"}],errorMessageTextColor:{...c,property:"color"},errorMessageIcon:{...c,property:"background-image"},errorMessageIconSize:{...c,property:"background-size"},errorMessageIconPadding:{...c,property:"padding-inline-start"},errorMessageIconRepeat:{...c,property:"background-repeat"},errorMessageIconPosition:{...c,property:"background-position"},helperTextColor:{...d,property:"-webkit-text-fill-color"},inputValueTextColor:[{...s,property:"color"},{...h,property:"-webkit-text-fill-color"},{...m,property:"-webkit-text-fill-color"}],inputCaretTextColor:[{...l,property:"caret-color"},{...g,property:"caret-color"}],labelRequiredIndicator:{...a,property:"content"},inputBorderColor:{...s,property:"border-color"},inputBorderWidth:{...s,property:"border-width"},inputBorderStyle:{...s,property:"border-style"},inputBorderRadius:{...s,property:"border-radius"},inputHeight:{...s,property:"height"},inputHorizontalPadding:[{...l,property:"padding-left"},{...l,property:"padding-right"},{...g,property:"padding-left"},{...g,property:"padding-right"}],inputOutlineColor:{...s,property:"outline-color"},inputOutlineStyle:{...s,property:"outline-style"},inputOutlineWidth:{...s,property:"outline-width"},inputOutlineOffset:{...s,property:"outline-offset"},textAlign:{},inputTextAlign:[{...l,property:"text-align"},{...g,property:"text-align"}],inputPlaceholderColor:[{selector:()=>":host input:placeholder-shown",property:"color"},{...y,property:"color"},{...o,property:"color"},{...u,property:"-webkit-text-fill-color"},{...v,property:"-webkit-text-fill-color"}],labelPosition:{...r,property:"position"},labelTopPosition:{...r,property:"top"},labelHorizontalPosition:[{...r,property:"left"},{...r,property:"right"}],inputTransformY:{...r,property:"transform"},inputTransition:{...r,property:"transition"},marginInlineStart:{...r,property:"margin-inline-start"},placeholderOpacity:[{selector:"> input:placeholder-shown",property:"opacity"},{...y,property:"opacity"}],inputVerticalAlignment:[{...s,property:"align-items"},{...g,property:"align-items"}],valueInputHeight:[{...l,property:"height"},{...g,property:"height"}],valueInputMarginBottom:[{...l,property:"margin-bottom"},{...g,property:"margin-bottom"}],inputIconOffset:[{...b,property:"margin-right"},{...b,property:"margin-left"}],inputIconSize:{...b,property:"font-size"},inputIconColor:{...b,property:"color"}}},29172:(t,e,n)=>{var i=n(25964),r=n(3393),o=n(97810);const a=(0,o.xE)("mapping-item"),s=["size","bordered","readonly","full-width","disabled","st-error-message-icon","st-error-message-icon-size","st-error-message-icon-padding"],l=(0,r.y)({componentName:a,baseSelector:"div"});customElements.define(a,class extends l{static get observedAttributes(){return[].concat(l.observedAttributes||[],s,["separator","options","invalid","disabled"])}get separator(){return this.getAttribute("separator")||"map to"}get value(){const t=this.attributeInput.value,e=this.valueInput.value;return t&&e?{[t]:e}:null}set value(t){if(1!==Object.entries(t).length)return void console.error("descope-mapping item expected expects only one key-value pair in the value but received: ",t);const[e,n]=Object.entries(t)[0];this.valueInput.value=n,this.attributeInput.value=e,this.dispatchEvent(new InputEvent("input",{bubbles:!0,composed:!0}))}constructor(){super(),this.attachShadow({mode:"open"}).innerHTML=`\n <div class="wrapper" part="wrapper">\n <descope-text-field required="true"></descope-text-field>\n <div class="separator" part="separator">${this.separator}</div>\n <descope-combo-box\n item-label-path="data-name"\n item-value-path="data-id"\n required="true"\n >\n </descope-combo-box>\n <descope-button variant="link" mode="primary">\n <vaadin-icon icon="vaadin:minus"></vaadin-icon>\n </descope-button>\n </div>\n\t`,(0,i.fz)("\n .wrapper {\n display: flex;\n }\n .separator {\n text-align: center;\n flex-shrink: 0;\n }\n ",this),this.valueInput=this.shadowRoot.querySelector("descope-text-field"),this.attributeInput=this.shadowRoot.querySelector("descope-combo-box"),this.inputs=[this.valueInput,this.attributeInput],this.removeButton=this.shadowRoot.querySelector("descope-button"),(0,o.EA)(this,this.valueInput,{includeAttrs:s}),(0,o.EA)(this,this.attributeInput,{includeAttrs:[...s,"options"],mapAttrs:{options:"data"}}),(0,o.EA)(this,this.removeButton,{includeAttrs:["disabled"]})}initRemoveButton(){this.removeButton.addEventListener("click",(()=>this.dispatchEvent(new CustomEvent("mapping-item-removed",{bubbles:!0,composed:!0}))))}init(){super.init?.(),this.initRemoveButton()}getValidity(){const t=this.attributeInput.value,e=this.valueInput.value;return t&&e?{}:{badInput:!0}}reportValidity(){this.inputs.forEach((t=>t.reportValidity()))}focus(){(this.checkValidity()||!this.valueInput.checkValidity()?this.valueInput:this.attributeInput).focus()}handleSeparatorChange(){this.shadowRoot.querySelector(".separator").textContent=this.separator}#e(t){"true"===t&&(this.valueInput.value||(this.valueInput.setAttribute("invalid","true"),this.valueInput.setAttribute("error-message",this.defaultErrorMsgValueMissing)),this.attributeInput.value||(this.attributeInput.setAttribute("invalid","true"),this.attributeInput.setAttribute("error-message",this.defaultErrorMsgValueMissing)))}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),"separator"===t&&this.handleSeparatorChange(),"invalid"===t&&this.#e(n)}})},1428:(t,e,n)=>{n.d(e,{A:()=>s,T:()=>o});var i=n(3393),r=n(97810);const o=(0,r.xE)("mappings-field-internal"),a=(0,i.y)({componentName:o,baseSelector:"div"}),s=class extends a{#n;static get observedAttributes(){return[].concat(a.observedAttributes||[],["label-value","label-attr","button-label","invalid","readonly","disabled","st-error-message-icon","st-error-message-icon-size","st-error-message-icon-padding"])}isValidDataType(t){try{return t.every((t=>"object"==typeof t&&!Array.isArray(t)&&1===Object.getOwnPropertyNames(t).length&&"string"==typeof t[Object.keys(t)[0]]&&""!==t[Object.keys(t)[0]].trim()))}catch(t){return!1}}get labelValue(){return this.getAttribute("label-value")||"Value"}get labelAttr(){return this.getAttribute("label-attr")||"Attribute"}get buttonLabel(){return this.getAttribute("button-label")||"Add mapping"}get options(){return this.getAttribute("options")||[]}addNewMappingItem(t){const e=document.createElement("descope-mapping-item");return e.setAttribute("bordered","true"),this.mappingsContainerEle.appendChild(e),(0,r.EA)(this,e,{includeAttrs:["size","full-width","separator","options","disabled","st-error-message-icon","st-error-message-icon-size","st-error-message-icon-padding"]}),setTimeout((()=>{this.setCustomValidity(""),e.addEventListener("mapping-item-removed",(()=>{e===this.#n&&(this.resetInvalidIndication(),this.#n=void 0),e.remove(),this.setCustomValidity("")})),this.dispatchEvent(new CustomEvent("mapping-item-added",{bubbles:!0,composed:!0})),t&&e.focus()}),0),e}get items(){return Array.from(this.mappingsContainerEle.querySelectorAll("descope-mapping-item"))}get value(){return this.items.reduce(((t,e)=>e.value?[...t,e.value]:t),[])}set value(t){if(!this.isValidDataType(t))return void console.error("received invalid value to set - should be an array of objects with one key-value pair");const e=this.items;if(e.length>t.length)for(let n=t.length;n<e.length;n++)this.mappingsContainerEle.removeChild(e[n]);t.forEach(((t,n)=>{const i=e[n];if(i)i.value=t;else{const e=this.addNewMappingItem(!1);setTimeout((()=>{e.value=t}),0)}}))}constructor(){super(),this.innerHTML='\n <div class="labels-container" part="labels"></div>\n <div class="mappings-container"></div>\n <div class="button-container"></div>\n ',this.labelsEle=this.querySelector(".labels-container"),this.mappingsContainerEle=this.querySelector(".mappings-container"),this.buttonContainer=this.querySelector(".button-container")}initLabels(){this.labelsEle.innerHTML=`\n <descope-text variant="body2" part="value-label">${this.labelValue}</descope-text>\n <descope-text variant="body2" part="attr-label">${this.labelAttr}</descope-text>\n `}initAddButton(){this.buttonContainer.innerHTML=`\n <descope-button variant="link" mode="primary" disabled="${this.isDisabled}">\n <vaadin-icon icon="vaadin:plus"></vaadin-icon>\n ${this.buttonLabel}\n </descope-button>\n `;const t=this.querySelector("descope-button");t.onclick=()=>{this.addNewMappingItem(!0)},(0,r.EA)(this,t,{includeAttrs:["disabled"]})}#i(){this.labelsEle.style.display=this.items.length?"grid":"none"}init(){this.addEventListener("focus",(t=>{t.isTrusted&&(this.#n||this.items[0]||this.querySelector("descope-button")).focus()})),super.init?.(),this.initLabels(),this.initAddButton(),this.addEventListener("input",(()=>{this.mappingsContainerEle.contains(this.#n)&&this.#n?.checkValidity()&&(this.resetInvalidIndication(),this.#n.removeAttribute("invalid"),this.#n=void 0)})),(0,r.Ge)(this.mappingsContainerEle,this.#i.bind(this))}resetInvalidIndication(){this.removeAttribute("invalid")}getValidity(){const t=this.items.find((t=>!t.checkValidity()));return t?t.validity:{}}#r(t){t&&(this.#n=this.items.find((t=>!t.checkValidity())),this.#n?.reportValidity(),this.#n?.setAttribute("invalid","true"))}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),"label-value"!==t&&"label-attr"!==t||this.initLabels(),"button-label"===t&&this.initAddButton(),"invalid"===t&&this.#r("true"===n),"readonly"===t&&this.toggleAttribute("inert","true"===n)}}},34884:(t,e,n)=>{n.r(e);var i=n(1428);customElements.define(i.T,i.A)},84719:(t,e,n)=>{n.r(e),n.d(e,{MappingsFieldClass:()=>f,componentName:()=>l}),n(25003),n(95260),n(37182);var i=n(79365),r=n(66434),o=n(9696),a=n(97810),s=n(1428);const l=(0,a.xE)("mappings-field"),{host:p,helperText:d,errorMessage:c,mappingItem:u,labels:h,labelsText:b,valueLabel:g,attrLabel:m,separator:y,labelsContainer:v}={host:{selector:()=>":host"},helperText:{selector:"::part(helper-text)"},errorMessage:{selector:"::part(error-message)"},mappingItem:{selector:"descope-mapping-item::part(wrapper)"},labels:{selector:'descope-mappings-field-internal [part="labels"] descope-text'},labelsText:{selector:'descope-mappings-field-internal [part="labels"] descope-text::part(text-wrapper)'},valueLabel:{selector:'descope-mappings-field-internal [part="labels"] [part="value-label"]'},attrLabel:{selector:'descope-mappings-field-internal [part="labels"] [part="attr-label"]'},separator:{selector:"descope-mapping-item::part(separator)"},labelsContainer:{selector:'descope-mappings-field-internal [part="labels"]'}},f=(0,o.Zz)((0,i.RF)({mappings:{hostWidth:{...p,property:"width"},hostDirection:{...p,property:"direction"},fontSize:[{},p,{...y,property:"margin-top"}],fontFamily:[d,c,h],separatorFontSize:{...y,property:"font-size"},labelsFontSize:{...b,property:"font-size"},labelsLineHeight:[{...b,property:"line-height"},{...h,property:"line-height"}],labelTextColor:[{...h,property:r.s.cssVarList.textColor},{...y,property:"color"}],itemMarginBottom:{...u,property:"margin-bottom"},valueLabelMinWidth:{...g,property:"min-width"},attrLabelMinWidth:{...m,property:"min-width"},labelsMarginBottom:{...v,property:"margin-bottom"},separatorWidth:{},removeButtonWidth:{}}}),i.VO,(0,i.OZ)({proxyProps:["value","selectionStart"],inputEvent:"input",proxyParentValidation:!0}),i.tQ,(t=>class extends t{get defaultValues(){const t=this.getAttribute("default-values");if(t)try{return JSON.parse(t)}catch(t){console.error('could not parse data string from attribute "default-values" -',t.message)}return[]}setDefaultValues(){const t=this.defaultValues;Object.keys(t).length>0&&(this.inputElement.value=t)}init(){super.init?.();const t=document.createElement("template");t.innerHTML=`\n <${s.T}\n tabindex="-1"\n ></${s.T}>\n `,this.baseElement.appendChild(t.content.cloneNode(!0)),this.inputElement=this.shadowRoot.querySelector(s.T),(0,a.EA)(this,this.inputElement,{includeAttrs:["size","full-width","label-value","label-attr","button-label","separator","options","default-values","invalid","readonly","disabled","st-error-message-icon","st-error-message-icon-size","st-error-message-icon-padding"]}),(0,a.Gh)(this,this.inputElement,{includeAttrs:["invalid"]}),this.setDefaultValues()}}))((0,i.tz)({slots:[],wrappedEleName:"vaadin-custom-field",style:()=>`\n :host {\n display: inline-flex;\n max-width: 100%;\n direction: ltr;\n }\n vaadin-custom-field {\n line-height: unset;\n width: 100%;\n }\n\n descope-mappings-field-internal [part="labels"] {\n display: none;\n grid-template-columns: 1fr var(${f.cssVarList.separatorWidth}) 1fr var(${f.cssVarList.removeButtonWidth});\n }\n\n descope-mappings-field-internal [part="labels"] [part="value-label"],\n descope-mappings-field-internal [part="labels"] [part="attr-label"] {\n ${r.s.cssVarList.fontWeight}: 500;\n }\n\n descope-mappings-field-internal [part="labels"] [part="value-label"] {\n grid-column: 1 / span 1;\n }\n\n descope-mappings-field-internal [part="labels"] [part="attr-label"] {\n grid-column: 3 / span 1;\n }\n\n descope-mapping-item::part(wrapper) {\n display: grid;\n grid-template-columns: 1fr var(${f.cssVarList.separatorWidth}) 1fr var(${f.cssVarList.removeButtonWidth});\n }\n `,excludeAttrsSync:["tabindex","label-value","label-attr","button-label","options","error-message"],componentName:l}));n(63595),n(30576),n(21374),n(27092),n(34884),n(29172),customElements.define(l,f)},98096:(t,e,n)=>{n.d(e,{A:()=>s,T:()=>o});var i=n(3393),r=n(97810);const o=(0,r.xE)("saml-group-mappings-internal"),a=(0,i.y)({componentName:o,baseSelector:""}),s=class extends a{static get observedAttributes(){return["invalid"].concat(a.observedAttributes||[])}constructor(){super(),this.innerHTML='\n <descope-text-field variant="body2" bordered="true"></descope-text-field>\n <descope-mappings-field></descope-mappings-field>\n ',this.groupInputElement=this.querySelector("descope-text-field"),this.mappingsElement=this.querySelector("descope-mappings-field")}resetInvalidIndication(){this.removeAttribute("invalid")}handleMappingsInvalidChange(t){t.includes("invalid")&&(this.mappingsElement.hasAttribute("invalid")||this.resetInvalidIndication())}initFocusHandler(){this.addEventListener("focus",(t=>{t.isTrusted&&(this.mappingsElement.checkValidity()?this.groupInputElement:this.mappingsElement).focus()}))}init(){this.initFocusHandler(),super.init?.(),(0,r.EA)(this,this.groupInputElement,{mapAttrs:{"label-group":"label"},includeAttrs:["size","label-group","readonly","disabled"]}),(0,r.EA)(this,this.mappingsElement,{includeAttrs:["size","full-width","label-value","label-attr","button-label","separator","options","readonly","disabled","data-errormessage-pattern-mismatch"]}),(0,r.mx)(this.mappingsElement,this.handleMappingsInvalidChange.bind(this),{includeAttrs:["invalid"]})}get value(){return{group:this.groupInputElement.value,mappings:this.mappingsElement.value}}set value(t){t?.group&&"string"==typeof t.group&&(this.groupInputElement.value=t.group),Array.isArray(t?.mappings)&&(this.mappingsElement.value=t.mappings)}getValidity(){return this.groupInputElement.checkValidity()?this.mappingsElement.checkValidity()?{}:this.mappingsElement.validity:this.groupInputElement.validity}#o(t){if(t){if(!this.groupInputElement.checkValidity())return void this.groupInputElement.setAttribute("invalid","true");this.mappingsElement.checkValidity()||this.mappingsElement.setAttribute("invalid","true")}}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),"invalid"===t&&this.#o("true"===n)}}},9894:(t,e,n)=>{n.r(e);var i=n(98096);customElements.define(i.T,i.A)},45103:(t,e,n)=>{n.r(e),n.d(e,{SamlGroupMappingsClass:()=>c,componentName:()=>s}),n(25003);var i=n(79365),r=n(9696),o=n(97810),a=n(98096);const s=(0,o.xE)("saml-group-mappings"),{host:l,groupInput:p,errorMessage:d}={host:{selector:()=>":host"},groupInput:{selector:"descope-text-field"},errorMessage:{selector:"::part(error-message)"}},c=(0,r.Zz)((0,i.RF)({mappings:{hostWidth:{...l,property:"width"},hostDirection:{...l,property:"direction"},groupNameInputMarginBottom:{...p,property:"margin-bottom"},errorMessageIcon:{...d,property:"background-image"},errorMessageIconSize:{...d,property:"background-size"},errorMessageIconPadding:{...d,property:"padding-inline-start"},errorMessageIconRepeat:{...d,property:"background-repeat"},errorMessageIconPosition:{...d,property:"background-position"}}}),i.VO,(0,i.OZ)({proxyProps:["value","selectionStart"],inputEvent:"input",triggerValidationEvents:["mapping-item-added","mapping-item-removed"],proxyParentValidation:!0}),i.tQ,(t=>class extends t{init(){super.init?.();const t=document.createElement("template");t.innerHTML=`\n <${a.T}\n tabindex="-1"\n ></${a.T}>\n `,this.baseElement.appendChild(t.content.cloneNode(!0)),this.inputElement=this.shadowRoot.querySelector(a.T),(0,o.EA)(this,this.inputElement,{includeAttrs:["size","full-width","label-group","label-value","label-attr","button-label","separator","options","readonly","disabled"]}),(0,o.Gh)(this,this.inputElement,{includeAttrs:["invalid"]})}}))((0,i.tz)({slots:[],wrappedEleName:"vaadin-custom-field",style:()=>"\n :host {\n display: inline-flex;\n max-width: 100%;\n direction: ltr;\n }\n\n vaadin-custom-field {\n line-height: unset;\n width: 100%;\n }\n\n descope-text-field {\n width: auto;\n }\n\n descope-mappings-field {\n display: block;\n }\n ",excludeAttrsSync:["tabindex","label-group","label-value","label-attr","button-label","separator","options","error-message"],componentName:s}));n(21374),n(84719),n(9894),customElements.define(s,c)},73551:(t,e,n)=>{n.d(e,{$J:()=>u,I4:()=>a,Kl:()=>h,LJ:()=>c,Qv:()=>o,X6:()=>l,cy:()=>i,fu:()=>p,kG:()=>d,lS:()=>s,zm:()=>r});const i=t=>`\n :host {\n padding: calc(var(${t.inputOutlineWidth}) + var(${t.inputOutlineOffset}))\n }\n`,r=t=>`\n ${t} {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n }\n`,o=t=>`\n ${t}::part(input-field) {\n overflow: hidden;\n padding: 0;\n box-shadow: none;\n }\n`,a=t=>`\n ${t} > label,\n ${t}::part(label),\n ${t}::part(required-indicator) {\n cursor: pointer;\n }\n`,s=(t,e="input")=>`\n ${t}[disabled] > ${e}:placeholder-shown,\n\t${t}[readonly] > ${e}:placeholder-shown {\n\t\topacity: 1;\n\t}\n`,l=()=>"\n :host {\n --vaadin-field-default-width: auto;\n box-sizing: border-box;\n }\n",p=t=>`\n ${t}::part(input-field)::after {\n opacity: 0;\n }\n`,d=t=>`\n ${t}::part(input-field)::after {\n background: none;\n }\n`,c=(t,e)=>`\n ${r(t)}\n ${a(t)}\n ${s(t)}\n ${o(t)}\n ${((t,e)=>`\n ${t} input:-webkit-autofill,\n ${t} input:-webkit-autofill::first-line,\n ${t} input:-webkit-autofill:hover,\n ${t} input:-webkit-autofill:active,\n ${t} input:-webkit-autofill:focus {\n -webkit-text-fill-color: var(${e.inputValueTextColor});\n box-shadow: 0 0 0 var(${e.inputHeight}) var(${e.inputBackgroundColor}) inset;\n }\n`)(t,e)}\n ${d(t)}\n ${(t=>`\n ${t}::before {\n\t\theight: unset;\n\t}\n`)(t)}\n ${(t=>`\n ${t} > input {\n -webkit-mask-image: none;\n min-height: 0;\n box-sizing: border-box;\n }\n`)(t)}\n ${(t=>`\n ${t}::part(input-field)::after {\n border: none;\n }\n`)(t)}\n`,u=t=>`\n :host ::part(error-message) {\n direction: ltr;\n }\n :host([required]) ::part(required-indicator) {\n width: 1em;\n display: inline-flex;\n }\n :host([required]) ::part(required-indicator)::after {\n position: static;\n }\n :host([has-label]) ::part(label) {\n padding-right: 0;\n padding-bottom: 0;\n display: flex;\n width: 100%;\n }\n ${t} [slot="label"] {\n max-width: calc(100% - 1em);\n overflow: hidden;\n text-overflow: ellipsis;\n padding-bottom: 0.5em;\n }\n`,h=()=>'\n :host([label-type="floating"]) {\n position: relative;\n }\n :host([label-type="floating"][has-label]) [slot="label"] {\n padding: 0;\n }\n :host([label-type="floating"][has-label]) > ::part(label) {\n z-index: 1;\n padding: 0;\n width: auto;\n }\n '}}]);
2
2
  //# sourceMappingURL=mapping-fields-descope-saml-group-mappings-index-js.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapping-fields-descope-saml-group-mappings-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-text/src/component/TextClass.js","webpack://@descope/web-components-ui/../components/descope-text/src/component/index.js","webpack://@descope/web-components-ui/./src/baseClasses/createBaseInputClass.js","webpack://@descope/web-components-ui/./src/components/descope-button/ButtonClass.js","webpack://@descope/web-components-ui/./src/components/descope-button/clickableMixin.js","webpack://@descope/web-components-ui/./src/components/descope-button/index.js","webpack://@descope/web-components-ui/./src/components/descope-icon/IconClass.js","webpack://@descope/web-components-ui/./src/components/descope-icon/helpers.js","webpack://@descope/web-components-ui/./src/components/descope-text-field/TextFieldClass.js","webpack://@descope/web-components-ui/./src/components/descope-text-field/index.js","webpack://@descope/web-components-ui/./src/components/descope-text-field/textFieldMappings.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-mappings-field/descope-mapping-item/MappingItem.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-mappings-field/descope-mapping-item/index.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-mappings-field/descope-mappings-field-internal/MappingsFieldInternal.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-mappings-field/descope-mappings-field-internal/index.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-mappings-field/MappingsFieldClass.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-mappings-field/index.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-saml-group-mappings/descope-saml-group-mappings-internal/SamlGroupMappingsInternal.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-saml-group-mappings/descope-saml-group-mappings-internal/index.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-saml-group-mappings/SamlGroupMappingsClass.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-saml-group-mappings/index.js","webpack://@descope/web-components-ui/./src/helpers/themeHelpers/resetHelpers.js"],"sourcesContent":["import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n getComponentName,\n injectStyle,\n observeChildren,\n} from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('text');\n\nclass RawText extends createBaseClass({\n componentName,\n baseSelector: ':host > slot',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <slot part=\"text-wrapper\"></slot>\n `;\n\n injectStyle(`\n :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n `, this);\n }\n\n get hideWhenEmpty() {\n return this.getAttribute('hide-when-empty') === 'true';\n }\n\n init() {\n super.init();\n\n observeChildren(this, () => {\n const hasChildren = !!this.childNodes.length;\n this.style.display = !hasChildren && this.hideWhenEmpty ? 'none' : '';\n });\n }\n}\n\nexport const TextClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontSize: {},\n textColor: { property: 'color' },\n textLineHeight: { property: 'line-height' },\n textLetterSpacing: { property: 'letter-spacing' },\n textShadow: {},\n textAlign: {},\n textTransform: {},\n fontFamily: {},\n fontStyle: {},\n fontWeight: {},\n borderWidth: {},\n borderStyle: {},\n borderColor: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawText);\n","import { componentName, TextClass } from './TextClass';\n\ncustomElements.define(componentName, TextClass);\n\nexport { TextClass, componentName };\n","import { compose } from '../helpers';\nimport {\n changeMixin,\n inputEventsDispatchingMixin,\n inputValidationMixin,\n normalizeBooleanAttributesMixin,\n} from '../mixins';\nimport { createBaseClass } from './createBaseClass';\n\nexport const createBaseInputClass = (...args) =>\n compose(\n inputValidationMixin,\n changeMixin,\n normalizeBooleanAttributesMixin,\n inputEventsDispatchingMixin\n )(createBaseClass(...args));\n","import { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n} from '../../mixins';\nimport { IconClass } from '../descope-icon/IconClass';\nimport { clickableMixin } from './clickableMixin';\n\nexport const componentName = getComponentName('button');\n\nconst resetStyles = `\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n`;\n\nconst iconStyles = `\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n`;\n\nconst editorOverrides = `vaadin-button::part(label) { pointer-events: none; }`;\n\nconst { host, label, slottedIcon } = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n slottedIcon: { selector: () => '::slotted(descope-icon)' },\n};\n\nlet loadingIndicatorStyles;\n\nexport const ButtonClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { property: 'width' },\n hostHeight: { property: 'height' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n fontFamily: {},\n\n cursor: {},\n backgroundColor: {},\n\n outlineOffset: {},\n outlineColor: {},\n outlineStyle: {},\n outlineWidth: {},\n\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n verticalPadding: [{ property: 'padding-top' }, { property: 'padding-bottom' }],\n horizontalPadding: [\n { property: 'padding-right', fallback: '0.875em' },\n { property: 'padding-left', fallback: '0.875em' },\n ],\n\n labelTextColor: { property: 'color' },\n iconColor: {\n selector: () => `::slotted(*)`,\n property: IconClass.cssVarList.fill,\n },\n labelTextDecoration: { ...label, property: 'text-decoration' },\n labelSpacing: { ...label, property: 'gap' },\n textAlign: { ...label, property: 'justify-content', fallback: 'center' },\n\n iconSize: [\n { ...slottedIcon, property: 'width' },\n { ...slottedIcon, property: 'height' },\n ],\n },\n }),\n clickableMixin,\n draggableMixin,\n componentNameValidationMixin\n)(\n createProxy({\n slots: ['', 'prefix', 'label', 'suffix'],\n wrappedEleName: 'vaadin-button',\n style: () => `\n\t\t\t${resetStyles}\n\t\t\t${iconStyles}\n\t\t\t${loadingIndicatorStyles}\n\t\t\t${editorOverrides}\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${ButtonClass.cssVarList.outlineWidth}) + var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width=\"true\"]) {\n width: var(${ButtonClass.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${ButtonClass.cssVarList.hostHeight}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square=\"true\"]:not([full-width=\"true\"]) {\n\t\t\t\twidth: calc(var(${ButtonClass.cssVarList.hostWidth}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n\nconst { color, fontSize } = ButtonClass.cssVarList;\nloadingIndicatorStyles = `\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading=\"true\"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${color});\n\t\ttop: calc(50% - (var(${fontSize}) / 2));\n\t\tleft: calc(50% - (var(${fontSize}) / 2));\n\t\tborder-width: calc(var(${fontSize}) / 10);\n\t\twidth: var(${fontSize});\n\t\theight: var(${fontSize});\n\t}\n\t:host([disabled=\"true\"]),\n\t:host([loading=\"true\"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading=\"true\"])::part(prefix),\n\t:host([loading=\"true\"])::part(label) {\n\t\tvisibility: hidden;\n\t}\n`;\n","export const clickableMixin = (superclass) =>\n class ClickableMixinClass extends superclass {\n get isLoading() {\n return this.getAttribute('loading') === 'true';\n }\n\n click() {\n this.isLoading || super.click();\n }\n };\n","import '@vaadin/button';\nimport { componentName, ButtonClass } from './ButtonClass';\n\ncustomElements.define(componentName, ButtonClass);\n\nexport { ButtonClass, componentName };\n","/* eslint-disable no-use-before-define */\nimport { createStyleMixin, draggableMixin, componentNameValidationMixin } from '../../mixins';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport { createIcon } from './helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('icon');\n\nclass RawIcon extends createBaseClass({ componentName, baseSelector: 'slot' }) {\n static get observedAttributes() {\n return ['src'];\n }\n\n #icon;\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<slot></slot>\n\t`;\n\n injectStyle(\n `\n\t\t\t:host > slot {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n `,\n this\n );\n }\n\n init() {\n super.init?.();\n this.toggleVisibility(this.src);\n }\n\n toggleVisibility(isVisible) {\n this.style.display = isVisible ? '' : 'none';\n }\n\n get src() {\n return this.getAttribute('src');\n }\n\n // in order to fill an SVG with `currentColor` override all of its `fill` and `path` nodes\n // with the value from the `st-fill` attribute\n // eslint-disable-next-line class-methods-use-this\n updateFillColor(node) {\n // set fill to root node and all its relevant selectors\n const elementsToReplace = [node, ...node.querySelectorAll('*[fill]')];\n\n elementsToReplace.forEach((ele) => {\n ele.setAttribute(\n 'fill',\n `var(${IconClass.cssVarList.fill}, ${ele.getAttribute('fill') || \"''\"})`\n );\n });\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue === newValue) return;\n\n if (attrName === 'src') {\n this.toggleVisibility(newValue);\n\n createIcon(this.src).then((res) => {\n this.innerHTML = '';\n if (res) {\n const clonedNode = res.cloneNode(true);\n this.updateFillColor(clonedNode);\n this.appendChild(clonedNode);\n }\n });\n }\n }\n}\n\nexport const IconClass = compose(\n createStyleMixin({\n mappings: {\n fill: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawIcon);\n","import DOMPurify from 'dompurify';\n\nconst getFileExtension = (path) => {\n const match = path.match(/\\.([0-9a-z]+)(?:[\\\\?#]|$)/i);\n return match ? match[1] : null;\n};\n\nconst base64Prefix = 'data:image/svg+xml;base64,';\n\nconst isBase64Svg = (src) => src.startsWith(base64Prefix);\n\nconst createImgEle = (src) => {\n const ele = document.createElement('img');\n ele.setAttribute('src', src);\n return ele;\n};\n\nconst createSvgEle = (text) => {\n // we want to purify the SVG to avoid XSS attacks\n const clean = DOMPurify.sanitize(text, { USE_PROFILES: { svg: true, svgFilters: true } });\n\n const parser = new DOMParser();\n const ele = parser.parseFromString(clean, 'image/svg+xml').querySelector('svg');\n return ele;\n};\n\nexport const createIcon = async (src) => {\n try {\n let ele;\n if (isBase64Svg(src)) {\n // handle base64 source\n const svgXml = atob(src.slice(base64Prefix.length));\n ele = createSvgEle(svgXml);\n } else if (getFileExtension(src) === 'svg') {\n // handle urls\n const fetchedSrc = await fetch(src);\n const text = await fetchedSrc.text();\n ele = createSvgEle(text);\n } else {\n // handle binary\n ele = createImgEle(src);\n }\n\n ele.style.setProperty('max-width', '100%');\n ele.style.setProperty('max-height', '100%');\n\n return ele;\n } catch {\n return null;\n }\n};\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../mixins';\nimport textFieldMappings from './textFieldMappings';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n inputFloatingLabelStyle,\n resetInputLabelPosition,\n resetInputOverrides,\n useHostExternalPadding,\n} from '../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('text-field');\n\nconst observedAttrs = ['type', 'label-type', 'copy-to-clipboard'];\n\nconst customMixin = (superclass) =>\n class TextFieldClass extends superclass {\n static get observedAttributes() {\n return observedAttrs.concat(superclass.observedAttributes || []);\n }\n\n icon;\n\n init() {\n super.init?.();\n }\n\n renderCopyToClipboard(shouldRender) {\n if (!shouldRender) {\n this.icon?.remove();\n return;\n }\n\n const iconInitConfig = {\n icon: 'vaadin:copy-o',\n title: 'Copy',\n style: 'cursor: pointer',\n };\n\n const iconCopiedConfig = {\n icon: 'vaadin:check-circle-o',\n title: 'Copied',\n style: 'cursor: initial',\n };\n\n this.icon = Object.assign(document.createElement('vaadin-icon'), {\n slot: 'suffix',\n ...iconInitConfig,\n });\n\n this.baseElement.appendChild(this.icon);\n this.icon.addEventListener('click', () => {\n navigator.clipboard.writeText(this.value);\n Object.assign(this.icon, iconCopiedConfig);\n\n // we want the icon to go back to the initial state after 5 seconds\n setTimeout(() => {\n Object.assign(this.icon, iconInitConfig);\n }, 5000);\n });\n }\n\n onLabelClick() {\n this.focus();\n }\n\n attributeChangedCallback(attrName, oldVal, newVal) {\n super.attributeChangeCallback?.(attrName, oldVal, newVal);\n\n // Vaadin doesn't allow to change the input type attribute.\n // We need the ability to do that, so we're overriding their\n // behavior with their private API.\n // When receiving a `type` attribute, we use their private API\n // to set it on the input.\n if (attrName === 'type') {\n this.baseElement._setType(newVal);\n }\n\n if (oldVal !== newVal) {\n if (attrName === 'label-type') {\n if (newVal === 'floating') {\n this.addEventListener('click', this.onLabelClick);\n } else {\n this.removeEventListener('click', this.onLabelClick);\n }\n } else if (attrName === 'copy-to-clipboard') {\n this.renderCopyToClipboard(newVal === 'true');\n }\n }\n }\n };\n\nexport const TextFieldClass = compose(\n createStyleMixin({\n mappings: textFieldMappings,\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'], useProxyTargets: true }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: ['prefix', 'suffix'],\n wrappedEleName: 'vaadin-text-field',\n style: () => `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tpadding: calc(var(${TextFieldClass.cssVarList.inputOutlineWidth}) + var(${\n TextFieldClass.cssVarList.inputOutlineOffset\n }));\n box-sizing: border-box;\n\t\t\t}\n :host(:is([readonly], [disabled])) ::slotted(:is(input, textarea):placeholder-shown) {\n opacity: 1;\n }\n\n vaadin-text-field[label-type=\"floating\"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-text-field[label-type=\"floating\"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n ${resetInputLabelPosition('vaadin-text-field')}\n\t\t\t${useHostExternalPadding(TextFieldClass.cssVarList)}\n\t\t\t${resetInputOverrides('vaadin-text-field', TextFieldClass.cssVarList)}\n ${inputFloatingLabelStyle()}\n\n vaadin-text-field vaadin-icon {\n align-self: center;\n }\n\t\t`,\n excludeAttrsSync: ['tabindex', 'style'],\n componentName,\n })\n);\n","import '@vaadin/text-field';\nimport '@vaadin/icons';\nimport '@vaadin/icon';\n\nimport { componentName, TextFieldClass } from './TextFieldClass';\n\ncustomElements.define(componentName, TextFieldClass);\n\nexport { TextFieldClass, componentName };\n","const {\n host,\n label,\n placeholder,\n requiredIndicator,\n inputField,\n input,\n inputMask,\n helperText,\n errorMessage,\n disabledPlaceholder,\n inputDisabled,\n inputIcon,\n externalInput,\n externalInputDisabled,\n externalPlaceholder,\n externalDisabledPlaceholder,\n} = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n placeholder: [\n { selector: '> input:placeholder-shown' },\n { selector: () => ':host::slotted(input:placeholder-shown)' },\n ],\n disabledPlaceholder: { selector: '> input:disabled::placeholder' },\n inputField: { selector: '::part(input-field)' },\n input: { selector: 'input' },\n inputMask: { selector: '::part(input-field)::before' },\n inputDisabled: { selector: 'input:disabled' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n inputIcon: { selector: 'vaadin-icon' },\n externalInput: { selector: () => '::slotted(input)' },\n externalInputDisabled: { selector: () => '::slotted(input:disabled)' },\n externalPlaceholder: { selector: () => '::slotted(input:placeholder-shown)' },\n externalDisabledPlaceholder: { selector: () => '::slotted(input:disabled::placeholder)' },\n};\n\nexport default {\n // we apply font-size also on the host so we can set its width with em\n fontSize: [{}, host],\n fontFamily: [label, inputField, helperText, errorMessage],\n\n labelFontSize: { ...label, property: 'font-size' },\n labelFontWeight: { ...label, property: 'font-weight' },\n\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n { ...label, property: '-webkit-text-fill-color' },\n { ...requiredIndicator, property: '-webkit-text-fill-color' },\n ],\n\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: { ...host, property: 'direction' },\n inputDirection: { ...input, property: 'direction' },\n\n inputBackgroundColor: [\n { ...inputField, property: 'background-color' },\n { ...inputMask, property: 'background-color' },\n ],\n\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n errorMessageIcon: { ...errorMessage, property: 'background-image' },\n errorMessageIconSize: { ...errorMessage, property: 'background-size' },\n errorMessageIconPadding: { ...errorMessage, property: 'padding-inline-start' },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: { ...errorMessage, property: 'background-position' },\n\n helperTextColor: { ...helperText, property: '-webkit-text-fill-color' },\n\n inputValueTextColor: [\n { ...inputField, property: 'color' },\n { ...inputDisabled, property: '-webkit-text-fill-color' },\n { ...externalInputDisabled, property: '-webkit-text-fill-color' },\n ],\n inputCaretTextColor: [\n { ...input, property: 'caret-color' },\n { ...externalInput, property: 'caret-color' },\n ],\n\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n\n inputBorderColor: { ...inputField, property: 'border-color' },\n inputBorderWidth: { ...inputField, property: 'border-width' },\n inputBorderStyle: { ...inputField, property: 'border-style' },\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n\n inputHeight: { ...inputField, property: 'height' },\n inputHorizontalPadding: [\n { ...input, property: 'padding-left' },\n { ...input, property: 'padding-right' },\n { ...externalInput, property: 'padding-left' },\n { ...externalInput, property: 'padding-right' },\n ],\n\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineStyle: { ...inputField, property: 'outline-style' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n\n textAlign: {},\n\n inputTextAlign: [\n { ...input, property: 'text-align' },\n { ...externalInput, property: 'text-align' },\n ],\n\n inputPlaceholderColor: [\n { selector: () => ':host input:placeholder-shown', property: 'color' },\n { ...externalPlaceholder, property: 'color' },\n { ...placeholder, property: 'color' },\n { ...disabledPlaceholder, property: '-webkit-text-fill-color' },\n { ...externalDisabledPlaceholder, property: '-webkit-text-fill-color' },\n ],\n\n labelPosition: { ...label, property: 'position' },\n labelTopPosition: { ...label, property: 'top' },\n labelHorizontalPosition: [\n { ...label, property: 'left' },\n { ...label, property: 'right' },\n ],\n inputTransformY: { ...label, property: 'transform' },\n inputTransition: { ...label, property: 'transition' },\n marginInlineStart: { ...label, property: 'margin-inline-start' },\n placeholderOpacity: [\n { selector: '> input:placeholder-shown', property: 'opacity' },\n { ...externalPlaceholder, property: 'opacity' },\n ],\n inputVerticalAlignment: [\n { ...inputField, property: 'align-items' },\n { ...externalInput, property: 'align-items' },\n ],\n valueInputHeight: [\n { ...input, property: 'height' },\n { ...externalInput, property: 'height' },\n ],\n valueInputMarginBottom: [\n { ...input, property: 'margin-bottom' },\n { ...externalInput, property: 'margin-bottom' },\n ],\n\n inputIconOffset: [\n { ...inputIcon, property: 'margin-right' },\n { ...inputIcon, property: 'margin-left' },\n ],\n inputIconSize: { ...inputIcon, property: 'font-size' },\n inputIconColor: { ...inputIcon, property: 'color' },\n};\n","import { injectStyle } from '@descope-ui/common/components-helpers';\nimport { createBaseInputClass } from '../../../../baseClasses/createBaseInputClass';\nimport { forwardAttrs, getComponentName } from '../../../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('mapping-item');\n\nconst inputAttrs = [\n 'size',\n 'bordered',\n 'readonly',\n 'full-width',\n 'disabled',\n 'st-error-message-icon',\n 'st-error-message-icon-size',\n 'st-error-message-icon-padding',\n];\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: 'div' });\n\nclass MappingItem extends BaseInputClass {\n static get observedAttributes() {\n return [].concat(BaseInputClass.observedAttributes || [], inputAttrs, [\n 'separator',\n 'options',\n 'invalid',\n 'disabled',\n ]);\n }\n\n get separator() {\n return this.getAttribute('separator') || 'map to';\n }\n\n get value() {\n const attributeValue = this.attributeInput.value;\n const inputValue = this.valueInput.value;\n if (attributeValue && inputValue) {\n return { [attributeValue]: inputValue };\n }\n return null;\n }\n\n set value(mapping) {\n if (Object.entries(mapping).length !== 1) {\n // eslint-disable-next-line no-console\n console.error(\n 'descope-mapping item expected expects only one key-value pair in the value but received: ',\n mapping\n );\n return;\n }\n const [attribute, value] = Object.entries(mapping)[0];\n this.valueInput.value = value;\n this.attributeInput.value = attribute;\n // The event needs to be dispatched to trigger the validation if setting the value externally\n this.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div class=\"wrapper\" part=\"wrapper\">\n <descope-text-field required=\"true\"></descope-text-field>\n <div class=\"separator\" part=\"separator\">${this.separator}</div>\n <descope-combo-box\n item-label-path=\"data-name\"\n item-value-path=\"data-id\"\n required=\"true\"\n >\n </descope-combo-box>\n <descope-button variant=\"link\" mode=\"primary\">\n <vaadin-icon icon=\"vaadin:minus\"></vaadin-icon>\n </descope-button>\n </div>\n\t`;\n\n injectStyle(\n `\n .wrapper {\n display: flex;\n }\n .separator {\n text-align: center;\n flex-shrink: 0;\n }\n `,\n this\n );\n\n this.valueInput = this.shadowRoot.querySelector('descope-text-field');\n this.attributeInput = this.shadowRoot.querySelector('descope-combo-box');\n this.inputs = [this.valueInput, this.attributeInput];\n this.removeButton = this.shadowRoot.querySelector('descope-button');\n\n forwardAttrs(this, this.valueInput, {\n includeAttrs: inputAttrs,\n });\n forwardAttrs(this, this.attributeInput, {\n includeAttrs: [...inputAttrs, 'options'],\n mapAttrs: { options: 'data' },\n });\n forwardAttrs(this, this.removeButton, {\n includeAttrs: ['disabled'],\n });\n }\n\n initRemoveButton() {\n this.removeButton.addEventListener('click', () =>\n this.dispatchEvent(new CustomEvent('mapping-item-removed', { bubbles: true, composed: true }))\n );\n }\n\n init() {\n super.init?.();\n this.initRemoveButton();\n }\n\n getValidity() {\n const attributeValue = this.attributeInput.value;\n const inputValue = this.valueInput.value;\n if (!attributeValue || !inputValue) {\n return { badInput: true };\n }\n return {};\n }\n\n reportValidity() {\n this.inputs.forEach((input) => input.reportValidity());\n }\n\n focus() {\n const focusedElement =\n this.checkValidity() || !this.valueInput.checkValidity()\n ? this.valueInput\n : this.attributeInput;\n focusedElement.focus();\n }\n\n handleSeparatorChange() {\n this.shadowRoot.querySelector('.separator').textContent = this.separator;\n }\n\n #handleInvalidMapping(invalid) {\n if (invalid === 'true') {\n const inputValue = this.valueInput.value;\n if (!inputValue) {\n this.valueInput.setAttribute('invalid', 'true');\n this.valueInput.setAttribute('error-message', this.defaultErrorMsgValueMissing);\n }\n\n const attributeValue = this.attributeInput.value;\n if (!attributeValue) {\n this.attributeInput.setAttribute('invalid', 'true');\n this.attributeInput.setAttribute('error-message', this.defaultErrorMsgValueMissing);\n }\n }\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (attrName === 'separator') {\n this.handleSeparatorChange();\n }\n\n if (attrName === 'invalid') {\n this.#handleInvalidMapping(newValue);\n }\n }\n}\n\nexport default MappingItem;\n","import MappingItem, { componentName } from './MappingItem';\n\ncustomElements.define(componentName, MappingItem);\n","import { createBaseInputClass } from '../../../../baseClasses/createBaseInputClass';\nimport {\n getComponentName,\n forwardAttrs,\n observeChildren,\n} from '../../../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('mappings-field-internal');\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: 'div' });\n\nclass MappingsFieldInternal extends BaseInputClass {\n #errorItem;\n\n static get observedAttributes() {\n return [].concat(BaseInputClass.observedAttributes || [], [\n 'label-value',\n 'label-attr',\n 'button-label',\n 'invalid',\n 'readonly',\n 'disabled',\n 'st-error-message-icon',\n 'st-error-message-icon-size',\n 'st-error-message-icon-padding',\n ]);\n }\n\n // eslint-disable-next-line class-methods-use-this\n isValidDataType(data) {\n try {\n return data.every(\n (obj) =>\n typeof obj === 'object' &&\n !Array.isArray(obj) &&\n Object.getOwnPropertyNames(obj).length === 1 &&\n typeof obj[Object.keys(obj)[0]] === 'string' &&\n obj[Object.keys(obj)[0]].trim() !== ''\n );\n } catch (e) {\n return false;\n }\n }\n\n get labelValue() {\n return this.getAttribute('label-value') || 'Value';\n }\n\n get labelAttr() {\n return this.getAttribute('label-attr') || 'Attribute';\n }\n\n get buttonLabel() {\n return this.getAttribute('button-label') || 'Add mapping';\n }\n\n get options() {\n return this.getAttribute('options') || [];\n }\n\n addNewMappingItem(focusNewItem) {\n const newMappingItem = document.createElement('descope-mapping-item');\n newMappingItem.setAttribute('bordered', 'true');\n this.mappingsContainerEle.appendChild(newMappingItem);\n forwardAttrs(this, newMappingItem, {\n includeAttrs: [\n 'size',\n 'full-width',\n 'separator',\n 'options',\n 'disabled',\n 'st-error-message-icon',\n 'st-error-message-icon-size',\n 'st-error-message-icon-padding',\n ],\n });\n // This needs to be done with the timeout, otherwise the validation is performed\n // before the new item is added and thus returns a wrong result\n setTimeout(() => {\n this.setCustomValidity('');\n newMappingItem.addEventListener('mapping-item-removed', () => {\n // If the removed item was the one that was invalid, we need to reset the invalid indication for the internal\n if (newMappingItem === this.#errorItem) {\n this.resetInvalidIndication();\n this.#errorItem = undefined;\n }\n newMappingItem.remove();\n this.setCustomValidity('');\n });\n this.dispatchEvent(new CustomEvent('mapping-item-added', { bubbles: true, composed: true }));\n if (focusNewItem) {\n newMappingItem.focus();\n }\n }, 0);\n return newMappingItem;\n }\n\n get items() {\n return Array.from(this.mappingsContainerEle.querySelectorAll('descope-mapping-item'));\n }\n\n get value() {\n return this.items.reduce((acc, item) => {\n if (!item.value) {\n return acc;\n }\n\n return [...acc, item.value];\n }, []);\n }\n\n set value(mappings) {\n if (!this.isValidDataType(mappings)) {\n // eslint-disable-next-line no-console\n console.error(\n 'received invalid value to set - should be an array of objects with one key-value pair'\n );\n return;\n }\n\n const currentItems = this.items;\n\n // Remove extra mapping items we don't need\n if (currentItems.length > mappings.length) {\n for (let i = mappings.length; i < currentItems.length; i++) {\n this.mappingsContainerEle.removeChild(currentItems[i]);\n }\n }\n\n // Add or update items\n mappings.forEach((mapping, index) => {\n const mappingItem = currentItems[index];\n if (mappingItem) {\n // Set existing item value\n mappingItem.value = mapping;\n } else {\n // Add new item\n const newMappingItem = this.addNewMappingItem(false);\n // Setting the new item value needs to be done with the timeout,\n // otherwise the value is not set correctly\n setTimeout(() => {\n newMappingItem.value = mapping;\n }, 0);\n }\n });\n }\n\n constructor() {\n super();\n\n this.innerHTML = `\n <div class=\"labels-container\" part=\"labels\"></div>\n <div class=\"mappings-container\"></div>\n <div class=\"button-container\"></div>\n `;\n\n this.labelsEle = this.querySelector('.labels-container');\n this.mappingsContainerEle = this.querySelector('.mappings-container');\n this.buttonContainer = this.querySelector('.button-container');\n }\n\n initLabels() {\n this.labelsEle.innerHTML = `\n <descope-text variant=\"body2\" part=\"value-label\">${this.labelValue}</descope-text>\n <descope-text variant=\"body2\" part=\"attr-label\">${this.labelAttr}</descope-text>\n `;\n }\n\n initAddButton() {\n this.buttonContainer.innerHTML = `\n <descope-button variant=\"link\" mode=\"primary\" disabled=\"${this.isDisabled}\">\n <vaadin-icon icon=\"vaadin:plus\"></vaadin-icon>\n ${this.buttonLabel}\n </descope-button>\n `;\n const button = this.querySelector('descope-button');\n button.onclick = () => {\n this.addNewMappingItem(true);\n };\n forwardAttrs(this, button, {\n includeAttrs: ['disabled'],\n });\n }\n\n #onMappingsContainerChildrenChange() {\n this.labelsEle.style.display = this.items.length ? 'grid' : 'none';\n }\n\n init() {\n // This event listener needs to be placed before the super.init() call\n this.addEventListener('focus', (e) => {\n // we want to ignore focus events we are dispatching\n if (e.isTrusted) {\n const focusedElement =\n this.#errorItem || this.items[0] || this.querySelector('descope-button');\n focusedElement.focus();\n }\n });\n\n super.init?.();\n this.initLabels();\n this.initAddButton();\n\n // This event listener is responsible for removing the invalid attribute\n // from the internal once the invalid item turns valid\n this.addEventListener('input', () => {\n const isErrorItemMounted = this.mappingsContainerEle.contains(this.#errorItem);\n if (isErrorItemMounted && this.#errorItem?.checkValidity()) {\n // Item has changed, it was invalid before and now it's valid\n this.resetInvalidIndication();\n this.#errorItem.removeAttribute('invalid');\n this.#errorItem = undefined;\n }\n });\n\n observeChildren(this.mappingsContainerEle, this.#onMappingsContainerChildrenChange.bind(this));\n }\n\n resetInvalidIndication() {\n this.removeAttribute('invalid');\n }\n\n getValidity() {\n const errorItem = this.items.find((item) => !item.checkValidity());\n if (errorItem) {\n return errorItem.validity;\n }\n\n return {};\n }\n\n #handleInvalidMappings(isInvalid) {\n if (isInvalid) {\n this.#errorItem = this.items.find((item) => !item.checkValidity());\n this.#errorItem?.reportValidity();\n this.#errorItem?.setAttribute('invalid', 'true');\n }\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n if (attrName === 'label-value' || attrName === 'label-attr') {\n this.initLabels();\n }\n if (attrName === 'button-label') {\n this.initAddButton();\n }\n if (attrName === 'invalid') {\n this.#handleInvalidMappings(newValue === 'true');\n }\n if (attrName === 'readonly') {\n this.toggleAttribute('inert', newValue === 'true');\n }\n }\n}\n\nexport default MappingsFieldInternal;\n","import MappingsFieldInternal, { componentName } from './MappingsFieldInternal';\n\ncustomElements.define(componentName, MappingsFieldInternal);\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../../mixins';\nimport { TextClass } from '@descope-ui/descope-text/class';\nimport { compose } from '../../../helpers';\nimport { forwardAttrs, getComponentName, syncAttrs } from '../../../helpers/componentHelpers';\nimport { componentName as descopeInternalComponentName } from './descope-mappings-field-internal/MappingsFieldInternal';\n\nexport const componentName = getComponentName('mappings-field');\n\nconst customMixin = (superclass) =>\n class MappingsFieldMixinClass extends superclass {\n get defaultValues() {\n const defaultValuesAttr = this.getAttribute('default-values');\n if (defaultValuesAttr) {\n try {\n return JSON.parse(defaultValuesAttr);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"default-values\" -', e.message);\n }\n }\n return [];\n }\n\n setDefaultValues() {\n const initialDefaultValues = this.defaultValues;\n if (Object.keys(initialDefaultValues).length > 0) {\n this.inputElement.value = initialDefaultValues;\n }\n }\n\n init() {\n super.init?.();\n const template = document.createElement('template');\n\n template.innerHTML = `\n <${descopeInternalComponentName}\n tabindex=\"-1\"\n ></${descopeInternalComponentName}>\n `;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n forwardAttrs(this, this.inputElement, {\n includeAttrs: [\n 'size',\n 'full-width',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'separator',\n 'options',\n 'default-values',\n 'invalid',\n 'readonly',\n 'disabled',\n 'st-error-message-icon',\n 'st-error-message-icon-size',\n 'st-error-message-icon-padding',\n ],\n });\n\n // This is required since when we remove the invalid attribute from the internal mappings field,\n // we want to reflect the change in the parent component\n syncAttrs(this, this.inputElement, { includeAttrs: ['invalid'] });\n\n this.setDefaultValues();\n }\n };\n\nconst {\n host,\n helperText,\n errorMessage,\n mappingItem,\n labels,\n labelsText,\n valueLabel,\n attrLabel,\n separator,\n labelsContainer,\n} = {\n host: { selector: () => ':host' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n mappingItem: { selector: 'descope-mapping-item::part(wrapper)' },\n labels: { selector: 'descope-mappings-field-internal [part=\"labels\"] descope-text' },\n labelsText: {\n selector: 'descope-mappings-field-internal [part=\"labels\"] descope-text::part(text-wrapper)',\n },\n valueLabel: { selector: 'descope-mappings-field-internal [part=\"labels\"] [part=\"value-label\"]' },\n attrLabel: { selector: 'descope-mappings-field-internal [part=\"labels\"] [part=\"attr-label\"]' },\n separator: { selector: 'descope-mapping-item::part(separator)' },\n labelsContainer: { selector: 'descope-mappings-field-internal [part=\"labels\"]' },\n};\n\nexport const MappingsFieldClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n // we apply font-size also on the host so we can set its width with em\n fontSize: [{}, host, { ...separator, property: 'margin-top' }],\n fontFamily: [helperText, errorMessage, labels],\n separatorFontSize: { ...separator, property: 'font-size' },\n labelsFontSize: { ...labelsText, property: 'font-size' },\n labelsLineHeight: [\n { ...labelsText, property: 'line-height' },\n { ...labels, property: 'line-height' },\n ],\n labelTextColor: [\n { ...labels, property: TextClass.cssVarList.textColor },\n { ...separator, property: 'color' },\n ],\n itemMarginBottom: { ...mappingItem, property: 'margin-bottom' },\n valueLabelMinWidth: { ...valueLabel, property: 'min-width' },\n attrLabelMinWidth: { ...attrLabel, property: 'min-width' },\n labelsMarginBottom: { ...labelsContainer, property: 'margin-bottom' },\n separatorWidth: {},\n removeButtonWidth: {},\n },\n }),\n draggableMixin,\n proxyInputMixin({\n proxyProps: ['value', 'selectionStart'],\n inputEvent: 'input',\n proxyParentValidation: true,\n }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-custom-field',\n style: () => `\n :host {\n display: inline-flex;\n max-width: 100%;\n direction: ltr;\n }\n vaadin-custom-field {\n line-height: unset;\n width: 100%;\n }\n\n descope-mappings-field-internal [part=\"labels\"] {\n display: none;\n grid-template-columns: 1fr var(${MappingsFieldClass.cssVarList.separatorWidth}) 1fr var(${MappingsFieldClass.cssVarList.removeButtonWidth});\n }\n\n descope-mappings-field-internal [part=\"labels\"] [part=\"value-label\"],\n descope-mappings-field-internal [part=\"labels\"] [part=\"attr-label\"] {\n ${TextClass.cssVarList.fontWeight}: 500;\n }\n\n descope-mappings-field-internal [part=\"labels\"] [part=\"value-label\"] {\n grid-column: 1 / span 1;\n }\n\n descope-mappings-field-internal [part=\"labels\"] [part=\"attr-label\"] {\n grid-column: 3 / span 1;\n }\n\n descope-mapping-item::part(wrapper) {\n display: grid;\n grid-template-columns: 1fr var(${MappingsFieldClass.cssVarList.separatorWidth}) 1fr var(${MappingsFieldClass.cssVarList.removeButtonWidth});\n }\n `,\n excludeAttrsSync: [\n 'tabindex',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'options',\n 'error-message',\n ],\n componentName,\n })\n);\n\nexport default MappingsFieldClass;\n","import '@vaadin/custom-field';\nimport '@vaadin/icon';\nimport '@vaadin/icons';\nimport { componentName, MappingsFieldClass } from './MappingsFieldClass';\nimport '@descope-ui/descope-text';\nimport '../../descope-button';\nimport '../../descope-text-field';\nimport '@descope-ui/descope-combo-box';\nimport './descope-mappings-field-internal';\nimport './descope-mapping-item';\n\ncustomElements.define(componentName, MappingsFieldClass);\n\nexport { MappingsFieldClass, componentName };\n","import { createBaseInputClass } from '../../../../baseClasses/createBaseInputClass';\nimport {\n getComponentName,\n forwardAttrs,\n observeAttributes,\n} from '../../../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('saml-group-mappings-internal');\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: '' });\n\nclass SamlGroupMappingsInternal extends BaseInputClass {\n static get observedAttributes() {\n return ['invalid'].concat(BaseInputClass.observedAttributes || []);\n }\n\n constructor() {\n super();\n\n this.innerHTML = `\n <descope-text-field variant=\"body2\" bordered=\"true\"></descope-text-field>\n <descope-mappings-field></descope-mappings-field>\n `;\n\n this.groupInputElement = this.querySelector('descope-text-field');\n this.mappingsElement = this.querySelector('descope-mappings-field');\n }\n\n resetInvalidIndication() {\n this.removeAttribute('invalid');\n }\n\n handleMappingsInvalidChange(changedAttributes) {\n if (changedAttributes.includes('invalid')) {\n if (!this.mappingsElement.hasAttribute('invalid')) {\n this.resetInvalidIndication();\n }\n }\n }\n\n initFocusHandler() {\n // This event listener needs to be placed before the super.init() call\n this.addEventListener('focus', (e) => {\n // we want to ignore focus events we are dispatching\n if (e.isTrusted) {\n const focusedElement = this.mappingsElement.checkValidity()\n ? this.groupInputElement\n : this.mappingsElement;\n focusedElement.focus();\n }\n });\n }\n\n init() {\n // This needs to be placed before the super.init() call to work\n this.initFocusHandler();\n\n super.init?.();\n\n forwardAttrs(this, this.groupInputElement, {\n mapAttrs: { 'label-group': 'label' },\n includeAttrs: ['size', 'label-group', 'readonly', 'disabled'],\n });\n\n forwardAttrs(this, this.mappingsElement, {\n includeAttrs: [\n 'size',\n 'full-width',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'separator',\n 'options',\n 'readonly',\n 'disabled',\n 'data-errormessage-pattern-mismatch',\n ],\n });\n\n // Observing the invalid attribute of the mappings field to reset the invalid state for this component.\n // When an invalid item turns valid, the mappings field will remove the invalid attribute, and at this component\n // level, we need to remove the invalid attribute as well to be able to mark the component as invalid the next time\n observeAttributes(this.mappingsElement, this.handleMappingsInvalidChange.bind(this), {\n includeAttrs: ['invalid'],\n });\n }\n\n get value() {\n return {\n group: this.groupInputElement.value,\n mappings: this.mappingsElement.value,\n };\n }\n\n set value(value) {\n if (value?.group && typeof value.group === 'string') {\n this.groupInputElement.value = value.group;\n }\n if (Array.isArray(value?.mappings)) {\n this.mappingsElement.value = value.mappings;\n }\n }\n\n getValidity() {\n if (!this.groupInputElement.checkValidity()) {\n return this.groupInputElement.validity;\n }\n if (!this.mappingsElement.checkValidity()) {\n return this.mappingsElement.validity;\n }\n\n return {};\n }\n\n #handleInvalidState(isInvalid) {\n if (isInvalid) {\n if (!this.groupInputElement.checkValidity()) {\n this.groupInputElement.setAttribute('invalid', 'true');\n return;\n }\n\n if (!this.mappingsElement.checkValidity()) {\n this.mappingsElement.setAttribute('invalid', 'true');\n }\n }\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n if (attrName === 'invalid') {\n this.#handleInvalidState(newValue === 'true');\n }\n }\n}\n\nexport default SamlGroupMappingsInternal;\n","import SamlGroupMappingsInternal, { componentName } from './SamlGroupMappingsInternal';\n\ncustomElements.define(componentName, SamlGroupMappingsInternal);\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../../mixins';\nimport { compose } from '../../../helpers';\nimport { forwardAttrs, getComponentName, syncAttrs } from '../../../helpers/componentHelpers';\nimport { componentName as descopeInternalComponentName } from './descope-saml-group-mappings-internal/SamlGroupMappingsInternal';\n\nexport const componentName = getComponentName('saml-group-mappings');\n\nconst customMixin = (superclass) =>\n class SamlGroupMappingsMixinClass extends superclass {\n init() {\n super.init?.();\n\n const template = document.createElement('template');\n\n template.innerHTML = `\n <${descopeInternalComponentName}\n tabindex=\"-1\"\n ></${descopeInternalComponentName}>\n `;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n forwardAttrs(this, this.inputElement, {\n includeAttrs: [\n 'size',\n 'full-width',\n 'label-group',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'separator',\n 'options',\n 'readonly',\n 'disabled',\n ],\n });\n\n syncAttrs(this, this.inputElement, { includeAttrs: ['invalid'] });\n }\n };\n\nconst { host, groupInput, errorMessage } = {\n host: { selector: () => ':host' },\n groupInput: { selector: 'descope-text-field' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const SamlGroupMappingsClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n groupNameInputMarginBottom: { ...groupInput, property: 'margin-bottom' },\n errorMessageIcon: { ...errorMessage, property: 'background-image' },\n errorMessageIconSize: { ...errorMessage, property: 'background-size' },\n errorMessageIconPadding: { ...errorMessage, property: 'padding-inline-start' },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: { ...errorMessage, property: 'background-position' },\n },\n }),\n draggableMixin,\n proxyInputMixin({\n proxyProps: ['value', 'selectionStart'],\n inputEvent: 'input',\n triggerValidationEvents: ['mapping-item-added', 'mapping-item-removed'],\n proxyParentValidation: true,\n }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-custom-field',\n style: () => `\n :host {\n display: inline-flex;\n max-width: 100%;\n direction: ltr;\n }\n\n vaadin-custom-field {\n line-height: unset;\n width: 100%;\n }\n\n descope-text-field {\n width: auto;\n }\n\n descope-mappings-field {\n display: block;\n }\n `,\n excludeAttrsSync: [\n 'tabindex',\n 'label-group',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'separator',\n 'options',\n 'error-message',\n ],\n componentName,\n })\n);\n\nexport default SamlGroupMappingsClass;\n","import '@vaadin/custom-field';\n\nimport { componentName, SamlGroupMappingsClass } from './SamlGroupMappingsClass';\nimport '../../descope-text-field';\nimport '../descope-mappings-field';\nimport './descope-saml-group-mappings-internal';\n\ncustomElements.define(componentName, SamlGroupMappingsClass);\n\nexport { SamlGroupMappingsClass, componentName };\n","export const useHostExternalPadding = (cssVarList) => `\n :host {\n padding: calc(var(${cssVarList.inputOutlineWidth}) + var(${cssVarList.inputOutlineOffset}))\n }\n`;\n\nexport const resetInputFieldUnderlayingBorder = (name) => `\n ${name}::part(input-field)::after {\n border: none;\n }\n`;\n\nexport const resetInitialHeight = (name) => `\n ${name}::before {\n\t\theight: unset;\n\t}\n`;\n\nexport const resetInputElement = (name) => `\n ${name} > input {\n -webkit-mask-image: none;\n min-height: 0;\n box-sizing: border-box;\n }\n`;\n\nexport const resetInputContainer = (name) => `\n ${name} {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n }\n`;\n\nexport const resetInputField = (name) => `\n ${name}::part(input-field) {\n overflow: hidden;\n padding: 0;\n box-shadow: none;\n }\n`;\n\nexport const resetInputCursor = (name) => `\n ${name} > label,\n ${name}::part(label),\n ${name}::part(required-indicator) {\n cursor: pointer;\n }\n`;\n\nexport const resetInputPlaceholder = (name, ele = 'input') => `\n ${name}[disabled] > ${ele}:placeholder-shown,\n\t${name}[readonly] > ${ele}:placeholder-shown {\n\t\topacity: 1;\n\t}\n`;\n\nexport const resetInputAutoFill = (name, cssVarList) => `\n ${name} input:-webkit-autofill,\n ${name} input:-webkit-autofill::first-line,\n ${name} input:-webkit-autofill:hover,\n ${name} input:-webkit-autofill:active,\n ${name} input:-webkit-autofill:focus {\n -webkit-text-fill-color: var(${cssVarList.inputValueTextColor});\n box-shadow: 0 0 0 var(${cssVarList.inputHeight}) var(${cssVarList.inputBackgroundColor}) inset;\n }\n`;\n\nexport const resetInputFieldDefaultWidth = () => `\n :host {\n --vaadin-field-default-width: auto;\n box-sizing: border-box;\n }\n`;\n\nexport const resetInputReadonlyStyle = (name) => `\n ${name}::part(input-field)::after {\n opacity: 0;\n }\n`;\n\nexport const resetInputFieldInvalidBackgroundColor = (name) => `\n ${name}::part(input-field)::after {\n background: none;\n }\n`;\n\nexport const resetInputOverrides = (name, cssVarList) => `\n ${resetInputContainer(name)}\n ${resetInputCursor(name)}\n ${resetInputPlaceholder(name)}\n ${resetInputField(name)}\n ${resetInputAutoFill(name, cssVarList)}\n ${resetInputFieldInvalidBackgroundColor(name)}\n ${resetInitialHeight(name)}\n ${resetInputElement(name)}\n ${resetInputFieldUnderlayingBorder(name)}\n`;\n\n// This function is used to support RTL correctly for input components.\n// It also fixes the error message to be displayed LTR since we currently\n// don't support RTL for error messages.\nexport const resetInputLabelPosition = (name) => `\n :host ::part(error-message) {\n direction: ltr;\n }\n :host([required]) ::part(required-indicator) {\n width: 1em;\n display: inline-flex;\n }\n :host([required]) ::part(required-indicator)::after {\n position: static;\n }\n :host([has-label]) ::part(label) {\n padding-right: 0;\n padding-bottom: 0;\n display: flex;\n width: 100%;\n }\n ${name} [slot=\"label\"] {\n max-width: calc(100% - 1em);\n overflow: hidden;\n text-overflow: ellipsis;\n padding-bottom: 0.5em;\n }\n`;\n\nexport const inputFloatingLabelStyle = () => {\n return `\n :host([label-type=\"floating\"]) {\n position: relative;\n }\n :host([label-type=\"floating\"][has-label]) [slot=\"label\"] {\n padding: 0;\n }\n :host([label-type=\"floating\"][has-label]) > ::part(label) {\n z-index: 1;\n padding: 0;\n width: auto;\n }\n `;\n};\n"],"names":["componentName","RawText","baseSelector","constructor","super","this","attachShadow","mode","innerHTML","hideWhenEmpty","getAttribute","init","hasChildren","childNodes","length","style","display","TextClass","mappings","hostWidth","selector","property","hostDirection","fontSize","textColor","textLineHeight","textLetterSpacing","textShadow","textAlign","textTransform","fontFamily","fontStyle","fontWeight","borderWidth","borderStyle","borderColor","customElements","define","createBaseInputClass","args","host","label","slottedIcon","loadingIndicatorStyles","ButtonClass","hostHeight","cursor","backgroundColor","outlineOffset","outlineColor","outlineStyle","outlineWidth","borderRadius","verticalPadding","horizontalPadding","fallback","labelTextColor","iconColor","cssVarList","fill","labelTextDecoration","labelSpacing","iconSize","slots","wrappedEleName","excludeAttrsSync","color","clickableMixin","superclass","isLoading","click","RawIcon","observedAttributes","toggleVisibility","src","isVisible","updateFillColor","node","querySelectorAll","forEach","ele","setAttribute","IconClass","attributeChangedCallback","attrName","oldValue","newValue","then","res","clonedNode","cloneNode","appendChild","createSvgEle","text","clean","sanitize","USE_PROFILES","svg","svgFilters","DOMParser","parseFromString","querySelector","createIcon","async","startsWith","isBase64Svg","svgXml","atob","slice","base64Prefix","path","match","getFileExtension","fetchedSrc","fetch","document","createElement","createImgEle","setProperty","observedAttrs","TextFieldClass","proxyProps","useProxyTargets","concat","icon","renderCopyToClipboard","shouldRender","remove","iconInitConfig","title","iconCopiedConfig","Object","assign","slot","baseElement","addEventListener","navigator","clipboard","writeText","value","setTimeout","onLabelClick","focus","oldVal","newVal","attributeChangeCallback","_setType","removeEventListener","inputOutlineWidth","inputOutlineOffset","placeholder","requiredIndicator","inputField","input","inputMask","helperText","errorMessage","disabledPlaceholder","inputDisabled","inputIcon","externalInput","externalInputDisabled","externalPlaceholder","externalDisabledPlaceholder","labelFontSize","labelFontWeight","hostMinWidth","inputDirection","inputBackgroundColor","errorMessageTextColor","errorMessageIcon","errorMessageIconSize","errorMessageIconPadding","errorMessageIconRepeat","errorMessageIconPosition","helperTextColor","inputValueTextColor","inputCaretTextColor","labelRequiredIndicator","inputBorderColor","inputBorderWidth","inputBorderStyle","inputBorderRadius","inputHeight","inputHorizontalPadding","inputOutlineColor","inputOutlineStyle","inputTextAlign","inputPlaceholderColor","labelPosition","labelTopPosition","labelHorizontalPosition","inputTransformY","inputTransition","marginInlineStart","placeholderOpacity","inputVerticalAlignment","valueInputHeight","valueInputMarginBottom","inputIconOffset","inputIconSize","inputIconColor","inputAttrs","BaseInputClass","separator","attributeValue","attributeInput","inputValue","valueInput","mapping","entries","console","error","attribute","dispatchEvent","InputEvent","bubbles","composed","shadowRoot","inputs","removeButton","includeAttrs","mapAttrs","options","initRemoveButton","CustomEvent","getValidity","badInput","reportValidity","checkValidity","handleSeparatorChange","textContent","invalid","defaultErrorMsgValueMissing","isValidDataType","data","every","obj","Array","isArray","getOwnPropertyNames","keys","trim","e","labelValue","labelAttr","buttonLabel","addNewMappingItem","focusNewItem","newMappingItem","mappingsContainerEle","setCustomValidity","resetInvalidIndication","undefined","items","from","reduce","acc","item","currentItems","i","removeChild","index","mappingItem","labelsEle","buttonContainer","initLabels","initAddButton","isDisabled","button","onclick","isTrusted","contains","removeAttribute","bind","errorItem","find","validity","isInvalid","toggleAttribute","labels","labelsText","valueLabel","attrLabel","labelsContainer","MappingsFieldClass","separatorFontSize","labelsFontSize","labelsLineHeight","itemMarginBottom","valueLabelMinWidth","attrLabelMinWidth","labelsMarginBottom","separatorWidth","removeButtonWidth","inputEvent","proxyParentValidation","defaultValues","defaultValuesAttr","JSON","parse","message","setDefaultValues","initialDefaultValues","inputElement","template","content","groupInputElement","mappingsElement","handleMappingsInvalidChange","changedAttributes","includes","hasAttribute","initFocusHandler","group","groupInput","SamlGroupMappingsClass","groupNameInputMarginBottom","triggerValidationEvents","useHostExternalPadding","resetInputContainer","name","resetInputField","resetInputCursor","resetInputPlaceholder","resetInputFieldDefaultWidth","resetInputReadonlyStyle","resetInputFieldInvalidBackgroundColor","resetInputOverrides","resetInputAutoFill","resetInitialHeight","resetInputElement","resetInputFieldUnderlayingBorder","resetInputLabelPosition","inputFloatingLabelStyle"],"sourceRoot":""}
1
+ {"version":3,"file":"mapping-fields-descope-saml-group-mappings-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-button/src/component/ButtonClass.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/clickableMixin.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-icon/src/component/IconClass.js","webpack://@descope/web-components-ui/../components/descope-icon/src/component/helpers.js","webpack://@descope/web-components-ui/../components/descope-text/src/component/TextClass.js","webpack://@descope/web-components-ui/../components/descope-text/src/component/index.js","webpack://@descope/web-components-ui/./src/baseClasses/createBaseInputClass.js","webpack://@descope/web-components-ui/./src/components/descope-text-field/TextFieldClass.js","webpack://@descope/web-components-ui/./src/components/descope-text-field/index.js","webpack://@descope/web-components-ui/./src/components/descope-text-field/textFieldMappings.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-mappings-field/descope-mapping-item/MappingItem.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-mappings-field/descope-mapping-item/index.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-mappings-field/descope-mappings-field-internal/MappingsFieldInternal.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-mappings-field/descope-mappings-field-internal/index.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-mappings-field/MappingsFieldClass.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-mappings-field/index.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-saml-group-mappings/descope-saml-group-mappings-internal/SamlGroupMappingsInternal.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-saml-group-mappings/descope-saml-group-mappings-internal/index.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-saml-group-mappings/SamlGroupMappingsClass.js","webpack://@descope/web-components-ui/./src/components/mapping-fields/descope-saml-group-mappings/index.js","webpack://@descope/web-components-ui/./src/helpers/themeHelpers/resetHelpers.js"],"sourcesContent":["import { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { IconClass } from '@descope-ui/descope-icon/class';\nimport { clickableMixin } from './clickableMixin';\n\nexport const componentName = getComponentName('button');\n\nconst resetStyles = `\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n`;\n\nconst iconStyles = `\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n`;\n\nconst editorOverrides = `vaadin-button::part(label) { pointer-events: none; }`;\n\nconst { host, label, slottedIcon } = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n slottedIcon: { selector: () => '::slotted(descope-icon)' },\n};\n\nlet loadingIndicatorStyles;\n\nexport const ButtonClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { property: 'width' },\n hostHeight: { property: 'height' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n fontFamily: {},\n\n cursor: {},\n backgroundColor: {},\n\n outlineOffset: {},\n outlineColor: {},\n outlineStyle: {},\n outlineWidth: {},\n\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n verticalPadding: [{ property: 'padding-top' }, { property: 'padding-bottom' }],\n horizontalPadding: [\n { property: 'padding-right', fallback: '0.875em' },\n { property: 'padding-left', fallback: '0.875em' },\n ],\n\n labelTextColor: { property: 'color' },\n iconColor: {\n selector: () => `::slotted(*)`,\n property: IconClass.cssVarList.fill,\n },\n labelTextDecoration: { ...label, property: 'text-decoration' },\n labelSpacing: { ...label, property: 'gap' },\n textAlign: { ...label, property: 'justify-content', fallback: 'center' },\n\n iconSize: [\n { ...slottedIcon, property: 'width' },\n { ...slottedIcon, property: 'height' },\n ],\n },\n }),\n clickableMixin,\n draggableMixin,\n componentNameValidationMixin\n)(\n createProxy({\n slots: ['', 'prefix', 'label', 'suffix'],\n wrappedEleName: 'vaadin-button',\n style: () => `\n\t\t\t${resetStyles}\n\t\t\t${iconStyles}\n\t\t\t${loadingIndicatorStyles}\n\t\t\t${editorOverrides}\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${ButtonClass.cssVarList.outlineWidth}) + var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width=\"true\"]) {\n width: var(${ButtonClass.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${ButtonClass.cssVarList.hostHeight}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square=\"true\"]:not([full-width=\"true\"]) {\n\t\t\t\twidth: calc(var(${ButtonClass.cssVarList.hostWidth}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,\n excludeAttrsSync: ['tabindex'],\n componentName,\n })\n);\n\nconst { color, fontSize } = ButtonClass.cssVarList;\nloadingIndicatorStyles = `\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading=\"true\"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${color});\n\t\ttop: calc(50% - (var(${fontSize}) / 2));\n\t\tleft: calc(50% - (var(${fontSize}) / 2));\n\t\tborder-width: calc(var(${fontSize}) / 10);\n\t\twidth: var(${fontSize});\n\t\theight: var(${fontSize});\n\t}\n\t:host([disabled=\"true\"]),\n\t:host([loading=\"true\"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading=\"true\"])::part(prefix),\n\t:host([loading=\"true\"])::part(label) {\n\t\tvisibility: hidden;\n\t}\n`;\n","export const clickableMixin = (superclass) =>\n class ClickableMixinClass extends superclass {\n get isLoading() {\n return this.getAttribute('loading') === 'true';\n }\n\n click() {\n this.isLoading || super.click();\n }\n };\n","import { componentName, ButtonClass } from './ButtonClass';\nimport '@vaadin/button';\n\ncustomElements.define(componentName, ButtonClass);\n\nexport { ButtonClass, componentName };\n","/* eslint-disable no-use-before-define */\nimport { createStyleMixin, draggableMixin, componentNameValidationMixin } from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { createIcon } from './helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('icon');\n\nclass RawIcon extends createBaseClass({ componentName, baseSelector: 'slot' }) {\n static get observedAttributes() {\n return ['src'];\n }\n\n #icon;\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<slot></slot>\n\t`;\n\n injectStyle(\n `\n\t\t\t:host > slot {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n `,\n this\n );\n }\n\n init() {\n super.init?.();\n this.toggleVisibility(this.src);\n }\n\n toggleVisibility(isVisible) {\n this.style.display = isVisible ? '' : 'none';\n }\n\n get src() {\n return this.getAttribute('src');\n }\n\n // in order to fill an SVG with `currentColor` override all of its `fill` and `path` nodes\n // with the value from the `st-fill` attribute\n // eslint-disable-next-line class-methods-use-this\n updateFillColor(node) {\n // set fill to root node and all its relevant selectors\n const elementsToReplace = [node, ...node.querySelectorAll('*[fill]')];\n\n elementsToReplace.forEach((ele) => {\n ele.setAttribute(\n 'fill',\n `var(${IconClass.cssVarList.fill}, ${ele.getAttribute('fill') || \"''\"})`\n );\n });\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue === newValue) return;\n\n if (attrName === 'src') {\n this.toggleVisibility(newValue);\n\n createIcon(this.src).then((res) => {\n this.innerHTML = '';\n if (res) {\n const clonedNode = res.cloneNode(true);\n this.updateFillColor(clonedNode);\n this.appendChild(clonedNode);\n }\n });\n }\n }\n}\n\nexport const IconClass = compose(\n createStyleMixin({\n mappings: {\n fill: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawIcon);\n","import DOMPurify from 'dompurify';\n\nconst getFileExtension = (path) => {\n const match = path.match(/\\.([0-9a-z]+)(?:[\\\\?#]|$)/i);\n return match ? match[1] : null;\n};\n\nconst base64Prefix = 'data:image/svg+xml;base64,';\n\nconst isBase64Svg = (src) => src.startsWith(base64Prefix);\n\nconst createImgEle = (src) => {\n const ele = document.createElement('img');\n ele.setAttribute('src', src);\n return ele;\n};\n\nconst createSvgEle = (text) => {\n // we want to purify the SVG to avoid XSS attacks\n const clean = DOMPurify.sanitize(text, { USE_PROFILES: { svg: true, svgFilters: true } });\n\n const parser = new DOMParser();\n const ele = parser.parseFromString(clean, 'image/svg+xml').querySelector('svg');\n return ele;\n};\n\nexport const createIcon = async (src) => {\n try {\n let ele;\n if (isBase64Svg(src)) {\n // handle base64 source\n const svgXml = atob(src.slice(base64Prefix.length));\n ele = createSvgEle(svgXml);\n } else if (getFileExtension(src) === 'svg') {\n // handle urls\n const fetchedSrc = await fetch(src);\n const text = await fetchedSrc.text();\n ele = createSvgEle(text);\n } else {\n // handle binary\n ele = createImgEle(src);\n }\n\n ele.style.setProperty('max-width', '100%');\n ele.style.setProperty('max-height', '100%');\n\n return ele;\n } catch {\n return null;\n }\n};\n","import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n getComponentName,\n injectStyle,\n observeChildren,\n} from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('text');\n\nclass RawText extends createBaseClass({\n componentName,\n baseSelector: ':host > slot',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <slot part=\"text-wrapper\"></slot>\n `;\n\n injectStyle(`\n :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n `, this);\n }\n\n get hideWhenEmpty() {\n return this.getAttribute('hide-when-empty') === 'true';\n }\n\n init() {\n super.init();\n\n observeChildren(this, () => {\n const hasChildren = !!this.childNodes.length;\n this.style.display = !hasChildren && this.hideWhenEmpty ? 'none' : '';\n });\n }\n}\n\nexport const TextClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontSize: {},\n textColor: { property: 'color' },\n textLineHeight: { property: 'line-height' },\n textLetterSpacing: { property: 'letter-spacing' },\n textShadow: {},\n textAlign: {},\n textTransform: {},\n fontFamily: {},\n fontStyle: {},\n fontWeight: {},\n borderWidth: {},\n borderStyle: {},\n borderColor: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawText);\n","import { componentName, TextClass } from './TextClass';\n\ncustomElements.define(componentName, TextClass);\n\nexport { TextClass, componentName };\n","import { compose } from '../helpers';\nimport {\n changeMixin,\n inputEventsDispatchingMixin,\n inputValidationMixin,\n normalizeBooleanAttributesMixin,\n} from '../mixins';\nimport { createBaseClass } from './createBaseClass';\n\nexport const createBaseInputClass = (...args) =>\n compose(\n inputValidationMixin,\n changeMixin,\n normalizeBooleanAttributesMixin,\n inputEventsDispatchingMixin\n )(createBaseClass(...args));\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../mixins';\nimport textFieldMappings from './textFieldMappings';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport {\n inputFloatingLabelStyle,\n resetInputLabelPosition,\n resetInputOverrides,\n useHostExternalPadding,\n} from '../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('text-field');\n\nconst observedAttrs = ['type', 'label-type', 'copy-to-clipboard'];\n\nconst customMixin = (superclass) =>\n class TextFieldClass extends superclass {\n static get observedAttributes() {\n return observedAttrs.concat(superclass.observedAttributes || []);\n }\n\n icon;\n\n init() {\n super.init?.();\n }\n\n renderCopyToClipboard(shouldRender) {\n if (!shouldRender) {\n this.icon?.remove();\n return;\n }\n\n const iconInitConfig = {\n icon: 'vaadin:copy-o',\n title: 'Copy',\n style: 'cursor: pointer',\n };\n\n const iconCopiedConfig = {\n icon: 'vaadin:check-circle-o',\n title: 'Copied',\n style: 'cursor: initial',\n };\n\n this.icon = Object.assign(document.createElement('vaadin-icon'), {\n slot: 'suffix',\n ...iconInitConfig,\n });\n\n this.baseElement.appendChild(this.icon);\n this.icon.addEventListener('click', () => {\n navigator.clipboard.writeText(this.value);\n Object.assign(this.icon, iconCopiedConfig);\n\n // we want the icon to go back to the initial state after 5 seconds\n setTimeout(() => {\n Object.assign(this.icon, iconInitConfig);\n }, 5000);\n });\n }\n\n onLabelClick() {\n this.focus();\n }\n\n attributeChangedCallback(attrName, oldVal, newVal) {\n super.attributeChangeCallback?.(attrName, oldVal, newVal);\n\n // Vaadin doesn't allow to change the input type attribute.\n // We need the ability to do that, so we're overriding their\n // behavior with their private API.\n // When receiving a `type` attribute, we use their private API\n // to set it on the input.\n if (attrName === 'type') {\n this.baseElement._setType(newVal);\n }\n\n if (oldVal !== newVal) {\n if (attrName === 'label-type') {\n if (newVal === 'floating') {\n this.addEventListener('click', this.onLabelClick);\n } else {\n this.removeEventListener('click', this.onLabelClick);\n }\n } else if (attrName === 'copy-to-clipboard') {\n this.renderCopyToClipboard(newVal === 'true');\n }\n }\n }\n };\n\nexport const TextFieldClass = compose(\n createStyleMixin({\n mappings: textFieldMappings,\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'], useProxyTargets: true }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: ['prefix', 'suffix'],\n wrappedEleName: 'vaadin-text-field',\n style: () => `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tpadding: calc(var(${TextFieldClass.cssVarList.inputOutlineWidth}) + var(${\n TextFieldClass.cssVarList.inputOutlineOffset\n }));\n box-sizing: border-box;\n\t\t\t}\n :host(:is([readonly], [disabled])) ::slotted(:is(input, textarea):placeholder-shown) {\n opacity: 1;\n }\n\n vaadin-text-field[label-type=\"floating\"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-text-field[label-type=\"floating\"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n ${resetInputLabelPosition('vaadin-text-field')}\n\t\t\t${useHostExternalPadding(TextFieldClass.cssVarList)}\n\t\t\t${resetInputOverrides('vaadin-text-field', TextFieldClass.cssVarList)}\n ${inputFloatingLabelStyle()}\n\n vaadin-text-field vaadin-icon {\n align-self: center;\n }\n\t\t`,\n excludeAttrsSync: ['tabindex', 'style'],\n componentName,\n })\n);\n","import '@vaadin/text-field';\nimport '@vaadin/icons';\nimport '@vaadin/icon';\n\nimport { componentName, TextFieldClass } from './TextFieldClass';\n\ncustomElements.define(componentName, TextFieldClass);\n\nexport { TextFieldClass, componentName };\n","const {\n host,\n label,\n placeholder,\n requiredIndicator,\n inputField,\n input,\n inputMask,\n helperText,\n errorMessage,\n disabledPlaceholder,\n inputDisabled,\n inputIcon,\n externalInput,\n externalInputDisabled,\n externalPlaceholder,\n externalDisabledPlaceholder,\n} = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n placeholder: [\n { selector: '> input:placeholder-shown' },\n { selector: () => ':host::slotted(input:placeholder-shown)' },\n ],\n disabledPlaceholder: { selector: '> input:disabled::placeholder' },\n inputField: { selector: '::part(input-field)' },\n input: { selector: 'input' },\n inputMask: { selector: '::part(input-field)::before' },\n inputDisabled: { selector: 'input:disabled' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n inputIcon: { selector: 'vaadin-icon' },\n externalInput: { selector: () => '::slotted(input)' },\n externalInputDisabled: { selector: () => '::slotted(input:disabled)' },\n externalPlaceholder: { selector: () => '::slotted(input:placeholder-shown)' },\n externalDisabledPlaceholder: { selector: () => '::slotted(input:disabled::placeholder)' },\n};\n\nexport default {\n // we apply font-size also on the host so we can set its width with em\n fontSize: [{}, host],\n fontFamily: [label, inputField, helperText, errorMessage],\n\n labelFontSize: { ...label, property: 'font-size' },\n labelFontWeight: { ...label, property: 'font-weight' },\n\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n { ...label, property: '-webkit-text-fill-color' },\n { ...requiredIndicator, property: '-webkit-text-fill-color' },\n ],\n\n hostWidth: { ...host, property: 'width' },\n hostMinWidth: { ...host, property: 'min-width' },\n hostDirection: { ...host, property: 'direction' },\n inputDirection: { ...input, property: 'direction' },\n\n inputBackgroundColor: [\n { ...inputField, property: 'background-color' },\n { ...inputMask, property: 'background-color' },\n ],\n\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n errorMessageIcon: { ...errorMessage, property: 'background-image' },\n errorMessageIconSize: { ...errorMessage, property: 'background-size' },\n errorMessageIconPadding: { ...errorMessage, property: 'padding-inline-start' },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: { ...errorMessage, property: 'background-position' },\n\n helperTextColor: { ...helperText, property: '-webkit-text-fill-color' },\n\n inputValueTextColor: [\n { ...inputField, property: 'color' },\n { ...inputDisabled, property: '-webkit-text-fill-color' },\n { ...externalInputDisabled, property: '-webkit-text-fill-color' },\n ],\n inputCaretTextColor: [\n { ...input, property: 'caret-color' },\n { ...externalInput, property: 'caret-color' },\n ],\n\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n\n inputBorderColor: { ...inputField, property: 'border-color' },\n inputBorderWidth: { ...inputField, property: 'border-width' },\n inputBorderStyle: { ...inputField, property: 'border-style' },\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n\n inputHeight: { ...inputField, property: 'height' },\n inputHorizontalPadding: [\n { ...input, property: 'padding-left' },\n { ...input, property: 'padding-right' },\n { ...externalInput, property: 'padding-left' },\n { ...externalInput, property: 'padding-right' },\n ],\n\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineStyle: { ...inputField, property: 'outline-style' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n\n textAlign: {},\n\n inputTextAlign: [\n { ...input, property: 'text-align' },\n { ...externalInput, property: 'text-align' },\n ],\n\n inputPlaceholderColor: [\n { selector: () => ':host input:placeholder-shown', property: 'color' },\n { ...externalPlaceholder, property: 'color' },\n { ...placeholder, property: 'color' },\n { ...disabledPlaceholder, property: '-webkit-text-fill-color' },\n { ...externalDisabledPlaceholder, property: '-webkit-text-fill-color' },\n ],\n\n labelPosition: { ...label, property: 'position' },\n labelTopPosition: { ...label, property: 'top' },\n labelHorizontalPosition: [\n { ...label, property: 'left' },\n { ...label, property: 'right' },\n ],\n inputTransformY: { ...label, property: 'transform' },\n inputTransition: { ...label, property: 'transition' },\n marginInlineStart: { ...label, property: 'margin-inline-start' },\n placeholderOpacity: [\n { selector: '> input:placeholder-shown', property: 'opacity' },\n { ...externalPlaceholder, property: 'opacity' },\n ],\n inputVerticalAlignment: [\n { ...inputField, property: 'align-items' },\n { ...externalInput, property: 'align-items' },\n ],\n valueInputHeight: [\n { ...input, property: 'height' },\n { ...externalInput, property: 'height' },\n ],\n valueInputMarginBottom: [\n { ...input, property: 'margin-bottom' },\n { ...externalInput, property: 'margin-bottom' },\n ],\n\n inputIconOffset: [\n { ...inputIcon, property: 'margin-right' },\n { ...inputIcon, property: 'margin-left' },\n ],\n inputIconSize: { ...inputIcon, property: 'font-size' },\n inputIconColor: { ...inputIcon, property: 'color' },\n};\n","import { injectStyle } from '@descope-ui/common/components-helpers';\nimport { createBaseInputClass } from '../../../../baseClasses/createBaseInputClass';\nimport { forwardAttrs, getComponentName } from '../../../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('mapping-item');\n\nconst inputAttrs = [\n 'size',\n 'bordered',\n 'readonly',\n 'full-width',\n 'disabled',\n 'st-error-message-icon',\n 'st-error-message-icon-size',\n 'st-error-message-icon-padding',\n];\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: 'div' });\n\nclass MappingItem extends BaseInputClass {\n static get observedAttributes() {\n return [].concat(BaseInputClass.observedAttributes || [], inputAttrs, [\n 'separator',\n 'options',\n 'invalid',\n 'disabled',\n ]);\n }\n\n get separator() {\n return this.getAttribute('separator') || 'map to';\n }\n\n get value() {\n const attributeValue = this.attributeInput.value;\n const inputValue = this.valueInput.value;\n if (attributeValue && inputValue) {\n return { [attributeValue]: inputValue };\n }\n return null;\n }\n\n set value(mapping) {\n if (Object.entries(mapping).length !== 1) {\n // eslint-disable-next-line no-console\n console.error(\n 'descope-mapping item expected expects only one key-value pair in the value but received: ',\n mapping\n );\n return;\n }\n const [attribute, value] = Object.entries(mapping)[0];\n this.valueInput.value = value;\n this.attributeInput.value = attribute;\n // The event needs to be dispatched to trigger the validation if setting the value externally\n this.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div class=\"wrapper\" part=\"wrapper\">\n <descope-text-field required=\"true\"></descope-text-field>\n <div class=\"separator\" part=\"separator\">${this.separator}</div>\n <descope-combo-box\n item-label-path=\"data-name\"\n item-value-path=\"data-id\"\n required=\"true\"\n >\n </descope-combo-box>\n <descope-button variant=\"link\" mode=\"primary\">\n <vaadin-icon icon=\"vaadin:minus\"></vaadin-icon>\n </descope-button>\n </div>\n\t`;\n\n injectStyle(\n `\n .wrapper {\n display: flex;\n }\n .separator {\n text-align: center;\n flex-shrink: 0;\n }\n `,\n this\n );\n\n this.valueInput = this.shadowRoot.querySelector('descope-text-field');\n this.attributeInput = this.shadowRoot.querySelector('descope-combo-box');\n this.inputs = [this.valueInput, this.attributeInput];\n this.removeButton = this.shadowRoot.querySelector('descope-button');\n\n forwardAttrs(this, this.valueInput, {\n includeAttrs: inputAttrs,\n });\n forwardAttrs(this, this.attributeInput, {\n includeAttrs: [...inputAttrs, 'options'],\n mapAttrs: { options: 'data' },\n });\n forwardAttrs(this, this.removeButton, {\n includeAttrs: ['disabled'],\n });\n }\n\n initRemoveButton() {\n this.removeButton.addEventListener('click', () =>\n this.dispatchEvent(new CustomEvent('mapping-item-removed', { bubbles: true, composed: true }))\n );\n }\n\n init() {\n super.init?.();\n this.initRemoveButton();\n }\n\n getValidity() {\n const attributeValue = this.attributeInput.value;\n const inputValue = this.valueInput.value;\n if (!attributeValue || !inputValue) {\n return { badInput: true };\n }\n return {};\n }\n\n reportValidity() {\n this.inputs.forEach((input) => input.reportValidity());\n }\n\n focus() {\n const focusedElement =\n this.checkValidity() || !this.valueInput.checkValidity()\n ? this.valueInput\n : this.attributeInput;\n focusedElement.focus();\n }\n\n handleSeparatorChange() {\n this.shadowRoot.querySelector('.separator').textContent = this.separator;\n }\n\n #handleInvalidMapping(invalid) {\n if (invalid === 'true') {\n const inputValue = this.valueInput.value;\n if (!inputValue) {\n this.valueInput.setAttribute('invalid', 'true');\n this.valueInput.setAttribute('error-message', this.defaultErrorMsgValueMissing);\n }\n\n const attributeValue = this.attributeInput.value;\n if (!attributeValue) {\n this.attributeInput.setAttribute('invalid', 'true');\n this.attributeInput.setAttribute('error-message', this.defaultErrorMsgValueMissing);\n }\n }\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (attrName === 'separator') {\n this.handleSeparatorChange();\n }\n\n if (attrName === 'invalid') {\n this.#handleInvalidMapping(newValue);\n }\n }\n}\n\nexport default MappingItem;\n","import MappingItem, { componentName } from './MappingItem';\n\ncustomElements.define(componentName, MappingItem);\n","import { createBaseInputClass } from '../../../../baseClasses/createBaseInputClass';\nimport {\n getComponentName,\n forwardAttrs,\n observeChildren,\n} from '../../../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('mappings-field-internal');\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: 'div' });\n\nclass MappingsFieldInternal extends BaseInputClass {\n #errorItem;\n\n static get observedAttributes() {\n return [].concat(BaseInputClass.observedAttributes || [], [\n 'label-value',\n 'label-attr',\n 'button-label',\n 'invalid',\n 'readonly',\n 'disabled',\n 'st-error-message-icon',\n 'st-error-message-icon-size',\n 'st-error-message-icon-padding',\n ]);\n }\n\n // eslint-disable-next-line class-methods-use-this\n isValidDataType(data) {\n try {\n return data.every(\n (obj) =>\n typeof obj === 'object' &&\n !Array.isArray(obj) &&\n Object.getOwnPropertyNames(obj).length === 1 &&\n typeof obj[Object.keys(obj)[0]] === 'string' &&\n obj[Object.keys(obj)[0]].trim() !== ''\n );\n } catch (e) {\n return false;\n }\n }\n\n get labelValue() {\n return this.getAttribute('label-value') || 'Value';\n }\n\n get labelAttr() {\n return this.getAttribute('label-attr') || 'Attribute';\n }\n\n get buttonLabel() {\n return this.getAttribute('button-label') || 'Add mapping';\n }\n\n get options() {\n return this.getAttribute('options') || [];\n }\n\n addNewMappingItem(focusNewItem) {\n const newMappingItem = document.createElement('descope-mapping-item');\n newMappingItem.setAttribute('bordered', 'true');\n this.mappingsContainerEle.appendChild(newMappingItem);\n forwardAttrs(this, newMappingItem, {\n includeAttrs: [\n 'size',\n 'full-width',\n 'separator',\n 'options',\n 'disabled',\n 'st-error-message-icon',\n 'st-error-message-icon-size',\n 'st-error-message-icon-padding',\n ],\n });\n // This needs to be done with the timeout, otherwise the validation is performed\n // before the new item is added and thus returns a wrong result\n setTimeout(() => {\n this.setCustomValidity('');\n newMappingItem.addEventListener('mapping-item-removed', () => {\n // If the removed item was the one that was invalid, we need to reset the invalid indication for the internal\n if (newMappingItem === this.#errorItem) {\n this.resetInvalidIndication();\n this.#errorItem = undefined;\n }\n newMappingItem.remove();\n this.setCustomValidity('');\n });\n this.dispatchEvent(new CustomEvent('mapping-item-added', { bubbles: true, composed: true }));\n if (focusNewItem) {\n newMappingItem.focus();\n }\n }, 0);\n return newMappingItem;\n }\n\n get items() {\n return Array.from(this.mappingsContainerEle.querySelectorAll('descope-mapping-item'));\n }\n\n get value() {\n return this.items.reduce((acc, item) => {\n if (!item.value) {\n return acc;\n }\n\n return [...acc, item.value];\n }, []);\n }\n\n set value(mappings) {\n if (!this.isValidDataType(mappings)) {\n // eslint-disable-next-line no-console\n console.error(\n 'received invalid value to set - should be an array of objects with one key-value pair'\n );\n return;\n }\n\n const currentItems = this.items;\n\n // Remove extra mapping items we don't need\n if (currentItems.length > mappings.length) {\n for (let i = mappings.length; i < currentItems.length; i++) {\n this.mappingsContainerEle.removeChild(currentItems[i]);\n }\n }\n\n // Add or update items\n mappings.forEach((mapping, index) => {\n const mappingItem = currentItems[index];\n if (mappingItem) {\n // Set existing item value\n mappingItem.value = mapping;\n } else {\n // Add new item\n const newMappingItem = this.addNewMappingItem(false);\n // Setting the new item value needs to be done with the timeout,\n // otherwise the value is not set correctly\n setTimeout(() => {\n newMappingItem.value = mapping;\n }, 0);\n }\n });\n }\n\n constructor() {\n super();\n\n this.innerHTML = `\n <div class=\"labels-container\" part=\"labels\"></div>\n <div class=\"mappings-container\"></div>\n <div class=\"button-container\"></div>\n `;\n\n this.labelsEle = this.querySelector('.labels-container');\n this.mappingsContainerEle = this.querySelector('.mappings-container');\n this.buttonContainer = this.querySelector('.button-container');\n }\n\n initLabels() {\n this.labelsEle.innerHTML = `\n <descope-text variant=\"body2\" part=\"value-label\">${this.labelValue}</descope-text>\n <descope-text variant=\"body2\" part=\"attr-label\">${this.labelAttr}</descope-text>\n `;\n }\n\n initAddButton() {\n this.buttonContainer.innerHTML = `\n <descope-button variant=\"link\" mode=\"primary\" disabled=\"${this.isDisabled}\">\n <vaadin-icon icon=\"vaadin:plus\"></vaadin-icon>\n ${this.buttonLabel}\n </descope-button>\n `;\n const button = this.querySelector('descope-button');\n button.onclick = () => {\n this.addNewMappingItem(true);\n };\n forwardAttrs(this, button, {\n includeAttrs: ['disabled'],\n });\n }\n\n #onMappingsContainerChildrenChange() {\n this.labelsEle.style.display = this.items.length ? 'grid' : 'none';\n }\n\n init() {\n // This event listener needs to be placed before the super.init() call\n this.addEventListener('focus', (e) => {\n // we want to ignore focus events we are dispatching\n if (e.isTrusted) {\n const focusedElement =\n this.#errorItem || this.items[0] || this.querySelector('descope-button');\n focusedElement.focus();\n }\n });\n\n super.init?.();\n this.initLabels();\n this.initAddButton();\n\n // This event listener is responsible for removing the invalid attribute\n // from the internal once the invalid item turns valid\n this.addEventListener('input', () => {\n const isErrorItemMounted = this.mappingsContainerEle.contains(this.#errorItem);\n if (isErrorItemMounted && this.#errorItem?.checkValidity()) {\n // Item has changed, it was invalid before and now it's valid\n this.resetInvalidIndication();\n this.#errorItem.removeAttribute('invalid');\n this.#errorItem = undefined;\n }\n });\n\n observeChildren(this.mappingsContainerEle, this.#onMappingsContainerChildrenChange.bind(this));\n }\n\n resetInvalidIndication() {\n this.removeAttribute('invalid');\n }\n\n getValidity() {\n const errorItem = this.items.find((item) => !item.checkValidity());\n if (errorItem) {\n return errorItem.validity;\n }\n\n return {};\n }\n\n #handleInvalidMappings(isInvalid) {\n if (isInvalid) {\n this.#errorItem = this.items.find((item) => !item.checkValidity());\n this.#errorItem?.reportValidity();\n this.#errorItem?.setAttribute('invalid', 'true');\n }\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n if (attrName === 'label-value' || attrName === 'label-attr') {\n this.initLabels();\n }\n if (attrName === 'button-label') {\n this.initAddButton();\n }\n if (attrName === 'invalid') {\n this.#handleInvalidMappings(newValue === 'true');\n }\n if (attrName === 'readonly') {\n this.toggleAttribute('inert', newValue === 'true');\n }\n }\n}\n\nexport default MappingsFieldInternal;\n","import MappingsFieldInternal, { componentName } from './MappingsFieldInternal';\n\ncustomElements.define(componentName, MappingsFieldInternal);\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../../mixins';\nimport { TextClass } from '@descope-ui/descope-text/class';\nimport { compose } from '../../../helpers';\nimport { forwardAttrs, getComponentName, syncAttrs } from '../../../helpers/componentHelpers';\nimport { componentName as descopeInternalComponentName } from './descope-mappings-field-internal/MappingsFieldInternal';\n\nexport const componentName = getComponentName('mappings-field');\n\nconst customMixin = (superclass) =>\n class MappingsFieldMixinClass extends superclass {\n get defaultValues() {\n const defaultValuesAttr = this.getAttribute('default-values');\n if (defaultValuesAttr) {\n try {\n return JSON.parse(defaultValuesAttr);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"default-values\" -', e.message);\n }\n }\n return [];\n }\n\n setDefaultValues() {\n const initialDefaultValues = this.defaultValues;\n if (Object.keys(initialDefaultValues).length > 0) {\n this.inputElement.value = initialDefaultValues;\n }\n }\n\n init() {\n super.init?.();\n const template = document.createElement('template');\n\n template.innerHTML = `\n <${descopeInternalComponentName}\n tabindex=\"-1\"\n ></${descopeInternalComponentName}>\n `;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n forwardAttrs(this, this.inputElement, {\n includeAttrs: [\n 'size',\n 'full-width',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'separator',\n 'options',\n 'default-values',\n 'invalid',\n 'readonly',\n 'disabled',\n 'st-error-message-icon',\n 'st-error-message-icon-size',\n 'st-error-message-icon-padding',\n ],\n });\n\n // This is required since when we remove the invalid attribute from the internal mappings field,\n // we want to reflect the change in the parent component\n syncAttrs(this, this.inputElement, { includeAttrs: ['invalid'] });\n\n this.setDefaultValues();\n }\n };\n\nconst {\n host,\n helperText,\n errorMessage,\n mappingItem,\n labels,\n labelsText,\n valueLabel,\n attrLabel,\n separator,\n labelsContainer,\n} = {\n host: { selector: () => ':host' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n mappingItem: { selector: 'descope-mapping-item::part(wrapper)' },\n labels: { selector: 'descope-mappings-field-internal [part=\"labels\"] descope-text' },\n labelsText: {\n selector: 'descope-mappings-field-internal [part=\"labels\"] descope-text::part(text-wrapper)',\n },\n valueLabel: { selector: 'descope-mappings-field-internal [part=\"labels\"] [part=\"value-label\"]' },\n attrLabel: { selector: 'descope-mappings-field-internal [part=\"labels\"] [part=\"attr-label\"]' },\n separator: { selector: 'descope-mapping-item::part(separator)' },\n labelsContainer: { selector: 'descope-mappings-field-internal [part=\"labels\"]' },\n};\n\nexport const MappingsFieldClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n // we apply font-size also on the host so we can set its width with em\n fontSize: [{}, host, { ...separator, property: 'margin-top' }],\n fontFamily: [helperText, errorMessage, labels],\n separatorFontSize: { ...separator, property: 'font-size' },\n labelsFontSize: { ...labelsText, property: 'font-size' },\n labelsLineHeight: [\n { ...labelsText, property: 'line-height' },\n { ...labels, property: 'line-height' },\n ],\n labelTextColor: [\n { ...labels, property: TextClass.cssVarList.textColor },\n { ...separator, property: 'color' },\n ],\n itemMarginBottom: { ...mappingItem, property: 'margin-bottom' },\n valueLabelMinWidth: { ...valueLabel, property: 'min-width' },\n attrLabelMinWidth: { ...attrLabel, property: 'min-width' },\n labelsMarginBottom: { ...labelsContainer, property: 'margin-bottom' },\n separatorWidth: {},\n removeButtonWidth: {},\n },\n }),\n draggableMixin,\n proxyInputMixin({\n proxyProps: ['value', 'selectionStart'],\n inputEvent: 'input',\n proxyParentValidation: true,\n }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-custom-field',\n style: () => `\n :host {\n display: inline-flex;\n max-width: 100%;\n direction: ltr;\n }\n vaadin-custom-field {\n line-height: unset;\n width: 100%;\n }\n\n descope-mappings-field-internal [part=\"labels\"] {\n display: none;\n grid-template-columns: 1fr var(${MappingsFieldClass.cssVarList.separatorWidth}) 1fr var(${MappingsFieldClass.cssVarList.removeButtonWidth});\n }\n\n descope-mappings-field-internal [part=\"labels\"] [part=\"value-label\"],\n descope-mappings-field-internal [part=\"labels\"] [part=\"attr-label\"] {\n ${TextClass.cssVarList.fontWeight}: 500;\n }\n\n descope-mappings-field-internal [part=\"labels\"] [part=\"value-label\"] {\n grid-column: 1 / span 1;\n }\n\n descope-mappings-field-internal [part=\"labels\"] [part=\"attr-label\"] {\n grid-column: 3 / span 1;\n }\n\n descope-mapping-item::part(wrapper) {\n display: grid;\n grid-template-columns: 1fr var(${MappingsFieldClass.cssVarList.separatorWidth}) 1fr var(${MappingsFieldClass.cssVarList.removeButtonWidth});\n }\n `,\n excludeAttrsSync: [\n 'tabindex',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'options',\n 'error-message',\n ],\n componentName,\n })\n);\n\nexport default MappingsFieldClass;\n","import '@vaadin/custom-field';\nimport '@vaadin/icon';\nimport '@vaadin/icons';\nimport { componentName, MappingsFieldClass } from './MappingsFieldClass';\nimport '@descope-ui/descope-text';\nimport '@descope-ui/descope-button';\nimport '../../descope-text-field';\nimport '@descope-ui/descope-combo-box';\nimport './descope-mappings-field-internal';\nimport './descope-mapping-item';\n\ncustomElements.define(componentName, MappingsFieldClass);\n\nexport { MappingsFieldClass, componentName };\n","import { createBaseInputClass } from '../../../../baseClasses/createBaseInputClass';\nimport {\n getComponentName,\n forwardAttrs,\n observeAttributes,\n} from '../../../../helpers/componentHelpers';\n\nexport const componentName = getComponentName('saml-group-mappings-internal');\n\nconst BaseInputClass = createBaseInputClass({ componentName, baseSelector: '' });\n\nclass SamlGroupMappingsInternal extends BaseInputClass {\n static get observedAttributes() {\n return ['invalid'].concat(BaseInputClass.observedAttributes || []);\n }\n\n constructor() {\n super();\n\n this.innerHTML = `\n <descope-text-field variant=\"body2\" bordered=\"true\"></descope-text-field>\n <descope-mappings-field></descope-mappings-field>\n `;\n\n this.groupInputElement = this.querySelector('descope-text-field');\n this.mappingsElement = this.querySelector('descope-mappings-field');\n }\n\n resetInvalidIndication() {\n this.removeAttribute('invalid');\n }\n\n handleMappingsInvalidChange(changedAttributes) {\n if (changedAttributes.includes('invalid')) {\n if (!this.mappingsElement.hasAttribute('invalid')) {\n this.resetInvalidIndication();\n }\n }\n }\n\n initFocusHandler() {\n // This event listener needs to be placed before the super.init() call\n this.addEventListener('focus', (e) => {\n // we want to ignore focus events we are dispatching\n if (e.isTrusted) {\n const focusedElement = this.mappingsElement.checkValidity()\n ? this.groupInputElement\n : this.mappingsElement;\n focusedElement.focus();\n }\n });\n }\n\n init() {\n // This needs to be placed before the super.init() call to work\n this.initFocusHandler();\n\n super.init?.();\n\n forwardAttrs(this, this.groupInputElement, {\n mapAttrs: { 'label-group': 'label' },\n includeAttrs: ['size', 'label-group', 'readonly', 'disabled'],\n });\n\n forwardAttrs(this, this.mappingsElement, {\n includeAttrs: [\n 'size',\n 'full-width',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'separator',\n 'options',\n 'readonly',\n 'disabled',\n 'data-errormessage-pattern-mismatch',\n ],\n });\n\n // Observing the invalid attribute of the mappings field to reset the invalid state for this component.\n // When an invalid item turns valid, the mappings field will remove the invalid attribute, and at this component\n // level, we need to remove the invalid attribute as well to be able to mark the component as invalid the next time\n observeAttributes(this.mappingsElement, this.handleMappingsInvalidChange.bind(this), {\n includeAttrs: ['invalid'],\n });\n }\n\n get value() {\n return {\n group: this.groupInputElement.value,\n mappings: this.mappingsElement.value,\n };\n }\n\n set value(value) {\n if (value?.group && typeof value.group === 'string') {\n this.groupInputElement.value = value.group;\n }\n if (Array.isArray(value?.mappings)) {\n this.mappingsElement.value = value.mappings;\n }\n }\n\n getValidity() {\n if (!this.groupInputElement.checkValidity()) {\n return this.groupInputElement.validity;\n }\n if (!this.mappingsElement.checkValidity()) {\n return this.mappingsElement.validity;\n }\n\n return {};\n }\n\n #handleInvalidState(isInvalid) {\n if (isInvalid) {\n if (!this.groupInputElement.checkValidity()) {\n this.groupInputElement.setAttribute('invalid', 'true');\n return;\n }\n\n if (!this.mappingsElement.checkValidity()) {\n this.mappingsElement.setAttribute('invalid', 'true');\n }\n }\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n if (attrName === 'invalid') {\n this.#handleInvalidState(newValue === 'true');\n }\n }\n}\n\nexport default SamlGroupMappingsInternal;\n","import SamlGroupMappingsInternal, { componentName } from './SamlGroupMappingsInternal';\n\ncustomElements.define(componentName, SamlGroupMappingsInternal);\n","import {\n createStyleMixin,\n draggableMixin,\n createProxy,\n proxyInputMixin,\n componentNameValidationMixin,\n} from '../../../mixins';\nimport { compose } from '../../../helpers';\nimport { forwardAttrs, getComponentName, syncAttrs } from '../../../helpers/componentHelpers';\nimport { componentName as descopeInternalComponentName } from './descope-saml-group-mappings-internal/SamlGroupMappingsInternal';\n\nexport const componentName = getComponentName('saml-group-mappings');\n\nconst customMixin = (superclass) =>\n class SamlGroupMappingsMixinClass extends superclass {\n init() {\n super.init?.();\n\n const template = document.createElement('template');\n\n template.innerHTML = `\n <${descopeInternalComponentName}\n tabindex=\"-1\"\n ></${descopeInternalComponentName}>\n `;\n\n this.baseElement.appendChild(template.content.cloneNode(true));\n\n this.inputElement = this.shadowRoot.querySelector(descopeInternalComponentName);\n\n forwardAttrs(this, this.inputElement, {\n includeAttrs: [\n 'size',\n 'full-width',\n 'label-group',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'separator',\n 'options',\n 'readonly',\n 'disabled',\n ],\n });\n\n syncAttrs(this, this.inputElement, { includeAttrs: ['invalid'] });\n }\n };\n\nconst { host, groupInput, errorMessage } = {\n host: { selector: () => ':host' },\n groupInput: { selector: 'descope-text-field' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const SamlGroupMappingsClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n groupNameInputMarginBottom: { ...groupInput, property: 'margin-bottom' },\n errorMessageIcon: { ...errorMessage, property: 'background-image' },\n errorMessageIconSize: { ...errorMessage, property: 'background-size' },\n errorMessageIconPadding: { ...errorMessage, property: 'padding-inline-start' },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: { ...errorMessage, property: 'background-position' },\n },\n }),\n draggableMixin,\n proxyInputMixin({\n proxyProps: ['value', 'selectionStart'],\n inputEvent: 'input',\n triggerValidationEvents: ['mapping-item-added', 'mapping-item-removed'],\n proxyParentValidation: true,\n }),\n componentNameValidationMixin,\n customMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-custom-field',\n style: () => `\n :host {\n display: inline-flex;\n max-width: 100%;\n direction: ltr;\n }\n\n vaadin-custom-field {\n line-height: unset;\n width: 100%;\n }\n\n descope-text-field {\n width: auto;\n }\n\n descope-mappings-field {\n display: block;\n }\n `,\n excludeAttrsSync: [\n 'tabindex',\n 'label-group',\n 'label-value',\n 'label-attr',\n 'button-label',\n 'separator',\n 'options',\n 'error-message',\n ],\n componentName,\n })\n);\n\nexport default SamlGroupMappingsClass;\n","import '@vaadin/custom-field';\n\nimport { componentName, SamlGroupMappingsClass } from './SamlGroupMappingsClass';\nimport '../../descope-text-field';\nimport '../descope-mappings-field';\nimport './descope-saml-group-mappings-internal';\n\ncustomElements.define(componentName, SamlGroupMappingsClass);\n\nexport { SamlGroupMappingsClass, componentName };\n","export const useHostExternalPadding = (cssVarList) => `\n :host {\n padding: calc(var(${cssVarList.inputOutlineWidth}) + var(${cssVarList.inputOutlineOffset}))\n }\n`;\n\nexport const resetInputFieldUnderlayingBorder = (name) => `\n ${name}::part(input-field)::after {\n border: none;\n }\n`;\n\nexport const resetInitialHeight = (name) => `\n ${name}::before {\n\t\theight: unset;\n\t}\n`;\n\nexport const resetInputElement = (name) => `\n ${name} > input {\n -webkit-mask-image: none;\n min-height: 0;\n box-sizing: border-box;\n }\n`;\n\nexport const resetInputContainer = (name) => `\n ${name} {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n }\n`;\n\nexport const resetInputField = (name) => `\n ${name}::part(input-field) {\n overflow: hidden;\n padding: 0;\n box-shadow: none;\n }\n`;\n\nexport const resetInputCursor = (name) => `\n ${name} > label,\n ${name}::part(label),\n ${name}::part(required-indicator) {\n cursor: pointer;\n }\n`;\n\nexport const resetInputPlaceholder = (name, ele = 'input') => `\n ${name}[disabled] > ${ele}:placeholder-shown,\n\t${name}[readonly] > ${ele}:placeholder-shown {\n\t\topacity: 1;\n\t}\n`;\n\nexport const resetInputAutoFill = (name, cssVarList) => `\n ${name} input:-webkit-autofill,\n ${name} input:-webkit-autofill::first-line,\n ${name} input:-webkit-autofill:hover,\n ${name} input:-webkit-autofill:active,\n ${name} input:-webkit-autofill:focus {\n -webkit-text-fill-color: var(${cssVarList.inputValueTextColor});\n box-shadow: 0 0 0 var(${cssVarList.inputHeight}) var(${cssVarList.inputBackgroundColor}) inset;\n }\n`;\n\nexport const resetInputFieldDefaultWidth = () => `\n :host {\n --vaadin-field-default-width: auto;\n box-sizing: border-box;\n }\n`;\n\nexport const resetInputReadonlyStyle = (name) => `\n ${name}::part(input-field)::after {\n opacity: 0;\n }\n`;\n\nexport const resetInputFieldInvalidBackgroundColor = (name) => `\n ${name}::part(input-field)::after {\n background: none;\n }\n`;\n\nexport const resetInputOverrides = (name, cssVarList) => `\n ${resetInputContainer(name)}\n ${resetInputCursor(name)}\n ${resetInputPlaceholder(name)}\n ${resetInputField(name)}\n ${resetInputAutoFill(name, cssVarList)}\n ${resetInputFieldInvalidBackgroundColor(name)}\n ${resetInitialHeight(name)}\n ${resetInputElement(name)}\n ${resetInputFieldUnderlayingBorder(name)}\n`;\n\n// This function is used to support RTL correctly for input components.\n// It also fixes the error message to be displayed LTR since we currently\n// don't support RTL for error messages.\nexport const resetInputLabelPosition = (name) => `\n :host ::part(error-message) {\n direction: ltr;\n }\n :host([required]) ::part(required-indicator) {\n width: 1em;\n display: inline-flex;\n }\n :host([required]) ::part(required-indicator)::after {\n position: static;\n }\n :host([has-label]) ::part(label) {\n padding-right: 0;\n padding-bottom: 0;\n display: flex;\n width: 100%;\n }\n ${name} [slot=\"label\"] {\n max-width: calc(100% - 1em);\n overflow: hidden;\n text-overflow: ellipsis;\n padding-bottom: 0.5em;\n }\n`;\n\nexport const inputFloatingLabelStyle = () => {\n return `\n :host([label-type=\"floating\"]) {\n position: relative;\n }\n :host([label-type=\"floating\"][has-label]) [slot=\"label\"] {\n padding: 0;\n }\n :host([label-type=\"floating\"][has-label]) > ::part(label) {\n z-index: 1;\n padding: 0;\n width: auto;\n }\n `;\n};\n"],"names":["componentName","host","label","slottedIcon","selector","loadingIndicatorStyles","ButtonClass","mappings","hostWidth","property","hostHeight","hostDirection","fontSize","fontFamily","cursor","backgroundColor","outlineOffset","outlineColor","outlineStyle","outlineWidth","borderRadius","borderColor","borderStyle","borderWidth","verticalPadding","horizontalPadding","fallback","labelTextColor","iconColor","cssVarList","fill","labelTextDecoration","labelSpacing","textAlign","iconSize","slots","wrappedEleName","style","excludeAttrsSync","color","clickableMixin","superclass","isLoading","this","getAttribute","click","super","customElements","define","RawIcon","baseSelector","observedAttributes","constructor","attachShadow","mode","innerHTML","init","toggleVisibility","src","isVisible","display","updateFillColor","node","querySelectorAll","forEach","ele","setAttribute","IconClass","attributeChangedCallback","attrName","oldValue","newValue","then","res","clonedNode","cloneNode","appendChild","createSvgEle","text","clean","sanitize","USE_PROFILES","svg","svgFilters","DOMParser","parseFromString","querySelector","createIcon","async","startsWith","isBase64Svg","svgXml","atob","slice","base64Prefix","path","match","getFileExtension","fetchedSrc","fetch","document","createElement","createImgEle","setProperty","RawText","hideWhenEmpty","hasChildren","childNodes","length","TextClass","textColor","textLineHeight","textLetterSpacing","textShadow","textTransform","fontStyle","fontWeight","createBaseInputClass","args","observedAttrs","TextFieldClass","proxyProps","useProxyTargets","concat","icon","renderCopyToClipboard","shouldRender","remove","iconInitConfig","title","iconCopiedConfig","Object","assign","slot","baseElement","addEventListener","navigator","clipboard","writeText","value","setTimeout","onLabelClick","focus","oldVal","newVal","attributeChangeCallback","_setType","removeEventListener","inputOutlineWidth","inputOutlineOffset","placeholder","requiredIndicator","inputField","input","inputMask","helperText","errorMessage","disabledPlaceholder","inputDisabled","inputIcon","externalInput","externalInputDisabled","externalPlaceholder","externalDisabledPlaceholder","labelFontSize","labelFontWeight","hostMinWidth","inputDirection","inputBackgroundColor","errorMessageTextColor","errorMessageIcon","errorMessageIconSize","errorMessageIconPadding","errorMessageIconRepeat","errorMessageIconPosition","helperTextColor","inputValueTextColor","inputCaretTextColor","labelRequiredIndicator","inputBorderColor","inputBorderWidth","inputBorderStyle","inputBorderRadius","inputHeight","inputHorizontalPadding","inputOutlineColor","inputOutlineStyle","inputTextAlign","inputPlaceholderColor","labelPosition","labelTopPosition","labelHorizontalPosition","inputTransformY","inputTransition","marginInlineStart","placeholderOpacity","inputVerticalAlignment","valueInputHeight","valueInputMarginBottom","inputIconOffset","inputIconSize","inputIconColor","inputAttrs","BaseInputClass","separator","attributeValue","attributeInput","inputValue","valueInput","mapping","entries","console","error","attribute","dispatchEvent","InputEvent","bubbles","composed","shadowRoot","inputs","removeButton","includeAttrs","mapAttrs","options","initRemoveButton","CustomEvent","getValidity","badInput","reportValidity","checkValidity","handleSeparatorChange","textContent","invalid","defaultErrorMsgValueMissing","isValidDataType","data","every","obj","Array","isArray","getOwnPropertyNames","keys","trim","e","labelValue","labelAttr","buttonLabel","addNewMappingItem","focusNewItem","newMappingItem","mappingsContainerEle","setCustomValidity","resetInvalidIndication","undefined","items","from","reduce","acc","item","currentItems","i","removeChild","index","mappingItem","labelsEle","buttonContainer","initLabels","initAddButton","isDisabled","button","onclick","isTrusted","contains","removeAttribute","bind","errorItem","find","validity","isInvalid","toggleAttribute","labels","labelsText","valueLabel","attrLabel","labelsContainer","MappingsFieldClass","separatorFontSize","labelsFontSize","labelsLineHeight","itemMarginBottom","valueLabelMinWidth","attrLabelMinWidth","labelsMarginBottom","separatorWidth","removeButtonWidth","inputEvent","proxyParentValidation","defaultValues","defaultValuesAttr","JSON","parse","message","setDefaultValues","initialDefaultValues","inputElement","template","content","groupInputElement","mappingsElement","handleMappingsInvalidChange","changedAttributes","includes","hasAttribute","initFocusHandler","group","groupInput","SamlGroupMappingsClass","groupNameInputMarginBottom","triggerValidationEvents","useHostExternalPadding","resetInputContainer","name","resetInputField","resetInputCursor","resetInputPlaceholder","resetInputFieldDefaultWidth","resetInputReadonlyStyle","resetInputFieldInvalidBackgroundColor","resetInputOverrides","resetInputAutoFill","resetInitialHeight","resetInputElement","resetInputFieldUnderlayingBorder","resetInputLabelPosition","inputFloatingLabelStyle"],"sourceRoot":""}