UNPKG

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
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