UNPKG

sketch-json-parse

Version:

sketch-json解析

84 lines (83 loc) 2.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.hasBackground = exports.hasBorder = exports.isSameSpacing = exports.hasTextType = exports.isEqualHeight = exports.isEqualWidth = void 0; // 公用方法 const isEqualWidth = (data) => { if (data.length < 2) return false; // 判断所有的元素是否等宽 const setList = new Set(); for (let item of data) { setList.add(item.structure.width); } return setList.keys.length === 1; }; exports.isEqualWidth = isEqualWidth; const isEqualHeight = (data) => { if (data.length < 2) return false; // 判断所有的元素是否等高 const setList = new Set(); for (let item of data) { setList.add(item.structure.height); } return setList.keys.length === 1; }; exports.isEqualHeight = isEqualHeight; // 第一层级只包含一个文本节点 const hasTextType = (data) => { var _a; let flag = false; for (let item of data) { if (item.componentName === "Container" && ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length)) { let textList = []; for (let subItem of item.children) { if (subItem.componentName === 'Text') { textList.push(subItem.name); } } flag = textList.length === 1; if (!flag) { break; } } } return flag; }; exports.hasTextType = hasTextType; // 多行之间判断是否是否相同间距 const isSameSpacing = (data) => { if (data.length < 2) return false; let flag = true; let space = data[1].structure.x - data[0].structure.x - data[0].structure.width; for (let i = 2; i < data.length; i++) { if (data[i].structure.y == data[i - 1].structure.y && Math.abs(data[i].structure.x - data[i - 1].structure.x - data[i - 1].structure.width - space) > 2) { flag = false; break; } } return flag; }; exports.isSameSpacing = isSameSpacing; const hasBorder = (data) => { for (let item of data) { if (!(item.structure.border && item.structure.border.top.width)) { return false; } } return true; }; exports.hasBorder = hasBorder; const hasBackground = (data) => { var _a, _b; for (let item of data) { if (!((_b = (_a = item.style) === null || _a === void 0 ? void 0 : _a.background) === null || _b === void 0 ? void 0 : _b.color)) { return false; } } return true; }; exports.hasBackground = hasBackground;