Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
1c8f7fa59e | |||
a613c0aca2 | |||
127564cd71 | |||
e077bf5b25 | |||
64a3f57813 | |||
1315e8c3f6 | |||
d059862841 | |||
ad34affb9e | |||
011b3fb76a | |||
47099d02b5 |
2
package-lock.json
generated
2
package-lock.json
generated
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@designestate/dees-domtools",
|
||||
"version": "1.0.67",
|
||||
"version": "1.0.72",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@designestate/dees-domtools",
|
||||
"version": "1.0.67",
|
||||
"version": "1.0.72",
|
||||
"private": false,
|
||||
"description": "tools to simplify complex css structures",
|
||||
"main": "dist_ts/index.js",
|
||||
|
@ -5,23 +5,20 @@ export class ElementInstrumenter {
|
||||
connectedElements = new plugins.lik.ObjectMap<LitElement>();
|
||||
|
||||
public instrumentElement(elementArg: LitElement) {
|
||||
const originalConnectedCallback = elementArg.connectedCallback;
|
||||
const originalDisconnectedCallback = elementArg.disconnectedCallback;
|
||||
|
||||
if (!elementArg.parentElement) {
|
||||
elementArg.connectedCallback = () => {
|
||||
const addToConnectedElementsFunc = (eventArg: CustomEvent) => {
|
||||
this.connectedElements.add(elementArg);
|
||||
originalConnectedCallback.apply(elementArg);
|
||||
};
|
||||
} else {
|
||||
const removeFromConnectedElementsFunc = eventArg => {
|
||||
this.connectedElements.remove(elementArg);
|
||||
elementArg.removeEventListener('domtools-connected', addToConnectedElementsFunc);
|
||||
elementArg.removeEventListener('domtools-disconnected', removeFromConnectedElementsFunc);
|
||||
};
|
||||
elementArg.addEventListener('domtools-connected', addToConnectedElementsFunc);
|
||||
elementArg.addEventListener('domtools-disconnected', removeFromConnectedElementsFunc);
|
||||
|
||||
if (elementArg.parentElement) {
|
||||
this.connectedElements.add(elementArg);
|
||||
}
|
||||
|
||||
elementArg.disconnectedCallback = () => {
|
||||
this.connectedElements.remove(elementArg);
|
||||
originalDisconnectedCallback.apply(elementArg);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
public async forEachelement(eachFuncArg: (elementArg: LitElement) => Promise<void>) {
|
||||
|
@ -5,7 +5,7 @@ import * as plugins from './domtools.plugins';
|
||||
export class ThemeManager {
|
||||
public domtoolsRef: DomTools;
|
||||
|
||||
goBrightBoolean = false;
|
||||
public goBrightBoolean = false;
|
||||
|
||||
constructor(domtoolsRefArg: DomTools) {
|
||||
this.domtoolsRef = domtoolsRefArg;
|
||||
@ -21,15 +21,24 @@ export class ThemeManager {
|
||||
}
|
||||
}
|
||||
|
||||
public goBright() {
|
||||
private async updateAllConnectedElements() {
|
||||
this.domtoolsRef.elementInstrumenter.forEachelement(async elementArg => {
|
||||
await this.setThemeStatusForElement(elementArg, true);
|
||||
await this.setThemeStatusForElement(elementArg, this.goBrightBoolean);
|
||||
});
|
||||
}
|
||||
|
||||
public goBright() {
|
||||
this.goBrightBoolean = true;
|
||||
this.updateAllConnectedElements();
|
||||
}
|
||||
|
||||
public goDark() {
|
||||
this.domtoolsRef.elementInstrumenter.forEachelement(async elementArg => {
|
||||
await this.setThemeStatusForElement(elementArg, false);
|
||||
});
|
||||
this.goBrightBoolean = false;
|
||||
this.updateAllConnectedElements();
|
||||
}
|
||||
|
||||
public toggleDarkBright() {
|
||||
this.goBrightBoolean = !this.goBrightBoolean;
|
||||
this.updateAllConnectedElements();
|
||||
}
|
||||
}
|
@ -10,6 +10,7 @@ import { html, LitElement } from 'lit-element';
|
||||
export const styles = html`
|
||||
<style>
|
||||
* {
|
||||
transition: background 0.2s, color 0.1s;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
Reference in New Issue
Block a user