@antv/f6-ui
Version:
UI system for @antv/f6
300 lines (277 loc) • 10.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.typeParser = typeParser;
exports.isColor = isColor;
exports.walkDomSelector = walkDomSelector;
exports.selectorToArr = selectorToArr;
exports.isSelectorMatchDom = isSelectorMatchDom;
exports.layoutAttrs = exports.reflowAttrs = void 0;
var _tslib = require("tslib");
function typeParser(value) {
if (/^[-\+\.\d]+$/.test(value)) {
return Number(value);
}
if (/true|false/.test(value)) {
return Boolean(value);
}
if (/^\s*\[/.test(value)) {
try {
return JSON.parse(value);
} catch (e) {
throw new Error("\u89E3\u6790\u6570\u7EC4" + value + "\u5931\u8D25");
}
}
if (/^\s*\{/.test(value)) {
try {
return JSON.parse(value);
} catch (e) {
throw new Error("\u89E3\u6790\u5BF9\u8C61" + value + "\u5931\u8D25");
}
}
return value;
}
var colors;
(function (colors) {
colors[colors["aliceblue"] = 0] = "aliceblue";
colors[colors["antiquewhite"] = 1] = "antiquewhite";
colors[colors["aqua"] = 2] = "aqua";
colors[colors["aquamarine"] = 3] = "aquamarine";
colors[colors["azure"] = 4] = "azure";
colors[colors["beige"] = 5] = "beige";
colors[colors["bisque"] = 6] = "bisque";
colors[colors["black"] = 7] = "black";
colors[colors["blanchedalmond"] = 8] = "blanchedalmond";
colors[colors["blue"] = 9] = "blue";
colors[colors["blueviolet"] = 10] = "blueviolet";
colors[colors["brown"] = 11] = "brown";
colors[colors["burlywood"] = 12] = "burlywood";
colors[colors["cadetblue"] = 13] = "cadetblue";
colors[colors["chartreuse"] = 14] = "chartreuse";
colors[colors["chocolate"] = 15] = "chocolate";
colors[colors["coral"] = 16] = "coral";
colors[colors["cornflowerblue"] = 17] = "cornflowerblue";
colors[colors["cornsilk"] = 18] = "cornsilk";
colors[colors["crimson"] = 19] = "crimson";
colors[colors["cyan"] = 20] = "cyan";
colors[colors["darkblue"] = 21] = "darkblue";
colors[colors["darkcyan"] = 22] = "darkcyan";
colors[colors["darkgoldenrod"] = 23] = "darkgoldenrod";
colors[colors["darkgray"] = 24] = "darkgray";
colors[colors["darkgreen"] = 25] = "darkgreen";
colors[colors["darkgrey"] = 26] = "darkgrey";
colors[colors["darkkhaki"] = 27] = "darkkhaki";
colors[colors["darkmagenta"] = 28] = "darkmagenta";
colors[colors["darkolivegreen"] = 29] = "darkolivegreen";
colors[colors["darkorange"] = 30] = "darkorange";
colors[colors["darkorchid"] = 31] = "darkorchid";
colors[colors["darkred"] = 32] = "darkred";
colors[colors["darksalmon"] = 33] = "darksalmon";
colors[colors["darkseagreen"] = 34] = "darkseagreen";
colors[colors["darkslateblue"] = 35] = "darkslateblue";
colors[colors["darkslategray"] = 36] = "darkslategray";
colors[colors["darkslategrey"] = 37] = "darkslategrey";
colors[colors["darkturquoise"] = 38] = "darkturquoise";
colors[colors["darkviolet"] = 39] = "darkviolet";
colors[colors["deeppink"] = 40] = "deeppink";
colors[colors["deepskyblue"] = 41] = "deepskyblue";
colors[colors["dimgray"] = 42] = "dimgray";
colors[colors["dimgrey"] = 43] = "dimgrey";
colors[colors["dodgerblue"] = 44] = "dodgerblue";
colors[colors["firebrick"] = 45] = "firebrick";
colors[colors["floralwhite"] = 46] = "floralwhite";
colors[colors["forestgreen"] = 47] = "forestgreen";
colors[colors["fuchsia"] = 48] = "fuchsia";
colors[colors["gainsboro"] = 49] = "gainsboro";
colors[colors["ghostwhite"] = 50] = "ghostwhite";
colors[colors["gold"] = 51] = "gold";
colors[colors["goldenrod"] = 52] = "goldenrod";
colors[colors["gray"] = 53] = "gray";
colors[colors["green"] = 54] = "green";
colors[colors["greenyellow"] = 55] = "greenyellow";
colors[colors["grey"] = 56] = "grey";
colors[colors["honeydew"] = 57] = "honeydew";
colors[colors["hotpink"] = 58] = "hotpink";
colors[colors["indianred"] = 59] = "indianred";
colors[colors["indigo"] = 60] = "indigo";
colors[colors["ivory"] = 61] = "ivory";
colors[colors["khaki"] = 62] = "khaki";
colors[colors["lavender"] = 63] = "lavender";
colors[colors["lavenderblush"] = 64] = "lavenderblush";
colors[colors["lawngreen"] = 65] = "lawngreen";
colors[colors["lemonchiffon"] = 66] = "lemonchiffon";
colors[colors["lightblue"] = 67] = "lightblue";
colors[colors["lightcoral"] = 68] = "lightcoral";
colors[colors["lightcyan"] = 69] = "lightcyan";
colors[colors["lightgoldenrodyellow"] = 70] = "lightgoldenrodyellow";
colors[colors["lightgray"] = 71] = "lightgray";
colors[colors["lightgreen"] = 72] = "lightgreen";
colors[colors["lightgrey"] = 73] = "lightgrey";
colors[colors["lightpink"] = 74] = "lightpink";
colors[colors["lightsalmon"] = 75] = "lightsalmon";
colors[colors["lightseagreen"] = 76] = "lightseagreen";
colors[colors["lightskyblue"] = 77] = "lightskyblue";
colors[colors["lightslategray"] = 78] = "lightslategray";
colors[colors["lightslategrey"] = 79] = "lightslategrey";
colors[colors["lightsteelblue"] = 80] = "lightsteelblue";
colors[colors["lightyellow"] = 81] = "lightyellow";
colors[colors["lime"] = 82] = "lime";
colors[colors["limegreen"] = 83] = "limegreen";
colors[colors["linen"] = 84] = "linen";
colors[colors["magenta"] = 85] = "magenta";
colors[colors["maroon"] = 86] = "maroon";
colors[colors["mediumaquamarine"] = 87] = "mediumaquamarine";
colors[colors["mediumblue"] = 88] = "mediumblue";
colors[colors["mediumorchid"] = 89] = "mediumorchid";
colors[colors["mediumpurple"] = 90] = "mediumpurple";
colors[colors["mediumseagreen"] = 91] = "mediumseagreen";
colors[colors["mediumslateblue"] = 92] = "mediumslateblue";
colors[colors["mediumspringgreen"] = 93] = "mediumspringgreen";
colors[colors["mediumturquoise"] = 94] = "mediumturquoise";
colors[colors["mediumvioletred"] = 95] = "mediumvioletred";
colors[colors["midnightblue"] = 96] = "midnightblue";
colors[colors["mintcream"] = 97] = "mintcream";
colors[colors["mistyrose"] = 98] = "mistyrose";
colors[colors["moccasin"] = 99] = "moccasin";
colors[colors["navajowhite"] = 100] = "navajowhite";
colors[colors["navy"] = 101] = "navy";
colors[colors["oldlace"] = 102] = "oldlace";
colors[colors["olive"] = 103] = "olive";
colors[colors["olivedrab"] = 104] = "olivedrab";
colors[colors["orange"] = 105] = "orange";
colors[colors["orangered"] = 106] = "orangered";
colors[colors["orchid"] = 107] = "orchid";
colors[colors["palegoldenrod"] = 108] = "palegoldenrod";
colors[colors["palegreen"] = 109] = "palegreen";
colors[colors["paleturquoise"] = 110] = "paleturquoise";
colors[colors["palevioletred"] = 111] = "palevioletred";
colors[colors["papayawhip"] = 112] = "papayawhip";
colors[colors["peachpuff"] = 113] = "peachpuff";
colors[colors["peru"] = 114] = "peru";
colors[colors["pink"] = 115] = "pink";
colors[colors["plum"] = 116] = "plum";
colors[colors["powderblue"] = 117] = "powderblue";
colors[colors["purple"] = 118] = "purple";
colors[colors["red"] = 119] = "red";
colors[colors["rosybrown"] = 120] = "rosybrown";
colors[colors["royalblue"] = 121] = "royalblue";
colors[colors["saddlebrown"] = 122] = "saddlebrown";
colors[colors["salmon"] = 123] = "salmon";
colors[colors["sandybrown"] = 124] = "sandybrown";
colors[colors["seagreen"] = 125] = "seagreen";
colors[colors["seashell"] = 126] = "seashell";
colors[colors["sienna"] = 127] = "sienna";
colors[colors["silver"] = 128] = "silver";
colors[colors["skyblue"] = 129] = "skyblue";
colors[colors["slateblue"] = 130] = "slateblue";
colors[colors["slategray"] = 131] = "slategray";
colors[colors["slategrey"] = 132] = "slategrey";
colors[colors["snow"] = 133] = "snow";
colors[colors["springgreen"] = 134] = "springgreen";
colors[colors["steelblue"] = 135] = "steelblue";
colors[colors["tan"] = 136] = "tan";
colors[colors["teal"] = 137] = "teal";
colors[colors["thistle"] = 138] = "thistle";
colors[colors["tomato"] = 139] = "tomato";
colors[colors["turquoise"] = 140] = "turquoise";
colors[colors["violet"] = 141] = "violet";
colors[colors["wheat"] = 142] = "wheat";
colors[colors["white"] = 143] = "white";
colors[colors["whitesmoke"] = 144] = "whitesmoke";
colors[colors["yellow"] = 145] = "yellow";
colors[colors["yellowgreen"] = 146] = "yellowgreen";
})(colors || (colors = {}));
function isColor(value) {
return colors[value] || value.startsWith('rgb(') || value.startsWith('rgba(') || value.startsWith('#') && !isNaN(Number("0x" + value.slice(1)));
}
function walkDomSelector(dom, fn) {
if (!dom || !fn) return;
if (dom.attrs.id) {
fn('id', dom.attrs.id);
}
if (dom.attrs.class) {
selectorToArr(dom.attrs.class, /\s+/g).forEach(function (className) {
return fn('class', className);
});
}
fn('tagName', dom.tagName);
}
function selectorToArr(selector, rex) {
if (!rex) return [selector];
return selector.split(rex).filter(function (s) {
return s != '';
});
}
function isSelectorMatchDom(dom, selector) {
if (!dom || !selector) {
return false;
}
var tags = selector.match(/(^[^\.#]+)/g);
var ids = selector.match(/#[^\.#]+/g);
var classes = selector.match(/\.[^\.#]+/g);
var parts = (0, _tslib.__spreadArray)((0, _tslib.__spreadArray)((0, _tslib.__spreadArray)([], tags || []), ids || []), classes || []);
var domSels = {};
walkDomSelector(dom, function (key, sel) {
switch (key) {
case 'id':
domSels["#" + sel] = 1;
break;
case 'class':
domSels["." + sel] = 1;
break;
case 'tagName':
domSels["" + sel] = 1;
break;
}
});
for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
var part = parts_1[_i]; // 对比dom的id/class等是否和selector匹配上的
if (!domSels[part]) return false;
}
return true;
}
var reflowAttrs = {
position: 1,
display: 1,
width: 1,
height: 1,
minWidth: 1,
minHeight: 1,
top: 1,
left: 1,
right: 1,
bottom: 1,
flex: 1,
margin: 1,
marginLeft: 1,
marginRight: 1,
marginTop: 1,
marginBottom: 1,
padding: 1,
paddingLeft: 1,
paddingRight: 1,
paddingTop: 1,
paddingBottom: 1,
borderWidth: 1,
borderLeftWidth: 1,
borderRightWidth: 1,
borderTopWidth: 1,
borderBottomWidth: 1,
flexDirection: 1,
justifyContent: 1,
alignItems: 1,
alignSelf: 1,
flexWrap: 1
};
exports.reflowAttrs = reflowAttrs;
var layoutAttrs = {
left: 1,
top: 1,
right: 1,
bottom: 1,
width: 1,
height: 1,
direction: 1
};
exports.layoutAttrs = layoutAttrs;