From 5d70d80e8950ef409d437bbe1a91c60fa6e3a343 Mon Sep 17 00:00:00 2001 From: Piotr Laszczkowski Date: Mon, 4 Jun 2018 12:33:53 +0200 Subject: [PATCH] Migration to Numbro v2 (#5127) * Changed: new version of Numbro library. #5081 * Updated Numbro version in yarn.lock and bower.json. #5081 --- .config/production.js | 2 +- .config/test-e2e.js | 4 ++-- .config/test-mobile.js | 4 ++-- .config/test-production.js | 2 +- bower.json | 2 +- package-lock.json | 38 ++++++++++++++++++++++++-------- package.json | 2 +- src/renderers/numericRenderer.js | 13 ++++++++--- yarn.lock | 12 +++++++--- 9 files changed, 56 insertions(+), 23 deletions(-) diff --git a/.config/production.js b/.config/production.js index b8b79832ab8..5c9350549e5 100644 --- a/.config/production.js +++ b/.config/production.js @@ -66,7 +66,7 @@ module.exports.create = function create(envArgs) { from: {glob: 'node_modules/numbro/@(LICENSE-Numeraljs|LICENSE)'}, to: 'numbro', flatten: true }, { - from: {glob: 'node_modules/numbro/dist/@(numbro.js|languages.js)'}, to: 'numbro', flatten: true + from: {glob: 'node_modules/numbro/dist/@(numbro.js|languages.min.js)'}, to: 'numbro', flatten: true }, { from: {glob: 'node_modules/numbro/dist/languages/*.js'}, to: 'numbro/languages', flatten: true diff --git a/.config/test-e2e.js b/.config/test-e2e.js index deaeee46bed..f34e090f075 100644 --- a/.config/test-e2e.js +++ b/.config/test-e2e.js @@ -50,8 +50,8 @@ module.exports.create = function create(envArgs) { 'lib/jquery.simulate.js', 'lib/lodash.underscore.js', 'lib/backbone.js', - '../dist/numbro/numbro.js', - '../dist/numbro/languages.js', + '../node_modules/numbro/dist/numbro.js', + '../node_modules/numbro/dist/languages.min.js', '../dist/moment/moment.js', '../dist/pikaday/pikaday.js', '../dist/handsontable.js', diff --git a/.config/test-mobile.js b/.config/test-mobile.js index f44d9f10dd2..28a3c90ed57 100644 --- a/.config/test-mobile.js +++ b/.config/test-mobile.js @@ -34,8 +34,8 @@ module.exports.create = function create(envArgs) { 'lib/jquery.simulate.js', 'lib/lodash.underscore.js', 'lib/backbone.js', - '../dist/numbro/numbro.js', - '../dist/numbro/languages.js', + '../node_modules/numbro/dist/numbro.js', + '../node_modules/numbro/dist/languages.min.js', '../dist/moment/moment.js', '../dist/pikaday/pikaday.js', '../dist/handsontable.js', diff --git a/.config/test-production.js b/.config/test-production.js index 4f380ee92a1..e7ef1085b90 100644 --- a/.config/test-production.js +++ b/.config/test-production.js @@ -36,7 +36,7 @@ module.exports.create = function create(envArgs) { 'lib/lodash.underscore.js', 'lib/backbone.js', '../dist/handsontable.full.min.js', - '../dist/numbro/languages.js', + '../node_modules/numbro/dist/languages.min.js', '../dist/languages/all.min.js', ], }) diff --git a/bower.json b/bower.json index 0e24c96d6ad..f47499754b6 100644 --- a/bower.json +++ b/bower.json @@ -35,7 +35,7 @@ ], "dependencies": { "moment": "^2.13.0", - "numbro": "^1.8.0", + "numbro": "^2.0.6", "pikaday": "^1.4.0" }, "devDependencies": { diff --git a/package-lock.json b/package-lock.json index e87f8f78514..1f006e5d870 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1189,6 +1189,11 @@ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", "dev": true }, + "bignumber.js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.1.0.tgz", + "integrity": "sha512-eJzYkFYy9L4JzXsbymsFn3p54D+llV27oTQ+ziJG7WFRheJcNZilgVXMG0LoZtlQSKBsJdWtLFqOD0u+U0jZKA==" + }, "binary-extensions": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", @@ -3727,13 +3732,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3750,13 +3757,15 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", @@ -3893,7 +3902,8 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -3907,6 +3917,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -3923,6 +3934,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -3931,7 +3943,8 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", @@ -3958,6 +3971,7 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -4046,7 +4060,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -4060,6 +4075,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -4197,6 +4213,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -6762,9 +6779,12 @@ "dev": true }, "numbro": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/numbro/-/numbro-1.11.0.tgz", - "integrity": "sha1-OaoXs1i0aCrsjKDVdV81xdnOj54=" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/numbro/-/numbro-2.0.6.tgz", + "integrity": "sha512-wTgLyuj1wduuHb6O/ItU/2SVR5Sf8uFVhFqbtqQU1/DqA34Wq9QqRlt0ySq1QEuju9Taq9+jPU4ExTQInYhsmA==", + "requires": { + "bignumber.js": "^4.0.4" + } }, "nwmatcher": { "version": "1.4.4", diff --git a/package.json b/package.json index 04e3abc40d1..a4d1a92bca3 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ ], "dependencies": { "moment": "2.20.1", - "numbro": "1.11.0", + "numbro": "^2.0.6", "pikaday": "1.5.1" }, "devDependencies": { diff --git a/src/renderers/numericRenderer.js b/src/renderers/numericRenderer.js index f0bbd478089..c61c6c50bd0 100644 --- a/src/renderers/numericRenderer.js +++ b/src/renderers/numericRenderer.js @@ -19,15 +19,22 @@ import {isNumeric} from './../helpers/number'; function numericRenderer(instance, TD, row, col, prop, value, cellProperties) { if (isNumeric(value)) { const numericFormat = cellProperties.numericFormat; - const cellCulture = numericFormat && numericFormat.culture; + const cellCulture = numericFormat && numericFormat.culture || '-'; const cellFormatPattern = numericFormat && numericFormat.pattern; const className = cellProperties.className || ''; let classArr = className.length ? className.split(' ') : []; - if (typeof cellCulture !== 'undefined') { - numbro.culture(cellCulture); + if (typeof cellCulture !== 'undefined' && !numbro.languages()[cellCulture]) { + const shortTag = cellCulture.replace('-', ''); + const langData = numbro.allLanguages ? numbro.allLanguages[cellCulture] : numbro[shortTag]; + + if (langData) { + numbro.registerLanguage(langData); + } } + numbro.setLanguage(cellCulture); + value = numbro(value).format(cellFormatPattern || '0'); if (classArr.indexOf('htLeft') < 0 && classArr.indexOf('htCenter') < 0 && diff --git a/yarn.lock b/yarn.lock index 5fbea9a1144..614ee01e7e5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -874,6 +874,10 @@ big.js@^3.1.3: version "3.2.0" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" +bignumber.js@^4.0.4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-4.1.0.tgz#db6f14067c140bd46624815a7916c92d9b6c24b1" + binary-extensions@^1.0.0: version "1.11.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" @@ -4126,9 +4130,11 @@ number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" -numbro@1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/numbro/-/numbro-1.11.0.tgz#39aa17b358b4682aec8ca0d5755f35c5d9ce8f9e" +numbro@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/numbro/-/numbro-2.0.6.tgz#d46acaa11aa879d522e93651de3926646d6db100" + dependencies: + bignumber.js "^4.0.4" "nwmatcher@>= 1.3.9 < 2.0.0": version "1.4.4"