@descope/web-component 3.37.0 → 3.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/debugger-wc.js +1 -1
- package/dist/cjs/debugger-wc.js.map +1 -1
- package/dist/cjs/descope-wc/BaseDescopeWc.js +1 -1
- package/dist/cjs/descope-wc/BaseDescopeWc.js.map +1 -1
- package/dist/esm/debugger-wc.js +1 -1
- package/dist/esm/debugger-wc.js.map +1 -1
- package/dist/esm/descope-wc/BaseDescopeWc.js +1 -1
- package/dist/esm/descope-wc/BaseDescopeWc.js.map +1 -1
- package/dist/index.d.ts +42 -42
- package/dist/index.js +2 -2
- package/package.json +12 -7
- package/dist/cjs/descope-wc/initTemplate.js +0 -2
- package/dist/cjs/descope-wc/initTemplate.js.map +0 -1
- package/dist/esm/descope-wc/initTemplate.js +0 -2
- package/dist/esm/descope-wc/initTemplate.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseDescopeWc.js","sources":["../../../src/lib/descope-wc/BaseDescopeWc.ts"],"sourcesContent":["import { compose } from '@descope/sdk-helpers';\n// eslint-disable-next-line import/no-duplicates\nimport { staticResourcesMixin } from '@descope/sdk-mixins/static-resources-mixin';\n// eslint-disable-next-line import/no-duplicates\nimport { themeMixin } from '@descope/sdk-mixins/theme-mixin';\nimport createSdk from '@descope/web-js-sdk';\nimport {\n CONFIG_FILENAME,\n ELEMENTS_TO_IGNORE_ENTER_KEY_ON,\n FETCH_EXCEPTION_ERROR_CODE,\n PREV_VER_ASSETS_FOLDER,\n} from '../constants';\nimport {\n camelCase,\n clearRunIdsFromUrl,\n fetchContent,\n getContentUrl,\n getRunIdsFromUrl,\n handleUrlParams,\n State,\n} from '../helpers';\nimport {\n extractNestedAttribute,\n transformFlowInputFormData,\n} from '../helpers/flowInputs';\nimport { IsChanged } from '../helpers/state';\nimport { formMountMixin } from '../mixins';\nimport {\n AutoFocusOptions,\n DebuggerMessage,\n DebugState,\n DescopeUI,\n FlowConfig,\n FlowState,\n FlowStateUpdateFn,\n FlowStatus,\n ProjectConfiguration,\n SdkConfig,\n} from '../types';\nimport initTemplate from './initTemplate';\n\n// this is replaced in build time\ndeclare const BUILD_VERSION: string;\n\nconst BaseClass = compose(\n themeMixin,\n staticResourcesMixin,\n formMountMixin,\n)(HTMLElement);\n\n// this base class is responsible for WC initialization\nclass BaseDescopeWc extends BaseClass {\n static get observedAttributes() {\n return [\n 'project-id',\n 'flow-id',\n 'base-url',\n 'tenant',\n 'locale',\n 'debug',\n 'storage-prefix',\n 'preview',\n 'redirect-url',\n 'auto-focus',\n 'store-last-authenticated-user',\n 'refresh-cookie-name',\n 'keep-last-authenticated-user-after-logout',\n 'validate-on-blur',\n 'style-id',\n ];\n }\n\n // this is a way for extending the sdk config from outside\n static sdkConfigOverrides: Partial<SdkConfig> = {\n baseHeaders: {\n 'x-descope-sdk-name': 'web-component',\n 'x-descope-sdk-version': BUILD_VERSION,\n },\n };\n\n #init = false;\n\n flowStatus: FlowStatus = 'initial';\n\n loggerWrapper = {\n error: (message: string, description = '') => {\n this.logger.error(message, description, new Error());\n this.#updateDebuggerMessages(message, description);\n },\n warn: (message: string, description = '') => {\n this.logger.warn(message, description);\n },\n info: (message: string, description = '', state: any = {}) => {\n this.logger.info(message, description, state);\n },\n debug: (message: string, description = '') => {\n this.logger.debug(message, description);\n },\n };\n\n #flowState = new State<FlowState>();\n\n #debugState = new State<DebugState>();\n\n #componentsContext = {};\n\n getComponentsContext = () => this.#componentsContext;\n\n nextRequestStatus = new State<{ isLoading: boolean }>({ isLoading: false });\n\n rootElement: HTMLDivElement;\n\n contentRootElement: HTMLDivElement;\n\n slotElement: HTMLSlotElement;\n\n #debuggerEle: HTMLElement & {\n updateData: (data: DebuggerMessage | DebuggerMessage[]) => void;\n };\n\n #eventsCbRefs = {\n popstate: this.#syncStateIdFromUrl.bind(this),\n componentsContext: this.#handleComponentsContext.bind(this),\n };\n\n sdk: ReturnType<typeof createSdk>;\n\n #updateExecState: FlowStateUpdateFn;\n\n descopeUI: Promise<DescopeUI>;\n\n constructor(updateExecState: FlowStateUpdateFn) {\n super();\n this.#updateExecState = updateExecState;\n\n this.#initShadowDom();\n }\n\n #initShadowDom() {\n this.shadowRoot.appendChild(initTemplate.content.cloneNode(true));\n this.slotElement = document.createElement('slot');\n this.slotElement.classList.add('hidden');\n this.rootElement.appendChild(this.slotElement);\n }\n\n get flowId() {\n return this.getAttribute('flow-id');\n }\n\n get client() {\n try {\n return (JSON.parse(this.getAttribute('client')) || {}) as Record<\n string,\n any\n >;\n } catch (e) {\n return {};\n }\n }\n\n get tenantId() {\n return this.getAttribute('tenant') || undefined;\n }\n\n get redirectUrl() {\n return this.getAttribute('redirect-url') || undefined;\n }\n\n get debug() {\n return this.getAttribute('debug') === 'true';\n }\n\n get locale() {\n return this.getAttribute('locale') || undefined;\n }\n\n get autoFocus(): AutoFocusOptions {\n const res = this.getAttribute('auto-focus') ?? 'true';\n if (res === 'skipFirstScreen') {\n return res;\n }\n return res === 'true';\n }\n\n get validateOnBlur() {\n return this.getAttribute('validate-on-blur') === 'true';\n }\n\n get storeLastAuthenticatedUser() {\n const res = this.getAttribute('store-last-authenticated-user') ?? 'true';\n return res === 'true';\n }\n\n get refreshCookieName() {\n return this.getAttribute('refresh-cookie-name') || '';\n }\n\n get keepLastAuthenticatedUserAfterLogout() {\n const res = this.getAttribute('keep-last-authenticated-user-after-logout');\n return res === 'true';\n }\n\n get storagePrefix() {\n return this.getAttribute('storage-prefix') || '';\n }\n\n get preview() {\n return !!this.getAttribute('preview');\n }\n\n get formConfig() {\n return transformFlowInputFormData(this.form);\n }\n\n get form() {\n return this.getAttribute('form');\n }\n\n get formConfigValues() {\n return extractNestedAttribute(this.formConfig, 'value');\n }\n\n #validateAttrs() {\n const optionalAttributes = [\n 'base-url',\n 'tenant',\n 'locale',\n 'debug',\n 'redirect-url',\n 'auto-focus',\n 'store-last-authenticated-user',\n 'refresh-cookie-name',\n 'keep-last-authenticated-user-after-logout',\n 'preview',\n 'storage-prefix',\n 'form',\n 'client',\n 'validate-on-blur',\n 'style-id',\n ];\n\n BaseDescopeWc.observedAttributes.forEach((attr: string) => {\n if (!optionalAttributes.includes(attr) && !this[camelCase(attr)])\n throw Error(`${attr} cannot be empty`);\n });\n }\n\n #syncStateIdFromUrl() {\n const { stepId, executionId } = getRunIdsFromUrl(this.flowId);\n this.#flowState.update({ stepId, executionId });\n }\n\n #createSdk(projectId: string, baseUrl: string) {\n this.sdk = createSdk({\n // Use persist tokens options in order to add existing tokens in outgoing requests (if they exists)\n persistTokens: true,\n preview: this.preview,\n storagePrefix: this.storagePrefix,\n storeLastAuthenticatedUser: this.storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout:\n this.keepLastAuthenticatedUserAfterLogout,\n refreshCookieName: this.refreshCookieName,\n ...BaseDescopeWc.sdkConfigOverrides,\n projectId,\n baseUrl,\n });\n\n // we are wrapping the next & start function so we can indicate the request status\n ['start', 'next'].forEach((key) => {\n const origFn = this.sdk.flow[key];\n\n this.sdk.flow[key] = async (...args: Parameters<typeof origFn>) => {\n try {\n const resp = await origFn(...args);\n return resp;\n } catch (e) {\n // return a generic error object in case of an error\n return {\n error: {\n errorCode: FETCH_EXCEPTION_ERROR_CODE,\n errorDescription: e.toString(),\n },\n };\n }\n };\n });\n }\n\n async #onFlowChange(\n currentState: FlowState,\n _prevState: FlowState,\n isChanged: IsChanged<FlowState>,\n ) {\n const { projectId, baseUrl } = currentState;\n\n const shouldCreateSdkInstance =\n isChanged('projectId') || isChanged('baseUrl');\n\n if (shouldCreateSdkInstance) {\n if (!projectId) return;\n // Initialize the sdk when got a new project id\n this.#createSdk(projectId, baseUrl);\n }\n\n // update runtime state\n this.#updateExecState(currentState);\n }\n\n async #getIsFlowsVersionMismatch() {\n const config = await this.getConfig();\n\n return (\n 'isMissingConfig' in config &&\n config.isMissingConfig &&\n (await this.#isPrevVerConfig())\n );\n }\n\n // we are not using fetchStaticResource here\n // because we do not want to use the fallbacks mechanism\n async #isPrevVerConfig() {\n const prevVerConfigUrl = getContentUrl({\n projectId: this.projectId,\n filename: CONFIG_FILENAME,\n assetsFolder: PREV_VER_ASSETS_FOLDER,\n baseUrl: this.baseStaticUrl,\n });\n try {\n await fetchContent(prevVerConfigUrl, 'json');\n return true;\n } catch (e) {\n return false;\n }\n }\n\n getConfig = async () => (await this.config) || { isMissingConfig: true };\n\n #handleComponentsContext(e: CustomEvent) {\n this.#componentsContext = { ...this.#componentsContext, ...e.detail };\n }\n\n get isRestartOnError() {\n return this.getAttribute('restart-on-error') === 'true';\n }\n\n async getExecutionContext() {\n const config = await this.getConfig();\n return 'executionContext' in config ? config.executionContext : undefined;\n }\n\n #disableDebugger() {\n this.#debuggerEle?.remove();\n this.#debuggerEle = null;\n }\n\n async #handleDebugMode({ isDebug }) {\n if (isDebug) {\n this.#debuggerEle = document.createElement(\n 'descope-debugger',\n ) as HTMLElement & {\n updateData: (data: DebuggerMessage | DebuggerMessage[]) => void;\n };\n\n Object.assign(this.#debuggerEle.style, {\n position: 'fixed',\n top: '0',\n right: '0',\n height: '100vh',\n width: '100vw',\n pointerEvents: 'none',\n zIndex: 99999,\n });\n\n // we are importing the debugger dynamically so we won't load it when it's not needed\n await import('../debugger-wc');\n\n document.body.appendChild(this.#debuggerEle);\n } else {\n this.#disableDebugger();\n }\n }\n\n #updateDebuggerMessages(title: string, description: string) {\n if (title && this.debug)\n this.#debuggerEle?.updateData({ title, description });\n }\n\n async getProjectConfig(): Promise<ProjectConfiguration> {\n const config = await this.getConfig();\n return 'projectConfig' in config ? config.projectConfig : undefined;\n }\n\n async getFlowConfig(): Promise<FlowConfig> {\n const projectConfig = await this.getProjectConfig();\n\n const flowConfig =\n projectConfig?.flows?.[this.flowId] || ({} as FlowConfig);\n flowConfig.version ??= 0;\n return flowConfig;\n }\n\n async getTargetLocales() {\n const flowConfig = await this.getFlowConfig();\n return (flowConfig?.targetLocales || []).map((locale: string) =>\n locale.toLowerCase(),\n );\n }\n\n #handleKeyPress() {\n // we want to simulate submit when the user presses Enter\n this.rootElement.onkeydown = (e) => {\n // we do not want to submit the form if the focus is on a link element\n const isLinkEleFocused =\n !!this.shadowRoot.activeElement?.getAttribute('href');\n const isIgnoredElementFocused = ELEMENTS_TO_IGNORE_ENTER_KEY_ON.includes(\n this.shadowRoot.activeElement?.localName ?? '',\n );\n\n if (e.key !== 'Enter' || isLinkEleFocused || isIgnoredElementFocused)\n return;\n\n e.preventDefault();\n const buttons: NodeListOf<HTMLButtonElement> =\n this.rootElement.querySelectorAll('descope-button');\n\n // in case there is a single button on the page, click on it\n if (\n buttons.length === 1 &&\n buttons[0].getAttribute('auto-submit') !== 'false'\n ) {\n buttons[0].click();\n return;\n }\n\n const autoSubmitButtons = Array.from(buttons).filter(\n (button) => button.getAttribute('auto-submit') === 'true',\n );\n if (autoSubmitButtons.length === 1) {\n autoSubmitButtons[0].click();\n return;\n }\n\n const genericButtons = Array.from(buttons).filter(\n (button) => button.getAttribute('data-type') === 'button',\n );\n\n // in case there is a single \"generic\" button on the page, click on it\n if (genericButtons.length === 1) {\n if (genericButtons[0].getAttribute('auto-submit') !== 'false') {\n genericButtons[0].click();\n }\n } else if (genericButtons.length === 0) {\n const ssoButtons = Array.from(buttons).filter(\n (button) => button.getAttribute('data-type') === 'sso',\n );\n\n // in case there is a single \"sso\" button on the page, click on it\n if (ssoButtons.length === 1) {\n if (ssoButtons[0].getAttribute('auto-submit') !== 'false') {\n ssoButtons[0].click();\n }\n }\n }\n };\n }\n\n async getComponentsVersion() {\n const config = await this.getConfig();\n const version =\n 'projectConfig' in config ? config.projectConfig?.componentsVersion : {};\n\n if (version) return version;\n\n this.logger.error('Did not get components version, using latest version');\n\n return 'latest';\n }\n\n static descopeUI: any;\n\n async init() {\n this.flowStatus = 'loading';\n ['ready', 'error', 'success'].forEach((status: FlowStatus) =>\n this.addEventListener(status, () => {\n this.flowStatus = status;\n }),\n );\n\n await super.init?.();\n this.#debugState.subscribe(this.#handleDebugMode.bind(this));\n this.#debugState.update({ isDebug: this.debug });\n\n this.#validateAttrs();\n\n if (await this.#getIsFlowsVersionMismatch()) {\n this.loggerWrapper.error(\n 'This SDK version does not support your flows version',\n 'Make sure to upgrade your flows to the latest version or use an older SDK version',\n );\n\n return;\n }\n\n const config = await this.getConfig();\n if ('isMissingConfig' in config && config.isMissingConfig) {\n this.loggerWrapper.error(\n 'Cannot get config file',\n 'Make sure that your projectId & flowId are correct',\n );\n\n return;\n }\n\n this.#handleKeyPress();\n\n const {\n executionId,\n stepId,\n token,\n code,\n exchangeError,\n redirectAuthCallbackUrl,\n redirectAuthBackupCallbackUri,\n redirectAuthCodeChallenge,\n redirectAuthInitiator,\n ssoQueryParams,\n } = handleUrlParams(this.flowId, this.loggerWrapper);\n\n // we want to update the state when user clicks on back in the browser\n window.addEventListener('popstate', this.#eventsCbRefs.popstate);\n\n // adding event to listen to events coming from components (e.g. recaptcha risk token) that want to add data to the context\n // this data will be sent to the server on the next request\n window.addEventListener(\n 'components-context',\n this.#eventsCbRefs.componentsContext,\n );\n\n this.#flowState.subscribe(this.#onFlowChange.bind(this));\n\n this.#flowState.update({\n projectId: this.projectId,\n flowId: this.flowId,\n baseUrl: this.baseUrl,\n tenant: this.tenantId,\n redirectUrl: this.redirectUrl,\n locale: this.locale,\n stepId,\n executionId,\n token,\n code,\n exchangeError,\n redirectAuthCallbackUrl,\n redirectAuthBackupCallbackUri,\n redirectAuthCodeChallenge,\n redirectAuthInitiator,\n ...ssoQueryParams,\n });\n\n this.#init = true;\n }\n\n disconnectedCallback() {\n this.#flowState.unsubscribeAll();\n this.#debugState.unsubscribeAll();\n this.#disableDebugger();\n window.removeEventListener('popstate', this.#eventsCbRefs.popstate);\n window.removeEventListener(\n 'components-context',\n this.#eventsCbRefs.componentsContext,\n );\n }\n\n attributeChangedCallback(\n attrName: string,\n oldValue: string,\n newValue: string,\n ) {\n if (!this.shadowRoot.isConnected || !this.#init) return;\n\n if (\n oldValue !== newValue &&\n BaseDescopeWc.observedAttributes.includes(attrName)\n ) {\n this.#validateAttrs();\n\n const isInitialRun = oldValue === null;\n\n this.#flowState.update(({ stepId, executionId }) => {\n let newStepId = stepId;\n let newExecutionId = executionId;\n\n // If not initial run and we got a new project/flow, we want to restart the step\n if (!isInitialRun) {\n newExecutionId = null;\n newStepId = null;\n clearRunIdsFromUrl();\n }\n\n return {\n [camelCase(attrName)]: newValue,\n stepId: newStepId,\n executionId: newExecutionId,\n };\n });\n\n this.#debugState.update({ isDebug: this.debug });\n }\n }\n}\n\nexport default BaseDescopeWc;\n"],"names":["BaseClass","compose","themeMixin","staticResourcesMixin","formMountMixin","HTMLElement","BaseDescopeWc","observedAttributes","constructor","updateExecState","super","_BaseDescopeWc_init","set","this","flowStatus","loggerWrapper","error","message","description","logger","Error","__classPrivateFieldGet","call","warn","info","state","debug","_BaseDescopeWc_flowState","State","_BaseDescopeWc_debugState","_BaseDescopeWc_componentsContext","getComponentsContext","nextRequestStatus","isLoading","_BaseDescopeWc_debuggerEle","_BaseDescopeWc_eventsCbRefs","popstate","_BaseDescopeWc_instances","_BaseDescopeWc_syncStateIdFromUrl","bind","componentsContext","_BaseDescopeWc_handleComponentsContext","_BaseDescopeWc_updateExecState","getConfig","config","isMissingConfig","__classPrivateFieldSet","_BaseDescopeWc_initShadowDom","flowId","getAttribute","client","JSON","parse","e","tenantId","undefined","redirectUrl","locale","autoFocus","res","_b","validateOnBlur","storeLastAuthenticatedUser","refreshCookieName","keepLastAuthenticatedUserAfterLogout","storagePrefix","preview","formConfig","transformFlowInputFormData","form","formConfigValues","extractNestedAttribute","isRestartOnError","getExecutionContext","executionContext","getProjectConfig","projectConfig","getFlowConfig","flowConfig","flows","_c","version","getTargetLocales","targetLocales","map","toLowerCase","getComponentsVersion","componentsVersion","init","forEach","status","addEventListener","_super","subscribe","_BaseDescopeWc_handleDebugMode","update","isDebug","_BaseDescopeWc_validateAttrs","_BaseDescopeWc_getIsFlowsVersionMismatch","_BaseDescopeWc_handleKeyPress","executionId","stepId","token","code","exchangeError","redirectAuthCallbackUrl","redirectAuthBackupCallbackUri","redirectAuthCodeChallenge","redirectAuthInitiator","ssoQueryParams","handleUrlParams","window","_BaseDescopeWc_onFlowChange","Object","assign","projectId","baseUrl","tenant","disconnectedCallback","unsubscribeAll","_BaseDescopeWc_disableDebugger","removeEventListener","attributeChangedCallback","attrName","oldValue","newValue","shadowRoot","isConnected","_a","includes","isInitialRun","newStepId","newExecutionId","clearRunIdsFromUrl","camelCase","appendChild","initTemplate","content","cloneNode","slotElement","document","createElement","classList","add","rootElement","optionalAttributes","attr","getRunIdsFromUrl","_BaseDescopeWc_createSdk","sdk","createSdk","persistTokens","sdkConfigOverrides","key","origFn","flow","args","__awaiter","errorCode","FETCH_EXCEPTION_ERROR_CODE","errorDescription","toString","currentState","_prevState","isChanged","_BaseDescopeWc_isPrevVerConfig","prevVerConfigUrl","getContentUrl","filename","CONFIG_FILENAME","assetsFolder","PREV_VER_ASSETS_FOLDER","baseStaticUrl","fetchContent","detail","remove","arguments","style","position","top","right","height","width","pointerEvents","zIndex","import","body","_BaseDescopeWc_updateDebuggerMessages","title","updateData","onkeydown","isLinkEleFocused","activeElement","isIgnoredElementFocused","ELEMENTS_TO_IGNORE_ENTER_KEY_ON","localName","_d","preventDefault","buttons","querySelectorAll","length","click","autoSubmitButtons","Array","from","filter","button","genericButtons","ssoButtons","baseHeaders"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseDescopeWc.js","sources":["../../../src/lib/descope-wc/BaseDescopeWc.ts"],"sourcesContent":["import { compose } from '@descope/sdk-helpers';\n// eslint-disable-next-line import/no-duplicates\nimport { staticResourcesMixin } from '@descope/sdk-mixins/static-resources-mixin';\n// eslint-disable-next-line import/no-duplicates\nimport { themeMixin } from '@descope/sdk-mixins/theme-mixin';\nimport createSdk from '@descope/web-js-sdk';\nimport {\n CONFIG_FILENAME,\n ELEMENTS_TO_IGNORE_ENTER_KEY_ON,\n FETCH_EXCEPTION_ERROR_CODE,\n PREV_VER_ASSETS_FOLDER,\n} from '../constants';\nimport {\n camelCase,\n clearRunIdsFromUrl,\n fetchContent,\n getContentUrl,\n getRunIdsFromUrl,\n handleUrlParams,\n State,\n} from '../helpers';\nimport {\n extractNestedAttribute,\n transformFlowInputFormData,\n} from '../helpers/flowInputs';\nimport { IsChanged } from '../helpers/state';\nimport { formMountMixin } from '../mixins';\nimport {\n AutoFocusOptions,\n DebuggerMessage,\n DebugState,\n DescopeUI,\n FlowConfig,\n FlowState,\n FlowStateUpdateFn,\n FlowStatus,\n ProjectConfiguration,\n SdkConfig,\n} from '../types';\n\n// this is replaced in build time\ndeclare const BUILD_VERSION: string;\n\nconst BaseClass = compose(\n themeMixin,\n staticResourcesMixin,\n formMountMixin,\n)(HTMLElement);\n\n// this base class is responsible for WC initialization\nclass BaseDescopeWc extends BaseClass {\n static get observedAttributes() {\n return [\n 'project-id',\n 'flow-id',\n 'base-url',\n 'tenant',\n 'locale',\n 'debug',\n 'storage-prefix',\n 'preview',\n 'redirect-url',\n 'auto-focus',\n 'store-last-authenticated-user',\n 'refresh-cookie-name',\n 'keep-last-authenticated-user-after-logout',\n 'validate-on-blur',\n 'style-id',\n 'nonce',\n ];\n }\n\n // this is a way for extending the sdk config from outside\n static sdkConfigOverrides: Partial<SdkConfig> = {\n baseHeaders: {\n 'x-descope-sdk-name': 'web-component',\n 'x-descope-sdk-version': BUILD_VERSION,\n },\n };\n\n #init = false;\n\n flowStatus: FlowStatus = 'initial';\n\n loggerWrapper = {\n error: (message: string, description = '') => {\n this.logger.error(message, description, new Error());\n this.#updateDebuggerMessages(message, description);\n },\n warn: (message: string, description = '') => {\n this.logger.warn(message, description);\n },\n info: (message: string, description = '', state: any = {}) => {\n this.logger.info(message, description, state);\n },\n debug: (message: string, description = '') => {\n this.logger.debug(message, description);\n },\n };\n\n #flowState = new State<FlowState>();\n\n #debugState = new State<DebugState>();\n\n #componentsContext = {};\n\n getComponentsContext = () => this.#componentsContext;\n\n nextRequestStatus = new State<{ isLoading: boolean }>({ isLoading: false });\n\n rootElement: HTMLDivElement;\n\n contentRootElement: HTMLDivElement;\n\n slotElement: HTMLSlotElement;\n\n #debuggerEle: HTMLElement & {\n updateData: (data: DebuggerMessage | DebuggerMessage[]) => void;\n };\n\n #eventsCbRefs = {\n popstate: this.#syncStateIdFromUrl.bind(this),\n componentsContext: this.#handleComponentsContext.bind(this),\n };\n\n sdk: ReturnType<typeof createSdk>;\n\n #updateExecState: FlowStateUpdateFn;\n\n descopeUI: Promise<DescopeUI>;\n\n constructor(updateExecState: FlowStateUpdateFn) {\n super();\n this.#updateExecState = updateExecState;\n\n this.#initShadowDom();\n }\n\n #loadInitStyle() {\n const sheet = new CSSStyleSheet();\n sheet.replaceSync(`\n :host {\n all: initial;\n\t\t\twidth: 100%;\n display: block;\n\t\t}\n\n\t\t#root {\n\t\t\theight: 100%;\n display: flex;\n flex-direction: column;\n\t\t}\n\n #content-root {\n transition: opacity 300ms ease-in-out;\n }\n\n\t\t#root[data-theme] {\n\t\t\tbackground-color: transparent;\n\t\t}\n\n\t\t.fade-out {\n\t\t\topacity: 0.1;\n\t\t}\n\n .hidden {\n display: none;\n }\n `);\n this.shadowRoot.adoptedStyleSheets ??= [];\n this.shadowRoot.adoptedStyleSheets = [\n ...this.shadowRoot.adoptedStyleSheets,\n sheet,\n ];\n }\n\n #initShadowDom() {\n this.#loadInitStyle();\n this.slotElement = document.createElement('slot');\n this.slotElement.classList.add('hidden');\n this.rootElement.appendChild(this.slotElement);\n }\n\n get flowId() {\n return this.getAttribute('flow-id');\n }\n\n get client() {\n try {\n return (JSON.parse(this.getAttribute('client')) || {}) as Record<\n string,\n any\n >;\n } catch (e) {\n return {};\n }\n }\n\n get tenantId() {\n return this.getAttribute('tenant') || undefined;\n }\n\n get redirectUrl() {\n return this.getAttribute('redirect-url') || undefined;\n }\n\n get debug() {\n return this.getAttribute('debug') === 'true';\n }\n\n get locale() {\n return this.getAttribute('locale') || undefined;\n }\n\n get autoFocus(): AutoFocusOptions {\n const res = this.getAttribute('auto-focus') ?? 'true';\n if (res === 'skipFirstScreen') {\n return res;\n }\n return res === 'true';\n }\n\n get validateOnBlur() {\n return this.getAttribute('validate-on-blur') === 'true';\n }\n\n get storeLastAuthenticatedUser() {\n const res = this.getAttribute('store-last-authenticated-user') ?? 'true';\n return res === 'true';\n }\n\n get refreshCookieName() {\n return this.getAttribute('refresh-cookie-name') || '';\n }\n\n get keepLastAuthenticatedUserAfterLogout() {\n const res = this.getAttribute('keep-last-authenticated-user-after-logout');\n return res === 'true';\n }\n\n get storagePrefix() {\n return this.getAttribute('storage-prefix') || '';\n }\n\n get preview() {\n return !!this.getAttribute('preview');\n }\n\n get formConfig() {\n return transformFlowInputFormData(this.form);\n }\n\n get form() {\n return this.getAttribute('form');\n }\n\n get formConfigValues() {\n return extractNestedAttribute(this.formConfig, 'value');\n }\n\n #validateAttrs() {\n const optionalAttributes = [\n 'base-url',\n 'tenant',\n 'locale',\n 'debug',\n 'redirect-url',\n 'auto-focus',\n 'store-last-authenticated-user',\n 'refresh-cookie-name',\n 'keep-last-authenticated-user-after-logout',\n 'preview',\n 'storage-prefix',\n 'form',\n 'client',\n 'validate-on-blur',\n 'style-id',\n 'nonce',\n ];\n\n BaseDescopeWc.observedAttributes.forEach((attr: string) => {\n if (!optionalAttributes.includes(attr) && !this[camelCase(attr)])\n throw Error(`${attr} cannot be empty`);\n });\n }\n\n #syncStateIdFromUrl() {\n const { stepId, executionId } = getRunIdsFromUrl(this.flowId);\n this.#flowState.update({ stepId, executionId });\n }\n\n #createSdk(projectId: string, baseUrl: string) {\n this.sdk = createSdk({\n // Use persist tokens options in order to add existing tokens in outgoing requests (if they exists)\n persistTokens: true,\n preview: this.preview,\n storagePrefix: this.storagePrefix,\n storeLastAuthenticatedUser: this.storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout:\n this.keepLastAuthenticatedUserAfterLogout,\n refreshCookieName: this.refreshCookieName,\n ...BaseDescopeWc.sdkConfigOverrides,\n projectId,\n baseUrl,\n });\n\n // we are wrapping the next & start function so we can indicate the request status\n ['start', 'next'].forEach((key) => {\n const origFn = this.sdk.flow[key];\n\n this.sdk.flow[key] = async (...args: Parameters<typeof origFn>) => {\n try {\n const resp = await origFn(...args);\n return resp;\n } catch (e) {\n // return a generic error object in case of an error\n return {\n error: {\n errorCode: FETCH_EXCEPTION_ERROR_CODE,\n errorDescription: e.toString(),\n },\n };\n }\n };\n });\n }\n\n async #onFlowChange(\n currentState: FlowState,\n _prevState: FlowState,\n isChanged: IsChanged<FlowState>,\n ) {\n const { projectId, baseUrl } = currentState;\n\n const shouldCreateSdkInstance =\n isChanged('projectId') || isChanged('baseUrl');\n\n if (shouldCreateSdkInstance) {\n if (!projectId) return;\n // Initialize the sdk when got a new project id\n this.#createSdk(projectId, baseUrl);\n }\n\n // update runtime state\n this.#updateExecState(currentState);\n }\n\n async #getIsFlowsVersionMismatch() {\n const config = await this.getConfig();\n\n return (\n 'isMissingConfig' in config &&\n config.isMissingConfig &&\n (await this.#isPrevVerConfig())\n );\n }\n\n // we are not using fetchStaticResource here\n // because we do not want to use the fallbacks mechanism\n async #isPrevVerConfig() {\n const prevVerConfigUrl = getContentUrl({\n projectId: this.projectId,\n filename: CONFIG_FILENAME,\n assetsFolder: PREV_VER_ASSETS_FOLDER,\n baseUrl: this.baseStaticUrl,\n });\n try {\n await fetchContent(prevVerConfigUrl, 'json');\n return true;\n } catch (e) {\n return false;\n }\n }\n\n getConfig = async () => (await this.config) || { isMissingConfig: true };\n\n #handleComponentsContext(e: CustomEvent) {\n this.#componentsContext = { ...this.#componentsContext, ...e.detail };\n }\n\n get isRestartOnError() {\n return this.getAttribute('restart-on-error') === 'true';\n }\n\n async getExecutionContext() {\n const config = await this.getConfig();\n return 'executionContext' in config ? config.executionContext : undefined;\n }\n\n #disableDebugger() {\n this.#debuggerEle?.remove();\n this.#debuggerEle = null;\n }\n\n async #handleDebugMode({ isDebug }) {\n if (isDebug) {\n this.#debuggerEle = document.createElement(\n 'descope-debugger',\n ) as HTMLElement & {\n updateData: (data: DebuggerMessage | DebuggerMessage[]) => void;\n };\n\n Object.assign(this.#debuggerEle.style, {\n position: 'fixed',\n top: '0',\n right: '0',\n height: '100vh',\n width: '100vw',\n pointerEvents: 'none',\n zIndex: 99999,\n });\n\n // we are importing the debugger dynamically so we won't load it when it's not needed\n await import('../debugger-wc');\n\n document.body.appendChild(this.#debuggerEle);\n } else {\n this.#disableDebugger();\n }\n }\n\n #updateDebuggerMessages(title: string, description: string) {\n if (title && this.debug)\n this.#debuggerEle?.updateData({ title, description });\n }\n\n async getProjectConfig(): Promise<ProjectConfiguration> {\n const config = await this.getConfig();\n return 'projectConfig' in config ? config.projectConfig : undefined;\n }\n\n async getFlowConfig(): Promise<FlowConfig> {\n const projectConfig = await this.getProjectConfig();\n\n const flowConfig =\n projectConfig?.flows?.[this.flowId] || ({} as FlowConfig);\n flowConfig.version ??= 0;\n return flowConfig;\n }\n\n async getTargetLocales() {\n const flowConfig = await this.getFlowConfig();\n return (flowConfig?.targetLocales || []).map((locale: string) =>\n locale.toLowerCase(),\n );\n }\n\n #handleKeyPress() {\n // we want to simulate submit when the user presses Enter\n this.rootElement.onkeydown = (e) => {\n // we do not want to submit the form if the focus is on a link element\n const isLinkEleFocused =\n !!this.shadowRoot.activeElement?.getAttribute('href');\n const isIgnoredElementFocused = ELEMENTS_TO_IGNORE_ENTER_KEY_ON.includes(\n this.shadowRoot.activeElement?.localName ?? '',\n );\n\n if (e.key !== 'Enter' || isLinkEleFocused || isIgnoredElementFocused)\n return;\n\n e.preventDefault();\n const buttons: NodeListOf<HTMLButtonElement> =\n this.rootElement.querySelectorAll('descope-button');\n\n // in case there is a single button on the page, click on it\n if (\n buttons.length === 1 &&\n buttons[0].getAttribute('auto-submit') !== 'false'\n ) {\n buttons[0].click();\n return;\n }\n\n const autoSubmitButtons = Array.from(buttons).filter(\n (button) => button.getAttribute('auto-submit') === 'true',\n );\n if (autoSubmitButtons.length === 1) {\n autoSubmitButtons[0].click();\n return;\n }\n\n const genericButtons = Array.from(buttons).filter(\n (button) => button.getAttribute('data-type') === 'button',\n );\n\n // in case there is a single \"generic\" button on the page, click on it\n if (genericButtons.length === 1) {\n if (genericButtons[0].getAttribute('auto-submit') !== 'false') {\n genericButtons[0].click();\n }\n } else if (genericButtons.length === 0) {\n const ssoButtons = Array.from(buttons).filter(\n (button) => button.getAttribute('data-type') === 'sso',\n );\n\n // in case there is a single \"sso\" button on the page, click on it\n if (ssoButtons.length === 1) {\n if (ssoButtons[0].getAttribute('auto-submit') !== 'false') {\n ssoButtons[0].click();\n }\n }\n }\n };\n }\n\n async getComponentsVersion() {\n const config = await this.getConfig();\n const version =\n 'projectConfig' in config ? config.projectConfig?.componentsVersion : {};\n\n if (version) return version;\n\n this.logger.error('Did not get components version, using latest version');\n\n return 'latest';\n }\n\n static descopeUI: any;\n\n #handleNonce() {\n if (this.getAttribute('nonce')) {\n // the key name \"DESCOPE_NONCE\" is in use also by the web-components-ui\n // it's used to set Vaadins style tags nonce\n (window as any).DESCOPE_NONCE = this.getAttribute('nonce');\n }\n }\n\n async init() {\n this.#handleNonce();\n this.flowStatus = 'loading';\n ['ready', 'error', 'success'].forEach((status: FlowStatus) =>\n this.addEventListener(status, () => {\n this.flowStatus = status;\n }),\n );\n\n await super.init?.();\n this.#debugState.subscribe(this.#handleDebugMode.bind(this));\n this.#debugState.update({ isDebug: this.debug });\n\n this.#validateAttrs();\n\n if (await this.#getIsFlowsVersionMismatch()) {\n this.loggerWrapper.error(\n 'This SDK version does not support your flows version',\n 'Make sure to upgrade your flows to the latest version or use an older SDK version',\n );\n\n return;\n }\n\n const config = await this.getConfig();\n if ('isMissingConfig' in config && config.isMissingConfig) {\n this.loggerWrapper.error(\n 'Cannot get config file',\n 'Make sure that your projectId & flowId are correct',\n );\n\n return;\n }\n\n this.#handleKeyPress();\n\n const {\n executionId,\n stepId,\n token,\n code,\n exchangeError,\n redirectAuthCallbackUrl,\n redirectAuthBackupCallbackUri,\n redirectAuthCodeChallenge,\n redirectAuthInitiator,\n ssoQueryParams,\n } = handleUrlParams(this.flowId, this.loggerWrapper);\n\n // we want to update the state when user clicks on back in the browser\n window.addEventListener('popstate', this.#eventsCbRefs.popstate);\n\n // adding event to listen to events coming from components (e.g. recaptcha risk token) that want to add data to the context\n // this data will be sent to the server on the next request\n window.addEventListener(\n 'components-context',\n this.#eventsCbRefs.componentsContext,\n );\n\n this.#flowState.subscribe(this.#onFlowChange.bind(this));\n\n this.#flowState.update({\n projectId: this.projectId,\n flowId: this.flowId,\n baseUrl: this.baseUrl,\n tenant: this.tenantId,\n redirectUrl: this.redirectUrl,\n locale: this.locale,\n stepId,\n executionId,\n token,\n code,\n exchangeError,\n redirectAuthCallbackUrl,\n redirectAuthBackupCallbackUri,\n redirectAuthCodeChallenge,\n redirectAuthInitiator,\n ...ssoQueryParams,\n });\n\n this.#init = true;\n }\n\n disconnectedCallback() {\n this.#flowState.unsubscribeAll();\n this.#debugState.unsubscribeAll();\n this.#disableDebugger();\n window.removeEventListener('popstate', this.#eventsCbRefs.popstate);\n window.removeEventListener(\n 'components-context',\n this.#eventsCbRefs.componentsContext,\n );\n }\n\n attributeChangedCallback(\n attrName: string,\n oldValue: string,\n newValue: string,\n ) {\n if (!this.shadowRoot.isConnected || !this.#init) return;\n\n if (\n oldValue !== newValue &&\n BaseDescopeWc.observedAttributes.includes(attrName)\n ) {\n this.#validateAttrs();\n\n const isInitialRun = oldValue === null;\n\n if (attrName === 'nonce') {\n this.#handleNonce();\n }\n\n this.#flowState.update(({ stepId, executionId }) => {\n let newStepId = stepId;\n let newExecutionId = executionId;\n\n // If not initial run and we got a new project/flow, we want to restart the step\n if (!isInitialRun) {\n newExecutionId = null;\n newStepId = null;\n clearRunIdsFromUrl();\n }\n\n return {\n [camelCase(attrName)]: newValue,\n stepId: newStepId,\n executionId: newExecutionId,\n };\n });\n\n this.#debugState.update({ isDebug: this.debug });\n }\n }\n}\n\nexport default BaseDescopeWc;\n"],"names":["BaseClass","compose","themeMixin","staticResourcesMixin","formMountMixin","HTMLElement","BaseDescopeWc","observedAttributes","constructor","updateExecState","super","_BaseDescopeWc_init","set","this","flowStatus","loggerWrapper","error","message","description","logger","Error","__classPrivateFieldGet","call","warn","info","state","debug","_BaseDescopeWc_flowState","State","_BaseDescopeWc_debugState","_BaseDescopeWc_componentsContext","getComponentsContext","nextRequestStatus","isLoading","_BaseDescopeWc_debuggerEle","_BaseDescopeWc_eventsCbRefs","popstate","_BaseDescopeWc_instances","_BaseDescopeWc_syncStateIdFromUrl","bind","componentsContext","_BaseDescopeWc_handleComponentsContext","_BaseDescopeWc_updateExecState","getConfig","config","isMissingConfig","__classPrivateFieldSet","_BaseDescopeWc_initShadowDom","flowId","getAttribute","client","JSON","parse","e","tenantId","undefined","redirectUrl","locale","autoFocus","res","_b","validateOnBlur","storeLastAuthenticatedUser","refreshCookieName","keepLastAuthenticatedUserAfterLogout","storagePrefix","preview","formConfig","transformFlowInputFormData","form","formConfigValues","extractNestedAttribute","isRestartOnError","getExecutionContext","executionContext","getProjectConfig","projectConfig","getFlowConfig","flowConfig","flows","_c","version","getTargetLocales","targetLocales","map","toLowerCase","getComponentsVersion","componentsVersion","init","_BaseDescopeWc_handleNonce","forEach","status","addEventListener","_super","subscribe","_BaseDescopeWc_handleDebugMode","update","isDebug","_BaseDescopeWc_validateAttrs","_BaseDescopeWc_getIsFlowsVersionMismatch","_BaseDescopeWc_handleKeyPress","executionId","stepId","token","code","exchangeError","redirectAuthCallbackUrl","redirectAuthBackupCallbackUri","redirectAuthCodeChallenge","redirectAuthInitiator","ssoQueryParams","handleUrlParams","window","_BaseDescopeWc_onFlowChange","Object","assign","projectId","baseUrl","tenant","disconnectedCallback","unsubscribeAll","_BaseDescopeWc_disableDebugger","removeEventListener","attributeChangedCallback","attrName","oldValue","newValue","shadowRoot","isConnected","_a","includes","isInitialRun","newStepId","newExecutionId","clearRunIdsFromUrl","camelCase","sheet","CSSStyleSheet","replaceSync","adoptedStyleSheets","_BaseDescopeWc_loadInitStyle","slotElement","document","createElement","classList","add","rootElement","appendChild","optionalAttributes","attr","getRunIdsFromUrl","_BaseDescopeWc_createSdk","sdk","createSdk","persistTokens","sdkConfigOverrides","key","origFn","flow","args","__awaiter","errorCode","FETCH_EXCEPTION_ERROR_CODE","errorDescription","toString","currentState","_prevState","isChanged","_BaseDescopeWc_isPrevVerConfig","prevVerConfigUrl","getContentUrl","filename","CONFIG_FILENAME","assetsFolder","PREV_VER_ASSETS_FOLDER","baseStaticUrl","fetchContent","detail","remove","arguments","style","position","top","right","height","width","pointerEvents","zIndex","import","body","_BaseDescopeWc_updateDebuggerMessages","title","updateData","onkeydown","isLinkEleFocused","activeElement","isIgnoredElementFocused","ELEMENTS_TO_IGNORE_ENTER_KEY_ON","localName","_d","preventDefault","buttons","querySelectorAll","length","click","autoSubmitButtons","Array","from","filter","button","genericButtons","ssoButtons","DESCOPE_NONCE","baseHeaders"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -537,9 +537,9 @@ declare const BaseClass: {
|
|
|
537
537
|
focus(options?: FocusOptions): void;
|
|
538
538
|
};
|
|
539
539
|
} & (new (...params: any[]) => {
|
|
540
|
-
"__#
|
|
541
|
-
"__#
|
|
542
|
-
"__#
|
|
540
|
+
"__#27137@#lastBaseUrl"?: string;
|
|
541
|
+
"__#27137@#workingBaseUrl"?: string;
|
|
542
|
+
"__#27137@#getResourceUrls"(filename: string): (URL & {
|
|
543
543
|
baseUrl: string;
|
|
544
544
|
}) | (URL & {
|
|
545
545
|
baseUrl: string;
|
|
@@ -877,39 +877,39 @@ declare const BaseClass: {
|
|
|
877
877
|
blur(): void;
|
|
878
878
|
focus(options?: FocusOptions): void;
|
|
879
879
|
readonly projectId: string;
|
|
880
|
-
"__#
|
|
880
|
+
"__#27136@#handleError"(attrName: string, newValue: string): void;
|
|
881
881
|
init(): Promise<void>;
|
|
882
|
-
"__#
|
|
882
|
+
"__#27135@#observeMappings": {};
|
|
883
883
|
observeAttribute(attrName: string, onAttrChange: (attrName: string, value: string) => void): () => any;
|
|
884
884
|
observeAttributes(attrs: string[], cb: (attrName: string, value: string) => void): () => void;
|
|
885
|
-
"__#
|
|
886
|
-
"__#
|
|
887
|
-
"__#
|
|
885
|
+
"__#27134@#isInit": boolean;
|
|
886
|
+
"__#27133@#logger": _descope_sdk_mixins_static_resources_mixin.Logger;
|
|
887
|
+
"__#27133@#wrapLogger": ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger);
|
|
888
888
|
get logger(): _descope_sdk_mixins_static_resources_mixin.Logger;
|
|
889
889
|
set logger(logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>);
|
|
890
890
|
onLogEvent: ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void);
|
|
891
891
|
}) & (new (...params: any[]) => {
|
|
892
|
-
"__#
|
|
892
|
+
"__#27148@#globalStyle": CSSStyleSheet;
|
|
893
893
|
readonly theme: _descope_sdk_mixins_static_resources_mixin.ThemeOptions;
|
|
894
894
|
readonly styleId: string;
|
|
895
|
-
"__#
|
|
896
|
-
"__#
|
|
897
|
-
readonly "__#
|
|
898
|
-
"__#
|
|
899
|
-
"__#
|
|
900
|
-
"__#
|
|
895
|
+
"__#27148@#_themeResource": Promise<void | Record<string, any>>;
|
|
896
|
+
"__#27148@#fetchTheme"(): Promise<Record<string, any>>;
|
|
897
|
+
readonly "__#27148@#themeResource": Promise<void | Record<string, any>>;
|
|
898
|
+
"__#27148@#loadGlobalStyle"(): Promise<void>;
|
|
899
|
+
"__#27148@#loadComponentsStyle"(): Promise<void>;
|
|
900
|
+
"__#27148@#getFontsConfig"(): Promise<Record<string, {
|
|
901
901
|
url?: string;
|
|
902
902
|
}>>;
|
|
903
|
-
"__#
|
|
904
|
-
"__#
|
|
905
|
-
"__#
|
|
906
|
-
"__#
|
|
907
|
-
"__#
|
|
903
|
+
"__#27148@#loadFonts"(): Promise<void>;
|
|
904
|
+
"__#27148@#applyTheme"(): Promise<void>;
|
|
905
|
+
"__#27148@#onThemeChange": () => void;
|
|
906
|
+
"__#27148@#loadTheme"(): void;
|
|
907
|
+
"__#27148@#toggleOsThemeChangeListener": (listen: boolean) => void;
|
|
908
908
|
init(): Promise<void>;
|
|
909
|
-
"__#
|
|
909
|
+
"__#27135@#observeMappings": {};
|
|
910
910
|
observeAttribute: ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any);
|
|
911
911
|
observeAttributes: ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void);
|
|
912
|
-
"__#
|
|
912
|
+
"__#27134@#isInit": boolean;
|
|
913
913
|
connectedCallback: (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void);
|
|
914
914
|
accessKey: string;
|
|
915
915
|
readonly accessKeyLabel: string;
|
|
@@ -1236,24 +1236,24 @@ declare const BaseClass: {
|
|
|
1236
1236
|
tabIndex: number;
|
|
1237
1237
|
blur(): void;
|
|
1238
1238
|
focus(options?: FocusOptions): void;
|
|
1239
|
-
"__#
|
|
1240
|
-
"__#
|
|
1239
|
+
"__#27133@#logger": _descope_sdk_mixins_static_resources_mixin.Logger;
|
|
1240
|
+
"__#27133@#wrapLogger": ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger);
|
|
1241
1241
|
get logger(): _descope_sdk_mixins_static_resources_mixin.Logger;
|
|
1242
1242
|
set logger(logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>);
|
|
1243
1243
|
onLogEvent: ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void);
|
|
1244
1244
|
contentRootElement: HTMLElement;
|
|
1245
1245
|
rootElement: HTMLElement;
|
|
1246
1246
|
readonly config: Promise<_descope_sdk_mixins_static_resources_mixin.Config>;
|
|
1247
|
-
"__#
|
|
1248
|
-
"__#
|
|
1249
|
-
"__#
|
|
1250
|
-
"__#
|
|
1247
|
+
"__#27139@#configCacheClear": (() => void) & (() => void);
|
|
1248
|
+
"__#27139@#_configResource": Promise<_descope_sdk_mixins_static_resources_mixin.Config>;
|
|
1249
|
+
"__#27139@#fetchConfig": (() => Promise<_descope_sdk_mixins_static_resources_mixin.Config>) & (() => Promise<_descope_sdk_mixins_static_resources_mixin.Config>);
|
|
1250
|
+
"__#27138@#callbacks": Map<string, () => void> & Map<string, () => void>;
|
|
1251
1251
|
onReset: ((sectionId: string, callback: () => void | Promise<void>) => () => void) & ((sectionId: string, callback: () => void | Promise<void>) => () => void);
|
|
1252
1252
|
reset: ((...sectionIds: string[]) => Promise<void>) & ((...sectionIds: string[]) => Promise<void>);
|
|
1253
|
-
"__#
|
|
1254
|
-
"__#
|
|
1255
|
-
"__#
|
|
1256
|
-
"__#
|
|
1253
|
+
"__#27136@#handleError": ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void);
|
|
1254
|
+
"__#27137@#lastBaseUrl"?: string;
|
|
1255
|
+
"__#27137@#workingBaseUrl"?: string;
|
|
1256
|
+
"__#27137@#getResourceUrls": ((filename: string) => (URL & {
|
|
1257
1257
|
baseUrl: string;
|
|
1258
1258
|
}) | (URL & {
|
|
1259
1259
|
baseUrl: string;
|
|
@@ -1279,18 +1279,18 @@ declare const BaseClass: {
|
|
|
1279
1279
|
readonly baseStaticUrl: string;
|
|
1280
1280
|
readonly baseUrl: string;
|
|
1281
1281
|
readonly projectId: string;
|
|
1282
|
-
"__#
|
|
1283
|
-
"__#
|
|
1284
|
-
"__#
|
|
1285
|
-
"__#
|
|
1286
|
-
"__#
|
|
1287
|
-
"__#
|
|
1288
|
-
"__#
|
|
1289
|
-
"__#
|
|
1282
|
+
"__#27142@#errorCbsSym": symbol;
|
|
1283
|
+
"__#27142@#loadCbsSym": symbol;
|
|
1284
|
+
"__#27142@#getComponentsVersion"(): Promise<string>;
|
|
1285
|
+
"__#27142@#exposeAlternateEvents"(scriptEle: HTMLScriptElement): void;
|
|
1286
|
+
"__#27142@#handleFallbackScript"(errorCbs: ((error: string) => void)[], loadCbs: (() => void)[], elemId: string, scriptUrl: string): Promise<void>;
|
|
1287
|
+
"__#27142@#registerEvents"(scriptEle: HTMLScriptElement): void;
|
|
1288
|
+
"__#27142@#getDescopeUiLoadingScript"(): Promise<HTMLElement>;
|
|
1289
|
+
"__#27142@#descopeUi": Promise<any>;
|
|
1290
1290
|
readonly descopeUi: Promise<any>;
|
|
1291
|
-
"__#
|
|
1291
|
+
"__#27142@#loadDescopeUiComponent"(componentName: string): Promise<any>;
|
|
1292
1292
|
loadDescopeUiComponents(templateOrComponentNames: string[] | HTMLTemplateElement): Promise<any[]>;
|
|
1293
|
-
"__#
|
|
1293
|
+
"__#27142@#getDescopeUi"(): Promise<unknown>;
|
|
1294
1294
|
readonly baseCdnUrl: string;
|
|
1295
1295
|
}) & {
|
|
1296
1296
|
new (): HTMLElement;
|