@kiva/kv-components 10.6.0 → 10.6.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 (223) hide show
  1. package/dist/index.js +20 -20
  2. package/dist/vue/KvAccordionItem.js +1 -1
  3. package/dist/vue/KvActivityRow.js +1 -1
  4. package/dist/vue/KvAtbModal.js +1 -1
  5. package/dist/vue/KvBorrowerImage.js +1 -1
  6. package/dist/vue/KvButton.js +1 -1
  7. package/dist/vue/KvCardFrame.js +1 -1
  8. package/dist/vue/KvCarousel.js +1 -1
  9. package/dist/vue/KvCartModal.js +1 -1
  10. package/dist/vue/KvCartPill.js +1 -1
  11. package/dist/vue/KvCheckbox.js +1 -1
  12. package/dist/vue/KvCheckoutReceipt.js +1 -1
  13. package/dist/vue/KvChip.js +1 -1
  14. package/dist/vue/KvClassicLoanCard.js +252 -295
  15. package/dist/vue/KvClassicLoanCard.script.js +298 -0
  16. package/dist/vue/KvCommentsAdd.js +2 -2
  17. package/dist/vue/KvCommentsContainer.js +2 -2
  18. package/dist/vue/KvCommentsHeartButton.js +1 -1
  19. package/dist/vue/KvCommentsList.js +1 -1
  20. package/dist/vue/KvCommentsListItem.js +2 -2
  21. package/dist/vue/KvCommentsReplyButton.js +1 -1
  22. package/dist/vue/KvCompactLoanCard.js +416 -380
  23. package/dist/vue/KvCompactLoanCard.script.js +382 -0
  24. package/dist/vue/KvContentfulImg.js +1 -1
  25. package/dist/vue/KvCountdownTimer.js +1 -1
  26. package/dist/vue/KvDatePicker.js +1 -1
  27. package/dist/vue/KvExpandable.js +1 -1
  28. package/dist/vue/KvExpandableQuestion.js +1 -1
  29. package/dist/vue/KvFlag.js +1 -1
  30. package/dist/vue/KvFormAssemblyForm.js +2 -95
  31. package/dist/vue/KvFormAssemblyForm.script.js +97 -0
  32. package/dist/vue/KvGrid.js +1 -1
  33. package/dist/vue/KvIconBag.js +1 -1
  34. package/dist/vue/KvIconButton.js +2 -116
  35. package/dist/vue/KvIconButton.script.js +118 -0
  36. package/dist/vue/KvImageUpload.js +1 -1
  37. package/dist/vue/KvImpactVerticalSelector.js +1 -1
  38. package/dist/vue/KvInlineActivityCard.js +1 -1
  39. package/dist/vue/KvInlineActivityFeed.js +1 -1
  40. package/dist/vue/KvIntroductionLoanCard.js +247 -220
  41. package/dist/vue/KvIntroductionLoanCard.script.js +223 -0
  42. package/dist/vue/KvLendAmountButton.js +1 -1
  43. package/dist/vue/KvLendCta.js +355 -389
  44. package/dist/vue/KvLendCta.script.js +391 -0
  45. package/dist/vue/KvLightbox.js +1 -1
  46. package/dist/vue/KvLineGraph.js +1 -1
  47. package/dist/vue/KvLoadingSpinner.js +1 -1
  48. package/dist/vue/KvLoanActivities.js +75 -149
  49. package/dist/vue/KvLoanActivities.script.js +151 -0
  50. package/dist/vue/KvLoanBookmark.js +22 -33
  51. package/dist/vue/KvLoanBookmark.script.js +35 -0
  52. package/dist/vue/KvLoanCallouts.js +1 -1
  53. package/dist/vue/KvLoanInfoCard.js +2 -2
  54. package/dist/vue/KvLoanProgressGroup.js +1 -1
  55. package/dist/vue/KvLoanTag.js +44 -123
  56. package/dist/vue/KvLoanTag.script.js +125 -0
  57. package/dist/vue/KvLoanUse.js +14 -111
  58. package/dist/vue/KvLoanUse.script.js +113 -0
  59. package/dist/vue/KvMap.js +1 -1
  60. package/dist/vue/KvMaterialIcon.js +1 -1
  61. package/dist/vue/KvPageContainer.js +1 -1
  62. package/dist/vue/KvPagination.js +1 -1
  63. package/dist/vue/KvPieChart.js +1 -1
  64. package/dist/vue/KvPieChartV2.js +1 -1
  65. package/dist/vue/KvPill.js +1 -1
  66. package/dist/vue/KvPopper.js +1 -1
  67. package/dist/vue/KvProgressBar.js +1 -1
  68. package/dist/vue/KvProgressCircle.js +1 -1
  69. package/dist/vue/KvPulsingDot.js +1 -1
  70. package/dist/vue/KvRadio.js +1 -1
  71. package/dist/vue/KvSecondaryNav.js +1 -1
  72. package/dist/vue/KvSelect.js +1 -1
  73. package/dist/vue/KvSideSheet.js +1 -1
  74. package/dist/vue/KvSimpleMap.js +1 -1
  75. package/dist/vue/KvStackedBarGraph.js +1 -1
  76. package/dist/vue/KvSwitch.js +1 -1
  77. package/dist/vue/KvTab.js +1 -1
  78. package/dist/vue/KvTabPanel.js +1 -1
  79. package/dist/vue/KvTabs.js +1 -1
  80. package/dist/vue/KvTextInput.js +1 -1
  81. package/dist/vue/KvTextLink.js +1 -1
  82. package/dist/vue/KvThemeProvider.js +1 -1
  83. package/dist/vue/KvToast.js +1 -1
  84. package/dist/vue/KvTooltip.js +1 -1
  85. package/dist/vue/KvTreeMapChart.js +1 -1
  86. package/dist/vue/KvUserAvatar.js +1 -1
  87. package/dist/vue/KvUtilityMenu.js +1 -1
  88. package/dist/vue/KvVerticalCarousel.js +1 -1
  89. package/dist/vue/KvVotingCard.js +1 -1
  90. package/dist/vue/KvVotingCardV2.js +1 -1
  91. package/dist/vue/KvWideLoanCard.js +206 -232
  92. package/dist/vue/KvWideLoanCard.script.js +235 -0
  93. package/dist/vue/KvWwwHeader/KvHeaderAboutMenu.js +1 -1
  94. package/dist/vue/KvWwwHeader/KvHeaderDropdownLink.js +1 -1
  95. package/dist/vue/KvWwwHeader/KvHeaderLinkBar.js +1 -1
  96. package/dist/vue/KvWwwHeader/KvHeaderLogo.js +1 -1
  97. package/dist/vue/KvWwwHeader/KvHeaderMobileMenu.js +1 -1
  98. package/dist/vue/KvWwwHeader/KvHeaderMyKivaMenu.js +1 -1
  99. package/dist/vue/KvWwwHeader/KvHeaderTakeActionMenu.js +1 -1
  100. package/dist/vue/KvWwwHeader/LendMenu/KvLendListMenu.js +1 -1
  101. package/dist/vue/KvWwwHeader/LendMenu/KvLendMegaMenu.js +1 -1
  102. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenu.js +1 -1
  103. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenuCountryList.js +1 -1
  104. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenuSearchList.js +1 -1
  105. package/dist/vue/KvWwwHeader.js +1 -1
  106. package/dist/vue/KvWwwHeaderBasic/AboutMenu.js +1 -1
  107. package/dist/vue/KvWwwHeaderBasic/HeaderMenuGroup.js +1 -1
  108. package/dist/vue/KvWwwHeaderBasic/KvWwwHeaderBasic.js +1 -1
  109. package/dist/vue/KvWwwHeaderBasic/LinkBar.js +1 -1
  110. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/CategoriesPanel.js +1 -1
  111. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/MobileLendMenu.js +1 -1
  112. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/MyKivaPanel.js +1 -1
  113. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/RegionsPanel.js +1 -1
  114. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/SearchPanel.js +1 -1
  115. package/dist/vue/KvWwwHeaderBasic/MobileMenu.js +1 -1
  116. package/dist/vue/KvWwwHeaderBasic/MyKivaMenu.js +1 -1
  117. package/dist/vue/KvWwwHeaderBasic/SearchBar.js +1 -1
  118. package/package.json +2 -2
  119. package/vite.config.ts +16 -13
  120. package/dist/vue/KvClassicLoanCard2.js +0 -255
  121. package/dist/vue/KvCompactLoanCard2.js +0 -418
  122. package/dist/vue/KvFormAssemblyForm2.js +0 -4
  123. package/dist/vue/KvIconButton2.js +0 -4
  124. package/dist/vue/KvIntroductionLoanCard2.js +0 -250
  125. package/dist/vue/KvLendCta2.js +0 -357
  126. package/dist/vue/KvLoanActivities2.js +0 -77
  127. package/dist/vue/KvLoanBookmark2.js +0 -24
  128. package/dist/vue/KvLoanTag2.js +0 -46
  129. package/dist/vue/KvLoanUse2.js +0 -16
  130. package/dist/vue/KvWideLoanCard2.js +0 -209
  131. /package/dist/vue/{KvAccordionItem2.js → KvAccordionItem.script.js} +0 -0
  132. /package/dist/vue/{KvActivityRow2.js → KvActivityRow.script.js} +0 -0
  133. /package/dist/vue/{KvAtbModal2.js → KvAtbModal.script.js} +0 -0
  134. /package/dist/vue/{KvBorrowerImage2.js → KvBorrowerImage.script.js} +0 -0
  135. /package/dist/vue/{KvButton2.js → KvButton.script.js} +0 -0
  136. /package/dist/vue/{KvCardFrame2.js → KvCardFrame.script.js} +0 -0
  137. /package/dist/vue/{KvCarousel2.js → KvCarousel.script.js} +0 -0
  138. /package/dist/vue/{KvCartModal2.js → KvCartModal.script.js} +0 -0
  139. /package/dist/vue/{KvCartPill2.js → KvCartPill.script.js} +0 -0
  140. /package/dist/vue/{KvCheckbox2.js → KvCheckbox.script.js} +0 -0
  141. /package/dist/vue/{KvCheckoutReceipt2.js → KvCheckoutReceipt.script.js} +0 -0
  142. /package/dist/vue/{KvChip2.js → KvChip.script.js} +0 -0
  143. /package/dist/vue/{KvCommentsAdd2.js → KvCommentsAdd.script.js} +0 -0
  144. /package/dist/vue/{KvCommentsContainer2.js → KvCommentsContainer.script.js} +0 -0
  145. /package/dist/vue/{KvCommentsHeartButton2.js → KvCommentsHeartButton.script.js} +0 -0
  146. /package/dist/vue/{KvCommentsList2.js → KvCommentsList.script.js} +0 -0
  147. /package/dist/vue/{KvCommentsListItem2.js → KvCommentsListItem.script.js} +0 -0
  148. /package/dist/vue/{KvCommentsReplyButton2.js → KvCommentsReplyButton.script.js} +0 -0
  149. /package/dist/vue/{KvContentfulImg2.js → KvContentfulImg.script.js} +0 -0
  150. /package/dist/vue/{KvCountdownTimer2.js → KvCountdownTimer.script.js} +0 -0
  151. /package/dist/vue/{KvDatePicker2.js → KvDatePicker.script.js} +0 -0
  152. /package/dist/vue/{KvExpandable2.js → KvExpandable.script.js} +0 -0
  153. /package/dist/vue/{KvExpandableQuestion2.js → KvExpandableQuestion.script.js} +0 -0
  154. /package/dist/vue/{KvFlag2.js → KvFlag.script.js} +0 -0
  155. /package/dist/vue/{KvGrid2.js → KvGrid.script.js} +0 -0
  156. /package/dist/vue/{KvIconBag2.js → KvIconBag.script.js} +0 -0
  157. /package/dist/vue/{KvImageUpload2.js → KvImageUpload.script.js} +0 -0
  158. /package/dist/vue/{KvImpactVerticalSelector2.js → KvImpactVerticalSelector.script.js} +0 -0
  159. /package/dist/vue/{KvInlineActivityCard2.js → KvInlineActivityCard.script.js} +0 -0
  160. /package/dist/vue/{KvInlineActivityFeed2.js → KvInlineActivityFeed.script.js} +0 -0
  161. /package/dist/vue/{KvLendAmountButton2.js → KvLendAmountButton.script.js} +0 -0
  162. /package/dist/vue/{KvLightbox2.js → KvLightbox.script.js} +0 -0
  163. /package/dist/vue/{KvLineGraph2.js → KvLineGraph.script.js} +0 -0
  164. /package/dist/vue/{KvLoadingSpinner2.js → KvLoadingSpinner.script.js} +0 -0
  165. /package/dist/vue/{KvLoanCallouts2.js → KvLoanCallouts.script.js} +0 -0
  166. /package/dist/vue/{KvLoanProgressGroup2.js → KvLoanProgressGroup.script.js} +0 -0
  167. /package/dist/vue/{KvMap2.js → KvMap.script.js} +0 -0
  168. /package/dist/vue/{KvMaterialIcon2.js → KvMaterialIcon.script.js} +0 -0
  169. /package/dist/vue/{KvPageContainer2.js → KvPageContainer.script.js} +0 -0
  170. /package/dist/vue/{KvPagination2.js → KvPagination.script.js} +0 -0
  171. /package/dist/vue/{KvPieChart2.js → KvPieChart.script.js} +0 -0
  172. /package/dist/vue/{KvPieChartV22.js → KvPieChartV2.script.js} +0 -0
  173. /package/dist/vue/{KvPill2.js → KvPill.script.js} +0 -0
  174. /package/dist/vue/{KvPopper2.js → KvPopper.script.js} +0 -0
  175. /package/dist/vue/{KvProgressBar2.js → KvProgressBar.script.js} +0 -0
  176. /package/dist/vue/{KvProgressCircle2.js → KvProgressCircle.script.js} +0 -0
  177. /package/dist/vue/{KvPulsingDot2.js → KvPulsingDot.script.js} +0 -0
  178. /package/dist/vue/{KvRadio2.js → KvRadio.script.js} +0 -0
  179. /package/dist/vue/{KvSecondaryNav2.js → KvSecondaryNav.script.js} +0 -0
  180. /package/dist/vue/{KvSelect2.js → KvSelect.script.js} +0 -0
  181. /package/dist/vue/{KvSideSheet2.js → KvSideSheet.script.js} +0 -0
  182. /package/dist/vue/{KvSimpleMap2.js → KvSimpleMap.script.js} +0 -0
  183. /package/dist/vue/{KvStackedBarGraph2.js → KvStackedBarGraph.script.js} +0 -0
  184. /package/dist/vue/{KvSwitch2.js → KvSwitch.script.js} +0 -0
  185. /package/dist/vue/{KvTab2.js → KvTab.script.js} +0 -0
  186. /package/dist/vue/{KvTabPanel2.js → KvTabPanel.script.js} +0 -0
  187. /package/dist/vue/{KvTabs2.js → KvTabs.script.js} +0 -0
  188. /package/dist/vue/{KvTextInput2.js → KvTextInput.script.js} +0 -0
  189. /package/dist/vue/{KvTextLink2.js → KvTextLink.script.js} +0 -0
  190. /package/dist/vue/{KvThemeProvider2.js → KvThemeProvider.script.js} +0 -0
  191. /package/dist/vue/{KvToast2.js → KvToast.script.js} +0 -0
  192. /package/dist/vue/{KvTooltip2.js → KvTooltip.script.js} +0 -0
  193. /package/dist/vue/{KvTreeMapChart2.js → KvTreeMapChart.script.js} +0 -0
  194. /package/dist/vue/{KvUserAvatar2.js → KvUserAvatar.script.js} +0 -0
  195. /package/dist/vue/{KvUtilityMenu2.js → KvUtilityMenu.script.js} +0 -0
  196. /package/dist/vue/{KvVerticalCarousel2.js → KvVerticalCarousel.script.js} +0 -0
  197. /package/dist/vue/{KvVotingCard2.js → KvVotingCard.script.js} +0 -0
  198. /package/dist/vue/{KvVotingCardV22.js → KvVotingCardV2.script.js} +0 -0
  199. /package/dist/vue/KvWwwHeader/{KvHeaderAboutMenu2.js → KvHeaderAboutMenu.script.js} +0 -0
  200. /package/dist/vue/KvWwwHeader/{KvHeaderDropdownLink2.js → KvHeaderDropdownLink.script.js} +0 -0
  201. /package/dist/vue/KvWwwHeader/{KvHeaderLinkBar2.js → KvHeaderLinkBar.script.js} +0 -0
  202. /package/dist/vue/KvWwwHeader/{KvHeaderLogo2.js → KvHeaderLogo.script.js} +0 -0
  203. /package/dist/vue/KvWwwHeader/{KvHeaderMobileMenu2.js → KvHeaderMobileMenu.script.js} +0 -0
  204. /package/dist/vue/KvWwwHeader/{KvHeaderMyKivaMenu2.js → KvHeaderMyKivaMenu.script.js} +0 -0
  205. /package/dist/vue/KvWwwHeader/{KvHeaderTakeActionMenu2.js → KvHeaderTakeActionMenu.script.js} +0 -0
  206. /package/dist/vue/KvWwwHeader/LendMenu/{KvLendListMenu2.js → KvLendListMenu.script.js} +0 -0
  207. /package/dist/vue/KvWwwHeader/LendMenu/{KvLendMegaMenu2.js → KvLendMegaMenu.script.js} +0 -0
  208. /package/dist/vue/KvWwwHeader/LendMenu/{KvLendMenu2.js → KvLendMenu.script.js} +0 -0
  209. /package/dist/vue/KvWwwHeader/LendMenu/{KvLendMenuCountryList2.js → KvLendMenuCountryList.script.js} +0 -0
  210. /package/dist/vue/KvWwwHeader/LendMenu/{KvLendMenuSearchList2.js → KvLendMenuSearchList.script.js} +0 -0
  211. /package/dist/vue/{KvWwwHeader2.js → KvWwwHeader.script.js} +0 -0
  212. /package/dist/vue/KvWwwHeaderBasic/{AboutMenu2.js → AboutMenu.script.js} +0 -0
  213. /package/dist/vue/KvWwwHeaderBasic/{HeaderMenuGroup2.js → HeaderMenuGroup.script.js} +0 -0
  214. /package/dist/vue/KvWwwHeaderBasic/{KvWwwHeaderBasic2.js → KvWwwHeaderBasic.script.js} +0 -0
  215. /package/dist/vue/KvWwwHeaderBasic/{LinkBar2.js → LinkBar.script.js} +0 -0
  216. /package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/{CategoriesPanel2.js → CategoriesPanel.script.js} +0 -0
  217. /package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/{MobileLendMenu2.js → MobileLendMenu.script.js} +0 -0
  218. /package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/{MyKivaPanel2.js → MyKivaPanel.script.js} +0 -0
  219. /package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/{RegionsPanel2.js → RegionsPanel.script.js} +0 -0
  220. /package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/{SearchPanel2.js → SearchPanel.script.js} +0 -0
  221. /package/dist/vue/KvWwwHeaderBasic/{MobileMenu2.js → MobileMenu.script.js} +0 -0
  222. /package/dist/vue/KvWwwHeaderBasic/{MyKivaMenu2.js → MyKivaMenu.script.js} +0 -0
  223. /package/dist/vue/KvWwwHeaderBasic/{SearchBar2.js → SearchBar.script.js} +0 -0
@@ -0,0 +1,391 @@
1
+ import u from "graphql-tag";
2
+ import { mdiChevronRight as d } from "@mdi/js";
3
+ import { throttle as h } from "../utils/throttle.js";
4
+ import { getLendCtaSelectedOption as o, getDropdownPriceArray as l } from "../utils/loanUtils.js";
5
+ import c from "./KvLendAmountButton.js";
6
+ import p from "./KvSelect.js";
7
+ import m from "./KvButton.js";
8
+ import f from "./KvMaterialIcon.js";
9
+ const n = "Other", v = 360, r = 480, a = 380, O = u`
10
+ fragment KvLendCta on LoanBasic {
11
+ id
12
+ name
13
+ status
14
+ minNoteSize
15
+ }
16
+ `, b = u`
17
+ fragment KvLendCtaUser on LoanBasic {
18
+ id
19
+ userProperties {
20
+ lentTo
21
+ }
22
+ }
23
+ `, D = {
24
+ name: "KvLendCta",
25
+ components: {
26
+ KvLendAmountButton: c,
27
+ KvUiButton: m,
28
+ KvUiSelect: p,
29
+ KvMaterialIcon: f
30
+ },
31
+ props: {
32
+ loan: {
33
+ type: Object,
34
+ default: () => ({})
35
+ },
36
+ unreservedAmount: {
37
+ type: String,
38
+ default: ""
39
+ },
40
+ basketItems: {
41
+ type: Array,
42
+ default: () => []
43
+ },
44
+ isLoading: {
45
+ type: Boolean,
46
+ default: !0
47
+ },
48
+ isAdding: {
49
+ type: Boolean,
50
+ default: !1
51
+ },
52
+ enableFiveDollarsNotes: {
53
+ type: Boolean,
54
+ default: !1
55
+ },
56
+ kvTrackFunction: {
57
+ type: Function,
58
+ required: !0
59
+ },
60
+ showViewLoan: {
61
+ type: Boolean,
62
+ default: !1
63
+ },
64
+ customLoanDetails: {
65
+ type: Boolean,
66
+ default: !1
67
+ },
68
+ externalLinks: {
69
+ type: Boolean,
70
+ default: !1
71
+ },
72
+ route: {
73
+ type: Object,
74
+ default: void 0
75
+ },
76
+ userBalance: {
77
+ type: String,
78
+ default: void 0
79
+ },
80
+ getCookie: {
81
+ type: Function,
82
+ default: void 0
83
+ },
84
+ setCookie: {
85
+ type: Function,
86
+ default: void 0
87
+ },
88
+ fiveDollarsSelected: {
89
+ type: Boolean,
90
+ default: !1
91
+ },
92
+ isVisitor: {
93
+ type: Boolean,
94
+ default: !0
95
+ },
96
+ primaryButtonText: {
97
+ type: String,
98
+ default: "Lend"
99
+ },
100
+ secondaryButtonText: {
101
+ type: String,
102
+ default: void 0
103
+ },
104
+ secondaryButtonHandler: {
105
+ type: Function,
106
+ default: void 0
107
+ },
108
+ /**
109
+ * Hide preset buttons under this amount when
110
+ * showPresetAmounts is true
111
+ * */
112
+ maxAmount: {
113
+ type: String,
114
+ default: ""
115
+ },
116
+ showPresetAmounts: {
117
+ type: Boolean,
118
+ default: !1
119
+ },
120
+ kvTrackCategory: {
121
+ type: String,
122
+ default: "Lending"
123
+ },
124
+ /**
125
+ * Breakpoint for narrow desktop layout (default: 480px)
126
+ * When component width is below this, it will use stacked layout even on desktop
127
+ */
128
+ narrowSidebarBreakpoint: {
129
+ type: Number,
130
+ default: r
131
+ },
132
+ /**
133
+ * Breakpoint for narrow desktop dropdown layout (default: 380px)
134
+ * When component width is below this in narrow desktop mode, dropdown moves to second row
135
+ */
136
+ narrowSidebarDropdownBreakpoint: {
137
+ type: Number,
138
+ default: a
139
+ }
140
+ },
141
+ emits: [
142
+ "show-loan-details",
143
+ "add-to-basket"
144
+ ],
145
+ data() {
146
+ var t, e;
147
+ return {
148
+ mdiChevronRight: d,
149
+ defaultAmountOptions: [25, 50, 75],
150
+ selectedOption: o(
151
+ this.getCookie,
152
+ this.setCookie,
153
+ this.enableFiveDollarsNotes,
154
+ (e = (t = this.route) == null ? void 0 : t.query) == null ? void 0 : e.utm_campaign,
155
+ this.unreservedAmount,
156
+ this.userBalance ? parseFloat(this.userBalance) : void 0,
157
+ this.fiveDollarsSelected
158
+ ),
159
+ selectedDropdownOption: n,
160
+ OTHER_OPTION: n,
161
+ // SSR-safe viewport width initialization
162
+ viewportWidth: typeof window < "u" ? window.innerWidth : 1024,
163
+ componentWidth: 1024,
164
+ resizeObserver: null,
165
+ MOBILE_DROPDOWN_BREAKPOINT: v,
166
+ NARROW_SIDEBAR_BREAKPOINT: r,
167
+ NARROW_SIDEBAR_DROPDOWN_BREAKPOINT: a
168
+ };
169
+ },
170
+ computed: {
171
+ readMorePath() {
172
+ return this.customLoanDetails ? "" : `/lend/${this.loanId}`;
173
+ },
174
+ loanId() {
175
+ var t;
176
+ return (t = this.loan) == null ? void 0 : t.id;
177
+ },
178
+ status() {
179
+ var t;
180
+ return ((t = this.loan) == null ? void 0 : t.status) ?? "";
181
+ },
182
+ minNoteSize() {
183
+ var t;
184
+ return ((t = this.loan) == null ? void 0 : t.minNoteSize) ?? "";
185
+ },
186
+ lentPreviously() {
187
+ var t, e;
188
+ return ((e = (t = this.loan) == null ? void 0 : t.userProperties) == null ? void 0 : e.lentTo) ?? !1;
189
+ },
190
+ isInBasket() {
191
+ var t;
192
+ return ((t = this.basketItems) == null ? void 0 : t.some((e) => e.__typename === "LoanReservation" && e.id === this.loanId)) ?? !1;
193
+ },
194
+ prices() {
195
+ const t = parseFloat(this.unreservedAmount < 25 ? this.minNoteSize : 25), e = l(
196
+ this.unreservedAmount,
197
+ this.isCompleteLoanActive,
198
+ t,
199
+ this.enableFiveDollarsNotes,
200
+ this.isVisitor
201
+ );
202
+ return this.maxAmount ? e.filter((s) => parseFloat(s) <= parseFloat(this.maxAmount)) : e;
203
+ },
204
+ presetButtonsPrices() {
205
+ const t = this.prices.slice(0, 3);
206
+ return this.prices.length === 4 && t.push(this.prices[3]), t;
207
+ },
208
+ presetDropdownPrices() {
209
+ if (this.prices.length === 4)
210
+ return [];
211
+ const t = this.prices.slice(this.defaultAmountOptions.length);
212
+ return t.unshift(n), t;
213
+ },
214
+ loanName() {
215
+ var t;
216
+ return ((t = this.loan) == null ? void 0 : t.name) ?? "";
217
+ },
218
+ presetAmountCtaButtonText() {
219
+ var t;
220
+ return ((t = this.loan) == null ? void 0 : t.borrowerCount) > 1 ? "Support" : `Support ${this.loanName}`;
221
+ },
222
+ defaultCtaButtonText() {
223
+ return this.showPresetAmounts ? this.presetAmountCtaButtonText : this.primaryButtonText || "Lend";
224
+ },
225
+ ctaButtonText() {
226
+ switch (this.state) {
227
+ case "loading":
228
+ return "Loading...";
229
+ case "refunded":
230
+ case "expired":
231
+ default:
232
+ return this.defaultCtaButtonText;
233
+ }
234
+ },
235
+ loanInBasketButtonText() {
236
+ return this.secondaryButtonText ? this.secondaryButtonText : this.showPresetAmounts ? "Continue to basket" : "Checkout now";
237
+ },
238
+ useFormSubmit() {
239
+ return !!(this.hideShowLendDropdown || this.lendButtonVisibility || this.showLendAgain || this.state === "lent-to" || this.isAdding);
240
+ },
241
+ state() {
242
+ return this.isLoading ? "loading" : this.isAdding ? "adding" : this.isInBasket ? "basketed" : this.status === "funded" || this.status === "refunded" || this.status === "expired" ? this.status : this.allSharesReserved ? "fully-reserved" : this.lentPreviously ? "lent-to" : "lend";
243
+ },
244
+ lendButtonVisibility() {
245
+ return this.state === "lend" || this.state === "loading";
246
+ },
247
+ showNonActionableLoanButton() {
248
+ return this.state === "refunded" || this.state === "expired";
249
+ },
250
+ hideShowLendDropdown() {
251
+ return this.state === "lend" || this.state === "lent-to";
252
+ },
253
+ allSharesReserved() {
254
+ return parseFloat(this.unreservedAmount) === 0;
255
+ },
256
+ isLessThan25() {
257
+ return this.enableFiveDollarsNotes ? !1 : this.isAmountLessThan25(this.unreservedAmount);
258
+ },
259
+ isLentTo() {
260
+ return this.state === "lent-to";
261
+ },
262
+ isCompleteLoanActive() {
263
+ return this.isAmountLessThan25(this.unreservedAmount) || this.isAmountBetween25And500(this.unreservedAmount);
264
+ },
265
+ isLendAmountButton() {
266
+ const t = this.maxAmount ? this.maxAmount : this.unreservedAmount;
267
+ return (this.lendButtonVisibility || this.state === "lent-to") && this.isAmountLessThan25(t) || this.showPresetAmounts && this.presetButtonsPrices.length === 1 && !this.isAdding;
268
+ },
269
+ isFunded() {
270
+ return this.state === "funded" || this.state === "fully-reserved";
271
+ },
272
+ amountToLend() {
273
+ return this.selectedDropdown ? this.selectedDropdownOption : this.isLessThan25 ? this.unreservedAmount : this.selectedOption;
274
+ },
275
+ amountForLendAmountButton() {
276
+ return this.maxAmount && parseFloat(this.maxAmount) === 25 ? Math.min(parseFloat(this.maxAmount), parseFloat(this.unreservedAmount)) : this.unreservedAmount;
277
+ },
278
+ showLendAgain() {
279
+ return this.isLentTo && !this.isLessThan25;
280
+ },
281
+ selectedDropdown() {
282
+ return this.selectedDropdownOption !== n;
283
+ },
284
+ showFilteredDropdown() {
285
+ return this.presetDropdownPrices.length > 1;
286
+ },
287
+ hideLendButton() {
288
+ return this.showPresetAmounts && (this.isAdding || this.presetButtonsPrices.length === 1);
289
+ },
290
+ /**
291
+ * Determines if component should use narrow desktop layout
292
+ * This is true when we're in desktop viewport but component width is narrow
293
+ */
294
+ isNarrowDesktop() {
295
+ return this.viewportWidth >= 768 && this.componentWidth < this.narrowSidebarBreakpoint;
296
+ }
297
+ },
298
+ watch: {
299
+ unreservedAmount(t, e) {
300
+ var s, i;
301
+ t !== e && e === "" && (this.selectedOption = o(
302
+ this.getCookie,
303
+ this.setCookie,
304
+ this.enableFiveDollarsNotes,
305
+ (i = (s = this.route) == null ? void 0 : s.query) == null ? void 0 : i.utm_campaign,
306
+ t,
307
+ this.userBalance ? parseFloat(this.userBalance) : void 0,
308
+ this.fiveDollarsSelected
309
+ )), this.showPresetAmounts && (this.selectedOption = n);
310
+ }
311
+ },
312
+ mounted() {
313
+ const t = () => {
314
+ var e;
315
+ this.viewportWidth = window.innerWidth, this.componentWidth = ((e = this.$refs.root) == null ? void 0 : e.offsetWidth) || 1024;
316
+ };
317
+ typeof window < "u" && (this.viewportWidth = window.innerWidth, window.ResizeObserver && this.$nextTick(() => {
318
+ this.resizeObserver = new window.ResizeObserver(h(t, 50)), this.$refs.root && (this.resizeObserver.observe(this.$refs.root), t());
319
+ }));
320
+ },
321
+ beforeUnmount() {
322
+ this.resizeHandler && typeof window < "u" && window.removeEventListener("resize", this.resizeHandler), this.resizeObserver && this.$refs.root && this.resizeObserver.disconnect();
323
+ },
324
+ methods: {
325
+ async addToBasket() {
326
+ this.kvTrackFunction(
327
+ this.kvTrackCategory,
328
+ "Add to basket",
329
+ this.showLendAgain ? "Lend again" : "lend-button-click",
330
+ this.loanId,
331
+ this.amountToLend
332
+ ), this.$emit("add-to-basket", this.amountToLend);
333
+ },
334
+ isAmountLessThan25(t) {
335
+ return t < 25 && t > 0;
336
+ },
337
+ isAmountBetween25And50(t) {
338
+ return t <= 50 && t > 25;
339
+ },
340
+ isAmountBetween25And500(t) {
341
+ return t < 500 && t >= 25;
342
+ },
343
+ trackLendAmountSelection(t) {
344
+ this.showPresetAmounts && (this.selectedOption = null), this.kvTrackFunction(
345
+ this.kvTrackCategory,
346
+ "Modify lend amount",
347
+ t,
348
+ this.loanId,
349
+ this.loanId
350
+ );
351
+ },
352
+ clickDropdown() {
353
+ this.kvTrackFunction(
354
+ this.kvTrackCategory,
355
+ "click-Modify loan amount",
356
+ "open dialog",
357
+ this.loanId,
358
+ this.loanId
359
+ );
360
+ },
361
+ clickSecondaryButton(t) {
362
+ this.secondaryButtonHandler ? (t.preventDefault(), t.stopPropagation(), this.secondaryButtonHandler()) : this.handleCheckout();
363
+ },
364
+ clickPresetButton(t) {
365
+ this.kvTrackFunction(
366
+ this.kvTrackCategory,
367
+ "Modify lend amount",
368
+ t,
369
+ this.loanId,
370
+ this.loanId
371
+ ), this.selectedOption = t, this.selectedDropdownOption = n;
372
+ },
373
+ handleCheckout() {
374
+ this.kvTrackFunction(
375
+ this.kvTrackCategory,
376
+ "click-Continue-to-checkout",
377
+ "Continue to checkout",
378
+ this.loanId,
379
+ this.loanId
380
+ );
381
+ },
382
+ isNarrowComponent() {
383
+ return this.componentWidth < 430;
384
+ }
385
+ }
386
+ };
387
+ export {
388
+ O as KV_LEND_CTA_FRAGMENT,
389
+ b as KV_LEND_CTA_USER_FRAGMENT,
390
+ D as default
391
+ };
@@ -1,4 +1,4 @@
1
- import v from "./KvLightbox2.js";
1
+ import v from "./KvLightbox.script.js";
2
2
  import { resolveComponent as f, openBlock as n, createBlock as x, Transition as b, withCtx as u, withDirectives as h, createElementVNode as o, withModifiers as s, createElementBlock as w, createCommentVNode as r, normalizeClass as d, renderSlot as c, toDisplayString as k, createVNode as y, vShow as g } from "vue";
3
3
  import C from "../_virtual/_plugin-vue_export-helper.js";
4
4
  const _ = ["aria-label", "aria-describedby", "role"], p = { class: "tw-flex tw-p-2.5 md:tw-px-4 md:tw-pt-4 md:tw-pb-3.5" }, B = { class: "tw-flex-grow" }, S = { class: "tw-flex-1" }, L = {
@@ -1,4 +1,4 @@
1
- import u from "./KvLineGraph2.js";
1
+ import u from "./KvLineGraph.script.js";
2
2
  import { openBlock as e, createElementBlock as a, createElementVNode as o, normalizeStyle as r, Fragment as s, renderList as w, toDisplayString as i, createCommentVNode as c, normalizeClass as m } from "vue";
3
3
  import d from "../_virtual/_plugin-vue_export-helper.js";
4
4
  const f = { class: "tw-h-full tw-w-full tw-p-2.5" };
@@ -1,4 +1,4 @@
1
- import r from "./KvLoadingSpinner2.js";
1
+ import r from "./KvLoadingSpinner.script.js";
2
2
  import { openBlock as a, createElementBlock as i, normalizeClass as o, createStaticVNode as c } from "vue";
3
3
  import l from "../_virtual/_plugin-vue_export-helper.js";
4
4
  function n(w, e, t, s, d, f) {
@@ -1,151 +1,77 @@
1
- import { toRefs as f, ref as v, computed as n } from "vue";
2
- import { gql as p } from "@apollo/client/core";
3
- import { format as y } from "date-fns";
4
- import A from "numeral";
5
- import g from "./KvActivityRow.js";
6
- import b from "./KvLightbox.js";
7
- import F from "./KvLendCta2.js";
8
- const O = p`
9
- fragment KvLoanActivities on LoanBasic {
10
- id
11
- name
12
- lenders(limit: 0) {
13
- totalCount
14
- }
15
- loanFundraisingInfo {
16
- id
17
- fundedAmount
18
- }
19
- }
20
- `, _ = {
21
- name: "KvLoanActivities",
22
- components: {
23
- KvActivityRow: g,
24
- KvLightbox: b,
25
- KvLendCta: F
26
- },
27
- props: {
28
- /**
29
- * loan object coming from parent component
30
- */
31
- loan: {
32
- type: Object,
33
- default: () => ({})
34
- },
35
- /**
36
- * loan combined activities coming from parent component
37
- */
38
- combinedActivities: {
39
- type: Array,
40
- default: () => []
41
- },
42
- /**
43
- * isAdding flag coming from parent add to basket method
44
- */
45
- isAdding: {
46
- type: Boolean,
47
- default: !1
48
- },
49
- /**
50
- * basketItems array coming from parent component
51
- */
52
- basketItems: {
53
- type: Array,
54
- default: () => []
55
- },
56
- /**
57
- * userBalance string coming from parent component
58
- */
59
- userBalance: {
60
- type: String,
61
- default: void 0
62
- },
63
- /**
64
- * errorMsg string coming from parent add to basket method
65
- */
66
- errorMsg: {
67
- type: String,
68
- default: void 0
69
- },
70
- /**
71
- * kvTrackFunction function to track events from LendCta component
72
- */
73
- kvTrackFunction: {
74
- type: Function,
75
- required: !0
76
- },
77
- /**
78
- * getCookie function for LendCta component
79
- */
80
- getCookie: {
81
- type: Function,
82
- default: void 0
83
- },
84
- /**
85
- * setCookie function for LendCta component
86
- */
87
- setCookie: {
88
- type: Function,
89
- default: void 0
90
- },
91
- /**
92
- * route object for LendCta component
93
- */
94
- route: {
95
- type: Object,
96
- default: void 0
97
- },
98
- enableFiveDollarsNotes: {
99
- type: Boolean,
100
- default: !1
101
- },
102
- isVisitor: {
103
- type: Boolean,
104
- default: !0
105
- }
106
- },
107
- emits: [
108
- "add-to-basket"
109
- ],
110
- setup(r) {
111
- const {
112
- loan: a,
113
- combinedActivities: l,
114
- kvTrackFunction: s
115
- } = f(r), i = v(!1), u = n(() => {
116
- var t;
117
- return `Activity for ${((t = a.value) == null ? void 0 : t.name) || ""}`;
118
- }), d = n(() => {
119
- var t, e;
120
- return ((e = (t = a.value) == null ? void 0 : t.lenders) == null ? void 0 : e.totalCount) ?? 0;
121
- }), c = n(() => {
122
- var e, o;
123
- const t = ((o = (e = a.value) == null ? void 0 : e.loanFundraisingInfo) == null ? void 0 : o.fundedAmount) ?? 0;
124
- return A(parseFloat(t)).format("$0,0");
125
- }), m = n(() => {
126
- const t = l.value.find((e) => e.data.some((o) => o.type === "LendingAction"));
127
- return (t == null ? void 0 : t.data[0]) ?? {};
128
- });
129
- return {
130
- lightboxOpen: i,
131
- modalTitle: u,
132
- formattedDate: (t) => {
133
- const e = new Date(t);
134
- return y(e, "MMM d, yyyy");
135
- },
136
- showActivityModal: () => {
137
- s.value("loan-card", "click", "see-all-activity"), i.value = !0;
138
- },
139
- closeLightbox: () => {
140
- i.value = !1;
141
- },
142
- singleActivity: m,
143
- lendersNumber: d,
144
- amountLent: c
145
- };
146
- }
147
- };
1
+ import g from "./KvLoanActivities.script.js";
2
+ import { KV_LOAN_ACTIVITIES_FRAGMENT as H } from "./KvLoanActivities.script.js";
3
+ import { resolveComponent as c, openBlock as n, createElementBlock as s, createElementVNode as i, createVNode as d, toDisplayString as l, createCommentVNode as r, withCtx as m, Fragment as w, renderList as _, createBlock as h } from "vue";
4
+ import "./KvLoanActivities.css";
5
+ import y from "../_virtual/_plugin-vue_export-helper.js";
6
+ const A = {
7
+ key: 0,
8
+ class: "loan-activity"
9
+ }, L = { class: "tw-flex tw-justify-center lg:tw-px-0" }, C = { class: "tw-flex tw-justify-center tw-mt-1 tw-text-small" }, K = { key: 0 }, N = { class: "tw-text-title tw-flex-1 data-hj-suppress" }, M = { class: "tw-overflow-x-hidden tw-px-2 tw-pb-1" }, T = { class: "tw-text-center tw-text-upper" }, V = { class: "tw-flex tw-flex-col tw-gap-y-1" }, B = {
10
+ key: 0,
11
+ class: "tw-mt-1 tw-text-small tw-text-danger"
12
+ }, F = { class: "tw-flex tw-justify-end tw-mt-4 tw-pb-2.5 md:tw-pb-4" };
13
+ function I(k, a, t, e, j, E) {
14
+ const v = c("KvActivityRow"), x = c("KvLendCta"), u = c("KvLightbox");
15
+ return t.combinedActivities.length > 0 ? (n(), s("div", A, [
16
+ i("div", L, [
17
+ d(v, { activity: e.singleActivity }, null, 8, ["activity"])
18
+ ]),
19
+ i("div", C, [
20
+ e.lendersNumber && e.amountLent ? (n(), s("span", K, l(e.lendersNumber) + " lenders lent " + l(e.amountLent) + ".   ", 1)) : r("", !0),
21
+ i("button", {
22
+ class: "tw-text-action hover:tw-underline",
23
+ onClick: a[0] || (a[0] = (...o) => e.showActivityModal && e.showActivityModal(...o))
24
+ }, " See all activity ")
25
+ ]),
26
+ d(u, {
27
+ title: "Activity Feed Modal",
28
+ visible: e.lightboxOpen,
29
+ onLightboxClosed: e.closeLightbox
30
+ }, {
31
+ header: m(() => [
32
+ i("h2", N, l(e.modalTitle), 1)
33
+ ]),
34
+ default: m(() => [
35
+ i("div", M, [
36
+ (n(!0), s(w, null, _(t.combinedActivities, (o) => (n(), s("div", {
37
+ key: o.key,
38
+ class: "md:tw-px-8 lg:tw-px-14 tw-mt-4"
39
+ }, [
40
+ i("p", T, l(e.formattedDate(o.key)), 1),
41
+ i("div", V, [
42
+ (n(!0), s(w, null, _(o.data, (b, f) => (n(), h(v, {
43
+ key: f,
44
+ activity: b
45
+ }, null, 8, ["activity"]))), 128))
46
+ ])
47
+ ]))), 128))
48
+ ]),
49
+ i("div", null, [
50
+ t.errorMsg ? (n(), s("p", B, l(t.errorMsg), 1)) : r("", !0),
51
+ i("div", F, [
52
+ d(x, {
53
+ loan: t.loan,
54
+ "is-loading": !1,
55
+ "kv-track-function": t.kvTrackFunction,
56
+ "get-cookie": t.getCookie,
57
+ "set-cookie": t.setCookie,
58
+ "user-balance": t.userBalance,
59
+ "basket-items": t.basketItems,
60
+ route: t.route,
61
+ "is-adding": t.isAdding,
62
+ "is-visitor": t.isVisitor,
63
+ "enable-five-dollars-notes": t.enableFiveDollarsNotes,
64
+ onAddToBasket: a[1] || (a[1] = (o) => k.$emit("add-to-basket", o))
65
+ }, null, 8, ["loan", "kv-track-function", "get-cookie", "set-cookie", "user-balance", "basket-items", "route", "is-adding", "is-visitor", "enable-five-dollars-notes"])
66
+ ])
67
+ ])
68
+ ]),
69
+ _: 1
70
+ }, 8, ["visible", "onLightboxClosed"])
71
+ ])) : r("", !0);
72
+ }
73
+ const G = /* @__PURE__ */ y(g, [["render", I], ["__scopeId", "data-v-c2b4aeda"]]);
148
74
  export {
149
- O as KV_LOAN_ACTIVITIES_FRAGMENT,
150
- _ as default
75
+ H as KV_LOAN_ACTIVITIES_FRAGMENT,
76
+ G as default
151
77
  };