Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions draftlogs/7366_change.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Replace country-regex with i18n-iso-countries [[#7366](https://github.com/plotly/plotly.js/pull/7366)]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Replace country-regex with i18n-iso-countries [[#7366](https://github.com/plotly/plotly.js/pull/7366)]
- Replace country-regex package with i18n-iso-countries [[#7366](https://github.com/plotly/plotly.js/pull/7366)]

23 changes: 17 additions & 6 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,6 @@
"color-normalize": "1.5.0",
"color-parse": "2.0.0",
"color-rgba": "2.1.1",
"country-regex": "^1.1.0",
"css-loader": "^7.1.2",
"d3-force": "^1.2.1",
"d3-format": "^1.4.5",
Expand All @@ -97,6 +96,7 @@
"gl-text": "^1.4.0",
"has-hover": "^1.0.1",
"has-passive-events": "^1.0.0",
"i18n-iso-countries": "^7.13.0",
"is-mobile": "^4.0.0",
"maplibre-gl": "^4.7.1",
"mouse-change": "^1.4.0",
Expand Down
16 changes: 8 additions & 8 deletions src/lib/geo_location_utils.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
'use strict';

var d3 = require('@plotly/d3');
var countryRegex = require('country-regex');
var { area: turfArea } = require('@turf/area');
var { centroid: turfCentroid } = require('@turf/centroid');
var { bbox: turfBbox } = require('@turf/bbox');
Expand All @@ -12,8 +11,8 @@ var isPlainObject = require('./is_plain_object');
var nestedProperty = require('./nested_property');
var polygon = require('./polygon');

// make list of all country iso3 ids from at runtime
var countryIds = Object.keys(countryRegex);
const countries = require("i18n-iso-countries");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please move this require statement above with the others?

countries.registerLocale(require("i18n-iso-countries/langs/en.json"));

var locationmodeToIdFinder = {
'ISO-3': identity,
Expand All @@ -22,11 +21,12 @@ var locationmodeToIdFinder = {
};

function countryNameToISO3(countryName) {
for(var i = 0; i < countryIds.length; i++) {
var iso3 = countryIds[i];
var regex = new RegExp(countryRegex[iso3]);

if(regex.test(countryName.trim().toLowerCase())) return iso3;
// remove sequences of whitespaces
var cleanName = countryName.replace(/\s+/g, ' ').trim();
var alpha3Code = countries.getAlpha3Code(cleanName, "en")

if (alpha3Code !== undefined) {
return alpha3Code;
}

loggers.log('Unrecognized country name: ' + countryName + '.');
Expand Down
4 changes: 2 additions & 2 deletions test/jasmine/tests/geo_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -819,8 +819,8 @@ describe('geojson / topojson utils', function() {
var topojson = GeoAssets.topojson[topojsonName];

var shouldPass = [
'Virgin Islands (U.S.)',
' Virgin Islands (U.S.) '
'Virgin Islands, U.S.',
' Virgin Islands, U.S. '
];

shouldPass.forEach(function(str) {
Expand Down