-<!DOCTYPE html><html><head><title>Sencha Documentation Project</title><link rel="stylesheet" href="../reset.css" type="text/css"><link rel="stylesheet" href="../prettify.css" type="text/css"><link rel="stylesheet" href="../prettify_sa.css" type="text/css"><script type="text/javascript" src="../prettify.js"></script></head><body onload="prettyPrint()"><pre class="prettyprint"><pre><span id='Ext-util.Format'>/**
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>The source code</title>
+ <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
+ <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
+ <style type="text/css">
+ .highlight { display: block; background-color: #ddd; }
+ </style>
+ <script type="text/javascript">
+ function highlight() {
+ document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
+ }
+ </script>
+</head>
+<body onload="prettyPrint(); highlight();">
+ <pre class="prettyprint lang-js"><span id='Ext-util-Format'>/**
</span> * @class Ext.util.Format
-This class is a centralized place for formatting functions inside the library. It includes
+This class is a centralized place for formatting functions. It includes
functions to format various different types of data, such as text, dates and numeric values.
__Localization__
- currenyPrecision
- currencySign
- currencyAtEnd
-This class also uses the default date format defined here: {@link Ext.date#defaultFormat}.
+This class also uses the default date format defined here: {@link Ext.Date#defaultFormat}.
__Using with renderers__
-There are two helper functions that return a new function that can be used in conjunction with
+There are two helper functions that return a new function that can be used in conjunction with
grid renderers:
columns: [{
dataIndex: 'time',
renderer: Ext.util.Format.numberRenderer('0.000')
}]
-
+
Functions that only take a single argument can also be passed directly:
columns: [{
dataIndex: 'cost',
dataIndex: 'productCode',
renderer: Ext.util.Format.uppercase
}]
-
+
__Using with XTemplates__
XTemplates can also directly use Ext.util.Format functions:
I18NFormatCleanRe;
Ext.apply(UtilFormat, {
-<span id='Ext-util.Format-property-thousandSeparator'> /**
-</span> * @type String
- * @property thousandSeparator
+<span id='Ext-util-Format-property-thousandSeparator'> /**
+</span> * @property {String} thousandSeparator
* <p>The character that the {@link #number} function uses as a thousand separator.</p>
- * <p>This defaults to <code>,</code>, but may be overridden in a locale file.</p>
+ * <p>This may be overridden in a locale file.</p>
*/
thousandSeparator: ',',
-<span id='Ext-util.Format-property-decimalSeparator'> /**
-</span> * @type String
- * @property decimalSeparator
+<span id='Ext-util-Format-property-decimalSeparator'> /**
+</span> * @property {String} decimalSeparator
* <p>The character that the {@link #number} function uses as a decimal point.</p>
- * <p>This defaults to <code>.</code>, but may be overridden in a locale file.</p>
+ * <p>This may be overridden in a locale file.</p>
*/
decimalSeparator: '.',
-<span id='Ext-util.Format-property-currencyPrecision'> /**
-</span> * @type Number
- * @property currencyPrecision
+<span id='Ext-util-Format-property-currencyPrecision'> /**
+</span> * @property {Number} currencyPrecision
* <p>The number of decimal places that the {@link #currency} function displays.</p>
- * <p>This defaults to <code>2</code>, but may be overridden in a locale file.</p>
+ * <p>This may be overridden in a locale file.</p>
*/
currencyPrecision: 2,
-<span id='Ext-util.Format-property-currencySign'> /**
-</span> * @type String
- * @property currencySign
+<span id='Ext-util-Format-property-currencySign'> /**
+</span> * @property {String} currencySign
* <p>The currency sign that the {@link #currency} function displays.</p>
- * <p>This defaults to <code>$</code>, but may be overridden in a locale file.</p>
+ * <p>This may be overridden in a locale file.</p>
*/
currencySign: '$',
-<span id='Ext-util.Format-property-currencyAtEnd'> /**
-</span> * @type Boolean
- * @property currencyAtEnd
+<span id='Ext-util-Format-property-currencyAtEnd'> /**
+</span> * @property {Boolean} currencyAtEnd
* <p>This may be set to <code>true</code> to make the {@link #currency} function
* append the currency sign to the formatted value.</p>
- * <p>This defaults to <code>false</code>, but may be overridden in a locale file.</p>
+ * <p>This may be overridden in a locale file.</p>
*/
currencyAtEnd: false,
-<span id='Ext-util.Format-method-undef'> /**
+<span id='Ext-util-Format-method-undef'> /**
</span> * Checks a reference and converts it to empty string if it is undefined
- * @param {Mixed} value Reference to check
- * @return {Mixed} Empty string if converted, otherwise the original value
+ * @param {Object} value Reference to check
+ * @return {Object} Empty string if converted, otherwise the original value
*/
undef : function(value) {
return value !== undefined ? value : "";
},
-<span id='Ext-util.Format-method-defaultValue'> /**
+<span id='Ext-util-Format-method-defaultValue'> /**
</span> * Checks a reference and converts it to the default value if it's empty
- * @param {Mixed} value Reference to check
+ * @param {Object} value Reference to check
* @param {String} defaultValue The value to insert of it's undefined (defaults to "")
* @return {String}
*/
return value !== undefined && value !== '' ? value : defaultValue;
},
-<span id='Ext-util.Format-method-substr'> /**
+<span id='Ext-util-Format-method-substr'> /**
</span> * Returns a substring from within an original string
* @param {String} value The original text
* @param {Number} start The start index of the substring
return String(value).substr(start, length);
},
-<span id='Ext-util.Format-method-lowercase'> /**
+<span id='Ext-util-Format-method-lowercase'> /**
</span> * Converts a string to all lower case letters
* @param {String} value The text to convert
* @return {String} The converted text
return String(value).toLowerCase();
},
-<span id='Ext-util.Format-method-uppercase'> /**
+<span id='Ext-util-Format-method-uppercase'> /**
</span> * Converts a string to all upper case letters
* @param {String} value The text to convert
* @return {String} The converted text
return String(value).toUpperCase();
},
-<span id='Ext-util.Format-method-usMoney'> /**
+<span id='Ext-util-Format-method-usMoney'> /**
</span> * Format a number as US currency
* @param {Number/String} value The numeric value to format
* @return {String} The formatted currency string
return UtilFormat.currency(v, '$', 2);
},
-<span id='Ext-util.Format-method-currency'> /**
+<span id='Ext-util-Format-method-currency'> /**
</span> * Format a number as a currency
* @param {Number/String} value The numeric value to format
* @param {String} sign The currency sign to use (defaults to {@link #currencySign})
for (; i < decimals; i++) {
format += '0';
}
- v = UtilFormat.number(v, format);
+ v = UtilFormat.number(v, format);
if ((end || UtilFormat.currencyAtEnd) === true) {
return Ext.String.format("{0}{1}{2}", negativeSign, v, currencySign || UtilFormat.currencySign);
} else {
}
},
-<span id='Ext-util.Format-method-date'> /**
+<span id='Ext-util-Format-method-date'> /**
</span> * Formats the passed date using the specified format pattern.
* @param {String/Date} value The value to format. If a string is passed, it is converted to a Date by the Javascript
* Date object's <a href="http://www.w3schools.com/jsref/jsref_parse.asp">parse()</a> method.
return Ext.Date.dateFormat(v, format || Ext.Date.defaultFormat);
},
-<span id='Ext-util.Format-method-dateRenderer'> /**
+<span id='Ext-util-Format-method-dateRenderer'> /**
</span> * Returns a date rendering function that can be reused to apply a date format multiple times efficiently
* @param {String} format Any valid date format string. Defaults to {@link Ext.Date#defaultFormat}.
* @return {Function} The date formatting function
};
},
-<span id='Ext-util.Format-method-stripTags'> /**
+<span id='Ext-util-Format-method-stripTags'> /**
</span> * Strips all HTML tags
- * @param {Mixed} value The text from which to strip tags
+ * @param {Object} value The text from which to strip tags
* @return {String} The stripped text
*/
stripTags : function(v) {
return !v ? v : String(v).replace(stripTagsRE, "");
},
-<span id='Ext-util.Format-method-stripScripts'> /**
+<span id='Ext-util-Format-method-stripScripts'> /**
</span> * Strips all script tags
- * @param {Mixed} value The text from which to strip script tags
+ * @param {Object} value The text from which to strip script tags
* @return {String} The stripped text
*/
stripScripts : function(v) {
return !v ? v : String(v).replace(stripScriptsRe, "");
},
-<span id='Ext-util.Format-method-fileSize'> /**
+<span id='Ext-util-Format-method-fileSize'> /**
</span> * Simple format for a file size (xxx bytes, xxx KB, xxx MB)
* @param {Number/String} size The numeric value to format
* @return {String} The formatted file size
}
},
-<span id='Ext-util.Format-method-math'> /**
+<span id='Ext-util-Format-method-math'> /**
</span> * It does simple math for use in a template, for example:<pre><code>
* var tpl = new Ext.Template('{value} * 10 = {value:math("* 10")}');
* </code></pre>
* @return {Function} A function that operates on the passed value.
+ * @method
*/
math : function(){
var fns = {};
};
}(),
-<span id='Ext-util.Format-method-round'> /**
+<span id='Ext-util-Format-method-round'> /**
</span> * Rounds the passed number to the required decimal precision.
* @param {Number/String} value The numeric value to round.
* @param {Number} precision The number of decimal places to which to round the first parameter's value.
return result;
},
-<span id='Ext-util.Format-method-number'> /**
+<span id='Ext-util-Format-method-number'> /**
</span> * <p>Formats the passed number according to the passed format string.</p>
* <p>The number of digits after the decimal separator character specifies the number of
* decimal places in the resulting string. The <u>local-specific</u> decimal character is used in the result.</p>
* <p>The <i>presence</i> of a thousand separator character in the format string specifies that
* the <u>locale-specific</u> thousand separator (if any) is inserted separating thousand groups.</p>
* <p>By default, "," is expected as the thousand separator, and "." is expected as the decimal separator.</p>
- * <p><b>New to Ext4</b></p>
+ * <p><b>New to Ext JS 4</b></p>
* <p>Locale-specific characters are always used in the formatted output when inserting
* thousand and decimal separators.</p>
* <p>The format string must specify separator characters according to US/UK conventions ("," as the
* @param {String} format The way you would like to format this text.
* @return {String} The formatted number.
*/
- number:
- function(v, formatString) {
+ number: function(v, formatString) {
if (!formatString) {
return v;
}
}
}
+ if (neg) {
+ /*
+ * Edge case. If we have a very small negative number it will get rounded to 0,
+ * however the initial check at the top will still report as negative. Replace
+ * everything but 1-9 and check if the string is empty to determine a 0 value.
+ */
+ neg = fnum.replace(/[^1-9]/g, '') !== '';
+ }
+
return (neg ? '-' : '') + formatString.replace(/[\d,?\.?]+/, fnum);
},
-<span id='Ext-util.Format-method-numberRenderer'> /**
+<span id='Ext-util-Format-method-numberRenderer'> /**
</span> * Returns a number rendering function that can be reused to apply a number format multiple times efficiently
* @param {String} format Any valid number format string for {@link #number}
* @return {Function} The number formatting function
};
},
-<span id='Ext-util.Format-method-plural'> /**
+<span id='Ext-util-Format-method-plural'> /**
</span> * Selectively do a plural form of a word based on a numeric value. For example, in a template,
* {commentCount:plural("Comment")} would result in "1 Comment" if commentCount was 1 or would be "x Comments"
* if the value is 0 or greater than 1.
return v +' ' + (v == 1 ? s : (p ? p : s+'s'));
},
-<span id='Ext-util.Format-method-nl2br'> /**
+<span id='Ext-util-Format-method-nl2br'> /**
</span> * Converts newline characters to the HTML tag &lt;br/>
* @param {String} The string value to format.
* @return {String} The string with embedded &lt;br/> tags in place of newlines.
return Ext.isEmpty(v) ? '' : v.replace(nl2brRe, '<br/>');
},
-<span id='Ext-util.Format-property-capitalize'> /**
-</span> * Capitalize the given string. See {@link Ext.String#capitalize}.
+<span id='Ext-util-Format-method-capitalize'> /**
+</span> * Alias for {@link Ext.String#capitalize}.
+ * @method
+ * @alias Ext.String#capitalize
*/
capitalize: Ext.String.capitalize,
-<span id='Ext-util.Format-property-ellipsis'> /**
-</span> * Truncate a string and add an ellipsis ('...') to the end if it exceeds the specified length.
- * See {@link Ext.String#ellipsis}.
+<span id='Ext-util-Format-method-ellipsis'> /**
+</span> * Alias for {@link Ext.String#ellipsis}.
+ * @method
+ * @alias Ext.String#ellipsis
*/
ellipsis: Ext.String.ellipsis,
-<span id='Ext-util.Format-property-format'> /**
-</span> * Formats to a string. See {@link Ext.String#format}
+<span id='Ext-util-Format-method-format'> /**
+</span> * Alias for {@link Ext.String#format}.
+ * @method
+ * @alias Ext.String#format
*/
format: Ext.String.format,
-<span id='Ext-util.Format-property-htmlDecode'> /**
-</span> * Convert certain characters (&, <, >, and ') from their HTML character equivalents.
- * See {@link Ext.string#htmlDecode}.
+<span id='Ext-util-Format-method-htmlDecode'> /**
+</span> * Alias for {@link Ext.String#htmlDecode}.
+ * @method
+ * @alias Ext.String#htmlDecode
*/
htmlDecode: Ext.String.htmlDecode,
-<span id='Ext-util.Format-property-htmlEncode'> /**
-</span> * Convert certain characters (&, <, >, and ') to their HTML character equivalents for literal display in web pages.
- * See {@link Ext.String#htmlEncode}.
+<span id='Ext-util-Format-method-htmlEncode'> /**
+</span> * Alias for {@link Ext.String#htmlEncode}.
+ * @method
+ * @alias Ext.String#htmlEncode
*/
htmlEncode: Ext.String.htmlEncode,
-<span id='Ext-util.Format-property-leftPad'> /**
-</span> * Adds left padding to a string. See {@link Ext.String#leftPad}
+<span id='Ext-util-Format-method-leftPad'> /**
+</span> * Alias for {@link Ext.String#leftPad}.
+ * @method
+ * @alias Ext.String#leftPad
*/
leftPad: Ext.String.leftPad,
-<span id='Ext-util.Format-property-trim'> /**
-</span> * Trims any whitespace from either side of a string. See {@link Ext.String#trim}.
+<span id='Ext-util-Format-method-trim'> /**
+</span> * Alias for {@link Ext.String#trim}.
+ * @method
+ * @alias Ext.String#trim
*/
trim : Ext.String.trim,
-<span id='Ext-util.Format-method-parseBox'> /**
+<span id='Ext-util-Format-method-parseBox'> /**
</span> * Parses a number or string representing margin sizes into an object. Supports CSS-style margin declarations
* (e.g. 10, "10", "10 10", "10 10 10" and "10 10 10 10" are all valid options and would return the same result)
- * @param {Number|String} v The encoded margins
+ * @param {Number/String} v The encoded margins
* @return {Object} An object with margin sizes for top, right, bottom and left
*/
parseBox : function(box) {
};
},
-<span id='Ext-util.Format-method-escapeRegex'> /**
+<span id='Ext-util-Format-method-escapeRegex'> /**
</span> * Escapes the passed string for use in a regular expression
* @param {String} str
* @return {String}
}
});
})();
-</pre></pre></body></html>
\ No newline at end of file
+</pre>
+</body>
+</html>