
META-INF.resources.bower_components.globalize.dist.globalize-runtime.js Maven / Gradle / Ivy
/**
* Globalize Runtime v1.2.3
*
* http://github.com/jquery/globalize
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license
* http://jquery.org/license
*
* Date: 2017-03-17T01:41Z
*/
/*!
* Globalize Runtime v1.2.3 2017-03-17T01:41Z Released under the MIT license
* http://git.io/TrdQbw
*/
(function (root, factory) {
// UMD returnExports
if (typeof define === "function" && define.amd) {
// AMD
define(factory);
} else if (typeof exports === "object") {
// Node, CommonJS
module.exports = factory();
} else {
// Globalize
root.Globalize = factory();
}
}(this, function () {
/**
* A toString method that outputs meaningful values for objects or arrays and
* still performs as fast as a plain string in case variable is string, or as
* fast as `"" + number` in case variable is a number.
* Ref: http://jsperf.com/my-stringify
*/
var toString = function (variable) {
return typeof variable === "string" ? variable : (typeof variable === "number" ? "" +
variable : JSON.stringify(variable));
};
/**
* formatMessage( message, data )
*
* @message [String] A message with optional {vars} to be replaced.
*
* @data [Array or JSON] Object with replacing-variables content.
*
* Return the formatted message. For example:
*
* - formatMessage( "{0} second", [ 1 ] ); // 1 second
*
* - formatMessage( "{0}/{1}", ["m", "s"] ); // m/s
*
* - formatMessage( "{name} <{email}>", {
* name: "Foo",
* email: "[email protected]"
* }); // Foo
*/
var formatMessage = function (message, data) {
// Replace {attribute}'s
message = message.replace(/{[0-9a-zA-Z-_. ]+}/g, function (name) {
name = name.replace(/^{([^}]*)}$/, "$1");
return toString(data[name]);
});
return message;
};
var objectExtend = function () {
var destination = arguments[0],
sources = [].slice.call(arguments, 1);
sources.forEach(function (source) {
var prop;
for (prop in source) {
destination[prop] = source[prop];
}
});
return destination;
};
var createError = function (code, message, attributes) {
var error;
message = code + (message ? ": " + formatMessage(message, attributes) : "");
error = new Error(message);
error.code = code;
objectExtend(error, attributes);
return error;
};
// Based on http://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript-jquery
var stringHash = function (str) {
return [].reduce.call(str, function (hash, i) {
var chr = i.charCodeAt(0);
hash = ((hash << 5) - hash) + chr;
return hash | 0;
}, 0);
};
var runtimeKey = function (fnName, locale, args, argsStr) {
var hash;
argsStr = argsStr || JSON.stringify(args);
hash = stringHash(fnName + locale + argsStr);
return hash > 0 ? "a" + hash : "b" + Math.abs(hash);
};
var validate = function (code, message, check, attributes) {
if (!check) {
throw createError(code, message, attributes);
}
};
var validateParameterPresence = function (value, name) {
validate("E_MISSING_PARAMETER", "Missing required parameter `{name}`.",
value !== undefined, {name: name});
};
var validateParameterType = function (value, name, check, expected) {
validate(
"E_INVALID_PAR_TYPE",
"Invalid `{name}` parameter ({value}). {expected} expected.",
check,
{
expected: expected,
name: name,
value: value
}
);
};
var validateParameterTypeString = function (value, name) {
validateParameterType(
value,
name,
value === undefined || typeof value === "string",
"a string"
);
};
// ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions?redirectlocale=en-US&redirectslug=JavaScript%2FGuide%2FRegular_Expressions
var regexpEscape = function (string) {
return string.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
};
var stringPad = function (str, count, right) {
var length;
if (typeof str !== "string") {
str = String(str);
}
for (length = str.length; length < count; length += 1) {
str = (right ? (str + "0") : ("0" + str));
}
return str;
};
function Globalize(locale) {
if (!(this instanceof Globalize)) {
return new Globalize(locale);
}
validateParameterPresence(locale, "locale");
validateParameterTypeString(locale, "locale");
this._locale = locale;
}
Globalize.locale = function (locale) {
validateParameterTypeString(locale, "locale");
if (arguments.length) {
this._locale = locale;
}
return this._locale;
};
Globalize._createError = createError;
Globalize._formatMessage = formatMessage;
Globalize._regexpEscape = regexpEscape;
Globalize._runtimeKey = runtimeKey;
Globalize._stringPad = stringPad;
Globalize._validateParameterPresence = validateParameterPresence;
Globalize._validateParameterTypeString = validateParameterTypeString;
Globalize._validateParameterType = validateParameterType;
return Globalize;
}));
© 2015 - 2025 Weber Informatics LLC | Privacy Policy