@design.estate/dees-element
Version:
A library for creating custom elements extending the lit element class with additional functionalities.
76 lines • 7.11 kB
JavaScript
import { CSSResult, unsafeCSS } from 'lit';
import * as plugins from './dees-element.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1lbGVtZW50LmNsYXNzZXMuY3NzbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2RlZXMtZWxlbWVudC5jbGFzc2VzLmNzc21hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDM0MsT0FBTyxLQUFLLE9BQU8sTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEtBQUssUUFBUSxNQUFNLDhCQUE4QixDQUFDO0FBUXpELE1BQU0sT0FBTyxVQUFVO0lBS3JCO1FBSk8sb0JBQWUsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BELGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsc0JBQWlCLEdBQW9CLEVBQUUsQ0FBQztRQTZFeEMsbUJBQWMsR0FBRyxDQUFDLGtCQUEwQixFQUFFLFVBQWtCLEVBQWEsRUFBRTtZQUNwRixJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7WUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGtCQUFrQixFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzVDLFlBQVksSUFBSSxlQUFlLGtCQUFrQixRQUMvQyxVQUFVLEdBQUcsQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQ3RDLE1BQU0sa0JBQWtCLElBQUksQ0FBQztZQUMvQixDQUFDO1lBQ0QsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUM7UUFsRkEsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFO1lBQzlDLFdBQVcsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUU7Z0JBQ3ZFLElBQUksQ0FBQyxRQUFR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