UNPKG

sketch-json-parse

Version:

sketch-json解析

38 lines (37 loc) 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * @description 去掉分组,同时记录图层层级 * @param {SKLayer[]} layers * @param {SKLayer[]} [afterLayer=[]] * @param {{ id: string; name: string }[]} [groupBreadcrumb=[]] * @param isFilterLayer 控制是否过滤图层 * @returns {SKLayer[]} */ const filterGroupLayer = (layers, afterLayer = [], groupBreadcrumb = [], currIndex = { num: 0 }, isFilterLayer, effectRuleNames) => { currIndex.num = currIndex.num + 1; layers = layers.map((item) => { item.zIndex = currIndex.num; return item; }); layers.forEach((layer) => { // 组的面包屑西信息 const $groupBreadcrumb = [ ...groupBreadcrumb, { id: layer.do_objectID, name: layer.name }, ]; // 非group或者有标签的group,group上不应该有样式,存在rotation旋转属性的 if (layer._class !== "group" || !isFilterLayer(layer)) { // $groupBreadcrumb.push({ id: layer.do_objectID, name: layer.name }); afterLayer.push(Object.assign(Object.assign({}, layer), { layers: effectRuleNames.dialog.filter((t) => layer.name.toLocaleLowerCase().includes(t.toLocaleLowerCase())).length > 0 ? filterGroupLayer(layer.layers, [], [...$groupBreadcrumb], currIndex, isFilterLayer, effectRuleNames) : [], groupBreadcrumb: [...$groupBreadcrumb] })); } if (Array.isArray(layer.layers) && effectRuleNames.dialog.filter((t) => layer.name.toLocaleLowerCase().includes(t.toLocaleLowerCase())).length === 0) { filterGroupLayer(layer.layers, afterLayer, [...$groupBreadcrumb], currIndex, isFilterLayer, effectRuleNames); } }); return afterLayer; }; exports.default = filterGroupLayer;