Eif (typeof define !== 'function') {
var define = require('amdefine')(module);
}
define(function (require) {
'use strict';
var canUseDOM = require('./ExecutionEnvironment').canUseDOM;
var util = {};
var now = +new Date();
util.guid = function () {
return 'er' + now++;
};
util.mix = function (source) {
for (var i = 1; i < arguments.length; i++) {
var destination = arguments[i];
if (!destination) {
continue;
}
for (var key in destination) {
Eif (destination.hasOwnProperty(key)) {
source[key] = destination[key];
}
}
}
return source;
};
var nativeBind = Function.prototype.bind;
/**
* 固定函数的`this`变量和若干参数
*
* @param {Function} fn 操作的目标函数
* @param {Mixed} context 函数的`this`变量
* @param {Mixed...} args 固定的参数
* @return {Function} 固定了`this`变量和若干参数后的新函数对象
*/
util.bind = nativeBind ? function (fn) {
return nativeBind.apply(fn, [].slice.call(arguments, 1));
} : function (fn, context) {
var extraArgs = [].slice.call(arguments, 2);
return function () {
var args = extraArgs.concat([].slice.call(arguments));
return fn.apply(context, args);
};
};
util.noop = function () {};
var dontEnumBug = !{ toString: 1 }.propertyIsEnumerable('toString');
util.inherits = function (type, superType) {
var Empty = function Empty() {};
Empty.prototype = superType.prototype;
var proto = new Empty();
var originalPrototype = type.prototype;
type.prototype = proto;
for (var key in originalPrototype) {
proto[key] = originalPrototype[key];
}
Iif (dontEnumBug) {
if (originalPrototype.hasOwnProperty('toString')) {
proto.toString = originalPrototype.toString;
}
if (originalPrototype.hasOwnProperty('valueOf')) {
proto.valueOf = originalPrototype.valueOf;
}
}
type.prototype.constructor = type;
return type;
};
util.parseJSON = JSON.parse;
var whitespace = /(^[\s\t\xa0\u3000]+)|([\u3000\xa0\s\t]+$)/g;
util.trim = function (source) {
return source.replace(whitespace, '');
};
util.encodeHTML = function (source) {
source = source + '';
return source.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''');
};
util.getElement = function (element) {
if (canUseDOM && typeof element === 'string') {
element = document.getElementById(element);
}
return element;
};
return util;
});
//# sourceMappingURL=data:application/json;base64,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LGtCQUFrQixPQUFsQixDQUQ2QjthQUFqRDtTQUpKO0FBUUEsYUFBSyxTQUFMLENBQWUsV0FBZixHQUE2QixJQUE3QixDQW5CaUM7O0FBcUJqQyxlQUFPLElBQVAsQ0FyQmlDO0tBQXJCLENBbkRNOztBQTJFdEIsU0FBSyxTQUFMLEdBQWlCLEtBQUssS0FBTCxDQTNFSzs7QUE2RXRCLFFBQU0sYUFBYSw0Q0FBYixDQTdFZ0I7QUE4RXRCLFNBQUssSUFBTCxHQUFZLFVBQUMsTUFBRDtlQUFZLE9BQU8sT0FBUCxDQUFlLFVBQWYsRUFBMkIsRUFBM0I7S0FBWixDQTlFVTs7QUFnRnRCLFNBQUssVUFBTCxHQUFrQixVQUFDLE1BQUQsRUFBWTtBQUMxQixpQkFBUyxTQUFTLEVBQVQsQ0FEaUI7QUFFMUIsZUFBTyxPQUNGLE9BREUsQ0FDTSxJQUROLEVBQ1ksT0FEWixFQUVGLE9BRkUsQ0FFTSxJQUZOLEVBRVksTUFGWixFQUdGLE9BSEUsQ0FHTSxJQUhOLEVBR1ksTUFIWixFQUlGLE9BSkUsQ0FJTSxJQUpOLEVBSVksUUFKWixFQUtGLE9BTEUsQ0FLTSxJQUxOLEVBS1ksT0FMWixDQUFQLENBRjBCO0tBQVosQ0FoRkk7O0FBMEZ0QixTQUFLLFVBQUwsR0FBa0IsVUFBQyxPQUFELEVBQWE7QUFDM0IsWUFBSSxhQUFhLE9BQU8sT0FBUCxLQUFtQixRQUFuQixFQUE2QjtBQUMxQyxzQkFBVSxTQUFTLGNBQVQsQ0FBd0IsT0FBeEIsQ0FBVixDQUQwQztTQUE5QztBQUdBLGVBQU8sT0FBUCxDQUoyQjtLQUFiLENBMUZJOztBQWlHdEIsV0FBTyxJQUFQLENBakdzQjtDQUFuQixDQUFQIiwiZmlsZSI6InV0aWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpZiAodHlwZW9mIGRlZmluZSAhPT0gJ2Z1bmN0aW9uJykge3ZhciBkZWZpbmUgPSByZXF1aXJlKCdhbWRlZmluZScpKG1vZHVsZSl9XG5cbmRlZmluZShmdW5jdGlvbiAocmVxdWlyZSkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIGNvbnN0IGNhblVzZURPTSA9IHJlcXVpcmUoJy4vRXhlY3V0aW9uRW52aXJvbm1lbnQnKS5jYW5Vc2VET007XG4gICAgY29uc3QgdXRpbCA9IHt9O1xuXG4gICAgbGV0IG5vdyA9ICtuZXcgRGF0ZSgpO1xuICAgIHV0aWwuZ3VpZCA9ICgpID0+IGBlciR7bm93Kyt9YDtcblxuICAgIHV0aWwubWl4ID0gZnVuY3Rpb24gKHNvdXJjZSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgZGVzdGluYXRpb24gPSBhcmd1bWVudHNbaV07XG5cbiAgICAgICAgICAgIGlmICghZGVzdGluYXRpb24pIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZGVzdGluYXRpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAoZGVzdGluYXRpb24uaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICBzb3VyY2Vba2V5XSA9IGRlc3RpbmF0aW9uW2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgfTtcblxuICAgIGNvbnN0IG5hdGl2ZUJpbmQgPSBGdW5jdGlvbi5wcm90b3R5cGUuYmluZDtcbiAgICAvKipcbiAgICAgKiDlm7rlrprlh73mlbDnmoRgdGhpc2Dlj5jph4/lkozoi6XlubLlj4LmlbBcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIOaTjeS9nOeahOebruagh+WHveaVsFxuICAgICAqIEBwYXJhbSB7TWl4ZWR9IGNvbnRleHQg5Ye95pWw55qEYHRoaXNg5Y+Y6YePXG4gICAgICogQHBhcmFtIHtNaXhlZC4uLn0gYXJncyDlm7rlrprnmoTlj4LmlbBcbiAgICAgKiBAcmV0dXJuIHtGdW5jdGlvbn0g5Zu65a6a5LqGYHRoaXNg5Y+Y6YeP5ZKM6Iul5bmy5Y+C5pWw5ZCO55qE5paw5Ye95pWw5a+56LGhXG4gICAgICovXG4gICAgdXRpbC5iaW5kID0gbmF0aXZlQmluZCA/XG4gICAgICAgIGZ1bmN0aW9uIChmbikge1xuICAgICAgICAgICAgcmV0dXJuIG5hdGl2ZUJpbmQuYXBwbHkoZm4sIFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKSk7XG4gICAgICAgIH0gOlxuICAgICAgICBmdW5jdGlvbiAoZm4sIGNvbnRleHQpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4dHJhQXJncyA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAyKTtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXJncyA9IGV4dHJhQXJncy5jb25jYXQoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkoY29udGV4dCwgYXJncyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9O1xuXG4gICAgdXRpbC5ub29wID0gZnVuY3Rpb24gKCkge307XG5cbiAgICBjb25zdCBkb250RW51bUJ1ZyA9ICEoKHt0b1N0cmluZzogMX0pLnByb3BlcnR5SXNFbnVtZXJhYmxlKCd0b1N0cmluZycpKTtcblxuICAgIHV0aWwuaW5oZXJpdHMgPSAodHlwZSwgc3VwZXJUeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IEVtcHR5ID0gZnVuY3Rpb24gKCkge307XG4gICAgICAgIEVtcHR5LnByb3RvdHlwZSA9IHN1cGVyVHlwZS5wcm90b3R5cGU7XG4gICAgICAgIGNvbnN0IHByb3RvID0gbmV3IEVtcHR5KCk7XG5cbiAgICAgICAgY29uc3Qgb3JpZ2luYWxQcm90b3R5cGUgPSB0eXBlLnByb3RvdHlwZTtcbiAgICAgICAgdHlwZS5wcm90b3R5cGUgPSBwcm90bztcblxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvcmlnaW5hbFByb3RvdHlwZSkge1xuICAgICAgICAgICAgcHJvdG9ba2V5XSA9IG9yaWdpbmFsUHJvdG90eXBlW2tleV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRvbnRFbnVtQnVnKSB7XG4gICAgICAgICAgICBpZiAob3JpZ2luYWxQcm90b3R5cGUuaGFzT3duUHJvcGVydHkoJ3RvU3RyaW5nJykpIHtcbiAgICAgICAgICAgICAgICBwcm90by50b1N0cmluZyA9IG9yaWdpbmFsUHJvdG90eXBlLnRvU3RyaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9yaWdpbmFsUHJvdG90eXBlLmhhc093blByb3BlcnR5KCd2YWx1ZU9mJykpIHtcbiAgICAgICAgICAgICAgICBwcm90by52YWx1ZU9mID0gb3JpZ2luYWxQcm90b3R5cGUudmFsdWVPZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0eXBlLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IHR5cGU7XG5cbiAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgfTtcblxuICAgIHV0aWwucGFyc2VKU09OID0gSlNPTi5wYXJzZTtcblxuICAgIGNvbnN0IHdoaXRlc3BhY2UgPSAvKF5bXFxzXFx0XFx4YTBcXHUzMDAwXSspfChbXFx1MzAwMFxceGEwXFxzXFx0XSskKS9nO1xuICAgIHV0aWwudHJpbSA9IChzb3VyY2UpID0+IHNvdXJjZS5yZXBsYWNlKHdoaXRlc3BhY2UsICcnKTtcblxuICAgIHV0aWwuZW5jb2RlSFRNTCA9IChzb3VyY2UpID0+IHtcbiAgICAgICAgc291cmNlID0gc291cmNlICsgJyc7XG4gICAgICAgIHJldHVybiBzb3VyY2VcbiAgICAgICAgICAgIC5yZXBsYWNlKC8mL2csICcmYW1wOycpXG4gICAgICAgICAgICAucmVwbGFjZSgvPC9nLCAnJmx0OycpXG4gICAgICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpXG4gICAgICAgICAgICAucmVwbGFjZSgvXCIvZywgJyZxdW90OycpXG4gICAgICAgICAgICAucmVwbGFjZSgvJy9nLCAnJiMzOTsnKTtcbiAgICB9O1xuXG4gICAgdXRpbC5nZXRFbGVtZW50ID0gKGVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGNhblVzZURPTSAmJiB0eXBlb2YgZWxlbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHV0aWw7XG59KTtcbiJdfQ== |