UNPKG

sketch-json-parse

Version:

sketch-json解析

66 lines (65 loc) 2.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.tagsEveryIncludes = exports.transSketchColor = exports.precisionControl = exports.getEnabledFill = exports.calculateRGB = exports.isAlignCenter = void 0; /** * @description 两个图层进行比较,判断图层layerB是否在layerA中间的位置 * @param {Layer} layerA * @param {Layer} layerB * @returns {boolean} */ const isAlignCenter = (layerA, layerB) => { return Math.abs((layerA.frame.x + layerA.frame.width / 2) - (layerB.frame.x + layerB.frame.width / 2)) <= 5; }; exports.isAlignCenter = isAlignCenter; /** * @description 颜色值转换 * @param {number} color 颜色 * @returns {number} */ const calculateRGB = (color) => { return Math.round(color * 255); }; exports.calculateRGB = calculateRGB; // 判断是否包含可用的 fill const getEnabledFill = (layer) => { var _a; if ((_a = layer.style) === null || _a === void 0 ? void 0 : _a.fills) { return layer.style.fills.filter((item) => item.isEnabled).pop(); } return undefined; }; exports.getEnabledFill = getEnabledFill; /** * 精度控制 * @param data 需要处理的数据 * @param num 精度 eg. 0.1 0.01 */ const precisionControl = (data, num = 1) => { const len = Math.round(1 / num).toString().length - 1; return +((Math.round(data / num) * num).toFixed(len)); }; exports.precisionControl = precisionControl; /** * @description 转换sketch中的color => rgba值 * @param {*} { red, green, blue, alpha } */ const transSketchColor = ({ red, green, blue, alpha, swatchID }) => ({ red: (0, exports.calculateRGB)(red), green: (0, exports.calculateRGB)(green), blue: (0, exports.calculateRGB)(blue), alpha: (0, exports.precisionControl)(alpha, 0.01), swatchID }); exports.transSketchColor = transSketchColor; // 标记包含情况判断 const tagsEveryIncludes = (sourceList, targetList) => { return targetList.some((target) => { if (Array.isArray(sourceList)) { return sourceList .map((t) => t.toLocaleLowerCase()) .includes(target.toLocaleLowerCase()); } return sourceList.toLocaleLowerCase().includes(target.toLocaleLowerCase()); }); }; exports.tagsEveryIncludes = tagsEveryIncludes;