UNPKG

foam-framework

Version:
220 lines (214 loc) 7.49 kB
/** * @license * Copyright 2015 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 */ CLASS({ package: 'foam.ui', name: 'ColorProperty', extends: 'ColorProperty', requires: [ 'foam.ui.Color' ], constants: { COLORS: { aliceblue: [0xF0, 0xF8, 0xFF], antiquewhite: [0xFA, 0xEB, 0xD7], aqua: [0x00, 0xFF, 0xFF], aquamarine: [0x7F, 0xFF, 0xD4], azure: [0xF0, 0xFF, 0xFF], beige: [0xF5, 0xF5, 0xDC], bisque: [0xFF, 0xE4, 0xC4], black: [0x00, 0x00, 0x00], blanchedalmond: [0xFF, 0xEB, 0xCD], blue: [0x00, 0x00, 0xFF], blueviolet: [0x8A, 0x2B, 0xE2], brown: [0xA5, 0x2A, 0x2A], burlywood: [0xDE, 0xB8, 0x87], cadetblue: [0x5F, 0x9E, 0xA0], chartreuse: [0x7F, 0xFF, 0x00], chocolate: [0xD2, 0x69, 0x1E], coral: [0xFF, 0x7F, 0x50], cornflowerblue: [0x64, 0x95, 0xED], cornsilk: [0xFF, 0xF8, 0xDC], crimson: [0xDC, 0x14, 0x3C], cyan: [0x00, 0xFF, 0xFF], darkblue: [0x00, 0x00, 0x8B], darkcyan: [0x00, 0x8B, 0x8B], darkgoldenrod: [0xB8, 0x86, 0x0B], darkgray: [0xA9, 0xA9, 0xA9], darkgreen: [0x00, 0x64, 0x00], darkkhaki: [0xBD, 0xB7, 0x6B], darkmagenta: [0x8B, 0x00, 0x8B], darkolivegreen: [0x55, 0x6B, 0x2F], darkorange: [0xFF, 0x8C, 0x00], darkorchid: [0x99, 0x32, 0xCC], darkred: [0x8B, 0x00, 0x00], darksalmon: [0xE9, 0x96, 0x7A], darkseagreen: [0x8F, 0xBC, 0x8F], darkslateblue: [0x48, 0x3D, 0x8B], darkslategray: [0x2F, 0x4F, 0x4F], darkturquoise: [0x00, 0xCE, 0xD1], darkviolet: [0x94, 0x00, 0xD3], deeppink: [0xFF, 0x14, 0x93], deepskyblue: [0x00, 0xBF, 0xFF], dimgray: [0x69, 0x69, 0x69], dodgerblue: [0x1E, 0x90, 0xFF], firebrick: [0xB2, 0x22, 0x22], floralwhite: [0xFF, 0xFA, 0xF0], forestgreen: [0x22, 0x8B, 0x22], fuchsia: [0xFF, 0x00, 0xFF], gainsboro: [0xDC, 0xDC, 0xDC], ghostwhite: [0xF8, 0xF8, 0xFF], gold: [0xFF, 0xD7, 0x00], goldenrod: [0xDA, 0xA5, 0x20], gray: [0x80, 0x80, 0x80], green: [0x00, 0x80, 0x00], greenyellow: [0xAD, 0xFF, 0x2F], honeydew: [0xF0, 0xFF, 0xF0], hotpink: [0xFF, 0x69, 0xB4], indianred: [0xCD, 0x5C, 0x5C], indigo: [0x4B, 0x00, 0x82], ivory: [0xFF, 0xFF, 0xF0], khaki: [0xF0, 0xE6, 0x8C], lavender: [0xE6, 0xE6, 0xFA], lavenderblush: [0xFF, 0xF0, 0xF5], lawngreen: [0x7C, 0xFC, 0x00], lemonchiffon: [0xFF, 0xFA, 0xCD], lightblue: [0xAD, 0xD8, 0xE6], lightcoral: [0xF0, 0x80, 0x80], lightcyan: [0xE0, 0xFF, 0xFF], lightgoldenrodyellow: [0xFA, 0xFA, 0xD2], lightgray: [0xD3, 0xD3, 0xD3], lightgreen: [0x90, 0xEE, 0x90], lightpink: [0xFF, 0xB6, 0xC1], lightsalmon: [0xFF, 0xA0, 0x7A], lightseagreen: [0x20, 0xB2, 0xAA], lightskyblue: [0x87, 0xCE, 0xFA], lightslategray: [0x77, 0x88, 0x99], lightsteelblue: [0xB0, 0xC4, 0xDE], lightyellow: [0xFF, 0xFF, 0xE0], lime: [0x00, 0xFF, 0x00], limegreen: [0x32, 0xCD, 0x32], linen: [0xFA, 0xF0, 0xE6], magenta: [0xFF, 0x00, 0xFF], maroon: [0x80, 0x00, 0x00], mediumaquamarine: [0x66, 0xCD, 0xAA], mediumblue: [0x00, 0x00, 0xCD], mediumorchid: [0xBA, 0x55, 0xD3], mediumpurple: [0x93, 0x70, 0xDB], mediumseagreen: [0x3C, 0xB3, 0x71], mediumslateblue: [0x7B, 0x68, 0xEE], mediumspringgreen: [0x00, 0xFA, 0x9A], mediumturquoise: [0x48, 0xD1, 0xCC], mediumvioletred: [0xC7, 0x15, 0x85], midnightblue: [0x19, 0x19, 0x70], mintcream: [0xF5, 0xFF, 0xFA], mistyrose: [0xFF, 0xE4, 0xE1], moccasin: [0xFF, 0xE4, 0xB5], navajowhite: [0xFF, 0xDE, 0xAD], navy: [0x00, 0x00, 0x80], oldlace: [0xFD, 0xF5, 0xE6], olive: [0x80, 0x80, 0x00], olivedrab: [0x6B, 0x8E, 0x23], orange: [0xFF, 0xA5, 0x00], orangered: [0xFF, 0x45, 0x00], orchid: [0xDA, 0x70, 0xD6], palegoldenrod: [0xEE, 0xE8, 0xAA], palegreen: [0x98, 0xFB, 0x98], paleturquoise: [0xAF, 0xEE, 0xEE], palevioletred: [0xDB, 0x70, 0x93], papayawhip: [0xFF, 0xEF, 0xD5], peachpuff: [0xFF, 0xDA, 0xB9], peru: [0xCD, 0x85, 0x3F], pink: [0xFF, 0xC0, 0xCB], plum: [0xDD, 0xA0, 0xDD], powderblue: [0xB0, 0xE0, 0xE6], purple: [0x80, 0x00, 0x80], rebeccapurple: [0x66, 0x33, 0x99], red: [0xFF, 0x00, 0x00], rosybrown: [0xBC, 0x8F, 0x8F], royalblue: [0x41, 0x69, 0xE1], saddlebrown: [0x8B, 0x45, 0x13], salmon: [0xFA, 0x80, 0x72], sandybrown: [0xF4, 0xA4, 0x60], seagreen: [0x2E, 0x8B, 0x57], seashell: [0xFF, 0xF5, 0xEE], sienna: [0xA0, 0x52, 0x2D], silver: [0xC0, 0xC0, 0xC0], skyblue: [0x87, 0xCE, 0xEB], slateblue: [0x6A, 0x5A, 0xCD], slategray: [0x70, 0x80, 0x90], snow: [0xFF, 0xFA, 0xFA], springgreen: [0x00, 0xFF, 0x7F], steelblue: [0x46, 0x82, 0xB4], tan: [0xD2, 0xB4, 0x8C], teal: [0x00, 0x80, 0x80], thistle: [0xD8, 0xBF, 0xD8], tomato: [0xFF, 0x63, 0x47], turquoise: [0x40, 0xE0, 0xD0], violet: [0xEE, 0x82, 0xEE], wheat: [0xF5, 0xDE, 0xB3], white: [0xFF, 0xFF, 0xFF], whitesmoke: [0xF5, 0xF5, 0xF5], yellow: [0xFF, 0xFF, 0x00], yellowgreen: [0x9A, 0xCD, 0x32], }, }, properties: [ { name: 'adapt', defaultValue: function(old, nu, self) { if ( old === nu || self.Color.isInstance(nu) ) return nu; if ( nu == 'currentColor' ) return nu; // CSS inherit color, allows CSS control of element color var c = self.Color.create(); var rgb = self.COLORS[nu]; if ( rgb ) { c.red = rgb[0]; c.green = rgb[1]; c.blue = rgb[2]; c.alpha = 1.0; return c; } rgb = nu.match(/^\s*#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])\s*$/); if ( rgb ) { c.red = parseInt(rgb[1] + rgb[1], 16); c.green = parseInt(rgb[2] + rgb[2], 16); c.blue = parseInt(rgb[3] + rgb[3], 16); c.alpha = 1.0; return c; } rgb = nu.match(/^\s*#([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])\s*$/); if ( rgb ) { c.red = parseInt(rgb[1], 16); c.green = parseInt(rgb[2], 16); c.blue = parseInt(rgb[3], 16); c.alpha = 1.0; return c; } rgb = nu.match(/^\s*rgb[(]\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*[)]\s*$/); if ( rgb ) { c.red = parseInt(rgb[1]); c.green = parseInt(rgb[2]); c.blue = parseInt(rgb[3]); c.alpha = 1.0; return c; } var rgba = nu.match(/^\s*rgba[(]\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]*[.]?[0-9]*)\s*[)]\s*$/); if ( rgba ) { c.red = parseInt(rgba[1]); c.green = parseInt(rgba[2]); c.blue = parseInt(rgba[3]); c.alpha = parseFloat(rgba[4]); return c; } c.red = c.green = c.blue = 0; c.alpha = 1.0; return c; }, }, ], });