Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Side by Side Diff: third_party/WebKit/Source/devtools/scripts/spritesheet_assembler/DevToolsDescriptors.js

Issue 2671413004: DevTools: introduce spritesheet assembler. (Closed)
Patch Set: rebaseline tests Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 var path = require('path');
2
3 var licenseHeader = [
4 '// Copyright 2017 The Chromium Authors. All rights reserved.',
5 '// Use of this source code is governed by a BSD-style license that can be', ' // found in the LICENSE file.'
6 ].join('\n');
7
8 var generatedFileNotice = ['/**', ' * NOTICE: This file was generated by sprites heet_assembler.', ' */'].join('\n');
9
10
11 var DevToolsDescriptors = {
12 /**
13 * @param {!SVGSpriteSheet} spriteSheet
14 * @return {string}
15 */
16 generateJS: function(spriteSheet) {
17 // Manually craft json which alines with our style.
18 var json = 'UI.Icon.setSpriteSheet({';
19 json += `\n size: '${spriteSheet.width()}px ${spriteSheet.height()}px',`;
20 json += '\n descriptors: {';
21 for (var sprite of spriteSheet.sprites()) {
22 var extension = path.extname(sprite.filePath);
23 var spriteName = path.basename(sprite.filePath, extension);
24 var isMask = false;
25 if (spriteName.endsWith('-mask')) {
26 spriteName = spriteName.replace(/-mask$/, '');
27 isMask = true;
28 }
29 var descriptor = `'${spriteName}': {`;
30 var position = spriteSheet.spritePosition(sprite);
31 descriptor += 'x: ' + (-position.x);
32 descriptor += ', y: ' + (-position.y);
33 descriptor += ', width: ' + sprite.width;
34 descriptor += ', height: ' + sprite.height;
35 if (isMask)
36 descriptor += ', isMask: ' + isMask;
37 descriptor += '},';
38 json += '\n ' + descriptor;
39 }
40 json += '\n }';
41 json += '\n});';
42 var fileHeader = licenseHeader + '\n\n' + generatedFileNotice + '\n\n';
43 return fileHeader + json;
44 },
45 };
46
47 module.exports = DevToolsDescriptors;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698