@wulperstudio/cms
Version:
Wulper Studio Library Components CMS
67 lines (66 loc) • 3.13 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.excludeCountries = excludeCountries;
exports.filterCountries = filterCountries;
exports.getCallingCodeOfCountry = getCallingCodeOfCountry;
exports.getCountriesOfContinents = getCountriesOfContinents;
exports.getOnlyCountries = getOnlyCountries;
exports.matchContinentsIncludeCountry = matchContinentsIncludeCountry;
exports.sortAlphabeticallyCountryCodes = sortAlphabeticallyCountryCodes;
exports.sortedPreferredCountries = sortedPreferredCountries;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _constants = require("../constants");
var _array = require("./array");
function getCallingCodeOfCountry(isoCode) {
var _COUNTRIES$isoCode;
return (_COUNTRIES$isoCode = _constants.COUNTRIES[isoCode]) == null ? void 0 : _COUNTRIES$isoCode[0];
}
function sortedPreferredCountries(countries, preferredCountries) {
return (0, _toConsumableArray2["default"])(new Set(preferredCountries.concat(countries)));
}
function getCountriesOfContinents(continents) {
return continents.flatMap(function (continentCode) {
return _constants.CONTINENTS[continentCode];
});
}
function getOnlyCountries(countries, onlyCountries) {
return countries.filter(function (isoCode) {
return onlyCountries.includes(isoCode);
});
}
function excludeCountries(countries, excludedCountries) {
if ((0, _array.matchIsArray)(excludedCountries, true)) {
return countries.filter(function (isoCode) {
return !excludedCountries.includes(isoCode);
});
}
return countries;
}
function filterCountries(countries, options) {
var onlyCountries = options.onlyCountries,
excludedCountries = options.excludedCountries,
continents = options.continents,
preferredCountries = options.preferredCountries;
if ((0, _array.matchIsArray)(onlyCountries, true)) {
var filteredCountries = getOnlyCountries(countries, onlyCountries);
return (0, _array.matchIsArray)(preferredCountries, true) ? sortedPreferredCountries(filteredCountries, preferredCountries) : filteredCountries;
}
var theCountries = (0, _array.matchIsArray)(continents, true) ? getCountriesOfContinents(continents) : countries;
var sortedCountries = (0, _array.matchIsArray)(preferredCountries, true) ? sortedPreferredCountries(theCountries, preferredCountries) : theCountries;
return (0, _array.matchIsArray)(excludedCountries, true) ? excludeCountries(sortedCountries, excludedCountries) : sortedCountries;
}
function matchContinentsIncludeCountry(continents, isoCode) {
return continents.some(function (continentCode) {
return _constants.CONTINENTS[continentCode].includes(isoCode);
});
}
function sortAlphabeticallyCountryCodes(countryCodes, displayNames) {
return (0, _toConsumableArray2["default"])(countryCodes).sort(function (countryCodeA, countryCodeB) {
var countryA = displayNames.of(countryCodeA);
var countryB = displayNames.of(countryCodeB);
return countryA.localeCompare(countryB);
});
}