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

Unified Diff: static/js/plotkit/Base.js

Issue 22969002: Add stats js files to static dir (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/chromium-build
Patch Set: Created 7 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « static/js/mochikit/README.chromium ('k') | static/js/plotkit/Canvas.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: static/js/plotkit/Base.js
diff --git a/static/js/plotkit/Base.js b/static/js/plotkit/Base.js
new file mode 100644
index 0000000000000000000000000000000000000000..ebe547ac2cf8bd5998acce6852b0ae0c74c7919d
--- /dev/null
+++ b/static/js/plotkit/Base.js
@@ -0,0 +1,401 @@
+/*
+ =======
+ PlotKit is a collection of Javascript classes that allows
+ you to quickly visualise data using different types of charts.
+
+ http://www.liquidx.net/plotkit/
+
+ See LICENSE file for copyright information.
+*/
+
+// --------------------------------------------------------------------
+// Check required components
+// --------------------------------------------------------------------
+
+try {
+ if (typeof(MochiKit.Base) == 'undefined' ||
+ typeof(MochiKit.DOM) == 'undefined' ||
+ typeof(MochiKit.Color) == 'undefined' ||
+ typeof(MochiKit.Format) == 'undefined')
+ {
+ throw "";
+ }
+}
+catch (e) {
+ throw "PlotKit depends on MochiKit.{Base,Color,DOM,Format}"
+}
+
+// -------------------------------------------------------------------
+// Inject Common Shortcuts we use into MochiKit.Color.Color
+// -------------------------------------------------------------------
+
+MochiKit.Base.update(MochiKit.Color.Color.prototype, {
+ asFillColor: function() {
+ return this.lighterColorWithLevel(0.3);
+ },
+
+ asStrokeColor: function() {
+ return this.darkerColorWithLevel(0.1);
+ },
+
+ asPointColor: function() {
+ return this.lighterColorWithLevel(0.1);
+ }
+});
+
+
+// -------------------------------------------------------------------
+// Define our own PlotKit namespace
+// -------------------------------------------------------------------
+
+if (typeof(PlotKit) == 'undefined') {
+ PlotKit = {};
+}
+
+PlotKit.NAME = "PlotKit";
+PlotKit.VERSION = "0.8";
+PlotKit.__repr__ = function() {
+ return "[" + this.NAME + " " + this.VERSION + "]";
+};
+
+PlotKit.toString = function() {
+ return this.__repr__();
+}
+
+// -------------------------------------------------------------------
+// Encapsulate all our utility function into it's own namespace.
+// -------------------------------------------------------------------
+
+if (typeof(PlotKit.Base) == 'undefined') {
+ PlotKit.Base = {};
+}
+
+PlotKit.Base.NAME = 'PlotKit.Base';
+PlotKit.Base.VERSION = PlotKit.VERSION;
+
+PlotKit.Base.__repr__ = function() {
+ return "[" + this.NAME + " " + this.VERSION + "]";
+};
+
+PlotKit.Base.toString = function() {
+ return this.__repr__();
+}
+
+
+// Detect whether we are using prototype.js
+PlotKit.Base.usingPrototype = function() {
+ try {
+ return (typeof(Object.extend) == 'function');
+ }
+ catch (e) {
+ return false;
+ }
+}
+
+
+MochiKit.Base.update(PlotKit.Base, {
+ roundInterval: function(range, intervals, precision) {
+ // We want to make the interval look regular,
+ var trunc = MochiKit.Format.roundToFixed;
+ var sep = range/intervals;
+ return parseFloat(trunc(sep, precision));
+ },
+
+ collapse: function(lst) {
+ var m = MochiKit.Base;
+ var biggerList = new Array();
+ for (var i = 0; i < lst.length; i++) {
+ biggerList = m.concat(biggerList, lst[i]);
+ }
+ if (PlotKit.Base.usingPrototype()) {
+ delete biggerList.extend;
+ delete biggerList.from;
+ delete biggerList.inspect;
+ }
+
+ return biggerList;
+ },
+
+ uniq: function(sortedList) {
+ // get unique elements in list, exactly the same as unix shell's uniq.
+ var m = MochiKit.Base;
+
+ if (!m.isArrayLike(sortedList) || (sortedList.length < 1))
+ return new Array();
+
+ var uniq = new Array();
+ var lastElem = sortedList[0];
+ uniq.push(sortedList[0]);
+ for (var i = 1; i < sortedList.length; i++) {
+ if (m.compare(sortedList[i], lastElem) != 0) {
+ lastElem = sortedList[i];
+ uniq.push(sortedList[i]);
+ }
+ }
+ return uniq;
+ },
+
+ colorScheme: function() {
+ var mb = MochiKit.Base;
+ var mc = MochiKit.Color
+ var scheme = ["red", "orange", "yellow", "green", "cyan", "blue", "purple", "magenta"];
+
+ var makeColor = function(name) {
+ return mc.Color[name + "Color"]()
+ };
+
+ return mb.map(makeColor, scheme);
+ },
+
+ baseDarkPrimaryColors: function () {
+ var hexColor = MochiKit.Color.Color.fromHexString;
+ return [hexColor("#ad3f40"),
+ hexColor("#ddac2c"),
+ hexColor("#dfdd0c"),
+ hexColor("#5276c4"),
+ hexColor("#739c5a")];
+ },
+
+ basePrimaryColors: function () {
+ var hexColor = MochiKit.Color.Color.fromHexString;
+ return [hexColor("#d24c4d"),
+ hexColor("#f2b32f"),
+ hexColor("#ece90e"),
+ hexColor("#5d83da"),
+ hexColor("#78a15d")];
+ },
+
+ baseBlueColors: function () {
+ var hexColor = MochiKit.Color.Color.fromHexString;
+ return [hexColor("#4b6b94"), hexColor("#5d81b4"), hexColor("#acbad2")];
+ },
+
+ palette: function(baseColor, fromLevel, toLevel, increment) {
+ var isNil = MochiKit.Base.isUndefinedOrNull;
+ var fractions = new Array();
+ if (isNil(increment))
+ increment = 0.1;
+ if (isNil(toLevel))
+ toLevel = 0.4;
+ if (isNil(fromLevel))
+ fromLevel = -0.2;
+
+ var level = fromLevel;
+ while (level <= toLevel) {
+ fractions.push(level);
+ level += increment;
+ }
+
+ var makeColor = function(color, fraction) {
+ return color.lighterColorWithLevel(fraction);
+ };
+ return MochiKit.Base.map(partial(makeColor, baseColor), fractions);
+ },
+
+ excanvasSupported: function() {
+ if (/MSIE/.test(navigator.userAgent) && !window.opera) {
+ return true;
+ }
+ return false;
+ },
+
+ // The following functions are from quirksmode.org
+ // http://www.quirksmode.org/js/findpos.html
+
+ findPosX: function(obj) {
+ var curleft = 0;
+ if (obj.offsetParent) {
+ while (obj.offsetParent) {
+ curleft += obj.offsetLeft
+ obj = obj.offsetParent;
+ }
+ }
+ else if (obj.x)
+ curleft += obj.x;
+ return curleft;
+ },
+
+ findPosY: function(obj) {
+ var curtop = 0;
+ if (obj.offsetParent) {
+ while (obj.offsetParent) {
+ curtop += obj.offsetTop
+ obj = obj.offsetParent;
+ }
+ }
+ else if (obj.y)
+ curtop += obj.y;
+ return curtop;
+ },
+
+ isFuncLike: function(obj) {
+ return (typeof(obj) == 'function');
+ }
+});
+
+//
+// Prototype.js aware (crippled) versions of map and items.
+//
+
+PlotKit.Base.map = function(fn, lst) {
+ if (PlotKit.Base.usingPrototype()) {
+ var rval = [];
+ for (var x in lst) {
+ if (typeof(lst[x]) == 'function') continue;
+ rval.push(fn(lst[x]));
+ }
+ return rval;
+ }
+ else {
+ return MochiKit.Base.map(fn, lst);
+ }
+};
+
+PlotKit.Base.items = function(lst) {
+ if (PlotKit.Base.usingPrototype()) {
+ var rval = [];
+ for (var x in lst) {
+ if (typeof(lst[x]) == 'function') continue;
+ rval.push([x, lst[x]]);
+ }
+ return rval;
+ }
+ else {
+ return MochiKit.Base.items(lst);
+ }
+};
+
+PlotKit.Base.keys = function(lst) {
+ if (PlotKit.Base.usingPrototype()) {
+ var rval = [];
+ for (var x in lst) {
+ if (typeof(lst[x]) == 'function') continue;
+ rval.push(x);
+ }
+ return rval;
+ }
+ else {
+ return MochiKit.Base.keys(lst);
+ }
+};
+
+//
+// colour schemes
+//
+
+PlotKit.Base.baseColors = function () {
+ var hexColor = MochiKit.Color.Color.fromHexString;
+ return [hexColor("#476fb2"),
+ hexColor("#be2c2b"),
+ hexColor("#85b730"),
+ hexColor("#734a99"),
+ hexColor("#26a1c5"),
+ hexColor("#fb8707"),
+ hexColor("#000000")];
+};
+
+PlotKit.Base.officeBaseStyle = {
+ "axisLineWidth": 2.0,
+ "axisLabelColor": Color.grayColor(),
+ "axisLineColor": Color.whiteColor(),
+ "padding": {top: 5, bottom: 10, left: 30, right: 30}
+};
+
+MochiKit.Base.update(PlotKit.Base,{
+ officeBlue: function() {
+ var r = {
+ "colorScheme": PlotKit.Base.palette(PlotKit.Base.baseColors()[0]),
+ "backgroundColor": PlotKit.Base.baseColors()[0].lighterColorWithLevel(0.45)
+ };
+ MochiKit.Base.update(r, PlotKit.Base.officeBaseStyle);
+ return r;
+ },
+ officeRed: function() {
+ var r = {
+ "colorScheme": PlotKit.Base.palette(PlotKit.Base.baseColors()[1]),
+ "backgroundColor": PlotKit.Base.baseColors()[1].lighterColorWithLevel(0.5)
+ };
+ MochiKit.Base.update(r, PlotKit.Base.officeBaseStyle);
+ return r;
+ },
+ officeGreen: function() {
+ var r = {
+ "colorScheme": PlotKit.Base.palette(PlotKit.Base.baseColors()[2]),
+ "backgroundColor": PlotKit.Base.baseColors()[2].lighterColorWithLevel(0.5)
+ };
+ MochiKit.Base.update(r, PlotKit.Base.officeBaseStyle);
+ return r;
+ },
+ officePurple: function() {
+ var r = {
+ "colorScheme": PlotKit.Base.palette(PlotKit.Base.baseColors()[3]),
+ "backgroundColor": PlotKit.Base.baseColors()[3].lighterColorWithLevel(0.5)
+ };
+ MochiKit.Base.update(r, PlotKit.Base.officeBaseStyle);
+ return r;
+ },
+
+ officeCyan: function() {
+ var r = {
+ "colorScheme": PlotKit.Base.palette(PlotKit.Base.baseColors()[4]),
+ "backgroundColor": PlotKit.Base.baseColors()[4].lighterColorWithLevel(0.5)
+ };
+ MochiKit.Base.update(r, PlotKit.Base.officeBaseStyle);
+ return r;
+ },
+
+ officeOrange: function() {
+ var r = {
+ "colorScheme": PlotKit.Base.palette(PlotKit.Base.baseColors()[5]),
+ "backgroundColor": PlotKit.Base.baseColors()[5].lighterColorWithLevel(0.4)
+ };
+ MochiKit.Base.update(r, PlotKit.Base.officeBaseStyle);
+ return r;
+ },
+
+ officeBlack: function() {
+ var r = {
+ "colorScheme": PlotKit.Base.palette(PlotKit.Base.baseColors()[6], 0.0, 0.6),
+ "backgroundColor": PlotKit.Base.baseColors()[6].lighterColorWithLevel(0.9)
+ };
+ MochiKit.Base.update(r, PlotKit.Base.officeBaseStyle);
+ return r;
+ }
+});
+
+
+PlotKit.Base.EXPORT = [
+ "baseColors",
+ "collapse",
+ "colorScheme",
+ "findPosX",
+ "findPosY",
+ "officeBaseStyle",
+ "officeBlue",
+ "officeRed",
+ "officeGreen",
+ "officePurple",
+ "officeCyan",
+ "officeOrange",
+ "officeBlack",
+ "roundInterval",
+ "uniq",
+ "isFuncLike",
+ "excanvasSupported"
+];
+
+PlotKit.Base.EXPORT_OK = [];
+
+PlotKit.Base.__new__ = function() {
+ var m = MochiKit.Base;
+
+ m.nameFunctions(this);
+
+ this.EXPORT_TAGS = {
+ ":common": this.EXPORT,
+ ":all": m.concat(this.EXPORT, this.EXPORT_OK)
+ };
+};
+
+PlotKit.Base.__new__();
+MochiKit.Base._exportSymbols(this, PlotKit.Base);
« no previous file with comments | « static/js/mochikit/README.chromium ('k') | static/js/plotkit/Canvas.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698