From aac909ffe992ba0efd6c61cbdcefbd65ab3a54db Mon Sep 17 00:00:00 2001 From: Belleve Invis Date: Mon, 13 Jan 2020 22:52:06 -0800 Subject: [PATCH] Fix incorrect style selector override. --- gen/generator.js | 2 +- support/variant-data.js | 141 ++++++++++++++++++++-------------------- 2 files changed, 71 insertions(+), 72 deletions(-) diff --git a/gen/generator.js b/gen/generator.js index ceab92a01..b274194b6 100644 --- a/gen/generator.js +++ b/gen/generator.js @@ -42,7 +42,7 @@ function getParameters(argv) { const para = parameters.build(parametersData, argv._); const variantsData = formVariantData(variantData, para); para.variants = variantsData; - para.variantSelector = parameters.build(variantsData, argv._); + para.variantSelector = parameters.build(variantsData, ["default", ...argv._]); para.defaultVariant = variantsData.default; para.naming = { diff --git a/support/variant-data.js b/support/variant-data.js index f88a4f5ed..328e1cbf2 100644 --- a/support/variant-data.js +++ b/support/variant-data.js @@ -1,71 +1,70 @@ -const objectAssign = require("object-assign"); - -function mergeVSHive(_target, source) { - if (!source) return _target; - let __cvmap = objectAssign({}, _target.__cvmap, source.__cvmap); - let target = objectAssign(_target, source); - target.__cvmap = __cvmap; - return target; -} - -function produceComposite(vs, para, dflt, g) { - let sel = objectAssign({}, dflt); - if (g.design) - for (let h of g.design) { - sel = mergeVSHive(sel, vs[h]); - } - if (!para.isItalic && g.upright) { - for (let h of g.upright) { - sel = mergeVSHive(sel, vs[h]); - } - } - if (para.isItalic && g.italic) { - for (let h of g.italic) { - sel = mergeVSHive(sel, vs[h]); - } - } - sel.__isComposite = true; - return sel; -} - -module.exports = function formVariantData(data, para) { - const vs = {}; - // simple selector - for (let k in data.simple) { - const hive = objectAssign({}, data.simple[k]); - vs[k] = hive; - - const tag = hive.tag; - delete hive.tag; - const tagUpright = hive.tagUpright; - delete hive.tagUpright; - const tagItalic = hive.tagItalic; - delete hive.tagItalic; - if (tag) { - let __cvmap = {}; - for (let k in hive) __cvmap[k] = tag; - hive.__cvmap = __cvmap; - vs[tag] = hive; - } else { - if (tagItalic && para.isItalic) { - let __cvmap = {}; - for (let k in hive) __cvmap[k] = tagItalic; - hive.__cvmap = __cvmap; - vs[tagItalic] = hive; - } - if (tagUpright && !para.isItalic) { - let __cvmap = {}; - for (let k in hive) __cvmap[k] = tagUpright; - hive.__cvmap = __cvmap; - vs[tagUpright] = hive; - } - } - } - // default selector - vs.default = produceComposite(vs, para, {}, data.default); - // ss## selector - for (let k in data.composite) { - vs[k] = produceComposite(vs, para, vs.default, data.composite[k]); - } - return vs; -}; +const objectAssign = require("object-assign"); + +function mergeVSHive(_target, source) { + if (!source) return _target; + let __cvmap = objectAssign({}, _target.__cvmap, source.__cvmap); + let target = objectAssign(_target, source); + target.__cvmap = __cvmap; + return target; +} + +function produceComposite(vs, para, g) { + let sel = {}; + if (g.design) + for (let h of g.design) { + sel = mergeVSHive(sel, vs[h]); + } + if (!para.isItalic && g.upright) { + for (let h of g.upright) { + sel = mergeVSHive(sel, vs[h]); + } + } + if (para.isItalic && g.italic) { + for (let h of g.italic) { + sel = mergeVSHive(sel, vs[h]); + } + } + sel.__isComposite = true; + return sel; +} + +module.exports = function formVariantData(data, para) { + const vs = {}; + // simple selector + for (let k in data.simple) { + const hive = objectAssign({}, data.simple[k]); + vs[k] = hive; + + const tag = hive.tag; + delete hive.tag; + const tagUpright = hive.tagUpright; + delete hive.tagUpright; + const tagItalic = hive.tagItalic; + delete hive.tagItalic; + if (tag) { + let __cvmap = {}; + for (let k in hive) __cvmap[k] = tag; + hive.__cvmap = __cvmap; + vs[tag] = hive; + } else { + if (tagItalic && para.isItalic) { + let __cvmap = {}; + for (let k in hive) __cvmap[k] = tagItalic; + hive.__cvmap = __cvmap; + vs[tagItalic] = hive; + } + if (tagUpright && !para.isItalic) { + let __cvmap = {}; + for (let k in hive) __cvmap[k] = tagUpright; + hive.__cvmap = __cvmap; + vs[tagUpright] = hive; + } + } + } + // default selector + vs.default = produceComposite(vs, para, data.default); + // ss## selector + for (let k in data.composite) vs[k] = produceComposite(vs, para, data.composite[k]); + + return vs; +};