vue3-map-chart
Version:
Vue 3 component for rendering interactive SVG maps of the world, continents, and countries with dynamic data.
2,654 lines • 4.33 MB
JavaScript
import { getCurrentScope, onScopeDispose, unref, onMounted, nextTick, getCurrentInstance, watch, ref, readonly, computed, defineComponent, useCssVars, openBlock, createElementBlock, createElementVNode, toDisplayString, Fragment, createCommentVNode, pushScopeId, popScopeId, useSlots, normalizeStyle, createBlock } from "vue";
function tryOnScopeDispose(fn) {
if (getCurrentScope()) {
onScopeDispose(fn);
return true;
}
return false;
}
function toValue(r) {
return typeof r === "function" ? r() : unref(r);
}
const isClient = typeof window !== "undefined" && typeof document !== "undefined";
typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
const notNullish = (val) => val != null;
const toString = Object.prototype.toString;
const isObject$1 = (val) => toString.call(val) === "[object Object]";
const noop = () => {
};
function getLifeCycleTarget(target) {
return target || getCurrentInstance();
}
function tryOnMounted(fn, sync = true, target) {
const instance = getLifeCycleTarget();
if (instance)
onMounted(fn, target);
else if (sync)
fn();
else
nextTick(fn);
}
function unrefElement(elRef) {
var _a;
const plain = toValue(elRef);
return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;
}
const defaultWindow = isClient ? window : void 0;
const defaultDocument = isClient ? window.document : void 0;
function useEventListener(...args) {
let target;
let events;
let listeners;
let options;
if (typeof args[0] === "string" || Array.isArray(args[0])) {
[events, listeners, options] = args;
target = defaultWindow;
} else {
[target, events, listeners, options] = args;
}
if (!target)
return noop;
if (!Array.isArray(events))
events = [events];
if (!Array.isArray(listeners))
listeners = [listeners];
const cleanups = [];
const cleanup = () => {
cleanups.forEach((fn) => fn());
cleanups.length = 0;
};
const register = (el2, event, listener, options2) => {
el2.addEventListener(event, listener, options2);
return () => el2.removeEventListener(event, listener, options2);
};
const stopWatch = watch(
() => [unrefElement(target), toValue(options)],
([el2, options2]) => {
cleanup();
if (!el2)
return;
const optionsClone = isObject$1(options2) ? { ...options2 } : options2;
cleanups.push(
...events.flatMap((event) => {
return listeners.map((listener) => register(el2, event, listener, optionsClone));
})
);
},
{ immediate: true, flush: "post" }
);
const stop = () => {
stopWatch();
cleanup();
};
tryOnScopeDispose(stop);
return stop;
}
function useMounted() {
const isMounted = ref(false);
const instance = getCurrentInstance();
if (instance) {
onMounted(() => {
isMounted.value = true;
}, instance);
}
return isMounted;
}
function useSupported(callback) {
const isMounted = useMounted();
return computed(() => {
isMounted.value;
return Boolean(callback());
});
}
function useMutationObserver(target, callback, options = {}) {
const { window: window2 = defaultWindow, ...mutationOptions } = options;
let observer;
const isSupported = useSupported(() => window2 && "MutationObserver" in window2);
const cleanup = () => {
if (observer) {
observer.disconnect();
observer = void 0;
}
};
const targets = computed(() => {
const value = toValue(target);
const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(notNullish);
return new Set(items);
});
const stopWatch = watch(
() => targets.value,
(targets2) => {
cleanup();
if (isSupported.value && targets2.size) {
observer = new MutationObserver(callback);
targets2.forEach((el2) => observer.observe(el2, mutationOptions));
}
},
{ immediate: true, flush: "post" }
);
const takeRecords = () => {
return observer == null ? void 0 : observer.takeRecords();
};
const stop = () => {
cleanup();
stopWatch();
};
tryOnScopeDispose(stop);
return {
isSupported,
stop,
takeRecords
};
}
function useResizeObserver(target, callback, options = {}) {
const { window: window2 = defaultWindow, ...observerOptions } = options;
let observer;
const isSupported = useSupported(() => window2 && "ResizeObserver" in window2);
const cleanup = () => {
if (observer) {
observer.disconnect();
observer = void 0;
}
};
const targets = computed(() => Array.isArray(target) ? target.map((el2) => unrefElement(el2)) : [unrefElement(target)]);
const stopWatch = watch(
targets,
(els) => {
cleanup();
if (isSupported.value && window2) {
observer = new ResizeObserver(callback);
for (const _el of els)
_el && observer.observe(_el, observerOptions);
}
},
{ immediate: true, flush: "post" }
);
const stop = () => {
cleanup();
stopWatch();
};
tryOnScopeDispose(stop);
return {
isSupported,
stop
};
}
function useElementBounding(target, options = {}) {
const {
reset = true,
windowResize = true,
windowScroll = true,
immediate = true
} = options;
const height = ref(0);
const bottom = ref(0);
const left = ref(0);
const right = ref(0);
const top = ref(0);
const width = ref(0);
const x = ref(0);
const y = ref(0);
function update() {
const el2 = unrefElement(target);
if (!el2) {
if (reset) {
height.value = 0;
bottom.value = 0;
left.value = 0;
right.value = 0;
top.value = 0;
width.value = 0;
x.value = 0;
y.value = 0;
}
return;
}
const rect = el2.getBoundingClientRect();
height.value = rect.height;
bottom.value = rect.bottom;
left.value = rect.left;
right.value = rect.right;
top.value = rect.top;
width.value = rect.width;
x.value = rect.x;
y.value = rect.y;
}
useResizeObserver(target, update);
watch(() => unrefElement(target), (ele) => !ele && update());
useMutationObserver(target, update, {
attributeFilter: ["style", "class"]
});
if (windowScroll)
useEventListener("scroll", update, { capture: true, passive: true });
if (windowResize)
useEventListener("resize", update, { passive: true });
tryOnMounted(() => {
if (immediate)
update();
});
return {
height,
bottom,
left,
right,
top,
width,
x,
y,
update
};
}
const UseMouseBuiltinExtractors = {
page: (event) => [event.pageX, event.pageY],
client: (event) => [event.clientX, event.clientY],
screen: (event) => [event.screenX, event.screenY],
movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY]
};
function useMouse(options = {}) {
const {
type = "page",
touch = true,
resetOnTouchEnds = false,
initialValue = { x: 0, y: 0 },
window: window2 = defaultWindow,
target = window2,
scroll = true,
eventFilter
} = options;
let _prevMouseEvent = null;
const x = ref(initialValue.x);
const y = ref(initialValue.y);
const sourceType = ref(null);
const extractor = typeof type === "function" ? type : UseMouseBuiltinExtractors[type];
const mouseHandler = (event) => {
const result = extractor(event);
_prevMouseEvent = event;
if (result) {
[x.value, y.value] = result;
sourceType.value = "mouse";
}
};
const touchHandler = (event) => {
if (event.touches.length > 0) {
const result = extractor(event.touches[0]);
if (result) {
[x.value, y.value] = result;
sourceType.value = "touch";
}
}
};
const scrollHandler = () => {
if (!_prevMouseEvent || !window2)
return;
const pos = extractor(_prevMouseEvent);
if (_prevMouseEvent instanceof MouseEvent && pos) {
x.value = pos[0] + window2.scrollX;
y.value = pos[1] + window2.scrollY;
}
};
const reset = () => {
x.value = initialValue.x;
y.value = initialValue.y;
};
const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);
const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);
const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();
if (target) {
const listenerOptions = { passive: true };
useEventListener(target, ["mousemove", "dragover"], mouseHandlerWrapper, listenerOptions);
if (touch && type !== "movement") {
useEventListener(target, ["touchstart", "touchmove"], touchHandlerWrapper, listenerOptions);
if (resetOnTouchEnds)
useEventListener(target, "touchend", reset, listenerOptions);
}
if (scroll && type === "page")
useEventListener(window2, "scroll", scrollHandlerWrapper, { passive: true });
}
return {
x,
y,
sourceType
};
}
function useMouseInElement(target, options = {}) {
const {
handleOutside = true,
window: window2 = defaultWindow
} = options;
const type = options.type || "page";
const { x, y, sourceType } = useMouse(options);
const targetRef = ref(target != null ? target : window2 == null ? void 0 : window2.document.body);
const elementX = ref(0);
const elementY = ref(0);
const elementPositionX = ref(0);
const elementPositionY = ref(0);
const elementHeight = ref(0);
const elementWidth = ref(0);
const isOutside = ref(true);
let stop = () => {
};
if (window2) {
stop = watch(
[targetRef, x, y],
() => {
const el2 = unrefElement(targetRef);
if (!el2)
return;
const {
left,
top,
width,
height
} = el2.getBoundingClientRect();
elementPositionX.value = left + (type === "page" ? window2.pageXOffset : 0);
elementPositionY.value = top + (type === "page" ? window2.pageYOffset : 0);
elementHeight.value = height;
elementWidth.value = width;
const elX = x.value - elementPositionX.value;
const elY = y.value - elementPositionY.value;
isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;
if (handleOutside || !isOutside.value) {
elementX.value = elX;
elementY.value = elY;
}
},
{ immediate: true }
);
useEventListener(document, "mouseleave", () => {
isOutside.value = true;
});
}
return {
x,
y,
sourceType,
elementX,
elementY,
elementPositionX,
elementPositionY,
elementHeight,
elementWidth,
isOutside,
stop
};
}
let _id = 0;
function useStyleTag(css, options = {}) {
const isLoaded = ref(false);
const {
document: document2 = defaultDocument,
immediate = true,
manual = false,
id: id2 = `vueuse_styletag_${++_id}`
} = options;
const cssRef = ref(css);
let stop = () => {
};
const load = () => {
if (!document2)
return;
const el2 = document2.getElementById(id2) || document2.createElement("style");
if (!el2.isConnected) {
el2.id = id2;
if (options.media)
el2.media = options.media;
document2.head.appendChild(el2);
}
if (isLoaded.value)
return;
stop = watch(
cssRef,
(value) => {
el2.textContent = value;
},
{ immediate: true }
);
isLoaded.value = true;
};
const unload = () => {
if (!document2 || !isLoaded.value)
return;
stop();
document2.head.removeChild(document2.getElementById(id2));
isLoaded.value = false;
};
if (immediate && !manual)
tryOnMounted(load);
if (!manual)
tryOnScopeDispose(unload);
return {
id: id2,
css: cssRef,
unload,
load,
isLoaded: readonly(isLoaded)
};
}
function getDefaultExportFromCjs(x) {
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
}
var i18nIsoCountries = {};
const require$$0 = [
[
"AF",
"AFG",
"004",
"ISO 3166-2:AF"
],
[
"AL",
"ALB",
"008",
"ISO 3166-2:AL"
],
[
"DZ",
"DZA",
"012",
"ISO 3166-2:DZ"
],
[
"AS",
"ASM",
"016",
"ISO 3166-2:AS"
],
[
"AD",
"AND",
"020",
"ISO 3166-2:AD"
],
[
"AO",
"AGO",
"024",
"ISO 3166-2:AO"
],
[
"AI",
"AIA",
"660",
"ISO 3166-2:AI"
],
[
"AQ",
"ATA",
"010",
"ISO 3166-2:AQ"
],
[
"AG",
"ATG",
"028",
"ISO 3166-2:AG"
],
[
"AR",
"ARG",
"032",
"ISO 3166-2:AR"
],
[
"AM",
"ARM",
"051",
"ISO 3166-2:AM"
],
[
"AW",
"ABW",
"533",
"ISO 3166-2:AW"
],
[
"AU",
"AUS",
"036",
"ISO 3166-2:AU"
],
[
"AT",
"AUT",
"040",
"ISO 3166-2:AT"
],
[
"AZ",
"AZE",
"031",
"ISO 3166-2:AZ"
],
[
"BS",
"BHS",
"044",
"ISO 3166-2:BS"
],
[
"BH",
"BHR",
"048",
"ISO 3166-2:BH"
],
[
"BD",
"BGD",
"050",
"ISO 3166-2:BD"
],
[
"BB",
"BRB",
"052",
"ISO 3166-2:BB"
],
[
"BY",
"BLR",
"112",
"ISO 3166-2:BY"
],
[
"BE",
"BEL",
"056",
"ISO 3166-2:BE"
],
[
"BZ",
"BLZ",
"084",
"ISO 3166-2:BZ"
],
[
"BJ",
"BEN",
"204",
"ISO 3166-2:BJ"
],
[
"BM",
"BMU",
"060",
"ISO 3166-2:BM"
],
[
"BT",
"BTN",
"064",
"ISO 3166-2:BT"
],
[
"BO",
"BOL",
"068",
"ISO 3166-2:BO"
],
[
"BA",
"BIH",
"070",
"ISO 3166-2:BA"
],
[
"BW",
"BWA",
"072",
"ISO 3166-2:BW"
],
[
"BV",
"BVT",
"074",
"ISO 3166-2:BV"
],
[
"BR",
"BRA",
"076",
"ISO 3166-2:BR"
],
[
"IO",
"IOT",
"086",
"ISO 3166-2:IO"
],
[
"BN",
"BRN",
"096",
"ISO 3166-2:BN"
],
[
"BG",
"BGR",
"100",
"ISO 3166-2:BG"
],
[
"BF",
"BFA",
"854",
"ISO 3166-2:BF"
],
[
"BI",
"BDI",
"108",
"ISO 3166-2:BI"
],
[
"KH",
"KHM",
"116",
"ISO 3166-2:KH"
],
[
"CM",
"CMR",
"120",
"ISO 3166-2:CM"
],
[
"CA",
"CAN",
"124",
"ISO 3166-2:CA"
],
[
"CV",
"CPV",
"132",
"ISO 3166-2:CV"
],
[
"KY",
"CYM",
"136",
"ISO 3166-2:KY"
],
[
"CF",
"CAF",
"140",
"ISO 3166-2:CF"
],
[
"TD",
"TCD",
"148",
"ISO 3166-2:TD"
],
[
"CL",
"CHL",
"152",
"ISO 3166-2:CL"
],
[
"CN",
"CHN",
"156",
"ISO 3166-2:CN"
],
[
"CX",
"CXR",
"162",
"ISO 3166-2:CX"
],
[
"CC",
"CCK",
"166",
"ISO 3166-2:CC"
],
[
"CO",
"COL",
"170",
"ISO 3166-2:CO"
],
[
"KM",
"COM",
"174",
"ISO 3166-2:KM"
],
[
"CG",
"COG",
"178",
"ISO 3166-2:CG"
],
[
"CD",
"COD",
"180",
"ISO 3166-2:CD"
],
[
"CK",
"COK",
"184",
"ISO 3166-2:CK"
],
[
"CR",
"CRI",
"188",
"ISO 3166-2:CR"
],
[
"CI",
"CIV",
"384",
"ISO 3166-2:CI"
],
[
"HR",
"HRV",
"191",
"ISO 3166-2:HR"
],
[
"CU",
"CUB",
"192",
"ISO 3166-2:CU"
],
[
"CY",
"CYP",
"196",
"ISO 3166-2:CY"
],
[
"CZ",
"CZE",
"203",
"ISO 3166-2:CZ"
],
[
"DK",
"DNK",
"208",
"ISO 3166-2:DK"
],
[
"DJ",
"DJI",
"262",
"ISO 3166-2:DJ"
],
[
"DM",
"DMA",
"212",
"ISO 3166-2:DM"
],
[
"DO",
"DOM",
"214",
"ISO 3166-2:DO"
],
[
"EC",
"ECU",
"218",
"ISO 3166-2:EC"
],
[
"EG",
"EGY",
"818",
"ISO 3166-2:EG"
],
[
"SV",
"SLV",
"222",
"ISO 3166-2:SV"
],
[
"GQ",
"GNQ",
"226",
"ISO 3166-2:GQ"
],
[
"ER",
"ERI",
"232",
"ISO 3166-2:ER"
],
[
"EE",
"EST",
"233",
"ISO 3166-2:EE"
],
[
"ET",
"ETH",
"231",
"ISO 3166-2:ET"
],
[
"FK",
"FLK",
"238",
"ISO 3166-2:FK"
],
[
"FO",
"FRO",
"234",
"ISO 3166-2:FO"
],
[
"FJ",
"FJI",
"242",
"ISO 3166-2:FJ"
],
[
"FI",
"FIN",
"246",
"ISO 3166-2:FI"
],
[
"FR",
"FRA",
"250",
"ISO 3166-2:FR"
],
[
"GF",
"GUF",
"254",
"ISO 3166-2:GF"
],
[
"PF",
"PYF",
"258",
"ISO 3166-2:PF"
],
[
"TF",
"ATF",
"260",
"ISO 3166-2:TF"
],
[
"GA",
"GAB",
"266",
"ISO 3166-2:GA"
],
[
"GM",
"GMB",
"270",
"ISO 3166-2:GM"
],
[
"GE",
"GEO",
"268",
"ISO 3166-2:GE"
],
[
"DE",
"DEU",
"276",
"ISO 3166-2:DE"
],
[
"GH",
"GHA",
"288",
"ISO 3166-2:GH"
],
[
"GI",
"GIB",
"292",
"ISO 3166-2:GI"
],
[
"GR",
"GRC",
"300",
"ISO 3166-2:GR"
],
[
"GL",
"GRL",
"304",
"ISO 3166-2:GL"
],
[
"GD",
"GRD",
"308",
"ISO 3166-2:GD"
],
[
"GP",
"GLP",
"312",
"ISO 3166-2:GP"
],
[
"GU",
"GUM",
"316",
"ISO 3166-2:GU"
],
[
"GT",
"GTM",
"320",
"ISO 3166-2:GT"
],
[
"GN",
"GIN",
"324",
"ISO 3166-2:GN"
],
[
"GW",
"GNB",
"624",
"ISO 3166-2:GW"
],
[
"GY",
"GUY",
"328",
"ISO 3166-2:GY"
],
[
"HT",
"HTI",
"332",
"ISO 3166-2:HT"
],
[
"HM",
"HMD",
"334",
"ISO 3166-2:HM"
],
[
"VA",
"VAT",
"336",
"ISO 3166-2:VA"
],
[
"HN",
"HND",
"340",
"ISO 3166-2:HN"
],
[
"HK",
"HKG",
"344",
"ISO 3166-2:HK"
],
[
"HU",
"HUN",
"348",
"ISO 3166-2:HU"
],
[
"IS",
"ISL",
"352",
"ISO 3166-2:IS"
],
[
"IN",
"IND",
"356",
"ISO 3166-2:IN"
],
[
"ID",
"IDN",
"360",
"ISO 3166-2:ID"
],
[
"IR",
"IRN",
"364",
"ISO 3166-2:IR"
],
[
"IQ",
"IRQ",
"368",
"ISO 3166-2:IQ"
],
[
"IE",
"IRL",
"372",
"ISO 3166-2:IE"
],
[
"IL",
"ISR",
"376",
"ISO 3166-2:IL"
],
[
"IT",
"ITA",
"380",
"ISO 3166-2:IT"
],
[
"JM",
"JAM",
"388",
"ISO 3166-2:JM"
],
[
"JP",
"JPN",
"392",
"ISO 3166-2:JP"
],
[
"JO",
"JOR",
"400",
"ISO 3166-2:JO"
],
[
"KZ",
"KAZ",
"398",
"ISO 3166-2:KZ"
],
[
"KE",
"KEN",
"404",
"ISO 3166-2:KE"
],
[
"KI",
"KIR",
"296",
"ISO 3166-2:KI"
],
[
"KP",
"PRK",
"408",
"ISO 3166-2:KP"
],
[
"KR",
"KOR",
"410",
"ISO 3166-2:KR"
],
[
"KW",
"KWT",
"414",
"ISO 3166-2:KW"
],
[
"KG",
"KGZ",
"417",
"ISO 3166-2:KG"
],
[
"LA",
"LAO",
"418",
"ISO 3166-2:LA"
],
[
"LV",
"LVA",
"428",
"ISO 3166-2:LV"
],
[
"LB",
"LBN",
"422",
"ISO 3166-2:LB"
],
[
"LS",
"LSO",
"426",
"ISO 3166-2:LS"
],
[
"LR",
"LBR",
"430",
"ISO 3166-2:LR"
],
[
"LY",
"LBY",
"434",
"ISO 3166-2:LY"
],
[
"LI",
"LIE",
"438",
"ISO 3166-2:LI"
],
[
"LT",
"LTU",
"440",
"ISO 3166-2:LT"
],
[
"LU",
"LUX",
"442",
"ISO 3166-2:LU"
],
[
"MO",
"MAC",
"446",
"ISO 3166-2:MO"
],
[
"MG",
"MDG",
"450",
"ISO 3166-2:MG"
],
[
"MW",
"MWI",
"454",
"ISO 3166-2:MW"
],
[
"MY",
"MYS",
"458",
"ISO 3166-2:MY"
],
[
"MV",
"MDV",
"462",
"ISO 3166-2:MV"
],
[
"ML",
"MLI",
"466",
"ISO 3166-2:ML"
],
[
"MT",
"MLT",
"470",
"ISO 3166-2:MT"
],
[
"MH",
"MHL",
"584",
"ISO 3166-2:MH"
],
[
"MQ",
"MTQ",
"474",
"ISO 3166-2:MQ"
],
[
"MR",
"MRT",
"478",
"ISO 3166-2:MR"
],
[
"MU",
"MUS",
"480",
"ISO 3166-2:MU"
],
[
"YT",
"MYT",
"175",
"ISO 3166-2:YT"
],
[
"MX",
"MEX",
"484",
"ISO 3166-2:MX"
],
[
"FM",
"FSM",
"583",
"ISO 3166-2:FM"
],
[
"MD",
"MDA",
"498",
"ISO 3166-2:MD"
],
[
"MC",
"MCO",
"492",
"ISO 3166-2:MC"
],
[
"MN",
"MNG",
"496",
"ISO 3166-2:MN"
],
[
"MS",
"MSR",
"500",
"ISO 3166-2:MS"
],
[
"MA",
"MAR",
"504",
"ISO 3166-2:MA"
],
[
"MZ",
"MOZ",
"508",
"ISO 3166-2:MZ"
],
[
"MM",
"MMR",
"104",
"ISO 3166-2:MM"
],
[
"NA",
"NAM",
"516",
"ISO 3166-2:NA"
],
[
"NR",
"NRU",
"520",
"ISO 3166-2:NR"
],
[
"NP",
"NPL",
"524",
"ISO 3166-2:NP"
],
[
"NL",
"NLD",
"528",
"ISO 3166-2:NL"
],
[
"NC",
"NCL",
"540",
"ISO 3166-2:NC"
],
[
"NZ",
"NZL",
"554",
"ISO 3166-2:NZ"
],
[
"NI",
"NIC",
"558",
"ISO 3166-2:NI"
],
[
"NE",
"NER",
"562",
"ISO 3166-2:NE"
],
[
"NG",
"NGA",
"566",
"ISO 3166-2:NG"
],
[
"NU",
"NIU",
"570",
"ISO 3166-2:NU"
],
[
"NF",
"NFK",
"574",
"ISO 3166-2:NF"
],
[
"MP",
"MNP",
"580",
"ISO 3166-2:MP"
],
[
"MK",
"MKD",
"807",
"ISO 3166-2:MK"
],
[
"NO",
"NOR",
"578",
"ISO 3166-2:NO"
],
[
"OM",
"OMN",
"512",
"ISO 3166-2:OM"
],
[
"PK",
"PAK",
"586",
"ISO 3166-2:PK"
],
[
"PW",
"PLW",
"585",
"ISO 3166-2:PW"
],
[
"PS",
"PSE",
"275",
"ISO 3166-2:PS"
],
[
"PA",
"PAN",
"591",
"ISO 3166-2:PA"
],
[
"PG",
"PNG",
"598",
"ISO 3166-2:PG"
],
[
"PY",
"PRY",
"600",
"ISO 3166-2:PY"
],
[
"PE",
"PER",
"604",
"ISO 3166-2:PE"
],
[
"PH",
"PHL",
"608",
"ISO 3166-2:PH"
],
[
"PN",
"PCN",
"612",
"ISO 3166-2:PN"
],
[
"PL",
"POL",
"616",
"ISO 3166-2:PL"
],
[
"PT",
"PRT",
"620",
"ISO 3166-2:PT"
],
[
"PR",
"PRI",
"630",
"ISO 3166-2:PR"
],
[
"QA",
"QAT",
"634",
"ISO 3166-2:QA"
],
[
"RE",
"REU",
"638",
"ISO 3166-2:RE"
],
[
"RO",
"ROU",
"642",
"ISO 3166-2:RO"
],
[
"RU",
"RUS",
"643",
"ISO 3166-2:RU"
],
[
"RW",
"RWA",
"646",
"ISO 3166-2:RW"
],
[
"SH",
"SHN",
"654",
"ISO 3166-2:SH"
],
[
"KN",
"KNA",
"659",
"ISO 3166-2:KN"
],
[
"LC",
"LCA",
"662",
"ISO 3166-2:LC"
],
[
"PM",
"SPM",
"666",
"ISO 3166-2:PM"
],
[
"VC",
"VCT",
"670",
"ISO 3166-2:VC"
],
[
"WS",
"WSM",
"882",
"ISO 3166-2:WS"
],
[
"SM",
"SMR",
"674",
"ISO 3166-2:SM"
],
[
"ST",
"STP",
"678",
"ISO 3166-2:ST"
],
[
"SA",
"SAU",
"682",
"ISO 3166-2:SA"
],
[
"SN",
"SEN",
"686",
"ISO 3166-2:SN"
],
[
"SC",
"SYC",
"690",
"ISO 3166-2:SC"
],
[
"SL",
"SLE",
"694",
"ISO 3166-2:SL"
],
[
"SG",
"SGP",
"702",
"ISO 3166-2:SG"
],
[
"SK",
"SVK",
"703",
"ISO 3166-2:SK"
],
[
"SI",
"SVN",
"705",
"ISO 3166-2:SI"
],
[
"SB",
"SLB",
"090",
"ISO 3166-2:SB"
],
[
"SO",
"SOM",
"706",
"ISO 3166-2:SO"
],
[
"ZA",
"ZAF",
"710",
"ISO 3166-2:ZA"
],
[
"GS",
"SGS",
"239",
"ISO 3166-2:GS"
],
[
"ES",
"ESP",
"724",
"ISO 3166-2:ES"
],
[
"LK",
"LKA",
"144",
"ISO 3166-2:LK"
],
[
"SD",
"SDN",
"729",
"ISO 3166-2:SD"
],
[
"SR",
"SUR",
"740",
"ISO 3166-2:SR"
],
[
"SJ",
"SJM",
"744",
"ISO 3166-2:SJ"
],
[
"SZ",
"SWZ",
"748",
"ISO 3166-2:SZ"
],
[
"SE",
"SWE",
"752",
"ISO 3166-2:SE"
],
[
"CH",
"CHE",
"756",
"ISO 3166-2:CH"
],
[
"SY",
"SYR",
"760",
"ISO 3166-2:SY"
],
[
"TW",
"TWN",
"158",
"ISO 3166-2:TW"
],
[
"TJ",
"TJK",
"762",
"ISO 3166-2:TJ"
],
[
"TZ",
"TZA",
"834",
"ISO 3166-2:TZ"
],
[
"TH",
"THA",
"764",
"ISO 3166-2:TH"
],
[
"TL",
"TLS",
"626",
"ISO 3166-2:TL"
],
[
"TG",
"TGO",
"768",
"ISO 3166-2:TG"
],
[
"TK",
"TKL",
"772",
"ISO 3166-2:TK"
],
[
"TO",
"TON",
"776",
"ISO 3166-2:TO"
],
[
"TT",
"TTO",
"780",
"ISO 3166-2:TT"
],
[
"TN",
"TUN",
"788",
"ISO 3166-2:TN"
],
[
"TR",
"TUR",
"792",
"ISO 3166-2:TR"
],
[
"TM",
"TKM",
"795",
"ISO 3166-2:TM"
],
[
"TC",
"TCA",
"796",
"ISO 3166-2:TC"
],
[
"TV",
"TUV",
"798",
"ISO 3166-2:TV"
],
[
"UG",
"UGA",
"800",
"ISO 3166-2:UG"
],
[
"UA",
"UKR",
"804",
"ISO 3166-2:UA"
],
[
"AE",
"ARE",
"784",
"ISO 3166-2:AE"
],
[
"GB",
"GBR",
"826",
"ISO 3166-2:GB"
],
[
"US",
"USA",
"840",
"ISO 3166-2:US"
],
[
"UM",
"UMI",
"581",
"ISO 3166-2:UM"
],
[
"UY",
"URY",
"858",
"ISO 3166-2:UY"
],
[
"UZ",
"UZB",
"860",
"ISO 3166-2:UZ"
],
[
"VU",
"VUT",
"548",
"ISO 3166-2:VU"
],
[
"VE",
"VEN",
"862",
"ISO 3166-2:VE"
],
[
"VN",
"VNM",
"704",
"ISO 3166-2:VN"
],
[
"VG",
"VGB",
"092",
"ISO 3166-2:VG"
],
[
"VI",
"VIR",
"850",
"ISO 3166-2:VI"
],
[
"WF",
"WLF",
"876",
"ISO 3166-2:WF"
],
[
"EH",
"ESH",
"732",
"ISO 3166-2:EH"
],
[
"YE",
"YEM",
"887",
"ISO 3166-2:YE"
],
[
"ZM",
"ZMB",
"894",
"ISO 3166-2:ZM"
],
[
"ZW",
"ZWE",
"716",
"ISO 3166-2:ZW"
],
[
"AX",
"ALA",
"248",
"ISO 3166-2:AX"
],
[
"BQ",
"BES",
"535",
"ISO 3166-2:BQ"
],
[
"CW",
"CUW",
"531",
"ISO 3166-2:CW"
],
[
"GG",
"GGY",
"831",
"ISO 3166-2:GG"
],
[
"IM",
"IMN",
"833",
"ISO 3166-2:IM"
],
[
"JE",
"JEY",
"832",
"ISO 3166-2:JE"
],
[
"ME",
"MNE",
"499",
"ISO 3166-2:ME"
],
[
"BL",
"BLM",
"652",
"ISO 3166-2:BL"
],
[
"MF",
"MAF",
"663",
"ISO 3166-2:MF"
],
[
"RS",
"SRB",
"688",
"ISO 3166-2:RS"
],
[
"SX",
"SXM",
"534",
"ISO 3166-2:SX"
],
[
"SS",
"SSD",
"728",
"ISO 3166-2:SS"
],
[
"XK",
"XKK",
"983",
"ISO 3166-2:XK"
]
];
const require$$1 = [
"br",
"cy",
"dv",
"sw",
"eu",
"af",
"am",
"ha",
"ku",
"ml",
"mt",
"no",
"ps",
"sd",
"so",
"sq",
"ta",
"tg",
"tt",
"ug",
"ur",
"vi",
"ar",
"az",
"be",
"bg",
"bn",
"bs",
"ca",
"cs",
"da",
"de",
"el",
"en",
"es",
"et",
"fa",
"fi",
"fr",
"ga",
"gl",
"he",
"hi",
"hr",
"hu",
"hy",
"id",
"is",
"it",
"ja",
"ka",
"kk",
"km",
"ko",
"ky",
"lt",
"lv",
"mk",
"mn",
"mr",
"ms",
"nb",
"nl",
"nn",
"pl",
"pt",
"ro",
"ru",
"sk",
"sl",
"sr",
"sv",
"th",
"tr",
"uk",
"uz",
"zh"
];
var diacritics = {};
diacritics.remove = removeDiacritics;
var replacementList = [
{
base: " ",
chars: " "
},
{
base: "0",
chars: "߀"
},
{
base: "A",
chars: "ⒶAÀÁÂẦẤẪẨÃĀĂẰẮẴẲȦǠÄǞẢÅǺǍȀȂẠẬẶḀĄȺⱯ"
},
{
base: "AA",
chars: "Ꜳ"
},
{
base: "AE",
chars: "ÆǼǢ"
},
{
base: "AO",
chars: "Ꜵ"
},
{
base: "AU",
chars: "Ꜷ"
},
{
base: "AV",
chars: "ꜸꜺ"
},
{
base: "AY",
chars: "Ꜽ"
},
{
base: "B",
chars: "ⒷBḂḄḆɃƁ"
},
{
base: "C",
chars: "ⒸCꜾḈĆCĈĊČÇƇȻ"
},
{
base: "D",
chars: "ⒹDḊĎḌḐḒḎĐƊƉᴅꝹ"
},
{
base: "Dh",
chars: "Ð"
},
{
base: "DZ",
chars: "DZDŽ"
},
{
base: "Dz",
chars: "DzDž"
},
{
base: "E",
chars: "ɛⒺEÈÉÊỀẾỄỂẼĒḔḖĔĖËẺĚȄȆẸỆȨḜĘḘḚƐƎᴇ"
},
{
base: "F",
chars: "ꝼⒻFḞƑꝻ"
},
{
base: "G",
chars: "ⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾɢ"
},
{
base: "H",
chars: "ⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ"
},
{
base: "I",
chars: "ⒾIÌÍÎĨĪĬİÏḮỈǏȈȊỊĮḬƗ"
},
{
base: "J",
chars: "ⒿJĴɈȷ"
},
{
base: "K",
chars: "ⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ"
},
{
base: "L",
chars: "ⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"
},
{
base: "LJ",
chars: "LJ"
},
{
base: "Lj",
chars: "Lj"
},
{
base: "M",
chars: "ⓂMḾṀṂⱮƜϻ"
},
{
base: "N",
chars: "ꞤȠⓃNǸŃÑṄŇṆŅṊṈƝꞐᴎ"
},
{
base: "NJ",
chars: "NJ"
},
{
base: "Nj",
chars: "Nj"
},
{
base: "O",
chars: "ⓄOÒÓÔỒỐỖỔÕṌȬṎŌṐṒŎȮȰÖȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬØǾƆƟꝊꝌ"
},
{
base: "OE",
chars: "Œ"
},
{
base: "OI",
chars: "Ƣ"
},
{
base: "OO",
chars: "Ꝏ"
},
{
base: "OU",
chars: "Ȣ"
},
{
base: "P",
chars: "ⓅPṔṖƤⱣꝐꝒꝔ"
},
{
base: "Q",
chars: "ⓆQꝖꝘɊ"
},
{
base: "R",
chars: "ⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"
},
{
base: "S",
chars: "ⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"
},
{
base: "T",
chars: "ⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ"
},
{
base: "Th",
chars: "Þ"
},
{
base: "TZ",
chars: "Ꜩ"
},
{
base: "U",
chars: "ⓊUÙÚÛŨṸŪṺŬÜǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"
},
{
base: "V",
chars: "ⓋVṼṾƲꝞɅ"
},
{
base: "VY",
chars: "Ꝡ"
},
{
base: "W",
chars: "ⓌWẀẂŴẆẄẈⱲ"
},
{
base: "X",
chars: "ⓍXẊẌ"
},
{
base: "Y",
chars: "ⓎYỲÝŶỸȲẎŸỶỴƳɎỾ"
},
{
base: "Z",
chars: "ⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ"
},
{
base: "a",
chars: "ⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐɑ"
},
{
base: "aa",
chars: "ꜳ"
},
{
base: "ae",
chars: "æǽǣ"
},
{
base: "ao",
chars: "ꜵ"
},
{
base: "au",
chars: "ꜷ"
},
{
base: "av",
chars: "ꜹꜻ"
},
{
base: "ay",
chars: "ꜽ"
},
{
base: "b",
chars: "ⓑbḃḅḇƀƃɓƂ"
},
{
base: "c",
chars: "cⓒćĉċčçḉƈȼꜿↄ"
},
{
base: "d",
chars: "ⓓdḋďḍḑḓḏđƌɖɗƋᏧԁꞪ"
},
{
base: "dh",
chars: "ð"
},
{
base: "dz",
chars: "dzdž"
},
{
base: "e",
chars: "ⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇǝ"
},
{
base: "f",
chars: "ⓕfḟƒ"
},
{
base: "ff",
chars: "ff"
},
{
base: "fi",
chars: "fi"
},
{
base: "fl",
chars: "fl"
},
{
base: "ffi",
chars: "ffi"
},
{
base: "ffl",
chars: "ffl"
},
{
base: "g",
chars: "ⓖgǵĝḡğġǧģǥɠꞡꝿᵹ"
},
{
base: "h",
chars: "ⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ"
},
{
base: "hv",
chars: "ƕ"
},
{
base: "i",
chars: "ⓘiìíîĩīĭïḯỉǐȉȋịįḭɨı"
},
{
base: "j",
chars: "ⓙjĵǰɉ"
},
{
base: "k",
chars: "ⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ"
},
{
base: "l",
chars: "ⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇɭ"
},
{
base: "lj",
chars: "lj"
},
{
base: "m",
chars: "ⓜmḿṁṃɱɯ"
},
{
base: "n",
chars: "ⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥлԉ"
},
{
base: "nj",
chars: "nj"
},
{
base: "o",
chars: "ⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿꝋꝍɵɔᴑ"
},
{
base: "oe",
chars: "œ"
},
{
base: "oi",
chars: "ƣ"
},
{
base: "oo",
chars: "ꝏ"
},
{
base: "ou",
chars: "ȣ"
},
{
base: "p",
chars: "ⓟpṕṗƥᵽꝑꝓꝕρ"
},
{
base: "q",
chars: "ⓠqɋꝗꝙ"
},
{
base: "r",
chars: "ⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"
},
{
base: "s",
chars: "ⓢsśṥŝṡšṧṣṩșşȿꞩꞅẛʂ"
},
{
base: "ss",
chars: "ß"
},
{
base: "t",
chars: "ⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ"
},
{
base: "th",
chars: "þ"
},
{
base: "tz",
chars: "ꜩ"
},
{
base: "u",
chars: "ⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"
},
{
base: "v",
chars: "ⓥvṽṿʋꝟʌ"
},
{
base: "vy",
chars: "ꝡ"
},
{
base: "w",
chars: "ⓦwẁẃŵẇẅẘẉⱳ"
},
{
base: "x",
chars: "ⓧxẋẍ"
},
{
base: "y",
chars: "ⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ"
},
{
base: "z",
chars: "ⓩzźẑżžẓẕƶȥɀⱬꝣ"
}
];
var diacriticsMap = {};
for (var i = 0; i < replacementList.length; i += 1) {
var chars = replacementList[i].chars;
for (var j = 0; j < chars.length; j += 1) {
diacriticsMap[chars[j]] = replacementList[i].base;
}
}
function removeDiacritics(str) {
return str.replace(/[^\u0000-\u007e]/g, function(c) {
return diacriticsMap[c] || c;
});
}
diacritics.replacementList = replacementList;
diacritics.diacriticsMap = diacriticsMap;
(function(exports) {
const codes = require$$0;
const supportedLocales = require$$1;
const removeDiacritics2 = diacritics.remove;
const registeredLocales = {};
const alpha2 = {}, alpha3 = {}, numeric = {}, invertedNumeric = {};
codes.forEach(function(codeInformation) {
const s = codeInformation;
alpha2[s[0]] = s[1];
alpha3[s[1]] = s[0];
numeric[s[2]] = s[0];
invertedNumeric[s[0]] = s[2];
});
function formatNumericCode(code) {
return String("000" + (code ? code : "")).slice(-3);
}
function hasOwnProperty(object, property) {
return Object.prototype.hasOwnProperty.call(object, property);
}
function localeFilter(localeList, filter) {
return Object.keys(localeList).reduce(function(newLocaleList, alpha22) {
const nameList = localeList[alpha22];
newLocaleList[alpha22] = filter(nameList, alpha22);
return newLocaleList;
}, {});
}
function filterNameBy(type, countryNameList) {
switch (type) {
case "official":
return Array.isArray(countryNameList) ? countryNameList[0] : countryNameList;
case "all":
return typeof countryNameList === "string" ? [countryNameList] : countryNameList;
case "alias":
return Array.isArray(countryNameList) ? countryNameList[1] || countryNameList[0] : countryNameList;
default:
throw new TypeError(
"LocaleNameType must be one of these: all, official, alias!"
);
}
}
exports.registerLocale = function(localeData) {
if (!localeData.locale) {
throw new TypeError("Missing localeData.locale");
}
if (!localeData.countries) {
throw new TypeError("Missing localeData.countries");
}
registeredLocales[localeData.locale] = localeData.countries;
};
function alpha3ToAlpha2(code) {
return alpha3[code];
}
exports.alpha3ToAlpha2 = alpha3ToAlpha2;
function alpha2ToAlpha3(code) {
return alpha2[code];
}
exports.alpha2ToAlpha3 = alpha2ToAlpha3;
function alpha3ToNumeric(code) {
return invertedNumeric[alpha3ToAlpha2(code)];
}
exports.alpha3ToNumeric = alpha3ToNumeric;
function alpha2ToNumeric(code) {
return invertedNumeric[code];
}
exports.alpha2ToNumeric = alpha2ToNumeric;
function numericToAlpha3(code) {
const padded = formatNumericCode(code);
return alpha2ToAlpha3(numeric[padded]);
}
exports.numericToAlpha3 = numericToAlpha3;
function numericToAlpha2(code) {
const padded = formatNumericCode(code);
return numeric[padded];
}
exports.numericToAlpha2 = numericToAlpha2;
function toAlpha3(code) {
if (typeof code === "string") {
if (/^[0-9]*$/.test(code)) {
return numericToAlpha3(code);
}
if (code.length === 2) {
return alpha2ToAlpha3(code.toUpperCase());
}
if (code.length === 3) {
return code.toUpperCase();
}
}
if (typeof code === "number") {
return numericToAlpha3(code);
}
return void 0;
}
exports.toAlpha3 = toAlpha3;
function toAlpha2(code) {
if (typeof code === "string") {
if (/^[0-9]*$/.test(code)) {
return numericToAlpha2(code);
}
if (code.length === 2) {
return code.toUpperCase();
}
if (code.length === 3) {
return alpha3ToAlpha2(code.toUpperCase());
}
}
if (typeof code === "number") {
return numericToAlpha2(code);
}
return void 0;
}
exports.toAlpha2 = toAlpha2;
exports.getName = function(code, lang, options = {}) {
if (!("select" in options)) {
options.select = "official";
}
try {
const codeMaps = registeredLocales[lang.toLowerCase()];
const nameList = codeMaps[toAlpha2(code)];
return filterNameBy(options.select, nameList);
} catch (err) {
return void 0;
}
};
exports.getNames = function(lang, options = {}) {
if (!("select" in options)) {
options.select = "official";
}
const localeList = registeredLocales[lang.toLowerCase()];
if (localeList === void 0)
return {};
return localeFilter(localeList, function(nameList) {
return filterNameBy(options.select, nameList);
});
};
exports.getAlpha2Code = function(name, lang) {
const normalizeString = (string) => string.toLowerCase();
const areSimilar = (a, b) => normalizeString(a) === normalizeString(b);
try {
const codenames = registeredLocales[lang.toLowerCase()];
for (const p in codenames) {
if (!hasOwnProperty(codenames, p)) {
continue;
}
if (typeof codenames[p] === "string") {
if (areSimilar(codenames[p], name)) {
return p;
}
}
if (Array.isArray(codenames[p])) {
for (const mappedName of codenames[p]) {
if (areSimilar(mappedName, name)) {
return p;
}
}
}
}
return void 0;
} catch (err) {
return void 0;
}
};
exports.getSimpleAlpha2Code = function(name, lang) {
const normalizeString = (string) => removeDiacritics2(string.toLowerCase());
const areSimilar = (a, b) => normalizeString(a) === normalizeString(b);
try {
const codenames = registeredLocales[lang.toLowerCase()];
for (const p in codenames) {
if (!hasOwnProperty(codenames, p)) {
continue;
}
if (typeof codenames[p] === "string") {
if (areSimilar(codenames[p], name)) {
return p;
}
}
if (Array.isArray(codenames[p])) {
for (const mappedName of codenames[p]) {
if (areSimilar(mappedName, name)) {
return p;
}
}
}
}
return void 0;
} catch (err) {
return void 0;
}
};
exports.getAlpha2Codes = function() {
return alpha2;
};
exports.getAlpha3Code = function(name, lang) {
const alpha22 = exports.getAlpha2Code(name, lang);
if (alpha22) {
return exports.toAlpha3(alpha22);
} else {
return void 0;
}
};
exports.getSimpleAlpha3Code = function(name, lang) {
const alpha22 = exports.getSimpleAlpha2Code(name, lang);
if (alpha22) {
return exports.toAlpha3(alpha22);
} else {
return void 0;
}
};
exports.getAlpha3Codes = function() {
return alpha3;
};
exports.getNumericCodes = function() {
return numeric;
};
exports.langs = function() {
return Object.keys(registeredLocales);
};
exports.getSupportedLanguages = function() {
return supportedLocales;
};
exports.isValid = function(code) {
if (!code) {
return false;
}
const coerced = code.toString().toUpperCase();
return hasOwnProperty(alpha3, coerced) || hasOwnProperty(alpha2, coerced) || hasOwnProperty(numeric, coerced);
};
})(i18nIsoCountries);
const countries$1d = /* @__PURE__ */ getDefaultExportFromCjs(i18nIsoCountries);
var iso3166_min = { exports: {} };
iso3166_min.exports;
(function(module) {
(function() {
var data = { BD: { name: "Bangladesh", sub: { "BD-E": { type: "Division", name: "Rajshahi" }, "BD-41": { type: "District", name: "Netrakona" }, "BD-G": { type: "Division", name: "Sylhet" }, "BD-38": { type: "District", name: "Moulvibazar" }, "BD-A": { type: "Division", name: "Barisal" }, "BD-C": { type: "Division", name: "Dhaka" }, "BD-B": { type: "Division", name: "Chittagong" }, "BD-D": { type: "Division", name: "Khulna" }, "BD-46": { type: "District", name: "Nilphamari" }, "BD-59": { type: "District", name: "Sirajganj" }, "BD-55": { type: "District", name: "Rangpur" }, "BD-47": { type: "District", name: "Noakhali" }, "BD-60": { type: "District", name: "Sylhet" }, "BD-49": { type: "District", name: "Pabna" }, "BD-62": { type: "District", name: "Shariatpur" }, "BD-63": { type: "District", name: "Tangail" }, "BD-64": { type: "District", name: "Thakurgaon" }, "BD-22": { type: "District", name: "Jessore" }, "BD-36": { type: "District", name: "Madaripur" }, "BD-61": { type: "District", name: "Sunamganj" }, "BD-23": { type: "District", name: "Jhenaidah" }, "BD-06": { type: "District", name: "Barisal" }, "BD-07": { type: "District", name: "Bhola" }, "BD-04": { type: "District", name: "Brahmanbaria" }, "BD-05": { type: "District", name: "Bagerhat" }, "BD-02": { type: "District", name: "Barguna" }, "BD-03": { type: "District", name: "Bogra" }, "BD-01": { type: "District", name: "Bandarban" }, "BD-24": { type: "District", name: "Jaipurhat" }, "BD-25": { type: "District", name: "Jhalakati" }, "BD-26": { type: "District", name: "Kishoreganj" }, "BD-27": { type: "District", name: "Khulna" }, "BD-20": { type: "District", name: "Habiganj" }, "BD-21": { type: "District", name: "Jamalpur" }, "BD-08": { type: "District", name: "Comilla" }, "BD-09": { type: "District", name: "Chandpur" }, "BD-35": { type: "District", name: "Munshiganj" }, "BD-54": { type: "District", name: "Rajshahi" }, "BD-33": { type: "District", name: "Manikganj" }, "BD-58": { type: "District", name: "Satkhira" }, "BD-F": { type: "Division", name: "Rangpur" }, "BD-32": { type: "District", name: "Lalmonirhat" }, "BD-31": { type: "District", name: "Lakshmipur" }, "BD-53": { type: "District", name: "Rajbari" }, "BD-30": { type: "District", name: "Kushtia" }, "BD-28": { type: "District", name: "Kurigram" }, "BD-44": { type: "District", name: "Natore" }, "BD-48": { type: "District", name: "Naogaon" }, "BD-29": { type: "District", name: "Khagrachari" }, "BD-15": { type: "District", name: "Faridpur" }, "BD-14": { type: "District", name: "Dinajpur" }, "BD-17": { type: "District", name: "Gopalganj" }, "BD-16": { type: "District", name: "Feni" }, "BD-11": { type: "District", name: "Cox's Bazar" }, "BD-10": { type: "District", name: "Chittagong" }, "BD-13": { type: "District", name: "Dhaka" }, "BD-12": { type: "District", name: "Chuadanga" }, "BD-51": { type: "District", name: "Patuakhali" }, "BD-50": { type: "District", name: "Pirojpur" }, "BD-39": { type: "District", name: "Meherpur" }, "BD-34": { type: "District", name: "Mymensingh" }, "BD-19": { type: "District", name: "Gaibandha" }, "BD-18": { type: "District", name: "Gazipur" }, "BD-57": { type: "District", name: "Sherpur" }, "BD-52": { type: "District", name: "Panchagarh" }, "BD-42": { type: "District", name: "Narsingdi" }, "BD-45": { type: "District", name: "Nawabganj" }, "BD-43": { type: "District", name: "Narail" }, "BD-37": { type: "District", name: "Magura" }, "BD-40": { type: "District", name: "Narayanganj" }, "BD-56": { type: "District", name: "Rangamati" } } }, BE: { name: "Belgium", sub: { "BE-VWV": { type: "Province", name: "West-Vlaanderen" }, "BE-VAN": { type: "Province", name: "Antwerpen" }, "BE-VLG": { type: "Region", name: "Vlaams Gewest" }, "BE-VLI": { type: "Province", name: "Limburg" }, "BE-WBR": { type: "Province", name: "Brabant wallon" }, "BE-VBR": { type: "Province", name: "Vlaams-Brabant" }, "BE-VOV": { type: "Province", name: "Oost-Vlaanderen" }, "BE-WLG": { type: "Province", name: "Liège" }, "BE-WLX": { type: "Province", name: "Luxembourg" }, "BE-WHT": { type: "Province", name: "Hainaut" }, "BE-WAL": { type: "Region", name: "wallonne, Région" }, "BE-BRU": { type: "Region", name: "Brussels Hoofdstedelijk Gewest" }, "BE-WNA": { type: "Province", name: "Namur" } } }, BF: { name: "Burkina Faso", sub: { "BF-SEN": { type: "Province", name: "Séno" }, "BF-KEN": { type: "Province", name: "Kénédougou" }, "BF-BLK": { type: "Province", name: "Boulkiemdé" }, "BF-NAM": { type: "Province", name: "Namentenga" }, "BF-NAO": { type: "Province", name: "Nahouri" }, "BF-BLG": { type: "Province", name: "Boulgou" }, "BF-KOP": { type: "Province", name: "Koulpélogo" }, "BF-KAD": { type: "Province", name: "Kadiogo" }, "BF-01": { type: "Region", name: "Boucle du Mouhoun" }, "BF-02": { type: "Region", name: "Cascades" }, "BF-03": { type: "Region", name: "Centre" }, "BF-04": { type: "Region", name: "Centre-Est" }, "BF-05": { type: "Region", name: "Centre-Nord" }, "BF-06": { type: "Region", name: "Centre-Ouest" }, "BF-07": { type: "Region", name: "Centre-Sud" }, "BF-08": { type: "Region", name: "Est" }, "BF-09": { type: "Region", name: "Hauts-Bassins" }, "BF-YAT": { type: "Province", name: "Yatenga" }, "BF-PAS": { type: "Province", name: "Passoré" }, "BF-YAG": { type: "Province", name: "Yagha" }, "BF-IOB": { type: "Province", name: "Ioba" }, "BF-GNA": { type: "Province", name: "Gnagna" }, "BF-PON": { type: "Province", name: "Poni" }, "BF-HOU": { type: "Province", name: "Houet" }, "BF-LER": { type: "Province", name: "Léraba" }, "BF-KMD": { type: "Province", name: "Komondjari" }, "BF-SMT": { type: "Province", name: "Sanmatenga" }, "BF-ZON": { type: "Province", name: "Zondoma" }, "BF-MOU": { type: "Province", name: "Mouhoun" }, "BF-COM": { type: "Province", name: "Comoé" }, "BF-TUI": { type: "Province", name: "Tui" }, "BF-SIS": { type: "Province", name: "Sissili" }, "BF-GAN": { type: "Province", name: "Ganzourgou" }, "BF-BGR": { type: "Province", name: "Bougouriba" }, "BF-SOR": { type: "Province", name: "Sourou" }, "BF-ZIR": { type: "Province", name: "Ziro" }, "BF-KOW": { type: "Province", name: "Kourwéogo" }, "BF-SOM": { type: "Province", name: "Soum" }, "BF-KOT": { type: "Province", name: "Kouritenga" }, "BF-13": { type: "Region", name: "Sud-Ouest" }, "BF-12": { type: "Region", name: "Sahel" }, "BF-11": { type: "Region", name: "Plateau-Central" }, "BF-10": { type: "Region", name: "Nord" }, "BF-ZOU": { type: "Province", name: "Zoundwéogo" }, "BF-LOR": { type: "Province", name: "Loroum" }, "BF-BAL": { type: "Province", name: "Balé" }, "BF-BAM": { type: "Province", name: "Bam" }, "BF-BAN": { type: "Province", name: "Banwa" }, "BF-OUB": { type: "Province", name: "Oubritenga" }, "BF-OUD": { type: "Province", name: "Oudalan" }, "BF-NAY": { type: "Province", name: "Nayala" }, "BF-NOU": { type: "Province", name: "Noumbiel" }, "BF-KOS": { type: "Province", name: "Kossi" }, "BF-TAP": { type: "Province", name: "Tapoa" }, "BF-BAZ": { type: "Province", name: "Bazèga" }, "BF-SNG": { type: "Province", name: "Sanguié" }, "BF-KMP": { type: "Province", name: "Kompienga" }, "BF-GOU": { type: "Province", name: "Gourma" } } }, BG: { name: "Bulgaria", sub: { "BG-14": { type: "Region", name: "Pernik" }, "BG-15": { type: "Region", name: "Pleven" }, "BG-16": { type: "Region", name: "Plovdiv" }, "BG-17": { type: "Region", name: "Razgrad" }, "BG-10": { type: "Region", name: "Kyustendil" }, "BG-11": { type: "Region", name: "Lovech" }, "BG-12": { type: "Region", name: "Montana" }, "BG-13": { type: "Region", name: "Pazardzhik" }, "BG-18": { type: "Region", name: "Ruse" }, "BG-19": { type: "Region", name: "Silistra" }, "BG-25": { type: "Region", name: "Targovishte" }, "BG-24": { type: "Region", name: "Stara Zagora" }, "BG-27": { type: "Region", name: "Shumen" }, "BG-07": { type: "Region", name: "Gabrovo" }, "BG-06": { type: "Region", name: "Vratsa" }, "BG-23": { type: "Region", name: "Sofia" }, "BG-04": { type: "Region", name: "Veliko Tarnovo" }, "BG-09": { type: "Region", name: "Kardzhali" }, "BG-08": { type: "Region", name: "Dobrich" }, "BG-28": { type: "Region", name: "Yambol" }, "BG-03": { type: "Region", name: "Varna" }, "BG-02": { type: "Region", name: "Burgas" }, "BG-01": { type: "Region", name: "Blagoevgrad" }, "BG-26": { type: "Region", name: "Haskovo" }, "BG-21": { type: "Region", name: "Smolyan" }, "BG-20": { type: "Region", name: "Sliven" }, "BG-05": { type: "Region", name: "Vidin" }, "BG-22": { type: "Region", name: "Sofia" } } }, BA: { name: "Bosnia and Herzegovina", sub: { "BA-BRC": { type: "District with special status", name: "Brčko distrikt" }, "BA-10": { type: "Canton", name: "Kanton br. 10" }, "BA-BIH": { type: "Entity", name: "Federacija Bosne i Hercegovine" }, "BA-09": { type: "Canton", name: "Kanton Sarajevo" }, "BA-08": { type: "Canton", name: "Zapadnohercegovačka županija" }, "BA-SRP": { type: "Entity", name: "Republika Srpska" }, "BA-05": { type: "Canton", name: "Bosansko-podrinjska županija" }, "BA-04": { type: "Canton", name: "Zeničko-dobojska županija" }, "BA-07": { type: "Canton", name: "Hercegovačko-neretvanska županija" }, "BA-06": { type: "Canton", name: "Srednjobosanska županija" }, "BA-01": { type: "Canton", name: "Unsko-sanska županija" }, "BA-03": { type: "Canton", name: "Tuzlanska županija" }, "BA-02": { type: "Canton", name: "Posavska županija" } } }, BB: { name: "Barbados", sub: { "BB-11": { type: "Parish", name: "Saint Thomas" }, "BB-10": { type: "Parish", name: "Saint Philip" }, "BB-08": { type: "Parish", name: "Saint Michael" }, "BB-09": { type: "Parish", name: "Saint Peter" }, "BB-04": { type: "Parish", name: "Saint James" }, "BB-05": { type: "Parish", name: "Saint John" }, "BB-06": { type: "Parish", name: "Saint Joseph" }, "BB-07": { type: "Parish", name: "Saint Lucy" }, "BB-01": { type