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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/spectrum/Spectrum.js

Issue 2608043002: DevTools: extract modules (with extensions) (Closed)
Patch Set: fixes Created 3 years, 11 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
1 /* 1 /*
2 * Copyright (C) 2011 Brian Grinstead All rights reserved. 2 * Copyright (C) 2011 Brian Grinstead All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 11 matching lines...) Expand all
22 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */ 27 */
28 28
29 /** 29 /**
30 * @unrestricted 30 * @unrestricted
31 */ 31 */
32 Components.Spectrum = class extends UI.VBox { 32 Spectrum.Spectrum = class extends UI.VBox {
33 constructor() { 33 constructor() {
34 /** 34 /**
35 * @param {!Element} parentElement 35 * @param {!Element} parentElement
36 */ 36 */
37 function appendSwitcherIcon(parentElement) { 37 function appendSwitcherIcon(parentElement) {
38 var icon = parentElement.createSVGChild('svg'); 38 var icon = parentElement.createSVGChild('svg');
39 icon.setAttribute('height', 16); 39 icon.setAttribute('height', 16);
40 icon.setAttribute('width', 16); 40 icon.setAttribute('width', 16);
41 var path = icon.createSVGChild('path'); 41 var path = icon.createSVGChild('path');
42 path.setAttribute('d', 'M5,6 L11,6 L8,2 Z M5,10 L11,10 L8,14 Z'); 42 path.setAttribute('d', 'M5,6 L11,6 L8,2 Z M5,10 L11,10 L8,14 Z');
43 return icon; 43 return icon;
44 } 44 }
45 45
46 super(true); 46 super(true);
47 this.registerRequiredCSS('components/spectrum.css'); 47 this.registerRequiredCSS('spectrum/spectrum.css');
48 this.contentElement.tabIndex = 0; 48 this.contentElement.tabIndex = 0;
49 this.setDefaultFocusedElement(this.contentElement); 49 this.setDefaultFocusedElement(this.contentElement);
50 50
51 this._colorElement = this.contentElement.createChild('div', 'spectrum-color' ); 51 this._colorElement = this.contentElement.createChild('div', 'spectrum-color' );
52 this._colorDragElement = this._colorElement.createChild('div', 'spectrum-sat fill') 52 this._colorDragElement = this._colorElement.createChild('div', 'spectrum-sat fill')
53 .createChild('div', 'spectrum-val fill') 53 .createChild('div', 'spectrum-val fill')
54 .createChild('div', 'spectrum-dragger'); 54 .createChild('div', 'spectrum-dragger');
55 var contrastRatioSVG = this._colorElement.createSVGChild('svg', 'spectrum-co ntrast-container fill'); 55 var contrastRatioSVG = this._colorElement.createSVGChild('svg', 'spectrum-co ntrast-container fill');
56 this._contrastRatioLine = contrastRatioSVG.createSVGChild('path', 'spectrum- contrast-line'); 56 this._contrastRatioLine = contrastRatioSVG.createSVGChild('path', 'spectrum- contrast-line');
57 57
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 label.textContent = 'HEX'; 107 label.textContent = 'HEX';
108 108
109 UI.installDragHandle( 109 UI.installDragHandle(
110 this._hueElement, dragStart.bind(this, positionHue.bind(this)), position Hue.bind(this), null, 'default'); 110 this._hueElement, dragStart.bind(this, positionHue.bind(this)), position Hue.bind(this), null, 'default');
111 UI.installDragHandle( 111 UI.installDragHandle(
112 this._alphaElement, dragStart.bind(this, positionAlpha.bind(this)), posi tionAlpha.bind(this), null, 'default'); 112 this._alphaElement, dragStart.bind(this, positionAlpha.bind(this)), posi tionAlpha.bind(this), null, 'default');
113 UI.installDragHandle( 113 UI.installDragHandle(
114 this._colorElement, dragStart.bind(this, positionColor.bind(this)), posi tionColor.bind(this), null, 'default'); 114 this._colorElement, dragStart.bind(this, positionColor.bind(this)), posi tionColor.bind(this), null, 'default');
115 115
116 this.element.classList.add('palettes-enabled'); 116 this.element.classList.add('palettes-enabled');
117 /** @type {!Map.<string, !Components.Spectrum.Palette>} */ 117 /** @type {!Map.<string, !Spectrum.Spectrum.Palette>} */
118 this._palettes = new Map(); 118 this._palettes = new Map();
119 this._palettePanel = this.contentElement.createChild('div', 'palette-panel') ; 119 this._palettePanel = this.contentElement.createChild('div', 'palette-panel') ;
120 this._palettePanelShowing = false; 120 this._palettePanelShowing = false;
121 this._paletteContainer = this.contentElement.createChild('div', 'spectrum-pa lette'); 121 this._paletteContainer = this.contentElement.createChild('div', 'spectrum-pa lette');
122 this._paletteContainer.addEventListener('contextmenu', this._showPaletteColo rContextMenu.bind(this, -1)); 122 this._paletteContainer.addEventListener('contextmenu', this._showPaletteColo rContextMenu.bind(this, -1));
123 this._shadesContainer = this.contentElement.createChild('div', 'palette-colo r-shades hidden'); 123 this._shadesContainer = this.contentElement.createChild('div', 'palette-colo r-shades hidden');
124 UI.installDragHandle( 124 UI.installDragHandle(
125 this._paletteContainer, this._paletteDragStart.bind(this), this._palette Drag.bind(this), 125 this._paletteContainer, this._paletteDragStart.bind(this), this._palette Drag.bind(this),
126 this._paletteDragEnd.bind(this), 'default'); 126 this._paletteDragEnd.bind(this), 'default');
127 var paletteSwitcher = this.contentElement.createChild('div', 'spectrum-palet te-switcher spectrum-switcher'); 127 var paletteSwitcher = this.contentElement.createChild('div', 'spectrum-palet te-switcher spectrum-switcher');
128 appendSwitcherIcon(paletteSwitcher); 128 appendSwitcherIcon(paletteSwitcher);
129 paletteSwitcher.addEventListener('click', this._togglePalettePanel.bind(this , true)); 129 paletteSwitcher.addEventListener('click', this._togglePalettePanel.bind(this , true));
130 130
131 this._deleteIconToolbar = new UI.Toolbar('delete-color-toolbar'); 131 this._deleteIconToolbar = new UI.Toolbar('delete-color-toolbar');
132 this._deleteButton = new UI.ToolbarButton('', 'largeicon-trash-bin'); 132 this._deleteButton = new UI.ToolbarButton('', 'largeicon-trash-bin');
133 this._deleteIconToolbar.appendToolbarItem(this._deleteButton); 133 this._deleteIconToolbar.appendToolbarItem(this._deleteButton);
134 134
135 var overlay = this.contentElement.createChild('div', 'spectrum-overlay fill' ); 135 var overlay = this.contentElement.createChild('div', 'spectrum-overlay fill' );
136 overlay.addEventListener('click', this._togglePalettePanel.bind(this, false) ); 136 overlay.addEventListener('click', this._togglePalettePanel.bind(this, false) );
137 137
138 this._addColorToolbar = new UI.Toolbar('add-color-toolbar'); 138 this._addColorToolbar = new UI.Toolbar('add-color-toolbar');
139 var addColorButton = new UI.ToolbarButton(Common.UIString('Add to palette'), 'largeicon-add'); 139 var addColorButton = new UI.ToolbarButton(Common.UIString('Add to palette'), 'largeicon-add');
140 addColorButton.addEventListener(UI.ToolbarButton.Events.Click, this._addColo rToCustomPalette, this); 140 addColorButton.addEventListener(UI.ToolbarButton.Events.Click, this._addColo rToCustomPalette, this);
141 this._addColorToolbar.appendToolbarItem(addColorButton); 141 this._addColorToolbar.appendToolbarItem(addColorButton);
142 142
143 this._loadPalettes(); 143 this._loadPalettes();
144 new Components.Spectrum.PaletteGenerator(this._generatedPaletteLoaded.bind(t his)); 144 new Spectrum.Spectrum.PaletteGenerator(this._generatedPaletteLoaded.bind(thi s));
145 145
146 /** 146 /**
147 * @param {function(!Event)} callback 147 * @param {function(!Event)} callback
148 * @param {!Event} event 148 * @param {!Event} event
149 * @return {boolean} 149 * @return {boolean}
150 * @this {Components.Spectrum} 150 * @this {Spectrum.Spectrum}
151 */ 151 */
152 function dragStart(callback, event) { 152 function dragStart(callback, event) {
153 this._hueAlphaLeft = this._hueElement.totalOffsetLeft(); 153 this._hueAlphaLeft = this._hueElement.totalOffsetLeft();
154 this._colorOffset = this._colorElement.totalOffset(); 154 this._colorOffset = this._colorElement.totalOffset();
155 callback(event); 155 callback(event);
156 return true; 156 return true;
157 } 157 }
158 158
159 /** 159 /**
160 * @param {!Event} event 160 * @param {!Event} event
161 * @this {Components.Spectrum} 161 * @this {Spectrum.Spectrum}
162 */ 162 */
163 function positionHue(event) { 163 function positionHue(event) {
164 var hsva = this._hsv.slice(); 164 var hsva = this._hsv.slice();
165 hsva[0] = Number.constrain(1 - (event.x - this._hueAlphaLeft) / this._hueA lphaWidth, 0, 1); 165 hsva[0] = Number.constrain(1 - (event.x - this._hueAlphaLeft) / this._hueA lphaWidth, 0, 1);
166 this._innerSetColor(hsva, '', undefined, Components.Spectrum._ChangeSource .Other); 166 this._innerSetColor(hsva, '', undefined, Spectrum.Spectrum._ChangeSource.O ther);
167 } 167 }
168 168
169 /** 169 /**
170 * @param {!Event} event 170 * @param {!Event} event
171 * @this {Components.Spectrum} 171 * @this {Spectrum.Spectrum}
172 */ 172 */
173 function positionAlpha(event) { 173 function positionAlpha(event) {
174 var newAlpha = Math.round((event.x - this._hueAlphaLeft) / this._hueAlphaW idth * 100) / 100; 174 var newAlpha = Math.round((event.x - this._hueAlphaLeft) / this._hueAlphaW idth * 100) / 100;
175 var hsva = this._hsv.slice(); 175 var hsva = this._hsv.slice();
176 hsva[3] = Number.constrain(newAlpha, 0, 1); 176 hsva[3] = Number.constrain(newAlpha, 0, 1);
177 var colorFormat = undefined; 177 var colorFormat = undefined;
178 if (hsva[3] !== 1 && 178 if (hsva[3] !== 1 &&
179 (this._colorFormat === Common.Color.Format.ShortHEX || this._colorForm at === Common.Color.Format.HEX || 179 (this._colorFormat === Common.Color.Format.ShortHEX || this._colorForm at === Common.Color.Format.HEX ||
180 this._colorFormat === Common.Color.Format.Nickname)) 180 this._colorFormat === Common.Color.Format.Nickname))
181 colorFormat = Common.Color.Format.RGB; 181 colorFormat = Common.Color.Format.RGB;
182 this._innerSetColor(hsva, '', colorFormat, Components.Spectrum._ChangeSour ce.Other); 182 this._innerSetColor(hsva, '', colorFormat, Spectrum.Spectrum._ChangeSource .Other);
183 } 183 }
184 184
185 /** 185 /**
186 * @param {!Event} event 186 * @param {!Event} event
187 * @this {Components.Spectrum} 187 * @this {Spectrum.Spectrum}
188 */ 188 */
189 function positionColor(event) { 189 function positionColor(event) {
190 var hsva = this._hsv.slice(); 190 var hsva = this._hsv.slice();
191 hsva[1] = Number.constrain((event.x - this._colorOffset.left) / this.dragW idth, 0, 1); 191 hsva[1] = Number.constrain((event.x - this._colorOffset.left) / this.dragW idth, 0, 1);
192 hsva[2] = Number.constrain(1 - (event.y - this._colorOffset.top) / this.dr agHeight, 0, 1); 192 hsva[2] = Number.constrain(1 - (event.y - this._colorOffset.top) / this.dr agHeight, 0, 1);
193 this._innerSetColor(hsva, '', undefined, Components.Spectrum._ChangeSource .Other); 193 this._innerSetColor(hsva, '', undefined, Spectrum.Spectrum._ChangeSource.O ther);
194 } 194 }
195 } 195 }
196 196
197 _onCopyIconClick() { 197 _onCopyIconClick() {
198 this._swatchCopyIcon.setIconType('largeicon-checkmark'); 198 this._swatchCopyIcon.setIconType('largeicon-checkmark');
199 InspectorFrontendHost.copyText(this.colorString()); 199 InspectorFrontendHost.copyText(this.colorString());
200 } 200 }
201 201
202 _onCopyIconMouseout() { 202 _onCopyIconMouseout() {
203 this._swatchCopyIcon.setIconType('largeicon-copy'); 203 this._swatchCopyIcon.setIconType('largeicon-copy');
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 _createPaletteColor(colorText, animationDelay) { 241 _createPaletteColor(colorText, animationDelay) {
242 var element = createElementWithClass('div', 'spectrum-palette-color'); 242 var element = createElementWithClass('div', 'spectrum-palette-color');
243 element.style.background = String.sprintf('linear-gradient(%s, %s), url(Imag es/checker.png)', colorText, colorText); 243 element.style.background = String.sprintf('linear-gradient(%s, %s), url(Imag es/checker.png)', colorText, colorText);
244 if (animationDelay) 244 if (animationDelay)
245 element.animate([{opacity: 0}, {opacity: 1}], {duration: 100, delay: anima tionDelay, fill: 'backwards'}); 245 element.animate([{opacity: 0}, {opacity: 1}], {duration: 100, delay: anima tionDelay, fill: 'backwards'});
246 element.title = colorText; 246 element.title = colorText;
247 return element; 247 return element;
248 } 248 }
249 249
250 /** 250 /**
251 * @param {!Components.Spectrum.Palette} palette 251 * @param {!Spectrum.Spectrum.Palette} palette
252 * @param {boolean} animate 252 * @param {boolean} animate
253 * @param {!Event=} event 253 * @param {!Event=} event
254 */ 254 */
255 _showPalette(palette, animate, event) { 255 _showPalette(palette, animate, event) {
256 this._resizeForSelectedPalette(); 256 this._resizeForSelectedPalette();
257 this._paletteContainer.removeChildren(); 257 this._paletteContainer.removeChildren();
258 for (var i = 0; i < palette.colors.length; i++) { 258 for (var i = 0; i < palette.colors.length; i++) {
259 var animationDelay = animate ? i * 100 / palette.colors.length : 0; 259 var animationDelay = animate ? i * 100 / palette.colors.length : 0;
260 var colorElement = this._createPaletteColor(palette.colors[i], animationDe lay); 260 var colorElement = this._createPaletteColor(palette.colors[i], animationDe lay);
261 colorElement.addEventListener( 261 colorElement.addEventListener(
262 'mousedown', this._paletteColorSelected.bind(this, palette.colors[i], palette.matchUserFormat)); 262 'mousedown', this._paletteColorSelected.bind(this, palette.colors[i], palette.matchUserFormat));
263 if (palette.mutable) { 263 if (palette.mutable) {
264 colorElement.__mutable = true; 264 colorElement.__mutable = true;
265 colorElement.__color = palette.colors[i]; 265 colorElement.__color = palette.colors[i];
266 colorElement.addEventListener('contextmenu', this._showPaletteColorConte xtMenu.bind(this, i)); 266 colorElement.addEventListener('contextmenu', this._showPaletteColorConte xtMenu.bind(this, i));
267 } else if (palette === Components.Spectrum.MaterialPalette) { 267 } else if (palette === Spectrum.Spectrum.MaterialPalette) {
268 colorElement.classList.add('has-material-shades'); 268 colorElement.classList.add('has-material-shades');
269 var shadow = colorElement.createChild('div', 'spectrum-palette-color spe ctrum-palette-color-shadow'); 269 var shadow = colorElement.createChild('div', 'spectrum-palette-color spe ctrum-palette-color-shadow');
270 shadow.style.background = palette.colors[i]; 270 shadow.style.background = palette.colors[i];
271 shadow = colorElement.createChild('div', 'spectrum-palette-color spectru m-palette-color-shadow'); 271 shadow = colorElement.createChild('div', 'spectrum-palette-color spectru m-palette-color-shadow');
272 shadow.style.background = palette.colors[i]; 272 shadow.style.background = palette.colors[i];
273 colorElement.title = Common.UIString(palette.colors[i] + '. Long-click t o show alternate shades.'); 273 colorElement.title = Common.UIString(palette.colors[i] + '. Long-click t o show alternate shades.');
274 new UI.LongClickController(colorElement, this._showLightnessShades.bind( this, colorElement, palette.colors[i])); 274 new UI.LongClickController(colorElement, this._showLightnessShades.bind( this, colorElement, palette.colors[i]));
275 } 275 }
276 this._paletteContainer.appendChild(colorElement); 276 this._paletteContainer.appendChild(colorElement);
277 } 277 }
(...skipping 12 matching lines...) Expand all
290 } 290 }
291 291
292 /** 292 /**
293 * @param {!Element} colorElement 293 * @param {!Element} colorElement
294 * @param {string} colorText 294 * @param {string} colorText
295 * @param {!Event} event 295 * @param {!Event} event
296 */ 296 */
297 _showLightnessShades(colorElement, colorText, event) { 297 _showLightnessShades(colorElement, colorText, event) {
298 /** 298 /**
299 * @param {!Element} element 299 * @param {!Element} element
300 * @this {!Components.Spectrum} 300 * @this {!Spectrum.Spectrum}
301 */ 301 */
302 function closeLightnessShades(element) { 302 function closeLightnessShades(element) {
303 this._shadesContainer.classList.add('hidden'); 303 this._shadesContainer.classList.add('hidden');
304 element.classList.remove('spectrum-shades-shown'); 304 element.classList.remove('spectrum-shades-shown');
305 this._shadesContainer.ownerDocument.removeEventListener('mousedown', this. _shadesCloseHandler, true); 305 this._shadesContainer.ownerDocument.removeEventListener('mousedown', this. _shadesCloseHandler, true);
306 delete this._shadesCloseHandler; 306 delete this._shadesCloseHandler;
307 } 307 }
308 308
309 if (this._shadesCloseHandler) 309 if (this._shadesCloseHandler)
310 this._shadesCloseHandler(); 310 this._shadesCloseHandler();
311 311
312 this._shadesContainer.classList.remove('hidden'); 312 this._shadesContainer.classList.remove('hidden');
313 this._shadesContainer.removeChildren(); 313 this._shadesContainer.removeChildren();
314 this._shadesContainer.animate( 314 this._shadesContainer.animate(
315 [{transform: 'scaleY(0)', opacity: '0'}, {transform: 'scaleY(1)', opacit y: '1'}], 315 [{transform: 'scaleY(0)', opacity: '0'}, {transform: 'scaleY(1)', opacit y: '1'}],
316 {duration: 200, easing: 'cubic-bezier(0.4, 0, 0.2, 1)'}); 316 {duration: 200, easing: 'cubic-bezier(0.4, 0, 0.2, 1)'});
317 this._shadesContainer.style.top = colorElement.offsetTop + colorElement.pare ntElement.offsetTop + 'px'; 317 this._shadesContainer.style.top = colorElement.offsetTop + colorElement.pare ntElement.offsetTop + 'px';
318 this._shadesContainer.style.left = colorElement.offsetLeft + 'px'; 318 this._shadesContainer.style.left = colorElement.offsetLeft + 'px';
319 colorElement.classList.add('spectrum-shades-shown'); 319 colorElement.classList.add('spectrum-shades-shown');
320 320
321 var shades = Components.Spectrum.MaterialPaletteShades[colorText]; 321 var shades = Spectrum.Spectrum.MaterialPaletteShades[colorText];
322 for (var i = shades.length - 1; i >= 0; i--) { 322 for (var i = shades.length - 1; i >= 0; i--) {
323 var shadeElement = this._createPaletteColor(shades[i], i * 200 / shades.le ngth + 100); 323 var shadeElement = this._createPaletteColor(shades[i], i * 200 / shades.le ngth + 100);
324 shadeElement.addEventListener('mousedown', this._paletteColorSelected.bind (this, shades[i], false)); 324 shadeElement.addEventListener('mousedown', this._paletteColorSelected.bind (this, shades[i], false));
325 this._shadesContainer.appendChild(shadeElement); 325 this._shadesContainer.appendChild(shadeElement);
326 } 326 }
327 327
328 this._shadesContainer.focus(); 328 this._shadesContainer.focus();
329 this._shadesCloseHandler = closeLightnessShades.bind(this, colorElement); 329 this._shadesCloseHandler = closeLightnessShades.bind(this, colorElement);
330 this._shadesContainer.ownerDocument.addEventListener('mousedown', this._shad esCloseHandler, true); 330 this._shadesContainer.ownerDocument.addEventListener('mousedown', this._shad esCloseHandler, true);
331 } 331 }
332 332
333 /** 333 /**
334 * @param {!Event} e 334 * @param {!Event} e
335 * @return {number} 335 * @return {number}
336 */ 336 */
337 _slotIndexForEvent(e) { 337 _slotIndexForEvent(e) {
338 var localX = e.pageX - this._paletteContainer.totalOffsetLeft(); 338 var localX = e.pageX - this._paletteContainer.totalOffsetLeft();
339 var localY = e.pageY - this._paletteContainer.totalOffsetTop(); 339 var localY = e.pageY - this._paletteContainer.totalOffsetTop();
340 var col = Math.min(localX / Components.Spectrum._colorChipSize | 0, Componen ts.Spectrum._itemsPerPaletteRow - 1); 340 var col = Math.min(localX / Spectrum.Spectrum._colorChipSize | 0, Spectrum.S pectrum._itemsPerPaletteRow - 1);
341 var row = (localY / Components.Spectrum._colorChipSize) | 0; 341 var row = (localY / Spectrum.Spectrum._colorChipSize) | 0;
342 return Math.min( 342 return Math.min(
343 row * Components.Spectrum._itemsPerPaletteRow + col, this._customPalette Setting.get().colors.length - 1); 343 row * Spectrum.Spectrum._itemsPerPaletteRow + col, this._customPaletteSe tting.get().colors.length - 1);
344 } 344 }
345 345
346 /** 346 /**
347 * @param {!Event} e 347 * @param {!Event} e
348 * @return {boolean} 348 * @return {boolean}
349 */ 349 */
350 _isDraggingToBin(e) { 350 _isDraggingToBin(e) {
351 return e.pageX > this._deleteIconToolbar.element.totalOffsetLeft(); 351 return e.pageX > this._deleteIconToolbar.element.totalOffsetLeft();
352 } 352 }
353 353
354 /** 354 /**
355 * @param {!Event} e 355 * @param {!Event} e
356 * @return {boolean} 356 * @return {boolean}
357 */ 357 */
358 _paletteDragStart(e) { 358 _paletteDragStart(e) {
359 var element = e.deepElementFromPoint(); 359 var element = e.deepElementFromPoint();
360 if (!element || !element.__mutable) 360 if (!element || !element.__mutable)
361 return false; 361 return false;
362 362
363 var index = this._slotIndexForEvent(e); 363 var index = this._slotIndexForEvent(e);
364 this._dragElement = element; 364 this._dragElement = element;
365 this._dragHotSpotX = 365 this._dragHotSpotX = e.pageX - (index % Spectrum.Spectrum._itemsPerPaletteRo w) * Spectrum.Spectrum._colorChipSize;
366 e.pageX - (index % Components.Spectrum._itemsPerPaletteRow) * Components .Spectrum._colorChipSize;
367 this._dragHotSpotY = 366 this._dragHotSpotY =
368 e.pageY - (index / Components.Spectrum._itemsPerPaletteRow | 0) * Compon ents.Spectrum._colorChipSize; 367 e.pageY - (index / Spectrum.Spectrum._itemsPerPaletteRow | 0) * Spectrum .Spectrum._colorChipSize;
369 return true; 368 return true;
370 } 369 }
371 370
372 /** 371 /**
373 * @param {!Event} e 372 * @param {!Event} e
374 */ 373 */
375 _paletteDrag(e) { 374 _paletteDrag(e) {
376 if (e.pageX < this._paletteContainer.totalOffsetLeft() || e.pageY < this._pa letteContainer.totalOffsetTop()) 375 if (e.pageX < this._paletteContainer.totalOffsetLeft() || e.pageY < this._pa letteContainer.totalOffsetTop())
377 return; 376 return;
378 var newIndex = this._slotIndexForEvent(e); 377 var newIndex = this._slotIndexForEvent(e);
379 var offsetX = e.pageX - (newIndex % Components.Spectrum._itemsPerPaletteRow) * Components.Spectrum._colorChipSize; 378 var offsetX = e.pageX - (newIndex % Spectrum.Spectrum._itemsPerPaletteRow) * Spectrum.Spectrum._colorChipSize;
380 var offsetY = 379 var offsetY = e.pageY - (newIndex / Spectrum.Spectrum._itemsPerPaletteRow | 0) * Spectrum.Spectrum._colorChipSize;
381 e.pageY - (newIndex / Components.Spectrum._itemsPerPaletteRow | 0) * Com ponents.Spectrum._colorChipSize;
382 380
383 var isDeleting = this._isDraggingToBin(e); 381 var isDeleting = this._isDraggingToBin(e);
384 this._deleteIconToolbar.element.classList.add('dragging'); 382 this._deleteIconToolbar.element.classList.add('dragging');
385 this._deleteIconToolbar.element.classList.toggle('delete-color-toolbar-activ e', isDeleting); 383 this._deleteIconToolbar.element.classList.toggle('delete-color-toolbar-activ e', isDeleting);
386 var dragElementTransform = 384 var dragElementTransform =
387 'translateX(' + (offsetX - this._dragHotSpotX) + 'px) translateY(' + (of fsetY - this._dragHotSpotY) + 'px)'; 385 'translateX(' + (offsetX - this._dragHotSpotX) + 'px) translateY(' + (of fsetY - this._dragHotSpotY) + 'px)';
388 this._dragElement.style.transform = isDeleting ? dragElementTransform + ' sc ale(0.8)' : dragElementTransform; 386 this._dragElement.style.transform = isDeleting ? dragElementTransform + ' sc ale(0.8)' : dragElementTransform;
389 var children = Array.prototype.slice.call(this._paletteContainer.children); 387 var children = Array.prototype.slice.call(this._paletteContainer.children);
390 var index = children.indexOf(this._dragElement); 388 var index = children.indexOf(this._dragElement);
391 /** @type {!Map.<!Element, {left: number, top: number}>} */ 389 /** @type {!Map.<!Element, {left: number, top: number}>} */
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 var palette = this._customPaletteSetting.get(); 429 var palette = this._customPaletteSetting.get();
432 palette.colors = colors; 430 palette.colors = colors;
433 this._customPaletteSetting.set(palette); 431 this._customPaletteSetting.set(palette);
434 this._showPalette(this._customPaletteSetting.get(), false); 432 this._showPalette(this._customPaletteSetting.get(), false);
435 433
436 this._deleteIconToolbar.element.classList.remove('dragging'); 434 this._deleteIconToolbar.element.classList.remove('dragging');
437 this._deleteIconToolbar.element.classList.remove('delete-color-toolbar-activ e'); 435 this._deleteIconToolbar.element.classList.remove('delete-color-toolbar-activ e');
438 } 436 }
439 437
440 _loadPalettes() { 438 _loadPalettes() {
441 this._palettes.set(Components.Spectrum.MaterialPalette.title, Components.Spe ctrum.MaterialPalette); 439 this._palettes.set(Spectrum.Spectrum.MaterialPalette.title, Spectrum.Spectru m.MaterialPalette);
442 /** @type {!Components.Spectrum.Palette} */ 440 /** @type {!Spectrum.Spectrum.Palette} */
443 var defaultCustomPalette = {title: 'Custom', colors: [], mutable: true}; 441 var defaultCustomPalette = {title: 'Custom', colors: [], mutable: true};
444 this._customPaletteSetting = Common.settings.createSetting('customColorPalet te', defaultCustomPalette); 442 this._customPaletteSetting = Common.settings.createSetting('customColorPalet te', defaultCustomPalette);
445 this._palettes.set(this._customPaletteSetting.get().title, this._customPalet teSetting.get()); 443 this._palettes.set(this._customPaletteSetting.get().title, this._customPalet teSetting.get());
446 444
447 this._selectedColorPalette = 445 this._selectedColorPalette =
448 Common.settings.createSetting('selectedColorPalette', Components.Spectru m.GeneratedPaletteTitle); 446 Common.settings.createSetting('selectedColorPalette', Spectrum.Spectrum. GeneratedPaletteTitle);
449 var palette = this._palettes.get(this._selectedColorPalette.get()); 447 var palette = this._palettes.get(this._selectedColorPalette.get());
450 if (palette) 448 if (palette)
451 this._showPalette(palette, true); 449 this._showPalette(palette, true);
452 } 450 }
453 451
454 /** 452 /**
455 * @param {!Components.Spectrum.Palette} generatedPalette 453 * @param {!Spectrum.Spectrum.Palette} generatedPalette
456 */ 454 */
457 _generatedPaletteLoaded(generatedPalette) { 455 _generatedPaletteLoaded(generatedPalette) {
458 if (generatedPalette.colors.length) 456 if (generatedPalette.colors.length)
459 this._palettes.set(generatedPalette.title, generatedPalette); 457 this._palettes.set(generatedPalette.title, generatedPalette);
460 if (this._selectedColorPalette.get() !== generatedPalette.title) { 458 if (this._selectedColorPalette.get() !== generatedPalette.title) {
461 return; 459 return;
462 } else if (!generatedPalette.colors.length) { 460 } else if (!generatedPalette.colors.length) {
463 this._paletteSelected(Components.Spectrum.MaterialPalette); 461 this._paletteSelected(Spectrum.Spectrum.MaterialPalette);
464 return; 462 return;
465 } 463 }
466 this._showPalette(generatedPalette, true); 464 this._showPalette(generatedPalette, true);
467 } 465 }
468 466
469 /** 467 /**
470 * @param {!Components.Spectrum.Palette} palette 468 * @param {!Spectrum.Spectrum.Palette} palette
471 * @return {!Element} 469 * @return {!Element}
472 */ 470 */
473 _createPreviewPaletteElement(palette) { 471 _createPreviewPaletteElement(palette) {
474 var colorsPerPreviewRow = 5; 472 var colorsPerPreviewRow = 5;
475 var previewElement = createElementWithClass('div', 'palette-preview'); 473 var previewElement = createElementWithClass('div', 'palette-preview');
476 var titleElement = previewElement.createChild('div', 'palette-preview-title' ); 474 var titleElement = previewElement.createChild('div', 'palette-preview-title' );
477 titleElement.textContent = palette.title; 475 titleElement.textContent = palette.title;
478 for (var i = 0; i < colorsPerPreviewRow && i < palette.colors.length; i++) 476 for (var i = 0; i < colorsPerPreviewRow && i < palette.colors.length; i++)
479 previewElement.appendChild(this._createPaletteColor(palette.colors[i])); 477 previewElement.appendChild(this._createPaletteColor(palette.colors[i]));
480 for (; i < colorsPerPreviewRow; i++) 478 for (; i < colorsPerPreviewRow; i++)
481 previewElement.createChild('div', 'spectrum-palette-color empty-color'); 479 previewElement.createChild('div', 'spectrum-palette-color empty-color');
482 previewElement.addEventListener('click', this._paletteSelected.bind(this, pa lette)); 480 previewElement.addEventListener('click', this._paletteSelected.bind(this, pa lette));
483 return previewElement; 481 return previewElement;
484 } 482 }
485 483
486 /** 484 /**
487 * @param {!Components.Spectrum.Palette} palette 485 * @param {!Spectrum.Spectrum.Palette} palette
488 */ 486 */
489 _paletteSelected(palette) { 487 _paletteSelected(palette) {
490 this._selectedColorPalette.set(palette.title); 488 this._selectedColorPalette.set(palette.title);
491 this._showPalette(palette, true); 489 this._showPalette(palette, true);
492 } 490 }
493 491
494 _resizeForSelectedPalette() { 492 _resizeForSelectedPalette() {
495 var palette = this._palettes.get(this._selectedColorPalette.get()); 493 var palette = this._palettes.get(this._selectedColorPalette.get());
496 if (!palette) 494 if (!palette)
497 return; 495 return;
498 var numColors = palette.colors.length; 496 var numColors = palette.colors.length;
499 if (palette === this._customPaletteSetting.get()) 497 if (palette === this._customPaletteSetting.get())
500 numColors++; 498 numColors++;
501 var rowsNeeded = Math.max(1, Math.ceil(numColors / Components.Spectrum._item sPerPaletteRow)); 499 var rowsNeeded = Math.max(1, Math.ceil(numColors / Spectrum.Spectrum._itemsP erPaletteRow));
502 if (this._numPaletteRowsShown === rowsNeeded) 500 if (this._numPaletteRowsShown === rowsNeeded)
503 return; 501 return;
504 this._numPaletteRowsShown = rowsNeeded; 502 this._numPaletteRowsShown = rowsNeeded;
505 var paletteColorHeight = 12; 503 var paletteColorHeight = 12;
506 var paletteMargin = 12; 504 var paletteMargin = 12;
507 var paletteTop = 235; 505 var paletteTop = 235;
508 this.element.style.height = (paletteTop + paletteMargin + (paletteColorHeigh t + paletteMargin) * rowsNeeded) + 'px'; 506 this.element.style.height = (paletteTop + paletteMargin + (paletteColorHeigh t + paletteMargin) * rowsNeeded) + 'px';
509 this.dispatchEventToListeners(Components.Spectrum.Events.SizeChanged); 507 this.dispatchEventToListeners(Spectrum.Spectrum.Events.SizeChanged);
510 } 508 }
511 509
512 /** 510 /**
513 * @param {string} colorText 511 * @param {string} colorText
514 * @param {boolean} matchUserFormat 512 * @param {boolean} matchUserFormat
515 */ 513 */
516 _paletteColorSelected(colorText, matchUserFormat) { 514 _paletteColorSelected(colorText, matchUserFormat) {
517 var color = Common.Color.parse(colorText); 515 var color = Common.Color.parse(colorText);
518 if (!color) 516 if (!color)
519 return; 517 return;
520 this._innerSetColor( 518 this._innerSetColor(
521 color.hsva(), colorText, matchUserFormat ? this._colorFormat : color.for mat(), 519 color.hsva(), colorText, matchUserFormat ? this._colorFormat : color.for mat(),
522 Components.Spectrum._ChangeSource.Other); 520 Spectrum.Spectrum._ChangeSource.Other);
523 } 521 }
524 522
525 /** 523 /**
526 * @param {!Common.Event} event 524 * @param {!Common.Event} event
527 */ 525 */
528 _addColorToCustomPalette(event) { 526 _addColorToCustomPalette(event) {
529 var palette = this._customPaletteSetting.get(); 527 var palette = this._customPaletteSetting.get();
530 palette.colors.push(this.colorString()); 528 palette.colors.push(this.colorString());
531 this._customPaletteSetting.set(palette); 529 this._customPaletteSetting.set(palette);
532 this._showPalette(this._customPaletteSetting.get(), false); 530 this._showPalette(this._customPaletteSetting.get(), false);
(...skipping 29 matching lines...) Expand all
562 this._customPaletteSetting.set(palette); 560 this._customPaletteSetting.set(palette);
563 this._showPalette(this._customPaletteSetting.get(), false); 561 this._showPalette(this._customPaletteSetting.get(), false);
564 } 562 }
565 563
566 /** 564 /**
567 * @param {!Common.Color} color 565 * @param {!Common.Color} color
568 * @param {string} colorFormat 566 * @param {string} colorFormat
569 */ 567 */
570 setColor(color, colorFormat) { 568 setColor(color, colorFormat) {
571 this._originalFormat = colorFormat; 569 this._originalFormat = colorFormat;
572 this._innerSetColor(color.hsva(), '', colorFormat, Components.Spectrum._Chan geSource.Model); 570 this._innerSetColor(color.hsva(), '', colorFormat, Spectrum.Spectrum._Change Source.Model);
573 } 571 }
574 572
575 /** 573 /**
576 * @param {!Array<number>|undefined} hsva 574 * @param {!Array<number>|undefined} hsva
577 * @param {string|undefined} colorString 575 * @param {string|undefined} colorString
578 * @param {string|undefined} colorFormat 576 * @param {string|undefined} colorFormat
579 * @param {string} changeSource 577 * @param {string} changeSource
580 */ 578 */
581 _innerSetColor(hsva, colorString, colorFormat, changeSource) { 579 _innerSetColor(hsva, colorString, colorFormat, changeSource) {
582 if (hsva !== undefined) 580 if (hsva !== undefined)
583 this._hsv = hsva; 581 this._hsv = hsva;
584 if (colorString !== undefined) 582 if (colorString !== undefined)
585 this._colorString = colorString; 583 this._colorString = colorString;
586 if (colorFormat !== undefined) { 584 if (colorFormat !== undefined) {
587 console.assert(colorFormat !== Common.Color.Format.Original, 'Spectrum\'s color format cannot be Original'); 585 console.assert(colorFormat !== Common.Color.Format.Original, 'Spectrum\'s color format cannot be Original');
588 if (colorFormat === Common.Color.Format.RGBA) 586 if (colorFormat === Common.Color.Format.RGBA)
589 colorFormat = Common.Color.Format.RGB; 587 colorFormat = Common.Color.Format.RGB;
590 else if (colorFormat === Common.Color.Format.HSLA) 588 else if (colorFormat === Common.Color.Format.HSLA)
591 colorFormat = Common.Color.Format.HSL; 589 colorFormat = Common.Color.Format.HSL;
592 this._colorFormat = colorFormat; 590 this._colorFormat = colorFormat;
593 } 591 }
594 592
595 this._updateHelperLocations(); 593 this._updateHelperLocations();
596 this._updateUI(); 594 this._updateUI();
597 595
598 if (changeSource !== Components.Spectrum._ChangeSource.Input) 596 if (changeSource !== Spectrum.Spectrum._ChangeSource.Input)
599 this._updateInput(); 597 this._updateInput();
600 if (changeSource !== Components.Spectrum._ChangeSource.Model) 598 if (changeSource !== Spectrum.Spectrum._ChangeSource.Model)
601 this.dispatchEventToListeners(Components.Spectrum.Events.ColorChanged, thi s.colorString()); 599 this.dispatchEventToListeners(Spectrum.Spectrum.Events.ColorChanged, this. colorString());
602 } 600 }
603 601
604 /** 602 /**
605 * @param {!Common.Color} color 603 * @param {!Common.Color} color
606 */ 604 */
607 setContrastColor(color) { 605 setContrastColor(color) {
608 this._contrastColor = color; 606 this._contrastColor = color;
609 this._updateUI(); 607 this._updateUI();
610 } 608 }
611 609
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
794 String.sprintf('linear-gradient(to right, rgba(0,0,0,0), %s)', noAlpha.a sString(Common.Color.Format.RGB)); 792 String.sprintf('linear-gradient(to right, rgba(0,0,0,0), %s)', noAlpha.a sString(Common.Color.Format.RGB));
795 } 793 }
796 794
797 _formatViewSwitch() { 795 _formatViewSwitch() {
798 var cf = Common.Color.Format; 796 var cf = Common.Color.Format;
799 var format = cf.RGB; 797 var format = cf.RGB;
800 if (this._colorFormat === cf.RGB) 798 if (this._colorFormat === cf.RGB)
801 format = cf.HSL; 799 format = cf.HSL;
802 else if (this._colorFormat === cf.HSL && !this._color().hasAlpha()) 800 else if (this._colorFormat === cf.HSL && !this._color().hasAlpha())
803 format = this._originalFormat === cf.ShortHEX ? cf.ShortHEX : cf.HEX; 801 format = this._originalFormat === cf.ShortHEX ? cf.ShortHEX : cf.HEX;
804 this._innerSetColor(undefined, '', format, Components.Spectrum._ChangeSource .Other); 802 this._innerSetColor(undefined, '', format, Spectrum.Spectrum._ChangeSource.O ther);
805 } 803 }
806 804
807 /** 805 /**
808 * @param {!Event} event 806 * @param {!Event} event
809 */ 807 */
810 _inputChanged(event) { 808 _inputChanged(event) {
811 /** 809 /**
812 * @param {!Element} element 810 * @param {!Element} element
813 * @return {string} 811 * @return {string}
814 */ 812 */
(...skipping 19 matching lines...) Expand all
834 var values = this._textValues.map(elementValue).join(', '); 832 var values = this._textValues.map(elementValue).join(', ');
835 colorString = String.sprintf('%s(%s)', format, values); 833 colorString = String.sprintf('%s(%s)', format, values);
836 } 834 }
837 835
838 var color = Common.Color.parse(colorString); 836 var color = Common.Color.parse(colorString);
839 if (!color) 837 if (!color)
840 return; 838 return;
841 var hsv = color.hsva(); 839 var hsv = color.hsva();
842 if (this._colorFormat === cf.HEX || this._colorFormat === cf.ShortHEX) 840 if (this._colorFormat === cf.HEX || this._colorFormat === cf.ShortHEX)
843 this._colorFormat = color.canBeShortHex() ? cf.ShortHEX : cf.HEX; 841 this._colorFormat = color.canBeShortHex() ? cf.ShortHEX : cf.HEX;
844 this._innerSetColor(hsv, colorString, undefined, Components.Spectrum._Change Source.Input); 842 this._innerSetColor(hsv, colorString, undefined, Spectrum.Spectrum._ChangeSo urce.Input);
845 } 843 }
846 844
847 /** 845 /**
848 * @override 846 * @override
849 */ 847 */
850 wasShown() { 848 wasShown() {
851 this._hueAlphaWidth = this._hueElement.offsetWidth; 849 this._hueAlphaWidth = this._hueElement.offsetWidth;
852 this.slideHelperWidth = this._hueSlider.offsetWidth / 2; 850 this.slideHelperWidth = this._hueSlider.offsetWidth / 2;
853 this.dragWidth = this._colorElement.offsetWidth; 851 this.dragWidth = this._colorElement.offsetWidth;
854 this.dragHeight = this._colorElement.offsetHeight; 852 this.dragHeight = this._colorElement.offsetHeight;
855 this._colorDragElementHeight = this._colorDragElement.offsetHeight / 2; 853 this._colorDragElementHeight = this._colorDragElement.offsetHeight / 2;
856 this._innerSetColor(undefined, undefined, undefined, Components.Spectrum._Ch angeSource.Model); 854 this._innerSetColor(undefined, undefined, undefined, Spectrum.Spectrum._Chan geSource.Model);
857 this._toggleColorPicker(true); 855 this._toggleColorPicker(true);
858 SDK.targetManager.addModelListener( 856 SDK.targetManager.addModelListener(
859 SDK.ResourceTreeModel, SDK.ResourceTreeModel.Events.ColorPicked, this._c olorPicked, this); 857 SDK.ResourceTreeModel, SDK.ResourceTreeModel.Events.ColorPicked, this._c olorPicked, this);
860 } 858 }
861 859
862 /** 860 /**
863 * @override 861 * @override
864 */ 862 */
865 willHide() { 863 willHide() {
866 this._toggleColorPicker(false); 864 this._toggleColorPicker(false);
(...skipping 13 matching lines...) Expand all
880 target.pageAgent().setColorPickerEnabled(enabled); 878 target.pageAgent().setColorPickerEnabled(enabled);
881 } 879 }
882 880
883 /** 881 /**
884 * @param {!Common.Event} event 882 * @param {!Common.Event} event
885 */ 883 */
886 _colorPicked(event) { 884 _colorPicked(event) {
887 var rgbColor = /** @type {!Protocol.DOM.RGBA} */ (event.data); 885 var rgbColor = /** @type {!Protocol.DOM.RGBA} */ (event.data);
888 var rgba = [rgbColor.r, rgbColor.g, rgbColor.b, (rgbColor.a / 2.55 | 0) / 10 0]; 886 var rgba = [rgbColor.r, rgbColor.g, rgbColor.b, (rgbColor.a / 2.55 | 0) / 10 0];
889 var color = Common.Color.fromRGBA(rgba); 887 var color = Common.Color.fromRGBA(rgba);
890 this._innerSetColor(color.hsva(), '', undefined, Components.Spectrum._Change Source.Other); 888 this._innerSetColor(color.hsva(), '', undefined, Spectrum.Spectrum._ChangeSo urce.Other);
891 InspectorFrontendHost.bringToFront(); 889 InspectorFrontendHost.bringToFront();
892 } 890 }
893 }; 891 };
894 892
895 Components.Spectrum._ChangeSource = { 893 Spectrum.Spectrum._ChangeSource = {
896 Input: 'Input', 894 Input: 'Input',
897 Model: 'Model', 895 Model: 'Model',
898 Other: 'Other' 896 Other: 'Other'
899 }; 897 };
900 898
901 /** @enum {symbol} */ 899 /** @enum {symbol} */
902 Components.Spectrum.Events = { 900 Spectrum.Spectrum.Events = {
903 ColorChanged: Symbol('ColorChanged'), 901 ColorChanged: Symbol('ColorChanged'),
904 SizeChanged: Symbol('SizeChanged') 902 SizeChanged: Symbol('SizeChanged')
905 }; 903 };
906 904
907 Components.Spectrum._colorChipSize = 24; 905 Spectrum.Spectrum._colorChipSize = 24;
908 Components.Spectrum._itemsPerPaletteRow = 8; 906 Spectrum.Spectrum._itemsPerPaletteRow = 8;
909 907
910 /** @typedef {{ title: string, colors: !Array.<string>, mutable: boolean }} */ 908 /** @typedef {{ title: string, colors: !Array.<string>, mutable: boolean }} */
911 Components.Spectrum.Palette; 909 Spectrum.Spectrum.Palette;
912 Components.Spectrum.GeneratedPaletteTitle = 'Page colors'; 910 Spectrum.Spectrum.GeneratedPaletteTitle = 'Page colors';
913 911
914 /** 912 /**
915 * @unrestricted 913 * @unrestricted
916 */ 914 */
917 Components.Spectrum.PaletteGenerator = class { 915 Spectrum.Spectrum.PaletteGenerator = class {
918 /** 916 /**
919 * @param {function(!Components.Spectrum.Palette)} callback 917 * @param {function(!Spectrum.Spectrum.Palette)} callback
920 */ 918 */
921 constructor(callback) { 919 constructor(callback) {
922 this._callback = callback; 920 this._callback = callback;
923 /** @type {!Map.<string, number>} */ 921 /** @type {!Map.<string, number>} */
924 this._frequencyMap = new Map(); 922 this._frequencyMap = new Map();
925 var stylesheetPromises = []; 923 var stylesheetPromises = [];
926 for (var target of SDK.targetManager.targets(SDK.Target.Capability.DOM)) { 924 for (var target of SDK.targetManager.targets(SDK.Target.Capability.DOM)) {
927 var cssModel = SDK.CSSModel.fromTarget(target); 925 var cssModel = SDK.CSSModel.fromTarget(target);
928 for (var stylesheet of cssModel.allStyleSheets()) 926 for (var stylesheet of cssModel.allStyleSheets())
929 stylesheetPromises.push(new Promise(this._processStylesheet.bind(this, s tylesheet))); 927 stylesheetPromises.push(new Promise(this._processStylesheet.bind(this, s tylesheet)));
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
972 var colorsPerRow = 24; 970 var colorsPerRow = 24;
973 while (paletteColors.size < colorsPerRow && colors.length) { 971 while (paletteColors.size < colorsPerRow && colors.length) {
974 var colorText = colors.shift(); 972 var colorText = colors.shift();
975 var color = Common.Color.parse(colorText); 973 var color = Common.Color.parse(colorText);
976 if (!color || color.nickname() === 'white' || color.nickname() === 'black' ) 974 if (!color || color.nickname() === 'white' || color.nickname() === 'black' )
977 continue; 975 continue;
978 paletteColors.set(colorText, color); 976 paletteColors.set(colorText, color);
979 } 977 }
980 978
981 this._callback({ 979 this._callback({
982 title: Components.Spectrum.GeneratedPaletteTitle, 980 title: Spectrum.Spectrum.GeneratedPaletteTitle,
983 colors: paletteColors.keysArray().sort(hueComparator), 981 colors: paletteColors.keysArray().sort(hueComparator),
984 mutable: false 982 mutable: false
985 }); 983 });
986 } 984 }
987 985
988 /** 986 /**
989 * @param {!SDK.CSSStyleSheetHeader} stylesheet 987 * @param {!SDK.CSSStyleSheetHeader} stylesheet
990 * @param {function(?)} resolve 988 * @param {function(?)} resolve
991 * @this {Components.Spectrum.PaletteGenerator} 989 * @this {Spectrum.Spectrum.PaletteGenerator}
992 */ 990 */
993 _processStylesheet(stylesheet, resolve) { 991 _processStylesheet(stylesheet, resolve) {
994 /** 992 /**
995 * @param {?string} text 993 * @param {?string} text
996 * @this {Components.Spectrum.PaletteGenerator} 994 * @this {Spectrum.Spectrum.PaletteGenerator}
997 */ 995 */
998 function parseContent(text) { 996 function parseContent(text) {
999 text = text.toLowerCase(); 997 text = text.toLowerCase();
1000 var regexResult = text.match(/((?:rgb|hsl)a?\([^)]+\)|#[0-9a-f]{6}|#[0-9a- f]{3})/g) || []; 998 var regexResult = text.match(/((?:rgb|hsl)a?\([^)]+\)|#[0-9a-f]{6}|#[0-9a- f]{3})/g) || [];
1001 for (var c of regexResult) { 999 for (var c of regexResult) {
1002 var frequency = this._frequencyMap.get(c) || 0; 1000 var frequency = this._frequencyMap.get(c) || 0;
1003 this._frequencyMap.set(c, ++frequency); 1001 this._frequencyMap.set(c, ++frequency);
1004 } 1002 }
1005 resolve(null); 1003 resolve(null);
1006 } 1004 }
1007 1005
1008 stylesheet.requestContent().then(parseContent.bind(this)); 1006 stylesheet.requestContent().then(parseContent.bind(this));
1009 } 1007 }
1010 }; 1008 };
1011 1009
1012 Components.Spectrum.MaterialPaletteShades = { 1010 Spectrum.Spectrum.MaterialPaletteShades = {
1013 '#F44336': 1011 '#F44336':
1014 ['#FFEBEE', '#FFCDD2', '#EF9A9A', '#E57373', '#EF5350', '#F44336', '#E5393 5', '#D32F2F', '#C62828', '#B71C1C'], 1012 ['#FFEBEE', '#FFCDD2', '#EF9A9A', '#E57373', '#EF5350', '#F44336', '#E5393 5', '#D32F2F', '#C62828', '#B71C1C'],
1015 '#E91E63': 1013 '#E91E63':
1016 ['#FCE4EC', '#F8BBD0', '#F48FB1', '#F06292', '#EC407A', '#E91E63', '#D81B6 0', '#C2185B', '#AD1457', '#880E4F'], 1014 ['#FCE4EC', '#F8BBD0', '#F48FB1', '#F06292', '#EC407A', '#E91E63', '#D81B6 0', '#C2185B', '#AD1457', '#880E4F'],
1017 '#9C27B0': 1015 '#9C27B0':
1018 ['#F3E5F5', '#E1BEE7', '#CE93D8', '#BA68C8', '#AB47BC', '#9C27B0', '#8E24A A', '#7B1FA2', '#6A1B9A', '#4A148C'], 1016 ['#F3E5F5', '#E1BEE7', '#CE93D8', '#BA68C8', '#AB47BC', '#9C27B0', '#8E24A A', '#7B1FA2', '#6A1B9A', '#4A148C'],
1019 '#673AB7': 1017 '#673AB7':
1020 ['#EDE7F6', '#D1C4E9', '#B39DDB', '#9575CD', '#7E57C2', '#673AB7', '#5E35B 1', '#512DA8', '#4527A0', '#311B92'], 1018 ['#EDE7F6', '#D1C4E9', '#B39DDB', '#9575CD', '#7E57C2', '#673AB7', '#5E35B 1', '#512DA8', '#4527A0', '#311B92'],
1021 '#3F51B5': 1019 '#3F51B5':
1022 ['#E8EAF6', '#C5CAE9', '#9FA8DA', '#7986CB', '#5C6BC0', '#3F51B5', '#3949A B', '#303F9F', '#283593', '#1A237E'], 1020 ['#E8EAF6', '#C5CAE9', '#9FA8DA', '#7986CB', '#5C6BC0', '#3F51B5', '#3949A B', '#303F9F', '#283593', '#1A237E'],
(...skipping 20 matching lines...) Expand all
1043 '#FF5722': 1041 '#FF5722':
1044 ['#FBE9E7', '#FFCCBC', '#FFAB91', '#FF8A65', '#FF7043', '#FF5722', '#F4511 E', '#E64A19', '#D84315', '#BF360C'], 1042 ['#FBE9E7', '#FFCCBC', '#FFAB91', '#FF8A65', '#FF7043', '#FF5722', '#F4511 E', '#E64A19', '#D84315', '#BF360C'],
1045 '#795548': 1043 '#795548':
1046 ['#EFEBE9', '#D7CCC8', '#BCAAA4', '#A1887F', '#8D6E63', '#795548', '#6D4C4 1', '#5D4037', '#4E342E', '#3E2723'], 1044 ['#EFEBE9', '#D7CCC8', '#BCAAA4', '#A1887F', '#8D6E63', '#795548', '#6D4C4 1', '#5D4037', '#4E342E', '#3E2723'],
1047 '#9E9E9E': 1045 '#9E9E9E':
1048 ['#FAFAFA', '#F5F5F5', '#EEEEEE', '#E0E0E0', '#BDBDBD', '#9E9E9E', '#75757 5', '#616161', '#424242', '#212121'], 1046 ['#FAFAFA', '#F5F5F5', '#EEEEEE', '#E0E0E0', '#BDBDBD', '#9E9E9E', '#75757 5', '#616161', '#424242', '#212121'],
1049 '#607D8B': 1047 '#607D8B':
1050 ['#ECEFF1', '#CFD8DC', '#B0BEC5', '#90A4AE', '#78909C', '#607D8B', '#546E7 A', '#455A64', '#37474F', '#263238'] 1048 ['#ECEFF1', '#CFD8DC', '#B0BEC5', '#90A4AE', '#78909C', '#607D8B', '#546E7 A', '#455A64', '#37474F', '#263238']
1051 }; 1049 };
1052 1050
1053 Components.Spectrum.MaterialPalette = { 1051 Spectrum.Spectrum.MaterialPalette = {
1054 title: 'Material', 1052 title: 'Material',
1055 mutable: false, 1053 mutable: false,
1056 matchUserFormat: true, 1054 matchUserFormat: true,
1057 colors: Object.keys(Components.Spectrum.MaterialPaletteShades) 1055 colors: Object.keys(Spectrum.Spectrum.MaterialPaletteShades)
1058 }; 1056 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698