Commit fb98a2e4 authored by 任建锋's avatar 任建锋

添加锚点

parent 553b3b74
...@@ -203,7 +203,7 @@ async function execute(psdFile, options) { ...@@ -203,7 +203,7 @@ async function execute(psdFile, options) {
value = 0; value = 0;
} }
} }
//console.log(properties); console.log(properties);
properties.style[field] = value; properties.style[field] = value;
} }
} }
...@@ -220,7 +220,7 @@ async function execute(psdFile, options) { ...@@ -220,7 +220,7 @@ async function execute(psdFile, options) {
}; };
let dealLater = true; let dealLater = true;
if (x !== 0) { if (x !== 0) {
//console.log(properties); console.log(properties);
if(!properties.style.left){ if(!properties.style.left){
properties.style.left = x - (isSecondLayer ? offset.x : 0); properties.style.left = x - (isSecondLayer ? offset.x : 0);
} }
...@@ -232,6 +232,7 @@ async function execute(psdFile, options) { ...@@ -232,6 +232,7 @@ async function execute(psdFile, options) {
} }
} }
properties.style.position="absolute"; properties.style.position="absolute";
properties.style.transformOrigin="0px 0px 0px";
viewNode.rect={ viewNode.rect={
x: properties.style.left?properties.style.left:0, x: properties.style.left?properties.style.left:0,
y: properties.style.top?properties.style.top:0, y: properties.style.top?properties.style.top:0,
......
{"version":3,"file":"index.es.js","sources":["../src/psd-tree.js","../src/utils.js","../src/zeroing.js"],"sourcesContent":["/**\n * Created by rockyl on 2019-08-09.\n */\n\nconst PSD = window['require']('psd');\n\nexport async function getTree(file) {\n\tlet psd = await PSD.fromDroppedFile(file);\n\n\tconst root = {};\n\twalk(psd.tree(), root);\n\n\treturn root;\n}\n\nfunction walk(psNode, dataNode) {\n\tconst {left: pLeft = 0, top: pTop = 0,} = psNode.parent || {};\n\tconst {left, top, width, height, name, layer: {opacity, visible}} = psNode;\n\tconst x = left - pLeft;\n\tconst y = top - pTop;\n\n\tObject.assign(dataNode, {x, y, width, height, opacity: opacity / 255, visible, name, origin: psNode, label: `${name} > [${x}, ${y}, ${width}, ${height}]`});\n\tif (psNode.children() && psNode.children().length > 0){\n\t\tdataNode.children = [];\n\t}\n\n\tlet children = psNode.children();\n\tfor (let i = children.length - 1; i >= 0; i--) {\n\t\tconst childPsNode = children[i];\n\n\t\tconst childDataNode = {};\n\t\tdataNode.children.push(childDataNode);\n\t\twalk(childPsNode, childDataNode)\n\t}\n}\n","/**\n * Created by rockyl on 2019-08-10.\n */\n\nexport async function walkNode(node, callback, includeSelf = false) {\n\tif (includeSelf) {\n\t\tawait callback(node, null);\n\t}\n\tif (node.children && node.children.length > 0) {\n\t\tfor (let childNode of node.children) {\n\t\t\tawait callback(childNode, node);\n\t\t\tconst result = await walkNode(childNode, callback);\n\t\t\tif (result === true) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport async function walkObject(obj, callback) {\n\tif(typeof obj === \"object\"){\n\t\tfor (let key of Object.keys(obj)) {\n\t\t\tconst value = obj[key];\n\t\t\tawait callback(key, value, obj);\n\t\t\tconst result = await walkObject(value, callback);\n\t\t\tif (result === true) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n","/**\n * Created by renjianfeng on 2020-06-11.\n *\n * 导出spark的视图\n */\n\nimport {getTree} from \"./psd-tree\";\nimport {walkNode} from \"./utils\";\nimport path from 'path'\nimport Color from 'color'\nimport generateUUID from 'uuid/v4'\nimport hash from 'object-hash';\nimport zlib from 'zlib';\n\nconst relativePosPrefixMap = {\n\tl: {field: 'left',},\n\tt: {field: 'top',},\n\tr: {field: 'right',},\n\tb: {field: 'bottom',},\n\th: {field: 'horizonCenter',},\n\tv: {field: 'verticalCenter',},\n\twp: {field: 'width', },\n\thp: {field: 'height', },\n\tlp: {field: 'left', },\n\ttp: {field: 'top', },\n\trp: {field: 'right', },\n\tbp: {field: 'bottom', },\n};\n\nconst offsetAll = 176;\n\nexport async function execute(psdFile, options) {\n\tconst tree = await getTree(psdFile);\n\tconst {mode = 'none', singleView = true} = options;\n\n\tlet offset = {x: 0, y: 0};\n\tlet cutSize = {x: 0, y: 0};\n\n\tif (mode !== 'none') {\n\t\tcutSize.y = offsetAll;\n\t}\n\tswitch (mode) {\n\t\tcase 'top':\n\t\t\toffset.y = offsetAll;\n\t\t\tbreak;\n\t\tcase 'center':\n\t\t\toffset.y = offsetAll / 2;\n\t\t\tbreak;\n\t}\n\n\tconst isCenter = mode === 'center';\n\n\tlet viewRoot = {\n\t\tname: path.basename(psdFile.name, '.psd'),\n\t\tcomponentName : 'Div',\n\t\tuuid: generateUUID(),\n\t};\n\n\tconst assets = [];\n\tconst imageHashMap = {};\n\n\tlet {width: stageWidthOrigin, height: stageHeightOrigin} = tree;\n\tconst stageWidth = stageWidthOrigin - cutSize.x || 0;\n\tconst stageHeight = stageHeightOrigin - cutSize.y || 0;\n\n\tawait walkNode(tree, async function (node, parent) {\n\t\tlet {name} = node;\n\t\tconst {x, y, width, height, opacity, display, origin: {layer, layer: {typeTool, solidColor}}} = node;\n\t\t//console.log('walk node:', name);\n\t\tlet properties = {\n\t\t\tstyle:{\n\t\t\t\twidth, height, opacity,display ,\n\t\t\t},\n\t\t\tattrs:{\n\n\t\t\t},\n\t\t\tclassName:\"\"\n\t\t};\n\t\tconst isSecondLayer = singleView && !parent.origin.parent || !singleView && parent.origin.parent && !parent.origin.parent.parent;\n\t\tconst shouldVerticalCenter = isSecondLayer && isCenter;\n\n\t\tconst {width: parentWidth, height: parentHeight} = parent;\n\n\t\tif (name.includes('|') || shouldVerticalCenter) {\n\t\t\ttry {\n\t\t\t\tlet arr = name.split('|');\n\t\t\t\tname = arr[0];\n\t\t\t\tlet paramsStr = arr[1];\n\t\t\t\tlet relativePos;\n\t\t\t\tif(paramsStr){\n\t\t\t\t\tlet params = paramsStr.split(';');\n\t\t\t\t\trelativePos = params[0];\n\t\t\t\t}else if(shouldVerticalCenter){\n\t\t\t\t\trelativePos = 'v';\n\t\t\t\t}\n\n\t\t\t\tif (relativePos) {\n\t\t\t\t\tlet items = relativePos.split(',');\n\t\t\t\t\tfor (let item of items) {\n\t\t\t\t\t\tlet result = item.match(/[a-zA-Z]+/);\n\t\t\t\t\t\tif(!result){\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet prefix = result[0];\n\t\t\t\t\t\tlet mapItem = relativePosPrefixMap[prefix];\n\t\t\t\t\t\tif (mapItem) {\n\t\t\t\t\t\t\tlet {field,} = mapItem;\n\t\t\t\t\t\t\tlet value = item.substr(prefix.length);\n\t\t\t\t\t\t\tlet hasValue = value.length > 0;\n\t\t\t\t\t\t\tlet fieldChar = prefix[0];\n\t\t\t\t\t\t\tif(!hasValue){\n\t\t\t\t\t\t\t\tswitch(fieldChar){\n\t\t\t\t\t\t\t\t\tcase 'l':\n\t\t\t\t\t\t\t\t\t\tvalue = x - offset.x;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 't':\n\t\t\t\t\t\t\t\t\t\tvalue = y - offset.y;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'r':\n\t\t\t\t\t\t\t\t\t\tvalue = stageWidth - (x - offset.x) - width;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\t\t\t\tvalue = stageHeight - (y - offset.y) - height;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'h':\n\t\t\t\t\t\t\t\t\t\tvalue = x + width / 2 - stageWidthOrigin / 2;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'v':\n\t\t\t\t\t\t\t\t\t\tvalue = y + height / 2 - stageHeightOrigin / 2;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlet isPercent = prefix.endsWith('p');\n\t\t\t\t\t\t\tif (isPercent) {\n\t\t\t\t\t\t\t\tif(!hasValue){\n\t\t\t\t\t\t\t\t\tswitch(fieldChar){\n\t\t\t\t\t\t\t\t\t\tcase 'l':\n\t\t\t\t\t\t\t\t\t\tcase 'r':\n\t\t\t\t\t\t\t\t\t\t\tvalue /= stageWidth;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase 't':\n\t\t\t\t\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\t\t\t\t\tvalue /= stageHeight;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tvalue = Math.floor(value * 100);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvalue += '%';\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvalue = parseFloat(value);\n\t\t\t\t\t\t\t\tif (isNaN(value)) {\n\t\t\t\t\t\t\t\t\tvalue = 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconsole.log(properties)\n\t\t\t\t\t\t\tproperties.style[field] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}catch (e) {\n\t\t\t\tconsole.log(e);\n\t\t\t}\n\t\t}\n\n\t\tlet viewNode = {\n\t\t\tname,\n\t\t\tproperties,\n\t\t\tuuid: generateUUID(),\n\t\t};\n\t\tlet dealLater = true;\n\t\tif (x !== 0) {\n\t\t\tconsole.log(properties)\n\t\t\tif(!properties.style.left){\n\t\t\t\tproperties.style.left = x - (isSecondLayer ? offset.x : 0);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\tif (y !== 0) {\n\t\t\tif(!properties.style.top){\n\t\t\t\tproperties.style.top = y - (isSecondLayer ? offset.y : 0);\n\t\t\t}\n\t\t}\n\t\tproperties.style.position=\"absolute\"\n\t\tviewNode.rect={\n\t\t\tx: properties.style.left?properties.style.left:0,\n\t\t\ty: properties.style.top?properties.style.top:0,\n\t\t\twidth: properties.style.width,\n\t\t\theight: properties.style.height\n\t\t}\n\n\t\tif (typeTool) {\n\t\t\tlet fontInfo = typeTool();\n\t\t\tproperties.attrs.text = fontInfo.textValue;\n\t\t\tconst sizes = fontInfo.sizes();\n\t\t\tconst colors = fontInfo.colors();\n\t\t\tproperties.style.fontSize = sizes ? sizes[0] || 20 : 20;\n\t\t\tlet [r, g, b, a] = colors[0];\n\t\t\tconsole.log(\"color\",[r, g, b, a])\n\t\t\tproperties.style.color = `rgba(${r}, ${g}, ${b}, ${a / 255})`;\n\t\t\tviewNode.componentName = 'Label';\n\t\t\tdealLater = false;\n\t\t} else if (solidColor && layer.vectorMask) {\n\t\t\tlet paths = layer.vectorMask().paths;\n\t\t\tif (paths[2].numPoints === 4) {\n\t\t\t\tlet isRect = true;\n\t\t\t\tfor (let i = 3; i < paths.length; i++) {\n\t\t\t\t\tif (paths[i].recordType !== 2) {\n\t\t\t\t\t\tisRect = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (isRect) {\n\t\t\t\t\tviewNode.componentName = 'Div';\n\t\t\t\t\tconst {r, g, b} = solidColor();\n\t\t\t\t\tproperties.style.backgroundColor = `rgba(${r}, ${g}, ${b}, 1)`;\n\t\t\t\t\tdealLater = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (dealLater) {\n\t\t\tif (node.hasOwnProperty('children')) {\n\t\t\t\tviewNode.componentName = 'Div';\n\t\t\t} else {\n\t\t\t\tviewNode.componentName = 'Image';\n\n\t\t\t\tlet uuid = generateUUID();\n\t\t\t\tconst ext = '.png';\n\n\t\t\t\tlet dataUrl;\n\t\t\t\ttry {\n\t\t\t\t\tlet img = node.origin.toPng();\n\t\t\t\t\tdataUrl = img.src;\n\t\t\t\t} catch (e) {\n\n\t\t\t\t}\n\n\t\t\t\tif (dataUrl) {\n\t\t\t\t\tlet base64Data = dataUrl.replace(/^data:image\\/\\w+;base64,/, \"\");\n\t\t\t\t\tlet buffer = new Buffer(base64Data, 'base64');\n\t\t\t\t\tconst fileNameHash = hash(buffer);\n\t\t\t\t\tif (imageHashMap.hasOwnProperty(fileNameHash)) {\n\t\t\t\t\t\tuuid = imageHashMap[fileNameHash];\n\t\t\t\t\t} else {\n\t\t\t\t\t\timageHashMap[fileNameHash] = uuid;\n\t\t\t\t\t\tassets.push({\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\text,\n\t\t\t\t\t\t\tuuid,\n\t\t\t\t\t\t\tbase64Data,\n\t\t\t\t\t\t\thash: fileNameHash,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tproperties.attrs.source = 'asset://' + uuid;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tlet viewParent = parent.view || viewRoot;\n\t\tif (!viewParent.hasOwnProperty('children')) {\n\t\t\tviewParent.children = [];\n\t\t}\n\t\tviewParent.children.push(viewNode);\n\n\t\tnode.view = viewNode;\n\t});\n console.log(psdFile)\n\tlet data = {\n\t\tpluginVersion:\"0.0.1\",\n\t\treference:\"psd\",\n\t\tfileName:psdFile.name,\n\t\tassets,\n\t\tview: viewRoot,\n\t};\n\n\tlet dataString = JSON.stringify(data);\n\n\tlet buf = new Buffer(dataString);\n\treturn await new Promise((resolve, reject) => {\n\t\tzlib.gzip(buf, function (err, res) {\n\t\t\tif (err) {\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\tconsole.log(res.length);\n\t\t\t\tresolve(res);\n\t\t\t}\n\t\t});\n\t})\n}\n"],"names":[],"mappings":"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"} {"version":3,"file":"index.es.js","sources":["../src/psd-tree.js","../src/utils.js","../src/zeroing.js"],"sourcesContent":["/**\n * Created by rockyl on 2019-08-09.\n */\n\nconst PSD = window['require']('psd');\n\nexport async function getTree(file) {\n\tlet psd = await PSD.fromDroppedFile(file);\n\n\tconst root = {};\n\twalk(psd.tree(), root);\n\n\treturn root;\n}\n\nfunction walk(psNode, dataNode) {\n\tconst {left: pLeft = 0, top: pTop = 0,} = psNode.parent || {};\n\tconst {left, top, width, height, name, layer: {opacity, visible}} = psNode;\n\tconst x = left - pLeft;\n\tconst y = top - pTop;\n\n\tObject.assign(dataNode, {x, y, width, height, opacity: opacity / 255, visible, name, origin: psNode, label: `${name} > [${x}, ${y}, ${width}, ${height}]`});\n\tif (psNode.children() && psNode.children().length > 0){\n\t\tdataNode.children = [];\n\t}\n\n\tlet children = psNode.children();\n\tfor (let i = children.length - 1; i >= 0; i--) {\n\t\tconst childPsNode = children[i];\n\n\t\tconst childDataNode = {};\n\t\tdataNode.children.push(childDataNode);\n\t\twalk(childPsNode, childDataNode)\n\t}\n}\n","/**\n * Created by rockyl on 2019-08-10.\n */\n\nexport async function walkNode(node, callback, includeSelf = false) {\n\tif (includeSelf) {\n\t\tawait callback(node, null);\n\t}\n\tif (node.children && node.children.length > 0) {\n\t\tfor (let childNode of node.children) {\n\t\t\tawait callback(childNode, node);\n\t\t\tconst result = await walkNode(childNode, callback);\n\t\t\tif (result === true) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport async function walkObject(obj, callback) {\n\tif(typeof obj === \"object\"){\n\t\tfor (let key of Object.keys(obj)) {\n\t\t\tconst value = obj[key];\n\t\t\tawait callback(key, value, obj);\n\t\t\tconst result = await walkObject(value, callback);\n\t\t\tif (result === true) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n","/**\n * Created by renjianfeng on 2020-06-11.\n *\n * 导出spark的视图\n */\n\nimport {getTree} from \"./psd-tree\";\nimport {walkNode} from \"./utils\";\nimport path from 'path'\nimport Color from 'color'\nimport generateUUID from 'uuid/v4'\nimport hash from 'object-hash';\nimport zlib from 'zlib';\n\nconst relativePosPrefixMap = {\n\tl: {field: 'left',},\n\tt: {field: 'top',},\n\tr: {field: 'right',},\n\tb: {field: 'bottom',},\n\th: {field: 'horizonCenter',},\n\tv: {field: 'verticalCenter',},\n\twp: {field: 'width', },\n\thp: {field: 'height', },\n\tlp: {field: 'left', },\n\ttp: {field: 'top', },\n\trp: {field: 'right', },\n\tbp: {field: 'bottom', },\n};\n\nconst offsetAll = 176;\n\nexport async function execute(psdFile, options) {\n\tconst tree = await getTree(psdFile);\n\tconst {mode = 'none', singleView = true} = options;\n\n\tlet offset = {x: 0, y: 0};\n\tlet cutSize = {x: 0, y: 0};\n\n\tif (mode !== 'none') {\n\t\tcutSize.y = offsetAll;\n\t}\n\tswitch (mode) {\n\t\tcase 'top':\n\t\t\toffset.y = offsetAll;\n\t\t\tbreak;\n\t\tcase 'center':\n\t\t\toffset.y = offsetAll / 2;\n\t\t\tbreak;\n\t}\n\n\tconst isCenter = mode === 'center';\n\n\tlet viewRoot = {\n\t\tname: path.basename(psdFile.name, '.psd'),\n\t\tcomponentName : 'Div',\n\t\tuuid: generateUUID(),\n\t};\n\n\tconst assets = [];\n\tconst imageHashMap = {};\n\n\tlet {width: stageWidthOrigin, height: stageHeightOrigin} = tree;\n\tconst stageWidth = stageWidthOrigin - cutSize.x || 0;\n\tconst stageHeight = stageHeightOrigin - cutSize.y || 0;\n\n\tawait walkNode(tree, async function (node, parent) {\n\t\tlet {name} = node;\n\t\tconst {x, y, width, height, opacity, display, origin: {layer, layer: {typeTool, solidColor}}} = node;\n\t\t//console.log('walk node:', name);\n\t\tlet properties = {\n\t\t\tstyle:{\n\t\t\t\twidth, height, opacity,display ,\n\t\t\t},\n\t\t\tattrs:{\n\n\t\t\t},\n\t\t\tclassName:\"\"\n\t\t};\n\t\tconst isSecondLayer = singleView && !parent.origin.parent || !singleView && parent.origin.parent && !parent.origin.parent.parent;\n\t\tconst shouldVerticalCenter = isSecondLayer && isCenter;\n\n\t\tconst {width: parentWidth, height: parentHeight} = parent;\n\n\t\tif (name.includes('|') || shouldVerticalCenter) {\n\t\t\ttry {\n\t\t\t\tlet arr = name.split('|');\n\t\t\t\tname = arr[0];\n\t\t\t\tlet paramsStr = arr[1];\n\t\t\t\tlet relativePos;\n\t\t\t\tif(paramsStr){\n\t\t\t\t\tlet params = paramsStr.split(';');\n\t\t\t\t\trelativePos = params[0];\n\t\t\t\t}else if(shouldVerticalCenter){\n\t\t\t\t\trelativePos = 'v';\n\t\t\t\t}\n\n\t\t\t\tif (relativePos) {\n\t\t\t\t\tlet items = relativePos.split(',');\n\t\t\t\t\tfor (let item of items) {\n\t\t\t\t\t\tlet result = item.match(/[a-zA-Z]+/);\n\t\t\t\t\t\tif(!result){\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet prefix = result[0];\n\t\t\t\t\t\tlet mapItem = relativePosPrefixMap[prefix];\n\t\t\t\t\t\tif (mapItem) {\n\t\t\t\t\t\t\tlet {field,} = mapItem;\n\t\t\t\t\t\t\tlet value = item.substr(prefix.length);\n\t\t\t\t\t\t\tlet hasValue = value.length > 0;\n\t\t\t\t\t\t\tlet fieldChar = prefix[0];\n\t\t\t\t\t\t\tif(!hasValue){\n\t\t\t\t\t\t\t\tswitch(fieldChar){\n\t\t\t\t\t\t\t\t\tcase 'l':\n\t\t\t\t\t\t\t\t\t\tvalue = x - offset.x;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 't':\n\t\t\t\t\t\t\t\t\t\tvalue = y - offset.y;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'r':\n\t\t\t\t\t\t\t\t\t\tvalue = stageWidth - (x - offset.x) - width;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\t\t\t\tvalue = stageHeight - (y - offset.y) - height;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'h':\n\t\t\t\t\t\t\t\t\t\tvalue = x + width / 2 - stageWidthOrigin / 2;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'v':\n\t\t\t\t\t\t\t\t\t\tvalue = y + height / 2 - stageHeightOrigin / 2;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlet isPercent = prefix.endsWith('p');\n\t\t\t\t\t\t\tif (isPercent) {\n\t\t\t\t\t\t\t\tif(!hasValue){\n\t\t\t\t\t\t\t\t\tswitch(fieldChar){\n\t\t\t\t\t\t\t\t\t\tcase 'l':\n\t\t\t\t\t\t\t\t\t\tcase 'r':\n\t\t\t\t\t\t\t\t\t\t\tvalue /= stageWidth;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase 't':\n\t\t\t\t\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\t\t\t\t\tvalue /= stageHeight;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tvalue = Math.floor(value * 100);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvalue += '%';\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvalue = parseFloat(value);\n\t\t\t\t\t\t\t\tif (isNaN(value)) {\n\t\t\t\t\t\t\t\t\tvalue = 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconsole.log(properties)\n\t\t\t\t\t\t\tproperties.style[field] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}catch (e) {\n\t\t\t\tconsole.log(e);\n\t\t\t}\n\t\t}\n\n\t\tlet viewNode = {\n\t\t\tname,\n\t\t\tproperties,\n\t\t\tuuid: generateUUID(),\n\t\t};\n\t\tlet dealLater = true;\n\t\tif (x !== 0) {\n\t\t\tconsole.log(properties)\n\t\t\tif(!properties.style.left){\n\t\t\t\tproperties.style.left = x - (isSecondLayer ? offset.x : 0);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\tif (y !== 0) {\n\t\t\tif(!properties.style.top){\n\t\t\t\tproperties.style.top = y - (isSecondLayer ? offset.y : 0);\n\t\t\t}\n\t\t}\n\t\tproperties.style.position=\"absolute\"\n\t\tproperties.style.transformOrigin=\"0px 0px 0px\";\n\t\tviewNode.rect={\n\t\t\tx: properties.style.left?properties.style.left:0,\n\t\t\ty: properties.style.top?properties.style.top:0,\n\t\t\twidth: properties.style.width,\n\t\t\theight: properties.style.height\n\t\t}\n\n\t\tif (typeTool) {\n\t\t\tlet fontInfo = typeTool();\n\t\t\tproperties.attrs.text = fontInfo.textValue;\n\t\t\tconst sizes = fontInfo.sizes();\n\t\t\tconst colors = fontInfo.colors();\n\t\t\tproperties.style.fontSize = sizes ? sizes[0] || 20 : 20;\n\t\t\tlet [r, g, b, a] = colors[0];\n\t\t\tconsole.log(\"color\",[r, g, b, a])\n\t\t\tproperties.style.color = `rgba(${r}, ${g}, ${b}, ${a / 255})`;\n\t\t\tviewNode.componentName = 'Label';\n\t\t\tdealLater = false;\n\t\t} else if (solidColor && layer.vectorMask) {\n\t\t\tlet paths = layer.vectorMask().paths;\n\t\t\tif (paths[2].numPoints === 4) {\n\t\t\t\tlet isRect = true;\n\t\t\t\tfor (let i = 3; i < paths.length; i++) {\n\t\t\t\t\tif (paths[i].recordType !== 2) {\n\t\t\t\t\t\tisRect = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (isRect) {\n\t\t\t\t\tviewNode.componentName = 'Div';\n\t\t\t\t\tconst {r, g, b} = solidColor();\n\t\t\t\t\tproperties.style.backgroundColor = `rgba(${r}, ${g}, ${b}, 1)`;\n\t\t\t\t\tdealLater = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (dealLater) {\n\t\t\tif (node.hasOwnProperty('children')) {\n\t\t\t\tviewNode.componentName = 'Div';\n\t\t\t} else {\n\t\t\t\tviewNode.componentName = 'Image';\n\n\t\t\t\tlet uuid = generateUUID();\n\t\t\t\tconst ext = '.png';\n\n\t\t\t\tlet dataUrl;\n\t\t\t\ttry {\n\t\t\t\t\tlet img = node.origin.toPng();\n\t\t\t\t\tdataUrl = img.src;\n\t\t\t\t} catch (e) {\n\n\t\t\t\t}\n\n\t\t\t\tif (dataUrl) {\n\t\t\t\t\tlet base64Data = dataUrl.replace(/^data:image\\/\\w+;base64,/, \"\");\n\t\t\t\t\tlet buffer = new Buffer(base64Data, 'base64');\n\t\t\t\t\tconst fileNameHash = hash(buffer);\n\t\t\t\t\tif (imageHashMap.hasOwnProperty(fileNameHash)) {\n\t\t\t\t\t\tuuid = imageHashMap[fileNameHash];\n\t\t\t\t\t} else {\n\t\t\t\t\t\timageHashMap[fileNameHash] = uuid;\n\t\t\t\t\t\tassets.push({\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\text,\n\t\t\t\t\t\t\tuuid,\n\t\t\t\t\t\t\tbase64Data,\n\t\t\t\t\t\t\thash: fileNameHash,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tproperties.attrs.source = 'asset://' + uuid;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tlet viewParent = parent.view || viewRoot;\n\t\tif (!viewParent.hasOwnProperty('children')) {\n\t\t\tviewParent.children = [];\n\t\t}\n\t\tviewParent.children.push(viewNode);\n\n\t\tnode.view = viewNode;\n\t});\n console.log(psdFile)\n\tlet data = {\n\t\tpluginVersion:\"0.0.1\",\n\t\treference:\"psd\",\n\t\tfileName:psdFile.name,\n\t\tassets,\n\t\tview: viewRoot,\n\t};\n\n\tlet dataString = JSON.stringify(data);\n\n\tlet buf = new Buffer(dataString);\n\treturn await new Promise((resolve, reject) => {\n\t\tzlib.gzip(buf, function (err, res) {\n\t\t\tif (err) {\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\tconsole.log(res.length);\n\t\t\t\tresolve(res);\n\t\t\t}\n\t\t});\n\t})\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file \ No newline at end of file
...@@ -238,6 +238,7 @@ async function execute(psdFile, options) { ...@@ -238,6 +238,7 @@ async function execute(psdFile, options) {
} }
} }
properties.style.position="absolute"; properties.style.position="absolute";
properties.style.transformOrigin="0px 0px 0px";
viewNode.rect={ viewNode.rect={
x: properties.style.left?properties.style.left:0, x: properties.style.left?properties.style.left:0,
y: properties.style.top?properties.style.top:0, y: properties.style.top?properties.style.top:0,
......
{"version":3,"file":"index.js","sources":["../src/psd-tree.js","../src/utils.js","../src/zeroing.js"],"sourcesContent":["/**\n * Created by rockyl on 2019-08-09.\n */\n\nconst PSD = window['require']('psd');\n\nexport async function getTree(file) {\n\tlet psd = await PSD.fromDroppedFile(file);\n\n\tconst root = {};\n\twalk(psd.tree(), root);\n\n\treturn root;\n}\n\nfunction walk(psNode, dataNode) {\n\tconst {left: pLeft = 0, top: pTop = 0,} = psNode.parent || {};\n\tconst {left, top, width, height, name, layer: {opacity, visible}} = psNode;\n\tconst x = left - pLeft;\n\tconst y = top - pTop;\n\n\tObject.assign(dataNode, {x, y, width, height, opacity: opacity / 255, visible, name, origin: psNode, label: `${name} > [${x}, ${y}, ${width}, ${height}]`});\n\tif (psNode.children() && psNode.children().length > 0){\n\t\tdataNode.children = [];\n\t}\n\n\tlet children = psNode.children();\n\tfor (let i = children.length - 1; i >= 0; i--) {\n\t\tconst childPsNode = children[i];\n\n\t\tconst childDataNode = {};\n\t\tdataNode.children.push(childDataNode);\n\t\twalk(childPsNode, childDataNode)\n\t}\n}\n","/**\n * Created by rockyl on 2019-08-10.\n */\n\nexport async function walkNode(node, callback, includeSelf = false) {\n\tif (includeSelf) {\n\t\tawait callback(node, null);\n\t}\n\tif (node.children && node.children.length > 0) {\n\t\tfor (let childNode of node.children) {\n\t\t\tawait callback(childNode, node);\n\t\t\tconst result = await walkNode(childNode, callback);\n\t\t\tif (result === true) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport async function walkObject(obj, callback) {\n\tif(typeof obj === \"object\"){\n\t\tfor (let key of Object.keys(obj)) {\n\t\t\tconst value = obj[key];\n\t\t\tawait callback(key, value, obj);\n\t\t\tconst result = await walkObject(value, callback);\n\t\t\tif (result === true) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n","/**\n * Created by renjianfeng on 2020-06-11.\n *\n * 导出spark的视图\n */\n\nimport {getTree} from \"./psd-tree\";\nimport {walkNode} from \"./utils\";\nimport path from 'path'\nimport Color from 'color'\nimport generateUUID from 'uuid/v4'\nimport hash from 'object-hash';\nimport zlib from 'zlib';\n\nconst relativePosPrefixMap = {\n\tl: {field: 'left',},\n\tt: {field: 'top',},\n\tr: {field: 'right',},\n\tb: {field: 'bottom',},\n\th: {field: 'horizonCenter',},\n\tv: {field: 'verticalCenter',},\n\twp: {field: 'width', },\n\thp: {field: 'height', },\n\tlp: {field: 'left', },\n\ttp: {field: 'top', },\n\trp: {field: 'right', },\n\tbp: {field: 'bottom', },\n};\n\nconst offsetAll = 176;\n\nexport async function execute(psdFile, options) {\n\tconst tree = await getTree(psdFile);\n\tconst {mode = 'none', singleView = true} = options;\n\n\tlet offset = {x: 0, y: 0};\n\tlet cutSize = {x: 0, y: 0};\n\n\tif (mode !== 'none') {\n\t\tcutSize.y = offsetAll;\n\t}\n\tswitch (mode) {\n\t\tcase 'top':\n\t\t\toffset.y = offsetAll;\n\t\t\tbreak;\n\t\tcase 'center':\n\t\t\toffset.y = offsetAll / 2;\n\t\t\tbreak;\n\t}\n\n\tconst isCenter = mode === 'center';\n\n\tlet viewRoot = {\n\t\tname: path.basename(psdFile.name, '.psd'),\n\t\tcomponentName : 'Div',\n\t\tuuid: generateUUID(),\n\t};\n\n\tconst assets = [];\n\tconst imageHashMap = {};\n\n\tlet {width: stageWidthOrigin, height: stageHeightOrigin} = tree;\n\tconst stageWidth = stageWidthOrigin - cutSize.x || 0;\n\tconst stageHeight = stageHeightOrigin - cutSize.y || 0;\n\n\tawait walkNode(tree, async function (node, parent) {\n\t\tlet {name} = node;\n\t\tconst {x, y, width, height, opacity, display, origin: {layer, layer: {typeTool, solidColor}}} = node;\n\t\t//console.log('walk node:', name);\n\t\tlet properties = {\n\t\t\tstyle:{\n\t\t\t\twidth, height, opacity,display ,\n\t\t\t},\n\t\t\tattrs:{\n\n\t\t\t},\n\t\t\tclassName:\"\"\n\t\t};\n\t\tconst isSecondLayer = singleView && !parent.origin.parent || !singleView && parent.origin.parent && !parent.origin.parent.parent;\n\t\tconst shouldVerticalCenter = isSecondLayer && isCenter;\n\n\t\tconst {width: parentWidth, height: parentHeight} = parent;\n\n\t\tif (name.includes('|') || shouldVerticalCenter) {\n\t\t\ttry {\n\t\t\t\tlet arr = name.split('|');\n\t\t\t\tname = arr[0];\n\t\t\t\tlet paramsStr = arr[1];\n\t\t\t\tlet relativePos;\n\t\t\t\tif(paramsStr){\n\t\t\t\t\tlet params = paramsStr.split(';');\n\t\t\t\t\trelativePos = params[0];\n\t\t\t\t}else if(shouldVerticalCenter){\n\t\t\t\t\trelativePos = 'v';\n\t\t\t\t}\n\n\t\t\t\tif (relativePos) {\n\t\t\t\t\tlet items = relativePos.split(',');\n\t\t\t\t\tfor (let item of items) {\n\t\t\t\t\t\tlet result = item.match(/[a-zA-Z]+/);\n\t\t\t\t\t\tif(!result){\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet prefix = result[0];\n\t\t\t\t\t\tlet mapItem = relativePosPrefixMap[prefix];\n\t\t\t\t\t\tif (mapItem) {\n\t\t\t\t\t\t\tlet {field,} = mapItem;\n\t\t\t\t\t\t\tlet value = item.substr(prefix.length);\n\t\t\t\t\t\t\tlet hasValue = value.length > 0;\n\t\t\t\t\t\t\tlet fieldChar = prefix[0];\n\t\t\t\t\t\t\tif(!hasValue){\n\t\t\t\t\t\t\t\tswitch(fieldChar){\n\t\t\t\t\t\t\t\t\tcase 'l':\n\t\t\t\t\t\t\t\t\t\tvalue = x - offset.x;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 't':\n\t\t\t\t\t\t\t\t\t\tvalue = y - offset.y;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'r':\n\t\t\t\t\t\t\t\t\t\tvalue = stageWidth - (x - offset.x) - width;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\t\t\t\tvalue = stageHeight - (y - offset.y) - height;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'h':\n\t\t\t\t\t\t\t\t\t\tvalue = x + width / 2 - stageWidthOrigin / 2;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'v':\n\t\t\t\t\t\t\t\t\t\tvalue = y + height / 2 - stageHeightOrigin / 2;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlet isPercent = prefix.endsWith('p');\n\t\t\t\t\t\t\tif (isPercent) {\n\t\t\t\t\t\t\t\tif(!hasValue){\n\t\t\t\t\t\t\t\t\tswitch(fieldChar){\n\t\t\t\t\t\t\t\t\t\tcase 'l':\n\t\t\t\t\t\t\t\t\t\tcase 'r':\n\t\t\t\t\t\t\t\t\t\t\tvalue /= stageWidth;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase 't':\n\t\t\t\t\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\t\t\t\t\tvalue /= stageHeight;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tvalue = Math.floor(value * 100);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvalue += '%';\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvalue = parseFloat(value);\n\t\t\t\t\t\t\t\tif (isNaN(value)) {\n\t\t\t\t\t\t\t\t\tvalue = 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconsole.log(properties)\n\t\t\t\t\t\t\tproperties.style[field] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}catch (e) {\n\t\t\t\tconsole.log(e);\n\t\t\t}\n\t\t}\n\n\t\tlet viewNode = {\n\t\t\tname,\n\t\t\tproperties,\n\t\t\tuuid: generateUUID(),\n\t\t};\n\t\tlet dealLater = true;\n\t\tif (x !== 0) {\n\t\t\tconsole.log(properties)\n\t\t\tif(!properties.style.left){\n\t\t\t\tproperties.style.left = x - (isSecondLayer ? offset.x : 0);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\tif (y !== 0) {\n\t\t\tif(!properties.style.top){\n\t\t\t\tproperties.style.top = y - (isSecondLayer ? offset.y : 0);\n\t\t\t}\n\t\t}\n\t\tproperties.style.position=\"absolute\"\n\t\tviewNode.rect={\n\t\t\tx: properties.style.left?properties.style.left:0,\n\t\t\ty: properties.style.top?properties.style.top:0,\n\t\t\twidth: properties.style.width,\n\t\t\theight: properties.style.height\n\t\t}\n\n\t\tif (typeTool) {\n\t\t\tlet fontInfo = typeTool();\n\t\t\tproperties.attrs.text = fontInfo.textValue;\n\t\t\tconst sizes = fontInfo.sizes();\n\t\t\tconst colors = fontInfo.colors();\n\t\t\tproperties.style.fontSize = sizes ? sizes[0] || 20 : 20;\n\t\t\tlet [r, g, b, a] = colors[0];\n\t\t\tconsole.log(\"color\",[r, g, b, a])\n\t\t\tproperties.style.color = `rgba(${r}, ${g}, ${b}, ${a / 255})`;\n\t\t\tviewNode.componentName = 'Label';\n\t\t\tdealLater = false;\n\t\t} else if (solidColor && layer.vectorMask) {\n\t\t\tlet paths = layer.vectorMask().paths;\n\t\t\tif (paths[2].numPoints === 4) {\n\t\t\t\tlet isRect = true;\n\t\t\t\tfor (let i = 3; i < paths.length; i++) {\n\t\t\t\t\tif (paths[i].recordType !== 2) {\n\t\t\t\t\t\tisRect = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (isRect) {\n\t\t\t\t\tviewNode.componentName = 'Div';\n\t\t\t\t\tconst {r, g, b} = solidColor();\n\t\t\t\t\tproperties.style.backgroundColor = `rgba(${r}, ${g}, ${b}, 1)`;\n\t\t\t\t\tdealLater = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (dealLater) {\n\t\t\tif (node.hasOwnProperty('children')) {\n\t\t\t\tviewNode.componentName = 'Div';\n\t\t\t} else {\n\t\t\t\tviewNode.componentName = 'Image';\n\n\t\t\t\tlet uuid = generateUUID();\n\t\t\t\tconst ext = '.png';\n\n\t\t\t\tlet dataUrl;\n\t\t\t\ttry {\n\t\t\t\t\tlet img = node.origin.toPng();\n\t\t\t\t\tdataUrl = img.src;\n\t\t\t\t} catch (e) {\n\n\t\t\t\t}\n\n\t\t\t\tif (dataUrl) {\n\t\t\t\t\tlet base64Data = dataUrl.replace(/^data:image\\/\\w+;base64,/, \"\");\n\t\t\t\t\tlet buffer = new Buffer(base64Data, 'base64');\n\t\t\t\t\tconst fileNameHash = hash(buffer);\n\t\t\t\t\tif (imageHashMap.hasOwnProperty(fileNameHash)) {\n\t\t\t\t\t\tuuid = imageHashMap[fileNameHash];\n\t\t\t\t\t} else {\n\t\t\t\t\t\timageHashMap[fileNameHash] = uuid;\n\t\t\t\t\t\tassets.push({\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\text,\n\t\t\t\t\t\t\tuuid,\n\t\t\t\t\t\t\tbase64Data,\n\t\t\t\t\t\t\thash: fileNameHash,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tproperties.attrs.source = 'asset://' + uuid;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tlet viewParent = parent.view || viewRoot;\n\t\tif (!viewParent.hasOwnProperty('children')) {\n\t\t\tviewParent.children = [];\n\t\t}\n\t\tviewParent.children.push(viewNode);\n\n\t\tnode.view = viewNode;\n\t});\n console.log(psdFile)\n\tlet data = {\n\t\tpluginVersion:\"0.0.1\",\n\t\treference:\"psd\",\n\t\tfileName:psdFile.name,\n\t\tassets,\n\t\tview: viewRoot,\n\t};\n\n\tlet dataString = JSON.stringify(data);\n\n\tlet buf = new Buffer(dataString);\n\treturn await new Promise((resolve, reject) => {\n\t\tzlib.gzip(buf, function (err, res) {\n\t\t\tif (err) {\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\tconsole.log(res.length);\n\t\t\t\tresolve(res);\n\t\t\t}\n\t\t});\n\t})\n}\n"],"names":[],"mappings":"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"} {"version":3,"file":"index.js","sources":["../src/psd-tree.js","../src/utils.js","../src/zeroing.js"],"sourcesContent":["/**\n * Created by rockyl on 2019-08-09.\n */\n\nconst PSD = window['require']('psd');\n\nexport async function getTree(file) {\n\tlet psd = await PSD.fromDroppedFile(file);\n\n\tconst root = {};\n\twalk(psd.tree(), root);\n\n\treturn root;\n}\n\nfunction walk(psNode, dataNode) {\n\tconst {left: pLeft = 0, top: pTop = 0,} = psNode.parent || {};\n\tconst {left, top, width, height, name, layer: {opacity, visible}} = psNode;\n\tconst x = left - pLeft;\n\tconst y = top - pTop;\n\n\tObject.assign(dataNode, {x, y, width, height, opacity: opacity / 255, visible, name, origin: psNode, label: `${name} > [${x}, ${y}, ${width}, ${height}]`});\n\tif (psNode.children() && psNode.children().length > 0){\n\t\tdataNode.children = [];\n\t}\n\n\tlet children = psNode.children();\n\tfor (let i = children.length - 1; i >= 0; i--) {\n\t\tconst childPsNode = children[i];\n\n\t\tconst childDataNode = {};\n\t\tdataNode.children.push(childDataNode);\n\t\twalk(childPsNode, childDataNode)\n\t}\n}\n","/**\n * Created by rockyl on 2019-08-10.\n */\n\nexport async function walkNode(node, callback, includeSelf = false) {\n\tif (includeSelf) {\n\t\tawait callback(node, null);\n\t}\n\tif (node.children && node.children.length > 0) {\n\t\tfor (let childNode of node.children) {\n\t\t\tawait callback(childNode, node);\n\t\t\tconst result = await walkNode(childNode, callback);\n\t\t\tif (result === true) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport async function walkObject(obj, callback) {\n\tif(typeof obj === \"object\"){\n\t\tfor (let key of Object.keys(obj)) {\n\t\t\tconst value = obj[key];\n\t\t\tawait callback(key, value, obj);\n\t\t\tconst result = await walkObject(value, callback);\n\t\t\tif (result === true) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n","/**\n * Created by renjianfeng on 2020-06-11.\n *\n * 导出spark的视图\n */\n\nimport {getTree} from \"./psd-tree\";\nimport {walkNode} from \"./utils\";\nimport path from 'path'\nimport Color from 'color'\nimport generateUUID from 'uuid/v4'\nimport hash from 'object-hash';\nimport zlib from 'zlib';\n\nconst relativePosPrefixMap = {\n\tl: {field: 'left',},\n\tt: {field: 'top',},\n\tr: {field: 'right',},\n\tb: {field: 'bottom',},\n\th: {field: 'horizonCenter',},\n\tv: {field: 'verticalCenter',},\n\twp: {field: 'width', },\n\thp: {field: 'height', },\n\tlp: {field: 'left', },\n\ttp: {field: 'top', },\n\trp: {field: 'right', },\n\tbp: {field: 'bottom', },\n};\n\nconst offsetAll = 176;\n\nexport async function execute(psdFile, options) {\n\tconst tree = await getTree(psdFile);\n\tconst {mode = 'none', singleView = true} = options;\n\n\tlet offset = {x: 0, y: 0};\n\tlet cutSize = {x: 0, y: 0};\n\n\tif (mode !== 'none') {\n\t\tcutSize.y = offsetAll;\n\t}\n\tswitch (mode) {\n\t\tcase 'top':\n\t\t\toffset.y = offsetAll;\n\t\t\tbreak;\n\t\tcase 'center':\n\t\t\toffset.y = offsetAll / 2;\n\t\t\tbreak;\n\t}\n\n\tconst isCenter = mode === 'center';\n\n\tlet viewRoot = {\n\t\tname: path.basename(psdFile.name, '.psd'),\n\t\tcomponentName : 'Div',\n\t\tuuid: generateUUID(),\n\t};\n\n\tconst assets = [];\n\tconst imageHashMap = {};\n\n\tlet {width: stageWidthOrigin, height: stageHeightOrigin} = tree;\n\tconst stageWidth = stageWidthOrigin - cutSize.x || 0;\n\tconst stageHeight = stageHeightOrigin - cutSize.y || 0;\n\n\tawait walkNode(tree, async function (node, parent) {\n\t\tlet {name} = node;\n\t\tconst {x, y, width, height, opacity, display, origin: {layer, layer: {typeTool, solidColor}}} = node;\n\t\t//console.log('walk node:', name);\n\t\tlet properties = {\n\t\t\tstyle:{\n\t\t\t\twidth, height, opacity,display ,\n\t\t\t},\n\t\t\tattrs:{\n\n\t\t\t},\n\t\t\tclassName:\"\"\n\t\t};\n\t\tconst isSecondLayer = singleView && !parent.origin.parent || !singleView && parent.origin.parent && !parent.origin.parent.parent;\n\t\tconst shouldVerticalCenter = isSecondLayer && isCenter;\n\n\t\tconst {width: parentWidth, height: parentHeight} = parent;\n\n\t\tif (name.includes('|') || shouldVerticalCenter) {\n\t\t\ttry {\n\t\t\t\tlet arr = name.split('|');\n\t\t\t\tname = arr[0];\n\t\t\t\tlet paramsStr = arr[1];\n\t\t\t\tlet relativePos;\n\t\t\t\tif(paramsStr){\n\t\t\t\t\tlet params = paramsStr.split(';');\n\t\t\t\t\trelativePos = params[0];\n\t\t\t\t}else if(shouldVerticalCenter){\n\t\t\t\t\trelativePos = 'v';\n\t\t\t\t}\n\n\t\t\t\tif (relativePos) {\n\t\t\t\t\tlet items = relativePos.split(',');\n\t\t\t\t\tfor (let item of items) {\n\t\t\t\t\t\tlet result = item.match(/[a-zA-Z]+/);\n\t\t\t\t\t\tif(!result){\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet prefix = result[0];\n\t\t\t\t\t\tlet mapItem = relativePosPrefixMap[prefix];\n\t\t\t\t\t\tif (mapItem) {\n\t\t\t\t\t\t\tlet {field,} = mapItem;\n\t\t\t\t\t\t\tlet value = item.substr(prefix.length);\n\t\t\t\t\t\t\tlet hasValue = value.length > 0;\n\t\t\t\t\t\t\tlet fieldChar = prefix[0];\n\t\t\t\t\t\t\tif(!hasValue){\n\t\t\t\t\t\t\t\tswitch(fieldChar){\n\t\t\t\t\t\t\t\t\tcase 'l':\n\t\t\t\t\t\t\t\t\t\tvalue = x - offset.x;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 't':\n\t\t\t\t\t\t\t\t\t\tvalue = y - offset.y;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'r':\n\t\t\t\t\t\t\t\t\t\tvalue = stageWidth - (x - offset.x) - width;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\t\t\t\tvalue = stageHeight - (y - offset.y) - height;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'h':\n\t\t\t\t\t\t\t\t\t\tvalue = x + width / 2 - stageWidthOrigin / 2;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'v':\n\t\t\t\t\t\t\t\t\t\tvalue = y + height / 2 - stageHeightOrigin / 2;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlet isPercent = prefix.endsWith('p');\n\t\t\t\t\t\t\tif (isPercent) {\n\t\t\t\t\t\t\t\tif(!hasValue){\n\t\t\t\t\t\t\t\t\tswitch(fieldChar){\n\t\t\t\t\t\t\t\t\t\tcase 'l':\n\t\t\t\t\t\t\t\t\t\tcase 'r':\n\t\t\t\t\t\t\t\t\t\t\tvalue /= stageWidth;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase 't':\n\t\t\t\t\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\t\t\t\t\tvalue /= stageHeight;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tvalue = Math.floor(value * 100);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvalue += '%';\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvalue = parseFloat(value);\n\t\t\t\t\t\t\t\tif (isNaN(value)) {\n\t\t\t\t\t\t\t\t\tvalue = 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconsole.log(properties)\n\t\t\t\t\t\t\tproperties.style[field] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}catch (e) {\n\t\t\t\tconsole.log(e);\n\t\t\t}\n\t\t}\n\n\t\tlet viewNode = {\n\t\t\tname,\n\t\t\tproperties,\n\t\t\tuuid: generateUUID(),\n\t\t};\n\t\tlet dealLater = true;\n\t\tif (x !== 0) {\n\t\t\tconsole.log(properties)\n\t\t\tif(!properties.style.left){\n\t\t\t\tproperties.style.left = x - (isSecondLayer ? offset.x : 0);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\tif (y !== 0) {\n\t\t\tif(!properties.style.top){\n\t\t\t\tproperties.style.top = y - (isSecondLayer ? offset.y : 0);\n\t\t\t}\n\t\t}\n\t\tproperties.style.position=\"absolute\"\n\t\tproperties.style.transformOrigin=\"0px 0px 0px\";\n\t\tviewNode.rect={\n\t\t\tx: properties.style.left?properties.style.left:0,\n\t\t\ty: properties.style.top?properties.style.top:0,\n\t\t\twidth: properties.style.width,\n\t\t\theight: properties.style.height\n\t\t}\n\n\t\tif (typeTool) {\n\t\t\tlet fontInfo = typeTool();\n\t\t\tproperties.attrs.text = fontInfo.textValue;\n\t\t\tconst sizes = fontInfo.sizes();\n\t\t\tconst colors = fontInfo.colors();\n\t\t\tproperties.style.fontSize = sizes ? sizes[0] || 20 : 20;\n\t\t\tlet [r, g, b, a] = colors[0];\n\t\t\tconsole.log(\"color\",[r, g, b, a])\n\t\t\tproperties.style.color = `rgba(${r}, ${g}, ${b}, ${a / 255})`;\n\t\t\tviewNode.componentName = 'Label';\n\t\t\tdealLater = false;\n\t\t} else if (solidColor && layer.vectorMask) {\n\t\t\tlet paths = layer.vectorMask().paths;\n\t\t\tif (paths[2].numPoints === 4) {\n\t\t\t\tlet isRect = true;\n\t\t\t\tfor (let i = 3; i < paths.length; i++) {\n\t\t\t\t\tif (paths[i].recordType !== 2) {\n\t\t\t\t\t\tisRect = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (isRect) {\n\t\t\t\t\tviewNode.componentName = 'Div';\n\t\t\t\t\tconst {r, g, b} = solidColor();\n\t\t\t\t\tproperties.style.backgroundColor = `rgba(${r}, ${g}, ${b}, 1)`;\n\t\t\t\t\tdealLater = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (dealLater) {\n\t\t\tif (node.hasOwnProperty('children')) {\n\t\t\t\tviewNode.componentName = 'Div';\n\t\t\t} else {\n\t\t\t\tviewNode.componentName = 'Image';\n\n\t\t\t\tlet uuid = generateUUID();\n\t\t\t\tconst ext = '.png';\n\n\t\t\t\tlet dataUrl;\n\t\t\t\ttry {\n\t\t\t\t\tlet img = node.origin.toPng();\n\t\t\t\t\tdataUrl = img.src;\n\t\t\t\t} catch (e) {\n\n\t\t\t\t}\n\n\t\t\t\tif (dataUrl) {\n\t\t\t\t\tlet base64Data = dataUrl.replace(/^data:image\\/\\w+;base64,/, \"\");\n\t\t\t\t\tlet buffer = new Buffer(base64Data, 'base64');\n\t\t\t\t\tconst fileNameHash = hash(buffer);\n\t\t\t\t\tif (imageHashMap.hasOwnProperty(fileNameHash)) {\n\t\t\t\t\t\tuuid = imageHashMap[fileNameHash];\n\t\t\t\t\t} else {\n\t\t\t\t\t\timageHashMap[fileNameHash] = uuid;\n\t\t\t\t\t\tassets.push({\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\text,\n\t\t\t\t\t\t\tuuid,\n\t\t\t\t\t\t\tbase64Data,\n\t\t\t\t\t\t\thash: fileNameHash,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tproperties.attrs.source = 'asset://' + uuid;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tlet viewParent = parent.view || viewRoot;\n\t\tif (!viewParent.hasOwnProperty('children')) {\n\t\t\tviewParent.children = [];\n\t\t}\n\t\tviewParent.children.push(viewNode);\n\n\t\tnode.view = viewNode;\n\t});\n console.log(psdFile)\n\tlet data = {\n\t\tpluginVersion:\"0.0.1\",\n\t\treference:\"psd\",\n\t\tfileName:psdFile.name,\n\t\tassets,\n\t\tview: viewRoot,\n\t};\n\n\tlet dataString = JSON.stringify(data);\n\n\tlet buf = new Buffer(dataString);\n\treturn await new Promise((resolve, reject) => {\n\t\tzlib.gzip(buf, function (err, res) {\n\t\t\tif (err) {\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\tconsole.log(res.length);\n\t\t\t\tresolve(res);\n\t\t\t}\n\t\t});\n\t})\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file \ No newline at end of file
...@@ -238,6 +238,7 @@ ...@@ -238,6 +238,7 @@
} }
} }
properties.style.position="absolute"; properties.style.position="absolute";
properties.style.transformOrigin="0px 0px 0px";
viewNode.rect={ viewNode.rect={
x: properties.style.left?properties.style.left:0, x: properties.style.left?properties.style.left:0,
y: properties.style.top?properties.style.top:0, y: properties.style.top?properties.style.top:0,
......
{"version":3,"file":"index.umd.js","sources":["../src/psd-tree.js","../src/utils.js","../src/zeroing.js"],"sourcesContent":["/**\n * Created by rockyl on 2019-08-09.\n */\n\nconst PSD = window['require']('psd');\n\nexport async function getTree(file) {\n\tlet psd = await PSD.fromDroppedFile(file);\n\n\tconst root = {};\n\twalk(psd.tree(), root);\n\n\treturn root;\n}\n\nfunction walk(psNode, dataNode) {\n\tconst {left: pLeft = 0, top: pTop = 0,} = psNode.parent || {};\n\tconst {left, top, width, height, name, layer: {opacity, visible}} = psNode;\n\tconst x = left - pLeft;\n\tconst y = top - pTop;\n\n\tObject.assign(dataNode, {x, y, width, height, opacity: opacity / 255, visible, name, origin: psNode, label: `${name} > [${x}, ${y}, ${width}, ${height}]`});\n\tif (psNode.children() && psNode.children().length > 0){\n\t\tdataNode.children = [];\n\t}\n\n\tlet children = psNode.children();\n\tfor (let i = children.length - 1; i >= 0; i--) {\n\t\tconst childPsNode = children[i];\n\n\t\tconst childDataNode = {};\n\t\tdataNode.children.push(childDataNode);\n\t\twalk(childPsNode, childDataNode)\n\t}\n}\n","/**\n * Created by rockyl on 2019-08-10.\n */\n\nexport async function walkNode(node, callback, includeSelf = false) {\n\tif (includeSelf) {\n\t\tawait callback(node, null);\n\t}\n\tif (node.children && node.children.length > 0) {\n\t\tfor (let childNode of node.children) {\n\t\t\tawait callback(childNode, node);\n\t\t\tconst result = await walkNode(childNode, callback);\n\t\t\tif (result === true) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport async function walkObject(obj, callback) {\n\tif(typeof obj === \"object\"){\n\t\tfor (let key of Object.keys(obj)) {\n\t\t\tconst value = obj[key];\n\t\t\tawait callback(key, value, obj);\n\t\t\tconst result = await walkObject(value, callback);\n\t\t\tif (result === true) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n","/**\n * Created by renjianfeng on 2020-06-11.\n *\n * 导出spark的视图\n */\n\nimport {getTree} from \"./psd-tree\";\nimport {walkNode} from \"./utils\";\nimport path from 'path'\nimport Color from 'color'\nimport generateUUID from 'uuid/v4'\nimport hash from 'object-hash';\nimport zlib from 'zlib';\n\nconst relativePosPrefixMap = {\n\tl: {field: 'left',},\n\tt: {field: 'top',},\n\tr: {field: 'right',},\n\tb: {field: 'bottom',},\n\th: {field: 'horizonCenter',},\n\tv: {field: 'verticalCenter',},\n\twp: {field: 'width', },\n\thp: {field: 'height', },\n\tlp: {field: 'left', },\n\ttp: {field: 'top', },\n\trp: {field: 'right', },\n\tbp: {field: 'bottom', },\n};\n\nconst offsetAll = 176;\n\nexport async function execute(psdFile, options) {\n\tconst tree = await getTree(psdFile);\n\tconst {mode = 'none', singleView = true} = options;\n\n\tlet offset = {x: 0, y: 0};\n\tlet cutSize = {x: 0, y: 0};\n\n\tif (mode !== 'none') {\n\t\tcutSize.y = offsetAll;\n\t}\n\tswitch (mode) {\n\t\tcase 'top':\n\t\t\toffset.y = offsetAll;\n\t\t\tbreak;\n\t\tcase 'center':\n\t\t\toffset.y = offsetAll / 2;\n\t\t\tbreak;\n\t}\n\n\tconst isCenter = mode === 'center';\n\n\tlet viewRoot = {\n\t\tname: path.basename(psdFile.name, '.psd'),\n\t\tcomponentName : 'Div',\n\t\tuuid: generateUUID(),\n\t};\n\n\tconst assets = [];\n\tconst imageHashMap = {};\n\n\tlet {width: stageWidthOrigin, height: stageHeightOrigin} = tree;\n\tconst stageWidth = stageWidthOrigin - cutSize.x || 0;\n\tconst stageHeight = stageHeightOrigin - cutSize.y || 0;\n\n\tawait walkNode(tree, async function (node, parent) {\n\t\tlet {name} = node;\n\t\tconst {x, y, width, height, opacity, display, origin: {layer, layer: {typeTool, solidColor}}} = node;\n\t\t//console.log('walk node:', name);\n\t\tlet properties = {\n\t\t\tstyle:{\n\t\t\t\twidth, height, opacity,display ,\n\t\t\t},\n\t\t\tattrs:{\n\n\t\t\t},\n\t\t\tclassName:\"\"\n\t\t};\n\t\tconst isSecondLayer = singleView && !parent.origin.parent || !singleView && parent.origin.parent && !parent.origin.parent.parent;\n\t\tconst shouldVerticalCenter = isSecondLayer && isCenter;\n\n\t\tconst {width: parentWidth, height: parentHeight} = parent;\n\n\t\tif (name.includes('|') || shouldVerticalCenter) {\n\t\t\ttry {\n\t\t\t\tlet arr = name.split('|');\n\t\t\t\tname = arr[0];\n\t\t\t\tlet paramsStr = arr[1];\n\t\t\t\tlet relativePos;\n\t\t\t\tif(paramsStr){\n\t\t\t\t\tlet params = paramsStr.split(';');\n\t\t\t\t\trelativePos = params[0];\n\t\t\t\t}else if(shouldVerticalCenter){\n\t\t\t\t\trelativePos = 'v';\n\t\t\t\t}\n\n\t\t\t\tif (relativePos) {\n\t\t\t\t\tlet items = relativePos.split(',');\n\t\t\t\t\tfor (let item of items) {\n\t\t\t\t\t\tlet result = item.match(/[a-zA-Z]+/);\n\t\t\t\t\t\tif(!result){\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet prefix = result[0];\n\t\t\t\t\t\tlet mapItem = relativePosPrefixMap[prefix];\n\t\t\t\t\t\tif (mapItem) {\n\t\t\t\t\t\t\tlet {field,} = mapItem;\n\t\t\t\t\t\t\tlet value = item.substr(prefix.length);\n\t\t\t\t\t\t\tlet hasValue = value.length > 0;\n\t\t\t\t\t\t\tlet fieldChar = prefix[0];\n\t\t\t\t\t\t\tif(!hasValue){\n\t\t\t\t\t\t\t\tswitch(fieldChar){\n\t\t\t\t\t\t\t\t\tcase 'l':\n\t\t\t\t\t\t\t\t\t\tvalue = x - offset.x;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 't':\n\t\t\t\t\t\t\t\t\t\tvalue = y - offset.y;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'r':\n\t\t\t\t\t\t\t\t\t\tvalue = stageWidth - (x - offset.x) - width;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\t\t\t\tvalue = stageHeight - (y - offset.y) - height;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'h':\n\t\t\t\t\t\t\t\t\t\tvalue = x + width / 2 - stageWidthOrigin / 2;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'v':\n\t\t\t\t\t\t\t\t\t\tvalue = y + height / 2 - stageHeightOrigin / 2;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlet isPercent = prefix.endsWith('p');\n\t\t\t\t\t\t\tif (isPercent) {\n\t\t\t\t\t\t\t\tif(!hasValue){\n\t\t\t\t\t\t\t\t\tswitch(fieldChar){\n\t\t\t\t\t\t\t\t\t\tcase 'l':\n\t\t\t\t\t\t\t\t\t\tcase 'r':\n\t\t\t\t\t\t\t\t\t\t\tvalue /= stageWidth;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase 't':\n\t\t\t\t\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\t\t\t\t\tvalue /= stageHeight;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tvalue = Math.floor(value * 100);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvalue += '%';\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvalue = parseFloat(value);\n\t\t\t\t\t\t\t\tif (isNaN(value)) {\n\t\t\t\t\t\t\t\t\tvalue = 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconsole.log(properties)\n\t\t\t\t\t\t\tproperties.style[field] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}catch (e) {\n\t\t\t\tconsole.log(e);\n\t\t\t}\n\t\t}\n\n\t\tlet viewNode = {\n\t\t\tname,\n\t\t\tproperties,\n\t\t\tuuid: generateUUID(),\n\t\t};\n\t\tlet dealLater = true;\n\t\tif (x !== 0) {\n\t\t\tconsole.log(properties)\n\t\t\tif(!properties.style.left){\n\t\t\t\tproperties.style.left = x - (isSecondLayer ? offset.x : 0);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\tif (y !== 0) {\n\t\t\tif(!properties.style.top){\n\t\t\t\tproperties.style.top = y - (isSecondLayer ? offset.y : 0);\n\t\t\t}\n\t\t}\n\t\tproperties.style.position=\"absolute\"\n\t\tviewNode.rect={\n\t\t\tx: properties.style.left?properties.style.left:0,\n\t\t\ty: properties.style.top?properties.style.top:0,\n\t\t\twidth: properties.style.width,\n\t\t\theight: properties.style.height\n\t\t}\n\n\t\tif (typeTool) {\n\t\t\tlet fontInfo = typeTool();\n\t\t\tproperties.attrs.text = fontInfo.textValue;\n\t\t\tconst sizes = fontInfo.sizes();\n\t\t\tconst colors = fontInfo.colors();\n\t\t\tproperties.style.fontSize = sizes ? sizes[0] || 20 : 20;\n\t\t\tlet [r, g, b, a] = colors[0];\n\t\t\tconsole.log(\"color\",[r, g, b, a])\n\t\t\tproperties.style.color = `rgba(${r}, ${g}, ${b}, ${a / 255})`;\n\t\t\tviewNode.componentName = 'Label';\n\t\t\tdealLater = false;\n\t\t} else if (solidColor && layer.vectorMask) {\n\t\t\tlet paths = layer.vectorMask().paths;\n\t\t\tif (paths[2].numPoints === 4) {\n\t\t\t\tlet isRect = true;\n\t\t\t\tfor (let i = 3; i < paths.length; i++) {\n\t\t\t\t\tif (paths[i].recordType !== 2) {\n\t\t\t\t\t\tisRect = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (isRect) {\n\t\t\t\t\tviewNode.componentName = 'Div';\n\t\t\t\t\tconst {r, g, b} = solidColor();\n\t\t\t\t\tproperties.style.backgroundColor = `rgba(${r}, ${g}, ${b}, 1)`;\n\t\t\t\t\tdealLater = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (dealLater) {\n\t\t\tif (node.hasOwnProperty('children')) {\n\t\t\t\tviewNode.componentName = 'Div';\n\t\t\t} else {\n\t\t\t\tviewNode.componentName = 'Image';\n\n\t\t\t\tlet uuid = generateUUID();\n\t\t\t\tconst ext = '.png';\n\n\t\t\t\tlet dataUrl;\n\t\t\t\ttry {\n\t\t\t\t\tlet img = node.origin.toPng();\n\t\t\t\t\tdataUrl = img.src;\n\t\t\t\t} catch (e) {\n\n\t\t\t\t}\n\n\t\t\t\tif (dataUrl) {\n\t\t\t\t\tlet base64Data = dataUrl.replace(/^data:image\\/\\w+;base64,/, \"\");\n\t\t\t\t\tlet buffer = new Buffer(base64Data, 'base64');\n\t\t\t\t\tconst fileNameHash = hash(buffer);\n\t\t\t\t\tif (imageHashMap.hasOwnProperty(fileNameHash)) {\n\t\t\t\t\t\tuuid = imageHashMap[fileNameHash];\n\t\t\t\t\t} else {\n\t\t\t\t\t\timageHashMap[fileNameHash] = uuid;\n\t\t\t\t\t\tassets.push({\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\text,\n\t\t\t\t\t\t\tuuid,\n\t\t\t\t\t\t\tbase64Data,\n\t\t\t\t\t\t\thash: fileNameHash,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tproperties.attrs.source = 'asset://' + uuid;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tlet viewParent = parent.view || viewRoot;\n\t\tif (!viewParent.hasOwnProperty('children')) {\n\t\t\tviewParent.children = [];\n\t\t}\n\t\tviewParent.children.push(viewNode);\n\n\t\tnode.view = viewNode;\n\t});\n console.log(psdFile)\n\tlet data = {\n\t\tpluginVersion:\"0.0.1\",\n\t\treference:\"psd\",\n\t\tfileName:psdFile.name,\n\t\tassets,\n\t\tview: viewRoot,\n\t};\n\n\tlet dataString = JSON.stringify(data);\n\n\tlet buf = new Buffer(dataString);\n\treturn await new Promise((resolve, reject) => {\n\t\tzlib.gzip(buf, function (err, res) {\n\t\t\tif (err) {\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\tconsole.log(res.length);\n\t\t\t\tresolve(res);\n\t\t\t}\n\t\t});\n\t})\n}\n"],"names":[],"mappings":"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"} {"version":3,"file":"index.umd.js","sources":["../src/psd-tree.js","../src/utils.js","../src/zeroing.js"],"sourcesContent":["/**\n * Created by rockyl on 2019-08-09.\n */\n\nconst PSD = window['require']('psd');\n\nexport async function getTree(file) {\n\tlet psd = await PSD.fromDroppedFile(file);\n\n\tconst root = {};\n\twalk(psd.tree(), root);\n\n\treturn root;\n}\n\nfunction walk(psNode, dataNode) {\n\tconst {left: pLeft = 0, top: pTop = 0,} = psNode.parent || {};\n\tconst {left, top, width, height, name, layer: {opacity, visible}} = psNode;\n\tconst x = left - pLeft;\n\tconst y = top - pTop;\n\n\tObject.assign(dataNode, {x, y, width, height, opacity: opacity / 255, visible, name, origin: psNode, label: `${name} > [${x}, ${y}, ${width}, ${height}]`});\n\tif (psNode.children() && psNode.children().length > 0){\n\t\tdataNode.children = [];\n\t}\n\n\tlet children = psNode.children();\n\tfor (let i = children.length - 1; i >= 0; i--) {\n\t\tconst childPsNode = children[i];\n\n\t\tconst childDataNode = {};\n\t\tdataNode.children.push(childDataNode);\n\t\twalk(childPsNode, childDataNode)\n\t}\n}\n","/**\n * Created by rockyl on 2019-08-10.\n */\n\nexport async function walkNode(node, callback, includeSelf = false) {\n\tif (includeSelf) {\n\t\tawait callback(node, null);\n\t}\n\tif (node.children && node.children.length > 0) {\n\t\tfor (let childNode of node.children) {\n\t\t\tawait callback(childNode, node);\n\t\t\tconst result = await walkNode(childNode, callback);\n\t\t\tif (result === true) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport async function walkObject(obj, callback) {\n\tif(typeof obj === \"object\"){\n\t\tfor (let key of Object.keys(obj)) {\n\t\t\tconst value = obj[key];\n\t\t\tawait callback(key, value, obj);\n\t\t\tconst result = await walkObject(value, callback);\n\t\t\tif (result === true) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n","/**\n * Created by renjianfeng on 2020-06-11.\n *\n * 导出spark的视图\n */\n\nimport {getTree} from \"./psd-tree\";\nimport {walkNode} from \"./utils\";\nimport path from 'path'\nimport Color from 'color'\nimport generateUUID from 'uuid/v4'\nimport hash from 'object-hash';\nimport zlib from 'zlib';\n\nconst relativePosPrefixMap = {\n\tl: {field: 'left',},\n\tt: {field: 'top',},\n\tr: {field: 'right',},\n\tb: {field: 'bottom',},\n\th: {field: 'horizonCenter',},\n\tv: {field: 'verticalCenter',},\n\twp: {field: 'width', },\n\thp: {field: 'height', },\n\tlp: {field: 'left', },\n\ttp: {field: 'top', },\n\trp: {field: 'right', },\n\tbp: {field: 'bottom', },\n};\n\nconst offsetAll = 176;\n\nexport async function execute(psdFile, options) {\n\tconst tree = await getTree(psdFile);\n\tconst {mode = 'none', singleView = true} = options;\n\n\tlet offset = {x: 0, y: 0};\n\tlet cutSize = {x: 0, y: 0};\n\n\tif (mode !== 'none') {\n\t\tcutSize.y = offsetAll;\n\t}\n\tswitch (mode) {\n\t\tcase 'top':\n\t\t\toffset.y = offsetAll;\n\t\t\tbreak;\n\t\tcase 'center':\n\t\t\toffset.y = offsetAll / 2;\n\t\t\tbreak;\n\t}\n\n\tconst isCenter = mode === 'center';\n\n\tlet viewRoot = {\n\t\tname: path.basename(psdFile.name, '.psd'),\n\t\tcomponentName : 'Div',\n\t\tuuid: generateUUID(),\n\t};\n\n\tconst assets = [];\n\tconst imageHashMap = {};\n\n\tlet {width: stageWidthOrigin, height: stageHeightOrigin} = tree;\n\tconst stageWidth = stageWidthOrigin - cutSize.x || 0;\n\tconst stageHeight = stageHeightOrigin - cutSize.y || 0;\n\n\tawait walkNode(tree, async function (node, parent) {\n\t\tlet {name} = node;\n\t\tconst {x, y, width, height, opacity, display, origin: {layer, layer: {typeTool, solidColor}}} = node;\n\t\t//console.log('walk node:', name);\n\t\tlet properties = {\n\t\t\tstyle:{\n\t\t\t\twidth, height, opacity,display ,\n\t\t\t},\n\t\t\tattrs:{\n\n\t\t\t},\n\t\t\tclassName:\"\"\n\t\t};\n\t\tconst isSecondLayer = singleView && !parent.origin.parent || !singleView && parent.origin.parent && !parent.origin.parent.parent;\n\t\tconst shouldVerticalCenter = isSecondLayer && isCenter;\n\n\t\tconst {width: parentWidth, height: parentHeight} = parent;\n\n\t\tif (name.includes('|') || shouldVerticalCenter) {\n\t\t\ttry {\n\t\t\t\tlet arr = name.split('|');\n\t\t\t\tname = arr[0];\n\t\t\t\tlet paramsStr = arr[1];\n\t\t\t\tlet relativePos;\n\t\t\t\tif(paramsStr){\n\t\t\t\t\tlet params = paramsStr.split(';');\n\t\t\t\t\trelativePos = params[0];\n\t\t\t\t}else if(shouldVerticalCenter){\n\t\t\t\t\trelativePos = 'v';\n\t\t\t\t}\n\n\t\t\t\tif (relativePos) {\n\t\t\t\t\tlet items = relativePos.split(',');\n\t\t\t\t\tfor (let item of items) {\n\t\t\t\t\t\tlet result = item.match(/[a-zA-Z]+/);\n\t\t\t\t\t\tif(!result){\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet prefix = result[0];\n\t\t\t\t\t\tlet mapItem = relativePosPrefixMap[prefix];\n\t\t\t\t\t\tif (mapItem) {\n\t\t\t\t\t\t\tlet {field,} = mapItem;\n\t\t\t\t\t\t\tlet value = item.substr(prefix.length);\n\t\t\t\t\t\t\tlet hasValue = value.length > 0;\n\t\t\t\t\t\t\tlet fieldChar = prefix[0];\n\t\t\t\t\t\t\tif(!hasValue){\n\t\t\t\t\t\t\t\tswitch(fieldChar){\n\t\t\t\t\t\t\t\t\tcase 'l':\n\t\t\t\t\t\t\t\t\t\tvalue = x - offset.x;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 't':\n\t\t\t\t\t\t\t\t\t\tvalue = y - offset.y;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'r':\n\t\t\t\t\t\t\t\t\t\tvalue = stageWidth - (x - offset.x) - width;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\t\t\t\tvalue = stageHeight - (y - offset.y) - height;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'h':\n\t\t\t\t\t\t\t\t\t\tvalue = x + width / 2 - stageWidthOrigin / 2;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 'v':\n\t\t\t\t\t\t\t\t\t\tvalue = y + height / 2 - stageHeightOrigin / 2;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlet isPercent = prefix.endsWith('p');\n\t\t\t\t\t\t\tif (isPercent) {\n\t\t\t\t\t\t\t\tif(!hasValue){\n\t\t\t\t\t\t\t\t\tswitch(fieldChar){\n\t\t\t\t\t\t\t\t\t\tcase 'l':\n\t\t\t\t\t\t\t\t\t\tcase 'r':\n\t\t\t\t\t\t\t\t\t\t\tvalue /= stageWidth;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase 't':\n\t\t\t\t\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\t\t\t\t\tvalue /= stageHeight;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tvalue = Math.floor(value * 100);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvalue += '%';\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvalue = parseFloat(value);\n\t\t\t\t\t\t\t\tif (isNaN(value)) {\n\t\t\t\t\t\t\t\t\tvalue = 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconsole.log(properties)\n\t\t\t\t\t\t\tproperties.style[field] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}catch (e) {\n\t\t\t\tconsole.log(e);\n\t\t\t}\n\t\t}\n\n\t\tlet viewNode = {\n\t\t\tname,\n\t\t\tproperties,\n\t\t\tuuid: generateUUID(),\n\t\t};\n\t\tlet dealLater = true;\n\t\tif (x !== 0) {\n\t\t\tconsole.log(properties)\n\t\t\tif(!properties.style.left){\n\t\t\t\tproperties.style.left = x - (isSecondLayer ? offset.x : 0);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\tif (y !== 0) {\n\t\t\tif(!properties.style.top){\n\t\t\t\tproperties.style.top = y - (isSecondLayer ? offset.y : 0);\n\t\t\t}\n\t\t}\n\t\tproperties.style.position=\"absolute\"\n\t\tproperties.style.transformOrigin=\"0px 0px 0px\";\n\t\tviewNode.rect={\n\t\t\tx: properties.style.left?properties.style.left:0,\n\t\t\ty: properties.style.top?properties.style.top:0,\n\t\t\twidth: properties.style.width,\n\t\t\theight: properties.style.height\n\t\t}\n\n\t\tif (typeTool) {\n\t\t\tlet fontInfo = typeTool();\n\t\t\tproperties.attrs.text = fontInfo.textValue;\n\t\t\tconst sizes = fontInfo.sizes();\n\t\t\tconst colors = fontInfo.colors();\n\t\t\tproperties.style.fontSize = sizes ? sizes[0] || 20 : 20;\n\t\t\tlet [r, g, b, a] = colors[0];\n\t\t\tconsole.log(\"color\",[r, g, b, a])\n\t\t\tproperties.style.color = `rgba(${r}, ${g}, ${b}, ${a / 255})`;\n\t\t\tviewNode.componentName = 'Label';\n\t\t\tdealLater = false;\n\t\t} else if (solidColor && layer.vectorMask) {\n\t\t\tlet paths = layer.vectorMask().paths;\n\t\t\tif (paths[2].numPoints === 4) {\n\t\t\t\tlet isRect = true;\n\t\t\t\tfor (let i = 3; i < paths.length; i++) {\n\t\t\t\t\tif (paths[i].recordType !== 2) {\n\t\t\t\t\t\tisRect = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (isRect) {\n\t\t\t\t\tviewNode.componentName = 'Div';\n\t\t\t\t\tconst {r, g, b} = solidColor();\n\t\t\t\t\tproperties.style.backgroundColor = `rgba(${r}, ${g}, ${b}, 1)`;\n\t\t\t\t\tdealLater = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (dealLater) {\n\t\t\tif (node.hasOwnProperty('children')) {\n\t\t\t\tviewNode.componentName = 'Div';\n\t\t\t} else {\n\t\t\t\tviewNode.componentName = 'Image';\n\n\t\t\t\tlet uuid = generateUUID();\n\t\t\t\tconst ext = '.png';\n\n\t\t\t\tlet dataUrl;\n\t\t\t\ttry {\n\t\t\t\t\tlet img = node.origin.toPng();\n\t\t\t\t\tdataUrl = img.src;\n\t\t\t\t} catch (e) {\n\n\t\t\t\t}\n\n\t\t\t\tif (dataUrl) {\n\t\t\t\t\tlet base64Data = dataUrl.replace(/^data:image\\/\\w+;base64,/, \"\");\n\t\t\t\t\tlet buffer = new Buffer(base64Data, 'base64');\n\t\t\t\t\tconst fileNameHash = hash(buffer);\n\t\t\t\t\tif (imageHashMap.hasOwnProperty(fileNameHash)) {\n\t\t\t\t\t\tuuid = imageHashMap[fileNameHash];\n\t\t\t\t\t} else {\n\t\t\t\t\t\timageHashMap[fileNameHash] = uuid;\n\t\t\t\t\t\tassets.push({\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\text,\n\t\t\t\t\t\t\tuuid,\n\t\t\t\t\t\t\tbase64Data,\n\t\t\t\t\t\t\thash: fileNameHash,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tproperties.attrs.source = 'asset://' + uuid;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tlet viewParent = parent.view || viewRoot;\n\t\tif (!viewParent.hasOwnProperty('children')) {\n\t\t\tviewParent.children = [];\n\t\t}\n\t\tviewParent.children.push(viewNode);\n\n\t\tnode.view = viewNode;\n\t});\n console.log(psdFile)\n\tlet data = {\n\t\tpluginVersion:\"0.0.1\",\n\t\treference:\"psd\",\n\t\tfileName:psdFile.name,\n\t\tassets,\n\t\tview: viewRoot,\n\t};\n\n\tlet dataString = JSON.stringify(data);\n\n\tlet buf = new Buffer(dataString);\n\treturn await new Promise((resolve, reject) => {\n\t\tzlib.gzip(buf, function (err, res) {\n\t\t\tif (err) {\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\tconsole.log(res.length);\n\t\t\t\tresolve(res);\n\t\t\t}\n\t\t});\n\t})\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file \ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment