Compare commits

...

12 Commits

Author SHA1 Message Date
63c9ae97d4 1.0.74 2020-11-25 15:42:56 +00:00
a83239e0d9 fix(core): update 2020-11-25 15:42:55 +00:00
8da64f1b50 1.0.73 2020-11-25 15:14:48 +00:00
2d4c0e4e49 fix(core): update 2020-11-25 15:14:48 +00:00
1c8f7fa59e 1.0.72 2020-11-25 14:56:09 +00:00
a613c0aca2 fix(core): update 2020-11-25 14:56:08 +00:00
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
5 changed files with 25 additions and 17 deletions

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "@designestate/dees-domtools", "name": "@designestate/dees-domtools",
"version": "1.0.68", "version": "1.0.74",
"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.68", "version": "1.0.74",
"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,13 +5,23 @@ import * as plugins from './domtools.plugins';
export class ThemeManager { export class ThemeManager {
public domtoolsRef: DomTools; public domtoolsRef: DomTools;
goBrightBoolean = false; public goBrightBoolean = false;
public preferredColorSchemeMediaMatch = window.matchMedia('(prefers-color-scheme: light)');
constructor(domtoolsRefArg: DomTools) { constructor(domtoolsRefArg: DomTools) {
this.domtoolsRef = domtoolsRefArg; this.domtoolsRef = domtoolsRefArg;
// lets take care of elements being added that need to know of the current theme
this.domtoolsRef.elementInstrumenter.connectedElements.eventSubject.subscribe(async eventData => { this.domtoolsRef.elementInstrumenter.connectedElements.eventSubject.subscribe(async eventData => {
await this.setThemeStatusForElement(eventData.payload, this.goBrightBoolean); await this.setThemeStatusForElement(eventData.payload, this.goBrightBoolean);
}); });
// lets care
this.goBrightBoolean = this.preferredColorSchemeMediaMatch.matches;
this.preferredColorSchemeMediaMatch.addEventListener('change', eventArg => {
this.goBrightBoolean = eventArg.matches;
this.updateAllConnectedElements();
});
} }
private async setThemeStatusForElement (elementArg: LitElement, goBrightBool: boolean) { private async setThemeStatusForElement (elementArg: LitElement, goBrightBool: boolean) {

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.1s, color 0.1s;
font-family: 'Roboto', sans-serif; font-family: 'Roboto', sans-serif;
box-sizing: border-box; box-sizing: border-box;
} }