@design.estate/dees-element
Version:
A library for creating custom elements extending the lit element class with additional functionalities.
76 lines • 7.05 kB
JavaScript
import { CSSResult, unsafeCSS } from 'lit';
import * as plugins from './plugins.js';
import * as domtools from '@design.estate/dees-domtools';
export class CssManager {
constructor() {
this.domtoolsPromise = domtools.DomTools.setupDomTools();
this.goBright = false;
this.bdVarTripletStore = [];
this.cssGridColumns = (amountOfColumnsArg, gapSizeArg) => {
let returnString = ``;
for (let i = 0; i < amountOfColumnsArg; i++) {
returnString += ` calc((100%/${amountOfColumnsArg}) - (${gapSizeArg * (amountOfColumnsArg - 1)}px/${amountOfColumnsArg}))`;
}
return plugins.lit.unsafeCSS(returnString);
};
this.domtoolsPromise.then(async (domtoolsArg) => {
domtoolsArg.themeManager.themeObservable.subscribe(async (goBrightArg) => {
this.goBright = goBrightArg;
await domtoolsArg.domReady.promise;
for (const bdTripletArg of this.bdVarTripletStore) {
document.body.style.setProperty(bdTripletArg.cssVarName, this.goBright ? bdTripletArg.brightValue : bdTripletArg.darkValue);
}
});
});
}
get defaultStyles() {
return domtools.elementBasic.staticStyles;
}
cssForDesktop(contentArg) {
return unsafeCSS(domtools.breakpoints.cssForDesktop(contentArg));
}
cssForNotebook(contentArg) {
return unsafeCSS(domtools.breakpoints.cssForNotebook(contentArg));
}
cssForTablet(contentArg) {
return unsafeCSS(domtools.breakpoints.cssForTablet(contentArg));
}
cssForPhablet(contentArg) {
return unsafeCSS(domtools.breakpoints.cssForPhablet(contentArg));
}
cssForPhone(contentArg) {
return unsafeCSS(domtools.breakpoints.cssForPhone(contentArg));
}
bdTheme(brightValueArg, darkValueArg) {
let returnCssVar;
// lets determine the default value for quick page rendering.
let defaultValue;
if (domtools.DomTools.getGlobalDomToolsSync()) {
defaultValue = domtools.DomTools.getGlobalDomToolsSync().themeManager.goBrightBoolean
? brightValueArg
: darkValueArg;
}
else {
defaultValue = darkValueArg;
}
const existingTriplet = this.bdVarTripletStore.find((tripletArg) => tripletArg.darkValue === darkValueArg && tripletArg.brightValue === brightValueArg);
if (existingTriplet) {
returnCssVar = existingTriplet.cssVarName;
}
else {
const newTriplet = {
cssVarName: `--${plugins.isounique.uni()}`,
brightValue: brightValueArg,
darkValue: darkValueArg,
};
this.bdVarTripletStore.push(newTriplet);
this.domtoolsPromise.then(async (domtoolsArg) => {
await domtoolsArg.domReady.promise;
document.body.style.setProperty(newTriplet.cssVarName, defaultValue);
});
returnCssVar = newTriplet.cssVarName;
}
return plugins.lit.unsafeCSS(`var(${returnCssVar}, ${defaultValue})`);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jc3NtYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvY2xhc3Nlcy5jc3NtYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQzNDLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxRQUFRLE1BQU0sOEJBQThCLENBQUM7QUFRekQsTUFBTSxPQUFPLFVBQVU7SUFLckI7UUFKTyxvQkFBZSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEQsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixzQkFBaUIsR0FBb0IsRUFBRSxDQUFDO1FBNkV4QyxtQkFBYyxHQUFHLENBQUMsa0JBQTBCLEVBQUUsVUFBa0IsRUFBYSxFQUFFO1lBQ3BGLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUN0QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDNUMsWUFBWSxJQUFJLGVBQWUsa0JBQWtCLFFBQy9DLFVBQVUsR0FBRyxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FDdEMsTUFBTSxrQkFBa0IsSUFBSSxDQUFDO1lBQy9CLENBQUM7WUFDRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQztRQWxGQSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUU7WUFDOUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRTtnQkFDdkUsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7Z0JBQzVCLE1BQU0s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