Compare commits

...

8 Commits

Author SHA1 Message Date
127564cd71 1.0.71 2020-11-25 14:43:23 +00:00
e077bf5b25 fix(core): update 2020-11-25 14:43:23 +00:00
64a3f57813 1.0.70 2020-11-24 20:57:42 +00:00
1315e8c3f6 fix(core): update 2020-11-24 20:57:41 +00:00
d059862841 1.0.69 2020-11-24 19:48:14 +00:00
ad34affb9e fix(core): update 2020-11-24 19:48:14 +00:00
011b3fb76a 1.0.68 2020-11-24 19:23:07 +00:00
47099d02b5 fix(core): update 2020-11-24 19:23:06 +00:00
5 changed files with 29 additions and 22 deletions

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "@designestate/dees-domtools", "name": "@designestate/dees-domtools",
"version": "1.0.67", "version": "1.0.71",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {

View File

@ -1,6 +1,6 @@
{ {
"name": "@designestate/dees-domtools", "name": "@designestate/dees-domtools",
"version": "1.0.67", "version": "1.0.71",
"private": false, "private": false,
"description": "tools to simplify complex css structures", "description": "tools to simplify complex css structures",
"main": "dist_ts/index.js", "main": "dist_ts/index.js",

View File

@ -5,23 +5,20 @@ export class ElementInstrumenter {
connectedElements = new plugins.lik.ObjectMap<LitElement>(); connectedElements = new plugins.lik.ObjectMap<LitElement>();
public instrumentElement(elementArg: LitElement) { public instrumentElement(elementArg: LitElement) {
const originalConnectedCallback = elementArg.connectedCallback; const addToConnectedElementsFunc = (eventArg: CustomEvent) => {
const originalDisconnectedCallback = elementArg.disconnectedCallback;
if (!elementArg.parentElement) {
elementArg.connectedCallback = () => {
this.connectedElements.add(elementArg);
originalConnectedCallback.apply(elementArg);
};
} else {
this.connectedElements.add(elementArg); this.connectedElements.add(elementArg);
}
elementArg.disconnectedCallback = () => {
this.connectedElements.remove(elementArg);
originalDisconnectedCallback.apply(elementArg);
}; };
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);
}
} }
public async forEachelement(eachFuncArg: (elementArg: LitElement) => Promise<void>) { public async forEachelement(eachFuncArg: (elementArg: LitElement) => Promise<void>) {

View File

@ -5,7 +5,7 @@ import * as plugins from './domtools.plugins';
export class ThemeManager { export class ThemeManager {
public domtoolsRef: DomTools; public domtoolsRef: DomTools;
goBrightBoolean = false; public goBrightBoolean = false;
constructor(domtoolsRefArg: DomTools) { constructor(domtoolsRefArg: DomTools) {
this.domtoolsRef = domtoolsRefArg; this.domtoolsRef = domtoolsRefArg;
@ -21,15 +21,24 @@ export class ThemeManager {
} }
} }
public goBright() { private async updateAllConnectedElements() {
this.domtoolsRef.elementInstrumenter.forEachelement(async elementArg => { 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() { public goDark() {
this.domtoolsRef.elementInstrumenter.forEachelement(async elementArg => { this.goBrightBoolean = false;
await this.setThemeStatusForElement(elementArg, false); this.updateAllConnectedElements();
}); }
public toggleDarkBright() {
this.goBrightBoolean = !this.goBrightBoolean;
this.updateAllConnectedElements();
} }
} }

View File

@ -10,6 +10,7 @@ import { html, LitElement } from 'lit-element';
export const styles = html` export const styles = html`
<style> <style>
* { * {
transition: background 0.2s, color 0.1s;
font-family: 'Roboto', sans-serif; font-family: 'Roboto', sans-serif;
box-sizing: border-box; box-sizing: border-box;
} }