@kiva/kv-components 4.8.6 → 5.0.0

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 (999) hide show
  1. package/build/copyFlags.js +11 -0
  2. package/dist/_virtual/_plugin-vue_export-helper.js +9 -0
  3. package/dist/data/ne_110m_admin_0_countries.json.js +9 -0
  4. package/dist/index.js +181 -0
  5. package/dist/node_modules/aria-hidden/dist/es2015/index.js +52 -0
  6. package/dist/node_modules/embla-carousel/esm/embla-carousel.esm.js +1204 -0
  7. package/dist/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.js +126 -0
  8. package/dist/node_modules/embla-carousel-fade/esm/embla-carousel-fade.esm.js +143 -0
  9. package/dist/node_modules/popper.js/dist/esm/popper.js +1037 -0
  10. package/dist/utils/Alea.js +31 -7
  11. package/dist/utils/attrs.js +17 -5
  12. package/dist/utils/carousels.js +96 -6
  13. package/dist/utils/expander.js +34 -7
  14. package/dist/utils/imageUtils.js +20 -7
  15. package/dist/utils/loanCard.js +122 -7
  16. package/dist/utils/loanUtils.js +78 -21
  17. package/dist/utils/mapUtils.js +177 -13
  18. package/dist/utils/printing.js +8 -7
  19. package/dist/utils/scrollLock.js +16 -11
  20. package/dist/utils/themeUtils.js +13 -0
  21. package/dist/utils/throttle.js +8 -5
  22. package/dist/utils/touchEvents.js +16 -9
  23. package/dist/utils/treemap.js +59 -5
  24. package/dist/vue/KvAccordionItem.js +95 -0
  25. package/dist/vue/KvActivityRow.js +36 -0
  26. package/dist/vue/KvBorrowerImage.js +140 -0
  27. package/dist/vue/KvButton.js +184 -0
  28. package/dist/vue/KvCarousel.css +1 -0
  29. package/dist/vue/KvCarousel.js +246 -0
  30. package/dist/vue/KvCartModal.css +1 -0
  31. package/dist/vue/KvCartModal.js +235 -0
  32. package/dist/vue/KvCheckbox.js +134 -0
  33. package/dist/vue/KvChip.js +43 -0
  34. package/dist/vue/KvClassicLoanCard.css +1 -0
  35. package/dist/vue/KvClassicLoanCard.js +464 -0
  36. package/dist/vue/KvCommentsAdd.css +1 -0
  37. package/dist/vue/KvCommentsAdd.js +106 -0
  38. package/dist/vue/KvCommentsContainer.js +80 -0
  39. package/dist/vue/KvCommentsHeartButton.css +1 -0
  40. package/dist/vue/KvCommentsHeartButton.js +62 -0
  41. package/dist/vue/KvCommentsList.js +65 -0
  42. package/dist/vue/KvCommentsListItem.js +221 -0
  43. package/dist/vue/KvCommentsReplyButton.css +1 -0
  44. package/dist/vue/KvCommentsReplyButton.js +42 -0
  45. package/dist/vue/KvContentfulImg.js +196 -0
  46. package/dist/vue/KvCountdownTimer.js +31 -0
  47. package/dist/vue/KvExpandable.js +65 -0
  48. package/dist/vue/KvExpandableQuestion.js +99 -0
  49. package/dist/vue/KvFlag.css +1 -0
  50. package/dist/vue/KvFlag.js +628 -0
  51. package/dist/vue/KvGrid.js +26 -0
  52. package/dist/vue/KvImpactDashboardHeader.css +1 -0
  53. package/dist/vue/KvImpactDashboardHeader.js +31 -0
  54. package/dist/vue/KvInlineActivityCard.css +1 -0
  55. package/dist/vue/KvInlineActivityCard.js +53 -0
  56. package/dist/vue/KvInlineActivityFeed.css +1 -0
  57. package/dist/vue/KvInlineActivityFeed.js +30 -0
  58. package/dist/vue/KvIntroductionLoanCard.css +1 -0
  59. package/dist/vue/KvIntroductionLoanCard.js +387 -0
  60. package/dist/vue/KvLendAmountButton.js +60 -0
  61. package/dist/vue/KvLendCta.css +1 -0
  62. package/dist/vue/KvLendCta.js +490 -0
  63. package/dist/vue/KvLightbox.js +195 -0
  64. package/dist/vue/KvLineGraph.js +74 -0
  65. package/dist/vue/KvLoadingPlaceholder.css +1 -0
  66. package/dist/vue/KvLoadingPlaceholder.js +11 -0
  67. package/dist/vue/KvLoadingSpinner.js +49 -0
  68. package/dist/vue/KvLoanActivities.css +1 -0
  69. package/dist/vue/KvLoanActivities.js +211 -0
  70. package/dist/vue/KvLoanBookmark.js +41 -0
  71. package/dist/vue/KvLoanCallouts.css +1 -0
  72. package/dist/vue/KvLoanCallouts.js +30 -0
  73. package/dist/vue/KvLoanProgressGroup.css +1 -0
  74. package/dist/vue/KvLoanProgressGroup.js +68 -0
  75. package/dist/vue/KvLoanTag.js +88 -0
  76. package/dist/vue/KvLoanTeamPick.js +12 -0
  77. package/dist/vue/KvLoanUse.js +73 -0
  78. package/dist/vue/KvMap.css +1 -0
  79. package/dist/vue/KvMap.js +372 -0
  80. package/dist/vue/KvMaterialIcon.js +34 -0
  81. package/dist/vue/KvPageContainer.js +15 -0
  82. package/dist/vue/KvPagination.js +163 -0
  83. package/dist/vue/KvPieChart.css +1 -0
  84. package/dist/vue/KvPieChart.js +166 -0
  85. package/dist/vue/KvPopper.js +132 -0
  86. package/dist/vue/KvProgressBar.js +118 -0
  87. package/dist/vue/KvRadio.js +130 -0
  88. package/dist/vue/KvSelect.js +92 -0
  89. package/dist/vue/KvSideSheet.js +158 -0
  90. package/dist/vue/KvSwitch.js +88 -0
  91. package/dist/vue/KvTab.js +67 -0
  92. package/dist/vue/KvTabPanel.js +56 -0
  93. package/dist/vue/KvTabs.js +86 -0
  94. package/dist/vue/KvTextInput.js +185 -0
  95. package/dist/vue/KvTextLink.js +93 -0
  96. package/dist/vue/KvThemeProvider.css +1 -0
  97. package/dist/vue/KvThemeProvider.js +65 -0
  98. package/dist/vue/KvToast.js +123 -0
  99. package/dist/vue/KvTooltip.css +1 -0
  100. package/dist/vue/KvTooltip.js +91 -0
  101. package/dist/vue/KvTreeMapChart.css +1 -0
  102. package/dist/vue/KvTreeMapChart.js +177 -0
  103. package/dist/vue/KvUserAvatar.js +99 -0
  104. package/dist/vue/KvVerticalCarousel.js +175 -0
  105. package/dist/vue/KvVotingCard.css +1 -0
  106. package/dist/vue/KvVotingCard.js +131 -0
  107. package/dist/vue/KvVotingCardV2.css +1 -0
  108. package/dist/vue/KvVotingCardV2.js +120 -0
  109. package/dist/vue/KvWideLoanCard.css +1 -0
  110. package/dist/vue/KvWideLoanCard.js +367 -0
  111. package/dist/vue/flags/1x1/ad.svg.js +4 -0
  112. package/dist/vue/flags/1x1/ae.svg.js +4 -0
  113. package/dist/vue/flags/1x1/af.svg.js +4 -0
  114. package/dist/vue/flags/1x1/ag.svg.js +4 -0
  115. package/dist/vue/flags/1x1/ai.svg.js +4 -0
  116. package/dist/vue/flags/1x1/al.svg.js +4 -0
  117. package/dist/vue/flags/1x1/am.svg.js +4 -0
  118. package/dist/vue/flags/1x1/ao.svg.js +4 -0
  119. package/dist/vue/flags/1x1/aq.svg.js +4 -0
  120. package/dist/vue/flags/1x1/ar.svg.js +4 -0
  121. package/dist/vue/flags/1x1/arab.svg.js +4 -0
  122. package/dist/vue/flags/1x1/as.svg.js +4 -0
  123. package/dist/vue/flags/1x1/at.svg.js +4 -0
  124. package/dist/vue/flags/1x1/au.svg.js +4 -0
  125. package/dist/vue/flags/1x1/aw.svg.js +4 -0
  126. package/dist/vue/flags/1x1/ax.svg.js +4 -0
  127. package/dist/vue/flags/1x1/az.svg.js +4 -0
  128. package/dist/vue/flags/1x1/ba.svg.js +4 -0
  129. package/dist/vue/flags/1x1/bb.svg.js +4 -0
  130. package/dist/vue/flags/1x1/bd.svg.js +4 -0
  131. package/dist/vue/flags/1x1/be.svg.js +4 -0
  132. package/dist/vue/flags/1x1/bf.svg.js +4 -0
  133. package/dist/vue/flags/1x1/bg.svg.js +4 -0
  134. package/dist/vue/flags/1x1/bh.svg.js +4 -0
  135. package/dist/vue/flags/1x1/bi.svg.js +4 -0
  136. package/dist/vue/flags/1x1/bj.svg.js +4 -0
  137. package/dist/vue/flags/1x1/bl.svg.js +4 -0
  138. package/dist/vue/flags/1x1/bm.svg.js +4 -0
  139. package/dist/vue/flags/1x1/bn.svg.js +4 -0
  140. package/dist/vue/flags/1x1/bo.svg.js +4 -0
  141. package/dist/vue/flags/1x1/bq.svg.js +4 -0
  142. package/dist/vue/flags/1x1/br.svg.js +4 -0
  143. package/dist/vue/flags/1x1/bs.svg.js +4 -0
  144. package/dist/vue/flags/1x1/bt.svg.js +4 -0
  145. package/dist/vue/flags/1x1/bv.svg.js +4 -0
  146. package/dist/vue/flags/1x1/bw.svg.js +4 -0
  147. package/dist/vue/flags/1x1/by.svg.js +4 -0
  148. package/dist/vue/flags/1x1/bz.svg.js +4 -0
  149. package/dist/vue/flags/1x1/ca.svg.js +4 -0
  150. package/dist/vue/flags/1x1/cc.svg.js +4 -0
  151. package/dist/vue/flags/1x1/cd.svg.js +4 -0
  152. package/dist/vue/flags/1x1/cefta.svg.js +4 -0
  153. package/dist/vue/flags/1x1/cf.svg.js +4 -0
  154. package/dist/vue/flags/1x1/cg.svg.js +4 -0
  155. package/dist/vue/flags/1x1/ch.svg.js +4 -0
  156. package/dist/vue/flags/1x1/ci.svg.js +4 -0
  157. package/dist/vue/flags/1x1/ck.svg.js +4 -0
  158. package/dist/vue/flags/1x1/cl.svg.js +4 -0
  159. package/dist/vue/flags/1x1/cm.svg.js +4 -0
  160. package/dist/vue/flags/1x1/cn.svg.js +4 -0
  161. package/dist/vue/flags/1x1/co.svg.js +4 -0
  162. package/dist/vue/flags/1x1/cp.svg.js +4 -0
  163. package/dist/vue/flags/1x1/cr.svg.js +4 -0
  164. package/dist/vue/flags/1x1/cu.svg.js +4 -0
  165. package/dist/vue/flags/1x1/cv.svg.js +4 -0
  166. package/dist/vue/flags/1x1/cw.svg.js +4 -0
  167. package/dist/vue/flags/1x1/cx.svg.js +4 -0
  168. package/dist/vue/flags/1x1/cy.svg.js +4 -0
  169. package/dist/vue/flags/1x1/cz.svg.js +4 -0
  170. package/dist/vue/flags/1x1/de.svg.js +4 -0
  171. package/dist/vue/flags/1x1/dg.svg.js +4 -0
  172. package/dist/vue/flags/1x1/dj.svg.js +4 -0
  173. package/dist/vue/flags/1x1/dk.svg.js +4 -0
  174. package/dist/vue/flags/1x1/dm.svg.js +4 -0
  175. package/dist/vue/flags/1x1/do.svg.js +4 -0
  176. package/dist/vue/flags/1x1/dz.svg.js +4 -0
  177. package/dist/vue/flags/1x1/eac.svg.js +4 -0
  178. package/dist/vue/flags/1x1/ec.svg.js +4 -0
  179. package/dist/vue/flags/1x1/ee.svg.js +4 -0
  180. package/dist/vue/flags/1x1/eg.svg.js +4 -0
  181. package/dist/vue/flags/1x1/eh.svg.js +4 -0
  182. package/dist/vue/flags/1x1/er.svg.js +4 -0
  183. package/dist/vue/flags/1x1/es-ct.svg.js +4 -0
  184. package/dist/vue/flags/1x1/es-ga.svg.js +4 -0
  185. package/dist/vue/flags/1x1/es-pv.svg.js +4 -0
  186. package/dist/vue/flags/1x1/es.svg.js +4 -0
  187. package/dist/vue/flags/1x1/et.svg.js +4 -0
  188. package/dist/vue/flags/1x1/eu.svg.js +4 -0
  189. package/dist/vue/flags/1x1/fi.svg.js +4 -0
  190. package/dist/vue/flags/1x1/fj.svg.js +4 -0
  191. package/dist/vue/flags/1x1/fk.svg.js +4 -0
  192. package/dist/vue/flags/1x1/fm.svg.js +4 -0
  193. package/dist/vue/flags/1x1/fo.svg.js +4 -0
  194. package/dist/vue/flags/1x1/fr.svg.js +4 -0
  195. package/dist/vue/flags/1x1/ga.svg.js +4 -0
  196. package/dist/vue/flags/1x1/gb-eng.svg.js +4 -0
  197. package/dist/vue/flags/1x1/gb-nir.svg.js +4 -0
  198. package/dist/vue/flags/1x1/gb-sct.svg.js +4 -0
  199. package/dist/vue/flags/1x1/gb-wls.svg.js +4 -0
  200. package/dist/vue/flags/1x1/gb.svg.js +4 -0
  201. package/dist/vue/flags/1x1/gd.svg.js +4 -0
  202. package/dist/vue/flags/1x1/ge.svg.js +4 -0
  203. package/dist/vue/flags/1x1/gf.svg.js +4 -0
  204. package/dist/vue/flags/1x1/gg.svg.js +4 -0
  205. package/dist/vue/flags/1x1/gh.svg.js +4 -0
  206. package/dist/vue/flags/1x1/gi.svg.js +4 -0
  207. package/dist/vue/flags/1x1/gl.svg.js +4 -0
  208. package/dist/vue/flags/1x1/gm.svg.js +4 -0
  209. package/dist/vue/flags/1x1/gn.svg.js +4 -0
  210. package/dist/vue/flags/1x1/gp.svg.js +4 -0
  211. package/dist/vue/flags/1x1/gq.svg.js +4 -0
  212. package/dist/vue/flags/1x1/gr.svg.js +4 -0
  213. package/dist/vue/flags/1x1/gs.svg.js +4 -0
  214. package/dist/vue/flags/1x1/gt.svg.js +4 -0
  215. package/dist/vue/flags/1x1/gu.svg.js +4 -0
  216. package/dist/vue/flags/1x1/gw.svg.js +4 -0
  217. package/dist/vue/flags/1x1/gy.svg.js +4 -0
  218. package/dist/vue/flags/1x1/hk.svg.js +4 -0
  219. package/dist/vue/flags/1x1/hm.svg.js +4 -0
  220. package/dist/vue/flags/1x1/hn.svg.js +4 -0
  221. package/dist/vue/flags/1x1/hr.svg.js +4 -0
  222. package/dist/vue/flags/1x1/ht.svg.js +4 -0
  223. package/dist/vue/flags/1x1/hu.svg.js +4 -0
  224. package/dist/vue/flags/1x1/ic.svg.js +4 -0
  225. package/dist/vue/flags/1x1/id.svg.js +4 -0
  226. package/dist/vue/flags/1x1/ie.svg.js +4 -0
  227. package/dist/vue/flags/1x1/il.svg.js +4 -0
  228. package/dist/vue/flags/1x1/im.svg.js +4 -0
  229. package/dist/vue/flags/1x1/in.svg.js +4 -0
  230. package/dist/vue/flags/1x1/io.svg.js +4 -0
  231. package/dist/vue/flags/1x1/iq.svg.js +4 -0
  232. package/dist/vue/flags/1x1/ir.svg.js +4 -0
  233. package/dist/vue/flags/1x1/is.svg.js +4 -0
  234. package/dist/vue/flags/1x1/it.svg.js +4 -0
  235. package/dist/vue/flags/1x1/je.svg.js +4 -0
  236. package/dist/vue/flags/1x1/jm.svg.js +4 -0
  237. package/dist/vue/flags/1x1/jo.svg.js +4 -0
  238. package/dist/vue/flags/1x1/jp.svg.js +4 -0
  239. package/dist/vue/flags/1x1/ke.svg.js +4 -0
  240. package/dist/vue/flags/1x1/kg.svg.js +4 -0
  241. package/dist/vue/flags/1x1/kh.svg.js +4 -0
  242. package/dist/vue/flags/1x1/ki.svg.js +4 -0
  243. package/dist/vue/flags/1x1/km.svg.js +4 -0
  244. package/dist/vue/flags/1x1/kn.svg.js +4 -0
  245. package/dist/vue/flags/1x1/kp.svg.js +4 -0
  246. package/dist/vue/flags/1x1/kr.svg.js +4 -0
  247. package/dist/vue/flags/1x1/kw.svg.js +4 -0
  248. package/dist/vue/flags/1x1/ky.svg.js +4 -0
  249. package/dist/vue/flags/1x1/kz.svg.js +4 -0
  250. package/dist/vue/flags/1x1/la.svg.js +4 -0
  251. package/dist/vue/flags/1x1/lb.svg.js +4 -0
  252. package/dist/vue/flags/1x1/lc.svg.js +4 -0
  253. package/dist/vue/flags/1x1/li.svg.js +4 -0
  254. package/dist/vue/flags/1x1/lk.svg.js +4 -0
  255. package/dist/vue/flags/1x1/lr.svg.js +4 -0
  256. package/dist/vue/flags/1x1/ls.svg.js +4 -0
  257. package/dist/vue/flags/1x1/lt.svg.js +4 -0
  258. package/dist/vue/flags/1x1/lu.svg.js +4 -0
  259. package/dist/vue/flags/1x1/lv.svg.js +4 -0
  260. package/dist/vue/flags/1x1/ly.svg.js +4 -0
  261. package/dist/vue/flags/1x1/ma.svg.js +4 -0
  262. package/dist/vue/flags/1x1/mc.svg.js +4 -0
  263. package/dist/vue/flags/1x1/md.svg.js +4 -0
  264. package/dist/vue/flags/1x1/me.svg.js +4 -0
  265. package/dist/vue/flags/1x1/mf.svg.js +4 -0
  266. package/dist/vue/flags/1x1/mg.svg.js +4 -0
  267. package/dist/vue/flags/1x1/mh.svg.js +4 -0
  268. package/dist/vue/flags/1x1/mk.svg.js +4 -0
  269. package/dist/vue/flags/1x1/ml.svg.js +4 -0
  270. package/dist/vue/flags/1x1/mm.svg.js +4 -0
  271. package/dist/vue/flags/1x1/mn.svg.js +4 -0
  272. package/dist/vue/flags/1x1/mo.svg.js +4 -0
  273. package/dist/vue/flags/1x1/mp.svg.js +4 -0
  274. package/dist/vue/flags/1x1/mq.svg.js +4 -0
  275. package/dist/vue/flags/1x1/mr.svg.js +4 -0
  276. package/dist/vue/flags/1x1/ms.svg.js +4 -0
  277. package/dist/vue/flags/1x1/mt.svg.js +4 -0
  278. package/dist/vue/flags/1x1/mu.svg.js +4 -0
  279. package/dist/vue/flags/1x1/mv.svg.js +4 -0
  280. package/dist/vue/flags/1x1/mw.svg.js +4 -0
  281. package/dist/vue/flags/1x1/mx.svg.js +4 -0
  282. package/dist/vue/flags/1x1/my.svg.js +4 -0
  283. package/dist/vue/flags/1x1/mz.svg.js +4 -0
  284. package/dist/vue/flags/1x1/na.svg.js +4 -0
  285. package/dist/vue/flags/1x1/nc.svg.js +4 -0
  286. package/dist/vue/flags/1x1/ne.svg.js +4 -0
  287. package/dist/vue/flags/1x1/nf.svg.js +4 -0
  288. package/dist/vue/flags/1x1/ng.svg.js +4 -0
  289. package/dist/vue/flags/1x1/ni.svg.js +4 -0
  290. package/dist/vue/flags/1x1/nl.svg.js +4 -0
  291. package/dist/vue/flags/1x1/no.svg.js +4 -0
  292. package/dist/vue/flags/1x1/np.svg.js +4 -0
  293. package/dist/vue/flags/1x1/nr.svg.js +4 -0
  294. package/dist/vue/flags/1x1/nu.svg.js +4 -0
  295. package/dist/vue/flags/1x1/nz.svg.js +4 -0
  296. package/dist/vue/flags/1x1/om.svg.js +4 -0
  297. package/dist/vue/flags/1x1/pa.svg.js +4 -0
  298. package/dist/vue/flags/1x1/pc.svg.js +4 -0
  299. package/dist/vue/flags/1x1/pe.svg.js +4 -0
  300. package/dist/vue/flags/1x1/pf.svg.js +4 -0
  301. package/dist/vue/flags/1x1/pg.svg.js +4 -0
  302. package/dist/vue/flags/1x1/ph.svg.js +4 -0
  303. package/dist/vue/flags/1x1/pk.svg.js +4 -0
  304. package/dist/vue/flags/1x1/pl.svg.js +4 -0
  305. package/dist/vue/flags/1x1/pm.svg.js +4 -0
  306. package/dist/vue/flags/1x1/pn.svg.js +4 -0
  307. package/dist/vue/flags/1x1/pr.svg.js +4 -0
  308. package/dist/vue/flags/1x1/ps.svg.js +4 -0
  309. package/dist/vue/flags/1x1/pt.svg.js +4 -0
  310. package/dist/vue/flags/1x1/pw.svg.js +4 -0
  311. package/dist/vue/flags/1x1/py.svg.js +4 -0
  312. package/dist/vue/flags/1x1/qa.svg.js +4 -0
  313. package/dist/vue/flags/1x1/re.svg.js +4 -0
  314. package/dist/vue/flags/1x1/ro.svg.js +4 -0
  315. package/dist/vue/flags/1x1/rs.svg.js +4 -0
  316. package/dist/vue/flags/1x1/ru.svg.js +4 -0
  317. package/dist/vue/flags/1x1/rw.svg.js +4 -0
  318. package/dist/vue/flags/1x1/sa.svg.js +4 -0
  319. package/dist/vue/flags/1x1/sb.svg.js +4 -0
  320. package/dist/vue/flags/1x1/sc.svg.js +4 -0
  321. package/dist/vue/flags/1x1/sd.svg.js +4 -0
  322. package/dist/vue/flags/1x1/se.svg.js +4 -0
  323. package/dist/vue/flags/1x1/sg.svg.js +4 -0
  324. package/dist/vue/flags/1x1/sh-ac.svg.js +4 -0
  325. package/dist/vue/flags/1x1/sh-hl.svg.js +4 -0
  326. package/dist/vue/flags/1x1/sh-ta.svg.js +4 -0
  327. package/dist/vue/flags/1x1/sh.svg.js +4 -0
  328. package/dist/vue/flags/1x1/si.svg.js +4 -0
  329. package/dist/vue/flags/1x1/sj.svg.js +4 -0
  330. package/dist/vue/flags/1x1/sk.svg.js +4 -0
  331. package/dist/vue/flags/1x1/sl.svg.js +4 -0
  332. package/dist/vue/flags/1x1/sm.svg.js +4 -0
  333. package/dist/vue/flags/1x1/sn.svg.js +4 -0
  334. package/dist/vue/flags/1x1/so.svg.js +4 -0
  335. package/dist/vue/flags/1x1/sr.svg.js +4 -0
  336. package/dist/vue/flags/1x1/ss.svg.js +4 -0
  337. package/dist/vue/flags/1x1/st.svg.js +4 -0
  338. package/dist/vue/flags/1x1/sv.svg.js +4 -0
  339. package/dist/vue/flags/1x1/sx.svg.js +4 -0
  340. package/dist/vue/flags/1x1/sy.svg.js +4 -0
  341. package/dist/vue/flags/1x1/sz.svg.js +4 -0
  342. package/dist/vue/flags/1x1/tc.svg.js +4 -0
  343. package/dist/vue/flags/1x1/td.svg.js +4 -0
  344. package/dist/vue/flags/1x1/tf.svg.js +4 -0
  345. package/dist/vue/flags/1x1/tg.svg.js +4 -0
  346. package/dist/vue/flags/1x1/th.svg.js +4 -0
  347. package/dist/vue/flags/1x1/tj.svg.js +4 -0
  348. package/dist/vue/flags/1x1/tk.svg.js +4 -0
  349. package/dist/vue/flags/1x1/tl.svg.js +4 -0
  350. package/dist/vue/flags/1x1/tm.svg.js +4 -0
  351. package/dist/vue/flags/1x1/tn.svg.js +4 -0
  352. package/dist/vue/flags/1x1/to.svg.js +4 -0
  353. package/dist/vue/flags/1x1/tr.svg.js +4 -0
  354. package/dist/vue/flags/1x1/tt.svg.js +4 -0
  355. package/dist/vue/flags/1x1/tv.svg.js +4 -0
  356. package/dist/vue/flags/1x1/tw.svg.js +4 -0
  357. package/dist/vue/flags/1x1/tz.svg.js +4 -0
  358. package/dist/vue/flags/1x1/ua.svg.js +4 -0
  359. package/dist/vue/flags/1x1/ug.svg.js +4 -0
  360. package/dist/vue/flags/1x1/um.svg.js +4 -0
  361. package/dist/vue/flags/1x1/un.svg.js +4 -0
  362. package/dist/vue/flags/1x1/us.svg.js +4 -0
  363. package/dist/vue/flags/1x1/uy.svg.js +4 -0
  364. package/dist/vue/flags/1x1/uz.svg.js +4 -0
  365. package/dist/vue/flags/1x1/va.svg.js +4 -0
  366. package/dist/vue/flags/1x1/vc.svg.js +4 -0
  367. package/dist/vue/flags/1x1/ve.svg.js +4 -0
  368. package/dist/vue/flags/1x1/vg.svg.js +4 -0
  369. package/dist/vue/flags/1x1/vi.svg.js +4 -0
  370. package/dist/vue/flags/1x1/vn.svg.js +4 -0
  371. package/dist/vue/flags/1x1/vu.svg.js +4 -0
  372. package/dist/vue/flags/1x1/wf.svg.js +4 -0
  373. package/dist/vue/flags/1x1/ws.svg.js +4 -0
  374. package/dist/vue/flags/1x1/xk.svg.js +4 -0
  375. package/dist/vue/flags/1x1/xx.svg.js +4 -0
  376. package/dist/vue/flags/1x1/ye.svg.js +4 -0
  377. package/dist/vue/flags/1x1/yt.svg.js +4 -0
  378. package/dist/vue/flags/1x1/za.svg.js +4 -0
  379. package/dist/vue/flags/1x1/zm.svg.js +4 -0
  380. package/dist/vue/flags/1x1/zw.svg.js +4 -0
  381. package/dist/vue/flags/4x3/ad.svg.js +4 -0
  382. package/dist/vue/flags/4x3/ae.svg.js +4 -0
  383. package/dist/vue/flags/4x3/af.svg.js +4 -0
  384. package/dist/vue/flags/4x3/ag.svg.js +4 -0
  385. package/dist/vue/flags/4x3/ai.svg.js +4 -0
  386. package/dist/vue/flags/4x3/al.svg.js +4 -0
  387. package/dist/vue/flags/4x3/am.svg.js +4 -0
  388. package/dist/vue/flags/4x3/ao.svg.js +4 -0
  389. package/dist/vue/flags/4x3/aq.svg.js +4 -0
  390. package/dist/vue/flags/4x3/ar.svg.js +4 -0
  391. package/dist/vue/flags/4x3/arab.svg.js +4 -0
  392. package/dist/vue/flags/4x3/as.svg.js +4 -0
  393. package/dist/vue/flags/4x3/at.svg.js +4 -0
  394. package/dist/vue/flags/4x3/au.svg.js +4 -0
  395. package/dist/vue/flags/4x3/aw.svg.js +4 -0
  396. package/dist/vue/flags/4x3/ax.svg.js +4 -0
  397. package/dist/vue/flags/4x3/az.svg.js +4 -0
  398. package/dist/vue/flags/4x3/ba.svg.js +4 -0
  399. package/dist/vue/flags/4x3/bb.svg.js +4 -0
  400. package/dist/vue/flags/4x3/bd.svg.js +4 -0
  401. package/dist/vue/flags/4x3/be.svg.js +4 -0
  402. package/dist/vue/flags/4x3/bf.svg.js +4 -0
  403. package/dist/vue/flags/4x3/bg.svg.js +4 -0
  404. package/dist/vue/flags/4x3/bh.svg.js +4 -0
  405. package/dist/vue/flags/4x3/bi.svg.js +4 -0
  406. package/dist/vue/flags/4x3/bj.svg.js +4 -0
  407. package/dist/vue/flags/4x3/bl.svg.js +4 -0
  408. package/dist/vue/flags/4x3/bm.svg.js +4 -0
  409. package/dist/vue/flags/4x3/bn.svg.js +4 -0
  410. package/dist/vue/flags/4x3/bo.svg.js +4 -0
  411. package/dist/vue/flags/4x3/bq.svg.js +4 -0
  412. package/dist/vue/flags/4x3/br.svg.js +4 -0
  413. package/dist/vue/flags/4x3/bs.svg.js +4 -0
  414. package/dist/vue/flags/4x3/bt.svg.js +4 -0
  415. package/dist/vue/flags/4x3/bv.svg.js +4 -0
  416. package/dist/vue/flags/4x3/bw.svg.js +4 -0
  417. package/dist/vue/flags/4x3/by.svg.js +4 -0
  418. package/dist/vue/flags/4x3/bz.svg.js +4 -0
  419. package/dist/vue/flags/4x3/ca.svg.js +4 -0
  420. package/dist/vue/flags/4x3/cc.svg.js +4 -0
  421. package/dist/vue/flags/4x3/cd.svg.js +4 -0
  422. package/dist/vue/flags/4x3/cefta.svg.js +4 -0
  423. package/dist/vue/flags/4x3/cf.svg.js +4 -0
  424. package/dist/vue/flags/4x3/cg.svg.js +4 -0
  425. package/dist/vue/flags/4x3/ch.svg.js +4 -0
  426. package/dist/vue/flags/4x3/ci.svg.js +4 -0
  427. package/dist/vue/flags/4x3/ck.svg.js +4 -0
  428. package/dist/vue/flags/4x3/cl.svg.js +4 -0
  429. package/dist/vue/flags/4x3/cm.svg.js +4 -0
  430. package/dist/vue/flags/4x3/cn.svg.js +4 -0
  431. package/dist/vue/flags/4x3/co.svg.js +4 -0
  432. package/dist/vue/flags/4x3/cp.svg.js +4 -0
  433. package/dist/vue/flags/4x3/cr.svg.js +4 -0
  434. package/dist/vue/flags/4x3/cu.svg.js +4 -0
  435. package/dist/vue/flags/4x3/cv.svg.js +4 -0
  436. package/dist/vue/flags/4x3/cw.svg.js +4 -0
  437. package/dist/vue/flags/4x3/cx.svg.js +4 -0
  438. package/dist/vue/flags/4x3/cy.svg.js +4 -0
  439. package/dist/vue/flags/4x3/cz.svg.js +4 -0
  440. package/dist/vue/flags/4x3/de.svg.js +4 -0
  441. package/dist/vue/flags/4x3/dg.svg.js +4 -0
  442. package/dist/vue/flags/4x3/dj.svg.js +4 -0
  443. package/dist/vue/flags/4x3/dk.svg.js +4 -0
  444. package/dist/vue/flags/4x3/dm.svg.js +4 -0
  445. package/dist/vue/flags/4x3/do.svg.js +4 -0
  446. package/dist/vue/flags/4x3/dz.svg.js +4 -0
  447. package/dist/vue/flags/4x3/eac.svg.js +4 -0
  448. package/dist/vue/flags/4x3/ec.svg.js +4 -0
  449. package/dist/vue/flags/4x3/ee.svg.js +4 -0
  450. package/dist/vue/flags/4x3/eg.svg.js +4 -0
  451. package/dist/vue/flags/4x3/eh.svg.js +4 -0
  452. package/dist/vue/flags/4x3/er.svg.js +4 -0
  453. package/dist/vue/flags/4x3/es-ct.svg.js +4 -0
  454. package/dist/vue/flags/4x3/es-ga.svg.js +4 -0
  455. package/dist/vue/flags/4x3/es-pv.svg.js +4 -0
  456. package/dist/vue/flags/4x3/es.svg.js +4 -0
  457. package/dist/vue/flags/4x3/et.svg.js +4 -0
  458. package/dist/vue/flags/4x3/eu.svg.js +4 -0
  459. package/dist/vue/flags/4x3/fi.svg.js +4 -0
  460. package/dist/vue/flags/4x3/fj.svg.js +4 -0
  461. package/dist/vue/flags/4x3/fk.svg.js +4 -0
  462. package/dist/vue/flags/4x3/fm.svg.js +4 -0
  463. package/dist/vue/flags/4x3/fo.svg.js +4 -0
  464. package/dist/vue/flags/4x3/fr.svg.js +4 -0
  465. package/dist/vue/flags/4x3/ga.svg.js +4 -0
  466. package/dist/vue/flags/4x3/gb-eng.svg.js +4 -0
  467. package/dist/vue/flags/4x3/gb-nir.svg.js +4 -0
  468. package/dist/vue/flags/4x3/gb-sct.svg.js +4 -0
  469. package/dist/vue/flags/4x3/gb-wls.svg.js +4 -0
  470. package/dist/vue/flags/4x3/gb.svg.js +4 -0
  471. package/dist/vue/flags/4x3/gd.svg.js +4 -0
  472. package/dist/vue/flags/4x3/ge.svg.js +4 -0
  473. package/dist/vue/flags/4x3/gf.svg.js +4 -0
  474. package/dist/vue/flags/4x3/gg.svg.js +4 -0
  475. package/dist/vue/flags/4x3/gh.svg.js +4 -0
  476. package/dist/vue/flags/4x3/gi.svg.js +4 -0
  477. package/dist/vue/flags/4x3/gl.svg.js +4 -0
  478. package/dist/vue/flags/4x3/gm.svg.js +4 -0
  479. package/dist/vue/flags/4x3/gn.svg.js +4 -0
  480. package/dist/vue/flags/4x3/gp.svg.js +4 -0
  481. package/dist/vue/flags/4x3/gq.svg.js +4 -0
  482. package/dist/vue/flags/4x3/gr.svg.js +4 -0
  483. package/dist/vue/flags/4x3/gs.svg.js +4 -0
  484. package/dist/vue/flags/4x3/gt.svg.js +4 -0
  485. package/dist/vue/flags/4x3/gu.svg.js +4 -0
  486. package/dist/vue/flags/4x3/gw.svg.js +4 -0
  487. package/dist/vue/flags/4x3/gy.svg.js +4 -0
  488. package/dist/vue/flags/4x3/hk.svg.js +4 -0
  489. package/dist/vue/flags/4x3/hm.svg.js +4 -0
  490. package/dist/vue/flags/4x3/hn.svg.js +4 -0
  491. package/dist/vue/flags/4x3/hr.svg.js +4 -0
  492. package/dist/vue/flags/4x3/ht.svg.js +4 -0
  493. package/dist/vue/flags/4x3/hu.svg.js +4 -0
  494. package/dist/vue/flags/4x3/ic.svg.js +4 -0
  495. package/dist/vue/flags/4x3/id.svg.js +4 -0
  496. package/dist/vue/flags/4x3/ie.svg.js +4 -0
  497. package/dist/vue/flags/4x3/il.svg.js +4 -0
  498. package/dist/vue/flags/4x3/im.svg.js +4 -0
  499. package/dist/vue/flags/4x3/in.svg.js +4 -0
  500. package/dist/vue/flags/4x3/io.svg.js +4 -0
  501. package/dist/vue/flags/4x3/iq.svg.js +4 -0
  502. package/dist/vue/flags/4x3/ir.svg.js +4 -0
  503. package/dist/vue/flags/4x3/is.svg.js +4 -0
  504. package/dist/vue/flags/4x3/it.svg.js +4 -0
  505. package/dist/vue/flags/4x3/je.svg.js +4 -0
  506. package/dist/vue/flags/4x3/jm.svg.js +4 -0
  507. package/dist/vue/flags/4x3/jo.svg.js +4 -0
  508. package/dist/vue/flags/4x3/jp.svg.js +4 -0
  509. package/dist/vue/flags/4x3/ke.svg.js +4 -0
  510. package/dist/vue/flags/4x3/kg.svg.js +4 -0
  511. package/dist/vue/flags/4x3/kh.svg.js +4 -0
  512. package/dist/vue/flags/4x3/ki.svg.js +4 -0
  513. package/dist/vue/flags/4x3/km.svg.js +4 -0
  514. package/dist/vue/flags/4x3/kn.svg.js +4 -0
  515. package/dist/vue/flags/4x3/kp.svg.js +4 -0
  516. package/dist/vue/flags/4x3/kr.svg.js +4 -0
  517. package/dist/vue/flags/4x3/kw.svg.js +4 -0
  518. package/dist/vue/flags/4x3/ky.svg.js +4 -0
  519. package/dist/vue/flags/4x3/kz.svg.js +4 -0
  520. package/dist/vue/flags/4x3/la.svg.js +4 -0
  521. package/dist/vue/flags/4x3/lb.svg.js +4 -0
  522. package/dist/vue/flags/4x3/lc.svg.js +4 -0
  523. package/dist/vue/flags/4x3/li.svg.js +4 -0
  524. package/dist/vue/flags/4x3/lk.svg.js +4 -0
  525. package/dist/vue/flags/4x3/lr.svg.js +4 -0
  526. package/dist/vue/flags/4x3/ls.svg.js +4 -0
  527. package/dist/vue/flags/4x3/lt.svg.js +4 -0
  528. package/dist/vue/flags/4x3/lu.svg.js +4 -0
  529. package/dist/vue/flags/4x3/lv.svg.js +4 -0
  530. package/dist/vue/flags/4x3/ly.svg.js +4 -0
  531. package/dist/vue/flags/4x3/ma.svg.js +4 -0
  532. package/dist/vue/flags/4x3/mc.svg.js +4 -0
  533. package/dist/vue/flags/4x3/md.svg.js +4 -0
  534. package/dist/vue/flags/4x3/me.svg.js +4 -0
  535. package/dist/vue/flags/4x3/mf.svg.js +4 -0
  536. package/dist/vue/flags/4x3/mg.svg.js +4 -0
  537. package/dist/vue/flags/4x3/mh.svg.js +4 -0
  538. package/dist/vue/flags/4x3/mk.svg.js +4 -0
  539. package/dist/vue/flags/4x3/ml.svg.js +4 -0
  540. package/dist/vue/flags/4x3/mm.svg.js +4 -0
  541. package/dist/vue/flags/4x3/mn.svg.js +4 -0
  542. package/dist/vue/flags/4x3/mo.svg.js +4 -0
  543. package/dist/vue/flags/4x3/mp.svg.js +4 -0
  544. package/dist/vue/flags/4x3/mq.svg.js +4 -0
  545. package/dist/vue/flags/4x3/mr.svg.js +4 -0
  546. package/dist/vue/flags/4x3/ms.svg.js +4 -0
  547. package/dist/vue/flags/4x3/mt.svg.js +4 -0
  548. package/dist/vue/flags/4x3/mu.svg.js +4 -0
  549. package/dist/vue/flags/4x3/mv.svg.js +4 -0
  550. package/dist/vue/flags/4x3/mw.svg.js +4 -0
  551. package/dist/vue/flags/4x3/mx.svg.js +4 -0
  552. package/dist/vue/flags/4x3/my.svg.js +4 -0
  553. package/dist/vue/flags/4x3/mz.svg.js +4 -0
  554. package/dist/vue/flags/4x3/na.svg.js +4 -0
  555. package/dist/vue/flags/4x3/nc.svg.js +4 -0
  556. package/dist/vue/flags/4x3/ne.svg.js +4 -0
  557. package/dist/vue/flags/4x3/nf.svg.js +4 -0
  558. package/dist/vue/flags/4x3/ng.svg.js +4 -0
  559. package/dist/vue/flags/4x3/ni.svg.js +4 -0
  560. package/dist/vue/flags/4x3/nl.svg.js +4 -0
  561. package/dist/vue/flags/4x3/no.svg.js +4 -0
  562. package/dist/vue/flags/4x3/np.svg.js +4 -0
  563. package/dist/vue/flags/4x3/nr.svg.js +4 -0
  564. package/dist/vue/flags/4x3/nu.svg.js +4 -0
  565. package/dist/vue/flags/4x3/nz.svg.js +4 -0
  566. package/dist/vue/flags/4x3/om.svg.js +4 -0
  567. package/dist/vue/flags/4x3/pa.svg.js +4 -0
  568. package/dist/vue/flags/4x3/pc.svg.js +4 -0
  569. package/dist/vue/flags/4x3/pe.svg.js +4 -0
  570. package/dist/vue/flags/4x3/pf.svg.js +4 -0
  571. package/dist/vue/flags/4x3/pg.svg.js +4 -0
  572. package/dist/vue/flags/4x3/ph.svg.js +4 -0
  573. package/dist/vue/flags/4x3/pk.svg.js +4 -0
  574. package/dist/vue/flags/4x3/pl.svg.js +4 -0
  575. package/dist/vue/flags/4x3/pm.svg.js +4 -0
  576. package/dist/vue/flags/4x3/pn.svg.js +4 -0
  577. package/dist/vue/flags/4x3/pr.svg.js +4 -0
  578. package/dist/vue/flags/4x3/ps.svg.js +4 -0
  579. package/dist/vue/flags/4x3/pt.svg.js +4 -0
  580. package/dist/vue/flags/4x3/pw.svg.js +4 -0
  581. package/dist/vue/flags/4x3/py.svg.js +4 -0
  582. package/dist/vue/flags/4x3/qa.svg.js +4 -0
  583. package/dist/vue/flags/4x3/re.svg.js +4 -0
  584. package/dist/vue/flags/4x3/ro.svg.js +4 -0
  585. package/dist/vue/flags/4x3/rs.svg.js +4 -0
  586. package/dist/vue/flags/4x3/ru.svg.js +4 -0
  587. package/dist/vue/flags/4x3/rw.svg.js +4 -0
  588. package/dist/vue/flags/4x3/sa.svg.js +4 -0
  589. package/dist/vue/flags/4x3/sb.svg.js +4 -0
  590. package/dist/vue/flags/4x3/sc.svg.js +4 -0
  591. package/dist/vue/flags/4x3/sd.svg.js +4 -0
  592. package/dist/vue/flags/4x3/se.svg.js +4 -0
  593. package/dist/vue/flags/4x3/sg.svg.js +4 -0
  594. package/dist/vue/flags/4x3/sh-ac.svg.js +4 -0
  595. package/dist/vue/flags/4x3/sh-hl.svg.js +4 -0
  596. package/dist/vue/flags/4x3/sh-ta.svg.js +4 -0
  597. package/dist/vue/flags/4x3/sh.svg.js +4 -0
  598. package/dist/vue/flags/4x3/si.svg.js +4 -0
  599. package/dist/vue/flags/4x3/sj.svg.js +4 -0
  600. package/dist/vue/flags/4x3/sk.svg.js +4 -0
  601. package/dist/vue/flags/4x3/sl.svg.js +4 -0
  602. package/dist/vue/flags/4x3/sm.svg.js +4 -0
  603. package/dist/vue/flags/4x3/sn.svg.js +4 -0
  604. package/dist/vue/flags/4x3/so.svg.js +4 -0
  605. package/dist/vue/flags/4x3/sr.svg.js +4 -0
  606. package/dist/vue/flags/4x3/ss.svg.js +4 -0
  607. package/dist/vue/flags/4x3/st.svg.js +4 -0
  608. package/dist/vue/flags/4x3/sv.svg.js +4 -0
  609. package/dist/vue/flags/4x3/sx.svg.js +4 -0
  610. package/dist/vue/flags/4x3/sy.svg.js +4 -0
  611. package/dist/vue/flags/4x3/sz.svg.js +4 -0
  612. package/dist/vue/flags/4x3/tc.svg.js +4 -0
  613. package/dist/vue/flags/4x3/td.svg.js +4 -0
  614. package/dist/vue/flags/4x3/tf.svg.js +4 -0
  615. package/dist/vue/flags/4x3/tg.svg.js +4 -0
  616. package/dist/vue/flags/4x3/th.svg.js +4 -0
  617. package/dist/vue/flags/4x3/tj.svg.js +4 -0
  618. package/dist/vue/flags/4x3/tk.svg.js +4 -0
  619. package/dist/vue/flags/4x3/tl.svg.js +4 -0
  620. package/dist/vue/flags/4x3/tm.svg.js +4 -0
  621. package/dist/vue/flags/4x3/tn.svg.js +4 -0
  622. package/dist/vue/flags/4x3/to.svg.js +4 -0
  623. package/dist/vue/flags/4x3/tr.svg.js +4 -0
  624. package/dist/vue/flags/4x3/tt.svg.js +4 -0
  625. package/dist/vue/flags/4x3/tv.svg.js +4 -0
  626. package/dist/vue/flags/4x3/tw.svg.js +4 -0
  627. package/dist/vue/flags/4x3/tz.svg.js +4 -0
  628. package/dist/vue/flags/4x3/ua.svg.js +4 -0
  629. package/dist/vue/flags/4x3/ug.svg.js +4 -0
  630. package/dist/vue/flags/4x3/um.svg.js +4 -0
  631. package/dist/vue/flags/4x3/un.svg.js +4 -0
  632. package/dist/vue/flags/4x3/us.svg.js +4 -0
  633. package/dist/vue/flags/4x3/uy.svg.js +4 -0
  634. package/dist/vue/flags/4x3/uz.svg.js +4 -0
  635. package/dist/vue/flags/4x3/va.svg.js +4 -0
  636. package/dist/vue/flags/4x3/vc.svg.js +4 -0
  637. package/dist/vue/flags/4x3/ve.svg.js +4 -0
  638. package/dist/vue/flags/4x3/vg.svg.js +4 -0
  639. package/dist/vue/flags/4x3/vi.svg.js +4 -0
  640. package/dist/vue/flags/4x3/vn.svg.js +4 -0
  641. package/dist/vue/flags/4x3/vu.svg.js +4 -0
  642. package/dist/vue/flags/4x3/wf.svg.js +4 -0
  643. package/dist/vue/flags/4x3/ws.svg.js +4 -0
  644. package/dist/vue/flags/4x3/xk.svg.js +4 -0
  645. package/dist/vue/flags/4x3/xx.svg.js +4 -0
  646. package/dist/vue/flags/4x3/ye.svg.js +4 -0
  647. package/dist/vue/flags/4x3/yt.svg.js +4 -0
  648. package/dist/vue/flags/4x3/za.svg.js +4 -0
  649. package/dist/vue/flags/4x3/zm.svg.js +4 -0
  650. package/dist/vue/flags/4x3/zw.svg.js +4 -0
  651. package/package.json +60 -52
  652. package/.eslintrc.cjs +0 -23
  653. package/CHANGELOG.md +0 -3615
  654. package/__mocks__/ResizeObserver.js +0 -13
  655. package/babel.config.cjs +0 -12
  656. package/data/countries-borders.json +0 -1
  657. package/data/ne_110m_admin_0_countries.json +0 -1
  658. package/dist/components/.storybook/main.js +0 -88
  659. package/dist/components/.storybook/package.json +0 -3
  660. package/dist/components/.storybook/preview.js +0 -53
  661. package/dist/components/.storybook/tailwind.css +0 -5
  662. package/dist/components/KvAccordionItem.vue +0 -130
  663. package/dist/components/KvActivityRow.vue +0 -33
  664. package/dist/components/KvBorrowerImage.vue +0 -179
  665. package/dist/components/KvButton.vue +0 -288
  666. package/dist/components/KvCarousel.vue +0 -314
  667. package/dist/components/KvCartModal.vue +0 -365
  668. package/dist/components/KvCheckbox.vue +0 -203
  669. package/dist/components/KvChip.vue +0 -54
  670. package/dist/components/KvClassicLoanCard.vue +0 -527
  671. package/dist/components/KvCommentsAdd.vue +0 -135
  672. package/dist/components/KvCommentsContainer.vue +0 -84
  673. package/dist/components/KvCommentsHeartButton.vue +0 -70
  674. package/dist/components/KvCommentsList.vue +0 -68
  675. package/dist/components/KvCommentsListItem.vue +0 -241
  676. package/dist/components/KvCommentsReplyButton.vue +0 -52
  677. package/dist/components/KvContentfulImg.vue +0 -273
  678. package/dist/components/KvCountdownTimer.vue +0 -59
  679. package/dist/components/KvExpandable.vue +0 -84
  680. package/dist/components/KvExpandableQuestion.vue +0 -120
  681. package/dist/components/KvFlag.vue +0 -120
  682. package/dist/components/KvGrid.vue +0 -28
  683. package/dist/components/KvImpactDashboardHeader.vue +0 -40
  684. package/dist/components/KvInlineActivityCard.vue +0 -55
  685. package/dist/components/KvInlineActivityFeed.vue +0 -38
  686. package/dist/components/KvIntroductionLoanCard.vue +0 -449
  687. package/dist/components/KvLendAmountButton.vue +0 -65
  688. package/dist/components/KvLendCta.vue +0 -589
  689. package/dist/components/KvLightbox.vue +0 -334
  690. package/dist/components/KvLineGraph.vue +0 -128
  691. package/dist/components/KvLoadingPlaceholder.vue +0 -38
  692. package/dist/components/KvLoadingSpinner.vue +0 -81
  693. package/dist/components/KvLoanActivities.vue +0 -268
  694. package/dist/components/KvLoanBookmark.vue +0 -39
  695. package/dist/components/KvLoanCallouts.vue +0 -53
  696. package/dist/components/KvLoanProgressGroup.vue +0 -76
  697. package/dist/components/KvLoanTag.vue +0 -88
  698. package/dist/components/KvLoanTeamPick.vue +0 -44
  699. package/dist/components/KvLoanUse.vue +0 -92
  700. package/dist/components/KvMap.vue +0 -599
  701. package/dist/components/KvMaterialIcon.vue +0 -47
  702. package/dist/components/KvPageContainer.vue +0 -15
  703. package/dist/components/KvPagination.vue +0 -198
  704. package/dist/components/KvPieChart.vue +0 -257
  705. package/dist/components/KvPopper.vue +0 -178
  706. package/dist/components/KvProgressBar.vue +0 -149
  707. package/dist/components/KvRadio.vue +0 -198
  708. package/dist/components/KvSelect.vue +0 -114
  709. package/dist/components/KvSideSheet.vue +0 -196
  710. package/dist/components/KvSwitch.vue +0 -143
  711. package/dist/components/KvTab.vue +0 -90
  712. package/dist/components/KvTabPanel.vue +0 -64
  713. package/dist/components/KvTabs.vue +0 -182
  714. package/dist/components/KvTextInput.vue +0 -250
  715. package/dist/components/KvTextLink.vue +0 -138
  716. package/dist/components/KvThemeProvider.vue +0 -122
  717. package/dist/components/KvToast.vue +0 -221
  718. package/dist/components/KvTooltip.vue +0 -168
  719. package/dist/components/KvTreeMapChart.vue +0 -229
  720. package/dist/components/KvUserAvatar.vue +0 -132
  721. package/dist/components/KvVerticalCarousel.vue +0 -219
  722. package/dist/components/KvVotingCard.vue +0 -160
  723. package/dist/components/KvVotingCardV2.vue +0 -154
  724. package/dist/components/KvWideLoanCard.vue +0 -433
  725. package/dist/components/stories/Forms.stories.js +0 -62
  726. package/dist/components/stories/KvAccordionItem.stories.js +0 -24
  727. package/dist/components/stories/KvActivityRow.stories.js +0 -27
  728. package/dist/components/stories/KvBorrowerImage.stories.js +0 -62
  729. package/dist/components/stories/KvButton.stories.js +0 -142
  730. package/dist/components/stories/KvCarousel.stories.js +0 -489
  731. package/dist/components/stories/KvCartModal.stories.js +0 -51
  732. package/dist/components/stories/KvCheckbox.stories.js +0 -163
  733. package/dist/components/stories/KvChip.stories.js +0 -43
  734. package/dist/components/stories/KvClassicLoanCard.stories.js +0 -458
  735. package/dist/components/stories/KvCommentsAdd.stories.js +0 -32
  736. package/dist/components/stories/KvCommentsContainer.stories.js +0 -42
  737. package/dist/components/stories/KvCommentsHeartButton.stories.js +0 -25
  738. package/dist/components/stories/KvCommentsList.stories.js +0 -39
  739. package/dist/components/stories/KvCommentsListItem.stories.js +0 -45
  740. package/dist/components/stories/KvCommentsReplyButton.stories.js +0 -21
  741. package/dist/components/stories/KvContentfulImg.stories.js +0 -173
  742. package/dist/components/stories/KvCountdownTimer.stories.js +0 -31
  743. package/dist/components/stories/KvExpandableQuestion.stories.js +0 -129
  744. package/dist/components/stories/KvFlag.stories.js +0 -38
  745. package/dist/components/stories/KvGrid.stories.js +0 -97
  746. package/dist/components/stories/KvImpactDashboardHeader.stories.js +0 -22
  747. package/dist/components/stories/KvInlineActivityCard.stories.js +0 -69
  748. package/dist/components/stories/KvInlineActivityFeed.stories.js +0 -76
  749. package/dist/components/stories/KvIntroductionLoanCard.stories.js +0 -204
  750. package/dist/components/stories/KvLendAmountButton.stories.js +0 -31
  751. package/dist/components/stories/KvLendCta.stories.js +0 -332
  752. package/dist/components/stories/KvLightbox.stories.js +0 -308
  753. package/dist/components/stories/KvLineGraph.stories.js +0 -53
  754. package/dist/components/stories/KvLoadingPlaceholder.stories.js +0 -17
  755. package/dist/components/stories/KvLoadingSpinner.stories.js +0 -50
  756. package/dist/components/stories/KvLoanActivities.stories.js +0 -103
  757. package/dist/components/stories/KvLoanBookmark.stories.js +0 -23
  758. package/dist/components/stories/KvLoanCallouts.stories.js +0 -23
  759. package/dist/components/stories/KvLoanProgressGroup.stories.js +0 -29
  760. package/dist/components/stories/KvLoanTag.stories.js +0 -62
  761. package/dist/components/stories/KvLoanTeamPick.stories.js +0 -20
  762. package/dist/components/stories/KvLoanUse.stories.js +0 -54
  763. package/dist/components/stories/KvMap.stories.js +0 -108
  764. package/dist/components/stories/KvMaterialIcon.stories.js +0 -210
  765. package/dist/components/stories/KvPageContainer.stories.js +0 -50
  766. package/dist/components/stories/KvPagination.stories.js +0 -66
  767. package/dist/components/stories/KvPieChart.stories.js +0 -47
  768. package/dist/components/stories/KvProgressBar.stories.js +0 -48
  769. package/dist/components/stories/KvRadio.stories.js +0 -140
  770. package/dist/components/stories/KvSelect.stories.js +0 -125
  771. package/dist/components/stories/KvSideSheet.stories.js +0 -68
  772. package/dist/components/stories/KvSwitch.stories.js +0 -66
  773. package/dist/components/stories/KvTabs.stories.js +0 -106
  774. package/dist/components/stories/KvTextInput.stories.js +0 -194
  775. package/dist/components/stories/KvTextLink.stories.js +0 -51
  776. package/dist/components/stories/KvThemeProvider.stories.js +0 -212
  777. package/dist/components/stories/KvToast.stories.js +0 -111
  778. package/dist/components/stories/KvTooltip.stories.js +0 -26
  779. package/dist/components/stories/KvTreeMapChart.stories.js +0 -42
  780. package/dist/components/stories/KvUserAvatar.stories.js +0 -47
  781. package/dist/components/stories/KvVerticalCarousel.stories.js +0 -294
  782. package/dist/components/stories/KvVotingCard.stories.js +0 -33
  783. package/dist/components/stories/KvVotingCardV2.stories.js +0 -89
  784. package/dist/components/stories/KvWideLoanCard.stories.js +0 -278
  785. package/dist/components/stories/StyleguidePrimitives.stories.js +0 -498
  786. package/dist/components/stories/StyleguideProse.stories.js +0 -271
  787. package/dist/data/countries-borders.json +0 -1
  788. package/dist/data/ne_110m_admin_0_countries.json +0 -1
  789. package/dist/utils/Alea.cjs +0 -87
  790. package/dist/utils/attrs.cjs +0 -50
  791. package/dist/utils/carousels.cjs +0 -220
  792. package/dist/utils/chunk-3HK4G4NT.js +0 -27
  793. package/dist/utils/chunk-55HF2ORX.js +0 -201
  794. package/dist/utils/chunk-AY3PR5S4.js +0 -54
  795. package/dist/utils/chunk-B5J5WLAH.js +0 -18
  796. package/dist/utils/chunk-GPSH6OPA.js +0 -64
  797. package/dist/utils/chunk-HIY5IW65.js +0 -28
  798. package/dist/utils/chunk-HV3AUBFT.js +0 -15
  799. package/dist/utils/chunk-MSMZIN54.js +0 -110
  800. package/dist/utils/chunk-OXJCCNNW.js +0 -30
  801. package/dist/utils/chunk-S3MABILA.js +0 -22
  802. package/dist/utils/chunk-TR3NWLTZ.js +0 -184
  803. package/dist/utils/chunk-VIGEMAKO.js +0 -249
  804. package/dist/utils/chunk-YCNMJ4YV.js +0 -37
  805. package/dist/utils/chunk-YFEC5ODJ.js +0 -129
  806. package/dist/utils/expander.cjs +0 -78
  807. package/dist/utils/imageUtils.cjs +0 -54
  808. package/dist/utils/index.cjs +0 -1154
  809. package/dist/utils/index.js +0 -166
  810. package/dist/utils/loanCard.cjs +0 -222
  811. package/dist/utils/loanUtils.cjs +0 -170
  812. package/dist/utils/mapUtils.cjs +0 -276
  813. package/dist/utils/printing.cjs +0 -42
  814. package/dist/utils/scrollLock.cjs +0 -54
  815. package/dist/utils/throttle.cjs +0 -38
  816. package/dist/utils/touchEvents.cjs +0 -47
  817. package/dist/utils/treemap.cjs +0 -133
  818. package/jest.config.cjs +0 -47
  819. package/postcss.config.cjs +0 -6
  820. package/tailwind.config.cjs +0 -64
  821. package/tests/fixtures/mockCommentsData.js +0 -36
  822. package/tests/fixtures/mockLenderCountries.js +0 -674
  823. package/tests/unit/.eslintrc +0 -5
  824. package/tests/unit/jest-setup.js +0 -5
  825. package/tests/unit/specs/components/KvButton.spec.js +0 -92
  826. package/tests/unit/specs/components/KvCarousel.spec.js +0 -78
  827. package/tests/unit/specs/components/KvCheckbox.spec.js +0 -109
  828. package/tests/unit/specs/components/KvClassicLoanCard.spec.js +0 -201
  829. package/tests/unit/specs/components/KvCommentsAdd.spec.js +0 -108
  830. package/tests/unit/specs/components/KvCommentsContainer.spec.js +0 -40
  831. package/tests/unit/specs/components/KvCommentsHeartButton.spec.js +0 -32
  832. package/tests/unit/specs/components/KvCommentsList.spec.js +0 -83
  833. package/tests/unit/specs/components/KvCommentsListItem.spec.js +0 -120
  834. package/tests/unit/specs/components/KvCommentsReplyButton.spec.js +0 -23
  835. package/tests/unit/specs/components/KvExpandableQuestion.spec.js +0 -55
  836. package/tests/unit/specs/components/KvLendAmountButton.spec.js +0 -36
  837. package/tests/unit/specs/components/KvLightbox.spec.js +0 -14
  838. package/tests/unit/specs/components/KvLineGraph.spec.js +0 -58
  839. package/tests/unit/specs/components/KvLoanProgressGroup.spec.js +0 -50
  840. package/tests/unit/specs/components/KvPagination.spec.js +0 -132
  841. package/tests/unit/specs/components/KvProgressBar.spec.js +0 -11
  842. package/tests/unit/specs/components/KvRadio.spec.js +0 -184
  843. package/tests/unit/specs/components/KvSelect.spec.js +0 -113
  844. package/tests/unit/specs/components/KvSwitch.spec.js +0 -120
  845. package/tests/unit/specs/components/KvTabPanel.spec.js +0 -32
  846. package/tests/unit/specs/components/KvTabs.spec.js +0 -167
  847. package/tests/unit/specs/components/KvTextInput.spec.js +0 -151
  848. package/tests/unit/specs/components/KvTextLink.spec.js +0 -53
  849. package/tests/unit/specs/components/KvToast.spec.js +0 -11
  850. package/tests/unit/specs/components/KvWideLoanCard.spec.js +0 -136
  851. package/tests/unit/specs/utils/imageUtils.spec.js +0 -29
  852. package/tests/unit/specs/utils/loanUtils.spec.js +0 -437
  853. package/tests/unit/specs/utils/mapUtils.spec.js +0 -72
  854. package/tests/unit/specs/utils/treemap.spec.js +0 -248
  855. package/tests/unit/utils/addVueRouter.js +0 -18
  856. package/utils/Alea.js +0 -92
  857. package/utils/attrs.js +0 -62
  858. package/utils/carousels.js +0 -252
  859. package/utils/expander.js +0 -72
  860. package/utils/imageUtils.js +0 -43
  861. package/utils/index.js +0 -14
  862. package/utils/loanCard.js +0 -204
  863. package/utils/loanUtils.js +0 -209
  864. package/utils/mapUtils.js +0 -360
  865. package/utils/printing.js +0 -13
  866. package/utils/scrollLock.js +0 -25
  867. package/utils/themeUtils.cjs +0 -29
  868. package/utils/throttle.js +0 -11
  869. package/utils/touchEvents.js +0 -22
  870. package/utils/treemap.js +0 -138
  871. package/vue/.storybook/main.js +0 -88
  872. package/vue/.storybook/package.json +0 -3
  873. package/vue/.storybook/preview.js +0 -53
  874. package/vue/.storybook/tailwind.css +0 -5
  875. package/vue/KvAccordionItem.vue +0 -130
  876. package/vue/KvActivityRow.vue +0 -33
  877. package/vue/KvBorrowerImage.vue +0 -179
  878. package/vue/KvButton.vue +0 -288
  879. package/vue/KvCarousel.vue +0 -314
  880. package/vue/KvCartModal.vue +0 -365
  881. package/vue/KvCheckbox.vue +0 -203
  882. package/vue/KvChip.vue +0 -54
  883. package/vue/KvClassicLoanCard.vue +0 -527
  884. package/vue/KvCommentsAdd.vue +0 -135
  885. package/vue/KvCommentsContainer.vue +0 -84
  886. package/vue/KvCommentsHeartButton.vue +0 -70
  887. package/vue/KvCommentsList.vue +0 -68
  888. package/vue/KvCommentsListItem.vue +0 -241
  889. package/vue/KvCommentsReplyButton.vue +0 -52
  890. package/vue/KvContentfulImg.vue +0 -273
  891. package/vue/KvCountdownTimer.vue +0 -59
  892. package/vue/KvExpandable.vue +0 -84
  893. package/vue/KvExpandableQuestion.vue +0 -120
  894. package/vue/KvFlag.vue +0 -120
  895. package/vue/KvGrid.vue +0 -28
  896. package/vue/KvImpactDashboardHeader.vue +0 -40
  897. package/vue/KvInlineActivityCard.vue +0 -55
  898. package/vue/KvInlineActivityFeed.vue +0 -38
  899. package/vue/KvIntroductionLoanCard.vue +0 -449
  900. package/vue/KvLendAmountButton.vue +0 -65
  901. package/vue/KvLendCta.vue +0 -589
  902. package/vue/KvLightbox.vue +0 -334
  903. package/vue/KvLineGraph.vue +0 -128
  904. package/vue/KvLoadingPlaceholder.vue +0 -38
  905. package/vue/KvLoadingSpinner.vue +0 -81
  906. package/vue/KvLoanActivities.vue +0 -268
  907. package/vue/KvLoanBookmark.vue +0 -39
  908. package/vue/KvLoanCallouts.vue +0 -53
  909. package/vue/KvLoanProgressGroup.vue +0 -76
  910. package/vue/KvLoanTag.vue +0 -88
  911. package/vue/KvLoanTeamPick.vue +0 -44
  912. package/vue/KvLoanUse.vue +0 -92
  913. package/vue/KvMap.vue +0 -599
  914. package/vue/KvMaterialIcon.vue +0 -47
  915. package/vue/KvPageContainer.vue +0 -15
  916. package/vue/KvPagination.vue +0 -198
  917. package/vue/KvPieChart.vue +0 -257
  918. package/vue/KvPopper.vue +0 -178
  919. package/vue/KvProgressBar.vue +0 -149
  920. package/vue/KvRadio.vue +0 -198
  921. package/vue/KvSelect.vue +0 -114
  922. package/vue/KvSideSheet.vue +0 -196
  923. package/vue/KvSwitch.vue +0 -143
  924. package/vue/KvTab.vue +0 -90
  925. package/vue/KvTabPanel.vue +0 -64
  926. package/vue/KvTabs.vue +0 -182
  927. package/vue/KvTextInput.vue +0 -250
  928. package/vue/KvTextLink.vue +0 -138
  929. package/vue/KvThemeProvider.vue +0 -122
  930. package/vue/KvToast.vue +0 -221
  931. package/vue/KvTooltip.vue +0 -168
  932. package/vue/KvTreeMapChart.vue +0 -229
  933. package/vue/KvUserAvatar.vue +0 -132
  934. package/vue/KvVerticalCarousel.vue +0 -219
  935. package/vue/KvVotingCard.vue +0 -160
  936. package/vue/KvVotingCardV2.vue +0 -154
  937. package/vue/KvWideLoanCard.vue +0 -433
  938. package/vue/stories/Forms.stories.js +0 -62
  939. package/vue/stories/KvAccordionItem.stories.js +0 -24
  940. package/vue/stories/KvActivityRow.stories.js +0 -27
  941. package/vue/stories/KvBorrowerImage.stories.js +0 -62
  942. package/vue/stories/KvButton.stories.js +0 -142
  943. package/vue/stories/KvCarousel.stories.js +0 -489
  944. package/vue/stories/KvCartModal.stories.js +0 -51
  945. package/vue/stories/KvCheckbox.stories.js +0 -163
  946. package/vue/stories/KvChip.stories.js +0 -43
  947. package/vue/stories/KvClassicLoanCard.stories.js +0 -458
  948. package/vue/stories/KvCommentsAdd.stories.js +0 -32
  949. package/vue/stories/KvCommentsContainer.stories.js +0 -42
  950. package/vue/stories/KvCommentsHeartButton.stories.js +0 -25
  951. package/vue/stories/KvCommentsList.stories.js +0 -39
  952. package/vue/stories/KvCommentsListItem.stories.js +0 -45
  953. package/vue/stories/KvCommentsReplyButton.stories.js +0 -21
  954. package/vue/stories/KvContentfulImg.stories.js +0 -173
  955. package/vue/stories/KvCountdownTimer.stories.js +0 -31
  956. package/vue/stories/KvExpandableQuestion.stories.js +0 -129
  957. package/vue/stories/KvFlag.stories.js +0 -38
  958. package/vue/stories/KvGrid.stories.js +0 -97
  959. package/vue/stories/KvImpactDashboardHeader.stories.js +0 -22
  960. package/vue/stories/KvInlineActivityCard.stories.js +0 -69
  961. package/vue/stories/KvInlineActivityFeed.stories.js +0 -76
  962. package/vue/stories/KvIntroductionLoanCard.stories.js +0 -204
  963. package/vue/stories/KvLendAmountButton.stories.js +0 -31
  964. package/vue/stories/KvLendCta.stories.js +0 -332
  965. package/vue/stories/KvLightbox.stories.js +0 -308
  966. package/vue/stories/KvLineGraph.stories.js +0 -53
  967. package/vue/stories/KvLoadingPlaceholder.stories.js +0 -17
  968. package/vue/stories/KvLoadingSpinner.stories.js +0 -50
  969. package/vue/stories/KvLoanActivities.stories.js +0 -103
  970. package/vue/stories/KvLoanBookmark.stories.js +0 -23
  971. package/vue/stories/KvLoanCallouts.stories.js +0 -23
  972. package/vue/stories/KvLoanProgressGroup.stories.js +0 -29
  973. package/vue/stories/KvLoanTag.stories.js +0 -62
  974. package/vue/stories/KvLoanTeamPick.stories.js +0 -20
  975. package/vue/stories/KvLoanUse.stories.js +0 -54
  976. package/vue/stories/KvMap.stories.js +0 -108
  977. package/vue/stories/KvMaterialIcon.stories.js +0 -210
  978. package/vue/stories/KvPageContainer.stories.js +0 -50
  979. package/vue/stories/KvPagination.stories.js +0 -66
  980. package/vue/stories/KvPieChart.stories.js +0 -47
  981. package/vue/stories/KvProgressBar.stories.js +0 -48
  982. package/vue/stories/KvRadio.stories.js +0 -140
  983. package/vue/stories/KvSelect.stories.js +0 -125
  984. package/vue/stories/KvSideSheet.stories.js +0 -68
  985. package/vue/stories/KvSwitch.stories.js +0 -66
  986. package/vue/stories/KvTabs.stories.js +0 -106
  987. package/vue/stories/KvTextInput.stories.js +0 -194
  988. package/vue/stories/KvTextLink.stories.js +0 -51
  989. package/vue/stories/KvThemeProvider.stories.js +0 -212
  990. package/vue/stories/KvToast.stories.js +0 -111
  991. package/vue/stories/KvTooltip.stories.js +0 -26
  992. package/vue/stories/KvTreeMapChart.stories.js +0 -42
  993. package/vue/stories/KvUserAvatar.stories.js +0 -47
  994. package/vue/stories/KvVerticalCarousel.stories.js +0 -294
  995. package/vue/stories/KvVotingCard.stories.js +0 -33
  996. package/vue/stories/KvVotingCardV2.stories.js +0 -89
  997. package/vue/stories/KvWideLoanCard.stories.js +0 -278
  998. package/vue/stories/StyleguidePrimitives.stories.js +0 -498
  999. package/vue/stories/StyleguideProse.stories.js +0 -271
package/vue/KvLoanUse.vue DELETED
@@ -1,92 +0,0 @@
1
- <!-- eslint-disable vue/no-v-html -->
2
- <template>
3
- <p
4
- class="tw-line-clamp-4"
5
- v-html="loanUse"
6
- ></p>
7
- </template>
8
-
9
- <script>
10
- import numeral from 'numeral';
11
-
12
- const DIRECT = 'direct';
13
-
14
- export default {
15
- name: 'KvLoanUse',
16
- props: {
17
- anonymizationLevel: {
18
- type: String,
19
- default: 'none',
20
- },
21
- use: {
22
- type: String,
23
- default: '',
24
- },
25
- loanAmount: {
26
- type: String,
27
- default: '',
28
- },
29
- status: {
30
- type: String,
31
- default: '',
32
- },
33
- borrowerCount: {
34
- type: Number,
35
- default: 1,
36
- },
37
- name: {
38
- type: String,
39
- default: '',
40
- },
41
- distributionModel: {
42
- type: String,
43
- default: DIRECT,
44
- },
45
- whySpecial: {
46
- type: String,
47
- default: '',
48
- },
49
- hideLoanAmount: {
50
- type: Boolean,
51
- default: false,
52
- },
53
- },
54
- computed: {
55
- helpLanguage() {
56
- if (this.status === 'fundraising' || this.status === 'inactive' || this.status === 'reviewed') {
57
- return 'helps';
58
- }
59
- return 'helped';
60
- },
61
- isDirect() {
62
- return this.distributionModel === DIRECT;
63
- },
64
- whySpecialSentence() {
65
- return this.whySpecial
66
- ? ` This loan is special because ${this.whySpecial.charAt(0).toLowerCase() + this.whySpecial.slice(1)}`
67
- : '';
68
- },
69
- loanUse() {
70
- if (this.anonymizationLevel === 'full' || this.use.length === 0) {
71
- return 'For the borrower\'s privacy, this loan has been made anonymous.';
72
- }
73
-
74
- if (this.hideLoanAmount) {
75
- return `Help <span class="data-hj-suppress">${this.name}</span> `
76
- + `${this.use.charAt(0).toLowerCase() + this.use.slice(1)} `
77
- + `${this.whySpecialSentence}`;
78
- }
79
-
80
- const isGroup = this.borrowerCount > 1;
81
-
82
- return `${numeral(this.loanAmount).format('$0,0')} `
83
- + `${this.isDirect ? 'to' : this.helpLanguage} `
84
- + `${isGroup ? 'a member of ' : ''}`
85
- + `<span class="data-hj-suppress">${this.name}</span> `
86
- + `${this.isDirect ? `${this.helpLanguage} ` : ''}`
87
- + `${this.use.charAt(0).toLowerCase() + this.use.slice(1)}`
88
- + `${this.whySpecialSentence}`;
89
- },
90
- },
91
- };
92
- </script>
package/vue/KvMap.vue DELETED
@@ -1,599 +0,0 @@
1
- <template>
2
- <div
3
- class="tw-relative tw-block tw-w-full"
4
- :style="mapDimensions"
5
- >
6
- <div
7
- :id="`kv-map-holder-${mapId}`"
8
- :ref="refString"
9
- class="tw-w-full tw-h-full tw-bg-black"
10
- :style="{ position: 'absolute' }"
11
- ></div>
12
- </div>
13
- </template>
14
-
15
- <script>
16
- import kvTokensPrimitives from '@kiva/kv-tokens/primitives.json';
17
- import { animationCoordinator, generateMapMarkers, getCountryColor } from '../utils/mapUtils';
18
-
19
- export default {
20
- name: 'KvMap',
21
- props: {
22
- /**
23
- * Aspect Ration for computed map dimensions
24
- * We'll divide the container width by this to determine the height
25
- */
26
- aspectRatio: {
27
- type: Number,
28
- default: 1,
29
- },
30
- /**
31
- * Control how quickly the autoZoom occurs
32
- */
33
- autoZoomDelay: {
34
- type: Number,
35
- default: 1500,
36
- },
37
- /**
38
- * Set the height to override aspect ratio driven and/or default dimensions
39
- */
40
- height: {
41
- type: Number,
42
- default: null,
43
- },
44
- /**
45
- * Setting this initialZoom will zoom the map from initialZoom to zoom when the map enters the viewport
46
- */
47
- initialZoom: {
48
- type: Number,
49
- default: null,
50
- },
51
- /**
52
- * Set the center point latitude
53
- */
54
- lat: {
55
- type: Number,
56
- default: null,
57
- },
58
- /**
59
- * Set the center point longitude
60
- */
61
- long: {
62
- type: Number,
63
- default: null,
64
- },
65
- /**
66
- * Set this if there are more than one map on the page
67
- */
68
- mapId: {
69
- type: Number,
70
- default: 0,
71
- },
72
- /**
73
- * Force use of Leaflet
74
- */
75
- useLeaflet: {
76
- type: Boolean,
77
- default: false,
78
- },
79
- /**
80
- * Set the width to override aspect ratio driven and/or default dimensions
81
- */
82
- width: {
83
- type: Number,
84
- default: null,
85
- },
86
- /**
87
- * Default zoom level
88
- */
89
- zoomLevel: {
90
- type: Number,
91
- default: 4,
92
- },
93
- /**
94
- * Borrower points object.
95
- * If this object is present, the advanced animation will be triggered
96
- * Sample object:
97
- * {
98
- borrowerPoints: [
99
- {
100
- image: 'https://www-kiva-org.freetls.fastly.net/img/w80h80fz50/e60a3d61ff052d60991c5d6bbf4a45d3.jpg',
101
- location: [-77.032, 38.913],
102
- },
103
- {
104
- image: 'https://www-kiva-org.freetls.fastly.net/img/w80h80fz50/6101929097c6e5de48232a4d1ae3b71c.jpg',
105
- location: [41.402, 7.160],
106
- },
107
- {
108
- image: 'https://www-kiva-org.freetls.fastly.net/img/w80h80fz50/11e018ee3d8b9c5adee459c16a29d264.jpg',
109
- location: [-73.356596, 3.501],
110
- },
111
- ],
112
- * }
113
- */
114
- advancedAnimation: {
115
- type: Object,
116
- required: false,
117
- default: () => ({}),
118
- },
119
- /**
120
- * Show the zoom control
121
- */
122
- showZoomControl: {
123
- type: Boolean,
124
- default: false,
125
- },
126
- /**
127
- * Allow dragging of the map
128
- */
129
- allowDragging: {
130
- type: Boolean,
131
- default: false,
132
- },
133
- /**
134
- * Show labels on the map
135
- * Working for leaflet only
136
- */
137
- showLabels: {
138
- type: Boolean,
139
- default: true,
140
- },
141
- /**
142
- * Lender data for the map
143
- * Working for leaflet only
144
- */
145
- countriesData: {
146
- type: Array,
147
- default: () => ([]),
148
- },
149
- /**
150
- * Show fundraising loans
151
- * Working for leaflet only
152
- */
153
- showFundraisingLoans: {
154
- type: Boolean,
155
- default: false,
156
- },
157
- },
158
- data() {
159
- return {
160
- hasWebGL: false,
161
- leafletReady: false,
162
- mapInstance: null,
163
- mapLibreReady: false,
164
- mapLoaded: false,
165
- zoomActive: false,
166
- countriesBorders: {},
167
- };
168
- },
169
- computed: {
170
- mapDimensions() {
171
- // Use container to derive height based on aspect ration + width
172
- const container = this.$el?.getBoundingClientRect();
173
- const height = container ? `${container.width / this.aspectRatio}px` : '300px';
174
- const width = container ? `${container.width}px` : '100%';
175
- // Override values if deliberate height or width are provided
176
- return {
177
- height: this.height ? `${this.height}px` : height,
178
- width: this.width ? `${this.width}px` : width,
179
- paddingBottom: this.height ? `${this.height}px` : `${100 / this.aspectRatio}%`,
180
- };
181
- },
182
- refString() {
183
- return `mapholder${this.mapId}`;
184
- },
185
- },
186
- watch: {
187
- lat(next, prev) {
188
- if (prev === null && this.long && !this.mapLibreReady && !this.leafletReady) {
189
- this.initializeMap();
190
- }
191
- },
192
- long(next, prev) {
193
- if (prev === null && this.lat && !this.mapLibreReady && !this.leafletReady) {
194
- this.initializeMap();
195
- }
196
- },
197
- showFundraisingLoans() {
198
- if (this.mapInstance) {
199
- this.mapInstance.remove();
200
- this.initializeLeaflet();
201
- }
202
- },
203
- },
204
- async mounted() {
205
- if (this.countriesData) {
206
- // current source data is from https://geojson.xyz/ under "admin 0 countries"
207
- // https://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_110m_admin_0_countries.geojson
208
- this.countriesBorders = await import('../data/ne_110m_admin_0_countries.json');
209
- }
210
-
211
- if (!this.mapLibreReady && !this.leafletReady) {
212
- this.initializeMap();
213
- }
214
- },
215
- beforeDestroy() {
216
- if (this.mapInstance) {
217
- if (!this.hasWebGL && !this.leafletReady) {
218
- // turn off the leaflet instance
219
- this.mapInstance.off();
220
- }
221
- // remove either leaflet or maplibregl
222
- this.mapInstance.remove();
223
- }
224
- this.destroyWrapperObserver();
225
- },
226
- methods: {
227
- activateZoom(zoomOut = false) {
228
- const { mapInstance, hasWebGL, mapLibreReady } = this;
229
- const currentZoomLevel = mapInstance.getZoom();
230
- // exit if already zoomed in (getZoom() works for both leaflet + maplibregl)
231
- if ((!zoomOut && currentZoomLevel === this.zoomLevel)
232
- || (zoomOut && currentZoomLevel === this.initialZoom)) return false;
233
-
234
- this.zoomActive = true;
235
- // establish delayed zoom duration
236
- const timedZoom = window.setTimeout(() => {
237
- if (hasWebGL && mapLibreReady) {
238
- // maplibregl specific zoom method
239
- mapInstance.zoomTo(
240
- zoomOut ? this.initialZoom : this.zoomLevel,
241
- { duration: 1200 },
242
- );
243
- } else {
244
- // leaflet specific zoom method
245
- mapInstance.setZoom(zoomOut ? this.initialZoom : this.zoomLevel);
246
- }
247
-
248
- clearTimeout(timedZoom);
249
- this.zoomActive = false;
250
- }, this.autoZoomDelay);
251
- },
252
- createWrapperObserver() {
253
- // Watch for the wrapper element moving in and out of the viewport
254
- this.wrapperObserver = this.createIntersectionObserver({
255
- targets: [this.$refs?.[this.refString]],
256
- callback: (entries) => {
257
- // only activate autoZoom if we have an initialZoom set
258
- entries.forEach((entry) => {
259
- if (entry.target === this.$refs?.[this.refString] && !this.zoomActive) {
260
- if (entry.intersectionRatio > 0) {
261
- // activate zoom
262
- if (this.initialZoom !== null) {
263
- this.activateZoom();
264
- }
265
- // animate map
266
- if (this.advancedAnimation?.borrowerPoints) {
267
- this.animateMap();
268
- }
269
- }
270
- }
271
- });
272
- },
273
- });
274
- },
275
- destroyWrapperObserver() {
276
- if (this.wrapperObserver) {
277
- this.wrapperObserver.disconnect();
278
- }
279
- },
280
- checkWebGL() {
281
- // exit and use leaflet if specified or document isn't present
282
- if (this.useLeaflet || typeof document === 'undefined') return false;
283
- // via. https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/By_example/Detect_WebGL
284
- // Create canvas element. The canvas is not added to the document itself,
285
- // so it is never displayed in the browser window.
286
- const canvas = document.createElement('canvas');
287
- // Get WebGLRenderingContext from canvas element.
288
- const gl = canvas.getContext('webgl')
289
- || canvas.getContext('experimental-webgl');
290
- // Report the result.
291
- if (gl && gl instanceof WebGLRenderingContext) {
292
- this.hasWebGL = true;
293
- return true;
294
- }
295
- return false;
296
- },
297
- initializeMap() {
298
- /**
299
- * This initial checkWebGL() call kicks off the library asset inclusion
300
- * We then start polling for the readiness of our selected map library and initialize it once ready
301
- */
302
- const mapScript = document.createElement('script');
303
- const mapStyle = document.createElement('link');
304
- mapScript.setAttribute('async', true);
305
- mapScript.setAttribute('defer', true);
306
- mapStyle.setAttribute('rel', 'stylesheet');
307
- if (this.checkWebGL()) {
308
- mapScript.setAttribute('vmid', `maplibregljs${this.mapId}`);
309
- mapStyle.setAttribute('vmid', `maplibreglcss${this.mapId}`);
310
- mapScript.setAttribute('src', 'https://unpkg.com/maplibre-gl@latest/dist/maplibre-gl.js');
311
- mapStyle.setAttribute('href', 'https://unpkg.com/maplibre-gl@latest/dist/maplibre-gl.css');
312
-
313
- this.testDelayedGlobalLibrary('maplibregl').then((response) => {
314
- if (response.loaded && !this.mapLoaded && !this.useLeaflet && this.lat && this.long) {
315
- this.initializeMapLibre();
316
- this.mapLibreReady = true;
317
- }
318
- });
319
- } else {
320
- mapScript.setAttribute('vmid', `leafletjs${this.mapId}`);
321
- mapStyle.setAttribute('vmid', `leaftletcss${this.mapId}`);
322
- mapScript.setAttribute('src', 'https://unpkg.com/leaflet@1.9.4/dist/leaflet.js');
323
- mapStyle.setAttribute('href', 'https://unpkg.com/leaflet@1.9.4/dist/leaflet.css');
324
-
325
- this.testDelayedGlobalLibrary('L').then((leafletTest) => {
326
- if (leafletTest.loaded && !this.mapLoaded && this.lat && this.long) {
327
- this.initializeLeaflet();
328
- this.leafletReady = true;
329
- }
330
- });
331
- }
332
- document.head.appendChild(mapScript);
333
- document.head.appendChild(mapStyle);
334
- },
335
- initializeLeaflet() {
336
- /* eslint-disable no-undef, max-len */
337
- // Initialize primary mapInstance
338
- this.mapInstance = L.map(`kv-map-holder-${this.mapId}`, {
339
- center: [this.lat, this.long],
340
- zoom: this.initialZoom || this.zoomLevel,
341
- // todo make props for the following options
342
- dragging: this.allowDragging,
343
- zoomControl: this.showZoomControl,
344
- animate: true,
345
- scrollWheelZoom: false,
346
- doubleClickZoom: false,
347
- attributionControl: false,
348
- });
349
- /* eslint-disable quotes */
350
- // Add our tileset to the mapInstance
351
- let tileLayer = 'https://api.maptiler.com/maps/landscape/{z}/{x}/{y}.png?key=n1Mz5ziX3k6JfdjFe7mx';
352
- if (this.showLabels) {
353
- tileLayer = 'https://api.maptiler.com/maps/bright/{z}/{x}/{y}.png?key=n1Mz5ziX3k6JfdjFe7mx';
354
- }
355
- L.tileLayer(tileLayer, {
356
- tileSize: 512,
357
- zoomOffset: -1,
358
- minZoom: 1,
359
- crossOrigin: true,
360
- }).addTo(this.mapInstance);
361
-
362
- if (this.countriesData.length > 0) {
363
- L.geoJson(
364
- this.getCountriesData(),
365
- {
366
- style: this.countryStyle,
367
- onEachFeature: this.onEachCountryFeature,
368
- },
369
- ).addTo(this.mapInstance);
370
-
371
- this.countriesData.forEach((country) => {
372
- if (country.numLoansFundraising > 0 && this.showFundraisingLoans) {
373
- const circle = L.circle([country.lat, country.long], {
374
- color: kvTokensPrimitives.colors.black,
375
- weight: 1,
376
- fillColor: kvTokensPrimitives.colors.brand[900],
377
- fillOpacity: 1,
378
- radius: 130000,
379
- }).addTo(this.mapInstance);
380
-
381
- const tooltipText = `Click to see ${country.numLoansFundraising} fundraising loans in ${country.label}`;
382
- circle.bindTooltip(tooltipText);
383
-
384
- circle.on('click', () => {
385
- this.circleMapClicked(country.isoCode);
386
- });
387
- }
388
- });
389
- }
390
- /* eslint-enable quotes */
391
- /* eslint-enable no-undef, max-len */
392
-
393
- // signify map has loaded
394
- this.mapLoaded = true;
395
- // only activate autoZoom if we have an initialZoom set
396
- if (this.initialZoom !== null) {
397
- this.createWrapperObserver();
398
- }
399
- },
400
- initializeMapLibre() {
401
- // Initialize primary mapInstance
402
- /* eslint-disable no-undef */
403
- let tileLayer = 'https://api.maptiler.com/maps/landscape/style.json?key=n1Mz5ziX3k6JfdjFe7mx';
404
- if (this.showLabels) {
405
- tileLayer = 'https://api.maptiler.com/maps/bright/style.json?key=n1Mz5ziX3k6JfdjFe7mx';
406
- }
407
-
408
- this.mapInstance = new maplibregl.Map({
409
- container: `kv-map-holder-${this.mapId}`,
410
- style: tileLayer,
411
- center: [this.long, this.lat],
412
- zoom: this.initialZoom || this.zoomLevel,
413
- attributionControl: false,
414
- dragPan: this.allowDragging,
415
- scrollZoom: false,
416
- doubleClickZoom: false,
417
- dragRotate: false,
418
- });
419
-
420
- if (this.showZoomControl) {
421
- this.mapInstance.addControl(new maplibregl.NavigationControl());
422
- }
423
-
424
- this.mapInstance.on('load', () => {
425
- // signify map has loaded
426
- this.mapLoaded = true;
427
- // Create wrapper observer to watch for map entering viewport
428
- if (this.initialZoom !== null || this.advancedAnimation?.borrowerPoints) {
429
- this.createWrapperObserver();
430
- }
431
- });
432
- /* eslint-enable no-undef */
433
- },
434
- animateMap() {
435
- // remove country labels
436
- this.mapInstance.style.stylesheet.layers.forEach((layer) => {
437
- if (layer.type === 'symbol') {
438
- this.mapInstance.removeLayer(layer.id);
439
- }
440
- });
441
- // generate map markers for borrower points
442
- generateMapMarkers(this.mapInstance, this.advancedAnimation.borrowerPoints);
443
-
444
- // wait 500 ms before calling the animation coordinator promise
445
- // to allow the map to scroll into view
446
- setTimeout(() => {
447
- animationCoordinator(this.mapInstance, this.advancedAnimation.borrowerPoints)
448
- .then(() => {
449
- // when animation is complete reset map to component properties
450
- this.mapInstance.dragPan.enable();
451
- this.mapInstance.scrollZoom.enable();
452
- this.mapInstance.scrollZoom.enable();
453
- this.mapInstance.easeTo({
454
- center: [this.long, this.lat],
455
- zoom: this.initialZoom || this.zoomLevel,
456
- });
457
- });
458
- }, 500);
459
- },
460
- checkIntersectionObserverSupport() {
461
- if (typeof window === 'undefined'
462
- || !('IntersectionObserver' in window)
463
- || !('IntersectionObserverEntry' in window)
464
- || !('intersectionRatio' in window.IntersectionObserverEntry.prototype)) {
465
- return false;
466
- }
467
- return true;
468
- },
469
- createIntersectionObserver({ callback, options, targets } = {}) {
470
- if (this.checkIntersectionObserverSupport()) {
471
- const observer = new IntersectionObserver(callback, options);
472
- targets.forEach((target) => observer.observe(target));
473
- return observer;
474
- }
475
- },
476
- testDelayedGlobalLibrary(library, timeout = 3000) {
477
- // return a promise
478
- return new Promise((resolve, reject) => {
479
- if (typeof window === 'undefined') {
480
- reject(new Error('window object not available'));
481
- }
482
- // establish timeout to limit time until promise resolution
483
- let readyStateTimeout;
484
- // establish interval to check for library presence
485
- const readyStateInterval = window.setInterval(() => {
486
- // determine if library is present on window
487
- if (typeof window[library] !== 'undefined') {
488
- // cleanup timers
489
- clearInterval(readyStateInterval);
490
- clearTimeout(readyStateTimeout);
491
- // resolve the promise
492
- resolve({ loaded: true });
493
- }
494
- }, 100);
495
-
496
- // activate timeout
497
- readyStateTimeout = window.setTimeout(() => {
498
- // clean up interval and timeout
499
- clearInterval(readyStateInterval);
500
- clearTimeout(readyStateTimeout);
501
- // resolve the promise
502
- resolve({ loaded: false });
503
- }, timeout);
504
- });
505
- },
506
- getCountriesData() {
507
- const countriesFeatures = this.countriesBorders.features ?? [];
508
-
509
- countriesFeatures.forEach((country, index) => {
510
- const countryData = this.countriesData.find((data) => data.isoCode === country.properties.iso_a2);
511
- if (countryData) {
512
- countriesFeatures[index].lenderLoans = countryData.value;
513
- countriesFeatures[index].numLoansFundraising = countryData.numLoansFundraising;
514
- }
515
- });
516
-
517
- return this.countriesBorders;
518
- },
519
- countryStyle(feature) {
520
- return {
521
- color: kvTokensPrimitives.colors.white,
522
- fillColor: getCountryColor(feature.lenderLoans, this.countriesData, kvTokensPrimitives),
523
- weight: 1,
524
- fillOpacity: 1,
525
- };
526
- },
527
- onEachCountryFeature(feature, layer) {
528
- const loansString = feature.lenderLoans
529
- ? `${feature.lenderLoans} loan${feature.lenderLoans > 1 ? 's' : ''}`
530
- : '0 loans';
531
- const countryString = `${feature.properties.name} <br/> ${loansString}`;
532
-
533
- layer.bindTooltip(countryString, {
534
- sticky: true,
535
- });
536
-
537
- layer.on({
538
- mouseover: this.highlightFeature,
539
- mouseout: this.resetHighlight,
540
- });
541
- },
542
- highlightFeature(e) {
543
- const layer = e.target;
544
-
545
- layer.setStyle({
546
- fillColor: kvTokensPrimitives.colors.gray[500],
547
- });
548
- },
549
- resetHighlight(e) {
550
- const layer = e.target;
551
- const { feature } = layer;
552
-
553
- layer.setStyle({
554
- fillColor: getCountryColor(feature.lenderLoans, this.countriesData, kvTokensPrimitives),
555
- });
556
- },
557
- circleMapClicked(countryIso) {
558
- this.$emit('country-lend-filter', countryIso);
559
- },
560
- },
561
- };
562
- </script>
563
-
564
- <style>
565
- /* Styles for animation map markers defined in @kiva/kv-components/utils/mapAnimation.js */
566
- .map-marker {
567
- margin-top: -77px;
568
- margin-left: 35px;
569
- display: block;
570
- border: none;
571
- border-radius: 50%;
572
- cursor: pointer;
573
- padding: 0;
574
- }
575
-
576
- .map-marker::after {
577
- content: '';
578
- position: absolute;
579
- top: -8px;
580
- left: -8px;
581
- right: -8px;
582
- bottom: -8px;
583
- border-radius: 50%;
584
- border: 4px solid #000;
585
- }
586
-
587
- .map-marker::before {
588
- content: "";
589
- width: 0;
590
- height: 0;
591
- left: -13px;
592
- bottom: -32px;
593
- border: 9px solid transparent;
594
- border-left: 40px solid #000;
595
- transform: rotate(114deg);
596
- position: absolute;
597
- z-index: -1;
598
- }
599
- </style>