@descope/web-components-ui 3.15.0 → 3.15.2
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 +31 -0
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/index.esm.js +31 -0
- package/dist/index.esm.js.map +1 -1
- package/dist/umd/DescopeDev.js +1 -1
- package/dist/umd/DescopeDev.js.map +1 -1
- package/dist/umd/descope-apps-list.js +1 -1
- package/dist/umd/descope-apps-list.js.map +1 -1
- package/dist/umd/descope-list.js +1 -1
- package/dist/umd/descope-list.js.map +1 -1
- package/dist/umd/descope-multi-sso.js +1 -1
- package/dist/umd/descope-multi-sso.js.map +1 -1
- package/dist/umd/descope-outbound-apps.js +1 -1
- package/dist/umd/descope-outbound-apps.js.map +1 -1
- package/dist/umd/descope-scopes-list-index-js.js +1 -1
- package/dist/umd/descope-scopes-list-index-js.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-passkeys.js +1 -1
- package/dist/umd/descope-user-passkeys.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/package.json +40 -40
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descope-outbound-apps.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-avatar/src/component/AvatarClass.js","webpack://@descope/web-components-ui/../components/descope-avatar/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/ButtonClass.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/clickableMixin.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-icon/src/component/IconClass.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/ImageClass.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/helpers.js","webpack://@descope/web-components-ui/../components/descope-list-item/src/component/ListItemClass.js","webpack://@descope/web-components-ui/../components/descope-list-item/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-list/src/component/ListClass.js","webpack://@descope/web-components-ui/../components/descope-list/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-outbound-apps/src/component/OutboundAppsClass.js","webpack://@descope/web-components-ui/../components/descope-outbound-apps/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"],"sourcesContent":["import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n forwardAttrs,\n getComponentName,\n injectStyle,\n observeAttributes,\n} from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('avatar');\nclass RawAvatar 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 <vaadin-avatar></vaadin-avatar>\n <div class=\"editableBadge\">\n <vaadin-icon icon=\"vaadin:pencil\"></vaadin-icon>\n </div>\n </div>\n\t\t`;\n\n injectStyle(`\n :host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n .editableBadge {\n border: 1px solid;\n border-radius: 100%;\n height: fit-content;\n width: 25%;\n height: 25%;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 5%;\n box-sizing: border-box;\n position: absolute;\n bottom: 0;\n inset-inline-end: 0;\n }\n\n vaadin-icon {\n color: currentcolor;\n }\n\n vaadin-avatar {\n width: 100%;\n height: 100%;\n margin: 0;\n border: none\n }\n\n .wrapper {\n display: inline-flex;\n position: relative;\n width: 100%;\n height: 100%;\n }\n `, this);\n\n this.avatarComponent = this.shadowRoot.querySelector('vaadin-avatar');\n\n forwardAttrs(this, this.avatarComponent, {\n includeAttrs: ['display-name', 'img', 'abbr'],\n mapAttrs: { 'display-name': 'name' },\n });\n\n const editableIcon = this.shadowRoot.querySelector('.editableBadge');\n\n observeAttributes(\n this,\n () => {\n editableIcon.style.display = this.isEditable ? '' : 'none';\n },\n { includeAttrs: ['editable'] },\n );\n }\n\n get isEditable() {\n return this.getAttribute('editable') === 'true';\n }\n}\n\nconst { host, editableBadge, avatar } = {\n host: { selector: () => ':host' },\n editableBadge: { selector: '> .editableBadge' },\n avatar: { selector: 'vaadin-avatar' },\n};\n\nexport const AvatarClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: [\n { ...host, property: 'width' },\n { ...host, property: 'min-width' },\n ],\n hostHeight: { ...host, property: 'height' },\n cursor: [avatar, host],\n hostDirection: { ...host, property: 'direction' },\n avatarTextColor: { ...avatar, property: 'color' },\n avatarBackgroundColor: { ...avatar, property: 'background-color' },\n editableIconColor: { ...editableBadge, property: 'color' },\n editableBorderColor: { ...editableBadge, property: 'border-color' },\n editableBackgroundColor: {\n ...editableBadge,\n property: 'background-color',\n },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawAvatar);\n","import { componentName, AvatarClass } from './AvatarClass';\nimport '@vaadin/avatar';\nimport '@vaadin/icon';\nimport '@vaadin/icons';\n\ncustomElements.define(componentName, AvatarClass);\n\nexport { AvatarClass, componentName };\n","import { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n stretchMixin,\n} from '@descope-ui/common/components-mixins';\nimport { IconClass } from '@descope-ui/descope-icon/class';\nimport { clickableMixin } from './clickableMixin';\n\nexport const componentName = getComponentName('button');\n\nconst resetStyles = `\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n`;\n\nconst iconStyles = `\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n`;\n\nconst editorOverrides = `vaadin-button::part(label) { pointer-events: none; }`;\n\nconst { host, label, slottedIcon } = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n slottedIcon: { selector: () => '::slotted(descope-icon)' },\n};\n\nlet loadingIndicatorStyles;\n\nexport const ButtonClass = compose(\n stretchMixin({ triggers: [{ attr: 'full-width', value: 'true' }] }),\n createStyleMixin({\n mappings: {\n hostWidth: { property: 'width' },\n hostMaxWidth: { ...host, property: 'max-width' },\n hostHeight: { property: 'height' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n fontFamily: {},\n fontWeight: {},\n\n cursor: {},\n backgroundColor: {},\n\n outlineOffset: {},\n outlineColor: {},\n outlineStyle: {},\n outlineWidth: {},\n\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-right', fallback: '0.875em' },\n { property: 'padding-left', fallback: '0.875em' },\n ],\n\n labelTextColor: { property: 'color' },\n iconColor: {\n selector: () => `::slotted(*)`,\n property: IconClass.cssVarList.fill,\n },\n labelTextDecoration: { ...label, property: 'text-decoration' },\n labelSpacing: { ...label, property: 'gap' },\n textAlign: { ...label, property: 'justify-content', fallback: 'center' },\n\n iconSize: [\n { ...slottedIcon, property: 'width' },\n { ...slottedIcon, property: 'height' },\n ],\n },\n }),\n clickableMixin,\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: ['', 'prefix', 'label', 'suffix'],\n wrappedEleName: 'vaadin-button',\n style: () => `\n\t\t\t${resetStyles}\n\t\t\t${iconStyles}\n\t\t\t${loadingIndicatorStyles}\n\t\t\t${editorOverrides}\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${ButtonClass.cssVarList.outlineWidth}) + var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width=\"true\"]) {\n width: var(${ButtonClass.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${ButtonClass.cssVarList.hostHeight}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square=\"true\"]:not([full-width=\"true\"]) {\n\t\t\t\twidth: calc(var(${ButtonClass.cssVarList.hostWidth}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,\n excludeAttrsSync: ['tabindex', 'class', 'style'],\n componentName,\n }),\n);\n\nconst { color, fontSize } = ButtonClass.cssVarList;\nloadingIndicatorStyles = `\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading=\"true\"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${color});\n\t\ttop: calc(50% - (var(${fontSize}) / 2));\n\t\tleft: calc(50% - (var(${fontSize}) / 2));\n\t\tborder-width: calc(var(${fontSize}) / 10);\n\t\twidth: var(${fontSize});\n\t\theight: var(${fontSize});\n\t}\n\t:host([disabled=\"true\"]),\n\t:host([loading=\"true\"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading=\"true\"]) ::part(prefix),\n\t:host([loading=\"true\"]) ::part(label) {\n\t\tvisibility: hidden;\n\t}\n`;\n","export const clickableMixin = (superclass) =>\n class ClickableMixinClass extends superclass {\n get isLoading() {\n return this.getAttribute('loading') === 'true';\n }\n\n click() {\n this.isLoading || super.click();\n }\n };\n","import { componentName, ButtonClass } from './ButtonClass';\nimport '@vaadin/button';\n\ncustomElements.define(componentName, ButtonClass);\n\nexport { ButtonClass, componentName };\n","import {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n draggableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { ImageClass } from '@descope-ui/descope-image/class';\nimport { compose } from '@descope-ui/common/utils';\n\nexport const componentName = getComponentName('icon');\n\nexport const IconClass = compose(\n createStyleMixin({\n mappings: {\n fill: [{}, { property: ImageClass.cssVarList.fill }],\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'descope-image',\n style: () => `\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n max-height: 100%;\n }\n `,\n excludeAttrsSync: ['tabindex', 'class', 'style', 'st-height', 'st-width'],\n componentName,\n }),\n);\n"," \nimport {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { createImage } from './helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('image');\n\nconst srcAttrs = ['src', 'src-dark'];\n\nclass RawImage extends createBaseClass({\n componentName,\n baseSelector: 'slot',\n}) {\n static get observedAttributes() {\n return srcAttrs;\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<slot></slot>\n\t`;\n\n injectStyle(\n `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n :host > slot {\n width: 100%;\n height: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n ::slotted(*) {\n width: 100%;\n\t\t\t}\n\n .hidden {\n display: none;\n }\n `,\n this,\n );\n }\n\n init() {\n super.init?.();\n this.toggleVisibility(this.getSrc);\n }\n\n onThemeChange() {\n this.renderImage();\n }\n\n toggleVisibility(isVisible) {\n if (isVisible) {\n this.classList.remove('hidden');\n } else {\n this.classList.add('hidden');\n }\n }\n\n get altText() {\n return this.getAttribute('alt') || '';\n }\n\n get legacySrc() {\n return this.getAttribute('src');\n }\n\n get themeSrc() {\n return this.getAttribute(`src-${this.currentThemeName}`);\n }\n\n get getSrc() {\n return this.themeSrc || this.legacySrc;\n }\n\n // in order to fill an SVG with `currentColor` override all of its `fill` and `path` nodes\n // with the value from the `st-fill` attribute\n \n updateFillColor(node) {\n // set fill to root node and all its relevant selectors\n const elementsToReplace = [node, ...node.querySelectorAll('*[fill]')];\n\n elementsToReplace.forEach((ele) => {\n ele.setAttribute(\n 'fill',\n `var(${ImageClass.cssVarList.fill}, ${ele.getAttribute('fill') || \"''\"})`,\n );\n });\n }\n\n renderImage() {\n this.toggleVisibility(this.getSrc);\n\n createImage(this.getSrc, this.altText).then((res) => {\n this.innerHTML = '';\n if (res) {\n this.updateFillColor(res);\n this.appendChild(res);\n }\n });\n }\n\n // render only when src attribute matches current theme\n shouldRender(src) {\n const srcVal = this.getAttribute(src);\n return this.getSrc === srcVal;\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue === newValue) return;\n\n if (this.shouldRender(attrName)) {\n this.renderImage();\n }\n }\n}\n\nexport const ImageClass = compose(\n createStyleMixin({\n mappings: {\n fill: {},\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawImage);\n","import DOMPurify from 'dompurify';\n\nconst getFileExtension = (path) => {\n const match = path.match(/\\.([0-9a-z]+)(?:[\\\\?#]|$)/i);\n return match ? match[1] : null;\n};\n\nconst base64Prefix = 'data:image/svg+xml;base64,';\n\nconst isBase64Svg = (src) => src.startsWith(base64Prefix);\n\nconst createImgEle = (src, altText) => {\n const ele = document.createElement('img');\n ele.setAttribute('src', src);\n ele.setAttribute('alt', altText);\n return ele;\n};\n\nconst createSvgEle = (text) => {\n // we want to purify the SVG to avoid XSS attacks\n const clean = DOMPurify.sanitize(text, {\n USE_PROFILES: { svg: true, svgFilters: true },\n // allow image to render\n ADD_TAGS: ['image'],\n // forbid interactiviy via `use` tags (which are sanitized by default)\n FORBID_TAGS: ['defs']\n });\n\n const parser = new DOMParser();\n const ele = parser\n .parseFromString(clean, 'image/svg+xml')\n .querySelector('svg');\n return ele;\n};\n\nexport const createImage = async (src, altText) => {\n try {\n let ele;\n if (isBase64Svg(src)) {\n // handle base64 source\n const svgXml = atob(src.slice(base64Prefix.length));\n ele = createSvgEle(svgXml);\n } else if (getFileExtension(src) === 'svg') {\n // handle urls\n const fetchedSrc = await fetch(src);\n const text = await fetchedSrc.text();\n ele = createSvgEle(text);\n } else {\n // handle binary\n ele = createImgEle(src, altText);\n }\n\n ele.style.setProperty('max-width', '100%');\n ele.style.setProperty('max-height', '100%');\n\n return ele;\n } catch {\n return null;\n }\n};\n","import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n activeableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('list-item');\n\nconst customMixin = (superclass) =>\n class ListItemMixinClass extends superclass {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <slot></slot>\n `;\n\n injectStyle(\n `\n slot {\n width: 100%;\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n }\n :host {\n display: block;\n }\n `,\n this,\n );\n }\n };\n\nexport const ListItemClass = compose(\n createStyleMixin({\n mappings: {\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-left' },\n { property: 'padding-right' },\n ],\n backgroundColor: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n borderRadius: {},\n outline: {},\n cursor: {},\n gap: {},\n maxWidth: { selector: () => ':host' },\n alignItems: {},\n flexDirection: {},\n transition: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n customMixin,\n activeableMixin,\n)(createBaseClass({ componentName, baseSelector: 'slot' }));\n","import { componentName, ListItemClass } from './ListItemClass';\n\ncustomElements.define(componentName, ListItemClass);\n\nexport { ListItemClass, 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 observeChildren,\n} from '@descope-ui/common/components-helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\nimport { ListItemClass } from '@descope-ui/descope-list-item/class';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('list');\n\nclass RawList extends createBaseClass({\n componentName,\n baseSelector: '.wrapper',\n}) {\n static get observedAttributes() {\n return ['variant', 'readonly'];\n }\n\n constructor() {\n super();\n\n 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`;\n\n injectStyle(\n `\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 `,\n this,\n );\n }\n\n get items() {\n return this.shadowRoot.querySelector('slot').assignedElements();\n }\n\n #handleEmptyState() {\n if (this.items.length === 0) {\n this.setAttribute('empty', 'true');\n } else {\n this.removeAttribute('empty');\n }\n }\n\n get variant() {\n return this.getAttribute('variant') || 'list';\n }\n\n #handleItemsVariant() {\n this.items.forEach((item) => {\n let listItem = item;\n if (listItem.localName !== ListItemClass.componentName) {\n listItem = item.querySelector(ListItemClass.componentName);\n }\n\n const listItemVariant = this.variant === 'tiles' ? 'tile' : 'row';\n listItem?.setAttribute('variant', listItemVariant);\n });\n }\n\n init() {\n super.init?.();\n\n // we want new items to get the size\n observeChildren(this, () => {\n this.#handleEmptyState();\n this.#handleItemsVariant();\n this.#handleReadOnly();\n });\n }\n\n get isReadOnly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n #handleReadOnly() {\n this.items.forEach((item) => {\n if (this.isReadOnly) item.setAttribute('inert', '');\n else item.removeAttribute('inert');\n });\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n\n if (newValue === oldValue) return;\n\n if (name === 'variant') {\n this.#handleItemsVariant();\n } else if (name === 'readonly') {\n this.#handleReadOnly();\n }\n }\n}\n\nexport const ListClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n maxHeight: { selector: () => ':host' },\n minHeight: {},\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-left' },\n { property: 'padding-right' },\n ],\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontFamily: {},\n gap: {},\n\n backgroundColor: {},\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n boxShadow: {},\n gridTemplateColumns: {},\n maxItemsWidth: {\n selector: () => '::slotted(:not([slot]))',\n property: 'max-width',\n },\n minItemsWidth: {\n selector: () => '::slotted(:not([slot]))',\n property: 'min-width',\n },\n maxRowItems: {\n property: 'max-row-items',\n },\n itemsHorizontalAlign: {\n selector: () => '::slotted(*)',\n property: 'justify-self',\n },\n emptyStateTextColor: {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'color',\n },\n emptyStateTextFontFamily: {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'font-family',\n },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawList);\n","import '@descope-ui/descope-list-item';\n\nimport { componentName, ListClass } from './ListClass';\n\ncustomElements.define(componentName, ListClass);\n\nexport { ListClass, componentName };\n","import { compose } from '@descope-ui/common/utils';\nimport {\n limitAbbreviation,\n getComponentName,\n injectStyle,\n} from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n createDynamicDataMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { IconClass } from '@descope-ui/descope-icon/class';\nimport { TextClass } from '@descope-ui/descope-text/class';\nimport { ListClass } from '@descope-ui/descope-list/class';\nimport { ListItemClass } from '@descope-ui/descope-list-item/class';\n\nexport const componentName = getComponentName('outbound-apps');\n\nconst itemRenderer = (\n { name, description, logo, appId, isConnected },\n _,\n ref,\n) => {\n const action = isConnected ? 'disconnect' : 'connect';\n return `\n <descope-list-item>\n <descope-avatar\n ${logo ? `img=\"${logo}\"` : ''}\n ${name ? `display-name=\"${name}\" abbr=${limitAbbreviation(name)}` : ''}\n size=${ref.size}\n ${logo ? 'st-avatar-background-color=\"none\"' : ''}\n class=\"app-logo\"\n ></descope-avatar>\n\n <div class=\"content\">\n <descope-text\n class=\"app-title\"\n variant=\"subtitle1\"\n mode=\"primary\"\n >${name}</descope-text>\n ${\n description\n ? `\n <descope-text\n class=\"app-description\"\n variant=\"body2\"\n mode=\"primary\"\n >${description}</descope-text>\n `\n : ''\n }\n </div>\n <div class=\"controls\">\n <descope-button variant=\"link\" mode=\"primary\" size=${ref.size} data-action=\"${action}\" data-outbound-app-id=\"${appId}\" data-id=\"${action}\">\n ${isConnected ? ref.disconnectButtonLabel : ref.connectButtonLabel}\n </descope-button>\n </div>\n </descope-list-item>\n`;\n};\n\nconst BaseClass = createBaseClass({\n componentName,\n baseSelector: 'descope-list',\n});\n\nclass RawOutboundAppsClass extends BaseClass {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <descope-list>\n <slot name=\"empty-state\" slot=\"empty-state\"></slot>\n </descope-list>\n `;\n\n this.appsList = this.shadowRoot.querySelector('descope-list');\n\n injectStyle(\n `\n :host {\n width: 100%;\n }\n .controls {\n display: flex;\n min-width: 8em;\n justify-content: end;\n }\n .content {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n }\n .app-title,\n .app-description {\n display: flex;\n direction: inherit;\n }\n descope-list {\n display: block;\n }\n `,\n this,\n );\n }\n\n init() {\n super.init?.();\n\n this.appsList.itemRenderer = itemRenderer;\n\n this.appsList.addEventListener('click', this.onAppsListClick.bind(this));\n }\n\n get readonly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n onAppsListClick(e) {\n if (!this.readonly) {\n const id = e.srcElement.getAttribute('data-outbound-app-id');\n const action = e.srcElement.getAttribute('data-action');\n if (id && action) {\n this.dispatchEvent(\n new CustomEvent(`${action}-clicked`, {\n bubbles: true,\n detail: { id, action },\n }),\n );\n }\n }\n }\n\n get size() {\n return this.getAttribute('size') || 'sm';\n }\n\n get connectButtonLabel() {\n return this.getAttribute('connect-button-label') || 'Connect';\n }\n\n get disconnectButtonLabel() {\n return this.getAttribute('disconnect-button-label') || 'Disconnect';\n }\n}\n\nconst { host } = {\n host: { selector: () => ':host' },\n};\n\nexport const OutboundAppsClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n minHeight: { selector: () => ':host' },\n hostDirection: [\n { ...host, property: 'direction' },\n {\n selector: 'descope-list',\n property: 'direction',\n },\n {\n selector: 'descope-list-item',\n property: 'direction',\n },\n ],\n iconColor: {\n selector: () => ' descope-icon',\n property: IconClass.cssVarList.fill,\n },\n errorIconColor: {\n selector: () => ' descope-icon.error-icon',\n property: IconClass.cssVarList.fill,\n },\n fontSize: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.fontSize,\n },\n appLogoGap: {\n selector: () => ' .app-logo',\n property: 'margin-inline-end',\n },\n contentGap: {\n selector: () => ' .content',\n property: 'gap',\n },\n itemsTextAlign: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.textAlign,\n },\n itemCursor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.cursor,\n },\n itemOutline: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.outline,\n },\n itemBorderColor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.borderColor,\n },\n itemBackgroundColor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.backgroundColor,\n },\n listBorderWidth: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.borderWidth,\n },\n listBoxShadow: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.boxShadow,\n },\n listPadding: [\n {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.verticalPadding,\n },\n {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.horizontalPadding,\n },\n ],\n },\n }),\n draggableMixin,\n createDynamicDataMixin({\n itemRenderer,\n rerenderAttrsList: [\n 'size',\n 'connect-button-label',\n 'disconnect-button-label',\n ],\n }),\n componentNameValidationMixin,\n)(RawOutboundAppsClass);\n","import '@descope-ui/descope-list';\nimport '@descope-ui/descope-list-item';\nimport '@descope-ui/descope-text';\nimport '@descope-ui/descope-avatar';\nimport '@descope-ui/descope-button';\nimport { componentName, OutboundAppsClass } from './OutboundAppsClass';\n\ncustomElements.define(componentName, OutboundAppsClass);\n\nexport { OutboundAppsClass, componentName };\n","import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n stretchMixin,\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 `\n :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n `,\n this,\n );\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: [{ property: 'color' }],\n textLineHeight: { property: 'line-height' },\n textLetterSpacing: { property: 'letter-spacing' },\n textShadow: {},\n textAlign: {},\n textTransform: {},\n fontFamily: {},\n fontStyle: {},\n fontWeight: {},\n borderWidth: {},\n borderStyle: {},\n borderColor: {},\n },\n }),\n stretchMixin({ triggers: [{ attr: 'full-width', value: 'true' }] }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawText);\n","import { componentName, TextClass } from './TextClass';\n\ncustomElements.define(componentName, TextClass);\n\nexport { TextClass, componentName };\n"],"names":["componentName","RawAvatar","baseSelector","constructor","super","this","attachShadow","mode","innerHTML","avatarComponent","shadowRoot","querySelector","includeAttrs","mapAttrs","editableIcon","style","display","isEditable","getAttribute","host","editableBadge","avatar","selector","AvatarClass","mappings","hostWidth","property","hostHeight","cursor","hostDirection","avatarTextColor","avatarBackgroundColor","editableIconColor","editableBorderColor","editableBackgroundColor","customElements","define","label","slottedIcon","loadingIndicatorStyles","ButtonClass","triggers","attr","value","hostMaxWidth","fontSize","fontFamily","fontWeight","backgroundColor","outlineOffset","outlineColor","outlineStyle","outlineWidth","borderRadius","borderColor","borderStyle","borderWidth","verticalPadding","horizontalPadding","fallback","labelTextColor","iconColor","cssVarList","fill","labelTextDecoration","labelSpacing","textAlign","iconSize","slots","wrappedEleName","excludeAttrsSync","color","clickableMixin","superclass","isLoading","click","IconClass","height","width","srcAttrs","RawImage","observedAttributes","init","toggleVisibility","getSrc","onThemeChange","renderImage","isVisible","classList","remove","add","altText","legacySrc","themeSrc","currentThemeName","updateFillColor","node","querySelectorAll","forEach","ele","setAttribute","ImageClass","then","res","appendChild","shouldRender","src","srcVal","attributeChangedCallback","attrName","oldValue","newValue","createSvgEle","text","clean","sanitize","USE_PROFILES","svg","svgFilters","ADD_TAGS","FORBID_TAGS","DOMParser","parseFromString","createImage","async","startsWith","isBase64Svg","svgXml","atob","slice","base64Prefix","path","match","getFileExtension","fetchedSrc","fetch","document","createElement","createImgEle","setProperty","ListItemClass","outline","gap","maxWidth","alignItems","flexDirection","transition","RawList","items","assignedElements","length","removeAttribute","variant","item","listItem","localName","listItemVariant","isReadOnly","name","ListClass","maxHeight","minHeight","boxShadow","gridTemplateColumns","maxItemsWidth","minItemsWidth","maxRowItems","itemsHorizontalAlign","emptyStateTextColor","emptyStateTextFontFamily","itemRenderer","description","logo","appId","isConnected","_","ref","action","size","disconnectButtonLabel","connectButtonLabel","BaseClass","OutboundAppsClass","errorIconColor","TextClass","appLogoGap","contentGap","itemsTextAlign","itemCursor","itemOutline","itemBorderColor","itemBackgroundColor","listBorderWidth","listBoxShadow","listPadding","rerenderAttrsList","appsList","addEventListener","onAppsListClick","bind","readonly","e","id","srcElement","dispatchEvent","CustomEvent","bubbles","detail","RawText","hideWhenEmpty","hasChildren","childNodes","textColor","textLineHeight","textLetterSpacing","textShadow","textTransform","fontStyle"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"descope-outbound-apps.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-avatar/src/component/AvatarClass.js","webpack://@descope/web-components-ui/../components/descope-avatar/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/ButtonClass.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/clickableMixin.js","webpack://@descope/web-components-ui/../components/descope-button/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-icon/src/component/IconClass.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/ImageClass.js","webpack://@descope/web-components-ui/../components/descope-image/src/component/helpers.js","webpack://@descope/web-components-ui/../components/descope-list-item/src/component/ListItemClass.js","webpack://@descope/web-components-ui/../components/descope-list-item/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-list/src/component/ListClass.js","webpack://@descope/web-components-ui/../components/descope-list/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-outbound-apps/src/component/OutboundAppsClass.js","webpack://@descope/web-components-ui/../components/descope-outbound-apps/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"],"sourcesContent":["import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { compose } from '@descope-ui/common/utils';\nimport {\n forwardAttrs,\n getComponentName,\n injectStyle,\n observeAttributes,\n} from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('avatar');\nclass RawAvatar 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 <vaadin-avatar></vaadin-avatar>\n <div class=\"editableBadge\">\n <vaadin-icon icon=\"vaadin:pencil\"></vaadin-icon>\n </div>\n </div>\n\t\t`;\n\n injectStyle(`\n :host {\n\t\t\t\t\tdisplay: inline-flex;\n\t\t\t\t}\n\n .editableBadge {\n border: 1px solid;\n border-radius: 100%;\n height: fit-content;\n width: 25%;\n height: 25%;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 5%;\n box-sizing: border-box;\n position: absolute;\n bottom: 0;\n inset-inline-end: 0;\n }\n\n vaadin-icon {\n color: currentcolor;\n }\n\n vaadin-avatar {\n width: 100%;\n height: 100%;\n margin: 0;\n border: none\n }\n\n .wrapper {\n display: inline-flex;\n position: relative;\n width: 100%;\n height: 100%;\n }\n `, this);\n\n this.avatarComponent = this.shadowRoot.querySelector('vaadin-avatar');\n\n forwardAttrs(this, this.avatarComponent, {\n includeAttrs: ['display-name', 'img', 'abbr'],\n mapAttrs: { 'display-name': 'name' },\n });\n\n const editableIcon = this.shadowRoot.querySelector('.editableBadge');\n\n observeAttributes(\n this,\n () => {\n editableIcon.style.display = this.isEditable ? '' : 'none';\n },\n { includeAttrs: ['editable'] },\n );\n }\n\n get isEditable() {\n return this.getAttribute('editable') === 'true';\n }\n}\n\nconst { host, editableBadge, avatar } = {\n host: { selector: () => ':host' },\n editableBadge: { selector: '> .editableBadge' },\n avatar: { selector: 'vaadin-avatar' },\n};\n\nexport const AvatarClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: [\n { ...host, property: 'width' },\n { ...host, property: 'min-width' },\n ],\n hostHeight: { ...host, property: 'height' },\n cursor: [avatar, host],\n hostDirection: { ...host, property: 'direction' },\n avatarTextColor: { ...avatar, property: 'color' },\n avatarBackgroundColor: { ...avatar, property: 'background-color' },\n editableIconColor: { ...editableBadge, property: 'color' },\n editableBorderColor: { ...editableBadge, property: 'border-color' },\n editableBackgroundColor: {\n ...editableBadge,\n property: 'background-color',\n },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawAvatar);\n","import { componentName, AvatarClass } from './AvatarClass';\nimport '@vaadin/avatar';\nimport '@vaadin/icon';\nimport '@vaadin/icons';\n\ncustomElements.define(componentName, AvatarClass);\n\nexport { AvatarClass, componentName };\n","import { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n stretchMixin,\n} from '@descope-ui/common/components-mixins';\nimport { IconClass } from '@descope-ui/descope-icon/class';\nimport { clickableMixin } from './clickableMixin';\n\nexport const componentName = getComponentName('button');\n\nconst resetStyles = `\n\t:host {\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\tvaadin-button::before,\n\tvaadin-button::after {\n\t\topacity: 0;\n\t}\n\tvaadin-button {\n\t\tmargin: 0;\n\t\tmin-width: 0;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tbox-shadow: none;\n\t}\n\tvaadin-button::part(label) {\n\t\tpadding: 0;\n width: 100%;\n\t}\n\tvaadin-button::part(prefix) {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n`;\n\nconst iconStyles = `\n\tvaadin-button::part(prefix),\n\tvaadin-button::part(label) {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n`;\n\nconst editorOverrides = `vaadin-button::part(label) { pointer-events: none; }`;\n\nconst { host, label, slottedIcon } = {\n host: { selector: () => ':host' },\n label: { selector: '::part(label)' },\n slottedIcon: { selector: () => '::slotted(descope-icon)' },\n};\n\nlet loadingIndicatorStyles;\n\nexport const ButtonClass = compose(\n stretchMixin({ triggers: [{ attr: 'full-width', value: 'true' }] }),\n createStyleMixin({\n mappings: {\n hostWidth: { property: 'width' },\n hostMaxWidth: { ...host, property: 'max-width' },\n hostHeight: { property: 'height' },\n hostDirection: { ...host, property: 'direction' },\n fontSize: {},\n fontFamily: {},\n fontWeight: {},\n\n cursor: {},\n backgroundColor: {},\n\n outlineOffset: {},\n outlineColor: {},\n outlineStyle: {},\n outlineWidth: {},\n\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-right', fallback: '0.875em' },\n { property: 'padding-left', fallback: '0.875em' },\n ],\n\n labelTextColor: { property: 'color' },\n iconColor: {\n selector: () => `::slotted(*)`,\n property: IconClass.cssVarList.fill,\n },\n labelTextDecoration: { ...label, property: 'text-decoration' },\n labelSpacing: { ...label, property: 'gap' },\n textAlign: { ...label, property: 'justify-content', fallback: 'center' },\n\n iconSize: [\n { ...slottedIcon, property: 'width' },\n { ...slottedIcon, property: 'height' },\n ],\n },\n }),\n clickableMixin,\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: ['', 'prefix', 'label', 'suffix'],\n wrappedEleName: 'vaadin-button',\n style: () => `\n\t\t\t${resetStyles}\n\t\t\t${iconStyles}\n\t\t\t${loadingIndicatorStyles}\n\t\t\t${editorOverrides}\n\t\t\t:host {\n\t\t\t\tpadding: calc(var(${ButtonClass.cssVarList.outlineWidth}) + var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n :host([full-width=\"true\"]) {\n width: var(${ButtonClass.cssVarList.hostWidth});\n }\n\t\t\tvaadin-button {\n\t\t\t\theight: calc(var(${ButtonClass.cssVarList.hostHeight}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n\t\t\t}\n\t\t\t[square=\"true\"]:not([full-width=\"true\"]) {\n\t\t\t\twidth: calc(var(${ButtonClass.cssVarList.hostWidth}) - var(${ButtonClass.cssVarList.outlineWidth}) - var(${ButtonClass.cssVarList.outlineOffset}));\n padding: 0;\n\t\t\t}\n\t\t`,\n excludeAttrsSync: ['tabindex', 'class', 'style'],\n componentName,\n }),\n);\n\nconst { color, fontSize } = ButtonClass.cssVarList;\nloadingIndicatorStyles = `\n\t@keyframes spin {\n\t\t0% { -webkit-transform: rotate(0deg); }\n\t\t100% { -webkit-transform: rotate(360deg); }\n\t}\n\t:host([loading=\"true\"]) ::before {\n\t\tanimation: spin 2s linear infinite;\n\t\tposition: absolute;\n\t\tcontent: '';\n\t\tz-index: 1;\n\t\tbox-sizing: border-box;\n\t\tborder-radius: 50%;\n\t\tborder-bottom-color: transparent;\n\t\tborder-left-color: transparent;\n\t\tborder-style: solid;\n\t\tcolor: var(${color});\n\t\ttop: calc(50% - (var(${fontSize}) / 2));\n\t\tleft: calc(50% - (var(${fontSize}) / 2));\n\t\tborder-width: calc(var(${fontSize}) / 10);\n\t\twidth: var(${fontSize});\n\t\theight: var(${fontSize});\n\t}\n\t:host([disabled=\"true\"]),\n\t:host([loading=\"true\"]) {\n\t\tpointer-events: none;\n\t}\n\t:host([loading=\"true\"]) ::part(prefix),\n\t:host([loading=\"true\"]) ::part(label) {\n\t\tvisibility: hidden;\n\t}\n`;\n","export const clickableMixin = (superclass) =>\n class ClickableMixinClass extends superclass {\n get isLoading() {\n return this.getAttribute('loading') === 'true';\n }\n\n click() {\n this.isLoading || super.click();\n }\n };\n","import { componentName, ButtonClass } from './ButtonClass';\nimport '@vaadin/button';\n\ncustomElements.define(componentName, ButtonClass);\n\nexport { ButtonClass, componentName };\n","import {\n componentNameValidationMixin,\n createProxy,\n createStyleMixin,\n draggableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { ImageClass } from '@descope-ui/descope-image/class';\nimport { compose } from '@descope-ui/common/utils';\n\nexport const componentName = getComponentName('icon');\n\nexport const IconClass = compose(\n createStyleMixin({\n mappings: {\n fill: [{}, { property: ImageClass.cssVarList.fill }],\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'descope-image',\n style: () => `\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n max-height: 100%;\n }\n `,\n excludeAttrsSync: ['tabindex', 'class', 'style', 'st-height', 'st-width'],\n componentName,\n }),\n);\n"," \nimport {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { createImage } from './helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\n\nexport const componentName = getComponentName('image');\n\nconst srcAttrs = ['src', 'src-dark'];\n\nclass RawImage extends createBaseClass({\n componentName,\n baseSelector: 'slot',\n}) {\n static get observedAttributes() {\n return srcAttrs;\n }\n\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n\t\t<slot></slot>\n\t`;\n\n injectStyle(\n `\n\t\t\t:host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n :host > slot {\n width: 100%;\n height: 100%;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tdisplay: flex;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n ::slotted(*) {\n width: 100%;\n\t\t\t}\n\n .hidden {\n display: none;\n }\n `,\n this,\n );\n }\n\n init() {\n super.init?.();\n this.toggleVisibility(this.getSrc);\n }\n\n onThemeChange() {\n this.renderImage();\n }\n\n toggleVisibility(isVisible) {\n if (isVisible) {\n this.classList.remove('hidden');\n } else {\n this.classList.add('hidden');\n }\n }\n\n get altText() {\n return this.getAttribute('alt') || '';\n }\n\n get legacySrc() {\n return this.getAttribute('src');\n }\n\n get themeSrc() {\n return this.getAttribute(`src-${this.currentThemeName}`);\n }\n\n get getSrc() {\n return this.themeSrc || this.legacySrc;\n }\n\n // in order to fill an SVG with `currentColor` override all of its `fill` and `path` nodes\n // with the value from the `st-fill` attribute\n \n updateFillColor(node) {\n // set fill to root node and all its relevant selectors\n const elementsToReplace = [node, ...node.querySelectorAll('*[fill]')];\n\n elementsToReplace.forEach((ele) => {\n ele.setAttribute(\n 'fill',\n `var(${ImageClass.cssVarList.fill}, ${ele.getAttribute('fill') || \"''\"})`,\n );\n });\n }\n\n renderImage() {\n this.toggleVisibility(this.getSrc);\n\n createImage(this.getSrc, this.altText).then((res) => {\n this.innerHTML = '';\n if (res) {\n this.updateFillColor(res);\n this.appendChild(res);\n }\n });\n }\n\n // render only when src attribute matches current theme\n shouldRender(src) {\n const srcVal = this.getAttribute(src);\n return this.getSrc === srcVal;\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (oldValue === newValue) return;\n\n if (this.shouldRender(attrName)) {\n this.renderImage();\n }\n }\n}\n\nexport const ImageClass = compose(\n createStyleMixin({\n mappings: {\n fill: {},\n height: { selector: () => ':host' },\n width: { selector: () => ':host' },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawImage);\n","import DOMPurify from 'dompurify';\n\nconst getFileExtension = (path) => {\n const match = path.match(/\\.([0-9a-z]+)(?:[\\\\?#]|$)/i);\n return match ? match[1] : null;\n};\n\nconst base64Prefix = 'data:image/svg+xml;base64,';\n\nconst isBase64Svg = (src) => src.startsWith(base64Prefix);\n\nconst createImgEle = (src, altText) => {\n const ele = document.createElement('img');\n ele.setAttribute('src', src);\n ele.setAttribute('alt', altText);\n return ele;\n};\n\nconst createSvgEle = (text) => {\n // we want to purify the SVG to avoid XSS attacks\n const clean = DOMPurify.sanitize(text, {\n USE_PROFILES: { svg: true, svgFilters: true },\n // allow image to render\n ADD_TAGS: ['image'],\n // forbid interactiviy via `use` tags (which are sanitized by default)\n FORBID_TAGS: ['defs']\n });\n\n const parser = new DOMParser();\n const ele = parser\n .parseFromString(clean, 'image/svg+xml')\n .querySelector('svg');\n return ele;\n};\n\nexport const createImage = async (src, altText) => {\n try {\n let ele;\n if (isBase64Svg(src)) {\n // handle base64 source\n const svgXml = atob(src.slice(base64Prefix.length));\n ele = createSvgEle(svgXml);\n } else if (getFileExtension(src) === 'svg') {\n // handle urls\n const fetchedSrc = await fetch(src);\n const text = await fetchedSrc.text();\n ele = createSvgEle(text);\n } else {\n // handle binary\n ele = createImgEle(src, altText);\n }\n\n ele.style.setProperty('max-width', '100%');\n ele.style.setProperty('max-height', '100%');\n\n return ele;\n } catch {\n return null;\n }\n};\n","import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n activeableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('list-item');\n\nconst customMixin = (superclass) =>\n class ListItemMixinClass extends superclass {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <slot></slot>\n `;\n\n injectStyle(\n `\n slot {\n width: 100%;\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n }\n :host {\n display: block;\n }\n `,\n this,\n );\n }\n };\n\nexport const ListItemClass = compose(\n createStyleMixin({\n mappings: {\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-left' },\n { property: 'padding-right' },\n ],\n backgroundColor: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n borderRadius: {},\n outline: {},\n cursor: {},\n gap: {},\n maxWidth: { selector: () => ':host' },\n alignItems: {},\n flexDirection: {},\n transition: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n customMixin,\n activeableMixin,\n)(createBaseClass({ componentName, baseSelector: 'slot' }));\n","import { componentName, ListItemClass } from './ListItemClass';\n\ncustomElements.define(componentName, ListItemClass);\n\nexport { ListItemClass, 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 observeChildren,\n} from '@descope-ui/common/components-helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\nimport { ListItemClass } from '@descope-ui/descope-list-item/class';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('list');\n\nclass RawList extends createBaseClass({\n componentName,\n baseSelector: '.wrapper',\n}) {\n static get observedAttributes() {\n return ['variant', 'readonly'];\n }\n\n constructor() {\n super();\n\n 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`;\n\n injectStyle(\n `\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 `,\n this,\n );\n }\n\n get items() {\n return this.shadowRoot.querySelector('slot').assignedElements();\n }\n\n #handleEmptyState() {\n if (this.items.length === 0) {\n this.setAttribute('empty', 'true');\n } else {\n this.removeAttribute('empty');\n }\n }\n\n get variant() {\n return this.getAttribute('variant') || 'list';\n }\n\n #handleItemsVariant() {\n this.items.forEach((item) => {\n let listItem = item;\n if (listItem.localName !== ListItemClass.componentName) {\n listItem = item.querySelector(ListItemClass.componentName);\n }\n\n const listItemVariant = this.variant === 'tiles' ? 'tile' : 'row';\n listItem?.setAttribute('variant', listItemVariant);\n });\n }\n\n init() {\n super.init?.();\n\n // we want new items to get the size\n observeChildren(this, () => {\n this.#handleEmptyState();\n this.#handleItemsVariant();\n this.#handleReadOnly();\n });\n }\n\n get isReadOnly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n #handleReadOnly() {\n this.items.forEach((item) => {\n if (this.isReadOnly) item.setAttribute('inert', '');\n else item.removeAttribute('inert');\n });\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n\n if (newValue === oldValue) return;\n\n if (name === 'variant') {\n this.#handleItemsVariant();\n } else if (name === 'readonly') {\n this.#handleReadOnly();\n }\n }\n}\n\nexport const ListClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n maxHeight: { selector: () => ':host' },\n minHeight: {},\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-left' },\n { property: 'padding-right' },\n ],\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontFamily: {},\n gap: {},\n\n backgroundColor: {},\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n boxShadow: {},\n gridTemplateColumns: {},\n maxItemsWidth: {\n selector: () => '::slotted(:not([slot]))',\n property: 'max-width',\n },\n minItemsWidth: {\n selector: () => '::slotted(:not([slot]))',\n property: 'min-width',\n },\n maxRowItems: {\n property: 'max-row-items',\n },\n itemsHorizontalAlign: {\n selector: () => '::slotted(*)',\n property: 'justify-self',\n },\n emptyStateTextColor: {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'color',\n },\n emptyStateTextFontFamily: {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'font-family',\n },\n // allow overriding empty state height and padding from parent list components:\n emptyStateVerticalPadding: [\n {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'padding-top',\n },\n {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'padding-bottom',\n },\n ],\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawList);\n","import '@descope-ui/descope-list-item';\n\nimport { componentName, ListClass } from './ListClass';\n\ncustomElements.define(componentName, ListClass);\n\nexport { ListClass, componentName };\n","import { compose } from '@descope-ui/common/utils';\nimport {\n limitAbbreviation,\n getComponentName,\n injectStyle,\n} from '@descope-ui/common/components-helpers';\nimport {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n createDynamicDataMixin,\n} from '@descope-ui/common/components-mixins';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\nimport { IconClass } from '@descope-ui/descope-icon/class';\nimport { TextClass } from '@descope-ui/descope-text/class';\nimport { ListClass } from '@descope-ui/descope-list/class';\nimport { ListItemClass } from '@descope-ui/descope-list-item/class';\n\nexport const componentName = getComponentName('outbound-apps');\n\nconst itemRenderer = (\n { name, description, logo, appId, isConnected },\n _,\n ref,\n) => {\n const action = isConnected ? 'disconnect' : 'connect';\n return `\n <descope-list-item>\n <descope-avatar\n ${logo ? `img=\"${logo}\"` : ''}\n ${name ? `display-name=\"${name}\" abbr=${limitAbbreviation(name)}` : ''}\n size=${ref.size}\n ${logo ? 'st-avatar-background-color=\"none\"' : ''}\n class=\"app-logo\"\n ></descope-avatar>\n\n <div class=\"content\">\n <descope-text\n class=\"app-title\"\n variant=\"subtitle1\"\n mode=\"primary\"\n >${name}</descope-text>\n ${\n description\n ? `\n <descope-text\n class=\"app-description\"\n variant=\"body2\"\n mode=\"primary\"\n >${description}</descope-text>\n `\n : ''\n }\n </div>\n <div class=\"controls\">\n <descope-button variant=\"link\" mode=\"primary\" size=${ref.size} data-action=\"${action}\" data-outbound-app-id=\"${appId}\" data-id=\"${action}\">\n ${isConnected ? ref.disconnectButtonLabel : ref.connectButtonLabel}\n </descope-button>\n </div>\n </descope-list-item>\n`;\n};\n\nconst BaseClass = createBaseClass({\n componentName,\n baseSelector: 'descope-list',\n});\n\nclass RawOutboundAppsClass extends BaseClass {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <descope-list>\n <slot name=\"empty-state\" slot=\"empty-state\"></slot>\n </descope-list>\n `;\n\n this.appsList = this.shadowRoot.querySelector('descope-list');\n\n injectStyle(\n `\n :host {\n width: 100%;\n }\n .controls {\n display: flex;\n min-width: 8em;\n justify-content: end;\n }\n .content {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n }\n .app-title,\n .app-description {\n display: flex;\n direction: inherit;\n }\n descope-list {\n display: block;\n }\n `,\n this,\n );\n }\n\n init() {\n super.init?.();\n\n this.appsList.itemRenderer = itemRenderer;\n\n this.appsList.addEventListener('click', this.onAppsListClick.bind(this));\n }\n\n get readonly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n onAppsListClick(e) {\n if (!this.readonly) {\n const id = e.srcElement.getAttribute('data-outbound-app-id');\n const action = e.srcElement.getAttribute('data-action');\n if (id && action) {\n this.dispatchEvent(\n new CustomEvent(`${action}-clicked`, {\n bubbles: true,\n detail: { id, action },\n }),\n );\n }\n }\n }\n\n get size() {\n return this.getAttribute('size') || 'sm';\n }\n\n get connectButtonLabel() {\n return this.getAttribute('connect-button-label') || 'Connect';\n }\n\n get disconnectButtonLabel() {\n return this.getAttribute('disconnect-button-label') || 'Disconnect';\n }\n}\n\nconst { host } = {\n host: { selector: () => ':host' },\n};\n\nexport const OutboundAppsClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n minHeight: { selector: () => ':host' },\n hostDirection: [\n { ...host, property: 'direction' },\n {\n selector: 'descope-list',\n property: 'direction',\n },\n {\n selector: 'descope-list-item',\n property: 'direction',\n },\n ],\n iconColor: {\n selector: () => ' descope-icon',\n property: IconClass.cssVarList.fill,\n },\n errorIconColor: {\n selector: () => ' descope-icon.error-icon',\n property: IconClass.cssVarList.fill,\n },\n fontSize: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.fontSize,\n },\n appLogoGap: {\n selector: () => ' .app-logo',\n property: 'margin-inline-end',\n },\n contentGap: {\n selector: () => ' .content',\n property: 'gap',\n },\n itemsTextAlign: {\n selector: TextClass.componentName,\n property: TextClass.cssVarList.textAlign,\n },\n itemCursor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.cursor,\n },\n itemOutline: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.outline,\n },\n itemBorderColor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.borderColor,\n },\n itemBackgroundColor: {\n selector: ListItemClass.componentName,\n property: ListItemClass.cssVarList.backgroundColor,\n },\n listBorderWidth: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.borderWidth,\n },\n listBoxShadow: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.boxShadow,\n },\n listPadding: [\n {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.verticalPadding,\n },\n {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.horizontalPadding,\n },\n ],\n emptyStateMinHeight: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.minHeight,\n },\n emptyStateVerticalPadding: {\n selector: () => ListClass.componentName,\n property: ListClass.cssVarList.emptyStateVerticalPadding,\n },\n },\n }),\n draggableMixin,\n createDynamicDataMixin({\n itemRenderer,\n rerenderAttrsList: [\n 'size',\n 'connect-button-label',\n 'disconnect-button-label',\n ],\n }),\n componentNameValidationMixin,\n)(RawOutboundAppsClass);\n","import '@descope-ui/descope-list';\nimport '@descope-ui/descope-list-item';\nimport '@descope-ui/descope-text';\nimport '@descope-ui/descope-avatar';\nimport '@descope-ui/descope-button';\nimport { componentName, OutboundAppsClass } from './OutboundAppsClass';\n\ncustomElements.define(componentName, OutboundAppsClass);\n\nexport { OutboundAppsClass, componentName };\n","import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n stretchMixin,\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 `\n :host {\n display: inline-block;\n line-height: 1em;\n }\n :host > slot {\n width: 100%;\n display: inline-block;\n }\n `,\n this,\n );\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: [{ property: 'color' }],\n textLineHeight: { property: 'line-height' },\n textLetterSpacing: { property: 'letter-spacing' },\n textShadow: {},\n textAlign: {},\n textTransform: {},\n fontFamily: {},\n fontStyle: {},\n fontWeight: {},\n borderWidth: {},\n borderStyle: {},\n borderColor: {},\n },\n }),\n stretchMixin({ triggers: [{ attr: 'full-width', value: 'true' }] }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawText);\n","import { componentName, TextClass } from './TextClass';\n\ncustomElements.define(componentName, TextClass);\n\nexport { TextClass, componentName };\n"],"names":["componentName","RawAvatar","baseSelector","constructor","super","this","attachShadow","mode","innerHTML","avatarComponent","shadowRoot","querySelector","includeAttrs","mapAttrs","editableIcon","style","display","isEditable","getAttribute","host","editableBadge","avatar","selector","AvatarClass","mappings","hostWidth","property","hostHeight","cursor","hostDirection","avatarTextColor","avatarBackgroundColor","editableIconColor","editableBorderColor","editableBackgroundColor","customElements","define","label","slottedIcon","loadingIndicatorStyles","ButtonClass","triggers","attr","value","hostMaxWidth","fontSize","fontFamily","fontWeight","backgroundColor","outlineOffset","outlineColor","outlineStyle","outlineWidth","borderRadius","borderColor","borderStyle","borderWidth","verticalPadding","horizontalPadding","fallback","labelTextColor","iconColor","cssVarList","fill","labelTextDecoration","labelSpacing","textAlign","iconSize","slots","wrappedEleName","excludeAttrsSync","color","clickableMixin","superclass","isLoading","click","IconClass","height","width","srcAttrs","RawImage","observedAttributes","init","toggleVisibility","getSrc","onThemeChange","renderImage","isVisible","classList","remove","add","altText","legacySrc","themeSrc","currentThemeName","updateFillColor","node","querySelectorAll","forEach","ele","setAttribute","ImageClass","then","res","appendChild","shouldRender","src","srcVal","attributeChangedCallback","attrName","oldValue","newValue","createSvgEle","text","clean","sanitize","USE_PROFILES","svg","svgFilters","ADD_TAGS","FORBID_TAGS","DOMParser","parseFromString","createImage","async","startsWith","isBase64Svg","svgXml","atob","slice","base64Prefix","path","match","getFileExtension","fetchedSrc","fetch","document","createElement","createImgEle","setProperty","ListItemClass","outline","gap","maxWidth","alignItems","flexDirection","transition","RawList","items","assignedElements","length","removeAttribute","variant","item","listItem","localName","listItemVariant","isReadOnly","name","ListClass","maxHeight","minHeight","boxShadow","gridTemplateColumns","maxItemsWidth","minItemsWidth","maxRowItems","itemsHorizontalAlign","emptyStateTextColor","emptyStateTextFontFamily","emptyStateVerticalPadding","itemRenderer","description","logo","appId","isConnected","_","ref","action","size","disconnectButtonLabel","connectButtonLabel","BaseClass","OutboundAppsClass","errorIconColor","TextClass","appLogoGap","contentGap","itemsTextAlign","itemCursor","itemOutline","itemBorderColor","itemBackgroundColor","listBorderWidth","listBoxShadow","listPadding","emptyStateMinHeight","rerenderAttrsList","appsList","addEventListener","onAppsListClick","bind","readonly","e","id","srcElement","dispatchEvent","CustomEvent","bubbles","detail","RawText","hideWhenEmpty","hasChildren","childNodes","textColor","textLineHeight","textLetterSpacing","textShadow","textTransform","fontStyle"],"sourceRoot":""}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/*! For license information please see descope-scopes-list-index-js.js.LICENSE.txt */
|
|
2
|
-
"use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[461,1674,4551,4838],{93895(t,e,r){r.d(e,{O:()=>l,T:()=>s});var o=r(88961),n=r(63200),i=r(25964),a=r(72270);const s=(0,i.xE)("list-item"),l=(0,n.Zz)((0,o.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:{}}}),o.VO,o.tQ,t=>class extends t{constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n <slot></slot>\n ",(0,i.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)}},o.y)((0,a.qu)({componentName:s,baseSelector:"slot"}))},24542(t,e,r){r.r(e),r.d(e,{ListItemClass:()=>o.O,componentName:()=>o.T});var o=r(93895);customElements.define(o.T,o.O)},7720(t,e,r){r.d(e,{T:()=>l,x:()=>p});var o=r(88961),n=r(63200),i=r(25964),a=r(93895),s=r(72270);const l=(0,i.xE)("list");class d extends((0,s.qu)({componentName:l,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,i.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!==a.O.componentName&&(e=t.querySelector(a.O.componentName));const r="tiles"===this.variant?"tile":"row";e?.setAttribute("variant",r)})}init(){super.init?.(),(0,i.Ge)(this,()=>{this.#t(),this.#e(),this.#r()})}get isReadOnly(){return"true"===this.getAttribute("readonly")}#r(){this.items.forEach(t=>{this.isReadOnly?t.setAttribute("inert",""):t.removeAttribute("inert")})}attributeChangedCallback(t,e,r){super.attributeChangedCallback?.(t,e,r),r!==e&&("variant"===t?this.#e():"readonly"===t&&this.#r())}}const p=(0,n.Zz)((0,o.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"}}}),o.VO,o.tQ)(d)},45400(t,e,r){r.r(e),r.d(e,{ListClass:()=>o.x,componentName:()=>o.T}),r(24542);var o=r(7720);customElements.define(o.T,o.x)},83150(t,e,r){r.d(e,{H:()=>f,T:()=>d}),r(76231);var o=r(97810),n=r(9696),i=r(79365),a=r(19847),s=r(47507),l=r(73551);const d=(0,o.xE)("switch-toggle"),{host:p,component:c,checkboxElement:h,checkboxSurface:m,checkboxLabel:u,requiredIndicator:y,helperText:b,errorMessage:g}={host:{selector:()=>":host"},requiredIndicator:{selector:'[required] vaadin-checkbox [slot="label"]:not(:empty)::part(content)::after'},component:{selector:"vaadin-checkbox"},checkboxElement:{selector:"vaadin-checkbox::part(checkbox)"},checkboxSurface:{selector:"vaadin-checkbox::part(checkbox)::after"},checkboxLabel:{selector:'vaadin-checkbox [slot="label"]:not(:empty)'},helperText:{selector:"::part(helper-text)"},errorMessage:{selector:"::part(error-message)"}},f=(0,n.Zz)((0,i.RF)({mappings:{hostWidth:{...p,property:"width"},hostDirection:{...p,property:"direction"},fontSize:[c,u,u],fontFamily:[u,b,g],labelTextColor:[{...u,property:"color"},{...u,property:"-webkit-text-fill-color"}],labelSpacing:{...u,property:"padding-inline-start"},labelLineHeight:{...u,property:"line-height"},labelFontWeight:{...u,property:"font-weight"},labelRequiredIndicator:{...y,property:"content"},errorMessageTextColor:{...g,property:"color"},errorMessageIcon:{...g,property:"background-image"},errorMessageIconSize:{...g,property:"background-size"},errorMessageIconPadding:{...g,property:"padding-inline-start"},errorMessageIconRepeat:{...g,property:"background-repeat"},errorMessageIconPosition:{...g,property:"background-position"},errorMessageFontSize:{...g,property:"font-size"},trackBorderWidth:{...h,property:"border-width"},trackBorderStyle:{...h,property:"border-style"},trackBorderColor:{...h,property:"border-color"},trackBackgroundColor:{...h,property:"background-color"},trackBorderRadius:{...h,property:"border-radius"},trackWidth:[{...h,property:"width"}],trackHeight:[{...m,property:"font-size"},{...h,property:"height"}],knobSize:[{...m,property:"width"},{...m,property:"height"}],knobTextColor:{...m,property:"color"},knobRadius:{...m,property:"border-radius"},knobTransitionDuration:{...m,property:"transition"},knobColor:{...m,property:"background-color"},knobTopOffset:{...m,property:"top"},knobLeftOffset:{...m,property:"left"},inputOutlineWidth:{...h,property:"outline-width"},inputOutlineOffset:{...h,property:"outline-offset"},inputOutlineColor:{...h,property:"outline-color"},inputOutlineStyle:{...h,property:"outline-style"}}}),i.VO,(0,i.OZ)({proxyProps:["value","selectionStart"]}),i.tQ,a.A)((0,i.tz)({slots:[],wrappedEleName:"vaadin-text-field",style:()=>`\n\t\t\t${(0,s.A)(f.cssVarList)}\n\t\t\t${(0,l.cy)(f.cssVarList)}\n\n :host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tmax-width: 100%;\n }\n\n :host ::part(error-message) {\n direction: ltr;\n }\n\n vaadin-text-field {\n width: 100%;\n }\n\n vaadin-text-field::part(input-field)::after {\n content: none;\n }\n\n descope-boolean-field-internal {\n\t\t\t\tpadding: 0;\n width: 100%;\n }\n\n vaadin-text-field::part(input-field) {\n cursor: pointer;\n }\n\n vaadin-checkbox {\n cursor: pointer;\n }\n\n vaadin-checkbox [slot="label"]:not(:empty) {\n cursor: pointer;\n\t\t\t}\n\n vaadin-checkbox::part(checkbox) {\n margin: 0;\n\t\t\t}\n\n vaadin-checkbox::part(checkbox)::before {\n content: '';\n\t\t\t}\n\n vaadin-checkbox[active]::part(checkbox) {\n\t\t\t\ttransform: none;\n\t\t\t}\n\n vaadin-checkbox::part(checkbox)::after {\n\t\t\t\tposition: absolute;\n\t\t\t\topacity: 1;\n\t\t\t\tcontent: '';\n\t\t\t}\n\t\t`,excludeAttrsSync:["label","tabindex","style"],componentName:d}))},21934(t,e,r){r.r(e),r.d(e,{SwitchToggleClass:()=>o.H,componentName:()=>o.T});var o=r(83150);r(67468),r(11284),r(55838),r(3274),customElements.define(o.T,o.H)},16942(t,e,r){r.r(e),r.d(e,{ScopesListClass:()=>y,componentName:()=>h});var o=r(25964),n=r(81365),i=r(9696),a=r(97810),s=r(79365);const l=()=>!0,d=t=>`<pre>${JSON.stringify(t,null,4)}</pre>`;var p=r(64321),c=r(83150);const h=(0,a.xE)("scopes-list"),m=["checkbox","switch"];class u extends((0,n.q)({componentName:h,baseSelector:"div"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n <div></div>\n\t\t",(0,o.fz)("\n :host {\n display: inline-flex;\n }\n\n div {\n display: flex;\n flex-direction: column;\n }\n ",this)}get isReadOnly(){return"true"===this.getAttribute("readonly")}get size(){return this.getAttribute("size")||"sm"}#o(){return Array.from(this.shadowRoot.querySelector("div").children)}reportValidity(){this.checkValidity()}checkValidity(){return this.data.every(t=>!t.required||this.value.includes(t.id))}get value(){return this.#o().filter(t=>t.checked).map(t=>t.getAttribute("data-id"))}set value(t=[]){this.#o().forEach(e=>{e.checked=t.includes(e.getAttribute("data-id"))})}get variant(){const t=this.getAttribute("variant");return m.includes(t)?t:m[0]}}const y=(0,i.Zz)((0,s.RF)({mappings:{hostWidth:{selector:()=>":host",property:"width"},hostDirection:[{selector:()=>":host",property:"direction"},{selector:()=>p.q.componentName,property:p.q.cssVarList.hostDirection},{selector:()=>c.H.componentName,property:c.H.cssVarList.hostDirection}],gap:{selector:()=>"div",property:"gap"},requiredInputBorderColor:[{selector:`${p.q.componentName}[required="true"]`,property:p.q.cssVarList.inputBorderColor},{selector:`${c.H.componentName}[required="true"]`,property:c.H.cssVarList.inputBorderColor}],requiredInputValueTextColor:[{selector:`${p.q.componentName}[required="true"]`,property:p.q.cssVarList.inputValueTextColor},{selector:`${c.H.componentName}[required="true"]`,property:c.H.cssVarList.knobColor}]}}),(({itemRenderer:t=d,validateSchema:e=l,slotName:r,rerenderAttrsList:o=[]})=>n=>class extends n{#n=[];#i(t){if(!e)return!0;const r=e(t);return!0===r||(console.error("Data schema validation failed",r||""),!1)}#a(){const t=r?`*[slot="${r}"]`:":not([slot])";this.baseElement.querySelectorAll(t).forEach(t=>t.remove())}#s(){this.#a(),this.data.forEach((e,r)=>{const o="string"==typeof(n=t(e,r,this))?(t=>{const e=document.createElement("template");return e.innerHTML=t,e})(n).content:n instanceof HTMLTemplateElement?n.content:(console.error("Invalid template",n),null);var n;this.baseElement.appendChild(o?.cloneNode(!0))})}set data(t){this.#i(t)&&(this.#n=t,this.#s())}get data(){return this.#n}init(){super.init?.(),(0,a.mx)(this,t=>{t.includes("data")?this.#l():this.#s()},{includeAttrs:[...o,"data"]})}#l(){const t=this.getAttribute("data");if(t)try{this.data=JSON.parse(t)}catch(e){console.warn("Invalid JSON data",t)}}})({itemRenderer:({id:t,desc:e,required:r=!1},o,n)=>{const i="checkbox"===n.variant?p.q:c.H;return`\n <${i.componentName}\n bordered="true"\n size=${n.size}\n label="${e}"\n data-id="${t}"\n readonly="${r||n.isReadOnly}"\n required="${r}"\n checked="true"\n ></${i.componentName}>\n`},rerenderAttrsList:["size","variant"]}),s.VO,s.tQ)(u);r(45400),r(49582),r(21934),customElements.define(h,y)},18330(t,e,r){r.d(e,{f:()=>n});var o=r(44099);class n extends o.r{constructor(t,e){super(t,"input","input",{initializer:(t,r)=>{r.value&&(t.value=r.value),r.type&&t.setAttribute("type",r.type),t.id=this.defaultId,"function"==typeof e&&e(t)},useUniqueId:!0})}}}}]);
|
|
2
|
+
"use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[461,1674,4551,4838],{93895(t,e,r){r.d(e,{O:()=>l,T:()=>s});var o=r(88961),n=r(63200),i=r(25964),a=r(72270);const s=(0,i.xE)("list-item"),l=(0,n.Zz)((0,o.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:{}}}),o.VO,o.tQ,t=>class extends t{constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n <slot></slot>\n ",(0,i.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)}},o.y)((0,a.qu)({componentName:s,baseSelector:"slot"}))},24542(t,e,r){r.r(e),r.d(e,{ListItemClass:()=>o.O,componentName:()=>o.T});var o=r(93895);customElements.define(o.T,o.O)},7720(t,e,r){r.d(e,{T:()=>l,x:()=>p});var o=r(88961),n=r(63200),i=r(25964),a=r(93895),s=r(72270);const l=(0,i.xE)("list");class d extends((0,s.qu)({componentName:l,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,i.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!==a.O.componentName&&(e=t.querySelector(a.O.componentName));const r="tiles"===this.variant?"tile":"row";e?.setAttribute("variant",r)})}init(){super.init?.(),(0,i.Ge)(this,()=>{this.#t(),this.#e(),this.#r()})}get isReadOnly(){return"true"===this.getAttribute("readonly")}#r(){this.items.forEach(t=>{this.isReadOnly?t.setAttribute("inert",""):t.removeAttribute("inert")})}attributeChangedCallback(t,e,r){super.attributeChangedCallback?.(t,e,r),r!==e&&("variant"===t?this.#e():"readonly"===t&&this.#r())}}const p=(0,n.Zz)((0,o.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"},emptyStateVerticalPadding:[{selector:()=>'slot[name="empty-state"]',property:"padding-top"},{selector:()=>'slot[name="empty-state"]',property:"padding-bottom"}]}}),o.VO,o.tQ)(d)},45400(t,e,r){r.r(e),r.d(e,{ListClass:()=>o.x,componentName:()=>o.T}),r(24542);var o=r(7720);customElements.define(o.T,o.x)},83150(t,e,r){r.d(e,{H:()=>f,T:()=>d}),r(76231);var o=r(97810),n=r(9696),i=r(79365),a=r(19847),s=r(47507),l=r(73551);const d=(0,o.xE)("switch-toggle"),{host:p,component:c,checkboxElement:h,checkboxSurface:m,checkboxLabel:u,requiredIndicator:y,helperText:b,errorMessage:g}={host:{selector:()=>":host"},requiredIndicator:{selector:'[required] vaadin-checkbox [slot="label"]:not(:empty)::part(content)::after'},component:{selector:"vaadin-checkbox"},checkboxElement:{selector:"vaadin-checkbox::part(checkbox)"},checkboxSurface:{selector:"vaadin-checkbox::part(checkbox)::after"},checkboxLabel:{selector:'vaadin-checkbox [slot="label"]:not(:empty)'},helperText:{selector:"::part(helper-text)"},errorMessage:{selector:"::part(error-message)"}},f=(0,n.Zz)((0,i.RF)({mappings:{hostWidth:{...p,property:"width"},hostDirection:{...p,property:"direction"},fontSize:[c,u,u],fontFamily:[u,b,g],labelTextColor:[{...u,property:"color"},{...u,property:"-webkit-text-fill-color"}],labelSpacing:{...u,property:"padding-inline-start"},labelLineHeight:{...u,property:"line-height"},labelFontWeight:{...u,property:"font-weight"},labelRequiredIndicator:{...y,property:"content"},errorMessageTextColor:{...g,property:"color"},errorMessageIcon:{...g,property:"background-image"},errorMessageIconSize:{...g,property:"background-size"},errorMessageIconPadding:{...g,property:"padding-inline-start"},errorMessageIconRepeat:{...g,property:"background-repeat"},errorMessageIconPosition:{...g,property:"background-position"},errorMessageFontSize:{...g,property:"font-size"},trackBorderWidth:{...h,property:"border-width"},trackBorderStyle:{...h,property:"border-style"},trackBorderColor:{...h,property:"border-color"},trackBackgroundColor:{...h,property:"background-color"},trackBorderRadius:{...h,property:"border-radius"},trackWidth:[{...h,property:"width"}],trackHeight:[{...m,property:"font-size"},{...h,property:"height"}],knobSize:[{...m,property:"width"},{...m,property:"height"}],knobTextColor:{...m,property:"color"},knobRadius:{...m,property:"border-radius"},knobTransitionDuration:{...m,property:"transition"},knobColor:{...m,property:"background-color"},knobTopOffset:{...m,property:"top"},knobLeftOffset:{...m,property:"left"},inputOutlineWidth:{...h,property:"outline-width"},inputOutlineOffset:{...h,property:"outline-offset"},inputOutlineColor:{...h,property:"outline-color"},inputOutlineStyle:{...h,property:"outline-style"}}}),i.VO,(0,i.OZ)({proxyProps:["value","selectionStart"]}),i.tQ,a.A)((0,i.tz)({slots:[],wrappedEleName:"vaadin-text-field",style:()=>`\n\t\t\t${(0,s.A)(f.cssVarList)}\n\t\t\t${(0,l.cy)(f.cssVarList)}\n\n :host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tmax-width: 100%;\n }\n\n :host ::part(error-message) {\n direction: ltr;\n }\n\n vaadin-text-field {\n width: 100%;\n }\n\n vaadin-text-field::part(input-field)::after {\n content: none;\n }\n\n descope-boolean-field-internal {\n\t\t\t\tpadding: 0;\n width: 100%;\n }\n\n vaadin-text-field::part(input-field) {\n cursor: pointer;\n }\n\n vaadin-checkbox {\n cursor: pointer;\n }\n\n vaadin-checkbox [slot="label"]:not(:empty) {\n cursor: pointer;\n\t\t\t}\n\n vaadin-checkbox::part(checkbox) {\n margin: 0;\n\t\t\t}\n\n vaadin-checkbox::part(checkbox)::before {\n content: '';\n\t\t\t}\n\n vaadin-checkbox[active]::part(checkbox) {\n\t\t\t\ttransform: none;\n\t\t\t}\n\n vaadin-checkbox::part(checkbox)::after {\n\t\t\t\tposition: absolute;\n\t\t\t\topacity: 1;\n\t\t\t\tcontent: '';\n\t\t\t}\n\t\t`,excludeAttrsSync:["label","tabindex","style"],componentName:d}))},21934(t,e,r){r.r(e),r.d(e,{SwitchToggleClass:()=>o.H,componentName:()=>o.T});var o=r(83150);r(67468),r(11284),r(55838),r(3274),customElements.define(o.T,o.H)},16942(t,e,r){r.r(e),r.d(e,{ScopesListClass:()=>y,componentName:()=>h});var o=r(25964),n=r(81365),i=r(9696),a=r(97810),s=r(79365);const l=()=>!0,d=t=>`<pre>${JSON.stringify(t,null,4)}</pre>`;var p=r(64321),c=r(83150);const h=(0,a.xE)("scopes-list"),m=["checkbox","switch"];class u extends((0,n.q)({componentName:h,baseSelector:"div"})){constructor(){super(),this.attachShadow({mode:"open"}).innerHTML="\n <div></div>\n\t\t",(0,o.fz)("\n :host {\n display: inline-flex;\n }\n\n div {\n display: flex;\n flex-direction: column;\n }\n ",this)}get isReadOnly(){return"true"===this.getAttribute("readonly")}get size(){return this.getAttribute("size")||"sm"}#o(){return Array.from(this.shadowRoot.querySelector("div").children)}reportValidity(){this.checkValidity()}checkValidity(){return this.data.every(t=>!t.required||this.value.includes(t.id))}get value(){return this.#o().filter(t=>t.checked).map(t=>t.getAttribute("data-id"))}set value(t=[]){this.#o().forEach(e=>{e.checked=t.includes(e.getAttribute("data-id"))})}get variant(){const t=this.getAttribute("variant");return m.includes(t)?t:m[0]}}const y=(0,i.Zz)((0,s.RF)({mappings:{hostWidth:{selector:()=>":host",property:"width"},hostDirection:[{selector:()=>":host",property:"direction"},{selector:()=>p.q.componentName,property:p.q.cssVarList.hostDirection},{selector:()=>c.H.componentName,property:c.H.cssVarList.hostDirection}],gap:{selector:()=>"div",property:"gap"},requiredInputBorderColor:[{selector:`${p.q.componentName}[required="true"]`,property:p.q.cssVarList.inputBorderColor},{selector:`${c.H.componentName}[required="true"]`,property:c.H.cssVarList.inputBorderColor}],requiredInputValueTextColor:[{selector:`${p.q.componentName}[required="true"]`,property:p.q.cssVarList.inputValueTextColor},{selector:`${c.H.componentName}[required="true"]`,property:c.H.cssVarList.knobColor}]}}),(({itemRenderer:t=d,validateSchema:e=l,slotName:r,rerenderAttrsList:o=[]})=>n=>class extends n{#n=[];#i(t){if(!e)return!0;const r=e(t);return!0===r||(console.error("Data schema validation failed",r||""),!1)}#a(){const t=r?`*[slot="${r}"]`:":not([slot])";this.baseElement.querySelectorAll(t).forEach(t=>t.remove())}#s(){this.#a(),this.data.forEach((e,r)=>{const o="string"==typeof(n=t(e,r,this))?(t=>{const e=document.createElement("template");return e.innerHTML=t,e})(n).content:n instanceof HTMLTemplateElement?n.content:(console.error("Invalid template",n),null);var n;this.baseElement.appendChild(o?.cloneNode(!0))})}set data(t){this.#i(t)&&(this.#n=t,this.#s())}get data(){return this.#n}init(){super.init?.(),(0,a.mx)(this,t=>{t.includes("data")?this.#l():this.#s()},{includeAttrs:[...o,"data"]})}#l(){const t=this.getAttribute("data");if(t)try{this.data=JSON.parse(t)}catch(e){console.warn("Invalid JSON data",t)}}})({itemRenderer:({id:t,desc:e,required:r=!1},o,n)=>{const i="checkbox"===n.variant?p.q:c.H;return`\n <${i.componentName}\n bordered="true"\n size=${n.size}\n label="${e}"\n data-id="${t}"\n readonly="${r||n.isReadOnly}"\n required="${r}"\n checked="true"\n ></${i.componentName}>\n`},rerenderAttrsList:["size","variant"]}),s.VO,s.tQ)(u);r(45400),r(49582),r(21934),customElements.define(h,y)},18330(t,e,r){r.d(e,{f:()=>n});var o=r(44099);class n extends o.r{constructor(t,e){super(t,"input","input",{initializer:(t,r)=>{r.value&&(t.value=r.value),r.type&&t.setAttribute("type",r.type),t.id=this.defaultId,"function"==typeof e&&e(t)},useUniqueId:!0})}}}}]);
|
|
3
3
|
//# sourceMappingURL=descope-scopes-list-index-js.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descope-scopes-list-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-list-item/src/component/ListItemClass.js","webpack://@descope/web-components-ui/../components/descope-list-item/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-list/src/component/ListClass.js","webpack://@descope/web-components-ui/../components/descope-list/src/component/index.js","webpack://@descope/web-components-ui/./src/components/boolean-fields/descope-switch-toggle/SwitchToggleClass.js","webpack://@descope/web-components-ui/./src/components/boolean-fields/descope-switch-toggle/index.js","webpack://@descope/web-components-ui/./src/mixins/createDynamicDataMixin.js","webpack://@descope/web-components-ui/./src/components/descope-scopes-list/ScopesListClass.js","webpack://@descope/web-components-ui/./src/components/descope-scopes-list/index.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/field-base/src/input-controller.js"],"sourcesContent":["import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n activeableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('list-item');\n\nconst customMixin = (superclass) =>\n class ListItemMixinClass extends superclass {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <slot></slot>\n `;\n\n injectStyle(\n `\n slot {\n width: 100%;\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n }\n :host {\n display: block;\n }\n `,\n this,\n );\n }\n };\n\nexport const ListItemClass = compose(\n createStyleMixin({\n mappings: {\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-left' },\n { property: 'padding-right' },\n ],\n backgroundColor: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n borderRadius: {},\n outline: {},\n cursor: {},\n gap: {},\n maxWidth: { selector: () => ':host' },\n alignItems: {},\n flexDirection: {},\n transition: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n customMixin,\n activeableMixin,\n)(createBaseClass({ componentName, baseSelector: 'slot' }));\n","import { componentName, ListItemClass } from './ListItemClass';\n\ncustomElements.define(componentName, ListItemClass);\n\nexport { ListItemClass, 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 observeChildren,\n} from '@descope-ui/common/components-helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\nimport { ListItemClass } from '@descope-ui/descope-list-item/class';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('list');\n\nclass RawList extends createBaseClass({\n componentName,\n baseSelector: '.wrapper',\n}) {\n static get observedAttributes() {\n return ['variant', 'readonly'];\n }\n\n constructor() {\n super();\n\n 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`;\n\n injectStyle(\n `\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 `,\n this,\n );\n }\n\n get items() {\n return this.shadowRoot.querySelector('slot').assignedElements();\n }\n\n #handleEmptyState() {\n if (this.items.length === 0) {\n this.setAttribute('empty', 'true');\n } else {\n this.removeAttribute('empty');\n }\n }\n\n get variant() {\n return this.getAttribute('variant') || 'list';\n }\n\n #handleItemsVariant() {\n this.items.forEach((item) => {\n let listItem = item;\n if (listItem.localName !== ListItemClass.componentName) {\n listItem = item.querySelector(ListItemClass.componentName);\n }\n\n const listItemVariant = this.variant === 'tiles' ? 'tile' : 'row';\n listItem?.setAttribute('variant', listItemVariant);\n });\n }\n\n init() {\n super.init?.();\n\n // we want new items to get the size\n observeChildren(this, () => {\n this.#handleEmptyState();\n this.#handleItemsVariant();\n this.#handleReadOnly();\n });\n }\n\n get isReadOnly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n #handleReadOnly() {\n this.items.forEach((item) => {\n if (this.isReadOnly) item.setAttribute('inert', '');\n else item.removeAttribute('inert');\n });\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n\n if (newValue === oldValue) return;\n\n if (name === 'variant') {\n this.#handleItemsVariant();\n } else if (name === 'readonly') {\n this.#handleReadOnly();\n }\n }\n}\n\nexport const ListClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n maxHeight: { selector: () => ':host' },\n minHeight: {},\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-left' },\n { property: 'padding-right' },\n ],\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontFamily: {},\n gap: {},\n\n backgroundColor: {},\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n boxShadow: {},\n gridTemplateColumns: {},\n maxItemsWidth: {\n selector: () => '::slotted(:not([slot]))',\n property: 'max-width',\n },\n minItemsWidth: {\n selector: () => '::slotted(:not([slot]))',\n property: 'min-width',\n },\n maxRowItems: {\n property: 'max-row-items',\n },\n itemsHorizontalAlign: {\n selector: () => '::slotted(*)',\n property: 'justify-self',\n },\n emptyStateTextColor: {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'color',\n },\n emptyStateTextFontFamily: {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'font-family',\n },\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawList);\n","import '@descope-ui/descope-list-item';\n\nimport { componentName, ListClass } from './ListClass';\n\ncustomElements.define(componentName, ListClass);\n\nexport { ListClass, componentName };\n","import { EnrichedTextClass } from '@descope-ui/descope-enriched-text/class';\nimport { getComponentName } from '../../../helpers/componentHelpers';\nimport { compose } from '../../../helpers';\nimport {\n createStyleMixin,\n proxyInputMixin,\n draggableMixin,\n componentNameValidationMixin,\n createProxy,\n} from '../../../mixins';\nimport { booleanFieldMixin } from '../booleanFieldMixin';\nimport commonStyles from '../commonStyles';\nimport { useHostExternalPadding } from '../../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('switch-toggle');\n\nconst {\n host,\n component,\n checkboxElement: track,\n checkboxSurface: knob,\n checkboxLabel,\n requiredIndicator,\n helperText,\n errorMessage,\n} = {\n host: { selector: () => ':host' },\n requiredIndicator: {\n selector: '[required] vaadin-checkbox [slot=\"label\"]:not(:empty)::part(content)::after',\n },\n component: { selector: 'vaadin-checkbox' },\n checkboxElement: { selector: 'vaadin-checkbox::part(checkbox)' },\n checkboxSurface: { selector: 'vaadin-checkbox::part(checkbox)::after' },\n checkboxLabel: { selector: 'vaadin-checkbox [slot=\"label\"]:not(:empty)' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const SwitchToggleClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n\n fontSize: [component, checkboxLabel, checkboxLabel],\n fontFamily: [checkboxLabel, helperText, errorMessage],\n\n labelTextColor: [\n { ...checkboxLabel, property: 'color' },\n { ...checkboxLabel, property: '-webkit-text-fill-color' },\n ],\n labelSpacing: { ...checkboxLabel, property: 'padding-inline-start' },\n labelLineHeight: { ...checkboxLabel, property: 'line-height' },\n labelFontWeight: { ...checkboxLabel, property: 'font-weight' },\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n\n errorMessageIcon: { ...errorMessage, property: 'background-image' },\n errorMessageIconSize: { ...errorMessage, property: 'background-size' },\n errorMessageIconPadding: { ...errorMessage, property: 'padding-inline-start' },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: { ...errorMessage, property: 'background-position' },\n errorMessageFontSize: { ...errorMessage, property: 'font-size' },\n\n trackBorderWidth: { ...track, property: 'border-width' },\n trackBorderStyle: { ...track, property: 'border-style' },\n trackBorderColor: { ...track, property: 'border-color' },\n trackBackgroundColor: { ...track, property: 'background-color' },\n trackBorderRadius: { ...track, property: 'border-radius' },\n trackWidth: [{ ...track, property: 'width' }],\n trackHeight: [\n { ...knob, property: 'font-size' },\n { ...track, property: 'height' },\n ],\n\n knobSize: [\n { ...knob, property: 'width' },\n { ...knob, property: 'height' },\n ],\n knobTextColor: { ...knob, property: 'color' },\n knobRadius: { ...knob, property: 'border-radius' },\n knobTransitionDuration: { ...knob, property: 'transition' },\n knobColor: { ...knob, property: 'background-color' },\n knobTopOffset: { ...knob, property: 'top' },\n knobLeftOffset: { ...knob, property: 'left' },\n\n inputOutlineWidth: { ...track, property: 'outline-width' },\n inputOutlineOffset: { ...track, property: 'outline-offset' },\n inputOutlineColor: { ...track, property: 'outline-color' },\n inputOutlineStyle: { ...track, property: 'outline-style' },\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n componentNameValidationMixin,\n booleanFieldMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-field',\n style: () => `\n\t\t\t${commonStyles(SwitchToggleClass.cssVarList)}\n\t\t\t${useHostExternalPadding(SwitchToggleClass.cssVarList)}\n\n :host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tmax-width: 100%;\n }\n\n :host ::part(error-message) {\n direction: ltr;\n }\n\n vaadin-text-field {\n width: 100%;\n }\n\n vaadin-text-field::part(input-field)::after {\n content: none;\n }\n\n descope-boolean-field-internal {\n\t\t\t\tpadding: 0;\n width: 100%;\n }\n\n vaadin-text-field::part(input-field) {\n cursor: pointer;\n }\n\n vaadin-checkbox {\n cursor: pointer;\n }\n\n vaadin-checkbox [slot=\"label\"]:not(:empty) {\n cursor: pointer;\n\t\t\t}\n\n vaadin-checkbox::part(checkbox) {\n margin: 0;\n\t\t\t}\n\n vaadin-checkbox::part(checkbox)::before {\n content: '';\n\t\t\t}\n\n vaadin-checkbox[active]::part(checkbox) {\n\t\t\t\ttransform: none;\n\t\t\t}\n\n vaadin-checkbox::part(checkbox)::after {\n\t\t\t\tposition: absolute;\n\t\t\t\topacity: 1;\n\t\t\t\tcontent: '';\n\t\t\t}\n\t\t`,\n excludeAttrsSync: ['label', 'tabindex', 'style'],\n componentName,\n })\n);\n","import { componentName, SwitchToggleClass } from './SwitchToggleClass';\nimport '@vaadin/checkbox';\nimport '@vaadin/text-field';\nimport '@descope-ui/descope-enriched-text';\nimport '../descope-boolean-field-internal';\n\ncustomElements.define(componentName, SwitchToggleClass);\n\nexport { SwitchToggleClass, componentName };\n","import { observeAttributes } from '../helpers/componentHelpers';\n\nconst defaultValidateSchema = () => true;\nconst defaultItemRenderer = (item) => `<pre>${JSON.stringify(item, null, 4)}</pre>`;\n\nconst createTemplate = (templateString) => {\n const template = document.createElement('template');\n template.innerHTML = templateString;\n\n return template;\n};\n\nconst getTemplateContent = (templateOrString) => {\n if (typeof templateOrString === 'string') {\n return createTemplate(templateOrString).content;\n }\n\n if (templateOrString instanceof HTMLTemplateElement) {\n return templateOrString.content;\n }\n\n // eslint-disable-next-line no-console\n console.error('Invalid template', templateOrString);\n return null;\n};\n\nexport const createDynamicDataMixin =\n ({\n itemRenderer = defaultItemRenderer,\n validateSchema = defaultValidateSchema,\n slotName,\n rerenderAttrsList = [],\n }) =>\n (superclass) =>\n class DynamicDataMixinClass extends superclass {\n #data = [];\n\n #validateSchema(data) {\n if (!validateSchema) return true;\n\n const validation = validateSchema(data);\n if (validation === true) return true;\n\n // eslint-disable-next-line no-console\n console.error('Data schema validation failed', validation || '');\n\n return false;\n }\n\n #removeOldItems() {\n const selector = slotName ? `*[slot=\"${slotName}\"]` : ':not([slot])';\n this.baseElement.querySelectorAll(selector).forEach((item) => item.remove());\n }\n\n #renderItems() {\n this.#removeOldItems();\n this.data.forEach((item, index) => {\n const content = getTemplateContent(itemRenderer(item, index, this));\n this.baseElement.appendChild(content?.cloneNode(true));\n });\n }\n\n set data(value) {\n if (this.#validateSchema(value)) {\n this.#data = value;\n this.#renderItems();\n }\n }\n\n get data() {\n return this.#data;\n }\n\n init() {\n super.init?.();\n\n observeAttributes(\n this,\n (attrs) => {\n if (attrs.includes('data')) this.#handleDataAttr();\n else this.#renderItems();\n },\n { includeAttrs: [...rerenderAttrsList, 'data'] }\n );\n }\n\n #handleDataAttr() {\n const dataAttr = this.getAttribute('data');\n\n if (!dataAttr) return;\n\n try {\n this.data = JSON.parse(dataAttr);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn('Invalid JSON data', dataAttr);\n }\n }\n };\n","import { injectStyle } from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport { componentNameValidationMixin, createStyleMixin, draggableMixin } from '../../mixins';\nimport { createDynamicDataMixin } from '../../mixins/createDynamicDataMixin';\nimport { CheckboxClass } from '../boolean-fields/descope-checkbox/CheckboxClass';\nimport { SwitchToggleClass } from '../boolean-fields/descope-switch-toggle/SwitchToggleClass';\n\nexport const componentName = getComponentName('scopes-list');\nconst variants = ['checkbox', 'switch'];\n\nconst itemRenderer = ({ id, desc, required = false }, _, ref) => {\n const ComponentClass = ref.variant === 'checkbox' ? CheckboxClass : SwitchToggleClass;\n\n return `\n <${ComponentClass.componentName}\n bordered=\"true\"\n size=${ref.size}\n label=\"${desc}\"\n data-id=\"${id}\"\n readonly=\"${required || ref.isReadOnly}\"\n required=\"${required}\"\n checked=\"true\"\n ></${ComponentClass.componentName}>\n`;\n};\n\nclass RawScopesList extends createBaseClass({ componentName, baseSelector: 'div' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div></div>\n\t\t`;\n\n injectStyle(\n `\n :host {\n display: inline-flex;\n }\n\n div {\n display: flex;\n flex-direction: column;\n }\n `,\n this\n );\n }\n\n get isReadOnly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n get size() {\n return this.getAttribute('size') || 'sm';\n }\n\n #getChildNodes() {\n return Array.from(this.shadowRoot.querySelector('div').children);\n }\n\n reportValidity() {\n this.checkValidity();\n }\n\n checkValidity() {\n return this.data.every((item) => !item.required || this.value.includes(item.id));\n }\n\n get value() {\n return this.#getChildNodes()\n .filter((node) => node.checked)\n .map((node) => node.getAttribute('data-id'));\n }\n\n set value(val = []) {\n this.#getChildNodes().forEach((node) => {\n node.checked = val.includes(node.getAttribute('data-id'));\n });\n }\n\n get variant() {\n const variant = this.getAttribute('variant');\n\n return variants.includes(variant) ? variant : variants[0];\n }\n}\n\nexport const ScopesListClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n hostDirection: [\n { selector: () => ':host', property: 'direction' },\n {\n selector: () => CheckboxClass.componentName,\n property: CheckboxClass.cssVarList.hostDirection,\n },\n {\n selector: () => SwitchToggleClass.componentName,\n property: SwitchToggleClass.cssVarList.hostDirection,\n },\n ],\n gap: { selector: () => 'div', property: 'gap' },\n requiredInputBorderColor: [\n {\n selector: `${CheckboxClass.componentName}[required=\"true\"]`,\n property: CheckboxClass.cssVarList.inputBorderColor,\n },\n {\n selector: `${SwitchToggleClass.componentName}[required=\"true\"]`,\n property: SwitchToggleClass.cssVarList.inputBorderColor,\n },\n ],\n requiredInputValueTextColor: [\n {\n selector: `${CheckboxClass.componentName}[required=\"true\"]`,\n property: CheckboxClass.cssVarList.inputValueTextColor,\n },\n {\n selector: `${SwitchToggleClass.componentName}[required=\"true\"]`,\n property: SwitchToggleClass.cssVarList.knobColor,\n },\n ],\n },\n }),\n createDynamicDataMixin({ itemRenderer, rerenderAttrsList: ['size', 'variant'] }),\n draggableMixin,\n componentNameValidationMixin\n)(RawScopesList);\n","import { componentName, ScopesListClass } from './ScopesListClass';\nimport '@descope-ui/descope-list';\nimport '../boolean-fields/descope-checkbox';\nimport '../boolean-fields/descope-switch-toggle';\n\ncustomElements.define(componentName, ScopesListClass);\n\nexport { ScopesListClass, 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 */\nimport { SlotController } from '@vaadin/component-base/src/slot-controller.js';\n\n/**\n * A controller to create and initialize slotted `<input>` element.\n */\nexport class InputController extends SlotController {\n constructor(host, callback) {\n super(host, 'input', 'input', {\n initializer: (node, host) => {\n if (host.value) {\n node.value = host.value;\n }\n if (host.type) {\n node.setAttribute('type', host.type);\n }\n\n // Ensure every instance has unique ID\n node.id = this.defaultId;\n\n if (typeof callback === 'function') {\n callback(node);\n }\n },\n useUniqueId: true,\n });\n }\n}\n"],"names":["componentName","ListItemClass","mappings","verticalPadding","property","horizontalPadding","backgroundColor","borderColor","borderStyle","borderWidth","borderRadius","outline","cursor","gap","maxWidth","selector","alignItems","flexDirection","transition","superclass","constructor","super","this","attachShadow","mode","innerHTML","baseSelector","customElements","define","RawList","observedAttributes","items","shadowRoot","querySelector","assignedElements","length","setAttribute","removeAttribute","variant","getAttribute","forEach","item","listItem","localName","listItemVariant","init","isReadOnly","attributeChangedCallback","name","oldValue","newValue","ListClass","hostWidth","maxHeight","minHeight","hostDirection","fontFamily","boxShadow","gridTemplateColumns","maxItemsWidth","minItemsWidth","maxRowItems","itemsHorizontalAlign","emptyStateTextColor","emptyStateTextFontFamily","host","component","checkboxElement","track","checkboxSurface","knob","checkboxLabel","requiredIndicator","helperText","errorMessage","SwitchToggleClass","fontSize","labelTextColor","labelSpacing","labelLineHeight","labelFontWeight","labelRequiredIndicator","errorMessageTextColor","errorMessageIcon","errorMessageIconSize","errorMessageIconPadding","errorMessageIconRepeat","errorMessageIconPosition","errorMessageFontSize","trackBorderWidth","trackBorderStyle","trackBorderColor","trackBackgroundColor","trackBorderRadius","trackWidth","trackHeight","knobSize","knobTextColor","knobRadius","knobTransitionDuration","knobColor","knobTopOffset","knobLeftOffset","inputOutlineWidth","inputOutlineOffset","inputOutlineColor","inputOutlineStyle","proxyProps","slots","wrappedEleName","style","cssVarList","excludeAttrsSync","defaultValidateSchema","defaultItemRenderer","JSON","stringify","variants","RawScopesList","createBaseClass","size","Array","from","children","reportValidity","checkValidity","data","every","required","value","includes","id","filter","node","checked","map","val","ScopesListClass","CheckboxClass","requiredInputBorderColor","inputBorderColor","requiredInputValueTextColor","inputValueTextColor","itemRenderer","validateSchema","slotName","rerenderAttrsList","validation","console","error","baseElement","querySelectorAll","remove","index","content","templateOrString","templateString","template","document","createElement","createTemplate","HTMLTemplateElement","appendChild","cloneNode","attrs","includeAttrs","dataAttr","parse","e","warn","createDynamicDataMixin","desc","_","ref","ComponentClass","InputController","callback","initializer","type","defaultId","useUniqueId"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"descope-scopes-list-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../components/descope-list-item/src/component/ListItemClass.js","webpack://@descope/web-components-ui/../components/descope-list-item/src/component/index.js","webpack://@descope/web-components-ui/../components/descope-list/src/component/ListClass.js","webpack://@descope/web-components-ui/../components/descope-list/src/component/index.js","webpack://@descope/web-components-ui/./src/components/boolean-fields/descope-switch-toggle/SwitchToggleClass.js","webpack://@descope/web-components-ui/./src/components/boolean-fields/descope-switch-toggle/index.js","webpack://@descope/web-components-ui/./src/mixins/createDynamicDataMixin.js","webpack://@descope/web-components-ui/./src/components/descope-scopes-list/ScopesListClass.js","webpack://@descope/web-components-ui/./src/components/descope-scopes-list/index.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/field-base/src/input-controller.js"],"sourcesContent":["import {\n createStyleMixin,\n draggableMixin,\n componentNameValidationMixin,\n activeableMixin,\n} from '@descope-ui/common/components-mixins';\nimport { compose } from '@descope-ui/common/utils';\nimport { getComponentName } from '@descope-ui/common/components-helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('list-item');\n\nconst customMixin = (superclass) =>\n class ListItemMixinClass extends superclass {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <slot></slot>\n `;\n\n injectStyle(\n `\n slot {\n width: 100%;\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n }\n :host {\n display: block;\n }\n `,\n this,\n );\n }\n };\n\nexport const ListItemClass = compose(\n createStyleMixin({\n mappings: {\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-left' },\n { property: 'padding-right' },\n ],\n backgroundColor: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n borderRadius: {},\n outline: {},\n cursor: {},\n gap: {},\n maxWidth: { selector: () => ':host' },\n alignItems: {},\n flexDirection: {},\n transition: {},\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n customMixin,\n activeableMixin,\n)(createBaseClass({ componentName, baseSelector: 'slot' }));\n","import { componentName, ListItemClass } from './ListItemClass';\n\ncustomElements.define(componentName, ListItemClass);\n\nexport { ListItemClass, 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 observeChildren,\n} from '@descope-ui/common/components-helpers';\nimport { injectStyle } from '@descope-ui/common/components-helpers';\nimport { ListItemClass } from '@descope-ui/descope-list-item/class';\nimport { createBaseClass } from '@descope-ui/common/base-classes';\n\nexport const componentName = getComponentName('list');\n\nclass RawList extends createBaseClass({\n componentName,\n baseSelector: '.wrapper',\n}) {\n static get observedAttributes() {\n return ['variant', 'readonly'];\n }\n\n constructor() {\n super();\n\n 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`;\n\n injectStyle(\n `\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 `,\n this,\n );\n }\n\n get items() {\n return this.shadowRoot.querySelector('slot').assignedElements();\n }\n\n #handleEmptyState() {\n if (this.items.length === 0) {\n this.setAttribute('empty', 'true');\n } else {\n this.removeAttribute('empty');\n }\n }\n\n get variant() {\n return this.getAttribute('variant') || 'list';\n }\n\n #handleItemsVariant() {\n this.items.forEach((item) => {\n let listItem = item;\n if (listItem.localName !== ListItemClass.componentName) {\n listItem = item.querySelector(ListItemClass.componentName);\n }\n\n const listItemVariant = this.variant === 'tiles' ? 'tile' : 'row';\n listItem?.setAttribute('variant', listItemVariant);\n });\n }\n\n init() {\n super.init?.();\n\n // we want new items to get the size\n observeChildren(this, () => {\n this.#handleEmptyState();\n this.#handleItemsVariant();\n this.#handleReadOnly();\n });\n }\n\n get isReadOnly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n #handleReadOnly() {\n this.items.forEach((item) => {\n if (this.isReadOnly) item.setAttribute('inert', '');\n else item.removeAttribute('inert');\n });\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n\n if (newValue === oldValue) return;\n\n if (name === 'variant') {\n this.#handleItemsVariant();\n } else if (name === 'readonly') {\n this.#handleReadOnly();\n }\n }\n}\n\nexport const ListClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n maxHeight: { selector: () => ':host' },\n minHeight: {},\n verticalPadding: [\n { property: 'padding-top' },\n { property: 'padding-bottom' },\n ],\n horizontalPadding: [\n { property: 'padding-left' },\n { property: 'padding-right' },\n ],\n hostDirection: { selector: () => ':host', property: 'direction' },\n fontFamily: {},\n gap: {},\n\n backgroundColor: {},\n borderRadius: {},\n borderColor: {},\n borderStyle: {},\n borderWidth: {},\n\n boxShadow: {},\n gridTemplateColumns: {},\n maxItemsWidth: {\n selector: () => '::slotted(:not([slot]))',\n property: 'max-width',\n },\n minItemsWidth: {\n selector: () => '::slotted(:not([slot]))',\n property: 'min-width',\n },\n maxRowItems: {\n property: 'max-row-items',\n },\n itemsHorizontalAlign: {\n selector: () => '::slotted(*)',\n property: 'justify-self',\n },\n emptyStateTextColor: {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'color',\n },\n emptyStateTextFontFamily: {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'font-family',\n },\n // allow overriding empty state height and padding from parent list components:\n emptyStateVerticalPadding: [\n {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'padding-top',\n },\n {\n selector: () => 'slot[name=\"empty-state\"]',\n property: 'padding-bottom',\n },\n ],\n },\n }),\n draggableMixin,\n componentNameValidationMixin,\n)(RawList);\n","import '@descope-ui/descope-list-item';\n\nimport { componentName, ListClass } from './ListClass';\n\ncustomElements.define(componentName, ListClass);\n\nexport { ListClass, componentName };\n","import { EnrichedTextClass } from '@descope-ui/descope-enriched-text/class';\nimport { getComponentName } from '../../../helpers/componentHelpers';\nimport { compose } from '../../../helpers';\nimport {\n createStyleMixin,\n proxyInputMixin,\n draggableMixin,\n componentNameValidationMixin,\n createProxy,\n} from '../../../mixins';\nimport { booleanFieldMixin } from '../booleanFieldMixin';\nimport commonStyles from '../commonStyles';\nimport { useHostExternalPadding } from '../../../helpers/themeHelpers/resetHelpers';\n\nexport const componentName = getComponentName('switch-toggle');\n\nconst {\n host,\n component,\n checkboxElement: track,\n checkboxSurface: knob,\n checkboxLabel,\n requiredIndicator,\n helperText,\n errorMessage,\n} = {\n host: { selector: () => ':host' },\n requiredIndicator: {\n selector: '[required] vaadin-checkbox [slot=\"label\"]:not(:empty)::part(content)::after',\n },\n component: { selector: 'vaadin-checkbox' },\n checkboxElement: { selector: 'vaadin-checkbox::part(checkbox)' },\n checkboxSurface: { selector: 'vaadin-checkbox::part(checkbox)::after' },\n checkboxLabel: { selector: 'vaadin-checkbox [slot=\"label\"]:not(:empty)' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n};\n\nexport const SwitchToggleClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n\n fontSize: [component, checkboxLabel, checkboxLabel],\n fontFamily: [checkboxLabel, helperText, errorMessage],\n\n labelTextColor: [\n { ...checkboxLabel, property: 'color' },\n { ...checkboxLabel, property: '-webkit-text-fill-color' },\n ],\n labelSpacing: { ...checkboxLabel, property: 'padding-inline-start' },\n labelLineHeight: { ...checkboxLabel, property: 'line-height' },\n labelFontWeight: { ...checkboxLabel, property: 'font-weight' },\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n\n errorMessageIcon: { ...errorMessage, property: 'background-image' },\n errorMessageIconSize: { ...errorMessage, property: 'background-size' },\n errorMessageIconPadding: { ...errorMessage, property: 'padding-inline-start' },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: { ...errorMessage, property: 'background-position' },\n errorMessageFontSize: { ...errorMessage, property: 'font-size' },\n\n trackBorderWidth: { ...track, property: 'border-width' },\n trackBorderStyle: { ...track, property: 'border-style' },\n trackBorderColor: { ...track, property: 'border-color' },\n trackBackgroundColor: { ...track, property: 'background-color' },\n trackBorderRadius: { ...track, property: 'border-radius' },\n trackWidth: [{ ...track, property: 'width' }],\n trackHeight: [\n { ...knob, property: 'font-size' },\n { ...track, property: 'height' },\n ],\n\n knobSize: [\n { ...knob, property: 'width' },\n { ...knob, property: 'height' },\n ],\n knobTextColor: { ...knob, property: 'color' },\n knobRadius: { ...knob, property: 'border-radius' },\n knobTransitionDuration: { ...knob, property: 'transition' },\n knobColor: { ...knob, property: 'background-color' },\n knobTopOffset: { ...knob, property: 'top' },\n knobLeftOffset: { ...knob, property: 'left' },\n\n inputOutlineWidth: { ...track, property: 'outline-width' },\n inputOutlineOffset: { ...track, property: 'outline-offset' },\n inputOutlineColor: { ...track, property: 'outline-color' },\n inputOutlineStyle: { ...track, property: 'outline-style' },\n },\n }),\n draggableMixin,\n proxyInputMixin({ proxyProps: ['value', 'selectionStart'] }),\n componentNameValidationMixin,\n booleanFieldMixin\n)(\n createProxy({\n slots: [],\n wrappedEleName: 'vaadin-text-field',\n style: () => `\n\t\t\t${commonStyles(SwitchToggleClass.cssVarList)}\n\t\t\t${useHostExternalPadding(SwitchToggleClass.cssVarList)}\n\n :host {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tmax-width: 100%;\n }\n\n :host ::part(error-message) {\n direction: ltr;\n }\n\n vaadin-text-field {\n width: 100%;\n }\n\n vaadin-text-field::part(input-field)::after {\n content: none;\n }\n\n descope-boolean-field-internal {\n\t\t\t\tpadding: 0;\n width: 100%;\n }\n\n vaadin-text-field::part(input-field) {\n cursor: pointer;\n }\n\n vaadin-checkbox {\n cursor: pointer;\n }\n\n vaadin-checkbox [slot=\"label\"]:not(:empty) {\n cursor: pointer;\n\t\t\t}\n\n vaadin-checkbox::part(checkbox) {\n margin: 0;\n\t\t\t}\n\n vaadin-checkbox::part(checkbox)::before {\n content: '';\n\t\t\t}\n\n vaadin-checkbox[active]::part(checkbox) {\n\t\t\t\ttransform: none;\n\t\t\t}\n\n vaadin-checkbox::part(checkbox)::after {\n\t\t\t\tposition: absolute;\n\t\t\t\topacity: 1;\n\t\t\t\tcontent: '';\n\t\t\t}\n\t\t`,\n excludeAttrsSync: ['label', 'tabindex', 'style'],\n componentName,\n })\n);\n","import { componentName, SwitchToggleClass } from './SwitchToggleClass';\nimport '@vaadin/checkbox';\nimport '@vaadin/text-field';\nimport '@descope-ui/descope-enriched-text';\nimport '../descope-boolean-field-internal';\n\ncustomElements.define(componentName, SwitchToggleClass);\n\nexport { SwitchToggleClass, componentName };\n","import { observeAttributes } from '../helpers/componentHelpers';\n\nconst defaultValidateSchema = () => true;\nconst defaultItemRenderer = (item) => `<pre>${JSON.stringify(item, null, 4)}</pre>`;\n\nconst createTemplate = (templateString) => {\n const template = document.createElement('template');\n template.innerHTML = templateString;\n\n return template;\n};\n\nconst getTemplateContent = (templateOrString) => {\n if (typeof templateOrString === 'string') {\n return createTemplate(templateOrString).content;\n }\n\n if (templateOrString instanceof HTMLTemplateElement) {\n return templateOrString.content;\n }\n\n // eslint-disable-next-line no-console\n console.error('Invalid template', templateOrString);\n return null;\n};\n\nexport const createDynamicDataMixin =\n ({\n itemRenderer = defaultItemRenderer,\n validateSchema = defaultValidateSchema,\n slotName,\n rerenderAttrsList = [],\n }) =>\n (superclass) =>\n class DynamicDataMixinClass extends superclass {\n #data = [];\n\n #validateSchema(data) {\n if (!validateSchema) return true;\n\n const validation = validateSchema(data);\n if (validation === true) return true;\n\n // eslint-disable-next-line no-console\n console.error('Data schema validation failed', validation || '');\n\n return false;\n }\n\n #removeOldItems() {\n const selector = slotName ? `*[slot=\"${slotName}\"]` : ':not([slot])';\n this.baseElement.querySelectorAll(selector).forEach((item) => item.remove());\n }\n\n #renderItems() {\n this.#removeOldItems();\n this.data.forEach((item, index) => {\n const content = getTemplateContent(itemRenderer(item, index, this));\n this.baseElement.appendChild(content?.cloneNode(true));\n });\n }\n\n set data(value) {\n if (this.#validateSchema(value)) {\n this.#data = value;\n this.#renderItems();\n }\n }\n\n get data() {\n return this.#data;\n }\n\n init() {\n super.init?.();\n\n observeAttributes(\n this,\n (attrs) => {\n if (attrs.includes('data')) this.#handleDataAttr();\n else this.#renderItems();\n },\n { includeAttrs: [...rerenderAttrsList, 'data'] }\n );\n }\n\n #handleDataAttr() {\n const dataAttr = this.getAttribute('data');\n\n if (!dataAttr) return;\n\n try {\n this.data = JSON.parse(dataAttr);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn('Invalid JSON data', dataAttr);\n }\n }\n };\n","import { injectStyle } from '@descope-ui/common/components-helpers';\nimport { createBaseClass } from '../../baseClasses/createBaseClass';\nimport { compose } from '../../helpers';\nimport { getComponentName } from '../../helpers/componentHelpers';\nimport { componentNameValidationMixin, createStyleMixin, draggableMixin } from '../../mixins';\nimport { createDynamicDataMixin } from '../../mixins/createDynamicDataMixin';\nimport { CheckboxClass } from '../boolean-fields/descope-checkbox/CheckboxClass';\nimport { SwitchToggleClass } from '../boolean-fields/descope-switch-toggle/SwitchToggleClass';\n\nexport const componentName = getComponentName('scopes-list');\nconst variants = ['checkbox', 'switch'];\n\nconst itemRenderer = ({ id, desc, required = false }, _, ref) => {\n const ComponentClass = ref.variant === 'checkbox' ? CheckboxClass : SwitchToggleClass;\n\n return `\n <${ComponentClass.componentName}\n bordered=\"true\"\n size=${ref.size}\n label=\"${desc}\"\n data-id=\"${id}\"\n readonly=\"${required || ref.isReadOnly}\"\n required=\"${required}\"\n checked=\"true\"\n ></${ComponentClass.componentName}>\n`;\n};\n\nclass RawScopesList extends createBaseClass({ componentName, baseSelector: 'div' }) {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div></div>\n\t\t`;\n\n injectStyle(\n `\n :host {\n display: inline-flex;\n }\n\n div {\n display: flex;\n flex-direction: column;\n }\n `,\n this\n );\n }\n\n get isReadOnly() {\n return this.getAttribute('readonly') === 'true';\n }\n\n get size() {\n return this.getAttribute('size') || 'sm';\n }\n\n #getChildNodes() {\n return Array.from(this.shadowRoot.querySelector('div').children);\n }\n\n reportValidity() {\n this.checkValidity();\n }\n\n checkValidity() {\n return this.data.every((item) => !item.required || this.value.includes(item.id));\n }\n\n get value() {\n return this.#getChildNodes()\n .filter((node) => node.checked)\n .map((node) => node.getAttribute('data-id'));\n }\n\n set value(val = []) {\n this.#getChildNodes().forEach((node) => {\n node.checked = val.includes(node.getAttribute('data-id'));\n });\n }\n\n get variant() {\n const variant = this.getAttribute('variant');\n\n return variants.includes(variant) ? variant : variants[0];\n }\n}\n\nexport const ScopesListClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { selector: () => ':host', property: 'width' },\n hostDirection: [\n { selector: () => ':host', property: 'direction' },\n {\n selector: () => CheckboxClass.componentName,\n property: CheckboxClass.cssVarList.hostDirection,\n },\n {\n selector: () => SwitchToggleClass.componentName,\n property: SwitchToggleClass.cssVarList.hostDirection,\n },\n ],\n gap: { selector: () => 'div', property: 'gap' },\n requiredInputBorderColor: [\n {\n selector: `${CheckboxClass.componentName}[required=\"true\"]`,\n property: CheckboxClass.cssVarList.inputBorderColor,\n },\n {\n selector: `${SwitchToggleClass.componentName}[required=\"true\"]`,\n property: SwitchToggleClass.cssVarList.inputBorderColor,\n },\n ],\n requiredInputValueTextColor: [\n {\n selector: `${CheckboxClass.componentName}[required=\"true\"]`,\n property: CheckboxClass.cssVarList.inputValueTextColor,\n },\n {\n selector: `${SwitchToggleClass.componentName}[required=\"true\"]`,\n property: SwitchToggleClass.cssVarList.knobColor,\n },\n ],\n },\n }),\n createDynamicDataMixin({ itemRenderer, rerenderAttrsList: ['size', 'variant'] }),\n draggableMixin,\n componentNameValidationMixin\n)(RawScopesList);\n","import { componentName, ScopesListClass } from './ScopesListClass';\nimport '@descope-ui/descope-list';\nimport '../boolean-fields/descope-checkbox';\nimport '../boolean-fields/descope-switch-toggle';\n\ncustomElements.define(componentName, ScopesListClass);\n\nexport { ScopesListClass, 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 */\nimport { SlotController } from '@vaadin/component-base/src/slot-controller.js';\n\n/**\n * A controller to create and initialize slotted `<input>` element.\n */\nexport class InputController extends SlotController {\n constructor(host, callback) {\n super(host, 'input', 'input', {\n initializer: (node, host) => {\n if (host.value) {\n node.value = host.value;\n }\n if (host.type) {\n node.setAttribute('type', host.type);\n }\n\n // Ensure every instance has unique ID\n node.id = this.defaultId;\n\n if (typeof callback === 'function') {\n callback(node);\n }\n },\n useUniqueId: true,\n });\n }\n}\n"],"names":["componentName","ListItemClass","mappings","verticalPadding","property","horizontalPadding","backgroundColor","borderColor","borderStyle","borderWidth","borderRadius","outline","cursor","gap","maxWidth","selector","alignItems","flexDirection","transition","superclass","constructor","super","this","attachShadow","mode","innerHTML","baseSelector","customElements","define","RawList","observedAttributes","items","shadowRoot","querySelector","assignedElements","length","setAttribute","removeAttribute","variant","getAttribute","forEach","item","listItem","localName","listItemVariant","init","isReadOnly","attributeChangedCallback","name","oldValue","newValue","ListClass","hostWidth","maxHeight","minHeight","hostDirection","fontFamily","boxShadow","gridTemplateColumns","maxItemsWidth","minItemsWidth","maxRowItems","itemsHorizontalAlign","emptyStateTextColor","emptyStateTextFontFamily","emptyStateVerticalPadding","host","component","checkboxElement","track","checkboxSurface","knob","checkboxLabel","requiredIndicator","helperText","errorMessage","SwitchToggleClass","fontSize","labelTextColor","labelSpacing","labelLineHeight","labelFontWeight","labelRequiredIndicator","errorMessageTextColor","errorMessageIcon","errorMessageIconSize","errorMessageIconPadding","errorMessageIconRepeat","errorMessageIconPosition","errorMessageFontSize","trackBorderWidth","trackBorderStyle","trackBorderColor","trackBackgroundColor","trackBorderRadius","trackWidth","trackHeight","knobSize","knobTextColor","knobRadius","knobTransitionDuration","knobColor","knobTopOffset","knobLeftOffset","inputOutlineWidth","inputOutlineOffset","inputOutlineColor","inputOutlineStyle","proxyProps","slots","wrappedEleName","style","cssVarList","excludeAttrsSync","defaultValidateSchema","defaultItemRenderer","JSON","stringify","variants","RawScopesList","createBaseClass","size","Array","from","children","reportValidity","checkValidity","data","every","required","value","includes","id","filter","node","checked","map","val","ScopesListClass","CheckboxClass","requiredInputBorderColor","inputBorderColor","requiredInputValueTextColor","inputValueTextColor","itemRenderer","validateSchema","slotName","rerenderAttrsList","validation","console","error","baseElement","querySelectorAll","remove","index","content","templateOrString","templateString","template","document","createElement","createTemplate","HTMLTemplateElement","appendChild","cloneNode","attrs","includeAttrs","dataAttr","parse","e","warn","createDynamicDataMixin","desc","_","ref","ComponentClass","InputController","callback","initializer","type","defaultId","useUniqueId"],"sourceRoot":""}
|