Fix incorrect style selector override.
This commit is contained in:
parent
799c5027e7
commit
aac909ffe9
2 changed files with 71 additions and 72 deletions
|
@ -42,7 +42,7 @@ function getParameters(argv) {
|
||||||
const para = parameters.build(parametersData, argv._);
|
const para = parameters.build(parametersData, argv._);
|
||||||
const variantsData = formVariantData(variantData, para);
|
const variantsData = formVariantData(variantData, para);
|
||||||
para.variants = variantsData;
|
para.variants = variantsData;
|
||||||
para.variantSelector = parameters.build(variantsData, argv._);
|
para.variantSelector = parameters.build(variantsData, ["default", ...argv._]);
|
||||||
para.defaultVariant = variantsData.default;
|
para.defaultVariant = variantsData.default;
|
||||||
|
|
||||||
para.naming = {
|
para.naming = {
|
||||||
|
|
|
@ -1,71 +1,70 @@
|
||||||
const objectAssign = require("object-assign");
|
const objectAssign = require("object-assign");
|
||||||
|
|
||||||
function mergeVSHive(_target, source) {
|
function mergeVSHive(_target, source) {
|
||||||
if (!source) return _target;
|
if (!source) return _target;
|
||||||
let __cvmap = objectAssign({}, _target.__cvmap, source.__cvmap);
|
let __cvmap = objectAssign({}, _target.__cvmap, source.__cvmap);
|
||||||
let target = objectAssign(_target, source);
|
let target = objectAssign(_target, source);
|
||||||
target.__cvmap = __cvmap;
|
target.__cvmap = __cvmap;
|
||||||
return target;
|
return target;
|
||||||
}
|
}
|
||||||
|
|
||||||
function produceComposite(vs, para, dflt, g) {
|
function produceComposite(vs, para, g) {
|
||||||
let sel = objectAssign({}, dflt);
|
let sel = {};
|
||||||
if (g.design)
|
if (g.design)
|
||||||
for (let h of g.design) {
|
for (let h of g.design) {
|
||||||
sel = mergeVSHive(sel, vs[h]);
|
sel = mergeVSHive(sel, vs[h]);
|
||||||
}
|
}
|
||||||
if (!para.isItalic && g.upright) {
|
if (!para.isItalic && g.upright) {
|
||||||
for (let h of g.upright) {
|
for (let h of g.upright) {
|
||||||
sel = mergeVSHive(sel, vs[h]);
|
sel = mergeVSHive(sel, vs[h]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (para.isItalic && g.italic) {
|
if (para.isItalic && g.italic) {
|
||||||
for (let h of g.italic) {
|
for (let h of g.italic) {
|
||||||
sel = mergeVSHive(sel, vs[h]);
|
sel = mergeVSHive(sel, vs[h]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sel.__isComposite = true;
|
sel.__isComposite = true;
|
||||||
return sel;
|
return sel;
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = function formVariantData(data, para) {
|
module.exports = function formVariantData(data, para) {
|
||||||
const vs = {};
|
const vs = {};
|
||||||
// simple selector
|
// simple selector
|
||||||
for (let k in data.simple) {
|
for (let k in data.simple) {
|
||||||
const hive = objectAssign({}, data.simple[k]);
|
const hive = objectAssign({}, data.simple[k]);
|
||||||
vs[k] = hive;
|
vs[k] = hive;
|
||||||
|
|
||||||
const tag = hive.tag;
|
const tag = hive.tag;
|
||||||
delete hive.tag;
|
delete hive.tag;
|
||||||
const tagUpright = hive.tagUpright;
|
const tagUpright = hive.tagUpright;
|
||||||
delete hive.tagUpright;
|
delete hive.tagUpright;
|
||||||
const tagItalic = hive.tagItalic;
|
const tagItalic = hive.tagItalic;
|
||||||
delete hive.tagItalic;
|
delete hive.tagItalic;
|
||||||
if (tag) {
|
if (tag) {
|
||||||
let __cvmap = {};
|
let __cvmap = {};
|
||||||
for (let k in hive) __cvmap[k] = tag;
|
for (let k in hive) __cvmap[k] = tag;
|
||||||
hive.__cvmap = __cvmap;
|
hive.__cvmap = __cvmap;
|
||||||
vs[tag] = hive;
|
vs[tag] = hive;
|
||||||
} else {
|
} else {
|
||||||
if (tagItalic && para.isItalic) {
|
if (tagItalic && para.isItalic) {
|
||||||
let __cvmap = {};
|
let __cvmap = {};
|
||||||
for (let k in hive) __cvmap[k] = tagItalic;
|
for (let k in hive) __cvmap[k] = tagItalic;
|
||||||
hive.__cvmap = __cvmap;
|
hive.__cvmap = __cvmap;
|
||||||
vs[tagItalic] = hive;
|
vs[tagItalic] = hive;
|
||||||
}
|
}
|
||||||
if (tagUpright && !para.isItalic) {
|
if (tagUpright && !para.isItalic) {
|
||||||
let __cvmap = {};
|
let __cvmap = {};
|
||||||
for (let k in hive) __cvmap[k] = tagUpright;
|
for (let k in hive) __cvmap[k] = tagUpright;
|
||||||
hive.__cvmap = __cvmap;
|
hive.__cvmap = __cvmap;
|
||||||
vs[tagUpright] = hive;
|
vs[tagUpright] = hive;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// default selector
|
// default selector
|
||||||
vs.default = produceComposite(vs, para, {}, data.default);
|
vs.default = produceComposite(vs, para, data.default);
|
||||||
// ss## selector
|
// ss## selector
|
||||||
for (let k in data.composite) {
|
for (let k in data.composite) vs[k] = produceComposite(vs, para, data.composite[k]);
|
||||||
vs[k] = produceComposite(vs, para, vs.default, data.composite[k]);
|
|
||||||
}
|
return vs;
|
||||||
return vs;
|
};
|
||||||
};
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue