arevdata 0.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/README.md +499 -0
  2. package/dist/arevdata.cjs +38955 -0
  3. package/dist/arevdata.cjs.map +1 -0
  4. package/dist/arevdata.js +38955 -0
  5. package/dist/arevdata.js.map +1 -0
  6. package/dist/assets/flags/LICENSE.flag-icons.txt +21 -0
  7. package/dist/assets/flags/README.md +11 -0
  8. package/dist/assets/flags/index.html +88 -0
  9. package/dist/assets/flags/overrides/xn.svg +6 -0
  10. package/dist/assets/flags/svg/ad.svg +150 -0
  11. package/dist/assets/flags/svg/ae.svg +6 -0
  12. package/dist/assets/flags/svg/af.svg +81 -0
  13. package/dist/assets/flags/svg/ag.svg +14 -0
  14. package/dist/assets/flags/svg/al.svg +5 -0
  15. package/dist/assets/flags/svg/am.svg +5 -0
  16. package/dist/assets/flags/svg/ao.svg +13 -0
  17. package/dist/assets/flags/svg/ar.svg +32 -0
  18. package/dist/assets/flags/svg/at.svg +4 -0
  19. package/dist/assets/flags/svg/au.svg +8 -0
  20. package/dist/assets/flags/svg/az.svg +8 -0
  21. package/dist/assets/flags/svg/ba.svg +12 -0
  22. package/dist/assets/flags/svg/bb.svg +6 -0
  23. package/dist/assets/flags/svg/bd.svg +4 -0
  24. package/dist/assets/flags/svg/be.svg +7 -0
  25. package/dist/assets/flags/svg/bf.svg +7 -0
  26. package/dist/assets/flags/svg/bg.svg +5 -0
  27. package/dist/assets/flags/svg/bh.svg +4 -0
  28. package/dist/assets/flags/svg/bi.svg +15 -0
  29. package/dist/assets/flags/svg/bj.svg +14 -0
  30. package/dist/assets/flags/svg/bn.svg +36 -0
  31. package/dist/assets/flags/svg/bo.svg +673 -0
  32. package/dist/assets/flags/svg/br.svg +45 -0
  33. package/dist/assets/flags/svg/bs.svg +13 -0
  34. package/dist/assets/flags/svg/bt.svg +89 -0
  35. package/dist/assets/flags/svg/bw.svg +7 -0
  36. package/dist/assets/flags/svg/by.svg +18 -0
  37. package/dist/assets/flags/svg/bz.svg +145 -0
  38. package/dist/assets/flags/svg/ca.svg +4 -0
  39. package/dist/assets/flags/svg/cd.svg +5 -0
  40. package/dist/assets/flags/svg/cf.svg +15 -0
  41. package/dist/assets/flags/svg/cg.svg +12 -0
  42. package/dist/assets/flags/svg/ch.svg +9 -0
  43. package/dist/assets/flags/svg/cl.svg +13 -0
  44. package/dist/assets/flags/svg/cm.svg +15 -0
  45. package/dist/assets/flags/svg/cn.svg +11 -0
  46. package/dist/assets/flags/svg/co.svg +7 -0
  47. package/dist/assets/flags/svg/cr.svg +7 -0
  48. package/dist/assets/flags/svg/cu.svg +13 -0
  49. package/dist/assets/flags/svg/cv.svg +13 -0
  50. package/dist/assets/flags/svg/cy.svg +6 -0
  51. package/dist/assets/flags/svg/cz.svg +5 -0
  52. package/dist/assets/flags/svg/de.svg +5 -0
  53. package/dist/assets/flags/svg/dj.svg +13 -0
  54. package/dist/assets/flags/svg/dk.svg +5 -0
  55. package/dist/assets/flags/svg/dm.svg +152 -0
  56. package/dist/assets/flags/svg/do.svg +121 -0
  57. package/dist/assets/flags/svg/dz.svg +5 -0
  58. package/dist/assets/flags/svg/ec.svg +138 -0
  59. package/dist/assets/flags/svg/ee.svg +5 -0
  60. package/dist/assets/flags/svg/eg.svg +38 -0
  61. package/dist/assets/flags/svg/er.svg +8 -0
  62. package/dist/assets/flags/svg/es.svg +544 -0
  63. package/dist/assets/flags/svg/et.svg +14 -0
  64. package/dist/assets/flags/svg/fi.svg +5 -0
  65. package/dist/assets/flags/svg/fj.svg +120 -0
  66. package/dist/assets/flags/svg/fm.svg +11 -0
  67. package/dist/assets/flags/svg/fr.svg +5 -0
  68. package/dist/assets/flags/svg/ga.svg +7 -0
  69. package/dist/assets/flags/svg/gb.svg +7 -0
  70. package/dist/assets/flags/svg/gd.svg +27 -0
  71. package/dist/assets/flags/svg/ge.svg +6 -0
  72. package/dist/assets/flags/svg/gh.svg +6 -0
  73. package/dist/assets/flags/svg/gm.svg +14 -0
  74. package/dist/assets/flags/svg/gn.svg +7 -0
  75. package/dist/assets/flags/svg/gq.svg +23 -0
  76. package/dist/assets/flags/svg/gr.svg +16 -0
  77. package/dist/assets/flags/svg/gt.svg +204 -0
  78. package/dist/assets/flags/svg/gw.svg +13 -0
  79. package/dist/assets/flags/svg/gy.svg +9 -0
  80. package/dist/assets/flags/svg/hn.svg +18 -0
  81. package/dist/assets/flags/svg/hr.svg +58 -0
  82. package/dist/assets/flags/svg/ht.svg +116 -0
  83. package/dist/assets/flags/svg/hu.svg +7 -0
  84. package/dist/assets/flags/svg/id.svg +4 -0
  85. package/dist/assets/flags/svg/ie.svg +7 -0
  86. package/dist/assets/flags/svg/il.svg +14 -0
  87. package/dist/assets/flags/svg/in.svg +25 -0
  88. package/dist/assets/flags/svg/iq.svg +10 -0
  89. package/dist/assets/flags/svg/ir.svg +219 -0
  90. package/dist/assets/flags/svg/is.svg +12 -0
  91. package/dist/assets/flags/svg/it.svg +7 -0
  92. package/dist/assets/flags/svg/jm.svg +8 -0
  93. package/dist/assets/flags/svg/jo.svg +16 -0
  94. package/dist/assets/flags/svg/jp.svg +11 -0
  95. package/dist/assets/flags/svg/ke.svg +23 -0
  96. package/dist/assets/flags/svg/kg.svg +4 -0
  97. package/dist/assets/flags/svg/kh.svg +61 -0
  98. package/dist/assets/flags/svg/ki.svg +36 -0
  99. package/dist/assets/flags/svg/km.svg +16 -0
  100. package/dist/assets/flags/svg/kn.svg +14 -0
  101. package/dist/assets/flags/svg/kp.svg +15 -0
  102. package/dist/assets/flags/svg/kr.svg +24 -0
  103. package/dist/assets/flags/svg/kw.svg +13 -0
  104. package/dist/assets/flags/svg/kz.svg +36 -0
  105. package/dist/assets/flags/svg/la.svg +12 -0
  106. package/dist/assets/flags/svg/lb.svg +15 -0
  107. package/dist/assets/flags/svg/lc.svg +8 -0
  108. package/dist/assets/flags/svg/li.svg +43 -0
  109. package/dist/assets/flags/svg/lk.svg +22 -0
  110. package/dist/assets/flags/svg/lr.svg +14 -0
  111. package/dist/assets/flags/svg/ls.svg +8 -0
  112. package/dist/assets/flags/svg/lt.svg +7 -0
  113. package/dist/assets/flags/svg/lu.svg +5 -0
  114. package/dist/assets/flags/svg/lv.svg +6 -0
  115. package/dist/assets/flags/svg/ly.svg +13 -0
  116. package/dist/assets/flags/svg/ma.svg +4 -0
  117. package/dist/assets/flags/svg/mc.svg +6 -0
  118. package/dist/assets/flags/svg/md.svg +70 -0
  119. package/dist/assets/flags/svg/me.svg +116 -0
  120. package/dist/assets/flags/svg/mg.svg +7 -0
  121. package/dist/assets/flags/svg/mh.svg +7 -0
  122. package/dist/assets/flags/svg/mk.svg +5 -0
  123. package/dist/assets/flags/svg/ml.svg +7 -0
  124. package/dist/assets/flags/svg/mm.svg +12 -0
  125. package/dist/assets/flags/svg/mn.svg +14 -0
  126. package/dist/assets/flags/svg/mr.svg +6 -0
  127. package/dist/assets/flags/svg/mt.svg +58 -0
  128. package/dist/assets/flags/svg/mu.svg +8 -0
  129. package/dist/assets/flags/svg/mv.svg +6 -0
  130. package/dist/assets/flags/svg/mw.svg +10 -0
  131. package/dist/assets/flags/svg/mx.svg +382 -0
  132. package/dist/assets/flags/svg/my.svg +26 -0
  133. package/dist/assets/flags/svg/mz.svg +21 -0
  134. package/dist/assets/flags/svg/na.svg +16 -0
  135. package/dist/assets/flags/svg/ne.svg +6 -0
  136. package/dist/assets/flags/svg/ng.svg +6 -0
  137. package/dist/assets/flags/svg/ni.svg +129 -0
  138. package/dist/assets/flags/svg/nl.svg +5 -0
  139. package/dist/assets/flags/svg/no.svg +7 -0
  140. package/dist/assets/flags/svg/np.svg +13 -0
  141. package/dist/assets/flags/svg/nr.svg +12 -0
  142. package/dist/assets/flags/svg/nz.svg +36 -0
  143. package/dist/assets/flags/svg/om.svg +115 -0
  144. package/dist/assets/flags/svg/pa.svg +14 -0
  145. package/dist/assets/flags/svg/pe.svg +4 -0
  146. package/dist/assets/flags/svg/pg.svg +9 -0
  147. package/dist/assets/flags/svg/ph.svg +6 -0
  148. package/dist/assets/flags/svg/pk.svg +15 -0
  149. package/dist/assets/flags/svg/pl.svg +6 -0
  150. package/dist/assets/flags/svg/ps.svg +6 -0
  151. package/dist/assets/flags/svg/pt.svg +57 -0
  152. package/dist/assets/flags/svg/pw.svg +11 -0
  153. package/dist/assets/flags/svg/py.svg +157 -0
  154. package/dist/assets/flags/svg/qa.svg +4 -0
  155. package/dist/assets/flags/svg/ro.svg +7 -0
  156. package/dist/assets/flags/svg/rs.svg +292 -0
  157. package/dist/assets/flags/svg/ru.svg +5 -0
  158. package/dist/assets/flags/svg/rw.svg +13 -0
  159. package/dist/assets/flags/svg/sa.svg +25 -0
  160. package/dist/assets/flags/svg/sb.svg +13 -0
  161. package/dist/assets/flags/svg/sc.svg +7 -0
  162. package/dist/assets/flags/svg/sd.svg +13 -0
  163. package/dist/assets/flags/svg/se.svg +4 -0
  164. package/dist/assets/flags/svg/sg.svg +13 -0
  165. package/dist/assets/flags/svg/si.svg +18 -0
  166. package/dist/assets/flags/svg/sk.svg +9 -0
  167. package/dist/assets/flags/svg/sl.svg +7 -0
  168. package/dist/assets/flags/svg/sm.svg +75 -0
  169. package/dist/assets/flags/svg/sn.svg +8 -0
  170. package/dist/assets/flags/svg/so.svg +11 -0
  171. package/dist/assets/flags/svg/sr.svg +6 -0
  172. package/dist/assets/flags/svg/ss.svg +8 -0
  173. package/dist/assets/flags/svg/st.svg +16 -0
  174. package/dist/assets/flags/svg/sv.svg +593 -0
  175. package/dist/assets/flags/svg/sy.svg +6 -0
  176. package/dist/assets/flags/svg/sz.svg +34 -0
  177. package/dist/assets/flags/svg/td.svg +7 -0
  178. package/dist/assets/flags/svg/tg.svg +14 -0
  179. package/dist/assets/flags/svg/th.svg +7 -0
  180. package/dist/assets/flags/svg/tj.svg +22 -0
  181. package/dist/assets/flags/svg/tl.svg +13 -0
  182. package/dist/assets/flags/svg/tm.svg +204 -0
  183. package/dist/assets/flags/svg/tn.svg +4 -0
  184. package/dist/assets/flags/svg/to.svg +10 -0
  185. package/dist/assets/flags/svg/tr.svg +8 -0
  186. package/dist/assets/flags/svg/tt.svg +5 -0
  187. package/dist/assets/flags/svg/tv.svg +9 -0
  188. package/dist/assets/flags/svg/tw.svg +34 -0
  189. package/dist/assets/flags/svg/tz.svg +13 -0
  190. package/dist/assets/flags/svg/ua.svg +6 -0
  191. package/dist/assets/flags/svg/ug.svg +30 -0
  192. package/dist/assets/flags/svg/us.svg +9 -0
  193. package/dist/assets/flags/svg/uy.svg +28 -0
  194. package/dist/assets/flags/svg/uz.svg +30 -0
  195. package/dist/assets/flags/svg/va.svg +190 -0
  196. package/dist/assets/flags/svg/vc.svg +8 -0
  197. package/dist/assets/flags/svg/ve.svg +26 -0
  198. package/dist/assets/flags/svg/vn.svg +11 -0
  199. package/dist/assets/flags/svg/vu.svg +21 -0
  200. package/dist/assets/flags/svg/ws.svg +7 -0
  201. package/dist/assets/flags/svg/xk.svg +5 -0
  202. package/dist/assets/flags/svg/xn.svg +6 -0
  203. package/dist/assets/flags/svg/ye.svg +7 -0
  204. package/dist/assets/flags/svg/za.svg +17 -0
  205. package/dist/assets/flags/svg/zm.svg +27 -0
  206. package/dist/assets/flags/svg/zw.svg +21 -0
  207. package/dist/data/languages/index.html +86 -0
  208. package/dist/docs/api-worker-plan/index.html +439 -0
  209. package/dist/docs/cities/index.html +193 -0
  210. package/dist/docs/continents-currencies/index.html +306 -0
  211. package/dist/docs/countries/index.html +274 -0
  212. package/dist/docs/country-maps/index.html +262 -0
  213. package/dist/docs/flags/index.html +300 -0
  214. package/dist/docs/geography/index.html +454 -0
  215. package/dist/docs/languages/index.html +304 -0
  216. package/dist/docs/phone-codes/index.html +152 -0
  217. package/dist/docs/states/index.html +334 -0
  218. package/dist/docs/world-map/index.html +345 -0
  219. package/dist/examples/vue-app/index.html +208 -0
  220. package/dist/index.html +784 -0
  221. package/dist/robots.txt +2 -0
  222. package/dist/style/app.css +1 -0
  223. package/dist/types/__tests__/cities.test.d.ts +1 -0
  224. package/dist/types/__tests__/continents.test.d.ts +1 -0
  225. package/dist/types/__tests__/countries.test.d.ts +1 -0
  226. package/dist/types/__tests__/countryMaps.test.d.ts +1 -0
  227. package/dist/types/__tests__/geography.test.d.ts +1 -0
  228. package/dist/types/__tests__/index.test.d.ts +1 -0
  229. package/dist/types/__tests__/phoneCodes.test.d.ts +1 -0
  230. package/dist/types/__tests__/states.test.d.ts +1 -0
  231. package/dist/types/__tests__/translations.test.d.ts +1 -0
  232. package/dist/types/api/index.d.ts +5 -0
  233. package/dist/types/api/index.test.d.ts +1 -0
  234. package/dist/types/api/query.d.ts +3 -0
  235. package/dist/types/api/response.d.ts +16 -0
  236. package/dist/types/api/router.d.ts +1 -0
  237. package/dist/types/api/routes/cities.d.ts +2 -0
  238. package/dist/types/api/routes/countries.d.ts +2 -0
  239. package/dist/types/api/routes/health.d.ts +1 -0
  240. package/dist/types/api/routes/maps.d.ts +1 -0
  241. package/dist/types/api/routes/meta.d.ts +1 -0
  242. package/dist/types/api/routes/phoneCodes.d.ts +1 -0
  243. package/dist/types/data/cities.d.ts +22 -0
  244. package/dist/types/data/continents.d.ts +9 -0
  245. package/dist/types/data/countries.d.ts +23 -0
  246. package/dist/types/data/countryMaps.d.ts +104 -0
  247. package/dist/types/data/currencies.d.ts +13 -0
  248. package/dist/types/data/flags.d.ts +37 -0
  249. package/dist/types/data/geography.d.ts +48 -0
  250. package/dist/types/data/languages/index.d.ts +2 -0
  251. package/dist/types/data/languages/language.test.d.ts +1 -0
  252. package/dist/types/data/languages/languageData.d.ts +6 -0
  253. package/dist/types/data/languages/languageFunctions.d.ts +43 -0
  254. package/dist/types/data/languages/translations/ar.d.ts +1189 -0
  255. package/dist/types/data/languages/translations/de.d.ts +1189 -0
  256. package/dist/types/data/languages/translations/es.d.ts +1189 -0
  257. package/dist/types/data/languages/translations/fr.d.ts +1189 -0
  258. package/dist/types/data/languages/translations/hi.d.ts +1189 -0
  259. package/dist/types/data/languages/translations/it.d.ts +1189 -0
  260. package/dist/types/data/languages/translations/ja.d.ts +1189 -0
  261. package/dist/types/data/languages/translations/ko.d.ts +1189 -0
  262. package/dist/types/data/languages/translations/nl.d.ts +1189 -0
  263. package/dist/types/data/languages/translations/pl.d.ts +1189 -0
  264. package/dist/types/data/languages/translations/pt.d.ts +1189 -0
  265. package/dist/types/data/languages/translations/ru.d.ts +1189 -0
  266. package/dist/types/data/languages/translations/tr.d.ts +1189 -0
  267. package/dist/types/data/languages/translations/zh.d.ts +1189 -0
  268. package/dist/types/data/phoneCodes.d.ts +16 -0
  269. package/dist/types/data/states.d.ts +18 -0
  270. package/dist/types/data/translations/ar.d.ts +1832 -0
  271. package/dist/types/data/translations/de.d.ts +2005 -0
  272. package/dist/types/data/translations/es.d.ts +1852 -0
  273. package/dist/types/data/translations/fr.d.ts +1860 -0
  274. package/dist/types/data/translations/hi.d.ts +1816 -0
  275. package/dist/types/data/translations/it.d.ts +1824 -0
  276. package/dist/types/data/translations/ja.d.ts +1833 -0
  277. package/dist/types/data/translations/ko.d.ts +1832 -0
  278. package/dist/types/data/translations/nl.d.ts +1826 -0
  279. package/dist/types/data/translations/pl.d.ts +1818 -0
  280. package/dist/types/data/translations/pt.d.ts +1829 -0
  281. package/dist/types/data/translations/ru.d.ts +1838 -0
  282. package/dist/types/data/translations/tr.d.ts +1818 -0
  283. package/dist/types/data/translations/zh.d.ts +1834 -0
  284. package/dist/types/data/translations.d.ts +73 -0
  285. package/dist/types/data/worldMap.d.ts +122 -0
  286. package/dist/types/index.d.ts +33 -0
  287. package/dist/types/types/index.d.ts +348 -0
  288. package/dist/types/utils/geo.d.ts +101 -0
  289. package/package.json +67 -0
@@ -0,0 +1,334 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta name="viewport" content="width=device-width, initial-scale=1">
5
+ <meta name="type" content="content">
6
+ <title>States, Provinces &amp;amp; Administrative Divisions</title>
7
+ <link href="/style/app.css" rel="stylesheet" type="text/css">
8
+ </head>
9
+ <body class="page--states">
10
+ <div class="page-container">
11
+ <header class="header">
12
+ <div class="header__container">
13
+ </div>
14
+ </header>
15
+ <main class="main">
16
+ <section class="section">
17
+ <div class="container">
18
+ <div class="content"><h1 id="states%2C-provinces-%26-administrative-divisions" tabindex="-1">States, Provinces &amp; Administrative Divisions</h1>
19
+ <p><a href="../README.md">← Back to README</a></p>
20
+ <p>The <code>states</code> array contains 600+ administrative divisions across 20+ countries: US states, Canadian provinces, Australian states, Swiss cantons, Brazilian states, German Länder, French regions, Spanish autonomous communities, Italian regions, Mexican states, Japanese prefectures, Indian states, Chinese provinces, and more.</p>
21
+ <h2 id="import" tabindex="-1">Import</h2>
22
+ <pre class="language-ts"><code class="language-ts"><span class="token keyword">import</span> <span class="token punctuation">{</span>
23
+ states<span class="token punctuation">,</span>
24
+ getStatesByCountry<span class="token punctuation">,</span>
25
+ getStateByCode<span class="token punctuation">,</span>
26
+ getStatesByType<span class="token punctuation">,</span>
27
+ <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">"arev"</span><span class="token punctuation">;</span>
28
+ <span class="token keyword">import</span> <span class="token keyword">type</span> <span class="token punctuation">{</span> State<span class="token punctuation">,</span> StateType <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">"arev"</span><span class="token punctuation">;</span>
29
+ </code></pre>
30
+ <h2 id="data-shape" tabindex="-1">Data shape</h2>
31
+ <pre class="language-ts"><code class="language-ts"><span class="token keyword">interface</span> <span class="token class-name">State</span> <span class="token punctuation">{</span>
32
+ name<span class="token operator">:</span> <span class="token builtin">string</span><span class="token punctuation">;</span> <span class="token comment">// "California"</span>
33
+ code<span class="token operator">:</span> <span class="token builtin">string</span><span class="token punctuation">;</span> <span class="token comment">// "CA" — state/province abbreviation code</span>
34
+ country<span class="token operator">:</span> <span class="token builtin">string</span><span class="token punctuation">;</span> <span class="token comment">// "US" — ISO 3166-1 alpha-2 country code</span>
35
+ type<span class="token operator">:</span> StateType<span class="token punctuation">;</span> <span class="token comment">// "state" | "province" | "territory" | ...</span>
36
+ <span class="token punctuation">}</span>
37
+
38
+ <span class="token keyword">type</span> <span class="token class-name">StateType</span> <span class="token operator">=</span>
39
+ <span class="token operator">|</span> <span class="token string">"state"</span>
40
+ <span class="token operator">|</span> <span class="token string">"province"</span>
41
+ <span class="token operator">|</span> <span class="token string">"territory"</span>
42
+ <span class="token operator">|</span> <span class="token string">"autonomous region"</span>
43
+ <span class="token operator">|</span> <span class="token string">"district"</span>
44
+ <span class="token operator">|</span> <span class="token string">"department"</span>
45
+ <span class="token operator">|</span> <span class="token string">"region"</span>
46
+ <span class="token operator">|</span> <span class="token string">"county"</span>
47
+ <span class="token operator">|</span> <span class="token string">"emirate"</span>
48
+ <span class="token operator">|</span> <span class="token string">"canton"</span><span class="token punctuation">;</span>
49
+ </code></pre>
50
+ <h2 id="examples" tabindex="-1">Examples</h2>
51
+ <h3 id="all-divisions-for-a-country" tabindex="-1">All divisions for a country</h3>
52
+ <pre class="language-ts"><code class="language-ts"><span class="token keyword">import</span> <span class="token punctuation">{</span> getStatesByCountry <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">"arev"</span><span class="token punctuation">;</span>
53
+
54
+ <span class="token comment">// United States</span>
55
+ <span class="token keyword">const</span> usAll <span class="token operator">=</span> <span class="token function">getStatesByCountry</span><span class="token punctuation">(</span><span class="token string">"US"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
56
+ <span class="token builtin">console</span><span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>usAll<span class="token punctuation">.</span>length<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 50 states + DC + territories = 57</span>
57
+
58
+ <span class="token comment">// Switzerland</span>
59
+ <span class="token keyword">const</span> chAll <span class="token operator">=</span> <span class="token function">getStatesByCountry</span><span class="token punctuation">(</span><span class="token string">"CH"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
60
+ <span class="token builtin">console</span><span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>chAll<span class="token punctuation">.</span>length<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 26 cantons</span>
61
+
62
+ <span class="token comment">// Japan</span>
63
+ <span class="token keyword">const</span> jpAll <span class="token operator">=</span> <span class="token function">getStatesByCountry</span><span class="token punctuation">(</span><span class="token string">"JP"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
64
+ <span class="token builtin">console</span><span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>jpAll<span class="token punctuation">.</span>length<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 47 prefectures</span>
65
+ </code></pre>
66
+ <h3 id="look-up-a-specific-division-by-code" tabindex="-1">Look up a specific division by code</h3>
67
+ <pre class="language-ts"><code class="language-ts"><span class="token keyword">import</span> <span class="token punctuation">{</span> getStateByCode <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">"arev"</span><span class="token punctuation">;</span>
68
+
69
+ <span class="token function">getStateByCode</span><span class="token punctuation">(</span><span class="token string">"CA"</span><span class="token punctuation">,</span> <span class="token string">"US"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
70
+ <span class="token comment">// { name: "California", code: "CA", country: "US", type: "state" }</span>
71
+
72
+ <span class="token function">getStateByCode</span><span class="token punctuation">(</span><span class="token string">"ON"</span><span class="token punctuation">,</span> <span class="token string">"CA"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
73
+ <span class="token comment">// { name: "Ontario", code: "ON", country: "CA", type: "province" }</span>
74
+
75
+ <span class="token function">getStateByCode</span><span class="token punctuation">(</span><span class="token string">"ZZ"</span><span class="token punctuation">,</span> <span class="token string">"US"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// undefined</span>
76
+ </code></pre>
77
+ <h3 id="filter-by-division-type" tabindex="-1">Filter by division type</h3>
78
+ <pre class="language-ts"><code class="language-ts"><span class="token keyword">import</span> <span class="token punctuation">{</span> getStatesByType <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">"arev"</span><span class="token punctuation">;</span>
79
+
80
+ <span class="token comment">// All provinces (CA, AU, ...)</span>
81
+ <span class="token keyword">const</span> provinces <span class="token operator">=</span> <span class="token function">getStatesByType</span><span class="token punctuation">(</span><span class="token string">"province"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
82
+
83
+ <span class="token comment">// All cantons (Switzerland)</span>
84
+ <span class="token keyword">const</span> cantons <span class="token operator">=</span> <span class="token function">getStatesByType</span><span class="token punctuation">(</span><span class="token string">"canton"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
85
+ cantons<span class="token punctuation">.</span><span class="token function">every</span><span class="token punctuation">(</span>c <span class="token operator">=></span> c<span class="token punctuation">.</span>country <span class="token operator">===</span> <span class="token string">"CH"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// true</span>
86
+ cantons<span class="token punctuation">.</span>length<span class="token punctuation">;</span> <span class="token comment">// 26</span>
87
+
88
+ <span class="token comment">// All territories</span>
89
+ <span class="token keyword">const</span> territories <span class="token operator">=</span> <span class="token function">getStatesByType</span><span class="token punctuation">(</span><span class="token string">"territory"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
90
+ territories<span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span>t <span class="token operator">=></span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>t<span class="token punctuation">.</span>name<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string"> (</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>t<span class="token punctuation">.</span>country<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">)</span><span class="token template-punctuation string">`</span></span><span class="token punctuation">)</span><span class="token punctuation">;</span>
91
+ <span class="token comment">// ["Australian Capital Territory (AU)", "Northwest Territories (CA)", ...]</span>
92
+ </code></pre>
93
+ <h3 id="build-a-state-selector-that-changes-with-the-selected-country" tabindex="-1">Build a state selector that changes with the selected country</h3>
94
+ <pre class="language-ts"><code class="language-ts"><span class="token keyword">import</span> <span class="token punctuation">{</span> getStatesByCountry <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">"arev"</span><span class="token punctuation">;</span>
95
+
96
+ <span class="token keyword">function</span> <span class="token function">getStateOptions</span><span class="token punctuation">(</span>countryCode<span class="token operator">:</span> <span class="token builtin">string</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
97
+ <span class="token keyword">const</span> divisions <span class="token operator">=</span> <span class="token function">getStatesByCountry</span><span class="token punctuation">(</span>countryCode<span class="token punctuation">)</span><span class="token punctuation">;</span>
98
+ <span class="token keyword">if</span> <span class="token punctuation">(</span>divisions<span class="token punctuation">.</span>length <span class="token operator">===</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token keyword">null</span><span class="token punctuation">;</span> <span class="token comment">// no division data for this country</span>
99
+
100
+ <span class="token keyword">return</span> divisions<span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span>s <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token punctuation">{</span>
101
+ value<span class="token operator">:</span> s<span class="token punctuation">.</span>code<span class="token punctuation">,</span>
102
+ label<span class="token operator">:</span> s<span class="token punctuation">.</span>name<span class="token punctuation">,</span>
103
+ <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
104
+ <span class="token punctuation">}</span>
105
+
106
+ <span class="token function">getStateOptions</span><span class="token punctuation">(</span><span class="token string">"US"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
107
+ <span class="token comment">// [{ value: "AL", label: "Alabama" }, { value: "AK", label: "Alaska" }, ...]</span>
108
+
109
+ <span class="token function">getStateOptions</span><span class="token punctuation">(</span><span class="token string">"CH"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
110
+ <span class="token comment">// [{ value: "ZH", label: "Zurich" }, { value: "BE", label: "Bern" }, ...]</span>
111
+ </code></pre>
112
+ <h2 id="country-coverage" tabindex="-1">Country coverage</h2>
113
+ <table>
114
+ <thead>
115
+ <tr>
116
+ <th>Country</th>
117
+ <th>Type</th>
118
+ <th>Count</th>
119
+ </tr>
120
+ </thead>
121
+ <tbody>
122
+ <tr>
123
+ <td>🇺🇸 United States</td>
124
+ <td>states + DC + territories</td>
125
+ <td>57</td>
126
+ </tr>
127
+ <tr>
128
+ <td>🇨🇦 Canada</td>
129
+ <td>provinces + territories</td>
130
+ <td>13</td>
131
+ </tr>
132
+ <tr>
133
+ <td>🇦🇺 Australia</td>
134
+ <td>states + territories</td>
135
+ <td>8</td>
136
+ </tr>
137
+ <tr>
138
+ <td>🇧🇷 Brazil</td>
139
+ <td>states + DF</td>
140
+ <td>27</td>
141
+ </tr>
142
+ <tr>
143
+ <td>🇩🇪 Germany</td>
144
+ <td>Länder</td>
145
+ <td>16</td>
146
+ </tr>
147
+ <tr>
148
+ <td>🇫🇷 France</td>
149
+ <td>regions + overseas</td>
150
+ <td>18</td>
151
+ </tr>
152
+ <tr>
153
+ <td>🇪🇸 Spain</td>
154
+ <td>autonomous communities</td>
155
+ <td>17</td>
156
+ </tr>
157
+ <tr>
158
+ <td>🇮🇹 Italy</td>
159
+ <td>regions</td>
160
+ <td>20</td>
161
+ </tr>
162
+ <tr>
163
+ <td>🇲🇽 Mexico</td>
164
+ <td>states + CDMX</td>
165
+ <td>32</td>
166
+ </tr>
167
+ <tr>
168
+ <td>🇮🇳 India</td>
169
+ <td>states + union territories</td>
170
+ <td>36</td>
171
+ </tr>
172
+ <tr>
173
+ <td>🇨🇳 China</td>
174
+ <td>provinces + autonomous regions + municipalities</td>
175
+ <td>33</td>
176
+ </tr>
177
+ <tr>
178
+ <td>🇯🇵 Japan</td>
179
+ <td>prefectures</td>
180
+ <td>47</td>
181
+ </tr>
182
+ <tr>
183
+ <td>🇨🇭 Switzerland</td>
184
+ <td>cantons</td>
185
+ <td>26</td>
186
+ </tr>
187
+ <tr>
188
+ <td>🇷🇺 Russia</td>
189
+ <td>federal subjects (8 major regions + Moscow)</td>
190
+ <td>9</td>
191
+ </tr>
192
+ <tr>
193
+ <td>🇦🇪 UAE</td>
194
+ <td>emirates</td>
195
+ <td>7</td>
196
+ </tr>
197
+ <tr>
198
+ <td>🇳🇴 Norway</td>
199
+ <td>counties</td>
200
+ <td>15</td>
201
+ </tr>
202
+ <tr>
203
+ <td>🇵🇹 Portugal</td>
204
+ <td>districts</td>
205
+ <td>18</td>
206
+ </tr>
207
+ <tr>
208
+ <td>🇳🇱 Netherlands</td>
209
+ <td>provinces</td>
210
+ <td>12</td>
211
+ </tr>
212
+ <tr>
213
+ <td>🇧🇪 Belgium</td>
214
+ <td>provinces</td>
215
+ <td>10</td>
216
+ </tr>
217
+ <tr>
218
+ <td>🇸🇪 Sweden</td>
219
+ <td>counties</td>
220
+ <td>21</td>
221
+ </tr>
222
+ </tbody>
223
+ </table>
224
+ <h2 id="related" tabindex="-1">Related</h2>
225
+ <ul>
226
+ <li><a href="countries.md">Countries</a> — the <code>country</code> field in each <code>State</code> uses alpha-2 codes from <code>countries</code></li>
227
+ <li><a href="cities.md">Cities</a> — the <code>state</code> field in each <code>City</code> aligns with state names here</li>
228
+ </ul>
229
+
230
+ </div>
231
+ </div>
232
+ </section>
233
+ </main>
234
+ </div>
235
+ <footer class="footer">
236
+ <div class="footer__container">
237
+ <div class="footer__controls">
238
+ <div class="footer__control"><span class="footer__label">Theme</span>
239
+ <button class="color-mode-toggle" type="button" data-color-mode-toggle aria-label="Toggle color mode"><span class="color-mode-toggle__value"></span></button>
240
+ </div>
241
+ </div>
242
+ </div>
243
+ </footer>
244
+ </body>
245
+ <script>const isDarkMode = window.matchMedia("prefers-color-scheme: dark").matches;
246
+ let localMode = isDarkMode ? "dark" : "light";
247
+
248
+ const updateColorModeToggle = () => {
249
+ const toggle = document.querySelector("[data-color-mode-toggle]");
250
+ if (!toggle) return;
251
+
252
+ const value = toggle.querySelector(".color-mode-toggle__value");
253
+ if (!value) return;
254
+
255
+ value.textContent = localMode === "dark" ? "Dark" : "Light";
256
+ };
257
+
258
+ const initColorMode = () => {
259
+ localMode = localStorage.getItem("colorMode");
260
+ setCurrentMode(localMode ? localMode : isDarkMode ? "dark" : "light");
261
+ };
262
+
263
+ const setCurrentMode = (mode) => {
264
+ localMode = mode;
265
+ localStorage.setItem("colorMode", localMode);
266
+ document.body.setAttribute("color-mode", mode);
267
+ updateColorModeToggle();
268
+ };
269
+
270
+ const switchMode = () => {
271
+ if (localMode == "dark") setCurrentMode("light");
272
+ else setCurrentMode("dark");
273
+ };
274
+
275
+ const bindColorModeToggle = () => {
276
+ const toggle = document.querySelector("[data-color-mode-toggle]");
277
+ if (!toggle) return;
278
+
279
+ toggle.addEventListener("click", () => {
280
+ switchMode();
281
+ });
282
+ };
283
+
284
+ initColorMode();
285
+ bindColorModeToggle();
286
+ const tables = document.querySelectorAll("table");
287
+ let initTableWrap = false;
288
+
289
+ const wrapTables = (tables) => {
290
+ tables &&
291
+ tables.forEach((table) => {
292
+ if (table.getBoundingClientRect().width > window.screen.width) {
293
+ table.classList.add("wrap");
294
+ initTableWrap = true;
295
+ }
296
+ });
297
+ };
298
+
299
+ const labelTables = (tables) => {
300
+ tables &&
301
+ tables.forEach((table) => {
302
+ // Set all headers as attributes to td's
303
+ const headerElements = table.querySelectorAll("thead th");
304
+ const bodyElementRows = table.querySelectorAll("tbody tr");
305
+ const heads = [];
306
+
307
+ if (headerElements && bodyElementRows) {
308
+ // Get TH heads
309
+ headerElements.forEach((th) => {
310
+ heads.push(th.textContent);
311
+ });
312
+ }
313
+
314
+ if (heads.length) {
315
+ bodyElementRows.forEach((tr) => {
316
+ const tds = tr.querySelectorAll("td");
317
+
318
+ tds.forEach((td, i) => {
319
+ td.setAttribute("data-label", heads[i]);
320
+ });
321
+ });
322
+ }
323
+ });
324
+ };
325
+
326
+ wrapTables(tables);
327
+ labelTables(tables);
328
+
329
+ window.addEventListener("resize", () => {
330
+ if (!initTableWrap) wrapTables(tables);
331
+ });
332
+
333
+ </script>
334
+ </html>