@adminforth/i18n 1.0.4

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 (580) hide show
  1. package/custom/LanguageInUserMenu.vue +74 -0
  2. package/custom/LanguageUnderLogin.vue +72 -0
  3. package/custom/langCommon.ts +88 -0
  4. package/custom/node_modules/.package-lock.json +16 -0
  5. package/custom/node_modules/flag-icon-css/.github/dependabot.yml +8 -0
  6. package/custom/node_modules/flag-icon-css/.github/workflows/test.yml +17 -0
  7. package/custom/node_modules/flag-icon-css/.prettierignore +3 -0
  8. package/custom/node_modules/flag-icon-css/.prettierrc.json +20 -0
  9. package/custom/node_modules/flag-icon-css/404.html +6 -0
  10. package/custom/node_modules/flag-icon-css/CNAME +1 -0
  11. package/custom/node_modules/flag-icon-css/LICENSE +21 -0
  12. package/custom/node_modules/flag-icon-css/README.md +54 -0
  13. package/custom/node_modules/flag-icon-css/assets/docs.css +58 -0
  14. package/custom/node_modules/flag-icon-css/assets/docs.js +64 -0
  15. package/custom/node_modules/flag-icon-css/country.json +1857 -0
  16. package/custom/node_modules/flag-icon-css/css/flag-icons.css +1610 -0
  17. package/custom/node_modules/flag-icon-css/css/flag-icons.min.css +1 -0
  18. package/custom/node_modules/flag-icon-css/favicon.ico +0 -0
  19. package/custom/node_modules/flag-icon-css/flags/1x1/ac.svg +81 -0
  20. package/custom/node_modules/flag-icon-css/flags/1x1/ad.svg +148 -0
  21. package/custom/node_modules/flag-icon-css/flags/1x1/ae.svg +6 -0
  22. package/custom/node_modules/flag-icon-css/flags/1x1/af.svg +81 -0
  23. package/custom/node_modules/flag-icon-css/flags/1x1/ag.svg +14 -0
  24. package/custom/node_modules/flag-icon-css/flags/1x1/ai.svg +763 -0
  25. package/custom/node_modules/flag-icon-css/flags/1x1/al.svg +5 -0
  26. package/custom/node_modules/flag-icon-css/flags/1x1/am.svg +5 -0
  27. package/custom/node_modules/flag-icon-css/flags/1x1/ao.svg +13 -0
  28. package/custom/node_modules/flag-icon-css/flags/1x1/aq.svg +5 -0
  29. package/custom/node_modules/flag-icon-css/flags/1x1/ar.svg +31 -0
  30. package/custom/node_modules/flag-icon-css/flags/1x1/as.svg +33 -0
  31. package/custom/node_modules/flag-icon-css/flags/1x1/at.svg +6 -0
  32. package/custom/node_modules/flag-icon-css/flags/1x1/au.svg +11 -0
  33. package/custom/node_modules/flag-icon-css/flags/1x1/aw.svg +186 -0
  34. package/custom/node_modules/flag-icon-css/flags/1x1/ax.svg +18 -0
  35. package/custom/node_modules/flag-icon-css/flags/1x1/az.svg +8 -0
  36. package/custom/node_modules/flag-icon-css/flags/1x1/ba.svg +12 -0
  37. package/custom/node_modules/flag-icon-css/flags/1x1/bb.svg +6 -0
  38. package/custom/node_modules/flag-icon-css/flags/1x1/bd.svg +4 -0
  39. package/custom/node_modules/flag-icon-css/flags/1x1/be.svg +7 -0
  40. package/custom/node_modules/flag-icon-css/flags/1x1/bf.svg +7 -0
  41. package/custom/node_modules/flag-icon-css/flags/1x1/bg.svg +7 -0
  42. package/custom/node_modules/flag-icon-css/flags/1x1/bh.svg +9 -0
  43. package/custom/node_modules/flag-icon-css/flags/1x1/bi.svg +15 -0
  44. package/custom/node_modules/flag-icon-css/flags/1x1/bj.svg +14 -0
  45. package/custom/node_modules/flag-icon-css/flags/1x1/bl.svg +7 -0
  46. package/custom/node_modules/flag-icon-css/flags/1x1/bm.svg +99 -0
  47. package/custom/node_modules/flag-icon-css/flags/1x1/bn.svg +36 -0
  48. package/custom/node_modules/flag-icon-css/flags/1x1/bo.svg +678 -0
  49. package/custom/node_modules/flag-icon-css/flags/1x1/bq.svg +5 -0
  50. package/custom/node_modules/flag-icon-css/flags/1x1/br.svg +45 -0
  51. package/custom/node_modules/flag-icon-css/flags/1x1/bs.svg +13 -0
  52. package/custom/node_modules/flag-icon-css/flags/1x1/bt.svg +89 -0
  53. package/custom/node_modules/flag-icon-css/flags/1x1/bv.svg +13 -0
  54. package/custom/node_modules/flag-icon-css/flags/1x1/bw.svg +7 -0
  55. package/custom/node_modules/flag-icon-css/flags/1x1/by.svg +22 -0
  56. package/custom/node_modules/flag-icon-css/flags/1x1/bz.svg +145 -0
  57. package/custom/node_modules/flag-icon-css/flags/1x1/ca.svg +4 -0
  58. package/custom/node_modules/flag-icon-css/flags/1x1/cc.svg +19 -0
  59. package/custom/node_modules/flag-icon-css/flags/1x1/cd.svg +12 -0
  60. package/custom/node_modules/flag-icon-css/flags/1x1/cf.svg +15 -0
  61. package/custom/node_modules/flag-icon-css/flags/1x1/cg.svg +12 -0
  62. package/custom/node_modules/flag-icon-css/flags/1x1/ch.svg +9 -0
  63. package/custom/node_modules/flag-icon-css/flags/1x1/ci.svg +7 -0
  64. package/custom/node_modules/flag-icon-css/flags/1x1/ck.svg +11 -0
  65. package/custom/node_modules/flag-icon-css/flags/1x1/cl.svg +13 -0
  66. package/custom/node_modules/flag-icon-css/flags/1x1/cm.svg +15 -0
  67. package/custom/node_modules/flag-icon-css/flags/1x1/cn.svg +11 -0
  68. package/custom/node_modules/flag-icon-css/flags/1x1/co.svg +7 -0
  69. package/custom/node_modules/flag-icon-css/flags/1x1/cp.svg +7 -0
  70. package/custom/node_modules/flag-icon-css/flags/1x1/cr.svg +7 -0
  71. package/custom/node_modules/flag-icon-css/flags/1x1/cu.svg +13 -0
  72. package/custom/node_modules/flag-icon-css/flags/1x1/cv.svg +13 -0
  73. package/custom/node_modules/flag-icon-css/flags/1x1/cw.svg +14 -0
  74. package/custom/node_modules/flag-icon-css/flags/1x1/cx.svg +15 -0
  75. package/custom/node_modules/flag-icon-css/flags/1x1/cy.svg +6 -0
  76. package/custom/node_modules/flag-icon-css/flags/1x1/cz.svg +5 -0
  77. package/custom/node_modules/flag-icon-css/flags/1x1/de.svg +5 -0
  78. package/custom/node_modules/flag-icon-css/flags/1x1/dg.svg +140 -0
  79. package/custom/node_modules/flag-icon-css/flags/1x1/dj.svg +13 -0
  80. package/custom/node_modules/flag-icon-css/flags/1x1/dk.svg +5 -0
  81. package/custom/node_modules/flag-icon-css/flags/1x1/dm.svg +152 -0
  82. package/custom/node_modules/flag-icon-css/flags/1x1/do.svg +6745 -0
  83. package/custom/node_modules/flag-icon-css/flags/1x1/dz.svg +5 -0
  84. package/custom/node_modules/flag-icon-css/flags/1x1/ea.svg +547 -0
  85. package/custom/node_modules/flag-icon-css/flags/1x1/ec.svg +138 -0
  86. package/custom/node_modules/flag-icon-css/flags/1x1/ee.svg +7 -0
  87. package/custom/node_modules/flag-icon-css/flags/1x1/eg.svg +38 -0
  88. package/custom/node_modules/flag-icon-css/flags/1x1/eh.svg +16 -0
  89. package/custom/node_modules/flag-icon-css/flags/1x1/er.svg +13 -0
  90. package/custom/node_modules/flag-icon-css/flags/1x1/es-ct.svg +4 -0
  91. package/custom/node_modules/flag-icon-css/flags/1x1/es-ga.svg +189 -0
  92. package/custom/node_modules/flag-icon-css/flags/1x1/es.svg +547 -0
  93. package/custom/node_modules/flag-icon-css/flags/1x1/et.svg +14 -0
  94. package/custom/node_modules/flag-icon-css/flags/1x1/eu.svg +28 -0
  95. package/custom/node_modules/flag-icon-css/flags/1x1/fi.svg +5 -0
  96. package/custom/node_modules/flag-icon-css/flags/1x1/fj.svg +125 -0
  97. package/custom/node_modules/flag-icon-css/flags/1x1/fk.svg +93 -0
  98. package/custom/node_modules/flag-icon-css/flags/1x1/fm.svg +11 -0
  99. package/custom/node_modules/flag-icon-css/flags/1x1/fo.svg +12 -0
  100. package/custom/node_modules/flag-icon-css/flags/1x1/fr.svg +7 -0
  101. package/custom/node_modules/flag-icon-css/flags/1x1/ga.svg +7 -0
  102. package/custom/node_modules/flag-icon-css/flags/1x1/gb-eng.svg +5 -0
  103. package/custom/node_modules/flag-icon-css/flags/1x1/gb-nir.svg +131 -0
  104. package/custom/node_modules/flag-icon-css/flags/1x1/gb-sct.svg +4 -0
  105. package/custom/node_modules/flag-icon-css/flags/1x1/gb-wls.svg +9 -0
  106. package/custom/node_modules/flag-icon-css/flags/1x1/gb.svg +7 -0
  107. package/custom/node_modules/flag-icon-css/flags/1x1/gd.svg +27 -0
  108. package/custom/node_modules/flag-icon-css/flags/1x1/ge.svg +6 -0
  109. package/custom/node_modules/flag-icon-css/flags/1x1/gf.svg +7 -0
  110. package/custom/node_modules/flag-icon-css/flags/1x1/gg.svg +9 -0
  111. package/custom/node_modules/flag-icon-css/flags/1x1/gh.svg +6 -0
  112. package/custom/node_modules/flag-icon-css/flags/1x1/gi.svg +32 -0
  113. package/custom/node_modules/flag-icon-css/flags/1x1/gl.svg +4 -0
  114. package/custom/node_modules/flag-icon-css/flags/1x1/gm.svg +9 -0
  115. package/custom/node_modules/flag-icon-css/flags/1x1/gn.svg +7 -0
  116. package/custom/node_modules/flag-icon-css/flags/1x1/gp.svg +7 -0
  117. package/custom/node_modules/flag-icon-css/flags/1x1/gq.svg +23 -0
  118. package/custom/node_modules/flag-icon-css/flags/1x1/gr.svg +16 -0
  119. package/custom/node_modules/flag-icon-css/flags/1x1/gs.svg +245 -0
  120. package/custom/node_modules/flag-icon-css/flags/1x1/gt.svg +204 -0
  121. package/custom/node_modules/flag-icon-css/flags/1x1/gu.svg +39 -0
  122. package/custom/node_modules/flag-icon-css/flags/1x1/gw.svg +15 -0
  123. package/custom/node_modules/flag-icon-css/flags/1x1/gy.svg +9 -0
  124. package/custom/node_modules/flag-icon-css/flags/1x1/hk.svg +30 -0
  125. package/custom/node_modules/flag-icon-css/flags/1x1/hm.svg +11 -0
  126. package/custom/node_modules/flag-icon-css/flags/1x1/hn.svg +18 -0
  127. package/custom/node_modules/flag-icon-css/flags/1x1/hr.svg +56 -0
  128. package/custom/node_modules/flag-icon-css/flags/1x1/ht.svg +116 -0
  129. package/custom/node_modules/flag-icon-css/flags/1x1/hu.svg +7 -0
  130. package/custom/node_modules/flag-icon-css/flags/1x1/ic.svg +7 -0
  131. package/custom/node_modules/flag-icon-css/flags/1x1/id.svg +6 -0
  132. package/custom/node_modules/flag-icon-css/flags/1x1/ie.svg +7 -0
  133. package/custom/node_modules/flag-icon-css/flags/1x1/il.svg +14 -0
  134. package/custom/node_modules/flag-icon-css/flags/1x1/im.svg +36 -0
  135. package/custom/node_modules/flag-icon-css/flags/1x1/in.svg +25 -0
  136. package/custom/node_modules/flag-icon-css/flags/1x1/io.svg +140 -0
  137. package/custom/node_modules/flag-icon-css/flags/1x1/iq.svg +10 -0
  138. package/custom/node_modules/flag-icon-css/flags/1x1/ir.svg +219 -0
  139. package/custom/node_modules/flag-icon-css/flags/1x1/is.svg +12 -0
  140. package/custom/node_modules/flag-icon-css/flags/1x1/it.svg +7 -0
  141. package/custom/node_modules/flag-icon-css/flags/1x1/je.svg +47 -0
  142. package/custom/node_modules/flag-icon-css/flags/1x1/jm.svg +8 -0
  143. package/custom/node_modules/flag-icon-css/flags/1x1/jo.svg +16 -0
  144. package/custom/node_modules/flag-icon-css/flags/1x1/jp.svg +11 -0
  145. package/custom/node_modules/flag-icon-css/flags/1x1/ke.svg +23 -0
  146. package/custom/node_modules/flag-icon-css/flags/1x1/kg.svg +15 -0
  147. package/custom/node_modules/flag-icon-css/flags/1x1/kh.svg +61 -0
  148. package/custom/node_modules/flag-icon-css/flags/1x1/ki.svg +36 -0
  149. package/custom/node_modules/flag-icon-css/flags/1x1/km.svg +16 -0
  150. package/custom/node_modules/flag-icon-css/flags/1x1/kn.svg +14 -0
  151. package/custom/node_modules/flag-icon-css/flags/1x1/kp.svg +15 -0
  152. package/custom/node_modules/flag-icon-css/flags/1x1/kr.svg +24 -0
  153. package/custom/node_modules/flag-icon-css/flags/1x1/kw.svg +13 -0
  154. package/custom/node_modules/flag-icon-css/flags/1x1/ky.svg +225 -0
  155. package/custom/node_modules/flag-icon-css/flags/1x1/kz.svg +23 -0
  156. package/custom/node_modules/flag-icon-css/flags/1x1/la.svg +12 -0
  157. package/custom/node_modules/flag-icon-css/flags/1x1/lb.svg +15 -0
  158. package/custom/node_modules/flag-icon-css/flags/1x1/lc.svg +8 -0
  159. package/custom/node_modules/flag-icon-css/flags/1x1/li.svg +43 -0
  160. package/custom/node_modules/flag-icon-css/flags/1x1/lk.svg +22 -0
  161. package/custom/node_modules/flag-icon-css/flags/1x1/lr.svg +14 -0
  162. package/custom/node_modules/flag-icon-css/flags/1x1/ls.svg +8 -0
  163. package/custom/node_modules/flag-icon-css/flags/1x1/lt.svg +7 -0
  164. package/custom/node_modules/flag-icon-css/flags/1x1/lu.svg +5 -0
  165. package/custom/node_modules/flag-icon-css/flags/1x1/lv.svg +6 -0
  166. package/custom/node_modules/flag-icon-css/flags/1x1/ly.svg +13 -0
  167. package/custom/node_modules/flag-icon-css/flags/1x1/ma.svg +4 -0
  168. package/custom/node_modules/flag-icon-css/flags/1x1/mc.svg +6 -0
  169. package/custom/node_modules/flag-icon-css/flags/1x1/md.svg +71 -0
  170. package/custom/node_modules/flag-icon-css/flags/1x1/me.svg +118 -0
  171. package/custom/node_modules/flag-icon-css/flags/1x1/mf.svg +7 -0
  172. package/custom/node_modules/flag-icon-css/flags/1x1/mg.svg +7 -0
  173. package/custom/node_modules/flag-icon-css/flags/1x1/mh.svg +8 -0
  174. package/custom/node_modules/flag-icon-css/flags/1x1/mk.svg +5 -0
  175. package/custom/node_modules/flag-icon-css/flags/1x1/ml.svg +7 -0
  176. package/custom/node_modules/flag-icon-css/flags/1x1/mm.svg +16 -0
  177. package/custom/node_modules/flag-icon-css/flags/1x1/mn.svg +13 -0
  178. package/custom/node_modules/flag-icon-css/flags/1x1/mo.svg +9 -0
  179. package/custom/node_modules/flag-icon-css/flags/1x1/mp.svg +86 -0
  180. package/custom/node_modules/flag-icon-css/flags/1x1/mq.svg +7 -0
  181. package/custom/node_modules/flag-icon-css/flags/1x1/mr.svg +6 -0
  182. package/custom/node_modules/flag-icon-css/flags/1x1/ms.svg +70 -0
  183. package/custom/node_modules/flag-icon-css/flags/1x1/mt.svg +50 -0
  184. package/custom/node_modules/flag-icon-css/flags/1x1/mu.svg +8 -0
  185. package/custom/node_modules/flag-icon-css/flags/1x1/mv.svg +6 -0
  186. package/custom/node_modules/flag-icon-css/flags/1x1/mw.svg +15 -0
  187. package/custom/node_modules/flag-icon-css/flags/1x1/mx.svg +378 -0
  188. package/custom/node_modules/flag-icon-css/flags/1x1/my.svg +11 -0
  189. package/custom/node_modules/flag-icon-css/flags/1x1/mz.svg +21 -0
  190. package/custom/node_modules/flag-icon-css/flags/1x1/na.svg +16 -0
  191. package/custom/node_modules/flag-icon-css/flags/1x1/nc.svg +14 -0
  192. package/custom/node_modules/flag-icon-css/flags/1x1/ne.svg +6 -0
  193. package/custom/node_modules/flag-icon-css/flags/1x1/nf.svg +11 -0
  194. package/custom/node_modules/flag-icon-css/flags/1x1/ng.svg +6 -0
  195. package/custom/node_modules/flag-icon-css/flags/1x1/ni.svg +129 -0
  196. package/custom/node_modules/flag-icon-css/flags/1x1/nl.svg +5 -0
  197. package/custom/node_modules/flag-icon-css/flags/1x1/no.svg +7 -0
  198. package/custom/node_modules/flag-icon-css/flags/1x1/np.svg +19 -0
  199. package/custom/node_modules/flag-icon-css/flags/1x1/nr.svg +12 -0
  200. package/custom/node_modules/flag-icon-css/flags/1x1/nu.svg +26 -0
  201. package/custom/node_modules/flag-icon-css/flags/1x1/nz.svg +42 -0
  202. package/custom/node_modules/flag-icon-css/flags/1x1/om.svg +115 -0
  203. package/custom/node_modules/flag-icon-css/flags/1x1/pa.svg +13 -0
  204. package/custom/node_modules/flag-icon-css/flags/1x1/pe.svg +244 -0
  205. package/custom/node_modules/flag-icon-css/flags/1x1/pf.svg +18 -0
  206. package/custom/node_modules/flag-icon-css/flags/1x1/pg.svg +16 -0
  207. package/custom/node_modules/flag-icon-css/flags/1x1/ph.svg +9 -0
  208. package/custom/node_modules/flag-icon-css/flags/1x1/pk.svg +15 -0
  209. package/custom/node_modules/flag-icon-css/flags/1x1/pl.svg +6 -0
  210. package/custom/node_modules/flag-icon-css/flags/1x1/pm.svg +7 -0
  211. package/custom/node_modules/flag-icon-css/flags/1x1/pn.svg +100 -0
  212. package/custom/node_modules/flag-icon-css/flags/1x1/pr.svg +13 -0
  213. package/custom/node_modules/flag-icon-css/flags/1x1/ps.svg +15 -0
  214. package/custom/node_modules/flag-icon-css/flags/1x1/pt.svg +57 -0
  215. package/custom/node_modules/flag-icon-css/flags/1x1/pw.svg +11 -0
  216. package/custom/node_modules/flag-icon-css/flags/1x1/py.svg +156 -0
  217. package/custom/node_modules/flag-icon-css/flags/1x1/qa.svg +4 -0
  218. package/custom/node_modules/flag-icon-css/flags/1x1/re.svg +7 -0
  219. package/custom/node_modules/flag-icon-css/flags/1x1/ro.svg +7 -0
  220. package/custom/node_modules/flag-icon-css/flags/1x1/rs.svg +296 -0
  221. package/custom/node_modules/flag-icon-css/flags/1x1/ru.svg +7 -0
  222. package/custom/node_modules/flag-icon-css/flags/1x1/rw.svg +13 -0
  223. package/custom/node_modules/flag-icon-css/flags/1x1/sa.svg +26 -0
  224. package/custom/node_modules/flag-icon-css/flags/1x1/sb.svg +13 -0
  225. package/custom/node_modules/flag-icon-css/flags/1x1/sc.svg +14 -0
  226. package/custom/node_modules/flag-icon-css/flags/1x1/sd.svg +13 -0
  227. package/custom/node_modules/flag-icon-css/flags/1x1/se.svg +5 -0
  228. package/custom/node_modules/flag-icon-css/flags/1x1/sg.svg +13 -0
  229. package/custom/node_modules/flag-icon-css/flags/1x1/sh.svg +81 -0
  230. package/custom/node_modules/flag-icon-css/flags/1x1/si.svg +18 -0
  231. package/custom/node_modules/flag-icon-css/flags/1x1/sj.svg +7 -0
  232. package/custom/node_modules/flag-icon-css/flags/1x1/sk.svg +9 -0
  233. package/custom/node_modules/flag-icon-css/flags/1x1/sl.svg +12 -0
  234. package/custom/node_modules/flag-icon-css/flags/1x1/sm.svg +89 -0
  235. package/custom/node_modules/flag-icon-css/flags/1x1/sn.svg +8 -0
  236. package/custom/node_modules/flag-icon-css/flags/1x1/so.svg +11 -0
  237. package/custom/node_modules/flag-icon-css/flags/1x1/sr.svg +6 -0
  238. package/custom/node_modules/flag-icon-css/flags/1x1/ss.svg +8 -0
  239. package/custom/node_modules/flag-icon-css/flags/1x1/st.svg +16 -0
  240. package/custom/node_modules/flag-icon-css/flags/1x1/sv.svg +594 -0
  241. package/custom/node_modules/flag-icon-css/flags/1x1/sx.svg +56 -0
  242. package/custom/node_modules/flag-icon-css/flags/1x1/sy.svg +6 -0
  243. package/custom/node_modules/flag-icon-css/flags/1x1/sz.svg +45 -0
  244. package/custom/node_modules/flag-icon-css/flags/1x1/ta.svg +81 -0
  245. package/custom/node_modules/flag-icon-css/flags/1x1/tc.svg +52 -0
  246. package/custom/node_modules/flag-icon-css/flags/1x1/td.svg +7 -0
  247. package/custom/node_modules/flag-icon-css/flags/1x1/tf.svg +15 -0
  248. package/custom/node_modules/flag-icon-css/flags/1x1/tg.svg +14 -0
  249. package/custom/node_modules/flag-icon-css/flags/1x1/th.svg +7 -0
  250. package/custom/node_modules/flag-icon-css/flags/1x1/tj.svg +26 -0
  251. package/custom/node_modules/flag-icon-css/flags/1x1/tk.svg +5 -0
  252. package/custom/node_modules/flag-icon-css/flags/1x1/tl.svg +13 -0
  253. package/custom/node_modules/flag-icon-css/flags/1x1/tm.svg +203 -0
  254. package/custom/node_modules/flag-icon-css/flags/1x1/tn.svg +13 -0
  255. package/custom/node_modules/flag-icon-css/flags/1x1/to.svg +10 -0
  256. package/custom/node_modules/flag-icon-css/flags/1x1/tr.svg +8 -0
  257. package/custom/node_modules/flag-icon-css/flags/1x1/tt.svg +7 -0
  258. package/custom/node_modules/flag-icon-css/flags/1x1/tv.svg +16 -0
  259. package/custom/node_modules/flag-icon-css/flags/1x1/tw.svg +32 -0
  260. package/custom/node_modules/flag-icon-css/flags/1x1/tz.svg +15 -0
  261. package/custom/node_modules/flag-icon-css/flags/1x1/ua.svg +6 -0
  262. package/custom/node_modules/flag-icon-css/flags/1x1/ug.svg +30 -0
  263. package/custom/node_modules/flag-icon-css/flags/1x1/um.svg +15 -0
  264. package/custom/node_modules/flag-icon-css/flags/1x1/un.svg +16 -0
  265. package/custom/node_modules/flag-icon-css/flags/1x1/us.svg +10 -0
  266. package/custom/node_modules/flag-icon-css/flags/1x1/uy.svg +28 -0
  267. package/custom/node_modules/flag-icon-css/flags/1x1/uz.svg +30 -0
  268. package/custom/node_modules/flag-icon-css/flags/1x1/va.svg +479 -0
  269. package/custom/node_modules/flag-icon-css/flags/1x1/vc.svg +8 -0
  270. package/custom/node_modules/flag-icon-css/flags/1x1/ve.svg +26 -0
  271. package/custom/node_modules/flag-icon-css/flags/1x1/vg.svg +127 -0
  272. package/custom/node_modules/flag-icon-css/flags/1x1/vi.svg +28 -0
  273. package/custom/node_modules/flag-icon-css/flags/1x1/vn.svg +11 -0
  274. package/custom/node_modules/flag-icon-css/flags/1x1/vu.svg +18 -0
  275. package/custom/node_modules/flag-icon-css/flags/1x1/wf.svg +7 -0
  276. package/custom/node_modules/flag-icon-css/flags/1x1/ws.svg +7 -0
  277. package/custom/node_modules/flag-icon-css/flags/1x1/xk.svg +16 -0
  278. package/custom/node_modules/flag-icon-css/flags/1x1/xx.svg +5 -0
  279. package/custom/node_modules/flag-icon-css/flags/1x1/ye.svg +7 -0
  280. package/custom/node_modules/flag-icon-css/flags/1x1/yt.svg +7 -0
  281. package/custom/node_modules/flag-icon-css/flags/1x1/za.svg +17 -0
  282. package/custom/node_modules/flag-icon-css/flags/1x1/zm.svg +27 -0
  283. package/custom/node_modules/flag-icon-css/flags/1x1/zw.svg +21 -0
  284. package/custom/node_modules/flag-icon-css/flags/4x3/ac.svg +76 -0
  285. package/custom/node_modules/flag-icon-css/flags/4x3/ad.svg +150 -0
  286. package/custom/node_modules/flag-icon-css/flags/4x3/ae.svg +6 -0
  287. package/custom/node_modules/flag-icon-css/flags/4x3/af.svg +81 -0
  288. package/custom/node_modules/flag-icon-css/flags/4x3/ag.svg +14 -0
  289. package/custom/node_modules/flag-icon-css/flags/4x3/ai.svg +763 -0
  290. package/custom/node_modules/flag-icon-css/flags/4x3/al.svg +5 -0
  291. package/custom/node_modules/flag-icon-css/flags/4x3/am.svg +5 -0
  292. package/custom/node_modules/flag-icon-css/flags/4x3/ao.svg +13 -0
  293. package/custom/node_modules/flag-icon-css/flags/4x3/aq.svg +5 -0
  294. package/custom/node_modules/flag-icon-css/flags/4x3/ar.svg +31 -0
  295. package/custom/node_modules/flag-icon-css/flags/4x3/as.svg +33 -0
  296. package/custom/node_modules/flag-icon-css/flags/4x3/at.svg +6 -0
  297. package/custom/node_modules/flag-icon-css/flags/4x3/au.svg +9 -0
  298. package/custom/node_modules/flag-icon-css/flags/4x3/aw.svg +186 -0
  299. package/custom/node_modules/flag-icon-css/flags/4x3/ax.svg +18 -0
  300. package/custom/node_modules/flag-icon-css/flags/4x3/az.svg +8 -0
  301. package/custom/node_modules/flag-icon-css/flags/4x3/ba.svg +12 -0
  302. package/custom/node_modules/flag-icon-css/flags/4x3/bb.svg +6 -0
  303. package/custom/node_modules/flag-icon-css/flags/4x3/bd.svg +4 -0
  304. package/custom/node_modules/flag-icon-css/flags/4x3/be.svg +7 -0
  305. package/custom/node_modules/flag-icon-css/flags/4x3/bf.svg +7 -0
  306. package/custom/node_modules/flag-icon-css/flags/4x3/bg.svg +7 -0
  307. package/custom/node_modules/flag-icon-css/flags/4x3/bh.svg +9 -0
  308. package/custom/node_modules/flag-icon-css/flags/4x3/bi.svg +15 -0
  309. package/custom/node_modules/flag-icon-css/flags/4x3/bj.svg +14 -0
  310. package/custom/node_modules/flag-icon-css/flags/4x3/bl.svg +7 -0
  311. package/custom/node_modules/flag-icon-css/flags/4x3/bm.svg +99 -0
  312. package/custom/node_modules/flag-icon-css/flags/4x3/bn.svg +36 -0
  313. package/custom/node_modules/flag-icon-css/flags/4x3/bo.svg +676 -0
  314. package/custom/node_modules/flag-icon-css/flags/4x3/bq.svg +5 -0
  315. package/custom/node_modules/flag-icon-css/flags/4x3/br.svg +45 -0
  316. package/custom/node_modules/flag-icon-css/flags/4x3/bs.svg +13 -0
  317. package/custom/node_modules/flag-icon-css/flags/4x3/bt.svg +89 -0
  318. package/custom/node_modules/flag-icon-css/flags/4x3/bv.svg +13 -0
  319. package/custom/node_modules/flag-icon-css/flags/4x3/bw.svg +7 -0
  320. package/custom/node_modules/flag-icon-css/flags/4x3/by.svg +20 -0
  321. package/custom/node_modules/flag-icon-css/flags/4x3/bz.svg +145 -0
  322. package/custom/node_modules/flag-icon-css/flags/4x3/ca.svg +4 -0
  323. package/custom/node_modules/flag-icon-css/flags/4x3/cc.svg +19 -0
  324. package/custom/node_modules/flag-icon-css/flags/4x3/cd.svg +5 -0
  325. package/custom/node_modules/flag-icon-css/flags/4x3/cf.svg +15 -0
  326. package/custom/node_modules/flag-icon-css/flags/4x3/cg.svg +12 -0
  327. package/custom/node_modules/flag-icon-css/flags/4x3/ch.svg +9 -0
  328. package/custom/node_modules/flag-icon-css/flags/4x3/ci.svg +7 -0
  329. package/custom/node_modules/flag-icon-css/flags/4x3/ck.svg +9 -0
  330. package/custom/node_modules/flag-icon-css/flags/4x3/cl.svg +13 -0
  331. package/custom/node_modules/flag-icon-css/flags/4x3/cm.svg +15 -0
  332. package/custom/node_modules/flag-icon-css/flags/4x3/cn.svg +11 -0
  333. package/custom/node_modules/flag-icon-css/flags/4x3/co.svg +7 -0
  334. package/custom/node_modules/flag-icon-css/flags/4x3/cp.svg +7 -0
  335. package/custom/node_modules/flag-icon-css/flags/4x3/cr.svg +7 -0
  336. package/custom/node_modules/flag-icon-css/flags/4x3/cu.svg +13 -0
  337. package/custom/node_modules/flag-icon-css/flags/4x3/cv.svg +13 -0
  338. package/custom/node_modules/flag-icon-css/flags/4x3/cw.svg +14 -0
  339. package/custom/node_modules/flag-icon-css/flags/4x3/cx.svg +15 -0
  340. package/custom/node_modules/flag-icon-css/flags/4x3/cy.svg +6 -0
  341. package/custom/node_modules/flag-icon-css/flags/4x3/cz.svg +5 -0
  342. package/custom/node_modules/flag-icon-css/flags/4x3/de.svg +5 -0
  343. package/custom/node_modules/flag-icon-css/flags/4x3/dg.svg +138 -0
  344. package/custom/node_modules/flag-icon-css/flags/4x3/dj.svg +13 -0
  345. package/custom/node_modules/flag-icon-css/flags/4x3/dk.svg +5 -0
  346. package/custom/node_modules/flag-icon-css/flags/4x3/dm.svg +152 -0
  347. package/custom/node_modules/flag-icon-css/flags/4x3/do.svg +6745 -0
  348. package/custom/node_modules/flag-icon-css/flags/4x3/dz.svg +5 -0
  349. package/custom/node_modules/flag-icon-css/flags/4x3/ea.svg +544 -0
  350. package/custom/node_modules/flag-icon-css/flags/4x3/ec.svg +138 -0
  351. package/custom/node_modules/flag-icon-css/flags/4x3/ee.svg +7 -0
  352. package/custom/node_modules/flag-icon-css/flags/4x3/eg.svg +38 -0
  353. package/custom/node_modules/flag-icon-css/flags/4x3/eh.svg +16 -0
  354. package/custom/node_modules/flag-icon-css/flags/4x3/er.svg +8 -0
  355. package/custom/node_modules/flag-icon-css/flags/4x3/es-ct.svg +4 -0
  356. package/custom/node_modules/flag-icon-css/flags/4x3/es-ga.svg +189 -0
  357. package/custom/node_modules/flag-icon-css/flags/4x3/es.svg +544 -0
  358. package/custom/node_modules/flag-icon-css/flags/4x3/et.svg +14 -0
  359. package/custom/node_modules/flag-icon-css/flags/4x3/eu.svg +28 -0
  360. package/custom/node_modules/flag-icon-css/flags/4x3/fi.svg +5 -0
  361. package/custom/node_modules/flag-icon-css/flags/4x3/fj.svg +122 -0
  362. package/custom/node_modules/flag-icon-css/flags/4x3/fk.svg +90 -0
  363. package/custom/node_modules/flag-icon-css/flags/4x3/fm.svg +11 -0
  364. package/custom/node_modules/flag-icon-css/flags/4x3/fo.svg +12 -0
  365. package/custom/node_modules/flag-icon-css/flags/4x3/fr.svg +7 -0
  366. package/custom/node_modules/flag-icon-css/flags/4x3/ga.svg +7 -0
  367. package/custom/node_modules/flag-icon-css/flags/4x3/gb-eng.svg +5 -0
  368. package/custom/node_modules/flag-icon-css/flags/4x3/gb-nir.svg +132 -0
  369. package/custom/node_modules/flag-icon-css/flags/4x3/gb-sct.svg +4 -0
  370. package/custom/node_modules/flag-icon-css/flags/4x3/gb-wls.svg +9 -0
  371. package/custom/node_modules/flag-icon-css/flags/4x3/gb.svg +7 -0
  372. package/custom/node_modules/flag-icon-css/flags/4x3/gd.svg +27 -0
  373. package/custom/node_modules/flag-icon-css/flags/4x3/ge.svg +6 -0
  374. package/custom/node_modules/flag-icon-css/flags/4x3/gf.svg +7 -0
  375. package/custom/node_modules/flag-icon-css/flags/4x3/gg.svg +9 -0
  376. package/custom/node_modules/flag-icon-css/flags/4x3/gh.svg +6 -0
  377. package/custom/node_modules/flag-icon-css/flags/4x3/gi.svg +32 -0
  378. package/custom/node_modules/flag-icon-css/flags/4x3/gl.svg +4 -0
  379. package/custom/node_modules/flag-icon-css/flags/4x3/gm.svg +14 -0
  380. package/custom/node_modules/flag-icon-css/flags/4x3/gn.svg +7 -0
  381. package/custom/node_modules/flag-icon-css/flags/4x3/gp.svg +7 -0
  382. package/custom/node_modules/flag-icon-css/flags/4x3/gq.svg +23 -0
  383. package/custom/node_modules/flag-icon-css/flags/4x3/gr.svg +16 -0
  384. package/custom/node_modules/flag-icon-css/flags/4x3/gs.svg +242 -0
  385. package/custom/node_modules/flag-icon-css/flags/4x3/gt.svg +204 -0
  386. package/custom/node_modules/flag-icon-css/flags/4x3/gu.svg +39 -0
  387. package/custom/node_modules/flag-icon-css/flags/4x3/gw.svg +13 -0
  388. package/custom/node_modules/flag-icon-css/flags/4x3/gy.svg +9 -0
  389. package/custom/node_modules/flag-icon-css/flags/4x3/hk.svg +30 -0
  390. package/custom/node_modules/flag-icon-css/flags/4x3/hm.svg +9 -0
  391. package/custom/node_modules/flag-icon-css/flags/4x3/hn.svg +18 -0
  392. package/custom/node_modules/flag-icon-css/flags/4x3/hr.svg +58 -0
  393. package/custom/node_modules/flag-icon-css/flags/4x3/ht.svg +116 -0
  394. package/custom/node_modules/flag-icon-css/flags/4x3/hu.svg +7 -0
  395. package/custom/node_modules/flag-icon-css/flags/4x3/ic.svg +7 -0
  396. package/custom/node_modules/flag-icon-css/flags/4x3/id.svg +6 -0
  397. package/custom/node_modules/flag-icon-css/flags/4x3/ie.svg +7 -0
  398. package/custom/node_modules/flag-icon-css/flags/4x3/il.svg +14 -0
  399. package/custom/node_modules/flag-icon-css/flags/4x3/im.svg +36 -0
  400. package/custom/node_modules/flag-icon-css/flags/4x3/in.svg +25 -0
  401. package/custom/node_modules/flag-icon-css/flags/4x3/io.svg +138 -0
  402. package/custom/node_modules/flag-icon-css/flags/4x3/iq.svg +10 -0
  403. package/custom/node_modules/flag-icon-css/flags/4x3/ir.svg +219 -0
  404. package/custom/node_modules/flag-icon-css/flags/4x3/is.svg +12 -0
  405. package/custom/node_modules/flag-icon-css/flags/4x3/it.svg +7 -0
  406. package/custom/node_modules/flag-icon-css/flags/4x3/je.svg +47 -0
  407. package/custom/node_modules/flag-icon-css/flags/4x3/jm.svg +8 -0
  408. package/custom/node_modules/flag-icon-css/flags/4x3/jo.svg +16 -0
  409. package/custom/node_modules/flag-icon-css/flags/4x3/jp.svg +11 -0
  410. package/custom/node_modules/flag-icon-css/flags/4x3/ke.svg +23 -0
  411. package/custom/node_modules/flag-icon-css/flags/4x3/kg.svg +15 -0
  412. package/custom/node_modules/flag-icon-css/flags/4x3/kh.svg +61 -0
  413. package/custom/node_modules/flag-icon-css/flags/4x3/ki.svg +36 -0
  414. package/custom/node_modules/flag-icon-css/flags/4x3/km.svg +16 -0
  415. package/custom/node_modules/flag-icon-css/flags/4x3/kn.svg +14 -0
  416. package/custom/node_modules/flag-icon-css/flags/4x3/kp.svg +15 -0
  417. package/custom/node_modules/flag-icon-css/flags/4x3/kr.svg +24 -0
  418. package/custom/node_modules/flag-icon-css/flags/4x3/kw.svg +13 -0
  419. package/custom/node_modules/flag-icon-css/flags/4x3/ky.svg +225 -0
  420. package/custom/node_modules/flag-icon-css/flags/4x3/kz.svg +23 -0
  421. package/custom/node_modules/flag-icon-css/flags/4x3/la.svg +12 -0
  422. package/custom/node_modules/flag-icon-css/flags/4x3/lb.svg +15 -0
  423. package/custom/node_modules/flag-icon-css/flags/4x3/lc.svg +8 -0
  424. package/custom/node_modules/flag-icon-css/flags/4x3/li.svg +43 -0
  425. package/custom/node_modules/flag-icon-css/flags/4x3/lk.svg +22 -0
  426. package/custom/node_modules/flag-icon-css/flags/4x3/lr.svg +14 -0
  427. package/custom/node_modules/flag-icon-css/flags/4x3/ls.svg +8 -0
  428. package/custom/node_modules/flag-icon-css/flags/4x3/lt.svg +7 -0
  429. package/custom/node_modules/flag-icon-css/flags/4x3/lu.svg +5 -0
  430. package/custom/node_modules/flag-icon-css/flags/4x3/lv.svg +6 -0
  431. package/custom/node_modules/flag-icon-css/flags/4x3/ly.svg +13 -0
  432. package/custom/node_modules/flag-icon-css/flags/4x3/ma.svg +4 -0
  433. package/custom/node_modules/flag-icon-css/flags/4x3/mc.svg +6 -0
  434. package/custom/node_modules/flag-icon-css/flags/4x3/md.svg +70 -0
  435. package/custom/node_modules/flag-icon-css/flags/4x3/me.svg +116 -0
  436. package/custom/node_modules/flag-icon-css/flags/4x3/mf.svg +7 -0
  437. package/custom/node_modules/flag-icon-css/flags/4x3/mg.svg +7 -0
  438. package/custom/node_modules/flag-icon-css/flags/4x3/mh.svg +7 -0
  439. package/custom/node_modules/flag-icon-css/flags/4x3/mk.svg +5 -0
  440. package/custom/node_modules/flag-icon-css/flags/4x3/ml.svg +7 -0
  441. package/custom/node_modules/flag-icon-css/flags/4x3/mm.svg +16 -0
  442. package/custom/node_modules/flag-icon-css/flags/4x3/mn.svg +13 -0
  443. package/custom/node_modules/flag-icon-css/flags/4x3/mo.svg +9 -0
  444. package/custom/node_modules/flag-icon-css/flags/4x3/mp.svg +86 -0
  445. package/custom/node_modules/flag-icon-css/flags/4x3/mq.svg +7 -0
  446. package/custom/node_modules/flag-icon-css/flags/4x3/mr.svg +6 -0
  447. package/custom/node_modules/flag-icon-css/flags/4x3/ms.svg +78 -0
  448. package/custom/node_modules/flag-icon-css/flags/4x3/mt.svg +49 -0
  449. package/custom/node_modules/flag-icon-css/flags/4x3/mu.svg +8 -0
  450. package/custom/node_modules/flag-icon-css/flags/4x3/mv.svg +6 -0
  451. package/custom/node_modules/flag-icon-css/flags/4x3/mw.svg +10 -0
  452. package/custom/node_modules/flag-icon-css/flags/4x3/mx.svg +382 -0
  453. package/custom/node_modules/flag-icon-css/flags/4x3/my.svg +11 -0
  454. package/custom/node_modules/flag-icon-css/flags/4x3/mz.svg +21 -0
  455. package/custom/node_modules/flag-icon-css/flags/4x3/na.svg +16 -0
  456. package/custom/node_modules/flag-icon-css/flags/4x3/nc.svg +14 -0
  457. package/custom/node_modules/flag-icon-css/flags/4x3/ne.svg +6 -0
  458. package/custom/node_modules/flag-icon-css/flags/4x3/nf.svg +9 -0
  459. package/custom/node_modules/flag-icon-css/flags/4x3/ng.svg +6 -0
  460. package/custom/node_modules/flag-icon-css/flags/4x3/ni.svg +129 -0
  461. package/custom/node_modules/flag-icon-css/flags/4x3/nl.svg +5 -0
  462. package/custom/node_modules/flag-icon-css/flags/4x3/no.svg +7 -0
  463. package/custom/node_modules/flag-icon-css/flags/4x3/np.svg +14 -0
  464. package/custom/node_modules/flag-icon-css/flags/4x3/nr.svg +12 -0
  465. package/custom/node_modules/flag-icon-css/flags/4x3/nu.svg +26 -0
  466. package/custom/node_modules/flag-icon-css/flags/4x3/nz.svg +42 -0
  467. package/custom/node_modules/flag-icon-css/flags/4x3/om.svg +115 -0
  468. package/custom/node_modules/flag-icon-css/flags/4x3/pa.svg +14 -0
  469. package/custom/node_modules/flag-icon-css/flags/4x3/pe.svg +244 -0
  470. package/custom/node_modules/flag-icon-css/flags/4x3/pf.svg +19 -0
  471. package/custom/node_modules/flag-icon-css/flags/4x3/pg.svg +9 -0
  472. package/custom/node_modules/flag-icon-css/flags/4x3/ph.svg +9 -0
  473. package/custom/node_modules/flag-icon-css/flags/4x3/pk.svg +15 -0
  474. package/custom/node_modules/flag-icon-css/flags/4x3/pl.svg +6 -0
  475. package/custom/node_modules/flag-icon-css/flags/4x3/pm.svg +7 -0
  476. package/custom/node_modules/flag-icon-css/flags/4x3/pn.svg +97 -0
  477. package/custom/node_modules/flag-icon-css/flags/4x3/pr.svg +13 -0
  478. package/custom/node_modules/flag-icon-css/flags/4x3/ps.svg +15 -0
  479. package/custom/node_modules/flag-icon-css/flags/4x3/pt.svg +57 -0
  480. package/custom/node_modules/flag-icon-css/flags/4x3/pw.svg +11 -0
  481. package/custom/node_modules/flag-icon-css/flags/4x3/py.svg +157 -0
  482. package/custom/node_modules/flag-icon-css/flags/4x3/qa.svg +4 -0
  483. package/custom/node_modules/flag-icon-css/flags/4x3/re.svg +7 -0
  484. package/custom/node_modules/flag-icon-css/flags/4x3/ro.svg +7 -0
  485. package/custom/node_modules/flag-icon-css/flags/4x3/rs.svg +292 -0
  486. package/custom/node_modules/flag-icon-css/flags/4x3/ru.svg +7 -0
  487. package/custom/node_modules/flag-icon-css/flags/4x3/rw.svg +13 -0
  488. package/custom/node_modules/flag-icon-css/flags/4x3/sa.svg +26 -0
  489. package/custom/node_modules/flag-icon-css/flags/4x3/sb.svg +13 -0
  490. package/custom/node_modules/flag-icon-css/flags/4x3/sc.svg +14 -0
  491. package/custom/node_modules/flag-icon-css/flags/4x3/sd.svg +13 -0
  492. package/custom/node_modules/flag-icon-css/flags/4x3/se.svg +5 -0
  493. package/custom/node_modules/flag-icon-css/flags/4x3/sg.svg +13 -0
  494. package/custom/node_modules/flag-icon-css/flags/4x3/sh.svg +76 -0
  495. package/custom/node_modules/flag-icon-css/flags/4x3/si.svg +18 -0
  496. package/custom/node_modules/flag-icon-css/flags/4x3/sj.svg +7 -0
  497. package/custom/node_modules/flag-icon-css/flags/4x3/sk.svg +9 -0
  498. package/custom/node_modules/flag-icon-css/flags/4x3/sl.svg +7 -0
  499. package/custom/node_modules/flag-icon-css/flags/4x3/sm.svg +91 -0
  500. package/custom/node_modules/flag-icon-css/flags/4x3/sn.svg +8 -0
  501. package/custom/node_modules/flag-icon-css/flags/4x3/so.svg +11 -0
  502. package/custom/node_modules/flag-icon-css/flags/4x3/sr.svg +6 -0
  503. package/custom/node_modules/flag-icon-css/flags/4x3/ss.svg +8 -0
  504. package/custom/node_modules/flag-icon-css/flags/4x3/st.svg +16 -0
  505. package/custom/node_modules/flag-icon-css/flags/4x3/sv.svg +594 -0
  506. package/custom/node_modules/flag-icon-css/flags/4x3/sx.svg +56 -0
  507. package/custom/node_modules/flag-icon-css/flags/4x3/sy.svg +6 -0
  508. package/custom/node_modules/flag-icon-css/flags/4x3/sz.svg +45 -0
  509. package/custom/node_modules/flag-icon-css/flags/4x3/ta.svg +76 -0
  510. package/custom/node_modules/flag-icon-css/flags/4x3/tc.svg +52 -0
  511. package/custom/node_modules/flag-icon-css/flags/4x3/td.svg +7 -0
  512. package/custom/node_modules/flag-icon-css/flags/4x3/tf.svg +15 -0
  513. package/custom/node_modules/flag-icon-css/flags/4x3/tg.svg +14 -0
  514. package/custom/node_modules/flag-icon-css/flags/4x3/th.svg +7 -0
  515. package/custom/node_modules/flag-icon-css/flags/4x3/tj.svg +22 -0
  516. package/custom/node_modules/flag-icon-css/flags/4x3/tk.svg +5 -0
  517. package/custom/node_modules/flag-icon-css/flags/4x3/tl.svg +13 -0
  518. package/custom/node_modules/flag-icon-css/flags/4x3/tm.svg +206 -0
  519. package/custom/node_modules/flag-icon-css/flags/4x3/tn.svg +13 -0
  520. package/custom/node_modules/flag-icon-css/flags/4x3/to.svg +10 -0
  521. package/custom/node_modules/flag-icon-css/flags/4x3/tr.svg +8 -0
  522. package/custom/node_modules/flag-icon-css/flags/4x3/tt.svg +5 -0
  523. package/custom/node_modules/flag-icon-css/flags/4x3/tv.svg +16 -0
  524. package/custom/node_modules/flag-icon-css/flags/4x3/tw.svg +34 -0
  525. package/custom/node_modules/flag-icon-css/flags/4x3/tz.svg +13 -0
  526. package/custom/node_modules/flag-icon-css/flags/4x3/ua.svg +6 -0
  527. package/custom/node_modules/flag-icon-css/flags/4x3/ug.svg +30 -0
  528. package/custom/node_modules/flag-icon-css/flags/4x3/um.svg +15 -0
  529. package/custom/node_modules/flag-icon-css/flags/4x3/un.svg +16 -0
  530. package/custom/node_modules/flag-icon-css/flags/4x3/us.svg +10 -0
  531. package/custom/node_modules/flag-icon-css/flags/4x3/uy.svg +28 -0
  532. package/custom/node_modules/flag-icon-css/flags/4x3/uz.svg +30 -0
  533. package/custom/node_modules/flag-icon-css/flags/4x3/va.svg +479 -0
  534. package/custom/node_modules/flag-icon-css/flags/4x3/vc.svg +8 -0
  535. package/custom/node_modules/flag-icon-css/flags/4x3/ve.svg +26 -0
  536. package/custom/node_modules/flag-icon-css/flags/4x3/vg.svg +127 -0
  537. package/custom/node_modules/flag-icon-css/flags/4x3/vi.svg +28 -0
  538. package/custom/node_modules/flag-icon-css/flags/4x3/vn.svg +11 -0
  539. package/custom/node_modules/flag-icon-css/flags/4x3/vu.svg +18 -0
  540. package/custom/node_modules/flag-icon-css/flags/4x3/wf.svg +7 -0
  541. package/custom/node_modules/flag-icon-css/flags/4x3/ws.svg +7 -0
  542. package/custom/node_modules/flag-icon-css/flags/4x3/xk.svg +16 -0
  543. package/custom/node_modules/flag-icon-css/flags/4x3/xx.svg +5 -0
  544. package/custom/node_modules/flag-icon-css/flags/4x3/ye.svg +7 -0
  545. package/custom/node_modules/flag-icon-css/flags/4x3/yt.svg +7 -0
  546. package/custom/node_modules/flag-icon-css/flags/4x3/za.svg +17 -0
  547. package/custom/node_modules/flag-icon-css/flags/4x3/zm.svg +27 -0
  548. package/custom/node_modules/flag-icon-css/flags/4x3/zw.svg +21 -0
  549. package/custom/node_modules/flag-icon-css/flags.py +37 -0
  550. package/custom/node_modules/flag-icon-css/index.html +68 -0
  551. package/custom/node_modules/flag-icon-css/less/flag-icons-base.less +28 -0
  552. package/custom/node_modules/flag-icon-css/less/flag-icons-list.less +249 -0
  553. package/custom/node_modules/flag-icon-css/less/flag-icons-more.less +16 -0
  554. package/custom/node_modules/flag-icon-css/less/flag-icons.less +4 -0
  555. package/custom/node_modules/flag-icon-css/less/variables.less +3 -0
  556. package/custom/node_modules/flag-icon-css/package.json +28 -0
  557. package/custom/node_modules/flag-icon-css/sass/_flag-icons-base.scss +28 -0
  558. package/custom/node_modules/flag-icon-css/sass/_flag-icons-list.scss +273 -0
  559. package/custom/node_modules/flag-icon-css/sass/_variables.scss +3 -0
  560. package/custom/node_modules/flag-icon-css/sass/flag-icons.scss +3 -0
  561. package/custom/node_modules/flag-icon-css/svgo.config.js +16 -0
  562. package/custom/package-lock.json +24 -0
  563. package/custom/package.json +15 -0
  564. package/custom/tsconfig.json +19 -0
  565. package/dist/custom/LanguageInUserMenu.vue +74 -0
  566. package/dist/custom/LanguageUnderLogin.vue +72 -0
  567. package/dist/custom/ResetPassword.vue +295 -0
  568. package/dist/custom/ResetPasswordUnderLogin.vue +13 -0
  569. package/dist/custom/SignupPage.vue +278 -0
  570. package/dist/custom/SignupUnderLogin.vue +13 -0
  571. package/dist/custom/langCommon.ts +88 -0
  572. package/dist/custom/package-lock.json +24 -0
  573. package/dist/custom/package.json +15 -0
  574. package/dist/custom/tsconfig.json +19 -0
  575. package/dist/index.js +511 -0
  576. package/dist/types.js +1 -0
  577. package/index.ts +603 -0
  578. package/package.json +24 -0
  579. package/tsconfig.json +12 -0
  580. package/types.ts +39 -0
package/dist/index.js ADDED
@@ -0,0 +1,511 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { AdminForthPlugin, Filters, suggestIfTypo, AdminForthDataTypes } from "adminforth";
11
+ import iso6391 from 'iso-639-1';
12
+ import path from 'path';
13
+ import fs from 'fs-extra';
14
+ import chokidar from 'chokidar';
15
+ class CachingAdapterMemory {
16
+ constructor() {
17
+ this.cache = {};
18
+ }
19
+ get(key) {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ return this.cache[key];
22
+ });
23
+ }
24
+ set(key, value) {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ this.cache[key] = value;
27
+ });
28
+ }
29
+ clear(key) {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ if (this.cache[key]) {
32
+ delete this.cache[key];
33
+ }
34
+ });
35
+ }
36
+ }
37
+ class AiTranslateError extends Error {
38
+ constructor(message) {
39
+ super(message);
40
+ this.name = 'AiTranslateError';
41
+ }
42
+ }
43
+ export default class I18N extends AdminForthPlugin {
44
+ constructor(options) {
45
+ super(options, import.meta.url);
46
+ this.options = options;
47
+ this.cache = new CachingAdapterMemory();
48
+ this.trFieldNames = {};
49
+ }
50
+ computeCompletedFieldValue(record) {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ return this.options.supportedLanguages.reduce((acc, lang) => {
53
+ if (lang === 'en') {
54
+ return acc;
55
+ }
56
+ if (record[this.trFieldNames[lang]]) {
57
+ if (acc !== '') {
58
+ acc += '|';
59
+ }
60
+ acc += lang;
61
+ }
62
+ return acc;
63
+ }, '');
64
+ });
65
+ }
66
+ modifyResourceConfig(adminforth, resourceConfig) {
67
+ const _super = Object.create(null, {
68
+ modifyResourceConfig: { get: () => super.modifyResourceConfig }
69
+ });
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ var _a, _b;
72
+ _super.modifyResourceConfig.call(this, adminforth, resourceConfig);
73
+ // check each supported language is valid ISO 639-1 code
74
+ this.options.supportedLanguages.forEach((lang) => {
75
+ if (!iso6391.validate(lang)) {
76
+ throw new Error(`Invalid language code ${lang}, please define valid ISO 639-1 language code (2 lowercase letters)`);
77
+ }
78
+ });
79
+ // find primary key field
80
+ this.primaryKeyFieldName = (_a = resourceConfig.columns.find(c => c.primaryKey)) === null || _a === void 0 ? void 0 : _a.name;
81
+ if (!this.primaryKeyFieldName) {
82
+ throw new Error(`Primary key field not found in resource ${resourceConfig.resourceId}`);
83
+ }
84
+ // parse trFieldNames
85
+ for (const lang of this.options.supportedLanguages) {
86
+ if (lang === 'en') {
87
+ continue;
88
+ }
89
+ if ((_b = this.options.translationFieldNames) === null || _b === void 0 ? void 0 : _b[lang]) {
90
+ this.trFieldNames[lang] = this.options.translationFieldNames[lang];
91
+ }
92
+ else {
93
+ this.trFieldNames[lang] = lang + '_string';
94
+ }
95
+ // find column by name
96
+ const column = resourceConfig.columns.find(c => c.name === this.trFieldNames[lang]);
97
+ if (!column) {
98
+ throw new Error(`Field ${this.trFieldNames[lang]} not found for storing translation for language ${lang}
99
+ in resource ${resourceConfig.resourceId}, consider adding it to columns or change trFieldNames option to remap it to existing column`);
100
+ }
101
+ }
102
+ this.enFieldName = this.trFieldNames['en'] || 'en_string';
103
+ this.fullCompleatedFieldValue = this.options.supportedLanguages.reduce((acc, lang) => {
104
+ if (lang === 'en') {
105
+ return acc;
106
+ }
107
+ if (acc !== '') {
108
+ acc += '|';
109
+ }
110
+ acc += lang;
111
+ return acc;
112
+ }, '');
113
+ // if not enFieldName column is not found, throw error
114
+ const enColumn = resourceConfig.columns.find(c => c.name === this.enFieldName);
115
+ if (!enColumn) {
116
+ throw new Error(`Field ${this.enFieldName} not found column to store english original string in resource ${resourceConfig.resourceId}`);
117
+ }
118
+ // if sourceFieldName defined, check it exists
119
+ if (this.options.sourceFieldName) {
120
+ if (!resourceConfig.columns.find(c => c.name === this.options.sourceFieldName)) {
121
+ throw new Error(`Field ${this.options.sourceFieldName} not found in resource ${resourceConfig.resourceId}`);
122
+ }
123
+ }
124
+ // if completedFieldName defined, check it exists and should be string
125
+ if (this.options.completedFieldName) {
126
+ const column = resourceConfig.columns.find(c => c.name === this.options.completedFieldName);
127
+ if (!column) {
128
+ const similar = suggestIfTypo(resourceConfig.columns.map((col) => col.name), this.options.completedFieldName);
129
+ throw new Error(`Field ${this.options.completedFieldName} not found in resource ${resourceConfig.resourceId}${similar ? `Did you mean '${similar}'?` : ''}`);
130
+ }
131
+ // if showIn is not defined, add it as empty
132
+ column.showIn = [];
133
+ // add virtual field for incomplete
134
+ resourceConfig.columns.push({
135
+ name: 'fully_translated',
136
+ label: 'Fully translated',
137
+ virtual: true,
138
+ showIn: ['list', 'show', 'filter'],
139
+ type: AdminForthDataTypes.BOOLEAN,
140
+ });
141
+ }
142
+ const compMeta = {
143
+ brandSlug: adminforth.config.customization.brandNameSlug,
144
+ pluginInstanceId: this.pluginInstanceId,
145
+ supportedLanguages: this.options.supportedLanguages.map(lang => ({
146
+ code: lang,
147
+ // lang name on on language native name
148
+ name: iso6391.getNativeName(lang),
149
+ }))
150
+ };
151
+ // add underLogin component
152
+ (adminforth.config.customization.loginPageInjections.underInputs).push({
153
+ file: this.componentPath('LanguageUnderLogin.vue'),
154
+ meta: compMeta
155
+ });
156
+ (adminforth.config.customization.globalInjections.userMenu).push({
157
+ file: this.componentPath('LanguageInUserMenu.vue'),
158
+ meta: compMeta
159
+ });
160
+ // disable create allowedActions for translations
161
+ resourceConfig.options.allowedActions.create = false;
162
+ // add hook on edit of any translation
163
+ resourceConfig.hooks.edit.afterSave.push((_c) => __awaiter(this, [_c], void 0, function* ({ record, oldRecord }) {
164
+ if (oldRecord) {
165
+ // find lang which changed
166
+ let langsChanged = [];
167
+ for (const lang of this.options.supportedLanguages) {
168
+ if (lang === 'en') {
169
+ continue;
170
+ }
171
+ if (record[this.trFieldNames[lang]] !== oldRecord[this.trFieldNames[lang]]) {
172
+ langsChanged.push(lang);
173
+ }
174
+ }
175
+ // clear frontend cache for all langsChanged
176
+ for (const lang of langsChanged) {
177
+ this.cache.clear(`${this.resourceConfig.resourceId}:frontend:${lang}`);
178
+ }
179
+ }
180
+ // clear frontend cache for all lan
181
+ return { ok: true };
182
+ }));
183
+ if (this.options.completedFieldName) {
184
+ // on show and list add a list hook which will add incomplete field to record if translation is missing for at least one language
185
+ const addIncompleteField = (record) => {
186
+ // form list of all langs, sorted by alphabet, without en, to get 'al|ro|uk'
187
+ record.fully_translated = this.fullCompleatedFieldValue === record[this.options.completedFieldName];
188
+ };
189
+ resourceConfig.hooks.list.afterDatasourceResponse.push((_d) => __awaiter(this, [_d], void 0, function* ({ response }) {
190
+ response.forEach(addIncompleteField);
191
+ return { ok: true };
192
+ }));
193
+ resourceConfig.hooks.show.afterDatasourceResponse.push((_e) => __awaiter(this, [_e], void 0, function* ({ response }) {
194
+ addIncompleteField(response.length && response[0]);
195
+ return { ok: true };
196
+ }));
197
+ // also add edit hook beforeSave to update completedFieldName
198
+ resourceConfig.hooks.edit.beforeSave.push((_f) => __awaiter(this, [_f], void 0, function* ({ record, oldRecord }) {
199
+ const futureRecord = Object.assign(Object.assign({}, oldRecord), record);
200
+ const futureCompletedFieldValue = yield this.computeCompletedFieldValue(futureRecord);
201
+ record[this.options.completedFieldName] = futureCompletedFieldValue;
202
+ return { ok: true };
203
+ }));
204
+ // add list hook to support filtering by fully_translated virtual field
205
+ resourceConfig.hooks.list.beforeDatasourceRequest.push((_g) => __awaiter(this, [_g], void 0, function* ({ query }) {
206
+ if (!query.filters || query.filters.length === 0) {
207
+ query.filters = [];
208
+ }
209
+ // get fully_translated field from filter if it is there
210
+ const fullyTranslatedFilter = query.filters.find((f) => f.field === 'fully_translated');
211
+ if (fullyTranslatedFilter) {
212
+ // remove it from filters because it is virtual field
213
+ query.filters = query.filters.filter((f) => f.field !== 'fully_translated');
214
+ if (fullyTranslatedFilter.value[0]) {
215
+ query.filters.push({
216
+ field: this.options.completedFieldName,
217
+ value: this.fullCompleatedFieldValue,
218
+ operator: 'eq',
219
+ });
220
+ }
221
+ else {
222
+ query.filters.push({
223
+ field: this.options.completedFieldName,
224
+ value: this.fullCompleatedFieldValue,
225
+ operator: 'ne',
226
+ });
227
+ }
228
+ }
229
+ return { ok: true };
230
+ }));
231
+ }
232
+ // add bulk action
233
+ if (!resourceConfig.options.bulkActions) {
234
+ resourceConfig.options.bulkActions = [];
235
+ }
236
+ if (this.options.completeAdapter) {
237
+ resourceConfig.options.bulkActions.push({
238
+ label: 'Translate selected',
239
+ icon: 'flowbite:language-outline',
240
+ // if optional `confirm` is provided, user will be asked to confirm action
241
+ confirm: 'Are you sure you want to translate selected items?',
242
+ state: 'selected',
243
+ action: (_h) => __awaiter(this, [_h], void 0, function* ({ selectedIds, tr }) {
244
+ try {
245
+ yield this.bulkTranslate({ selectedIds });
246
+ }
247
+ catch (e) {
248
+ if (e instanceof AiTranslateError) {
249
+ return { ok: false, error: e.message };
250
+ }
251
+ }
252
+ return {
253
+ ok: true, error: undefined,
254
+ successMessage: yield tr(`Translated {count} items`, 'frontend', { count: selectedIds.length }),
255
+ };
256
+ })
257
+ });
258
+ }
259
+ ;
260
+ });
261
+ }
262
+ bulkTranslate(_a) {
263
+ return __awaiter(this, arguments, void 0, function* ({ selectedIds }) {
264
+ const needToTranslateByLang = {};
265
+ const translations = yield this.adminforth.resource(this.resourceConfig.resourceId).list(Filters.IN(this.primaryKeyFieldName, selectedIds));
266
+ for (const lang of this.options.supportedLanguages) {
267
+ if (lang === 'en') {
268
+ // all strings are in English, no need to translate
269
+ continue;
270
+ }
271
+ for (const translation of translations) {
272
+ if (!translation[this.trFieldNames[lang]]) {
273
+ if (!needToTranslateByLang[lang]) {
274
+ needToTranslateByLang[lang] = [];
275
+ }
276
+ needToTranslateByLang[lang].push({
277
+ 'en_string': translation[this.enFieldName],
278
+ category: translation[this.options.categoryFieldName],
279
+ });
280
+ }
281
+ }
282
+ }
283
+ const maxKeysInOneReq = 10;
284
+ const updateStrings = {};
285
+ const translateToLang = (langIsoCode, strings) => __awaiter(this, void 0, void 0, function* () {
286
+ if (strings.length > maxKeysInOneReq) {
287
+ for (let i = 0; i < strings.length; i += maxKeysInOneReq) {
288
+ const slicedStrings = strings.slice(i, i + maxKeysInOneReq);
289
+ yield translateToLang(langIsoCode, slicedStrings);
290
+ }
291
+ return;
292
+ }
293
+ const lang = langIsoCode;
294
+ const prompt = `
295
+ I need to translate strings in JSON to ${lang} language from English for my web app.
296
+ Keep keys, as is, write translation into values! Here are the strings:
297
+
298
+ \`\`\`json
299
+ ${JSON.stringify(strings.reduce((acc, s) => {
300
+ acc[s.en_string] = '';
301
+ return acc;
302
+ }, {}), null, 2)}
303
+ \`\`\`
304
+ `;
305
+ // call OpenAI
306
+ const resp = yield this.options.completeAdapter.complete(prompt, [], 300);
307
+ if (resp.error) {
308
+ throw new AiTranslateError(resp.error);
309
+ }
310
+ // parse response like
311
+ // Here are the translations for the strings you provided:
312
+ // ```json
313
+ // [{"live": "canlı"}, {"Table Games": "Masa Oyunları"}]
314
+ // ```
315
+ let res;
316
+ try {
317
+ res = resp.content.split("```json")[1].split("```")[0];
318
+ }
319
+ catch (e) {
320
+ console.error('error in parsing OpenAI', resp);
321
+ return;
322
+ }
323
+ res = JSON.parse(res);
324
+ for (const [enStr, translatedStr] of Object.entries(res)) {
325
+ const translationsTargeted = translations.filter(t => t[this.enFieldName] === enStr);
326
+ // might be several with same en_string
327
+ for (const translation of translationsTargeted) {
328
+ translation[this.trFieldNames[lang]] = translatedStr;
329
+ // process.env.HEAVY_DEBUG && console.log(`🪲translated to ${lang} ${translation.en_string}, ${translatedStr}`)
330
+ if (!updateStrings[enStr]) {
331
+ updateStrings[enStr] = {
332
+ updates: {},
333
+ category: translation[this.options.categoryFieldName],
334
+ strId: translation[this.primaryKeyFieldName],
335
+ };
336
+ }
337
+ updateStrings[enStr].updates[this.trFieldNames[lang]] = translatedStr;
338
+ }
339
+ }
340
+ });
341
+ const langsInvolved = new Set(Object.keys(needToTranslateByLang));
342
+ yield Promise.all(Object.entries(needToTranslateByLang).map((_b) => __awaiter(this, [_b], void 0, function* ([lang, strings]) {
343
+ yield translateToLang(lang, strings);
344
+ })));
345
+ yield Promise.all(Object.entries(updateStrings).map((_c) => __awaiter(this, [_c], void 0, function* ([_, { updates, strId }]) {
346
+ // because this will translate all languages, we can set completedLangs to all languages
347
+ const futureCompletedFieldValue = this.fullCompleatedFieldValue;
348
+ yield this.adminforth.resource(this.resourceConfig.resourceId).update(strId, Object.assign(Object.assign({}, updates), { [this.options.completedFieldName]: futureCompletedFieldValue }));
349
+ })));
350
+ for (const lang of langsInvolved) {
351
+ this.cache.clear(`${this.resourceConfig.resourceId}:frontend:${lang}`);
352
+ for (const [enStr, { category }] of Object.entries(updateStrings)) {
353
+ this.cache.clear(`${this.resourceConfig.resourceId}:${category}:${lang}:${enStr}`);
354
+ }
355
+ }
356
+ });
357
+ }
358
+ processExtractedMessages(adminforth, filePath) {
359
+ return __awaiter(this, void 0, void 0, function* () {
360
+ // messages file is in i18n-messages.json
361
+ let messages;
362
+ try {
363
+ messages = yield fs.readJson(filePath);
364
+ process.env.HEAVY_DEBUG && console.info('🐛 Messages file found');
365
+ }
366
+ catch (e) {
367
+ process.env.HEAVY_DEBUG && console.error('🐛 Messages file not yet exists, probably npm run i18n:extract not finished/started yet, might be ok');
368
+ return;
369
+ }
370
+ // loop over missingKeys[i].path and add them to database if not exists
371
+ yield Promise.all(messages.missingKeys.map((missingKey) => __awaiter(this, void 0, void 0, function* () {
372
+ const key = missingKey.path;
373
+ const file = missingKey.file;
374
+ const category = 'frontend';
375
+ const exists = yield adminforth.resource(this.resourceConfig.resourceId).count(Filters.EQ(this.enFieldName, key));
376
+ if (exists) {
377
+ return;
378
+ }
379
+ const record = Object.assign({ [this.enFieldName]: key, [this.options.categoryFieldName]: category }, (this.options.sourceFieldName ? { [this.options.sourceFieldName]: file } : {}));
380
+ try {
381
+ yield adminforth.resource(this.resourceConfig.resourceId).create(record);
382
+ }
383
+ catch (e) {
384
+ console.error('🐛 Error creating record', e);
385
+ }
386
+ })));
387
+ });
388
+ }
389
+ tryProcessAndWatch(adminforth) {
390
+ return __awaiter(this, void 0, void 0, function* () {
391
+ const spaDir = adminforth.codeInjector.spaTmpPath();
392
+ // messages file is in i18n-messages.json
393
+ const messagesFile = path.join(spaDir, '..', 'spa_tmp', 'i18n-messages.json');
394
+ console.log('🪲messagesFile', messagesFile);
395
+ this.processExtractedMessages(adminforth, messagesFile);
396
+ // we use watcher because file can't be yet created when we start - bundleNow can be done in build time or can be done now
397
+ // that is why we make attempt to process it now and then watch for changes
398
+ const w = chokidar.watch(messagesFile, { persistent: true });
399
+ w.on('change', () => {
400
+ this.processExtractedMessages(adminforth, messagesFile);
401
+ });
402
+ w.on('add', () => {
403
+ this.processExtractedMessages(adminforth, messagesFile);
404
+ });
405
+ });
406
+ }
407
+ validateConfigAfterDiscover(adminforth, resourceConfig) {
408
+ // optional method where you can safely check field types after database discovery was performed
409
+ // ensure each trFieldName (apart from enFieldName) is nullable column of type string
410
+ for (const lang of this.options.supportedLanguages) {
411
+ if (lang === 'en') {
412
+ continue;
413
+ }
414
+ const column = resourceConfig.columns.find(c => c.name === this.trFieldNames[lang]);
415
+ if (!column) {
416
+ throw new Error(`Field ${this.trFieldNames[lang]} not found for storing translation for language ${lang}
417
+ in resource ${resourceConfig.resourceId}, consider adding it to columns or change trFieldNames option to remap it to existing column`);
418
+ }
419
+ if (column.required.create || column.required.edit) {
420
+ throw new Error(`Field ${this.trFieldNames[lang]} should be not required in resource ${resourceConfig.resourceId}`);
421
+ }
422
+ }
423
+ // ensure categoryFieldName defined and is string
424
+ if (!this.options.categoryFieldName) {
425
+ throw new Error(`categoryFieldName option is not defined. It is used to categorize translations and return only specific category e.g. to frontend`);
426
+ }
427
+ const categoryColumn = resourceConfig.columns.find(c => c.name === this.options.categoryFieldName);
428
+ if (!categoryColumn) {
429
+ throw new Error(`Field ${this.options.categoryFieldName} not found in resource ${resourceConfig.resourceId}`);
430
+ }
431
+ if (categoryColumn.type !== AdminForthDataTypes.STRING && categoryColumn.type !== AdminForthDataTypes.TEXT) {
432
+ throw new Error(`Field ${this.options.categoryFieldName} should be of type string in resource ${resourceConfig.resourceId}, but it is ${categoryColumn.type}`);
433
+ }
434
+ // in this plugin we will use plugin to fill the database with missing language messages
435
+ this.tryProcessAndWatch(adminforth);
436
+ adminforth.tr = (msg, category, lang, params) => __awaiter(this, void 0, void 0, function* () {
437
+ // console.log('🪲tr', msg, category, lang);
438
+ // if lang is not supported , throw
439
+ if (!this.options.supportedLanguages.includes(lang)) {
440
+ throw new Error(`Language ${lang} is not entered to be supported by requested by browser in request headers accept-language`);
441
+ }
442
+ let result;
443
+ // try to get translation from cache
444
+ const cacheKey = `${resourceConfig.resourceId}:${category}:${lang}:${msg}`;
445
+ const cached = yield this.cache.get(cacheKey);
446
+ if (cached) {
447
+ result = cached;
448
+ }
449
+ if (!result) {
450
+ const resource = adminforth.resource(resourceConfig.resourceId);
451
+ const translation = yield resource.get([Filters.EQ(this.enFieldName, msg), Filters.EQ(this.options.categoryFieldName, category)]);
452
+ if (!translation) {
453
+ yield resource.create({
454
+ [this.enFieldName]: msg,
455
+ [this.options.categoryFieldName]: category,
456
+ });
457
+ }
458
+ // do this check here, to faster register missing translations
459
+ // also not cache it - no sense to cache english strings
460
+ if (lang === 'en') {
461
+ // set to cache to return faster next time
462
+ result = msg;
463
+ }
464
+ else {
465
+ result = translation === null || translation === void 0 ? void 0 : translation[this.trFieldNames[lang]];
466
+ if (!result) {
467
+ // return english
468
+ result = msg;
469
+ }
470
+ }
471
+ // cache so even if key does not exist, we will not hit database
472
+ yield this.cache.set(cacheKey, result);
473
+ }
474
+ if (params) {
475
+ for (const [key, value] of Object.entries(params)) {
476
+ result = result.replace(`{${key}}`, value);
477
+ }
478
+ }
479
+ return result;
480
+ });
481
+ }
482
+ instanceUniqueRepresentation(pluginOptions) {
483
+ // optional method to return unique string representation of plugin instance.
484
+ // Needed if plugin can have multiple instances on one resource
485
+ return `single`;
486
+ }
487
+ setupEndpoints(server) {
488
+ server.endpoint({
489
+ method: 'GET',
490
+ path: `/plugin/${this.pluginInstanceId}/frontend_messages`,
491
+ noAuth: true,
492
+ handler: (_a) => __awaiter(this, [_a], void 0, function* ({ query }) {
493
+ const lang = query.lang;
494
+ // form map of translations
495
+ const resource = this.adminforth.resource(this.resourceConfig.resourceId);
496
+ const cacheKey = `${this.resourceConfig.resourceId}:frontend:${lang}`;
497
+ const cached = yield this.cache.get(cacheKey);
498
+ if (cached) {
499
+ return cached;
500
+ }
501
+ const translations = {};
502
+ const allTranslations = yield resource.list([Filters.EQ(this.options.categoryFieldName, 'frontend')]);
503
+ for (const tr of allTranslations) {
504
+ translations[tr[this.enFieldName]] = tr[this.trFieldNames[lang]];
505
+ }
506
+ yield this.cache.set(cacheKey, translations);
507
+ return translations;
508
+ })
509
+ });
510
+ }
511
+ }
package/dist/types.js ADDED
@@ -0,0 +1 @@
1
+ export {};