Merge afb-client
[src/app-framework-demo.git] / afb-client / bower_components / tether / docs / welcome / js / log.js
diff --git a/afb-client/bower_components/tether/docs/welcome/js/log.js b/afb-client/bower_components/tether/docs/welcome/js/log.js
new file mode 100644 (file)
index 0000000..6acd4fd
--- /dev/null
@@ -0,0 +1,134 @@
+(function() {
+  var ffSupport, formats, getOrderedMatches, hasMatches, isFF, isIE, isOpera, isSafari, log, makeArray, operaSupport, safariSupport, stringToArgs, _log;
+  if (!(window.console && window.console.log)) {
+    return;
+  }
+  log = function() {
+    var args;
+    args = [];
+    makeArray(arguments).forEach(function(arg) {
+      if (typeof arg === 'string') {
+        return args = args.concat(stringToArgs(arg));
+      } else {
+        return args.push(arg);
+      }
+    });
+    return _log.apply(window, args);
+  };
+  _log = function() {
+    return console.log.apply(console, makeArray(arguments));
+  };
+  makeArray = function(arrayLikeThing) {
+    return Array.prototype.slice.call(arrayLikeThing);
+  };
+  formats = [
+    {
+      regex: /\*([^\*]+)\*/,
+      replacer: function(m, p1) {
+        return "%c" + p1 + "%c";
+      },
+      styles: function() {
+        return ['font-style: italic', ''];
+      }
+    }, {
+      regex: /\_([^\_]+)\_/,
+      replacer: function(m, p1) {
+        return "%c" + p1 + "%c";
+      },
+      styles: function() {
+        return ['font-weight: bold', ''];
+      }
+    }, {
+      regex: /\`([^\`]+)\`/,
+      replacer: function(m, p1) {
+        return "%c" + p1 + "%c";
+      },
+      styles: function() {
+        return ['background: rgb(255, 255, 219); padding: 1px 5px; border: 1px solid rgba(0, 0, 0, 0.1)', ''];
+      }
+    }, {
+      regex: /\[c\=(?:\"|\')?((?:(?!(?:\"|\')\]).)*)(?:\"|\')?\]((?:(?!\[c\]).)*)\[c\]/,
+      replacer: function(m, p1, p2) {
+        return "%c" + p2 + "%c";
+      },
+      styles: function(match) {
+        return [match[1], ''];
+      }
+    }
+  ];
+  hasMatches = function(str) {
+    var _hasMatches;
+    _hasMatches = false;
+    formats.forEach(function(format) {
+      if (format.regex.test(str)) {
+        return _hasMatches = true;
+      }
+    });
+    return _hasMatches;
+  };
+  getOrderedMatches = function(str) {
+    var matches;
+    matches = [];
+    formats.forEach(function(format) {
+      var match;
+      match = str.match(format.regex);
+      if (match) {
+        return matches.push({
+          format: format,
+          match: match
+        });
+      }
+    });
+    return matches.sort(function(a, b) {
+      return a.match.index - b.match.index;
+    });
+  };
+  stringToArgs = function(str) {
+    var firstMatch, matches, styles;
+    styles = [];
+    while (hasMatches(str)) {
+      matches = getOrderedMatches(str);
+      firstMatch = matches[0];
+      str = str.replace(firstMatch.format.regex, firstMatch.format.replacer);
+      styles = styles.concat(firstMatch.format.styles(firstMatch.match));
+    }
+    return [str].concat(styles);
+  };
+  isSafari = function() {
+    return /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor);
+  };
+  isOpera = function() {
+    return /OPR/.test(navigator.userAgent) && /Opera/.test(navigator.vendor);
+  };
+  isFF = function() {
+    return /Firefox/.test(navigator.userAgent);
+  };
+  isIE = function() {
+    return /MSIE/.test(navigator.userAgent);
+  };
+  safariSupport = function() {
+    var m;
+    m = navigator.userAgent.match(/AppleWebKit\/(\d+)\.(\d+)(\.|\+|\s)/);
+    if (!m) {
+      return false;
+    }
+    return 537.38 <= parseInt(m[1], 10) + (parseInt(m[2], 10) / 100);
+  };
+  operaSupport = function() {
+    var m;
+    m = navigator.userAgent.match(/OPR\/(\d+)\./);
+    if (!m) {
+      return false;
+    }
+    return 15 <= parseInt(m[1], 10);
+  };
+  ffSupport = function() {
+    return window.console.firebug || window.console.exception;
+  };
+  if (isIE() || (isFF() && !ffSupport()) || (isOpera() && !operaSupport()) || (isSafari() && !safariSupport())) {
+    window.log = _log;
+  } else {
+    window.log = log;
+  }
+  window.log.l = _log;
+}).call(this);
\ No newline at end of file