@descope/sdk-mixins 0.0.0-next-cd745c61-20250421 → 0.0.0-next-bd24a0f1-20250505
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/constants.js +6 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/index.js +43 -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 +14 -0
- package/dist/cjs/mixins/descopeUiMixin/constants.js.map +1 -0
- package/dist/cjs/mixins/descopeUiMixin/descopeUiMixin.js +96 -0
- package/dist/cjs/mixins/descopeUiMixin/descopeUiMixin.js.map +1 -0
- package/dist/cjs/mixins/descopeUiMixin/helpers.js +8 -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/injectNpmLibMixin/constants.js +10 -0
- package/dist/cjs/mixins/injectNpmLibMixin/constants.js.map +1 -0
- package/dist/cjs/mixins/injectNpmLibMixin/helpers.js +112 -0
- package/dist/cjs/mixins/injectNpmLibMixin/helpers.js.map +1 -0
- package/dist/cjs/mixins/injectNpmLibMixin/injectNpmLibMixin.js +28 -0
- package/dist/cjs/mixins/injectNpmLibMixin/injectNpmLibMixin.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 +19 -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 +9 -0
- package/dist/esm/mixins/descopeUiMixin/constants.js.map +1 -0
- package/dist/esm/mixins/descopeUiMixin/descopeUiMixin.js +94 -0
- package/dist/esm/mixins/descopeUiMixin/descopeUiMixin.js.map +1 -0
- package/dist/esm/mixins/descopeUiMixin/helpers.js +6 -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/injectNpmLibMixin/constants.js +8 -0
- package/dist/esm/mixins/injectNpmLibMixin/constants.js.map +1 -0
- package/dist/esm/mixins/injectNpmLibMixin/helpers.js +109 -0
- package/dist/esm/mixins/injectNpmLibMixin/helpers.js.map +1 -0
- package/dist/esm/mixins/injectNpmLibMixin/injectNpmLibMixin.js +26 -0
- package/dist/esm/mixins/injectNpmLibMixin/injectNpmLibMixin.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 +6503 -0
- package/dist/types/constants.d.ts +1 -0
- package/dist/types/index.d.ts +24 -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 +4 -0
- package/dist/types/mixins/descopeUiMixin/descopeUiMixin.d.ts +373 -0
- package/dist/types/mixins/descopeUiMixin/helpers.d.ts +2 -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/injectNpmLibMixin/constants.d.ts +1 -0
- package/dist/types/mixins/injectNpmLibMixin/helpers.d.ts +7 -0
- package/dist/types/mixins/injectNpmLibMixin/index.d.ts +1 -0
- package/dist/types/mixins/injectNpmLibMixin/injectNpmLibMixin.d.ts +343 -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 +406 -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 +425 -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 +406 -0
- package/package.json +10 -10
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../src/mixins/injectNpmLibMixin/constants.ts"],"sourcesContent":["export const BASE_URLS = [\n 'https://descopecdn.com',\n 'https://static.descope.com',\n 'https://cdn.jsdelivr.net',\n];\n"],"names":[],"mappings":"AAAa,MAAA,SAAS,GAAG;IACvB,wBAAwB;IACxB,4BAA4B;IAC5B,0BAA0B;;;;;"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
const getExistingScript = (scriptId) => {
|
|
2
|
+
return document.querySelector(`script#${scriptId}`);
|
|
3
|
+
};
|
|
4
|
+
const isScriptLoaded = (script) => {
|
|
5
|
+
return script.getAttribute('status') === 'loaded';
|
|
6
|
+
};
|
|
7
|
+
const isScriptError = (script) => {
|
|
8
|
+
return script.getAttribute('status') === 'error';
|
|
9
|
+
};
|
|
10
|
+
const hashUrl = (url) => {
|
|
11
|
+
let hash = 0;
|
|
12
|
+
const urlStr = url.toString();
|
|
13
|
+
for (let i = 0; i < urlStr.length; i++) {
|
|
14
|
+
const char = urlStr.charCodeAt(i);
|
|
15
|
+
hash = (hash << 5) - hash + char;
|
|
16
|
+
hash = hash & hash; // Convert to 32-bit integer
|
|
17
|
+
}
|
|
18
|
+
return `${Math.abs(hash).toString()}`;
|
|
19
|
+
};
|
|
20
|
+
const setupScript = (id) => {
|
|
21
|
+
const scriptEle = document.createElement('script');
|
|
22
|
+
scriptEle.id = id;
|
|
23
|
+
return scriptEle;
|
|
24
|
+
};
|
|
25
|
+
const injectScript = (scriptId, url) => {
|
|
26
|
+
return new Promise((res, rej) => {
|
|
27
|
+
const scriptEle = setupScript(scriptId);
|
|
28
|
+
scriptEle.onerror = (error) => {
|
|
29
|
+
scriptEle.setAttribute('status', 'error');
|
|
30
|
+
rej(error);
|
|
31
|
+
};
|
|
32
|
+
scriptEle.onload = () => {
|
|
33
|
+
scriptEle.setAttribute('status', 'loaded');
|
|
34
|
+
res(scriptEle);
|
|
35
|
+
};
|
|
36
|
+
scriptEle.src = url.toString();
|
|
37
|
+
document.body.appendChild(scriptEle);
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
const handleExistingScript = (existingScript) => {
|
|
41
|
+
if (isScriptLoaded(existingScript)) {
|
|
42
|
+
return Promise.resolve(existingScript);
|
|
43
|
+
}
|
|
44
|
+
if (isScriptError(existingScript)) {
|
|
45
|
+
return Promise.reject();
|
|
46
|
+
}
|
|
47
|
+
return new Promise((res, rej) => {
|
|
48
|
+
existingScript.addEventListener('load', () => {
|
|
49
|
+
res(existingScript);
|
|
50
|
+
});
|
|
51
|
+
existingScript.addEventListener('error', (error) => {
|
|
52
|
+
rej(error);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
const injectScriptWithFallbacks = async (scriptsData, onError) => {
|
|
57
|
+
for (const scriptData of scriptsData) {
|
|
58
|
+
const { id, url } = scriptData;
|
|
59
|
+
const existingScript = getExistingScript(id);
|
|
60
|
+
if (existingScript) {
|
|
61
|
+
try {
|
|
62
|
+
await handleExistingScript(existingScript);
|
|
63
|
+
return scriptData;
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
onError(scriptData, true);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
try {
|
|
71
|
+
await injectScript(id, url);
|
|
72
|
+
return scriptData;
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
onError(scriptData, false);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
throw new Error('All scripts failed to load');
|
|
80
|
+
};
|
|
81
|
+
const generateLibUrls = (baseUrls, libName, version, path = '') => baseUrls.reduce((prev, curr) => {
|
|
82
|
+
const baseUrl = curr;
|
|
83
|
+
if (!baseUrl) {
|
|
84
|
+
return prev;
|
|
85
|
+
}
|
|
86
|
+
let url;
|
|
87
|
+
try {
|
|
88
|
+
url = new URL(baseUrl);
|
|
89
|
+
}
|
|
90
|
+
catch (e) {
|
|
91
|
+
throw new Error(`Invalid URL: ${baseUrl}`);
|
|
92
|
+
}
|
|
93
|
+
const isUrlIncludesPath = url.pathname !== '/';
|
|
94
|
+
if (!isUrlIncludesPath) {
|
|
95
|
+
url.pathname = `/npm/${libName}@${version}/${path}`;
|
|
96
|
+
}
|
|
97
|
+
return [
|
|
98
|
+
...prev,
|
|
99
|
+
{
|
|
100
|
+
url: url,
|
|
101
|
+
id: `npmlib-${libName
|
|
102
|
+
.replaceAll('@', '')
|
|
103
|
+
.replaceAll('/', '_')}-${hashUrl(url)}`,
|
|
104
|
+
},
|
|
105
|
+
];
|
|
106
|
+
}, []);
|
|
107
|
+
|
|
108
|
+
export { generateLibUrls, injectScriptWithFallbacks };
|
|
109
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../../src/mixins/injectNpmLibMixin/helpers.ts"],"sourcesContent":["const getExistingScript = (scriptId: string): HTMLScriptElement => {\n return document.querySelector(`script#${scriptId}`);\n};\n\nconst isScriptLoaded = (script: HTMLScriptElement) => {\n return script.getAttribute('status') === 'loaded';\n};\n\nconst isScriptError = (script: HTMLScriptElement) => {\n return script.getAttribute('status') === 'error';\n};\n\nconst hashUrl = (url: URL) => {\n let hash = 0;\n const urlStr = url.toString();\n\n for (let i = 0; i < urlStr.length; i++) {\n const char = urlStr.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash; // Convert to 32-bit integer\n }\n\n return `${Math.abs(hash).toString()}`;\n};\n\nconst setupScript = (id: string) => {\n const scriptEle = document.createElement('script');\n scriptEle.id = id;\n\n return scriptEle;\n};\n\ntype ScriptData = {\n id: string;\n url: URL;\n};\n\nconst injectScript = (scriptId: string, url: URL) => {\n return new Promise((res, rej) => {\n const scriptEle = setupScript(scriptId);\n\n scriptEle.onerror = (error) => {\n scriptEle.setAttribute('status', 'error');\n rej(error);\n };\n scriptEle.onload = () => {\n scriptEle.setAttribute('status', 'loaded');\n res(scriptEle);\n };\n\n scriptEle.src = url.toString();\n\n document.body.appendChild(scriptEle);\n });\n};\n\nconst handleExistingScript = (existingScript: HTMLScriptElement) => {\n if (isScriptLoaded(existingScript)) {\n return Promise.resolve(existingScript);\n }\n\n if (isScriptError(existingScript)) {\n return Promise.reject();\n }\n\n return new Promise((res, rej) => {\n existingScript.addEventListener('load', () => {\n res(existingScript);\n });\n\n existingScript.addEventListener('error', (error) => {\n rej(error);\n });\n });\n};\n\nexport const injectScriptWithFallbacks = async (\n scriptsData: ScriptData[],\n onError: (scriptData: ScriptData, existingScript: boolean) => void,\n) => {\n for (const scriptData of scriptsData) {\n const { id, url } = scriptData;\n const existingScript = getExistingScript(id);\n if (existingScript) {\n try {\n await handleExistingScript(existingScript);\n return scriptData;\n } catch (e) {\n onError(scriptData, true);\n }\n } else {\n try {\n await injectScript(id, url);\n return scriptData;\n } catch (e) {\n onError(scriptData, false);\n }\n }\n }\n throw new Error('All scripts failed to load');\n};\n\nexport const generateLibUrls = (\n baseUrls: string[],\n libName: string,\n version: string,\n path = '',\n) =>\n baseUrls.reduce((prev, curr) => {\n const baseUrl = curr;\n if (!baseUrl) {\n return prev;\n }\n\n let url: URL;\n try {\n url = new URL(baseUrl);\n } catch (e) {\n throw new Error(`Invalid URL: ${baseUrl}`);\n }\n\n const isUrlIncludesPath = url.pathname !== '/';\n\n if (!isUrlIncludesPath) {\n url.pathname = `/npm/${libName}@${version}/${path}`;\n }\n\n return [\n ...prev,\n {\n url: url,\n id: `npmlib-${libName\n .replaceAll('@', '')\n .replaceAll('/', '_')}-${hashUrl(url)}`,\n },\n ];\n }, []);\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { createSingletonMixin, compose } from '@descope/sdk-helpers';
|
|
2
|
+
import { loggerMixin } from '../loggerMixin/loggerMixin.js';
|
|
3
|
+
import { BASE_URLS } from './constants.js';
|
|
4
|
+
import { injectScriptWithFallbacks, generateLibUrls } from './helpers.js';
|
|
5
|
+
|
|
6
|
+
const injectNpmLibMixin = createSingletonMixin((superclass) => {
|
|
7
|
+
const BaseClass = compose(loggerMixin)(superclass);
|
|
8
|
+
return class InjectNpmLibMixinClass extends BaseClass {
|
|
9
|
+
get baseCdnUrl() {
|
|
10
|
+
return this.getAttribute('base-cdn-url');
|
|
11
|
+
}
|
|
12
|
+
injectNpmLib(libName, version, filePath = '', overrides = []) {
|
|
13
|
+
this.logger.debug(`Injecting npm lib: "${libName}" with version: "${version}"`);
|
|
14
|
+
return injectScriptWithFallbacks(generateLibUrls([...overrides, this.baseCdnUrl, ...BASE_URLS], libName, version, filePath), (scriptData, existingScript) => {
|
|
15
|
+
if (existingScript) {
|
|
16
|
+
this.logger.error(`Existing script cannot be loaded: "${scriptData.url}"`);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
this.logger.error(`Cannot load script from URL, Make sure this URL is valid and return the correct script: "${scriptData.url}"`);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
export { injectNpmLibMixin };
|
|
26
|
+
//# sourceMappingURL=injectNpmLibMixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injectNpmLibMixin.js","sources":["../../../../src/mixins/injectNpmLibMixin/injectNpmLibMixin.ts"],"sourcesContent":["import { compose, createSingletonMixin } from '@descope/sdk-helpers';\nimport { loggerMixin } from '../loggerMixin';\nimport { BASE_URLS } from './constants';\nimport { generateLibUrls, injectScriptWithFallbacks } from './helpers';\n\n// scripts load to window under descope object\ndeclare global {\n var descope: any;\n}\n\nexport const injectNpmLibMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(loggerMixin)(superclass);\n\n return class InjectNpmLibMixinClass extends BaseClass {\n get baseCdnUrl() {\n return this.getAttribute('base-cdn-url');\n }\n\n injectNpmLib(\n libName: string,\n version: string,\n filePath = '',\n overrides: string[] = [],\n ) {\n this.logger.debug(\n `Injecting npm lib: \"${libName}\" with version: \"${version}\"`,\n );\n return injectScriptWithFallbacks(\n generateLibUrls(\n [...overrides, this.baseCdnUrl, ...BASE_URLS],\n libName,\n version,\n filePath,\n ),\n (scriptData, existingScript) => {\n if (existingScript) {\n this.logger.error(\n `Existing script cannot be loaded: \"${scriptData.url}\"`,\n );\n return;\n }\n this.logger.error(\n `Cannot load script from URL, Make sure this URL is valid and return the correct script: \"${scriptData.url}\"`,\n );\n },\n );\n }\n };\n },\n);\n"],"names":[],"mappings":";;;;;MAUa,iBAAiB,GAAG,oBAAoB,CACnD,CAAqC,UAAa,KAAI;IACpD,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC;IAEnD,OAAO,MAAM,sBAAuB,SAAQ,SAAS,CAAA;AACnD,QAAA,IAAI,UAAU,GAAA;AACZ,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;SAC1C;QAED,YAAY,CACV,OAAe,EACf,OAAe,EACf,QAAQ,GAAG,EAAE,EACb,SAAA,GAAsB,EAAE,EAAA;YAExB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,CAAuB,oBAAA,EAAA,OAAO,CAAoB,iBAAA,EAAA,OAAO,CAAG,CAAA,CAAA,CAC7D,CAAC;AACF,YAAA,OAAO,yBAAyB,CAC9B,eAAe,CACb,CAAC,GAAG,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC,EAC7C,OAAO,EACP,OAAO,EACP,QAAQ,CACT,EACD,CAAC,UAAU,EAAE,cAAc,KAAI;gBAC7B,IAAI,cAAc,EAAE;oBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,CAAsC,mCAAA,EAAA,UAAU,CAAC,GAAG,CAAG,CAAA,CAAA,CACxD,CAAC;oBACF,OAAO;iBACR;gBACD,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,CAA4F,yFAAA,EAAA,UAAU,CAAC,GAAG,CAAG,CAAA,CAAA,CAC9G,CAAC;AACJ,aAAC,CACF,CAAC;SACH;KACF,CAAC;AACJ,CAAC;;;;"}
|
|
@@ -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;;;;"}
|