@descope/web-components-ui 3.1.12 → 3.2.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.
- package/dist/cjs/index.cjs.js +789 -505
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/index.esm.js +1027 -742
- package/dist/index.esm.js.map +1 -1
- package/dist/umd/5414.js +1 -1
- package/dist/umd/5414.js.LICENSE.txt +1 -1
- package/dist/umd/5414.js.map +1 -1
- package/dist/umd/DescopeDev.js +1 -1
- package/dist/umd/DescopeDev.js.map +1 -1
- package/dist/umd/descope-attachment.js +2 -0
- package/dist/umd/descope-attachment.js.map +1 -0
- package/dist/umd/descope-badge.js +1 -1
- package/dist/umd/descope-badge.js.map +1 -1
- package/dist/umd/descope-tooltip.js +1 -1
- package/dist/umd/descope-tooltip.js.map +1 -1
- package/dist/umd/descope-trusted-devices.js +1 -1
- package/dist/umd/descope-trusted-devices.js.map +1 -1
- package/dist/umd/descope-user-attribute-index-js.js +4 -4
- package/dist/umd/descope-user-attribute-index-js.js.map +1 -1
- package/dist/umd/descope-user-auth-method-index-js.js +3 -3
- package/dist/umd/descope-user-auth-method-index-js.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +32 -31
- package/src/constants.js +0 -1
- package/src/helpers/themeHelpers/index.js +48 -21
- package/src/theme/components/index.js +2 -0
- package/src/theme/components/phoneField.js +0 -4
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[7164],{44050(t,e,n){n.r(e),n.d(e,{AttachmentClass:()=>p,componentName:()=>r});var s=n(88961),i=n(72270),o=n(25964),a=n(63200);const r=(0,o.xE)("attachment"),l=["top-end","top-start","top-center","bottom-start","bottom-end","bottom-center"],c=l[0];class h extends((0,i.qu)({componentName:r,baseSelector:":host > .wrapper"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <div class="wrapper">\n <slot></slot>\n <div class="attachment-container">\n <slot name="attachment"></slot>\n </div>\n </div>\n ',this.defaultSlot=this.shadowRoot.querySelector("slot:not([name])"),this.attachmentSlot=this.shadowRoot.querySelector('slot[name="attachment"]')}static get observedAttributes(){return[...super.observedAttributes||[],"position"]}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),"position"===t&&e!==n&&this.#t()}init(){super.init?.(),(0,o.fz)("\n :host {\n display: inline-block;\n }\n .wrapper {\n position: relative;\n display: inline-flex;\n }\n .attachment-container {\n position: absolute;\n z-index: 1;\n pointer-events: none;\n width: 100%;\n display: flex;\n align-items: center;\n container-type: inline-size;\n }\n :host(.hidden) {\n display: none;\n }\n ",this),this.#t(),this.defaultSlot.addEventListener("slotchange",()=>{this.#e(),this.#n()}),window.requestAnimationFrame(()=>{this.#e(),this.#n()})}#e(){const t=this.defaultSlot?.assignedElements()?.length>0;this.classList.toggle("hidden",!t)}#n(){const t=this.defaultSlot?.assignedElements()?.[0];if(!t)return;const{direction:e}=window.getComputedStyle(t);this.attachmentSlot?.assignedElements().forEach(t=>{t.setAttribute("st-host-direction",e)})}get offsetX(){return this.getAttribute("offset-x")||"0px"}get offsetY(){return this.getAttribute("offset-y")||"0px"}#t(){const t=this.getAttribute("position");l.includes(t)||this.setAttribute("position",c)}}const d={selector:()=>".attachment-container"},p=(0,a.Zz)((0,s.RF)({mappings:{transform:{...d},justifyContent:{...d},maxWidth:{...d},top:{...d},bottom:{...d},left:{...d},right:{...d},offsetX:{},offsetY:{}}}),s.VO,s.tQ)(h);customElements.define(r,p)}}]);
|
|
2
|
+
//# sourceMappingURL=descope-attachment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"descope-attachment.js","mappings":"gPAYO,MAAMA,GAAgB,QAAiB,cAExCC,EAAuB,CAC3B,UACA,YACA,aACA,eACA,aACA,iBAGIC,EAAmBD,EAAqB,GAE9C,MAAME,WAAsB,QAAgB,CAC1CH,gBACAI,aAAc,sBAEd,WAAAC,GACEC,QAEAC,KAAKC,aAAa,CAAEC,KAAM,SAAUC,UAAY,kLAShDH,KAAKI,YAAcJ,KAAKK,WAAWC,cAAc,oBACjDN,KAAKO,eAAiBP,KAAKK,WAAWC,cACpC,0BAEJ,CAEA,6BAAWE,GACT,MAAO,IAAKT,MAAMS,oBAAsB,GAAK,WAC/C,CAEA,wBAAAC,CAAyBC,EAAMC,EAAQC,GACrCb,MAAMU,2BAA2BC,EAAMC,EAAQC,GAClC,aAATF,GAAuBC,IAAWC,GACpCZ,MAAK,GAET,CAEA,IAAAa,GACEd,MAAMc,UAEN,QACE,8bAqBAb,MAGFA,MAAK,IAELA,KAAKI,YAAYU,iBAAiB,aAAc,KAC9Cd,MAAK,IACLA,MAAK,MAGPe,OAAOC,sBAAsB,KAC3BhB,MAAK,IACLA,MAAK,KAET,CAEA,KACE,MAAMiB,EAAYjB,KAAKI,aAAac,oBAAoBC,OAAS,EACjEnB,KAAKoB,UAAUC,OAAO,UAAWJ,EACnC,CAEA,KACE,MAAMK,EAAQtB,KAAKI,aAAac,qBAAqB,GACrD,IAAKI,EAAO,OAEZ,MAAM,UAAEC,GAAcR,OAAOS,iBAAiBF,GAI9CtB,KAAKO,gBAAgBW,mBAAmBO,QAASC,IAC/CA,EAAGC,aAAa,oBAAqBJ,IAEzC,CAEA,WAAIK,GACF,OAAO5B,KAAK6B,aAAa,aAAe,KAC1C,CAEA,WAAIC,GACF,OAAO9B,KAAK6B,aAAa,aAAe,KAC1C,CAEA,KACE,MAAME,EAAM/B,KAAK6B,aAAa,YACzBnC,EAAqBsC,SAASD,IACjC/B,KAAK2B,aAAa,WAAYhC,EAElC,EAGF,MAAMsC,EAAsB,CAAEC,SAAU,IAAM,yBAEjCC,GAAkB,SAC7B,QAAiB,CACfC,SAAU,CACRC,UAAW,IAAKJ,GAChBK,eAAgB,IAAKL,GACrBM,SAAU,IAAKN,GACfO,IAAK,IAAKP,GACVQ,OAAQ,IAAKR,GACbS,KAAM,IAAKT,GACXU,MAAO,IAAKV,GACZL,QAAS,CAAC,EACVE,QAAS,CAAC,KAGd,KACA,KAf6B,CAgB7BlC,GCrJFgD,eAAeC,OAAOpD,EAAe0C,E","sources":["webpack://@descope/web-components-ui/../components/descope-attachment/src/component/AttachmentClass.js","webpack://@descope/web-components-ui/../components/descope-attachment/src/component/index.js"],"sourcesContent":["import {\n componentNameValidationMixin,\n createStyleMixin,\n draggableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport {\n getComponentName,\n injectStyle,\n} from '@descope-ui/common/components-helpers';\nimport { compose } from '@descope-ui/common/utils';\n\nexport const componentName = getComponentName('attachment');\n\nconst ATTACHMENT_POSITIONS = [\n 'top-end',\n 'top-start',\n 'top-center',\n 'bottom-start',\n 'bottom-end',\n 'bottom-center',\n];\n\nconst DEFAULT_POSITION = ATTACHMENT_POSITIONS[0];\n\nclass RawAttachment extends createBaseClass({\n componentName,\n baseSelector: ':host > .wrapper',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div class=\"wrapper\">\n <slot></slot>\n <div class=\"attachment-container\">\n <slot name=\"attachment\"></slot>\n </div>\n </div>\n `;\n\n this.defaultSlot = this.shadowRoot.querySelector('slot:not([name])');\n this.attachmentSlot = this.shadowRoot.querySelector(\n 'slot[name=\"attachment\"]',\n );\n }\n\n static get observedAttributes() {\n return [...(super.observedAttributes || []), 'position'];\n }\n\n attributeChangedCallback(name, oldVal, newVal) {\n super.attributeChangedCallback?.(name, oldVal, newVal);\n if (name === 'position' && oldVal !== newVal) {\n this.#handlePositionChange();\n }\n }\n\n init() {\n super.init?.();\n\n injectStyle(\n `\n :host {\n display: inline-block;\n }\n .wrapper {\n position: relative;\n display: inline-flex;\n }\n .attachment-container {\n position: absolute;\n z-index: 1;\n pointer-events: none;\n width: 100%;\n display: flex;\n align-items: center;\n container-type: inline-size;\n }\n :host(.hidden) {\n display: none;\n }\n `,\n this,\n );\n\n this.#handlePositionChange();\n\n this.defaultSlot.addEventListener('slotchange', () => {\n this.#setVisibility();\n this.#syncDirection();\n });\n\n window.requestAnimationFrame(() => {\n this.#setVisibility();\n this.#syncDirection();\n });\n }\n\n #setVisibility() {\n const hasAnchor = this.defaultSlot?.assignedElements()?.length > 0;\n this.classList.toggle('hidden', !hasAnchor);\n }\n\n #syncDirection() {\n const child = this.defaultSlot?.assignedElements()?.[0];\n if (!child) return;\n\n const { direction } = window.getComputedStyle(child);\n\n // currently we support direction sync only for web-components-ui\n // elements, which support st-host-direction attribute.\n this.attachmentSlot?.assignedElements().forEach((el) => {\n el.setAttribute('st-host-direction', direction);\n });\n }\n\n get offsetX() {\n return this.getAttribute('offset-x') || '0px';\n }\n\n get offsetY() {\n return this.getAttribute('offset-y') || '0px';\n }\n\n #handlePositionChange() {\n const pos = this.getAttribute('position');\n if (!ATTACHMENT_POSITIONS.includes(pos)) {\n this.setAttribute('position', DEFAULT_POSITION);\n }\n }\n}\n\nconst attachmentContainer = { selector: () => '.attachment-container' };\n\nexport const AttachmentClass = compose(\n createStyleMixin({\n mappings: {\n transform: { ...attachmentContainer },\n justifyContent: { ...attachmentContainer },\n maxWidth: { ...attachmentContainer },\n top: { ...attachmentContainer },\n bottom: { ...attachmentContainer },\n left: { ...attachmentContainer },\n right: { ...attachmentContainer },\n offsetX: {},\n offsetY: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawAttachment);\n","import { componentName, AttachmentClass } from './AttachmentClass';\n\ncustomElements.define(componentName, AttachmentClass);\n\nexport { AttachmentClass, componentName };\n"],"names":["componentName","ATTACHMENT_POSITIONS","DEFAULT_POSITION","RawAttachment","baseSelector","constructor","super","this","attachShadow","mode","innerHTML","defaultSlot","shadowRoot","querySelector","attachmentSlot","observedAttributes","attributeChangedCallback","name","oldVal","newVal","init","addEventListener","window","requestAnimationFrame","hasAnchor","assignedElements","length","classList","toggle","child","direction","getComputedStyle","forEach","el","setAttribute","offsetX","getAttribute","offsetY","pos","includes","attachmentContainer","selector","AttachmentClass","mappings","transform","justifyContent","maxWidth","top","bottom","left","right","customElements","define"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[4188],{77888(t,e,o){o.d(e,{T:()=>
|
|
1
|
+
"use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[4188],{77888(t,e,o){o.d(e,{T:()=>d,e:()=>a});var n=o(88961),r=o(72270),i=o(25964),s=o(63200);const d=(0,i.xE)("badge");class p extends((0,r.qu)({componentName:d,baseSelector:":host > div"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n\t\t<div>\n <slot></slot>\n\t\t</div>\n\t\t",(0,i.fz)("\n :host {\n display: inline-flex;\n }\n :host > div {\n position: relative;\n width: 100%;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n ",this)}}const a=(0,s.Zz)((0,n.RF)({mappings:{hostWidth:[{selector:()=>":host",property:"width"}],hostHeight:[{selector:()=>":host",property:"height"}],hostDirection:{property:"direction"},fontFamily:{},fontSize:{},fontWeight:{},textTransform:{},verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-left"},{property:"padding-right"}],borderWidth:{},borderStyle:{},borderColor:{},borderRadius:{},backgroundColor:{},textColor:{property:"color"},textAlign:{},boxShadow:{},textIndent:{}}}),n.VO,n.tQ)(p)},11065(t,e,o){o.r(e),o.d(e,{BadgeClass:()=>n.e,componentName:()=>n.T});var n=o(77888);customElements.define(n.T,n.e)}}]);
|
|
2
2
|
//# sourceMappingURL=descope-badge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descope-badge.js","mappings":"+
|
|
1
|
+
{"version":3,"file":"descope-badge.js","mappings":"+MAYO,MAAMA,GAAgB,QAAiB,SAE9C,MAAMC,WAAiB,QAAgB,CACrCD,gBACAE,aAAc,iBAEd,WAAAC,GACEC,QAEAC,KAAKC,aAAa,CAAEC,KAAM,SAAUC,UAAY,sDAMhD,QACE,8OAYAH,KAEJ,EAGK,MAAMI,GAAa,SACxB,QAAiB,CACfC,SAAU,CACRC,UAAW,CAAC,CAAEC,SAAU,IAAM,QAASC,SAAU,UACjDC,WAAY,CAAC,CAAEF,SAAU,IAAM,QAASC,SAAU,WAClDE,cAAe,CAAEF,SAAU,aAE3BG,WAAY,CAAC,EACbC,SAAU,CAAC,EACXC,WAAY,CAAC,EACbC,cAAe,CAAC,EAChBC,gBAAiB,CACf,CAAEP,SAAU,eACZ,CAAEA,SAAU,mBAEdQ,kBAAmB,CACjB,CAAER,SAAU,gBACZ,CAAEA,SAAU,kBAGdS,YAAa,CAAC,EACdC,YAAa,CAAC,EACdC,YAAa,CAAC,EACdC,aAAc,CAAC,EAEfC,gBAAiB,CAAC,EAElBC,UAAW,CAAEd,SAAU,SACvBe,UAAW,CAAC,EACZC,UAAW,CAAC,EACZC,WAAY,CAAC,KAGjB,KACA,KAlCwB,CAmCxB7B,E,uFC9EF8B,eAAeC,OAAO,IAAe,I","sources":["webpack://@descope/web-components-ui/../components/descope-badge/src/component/BadgeClass.js","webpack://@descope/web-components-ui/../components/descope-badge/src/component/index.js"],"sourcesContent":["import {\n componentNameValidationMixin,\n createStyleMixin,\n draggableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport {\n getComponentName,\n injectStyle,\n} from '@descope-ui/common/components-helpers';\nimport { compose } from '@descope-ui/common/utils';\n\nexport const componentName = getComponentName('badge');\n\nclass RawBadge extends createBaseClass({\n componentName,\n baseSelector: ':host > div',\n}) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<div>\n <slot></slot>\n\t\t</div>\n\t\t`;\n\n injectStyle(\n `\n :host {\n display: inline-flex;\n }\n :host > div {\n position: relative;\n width: 100%;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n `,\n this,\n );\n }\n}\n\nexport const BadgeClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: [{ selector: () => ':host', property: 'width' }],\n hostHeight: [{ selector: () => ':host', property: 'height' }],\n hostDirection: { property: 'direction' },\n\n fontFamily: {},\n fontSize: {},\n fontWeight: {},\n textTransform: {},\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-left' },\n { property: 'padding-right' },\n ],\n\n borderWidth: {},\n borderStyle: {},\n borderColor: {},\n borderRadius: {},\n\n backgroundColor: {},\n\n textColor: { property: 'color' },\n textAlign: {},\n boxShadow: {},\n textIndent: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawBadge);\n","import { componentName, BadgeClass } from './BadgeClass';\n\ncustomElements.define(componentName, BadgeClass);\n\nexport { BadgeClass, componentName };\n"],"names":["componentName","RawBadge","baseSelector","constructor","super","this","attachShadow","mode","innerHTML","BadgeClass","mappings","hostWidth","selector","property","hostHeight","hostDirection","fontFamily","fontSize","fontWeight","textTransform","verticalPadding","horizontalPadding","borderWidth","borderStyle","borderColor","borderRadius","backgroundColor","textColor","textAlign","boxShadow","textIndent","customElements","define"],"sourceRoot":""}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/*! For license information please see descope-tooltip.js.LICENSE.txt */
|
|
2
|
-
"use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[628,2294,4159,9261],{76231(t,e,o){o.d(e,{T:()=>a,m:()=>p});var i=o(92540),s=o(88961),n=o(63200),r=o(36976),l=o(72270),h=o(54847),d=o(25964);const a=(0,d.xE)("enriched-text");class c extends((0,l.qu)({componentName:a,baseSelector:":host > div"})){#t;#e;constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <div class="content"></div>\n ',(0,d.fz)("\n :host {\n line-height: 1em;\n word-break: break-word;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n *, *:last-child {\n margin: 0;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n p {\n margin-bottom: 1em;\n }\n a {\n cursor: pointer;\n }\n blockquote {\n padding: 0 2em;\n }\n u {\n text-decoration: underline\n }\n s {\n color: currentColor;\n }\n ",this),this.#o(),(0,d.Ge)(this,this.#i.bind(this)),this.contentNode?.addEventListener("click",t=>{t.target instanceof HTMLAnchorElement&&t.stopPropagation()})}static get observedAttributes(){return["readonly","link-target-blank"]}attributeChangedCallback(t,e,o){super.attributeChangedCallback?.(t,e,o),o!==e&&("readonly"===t&&this.onReadOnlyChange("true"===o),"link-target-blank"===t&&this.#o())}customUnderlineRenderer(){this.processor.renderer.rules.em_open=(t,e,o,i,s)=>("_"===t[e].markup&&(t[e].tag="u"),this.#e(t,e,o,i,s)),this.processor.renderer.rules.em_close=(t,e,o,i,s)=>("_"===t[e].markup&&(t[e].tag="u"),this.#e(t,e,o,i,s))}#s(){this.linkTargetBlank?this.processor.renderer.rules.link_open=(t,e,o,i,s)=>(t[e].attrSet("target","_blank"),this.#t(t,e,o,i,s)):this.processor.renderer.rules.link_open=this.#t}#n(){this.processor&&this.processor.disable(r.M)}#r(){this.#n()}#l(){this.#t=this.processor.renderer.rules.link_open||((t,e,o,i,s)=>s.renderToken(t,e,o)),this.#e=this.processor.renderer.rules.em_open||((t,e,o,i,s)=>s.renderToken(t,e,o))}#o(){this.processor=new i.A("commonmark",{html:!0}),this.#l(),this.#r(),this.#s(),this.customUnderlineRenderer()}get linkTargetBlank(){return"true"===this.getAttribute("link-target-blank")}get contentNode(){return this.shadowRoot.querySelector(".content")}#i(){if(!this.processor)return;let t=(0,h.G)(this.innerHTML);!t?.trim()&&this.isConnected?this.setAttribute("empty","true"):this.removeAttribute("empty");try{const e=this.processor.parse(t,{references:void 0});t=this.processor.renderer.render(e,{html:!0,breaks:!0})}catch(t){console.warn("Not parsing invalid markdown token")}this.contentNode.innerHTML=t,this.contentNode.firstChild?.setAttribute("part","content")}onReadOnlyChange(t){t?this.contentNode.setAttribute("inert",t):this.contentNode.removeAttribute("inert")}}const p=(0,n.Zz)((0,s.RF)({mappings:{hostWidth:{selector:()=>":host",property:"width"},hostDisplay:{selector:()=>":host",property:"display",fallback:"inline-block"},hostDirection:{selector:()=>":host",property:"direction"},fontSize:{},fontFamily:{},fontWeight:{},fontWeightBold:[{selector:()=>":host strong",property:"font-weight"},{selector:()=>":host b",property:"font-weight"}],textColor:{property:"color"},textLineHeight:{property:"line-height"},textAlign:{},linkColor:{selector:"a",property:"color"},linkTextDecoration:{selector:"a",property:"text-decoration"},linkHoverTextDecoration:{selector:"a:hover",property:"text-decoration"},minHeight:{},minWidth:{}}}),(0,s.RF)({componentNameOverride:(0,d.xE)("link")}),(0,s.RF)({componentNameOverride:(0,d.xE)("text")}),s.VO,s.tQ)(c)},36976(t,e,o){o.d(e,{M:()=>i});const i=["blockquote","list","image","table","code","hr","backticks","fence","reference","heading","lheading","html_block"]},54847(t,e,o){o.d(e,{G:()=>i});const i=t=>{const e=document.createElement("textarea");return e.innerHTML=t,e.value}},55838(t,e,o){o.r(e),o.d(e,{EnrichedTextClass:()=>i.m,componentName:()=>i.T}),o(74778);var i=o(76231);customElements.define(i.T,i.m)},74778(t,e,o){o.r(e),o.d(e,{LinkClass:()=>g,componentName:()=>h});var i=o(88961),s=o(63200),n=o(25964),r=o(72270),l=o(66434);const h=(0,n.xE)("link");class d extends((0,r.qu)({componentName:h,baseSelector:":host a"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n\t\t<div>\n\t\t\t<descope-text part="wrapper">\n\t\t\t\t<a>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</a>\n\t\t\t</descope-text>\n\t\t</div>\n\t\t',(0,n.fz)('\n :host {\n\t\t\tdisplay: inline-block;\n line-height: 1em;\n\t\t}\n\t\t:host a {\n\t\t\tdisplay: inline;\n\t\t}\n\n :host([ellipsis="true"]) descope-text {\n display: inline-flex;\n }\n :host([ellipsis="true"]) descope-text::part(text-wrapper) {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n ',this),(0,n.EA)(this,this.shadowRoot.querySelector("a"),{includeAttrs:["href","target","tooltip"],mapAttrs:{tooltip:"title"}}),(0,n.EA)(this,this.shadowRoot.querySelector("descope-text"),{includeAttrs:["mode","variant"]})}}const a={host:{selector:()=>":host"},link:{selector:()=>":host a"},anchor:{},wrapper:{selector:()=>":host > div"},text:{selector:()=>l.s.componentName}},{anchor:c,text:p,host:u,wrapper:m,link:y}=a,g=(0,s.Zz)((0,i.RF)({mappings:{hostWidth:{...u,property:"width"},hostDirection:{...p,property:"direction"},textAlign:m,textDecoration:{...y,property:"text-decoration",fallback:"none"},textColor:[{...c,property:"color"},{...p,property:l.s.cssVarList.textColor}],cursor:c}}),i.VO,i.tQ)(d);o(63595),customElements.define(h,g)},66434(t,e,o){o.d(e,{T:()=>l,s:()=>a});var i=o(88961),s=o(63200),n=o(25964),r=o(72270);const l=(0,n.xE)("text");class h extends((0,r.qu)({componentName:l,baseSelector:":host > slot"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <slot part="text-wrapper"></slot>\n ',(0,n.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,n.Ge)(this,()=>{const t=!!this.childNodes.length;this.style.display=!t&&this.hideWhenEmpty?"none":""})}}const{host:d}={host:{selector:()=>":host"}},a=(0,s.Zz)((0,i.RF)({mappings:{hostWidth:{...d,property:"width"},hostDirection:{...d,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)(h)},63595(t,e,o){o.r(e),o.d(e,{TextClass:()=>i.s,componentName:()=>i.T});var i=o(66434);customElements.define(i.T,i.s)},38516(t,e,o){o.r(e),o.d(e,{TooltipClass:()=>u,componentName:()=>h}),o(55838),o(17017),o(76720);var i=o(88961),s=o(63200),n=o(25964),r=o(72270),l=o(76231);const h=(0,n.xE)("tooltip"),d=["text","position","hide-delay","hover-delay","opened"],a=(0,r.qu)({componentName:h,baseSelector:"vaadin-tooltip"}),{overlay:c,content:p}={overlay:{selector:()=>"vaadin-tooltip-overlay::part(overlay)"},content:{selector:()=>"vaadin-tooltip-overlay::part(content)"}},u=(0,s.Zz)(i.tQ,(0,i.mA)({selector:"",mappings:{fontFamily:{...p,property:l.m.cssVarList.fontFamilyOverride},fontSize:{...p,property:l.m.cssVarList.fontSizeOverride},fontWeight:{...p,property:l.m.cssVarList.fontWeightOverride},textColor:{...p,property:l.m.cssVarList.textColorOverride},hostDirection:{...p,property:l.m.cssVarList.hostDirectionOverride},backgroundColor:[{...c},{...p}],borderColor:{...c},borderStyle:{...c},borderWidth:{...c},borderRadius:{...c},boxShadow:{...c},horizontalPadding:[{...p,property:"padding-left"},{...p,property:"padding-right"}],verticalPadding:[{...p,property:"padding-top"},{...p,property:"padding-bottom"}]},forward:{attributes:["style"],include:!1}}))(class extends a{static get observedAttributes(){return d.concat(a.observedAttributes||[])}get isOpened(){return"true"===this.getAttribute("opened")}get overlay(){return this.tooltip?._overlayElement}get overlayContentNode(){return this.overlay?.shadowRoot.querySelector('[part="content"]')}get tooltipText(){return this.getAttribute("text")?.trim()||""}get isStaticDisplay(){return"true"===this.getAttribute("static-display")}#h(){this.isStaticDisplay?(this.#d(),this.setAttribute("inert","true")):(this.#a(),this.removeAttribute("inert"))}init(){super.init(),this.style.display="contents",this.insertAdjacentHTML("beforeend","<vaadin-tooltip></vaadin-tooltip>"),this.tooltip=this.querySelector("vaadin-tooltip"),this.#a(),this.#c(),setTimeout(()=>this.#p())}#a(){this.tooltip.style.width="0",this.tooltip.style.height="0",this.tooltip.style.display="block",this.tooltip.style.overflow="hidden",this.tooltip.style.position="absolute"}#d(){this.tooltip.style.width="100%",this.tooltip.style.height="100%",this.tooltip.style.position="static",this.tooltip.style.overflow="visible",this.tooltip.textContent="",this.overlay.style.display="block",this.overlay.style.position="static"}#p(){this.#u(),this.#m(),(0,n.EA)(this,this.tooltip,{includeAttrs:["position","opened"]}),this.#y()}#c(){if(!this.children?.length)return;let t=Array.from(this.children).find(t=>t!==this.tooltip);t&&(this.tooltip.target=t)}#g(){this.overlayContentNode.innerHTML=""}#b(){const t=document.createElement("descope-enriched-text");return t.setAttribute("link-target-blank","true"),t.textContent=this.tooltipText,t}#u(){this.overlayContentNode&&setTimeout(()=>{this.#g(),this.textComponent=this.#b(),this.overlayContentNode.appendChild(this.textComponent),(0,n.EA)(this,this.textComponent,{includeAttrs:["readonly"]})})}#m(){this.overlay&&(this.isOpened?setTimeout(()=>{this.tooltip.shadowRoot.appendChild(this.overlay),this.#h()}):(this.overlay._detachOverlay=()=>{},this.overlay._attachOverlay=()=>this.tooltip.shadowRoot.appendChild(this.overlay)))}#y(){this.tooltip?.toggleAttribute("manual",this.isOpened)}#v(t){this.textComponent&&(this.textComponent.textContent=t?.trim())}attributeChangedCallback(t,e,o){super.attributeChangedCallback?.(t,e,o),e!==o&&("text"===t&&this.#v(o),"opened"===t&&this.#y(t,o))}});customElements.define(h,u)},1508(t,e,o){function i(t){const e=[];for(;t;){if(t.nodeType===Node.DOCUMENT_NODE){e.push(t);break}t.nodeType!==Node.DOCUMENT_FRAGMENT_NODE?t=t.assignedSlot?t.assignedSlot:t.parentNode:(e.push(t),t=t.host)}return e}function s(t){const e=[];let o;return"slot"===t.localName?o=t.assignedElements():(e.push(t),o=[...t.children]),o.forEach(t=>e.push(...s(t))),e}function n(t,e){return e?e.closest(t)||n(t,e.getRootNode().host):null}function r(t){return t?new Set(t.split(" ")):new Set}function l(t){return t?[...t].join(" "):""}function h(t,e,o){const i=r(t.getAttribute(e));i.add(o),t.setAttribute(e,l(i))}function d(t,e,o){const i=r(t.getAttribute(e));i.delete(o),0!==i.size?t.setAttribute(e,l(i)):t.removeAttribute(e)}function a(t){return t.nodeType===Node.TEXT_NODE&&""===t.textContent.trim()}o.d(e,{Dy:()=>i,J$:()=>s,Wr:()=>d,Z4:()=>r,ZA:()=>a,el:()=>n,iA:()=>h,sz:()=>l})},44099(t,e,o){o.d(e,{r:()=>r});var i=o(1508),s=o(65641),n=o(11707);class r extends EventTarget{static generateId(t,e){return`${e||"default"}-${t.localName}-${(0,n.I)()}`}constructor(t,e,o,i={}){super();const{initializer:s,multiple:n,observe:r,useUniqueId:l}=i;this.host=t,this.slotName=e,this.tagName=o,this.observe="boolean"!=typeof r||r,this.multiple="boolean"==typeof n&&n,this.slotInitializer=s,n&&(this.nodes=[]),l&&(this.defaultId=this.constructor.generateId(t,e))}hostConnected(){this.initialized||(this.multiple?this.initMultiple():this.initSingle(),this.observe&&this.observeSlot(),this.initialized=!0)}initSingle(){let t=this.getSlotChild();t?(this.node=t,this.initAddedNode(t)):(t=this.attachDefaultNode(),this.initNode(t))}initMultiple(){const t=this.getSlotChildren();if(0===t.length){const t=this.attachDefaultNode();t&&(this.nodes=[t],this.initNode(t))}else this.nodes=t,t.forEach(t=>{this.initAddedNode(t)})}attachDefaultNode(){const{host:t,slotName:e,tagName:o}=this;let i=this.defaultNode;return!i&&o&&(i=document.createElement(o),i instanceof Element&&(""!==e&&i.setAttribute("slot",e),this.defaultNode=i)),i&&(this.node=i,t.appendChild(i)),i}getSlotChildren(){const{slotName:t}=this;return Array.from(this.host.childNodes).filter(e=>e.nodeType===Node.ELEMENT_NODE&&e.slot===t||e.nodeType===Node.TEXT_NODE&&e.textContent.trim()&&""===t)}getSlotChild(){return this.getSlotChildren()[0]}initNode(t){const{slotInitializer:e}=this;e&&e(t,this.host)}initCustomNode(t){}teardownNode(t){}initAddedNode(t){t!==this.defaultNode&&(this.initCustomNode(t),this.initNode(t))}observeSlot(){const{slotName:t}=this,e=""===t?"slot:not([name])":`slot[name=${t}]`,o=this.host.shadowRoot.querySelector(e);this.__slotObserver=new s.P(o,({addedNodes:t,removedNodes:e})=>{const o=this.multiple?this.nodes:[this.node],s=t.filter(t=>!(0,i.ZA)(t)&&!o.includes(t));e.length&&(this.nodes=o.filter(t=>!e.includes(t)),e.forEach(t=>{this.teardownNode(t)})),s&&s.length>0&&(this.multiple?(this.defaultNode&&this.defaultNode.remove(),this.nodes=[...o,...s].filter(t=>t!==this.defaultNode),s.forEach(t=>{this.initAddedNode(t)})):(this.node&&this.node.remove(),this.node=s[0],this.initAddedNode(this.node)))})}}},65641(t,e,o){o.d(e,{P:()=>i});class i{constructor(t,e){this.slot=t,this.callback=e,this._storedNodes=[],this._connected=!1,this._scheduled=!1,this._boundSchedule=()=>{this._schedule()},this.connect(),this._schedule()}connect(){this.slot.addEventListener("slotchange",this._boundSchedule),this._connected=!0}disconnect(){this.slot.removeEventListener("slotchange",this._boundSchedule),this._connected=!1}_schedule(){this._scheduled||(this._scheduled=!0,queueMicrotask(()=>{this.flush()}))}flush(){this._connected&&(this._scheduled=!1,this._processNodes())}_processNodes(){const t=this.slot.assignedNodes({flatten:!0});let e=[];const o=[],i=[];t.length&&(e=t.filter(t=>!this._storedNodes.includes(t))),this._storedNodes.length&&this._storedNodes.forEach((e,s)=>{const n=t.indexOf(e);-1===n?o.push(e):n!==s&&i.push(e)}),(e.length||o.length||i.length)&&this.callback({addedNodes:e,movedNodes:i,removedNodes:o}),this._storedNodes=t}}},11707(t,e,o){o.d(e,{I:()=>s});let i=0;function s(){return i++}}}]);
|
|
2
|
+
"use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[628,2294,4159,9261],{76231(t,e,o){o.d(e,{T:()=>a,m:()=>p});var i=o(92540),s=o(88961),n=o(63200),r=o(36976),l=o(72270),h=o(54847),d=o(25964);const a=(0,d.xE)("enriched-text");class c extends((0,l.qu)({componentName:a,baseSelector:":host > div"})){#t;#e;constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <div class="content"></div>\n ',(0,d.fz)("\n :host {\n line-height: 1em;\n word-break: break-word;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n *, *:last-child {\n margin: 0;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n p {\n margin-bottom: 1em;\n }\n a {\n cursor: pointer;\n }\n blockquote {\n padding: 0 2em;\n }\n u {\n text-decoration: underline\n }\n s {\n color: currentColor;\n }\n ",this),this.#o(),(0,d.Ge)(this,this.#i.bind(this)),this.contentNode?.addEventListener("click",t=>{t.target instanceof HTMLAnchorElement&&t.stopPropagation()})}static get observedAttributes(){return["readonly","link-target-blank"]}attributeChangedCallback(t,e,o){super.attributeChangedCallback?.(t,e,o),o!==e&&("readonly"===t&&this.onReadOnlyChange("true"===o),"link-target-blank"===t&&this.#o())}customUnderlineRenderer(){this.processor.renderer.rules.em_open=(t,e,o,i,s)=>("_"===t[e].markup&&(t[e].tag="u"),this.#e(t,e,o,i,s)),this.processor.renderer.rules.em_close=(t,e,o,i,s)=>("_"===t[e].markup&&(t[e].tag="u"),this.#e(t,e,o,i,s))}#s(){this.linkTargetBlank?this.processor.renderer.rules.link_open=(t,e,o,i,s)=>(t[e].attrSet("target","_blank"),this.#t(t,e,o,i,s)):this.processor.renderer.rules.link_open=this.#t}#n(){this.processor&&this.processor.disable(r.M)}#r(){this.#n()}#l(){this.#t=this.processor.renderer.rules.link_open||((t,e,o,i,s)=>s.renderToken(t,e,o)),this.#e=this.processor.renderer.rules.em_open||((t,e,o,i,s)=>s.renderToken(t,e,o))}#o(){this.processor=new i.A("commonmark",{html:!0}),this.#l(),this.#r(),this.#s(),this.customUnderlineRenderer()}get linkTargetBlank(){return"true"===this.getAttribute("link-target-blank")}get contentNode(){return this.shadowRoot.querySelector(".content")}#i(){if(!this.processor)return;let t=(0,h.G)(this.innerHTML);!t?.trim()&&this.isConnected?this.setAttribute("empty","true"):this.removeAttribute("empty");try{const e=this.processor.parse(t,{references:void 0});t=this.processor.renderer.render(e,{html:!0,breaks:!0})}catch(t){console.warn("Not parsing invalid markdown token")}this.contentNode.innerHTML=t,this.contentNode.firstChild?.setAttribute("part","content")}onReadOnlyChange(t){t?this.contentNode.setAttribute("inert",t):this.contentNode.removeAttribute("inert")}}const p=(0,n.Zz)((0,s.RF)({mappings:{hostWidth:{selector:()=>":host",property:"width"},hostDisplay:{selector:()=>":host",property:"display",fallback:"inline-block"},hostDirection:{selector:()=>":host",property:"direction"},fontSize:{},fontFamily:{},fontWeight:{},fontWeightBold:[{selector:()=>":host strong",property:"font-weight"},{selector:()=>":host b",property:"font-weight"}],textColor:{property:"color"},textLineHeight:{property:"line-height"},textAlign:{},linkColor:{selector:"a",property:"color"},linkTextDecoration:{selector:"a",property:"text-decoration"},linkHoverTextDecoration:{selector:"a:hover",property:"text-decoration"},minHeight:{},minWidth:{}}}),(0,s.RF)({componentNameOverride:(0,d.xE)("link")}),(0,s.RF)({componentNameOverride:(0,d.xE)("text")}),s.VO,s.tQ)(c)},36976(t,e,o){o.d(e,{M:()=>i});const i=["blockquote","list","image","table","code","hr","backticks","fence","reference","heading","lheading","html_block"]},54847(t,e,o){o.d(e,{G:()=>i});const i=t=>{const e=document.createElement("textarea");return e.innerHTML=t,e.value}},55838(t,e,o){o.r(e),o.d(e,{EnrichedTextClass:()=>i.m,componentName:()=>i.T}),o(74778);var i=o(76231);customElements.define(i.T,i.m)},74778(t,e,o){o.r(e),o.d(e,{LinkClass:()=>g,componentName:()=>h});var i=o(88961),s=o(63200),n=o(25964),r=o(72270),l=o(66434);const h=(0,n.xE)("link");class d extends((0,r.qu)({componentName:h,baseSelector:":host a"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n\t\t<div>\n\t\t\t<descope-text part="wrapper">\n\t\t\t\t<a>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</a>\n\t\t\t</descope-text>\n\t\t</div>\n\t\t',(0,n.fz)('\n :host {\n\t\t\tdisplay: inline-block;\n line-height: 1em;\n\t\t}\n\t\t:host a {\n\t\t\tdisplay: inline;\n\t\t}\n\n :host([ellipsis="true"]) descope-text {\n display: inline-flex;\n }\n :host([ellipsis="true"]) descope-text::part(text-wrapper) {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n ',this),(0,n.EA)(this,this.shadowRoot.querySelector("a"),{includeAttrs:["href","target","tooltip"],mapAttrs:{tooltip:"title"}}),(0,n.EA)(this,this.shadowRoot.querySelector("descope-text"),{includeAttrs:["mode","variant"]})}}const a={host:{selector:()=>":host"},link:{selector:()=>":host a"},anchor:{},wrapper:{selector:()=>":host > div"},text:{selector:()=>l.s.componentName}},{anchor:c,text:p,host:u,wrapper:m,link:y}=a,g=(0,s.Zz)((0,i.RF)({mappings:{hostWidth:{...u,property:"width"},hostDirection:{...p,property:"direction"},textAlign:m,textDecoration:{...y,property:"text-decoration",fallback:"none"},textColor:[{...c,property:"color"},{...p,property:l.s.cssVarList.textColor}],cursor:c}}),i.VO,i.tQ)(d);o(63595),customElements.define(h,g)},66434(t,e,o){o.d(e,{T:()=>l,s:()=>a});var i=o(88961),s=o(63200),n=o(25964),r=o(72270);const l=(0,n.xE)("text");class h extends((0,r.qu)({componentName:l,baseSelector:":host > slot"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <slot part="text-wrapper"></slot>\n ',(0,n.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,n.Ge)(this,()=>{const t=!!this.childNodes.length;this.style.display=!t&&this.hideWhenEmpty?"none":""})}}const{host:d}={host:{selector:()=>":host"}},a=(0,s.Zz)((0,i.RF)({mappings:{hostWidth:{...d,property:"width"},hostDirection:{...d,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)(h)},63595(t,e,o){o.r(e),o.d(e,{TextClass:()=>i.s,componentName:()=>i.T});var i=o(66434);customElements.define(i.T,i.s)},38516(t,e,o){o.r(e),o.d(e,{TooltipClass:()=>u,componentName:()=>h}),o(55838),o(17017),o(76720);var i=o(88961),s=o(63200),n=o(25964),r=o(72270),l=o(76231);const h=(0,n.xE)("tooltip"),d=["text","position","hide-delay","hover-delay","opened"],a=(0,r.qu)({componentName:h,baseSelector:"vaadin-tooltip"}),{overlay:c,content:p}={overlay:{selector:()=>"vaadin-tooltip-overlay::part(overlay)"},content:{selector:()=>"vaadin-tooltip-overlay::part(content)"}},u=(0,s.Zz)(i.tQ,(0,i.mA)({selector:"",mappings:{fontFamily:{...p,property:l.m.cssVarList.fontFamilyOverride},fontSize:{...p,property:l.m.cssVarList.fontSizeOverride},fontWeight:{...p,property:l.m.cssVarList.fontWeightOverride},textColor:{...p,property:l.m.cssVarList.textColorOverride},hostDirection:{...p,property:l.m.cssVarList.hostDirectionOverride},backgroundColor:[{...c},{...p}],borderColor:{...c},borderStyle:{...c},borderWidth:{...c},borderRadius:{...c},boxShadow:{...c},horizontalPadding:[{...p,property:"padding-left"},{...p,property:"padding-right"}],verticalPadding:[{...p,property:"padding-top"},{...p,property:"padding-bottom"}]},forward:{attributes:["style"],include:!1}}))(class extends a{static get observedAttributes(){return d.concat(a.observedAttributes||[])}get isOpened(){return"true"===this.getAttribute("opened")}get overlay(){return this.tooltip?._overlayElement}get overlayContentNode(){return this.overlay?.shadowRoot.querySelector('[part="content"]')}get tooltipText(){return this.getAttribute("text")?.trim()||""}get isStaticDisplay(){return"true"===this.getAttribute("static-display")}#h(){this.isStaticDisplay?(this.#d(),this.setAttribute("inert","true")):(this.#a(),this.removeAttribute("inert"))}init(){super.init(),this.style.display="contents",this.insertAdjacentHTML("beforeend","<vaadin-tooltip></vaadin-tooltip>"),this.tooltip=this.querySelector("vaadin-tooltip"),this.#a(),this.#c(),setTimeout(()=>this.#p())}#a(){this.tooltip.style.width="0",this.tooltip.style.height="0",this.tooltip.style.display="block",this.tooltip.style.overflow="hidden",this.tooltip.style.position="absolute"}#d(){this.tooltip.style.width="100%",this.tooltip.style.height="100%",this.tooltip.style.position="static",this.tooltip.style.overflow="visible",this.tooltip.textContent="",this.overlay.style.display="block",this.overlay.style.position="static"}#p(){this.#u(),this.#m(),(0,n.EA)(this,this.tooltip,{includeAttrs:["position","opened"]}),this.#y()}#c(){if(!this.children?.length)return;let t=Array.from(this.children).find(t=>t!==this.tooltip);t&&(this.tooltip.target=t)}#g(){this.overlayContentNode.innerHTML=""}#b(){const t=document.createElement("descope-enriched-text");return t.setAttribute("link-target-blank","true"),t.textContent=this.tooltipText,t}get srLabel(){return this.tooltip?.querySelector('[slot="sr-label"]')}#u(){this.overlayContentNode&&setTimeout(()=>{this.#g(),this.textComponent=this.#b(),this.overlayContentNode.appendChild(this.textComponent),this.srLabel&&!this.tooltipText&&this.srLabel.setAttribute("aria-hidden","true"),(0,n.EA)(this,this.textComponent,{includeAttrs:["readonly"]})})}#m(){this.overlay&&(this.isOpened?setTimeout(()=>{this.tooltip.shadowRoot.appendChild(this.overlay),this.#h()}):(this.overlay._detachOverlay=()=>{},this.overlay._attachOverlay=()=>this.tooltip.shadowRoot.appendChild(this.overlay)))}#y(){this.tooltip?.toggleAttribute("manual",this.isOpened)}#v(t){if(!this.textComponent)return;const e=(t??"").trim();this.textComponent.textContent=e,this.srLabel&&(e?this.srLabel.removeAttribute("aria-hidden"):this.srLabel.setAttribute("aria-hidden","true"))}attributeChangedCallback(t,e,o){super.attributeChangedCallback?.(t,e,o),e!==o&&("text"===t&&this.#v(o),"opened"===t&&this.#y())}});customElements.define(h,u)},1508(t,e,o){function i(t){const e=[];for(;t;){if(t.nodeType===Node.DOCUMENT_NODE){e.push(t);break}t.nodeType!==Node.DOCUMENT_FRAGMENT_NODE?t=t.assignedSlot?t.assignedSlot:t.parentNode:(e.push(t),t=t.host)}return e}function s(t){const e=[];let o;return"slot"===t.localName?o=t.assignedElements():(e.push(t),o=[...t.children]),o.forEach(t=>e.push(...s(t))),e}function n(t,e){return e?e.closest(t)||n(t,e.getRootNode().host):null}function r(t){return t?new Set(t.split(" ")):new Set}function l(t){return t?[...t].join(" "):""}function h(t,e,o){const i=r(t.getAttribute(e));i.add(o),t.setAttribute(e,l(i))}function d(t,e,o){const i=r(t.getAttribute(e));i.delete(o),0!==i.size?t.setAttribute(e,l(i)):t.removeAttribute(e)}function a(t){return t.nodeType===Node.TEXT_NODE&&""===t.textContent.trim()}o.d(e,{Dy:()=>i,J$:()=>s,Wr:()=>d,Z4:()=>r,ZA:()=>a,el:()=>n,iA:()=>h,sz:()=>l})},44099(t,e,o){o.d(e,{r:()=>r});var i=o(1508),s=o(65641),n=o(11707);class r extends EventTarget{static generateId(t,e){return`${e||"default"}-${t.localName}-${(0,n.I)()}`}constructor(t,e,o,i={}){super();const{initializer:s,multiple:n,observe:r,useUniqueId:l}=i;this.host=t,this.slotName=e,this.tagName=o,this.observe="boolean"!=typeof r||r,this.multiple="boolean"==typeof n&&n,this.slotInitializer=s,n&&(this.nodes=[]),l&&(this.defaultId=this.constructor.generateId(t,e))}hostConnected(){this.initialized||(this.multiple?this.initMultiple():this.initSingle(),this.observe&&this.observeSlot(),this.initialized=!0)}initSingle(){let t=this.getSlotChild();t?(this.node=t,this.initAddedNode(t)):(t=this.attachDefaultNode(),this.initNode(t))}initMultiple(){const t=this.getSlotChildren();if(0===t.length){const t=this.attachDefaultNode();t&&(this.nodes=[t],this.initNode(t))}else this.nodes=t,t.forEach(t=>{this.initAddedNode(t)})}attachDefaultNode(){const{host:t,slotName:e,tagName:o}=this;let i=this.defaultNode;return!i&&o&&(i=document.createElement(o),i instanceof Element&&(""!==e&&i.setAttribute("slot",e),this.defaultNode=i)),i&&(this.node=i,t.appendChild(i)),i}getSlotChildren(){const{slotName:t}=this;return Array.from(this.host.childNodes).filter(e=>e.nodeType===Node.ELEMENT_NODE&&e.slot===t||e.nodeType===Node.TEXT_NODE&&e.textContent.trim()&&""===t)}getSlotChild(){return this.getSlotChildren()[0]}initNode(t){const{slotInitializer:e}=this;e&&e(t,this.host)}initCustomNode(t){}teardownNode(t){}initAddedNode(t){t!==this.defaultNode&&(this.initCustomNode(t),this.initNode(t))}observeSlot(){const{slotName:t}=this,e=""===t?"slot:not([name])":`slot[name=${t}]`,o=this.host.shadowRoot.querySelector(e);this.__slotObserver=new s.P(o,({addedNodes:t,removedNodes:e})=>{const o=this.multiple?this.nodes:[this.node],s=t.filter(t=>!(0,i.ZA)(t)&&!o.includes(t));e.length&&(this.nodes=o.filter(t=>!e.includes(t)),e.forEach(t=>{this.teardownNode(t)})),s&&s.length>0&&(this.multiple?(this.defaultNode&&this.defaultNode.remove(),this.nodes=[...o,...s].filter(t=>t!==this.defaultNode),s.forEach(t=>{this.initAddedNode(t)})):(this.node&&this.node.remove(),this.node=s[0],this.initAddedNode(this.node)))})}}},65641(t,e,o){o.d(e,{P:()=>i});class i{constructor(t,e){this.slot=t,this.callback=e,this._storedNodes=[],this._connected=!1,this._scheduled=!1,this._boundSchedule=()=>{this._schedule()},this.connect(),this._schedule()}connect(){this.slot.addEventListener("slotchange",this._boundSchedule),this._connected=!0}disconnect(){this.slot.removeEventListener("slotchange",this._boundSchedule),this._connected=!1}_schedule(){this._scheduled||(this._scheduled=!0,queueMicrotask(()=>{this.flush()}))}flush(){this._connected&&(this._scheduled=!1,this._processNodes())}_processNodes(){const t=this.slot.assignedNodes({flatten:!0});let e=[];const o=[],i=[];t.length&&(e=t.filter(t=>!this._storedNodes.includes(t))),this._storedNodes.length&&this._storedNodes.forEach((e,s)=>{const n=t.indexOf(e);-1===n?o.push(e):n!==s&&i.push(e)}),(e.length||o.length||i.length)&&this.callback({addedNodes:e,movedNodes:i,removedNodes:o}),this._storedNodes=t}}},11707(t,e,o){o.d(e,{I:()=>s});let i=0;function s(){return i++}}}]);
|
|
3
3
|
//# sourceMappingURL=descope-tooltip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descope-tooltip.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-enriched-text/src/component/EnrichedTextClass.js","webpack://@descope/web-components-ui/../components/descope-enriched-text/src/component/consts.js","webpack://@descope/web-components-ui/../components/descope-enriched-text/src/component/helpers.js","webpack://@descope/web-components-ui/../components/descope-enriched-text/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-link/src/component/LinkClass.js","webpack://@descope/web-components-ui/../components/descope-link/src/component/index.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/../components/descope-tooltip/src/component/TooltipClass.js","webpack://@descope/web-components-ui/../components/descope-tooltip/src/component/index.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/dom-utils.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/slot-controller.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/slot-observer.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/unique-id-utils.js"],"sourcesContent":["/* eslint-disable no-param-reassign */\n\nimport MarkdownIt from 'markdown-it';\nimport { createStyleMixin, draggableMixin, componentNameValidationMixin } from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport { disableRules } from './consts';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { decodeHTML } from './helpers';\nimport { getComponentName, injectStyle, observeChildren } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('enriched-text');\n\nclass EnrichedText extends createBaseClass({ componentName, baseSelector: ':host > div' }) {\n #origLinkRenderer;\n\n #origEmRenderer;\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div class=\"content\"></div>\n `;\n\n injectStyle(\n `\n :host {\n line-height: 1em;\n word-break: break-word;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n *, *:last-child {\n margin: 0;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n p {\n margin-bottom: 1em;\n }\n a {\n cursor: pointer;\n }\n blockquote {\n padding: 0 2em;\n }\n u {\n text-decoration: underline\n }\n s {\n color: currentColor;\n }\n `,\n this\n );\n\n this.#initProcessor();\n\n observeChildren(this, this.#parseChildren.bind(this));\n\n // Stop propagation on link clicks to prevent parent handlers from firing\n this.contentNode?.addEventListener('click', (e) => {\n if (e.target instanceof HTMLAnchorElement) {\n e.stopPropagation();\n }\n });\n }\n\n static get observedAttributes() {\n return ['readonly', 'link-target-blank'];\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (newValue !== oldValue) {\n if (attrName === 'readonly') {\n this.onReadOnlyChange(newValue === 'true');\n }\n\n if (attrName === 'link-target-blank') {\n this.#initProcessor();\n }\n }\n }\n\n // We're overriding the rule for em with single underscore to perform as underline. (_underline_)\n customUnderlineRenderer() {\n this.processor.renderer.rules.em_open = (tokens, idx, options, env, self) => {\n if (tokens[idx].markup === '_') tokens[idx].tag = 'u';\n return this.#origEmRenderer(tokens, idx, options, env, self);\n };\n this.processor.renderer.rules.em_close = (tokens, idx, options, env, self) => {\n if (tokens[idx].markup === '_') tokens[idx].tag = 'u';\n return this.#origEmRenderer(tokens, idx, options, env, self);\n };\n }\n\n #customizeLinkRenderer() {\n if (this.linkTargetBlank) {\n this.processor.renderer.rules.link_open = (tokens, idx, options, env, self) => {\n // Add a new `target` attribute, or replace the value of the existing one.\n tokens[idx].attrSet('target', '_blank');\n // Pass the token to the default renderer.\n return this.#origLinkRenderer(tokens, idx, options, env, self);\n };\n } else {\n this.processor.renderer.rules.link_open = this.#origLinkRenderer;\n }\n }\n\n #disableCustomRules() {\n if (!this.processor) {\n return;\n }\n this.processor.disable(disableRules);\n }\n\n #updateProcessorRules() {\n this.#disableCustomRules();\n }\n\n #storeOrigRenderers() {\n const defaultLinkRenderer = (tokens, idx, options, _, self) =>\n self.renderToken(tokens, idx, options);\n this.#origLinkRenderer = this.processor.renderer.rules.link_open || defaultLinkRenderer;\n\n const defaultStrongRenderer = (tokens, idx, options, _, self) =>\n self.renderToken(tokens, idx, options);\n this.#origEmRenderer = this.processor.renderer.rules.em_open || defaultStrongRenderer;\n }\n\n #initProcessor() {\n this.processor = new MarkdownIt('commonmark', { html: true });\n this.#storeOrigRenderers();\n this.#updateProcessorRules();\n this.#customizeLinkRenderer();\n this.customUnderlineRenderer();\n }\n\n get linkTargetBlank() {\n return this.getAttribute('link-target-blank') === 'true';\n }\n\n get contentNode() {\n return this.shadowRoot.querySelector('.content');\n }\n\n #parseChildren() {\n if (!this.processor) {\n return;\n }\n\n let html = decodeHTML(this.innerHTML);\n\n if (!html?.trim() && this.isConnected) {\n this.setAttribute('empty', 'true');\n } else {\n this.removeAttribute('empty');\n }\n\n try {\n const tokens = this.processor.parse(html, { references: undefined });\n html = this.processor.renderer.render(tokens, { html: true, breaks: true });\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn('Not parsing invalid markdown token');\n }\n\n this.contentNode.innerHTML = html;\n this.contentNode.firstChild?.setAttribute('part', 'content');\n }\n\n onReadOnlyChange(isReadOnly) {\n if (isReadOnly) {\n this.contentNode.setAttribute('inert', isReadOnly);\n } else {\n this.contentNode.removeAttribute('inert');\n }\n }\n}\n\nexport const EnrichedTextClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n hostDisplay: { selector: () => ':host', property: 'display', fallback: 'inline-block' },\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontSize: {},\n fontFamily: {},\n fontWeight: {},\n fontWeightBold: [\n { selector: () => ':host strong', property: 'font-weight' },\n { selector: () => ':host b', property: 'font-weight' },\n ],\n textColor: { property: 'color' },\n textLineHeight: { property: 'line-height' },\n textAlign: {},\n linkColor: { selector: 'a', property: 'color' },\n linkTextDecoration: { selector: 'a', property: 'text-decoration' },\n linkHoverTextDecoration: { selector: 'a:hover', property: 'text-decoration' },\n minHeight: {},\n minWidth: {},\n },\n }),\n createStyleMixin({ componentNameOverride: getComponentName('link') }),\n createStyleMixin({ componentNameOverride: getComponentName('text') }),\n draggableMixin,\n componentNameValidationMixin\n)(EnrichedText);\n","export const disableRules = [\n 'blockquote',\n 'list',\n 'image',\n 'table',\n 'code',\n 'hr',\n 'backticks',\n 'fence',\n 'reference',\n 'heading',\n 'lheading',\n 'html_block',\n];\n","export const decodeHTML = (html) => {\n const textArea = document.createElement('textarea');\n textArea.innerHTML = html;\n return textArea.value;\n};\n","import '@descope-ui/descope-link';\n\nimport { componentName, EnrichedTextClass } from './EnrichedTextClass';\n\ncustomElements.define(componentName, EnrichedTextClass);\n\nexport { EnrichedTextClass, componentName };\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 forwardAttrs,\n injectStyle,\n} from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { TextClass } from '@descope-ui/descope-text/class';\n\nexport const componentName = getComponentName('link');\n\nclass RawLink extends createBaseClass({ componentName, baseSelector: ':host a' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<div>\n\t\t\t<descope-text part=\"wrapper\">\n\t\t\t\t<a>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</a>\n\t\t\t</descope-text>\n\t\t</div>\n\t\t`;\n\n injectStyle(\n `\n :host {\n\t\t\tdisplay: inline-block;\n line-height: 1em;\n\t\t}\n\t\t:host a {\n\t\t\tdisplay: inline;\n\t\t}\n\n :host([ellipsis=\"true\"]) descope-text {\n display: inline-flex;\n }\n :host([ellipsis=\"true\"]) descope-text::part(text-wrapper) {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n `,\n this\n );\n\n forwardAttrs(this, this.shadowRoot.querySelector('a'), {\n includeAttrs: ['href', 'target', 'tooltip'],\n mapAttrs: {\n tooltip: 'title',\n },\n });\n\n forwardAttrs(this, this.shadowRoot.querySelector('descope-text'), {\n includeAttrs: ['mode', 'variant'],\n });\n }\n}\n\nconst selectors = {\n host: { selector: () => ':host' },\n link: { selector: () => ':host a' },\n anchor: {},\n wrapper: { selector: () => ':host > div' },\n text: { selector: () => TextClass.componentName },\n};\n\nconst { anchor, text, host, wrapper, link } = selectors;\n\nexport const LinkClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...text, property: 'direction' },\n textAlign: wrapper,\n textDecoration: { ...link, property: 'text-decoration', fallback: 'none' },\n textColor: [\n { ...anchor, property: 'color' },\n { ...text, property: TextClass.cssVarList.textColor },\n ],\n cursor: anchor,\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawLink);\n","import { componentName, LinkClass } from './LinkClass';\nimport '@descope-ui/descope-text';\n\ncustomElements.define(componentName, LinkClass);\n\nexport { LinkClass, componentName };\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\nconst { host } = {\n host: { selector: () => ':host' }\n}\n\nexport const TextClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n textColor: [\n { property: 'color' }\n ],\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 {\n componentNameValidationMixin,\n portalMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n forwardAttrs,\n getComponentName,\n} from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { EnrichedTextClass } from '@descope-ui/descope-enriched-text/class';\n\nexport const componentName = getComponentName('tooltip');\n\nconst tooltipAttrs = [\n 'text',\n 'position',\n 'hide-delay',\n 'hover-delay',\n 'opened',\n];\n\nconst BaseClass = createBaseClass({\n componentName,\n baseSelector: 'vaadin-tooltip',\n});\n\nclass RawTooltip extends BaseClass {\n static get observedAttributes() {\n return tooltipAttrs.concat(BaseClass.observedAttributes || []);\n }\n\n get isOpened() {\n return this.getAttribute('opened') === 'true';\n }\n\n get overlay() {\n return this.tooltip?._overlayElement;\n }\n\n get overlayContentNode() {\n return this.overlay?.shadowRoot.querySelector('[part=\"content\"]');\n }\n\n get tooltipText() {\n return this.getAttribute('text')?.trim() || '';\n }\n\n get isStaticDisplay() {\n return this.getAttribute('static-display') === 'true';\n }\n\n // We use `static-display` for presentation purposes, to show the tooltip content.\n // This should be used only when `opened` is `true`. Once `static-display` is set,\n // the overlay would become a `static` element, and will have layout in the presenting page.\n // This is mainly aimed to solve the presentation problem on our Styles Page in the Console.\n #handleStaticDisplay() {\n if (this.isStaticDisplay) {\n this.#revealWrappedParts();\n this.setAttribute('inert', 'true');\n } else {\n this.#hideWrappedParts();\n this.removeAttribute('inert');\n }\n }\n\n init() {\n super.init();\n\n // Create the vaadin-tooltip here instead of constructor (for React compatibility)\n this.style.display = 'contents';\n this.insertAdjacentHTML('beforeend', '<vaadin-tooltip></vaadin-tooltip>');\n this.tooltip = this.querySelector('vaadin-tooltip');\n\n this.#hideWrappedParts();\n\n this.#setTooltipTarget();\n\n setTimeout(() => this.#onOverlayReady());\n }\n\n #hideWrappedParts() {\n this.tooltip.style.width = '0';\n this.tooltip.style.height = '0';\n this.tooltip.style.display = 'block';\n this.tooltip.style.overflow = 'hidden';\n this.tooltip.style.position = 'absolute';\n }\n \n #revealWrappedParts() {\n this.tooltip.style.width = '100%';\n this.tooltip.style.height = '100%';\n this.tooltip.style.position = 'static';\n this.tooltip.style.overflow = 'visible';\n this.tooltip.textContent = '';\n this.overlay.style.display = 'block';\n this.overlay.style.position = 'static';\n }\n\n #onOverlayReady() {\n this.#initTooltipTextComponent();\n this.#overrideAttachOverlay();\n\n forwardAttrs(this, this.tooltip, {\n includeAttrs: ['position', 'opened'],\n });\n\n this.#handleTooltipVisibility();\n }\n\n #setTooltipTarget() {\n if (!this.children?.length) return;\n\n let ele = Array.from(this.children).find(\n (child) => child !== this.tooltip,\n );\n\n if (!ele) return;\n\n this.tooltip.target = ele;\n }\n\n #clearOverlayContentNode() {\n this.overlayContentNode.innerHTML = '';\n }\n\n #createEnrichedTextComponent() {\n const enrichedText = document.createElement('descope-enriched-text');\n\n enrichedText.setAttribute('link-target-blank', 'true');\n enrichedText.textContent = this.tooltipText;\n\n return enrichedText;\n }\n\n #initTooltipTextComponent() {\n if (!this.overlayContentNode) return;\n\n setTimeout(() => {\n this.#clearOverlayContentNode();\n\n this.textComponent = this.#createEnrichedTextComponent();\n\n this.overlayContentNode.appendChild(this.textComponent);\n\n forwardAttrs(this, this.textComponent, {\n includeAttrs: ['readonly'],\n });\n });\n }\n\n // the default vaadin behavior is to attach the overlay to the body when opened\n // we do not want that because it's difficult to style the overlay in this way\n // so we override it to open inside the shadow DOM\n #overrideAttachOverlay() {\n if (!this.overlay) return;\n\n if (this.isOpened) {\n // When `opened` attr is used, vaadin doesn't execute `_attachOverlay`,\n // and the overlay element is rendered outside the component, on the top\n // level. We need to move it back to the local component's DOM.\n setTimeout(() => {\n this.tooltip.shadowRoot.appendChild(this.overlay);\n this.#handleStaticDisplay();\n });\n } else {\n this.overlay._detachOverlay = () => {};\n\n this.overlay._attachOverlay = () =>\n this.tooltip.shadowRoot.appendChild(this.overlay);\n }\n }\n\n #handleTooltipVisibility() {\n // This is Vaadin's API for manual control of tooltip visibility\n this.tooltip?.toggleAttribute('manual', this.isOpened);\n }\n\n #updateText(value) {\n if (!this.textComponent) return;\n this.textComponent.textContent = value?.trim();\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue !== newValue) {\n if (attrName === 'text') {\n this.#updateText(newValue);\n }\n\n if (attrName === 'opened') {\n this.#handleTooltipVisibility(attrName, newValue)\n }\n }\n }\n}\n\nconst { overlay, content } = {\n overlay: { selector: () => 'vaadin-tooltip-overlay::part(overlay)' },\n content: { selector: () => 'vaadin-tooltip-overlay::part(content)' },\n};\n\n/**\n * This component has no Shadow DOM of its own, so we can't add styles to it\n * (otherwise it would affect the rest of the DOM).\n * Note that all styles are within PortalMixin.\n */\nexport const TooltipClass = compose(\n componentNameValidationMixin,\n portalMixin({\n selector: '',\n mappings: {\n fontFamily: {\n ...content,\n property: EnrichedTextClass.cssVarList.fontFamilyOverride,\n },\n fontSize: {\n ...content,\n property: EnrichedTextClass.cssVarList.fontSizeOverride,\n },\n fontWeight: {\n ...content,\n property: EnrichedTextClass.cssVarList.fontWeightOverride,\n },\n textColor: {\n ...content,\n property: EnrichedTextClass.cssVarList.textColorOverride,\n },\n hostDirection: {\n ...content,\n property: EnrichedTextClass.cssVarList.hostDirectionOverride,\n },\n backgroundColor: [{ ...overlay }, { ...content }],\n borderColor: { ...overlay },\n borderStyle: { ...overlay },\n borderWidth: { ...overlay },\n borderRadius: { ...overlay },\n boxShadow: { ...overlay },\n horizontalPadding: [\n { ...content, property: 'padding-left' },\n { ...content, property: 'padding-right' },\n ],\n verticalPadding: [\n { ...content, property: 'padding-top' },\n { ...content, property: 'padding-bottom' },\n ],\n },\n forward: {\n attributes: ['style'],\n include: false,\n },\n }),\n)(RawTooltip);\n","import '@descope-ui/descope-enriched-text';\nimport '@vaadin/tooltip';\nimport { componentName, TooltipClass } from './TooltipClass';\n\ncustomElements.define(componentName, TooltipClass);\n\nexport { TooltipClass, componentName };\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\n/**\n * Returns an array of ancestor root nodes for the given node.\n *\n * A root node is either a document node or a document fragment node (Shadow Root).\n * The array is collected by a bottom-up DOM traversing that starts with the given node\n * and involves both the light DOM and ancestor shadow DOM trees.\n *\n * @param {Node} node\n * @return {Node[]}\n */\nexport function getAncestorRootNodes(node) {\n const result = [];\n\n while (node) {\n if (node.nodeType === Node.DOCUMENT_NODE) {\n result.push(node);\n break;\n }\n\n if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n result.push(node);\n node = node.host;\n continue;\n }\n\n if (node.assignedSlot) {\n node = node.assignedSlot;\n continue;\n }\n\n node = node.parentNode;\n }\n\n return result;\n}\n\n/**\n * Returns the list of flattened elements for the given `node`.\n * This list consists of a node's children and, for any children that are\n * `<slot>` elements, the expanded flattened list of `assignedElements`.\n *\n * @param {Node} node\n * @return {Element[]}\n */\nexport function getFlattenedElements(node) {\n const result = [];\n let elements;\n if (node.localName === 'slot') {\n elements = node.assignedElements();\n } else {\n result.push(node);\n elements = [...node.children];\n }\n elements.forEach((elem) => result.push(...getFlattenedElements(elem)));\n return result;\n}\n\n/**\n * Traverses the given node and its parents, including those that are across\n * the shadow root boundaries, until it finds a node that matches the selector.\n *\n * @param {string} selector The CSS selector to match against\n * @param {Node} node The starting node for the traversal\n * @return {Node | null} The closest matching element, or null if no match is found\n */\nexport function getClosestElement(selector, node) {\n if (!node) {\n return null;\n }\n\n return node.closest(selector) || getClosestElement(selector, node.getRootNode().host);\n}\n\n/**\n * Takes a string with values separated by space and returns a set the values\n *\n * @param {string} value\n * @return {Set<string>}\n */\nexport function deserializeAttributeValue(value) {\n if (!value) {\n return new Set();\n }\n\n return new Set(value.split(' '));\n}\n\n/**\n * Takes a set of string values and returns a string with values separated by space\n *\n * @param {Set<string>} values\n * @return {string}\n */\nexport function serializeAttributeValue(values) {\n return values ? [...values].join(' ') : '';\n}\n\n/**\n * Adds a value to an attribute containing space-delimited values.\n *\n * @param {HTMLElement} element\n * @param {string} attr\n * @param {string} value\n */\nexport function addValueToAttribute(element, attr, value) {\n const values = deserializeAttributeValue(element.getAttribute(attr));\n values.add(value);\n element.setAttribute(attr, serializeAttributeValue(values));\n}\n\n/**\n * Removes a value from an attribute containing space-delimited values.\n * If the value is the last one, the whole attribute is removed.\n *\n * @param {HTMLElement} element\n * @param {string} attr\n * @param {string} value\n */\nexport function removeValueFromAttribute(element, attr, value) {\n const values = deserializeAttributeValue(element.getAttribute(attr));\n values.delete(value);\n if (values.size === 0) {\n element.removeAttribute(attr);\n return;\n }\n element.setAttribute(attr, serializeAttributeValue(values));\n}\n\n/**\n * Returns true if the given node is an empty text node, false otherwise.\n *\n * @param {Node} node\n * @return {boolean}\n */\nexport function isEmptyTextNode(node) {\n return node.nodeType === Node.TEXT_NODE && node.textContent.trim() === '';\n}\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { isEmptyTextNode } from './dom-utils.js';\nimport { SlotObserver } from './slot-observer.js';\nimport { generateUniqueId } from './unique-id-utils.js';\n\n/**\n * A controller for providing content to slot element and observing changes.\n */\nexport class SlotController extends EventTarget {\n /**\n * Ensure that every instance has unique ID.\n *\n * @param {HTMLElement} host\n * @param {string} slotName\n * @return {string}\n * @protected\n */\n static generateId(host, slotName) {\n const prefix = slotName || 'default';\n return `${prefix}-${host.localName}-${generateUniqueId()}`;\n }\n\n constructor(host, slotName, tagName, config = {}) {\n super();\n\n const { initializer, multiple, observe, useUniqueId } = config;\n\n this.host = host;\n this.slotName = slotName;\n this.tagName = tagName;\n this.observe = typeof observe === 'boolean' ? observe : true;\n this.multiple = typeof multiple === 'boolean' ? multiple : false;\n this.slotInitializer = initializer;\n\n if (multiple) {\n this.nodes = [];\n }\n\n // Only generate the default ID if requested by the controller.\n if (useUniqueId) {\n this.defaultId = this.constructor.generateId(host, slotName);\n }\n }\n\n hostConnected() {\n if (!this.initialized) {\n if (this.multiple) {\n this.initMultiple();\n } else {\n this.initSingle();\n }\n\n if (this.observe) {\n this.observeSlot();\n }\n\n this.initialized = true;\n }\n }\n\n /** @protected */\n initSingle() {\n let node = this.getSlotChild();\n\n if (!node) {\n node = this.attachDefaultNode();\n this.initNode(node);\n } else {\n this.node = node;\n this.initAddedNode(node);\n }\n }\n\n /** @protected */\n initMultiple() {\n const children = this.getSlotChildren();\n\n if (children.length === 0) {\n const defaultNode = this.attachDefaultNode();\n if (defaultNode) {\n this.nodes = [defaultNode];\n this.initNode(defaultNode);\n }\n } else {\n this.nodes = children;\n children.forEach((node) => {\n this.initAddedNode(node);\n });\n }\n }\n\n /**\n * Create and attach default node using the provided tag name, if any.\n * @return {Node | undefined}\n * @protected\n */\n attachDefaultNode() {\n const { host, slotName, tagName } = this;\n\n // Check if the node was created previously and if so, reuse it.\n let node = this.defaultNode;\n\n // Tag name is optional, sometimes we don't init default content.\n if (!node && tagName) {\n node = document.createElement(tagName);\n if (node instanceof Element) {\n if (slotName !== '') {\n node.setAttribute('slot', slotName);\n }\n this.defaultNode = node;\n }\n }\n\n if (node) {\n this.node = node;\n host.appendChild(node);\n }\n\n return node;\n }\n\n /**\n * Return the list of nodes matching the slot managed by the controller.\n * @return {Node}\n */\n getSlotChildren() {\n const { slotName } = this;\n return Array.from(this.host.childNodes).filter((node) => {\n // Either an element (any slot) or a text node (only un-named slot).\n return (\n (node.nodeType === Node.ELEMENT_NODE && node.slot === slotName) ||\n (node.nodeType === Node.TEXT_NODE && node.textContent.trim() && slotName === '')\n );\n });\n }\n\n /**\n * Return a reference to the node managed by the controller.\n * @return {Node}\n */\n getSlotChild() {\n return this.getSlotChildren()[0];\n }\n\n /**\n * Run `slotInitializer` for the node managed by the controller.\n *\n * @param {Node} node\n * @protected\n */\n initNode(node) {\n const { slotInitializer } = this;\n // Don't try to bind `this` to initializer (normally it's arrow function).\n // Instead, pass the host as a first argument to access component's state.\n if (slotInitializer) {\n slotInitializer(node, this.host);\n }\n }\n\n /**\n * Override to initialize the newly added custom node.\n *\n * @param {Node} _node\n * @protected\n */\n initCustomNode(_node) {}\n\n /**\n * Override to teardown slotted node when it's removed.\n *\n * @param {Node} _node\n * @protected\n */\n teardownNode(_node) {}\n\n /**\n * Run both `initCustomNode` and `initNode` for a custom slotted node.\n *\n * @param {Node} node\n * @protected\n */\n initAddedNode(node) {\n if (node !== this.defaultNode) {\n this.initCustomNode(node);\n this.initNode(node);\n }\n }\n\n /**\n * Setup the observer to manage slot content changes.\n * @protected\n */\n observeSlot() {\n const { slotName } = this;\n const selector = slotName === '' ? 'slot:not([name])' : `slot[name=${slotName}]`;\n const slot = this.host.shadowRoot.querySelector(selector);\n\n this.__slotObserver = new SlotObserver(slot, ({ addedNodes, removedNodes }) => {\n const current = this.multiple ? this.nodes : [this.node];\n\n // Calling `slot.assignedNodes()` includes whitespace text nodes in case of default slot:\n // unlike comment nodes, they are not filtered out. So we need to manually ignore them.\n const newNodes = addedNodes.filter((node) => !isEmptyTextNode(node) && !current.includes(node));\n\n if (removedNodes.length) {\n this.nodes = current.filter((node) => !removedNodes.includes(node));\n\n removedNodes.forEach((node) => {\n this.teardownNode(node);\n });\n }\n\n if (newNodes && newNodes.length > 0) {\n if (this.multiple) {\n // Remove default node if exists\n if (this.defaultNode) {\n this.defaultNode.remove();\n }\n this.nodes = [...current, ...newNodes].filter((node) => node !== this.defaultNode);\n newNodes.forEach((node) => {\n this.initAddedNode(node);\n });\n } else {\n // Remove previous node if exists\n if (this.node) {\n this.node.remove();\n }\n this.node = newNodes[0];\n this.initAddedNode(this.node);\n }\n }\n });\n }\n}\n","/**\n * @license\n * Copyright (c) 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\n/**\n * A helper for observing slot changes.\n */\nexport class SlotObserver {\n constructor(slot, callback) {\n /** @type HTMLSlotElement */\n this.slot = slot;\n\n /** @type Function */\n this.callback = callback;\n\n /** @type {Node[]} */\n this._storedNodes = [];\n\n this._connected = false;\n this._scheduled = false;\n\n this._boundSchedule = () => {\n this._schedule();\n };\n\n this.connect();\n this._schedule();\n }\n\n /**\n * Activates an observer. This method is automatically called when\n * a `SlotObserver` is created. It should only be called to re-activate\n * an observer that has been deactivated via the `disconnect` method.\n */\n connect() {\n this.slot.addEventListener('slotchange', this._boundSchedule);\n this._connected = true;\n }\n\n /**\n * Deactivates the observer. After calling this method the observer callback\n * will not be called when changes to slotted nodes occur. The `connect` method\n * may be subsequently called to reactivate the observer.\n */\n disconnect() {\n this.slot.removeEventListener('slotchange', this._boundSchedule);\n this._connected = false;\n }\n\n /** @private */\n _schedule() {\n if (!this._scheduled) {\n this._scheduled = true;\n\n queueMicrotask(() => {\n this.flush();\n });\n }\n }\n\n /**\n * Run the observer callback synchronously.\n */\n flush() {\n if (!this._connected) {\n return;\n }\n\n this._scheduled = false;\n\n this._processNodes();\n }\n\n /** @private */\n _processNodes() {\n const currentNodes = this.slot.assignedNodes({ flatten: true });\n\n let addedNodes = [];\n const removedNodes = [];\n const movedNodes = [];\n\n if (currentNodes.length) {\n addedNodes = currentNodes.filter((node) => !this._storedNodes.includes(node));\n }\n\n if (this._storedNodes.length) {\n this._storedNodes.forEach((node, index) => {\n const idx = currentNodes.indexOf(node);\n if (idx === -1) {\n removedNodes.push(node);\n } else if (idx !== index) {\n movedNodes.push(node);\n }\n });\n }\n\n if (addedNodes.length || removedNodes.length || movedNodes.length) {\n this.callback({ addedNodes, movedNodes, removedNodes });\n }\n\n this._storedNodes = currentNodes;\n }\n}\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\nlet uniqueId = 0;\n\n/**\n * Resets the unique id counter.\n *\n * @return {void}\n */\nexport function resetUniqueId() {\n uniqueId = 0;\n}\n\n/**\n * Returns a unique integer id.\n *\n * @return {number}\n */\nexport function generateUniqueId() {\n // eslint-disable-next-line no-plusplus\n return uniqueId++;\n}\n"],"names":["componentName","EnrichedText","baseSelector","constructor","super","this","attachShadow","mode","innerHTML","bind","contentNode","addEventListener","e","target","HTMLAnchorElement","stopPropagation","observedAttributes","attributeChangedCallback","attrName","oldValue","newValue","onReadOnlyChange","customUnderlineRenderer","processor","renderer","rules","em_open","tokens","idx","options","env","self","markup","tag","em_close","linkTargetBlank","link_open","attrSet","disable","_","renderToken","html","getAttribute","shadowRoot","querySelector","trim","isConnected","setAttribute","removeAttribute","parse","references","undefined","render","breaks","console","warn","firstChild","isReadOnly","EnrichedTextClass","mappings","hostWidth","selector","property","hostDisplay","fallback","hostDirection","fontSize","fontFamily","fontWeight","fontWeightBold","textColor","textLineHeight","textAlign","linkColor","linkTextDecoration","linkHoverTextDecoration","minHeight","minWidth","componentNameOverride","disableRules","decodeHTML","textArea","document","createElement","value","customElements","define","RawLink","includeAttrs","mapAttrs","tooltip","selectors","host","link","anchor","wrapper","text","TextClass","LinkClass","textDecoration","cssVarList","cursor","RawText","hideWhenEmpty","init","hasChildren","childNodes","length","style","display","textLetterSpacing","textShadow","textTransform","fontStyle","borderWidth","borderStyle","borderColor","tooltipAttrs","BaseClass","overlay","content","TooltipClass","fontFamilyOverride","fontSizeOverride","fontWeightOverride","textColorOverride","hostDirectionOverride","backgroundColor","borderRadius","boxShadow","horizontalPadding","verticalPadding","forward","attributes","include","concat","isOpened","_overlayElement","overlayContentNode","tooltipText","isStaticDisplay","insertAdjacentHTML","setTimeout","width","height","overflow","position","textContent","children","ele","Array","from","find","child","enrichedText","textComponent","appendChild","_detachOverlay","_attachOverlay","toggleAttribute","getAncestorRootNodes","node","result","nodeType","Node","DOCUMENT_NODE","push","DOCUMENT_FRAGMENT_NODE","assignedSlot","parentNode","getFlattenedElements","elements","localName","assignedElements","forEach","elem","getClosestElement","closest","getRootNode","deserializeAttributeValue","Set","split","serializeAttributeValue","values","join","addValueToAttribute","element","attr","add","removeValueFromAttribute","delete","size","isEmptyTextNode","TEXT_NODE","SlotController","EventTarget","generateId","slotName","tagName","config","initializer","multiple","observe","useUniqueId","slotInitializer","nodes","defaultId","hostConnected","initialized","initMultiple","initSingle","observeSlot","getSlotChild","initAddedNode","attachDefaultNode","initNode","getSlotChildren","defaultNode","Element","filter","ELEMENT_NODE","slot","initCustomNode","_node","teardownNode","__slotObserver","addedNodes","removedNodes","current","newNodes","includes","remove","SlotObserver","callback","_storedNodes","_connected","_scheduled","_boundSchedule","_schedule","connect","disconnect","removeEventListener","queueMicrotask","flush","_processNodes","currentNodes","assignedNodes","flatten","movedNodes","index","indexOf","uniqueId","generateUniqueId"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"descope-tooltip.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-enriched-text/src/component/EnrichedTextClass.js","webpack://@descope/web-components-ui/../components/descope-enriched-text/src/component/consts.js","webpack://@descope/web-components-ui/../components/descope-enriched-text/src/component/helpers.js","webpack://@descope/web-components-ui/../components/descope-enriched-text/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-link/src/component/LinkClass.js","webpack://@descope/web-components-ui/../components/descope-link/src/component/index.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/../components/descope-tooltip/src/component/TooltipClass.js","webpack://@descope/web-components-ui/../components/descope-tooltip/src/component/index.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/dom-utils.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/slot-controller.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/slot-observer.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/unique-id-utils.js"],"sourcesContent":["/* eslint-disable no-param-reassign */\n\nimport MarkdownIt from 'markdown-it';\nimport { createStyleMixin, draggableMixin, componentNameValidationMixin } from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport { disableRules } from './consts';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { decodeHTML } from './helpers';\nimport { getComponentName, injectStyle, observeChildren } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('enriched-text');\n\nclass EnrichedText extends createBaseClass({ componentName, baseSelector: ':host > div' }) {\n #origLinkRenderer;\n\n #origEmRenderer;\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div class=\"content\"></div>\n `;\n\n injectStyle(\n `\n :host {\n line-height: 1em;\n word-break: break-word;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n *, *:last-child {\n margin: 0;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n p {\n margin-bottom: 1em;\n }\n a {\n cursor: pointer;\n }\n blockquote {\n padding: 0 2em;\n }\n u {\n text-decoration: underline\n }\n s {\n color: currentColor;\n }\n `,\n this\n );\n\n this.#initProcessor();\n\n observeChildren(this, this.#parseChildren.bind(this));\n\n // Stop propagation on link clicks to prevent parent handlers from firing\n this.contentNode?.addEventListener('click', (e) => {\n if (e.target instanceof HTMLAnchorElement) {\n e.stopPropagation();\n }\n });\n }\n\n static get observedAttributes() {\n return ['readonly', 'link-target-blank'];\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (newValue !== oldValue) {\n if (attrName === 'readonly') {\n this.onReadOnlyChange(newValue === 'true');\n }\n\n if (attrName === 'link-target-blank') {\n this.#initProcessor();\n }\n }\n }\n\n // We're overriding the rule for em with single underscore to perform as underline. (_underline_)\n customUnderlineRenderer() {\n this.processor.renderer.rules.em_open = (tokens, idx, options, env, self) => {\n if (tokens[idx].markup === '_') tokens[idx].tag = 'u';\n return this.#origEmRenderer(tokens, idx, options, env, self);\n };\n this.processor.renderer.rules.em_close = (tokens, idx, options, env, self) => {\n if (tokens[idx].markup === '_') tokens[idx].tag = 'u';\n return this.#origEmRenderer(tokens, idx, options, env, self);\n };\n }\n\n #customizeLinkRenderer() {\n if (this.linkTargetBlank) {\n this.processor.renderer.rules.link_open = (tokens, idx, options, env, self) => {\n // Add a new `target` attribute, or replace the value of the existing one.\n tokens[idx].attrSet('target', '_blank');\n // Pass the token to the default renderer.\n return this.#origLinkRenderer(tokens, idx, options, env, self);\n };\n } else {\n this.processor.renderer.rules.link_open = this.#origLinkRenderer;\n }\n }\n\n #disableCustomRules() {\n if (!this.processor) {\n return;\n }\n this.processor.disable(disableRules);\n }\n\n #updateProcessorRules() {\n this.#disableCustomRules();\n }\n\n #storeOrigRenderers() {\n const defaultLinkRenderer = (tokens, idx, options, _, self) =>\n self.renderToken(tokens, idx, options);\n this.#origLinkRenderer = this.processor.renderer.rules.link_open || defaultLinkRenderer;\n\n const defaultStrongRenderer = (tokens, idx, options, _, self) =>\n self.renderToken(tokens, idx, options);\n this.#origEmRenderer = this.processor.renderer.rules.em_open || defaultStrongRenderer;\n }\n\n #initProcessor() {\n this.processor = new MarkdownIt('commonmark', { html: true });\n this.#storeOrigRenderers();\n this.#updateProcessorRules();\n this.#customizeLinkRenderer();\n this.customUnderlineRenderer();\n }\n\n get linkTargetBlank() {\n return this.getAttribute('link-target-blank') === 'true';\n }\n\n get contentNode() {\n return this.shadowRoot.querySelector('.content');\n }\n\n #parseChildren() {\n if (!this.processor) {\n return;\n }\n\n let html = decodeHTML(this.innerHTML);\n\n if (!html?.trim() && this.isConnected) {\n this.setAttribute('empty', 'true');\n } else {\n this.removeAttribute('empty');\n }\n\n try {\n const tokens = this.processor.parse(html, { references: undefined });\n html = this.processor.renderer.render(tokens, { html: true, breaks: true });\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn('Not parsing invalid markdown token');\n }\n\n this.contentNode.innerHTML = html;\n this.contentNode.firstChild?.setAttribute('part', 'content');\n }\n\n onReadOnlyChange(isReadOnly) {\n if (isReadOnly) {\n this.contentNode.setAttribute('inert', isReadOnly);\n } else {\n this.contentNode.removeAttribute('inert');\n }\n }\n}\n\nexport const EnrichedTextClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n hostDisplay: { selector: () => ':host', property: 'display', fallback: 'inline-block' },\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontSize: {},\n fontFamily: {},\n fontWeight: {},\n fontWeightBold: [\n { selector: () => ':host strong', property: 'font-weight' },\n { selector: () => ':host b', property: 'font-weight' },\n ],\n textColor: { property: 'color' },\n textLineHeight: { property: 'line-height' },\n textAlign: {},\n linkColor: { selector: 'a', property: 'color' },\n linkTextDecoration: { selector: 'a', property: 'text-decoration' },\n linkHoverTextDecoration: { selector: 'a:hover', property: 'text-decoration' },\n minHeight: {},\n minWidth: {},\n },\n }),\n createStyleMixin({ componentNameOverride: getComponentName('link') }),\n createStyleMixin({ componentNameOverride: getComponentName('text') }),\n draggableMixin,\n componentNameValidationMixin\n)(EnrichedText);\n","export const disableRules = [\n 'blockquote',\n 'list',\n 'image',\n 'table',\n 'code',\n 'hr',\n 'backticks',\n 'fence',\n 'reference',\n 'heading',\n 'lheading',\n 'html_block',\n];\n","export const decodeHTML = (html) => {\n const textArea = document.createElement('textarea');\n textArea.innerHTML = html;\n return textArea.value;\n};\n","import '@descope-ui/descope-link';\n\nimport { componentName, EnrichedTextClass } from './EnrichedTextClass';\n\ncustomElements.define(componentName, EnrichedTextClass);\n\nexport { EnrichedTextClass, componentName };\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 forwardAttrs,\n injectStyle,\n} from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { TextClass } from '@descope-ui/descope-text/class';\n\nexport const componentName = getComponentName('link');\n\nclass RawLink extends createBaseClass({ componentName, baseSelector: ':host a' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<div>\n\t\t\t<descope-text part=\"wrapper\">\n\t\t\t\t<a>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</a>\n\t\t\t</descope-text>\n\t\t</div>\n\t\t`;\n\n injectStyle(\n `\n :host {\n\t\t\tdisplay: inline-block;\n line-height: 1em;\n\t\t}\n\t\t:host a {\n\t\t\tdisplay: inline;\n\t\t}\n\n :host([ellipsis=\"true\"]) descope-text {\n display: inline-flex;\n }\n :host([ellipsis=\"true\"]) descope-text::part(text-wrapper) {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n `,\n this\n );\n\n forwardAttrs(this, this.shadowRoot.querySelector('a'), {\n includeAttrs: ['href', 'target', 'tooltip'],\n mapAttrs: {\n tooltip: 'title',\n },\n });\n\n forwardAttrs(this, this.shadowRoot.querySelector('descope-text'), {\n includeAttrs: ['mode', 'variant'],\n });\n }\n}\n\nconst selectors = {\n host: { selector: () => ':host' },\n link: { selector: () => ':host a' },\n anchor: {},\n wrapper: { selector: () => ':host > div' },\n text: { selector: () => TextClass.componentName },\n};\n\nconst { anchor, text, host, wrapper, link } = selectors;\n\nexport const LinkClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...text, property: 'direction' },\n textAlign: wrapper,\n textDecoration: { ...link, property: 'text-decoration', fallback: 'none' },\n textColor: [\n { ...anchor, property: 'color' },\n { ...text, property: TextClass.cssVarList.textColor },\n ],\n cursor: anchor,\n },\n }),\n draggableMixin,\n componentNameValidationMixin\n)(RawLink);\n","import { componentName, LinkClass } from './LinkClass';\nimport '@descope-ui/descope-text';\n\ncustomElements.define(componentName, LinkClass);\n\nexport { LinkClass, componentName };\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\nconst { host } = {\n host: { selector: () => ':host' }\n}\n\nexport const TextClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n textColor: [\n { property: 'color' }\n ],\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 {\n componentNameValidationMixin,\n portalMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n forwardAttrs,\n getComponentName,\n} from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { EnrichedTextClass } from '@descope-ui/descope-enriched-text/class';\n\nexport const componentName = getComponentName('tooltip');\n\nconst tooltipAttrs = [\n 'text',\n 'position',\n 'hide-delay',\n 'hover-delay',\n 'opened',\n];\n\nconst BaseClass = createBaseClass({\n componentName,\n baseSelector: 'vaadin-tooltip',\n});\n\nclass RawTooltip extends BaseClass {\n static get observedAttributes() {\n return tooltipAttrs.concat(BaseClass.observedAttributes || []);\n }\n\n get isOpened() {\n return this.getAttribute('opened') === 'true';\n }\n\n get overlay() {\n return this.tooltip?._overlayElement;\n }\n\n get overlayContentNode() {\n return this.overlay?.shadowRoot.querySelector('[part=\"content\"]');\n }\n\n get tooltipText() {\n return this.getAttribute('text')?.trim() || '';\n }\n\n get isStaticDisplay() {\n return this.getAttribute('static-display') === 'true';\n }\n\n // We use `static-display` for presentation purposes, to show the tooltip content.\n // This should be used only when `opened` is `true`. Once `static-display` is set,\n // the overlay would become a `static` element, and will have layout in the presenting page.\n // This is mainly aimed to solve the presentation problem on our Styles Page in the Console.\n #handleStaticDisplay() {\n if (this.isStaticDisplay) {\n this.#revealWrappedParts();\n this.setAttribute('inert', 'true');\n } else {\n this.#hideWrappedParts();\n this.removeAttribute('inert');\n }\n }\n\n init() {\n super.init();\n\n // Create the vaadin-tooltip here instead of constructor (for React compatibility)\n this.style.display = 'contents';\n this.insertAdjacentHTML('beforeend', '<vaadin-tooltip></vaadin-tooltip>');\n this.tooltip = this.querySelector('vaadin-tooltip');\n\n this.#hideWrappedParts();\n\n this.#setTooltipTarget();\n\n setTimeout(() => this.#onOverlayReady());\n }\n\n #hideWrappedParts() {\n this.tooltip.style.width = '0';\n this.tooltip.style.height = '0';\n this.tooltip.style.display = 'block';\n this.tooltip.style.overflow = 'hidden';\n this.tooltip.style.position = 'absolute';\n }\n\n #revealWrappedParts() {\n this.tooltip.style.width = '100%';\n this.tooltip.style.height = '100%';\n this.tooltip.style.position = 'static';\n this.tooltip.style.overflow = 'visible';\n this.tooltip.textContent = '';\n this.overlay.style.display = 'block';\n this.overlay.style.position = 'static';\n }\n\n #onOverlayReady() {\n this.#initTooltipTextComponent();\n this.#overrideAttachOverlay();\n\n forwardAttrs(this, this.tooltip, {\n includeAttrs: ['position', 'opened'],\n });\n\n this.#handleTooltipVisibility();\n }\n\n #setTooltipTarget() {\n if (!this.children?.length) return;\n\n let ele = Array.from(this.children).find((child) => child !== this.tooltip);\n\n if (!ele) return;\n\n this.tooltip.target = ele;\n }\n\n #clearOverlayContentNode() {\n this.overlayContentNode.innerHTML = '';\n }\n\n #createEnrichedTextComponent() {\n const enrichedText = document.createElement('descope-enriched-text');\n\n enrichedText.setAttribute('link-target-blank', 'true');\n enrichedText.textContent = this.tooltipText;\n\n return enrichedText;\n }\n\n get srLabel() {\n return this.tooltip?.querySelector('[slot=\"sr-label\"]');\n }\n\n #initTooltipTextComponent() {\n if (!this.overlayContentNode) return;\n\n setTimeout(() => {\n this.#clearOverlayContentNode();\n\n this.textComponent = this.#createEnrichedTextComponent();\n\n this.overlayContentNode.appendChild(this.textComponent);\n\n // An empty sr-label with role=\"tooltip\" fails accessibility checks.\n // Hide it when there's no tooltip text; vaadin handles populating it when text is present.\n if (this.srLabel && !this.tooltipText) {\n this.srLabel.setAttribute('aria-hidden', 'true');\n }\n\n forwardAttrs(this, this.textComponent, {\n includeAttrs: ['readonly'],\n });\n });\n }\n\n // the default vaadin behavior is to attach the overlay to the body when opened\n // we do not want that because it's difficult to style the overlay in this way\n // so we override it to open inside the shadow DOM\n #overrideAttachOverlay() {\n if (!this.overlay) return;\n\n if (this.isOpened) {\n // When `opened` attr is used, vaadin doesn't execute `_attachOverlay`,\n // and the overlay element is rendered outside the component, on the top\n // level. We need to move it back to the local component's DOM.\n setTimeout(() => {\n this.tooltip.shadowRoot.appendChild(this.overlay);\n this.#handleStaticDisplay();\n });\n } else {\n this.overlay._detachOverlay = () => {};\n\n this.overlay._attachOverlay = () =>\n this.tooltip.shadowRoot.appendChild(this.overlay);\n }\n }\n\n #handleTooltipVisibility() {\n // This is Vaadin's API for manual control of tooltip visibility\n this.tooltip?.toggleAttribute('manual', this.isOpened);\n }\n\n #updateText(value) {\n if (!this.textComponent) return;\n const trimmedValue = (value ?? '').trim();\n this.textComponent.textContent = trimmedValue;\n if (this.srLabel) {\n if (trimmedValue) {\n this.srLabel.removeAttribute('aria-hidden');\n } else {\n this.srLabel.setAttribute('aria-hidden', 'true');\n }\n }\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue !== newValue) {\n if (attrName === 'text') {\n this.#updateText(newValue);\n }\n\n if (attrName === 'opened') {\n this.#handleTooltipVisibility();\n }\n }\n }\n}\n\nconst { overlay, content } = {\n overlay: { selector: () => 'vaadin-tooltip-overlay::part(overlay)' },\n content: { selector: () => 'vaadin-tooltip-overlay::part(content)' },\n};\n\n/**\n * This component has no Shadow DOM of its own, so we can't add styles to it\n * (otherwise it would affect the rest of the DOM).\n * Note that all styles are within PortalMixin.\n */\nexport const TooltipClass = compose(\n componentNameValidationMixin,\n portalMixin({\n selector: '',\n mappings: {\n fontFamily: {\n ...content,\n property: EnrichedTextClass.cssVarList.fontFamilyOverride,\n },\n fontSize: {\n ...content,\n property: EnrichedTextClass.cssVarList.fontSizeOverride,\n },\n fontWeight: {\n ...content,\n property: EnrichedTextClass.cssVarList.fontWeightOverride,\n },\n textColor: {\n ...content,\n property: EnrichedTextClass.cssVarList.textColorOverride,\n },\n hostDirection: {\n ...content,\n property: EnrichedTextClass.cssVarList.hostDirectionOverride,\n },\n backgroundColor: [{ ...overlay }, { ...content }],\n borderColor: { ...overlay },\n borderStyle: { ...overlay },\n borderWidth: { ...overlay },\n borderRadius: { ...overlay },\n boxShadow: { ...overlay },\n horizontalPadding: [\n { ...content, property: 'padding-left' },\n { ...content, property: 'padding-right' },\n ],\n verticalPadding: [\n { ...content, property: 'padding-top' },\n { ...content, property: 'padding-bottom' },\n ],\n },\n forward: {\n attributes: ['style'],\n include: false,\n },\n }),\n)(RawTooltip);\n","import '@descope-ui/descope-enriched-text';\nimport '@vaadin/tooltip';\nimport { componentName, TooltipClass } from './TooltipClass';\n\ncustomElements.define(componentName, TooltipClass);\n\nexport { TooltipClass, componentName };\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\n/**\n * Returns an array of ancestor root nodes for the given node.\n *\n * A root node is either a document node or a document fragment node (Shadow Root).\n * The array is collected by a bottom-up DOM traversing that starts with the given node\n * and involves both the light DOM and ancestor shadow DOM trees.\n *\n * @param {Node} node\n * @return {Node[]}\n */\nexport function getAncestorRootNodes(node) {\n const result = [];\n\n while (node) {\n if (node.nodeType === Node.DOCUMENT_NODE) {\n result.push(node);\n break;\n }\n\n if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n result.push(node);\n node = node.host;\n continue;\n }\n\n if (node.assignedSlot) {\n node = node.assignedSlot;\n continue;\n }\n\n node = node.parentNode;\n }\n\n return result;\n}\n\n/**\n * Returns the list of flattened elements for the given `node`.\n * This list consists of a node's children and, for any children that are\n * `<slot>` elements, the expanded flattened list of `assignedElements`.\n *\n * @param {Node} node\n * @return {Element[]}\n */\nexport function getFlattenedElements(node) {\n const result = [];\n let elements;\n if (node.localName === 'slot') {\n elements = node.assignedElements();\n } else {\n result.push(node);\n elements = [...node.children];\n }\n elements.forEach((elem) => result.push(...getFlattenedElements(elem)));\n return result;\n}\n\n/**\n * Traverses the given node and its parents, including those that are across\n * the shadow root boundaries, until it finds a node that matches the selector.\n *\n * @param {string} selector The CSS selector to match against\n * @param {Node} node The starting node for the traversal\n * @return {Node | null} The closest matching element, or null if no match is found\n */\nexport function getClosestElement(selector, node) {\n if (!node) {\n return null;\n }\n\n return node.closest(selector) || getClosestElement(selector, node.getRootNode().host);\n}\n\n/**\n * Takes a string with values separated by space and returns a set the values\n *\n * @param {string} value\n * @return {Set<string>}\n */\nexport function deserializeAttributeValue(value) {\n if (!value) {\n return new Set();\n }\n\n return new Set(value.split(' '));\n}\n\n/**\n * Takes a set of string values and returns a string with values separated by space\n *\n * @param {Set<string>} values\n * @return {string}\n */\nexport function serializeAttributeValue(values) {\n return values ? [...values].join(' ') : '';\n}\n\n/**\n * Adds a value to an attribute containing space-delimited values.\n *\n * @param {HTMLElement} element\n * @param {string} attr\n * @param {string} value\n */\nexport function addValueToAttribute(element, attr, value) {\n const values = deserializeAttributeValue(element.getAttribute(attr));\n values.add(value);\n element.setAttribute(attr, serializeAttributeValue(values));\n}\n\n/**\n * Removes a value from an attribute containing space-delimited values.\n * If the value is the last one, the whole attribute is removed.\n *\n * @param {HTMLElement} element\n * @param {string} attr\n * @param {string} value\n */\nexport function removeValueFromAttribute(element, attr, value) {\n const values = deserializeAttributeValue(element.getAttribute(attr));\n values.delete(value);\n if (values.size === 0) {\n element.removeAttribute(attr);\n return;\n }\n element.setAttribute(attr, serializeAttributeValue(values));\n}\n\n/**\n * Returns true if the given node is an empty text node, false otherwise.\n *\n * @param {Node} node\n * @return {boolean}\n */\nexport function isEmptyTextNode(node) {\n return node.nodeType === Node.TEXT_NODE && node.textContent.trim() === '';\n}\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { isEmptyTextNode } from './dom-utils.js';\nimport { SlotObserver } from './slot-observer.js';\nimport { generateUniqueId } from './unique-id-utils.js';\n\n/**\n * A controller for providing content to slot element and observing changes.\n */\nexport class SlotController extends EventTarget {\n /**\n * Ensure that every instance has unique ID.\n *\n * @param {HTMLElement} host\n * @param {string} slotName\n * @return {string}\n * @protected\n */\n static generateId(host, slotName) {\n const prefix = slotName || 'default';\n return `${prefix}-${host.localName}-${generateUniqueId()}`;\n }\n\n constructor(host, slotName, tagName, config = {}) {\n super();\n\n const { initializer, multiple, observe, useUniqueId } = config;\n\n this.host = host;\n this.slotName = slotName;\n this.tagName = tagName;\n this.observe = typeof observe === 'boolean' ? observe : true;\n this.multiple = typeof multiple === 'boolean' ? multiple : false;\n this.slotInitializer = initializer;\n\n if (multiple) {\n this.nodes = [];\n }\n\n // Only generate the default ID if requested by the controller.\n if (useUniqueId) {\n this.defaultId = this.constructor.generateId(host, slotName);\n }\n }\n\n hostConnected() {\n if (!this.initialized) {\n if (this.multiple) {\n this.initMultiple();\n } else {\n this.initSingle();\n }\n\n if (this.observe) {\n this.observeSlot();\n }\n\n this.initialized = true;\n }\n }\n\n /** @protected */\n initSingle() {\n let node = this.getSlotChild();\n\n if (!node) {\n node = this.attachDefaultNode();\n this.initNode(node);\n } else {\n this.node = node;\n this.initAddedNode(node);\n }\n }\n\n /** @protected */\n initMultiple() {\n const children = this.getSlotChildren();\n\n if (children.length === 0) {\n const defaultNode = this.attachDefaultNode();\n if (defaultNode) {\n this.nodes = [defaultNode];\n this.initNode(defaultNode);\n }\n } else {\n this.nodes = children;\n children.forEach((node) => {\n this.initAddedNode(node);\n });\n }\n }\n\n /**\n * Create and attach default node using the provided tag name, if any.\n * @return {Node | undefined}\n * @protected\n */\n attachDefaultNode() {\n const { host, slotName, tagName } = this;\n\n // Check if the node was created previously and if so, reuse it.\n let node = this.defaultNode;\n\n // Tag name is optional, sometimes we don't init default content.\n if (!node && tagName) {\n node = document.createElement(tagName);\n if (node instanceof Element) {\n if (slotName !== '') {\n node.setAttribute('slot', slotName);\n }\n this.defaultNode = node;\n }\n }\n\n if (node) {\n this.node = node;\n host.appendChild(node);\n }\n\n return node;\n }\n\n /**\n * Return the list of nodes matching the slot managed by the controller.\n * @return {Node}\n */\n getSlotChildren() {\n const { slotName } = this;\n return Array.from(this.host.childNodes).filter((node) => {\n // Either an element (any slot) or a text node (only un-named slot).\n return (\n (node.nodeType === Node.ELEMENT_NODE && node.slot === slotName) ||\n (node.nodeType === Node.TEXT_NODE && node.textContent.trim() && slotName === '')\n );\n });\n }\n\n /**\n * Return a reference to the node managed by the controller.\n * @return {Node}\n */\n getSlotChild() {\n return this.getSlotChildren()[0];\n }\n\n /**\n * Run `slotInitializer` for the node managed by the controller.\n *\n * @param {Node} node\n * @protected\n */\n initNode(node) {\n const { slotInitializer } = this;\n // Don't try to bind `this` to initializer (normally it's arrow function).\n // Instead, pass the host as a first argument to access component's state.\n if (slotInitializer) {\n slotInitializer(node, this.host);\n }\n }\n\n /**\n * Override to initialize the newly added custom node.\n *\n * @param {Node} _node\n * @protected\n */\n initCustomNode(_node) {}\n\n /**\n * Override to teardown slotted node when it's removed.\n *\n * @param {Node} _node\n * @protected\n */\n teardownNode(_node) {}\n\n /**\n * Run both `initCustomNode` and `initNode` for a custom slotted node.\n *\n * @param {Node} node\n * @protected\n */\n initAddedNode(node) {\n if (node !== this.defaultNode) {\n this.initCustomNode(node);\n this.initNode(node);\n }\n }\n\n /**\n * Setup the observer to manage slot content changes.\n * @protected\n */\n observeSlot() {\n const { slotName } = this;\n const selector = slotName === '' ? 'slot:not([name])' : `slot[name=${slotName}]`;\n const slot = this.host.shadowRoot.querySelector(selector);\n\n this.__slotObserver = new SlotObserver(slot, ({ addedNodes, removedNodes }) => {\n const current = this.multiple ? this.nodes : [this.node];\n\n // Calling `slot.assignedNodes()` includes whitespace text nodes in case of default slot:\n // unlike comment nodes, they are not filtered out. So we need to manually ignore them.\n const newNodes = addedNodes.filter((node) => !isEmptyTextNode(node) && !current.includes(node));\n\n if (removedNodes.length) {\n this.nodes = current.filter((node) => !removedNodes.includes(node));\n\n removedNodes.forEach((node) => {\n this.teardownNode(node);\n });\n }\n\n if (newNodes && newNodes.length > 0) {\n if (this.multiple) {\n // Remove default node if exists\n if (this.defaultNode) {\n this.defaultNode.remove();\n }\n this.nodes = [...current, ...newNodes].filter((node) => node !== this.defaultNode);\n newNodes.forEach((node) => {\n this.initAddedNode(node);\n });\n } else {\n // Remove previous node if exists\n if (this.node) {\n this.node.remove();\n }\n this.node = newNodes[0];\n this.initAddedNode(this.node);\n }\n }\n });\n }\n}\n","/**\n * @license\n * Copyright (c) 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\n/**\n * A helper for observing slot changes.\n */\nexport class SlotObserver {\n constructor(slot, callback) {\n /** @type HTMLSlotElement */\n this.slot = slot;\n\n /** @type Function */\n this.callback = callback;\n\n /** @type {Node[]} */\n this._storedNodes = [];\n\n this._connected = false;\n this._scheduled = false;\n\n this._boundSchedule = () => {\n this._schedule();\n };\n\n this.connect();\n this._schedule();\n }\n\n /**\n * Activates an observer. This method is automatically called when\n * a `SlotObserver` is created. It should only be called to re-activate\n * an observer that has been deactivated via the `disconnect` method.\n */\n connect() {\n this.slot.addEventListener('slotchange', this._boundSchedule);\n this._connected = true;\n }\n\n /**\n * Deactivates the observer. After calling this method the observer callback\n * will not be called when changes to slotted nodes occur. The `connect` method\n * may be subsequently called to reactivate the observer.\n */\n disconnect() {\n this.slot.removeEventListener('slotchange', this._boundSchedule);\n this._connected = false;\n }\n\n /** @private */\n _schedule() {\n if (!this._scheduled) {\n this._scheduled = true;\n\n queueMicrotask(() => {\n this.flush();\n });\n }\n }\n\n /**\n * Run the observer callback synchronously.\n */\n flush() {\n if (!this._connected) {\n return;\n }\n\n this._scheduled = false;\n\n this._processNodes();\n }\n\n /** @private */\n _processNodes() {\n const currentNodes = this.slot.assignedNodes({ flatten: true });\n\n let addedNodes = [];\n const removedNodes = [];\n const movedNodes = [];\n\n if (currentNodes.length) {\n addedNodes = currentNodes.filter((node) => !this._storedNodes.includes(node));\n }\n\n if (this._storedNodes.length) {\n this._storedNodes.forEach((node, index) => {\n const idx = currentNodes.indexOf(node);\n if (idx === -1) {\n removedNodes.push(node);\n } else if (idx !== index) {\n movedNodes.push(node);\n }\n });\n }\n\n if (addedNodes.length || removedNodes.length || movedNodes.length) {\n this.callback({ addedNodes, movedNodes, removedNodes });\n }\n\n this._storedNodes = currentNodes;\n }\n}\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\nlet uniqueId = 0;\n\n/**\n * Resets the unique id counter.\n *\n * @return {void}\n */\nexport function resetUniqueId() {\n uniqueId = 0;\n}\n\n/**\n * Returns a unique integer id.\n *\n * @return {number}\n */\nexport function generateUniqueId() {\n // eslint-disable-next-line no-plusplus\n return uniqueId++;\n}\n"],"names":["componentName","EnrichedText","baseSelector","constructor","super","this","attachShadow","mode","innerHTML","bind","contentNode","addEventListener","e","target","HTMLAnchorElement","stopPropagation","observedAttributes","attributeChangedCallback","attrName","oldValue","newValue","onReadOnlyChange","customUnderlineRenderer","processor","renderer","rules","em_open","tokens","idx","options","env","self","markup","tag","em_close","linkTargetBlank","link_open","attrSet","disable","_","renderToken","html","getAttribute","shadowRoot","querySelector","trim","isConnected","setAttribute","removeAttribute","parse","references","undefined","render","breaks","console","warn","firstChild","isReadOnly","EnrichedTextClass","mappings","hostWidth","selector","property","hostDisplay","fallback","hostDirection","fontSize","fontFamily","fontWeight","fontWeightBold","textColor","textLineHeight","textAlign","linkColor","linkTextDecoration","linkHoverTextDecoration","minHeight","minWidth","componentNameOverride","disableRules","decodeHTML","textArea","document","createElement","value","customElements","define","RawLink","includeAttrs","mapAttrs","tooltip","selectors","host","link","anchor","wrapper","text","TextClass","LinkClass","textDecoration","cssVarList","cursor","RawText","hideWhenEmpty","init","hasChildren","childNodes","length","style","display","textLetterSpacing","textShadow","textTransform","fontStyle","borderWidth","borderStyle","borderColor","tooltipAttrs","BaseClass","overlay","content","TooltipClass","fontFamilyOverride","fontSizeOverride","fontWeightOverride","textColorOverride","hostDirectionOverride","backgroundColor","borderRadius","boxShadow","horizontalPadding","verticalPadding","forward","attributes","include","concat","isOpened","_overlayElement","overlayContentNode","tooltipText","isStaticDisplay","insertAdjacentHTML","setTimeout","width","height","overflow","position","textContent","children","ele","Array","from","find","child","enrichedText","srLabel","textComponent","appendChild","_detachOverlay","_attachOverlay","toggleAttribute","trimmedValue","getAncestorRootNodes","node","result","nodeType","Node","DOCUMENT_NODE","push","DOCUMENT_FRAGMENT_NODE","assignedSlot","parentNode","getFlattenedElements","elements","localName","assignedElements","forEach","elem","getClosestElement","closest","getRootNode","deserializeAttributeValue","Set","split","serializeAttributeValue","values","join","addValueToAttribute","element","attr","add","removeValueFromAttribute","delete","size","isEmptyTextNode","TEXT_NODE","SlotController","EventTarget","generateId","slotName","tagName","config","initializer","multiple","observe","useUniqueId","slotInitializer","nodes","defaultId","hostConnected","initialized","initMultiple","initSingle","observeSlot","getSlotChild","initAddedNode","attachDefaultNode","initNode","getSlotChildren","defaultNode","Element","filter","ELEMENT_NODE","slot","initCustomNode","_node","teardownNode","__slotObserver","addedNodes","removedNodes","current","newNodes","includes","remove","SlotObserver","callback","_storedNodes","_connected","_scheduled","_boundSchedule","_schedule","connect","disconnect","removeEventListener","queueMicrotask","flush","_processNodes","currentNodes","assignedNodes","flatten","movedNodes","index","indexOf","uniqueId","generateUniqueId"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[461,1202,2294,4159,4188,4551,6724,7750],{67603(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjUiIHZpZXdCb3g9IjAgMCAyNCAyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPHBhdGggZD0iTTIwIDE4LjVDMjEuMSAxOC41IDIxLjk5IDE3LjYgMjEuOTkgMTYuNUwyMiA2LjVDMjIgNS40IDIxLjEgNC41IDIwIDQuNUg0QzIuOSA0LjUgMiA1LjQgMiA2LjVWMTYuNUMyIDE3LjYgMi45IDE4LjUgNCAxOC41SDBWMjAuNUgyNFYxOC41SDIwWk00IDYuNUgyMFYxNi41SDRWNi41WiIgZmlsbD0iI0Y0RjVGNiIvPiA8L3N2Zz4g"},14329(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPHBhdGggZD0iTTIwIDE4QzIxLjEgMTggMjEuOTkgMTcuMSAyMS45OSAxNkwyMiA2QzIyIDQuOSAyMS4xIDQgMjAgNEg0QzIuOSA0IDIgNC45IDIgNlYxNkMyIDE3LjEgMi45IDE4IDQgMThIMFYyMEgyNFYxOEgyMFpNNCA2SDIwVjE2SDRWNloiIGZpbGw9IiM2MzZDNzQiLz4gPC9zdmc+IA=="},39695(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjUiIHZpZXdCb3g9IjAgMCAyNCAyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPHBhdGggZD0iTTE2IDEuNUg4QzYuMzQgMS41IDUgMi44NCA1IDQuNVYyMC41QzUgMjIuMTYgNi4zNCAyMy41IDggMjMuNUgxNkMxNy42NiAyMy41IDE5IDIyLjE2IDE5IDIwLjVWNC41QzE5IDIuODQgMTcuNjYgMS41IDE2IDEuNVpNMTcgMTguNUg3VjQuNUgxN1YxOC41Wk0xNCAyMS41SDEwVjIwLjVIMTRWMjEuNVoiIGZpbGw9IiNGNEY1RjYiLz4gPC9zdmc+IA=="},86893(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPHBhdGggZD0iTTE2IDFIOEM2LjM0IDEgNSAyLjM0IDUgNFYyMEM1IDIxLjY2IDYuMzQgMjMgOCAyM0gxNkMxNy42NiAyMyAxOSAyMS42NiAxOSAyMFY0QzE5IDIuMzQgMTcuNjYgMSAxNiAxWk0xNyAxOEg3VjRIMTdWMThaTTE0IDIxSDEwVjIwSDE0VjIxWiIgZmlsbD0iIzYzNkM3NCIvPiA8L3N2Zz4g"},13369(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjUiIHZpZXdCb3g9IjAgMCAyNCAyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzUzMDNfODYzKSI+IDxwYXRoIGQ9Ik0xOC41IDAuNUg0LjVDMy4xMiAwLjUgMiAxLjYyIDIgM1YyMkMyIDIzLjM4IDMuMTIgMjQuNSA0LjUgMjQuNUgxOC41QzE5Ljg4IDI0LjUgMjEgMjMuMzggMjEgMjJWM0MyMSAxLjYyIDE5Ljg4IDAuNSAxOC41IDAuNVpNMTEuNSAyMy41QzEwLjY3IDIzLjUgMTAgMjIuODMgMTAgMjJDMTAgMjEuMTcgMTAuNjcgMjAuNSAxMS41IDIwLjVDMTIuMzMgMjAuNSAxMyAyMS4xNyAxMyAyMkMxMyAyMi44MyAxMi4zMyAyMy41IDExLjUgMjMuNVpNMTkgMTkuNUg0VjMuNUgxOVYxOS41WiIgZmlsbD0iI0Y0RjVGNiIvPiA8L2c+IDxkZWZzPiA8Y2xpcFBhdGggaWQ9ImNsaXAwXzUzMDNfODYzIj4gPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwLjUpIi8+IDwvY2xpcFBhdGg+IDwvZGVmcz4gPC9zdmc+IA=="},75407(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjUiIHZpZXdCb3g9IjAgMCAyNCAyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzUyNTJfNzY4KSI+IDxwYXRoIGQ9Ik0xOC41IDAuNUg0LjVDMy4xMiAwLjUgMiAxLjYyIDIgM1YyMkMyIDIzLjM4IDMuMTIgMjQuNSA0LjUgMjQuNUgxOC41QzE5Ljg4IDI0LjUgMjEgMjMuMzggMjEgMjJWM0MyMSAxLjYyIDE5Ljg4IDAuNSAxOC41IDAuNVpNMTEuNSAyMy41QzEwLjY3IDIzLjUgMTAgMjIuODMgMTAgMjJDMTAgMjEuMTcgMTAuNjcgMjAuNSAxMS41IDIwLjVDMTIuMzMgMjAuNSAxMyAyMS4xNyAxMyAyMkMxMyAyMi44MyAxMi4zMyAyMy41IDExLjUgMjMuNVpNMTkgMTkuNUg0VjMuNUgxOVYxOS41WiIgZmlsbD0iIzYzNkM3NCIvPiA8L2c+IDxkZWZzPiA8Y2xpcFBhdGggaWQ9ImNsaXAwXzUyNTJfNzY4Ij4gPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwLjUpIi8+IDwvY2xpcFBhdGg+IDwvZGVmcz4gPC9zdmc+IA=="},81289(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPHBhdGggZD0iTTQgNkgyMlY0SDRDMi45IDQgMiA0LjkgMiA2VjE3SDBWMjBIMTRWMTdINFY2Wk0yMyA4SDE3QzE2LjQ1IDggMTYgOC40NSAxNiA5VjE5QzE2IDE5LjU1IDE2LjQ1IDIwIDE3IDIwSDIzQzIzLjU1IDIwIDI0IDE5LjU1IDI0IDE5VjlDMjQgOC40NSAyMy41NSA4IDIzIDhaTTIyIDE3SDE4VjEwSDIyVjE3WiIgZmlsbD0id2hpdGUiLz4gPC9zdmc+IA=="},50591(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjUiIHZpZXdCb3g9IjAgMCAyNCAyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPHBhdGggZD0iTTQgNi41SDIyVjQuNUg0QzIuOSA0LjUgMiA1LjQgMiA2LjVWMTcuNUgwVjIwLjVIMTRWMTcuNUg0VjYuNVpNMjMgOC41SDE3QzE2LjQ1IDguNSAxNiA4Ljk1IDE2IDkuNVYxOS41QzE2IDIwLjA1IDE2LjQ1IDIwLjUgMTcgMjAuNUgyM0MyMy41NSAyMC41IDI0IDIwLjA1IDI0IDE5LjVWOS41QzI0IDguOTUgMjMuNTUgOC41IDIzIDguNVpNMjIgMTcuNUgxOFYxMC41SDIyVjE3LjVaIiBmaWxsPSIjNjM2Qzc0Ii8+IDwvc3ZnPiA="},77888(t,e,n){"use strict";n.d(e,{T:()=>a,e:()=>l});var i=n(88961),o=n(72270),s=n(25964),r=n(63200);const a=(0,s.xE)("badge");class d extends((0,o.qu)({componentName:a,baseSelector:":host > div"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n\t\t<div>\n <slot></slot>\n\t\t</div>\n\t\t",(0,s.fz)("\n :host {\n display: inline-flex;\n }\n :host > div {\n width: 100%;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n ",this)}}const l=(0,r.Zz)((0,i.RF)({mappings:{hostWidth:[{selector:()=>":host",property:"width"}],hostDirection:{property:"direction"},fontFamily:{},fontSize:{},fontWeight:{},textTransform:{},verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-left"},{property:"padding-right"}],borderWidth:{},borderStyle:{},borderColor:{},borderRadius:{},backgroundColor:{},textColor:{property:"color"},textAlign:{}}}),i.VO,i.tQ)(d)},11065(t,e,n){"use strict";n.r(e),n.d(e,{BadgeClass:()=>i.e,componentName:()=>i.T});var i=n(77888);customElements.define(i.T,i.e)},98538(t,e,n){"use strict";n.d(e,{S:()=>d,T:()=>a});var i=n(88961),o=n(25964),s=n(8512),r=n(63200);const a=(0,o.xE)("icon"),d=(0,r.Zz)((0,i.RF)({mappings:{fill:[{},{property:s.q.cssVarList.fill}]}}),i.VO,i.tQ)((0,i.tz)({slots:[],wrappedEleName:"descope-image",style:()=>"\n :host {\n display: inline-flex;\n max-height: 100%;\n }\n ",excludeAttrsSync:["tabindex","class","style"],componentName:a}))},56737(t,e,n){"use strict";n.r(e),n.d(e,{IconClass:()=>i.S,componentName:()=>i.T}),n(53455);var i=n(98538);customElements.define(i.T,i.S)},8512(t,e,n){"use strict";n.d(e,{T:()=>d,q:()=>p});var i=n(88961),o=n(72270),s=n(63200),r=n(25964),a=n(18782);const d=(0,r.xE)("image"),l=["src","src-dark"];class c extends((0,o.qu)({componentName:d,baseSelector:"slot"})){static get observedAttributes(){return l}constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n\t\t<slot></slot>\n\t",(0,r.fz)("\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n :host > slot {\n width: 100%;\n height: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n ::slotted(*) {\n width: 100%;\n\t\t\t}\n\n .hidden {\n display: none;\n }\n ",this)}init(){super.init?.(),this.toggleVisibility(this.getSrc)}onThemeChange(){this.renderImage()}toggleVisibility(t){t?this.classList.remove("hidden"):this.classList.add("hidden")}get altText(){return this.getAttribute("alt")||""}get legacySrc(){return this.getAttribute("src")}get themeSrc(){return this.getAttribute(`src-${this.currentThemeName}`)}get getSrc(){return this.themeSrc||this.legacySrc}updateFillColor(t){[t,...t.querySelectorAll("*[fill]")].forEach(t=>{t.setAttribute("fill",`var(${p.cssVarList.fill}, ${t.getAttribute("fill")||"''"})`)})}renderImage(){this.toggleVisibility(this.getSrc),(0,a.m)(this.getSrc,this.altText).then(t=>{this.innerHTML="",t&&(this.updateFillColor(t),this.appendChild(t))})}shouldRender(t){const e=this.getAttribute(t);return this.getSrc===e}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),e!==n&&this.shouldRender(t)&&this.renderImage()}}const p=(0,s.Zz)((0,i.RF)({mappings:{fill:{},height:{selector:()=>":host"},width:{selector:()=>":host"}}}),i.VO,i.tQ)(c)},18782(t,e,n){"use strict";n.d(e,{m:()=>s});var i=n(25414);const o=t=>{const e=i.A.sanitize(t,{USE_PROFILES:{svg:!0,svgFilters:!0},ADD_TAGS:["image"],FORBID_TAGS:["defs"]});return(new DOMParser).parseFromString(e,"image/svg+xml").querySelector("svg")},s=async(t,e)=>{try{let n;if((t=>t.startsWith("data:image/svg+xml;base64,"))(t)){const e=atob(t.slice(26));n=o(e)}else if("svg"===(t=>{const e=t.match(/\.([0-9a-z]+)(?:[\\?#]|$)/i);return e?e[1]:null})(t)){const e=await fetch(t),i=await e.text();n=o(i)}else n=((t,e)=>{const n=document.createElement("img");return n.setAttribute("src",t),n.setAttribute("alt",e),n})(t,e);return n.style.setProperty("max-width","100%"),n.style.setProperty("max-height","100%"),n}catch{return null}}},53455(t,e,n){"use strict";n.r(e),n.d(e,{ImageClass:()=>i.q,componentName:()=>i.T});var i=n(8512);customElements.define(i.T,i.q)},74778(t,e,n){"use strict";n.r(e),n.d(e,{LinkClass:()=>u,componentName:()=>d});var i=n(88961),o=n(63200),s=n(25964),r=n(72270),a=n(66434);const d=(0,s.xE)("link");class l extends((0,r.qu)({componentName:d,baseSelector:":host a"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n\t\t<div>\n\t\t\t<descope-text part="wrapper">\n\t\t\t\t<a>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</a>\n\t\t\t</descope-text>\n\t\t</div>\n\t\t',(0,s.fz)('\n :host {\n\t\t\tdisplay: inline-block;\n line-height: 1em;\n\t\t}\n\t\t:host a {\n\t\t\tdisplay: inline;\n\t\t}\n\n :host([ellipsis="true"]) descope-text {\n display: inline-flex;\n }\n :host([ellipsis="true"]) descope-text::part(text-wrapper) {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n ',this),(0,s.EA)(this,this.shadowRoot.querySelector("a"),{includeAttrs:["href","target","tooltip"],mapAttrs:{tooltip:"title"}}),(0,s.EA)(this,this.shadowRoot.querySelector("descope-text"),{includeAttrs:["mode","variant"]})}}const c={host:{selector:()=>":host"},link:{selector:()=>":host a"},anchor:{},wrapper:{selector:()=>":host > div"},text:{selector:()=>a.s.componentName}},{anchor:p,text:g,host:m,wrapper:h,link:I}=c,u=(0,o.Zz)((0,i.RF)({mappings:{hostWidth:{...m,property:"width"},hostDirection:{...g,property:"direction"},textAlign:h,textDecoration:{...I,property:"text-decoration",fallback:"none"},textColor:[{...p,property:"color"},{...g,property:a.s.cssVarList.textColor}],cursor:p}}),i.VO,i.tQ)(l);n(63595),customElements.define(d,u)},93895(t,e,n){"use strict";n.d(e,{O:()=>d,T:()=>a});var i=n(88961),o=n(63200),s=n(25964),r=n(72270);const a=(0,s.xE)("list-item"),d=(0,o.Zz)((0,i.RF)({mappings:{verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-left"},{property:"padding-right"}],backgroundColor:{},borderColor:{},borderStyle:{},borderWidth:{},borderRadius:{},outline:{},cursor:{},gap:{},maxWidth:{selector:()=>":host"},alignItems:{},flexDirection:{},transition:{}}}),i.VO,i.tQ,t=>class extends t{constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n <slot></slot>\n ",(0,s.fz)("\n slot {\n width: 100%;\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n }\n :host {\n display: block;\n }\n ",this)}},i.y)((0,r.qu)({componentName:a,baseSelector:"slot"}))},24542(t,e,n){"use strict";n.r(e),n.d(e,{ListItemClass:()=>i.O,componentName:()=>i.T});var i=n(93895);customElements.define(i.T,i.O)},7720(t,e,n){"use strict";n.d(e,{T:()=>d,x:()=>c});var i=n(88961),o=n(63200),s=n(25964),r=n(93895),a=n(72270);const d=(0,s.xE)("list");class l extends((0,a.qu)({componentName:d,baseSelector:".wrapper"})){static get observedAttributes(){return["variant","readonly"]}constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <div class="wrapper">\n <slot></slot>\n <slot name="empty-state">\n No item...\n </slot>\n </div>\n\t',(0,s.fz)('\n .wrapper {\n overflow: auto;\n display: grid;\n max-height: 100%;\n width: 100%;\n }\n\n :host {\n display: inline-flex;\n width: 100%;\n }\n slot[name="empty-state"] {\n justify-content: center;\n align-items: center;\n display: flex;\n flex-grow: 1;\n }\n\n :host slot[name="empty-state"] {\n display: none;\n }\n :host([empty]) slot[name="empty-state"] {\n display: flex;\n }\n ::slotted(:not([slot])) {\n width: 100%;\n }\n ',this)}get items(){return this.shadowRoot.querySelector("slot").assignedElements()}#t(){0===this.items.length?this.setAttribute("empty","true"):this.removeAttribute("empty")}get variant(){return this.getAttribute("variant")||"list"}#e(){this.items.forEach(t=>{let e=t;e.localName!==r.O.componentName&&(e=t.querySelector(r.O.componentName));const n="tiles"===this.variant?"tile":"row";e?.setAttribute("variant",n)})}init(){super.init?.(),(0,s.Ge)(this,()=>{this.#t(),this.#e(),this.#n()})}get isReadOnly(){return"true"===this.getAttribute("readonly")}#n(){this.items.forEach(t=>{this.isReadOnly?t.setAttribute("inert",""):t.removeAttribute("inert")})}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),n!==e&&("variant"===t?this.#e():"readonly"===t&&this.#n())}}const c=(0,o.Zz)((0,i.RF)({mappings:{hostWidth:{selector:()=>":host",property:"width"},maxHeight:{selector:()=>":host"},minHeight:{},verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-left"},{property:"padding-right"}],hostDirection:{selector:()=>":host",property:"direction"},fontFamily:{},gap:{},backgroundColor:{},borderRadius:{},borderColor:{},borderStyle:{},borderWidth:{},boxShadow:{},gridTemplateColumns:{},maxItemsWidth:{selector:()=>"::slotted(:not([slot]))",property:"max-width"},minItemsWidth:{selector:()=>"::slotted(:not([slot]))",property:"min-width"},maxRowItems:{property:"max-row-items"},itemsHorizontalAlign:{selector:()=>"::slotted(*)",property:"justify-self"},emptyStateTextColor:{selector:()=>'slot[name="empty-state"]',property:"color"},emptyStateTextFontFamily:{selector:()=>'slot[name="empty-state"]',property:"font-family"}}}),i.VO,i.tQ)(l)},45400(t,e,n){"use strict";n.r(e),n.d(e,{ListClass:()=>i.x,componentName:()=>i.T}),n(24542);var i=n(7720);customElements.define(i.T,i.x)},66434(t,e,n){"use strict";n.d(e,{T:()=>a,s:()=>c});var i=n(88961),o=n(63200),s=n(25964),r=n(72270);const a=(0,s.xE)("text");class d extends((0,r.qu)({componentName:a,baseSelector:":host > slot"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <slot part="text-wrapper"></slot>\n ',(0,s.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,s.Ge)(this,()=>{const t=!!this.childNodes.length;this.style.display=!t&&this.hideWhenEmpty?"none":""})}}const{host:l}={host:{selector:()=>":host"}},c=(0,o.Zz)((0,i.RF)({mappings:{hostWidth:{...l,property:"width"},hostDirection:{...l,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)(d)},63595(t,e,n){"use strict";n.r(e),n.d(e,{TextClass:()=>i.s,componentName:()=>i.T});var i=n(66434);customElements.define(i.T,i.s)},66747(t,e,n){"use strict";n.r(e),n.d(e,{TrustedDevicesClass:()=>T,componentName:()=>w}),n(45400),n(24542),n(63595),n(74778),n(11065),n(56737);var i=n(63200),o=n(25964),s=n(88961),r=n(72270),a=n(77888),d=n(7720),l=n(93895),c=n(14329),p=n.n(c),g=n(86893),m=n.n(g),h=n(75407),I=n.n(h),u=n(50591),y=n.n(u),M=n(67603),x=n.n(M),D=n(39695),N=n.n(D),b=n(13369),A=n.n(b),j=n(81289),S=n.n(j);const L=t=>{const e=parseInt(t,10);return Number.isNaN(e)?0:e},v={desktop:{light:p(),dark:x()},mobile:{light:m(),dark:N()},tablet:{light:I(),dark:A()},unknown:{light:y(),dark:S()}},w=(0,o.xE)("trusted-devices"),C=({id:t,name:e,lastLoginDate:n,deviceType:i,isCurrent:o},s,r)=>{const a=o?'class="current-device"':"",{iconSrc:d,iconSrcDark:l}=(t=>{const e=v[t]||v.unknown;return{iconSrc:e.light,iconSrcDark:e.dark}})(i),c=r.lastLoginLabel?`${r.lastLoginLabel} `:"",p=((t,e)=>{if(Number.isNaN(parseInt(t,10)))return"";const n=new Date(t),i=n.getFullYear(),o=String(n.getMonth()+1).padStart(2,"0"),s=String(n.getDate()).padStart(2,"0"),r=n.toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit"}),a={"DD-MM-YYYY":`${s}/${o}/${i}`,"YYYY-MM-DD":`${i}/${o}/${s}`,"MM-DD-YYYY":`${o}/${s}/${i}`};return`${a[e]||a["MM/DD/YYYY"]} ${r}`})(n,r.format),g=o?`<descope-badge\n bordered="true"\n size="xs"\n mode="primary"\n st-host-direction="${r.direction}"\n >\n ${r.currentDeviceLabel}\n </descope-badge>`:"",m=r.hideActions||o?"":`<descope-link\n class="remove-device"\n variant="body1"\n mode="primary"\n data-action="remove-device"\n data-device-id="${t}"\n st-host-direction="${r.direction}"\n ellipsis="true"\n >\n ${r.removeDeviceLabel}\n </descope-link>`,h=document.createElement("template");return h.innerHTML=`\n <descope-list-item ${a}>\n <div class="content">\n <div class="main">\n <span class="device">\n <descope-icon\n class="device-icon"\n src="${d}"\n src-dark="${l}">\n </descope-icon>\n <descope-text\n class="device-name"\n variant="body1"\n mode="primary">\n </descope-text>\n </span>\n <span class="panel">\n ${g}\n ${m}\n </span>\n </div>\n <div class="meta">\n <descope-text\n variant="body2"\n mode="primary"\n >\n ${c}\n </descope-text>\n <descope-text\n class="login-date"\n variant="body2"\n mode="primary"\n >\n ${p}\n </descope-text>\n </div>\n </div>\n </descope-list-item>\n `,h.content.querySelector(".device-name").textContent=e,h},z=(0,r.qu)({componentName:w,baseSelector:d.x.componentName}),{host:E}={host:{selector:()=>":host"}},T=(0,i.Zz)((0,s.RF)({mappings:{hostWidth:{...E,property:"width"},hostMinWidth:{...E,property:"min-width"},hostDirection:[{...E,property:"direction"},{selector:()=>"descope-list-item",property:"direction"},{selector:()=>"descope-text",property:"direction"}],listItemsGap:{property:d.x.cssVarList.gap},listBackgroundColor:{selector:()=>d.x.componentName,property:d.x.cssVarList.backgroundColor},listBorderRadius:{selector:()=>d.x.componentName,property:d.x.cssVarList.borderRadius},listBorderWidth:{selector:()=>d.x.componentName,property:d.x.cssVarList.borderWidth},listBoxShadow:{selector:()=>d.x.componentName,property:d.x.cssVarList.boxShadow},listPadding:[{selector:()=>d.x.componentName,property:d.x.cssVarList.verticalPadding},{selector:()=>d.x.componentName,property:d.x.cssVarList.horizontalPadding}],itemVerticalPadding:{selector:l.O.componentName,property:l.O.cssVarList.verticalPadding},itemHorizontalPadding:{selector:l.O.componentName,property:l.O.cssVarList.horizontalPadding},itemCursor:{selector:l.O.componentName,property:l.O.cssVarList.cursor},itemOutline:{selector:l.O.componentName,property:l.O.cssVarList.outline},itemBorderColor:{selector:l.O.componentName,property:l.O.cssVarList.borderColor},itemBorderRadius:{selector:l.O.componentName,property:l.O.cssVarList.borderRadius},itemBackgroundColor:{selector:l.O.componentName,property:l.O.cssVarList.backgroundColor},itemContentGap:{selector:()=>".content",property:"gap"},badgeBorderColor:{selector:a.e.componentName,property:a.e.cssVarList.borderColor},badgeTextColor:{selector:a.e.componentName,property:a.e.cssVarList.textColor},badgeBackgroundColor:{selector:a.e.componentName,property:a.e.cssVarList.backgroundColor},badgeBorderRadius:{selector:a.e.componentName,property:a.e.cssVarList.borderRadius},devicePanelGap:{selector:()=>".main",property:"gap"},deviceIconGap:{selector:()=>".device",property:"gap"},deviceIconSize:[{selector:()=>".device-icon",property:"width"},{selector:()=>".device-icon",property:"height"}],lastLoginLabelGap:{selector:" .meta",property:"gap"}}}),s.VO,(0,s.t$)({itemRenderer:C,sortFn:(t,e)=>L(e.lastLoginDate)-L(t.lastLoginDate),rerenderAttrsList:["remove-device-label","current-device-label","last-login-label","format","hide-actions"]}),s.tQ)(class extends z{constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <descope-list>\n <slot name="empty-state" slot="empty-state"></slot>\n </descope-list>\n ',this.appsList=this.shadowRoot.querySelector("descope-list"),(0,o.fz)("\n :host {\n display: inline-block;\n }\n\n .descope-list-item {\n min-width: 0;\n }\n\n .current-device {\n order: -1;\n }\n\n .content {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .main {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n .panel {\n display: flex;\n flex-shrink: 0;\n max-width: 75%;\n overflow: hidden;\n }\n\n .device {\n display: flex;\n min-width: 0;\n }\n\n .device-icon {\n flex-shrink: 0;\n }\n\n .meta {\n display: flex;\n }\n\n .login-date {\n min-width: fit-content;\n }\n\n descope-badge {\n min-width: 0;\n }\n\n descope-text {\n display: flex;\n align-items: center; \n min-width: 0;\n }\n descope-text::part(text-wrapper) {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n descope-link {\n overflow: hidden;\n }\n descope-link.remove-device::part(wrapper) {\n display: flex;\n width: 100%;\n }\n descope-link.remove-device {\n width: 100%;\n }\n ",this)}init(){super.init?.(),this.appsList.itemRenderer=C,this.appsList.addEventListener("click",this.onRemoveClick.bind(this))}onRemoveClick(t){if(this.readOnly)return;const e=t.target.closest("[data-device-id]"),n=e?.getAttribute("data-device-id");n&&this.dispatchEvent(new CustomEvent("remove-device-clicked",{bubbles:!0,detail:{id:n,action:"remove-device"}}))}get readOnly(){return"true"===this.getAttribute("readonly")}get hideActions(){return"true"===this.getAttribute("hide-actions")}get format(){return this.getAttribute("format")?.toUpperCase()||"MM-DD-YYYY"}get removeDeviceLabel(){return this.getAttribute("remove-device-label")||"Sign out"}get currentDeviceLabel(){return this.getAttribute("current-device-label")||"Current device"}get lastLoginLabel(){return this.getAttribute("last-login-label")||"Last login:"}get direction(){return this.getAttribute("st-host-direction")}});customElements.define(w,T)}}]);
|
|
1
|
+
(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[461,1202,2294,4159,4188,4551,6724,7750],{67603(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjUiIHZpZXdCb3g9IjAgMCAyNCAyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPHBhdGggZD0iTTIwIDE4LjVDMjEuMSAxOC41IDIxLjk5IDE3LjYgMjEuOTkgMTYuNUwyMiA2LjVDMjIgNS40IDIxLjEgNC41IDIwIDQuNUg0QzIuOSA0LjUgMiA1LjQgMiA2LjVWMTYuNUMyIDE3LjYgMi45IDE4LjUgNCAxOC41SDBWMjAuNUgyNFYxOC41SDIwWk00IDYuNUgyMFYxNi41SDRWNi41WiIgZmlsbD0iI0Y0RjVGNiIvPiA8L3N2Zz4g"},14329(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPHBhdGggZD0iTTIwIDE4QzIxLjEgMTggMjEuOTkgMTcuMSAyMS45OSAxNkwyMiA2QzIyIDQuOSAyMS4xIDQgMjAgNEg0QzIuOSA0IDIgNC45IDIgNlYxNkMyIDE3LjEgMi45IDE4IDQgMThIMFYyMEgyNFYxOEgyMFpNNCA2SDIwVjE2SDRWNloiIGZpbGw9IiM2MzZDNzQiLz4gPC9zdmc+IA=="},39695(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjUiIHZpZXdCb3g9IjAgMCAyNCAyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPHBhdGggZD0iTTE2IDEuNUg4QzYuMzQgMS41IDUgMi44NCA1IDQuNVYyMC41QzUgMjIuMTYgNi4zNCAyMy41IDggMjMuNUgxNkMxNy42NiAyMy41IDE5IDIyLjE2IDE5IDIwLjVWNC41QzE5IDIuODQgMTcuNjYgMS41IDE2IDEuNVpNMTcgMTguNUg3VjQuNUgxN1YxOC41Wk0xNCAyMS41SDEwVjIwLjVIMTRWMjEuNVoiIGZpbGw9IiNGNEY1RjYiLz4gPC9zdmc+IA=="},86893(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPHBhdGggZD0iTTE2IDFIOEM2LjM0IDEgNSAyLjM0IDUgNFYyMEM1IDIxLjY2IDYuMzQgMjMgOCAyM0gxNkMxNy42NiAyMyAxOSAyMS42NiAxOSAyMFY0QzE5IDIuMzQgMTcuNjYgMSAxNiAxWk0xNyAxOEg3VjRIMTdWMThaTTE0IDIxSDEwVjIwSDE0VjIxWiIgZmlsbD0iIzYzNkM3NCIvPiA8L3N2Zz4g"},13369(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjUiIHZpZXdCb3g9IjAgMCAyNCAyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzUzMDNfODYzKSI+IDxwYXRoIGQ9Ik0xOC41IDAuNUg0LjVDMy4xMiAwLjUgMiAxLjYyIDIgM1YyMkMyIDIzLjM4IDMuMTIgMjQuNSA0LjUgMjQuNUgxOC41QzE5Ljg4IDI0LjUgMjEgMjMuMzggMjEgMjJWM0MyMSAxLjYyIDE5Ljg4IDAuNSAxOC41IDAuNVpNMTEuNSAyMy41QzEwLjY3IDIzLjUgMTAgMjIuODMgMTAgMjJDMTAgMjEuMTcgMTAuNjcgMjAuNSAxMS41IDIwLjVDMTIuMzMgMjAuNSAxMyAyMS4xNyAxMyAyMkMxMyAyMi44MyAxMi4zMyAyMy41IDExLjUgMjMuNVpNMTkgMTkuNUg0VjMuNUgxOVYxOS41WiIgZmlsbD0iI0Y0RjVGNiIvPiA8L2c+IDxkZWZzPiA8Y2xpcFBhdGggaWQ9ImNsaXAwXzUzMDNfODYzIj4gPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwLjUpIi8+IDwvY2xpcFBhdGg+IDwvZGVmcz4gPC9zdmc+IA=="},75407(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjUiIHZpZXdCb3g9IjAgMCAyNCAyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzUyNTJfNzY4KSI+IDxwYXRoIGQ9Ik0xOC41IDAuNUg0LjVDMy4xMiAwLjUgMiAxLjYyIDIgM1YyMkMyIDIzLjM4IDMuMTIgMjQuNSA0LjUgMjQuNUgxOC41QzE5Ljg4IDI0LjUgMjEgMjMuMzggMjEgMjJWM0MyMSAxLjYyIDE5Ljg4IDAuNSAxOC41IDAuNVpNMTEuNSAyMy41QzEwLjY3IDIzLjUgMTAgMjIuODMgMTAgMjJDMTAgMjEuMTcgMTAuNjcgMjAuNSAxMS41IDIwLjVDMTIuMzMgMjAuNSAxMyAyMS4xNyAxMyAyMkMxMyAyMi44MyAxMi4zMyAyMy41IDExLjUgMjMuNVpNMTkgMTkuNUg0VjMuNUgxOVYxOS41WiIgZmlsbD0iIzYzNkM3NCIvPiA8L2c+IDxkZWZzPiA8Y2xpcFBhdGggaWQ9ImNsaXAwXzUyNTJfNzY4Ij4gPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwLjUpIi8+IDwvY2xpcFBhdGg+IDwvZGVmcz4gPC9zdmc+IA=="},81289(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPHBhdGggZD0iTTQgNkgyMlY0SDRDMi45IDQgMiA0LjkgMiA2VjE3SDBWMjBIMTRWMTdINFY2Wk0yMyA4SDE3QzE2LjQ1IDggMTYgOC40NSAxNiA5VjE5QzE2IDE5LjU1IDE2LjQ1IDIwIDE3IDIwSDIzQzIzLjU1IDIwIDI0IDE5LjU1IDI0IDE5VjlDMjQgOC40NSAyMy41NSA4IDIzIDhaTTIyIDE3SDE4VjEwSDIyVjE3WiIgZmlsbD0id2hpdGUiLz4gPC9zdmc+IA=="},50591(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjUiIHZpZXdCb3g9IjAgMCAyNCAyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gPHBhdGggZD0iTTQgNi41SDIyVjQuNUg0QzIuOSA0LjUgMiA1LjQgMiA2LjVWMTcuNUgwVjIwLjVIMTRWMTcuNUg0VjYuNVpNMjMgOC41SDE3QzE2LjQ1IDguNSAxNiA4Ljk1IDE2IDkuNVYxOS41QzE2IDIwLjA1IDE2LjQ1IDIwLjUgMTcgMjAuNUgyM0MyMy41NSAyMC41IDI0IDIwLjA1IDI0IDE5LjVWOS41QzI0IDguOTUgMjMuNTUgOC41IDIzIDguNVpNMjIgMTcuNUgxOFYxMC41SDIyVjE3LjVaIiBmaWxsPSIjNjM2Qzc0Ii8+IDwvc3ZnPiA="},77888(t,e,n){"use strict";n.d(e,{T:()=>a,e:()=>l});var i=n(88961),o=n(72270),s=n(25964),r=n(63200);const a=(0,s.xE)("badge");class d extends((0,o.qu)({componentName:a,baseSelector:":host > div"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n\t\t<div>\n <slot></slot>\n\t\t</div>\n\t\t",(0,s.fz)("\n :host {\n display: inline-flex;\n }\n :host > div {\n position: relative;\n width: 100%;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n ",this)}}const l=(0,r.Zz)((0,i.RF)({mappings:{hostWidth:[{selector:()=>":host",property:"width"}],hostHeight:[{selector:()=>":host",property:"height"}],hostDirection:{property:"direction"},fontFamily:{},fontSize:{},fontWeight:{},textTransform:{},verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-left"},{property:"padding-right"}],borderWidth:{},borderStyle:{},borderColor:{},borderRadius:{},backgroundColor:{},textColor:{property:"color"},textAlign:{},boxShadow:{},textIndent:{}}}),i.VO,i.tQ)(d)},11065(t,e,n){"use strict";n.r(e),n.d(e,{BadgeClass:()=>i.e,componentName:()=>i.T});var i=n(77888);customElements.define(i.T,i.e)},98538(t,e,n){"use strict";n.d(e,{S:()=>d,T:()=>a});var i=n(88961),o=n(25964),s=n(8512),r=n(63200);const a=(0,o.xE)("icon"),d=(0,r.Zz)((0,i.RF)({mappings:{fill:[{},{property:s.q.cssVarList.fill}]}}),i.VO,i.tQ)((0,i.tz)({slots:[],wrappedEleName:"descope-image",style:()=>"\n :host {\n display: inline-flex;\n max-height: 100%;\n }\n ",excludeAttrsSync:["tabindex","class","style"],componentName:a}))},56737(t,e,n){"use strict";n.r(e),n.d(e,{IconClass:()=>i.S,componentName:()=>i.T}),n(53455);var i=n(98538);customElements.define(i.T,i.S)},8512(t,e,n){"use strict";n.d(e,{T:()=>d,q:()=>p});var i=n(88961),o=n(72270),s=n(63200),r=n(25964),a=n(18782);const d=(0,r.xE)("image"),l=["src","src-dark"];class c extends((0,o.qu)({componentName:d,baseSelector:"slot"})){static get observedAttributes(){return l}constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n\t\t<slot></slot>\n\t",(0,r.fz)("\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n :host > slot {\n width: 100%;\n height: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n ::slotted(*) {\n width: 100%;\n\t\t\t}\n\n .hidden {\n display: none;\n }\n ",this)}init(){super.init?.(),this.toggleVisibility(this.getSrc)}onThemeChange(){this.renderImage()}toggleVisibility(t){t?this.classList.remove("hidden"):this.classList.add("hidden")}get altText(){return this.getAttribute("alt")||""}get legacySrc(){return this.getAttribute("src")}get themeSrc(){return this.getAttribute(`src-${this.currentThemeName}`)}get getSrc(){return this.themeSrc||this.legacySrc}updateFillColor(t){[t,...t.querySelectorAll("*[fill]")].forEach(t=>{t.setAttribute("fill",`var(${p.cssVarList.fill}, ${t.getAttribute("fill")||"''"})`)})}renderImage(){this.toggleVisibility(this.getSrc),(0,a.m)(this.getSrc,this.altText).then(t=>{this.innerHTML="",t&&(this.updateFillColor(t),this.appendChild(t))})}shouldRender(t){const e=this.getAttribute(t);return this.getSrc===e}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),e!==n&&this.shouldRender(t)&&this.renderImage()}}const p=(0,s.Zz)((0,i.RF)({mappings:{fill:{},height:{selector:()=>":host"},width:{selector:()=>":host"}}}),i.VO,i.tQ)(c)},18782(t,e,n){"use strict";n.d(e,{m:()=>s});var i=n(25414);const o=t=>{const e=i.A.sanitize(t,{USE_PROFILES:{svg:!0,svgFilters:!0},ADD_TAGS:["image"],FORBID_TAGS:["defs"]});return(new DOMParser).parseFromString(e,"image/svg+xml").querySelector("svg")},s=async(t,e)=>{try{let n;if((t=>t.startsWith("data:image/svg+xml;base64,"))(t)){const e=atob(t.slice(26));n=o(e)}else if("svg"===(t=>{const e=t.match(/\.([0-9a-z]+)(?:[\\?#]|$)/i);return e?e[1]:null})(t)){const e=await fetch(t),i=await e.text();n=o(i)}else n=((t,e)=>{const n=document.createElement("img");return n.setAttribute("src",t),n.setAttribute("alt",e),n})(t,e);return n.style.setProperty("max-width","100%"),n.style.setProperty("max-height","100%"),n}catch{return null}}},53455(t,e,n){"use strict";n.r(e),n.d(e,{ImageClass:()=>i.q,componentName:()=>i.T});var i=n(8512);customElements.define(i.T,i.q)},74778(t,e,n){"use strict";n.r(e),n.d(e,{LinkClass:()=>u,componentName:()=>d});var i=n(88961),o=n(63200),s=n(25964),r=n(72270),a=n(66434);const d=(0,s.xE)("link");class l extends((0,r.qu)({componentName:d,baseSelector:":host a"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n\t\t<div>\n\t\t\t<descope-text part="wrapper">\n\t\t\t\t<a>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</a>\n\t\t\t</descope-text>\n\t\t</div>\n\t\t',(0,s.fz)('\n :host {\n\t\t\tdisplay: inline-block;\n line-height: 1em;\n\t\t}\n\t\t:host a {\n\t\t\tdisplay: inline;\n\t\t}\n\n :host([ellipsis="true"]) descope-text {\n display: inline-flex;\n }\n :host([ellipsis="true"]) descope-text::part(text-wrapper) {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n ',this),(0,s.EA)(this,this.shadowRoot.querySelector("a"),{includeAttrs:["href","target","tooltip"],mapAttrs:{tooltip:"title"}}),(0,s.EA)(this,this.shadowRoot.querySelector("descope-text"),{includeAttrs:["mode","variant"]})}}const c={host:{selector:()=>":host"},link:{selector:()=>":host a"},anchor:{},wrapper:{selector:()=>":host > div"},text:{selector:()=>a.s.componentName}},{anchor:p,text:g,host:m,wrapper:h,link:I}=c,u=(0,o.Zz)((0,i.RF)({mappings:{hostWidth:{...m,property:"width"},hostDirection:{...g,property:"direction"},textAlign:h,textDecoration:{...I,property:"text-decoration",fallback:"none"},textColor:[{...p,property:"color"},{...g,property:a.s.cssVarList.textColor}],cursor:p}}),i.VO,i.tQ)(l);n(63595),customElements.define(d,u)},93895(t,e,n){"use strict";n.d(e,{O:()=>d,T:()=>a});var i=n(88961),o=n(63200),s=n(25964),r=n(72270);const a=(0,s.xE)("list-item"),d=(0,o.Zz)((0,i.RF)({mappings:{verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-left"},{property:"padding-right"}],backgroundColor:{},borderColor:{},borderStyle:{},borderWidth:{},borderRadius:{},outline:{},cursor:{},gap:{},maxWidth:{selector:()=>":host"},alignItems:{},flexDirection:{},transition:{}}}),i.VO,i.tQ,t=>class extends t{constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n <slot></slot>\n ",(0,s.fz)("\n slot {\n width: 100%;\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n }\n :host {\n display: block;\n }\n ",this)}},i.y)((0,r.qu)({componentName:a,baseSelector:"slot"}))},24542(t,e,n){"use strict";n.r(e),n.d(e,{ListItemClass:()=>i.O,componentName:()=>i.T});var i=n(93895);customElements.define(i.T,i.O)},7720(t,e,n){"use strict";n.d(e,{T:()=>d,x:()=>c});var i=n(88961),o=n(63200),s=n(25964),r=n(93895),a=n(72270);const d=(0,s.xE)("list");class l extends((0,a.qu)({componentName:d,baseSelector:".wrapper"})){static get observedAttributes(){return["variant","readonly"]}constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <div class="wrapper">\n <slot></slot>\n <slot name="empty-state">\n No item...\n </slot>\n </div>\n\t',(0,s.fz)('\n .wrapper {\n overflow: auto;\n display: grid;\n max-height: 100%;\n width: 100%;\n }\n\n :host {\n display: inline-flex;\n width: 100%;\n }\n slot[name="empty-state"] {\n justify-content: center;\n align-items: center;\n display: flex;\n flex-grow: 1;\n }\n\n :host slot[name="empty-state"] {\n display: none;\n }\n :host([empty]) slot[name="empty-state"] {\n display: flex;\n }\n ::slotted(:not([slot])) {\n width: 100%;\n }\n ',this)}get items(){return this.shadowRoot.querySelector("slot").assignedElements()}#t(){0===this.items.length?this.setAttribute("empty","true"):this.removeAttribute("empty")}get variant(){return this.getAttribute("variant")||"list"}#e(){this.items.forEach(t=>{let e=t;e.localName!==r.O.componentName&&(e=t.querySelector(r.O.componentName));const n="tiles"===this.variant?"tile":"row";e?.setAttribute("variant",n)})}init(){super.init?.(),(0,s.Ge)(this,()=>{this.#t(),this.#e(),this.#n()})}get isReadOnly(){return"true"===this.getAttribute("readonly")}#n(){this.items.forEach(t=>{this.isReadOnly?t.setAttribute("inert",""):t.removeAttribute("inert")})}attributeChangedCallback(t,e,n){super.attributeChangedCallback?.(t,e,n),n!==e&&("variant"===t?this.#e():"readonly"===t&&this.#n())}}const c=(0,o.Zz)((0,i.RF)({mappings:{hostWidth:{selector:()=>":host",property:"width"},maxHeight:{selector:()=>":host"},minHeight:{},verticalPadding:[{property:"padding-top"},{property:"padding-bottom"}],horizontalPadding:[{property:"padding-left"},{property:"padding-right"}],hostDirection:{selector:()=>":host",property:"direction"},fontFamily:{},gap:{},backgroundColor:{},borderRadius:{},borderColor:{},borderStyle:{},borderWidth:{},boxShadow:{},gridTemplateColumns:{},maxItemsWidth:{selector:()=>"::slotted(:not([slot]))",property:"max-width"},minItemsWidth:{selector:()=>"::slotted(:not([slot]))",property:"min-width"},maxRowItems:{property:"max-row-items"},itemsHorizontalAlign:{selector:()=>"::slotted(*)",property:"justify-self"},emptyStateTextColor:{selector:()=>'slot[name="empty-state"]',property:"color"},emptyStateTextFontFamily:{selector:()=>'slot[name="empty-state"]',property:"font-family"}}}),i.VO,i.tQ)(l)},45400(t,e,n){"use strict";n.r(e),n.d(e,{ListClass:()=>i.x,componentName:()=>i.T}),n(24542);var i=n(7720);customElements.define(i.T,i.x)},66434(t,e,n){"use strict";n.d(e,{T:()=>a,s:()=>c});var i=n(88961),o=n(63200),s=n(25964),r=n(72270);const a=(0,s.xE)("text");class d extends((0,r.qu)({componentName:a,baseSelector:":host > slot"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <slot part="text-wrapper"></slot>\n ',(0,s.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,s.Ge)(this,()=>{const t=!!this.childNodes.length;this.style.display=!t&&this.hideWhenEmpty?"none":""})}}const{host:l}={host:{selector:()=>":host"}},c=(0,o.Zz)((0,i.RF)({mappings:{hostWidth:{...l,property:"width"},hostDirection:{...l,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)(d)},63595(t,e,n){"use strict";n.r(e),n.d(e,{TextClass:()=>i.s,componentName:()=>i.T});var i=n(66434);customElements.define(i.T,i.s)},66747(t,e,n){"use strict";n.r(e),n.d(e,{TrustedDevicesClass:()=>T,componentName:()=>w}),n(45400),n(24542),n(63595),n(74778),n(11065),n(56737);var i=n(63200),o=n(25964),s=n(88961),r=n(72270),a=n(77888),d=n(7720),l=n(93895),c=n(14329),p=n.n(c),g=n(86893),m=n.n(g),h=n(75407),I=n.n(h),u=n(50591),y=n.n(u),M=n(67603),x=n.n(M),D=n(39695),N=n.n(D),b=n(13369),A=n.n(b),j=n(81289),S=n.n(j);const L=t=>{const e=parseInt(t,10);return Number.isNaN(e)?0:e},v={desktop:{light:p(),dark:x()},mobile:{light:m(),dark:N()},tablet:{light:I(),dark:A()},unknown:{light:y(),dark:S()}},w=(0,o.xE)("trusted-devices"),C=({id:t,name:e,lastLoginDate:n,deviceType:i,isCurrent:o},s,r)=>{const a=o?'class="current-device"':"",{iconSrc:d,iconSrcDark:l}=(t=>{const e=v[t]||v.unknown;return{iconSrc:e.light,iconSrcDark:e.dark}})(i),c=r.lastLoginLabel?`${r.lastLoginLabel} `:"",p=((t,e)=>{if(Number.isNaN(parseInt(t,10)))return"";const n=new Date(t),i=n.getFullYear(),o=String(n.getMonth()+1).padStart(2,"0"),s=String(n.getDate()).padStart(2,"0"),r=n.toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit"}),a={"DD-MM-YYYY":`${s}/${o}/${i}`,"YYYY-MM-DD":`${i}/${o}/${s}`,"MM-DD-YYYY":`${o}/${s}/${i}`};return`${a[e]||a["MM/DD/YYYY"]} ${r}`})(n,r.format),g=o?`<descope-badge\n bordered="true"\n size="xs"\n mode="primary"\n st-host-direction="${r.direction}"\n >\n ${r.currentDeviceLabel}\n </descope-badge>`:"",m=r.hideActions||o?"":`<descope-link\n class="remove-device"\n variant="body1"\n mode="primary"\n data-action="remove-device"\n data-device-id="${t}"\n st-host-direction="${r.direction}"\n ellipsis="true"\n >\n ${r.removeDeviceLabel}\n </descope-link>`,h=document.createElement("template");return h.innerHTML=`\n <descope-list-item ${a}>\n <div class="content">\n <div class="main">\n <span class="device">\n <descope-icon\n class="device-icon"\n src="${d}"\n src-dark="${l}">\n </descope-icon>\n <descope-text\n class="device-name"\n variant="body1"\n mode="primary">\n </descope-text>\n </span>\n <span class="panel">\n ${g}\n ${m}\n </span>\n </div>\n <div class="meta">\n <descope-text\n variant="body2"\n mode="primary"\n >\n ${c}\n </descope-text>\n <descope-text\n class="login-date"\n variant="body2"\n mode="primary"\n >\n ${p}\n </descope-text>\n </div>\n </div>\n </descope-list-item>\n `,h.content.querySelector(".device-name").textContent=e,h},z=(0,r.qu)({componentName:w,baseSelector:d.x.componentName}),{host:E}={host:{selector:()=>":host"}},T=(0,i.Zz)((0,s.RF)({mappings:{hostWidth:{...E,property:"width"},hostMinWidth:{...E,property:"min-width"},hostDirection:[{...E,property:"direction"},{selector:()=>"descope-list-item",property:"direction"},{selector:()=>"descope-text",property:"direction"}],listItemsGap:{property:d.x.cssVarList.gap},listBackgroundColor:{selector:()=>d.x.componentName,property:d.x.cssVarList.backgroundColor},listBorderRadius:{selector:()=>d.x.componentName,property:d.x.cssVarList.borderRadius},listBorderWidth:{selector:()=>d.x.componentName,property:d.x.cssVarList.borderWidth},listBoxShadow:{selector:()=>d.x.componentName,property:d.x.cssVarList.boxShadow},listPadding:[{selector:()=>d.x.componentName,property:d.x.cssVarList.verticalPadding},{selector:()=>d.x.componentName,property:d.x.cssVarList.horizontalPadding}],itemVerticalPadding:{selector:l.O.componentName,property:l.O.cssVarList.verticalPadding},itemHorizontalPadding:{selector:l.O.componentName,property:l.O.cssVarList.horizontalPadding},itemCursor:{selector:l.O.componentName,property:l.O.cssVarList.cursor},itemOutline:{selector:l.O.componentName,property:l.O.cssVarList.outline},itemBorderColor:{selector:l.O.componentName,property:l.O.cssVarList.borderColor},itemBorderRadius:{selector:l.O.componentName,property:l.O.cssVarList.borderRadius},itemBackgroundColor:{selector:l.O.componentName,property:l.O.cssVarList.backgroundColor},itemContentGap:{selector:()=>".content",property:"gap"},badgeBorderColor:{selector:a.e.componentName,property:a.e.cssVarList.borderColor},badgeTextColor:{selector:a.e.componentName,property:a.e.cssVarList.textColor},badgeBackgroundColor:{selector:a.e.componentName,property:a.e.cssVarList.backgroundColor},badgeBorderRadius:{selector:a.e.componentName,property:a.e.cssVarList.borderRadius},devicePanelGap:{selector:()=>".main",property:"gap"},deviceIconGap:{selector:()=>".device",property:"gap"},deviceIconSize:[{selector:()=>".device-icon",property:"width"},{selector:()=>".device-icon",property:"height"}],lastLoginLabelGap:{selector:" .meta",property:"gap"}}}),s.VO,(0,s.t$)({itemRenderer:C,sortFn:(t,e)=>L(e.lastLoginDate)-L(t.lastLoginDate),rerenderAttrsList:["remove-device-label","current-device-label","last-login-label","format","hide-actions"]}),s.tQ)(class extends z{constructor(){super(),this.attachShadow({mode:"open"}).innerHTML='\n <descope-list>\n <slot name="empty-state" slot="empty-state"></slot>\n </descope-list>\n ',this.appsList=this.shadowRoot.querySelector("descope-list"),(0,o.fz)("\n :host {\n display: inline-block;\n }\n\n .descope-list-item {\n min-width: 0;\n }\n\n .current-device {\n order: -1;\n }\n\n .content {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .main {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n .panel {\n display: flex;\n flex-shrink: 0;\n max-width: 75%;\n overflow: hidden;\n }\n\n .device {\n display: flex;\n min-width: 0;\n }\n\n .device-icon {\n flex-shrink: 0;\n }\n\n .meta {\n display: flex;\n }\n\n .login-date {\n min-width: fit-content;\n }\n\n descope-badge {\n min-width: 0;\n }\n\n descope-text {\n display: flex;\n align-items: center; \n min-width: 0;\n }\n descope-text::part(text-wrapper) {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n descope-link {\n overflow: hidden;\n }\n descope-link.remove-device::part(wrapper) {\n display: flex;\n width: 100%;\n }\n descope-link.remove-device {\n width: 100%;\n }\n ",this)}init(){super.init?.(),this.appsList.itemRenderer=C,this.appsList.addEventListener("click",this.onRemoveClick.bind(this))}onRemoveClick(t){if(this.readOnly)return;const e=t.target.closest("[data-device-id]"),n=e?.getAttribute("data-device-id");n&&this.dispatchEvent(new CustomEvent("remove-device-clicked",{bubbles:!0,detail:{id:n,action:"remove-device"}}))}get readOnly(){return"true"===this.getAttribute("readonly")}get hideActions(){return"true"===this.getAttribute("hide-actions")}get format(){return this.getAttribute("format")?.toUpperCase()||"MM-DD-YYYY"}get removeDeviceLabel(){return this.getAttribute("remove-device-label")||"Sign out"}get currentDeviceLabel(){return this.getAttribute("current-device-label")||"Current device"}get lastLoginLabel(){return this.getAttribute("last-login-label")||"Last login:"}get direction(){return this.getAttribute("st-host-direction")}});customElements.define(w,T)}}]);
|
|
2
2
|
//# sourceMappingURL=descope-trusted-devices.js.map
|