forked from mystiq/hydrogen-web
Remove -- from everywhere
This commit is contained in:
parent
59ca8e6309
commit
72785e7c3e
1 changed files with 8 additions and 6 deletions
|
@ -53,12 +53,12 @@ function parseDeclarationValue(value) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function resolveDerivedVariable(decl, derive) {
|
function resolveDerivedVariable(decl, derive) {
|
||||||
const RE_VARIABLE_VALUE = /(--.+)--(.+)-(.+)/;
|
const RE_VARIABLE_VALUE = /--((.+)--(.+)-(.+))/;
|
||||||
const variableCollection = parseDeclarationValue(decl.value);
|
const variableCollection = parseDeclarationValue(decl.value);
|
||||||
for (const variable of variableCollection) {
|
for (const variable of variableCollection) {
|
||||||
const matches = variable.match(RE_VARIABLE_VALUE);
|
const matches = variable.match(RE_VARIABLE_VALUE);
|
||||||
if (matches) {
|
if (matches) {
|
||||||
const [wholeVariable, baseVariable, operation, argument] = matches;
|
const [, wholeVariable, baseVariable, operation, argument] = matches;
|
||||||
const value = baseVariables.get(baseVariable) ?? getValueFromAlias(baseVariable);
|
const value = baseVariables.get(baseVariable) ?? getValueFromAlias(baseVariable);
|
||||||
if (!value) {
|
if (!value) {
|
||||||
throw new Error(`Cannot derive from ${baseVariable} because it is neither defined in config nor is it an alias!`);
|
throw new Error(`Cannot derive from ${baseVariable} because it is neither defined in config nor is it an alias!`);
|
||||||
|
@ -72,13 +72,15 @@ function resolveDerivedVariable(decl, derive) {
|
||||||
function extract(decl) {
|
function extract(decl) {
|
||||||
if (decl.variable) {
|
if (decl.variable) {
|
||||||
// see if right side is of form "var(--foo)"
|
// see if right side is of form "var(--foo)"
|
||||||
const wholeVariable = decl.value.match(/var\((--.+)\)/)?.[1];
|
const wholeVariable = decl.value.match(/var\(--(.+)\)/)?.[1];
|
||||||
|
// remove -- from the prop
|
||||||
|
const prop = decl.prop.substring(2);
|
||||||
if (wholeVariable) {
|
if (wholeVariable) {
|
||||||
aliasMap.set(decl.prop, wholeVariable);
|
aliasMap.set(prop, wholeVariable);
|
||||||
// Since this is an alias, we shouldn't store it in baseVariables
|
// Since this is an alias, we shouldn't store it in baseVariables
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
baseVariables.set(decl.prop, decl.value);
|
baseVariables.set(prop, decl.value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,7 +88,7 @@ function addResolvedVariablesToRootSelector(root, {Rule, Declaration}) {
|
||||||
const newRule = new Rule({ selector: ":root", source: root.source });
|
const newRule = new Rule({ selector: ":root", source: root.source });
|
||||||
// Add derived css variables to :root
|
// Add derived css variables to :root
|
||||||
resolvedMap.forEach((value, key) => {
|
resolvedMap.forEach((value, key) => {
|
||||||
const declaration = new Declaration({prop: key, value});
|
const declaration = new Declaration({prop: `--${key}`, value});
|
||||||
newRule.append(declaration);
|
newRule.append(declaration);
|
||||||
});
|
});
|
||||||
root.append(newRule);
|
root.append(newRule);
|
||||||
|
|
Loading…
Reference in a new issue