react-circle-flags
Version:
A React component with a collection of 300+ minimal circular SVG country flags
2 lines (1 loc) • 6.78 kB
JavaScript
var t,e=(t=require("react"))&&"object"==typeof t&&"default"in t?t.default:t;function n(){return(n=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}function r(t,e){return(r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t})(t,e)}function a(t,e){if(null==t)return{};var n,r,a={},s=Object.keys(t);for(r=0;r<s.length;r++)e.indexOf(n=s[r])>=0||(a[n]=t[n]);return a}var s={ac:!0,ad:!0,ae:!0,"af-emirate":!0,af:!0,ag:!0,ai:!0,al:!0,am:!0,an:!0,ao:!0,"aq-true_south":!0,aq:!0,ar:!0,as:!0,at:!0,"au-aboriginal":!0,"au-act":!0,"au-nsw":!0,"au-nt":!0,"au-qld":!0,"au-sa":!0,"au-tas":!0,"au-torres_strait_islands":!0,"au-vic":!0,"au-wa":!0,au:!0,aw:!0,ax:!0,az:!0,ba:!0,bb:!0,bd:!0,be:!0,bf:!0,bg:!0,bh:!0,bi:!0,bj:!0,bl:!0,bm:!0,bn:!0,bo:!0,"bq-bo":!0,"bq-sa":!0,"bq-se":!0,bq:!0,br:!0,bs:!0,bt:!0,bv:!0,bw:!0,by:!0,bz:!0,"ca-bc":!0,"ca-qc":!0,ca:!0,cc:!0,cd:!0,cf:!0,cg:!0,"ch-gr":!0,ch:!0,ci:!0,ck:!0,cl:!0,cm:!0,"cn-hk":!0,"cn-xj":!0,cn:!0,co:!0,cp:!0,cq:!0,cr:!0,cu:!0,cv:!0,cw:!0,cx:!0,cy:!0,cz:!0,de:!0,dg:!0,dj:!0,dk:!0,dm:!0,do:!0,dz:!0,ea:!0,east_african_federation:!0,easter_island:!0,"ec-w":!0,ec:!0,ee:!0,eg:!0,eh:!0,er:!0,"es-ar":!0,"es-ce":!0,"es-cn":!0,"es-ct":!0,"es-ga":!0,"es-ib":!0,"es-ml":!0,"es-pv":!0,"es-variant":!0,es:!0,"et-af":!0,"et-am":!0,"et-be":!0,"et-ga":!0,"et-ha":!0,"et-or":!0,"et-si":!0,"et-sn":!0,"et-so":!0,"et-sw":!0,"et-ti":!0,et:!0,eu:!0,european_union:!0,ewe:!0,fi:!0,fj:!0,fk:!0,fm:!0,fo:!0,"fr-20r":!0,"fr-bre":!0,"fr-cp":!0,fr:!0,fx:!0,ga:!0,"gb-con":!0,"gb-eng":!0,"gb-nir":!0,"gb-ork":!0,"gb-sct":!0,"gb-wls":!0,gb:!0,gd:!0,"ge-ab":!0,ge:!0,gf:!0,gg:!0,gh:!0,gi:!0,gl:!0,gm:!0,gn:!0,gp:!0,gq:!0,gr:!0,gs:!0,gt:!0,gu:!0,guarani:!0,gw:!0,gy:!0,hausa:!0,hk:!0,hm:!0,hmong:!0,hn:!0,hr:!0,ht:!0,hu:!0,ic:!0,"id-jb":!0,"id-jt":!0,id:!0,ie:!0,il:!0,im:!0,"in-as":!0,"in-gj":!0,"in-ka":!0,"in-mn":!0,"in-mz":!0,"in-or":!0,"in-tg":!0,"in-tn":!0,in:!0,io:!0,"iq-kr":!0,iq:!0,ir:!0,is:!0,"it-21":!0,"it-23":!0,"it-25":!0,"it-32":!0,"it-34":!0,"it-36":!0,"it-42":!0,"it-45":!0,"it-52":!0,"it-55":!0,"it-57":!0,"it-62":!0,"it-65":!0,"it-67":!0,"it-72":!0,"it-75":!0,"it-77":!0,"it-78":!0,"it-82":!0,"it-88":!0,it:!0,je:!0,jm:!0,jo:!0,jp:!0,kanuri:!0,ke:!0,kg:!0,kh:!0,ki:!0,kikuyu:!0,km:!0,kn:!0,kongo:!0,kp:!0,kr:!0,kw:!0,ky:!0,kz:!0,la:!0,language:!0,lb:!0,lc:!0,li:!0,lk:!0,lr:!0,ls:!0,lt:!0,lu:!0,lv:!0,ly:!0,ma:!0,malayali:!0,maori:!0,mc:!0,md:!0,me:!0,mf:!0,mg:!0,mh:!0,mk:!0,ml:!0,mm:!0,mn:!0,mo:!0,mp:!0,"mq-old":!0,mq:!0,mr:!0,ms:!0,mt:!0,mu:!0,mv:!0,mw:!0,mx:!0,my:!0,mz:!0,na:!0,nc:!0,ne:!0,nf:!0,ng:!0,ni:!0,"nl-fr":!0,nl:!0,no:!0,northern_cyprus:!0,np:!0,nr:!0,nu:!0,nz:!0,occitania:!0,om:!0,other:!0,otomi:!0,pa:!0,pe:!0,pf:!0,pg:!0,ph:!0,"pk-jk":!0,"pk-sd":!0,pk:!0,pl:!0,pm:!0,pn:!0,pr:!0,ps:!0,"pt-20":!0,"pt-30":!0,pt:!0,pw:!0,py:!0,qa:!0,quechua:!0,re:!0,ro:!0,rs:!0,"ru-ba":!0,"ru-ce":!0,"ru-cu":!0,"ru-da":!0,"ru-dpr":!0,"ru-ko":!0,"ru-lpr":!0,"ru-ta":!0,"ru-ud":!0,ru:!0,rw:!0,sa:!0,sami:!0,sb:!0,sc:!0,sd:!0,se:!0,sg:!0,"sh-ac":!0,"sh-hl":!0,"sh-ta":!0,sh:!0,si:!0,sj:!0,sk:!0,sl:!0,sm:!0,sn:!0,so:!0,somaliland:!0,south_ossetia:!0,soviet_union:!0,sr:!0,ss:!0,st:!0,su:!0,sv:!0,sx:!0,sy:!0,sz:!0,ta:!0,tc:!0,td:!0,tf:!0,tg:!0,th:!0,tibet:!0,tj:!0,tk:!0,tl:!0,tm:!0,tn:!0,to:!0,tr:!0,transnistria:!0,tt:!0,tv:!0,tw:!0,tz:!0,ua:!0,ug:!0,uk:!0,um:!0,un:!0,"us-ak":!0,"us-al":!0,"us-ar":!0,"us-as":!0,"us-az":!0,"us-betsy_ross":!0,"us-ca":!0,"us-co":!0,"us-confederate_battle":!0,"us-dc":!0,"us-fl":!0,"us-ga":!0,"us-gu":!0,"us-hi":!0,"us-in":!0,"us-md":!0,"us-mo":!0,"us-mp":!0,"us-ms":!0,"us-nc":!0,"us-nm":!0,"us-or":!0,"us-pr":!0,"us-ri":!0,"us-sc":!0,"us-tn":!0,"us-tx":!0,"us-um":!0,"us-vi":!0,"us-wa":!0,"us-wi":!0,"us-wy":!0,us:!0,uy:!0,uz:!0,va:!0,vc:!0,ve:!0,vg:!0,vi:!0,vn:!0,vu:!0,wf:!0,wiphala:!0,ws:!0,xk:!0,xx:!0,ye:!0,yorubaland:!0,yt:!0,yu:!0,za:!0,zm:!0,zw:!0},i={aa:!0,ab:!0,af:!0,ak:!0,am:!0,an:!0,ar:!0,as:!0,av:!0,ay:!0,az:!0,ba:!0,be:!0,bg:!0,bi:!0,bm:!0,bn:!0,bo:!0,br:!0,bs:!0,ca:!0,ce:!0,ceb:!0,ch:!0,chm:!0,ckb:!0,co:!0,cs:!0,cv:!0,cy:!0,da:!0,de:!0,dv:!0,dz:!0,ee:!0,el:!0,"en-au":!0,"en-ca":!0,"en-gh":!0,"en-hk":!0,"en-ie":!0,"en-in":!0,"en-ke":!0,"en-ng":!0,"en-nz":!0,"en-ph":!0,"en-sg":!0,"en-tz":!0,"en-us":!0,"en-za":!0,en:!0,eo:!0,"es-mx":!0,es:!0,et:!0,eu:!0,fa:!0,fi:!0,filenames_without_extensions:!0,fj:!0,fo:!0,fr:!0,fy:!0,ga:!0,gd:!0,gl:!0,gn:!0,gu:!0,gv:!0,ha:!0,haw:!0,he:!0,hi:!0,hmn:!0,ho:!0,hr:!0,ht:!0,hu:!0,hy:!0,ia:!0,id:!0,ie:!0,ig:!0,ilo:!0,interslavic:!0,io:!0,is:!0,it:!0,ja:!0,jv:!0,ka:!0,kg:!0,ki:!0,kk:!0,kl:!0,km:!0,kn:!0,ko:!0,kr:!0,kri:!0,ks:!0,ku:!0,kv:!0,kw:!0,ky:!0,la:!0,lb:!0,lg:!0,ln:!0,lo:!0,lt:!0,lu:!0,lus:!0,lv:!0,mg:!0,mh:!0,mi:!0,mk:!0,ml:!0,mn:!0,mni:!0,mr:!0,mrj:!0,ms:!0,mt:!0,my:!0,na:!0,nb:!0,nd:!0,ne:!0,nl:!0,nn:!0,no:!0,non:!0,nr:!0,ny:!0,oc:!0,om:!0,or:!0,os:!0,oto:!0,pa:!0,pap:!0,pl:!0,ps:!0,"pt-br":!0,pt:!0,qu:!0,rm:!0,rn:!0,ro:!0,ru:!0,rw:!0,sc:!0,sd:!0,se:!0,sg:!0,si:!0,sk:!0,sl:!0,sm:!0,sn:!0,so:!0,sq:!0,sr:!0,ss:!0,st:!0,su:!0,sv:!0,sw:!0,ta:!0,te:!0,tg:!0,th:!0,ti:!0,tk:!0,tl:!0,tn:!0,to:!0,tr:!0,tt:!0,ty:!0,udm:!0,ug:!0,uk:!0,ur:!0,uz:!0,vi:!0,vo:!0,xh:!0,xx:!0,yi:!0,yo:!0,yua:!0,zh:!0,zu:!0},u=["countryCode","cdnUrl","inline"],o=["languageCode","cdnUrl","inline"],c=function(t,e,r,a){return void 0===a&&(a=""),n({},r,{title:r.title||t,height:r.height||100,width:r.width||100,src:""+(e||"https://react-circle-flags.pages.dev/")+a+t+".svg"})},g=function(t){var a,s;function i(n){var r;return(r=t.call(this,n)||this).ref=e.createRef(),r}s=t,(a=i).prototype=Object.create(s.prototype),a.prototype.constructor=a,r(a,s);var u=i.prototype;return u.componentDidMount=function(){this.loadSvg()},u.componentDidUpdate=function(t){t.src!==this.props.src&&this.loadSvg()},u.loadSvg=function(){var t=this;fetch(this.props.src).then(function(t){return t.text()}).then(function(e){if(t.ref.current){var n=(new DOMParser).parseFromString(e,"image/svg+xml").documentElement;for(var r in t.props)"src"!==r&&n.setAttribute(r,t.props[r]);t.ref.current.outerHTML=n.outerHTML}})},u.render=function(){return e.createElement("img",n({},this.props,{ref:this.ref}))},i}(e.Component);exports.CircleFlag=function(t){var r=t.countryCode,i=t.cdnUrl,o=t.inline,l=a(t,u);return e.createElement(o?g:"img",n({"data-testid":"circle-country-flag"},c(function(t){return s[t]?t:"xx"}(r).toLowerCase(),i,l)))},exports.CircleFlagLanguage=function(t){var r=t.languageCode,s=t.cdnUrl,u=t.inline,l=a(t,o);return e.createElement(u?g:"img",n({"data-testid":"circle-language-flag"},c(function(t){return i[t]?t:"xx"}(r).toLowerCase(),s,l,"language/")))},exports.countries=s,exports.languages=i;