sketch-json-parse
Version:
sketch-json解析
84 lines (83 loc) • 2.64 kB
JavaScript
;
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;