fix(core): update

This commit is contained in:
2020-11-24 19:18:59 +00:00
parent c467a92e7c
commit d5732822e4
4 changed files with 34 additions and 23 deletions

View File

@ -8,15 +8,19 @@ export class ElementInstrumenter {
const originalConnectedCallback = elementArg.connectedCallback;
const originalDisconnectedCallback = elementArg.disconnectedCallback;
elementArg.connectedCallback = () => {
if (!elementArg.parentElement) {
elementArg.connectedCallback = () => {
this.connectedElements.add(elementArg);
originalConnectedCallback.apply(elementArg);
};
} else {
this.connectedElements.add(elementArg);
originalConnectedCallback.apply(elementArg);
};
}
elementArg.disconnectedCallback = () => {
this.connectedElements.remove(elementArg);
originalDisconnectedCallback.apply(elementArg);
};
this.connectedElements.add(elementArg);
}

View File

@ -1,28 +1,35 @@
import { LitElement } from 'lit-element';
import { DomTools } from './domtools.classes.domtools';
import * as plugins from './domtools.plugins';
export class ThemeManager {
public domtoolsRef: DomTools;
goBrightBoolean = false;
constructor(domtoolsRefArg: DomTools) {
this.domtoolsRef = domtoolsRefArg;
this.domtoolsRef.elementInstrumenter.connectedElements.eventSubject.subscribe(async eventData => {
await this.setThemeStatusForElement(eventData.payload, this.goBrightBoolean);
});
}
private async setThemeStatusForElement (elementArg: LitElement, goBrightBool: boolean) {
const goBright = (elementArg as any).goBright;
if (typeof goBright === 'boolean') {
(elementArg as any).goBright = goBrightBool;
}
}
public goBright() {
this.domtoolsRef.elementInstrumenter.forEachelement(async elementArg => {
const goBright = (elementArg as any).goBright;
if (typeof goBright === 'boolean') {
(elementArg as any).goBright = true;
}
await this.setThemeStatusForElement(elementArg, true);
});
}
public goDark() {
this.domtoolsRef.elementInstrumenter.forEachelement(async elementArg => {
const goBright = (elementArg as any).goBright;
if (typeof goBright === 'boolean') {
(elementArg as any).goBright = false;
}
await this.setThemeStatusForElement(elementArg, false);
});
}
}