UNPKG

react-country-flags

Version:
935 lines (902 loc) 25 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } var __chunk_1 = require('./chunk-cf97c2b1.js'); var React = require('react'); var React__default = _interopDefault(React); var PropTypes = _interopDefault(require('prop-types')); var flags = { 'ad': function ad() { return Promise.resolve(require("./FlagAd.js")); }, 'ae': function ae() { return Promise.resolve(require("./FlagAe.js")); }, 'af': function af() { return Promise.resolve(require("./FlagAf.js")); }, 'ag': function ag() { return Promise.resolve(require("./FlagAg.js")); }, 'ai': function ai() { return Promise.resolve(require("./FlagAi.js")); }, 'al': function al() { return Promise.resolve(require("./FlagAl.js")); }, 'am': function am() { return Promise.resolve(require("./FlagAm.js")); }, 'an': function an() { return Promise.resolve(require("./FlagAn.js")); }, 'ao': function ao() { return Promise.resolve(require("./FlagAo.js")); }, 'aq': function aq() { return Promise.resolve(require("./FlagAq.js")); }, 'ar': function ar() { return Promise.resolve(require("./FlagAr.js")); }, 'as': function as() { return Promise.resolve(require("./FlagAs.js")); }, 'at': function at() { return Promise.resolve(require("./FlagAt.js")); }, 'au': function au() { return Promise.resolve(require("./FlagAu.js")); }, 'aw': function aw() { return Promise.resolve(require("./FlagAw.js")); }, 'ax': function ax() { return Promise.resolve(require("./FlagAx.js")); }, 'az': function az() { return Promise.resolve(require("./FlagAz.js")); }, 'ba': function ba() { return Promise.resolve(require("./FlagBa.js")); }, 'bb': function bb() { return Promise.resolve(require("./FlagBb.js")); }, 'bd': function bd() { return Promise.resolve(require("./FlagBd.js")); }, 'be': function be() { return Promise.resolve(require("./FlagBe.js")); }, 'bf': function bf() { return Promise.resolve(require("./FlagBf.js")); }, 'bg': function bg() { return Promise.resolve(require("./FlagBg.js")); }, 'bh': function bh() { return Promise.resolve(require("./FlagBh.js")); }, 'bi': function bi() { return Promise.resolve(require("./FlagBi.js")); }, 'bj': function bj() { return Promise.resolve(require("./FlagBj.js")); }, 'bl': function bl() { return Promise.resolve(require("./FlagBl.js")); }, 'bm': function bm() { return Promise.resolve(require("./FlagBm.js")); }, 'bn': function bn() { return Promise.resolve(require("./FlagBn.js")); }, 'bo': function bo() { return Promise.resolve(require("./FlagBo.js")); }, 'bq': function bq() { return Promise.resolve(require("./FlagBq.js")); }, 'br': function br() { return Promise.resolve(require("./FlagBr.js")); }, 'bs': function bs() { return Promise.resolve(require("./FlagBs.js")); }, 'bt': function bt() { return Promise.resolve(require("./FlagBt.js")); }, 'bv': function bv() { return Promise.resolve(require("./FlagBv.js")); }, 'bw': function bw() { return Promise.resolve(require("./FlagBw.js")); }, 'by': function by() { return Promise.resolve(require("./FlagBy.js")); }, 'bz': function bz() { return Promise.resolve(require("./FlagBz.js")); }, 'ca': function ca() { return Promise.resolve(require("./FlagCa.js")); }, 'cc': function cc() { return Promise.resolve(require("./FlagCc.js")); }, 'cd': function cd() { return Promise.resolve(require("./FlagCd.js")); }, 'cf': function cf() { return Promise.resolve(require("./FlagCf.js")); }, 'cg': function cg() { return Promise.resolve(require("./FlagCg.js")); }, 'ch': function ch() { return Promise.resolve(require("./FlagCh.js")); }, 'ci': function ci() { return Promise.resolve(require("./FlagCi.js")); }, 'ck': function ck() { return Promise.resolve(require("./FlagCk.js")); }, 'cl': function cl() { return Promise.resolve(require("./FlagCl.js")); }, 'cm': function cm() { return Promise.resolve(require("./FlagCm.js")); }, 'cn': function cn() { return Promise.resolve(require("./FlagCn.js")); }, 'co': function co() { return Promise.resolve(require("./FlagCo.js")); }, 'cr': function cr() { return Promise.resolve(require("./FlagCr.js")); }, 'cu': function cu() { return Promise.resolve(require("./FlagCu.js")); }, 'cv': function cv() { return Promise.resolve(require("./FlagCv.js")); }, 'cw': function cw() { return Promise.resolve(require("./FlagCw.js")); }, 'cx': function cx() { return Promise.resolve(require("./FlagCx.js")); }, 'cy': function cy() { return Promise.resolve(require("./FlagCy.js")); }, 'cz': function cz() { return Promise.resolve(require("./FlagCz.js")); }, 'de': function de() { return Promise.resolve(require("./FlagDe.js")); }, 'dj': function dj() { return Promise.resolve(require("./FlagDj.js")); }, 'dk': function dk() { return Promise.resolve(require("./FlagDk.js")); }, 'dm': function dm() { return Promise.resolve(require("./FlagDm.js")); }, 'do': function _do() { return Promise.resolve(require("./FlagDo.js")); }, 'dz': function dz() { return Promise.resolve(require("./FlagDz.js")); }, 'ec': function ec() { return Promise.resolve(require("./FlagEc.js")); }, 'ee': function ee() { return Promise.resolve(require("./FlagEe.js")); }, 'eg': function eg() { return Promise.resolve(require("./FlagEg.js")); }, 'eh': function eh() { return Promise.resolve(require("./FlagEh.js")); }, 'er': function er() { return Promise.resolve(require("./FlagEr.js")); }, 'es': function es() { return Promise.resolve(require("./FlagEs.js")); }, 'et': function et() { return Promise.resolve(require("./FlagEt.js")); }, 'eu': function eu() { return Promise.resolve(require("./FlagEu.js")); }, 'fi': function fi() { return Promise.resolve(require("./FlagFi.js")); }, 'fj': function fj() { return Promise.resolve(require("./FlagFj.js")); }, 'fk': function fk() { return Promise.resolve(require("./FlagFk.js")); }, 'fm': function fm() { return Promise.resolve(require("./FlagFm.js")); }, 'fo': function fo() { return Promise.resolve(require("./FlagFo.js")); }, 'fr': function fr() { return Promise.resolve(require("./FlagFr.js")); }, 'ga': function ga() { return Promise.resolve(require("./FlagGa.js")); }, 'gb': function gb() { return Promise.resolve(require("./FlagGb.js")); }, 'gd': function gd() { return Promise.resolve(require("./FlagGd.js")); }, 'ge': function ge() { return Promise.resolve(require("./FlagGe.js")); }, 'gf': function gf() { return Promise.resolve(require("./FlagGf.js")); }, 'gg': function gg() { return Promise.resolve(require("./FlagGg.js")); }, 'gh': function gh() { return Promise.resolve(require("./FlagGh.js")); }, 'gi': function gi() { return Promise.resolve(require("./FlagGi.js")); }, 'gl': function gl() { return Promise.resolve(require("./FlagGl.js")); }, 'gm': function gm() { return Promise.resolve(require("./FlagGm.js")); }, 'gn': function gn() { return Promise.resolve(require("./FlagGn.js")); }, 'gp': function gp() { return Promise.resolve(require("./FlagGp.js")); }, 'gq': function gq() { return Promise.resolve(require("./FlagGq.js")); }, 'gr': function gr() { return Promise.resolve(require("./FlagGr.js")); }, 'gs': function gs() { return Promise.resolve(require("./FlagGs.js")); }, 'gt': function gt() { return Promise.resolve(require("./FlagGt.js")); }, 'gu': function gu() { return Promise.resolve(require("./FlagGu.js")); }, 'gw': function gw() { return Promise.resolve(require("./FlagGw.js")); }, 'gy': function gy() { return Promise.resolve(require("./FlagGy.js")); }, 'hk': function hk() { return Promise.resolve(require("./FlagHk.js")); }, 'hm': function hm() { return Promise.resolve(require("./FlagHm.js")); }, 'hn': function hn() { return Promise.resolve(require("./FlagHn.js")); }, 'hr': function hr() { return Promise.resolve(require("./FlagHr.js")); }, 'ht': function ht() { return Promise.resolve(require("./FlagHt.js")); }, 'hu': function hu() { return Promise.resolve(require("./FlagHu.js")); }, 'id': function id() { return Promise.resolve(require("./FlagId.js")); }, 'ie': function ie() { return Promise.resolve(require("./FlagIe.js")); }, 'il': function il() { return Promise.resolve(require("./FlagIl.js")); }, 'im': function im() { return Promise.resolve(require("./FlagIm.js")); }, 'in': function _in() { return Promise.resolve(require("./FlagIn.js")); }, 'io': function io() { return Promise.resolve(require("./FlagIo.js")); }, 'iq': function iq() { return Promise.resolve(require("./FlagIq.js")); }, 'ir': function ir() { return Promise.resolve(require("./FlagIr.js")); }, 'is': function is() { return Promise.resolve(require("./FlagIs.js")); }, 'it': function it() { return Promise.resolve(require("./FlagIt.js")); }, 'je': function je() { return Promise.resolve(require("./FlagJe.js")); }, 'jm': function jm() { return Promise.resolve(require("./FlagJm.js")); }, 'jo': function jo() { return Promise.resolve(require("./FlagJo.js")); }, 'jp': function jp() { return Promise.resolve(require("./FlagJp.js")); }, 'ke': function ke() { return Promise.resolve(require("./FlagKe.js")); }, 'kg': function kg() { return Promise.resolve(require("./FlagKg.js")); }, 'kh': function kh() { return Promise.resolve(require("./FlagKh.js")); }, 'ki': function ki() { return Promise.resolve(require("./FlagKi.js")); }, 'km': function km() { return Promise.resolve(require("./FlagKm.js")); }, 'kn': function kn() { return Promise.resolve(require("./FlagKn.js")); }, 'kp': function kp() { return Promise.resolve(require("./FlagKp.js")); }, 'kr': function kr() { return Promise.resolve(require("./FlagKr.js")); }, 'kw': function kw() { return Promise.resolve(require("./FlagKw.js")); }, 'ky': function ky() { return Promise.resolve(require("./FlagKy.js")); }, 'kz': function kz() { return Promise.resolve(require("./FlagKz.js")); }, 'la': function la() { return Promise.resolve(require("./FlagLa.js")); }, 'lb': function lb() { return Promise.resolve(require("./FlagLb.js")); }, 'lc': function lc() { return Promise.resolve(require("./FlagLc.js")); }, 'li': function li() { return Promise.resolve(require("./FlagLi.js")); }, 'lk': function lk() { return Promise.resolve(require("./FlagLk.js")); }, 'lr': function lr() { return Promise.resolve(require("./FlagLr.js")); }, 'ls': function ls() { return Promise.resolve(require("./FlagLs.js")); }, 'lt': function lt() { return Promise.resolve(require("./FlagLt.js")); }, 'lu': function lu() { return Promise.resolve(require("./FlagLu.js")); }, 'lv': function lv() { return Promise.resolve(require("./FlagLv.js")); }, 'ly': function ly() { return Promise.resolve(require("./FlagLy.js")); }, 'ma': function ma() { return Promise.resolve(require("./FlagMa.js")); }, 'mc': function mc() { return Promise.resolve(require("./FlagMc.js")); }, 'md': function md() { return Promise.resolve(require("./FlagMd.js")); }, 'me': function me() { return Promise.resolve(require("./FlagMe.js")); }, 'mf': function mf() { return Promise.resolve(require("./FlagMf.js")); }, 'mg': function mg() { return Promise.resolve(require("./FlagMg.js")); }, 'mh': function mh() { return Promise.resolve(require("./FlagMh.js")); }, 'mk': function mk() { return Promise.resolve(require("./FlagMk.js")); }, 'ml': function ml() { return Promise.resolve(require("./FlagMl.js")); }, 'mm': function mm() { return Promise.resolve(require("./FlagMm.js")); }, 'mn': function mn() { return Promise.resolve(require("./FlagMn.js")); }, 'mo': function mo() { return Promise.resolve(require("./FlagMo.js")); }, 'mp': function mp() { return Promise.resolve(require("./FlagMp.js")); }, 'mq': function mq() { return Promise.resolve(require("./FlagMq.js")); }, 'mr': function mr() { return Promise.resolve(require("./FlagMr.js")); }, 'ms': function ms() { return Promise.resolve(require("./FlagMs.js")); }, 'mt': function mt() { return Promise.resolve(require("./FlagMt.js")); }, 'mu': function mu() { return Promise.resolve(require("./FlagMu.js")); }, 'mv': function mv() { return Promise.resolve(require("./FlagMv.js")); }, 'mw': function mw() { return Promise.resolve(require("./FlagMw.js")); }, 'mx': function mx() { return Promise.resolve(require("./FlagMx.js")); }, 'my': function my() { return Promise.resolve(require("./FlagMy.js")); }, 'mz': function mz() { return Promise.resolve(require("./FlagMz.js")); }, 'na': function na() { return Promise.resolve(require("./FlagNa.js")); }, 'nc': function nc() { return Promise.resolve(require("./FlagNc.js")); }, 'ne': function ne() { return Promise.resolve(require("./FlagNe.js")); }, 'nf': function nf() { return Promise.resolve(require("./FlagNf.js")); }, 'ng': function ng() { return Promise.resolve(require("./FlagNg.js")); }, 'ni': function ni() { return Promise.resolve(require("./FlagNi.js")); }, 'nl': function nl() { return Promise.resolve(require("./FlagNl.js")); }, 'no': function no() { return Promise.resolve(require("./FlagNo.js")); }, 'np': function np() { return Promise.resolve(require("./FlagNp.js")); }, 'nr': function nr() { return Promise.resolve(require("./FlagNr.js")); }, 'nu': function nu() { return Promise.resolve(require("./FlagNu.js")); }, 'nz': function nz() { return Promise.resolve(require("./FlagNz.js")); }, 'om': function om() { return Promise.resolve(require("./FlagOm.js")); }, 'pa': function pa() { return Promise.resolve(require("./FlagPa.js")); }, 'pe': function pe() { return Promise.resolve(require("./FlagPe.js")); }, 'pf': function pf() { return Promise.resolve(require("./FlagPf.js")); }, 'pg': function pg() { return Promise.resolve(require("./FlagPg.js")); }, 'ph': function ph() { return Promise.resolve(require("./FlagPh.js")); }, 'pk': function pk() { return Promise.resolve(require("./FlagPk.js")); }, 'pl': function pl() { return Promise.resolve(require("./FlagPl.js")); }, 'pm': function pm() { return Promise.resolve(require("./FlagPm.js")); }, 'pn': function pn() { return Promise.resolve(require("./FlagPn.js")); }, 'pr': function pr() { return Promise.resolve(require("./FlagPr.js")); }, 'ps': function ps() { return Promise.resolve(require("./FlagPs.js")); }, 'pt': function pt() { return Promise.resolve(require("./FlagPt.js")); }, 'pw': function pw() { return Promise.resolve(require("./FlagPw.js")); }, 'py': function py() { return Promise.resolve(require("./FlagPy.js")); }, 'qa': function qa() { return Promise.resolve(require("./FlagQa.js")); }, 're': function re() { return Promise.resolve(require("./FlagRe.js")); }, 'ro': function ro() { return Promise.resolve(require("./FlagRo.js")); }, 'rs': function rs() { return Promise.resolve(require("./FlagRs.js")); }, 'ru': function ru() { return Promise.resolve(require("./FlagRu.js")); }, 'rw': function rw() { return Promise.resolve(require("./FlagRw.js")); }, 'sa': function sa() { return Promise.resolve(require("./FlagSa.js")); }, 'sb': function sb() { return Promise.resolve(require("./FlagSb.js")); }, 'sc': function sc() { return Promise.resolve(require("./FlagSc.js")); }, 'sd': function sd() { return Promise.resolve(require("./FlagSd.js")); }, 'se': function se() { return Promise.resolve(require("./FlagSe.js")); }, 'sg': function sg() { return Promise.resolve(require("./FlagSg.js")); }, 'sh': function sh() { return Promise.resolve(require("./FlagSh.js")); }, 'si': function si() { return Promise.resolve(require("./FlagSi.js")); }, 'sj': function sj() { return Promise.resolve(require("./FlagSj.js")); }, 'sk': function sk() { return Promise.resolve(require("./FlagSk.js")); }, 'sl': function sl() { return Promise.resolve(require("./FlagSl.js")); }, 'sm': function sm() { return Promise.resolve(require("./FlagSm.js")); }, 'sn': function sn() { return Promise.resolve(require("./FlagSn.js")); }, 'so': function so() { return Promise.resolve(require("./FlagSo.js")); }, 'sr': function sr() { return Promise.resolve(require("./FlagSr.js")); }, 'ss': function ss() { return Promise.resolve(require("./FlagSs.js")); }, 'st': function st() { return Promise.resolve(require("./FlagSt.js")); }, 'sv': function sv() { return Promise.resolve(require("./FlagSv.js")); }, 'sx': function sx() { return Promise.resolve(require("./FlagSx.js")); }, 'sy': function sy() { return Promise.resolve(require("./FlagSy.js")); }, 'sz': function sz() { return Promise.resolve(require("./FlagSz.js")); }, 'tc': function tc() { return Promise.resolve(require("./FlagTc.js")); }, 'td': function td() { return Promise.resolve(require("./FlagTd.js")); }, 'tf': function tf() { return Promise.resolve(require("./FlagTf.js")); }, 'tg': function tg() { return Promise.resolve(require("./FlagTg.js")); }, 'th': function th() { return Promise.resolve(require("./FlagTh.js")); }, 'tj': function tj() { return Promise.resolve(require("./FlagTj.js")); }, 'tk': function tk() { return Promise.resolve(require("./FlagTk.js")); }, 'tl': function tl() { return Promise.resolve(require("./FlagTl.js")); }, 'tm': function tm() { return Promise.resolve(require("./FlagTm.js")); }, 'tn': function tn() { return Promise.resolve(require("./FlagTn.js")); }, 'to': function to() { return Promise.resolve(require("./FlagTo.js")); }, 'tr': function tr() { return Promise.resolve(require("./FlagTr.js")); }, 'tt': function tt() { return Promise.resolve(require("./FlagTt.js")); }, 'tv': function tv() { return Promise.resolve(require("./FlagTv.js")); }, 'tw': function tw() { return Promise.resolve(require("./FlagTw.js")); }, 'tz': function tz() { return Promise.resolve(require("./FlagTz.js")); }, 'ua': function ua() { return Promise.resolve(require("./FlagUa.js")); }, 'ug': function ug() { return Promise.resolve(require("./FlagUg.js")); }, 'um': function um() { return Promise.resolve(require("./FlagUm.js")); }, 'us': function us() { return Promise.resolve(require("./FlagUs.js")); }, 'uy': function uy() { return Promise.resolve(require("./FlagUy.js")); }, 'uz': function uz() { return Promise.resolve(require("./FlagUz.js")); }, 'va': function va() { return Promise.resolve(require("./FlagVa.js")); }, 'vc': function vc() { return Promise.resolve(require("./FlagVc.js")); }, 've': function ve() { return Promise.resolve(require("./FlagVe.js")); }, 'vg': function vg() { return Promise.resolve(require("./FlagVg.js")); }, 'vi': function vi() { return Promise.resolve(require("./FlagVi.js")); }, 'vn': function vn() { return Promise.resolve(require("./FlagVn.js")); }, 'vu': function vu() { return Promise.resolve(require("./FlagVu.js")); }, 'wf': function wf() { return Promise.resolve(require("./FlagWf.js")); }, 'ws': function ws() { return Promise.resolve(require("./FlagWs.js")); }, 'xk': function xk() { return Promise.resolve(require("./FlagXk.js")); }, 'ye': function ye() { return Promise.resolve(require("./FlagYe.js")); }, 'yt': function yt() { return Promise.resolve(require("./FlagYt.js")); }, 'za': function za() { return Promise.resolve(require("./FlagZa.js")); }, 'zm': function zm() { return Promise.resolve(require("./FlagZm.js")); }, 'zw': function zw() { return Promise.resolve(require("./FlagZw.js")); } }; var fetchFlag = /*#__PURE__*/ function () { var _ref = __chunk_1._asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee(country) { var _ref2, data; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (flags[country]) { _context.next = 2; break; } return _context.abrupt("return", Promise.resolve(null)); case 2: _context.next = 4; return flags[country](); case 4: _ref2 = _context.sent; data = _ref2.default; return _context.abrupt("return", data); case 7: case "end": return _context.stop(); } } }, _callee, this); })); return function fetchFlag(_x) { return _ref.apply(this, arguments); }; }(); // thanks to https://github.com/facebook/react/issues/5465#issuecomment-157888325 var makeCancelable = function makeCancelable(promise) { var hasCanceled_ = false; var wrappedPromise = new Promise(function (resolve, reject) { promise.then(function (val) { return hasCanceled_ ? reject({ isCanceled: true }) : resolve(val); }, function (error) { return hasCanceled_ ? reject({ isCanceled: true }) : reject(error); }); }); return { promise: wrappedPromise, cancel: function cancel() { hasCanceled_ = true; } }; }; var countries = function () { return Object.keys(flags); }(); var Flags = /*#__PURE__*/ function (_Component) { __chunk_1._inherits(Flags, _Component); function Flags() { var _getPrototypeOf2; var _this; __chunk_1._classCallCheck(this, Flags); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = __chunk_1._possibleConstructorReturn(this, (_getPrototypeOf2 = __chunk_1._getPrototypeOf(Flags)).call.apply(_getPrototypeOf2, [this].concat(args))); __chunk_1._defineProperty(__chunk_1._assertThisInitialized(__chunk_1._assertThisInitialized(_this)), "cancelUpdate", function () {}); __chunk_1._defineProperty(__chunk_1._assertThisInitialized(__chunk_1._assertThisInitialized(_this)), "state", { flag: null }); return _this; } __chunk_1._createClass(Flags, [{ key: "componentDidMount", value: function componentDidMount() { this.updateFlag(); } }, { key: "componentDidUpdate", value: function componentDidUpdate(prevProps) { var country = this.props.country; if (country !== prevProps.country) { this.updateFlag(); } } }, { key: "componentWillUnmount", value: function componentWillUnmount() { this.cancelUpdate(); } }, { key: "updateFlag", value: function updateFlag() { var _this2 = this; var country = this.props.country; var _makeCancelable = makeCancelable(fetchFlag(country)), promise = _makeCancelable.promise, cancel = _makeCancelable.cancel; promise.then(function (flag) { _this2.setState({ flag: flag }); }); this.cancelUpdate = cancel; } }, { key: "render", value: function render() { var _this$props = this.props, asSquare = _this$props.asSquare, country = _this$props.country, props = __chunk_1._objectWithoutProperties(_this$props, ["asSquare", "country"]); var flag = this.state.flag; if (!flag && !asSquare) return null; if (!asSquare) return React.createElement(flag, props); return React__default.createElement("svg", __chunk_1._extends({ viewBox: "0 0 100 100", preserveAspectRatio: "xMidYMid" }, props), !flag ? null : React.createElement(flag)); } }]); return Flags; }(React.PureComponent); __chunk_1._defineProperty(Flags, "defaultProps", { country: null, asSquare: false }); Flags.propTypes = { country: PropTypes.string, asSquare: PropTypes.bool }; exports.countries = countries; exports.default = Flags; //# sourceMappingURL=index.js.map