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