UNPKG

@descope/sdk-mixins

Version:
48 lines (44 loc) 2.44 kB
'use strict'; var tslib = require('tslib'); var sdkHelpers = require('@descope/sdk-helpers'); var initLifecycleMixin = require('../initLifecycleMixin.js'); var loggerMixin = require('../loggerMixin/loggerMixin.js'); var helpers = require('./helpers.js'); const observeAttributesMixin = sdkHelpers.createSingletonMixin((superclass) => { var _ObserveAttributesMixinClass_observeMappings, _a; const BaseClass = sdkHelpers.compose(loggerMixin.loggerMixin, initLifecycleMixin.initLifecycleMixin)(superclass); return _a = class ObserveAttributesMixinClass extends BaseClass { constructor() { super(...arguments); _ObserveAttributesMixinClass_observeMappings.set(this, {}); } async init() { var _b; await ((_b = super.init) === null || _b === void 0 ? void 0 : _b.call(this)); helpers.attributesObserver(this, (attrName) => { var _b; (_b = tslib.__classPrivateFieldGet(this, _ObserveAttributesMixinClass_observeMappings, "f")[attrName]) === null || _b === void 0 ? void 0 : _b.forEach((cb) => { cb(attrName, this.getAttribute(attrName)); }); }); } observeAttribute(attrName, onAttrChange) { if (!tslib.__classPrivateFieldGet(this, _ObserveAttributesMixinClass_observeMappings, "f")[attrName]) { tslib.__classPrivateFieldGet(this, _ObserveAttributesMixinClass_observeMappings, "f")[attrName] = []; } const idx = tslib.__classPrivateFieldGet(this, _ObserveAttributesMixinClass_observeMappings, "f")[attrName].push(onAttrChange); return () => tslib.__classPrivateFieldGet(this, _ObserveAttributesMixinClass_observeMappings, "f")[attrName].splice(idx, 1); } observeAttributes(attrs, cb) { const unobserveList = attrs.reduce((acc, attrName) => { acc.push(this.observeAttribute(attrName, cb)); return acc; }, []); return () => unobserveList.forEach((unobserve) => unobserve()); } }, _ObserveAttributesMixinClass_observeMappings = new WeakMap(), _a; }); exports.observeAttributesMixin = observeAttributesMixin; //# sourceMappingURL=observeAttributesMixin.js.map