@descope/sdk-mixins 0.0.0-next-0e292820-20250415
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/LICENSE +21 -0
- package/README.md +0 -0
- package/dist/cjs/constants.js +6 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/index.js +41 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/mixins/baseUrlMixin.js +14 -0
- package/dist/cjs/mixins/baseUrlMixin.js.map +1 -0
- package/dist/cjs/mixins/configMixin/configMixin.js +53 -0
- package/dist/cjs/mixins/configMixin/configMixin.js.map +1 -0
- package/dist/cjs/mixins/configMixin/constants.js +6 -0
- package/dist/cjs/mixins/configMixin/constants.js.map +1 -0
- package/dist/cjs/mixins/cookieConfigMixin.js +14 -0
- package/dist/cjs/mixins/cookieConfigMixin.js.map +1 -0
- package/dist/cjs/mixins/createStateManagementMixin.js +47 -0
- package/dist/cjs/mixins/createStateManagementMixin.js.map +1 -0
- package/dist/cjs/mixins/createValidateAttributesMixin/commonValidators.js +7 -0
- package/dist/cjs/mixins/createValidateAttributesMixin/commonValidators.js.map +1 -0
- package/dist/cjs/mixins/createValidateAttributesMixin/createValidateAttributesMixin.js +40 -0
- package/dist/cjs/mixins/createValidateAttributesMixin/createValidateAttributesMixin.js.map +1 -0
- package/dist/cjs/mixins/debuggerMixin/debugger-wc.js +237 -0
- package/dist/cjs/mixins/debuggerMixin/debugger-wc.js.map +1 -0
- package/dist/cjs/mixins/debuggerMixin/debuggerMixin.js +73 -0
- package/dist/cjs/mixins/debuggerMixin/debuggerMixin.js.map +1 -0
- package/dist/cjs/mixins/debuggerMixin/helpers.js +76 -0
- package/dist/cjs/mixins/debuggerMixin/helpers.js.map +1 -0
- package/dist/cjs/mixins/descopeUiMixin/constants.js +25 -0
- package/dist/cjs/mixins/descopeUiMixin/constants.js.map +1 -0
- package/dist/cjs/mixins/descopeUiMixin/descopeUiMixin.js +168 -0
- package/dist/cjs/mixins/descopeUiMixin/descopeUiMixin.js.map +1 -0
- package/dist/cjs/mixins/descopeUiMixin/helpers.js +18 -0
- package/dist/cjs/mixins/descopeUiMixin/helpers.js.map +1 -0
- package/dist/cjs/mixins/formMixin.js +57 -0
- package/dist/cjs/mixins/formMixin.js.map +1 -0
- package/dist/cjs/mixins/initElementMixin.js +39 -0
- package/dist/cjs/mixins/initElementMixin.js.map +1 -0
- package/dist/cjs/mixins/initLifecycleMixin.js +29 -0
- package/dist/cjs/mixins/initLifecycleMixin.js.map +1 -0
- package/dist/cjs/mixins/loggerMixin/loggerMixin.js +37 -0
- package/dist/cjs/mixins/loggerMixin/loggerMixin.js.map +1 -0
- package/dist/cjs/mixins/modalMixin/constants.js +6 -0
- package/dist/cjs/mixins/modalMixin/constants.js.map +1 -0
- package/dist/cjs/mixins/modalMixin/helpers.js +14 -0
- package/dist/cjs/mixins/modalMixin/helpers.js.map +1 -0
- package/dist/cjs/mixins/modalMixin/modalMixin.js +47 -0
- package/dist/cjs/mixins/modalMixin/modalMixin.js.map +1 -0
- package/dist/cjs/mixins/notificationsMixin/constants.js +6 -0
- package/dist/cjs/mixins/notificationsMixin/constants.js.map +1 -0
- package/dist/cjs/mixins/notificationsMixin/helpers.js +14 -0
- package/dist/cjs/mixins/notificationsMixin/helpers.js.map +1 -0
- package/dist/cjs/mixins/notificationsMixin/notificationsMixin.js +50 -0
- package/dist/cjs/mixins/notificationsMixin/notificationsMixin.js.map +1 -0
- package/dist/cjs/mixins/observeAttributesMixin/helpers.js +17 -0
- package/dist/cjs/mixins/observeAttributesMixin/helpers.js.map +1 -0
- package/dist/cjs/mixins/observeAttributesMixin/observeAttributesMixin.js +47 -0
- package/dist/cjs/mixins/observeAttributesMixin/observeAttributesMixin.js.map +1 -0
- package/dist/cjs/mixins/projectIdMixin.js +17 -0
- package/dist/cjs/mixins/projectIdMixin.js.map +1 -0
- package/dist/cjs/mixins/resetMixin.js +47 -0
- package/dist/cjs/mixins/resetMixin.js.map +1 -0
- package/dist/cjs/mixins/staticResourcesMixin/constants.js +13 -0
- package/dist/cjs/mixins/staticResourcesMixin/constants.js.map +1 -0
- package/dist/cjs/mixins/staticResourcesMixin/fetchWithFallbacks.js +43 -0
- package/dist/cjs/mixins/staticResourcesMixin/fetchWithFallbacks.js.map +1 -0
- package/dist/cjs/mixins/staticResourcesMixin/index.js +9 -0
- package/dist/cjs/mixins/staticResourcesMixin/index.js.map +1 -0
- package/dist/cjs/mixins/staticResourcesMixin/staticResourcesMixin.js +101 -0
- package/dist/cjs/mixins/staticResourcesMixin/staticResourcesMixin.js.map +1 -0
- package/dist/cjs/mixins/themeMixin/constants.js +7 -0
- package/dist/cjs/mixins/themeMixin/constants.js.map +1 -0
- package/dist/cjs/mixins/themeMixin/helpers.js +34 -0
- package/dist/cjs/mixins/themeMixin/helpers.js.map +1 -0
- package/dist/cjs/mixins/themeMixin/index.js +8 -0
- package/dist/cjs/mixins/themeMixin/index.js.map +1 -0
- package/dist/cjs/mixins/themeMixin/themeMixin.js +179 -0
- package/dist/cjs/mixins/themeMixin/themeMixin.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/esm/constants.js +4 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/index.js +18 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/mixins/baseUrlMixin.js +12 -0
- package/dist/esm/mixins/baseUrlMixin.js.map +1 -0
- package/dist/esm/mixins/configMixin/configMixin.js +51 -0
- package/dist/esm/mixins/configMixin/configMixin.js.map +1 -0
- package/dist/esm/mixins/configMixin/constants.js +4 -0
- package/dist/esm/mixins/configMixin/constants.js.map +1 -0
- package/dist/esm/mixins/cookieConfigMixin.js +12 -0
- package/dist/esm/mixins/cookieConfigMixin.js.map +1 -0
- package/dist/esm/mixins/createStateManagementMixin.js +45 -0
- package/dist/esm/mixins/createStateManagementMixin.js.map +1 -0
- package/dist/esm/mixins/createValidateAttributesMixin/commonValidators.js +5 -0
- package/dist/esm/mixins/createValidateAttributesMixin/commonValidators.js.map +1 -0
- package/dist/esm/mixins/createValidateAttributesMixin/createValidateAttributesMixin.js +38 -0
- package/dist/esm/mixins/createValidateAttributesMixin/createValidateAttributesMixin.js.map +1 -0
- package/dist/esm/mixins/debuggerMixin/debugger-wc.js +233 -0
- package/dist/esm/mixins/debuggerMixin/debugger-wc.js.map +1 -0
- package/dist/esm/mixins/debuggerMixin/debuggerMixin.js +71 -0
- package/dist/esm/mixins/debuggerMixin/debuggerMixin.js.map +1 -0
- package/dist/esm/mixins/debuggerMixin/helpers.js +72 -0
- package/dist/esm/mixins/debuggerMixin/helpers.js.map +1 -0
- package/dist/esm/mixins/descopeUiMixin/constants.js +16 -0
- package/dist/esm/mixins/descopeUiMixin/constants.js.map +1 -0
- package/dist/esm/mixins/descopeUiMixin/descopeUiMixin.js +166 -0
- package/dist/esm/mixins/descopeUiMixin/descopeUiMixin.js.map +1 -0
- package/dist/esm/mixins/descopeUiMixin/helpers.js +14 -0
- package/dist/esm/mixins/descopeUiMixin/helpers.js.map +1 -0
- package/dist/esm/mixins/formMixin.js +55 -0
- package/dist/esm/mixins/formMixin.js.map +1 -0
- package/dist/esm/mixins/initElementMixin.js +37 -0
- package/dist/esm/mixins/initElementMixin.js.map +1 -0
- package/dist/esm/mixins/initLifecycleMixin.js +27 -0
- package/dist/esm/mixins/initLifecycleMixin.js.map +1 -0
- package/dist/esm/mixins/loggerMixin/loggerMixin.js +35 -0
- package/dist/esm/mixins/loggerMixin/loggerMixin.js.map +1 -0
- package/dist/esm/mixins/modalMixin/constants.js +4 -0
- package/dist/esm/mixins/modalMixin/constants.js.map +1 -0
- package/dist/esm/mixins/modalMixin/helpers.js +12 -0
- package/dist/esm/mixins/modalMixin/helpers.js.map +1 -0
- package/dist/esm/mixins/modalMixin/modalMixin.js +45 -0
- package/dist/esm/mixins/modalMixin/modalMixin.js.map +1 -0
- package/dist/esm/mixins/notificationsMixin/constants.js +4 -0
- package/dist/esm/mixins/notificationsMixin/constants.js.map +1 -0
- package/dist/esm/mixins/notificationsMixin/helpers.js +12 -0
- package/dist/esm/mixins/notificationsMixin/helpers.js.map +1 -0
- package/dist/esm/mixins/notificationsMixin/notificationsMixin.js +48 -0
- package/dist/esm/mixins/notificationsMixin/notificationsMixin.js.map +1 -0
- package/dist/esm/mixins/observeAttributesMixin/helpers.js +15 -0
- package/dist/esm/mixins/observeAttributesMixin/helpers.js.map +1 -0
- package/dist/esm/mixins/observeAttributesMixin/observeAttributesMixin.js +45 -0
- package/dist/esm/mixins/observeAttributesMixin/observeAttributesMixin.js.map +1 -0
- package/dist/esm/mixins/projectIdMixin.js +15 -0
- package/dist/esm/mixins/projectIdMixin.js.map +1 -0
- package/dist/esm/mixins/resetMixin.js +45 -0
- package/dist/esm/mixins/resetMixin.js.map +1 -0
- package/dist/esm/mixins/staticResourcesMixin/constants.js +9 -0
- package/dist/esm/mixins/staticResourcesMixin/constants.js.map +1 -0
- package/dist/esm/mixins/staticResourcesMixin/fetchWithFallbacks.js +41 -0
- package/dist/esm/mixins/staticResourcesMixin/fetchWithFallbacks.js.map +1 -0
- package/dist/esm/mixins/staticResourcesMixin/index.js +2 -0
- package/dist/esm/mixins/staticResourcesMixin/index.js.map +1 -0
- package/dist/esm/mixins/staticResourcesMixin/staticResourcesMixin.js +98 -0
- package/dist/esm/mixins/staticResourcesMixin/staticResourcesMixin.js.map +1 -0
- package/dist/esm/mixins/themeMixin/constants.js +5 -0
- package/dist/esm/mixins/themeMixin/constants.js.map +1 -0
- package/dist/esm/mixins/themeMixin/helpers.js +31 -0
- package/dist/esm/mixins/themeMixin/helpers.js.map +1 -0
- package/dist/esm/mixins/themeMixin/index.js +2 -0
- package/dist/esm/mixins/themeMixin/index.js.map +1 -0
- package/dist/esm/mixins/themeMixin/themeMixin.js +177 -0
- package/dist/esm/mixins/themeMixin/themeMixin.js.map +1 -0
- package/dist/index.d.ts +6169 -0
- package/dist/types/constants.d.ts +1 -0
- package/dist/types/index.d.ts +23 -0
- package/dist/types/mixins/baseUrlMixin.d.ts +331 -0
- package/dist/types/mixins/configMixin/configMixin.d.ts +363 -0
- package/dist/types/mixins/configMixin/constants.d.ts +1 -0
- package/dist/types/mixins/configMixin/index.d.ts +2 -0
- package/dist/types/mixins/configMixin/types.d.ts +66 -0
- package/dist/types/mixins/cookieConfigMixin.d.ts +331 -0
- package/dist/types/mixins/createStateManagementMixin.d.ts +341 -0
- package/dist/types/mixins/createValidateAttributesMixin/commonValidators.d.ts +1 -0
- package/dist/types/mixins/createValidateAttributesMixin/createValidateAttributesMixin.d.ts +346 -0
- package/dist/types/mixins/createValidateAttributesMixin/index.d.ts +1 -0
- package/dist/types/mixins/debuggerMixin/debugger-wc.d.ts +9 -0
- package/dist/types/mixins/debuggerMixin/debuggerMixin.d.ts +347 -0
- package/dist/types/mixins/debuggerMixin/helpers.d.ts +4 -0
- package/dist/types/mixins/debuggerMixin/index.d.ts +1 -0
- package/dist/types/mixins/debuggerMixin/types.d.ts +12 -0
- package/dist/types/mixins/descopeUiMixin/constants.d.ts +8 -0
- package/dist/types/mixins/descopeUiMixin/descopeUiMixin.d.ts +378 -0
- package/dist/types/mixins/descopeUiMixin/helpers.d.ts +3 -0
- package/dist/types/mixins/descopeUiMixin/index.d.ts +1 -0
- package/dist/types/mixins/formMixin.d.ts +345 -0
- package/dist/types/mixins/initElementMixin.d.ts +332 -0
- package/dist/types/mixins/initLifecycleMixin.d.ts +332 -0
- package/dist/types/mixins/loggerMixin/index.d.ts +2 -0
- package/dist/types/mixins/loggerMixin/loggerMixin.d.ts +339 -0
- package/dist/types/mixins/loggerMixin/types.d.ts +6 -0
- package/dist/types/mixins/modalMixin/constants.d.ts +1 -0
- package/dist/types/mixins/modalMixin/helpers.d.ts +1 -0
- package/dist/types/mixins/modalMixin/index.d.ts +1 -0
- package/dist/types/mixins/modalMixin/modalMixin.d.ts +408 -0
- package/dist/types/mixins/notificationsMixin/constants.d.ts +1 -0
- package/dist/types/mixins/notificationsMixin/helpers.d.ts +1 -0
- package/dist/types/mixins/notificationsMixin/index.d.ts +1 -0
- package/dist/types/mixins/notificationsMixin/notificationsMixin.d.ts +427 -0
- package/dist/types/mixins/observeAttributesMixin/helpers.d.ts +1 -0
- package/dist/types/mixins/observeAttributesMixin/index.d.ts +1 -0
- package/dist/types/mixins/observeAttributesMixin/observeAttributesMixin.d.ts +342 -0
- package/dist/types/mixins/projectIdMixin.d.ts +342 -0
- package/dist/types/mixins/resetMixin.d.ts +344 -0
- package/dist/types/mixins/staticResourcesMixin/constants.d.ts +4 -0
- package/dist/types/mixins/staticResourcesMixin/fetchWithFallbacks.d.ts +7 -0
- package/dist/types/mixins/staticResourcesMixin/index.d.ts +1 -0
- package/dist/types/mixins/staticResourcesMixin/staticResourcesMixin.d.ts +362 -0
- package/dist/types/mixins/themeMixin/constants.d.ts +2 -0
- package/dist/types/mixins/themeMixin/helpers.d.ts +5 -0
- package/dist/types/mixins/themeMixin/index.d.ts +1 -0
- package/dist/types/mixins/themeMixin/themeMixin.d.ts +408 -0
- package/package.json +125 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"descopeUiMixin.js","sources":["../../../../src/mixins/descopeUiMixin/descopeUiMixin.ts"],"sourcesContent":["import { compose, createSingletonMixin } from '@descope/sdk-helpers';\nimport { configMixin } from '../configMixin';\nimport { loggerMixin } from '../loggerMixin';\nimport {\n DESCOPE_UI_FALLBACK_2_SCRIPT_ID,\n DESCOPE_UI_FALLBACK_SCRIPT_ID,\n DESCOPE_UI_SCRIPT_ID,\n UI_COMPONENTS_FALLBACK_2_URL,\n UI_COMPONENTS_FALLBACK_URL,\n UI_COMPONENTS_URL,\n} from './constants';\nimport {\n generateScriptUrl,\n getDescopeUiComponentsList,\n setupScript,\n} from './helpers';\n\ntype ErrorCb = (error: string) => void;\ntype LoadCb = () => void;\n\nexport const descopeUiMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(loggerMixin, configMixin)(superclass);\n\n return class DescopeUiMixinClass extends BaseClass {\n #errorCbsSym = Symbol('errorCbs');\n\n #loadCbsSym = Symbol('loadCbs');\n\n // eslint-disable-next-line class-methods-use-this\n async #getComponentsVersion() {\n const config = await this.config;\n const componentsVersion = config?.projectConfig?.componentsVersion;\n\n if (!componentsVersion) {\n this.logger.error('Could not get components version');\n } else {\n this.logger.debug(`Got component version \"${componentsVersion}\"`);\n }\n\n return componentsVersion;\n }\n\n // in order to allow only single load of DescopeUI across different instances,\n // and also allow fallback in case the components cannot be loaded from descope domain\n // we are managing an alternative way to register to the script events\n #exposeAlternateEvents(scriptEle: HTMLScriptElement) {\n const errorCbsSym = this.#errorCbsSym;\n const loadCbsSym = this.#loadCbsSym;\n\n // eslint-disable-next-line no-param-reassign\n scriptEle[errorCbsSym] = [];\n // eslint-disable-next-line no-param-reassign\n scriptEle[loadCbsSym] = [];\n\n Object.defineProperty(scriptEle, 'onerror', {\n set(cb: ErrorCb) {\n scriptEle[errorCbsSym].push(cb);\n },\n });\n\n Object.defineProperty(scriptEle, 'onload', {\n set(cb: LoadCb) {\n scriptEle[loadCbsSym].push(cb);\n },\n });\n }\n\n async #handleFallbackScript(\n errorCbs: ErrorCb[],\n loadCbs: LoadCb[],\n elemId: string,\n scriptUrl: string,\n ) {\n this.logger.debug('Trying to load DescopeUI from a fallback URL');\n const fallbackScriptEle = setupScript(elemId);\n document.body.append(fallbackScriptEle);\n\n fallbackScriptEle.addEventListener('error', () => {\n errorCbs.forEach((cb: ErrorCb) =>\n cb(\n `Cannot load DescopeUI from fallback URL, Make sure this URL is valid and return the correct script: \"${fallbackScriptEle.src}\"`,\n ),\n );\n });\n\n fallbackScriptEle.addEventListener('load', () => {\n loadCbs.forEach((cb: LoadCb) => cb());\n });\n\n fallbackScriptEle.src = generateScriptUrl(\n scriptUrl,\n await this.#getComponentsVersion(),\n );\n }\n\n #registerEvents(scriptEle: HTMLScriptElement) {\n scriptEle.addEventListener('error', () => {\n scriptEle[this.#errorCbsSym].forEach((cb: ErrorCb) =>\n cb(\n `Cannot load DescopeUI from main URL, Make sure this URL is valid and return the correct script: \"${scriptEle.src}\"`,\n ),\n );\n\n // in case we could not load DescopeUI from the main URL, we are trying to load it from a fallback URL\n this.#handleFallbackScript(\n [\n // we are adding a second fallback\n this.#handleFallbackScript.bind(\n this,\n scriptEle[this.#errorCbsSym],\n scriptEle[this.#loadCbsSym],\n DESCOPE_UI_FALLBACK_2_SCRIPT_ID,\n UI_COMPONENTS_FALLBACK_2_URL,\n ),\n ...scriptEle[this.#errorCbsSym],\n ],\n scriptEle[this.#loadCbsSym],\n DESCOPE_UI_FALLBACK_SCRIPT_ID,\n UI_COMPONENTS_FALLBACK_URL,\n );\n });\n\n scriptEle.addEventListener('load', () => {\n scriptEle[this.#loadCbsSym].forEach((cb: LoadCb) => cb());\n });\n }\n\n async #getDescopeUiLoadingScript() {\n if (!document.querySelector(`script#${DESCOPE_UI_SCRIPT_ID}`)) {\n this.logger.debug(\n 'DescopeUI loading script does not exist, creating it',\n this,\n );\n\n const scriptEle = setupScript(DESCOPE_UI_SCRIPT_ID);\n\n document.body.append(scriptEle);\n\n this.#exposeAlternateEvents(scriptEle);\n this.#registerEvents(scriptEle);\n\n scriptEle.src = generateScriptUrl(\n this.baseCdnUrl || UI_COMPONENTS_URL,\n await this.#getComponentsVersion(),\n );\n } else {\n this.logger.debug('DescopeUI loading script already exists', this);\n }\n\n return document.getElementById(DESCOPE_UI_SCRIPT_ID);\n }\n\n #descopeUi: Promise<any>;\n\n get descopeUi() {\n if (!this.#descopeUi) {\n this.#descopeUi = this.#getDescopeUi();\n }\n\n return this.#descopeUi;\n }\n\n async #loadDescopeUiComponent(componentName: string) {\n const isComponentAlreadyDefined = !!customElements.get(componentName);\n\n if (isComponentAlreadyDefined) {\n this.logger.debug(\n `Loading component \"${componentName}\" is skipped as it is already defined`,\n );\n return undefined;\n }\n\n const descopeUI = await this.descopeUi;\n\n if (!descopeUI[componentName]) {\n this.logger.error(\n `Cannot load UI component \"${componentName}\"`,\n `Descope UI does not have a component named \"${componentName}\", available components are: \"${Object.keys(\n descopeUI,\n ).join(', ')}\"`,\n );\n return undefined;\n }\n\n try {\n // eslint-disable-next-line @typescript-eslint/return-await\n return await descopeUI[componentName]();\n } catch (e) {\n // this error is thrown when trying to register a component which is already registered\n // when running 2 flows on the same page, it might happen that the register fn is called twice\n // in case it happens, we are silently ignore the error\n if (e.name === 'NotSupportedError') {\n // eslint-disable-next-line no-console\n console.debug(\n `Encountered an error while attempting to define the \"${componentName}\" component, it is likely that this component is already defined`,\n );\n } else {\n throw e;\n }\n }\n\n return undefined;\n }\n\n async loadDescopeUiComponents(\n templateOrComponentNames: HTMLTemplateElement | string[],\n ) {\n const descopeUiComponentsList = Array.isArray(templateOrComponentNames)\n ? templateOrComponentNames\n : getDescopeUiComponentsList(templateOrComponentNames);\n\n return Promise.all(\n descopeUiComponentsList.map((componentName: string) =>\n this.#loadDescopeUiComponent(componentName),\n ),\n );\n }\n\n #getDescopeUi() {\n return new Promise((res) => {\n if (globalThis.DescopeUI) {\n res(globalThis.DescopeUI);\n }\n\n this.#getDescopeUiLoadingScript().then((scriptEle) => {\n // eslint-disable-next-line no-param-reassign\n scriptEle!.onerror = this.logger.error;\n // eslint-disable-next-line no-param-reassign\n scriptEle!.onload = () => {\n this.logger.debug('DescopeUI was loaded');\n res(globalThis.DescopeUI);\n };\n\n // in case the load event was dispatched before we registered, we have a fallback\n setTimeout(() => {\n if (globalThis.DescopeUI) {\n res(globalThis.DescopeUI);\n }\n });\n });\n });\n }\n\n get baseCdnUrl() {\n return this.getAttribute('base-cdn-url');\n }\n };\n },\n);\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { UI_COMPONENTS_URL_VERSION_PLACEHOLDER } from './constants.js';
|
|
2
|
+
|
|
3
|
+
const setupScript = (id) => {
|
|
4
|
+
const scriptEle = document.createElement('script');
|
|
5
|
+
scriptEle.id = id;
|
|
6
|
+
return scriptEle;
|
|
7
|
+
};
|
|
8
|
+
const generateScriptUrl = (urlTemplate, componentsVersion) => urlTemplate.replace(UI_COMPONENTS_URL_VERSION_PLACEHOLDER, componentsVersion);
|
|
9
|
+
const getDescopeUiComponentsList = (template) => [
|
|
10
|
+
...Array.from(template.content.querySelectorAll('*')).reduce((acc, el) => el.localName.startsWith('descope-') ? acc.add(el.localName) : acc, new Set()),
|
|
11
|
+
];
|
|
12
|
+
|
|
13
|
+
export { generateScriptUrl, getDescopeUiComponentsList, setupScript };
|
|
14
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../../src/mixins/descopeUiMixin/helpers.ts"],"sourcesContent":["import { UI_COMPONENTS_URL_VERSION_PLACEHOLDER } from './constants';\n\nexport const setupScript = (id: string) => {\n const scriptEle = document.createElement('script');\n scriptEle.id = id;\n\n return scriptEle;\n};\n\nexport const generateScriptUrl = (\n urlTemplate: string,\n componentsVersion: string,\n) =>\n urlTemplate.replace(UI_COMPONENTS_URL_VERSION_PLACEHOLDER, componentsVersion);\n\nexport const getDescopeUiComponentsList = (template: HTMLTemplateElement) => [\n ...Array.from(template.content.querySelectorAll('*')).reduce<Set<string>>(\n (acc, el: Element) =>\n el.localName.startsWith('descope-') ? acc.add(el.localName) : acc,\n new Set(),\n ),\n];\n"],"names":[],"mappings":";;AAEa,MAAA,WAAW,GAAG,CAAC,EAAU,KAAI;IACxC,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACnD,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;AAElB,IAAA,OAAO,SAAS,CAAC;AACnB,EAAE;AAEW,MAAA,iBAAiB,GAAG,CAC/B,WAAmB,EACnB,iBAAyB,KAEzB,WAAW,CAAC,OAAO,CAAC,qCAAqC,EAAE,iBAAiB,EAAE;MAEnE,0BAA0B,GAAG,CAAC,QAA6B,KAAK;IAC3E,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAC1D,CAAC,GAAG,EAAE,EAAW,KACf,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,EACnE,IAAI,GAAG,EAAE,CACV;;;;;"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { createSingletonMixin } from '@descope/sdk-helpers';
|
|
2
|
+
import { loggerMixin } from './loggerMixin/loggerMixin.js';
|
|
3
|
+
|
|
4
|
+
const formMixin = createSingletonMixin((superclass) => class FormMixinClass extends loggerMixin(superclass) {
|
|
5
|
+
validateForm(rootEle) {
|
|
6
|
+
return this.getFormInputs(rootEle).every((input) => {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
(_a = input.reportValidity) === null || _a === void 0 ? void 0 : _a.call(input);
|
|
9
|
+
return (_b = input.checkValidity) === null || _b === void 0 ? void 0 : _b.call(input);
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
// eslint-disable-next-line class-methods-use-this
|
|
13
|
+
getFormInputs(rootEle) {
|
|
14
|
+
if (!rootEle) {
|
|
15
|
+
this.logger.debug('cannot get form inputs, no root element was received');
|
|
16
|
+
return [];
|
|
17
|
+
}
|
|
18
|
+
return Array.from(rootEle.querySelectorAll('[name]'));
|
|
19
|
+
}
|
|
20
|
+
getFormData(rootEle) {
|
|
21
|
+
return this.getFormInputs(rootEle).reduce((acc, input) => Object.assign(acc, { [input.getAttribute('name')]: input.value }), {});
|
|
22
|
+
}
|
|
23
|
+
setFormData(rootEle, data) {
|
|
24
|
+
this.getFormInputs(rootEle).forEach((input) => {
|
|
25
|
+
// eslint-disable-next-line no-prototype-builtins
|
|
26
|
+
if (data.hasOwnProperty(input.getAttribute('name'))) {
|
|
27
|
+
// eslint-disable-next-line no-param-reassign
|
|
28
|
+
input.value = data[input.getAttribute('name')];
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
resetFormData(rootEle) {
|
|
33
|
+
this.getFormInputs(rootEle).forEach((input) => {
|
|
34
|
+
// eslint-disable-next-line no-param-reassign
|
|
35
|
+
input.value = '';
|
|
36
|
+
input.checked = false;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
getFormFieldNames(rootEle) {
|
|
40
|
+
return this.getFormInputs(rootEle).map((ele) => ele.name);
|
|
41
|
+
}
|
|
42
|
+
disableFormField(rootEle, name) {
|
|
43
|
+
var _a;
|
|
44
|
+
(_a = this.getFormInputs(rootEle)
|
|
45
|
+
.find((input) => input.name === name)) === null || _a === void 0 ? void 0 : _a.setAttribute('disabled', 'true');
|
|
46
|
+
}
|
|
47
|
+
removeFormField(rootEle, name) {
|
|
48
|
+
var _a;
|
|
49
|
+
(_a = this.getFormInputs(rootEle)
|
|
50
|
+
.find((input) => input.name === name)) === null || _a === void 0 ? void 0 : _a.remove();
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
export { formMixin };
|
|
55
|
+
//# sourceMappingURL=formMixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formMixin.js","sources":["../../../src/mixins/formMixin.ts"],"sourcesContent":["import { createSingletonMixin } from '@descope/sdk-helpers';\nimport { loggerMixin } from './loggerMixin';\n\ntype ElementOrEmpty = Element | null | undefined;\n\nexport const formMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) =>\n class FormMixinClass extends loggerMixin(superclass) {\n validateForm(rootEle: ElementOrEmpty) {\n return this.getFormInputs(rootEle).every((input: HTMLInputElement) => {\n input.reportValidity?.();\n return input.checkValidity?.();\n });\n }\n\n // eslint-disable-next-line class-methods-use-this\n getFormInputs(rootEle: ElementOrEmpty): HTMLInputElement[] {\n if (!rootEle) {\n this.logger.debug(\n 'cannot get form inputs, no root element was received',\n );\n return [];\n }\n return Array.from(\n rootEle.querySelectorAll('[name]'),\n ) as HTMLInputElement[];\n }\n\n getFormData(rootEle: ElementOrEmpty): any {\n return this.getFormInputs(rootEle).reduce(\n (acc, input) =>\n Object.assign(acc, { [input.getAttribute('name')!]: input.value }),\n {},\n );\n }\n\n setFormData(rootEle: ElementOrEmpty, data: Record<string, any>) {\n this.getFormInputs(rootEle).forEach((input) => {\n // eslint-disable-next-line no-prototype-builtins\n if (data.hasOwnProperty(input.getAttribute('name')!)) {\n // eslint-disable-next-line no-param-reassign\n input.value = data[input.getAttribute('name')!];\n }\n });\n }\n\n resetFormData(rootEle: ElementOrEmpty) {\n this.getFormInputs(rootEle).forEach((input) => {\n // eslint-disable-next-line no-param-reassign\n input.value = '';\n input.checked = false;\n });\n }\n\n getFormFieldNames(rootEle: ElementOrEmpty) {\n return this.getFormInputs(rootEle).map((ele) => ele.name);\n }\n\n disableFormField(rootEle: ElementOrEmpty, name: string) {\n this.getFormInputs(rootEle)\n .find((input) => input.name === name)\n ?.setAttribute('disabled', 'true');\n }\n\n removeFormField(rootEle: ElementOrEmpty, name: string) {\n this.getFormInputs(rootEle)\n .find((input) => input.name === name)\n ?.remove();\n }\n },\n);\n"],"names":[],"mappings":";;;AAKa,MAAA,SAAS,GAAG,oBAAoB,CAC3C,CAAqC,UAAa,KAChD,MAAM,cAAe,SAAQ,WAAW,CAAC,UAAU,CAAC,CAAA;AAClD,IAAA,YAAY,CAAC,OAAuB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAuB,KAAI;;AACnE,YAAA,CAAA,EAAA,GAAA,KAAK,CAAC,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,KAAA,CAAI,CAAC;AACzB,YAAA,OAAO,CAAA,EAAA,GAAA,KAAK,CAAC,aAAa,qDAAI,CAAC;AACjC,SAAC,CAAC,CAAC;KACJ;;AAGD,IAAA,aAAa,CAAC,OAAuB,EAAA;QACnC,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,sDAAsD,CACvD,CAAC;AACF,YAAA,OAAO,EAAE,CAAC;SACX;QACD,OAAO,KAAK,CAAC,IAAI,CACf,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CACb,CAAC;KACzB;AAED,IAAA,WAAW,CAAC,OAAuB,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,CACvC,CAAC,GAAG,EAAE,KAAK,KACT,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,EACpE,EAAE,CACH,CAAC;KACH;IAED,WAAW,CAAC,OAAuB,EAAE,IAAyB,EAAA;QAC5D,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;;AAE5C,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAE,CAAC,EAAE;;AAEpD,gBAAA,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAE,CAAC,CAAC;aACjD;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,aAAa,CAAC,OAAuB,EAAA;QACnC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;;AAE5C,YAAA,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;AACjB,YAAA,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;AACxB,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,iBAAiB,CAAC,OAAuB,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;KAC3D;IAED,gBAAgB,CAAC,OAAuB,EAAE,IAAY,EAAA;;AACpD,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AACxB,aAAA,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,0CACnC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;KACtC;IAED,eAAe,CAAC,OAAuB,EAAE,IAAY,EAAA;;AACnD,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AACxB,aAAA,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,MACnC,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,EAAE,CAAC;KACd;AACF,CAAA;;;;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { createSingletonMixin } from '@descope/sdk-helpers';
|
|
2
|
+
|
|
3
|
+
const CONTENT_ROOT_ID = 'content-root';
|
|
4
|
+
const ROOT_ID = 'root';
|
|
5
|
+
const initElementMixin = createSingletonMixin((superclass) => class InitElementMixinClass extends superclass {
|
|
6
|
+
constructor(...rest) {
|
|
7
|
+
var _a, _b, _c;
|
|
8
|
+
var _d;
|
|
9
|
+
super(...rest);
|
|
10
|
+
this.attachShadow({ mode: 'open' }).innerHTML = `
|
|
11
|
+
<div id="${ROOT_ID}">
|
|
12
|
+
<div id="${CONTENT_ROOT_ID}"></div>
|
|
13
|
+
</div>
|
|
14
|
+
`;
|
|
15
|
+
const sheet = new CSSStyleSheet();
|
|
16
|
+
sheet.replaceSync(`
|
|
17
|
+
#${ROOT_ID}, #${CONTENT_ROOT_ID} {
|
|
18
|
+
height: 100%;
|
|
19
|
+
}
|
|
20
|
+
#${ROOT_ID} {
|
|
21
|
+
position: relative;
|
|
22
|
+
height: fit-content;
|
|
23
|
+
}
|
|
24
|
+
`);
|
|
25
|
+
(_a = (_d = this.shadowRoot).adoptedStyleSheets) !== null && _a !== void 0 ? _a : (_d.adoptedStyleSheets = []);
|
|
26
|
+
this.shadowRoot.adoptedStyleSheets = [
|
|
27
|
+
...this.shadowRoot.adoptedStyleSheets,
|
|
28
|
+
sheet,
|
|
29
|
+
];
|
|
30
|
+
this.contentRootElement =
|
|
31
|
+
(_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.getElementById(CONTENT_ROOT_ID);
|
|
32
|
+
this.rootElement = (_c = this.shadowRoot) === null || _c === void 0 ? void 0 : _c.getElementById(ROOT_ID);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
export { initElementMixin };
|
|
37
|
+
//# sourceMappingURL=initElementMixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initElementMixin.js","sources":["../../../src/mixins/initElementMixin.ts"],"sourcesContent":["import { createSingletonMixin } from '@descope/sdk-helpers';\n\nconst CONTENT_ROOT_ID = 'content-root';\nconst ROOT_ID = 'root';\n\nexport const initElementMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) =>\n class InitElementMixinClass extends superclass {\n // the content of contentRootElement is being replaced dynamically\n // do not place content which is not dynamic inside\n contentRootElement: HTMLElement;\n\n rootElement: HTMLElement;\n\n constructor(...rest) {\n super(...rest);\n\n this.attachShadow({ mode: 'open' }).innerHTML = `\n <div id=\"${ROOT_ID}\">\n <div id=\"${CONTENT_ROOT_ID}\"></div>\n </div>\n `;\n\n const sheet = new CSSStyleSheet();\n sheet.replaceSync(`\n #${ROOT_ID}, #${CONTENT_ROOT_ID} {\n height: 100%;\n }\n #${ROOT_ID} {\n position: relative;\n height: fit-content;\n }\n `);\n\n this.shadowRoot.adoptedStyleSheets ??= [];\n this.shadowRoot.adoptedStyleSheets = [\n ...this.shadowRoot.adoptedStyleSheets,\n sheet,\n ];\n\n this.contentRootElement =\n this.shadowRoot?.getElementById(CONTENT_ROOT_ID)!;\n this.rootElement = this.shadowRoot?.getElementById(ROOT_ID)!;\n }\n },\n);\n"],"names":[],"mappings":";;AAEA,MAAM,eAAe,GAAG,cAAc,CAAC;AACvC,MAAM,OAAO,GAAG,MAAM,CAAC;AAEhB,MAAM,gBAAgB,GAAG,oBAAoB,CAClD,CAAqC,UAAa,KAChD,MAAM,qBAAsB,SAAQ,UAAU,CAAA;AAO5C,IAAA,WAAA,CAAY,GAAG,IAAI,EAAA;;;AACjB,QAAA,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,GAAG,CAAA;qBACnC,OAAO,CAAA;uBACL,eAAe,CAAA;;WAE3B,CAAC;AAEJ,QAAA,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;QAClC,KAAK,CAAC,WAAW,CAAC,CAAA;AACX,aAAA,EAAA,OAAO,MAAM,eAAe,CAAA;;;eAG5B,OAAO,CAAA;;;;AAIX,UAAA,CAAA,CAAC,CAAC;QAEL,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,EAAC,kBAAkB,MAAlB,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,IAAA,EAAA,CAAA,kBAAkB,GAAK,EAAE,CAAC,CAAA;AAC1C,QAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG;AACnC,YAAA,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB;YACrC,KAAK;SACN,CAAC;AAEF,QAAA,IAAI,CAAC,kBAAkB;YACrB,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,cAAc,CAAC,eAAe,CAAE,CAAC;AACpD,QAAA,IAAI,CAAC,WAAW,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,cAAc,CAAC,OAAO,CAAE,CAAC;KAC9D;AACF,CAAA;;;;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from 'tslib';
|
|
2
|
+
import { createSingletonMixin } from '@descope/sdk-helpers';
|
|
3
|
+
|
|
4
|
+
const initLifecycleMixin = createSingletonMixin((superclass) => { var _InitLifecycleMixinClass_isInit, _a; return _a = class InitLifecycleMixinClass extends superclass {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
7
|
+
_InitLifecycleMixinClass_isInit.set(this, true);
|
|
8
|
+
}
|
|
9
|
+
connectedCallback() {
|
|
10
|
+
var _b, _c;
|
|
11
|
+
(_b = super.connectedCallback) === null || _b === void 0 ? void 0 : _b.call(this);
|
|
12
|
+
if ((_c = this.shadowRoot) === null || _c === void 0 ? void 0 : _c.isConnected) {
|
|
13
|
+
// the init function is running once, on the first time the component is connected
|
|
14
|
+
if (__classPrivateFieldGet(this, _InitLifecycleMixinClass_isInit, "f")) {
|
|
15
|
+
__classPrivateFieldSet(this, _InitLifecycleMixinClass_isInit, false, "f");
|
|
16
|
+
this.init();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
// eslint-disable-next-line class-methods-use-this, @typescript-eslint/no-empty-function
|
|
21
|
+
async init() { }
|
|
22
|
+
},
|
|
23
|
+
_InitLifecycleMixinClass_isInit = new WeakMap(),
|
|
24
|
+
_a; });
|
|
25
|
+
|
|
26
|
+
export { initLifecycleMixin };
|
|
27
|
+
//# sourceMappingURL=initLifecycleMixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initLifecycleMixin.js","sources":["../../../src/mixins/initLifecycleMixin.ts"],"sourcesContent":["import { createSingletonMixin } from '@descope/sdk-helpers';\n\nexport const initLifecycleMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) =>\n class InitLifecycleMixinClass extends superclass {\n #isInit = true;\n\n connectedCallback() {\n super.connectedCallback?.();\n\n if (this.shadowRoot?.isConnected) {\n // the init function is running once, on the first time the component is connected\n if (this.#isInit) {\n this.#isInit = false;\n this.init();\n }\n }\n }\n\n // eslint-disable-next-line class-methods-use-this, @typescript-eslint/no-empty-function\n async init() {}\n },\n);\n"],"names":[],"mappings":";;;AAEO,MAAM,kBAAkB,GAAG,oBAAoB,CACpD,CAAqC,UAAa,KAAI,EAAA,IAAA,+BAAA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,GACpD,MAAM,uBAAwB,SAAQ,UAAU,CAAA;AAAhD,QAAA,WAAA,GAAA;;AACE,YAAA,+BAAA,CAAA,GAAA,CAAA,IAAA,EAAU,IAAI,CAAC,CAAA;SAgBhB;QAdC,iBAAiB,GAAA;;AACf,YAAA,CAAA,EAAA,GAAA,KAAK,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,CAAI,CAAC;AAE5B,YAAA,IAAI,MAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE;;AAEhC,gBAAA,IAAI,sBAAA,CAAA,IAAI,EAAQ,+BAAA,EAAA,GAAA,CAAA,EAAE;AAChB,oBAAA,sBAAA,CAAA,IAAI,EAAA,+BAAA,EAAW,KAAK,EAAA,GAAA,CAAA,CAAC;oBACrB,IAAI,CAAC,IAAI,EAAE,CAAC;iBACb;aACF;SACF;;QAGD,MAAM,IAAI,GAAA,GAAK;AAChB,KAAA;;AAAA,IAAA,EAAA,CAAA,EAAA;;;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from 'tslib';
|
|
2
|
+
import { createSingletonMixin } from '@descope/sdk-helpers';
|
|
3
|
+
|
|
4
|
+
const logLevels = ['error', 'warn', 'info', 'debug'];
|
|
5
|
+
const loggerMixin = createSingletonMixin((superclass) => { var _LoggerMixinClass_instances, _LoggerMixinClass_logger, _LoggerMixinClass_wrapLogger, _a; return _a = class LoggerMixinClass extends superclass {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
_LoggerMixinClass_instances.add(this);
|
|
9
|
+
_LoggerMixinClass_logger.set(this, __classPrivateFieldGet(this, _LoggerMixinClass_instances, "m", _LoggerMixinClass_wrapLogger).call(this, console));
|
|
10
|
+
}
|
|
11
|
+
set logger(logger) {
|
|
12
|
+
__classPrivateFieldSet(this, _LoggerMixinClass_logger, __classPrivateFieldGet(this, _LoggerMixinClass_instances, "m", _LoggerMixinClass_wrapLogger).call(this, logger || console), "f");
|
|
13
|
+
}
|
|
14
|
+
get logger() {
|
|
15
|
+
return __classPrivateFieldGet(this, _LoggerMixinClass_logger, "f");
|
|
16
|
+
}
|
|
17
|
+
// eslint-disable-next-line class-methods-use-this, @typescript-eslint/no-unused-vars
|
|
18
|
+
onLogEvent(logLevel, data) { }
|
|
19
|
+
},
|
|
20
|
+
_LoggerMixinClass_logger = new WeakMap(),
|
|
21
|
+
_LoggerMixinClass_instances = new WeakSet(),
|
|
22
|
+
_LoggerMixinClass_wrapLogger = function _LoggerMixinClass_wrapLogger(logger) {
|
|
23
|
+
return logLevels.reduce((acc, logLevel) => {
|
|
24
|
+
acc[logLevel] = (...args) => {
|
|
25
|
+
var _b;
|
|
26
|
+
this.onLogEvent(logLevel, args);
|
|
27
|
+
(_b = logger[logLevel]) === null || _b === void 0 ? void 0 : _b.call(logger, ...args);
|
|
28
|
+
};
|
|
29
|
+
return acc;
|
|
30
|
+
}, {});
|
|
31
|
+
},
|
|
32
|
+
_a; });
|
|
33
|
+
|
|
34
|
+
export { loggerMixin };
|
|
35
|
+
//# sourceMappingURL=loggerMixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loggerMixin.js","sources":["../../../../src/mixins/loggerMixin/loggerMixin.ts"],"sourcesContent":["import { createSingletonMixin } from '@descope/sdk-helpers';\nimport { Logger } from './types';\n\nconst logLevels = ['error', 'warn', 'info', 'debug'] as const;\n\nexport type LogLevel = (typeof logLevels)[number];\n\nexport const loggerMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) =>\n class LoggerMixinClass extends superclass {\n #logger: Logger = this.#wrapLogger(console);\n\n #wrapLogger(logger: Partial<Logger>) {\n return logLevels.reduce((acc, logLevel) => {\n acc[logLevel] = (...args: any[]) => {\n this.onLogEvent(logLevel, args);\n logger[logLevel]?.(...args);\n };\n\n return acc;\n }, {}) as Logger;\n }\n\n set logger(logger: Partial<Logger> | undefined) {\n this.#logger = this.#wrapLogger(logger || console);\n }\n\n get logger(): Logger {\n return this.#logger;\n }\n\n // eslint-disable-next-line class-methods-use-this, @typescript-eslint/no-unused-vars\n onLogEvent(logLevel: LogLevel, data: any[]) {}\n },\n);\n"],"names":[],"mappings":";;;AAGA,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAIvD,MAAM,WAAW,GAAG,oBAAoB,CAC7C,CAAqC,UAAa,KAAI,EAAA,IAAA,2BAAA,EAAA,wBAAA,EAAA,4BAAA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,GACpD,MAAM,gBAAiB,SAAQ,UAAU,CAAA;AAAzC,QAAA,WAAA,GAAA;;;YACE,wBAAkB,CAAA,GAAA,CAAA,IAAA,EAAA,sBAAA,CAAA,IAAI,EAAY,2BAAA,EAAA,GAAA,EAAA,4BAAA,CAAA,CAAA,IAAA,CAAhB,IAAI,EAAa,OAAO,CAAC,CAAC,CAAA;SAuB7C;QAVC,IAAI,MAAM,CAAC,MAAmC,EAAA;AAC5C,YAAA,sBAAA,CAAA,IAAI,EAAA,wBAAA,EAAW,sBAAA,CAAA,IAAI,EAAY,2BAAA,EAAA,GAAA,EAAA,4BAAA,CAAA,CAAA,IAAA,CAAhB,IAAI,EAAa,MAAM,IAAI,OAAO,CAAC,MAAA,CAAC;SACpD;AAED,QAAA,IAAI,MAAM,GAAA;YACR,OAAO,sBAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAQ,CAAC;SACrB;;AAGD,QAAA,UAAU,CAAC,QAAkB,EAAE,IAAW,KAAI;AAC/C,KAAA;;;yEArBa,MAAuB,EAAA;QACjC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,KAAI;YACxC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAW,KAAI;;AACjC,gBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAChC,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,uDAAG,GAAG,IAAI,CAAC,CAAC;AAC9B,aAAC,CAAC;AAEF,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAW,CAAC;KAClB;AAYF,IAAA,EAAA,CAAA,EAAA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../src/mixins/modalMixin/constants.ts"],"sourcesContent":["export const MODAL_ELE_TAG = 'descope-modal';\n"],"names":[],"mappings":"AAAO,MAAM,aAAa,GAAG;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { MODAL_ELE_TAG } from './constants.js';
|
|
2
|
+
|
|
3
|
+
const createModalEle = (config = {}) => {
|
|
4
|
+
const modal = document.createElement(MODAL_ELE_TAG);
|
|
5
|
+
Object.keys(config).forEach((key) => {
|
|
6
|
+
modal.setAttribute(key, config[key]);
|
|
7
|
+
});
|
|
8
|
+
return modal;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export { createModalEle };
|
|
12
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../../src/mixins/modalMixin/helpers.ts"],"sourcesContent":["import { MODAL_ELE_TAG } from './constants';\n\nexport const createModalEle = (config = {}) => {\n const modal = document.createElement(MODAL_ELE_TAG);\n Object.keys(config).forEach((key) => {\n modal.setAttribute(key, config[key]);\n });\n\n return modal;\n};\n"],"names":[],"mappings":";;MAEa,cAAc,GAAG,CAAC,MAAM,GAAG,EAAE,KAAI;IAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;QAClC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,KAAK,CAAC;AACf;;;;"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { __classPrivateFieldGet } from 'tslib';
|
|
2
|
+
import { createSingletonMixin, compose } from '@descope/sdk-helpers';
|
|
3
|
+
import { initLifecycleMixin } from '../initLifecycleMixin.js';
|
|
4
|
+
import { initElementMixin } from '../initElementMixin.js';
|
|
5
|
+
import { descopeUiMixin } from '../descopeUiMixin/descopeUiMixin.js';
|
|
6
|
+
import { createModalEle } from './helpers.js';
|
|
7
|
+
import { MODAL_ELE_TAG } from './constants.js';
|
|
8
|
+
import { ModalDriver } from '@descope/sdk-component-drivers';
|
|
9
|
+
|
|
10
|
+
const modalMixin = createSingletonMixin((superclass) => {
|
|
11
|
+
var _ModalMixinClass_ModalDriverWrapper, _a;
|
|
12
|
+
const BaseClass = compose(initLifecycleMixin, initElementMixin, descopeUiMixin)(superclass);
|
|
13
|
+
return _a = class ModalMixinClass extends BaseClass {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
_ModalMixinClass_ModalDriverWrapper.set(this, (() => {
|
|
17
|
+
const loadDescopeUiComponents = this.loadDescopeUiComponents.bind(this);
|
|
18
|
+
return class ModalDriverWrapper extends ModalDriver {
|
|
19
|
+
setContent(template) {
|
|
20
|
+
loadDescopeUiComponents(template);
|
|
21
|
+
super.setContent(template);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
})());
|
|
25
|
+
}
|
|
26
|
+
createModal(config) {
|
|
27
|
+
const baseConfig = {};
|
|
28
|
+
const modal = createModalEle(Object.assign(Object.assign({}, baseConfig), config));
|
|
29
|
+
this.rootElement.append(modal);
|
|
30
|
+
return new (__classPrivateFieldGet(this, _ModalMixinClass_ModalDriverWrapper, "f"))(modal, {
|
|
31
|
+
logger: this.logger,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
async init() {
|
|
35
|
+
var _b;
|
|
36
|
+
this.loadDescopeUiComponents([MODAL_ELE_TAG]);
|
|
37
|
+
await ((_b = super.init) === null || _b === void 0 ? void 0 : _b.call(this));
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
_ModalMixinClass_ModalDriverWrapper = new WeakMap(),
|
|
41
|
+
_a;
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
export { modalMixin };
|
|
45
|
+
//# sourceMappingURL=modalMixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modalMixin.js","sources":["../../../../src/mixins/modalMixin/modalMixin.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport { createSingletonMixin, compose } from '@descope/sdk-helpers';\nimport { initLifecycleMixin } from '../initLifecycleMixin';\nimport { initElementMixin } from '../initElementMixin';\nimport { descopeUiMixin } from '../descopeUiMixin';\nimport { createModalEle } from './helpers';\nimport { MODAL_ELE_TAG } from './constants';\nimport { ModalDriver } from '@descope/sdk-component-drivers';\n\nexport const modalMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(\n initLifecycleMixin,\n initElementMixin,\n descopeUiMixin,\n )(superclass);\n return class ModalMixinClass extends BaseClass {\n #ModalDriverWrapper = (() => {\n const loadDescopeUiComponents = this.loadDescopeUiComponents.bind(this);\n return class ModalDriverWrapper extends ModalDriver {\n setContent(template: HTMLTemplateElement) {\n loadDescopeUiComponents(template);\n super.setContent(template);\n }\n };\n })();\n\n createModal(config?: Record<string, string>) {\n const baseConfig = {};\n\n const modal = createModalEle({\n ...baseConfig,\n ...config,\n });\n\n this.rootElement.append(modal);\n\n return new this.#ModalDriverWrapper(modal, {\n logger: this.logger,\n }) as ModalDriver;\n }\n\n async init() {\n this.loadDescopeUiComponents([MODAL_ELE_TAG]);\n await super.init?.();\n }\n };\n },\n);\n"],"names":[],"mappings":";;;;;;;;;MASa,UAAU,GAAG,oBAAoB,CAC5C,CAAqC,UAAa,KAAI;;AACpD,IAAA,MAAM,SAAS,GAAG,OAAO,CACvB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,CACf,CAAC,UAAU,CAAC,CAAC;IACd,OAAO,EAAA,GAAA,MAAM,eAAgB,SAAQ,SAAS,CAAA;AAAvC,YAAA,WAAA,GAAA;;gBACL,mCAAsB,CAAA,GAAA,CAAA,IAAA,EAAA,CAAC,MAAK;oBAC1B,MAAM,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxE,OAAO,MAAM,kBAAmB,SAAQ,WAAW,CAAA;AACjD,wBAAA,UAAU,CAAC,QAA6B,EAAA;4BACtC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AAClC,4BAAA,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;yBAC5B;qBACF,CAAC;iBACH,GAAG,CAAC,CAAA;aAqBN;AAnBC,YAAA,WAAW,CAAC,MAA+B,EAAA;gBACzC,MAAM,UAAU,GAAG,EAAE,CAAC;gBAEtB,MAAM,KAAK,GAAG,cAAc,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACvB,UAAU,CACV,EAAA,MAAM,EACT,CAAC;AAEH,gBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE/B,gBAAA,OAAO,KAAI,sBAAA,CAAA,IAAI,EAAoB,mCAAA,EAAA,GAAA,CAAA,EAAC,KAAK,EAAE;oBACzC,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,iBAAA,CAAgB,CAAC;aACnB;AAED,YAAA,MAAM,IAAI,GAAA;;AACR,gBAAA,IAAI,CAAC,uBAAuB,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAC9C,gBAAA,OAAM,CAAA,EAAA,GAAA,KAAK,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,CAAI,CAAA,CAAC;aACtB;AACF,SAAA;;AAAC,QAAA,EAAA,CAAA;AACJ,CAAC;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../src/mixins/notificationsMixin/constants.ts"],"sourcesContent":["export const NOTIFICATION_ELE_TAG = 'descope-notification';\n"],"names":[],"mappings":"AAAO,MAAM,oBAAoB,GAAG;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { NOTIFICATION_ELE_TAG } from './constants.js';
|
|
2
|
+
|
|
3
|
+
const createNotificationEle = (config = {}) => {
|
|
4
|
+
const notification = document.createElement(NOTIFICATION_ELE_TAG);
|
|
5
|
+
Object.keys(config).forEach((key) => {
|
|
6
|
+
notification.setAttribute(key, config[key]);
|
|
7
|
+
});
|
|
8
|
+
return notification;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export { createNotificationEle };
|
|
12
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../../src/mixins/notificationsMixin/helpers.ts"],"sourcesContent":["import { NOTIFICATION_ELE_TAG } from './constants';\n\nexport const createNotificationEle = (config = {}) => {\n const notification = document.createElement(NOTIFICATION_ELE_TAG);\n Object.keys(config).forEach((key) => {\n notification.setAttribute(key, config[key]);\n });\n\n return notification;\n};\n"],"names":[],"mappings":";;MAEa,qBAAqB,GAAG,CAAC,MAAM,GAAG,EAAE,KAAI;IACnD,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAClE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;QAClC,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,YAAY,CAAC;AACtB;;;;"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { __classPrivateFieldGet } from 'tslib';
|
|
2
|
+
import { createSingletonMixin, compose, createTemplate } from '@descope/sdk-helpers';
|
|
3
|
+
import { initLifecycleMixin } from '../initLifecycleMixin.js';
|
|
4
|
+
import { initElementMixin } from '../initElementMixin.js';
|
|
5
|
+
import { descopeUiMixin } from '../descopeUiMixin/descopeUiMixin.js';
|
|
6
|
+
import { createNotificationEle } from './helpers.js';
|
|
7
|
+
import { NOTIFICATION_ELE_TAG } from './constants.js';
|
|
8
|
+
import { NotificationDriver } from '@descope/sdk-component-drivers';
|
|
9
|
+
|
|
10
|
+
const notificationsMixin = createSingletonMixin((superclass) => {
|
|
11
|
+
var _NotificationsMixinClass_NotificationDriverWrapper, _a;
|
|
12
|
+
const BaseClass = compose(initLifecycleMixin, initElementMixin, descopeUiMixin)(superclass);
|
|
13
|
+
return _a = class NotificationsMixinClass extends BaseClass {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
_NotificationsMixinClass_NotificationDriverWrapper.set(this, (() => {
|
|
17
|
+
const loadDescopeUiComponents = this.loadDescopeUiComponents.bind(this);
|
|
18
|
+
return class NotificationDriverWrapper extends NotificationDriver {
|
|
19
|
+
setContent(templateOrString) {
|
|
20
|
+
const template = typeof templateOrString === 'string'
|
|
21
|
+
? createTemplate(templateOrString)
|
|
22
|
+
: templateOrString;
|
|
23
|
+
loadDescopeUiComponents(template);
|
|
24
|
+
super.setContent(template);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
})());
|
|
28
|
+
}
|
|
29
|
+
createNotification(config) {
|
|
30
|
+
const baseConfig = {};
|
|
31
|
+
const notification = createNotificationEle(Object.assign(Object.assign({}, baseConfig), config));
|
|
32
|
+
this.rootElement.append(notification);
|
|
33
|
+
return new (__classPrivateFieldGet(this, _NotificationsMixinClass_NotificationDriverWrapper, "f"))(notification, {
|
|
34
|
+
logger: this.logger,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
async init() {
|
|
38
|
+
var _b;
|
|
39
|
+
await ((_b = super.init) === null || _b === void 0 ? void 0 : _b.call(this));
|
|
40
|
+
this.loadDescopeUiComponents([NOTIFICATION_ELE_TAG]);
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
_NotificationsMixinClass_NotificationDriverWrapper = new WeakMap(),
|
|
44
|
+
_a;
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
export { notificationsMixin };
|
|
48
|
+
//# sourceMappingURL=notificationsMixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notificationsMixin.js","sources":["../../../../src/mixins/notificationsMixin/notificationsMixin.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport {\n createSingletonMixin,\n compose,\n createTemplate,\n} from '@descope/sdk-helpers';\nimport { initLifecycleMixin } from '../initLifecycleMixin';\nimport { initElementMixin } from '../initElementMixin';\nimport { descopeUiMixin } from '../descopeUiMixin';\nimport { createNotificationEle } from './helpers';\nimport { NOTIFICATION_ELE_TAG } from './constants';\nimport { NotificationDriver } from '@descope/sdk-component-drivers';\n\nexport const notificationsMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(\n initLifecycleMixin,\n initElementMixin,\n descopeUiMixin,\n )(superclass);\n return class NotificationsMixinClass extends BaseClass {\n #NotificationDriverWrapper = (() => {\n const loadDescopeUiComponents = this.loadDescopeUiComponents.bind(this);\n return class NotificationDriverWrapper extends NotificationDriver {\n setContent(templateOrString: HTMLTemplateElement | string) {\n const template =\n typeof templateOrString === 'string'\n ? createTemplate(templateOrString)\n : templateOrString;\n\n loadDescopeUiComponents(template);\n super.setContent(template);\n }\n };\n })();\n\n createNotification(\n config?: {\n mode: 'success' | 'error';\n duration: number;\n 'has-close-button'?: boolean;\n position?:\n | 'top-stretch'\n | 'top-start'\n | 'top-center'\n | 'top-end'\n | 'middle'\n | 'bottom-start'\n | 'bottom-center'\n | 'bottom-end'\n | 'bottom-stretch';\n size: 'xs' | 'sm' | 'md' | 'lg';\n bordered?: boolean;\n } & {\n [key: string]: string | boolean | number;\n },\n ) {\n const baseConfig = {};\n\n const notification = createNotificationEle({\n ...baseConfig,\n ...config,\n });\n\n this.rootElement.append(notification);\n\n return new this.#NotificationDriverWrapper(notification, {\n logger: this.logger,\n });\n }\n\n async init() {\n await super.init?.();\n this.loadDescopeUiComponents([NOTIFICATION_ELE_TAG]);\n }\n };\n },\n);\n"],"names":[],"mappings":";;;;;;;;;MAaa,kBAAkB,GAAG,oBAAoB,CACpD,CAAqC,UAAa,KAAI;;AACpD,IAAA,MAAM,SAAS,GAAG,OAAO,CACvB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,CACf,CAAC,UAAU,CAAC,CAAC;IACd,OAAO,EAAA,GAAA,MAAM,uBAAwB,SAAQ,SAAS,CAAA;AAA/C,YAAA,WAAA,GAAA;;gBACL,kDAA6B,CAAA,GAAA,CAAA,IAAA,EAAA,CAAC,MAAK;oBACjC,MAAM,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxE,OAAO,MAAM,yBAA0B,SAAQ,kBAAkB,CAAA;AAC/D,wBAAA,UAAU,CAAC,gBAA8C,EAAA;AACvD,4BAAA,MAAM,QAAQ,GACZ,OAAO,gBAAgB,KAAK,QAAQ;AAClC,kCAAE,cAAc,CAAC,gBAAgB,CAAC;kCAChC,gBAAgB,CAAC;4BAEvB,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AAClC,4BAAA,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;yBAC5B;qBACF,CAAC;iBACH,GAAG,CAAC,CAAA;aAyCN;AAvCC,YAAA,kBAAkB,CAChB,MAkBC,EAAA;gBAED,MAAM,UAAU,GAAG,EAAE,CAAC;gBAEtB,MAAM,YAAY,GAAG,qBAAqB,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACrC,UAAU,CACV,EAAA,MAAM,EACT,CAAC;AAEH,gBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAEtC,gBAAA,OAAO,KAAI,sBAAA,CAAA,IAAI,EAA2B,kDAAA,EAAA,GAAA,CAAA,EAAC,YAAY,EAAE;oBACvD,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,iBAAA,CAAC,CAAC;aACJ;AAED,YAAA,MAAM,IAAI,GAAA;;AACR,gBAAA,OAAM,CAAA,EAAA,GAAA,KAAK,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,CAAI,CAAA,CAAC;AACrB,gBAAA,IAAI,CAAC,uBAAuB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;aACtD;AACF,SAAA;;AAAC,QAAA,EAAA,CAAA;AACJ,CAAC;;;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const attributesObserver = (ele, callback) => {
|
|
2
|
+
// sync all attrs on init
|
|
3
|
+
Array.from(ele.attributes).forEach((attr) => callback(attr.name));
|
|
4
|
+
const observer = new MutationObserver((mutationsList) => {
|
|
5
|
+
mutationsList.forEach((mutation) => {
|
|
6
|
+
if (mutation.type === 'attributes') {
|
|
7
|
+
callback(mutation.attributeName);
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
observer.observe(ele, { attributes: true });
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { attributesObserver };
|
|
15
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../../src/mixins/observeAttributesMixin/helpers.ts"],"sourcesContent":["export const attributesObserver = (\n ele: HTMLElement,\n callback: (attrName: string) => void,\n) => {\n // sync all attrs on init\n Array.from(ele.attributes).forEach((attr) => callback(attr.name));\n\n const observer = new MutationObserver((mutationsList) => {\n mutationsList.forEach((mutation) => {\n if (mutation.type === 'attributes') {\n callback(mutation.attributeName);\n }\n });\n });\n\n observer.observe(ele, { attributes: true });\n};\n"],"names":[],"mappings":"MAAa,kBAAkB,GAAG,CAChC,GAAgB,EAChB,QAAoC,KAClC;;IAEF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,aAAa,KAAI;AACtD,QAAA,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AACjC,YAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE;AAClC,gBAAA,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;aAClC;AACH,SAAC,CAAC,CAAC;AACL,KAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9C;;;;"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { __classPrivateFieldGet } from 'tslib';
|
|
2
|
+
import { createSingletonMixin, compose } from '@descope/sdk-helpers';
|
|
3
|
+
import { initLifecycleMixin } from '../initLifecycleMixin.js';
|
|
4
|
+
import { loggerMixin } from '../loggerMixin/loggerMixin.js';
|
|
5
|
+
import { attributesObserver } from './helpers.js';
|
|
6
|
+
|
|
7
|
+
const observeAttributesMixin = createSingletonMixin((superclass) => {
|
|
8
|
+
var _ObserveAttributesMixinClass_observeMappings, _a;
|
|
9
|
+
const BaseClass = compose(loggerMixin, initLifecycleMixin)(superclass);
|
|
10
|
+
return _a = class ObserveAttributesMixinClass extends BaseClass {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
_ObserveAttributesMixinClass_observeMappings.set(this, {});
|
|
14
|
+
}
|
|
15
|
+
async init() {
|
|
16
|
+
var _b;
|
|
17
|
+
await ((_b = super.init) === null || _b === void 0 ? void 0 : _b.call(this));
|
|
18
|
+
attributesObserver(this, (attrName) => {
|
|
19
|
+
var _b;
|
|
20
|
+
(_b = __classPrivateFieldGet(this, _ObserveAttributesMixinClass_observeMappings, "f")[attrName]) === null || _b === void 0 ? void 0 : _b.forEach((cb) => {
|
|
21
|
+
cb(attrName, this.getAttribute(attrName));
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
observeAttribute(attrName, onAttrChange) {
|
|
26
|
+
if (!__classPrivateFieldGet(this, _ObserveAttributesMixinClass_observeMappings, "f")[attrName]) {
|
|
27
|
+
__classPrivateFieldGet(this, _ObserveAttributesMixinClass_observeMappings, "f")[attrName] = [];
|
|
28
|
+
}
|
|
29
|
+
const idx = __classPrivateFieldGet(this, _ObserveAttributesMixinClass_observeMappings, "f")[attrName].push(onAttrChange);
|
|
30
|
+
return () => __classPrivateFieldGet(this, _ObserveAttributesMixinClass_observeMappings, "f")[attrName].splice(idx, 1);
|
|
31
|
+
}
|
|
32
|
+
observeAttributes(attrs, cb) {
|
|
33
|
+
const unobserveList = attrs.reduce((acc, attrName) => {
|
|
34
|
+
acc.push(this.observeAttribute(attrName, cb));
|
|
35
|
+
return acc;
|
|
36
|
+
}, []);
|
|
37
|
+
return () => unobserveList.forEach((unobserve) => unobserve());
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
_ObserveAttributesMixinClass_observeMappings = new WeakMap(),
|
|
41
|
+
_a;
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
export { observeAttributesMixin };
|
|
45
|
+
//# sourceMappingURL=observeAttributesMixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observeAttributesMixin.js","sources":["../../../../src/mixins/observeAttributesMixin/observeAttributesMixin.ts"],"sourcesContent":["import { createSingletonMixin, compose } from '@descope/sdk-helpers';\nimport { initLifecycleMixin } from '../initLifecycleMixin';\nimport { loggerMixin } from '../loggerMixin';\nimport { attributesObserver } from './helpers';\n\ntype OnAttrChange = (attrName: string, value: string | null) => void;\n\nexport const observeAttributesMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(loggerMixin, initLifecycleMixin)(superclass);\n return class ObserveAttributesMixinClass extends BaseClass {\n #observeMappings = {};\n\n async init() {\n await super.init?.();\n\n attributesObserver(this, (attrName: string) => {\n this.#observeMappings[attrName]?.forEach((cb: OnAttrChange) => {\n cb(attrName, this.getAttribute(attrName));\n });\n });\n }\n\n observeAttribute(attrName: string, onAttrChange: OnAttrChange) {\n if (!this.#observeMappings[attrName]) {\n this.#observeMappings[attrName] = [];\n }\n\n const idx = this.#observeMappings[attrName].push(onAttrChange);\n\n return () => this.#observeMappings[attrName].splice(idx, 1);\n }\n\n observeAttributes(attrs: string[], cb: OnAttrChange) {\n const unobserveList = attrs.reduce((acc, attrName) => {\n acc.push(this.observeAttribute(attrName, cb));\n\n return acc;\n }, []);\n\n return () => unobserveList.forEach((unobserve) => unobserve());\n }\n };\n },\n);\n"],"names":[],"mappings":";;;;;;MAOa,sBAAsB,GAAG,oBAAoB,CACxD,CAAqC,UAAa,KAAI;;IACpD,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC;IACvE,OAAO,EAAA,GAAA,MAAM,2BAA4B,SAAQ,SAAS,CAAA;AAAnD,YAAA,WAAA,GAAA;;AACL,gBAAA,4CAAA,CAAA,GAAA,CAAA,IAAA,EAAmB,EAAE,CAAC,CAAA;aA+BvB;AA7BC,YAAA,MAAM,IAAI,GAAA;;AACR,gBAAA,OAAM,CAAA,EAAA,GAAA,KAAK,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,CAAI,CAAA,CAAC;AAErB,gBAAA,kBAAkB,CAAC,IAAI,EAAE,CAAC,QAAgB,KAAI;;AAC5C,oBAAA,CAAA,EAAA,GAAA,sBAAA,CAAA,IAAI,EAAiB,4CAAA,EAAA,GAAA,CAAA,CAAC,QAAQ,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC,CAAC,EAAgB,KAAI;wBAC5D,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5C,qBAAC,CAAC,CAAC;AACL,iBAAC,CAAC,CAAC;aACJ;YAED,gBAAgB,CAAC,QAAgB,EAAE,YAA0B,EAAA;gBAC3D,IAAI,CAAC,uBAAA,IAAI,EAAA,4CAAA,EAAA,GAAA,CAAiB,CAAC,QAAQ,CAAC,EAAE;AACpC,oBAAA,sBAAA,CAAA,IAAI,EAAiB,4CAAA,EAAA,GAAA,CAAA,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;iBACtC;AAED,gBAAA,MAAM,GAAG,GAAG,sBAAA,CAAA,IAAI,EAAiB,4CAAA,EAAA,GAAA,CAAA,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAE/D,gBAAA,OAAO,MAAM,sBAAA,CAAA,IAAI,oDAAiB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;aAC7D;YAED,iBAAiB,CAAC,KAAe,EAAE,EAAgB,EAAA;gBACjD,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,KAAI;AACnD,oBAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAE9C,oBAAA,OAAO,GAAG,CAAC;iBACZ,EAAE,EAAE,CAAC,CAAC;AAEP,gBAAA,OAAO,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC,CAAC;aAChE;AACF,SAAA;;AAAC,QAAA,EAAA,CAAA;AACJ,CAAC;;;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createSingletonMixin, compose } from '@descope/sdk-helpers';
|
|
2
|
+
import { missingAttrValidator } from './createValidateAttributesMixin/commonValidators.js';
|
|
3
|
+
import { createValidateAttributesMixin } from './createValidateAttributesMixin/createValidateAttributesMixin.js';
|
|
4
|
+
|
|
5
|
+
const projectIdMixin = createSingletonMixin((superclass) => {
|
|
6
|
+
const BaseClass = compose(createValidateAttributesMixin({ 'project-id': missingAttrValidator }))(superclass);
|
|
7
|
+
return class ProjectIdMixinClass extends BaseClass {
|
|
8
|
+
get projectId() {
|
|
9
|
+
return this.getAttribute('project-id');
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
export { projectIdMixin };
|
|
15
|
+
//# sourceMappingURL=projectIdMixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectIdMixin.js","sources":["../../../src/mixins/projectIdMixin.ts"],"sourcesContent":["import { createSingletonMixin, compose } from '@descope/sdk-helpers';\nimport { missingAttrValidator } from './createValidateAttributesMixin/commonValidators';\nimport { createValidateAttributesMixin } from './createValidateAttributesMixin';\n\nexport const projectIdMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(\n createValidateAttributesMixin({ 'project-id': missingAttrValidator }),\n )(superclass);\n\n return class ProjectIdMixinClass extends BaseClass {\n get projectId() {\n return this.getAttribute('project-id');\n }\n };\n },\n);\n"],"names":[],"mappings":";;;;MAIa,cAAc,GAAG,oBAAoB,CAChD,CAAqC,UAAa,KAAI;AACpD,IAAA,MAAM,SAAS,GAAG,OAAO,CACvB,6BAA6B,CAAC,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC,CACtE,CAAC,UAAU,CAAC,CAAC;IAEd,OAAO,MAAM,mBAAoB,SAAQ,SAAS,CAAA;AAChD,QAAA,IAAI,SAAS,GAAA;AACX,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;SACxC;KACF,CAAC;AACJ,CAAC;;;;"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { __classPrivateFieldGet } from 'tslib';
|
|
2
|
+
import { createSingletonMixin, compose } from '@descope/sdk-helpers';
|
|
3
|
+
import { missingAttrValidator } from './createValidateAttributesMixin/commonValidators.js';
|
|
4
|
+
import { createValidateAttributesMixin } from './createValidateAttributesMixin/createValidateAttributesMixin.js';
|
|
5
|
+
|
|
6
|
+
const resetMixin = createSingletonMixin((superclass) => {
|
|
7
|
+
var _ResetMixinClass_callbacks, _a;
|
|
8
|
+
const BaseClass = compose(createValidateAttributesMixin({ 'project-id': missingAttrValidator }))(superclass);
|
|
9
|
+
return _a = class ResetMixinClass extends BaseClass {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
_ResetMixinClass_callbacks.set(this, new Map());
|
|
13
|
+
}
|
|
14
|
+
onReset(sectionId, callback) {
|
|
15
|
+
if (!__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").has(sectionId)) {
|
|
16
|
+
__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").set(sectionId, callback);
|
|
17
|
+
return () => {
|
|
18
|
+
__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").delete(sectionId);
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
throw new Error(`Callback for sectionId ${sectionId} already exists`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async reset(...sectionIds) {
|
|
26
|
+
if (sectionIds.length === 0) {
|
|
27
|
+
await Promise.all(Array.from(__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").values()).map((callback) => callback()));
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
await Promise.all(sectionIds.map((sectionId) => {
|
|
31
|
+
var _b;
|
|
32
|
+
if (!__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").has(sectionId)) {
|
|
33
|
+
throw new Error(`Callback for sectionId ${sectionId} does not exist`);
|
|
34
|
+
}
|
|
35
|
+
return (_b = __classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").get(sectionId)) === null || _b === void 0 ? void 0 : _b();
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
_ResetMixinClass_callbacks = new WeakMap(),
|
|
41
|
+
_a;
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
export { resetMixin };
|
|
45
|
+
//# sourceMappingURL=resetMixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resetMixin.js","sources":["../../../src/mixins/resetMixin.ts"],"sourcesContent":["import { createSingletonMixin, compose } from '@descope/sdk-helpers';\nimport { missingAttrValidator } from './createValidateAttributesMixin/commonValidators';\nimport { createValidateAttributesMixin } from './createValidateAttributesMixin';\n\nexport const resetMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(\n createValidateAttributesMixin({ 'project-id': missingAttrValidator }),\n )(superclass);\n\n return class ResetMixinClass extends BaseClass {\n #callbacks = new Map<string, () => void>();\n\n onReset(sectionId: string, callback: () => void | Promise<void>) {\n if (!this.#callbacks.has(sectionId)) {\n this.#callbacks.set(sectionId, callback);\n return () => {\n this.#callbacks.delete(sectionId);\n };\n } else {\n throw new Error(`Callback for sectionId ${sectionId} already exists`);\n }\n }\n\n async reset(...sectionIds: string[]) {\n if (sectionIds.length === 0) {\n await Promise.all(\n Array.from(this.#callbacks.values()).map((callback) => callback()),\n );\n } else {\n await Promise.all(\n sectionIds.map((sectionId) => {\n if (!this.#callbacks.has(sectionId)) {\n throw new Error(\n `Callback for sectionId ${sectionId} does not exist`,\n );\n }\n return this.#callbacks.get(sectionId)?.();\n }),\n );\n }\n }\n };\n },\n);\n"],"names":[],"mappings":";;;;;MAIa,UAAU,GAAG,oBAAoB,CAC5C,CAAqC,UAAa,KAAI;;AACpD,IAAA,MAAM,SAAS,GAAG,OAAO,CACvB,6BAA6B,CAAC,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC,CACtE,CAAC,UAAU,CAAC,CAAC;IAEd,OAAO,EAAA,GAAA,MAAM,eAAgB,SAAQ,SAAS,CAAA;AAAvC,YAAA,WAAA,GAAA;;gBACL,0BAAa,CAAA,GAAA,CAAA,IAAA,EAAA,IAAI,GAAG,EAAsB,CAAC,CAAA;aA+B5C;YA7BC,OAAO,CAAC,SAAiB,EAAE,QAAoC,EAAA;gBAC7D,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAW,0BAAA,EAAA,GAAA,CAAA,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;oBACnC,sBAAA,CAAA,IAAI,kCAAW,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACzC,oBAAA,OAAO,MAAK;AACV,wBAAA,sBAAA,CAAA,IAAI,EAAW,0BAAA,EAAA,GAAA,CAAA,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACpC,qBAAC,CAAC;iBACH;qBAAM;AACL,oBAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,CAAA,eAAA,CAAiB,CAAC,CAAC;iBACvE;aACF;AAED,YAAA,MAAM,KAAK,CAAC,GAAG,UAAoB,EAAA;AACjC,gBAAA,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC3B,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC,CACnE,CAAC;iBACH;qBAAM;oBACL,MAAM,OAAO,CAAC,GAAG,CACf,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,KAAI;;wBAC3B,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAW,0BAAA,EAAA,GAAA,CAAA,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACnC,4BAAA,MAAM,IAAI,KAAK,CACb,0BAA0B,SAAS,CAAA,eAAA,CAAiB,CACrD,CAAC;yBACH;wBACD,OAAO,CAAA,EAAA,GAAA,sBAAA,CAAA,IAAI,EAAW,0BAAA,EAAA,GAAA,CAAA,CAAC,GAAG,CAAC,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,EAAI,CAAC;qBAC3C,CAAC,CACH,CAAC;iBACH;aACF;AACF,SAAA;;AAAC,QAAA,EAAA,CAAA;AACJ,CAAC;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IS_LOCAL_STORAGE } from '../../constants.js';
|
|
2
|
+
|
|
3
|
+
const BASE_CONTENT_URL_KEY = 'base.content.url';
|
|
4
|
+
const BASE_CONTENT_URL = 'https://static.descope.com/pages';
|
|
5
|
+
const OVERRIDE_CONTENT_URL = (IS_LOCAL_STORAGE && localStorage.getItem(BASE_CONTENT_URL_KEY)) || '';
|
|
6
|
+
const ASSETS_FOLDER = 'v2-beta';
|
|
7
|
+
|
|
8
|
+
export { ASSETS_FOLDER, BASE_CONTENT_URL, OVERRIDE_CONTENT_URL };
|
|
9
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../src/mixins/staticResourcesMixin/constants.ts"],"sourcesContent":["import { IS_LOCAL_STORAGE } from '../../constants';\n\nconst BASE_CONTENT_URL_KEY = 'base.content.url';\n\nexport const BASE_CONTENT_URL = 'https://static.descope.com/pages';\n\nexport const OVERRIDE_CONTENT_URL =\n (IS_LOCAL_STORAGE && localStorage.getItem(BASE_CONTENT_URL_KEY)) || '';\n\nexport const ASSETS_FOLDER = 'v2-beta';\nexport const PREV_VER_ASSETS_FOLDER = 'v2-alpha';\n"],"names":[],"mappings":";;AAEA,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AAEzC,MAAM,gBAAgB,GAAG,mCAAmC;AAEtD,MAAA,oBAAoB,GAC/B,CAAC,gBAAgB,IAAI,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,KAAK,GAAG;AAElE,MAAM,aAAa,GAAG;;;;"}
|