UNPKG

@design.estate/dees-element

Version:

A library for creating custom elements extending the lit element class with additional functionalities.

68 lines 5.71 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; import * as plugins from './plugins.js'; export class DeesElement extends plugins.lit.LitElement { constructor(optionsArg = {}) { super(); // INSTANCE this.goBright = false; this.rxSubscriptions = []; this.elementDomReadyDeferred = plugins.domtools.plugins.smartpromise.defer(); this.elementDomReady = this.elementDomReadyDeferred.promise; this.startupFunctions = []; this.garbageFunctions = []; this.domtoolsPromise = plugins.domtools.elementBasic.setup(this, optionsArg); this.domtoolsPromise.then((domtoolsArg) => { this.domtools = domtoolsArg; }); } async connectedCallback() { super.connectedCallback(); const domtools = await this.domtoolsPromise; this.themeSubscription = domtools.themeManager.themeObservable.subscribe((goBrightArg) => { this.goBright = goBrightArg; }); this.rxSubscriptions.push(this.themeSubscription); for (const startupFunction of this.startupFunctions) { await startupFunction(); } this.dispatchEvent(new CustomEvent('deesElementConnected')); } firstUpdated(_changedProperties) { super.firstUpdated(_changedProperties); this.elementDomReadyDeferred.resolve(); } registerStartupFunction(startupFunctionArg) { this.startupFunctions.push(startupFunctionArg); } registerGarbageFunction(garbageFunctionArg) { this.garbageFunctions.push(garbageFunctionArg); } async disconnectedCallback() { await this.domtoolsPromise; super.disconnectedCallback(); for (const subscription of this.rxSubscriptions) { subscription.unsubscribe(); } for (const garbageFunction of this.garbageFunctions) { await garbageFunction(); } this.dispatchEvent(new CustomEvent('deesElementDisconnected')); } } __decorate([ plugins.lit.property({ type: Boolean }), __metadata("design:type", Boolean) ], DeesElement.prototype, "goBright", void 0); __decorate([ plugins.lit.property(), __metadata("design:type", plugins.domtools.DomTools) ], DeesElement.prototype, "domtools", void 0); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5kZWVzLWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLmRlZXMtZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUV4QyxNQUFNLE9BQU8sV0FBWSxTQUFRLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVTtJQWlCckQsWUFBWSxhQUEwRCxFQUFFO1FBQ3RFLEtBQUssRUFBRSxDQUFDO1FBakJWLFdBQVc7UUFFSixhQUFRLEdBQVksS0FBSyxDQUFDO1FBUTFCLG9CQUFlLEdBQXdDLEVBQUUsQ0FBQztRQUd6RCw0QkFBdUIsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekUsb0JBQWUsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDO1FBNEJ0RCxxQkFBZ0IsR0FBa0MsRUFBRSxDQUFDO1FBS3JELHFCQUFnQixHQUFrQyxFQUFFLENBQUM7UUE3QjNELElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUssQ0FBQyxpQkFBaUI7UUFDNUIsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDMUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzVDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN2RixJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xELEtBQUssTUFBTSxlQUFlLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDcEQsTUFBTSxlQUFlLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVNLFlBQVksQ0FBQyxrQkFBMEQ7UUFDNUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBR00sdUJBQXVCLENBQUMsa0JBQThCO1FBQzNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBR00sdUJBQXVCLENBQUMsa0JBQThCO1FBQzNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU0sS0FBSyxDQUFDLG9CQUFvQjtRQUMvQixNQUFNLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDM0IsS0FBSyxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDN0IsS0FBSyxNQUFNLFlBQVksSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDaEQsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFDRCxLQUFLLE1BQU0sZUFBZSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3BELE1BQU0sZUFBZSxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7Q0FDRjtBQTdEUTtJQUROLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDOzs2Q0FDUDtBQU1qQztJQURDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFOzhCQUNaLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUTs2Q0FBQyJ9