UNPKG

@mapcss/preset-svg

Version:
59 lines (58 loc) 1.56 kB
let list = { split(string, separators, last) { let array = []; let current = ""; let split = false; let func = 0; let quote = false; let escape = false; for (let letter of string) { if (escape) { escape = false; } else if (letter === "\\") { escape = true; } else if (quote) { if (letter === quote) { quote = false; } } else if (letter === '"' || letter === "'") { quote = letter; } else if (letter === "(") { func += 1; } else if (letter === ")") { if (func > 0) func -= 1; } else if (func === 0) { if (separators.includes(letter)) split = true; } if (split) { if (current !== "") array.push(current.trim()); current = ""; split = false; } else { current += letter; } } if (last || current !== "") array.push(current.trim()); return array; }, space(string) { let spaces = [" ", "\n", "\t"]; return list.split(string, spaces); }, comma(string) { return list.split(string, [","], true); }, }; export default list; list.default = list;