UNPKG

@design.estate/dees-element

Version:

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

68 lines 5.76 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 './dees-element.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1lbGVtZW50LmNsYXNzZXMuZGVlcy1lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvZGVlcy1lbGVtZW50LmNsYXNzZXMuZGVlcy1lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sMkJBQTJCLENBQUM7QUFFckQsTUFBTSxPQUFPLFdBQVksU0FBUSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVU7SUFpQnJELFlBQVksYUFBMEQsRUFBRTtRQUN0RSxLQUFLLEVBQUUsQ0FBQztRQWpCVixXQUFXO1FBRUosYUFBUSxHQUFZLEtBQUssQ0FBQztRQVExQixvQkFBZSxHQUF3QyxFQUFFLENBQUM7UUFHekQsNEJBQXVCLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pFLG9CQUFlLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQztRQTRCdEQscUJBQWdCLEdBQWtDLEVBQUUsQ0FBQztRQUtyRCxxQkFBZ0IsR0FBa0MsRUFBRSxDQUFDO1FBN0IzRCxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsaUJBQWlCO1FBQzVCLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzFCLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUM1QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDdkYsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNsRCxLQUFLLE1BQU0sZUFBZSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3BELE1BQU0sZUFBZSxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxZQUFZLENBQUMsa0JBQTBEO1FBQzVFLEtBQUssQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUdNLHVCQUF1QixDQUFDLGtCQUE4QjtRQUMzRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUdNLHVCQUF1QixDQUFDLGtCQUE4QjtRQUMzRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVNLEtBQUssQ0FBQyxvQkFBb0I7UUFDL0IsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzNCLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzdCLEtBQUssTUFBTSxZQUFZLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ2hELFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3QixDQUFDO1FBQ0QsS0FBSyxNQUFNLGVBQWUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNwRCxNQUFNLGVBQWUsRUFBRSxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksV0FBVyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0NBQ0Y7QUE3RFE7SUFETixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQzs7NkNBQ1A7QUFNakM7SUFEQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRTs4QkFDWixPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVE7NkNBQUMifQ==