arevdata 0.1.17 → 0.1.19

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 (218) hide show
  1. package/package.json +1 -1
  2. package/dist/assets/flags/LICENSE.flag-icons.txt +0 -21
  3. package/dist/assets/flags/README.md +0 -11
  4. package/dist/assets/flags/index.html +0 -88
  5. package/dist/assets/flags/overrides/xn.svg +0 -6
  6. package/dist/assets/flags/svg/ad.svg +0 -150
  7. package/dist/assets/flags/svg/ae.svg +0 -6
  8. package/dist/assets/flags/svg/af.svg +0 -81
  9. package/dist/assets/flags/svg/ag.svg +0 -14
  10. package/dist/assets/flags/svg/al.svg +0 -5
  11. package/dist/assets/flags/svg/am.svg +0 -5
  12. package/dist/assets/flags/svg/ao.svg +0 -13
  13. package/dist/assets/flags/svg/ar.svg +0 -32
  14. package/dist/assets/flags/svg/at.svg +0 -4
  15. package/dist/assets/flags/svg/au.svg +0 -8
  16. package/dist/assets/flags/svg/az.svg +0 -8
  17. package/dist/assets/flags/svg/ba.svg +0 -12
  18. package/dist/assets/flags/svg/bb.svg +0 -6
  19. package/dist/assets/flags/svg/bd.svg +0 -4
  20. package/dist/assets/flags/svg/be.svg +0 -7
  21. package/dist/assets/flags/svg/bf.svg +0 -7
  22. package/dist/assets/flags/svg/bg.svg +0 -5
  23. package/dist/assets/flags/svg/bh.svg +0 -4
  24. package/dist/assets/flags/svg/bi.svg +0 -15
  25. package/dist/assets/flags/svg/bj.svg +0 -14
  26. package/dist/assets/flags/svg/bn.svg +0 -36
  27. package/dist/assets/flags/svg/bo.svg +0 -673
  28. package/dist/assets/flags/svg/br.svg +0 -45
  29. package/dist/assets/flags/svg/bs.svg +0 -13
  30. package/dist/assets/flags/svg/bt.svg +0 -89
  31. package/dist/assets/flags/svg/bw.svg +0 -7
  32. package/dist/assets/flags/svg/by.svg +0 -18
  33. package/dist/assets/flags/svg/bz.svg +0 -145
  34. package/dist/assets/flags/svg/ca.svg +0 -4
  35. package/dist/assets/flags/svg/cd.svg +0 -5
  36. package/dist/assets/flags/svg/cf.svg +0 -15
  37. package/dist/assets/flags/svg/cg.svg +0 -12
  38. package/dist/assets/flags/svg/ch.svg +0 -9
  39. package/dist/assets/flags/svg/cl.svg +0 -13
  40. package/dist/assets/flags/svg/cm.svg +0 -15
  41. package/dist/assets/flags/svg/cn.svg +0 -11
  42. package/dist/assets/flags/svg/co.svg +0 -7
  43. package/dist/assets/flags/svg/cr.svg +0 -7
  44. package/dist/assets/flags/svg/cu.svg +0 -13
  45. package/dist/assets/flags/svg/cv.svg +0 -13
  46. package/dist/assets/flags/svg/cy.svg +0 -6
  47. package/dist/assets/flags/svg/cz.svg +0 -5
  48. package/dist/assets/flags/svg/de.svg +0 -5
  49. package/dist/assets/flags/svg/dj.svg +0 -13
  50. package/dist/assets/flags/svg/dk.svg +0 -5
  51. package/dist/assets/flags/svg/dm.svg +0 -152
  52. package/dist/assets/flags/svg/do.svg +0 -121
  53. package/dist/assets/flags/svg/dz.svg +0 -5
  54. package/dist/assets/flags/svg/ec.svg +0 -138
  55. package/dist/assets/flags/svg/ee.svg +0 -5
  56. package/dist/assets/flags/svg/eg.svg +0 -38
  57. package/dist/assets/flags/svg/er.svg +0 -8
  58. package/dist/assets/flags/svg/es.svg +0 -544
  59. package/dist/assets/flags/svg/et.svg +0 -14
  60. package/dist/assets/flags/svg/fi.svg +0 -5
  61. package/dist/assets/flags/svg/fj.svg +0 -120
  62. package/dist/assets/flags/svg/fm.svg +0 -11
  63. package/dist/assets/flags/svg/fr.svg +0 -5
  64. package/dist/assets/flags/svg/ga.svg +0 -7
  65. package/dist/assets/flags/svg/gb.svg +0 -7
  66. package/dist/assets/flags/svg/gd.svg +0 -27
  67. package/dist/assets/flags/svg/ge.svg +0 -6
  68. package/dist/assets/flags/svg/gh.svg +0 -6
  69. package/dist/assets/flags/svg/gm.svg +0 -14
  70. package/dist/assets/flags/svg/gn.svg +0 -7
  71. package/dist/assets/flags/svg/gq.svg +0 -23
  72. package/dist/assets/flags/svg/gr.svg +0 -16
  73. package/dist/assets/flags/svg/gt.svg +0 -204
  74. package/dist/assets/flags/svg/gw.svg +0 -13
  75. package/dist/assets/flags/svg/gy.svg +0 -9
  76. package/dist/assets/flags/svg/hn.svg +0 -18
  77. package/dist/assets/flags/svg/hr.svg +0 -58
  78. package/dist/assets/flags/svg/ht.svg +0 -116
  79. package/dist/assets/flags/svg/hu.svg +0 -7
  80. package/dist/assets/flags/svg/id.svg +0 -4
  81. package/dist/assets/flags/svg/ie.svg +0 -7
  82. package/dist/assets/flags/svg/il.svg +0 -14
  83. package/dist/assets/flags/svg/in.svg +0 -25
  84. package/dist/assets/flags/svg/iq.svg +0 -10
  85. package/dist/assets/flags/svg/ir.svg +0 -219
  86. package/dist/assets/flags/svg/is.svg +0 -12
  87. package/dist/assets/flags/svg/it.svg +0 -7
  88. package/dist/assets/flags/svg/jm.svg +0 -8
  89. package/dist/assets/flags/svg/jo.svg +0 -16
  90. package/dist/assets/flags/svg/jp.svg +0 -11
  91. package/dist/assets/flags/svg/ke.svg +0 -23
  92. package/dist/assets/flags/svg/kg.svg +0 -4
  93. package/dist/assets/flags/svg/kh.svg +0 -61
  94. package/dist/assets/flags/svg/ki.svg +0 -36
  95. package/dist/assets/flags/svg/km.svg +0 -16
  96. package/dist/assets/flags/svg/kn.svg +0 -14
  97. package/dist/assets/flags/svg/kp.svg +0 -15
  98. package/dist/assets/flags/svg/kr.svg +0 -24
  99. package/dist/assets/flags/svg/kw.svg +0 -13
  100. package/dist/assets/flags/svg/kz.svg +0 -36
  101. package/dist/assets/flags/svg/la.svg +0 -12
  102. package/dist/assets/flags/svg/lb.svg +0 -15
  103. package/dist/assets/flags/svg/lc.svg +0 -8
  104. package/dist/assets/flags/svg/li.svg +0 -43
  105. package/dist/assets/flags/svg/lk.svg +0 -22
  106. package/dist/assets/flags/svg/lr.svg +0 -14
  107. package/dist/assets/flags/svg/ls.svg +0 -8
  108. package/dist/assets/flags/svg/lt.svg +0 -7
  109. package/dist/assets/flags/svg/lu.svg +0 -5
  110. package/dist/assets/flags/svg/lv.svg +0 -6
  111. package/dist/assets/flags/svg/ly.svg +0 -13
  112. package/dist/assets/flags/svg/ma.svg +0 -4
  113. package/dist/assets/flags/svg/mc.svg +0 -6
  114. package/dist/assets/flags/svg/md.svg +0 -70
  115. package/dist/assets/flags/svg/me.svg +0 -116
  116. package/dist/assets/flags/svg/mg.svg +0 -7
  117. package/dist/assets/flags/svg/mh.svg +0 -7
  118. package/dist/assets/flags/svg/mk.svg +0 -5
  119. package/dist/assets/flags/svg/ml.svg +0 -7
  120. package/dist/assets/flags/svg/mm.svg +0 -12
  121. package/dist/assets/flags/svg/mn.svg +0 -14
  122. package/dist/assets/flags/svg/mr.svg +0 -6
  123. package/dist/assets/flags/svg/mt.svg +0 -58
  124. package/dist/assets/flags/svg/mu.svg +0 -8
  125. package/dist/assets/flags/svg/mv.svg +0 -6
  126. package/dist/assets/flags/svg/mw.svg +0 -10
  127. package/dist/assets/flags/svg/mx.svg +0 -382
  128. package/dist/assets/flags/svg/my.svg +0 -26
  129. package/dist/assets/flags/svg/mz.svg +0 -21
  130. package/dist/assets/flags/svg/na.svg +0 -16
  131. package/dist/assets/flags/svg/ne.svg +0 -6
  132. package/dist/assets/flags/svg/ng.svg +0 -6
  133. package/dist/assets/flags/svg/ni.svg +0 -129
  134. package/dist/assets/flags/svg/nl.svg +0 -5
  135. package/dist/assets/flags/svg/no.svg +0 -7
  136. package/dist/assets/flags/svg/np.svg +0 -13
  137. package/dist/assets/flags/svg/nr.svg +0 -12
  138. package/dist/assets/flags/svg/nz.svg +0 -36
  139. package/dist/assets/flags/svg/om.svg +0 -115
  140. package/dist/assets/flags/svg/pa.svg +0 -14
  141. package/dist/assets/flags/svg/pe.svg +0 -4
  142. package/dist/assets/flags/svg/pg.svg +0 -9
  143. package/dist/assets/flags/svg/ph.svg +0 -6
  144. package/dist/assets/flags/svg/pk.svg +0 -15
  145. package/dist/assets/flags/svg/pl.svg +0 -6
  146. package/dist/assets/flags/svg/ps.svg +0 -6
  147. package/dist/assets/flags/svg/pt.svg +0 -57
  148. package/dist/assets/flags/svg/pw.svg +0 -11
  149. package/dist/assets/flags/svg/py.svg +0 -157
  150. package/dist/assets/flags/svg/qa.svg +0 -4
  151. package/dist/assets/flags/svg/ro.svg +0 -7
  152. package/dist/assets/flags/svg/rs.svg +0 -292
  153. package/dist/assets/flags/svg/ru.svg +0 -5
  154. package/dist/assets/flags/svg/rw.svg +0 -13
  155. package/dist/assets/flags/svg/sa.svg +0 -25
  156. package/dist/assets/flags/svg/sb.svg +0 -13
  157. package/dist/assets/flags/svg/sc.svg +0 -7
  158. package/dist/assets/flags/svg/sd.svg +0 -13
  159. package/dist/assets/flags/svg/se.svg +0 -4
  160. package/dist/assets/flags/svg/sg.svg +0 -13
  161. package/dist/assets/flags/svg/si.svg +0 -18
  162. package/dist/assets/flags/svg/sk.svg +0 -9
  163. package/dist/assets/flags/svg/sl.svg +0 -7
  164. package/dist/assets/flags/svg/sm.svg +0 -75
  165. package/dist/assets/flags/svg/sn.svg +0 -8
  166. package/dist/assets/flags/svg/so.svg +0 -11
  167. package/dist/assets/flags/svg/sr.svg +0 -6
  168. package/dist/assets/flags/svg/ss.svg +0 -8
  169. package/dist/assets/flags/svg/st.svg +0 -16
  170. package/dist/assets/flags/svg/sv.svg +0 -593
  171. package/dist/assets/flags/svg/sy.svg +0 -6
  172. package/dist/assets/flags/svg/sz.svg +0 -34
  173. package/dist/assets/flags/svg/td.svg +0 -7
  174. package/dist/assets/flags/svg/tg.svg +0 -14
  175. package/dist/assets/flags/svg/th.svg +0 -7
  176. package/dist/assets/flags/svg/tj.svg +0 -22
  177. package/dist/assets/flags/svg/tl.svg +0 -13
  178. package/dist/assets/flags/svg/tm.svg +0 -204
  179. package/dist/assets/flags/svg/tn.svg +0 -4
  180. package/dist/assets/flags/svg/to.svg +0 -10
  181. package/dist/assets/flags/svg/tr.svg +0 -8
  182. package/dist/assets/flags/svg/tt.svg +0 -5
  183. package/dist/assets/flags/svg/tv.svg +0 -9
  184. package/dist/assets/flags/svg/tw.svg +0 -34
  185. package/dist/assets/flags/svg/tz.svg +0 -13
  186. package/dist/assets/flags/svg/ua.svg +0 -6
  187. package/dist/assets/flags/svg/ug.svg +0 -30
  188. package/dist/assets/flags/svg/us.svg +0 -9
  189. package/dist/assets/flags/svg/uy.svg +0 -28
  190. package/dist/assets/flags/svg/uz.svg +0 -30
  191. package/dist/assets/flags/svg/va.svg +0 -190
  192. package/dist/assets/flags/svg/vc.svg +0 -8
  193. package/dist/assets/flags/svg/ve.svg +0 -26
  194. package/dist/assets/flags/svg/vn.svg +0 -11
  195. package/dist/assets/flags/svg/vu.svg +0 -21
  196. package/dist/assets/flags/svg/ws.svg +0 -7
  197. package/dist/assets/flags/svg/xk.svg +0 -5
  198. package/dist/assets/flags/svg/xn.svg +0 -6
  199. package/dist/assets/flags/svg/ye.svg +0 -7
  200. package/dist/assets/flags/svg/za.svg +0 -17
  201. package/dist/assets/flags/svg/zm.svg +0 -27
  202. package/dist/assets/flags/svg/zw.svg +0 -21
  203. package/dist/data/languages/index.html +0 -86
  204. package/dist/docs/api-worker-plan/index.html +0 -439
  205. package/dist/docs/cities/index.html +0 -193
  206. package/dist/docs/continents-currencies/index.html +0 -306
  207. package/dist/docs/countries/index.html +0 -274
  208. package/dist/docs/country-maps/index.html +0 -262
  209. package/dist/docs/flags/index.html +0 -300
  210. package/dist/docs/geography/index.html +0 -454
  211. package/dist/docs/languages/index.html +0 -304
  212. package/dist/docs/phone-codes/index.html +0 -152
  213. package/dist/docs/states/index.html +0 -334
  214. package/dist/docs/world-map/index.html +0 -345
  215. package/dist/examples/vue-app/index.html +0 -208
  216. package/dist/index.html +0 -784
  217. package/dist/robots.txt +0 -2
  218. package/dist/style/app.css +0 -1
@@ -1,334 +0,0 @@
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>