@kiva/kv-components 7.6.3 → 8.0.1

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 (336) hide show
  1. package/.eslintignore +5 -0
  2. package/.github/copilot-instructions.md +11 -0
  3. package/AGENTS.md +184 -0
  4. package/CLAUDE.md +11 -0
  5. package/GEMINI.md +11 -0
  6. package/dist/index.d.ts +3 -0
  7. package/dist/index.js +236 -216
  8. package/dist/utils/Alea.d.ts +9 -0
  9. package/dist/utils/Alea.js +23 -23
  10. package/dist/utils/arrayUtils.d.ts +3 -0
  11. package/dist/utils/arrayUtils.js +1 -1
  12. package/dist/utils/attrs.d.ts +6 -0
  13. package/dist/utils/carousels.d.ts +21 -0
  14. package/dist/utils/comparators.d.ts +3 -0
  15. package/dist/utils/comparators.js +20 -6
  16. package/dist/utils/debounce.d.ts +1 -0
  17. package/dist/utils/debounce.js +4 -4
  18. package/dist/utils/event.d.ts +1 -0
  19. package/dist/utils/event.js +7 -0
  20. package/dist/utils/expander.d.ts +14 -0
  21. package/dist/utils/imageUtils.d.ts +11 -0
  22. package/dist/utils/imageUtils.js +12 -12
  23. package/dist/utils/index.d.ts +21 -0
  24. package/dist/utils/loanCard.d.ts +35 -0
  25. package/dist/utils/loanCard.js +2 -2
  26. package/dist/utils/loanSearch/queryParamUtils.d.ts +1 -0
  27. package/dist/utils/loanUtils.d.ts +11 -0
  28. package/dist/utils/loanUtils.js +56 -53
  29. package/dist/utils/mapUtils.d.ts +5 -0
  30. package/dist/utils/markMatches.d.ts +1 -0
  31. package/dist/utils/paramCase.d.ts +1 -0
  32. package/dist/utils/printing.d.ts +2 -0
  33. package/dist/utils/scrollLock.d.ts +4 -0
  34. package/dist/utils/themeUtils.d.ts +12 -0
  35. package/dist/utils/throttle.d.ts +1 -0
  36. package/dist/utils/throttle.js +4 -4
  37. package/dist/utils/touchEvents.d.ts +3 -0
  38. package/dist/utils/touchEvents.js +9 -9
  39. package/dist/utils/treemap.d.ts +16 -0
  40. package/dist/utils/treemap.js +1 -1
  41. package/dist/vue/KvAccordionItem.js +28 -82
  42. package/dist/vue/KvAccordionItem.vue.d.ts +107 -0
  43. package/dist/vue/KvAccordionItem2.js +60 -0
  44. package/dist/vue/KvActivityRow.js +11 -22
  45. package/dist/vue/KvActivityRow.vue.d.ts +66 -0
  46. package/dist/vue/KvActivityRow2.js +16 -0
  47. package/dist/vue/KvAtbModal.css +1 -1
  48. package/dist/vue/KvAtbModal.js +68 -248
  49. package/dist/vue/KvAtbModal.vue.d.ts +359 -0
  50. package/dist/vue/KvAtbModal2.js +186 -0
  51. package/dist/vue/KvBorrowerImage.js +17 -118
  52. package/dist/vue/KvBorrowerImage.vue.d.ts +62 -0
  53. package/dist/vue/KvBorrowerImage2.js +106 -0
  54. package/dist/vue/KvButton.js +20 -164
  55. package/dist/vue/KvButton.vue.d.ts +94 -0
  56. package/dist/vue/KvButton2.js +149 -0
  57. package/dist/vue/KvCardFrame.js +12 -74
  58. package/dist/vue/KvCardFrame.vue.d.ts +86 -0
  59. package/dist/vue/KvCardFrame2.js +67 -0
  60. package/dist/vue/KvCarousel.css +1 -1
  61. package/dist/vue/KvCarousel.js +55 -192
  62. package/dist/vue/KvCarousel.vue.d.ts +135 -0
  63. package/dist/vue/KvCarousel2.js +142 -0
  64. package/dist/vue/KvCartModal.css +1 -1
  65. package/dist/vue/KvCartModal.js +31 -131
  66. package/dist/vue/KvCartModal.vue.d.ts +163 -0
  67. package/dist/vue/KvCartModal2.js +106 -0
  68. package/dist/vue/KvCartPill.js +12 -51
  69. package/dist/vue/KvCartPill.vue.d.ts +52 -0
  70. package/dist/vue/KvCartPill2.js +45 -0
  71. package/dist/vue/KvCheckbox.css +1 -1
  72. package/dist/vue/KvCheckbox.js +30 -126
  73. package/dist/vue/KvCheckbox.vue.d.ts +90 -0
  74. package/dist/vue/KvCheckbox2.js +102 -0
  75. package/dist/vue/KvCheckoutReceipt.css +1 -1
  76. package/dist/vue/KvCheckoutReceipt.js +120 -199
  77. package/dist/vue/KvCheckoutReceipt.vue.d.ts +164 -0
  78. package/dist/vue/KvCheckoutReceipt2.js +85 -0
  79. package/dist/vue/KvChip.js +12 -29
  80. package/dist/vue/KvChip.vue.d.ts +22 -0
  81. package/dist/vue/KvChip2.js +22 -0
  82. package/dist/vue/KvClassicLoanCard.css +1 -1
  83. package/dist/vue/KvClassicLoanCard.js +83 -351
  84. package/dist/vue/KvClassicLoanCard.vue.d.ts +2120 -0
  85. package/dist/vue/KvClassicLoanCard2.js +281 -0
  86. package/dist/vue/KvCommentsAdd.css +1 -1
  87. package/dist/vue/KvCommentsAdd.js +34 -81
  88. package/dist/vue/KvCommentsAdd.vue.d.ts +296 -0
  89. package/dist/vue/KvCommentsAdd2.js +57 -0
  90. package/dist/vue/KvCommentsContainer.js +15 -66
  91. package/dist/vue/KvCommentsContainer.vue.d.ts +954 -0
  92. package/dist/vue/KvCommentsContainer2.js +58 -0
  93. package/dist/vue/KvCommentsHeartButton.css +1 -1
  94. package/dist/vue/KvCommentsHeartButton.js +12 -51
  95. package/dist/vue/KvCommentsHeartButton.vue.d.ts +42 -0
  96. package/dist/vue/KvCommentsHeartButton2.js +44 -0
  97. package/dist/vue/KvCommentsList.js +9 -51
  98. package/dist/vue/KvCommentsList.vue.d.ts +619 -0
  99. package/dist/vue/KvCommentsList2.js +46 -0
  100. package/dist/vue/KvCommentsListItem.js +62 -186
  101. package/dist/vue/KvCommentsListItem.vue.d.ts +571 -0
  102. package/dist/vue/KvCommentsListItem2.js +135 -0
  103. package/dist/vue/KvCommentsReplyButton.css +1 -1
  104. package/dist/vue/KvCommentsReplyButton.js +8 -17
  105. package/dist/vue/KvCommentsReplyButton.vue.d.ts +98 -0
  106. package/dist/vue/KvCommentsReplyButton2.js +13 -0
  107. package/dist/vue/KvCompactLoanCard.css +1 -1
  108. package/dist/vue/KvCompactLoanCard.js +71 -327
  109. package/dist/vue/KvCompactLoanCard.vue.d.ts +1272 -0
  110. package/dist/vue/KvCompactLoanCard2.js +269 -0
  111. package/dist/vue/KvContentfulImg.js +51 -164
  112. package/dist/vue/KvContentfulImg.vue.d.ts +107 -0
  113. package/dist/vue/KvContentfulImg2.js +119 -0
  114. package/dist/vue/KvCountdownTimer.js +8 -28
  115. package/dist/vue/KvCountdownTimer.vue.d.ts +15 -0
  116. package/dist/vue/KvCountdownTimer2.js +26 -0
  117. package/dist/vue/KvDatePicker.js +21 -101
  118. package/dist/vue/KvDatePicker.vue.d.ts +58 -0
  119. package/dist/vue/KvDatePicker2.js +86 -0
  120. package/dist/vue/KvExpandable.js +9 -56
  121. package/dist/vue/KvExpandable.vue.d.ts +53 -0
  122. package/dist/vue/KvExpandable2.js +52 -0
  123. package/dist/vue/KvExpandableQuestion.js +23 -82
  124. package/dist/vue/KvExpandableQuestion.vue.d.ts +124 -0
  125. package/dist/vue/KvExpandableQuestion2.js +65 -0
  126. package/dist/vue/KvFlag.css +1 -1
  127. package/dist/vue/KvFlag.js +16 -617
  128. package/dist/vue/KvFlag.vue.d.ts +66 -0
  129. package/dist/vue/KvFlag2.js +606 -0
  130. package/dist/vue/KvGrid.js +7 -18
  131. package/dist/vue/KvGrid.vue.d.ts +14 -0
  132. package/dist/vue/KvGrid2.js +15 -0
  133. package/dist/vue/KvIconBag.js +12 -18
  134. package/dist/vue/KvIconBag.vue.d.ts +14 -0
  135. package/dist/vue/KvIconBag2.js +11 -0
  136. package/dist/vue/KvImpactDashboardHeader.vue.d.ts +17 -0
  137. package/dist/vue/KvImpactVerticalSelector.js +31 -110
  138. package/dist/vue/KvImpactVerticalSelector.vue.d.ts +278 -0
  139. package/dist/vue/KvImpactVerticalSelector2.js +85 -0
  140. package/dist/vue/KvInlineActivityCard.js +15 -44
  141. package/dist/vue/KvInlineActivityCard.vue.d.ts +71 -0
  142. package/dist/vue/KvInlineActivityCard2.js +35 -0
  143. package/dist/vue/KvInlineActivityFeed.css +1 -1
  144. package/dist/vue/KvInlineActivityFeed.js +11 -23
  145. package/dist/vue/KvInlineActivityFeed.vue.d.ts +85 -0
  146. package/dist/vue/KvInlineActivityFeed2.js +17 -0
  147. package/dist/vue/KvIntroductionLoanCard.css +1 -1
  148. package/dist/vue/KvIntroductionLoanCard.js +111 -309
  149. package/dist/vue/KvIntroductionLoanCard.vue.d.ts +617 -0
  150. package/dist/vue/KvIntroductionLoanCard2.js +209 -0
  151. package/dist/vue/KvLendAmountButton.js +9 -53
  152. package/dist/vue/KvLendAmountButton.vue.d.ts +140 -0
  153. package/dist/vue/KvLendAmountButton2.js +48 -0
  154. package/dist/vue/KvLendCta.css +1 -1
  155. package/dist/vue/KvLendCta.js +150 -530
  156. package/dist/vue/KvLendCta.vue.d.ts +583 -0
  157. package/dist/vue/KvLendCta2.js +387 -0
  158. package/dist/vue/KvLightbox.js +37 -148
  159. package/dist/vue/KvLightbox.vue.d.ts +77 -0
  160. package/dist/vue/KvLightbox2.js +117 -0
  161. package/dist/vue/KvLineGraph.js +25 -58
  162. package/dist/vue/KvLineGraph.vue.d.ts +35 -0
  163. package/dist/vue/KvLineGraph2.js +39 -0
  164. package/dist/vue/KvLoadingPlaceholder.vue.d.ts +2 -0
  165. package/dist/vue/KvLoadingSpinner.js +9 -34
  166. package/dist/vue/KvLoadingSpinner.vue.d.ts +27 -0
  167. package/dist/vue/KvLoadingSpinner2.js +29 -0
  168. package/dist/vue/KvLoanActivities.css +1 -1
  169. package/dist/vue/KvLoanActivities.js +37 -179
  170. package/dist/vue/KvLoanActivities.vue.d.ts +853 -0
  171. package/dist/vue/KvLoanActivities2.js +151 -0
  172. package/dist/vue/KvLoanBookmark.js +14 -40
  173. package/dist/vue/KvLoanBookmark.vue.d.ts +32 -0
  174. package/dist/vue/KvLoanBookmark2.js +32 -0
  175. package/dist/vue/KvLoanCallouts.css +1 -1
  176. package/dist/vue/KvLoanCallouts.js +10 -17
  177. package/dist/vue/KvLoanCallouts.vue.d.ts +18 -0
  178. package/dist/vue/KvLoanCallouts2.js +12 -0
  179. package/dist/vue/KvLoanInfoCard.js +20 -19
  180. package/dist/vue/KvLoanProgressGroup.css +1 -1
  181. package/dist/vue/KvLoanProgressGroup.js +18 -57
  182. package/dist/vue/KvLoanProgressGroup.vue.d.ts +108 -0
  183. package/dist/vue/KvLoanProgressGroup2.js +44 -0
  184. package/dist/vue/KvLoanTag.js +15 -103
  185. package/dist/vue/KvLoanTag.vue.d.ts +46 -0
  186. package/dist/vue/KvLoanTag2.js +94 -0
  187. package/dist/vue/KvLoanTeamPick.vue.d.ts +2 -0
  188. package/dist/vue/KvLoanUse.js +12 -100
  189. package/dist/vue/KvLoanUse.vue.d.ts +120 -0
  190. package/dist/vue/KvLoanUse2.js +95 -0
  191. package/dist/vue/KvLogo.vue.d.ts +2 -0
  192. package/dist/vue/KvMap.js +13 -381
  193. package/dist/vue/KvMap.vue.d.ts +213 -0
  194. package/dist/vue/KvMap2.js +376 -0
  195. package/dist/vue/KvMaterialIcon.js +10 -20
  196. package/dist/vue/KvMaterialIcon.vue.d.ts +14 -0
  197. package/dist/vue/KvMaterialIcon2.js +15 -0
  198. package/dist/vue/KvPageContainer.js +9 -8
  199. package/dist/vue/KvPageContainer.vue.d.ts +2 -0
  200. package/dist/vue/KvPageContainer2.js +4 -0
  201. package/dist/vue/KvPagination.js +38 -138
  202. package/dist/vue/KvPagination.vue.d.ts +107 -0
  203. package/dist/vue/KvPagination2.js +105 -0
  204. package/dist/vue/KvPieChart.css +1 -1
  205. package/dist/vue/KvPieChart.js +49 -128
  206. package/dist/vue/KvPieChart.vue.d.ts +47 -0
  207. package/dist/vue/KvPieChart2.js +85 -0
  208. package/dist/vue/KvPill.js +9 -19
  209. package/dist/vue/KvPill.vue.d.ts +23 -0
  210. package/dist/vue/KvPill2.js +15 -0
  211. package/dist/vue/KvPopper.js +14 -122
  212. package/dist/vue/KvPopper.vue.d.ts +80 -0
  213. package/dist/vue/KvPopper2.js +113 -0
  214. package/dist/vue/KvProgressBar.js +17 -112
  215. package/dist/vue/KvProgressBar.vue.d.ts +70 -0
  216. package/dist/vue/KvProgressBar2.js +101 -0
  217. package/dist/vue/KvPulsingDot.css +1 -1
  218. package/dist/vue/KvPulsingDot.js +11 -25
  219. package/dist/vue/KvPulsingDot.vue.d.ts +23 -0
  220. package/dist/vue/KvPulsingDot2.js +19 -0
  221. package/dist/vue/KvRadio.js +23 -106
  222. package/dist/vue/KvRadio.vue.d.ts +62 -0
  223. package/dist/vue/KvRadio2.js +89 -0
  224. package/dist/vue/KvSecondaryNav.css +1 -1
  225. package/dist/vue/KvSecondaryNav.js +46 -122
  226. package/dist/vue/KvSecondaryNav.vue.d.ts +117 -0
  227. package/dist/vue/KvSecondaryNav2.js +82 -0
  228. package/dist/vue/KvSelect.css +1 -1
  229. package/dist/vue/KvSelect.js +18 -78
  230. package/dist/vue/KvSelect.vue.d.ts +58 -0
  231. package/dist/vue/KvSelect2.js +66 -0
  232. package/dist/vue/KvSideSheet.js +44 -262
  233. package/dist/vue/KvSideSheet.vue.d.ts +136 -0
  234. package/dist/vue/KvSideSheet2.js +224 -0
  235. package/dist/vue/KvSwitch.js +23 -76
  236. package/dist/vue/KvSwitch.vue.d.ts +34 -0
  237. package/dist/vue/KvSwitch2.js +59 -0
  238. package/dist/vue/KvTab.js +15 -57
  239. package/dist/vue/KvTab.vue.d.ts +34 -0
  240. package/dist/vue/KvTab2.js +48 -0
  241. package/dist/vue/KvTabPanel.js +14 -36
  242. package/dist/vue/KvTabPanel.vue.d.ts +14 -0
  243. package/dist/vue/KvTabPanel2.js +28 -0
  244. package/dist/vue/KvTabs.js +21 -75
  245. package/dist/vue/KvTabs.vue.d.ts +22 -0
  246. package/dist/vue/KvTabs2.js +60 -0
  247. package/dist/vue/KvTextInput.js +28 -148
  248. package/dist/vue/KvTextInput.vue.d.ts +105 -0
  249. package/dist/vue/KvTextInput2.js +126 -0
  250. package/dist/vue/KvTextLink.js +13 -76
  251. package/dist/vue/KvTextLink.vue.d.ts +64 -0
  252. package/dist/vue/KvTextLink2.js +68 -0
  253. package/dist/vue/KvThemeProvider.js +8 -59
  254. package/dist/vue/KvThemeProvider.vue.d.ts +23 -0
  255. package/dist/vue/KvThemeProvider2.js +55 -0
  256. package/dist/vue/KvToast.js +32 -69
  257. package/dist/vue/KvToast.vue.d.ts +31 -0
  258. package/dist/vue/KvToast2.js +43 -0
  259. package/dist/vue/KvTooltip.css +1 -1
  260. package/dist/vue/KvTooltip.js +27 -123
  261. package/dist/vue/KvTooltip.vue.d.ts +2 -0
  262. package/dist/vue/KvTooltip2.js +103 -0
  263. package/dist/vue/KvTreeMapChart.css +1 -1
  264. package/dist/vue/KvTreeMapChart.js +28 -156
  265. package/dist/vue/KvTreeMapChart.vue.d.ts +60 -0
  266. package/dist/vue/KvTreeMapChart2.js +133 -0
  267. package/dist/vue/KvUserAvatar.js +28 -110
  268. package/dist/vue/KvUserAvatar.vue.d.ts +55 -0
  269. package/dist/vue/KvUserAvatar2.js +88 -0
  270. package/dist/vue/KvUtilityMenu.js +19 -95
  271. package/dist/vue/KvUtilityMenu.vue.d.ts +104 -0
  272. package/dist/vue/KvUtilityMenu2.js +81 -0
  273. package/dist/vue/KvVerticalCarousel.js +40 -137
  274. package/dist/vue/KvVerticalCarousel.vue.d.ts +90 -0
  275. package/dist/vue/KvVerticalCarousel2.js +103 -0
  276. package/dist/vue/KvVotingCard.css +1 -1
  277. package/dist/vue/KvVotingCard.js +31 -88
  278. package/dist/vue/KvVotingCard.vue.d.ts +249 -0
  279. package/dist/vue/KvVotingCard2.js +63 -0
  280. package/dist/vue/KvVotingCardV2.js +35 -90
  281. package/dist/vue/KvVotingCardV2.vue.d.ts +308 -0
  282. package/dist/vue/KvVotingCardV22.js +61 -0
  283. package/dist/vue/KvWideLoanCard.css +1 -1
  284. package/dist/vue/KvWideLoanCard.js +66 -274
  285. package/dist/vue/KvWideLoanCard.vue.d.ts +1191 -0
  286. package/dist/vue/KvWideLoanCard2.js +220 -0
  287. package/dist/vue/KvWwwHeader/KvHeaderAboutMenu.js +34 -38
  288. package/dist/vue/KvWwwHeader/KvHeaderAboutMenu.vue.d.ts +20 -0
  289. package/dist/vue/KvWwwHeader/KvHeaderAboutMenu2.js +9 -0
  290. package/dist/vue/KvWwwHeader/KvHeaderDropdownLink.js +20 -83
  291. package/dist/vue/KvWwwHeader/KvHeaderDropdownLink.vue.d.ts +91 -0
  292. package/dist/vue/KvWwwHeader/KvHeaderDropdownLink2.js +69 -0
  293. package/dist/vue/KvWwwHeader/KvHeaderLinkBar.css +1 -1
  294. package/dist/vue/KvWwwHeader/KvHeaderLinkBar.js +77 -248
  295. package/dist/vue/KvWwwHeader/KvHeaderLinkBar.vue.d.ts +1071 -0
  296. package/dist/vue/KvWwwHeader/KvHeaderLinkBar2.js +178 -0
  297. package/dist/vue/KvWwwHeader/KvHeaderLogo.js +8 -12
  298. package/dist/vue/KvWwwHeader/KvHeaderLogo.vue.d.ts +4 -0
  299. package/dist/vue/KvWwwHeader/KvHeaderLogo2.js +9 -0
  300. package/dist/vue/KvWwwHeader/KvHeaderMenuLink.vue.d.ts +17 -0
  301. package/dist/vue/KvWwwHeader/KvHeaderMobileMenu.css +1 -1
  302. package/dist/vue/KvWwwHeader/KvHeaderMobileMenu.js +37 -91
  303. package/dist/vue/KvWwwHeader/KvHeaderMobileMenu.vue.d.ts +162 -0
  304. package/dist/vue/KvWwwHeader/KvHeaderMobileMenu2.js +59 -0
  305. package/dist/vue/KvWwwHeader/KvHeaderMyKivaMenu.js +36 -58
  306. package/dist/vue/KvWwwHeader/KvHeaderMyKivaMenu.vue.d.ts +59 -0
  307. package/dist/vue/KvWwwHeader/KvHeaderMyKivaMenu2.js +27 -0
  308. package/dist/vue/KvWwwHeader/KvHeaderTakeActionMenu.js +20 -24
  309. package/dist/vue/KvWwwHeader/KvHeaderTakeActionMenu.vue.d.ts +20 -0
  310. package/dist/vue/KvWwwHeader/KvHeaderTakeActionMenu2.js +9 -0
  311. package/dist/vue/KvWwwHeader/LendMenu/KvLendListMenu.css +1 -1
  312. package/dist/vue/KvWwwHeader/LendMenu/KvLendListMenu.js +105 -181
  313. package/dist/vue/KvWwwHeader/LendMenu/KvLendListMenu.vue.d.ts +319 -0
  314. package/dist/vue/KvWwwHeader/LendMenu/KvLendListMenu2.js +82 -0
  315. package/dist/vue/KvWwwHeader/LendMenu/KvLendMegaMenu.css +1 -1
  316. package/dist/vue/KvWwwHeader/LendMenu/KvLendMegaMenu.js +93 -173
  317. package/dist/vue/KvWwwHeader/LendMenu/KvLendMegaMenu.vue.d.ts +166 -0
  318. package/dist/vue/KvWwwHeader/LendMenu/KvLendMegaMenu2.js +86 -0
  319. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenu.js +17 -157
  320. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenu.vue.d.ts +506 -0
  321. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenu2.js +145 -0
  322. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenuCountryList.css +1 -1
  323. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenuCountryList.js +11 -18
  324. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenuCountryList.vue.d.ts +20 -0
  325. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenuCountryList2.js +12 -0
  326. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenuSearchList.js +10 -16
  327. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenuSearchList.vue.d.ts +20 -0
  328. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenuSearchList2.js +11 -0
  329. package/dist/vue/KvWwwHeader.css +1 -1
  330. package/dist/vue/KvWwwHeader.js +35 -148
  331. package/dist/vue/KvWwwHeader.vue.d.ts +4430 -0
  332. package/dist/vue/KvWwwHeader2.js +119 -0
  333. package/dist/vue/index.d.ts +86 -0
  334. package/package.json +35 -33
  335. package/tsconfig.json +32 -0
  336. package/vite.config.ts +84 -0
@@ -0,0 +1,359 @@
1
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
2
+ modalVisible: {
3
+ type: BooleanConstructor;
4
+ default: boolean;
5
+ };
6
+ addedLoan: {
7
+ type: ObjectConstructor;
8
+ default: () => {};
9
+ };
10
+ userData: {
11
+ type: ObjectConstructor;
12
+ default: () => {};
13
+ };
14
+ photoPath: {
15
+ type: StringConstructor;
16
+ default: string;
17
+ };
18
+ milestonesNumber: {
19
+ type: NumberConstructor;
20
+ default: number;
21
+ };
22
+ showModalContent: {
23
+ type: BooleanConstructor;
24
+ default: boolean;
25
+ };
26
+ hasEverLoggedIn: {
27
+ type: BooleanConstructor;
28
+ default: boolean;
29
+ };
30
+ myKivaExperimentEnabled: {
31
+ type: BooleanConstructor;
32
+ default: boolean;
33
+ };
34
+ oneLoanAwayCategory: {
35
+ type: StringConstructor;
36
+ default: string;
37
+ };
38
+ oneLoanAwayFilteredUrl: {
39
+ type: StringConstructor;
40
+ default: string;
41
+ };
42
+ oneAwayText: {
43
+ type: StringConstructor;
44
+ default: string;
45
+ };
46
+ milestonesProgress: {
47
+ type: ObjectConstructor;
48
+ default: () => {};
49
+ };
50
+ isLoanGoal: {
51
+ type: BooleanConstructor;
52
+ default: boolean;
53
+ };
54
+ isCompletingGoal: {
55
+ type: BooleanConstructor;
56
+ default: boolean;
57
+ };
58
+ }>, {
59
+ modalPosition: import('vue').ComputedRef<{
60
+ right: string;
61
+ top: string;
62
+ }>;
63
+ basketCount: import('vue').ComputedRef<any>;
64
+ isFirstLoan: import('vue').ComputedRef<boolean>;
65
+ borrowerName: import('vue').ComputedRef<any>;
66
+ showOneAway: import('vue').ComputedRef<boolean>;
67
+ pillMsg: import('vue').ComputedRef<string>;
68
+ closeCartModal: (closedBy: any) => void;
69
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("reset-modal" | "close-redirect")[], "reset-modal" | "close-redirect", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
70
+ modalVisible: {
71
+ type: BooleanConstructor;
72
+ default: boolean;
73
+ };
74
+ addedLoan: {
75
+ type: ObjectConstructor;
76
+ default: () => {};
77
+ };
78
+ userData: {
79
+ type: ObjectConstructor;
80
+ default: () => {};
81
+ };
82
+ photoPath: {
83
+ type: StringConstructor;
84
+ default: string;
85
+ };
86
+ milestonesNumber: {
87
+ type: NumberConstructor;
88
+ default: number;
89
+ };
90
+ showModalContent: {
91
+ type: BooleanConstructor;
92
+ default: boolean;
93
+ };
94
+ hasEverLoggedIn: {
95
+ type: BooleanConstructor;
96
+ default: boolean;
97
+ };
98
+ myKivaExperimentEnabled: {
99
+ type: BooleanConstructor;
100
+ default: boolean;
101
+ };
102
+ oneLoanAwayCategory: {
103
+ type: StringConstructor;
104
+ default: string;
105
+ };
106
+ oneLoanAwayFilteredUrl: {
107
+ type: StringConstructor;
108
+ default: string;
109
+ };
110
+ oneAwayText: {
111
+ type: StringConstructor;
112
+ default: string;
113
+ };
114
+ milestonesProgress: {
115
+ type: ObjectConstructor;
116
+ default: () => {};
117
+ };
118
+ isLoanGoal: {
119
+ type: BooleanConstructor;
120
+ default: boolean;
121
+ };
122
+ isCompletingGoal: {
123
+ type: BooleanConstructor;
124
+ default: boolean;
125
+ };
126
+ }>> & Readonly<{
127
+ "onReset-modal"?: (...args: any[]) => any;
128
+ "onClose-redirect"?: (...args: any[]) => any;
129
+ }>, {
130
+ photoPath: string;
131
+ milestonesNumber: number;
132
+ modalVisible: boolean;
133
+ addedLoan: Record<string, any>;
134
+ userData: Record<string, any>;
135
+ showModalContent: boolean;
136
+ hasEverLoggedIn: boolean;
137
+ myKivaExperimentEnabled: boolean;
138
+ oneLoanAwayCategory: string;
139
+ oneLoanAwayFilteredUrl: string;
140
+ oneAwayText: string;
141
+ milestonesProgress: Record<string, any>;
142
+ isLoanGoal: boolean;
143
+ isCompletingGoal: boolean;
144
+ }, {}, {
145
+ KvCartModal: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
146
+ visible: {
147
+ type: BooleanConstructor;
148
+ default: boolean;
149
+ };
150
+ preventClose: {
151
+ type: BooleanConstructor;
152
+ default: boolean;
153
+ };
154
+ basketCount: {
155
+ type: NumberConstructor;
156
+ default: number;
157
+ };
158
+ categoryName: {
159
+ type: StringConstructor;
160
+ default: string;
161
+ };
162
+ }>, {
163
+ mdiClose: string;
164
+ mdiCheckCircle: string;
165
+ onKeyUp: any;
166
+ onScreenClick: () => void;
167
+ hide: (closedBy?: string) => void;
168
+ show: () => void;
169
+ controlsRef: import('vue').Ref<any, any>;
170
+ handleClick: (cta: any) => void;
171
+ clearAutomaticClose: () => void;
172
+ setAutomaticClose: () => void;
173
+ ctaText: import('vue').ComputedRef<string>;
174
+ showCategoryOption: import('vue').ComputedRef<boolean>;
175
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "cart-modal-closed"[], "cart-modal-closed", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
176
+ visible: {
177
+ type: BooleanConstructor;
178
+ default: boolean;
179
+ };
180
+ preventClose: {
181
+ type: BooleanConstructor;
182
+ default: boolean;
183
+ };
184
+ basketCount: {
185
+ type: NumberConstructor;
186
+ default: number;
187
+ };
188
+ categoryName: {
189
+ type: StringConstructor;
190
+ default: string;
191
+ };
192
+ }>> & Readonly<{
193
+ "onCart-modal-closed"?: (...args: any[]) => any;
194
+ }>, {
195
+ visible: boolean;
196
+ preventClose: boolean;
197
+ basketCount: number;
198
+ categoryName: string;
199
+ }, {}, {
200
+ KvMaterialIcon: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
201
+ icon: {
202
+ type: StringConstructor;
203
+ default: string;
204
+ };
205
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
206
+ icon: {
207
+ type: StringConstructor;
208
+ default: string;
209
+ };
210
+ }>> & Readonly<{}>, {
211
+ icon: string;
212
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
213
+ KvButton: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
214
+ to: {
215
+ type: (StringConstructor | ObjectConstructor)[];
216
+ default: any;
217
+ };
218
+ href: {
219
+ type: StringConstructor;
220
+ default: any;
221
+ };
222
+ type: {
223
+ type: StringConstructor;
224
+ default: string;
225
+ validator(value: string): boolean;
226
+ };
227
+ variant: {
228
+ type: StringConstructor;
229
+ default: string;
230
+ validator(value: string): boolean;
231
+ };
232
+ state: {
233
+ type: StringConstructor;
234
+ default: string;
235
+ validator(value: string): boolean;
236
+ };
237
+ }>, {
238
+ buttonRef: import('vue').Ref<any, any>;
239
+ buttonInnerRef: import('vue').Ref<any, any>;
240
+ computedClass: import('vue').ComputedRef<string>;
241
+ computedType: import('vue').ComputedRef<string>;
242
+ isDisabled: import('vue').ComputedRef<boolean>;
243
+ loadingColor: import('vue').ComputedRef<"white" | "brand" | "black">;
244
+ onClick: (event: any) => void;
245
+ tag: import('vue').ComputedRef<"button" | "router-link" | "a">;
246
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "click"[], "click", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
247
+ to: {
248
+ type: (StringConstructor | ObjectConstructor)[];
249
+ default: any;
250
+ };
251
+ href: {
252
+ type: StringConstructor;
253
+ default: any;
254
+ };
255
+ type: {
256
+ type: StringConstructor;
257
+ default: string;
258
+ validator(value: string): boolean;
259
+ };
260
+ variant: {
261
+ type: StringConstructor;
262
+ default: string;
263
+ validator(value: string): boolean;
264
+ };
265
+ state: {
266
+ type: StringConstructor;
267
+ default: string;
268
+ validator(value: string): boolean;
269
+ };
270
+ }>> & Readonly<{
271
+ onClick?: (...args: any[]) => any;
272
+ }>, {
273
+ to: string | Record<string, any>;
274
+ type: string;
275
+ href: string;
276
+ variant: string;
277
+ state: string;
278
+ }, {}, {
279
+ KvLoadingSpinner: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
280
+ size: {
281
+ type: StringConstructor;
282
+ default: string;
283
+ validator(value: string): boolean;
284
+ };
285
+ color: {
286
+ type: StringConstructor;
287
+ default: string;
288
+ validator(value: string): boolean;
289
+ };
290
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
291
+ size: {
292
+ type: StringConstructor;
293
+ default: string;
294
+ validator(value: string): boolean;
295
+ };
296
+ color: {
297
+ type: StringConstructor;
298
+ default: string;
299
+ validator(value: string): boolean;
300
+ };
301
+ }>> & Readonly<{}>, {
302
+ size: string;
303
+ color: string;
304
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
305
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
306
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
307
+ KvCartPill: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
308
+ borrowerName: {
309
+ type: StringConstructor;
310
+ default: string;
311
+ };
312
+ showBg: {
313
+ type: BooleanConstructor;
314
+ default: boolean;
315
+ };
316
+ milestonesNumber: {
317
+ type: NumberConstructor;
318
+ default: number;
319
+ };
320
+ isCloseNextMilestone: {
321
+ type: BooleanConstructor;
322
+ default: boolean;
323
+ };
324
+ customMessage: {
325
+ type: StringConstructor;
326
+ default: string;
327
+ };
328
+ }>, {
329
+ pillCopy: import('vue').ComputedRef<string>;
330
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
331
+ borrowerName: {
332
+ type: StringConstructor;
333
+ default: string;
334
+ };
335
+ showBg: {
336
+ type: BooleanConstructor;
337
+ default: boolean;
338
+ };
339
+ milestonesNumber: {
340
+ type: NumberConstructor;
341
+ default: number;
342
+ };
343
+ isCloseNextMilestone: {
344
+ type: BooleanConstructor;
345
+ default: boolean;
346
+ };
347
+ customMessage: {
348
+ type: StringConstructor;
349
+ default: string;
350
+ };
351
+ }>> & Readonly<{}>, {
352
+ borrowerName: string;
353
+ showBg: boolean;
354
+ milestonesNumber: number;
355
+ isCloseNextMilestone: boolean;
356
+ customMessage: string;
357
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
358
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
359
+ export default _default;
@@ -0,0 +1,186 @@
1
+ import { toRefs as O, ref as E, computed as l, watch as P, onMounted as j, onUnmounted as K } from "vue";
2
+ import { throttle as N } from "../utils/throttle.js";
3
+ import R from "./KvCartModal.js";
4
+ import z from "./KvCartPill.js";
5
+ const q = {
6
+ components: {
7
+ KvCartModal: R,
8
+ KvCartPill: z
9
+ },
10
+ props: {
11
+ /**
12
+ * show modal
13
+ * */
14
+ modalVisible: {
15
+ type: Boolean,
16
+ default: !1
17
+ },
18
+ /**
19
+ * added loan to basket
20
+ * */
21
+ addedLoan: {
22
+ type: Object,
23
+ default: () => ({})
24
+ },
25
+ /**
26
+ * user data
27
+ * */
28
+ userData: {
29
+ type: Object,
30
+ default: () => ({})
31
+ },
32
+ /**
33
+ * basket limit size
34
+ * */
35
+ photoPath: {
36
+ type: String,
37
+ default: ""
38
+ },
39
+ /**
40
+ * milestones number
41
+ * */
42
+ milestonesNumber: {
43
+ type: Number,
44
+ default: 0
45
+ },
46
+ /**
47
+ * show modal content
48
+ * */
49
+ showModalContent: {
50
+ type: Boolean,
51
+ default: !1
52
+ },
53
+ /**
54
+ * user has ever logged in
55
+ * */
56
+ hasEverLoggedIn: {
57
+ type: Boolean,
58
+ default: !1
59
+ },
60
+ /**
61
+ * is under myKiva experiment
62
+ * */
63
+ myKivaExperimentEnabled: {
64
+ type: Boolean,
65
+ default: !1
66
+ },
67
+ /**
68
+ * one loan away category name
69
+ * */
70
+ oneLoanAwayCategory: {
71
+ type: String,
72
+ default: ""
73
+ },
74
+ /**
75
+ * one loan away filtered url
76
+ * */
77
+ oneLoanAwayFilteredUrl: {
78
+ type: String,
79
+ default: ""
80
+ },
81
+ /**
82
+ * one loan away text
83
+ * */
84
+ oneAwayText: {
85
+ type: String,
86
+ default: ""
87
+ },
88
+ /**
89
+ * milestones progress
90
+ * */
91
+ milestonesProgress: {
92
+ type: Object,
93
+ default: () => ({})
94
+ },
95
+ /**
96
+ * is loan goal modal
97
+ * */
98
+ isLoanGoal: {
99
+ type: Boolean,
100
+ default: !1
101
+ },
102
+ /**
103
+ * is completing goal modal
104
+ * */
105
+ isCompletingGoal: {
106
+ type: Boolean,
107
+ default: !1
108
+ }
109
+ },
110
+ emits: [
111
+ "reset-modal",
112
+ // reset modal values and close on parent component
113
+ "close-redirect"
114
+ // close and redirect to another page on parent component
115
+ ],
116
+ setup(d, { emit: c }) {
117
+ const {
118
+ modalVisible: h,
119
+ addedLoan: s,
120
+ userData: y,
121
+ hasEverLoggedIn: S,
122
+ myKivaExperimentEnabled: A,
123
+ oneLoanAwayCategory: B,
124
+ oneLoanAwayFilteredUrl: m,
125
+ milestonesProgress: $
126
+ } = O(d), v = E(0), f = E(0), w = l(() => {
127
+ var e;
128
+ return ((e = s.value) == null ? void 0 : e.basketSize) ?? 0;
129
+ }), x = l(() => {
130
+ const e = window.innerWidth - f.value - 200, t = `${e > 0 ? e : 0}`, o = `${v.value}`;
131
+ return { right: t, top: o };
132
+ }), i = l(() => {
133
+ var e;
134
+ return (e = s.value) == null ? void 0 : e.name;
135
+ }), b = l(() => {
136
+ var e;
137
+ return !((e = y.value) != null && e.my);
138
+ }), p = l(() => {
139
+ var e, t, o;
140
+ return A.value && (b.value && !S.value || !b.value && !((o = (t = (e = y.value) == null ? void 0 : e.my) == null ? void 0 : t.loans) != null && o.totalCount)) && w.value === 1;
141
+ }), L = l(() => B.value && m.value && !p.value), C = l(() => Object.values($.value).reduce((e, t) => e + (t > 0 ? t : 0), 0)), G = l(() => {
142
+ var t, o, n;
143
+ if (d.isCompletingGoal)
144
+ return `Supporting ${i.value} meets your annual goal!`;
145
+ if (d.isLoanGoal)
146
+ return "You’re closer to reaching your annual goal!";
147
+ if (p.value) {
148
+ const a = `Supporting ${i.value} helps`;
149
+ return ((t = s.value) == null ? void 0 : t.borrowerCount) > 1 || (o = s.value) != null && o.themes.includes("Social Enterprise") ? `${a} them invest in themselves.` : ((n = s.value) == null ? void 0 : n.gender) === "male" ? `${a} him invest in himself.` : `${a} her invest in herself.`;
150
+ }
151
+ if (L.value)
152
+ return "You’re close to your next achievement!";
153
+ const e = C.value > 1 ? `${C.value} achievements` : "your next achievement";
154
+ return i.value ? `Supporting ${i.value} will reach ${e}!` : "Supporting this loan reaches an achievement!";
155
+ }), H = (e) => {
156
+ e === "view-basket" ? c("close-redirect", { type: e, path: "/basket" }) : e === "support-another" && m.value && c("close-redirect", { type: e, path: m.value });
157
+ }, M = (e) => {
158
+ const { type: t } = e;
159
+ t && H(t), c("reset-modal");
160
+ }, g = () => {
161
+ const e = document.getElementsByTagName("header")[0], t = (e == null ? void 0 : e.getBoundingClientRect()) ?? null;
162
+ let o = Array.from(document.querySelectorAll('[data-testid="header-basket"]')), n = o.find((r) => r == null ? void 0 : r.clientHeight);
163
+ n || (o = Array.from(document.querySelectorAll('[data-testid="header-about"]')), n = o.find((r) => r == null ? void 0 : r.clientHeight));
164
+ const a = (n == null ? void 0 : n.getBoundingClientRect()) ?? null;
165
+ a && (a == null ? void 0 : a.right) !== f.value && (f.value = a == null ? void 0 : a.right), t && (t == null ? void 0 : t.bottom) !== v.value && (v.value = t == null ? void 0 : t.bottom);
166
+ }, u = N(g, 50);
167
+ return P(h, () => {
168
+ h.value && g();
169
+ }, { immediate: !0 }), j(() => {
170
+ g(), window.addEventListener("scroll", u), window.addEventListener("resize", u);
171
+ }), K(() => {
172
+ window.removeEventListener("scroll", u), window.removeEventListener("resize", u);
173
+ }), {
174
+ modalPosition: x,
175
+ basketCount: w,
176
+ isFirstLoan: p,
177
+ borrowerName: i,
178
+ showOneAway: L,
179
+ pillMsg: G,
180
+ closeCartModal: M
181
+ };
182
+ }
183
+ };
184
+ export {
185
+ q as default
186
+ };
@@ -1,127 +1,26 @@
1
- import { getKivaImageUrl as l } from "../utils/imageUtils.js";
2
- import { openBlock as h, createElementBlock as o, normalizeStyle as n, createElementVNode as c, createCommentVNode as u } from "vue";
3
- import m from "../_virtual/_plugin-vue_export-helper.js";
4
- const g = {
5
- name: "KvBorrowerImage",
6
- props: {
7
- /**
8
- * String to use as the alternative of this image for screen readers.
9
- */
10
- alt: {
11
- type: String,
12
- required: !0
13
- },
14
- /**
15
- * Number to use as the aspect ratio for this image. Defined as height / width.
16
- */
17
- aspectRatio: {
18
- type: Number,
19
- default: 1
20
- },
21
- /**
22
- * Size properties of the default image to use as a fallback.
23
- * Sample object:
24
- * {
25
- width: 320,
26
- faceZoom: 50, // optional
27
- }
28
- */
29
- defaultImage: {
30
- type: Object,
31
- required: !0
32
- },
33
- /**
34
- * String of the hash of the image, used to build the image urls.
35
- */
36
- hash: {
37
- type: String,
38
- required: !0
39
- },
40
- /**
41
- * Array of image objects containing their size and their intended viewport display width.
42
- * Sample image object:
43
- * {
44
- width: 280, // width of the image at 1x
45
- viewSize: 320, // viewport width at which this size should be displayed
46
- faceZoom: 50, // optional
47
- }
48
- */
49
- images: {
50
- type: Array,
51
- default: () => []
52
- },
53
- /**
54
- * The base path to source the image
55
- */
56
- photoPath: {
57
- type: String,
58
- required: !0
59
- }
60
- },
61
- computed: {
62
- // Get the full url for the fallback image
63
- defaultUrl() {
64
- return this.hash ? this.getImgUrl({
65
- ...this.defaultImage,
66
- height: this.defaultImage.width * this.aspectRatio,
67
- format: "jpg"
68
- }) : "";
69
- },
70
- // Get the 'sizes' string for the source element
71
- sizes() {
72
- return this.hash ? this.images.map(({ width: t, viewSize: e }) => e ? `(min-width: ${e}px) ${t}px` : `${t}px`).join(", ") : "";
73
- },
74
- // Get the 'srcset' string for the source element
75
- srcset() {
76
- return this.hash ? this.images.map(({ width: t, faceZoom: e }) => {
77
- const r = t * this.aspectRatio, a = {
78
- width: t,
79
- height: r,
80
- faceZoom: e
81
- }, i = {
82
- width: t * 2,
83
- height: r * 2,
84
- faceZoom: e
85
- };
86
- return `${this.getSrcsetDef(a)}, ${this.getSrcsetDef(i)}`;
87
- }).join(", ") : "";
88
- }
89
- },
90
- methods: {
91
- // Get the url for the loan image sized width by height
92
- getImgUrl(t) {
93
- return l({
94
- base: this.photoPath,
95
- format: "webp",
96
- hash: this.hash,
97
- ...t
98
- });
99
- },
100
- // Get a string to use in the srcset attribute as the definition for a single image size
101
- getSrcsetDef(t) {
102
- return `${this.getImgUrl(t)} ${t.width}w`;
103
- }
104
- }
105
- }, d = ["srcset", "sizes"], f = ["src", "alt"];
106
- function p(t, e, r, a, i, s) {
107
- return h(), o("picture", {
1
+ import c from "./KvBorrowerImage2.js";
2
+ import { openBlock as l, createElementBlock as r, normalizeStyle as s, createElementVNode as o, createCommentVNode as a } from "vue";
3
+ import n from "../_virtual/_plugin-vue_export-helper.js";
4
+ const i = ["srcset", "sizes"], m = ["src", "alt"];
5
+ function d(u, f, e, w, _, t) {
6
+ return l(), r("picture", {
108
7
  class: "tw-inline-block tw-relative tw-overflow-hidden tw-w-full tw-bg-black",
109
- style: n(`padding-bottom: ${r.aspectRatio * 100}%;`)
8
+ style: s(`padding-bottom: ${e.aspectRatio * 100}%;`)
110
9
  }, [
111
- c("source", {
112
- srcset: s.srcset,
113
- sizes: s.sizes
114
- }, null, 8, d),
115
- r.hash ? (h(), o("img", {
10
+ o("source", {
11
+ srcset: t.srcset,
12
+ sizes: t.sizes
13
+ }, null, 8, i),
14
+ e.hash ? (l(), r("img", {
116
15
  key: 0,
117
16
  class: "tw-absolute tw-w-full tw-h-full tw-object-contain",
118
- src: s.defaultUrl,
119
- alt: r.alt,
17
+ src: t.defaultUrl,
18
+ alt: e.alt,
120
19
  loading: "lazy"
121
- }, null, 8, f)) : u("", !0)
20
+ }, null, 8, m)) : a("", !0)
122
21
  ], 4);
123
22
  }
124
- const b = /* @__PURE__ */ m(g, [["render", p]]);
23
+ const k = /* @__PURE__ */ n(c, [["render", d]]);
125
24
  export {
126
- b as default
25
+ k as default
127
26
  };