@descope/sdk-mixins
Version:
Descope JavaScript SDK mixins
46 lines (43 loc) • 2.06 kB
JavaScript
import { __classPrivateFieldGet } from 'tslib';
import { createSingletonMixin, compose } from '@descope/sdk-helpers';
import { initLifecycleMixin } from '../initLifecycleMixin.js';
import { initElementMixin } from '../initElementMixin.js';
import { descopeUiMixin } from '../descopeUiMixin/descopeUiMixin.js';
import { createModalEle } from './helpers.js';
import { MODAL_ELE_TAG } from './constants.js';
import { ModalDriver } from '@descope/sdk-component-drivers';
const modalMixin = createSingletonMixin((superclass) => {
var _ModalMixinClass_ModalDriverWrapper, _a;
const BaseClass = compose(initLifecycleMixin, initElementMixin, descopeUiMixin)(superclass);
return _a = class ModalMixinClass extends BaseClass {
constructor() {
super(...arguments);
_ModalMixinClass_ModalDriverWrapper.set(this, (() => {
const loadDescopeUiComponents = this.loadDescopeUiComponents.bind(this);
return class ModalDriverWrapper extends ModalDriver {
setContent(template) {
loadDescopeUiComponents(template);
super.setContent(template);
}
};
})());
}
createModal(config) {
const baseConfig = {};
const modal = createModalEle(Object.assign(Object.assign({}, baseConfig), config));
this.rootElement.append(modal);
return new (__classPrivateFieldGet(this, _ModalMixinClass_ModalDriverWrapper, "f"))(modal, {
logger: this.logger,
});
}
async init() {
var _b;
this.loadDescopeUiComponents([MODAL_ELE_TAG]);
await ((_b = super.init) === null || _b === void 0 ? void 0 : _b.call(this));
}
},
_ModalMixinClass_ModalDriverWrapper = new WeakMap(),
_a;
});
export { modalMixin };
//# sourceMappingURL=modalMixin.js.map