polyfill_Intl_Format.js.html 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>JSDoc: Source: polyfill/Intl/Format.js</title>
  6. <script src="scripts/prettify/prettify.js"> </script>
  7. <script src="scripts/prettify/lang-css.js"> </script>
  8. <!--[if lt IE 9]>
  9. <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  10. <![endif]-->
  11. <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
  12. <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
  13. </head>
  14. <body>
  15. <div id="main">
  16. <h1 class="page-title">Source: polyfill/Intl/Format.js</h1>
  17. <section>
  18. <article>
  19. <pre class="prettyprint source linenums"><code>// Licensed Materials - Property of IBM
  20. //
  21. // IBM Watson Analytics
  22. //
  23. // (C) Copyright IBM Corp. 2018
  24. //
  25. // US Government Users Restricted Rights - Use, duplication or
  26. // disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  27. module.exports = ( function( ObjectPolyfill, bcp47 )
  28. {
  29. "use strict";
  30. /*global navigator*/
  31. /**
  32. * These classes are NOT a polyfill, and are not meant to be!
  33. * They provide a poor man's fallback for the Intl formatters, for non-compliant environments.
  34. */
  35. var LOCALE = ( function( navigator )
  36. {
  37. try
  38. {
  39. return bcp47.getCanonicalLocales( ( navigator &amp;&amp; ( navigator.language || navigator.userLanguage ) ) || "en-US" )[ 0 ];
  40. }
  41. catch ( ex )
  42. {
  43. return "en-US";
  44. }
  45. }( typeof navigator !== "undefined" ? navigator : null ) );
  46. /**
  47. * Base class for objects that perform formatting based on locale and options
  48. * @class module:barejs/polyfill/Intl~Format
  49. * @param _locales
  50. * @param _options
  51. */
  52. function Format( _locales, _options )
  53. {
  54. // We can't accept custom locales since we don't polyfill any culture data.
  55. // Always format using the environment locale(!)
  56. ObjectPolyfill.defineProperties( this,
  57. {
  58. _locale: { value: LOCALE },
  59. _options: { value: _options }
  60. } );
  61. }
  62. ObjectPolyfill.defineProperties( Format.prototype,
  63. /** @lends module:barejs/polyfill/Intl~Format# */
  64. {
  65. _locale: { value: null },
  66. _options: { value: null },
  67. /**
  68. * Get the resolvedOptions
  69. * @function
  70. * @return {Object} The options
  71. */
  72. resolvedOptions:
  73. {
  74. value: function resolvedOptions()
  75. {
  76. // Create a new object with a locale on it, and copy the options to it.
  77. return Object.assign( { locale: this._locale }, this._options );
  78. }
  79. },
  80. /**
  81. * Format a value
  82. * @param {any} _value
  83. * @return {String} The formatted value.
  84. */
  85. format:
  86. {
  87. enumerable: true,
  88. value: function( _value )
  89. {
  90. return _value ? _value.toLocaleString() : "";
  91. }
  92. }
  93. } );
  94. return ObjectPolyfill.defineProperty( Format, "envLocale", { value: LOCALE } );
  95. }( require( "../Object" ), require( "./bcp47" ) ) );
  96. </code></pre>
  97. </article>
  98. </section>
  99. </div>
  100. <nav>
  101. <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-barejs.html">barejs</a></li><li><a href="module-barejs_polyfill.html">barejs/polyfill</a></li><li><a href="module-barejs_polyfill_Intl.html">barejs/polyfill/Intl</a></li></ul><h3>Classes</h3><ul><li><a href="module-barejs.decl.html">decl</a></li><li><a href="module-barejs.decl-Enum.html">Enum</a></li><li><a href="module-barejs.decl-Interface.html">Interface</a></li><li><a href="module-barejs.decl-SpecialType.html">SpecialType</a></li><li><a href="module-barejs.Destroyable.html">Destroyable</a></li><li><a href="module-barejs.EventArgs.html">EventArgs</a></li><li><a href="module-barejs.Evented.html">Evented</a></li><li><a href="module-barejs.Evented-EventedHandle.html">EventedHandle</a></li><li><a href="module-barejs.Exception.html">Exception</a></li><li><a href="module-barejs_polyfill.Array.html">Array</a></li><li><a href="module-barejs_polyfill.Date.html">Date</a></li><li><a href="module-barejs_polyfill.EntryStore.html">EntryStore</a></li><li><a href="module-barejs_polyfill.EntryStore.Iterator.html">Iterator</a></li><li><a href="module-barejs_polyfill.Function.html">Function</a></li><li><a href="module-barejs_polyfill.Map.html">Map</a></li><li><a href="module-barejs_polyfill.Map-MapIterator.html">MapIterator</a></li><li><a href="module-barejs_polyfill.Math.html">Math</a></li><li><a href="module-barejs_polyfill.Number.html">Number</a></li><li><a href="module-barejs_polyfill.Object.html">Object</a></li><li><a href="module-barejs_polyfill.Promise.html">Promise</a></li><li><a href="module-barejs_polyfill.Set.html">Set</a></li><li><a href="module-barejs_polyfill.Set-SetIterator.html">SetIterator</a></li><li><a href="module-barejs_polyfill.String.html">String</a></li><li><a href="module-barejs_polyfill.Symbol.html">Symbol</a></li><li><a href="module-barejs_polyfill.WeakMap.html">WeakMap</a></li><li><a href="module-barejs_polyfill.WeakSet.html">WeakSet</a></li><li><a href="module-barejs_polyfill_Intl.DateTimeFormat.html">DateTimeFormat</a></li><li><a href="module-barejs_polyfill_Intl.DateTimeFormat-DateTimeFormatOptions.html">DateTimeFormatOptions</a></li><li><a href="module-barejs_polyfill_Intl.NumberFormat.html">NumberFormat</a></li><li><a href="module-barejs_polyfill_Intl.NumberFormat-NumberFormatOptions.html">NumberFormatOptions</a></li><li><a href="module-barejs_polyfill_Intl-Format.html">Format</a></li></ul>
  102. </nav>
  103. <br class="clear">
  104. <footer>
  105. Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Wed Oct 03 2018 15:59:34 GMT+0200 (W. Europe Daylight Time)
  106. </footer>
  107. <script> prettyPrint(); </script>
  108. <script src="scripts/linenumber.js"> </script>
  109. </body>
  110. </html>