diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 100edfc..6f6ed10 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@design.estate/dees-element', - version: '2.0.31', + version: '2.0.32', description: 'a custom element class extending lit element class' } diff --git a/ts/dees-element.classes.dees-element.ts b/ts/dees-element.classes.dees-element.ts index c2ddb65..ddf642f 100644 --- a/ts/dees-element.classes.dees-element.ts +++ b/ts/dees-element.classes.dees-element.ts @@ -40,12 +40,20 @@ export class DeesElement extends plugins.lit.LitElement { this.elementDomReadyDeferred.resolve(); } + private garbageFunctions: (() => void)[] = []; + public registerGarbageFunction(garbageFunctionArg: () => void) { + this.garbageFunctions.push(garbageFunctionArg); + } + public async disconnectedCallback() { await this.domtoolsPromise; super.disconnectedCallback(); for (const subscription of this.rxSubscriptions) { subscription.unsubscribe(); } + for (const garbageFunction of this.garbageFunctions) { + garbageFunction(); + } this.dispatchEvent(new CustomEvent('deesElementDisconnected')); } }