@design.estate/dees-element
Version:
A library for creating custom elements extending the lit element class with additional functionalities.
68 lines • 5.76 kB
JavaScript
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==