@kiva/kv-components 10.4.1 → 10.5.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.
@@ -1,388 +1,418 @@
1
- import A from "graphql-tag";
2
- import W from "numeral";
3
- import { ref as $, computed as o, watch as H } from "vue";
4
- import { mdiCached as j, mdiLink as q, mdiHome as z, mdiMapMarker as J } from "@mdi/js";
5
- import { LOAN_CALLOUTS_FRAGMENT as Q, LOAN_GEOCODE_FRAGMENT as X, LOAN_PROGRESS_FRAGMENT as Y, loanCardComputedProperties as Z, loanCardMethods as ee } from "../utils/loanCard.js";
6
- import { getDropdownPriceArray as te, getLendCtaSelectedOption as ae, isLessThan25 as oe } from "../utils/loanUtils.js";
7
- import { computePostGoalLoanCardStatement as ne } from "../utils/postGoalStatement.js";
8
- import le from "./KvLoanUse.js";
9
- import re from "./KvBorrowerImage.js";
10
- import ie from "./KvLoanCallouts.js";
11
- import se from "./KvLendCta.js";
12
- import ue from "./KvLoanProgressGroup.js";
13
- import de from "./KvLoanTag.js";
14
- import me from "./KvMaterialIcon.js";
15
- import fe from "./KvLoadingPlaceholder.js";
16
- import ce from "./KvLoanTeamPick.js";
17
- import ve from "./KvSelect.js";
18
- import { KV_LEND_CTA_FRAGMENT as he, KV_LEND_CTA_USER_FRAGMENT as Le } from "./KvLendCta2.js";
19
- import { KV_LOAN_TAG_FRAGMENT as ge } from "./KvLoanTag2.js";
20
- import { KV_LOAN_USE_FRAGMENT as ye } from "./KvLoanUse2.js";
21
- const d = {
22
- default: "default",
23
- postGoal: "post-goal"
24
- }, pe = (e) => e < 500 && e >= 25, Ae = (e) => oe(e) || pe(e), $e = A`
25
- fragment KvCompactLoanCard on LoanBasic {
26
- id
27
- image {
28
- id
29
- hash
30
- }
31
- lenders(limit: 0) {
32
- totalCount
33
- }
34
- loanFundraisingInfo {
35
- id
36
- fundedAmount
37
- }
38
- name
39
- ...KvLendCta
40
- ...KvLoanTag
41
- ...KvLoanUse
42
- ...LoanCallouts
43
- ...LoanGeocode
44
- ...LoanProgress
45
- }
46
- ${he}
47
- ${ge}
48
- ${ye}
49
- ${Q}
50
- ${X}
51
- ${Y}
52
- `, He = A`
53
- fragment KvCompactLoanCardUser on LoanBasic {
54
- id
55
- ...KvLendCtaUser
56
- }
57
- ${Le}
58
- `, je = {
59
- name: "KvCompactLoanCard",
60
- components: {
61
- KvBorrowerImage: re,
62
- KvLoadingPlaceholder: fe,
63
- KvLoanUse: le,
64
- KvMaterialIcon: me,
65
- KvLendCta: se,
66
- KvLoanTag: de,
67
- KvLoanCallouts: ie,
68
- KvLoanTeamPick: ce,
69
- KvLoanProgressGroup: ue,
70
- KvSelect: ve
71
- },
72
- props: {
73
- variant: {
74
- type: String,
75
- default: d.default,
76
- validator: (e) => Object.values(d).includes(e)
77
- },
78
- loanId: {
79
- type: Number,
80
- default: void 0
81
- },
82
- loan: {
83
- type: Object,
84
- default: null
85
- },
86
- customLoanDetails: {
87
- type: Boolean,
88
- default: !1
89
- },
90
- showTags: {
91
- type: Boolean,
92
- default: !0
93
- },
94
- categoryPageName: {
95
- type: String,
96
- default: ""
97
- },
98
- enableFiveDollarsNotes: {
99
- type: Boolean,
100
- default: !1
101
- },
102
- isAdding: {
103
- type: Boolean,
104
- default: !1
105
- },
106
- isVisitor: {
107
- type: Boolean,
108
- default: !0
109
- },
110
- basketItems: {
111
- type: Array,
112
- default: () => []
113
- },
114
- kvTrackFunction: {
115
- type: Function,
116
- required: !0
117
- },
118
- photoPath: {
119
- type: String,
120
- required: !0
121
- },
122
- showViewLoan: {
123
- type: Boolean,
124
- default: !1
125
- },
126
- externalLinks: {
127
- type: Boolean,
128
- default: !1
129
- },
130
- externalLinksNewTab: {
131
- type: Boolean,
132
- default: !1
133
- },
134
- route: {
135
- type: Object,
136
- default: void 0
137
- },
138
- userBalance: {
139
- type: String,
140
- default: void 0
141
- },
142
- getCookie: {
143
- type: Function,
144
- default: void 0
145
- },
146
- setCookie: {
147
- type: Function,
148
- default: void 0
149
- },
150
- fiveDollarsSelected: {
151
- type: Boolean,
152
- default: !1
153
- },
154
- customCallouts: {
155
- type: Array,
156
- default: () => []
157
- },
158
- isTeamPick: {
159
- type: Boolean,
160
- default: !1
161
- },
162
- primaryButtonText: {
163
- type: String,
164
- default: "Lend"
165
- },
166
- secondaryButtonHandler: {
167
- type: Function,
168
- default: void 0
169
- },
170
- secondaryButtonText: {
171
- type: String,
172
- default: "Checkout now"
173
- },
174
- showContributors: {
175
- type: Boolean,
176
- default: !1
177
- },
178
- customHref: {
179
- type: String,
180
- default: ""
181
- },
182
- businessName: {
183
- type: String,
184
- default: ""
185
- },
186
- website: {
187
- type: String,
188
- default: ""
189
- },
190
- showLoanUse: {
191
- type: Boolean,
192
- default: !0
193
- },
194
- showLightView: {
195
- type: Boolean,
196
- default: !1
197
- },
198
- truncateWordsNumber: {
199
- type: Number,
200
- default: 0
201
- },
202
- showRefreshButton: {
203
- type: Boolean,
204
- default: !1
205
- },
206
- customAmountLent: {
207
- type: String,
208
- default: "25"
209
- },
210
- enableMultiMatching: {
211
- type: Boolean,
212
- default: !1
213
- }
214
- },
215
- emits: [
216
- "refresh-button",
217
- "jump-filter-page",
218
- "add-to-basket",
219
- "remove-from-basket",
220
- "show-loan-details",
221
- "update:selected-amount"
222
- ],
223
- setup(e, { emit: a }) {
224
- const n = $(""), s = o(
225
- () => e.variant === d.postGoal
226
- ), {
227
- allDataLoaded: C,
228
- borrowerName: m,
229
- city: b,
230
- countryName: N,
231
- distributionModel: f,
232
- formattedLocation: c,
233
- fundraisingPercent: S,
234
- hasProgressData: _,
235
- imageHash: w,
236
- isLoading: B,
237
- loanAmount: v,
238
- loanBorrowerCount: h,
239
- loanCallouts: T,
240
- loanStatus: L,
241
- loanUse: g,
242
- readMorePath: k,
243
- state: M,
244
- tag: F,
245
- unreservedAmount: u,
246
- sharesAvailable: K
247
- } = Z(e), { clickReadMore: R } = ee(e, a), P = o(() => s.value ? void 0 : { width: "100px", height: "100px" }), E = o(() => {
248
- if (!e.website)
249
- return "";
250
- const t = e.website.trim();
251
- return t.startsWith("http://") || t.startsWith("https://") ? t : `https://${t}`;
252
- }), G = o(() => {
253
- if (s.value) return {};
254
- const t = e.showLightView ? "auto" : "6.75rem", l = e.showLightView ? "none" : "6.75rem";
255
- return { height: t, maxHeight: l };
256
- }), r = o(() => {
257
- var t;
258
- return ne({
259
- anonymizationLevel: (t = e.loan) == null ? void 0 : t.anonymizationLevel,
260
- borrowerName: m.value,
261
- distributionModel: f.value,
262
- formattedLocation: c.value,
263
- loanAmount: v.value,
264
- loanBorrowerCount: h.value,
265
- loanStatus: L.value,
266
- loanUse: g.value
267
- });
268
- }), O = o(() => r.value.borrowerNameWithCountry), U = o(() => r.value.loanUsePrefixStart), D = o(() => r.value.loanUsePrefixEnd), V = o(() => r.value.statementTitle), I = o(() => r.value.visibleUseStatement), y = o(() => {
269
- var i;
270
- const t = parseFloat(u.value);
271
- if (!t) return [];
272
- const l = t < 25 ? parseFloat(`${((i = e.loan) == null ? void 0 : i.minNoteSize) ?? 25}`) : 25;
273
- return te(
274
- u.value,
275
- Ae(t),
276
- l,
277
- e.enableFiveDollarsNotes,
278
- e.isVisitor
279
- );
280
- });
281
- H(
282
- y,
283
- (t) => {
284
- var i, p;
285
- if (!s.value) return;
286
- if (!t.length) {
287
- n.value = "";
288
- return;
289
- }
290
- const l = ae(
291
- e.getCookie,
292
- e.setCookie,
293
- e.enableFiveDollarsNotes,
294
- (p = (i = e.route) == null ? void 0 : i.query) == null ? void 0 : p.utm_campaign,
295
- u.value,
296
- e.userBalance ? parseFloat(e.userBalance) : void 0,
297
- e.fiveDollarsSelected
298
- );
299
- n.value = t.includes(l) ? l : t[0];
300
- },
301
- { immediate: !0 }
302
- );
303
- const x = o(() => e.showLightView ? 3 : 4);
304
- return {
305
- allDataLoaded: C,
306
- amountOptions: y,
307
- borrowerImageStyle: P,
308
- borrowerName: m,
309
- borrowerNameWithCountry: O,
310
- city: b,
311
- countryName: N,
312
- distributionModel: f,
313
- formattedLocation: c,
314
- formattedWebsite: E,
315
- fundraisingPercent: S,
316
- hasProgressData: _,
317
- imageHash: w,
318
- isLoading: B,
319
- isPostGoalVariant: s,
320
- loanAmount: v,
321
- loanBorrowerCount: h,
322
- loanCallouts: T,
323
- loanStatus: L,
324
- loanUse: g,
325
- loanUsePrefixEnd: D,
326
- loanUsePrefixStart: U,
327
- mdiMapMarker: J,
328
- mdiHome: z,
329
- mdiLink: q,
330
- mdiCached: j,
331
- readMorePath: k,
332
- state: M,
333
- tag: F,
334
- unreservedAmount: u,
335
- sharesAvailable: K,
336
- selectedAmount: n,
337
- statementTitle: V,
338
- customStyle: G,
339
- loanUseLoadingRows: x,
340
- visibleUseStatement: I,
341
- clickReadMore: R,
342
- trackWebsiteClick: () => {
343
- e.kvTrackFunction(
344
- "Lending",
345
- "click-Business Website",
346
- "Website",
347
- e.loanId
348
- );
349
- },
350
- handleRefreshButton: (t) => {
351
- a("refresh-button", t);
352
- },
353
- handleSelectedAmount: (t) => {
354
- var l;
355
- n.value = t, a("update:selected-amount", t), e.kvTrackFunction(
356
- "Lending",
357
- "Modify lend amount",
358
- t,
359
- e.loanId ?? ((l = e.loan) == null ? void 0 : l.id)
360
- );
361
- }
362
- };
363
- },
364
- computed: {
365
- lendersNumber() {
366
- var e, a;
367
- return ((a = (e = this.loan) == null ? void 0 : e.lenders) == null ? void 0 : a.totalCount) ?? 0;
368
- },
369
- amountLent() {
370
- var a, n;
371
- const e = ((n = (a = this.loan) == null ? void 0 : a.loanFundraisingInfo) == null ? void 0 : n.fundedAmount) ?? 0;
372
- return W(e).format("$0,0");
373
- },
374
- isInBasket() {
375
- var e;
376
- return ((e = this.basketItems) == null ? void 0 : e.some((a) => a.__typename === "LoanReservation" && a.id === this.loanId)) ?? !1;
377
- },
378
- hasMatchingInfo() {
379
- var e, a, n;
380
- return !!((e = this.loan) != null && e.matchingText) || this.enableMultiMatching && (((n = (a = this.loan) == null ? void 0 : a.simultaneousMatching) == null ? void 0 : n.length) ?? 0) > 0;
381
- }
382
- }
383
- };
1
+ import D from "./KvCompactLoanCard.js";
2
+ import { KV_COMPACT_LOAN_CARD_FRAGMENT as gt, KV_COMPACT_LOAN_CARD_USER_FRAGMENT as ft } from "./KvCompactLoanCard.js";
3
+ import { resolveComponent as h, openBlock as a, createElementBlock as l, normalizeClass as c, createVNode as i, createCommentVNode as g, createElementVNode as r, normalizeStyle as _, createBlock as d, resolveDynamicComponent as k, withCtx as f, Fragment as s, toDisplayString as w, withModifiers as R, renderList as u } from "vue";
4
+ import "./KvCompactLoanCard.css";
5
+ import B from "../_virtual/_plugin-vue_export-helper.js";
6
+ const S = ["aria-busy"], G = { class: "tw-flex tw-flex-col tw-items-start tw-w-full" }, U = {
7
+ key: 1,
8
+ class: "tw-flex-shrink-0 tw-overflow-hidden"
9
+ }, I = {
10
+ key: 0,
11
+ class: "tw-w-full"
12
+ }, W = ["title"], j = { class: "tw-flex tw-items-center tw-gap-0.5 tw-w-full tw-min-w-0" }, E = { class: "tw-text-gray-600 !tw-font-medium tw-text-small tw-leading-normal tw-flex-shrink-0" }, F = ["title"], O = {
13
+ key: 1,
14
+ class: "tw-mb-0.5 tw-w-full"
15
+ }, K = { class: "tw-text-primary !tw-font-medium tw-text-base tw-leading-normal tw-truncate" }, z = ["href"], H = { class: "tw-truncate" }, Z = ["title"], q = { class: "tw-font-medium" }, J = {
16
+ key: 0,
17
+ "data-testid": "loan-use-loading",
18
+ class: "tw-w-full tw-overflow-hidden"
19
+ }, Q = {
20
+ key: 1,
21
+ class: "loan-card-use-text-light-detailed tw-w-full tw-overflow-hidden"
22
+ }, X = {
23
+ key: 0,
24
+ class: "tw-w-full tw-overflow-hidden"
25
+ }, Y = { class: "tw-flex-1 tw-min-w-0 tw-mr-1" }, p = {
26
+ class: "tw-flex-1 tw-min-w-0 tw-px-0.5",
27
+ style: { "max-width": "9.75rem" }
28
+ }, $ = { class: "tw-flex tw-items-center tw-gap-2 tw-flex-shrink-0" }, tt = {
29
+ "data-testid": "light-detailed-amount-pill",
30
+ class: "tw-border tw-border-gray-100 tw-rounded-sm tw-px-1 tw-py-0.5 tw-text-label tw-text-primary"
31
+ }, et = {
32
+ class: "tw-flex-1 tw-min-w-0",
33
+ style: { "max-width": "6.5rem" }
34
+ }, at = ["value"], ot = { class: "tw-flex-1 tw-min-w-0" }, nt = { class: "tw-p-1 tw-rounded-l-sm tw-border tw-border-gray-100 tw-border-r-0" };
35
+ function lt(b, n, e, t, rt, x) {
36
+ var V;
37
+ const v = h("kv-material-icon"), m = h("kv-loading-placeholder"), P = h("kv-borrower-image"), C = h("kv-loan-tag"), L = h("kv-loan-use"), M = h("kv-loan-callouts"), y = h("kv-loan-progress-group"), N = h("kv-select"), A = h("kv-lend-cta");
38
+ return a(), l("div", {
39
+ class: c(["tw-flex tw-flex-col tw-items-start tw-justify-between tw-p-1 tw-bg-white tw-shadow-lg tw-w-full", {
40
+ "tw-relative": t.shouldShowRefreshButton,
41
+ "!tw-p-1.5": e.showLightView || t.isPostGoalVariant,
42
+ "tw-rounded-md": !t.isLightDetailedVariant,
43
+ "tw-rounded": t.isLightDetailedVariant
44
+ }]),
45
+ "aria-busy": t.isLoading ? "true" : "false"
46
+ }, [
47
+ t.shouldShowRefreshButton ? (a(), l("button", {
48
+ key: 0,
49
+ class: "tw-absolute tw--top-1 tw--right-1 tw-bg-white tw-rounded-full tw-w-2.5 tw-h-2.5 tw-flex tw-items-center tw-justify-center tw-cursor-pointer tw-drop-shadow-sm",
50
+ onClick: n[0] || (n[0] = (...o) => t.handleRefreshButton && t.handleRefreshButton(...o))
51
+ }, [
52
+ i(v, {
53
+ icon: t.mdiCached,
54
+ class: "tw-w-2.5 tw-h-2.5 tw--scale-x-100 tw-text-gray-500"
55
+ }, null, 8, ["icon"])
56
+ ])) : g("", !0),
57
+ r("div", G, [
58
+ r("div", {
59
+ class: c(["tw-flex tw-items-start tw-gap-2 tw-w-full loan-card-active-hover", {
60
+ "!tw-gap-1": e.showLightView || t.isLightDetailedVariant,
61
+ "!tw-gap-1.5 md:!tw-gap-2.5": t.isPostGoalVariant
62
+ }]),
63
+ style: _(t.customStyle)
64
+ }, [
65
+ t.isLoading ? (a(), d(m, {
66
+ key: 0,
67
+ "aria-hidden": "true",
68
+ class: c({
69
+ "!tw-w-7.5 !tw-h-7.5": e.showLightView,
70
+ "!tw-w-7.5 !tw-h-7.5 md:!tw-w-12.5 md:!tw-h-12.5": t.isPostGoalVariant,
71
+ "!tw-w-9.5 !tw-h-9.5": t.isLightDetailedVariant
72
+ }),
73
+ style: _(t.borrowerImageStyle)
74
+ }, null, 8, ["class", "style"])) : (a(), l("div", U, [
75
+ (a(), d(k(t.tag), {
76
+ to: t.readMorePath,
77
+ href: t.readMorePath,
78
+ target: e.externalLinksNewTab ? "_blank" : void 0,
79
+ rel: e.externalLinksNewTab ? "noopener noreferrer" : void 0,
80
+ class: "tw-flex",
81
+ "aria-label": "Borrower image",
82
+ onClick: n[1] || (n[1] = (o) => t.clickReadMore("Photo", o))
83
+ }, {
84
+ default: f(() => [
85
+ i(P, {
86
+ class: c(["tw-bg-gray-300 tw-rounded-sm tw-object-cover tw-bg-clip-content", {
87
+ "!tw-w-7.5 !tw-h-7.5": e.showLightView,
88
+ "!tw-w-7.5 !tw-h-7.5 md:!tw-w-12.5 md:!tw-h-12.5": t.isPostGoalVariant,
89
+ "!tw-w-9.5 !tw-h-9.5": t.isLightDetailedVariant
90
+ }]),
91
+ style: _(t.borrowerImageStyle),
92
+ alt: `Photo of ${t.borrowerName}`,
93
+ "aspect-ratio": 1,
94
+ "default-image": { width: 200, faceZoom: 50 },
95
+ hash: t.imageHash,
96
+ images: [{ width: 200, faceZoom: 50 }],
97
+ "photo-path": e.photoPath
98
+ }, null, 8, ["class", "style", "alt", "hash", "photo-path"])
99
+ ]),
100
+ _: 1
101
+ }, 8, ["to", "href", "target", "rel"]))
102
+ ])),
103
+ r("div", {
104
+ class: c(["tw-flex tw-flex-col tw-items-start tw-gap-1 tw-flex-1 tw-min-w-0", { "!tw-gap-0": t.isPostGoalVariant }])
105
+ }, [
106
+ t.isLightDetailedVariant ? (a(), l("div", I, [
107
+ t.isLoading ? (a(), l(s, { key: 0 }, [
108
+ i(m, { class: "tw-mb-0.5 !tw-w-full !tw-h-2" }),
109
+ i(m, { class: "!tw-w-9 !tw-h-2" })
110
+ ], 64)) : (a(), l(s, { key: 1 }, [
111
+ r("p", {
112
+ title: t.borrowerName,
113
+ class: "tw-text-primary !tw-font-medium tw-text-small tw-leading-normal tw-truncate tw-w-full"
114
+ }, w(t.borrowerName), 9, W),
115
+ r("div", j, [
116
+ r("span", E, w(t.lightDetailedAmount), 1),
117
+ t.formattedLocation ? (a(), l(s, { key: 0 }, [
118
+ n[14] || (n[14] = r("span", {
119
+ "aria-hidden": "true",
120
+ class: "tw-w-0.5 tw-h-0.5 tw-rounded-full tw-bg-gray-600 tw-flex-shrink-0"
121
+ }, null, -1)),
122
+ r("span", {
123
+ title: t.formattedLocation,
124
+ class: "tw-text-gray-600 !tw-font-medium tw-text-small tw-leading-normal tw-truncate tw-min-w-0"
125
+ }, w(t.formattedLocation), 9, F)
126
+ ], 64)) : g("", !0)
127
+ ])
128
+ ], 64))
129
+ ])) : e.businessName ? (a(), l("div", O, [
130
+ (a(), d(k(t.tag), {
131
+ to: t.readMorePath,
132
+ href: t.readMorePath,
133
+ target: e.externalLinksNewTab ? "_blank" : void 0,
134
+ rel: e.externalLinksNewTab ? "noopener noreferrer" : void 0,
135
+ class: "tw-no-underline hover:tw-underline focus:tw-no-underline",
136
+ "aria-label": "Business name",
137
+ onClick: n[2] || (n[2] = (o) => t.clickReadMore("Business", o))
138
+ }, {
139
+ default: f(() => [
140
+ r("h3", K, w(e.businessName), 1)
141
+ ]),
142
+ _: 1
143
+ }, 8, ["to", "href", "target", "rel"])),
144
+ e.website ? (a(), l("a", {
145
+ key: 0,
146
+ href: t.formattedWebsite,
147
+ target: "_blank",
148
+ class: "tw-flex tw-items-center tw-gap-0.5 tw-text-secondary tw-text-small tw-font-light tw-leading-normal tw-no-underline hover:tw-underline",
149
+ onClick: n[3] || (n[3] = R((...o) => t.trackWebsiteClick && t.trackWebsiteClick(...o), ["stop"]))
150
+ }, [
151
+ i(v, {
152
+ icon: t.mdiLink,
153
+ class: "tw-w-2 tw-h-2"
154
+ }, null, 8, ["icon"]),
155
+ r("span", H, w(e.website), 1)
156
+ ], 8, z)) : g("", !0)
157
+ ])) : g("", !0),
158
+ !t.isLoading && !t.isLightDetailedVariant ? (a(), d(k(t.tag), {
159
+ key: 2,
160
+ to: t.readMorePath,
161
+ href: t.readMorePath,
162
+ target: e.externalLinksNewTab ? "_blank" : void 0,
163
+ rel: e.externalLinksNewTab ? "noopener noreferrer" : void 0,
164
+ class: "tw-flex tw-no-underline hover:tw-no-underline focus:tw-no-underline -tw-mt-1",
165
+ "aria-label": "Loan tag",
166
+ onClick: n[4] || (n[4] = (o) => t.clickReadMore("Tag", o))
167
+ }, {
168
+ default: f(() => [
169
+ e.showTags ? (a(), d(C, {
170
+ key: 0,
171
+ class: c({
172
+ "tw-mb-1 !tw-font-medium": t.isPostGoalVariant
173
+ }),
174
+ loan: e.loan,
175
+ "enable-multi-matching": e.enableMultiMatching
176
+ }, null, 8, ["class", "loan", "enable-multi-matching"])) : g("", !0)
177
+ ]),
178
+ _: 1
179
+ }, 8, ["to", "href", "target", "rel"])) : g("", !0),
180
+ t.isPostGoalVariant ? (a(), l(s, { key: 3 }, [
181
+ t.isLoading ? (a(), l(s, { key: 0 }, u(4, (o) => i(m, {
182
+ key: o,
183
+ class: "tw-mb-0.5 md:!tw-mb-1.5 !tw-w-full !tw-h-1.5 md:!tw-h-2"
184
+ })), 64)) : (a(), l("p", {
185
+ key: 1,
186
+ class: "tw-text-small tw-mb-0 tw-leading-normal",
187
+ style: { "line-height": "150%" },
188
+ title: t.statementTitle,
189
+ "data-testid": "loan-use-statement"
190
+ }, [
191
+ r("span", null, w(t.loanUsePrefixStart), 1),
192
+ r("span", q, w(t.borrowerNameWithCountry), 1),
193
+ r("span", null, w(t.loanUsePrefixEnd), 1),
194
+ r("span", null, w(t.visibleUseStatement), 1)
195
+ ], 8, Z))
196
+ ], 64)) : t.isLightDetailedVariant ? (a(), l(s, { key: 4 }, [
197
+ t.isLoading ? (a(), l("div", J, [
198
+ (a(!0), l(s, null, u(t.loanUseLoadingRows, (o) => (a(), l("div", {
199
+ key: o,
200
+ class: "tw-h-2 tw-mb-1"
201
+ }, [
202
+ i(m)
203
+ ]))), 128))
204
+ ])) : (a(), l("div", Q, [
205
+ i(L, {
206
+ use: t.loanUse,
207
+ "loan-amount": t.loanAmount,
208
+ status: t.loanStatus,
209
+ "borrower-count": t.loanBorrowerCount,
210
+ name: t.borrowerName,
211
+ "distribution-model": t.distributionModel,
212
+ "hide-borrower-details": !0,
213
+ "data-testid": "loan-use-statement",
214
+ class: "tw-text-small tw-leading-normal tw-text-primary"
215
+ }, null, 8, ["use", "loan-amount", "status", "borrower-count", "name", "distribution-model"])
216
+ ]))
217
+ ], 64)) : e.showLoanUse ? (a(), d(k(t.tag), {
218
+ key: 5,
219
+ to: t.readMorePath,
220
+ href: t.readMorePath,
221
+ target: e.externalLinksNewTab ? "_blank" : void 0,
222
+ rel: e.externalLinksNewTab ? "noopener noreferrer" : void 0,
223
+ class: "loan-card-use tw-no-underline tw-text-primary tw-block tw-w-full",
224
+ "aria-label": "Loan use",
225
+ onClick: n[5] || (n[5] = (o) => t.clickReadMore("Use", o))
226
+ }, {
227
+ default: f(() => [
228
+ t.isLoading ? (a(), l("div", X, [
229
+ (a(!0), l(s, null, u([...Array(t.loanUseLoadingRows)], (o, T) => (a(), l("div", {
230
+ key: T,
231
+ class: "tw-h-2 tw-mb-1"
232
+ }, [
233
+ i(m)
234
+ ]))), 128))
235
+ ])) : (a(), l("div", {
236
+ key: 1,
237
+ class: c(["tw-w-full tw-overflow-hidden", { "!tw--mt-1": e.showTags && x.hasMatchingInfo && e.showLightView }])
238
+ }, [
239
+ i(L, {
240
+ use: t.loanUse,
241
+ "loan-amount": t.loanAmount,
242
+ status: t.loanStatus,
243
+ "borrower-count": t.loanBorrowerCount,
244
+ name: t.borrowerName,
245
+ "distribution-model": t.distributionModel,
246
+ "bold-name": !0,
247
+ country: t.formattedLocation,
248
+ "show-read-more": e.showLightView,
249
+ "truncate-words-number": e.truncateWordsNumber,
250
+ class: "tw-text-small tw-leading-tight"
251
+ }, null, 8, ["use", "loan-amount", "status", "borrower-count", "name", "distribution-model", "country", "show-read-more", "truncate-words-number"])
252
+ ], 2))
253
+ ]),
254
+ _: 1
255
+ }, 8, ["to", "href", "target", "rel"])) : g("", !0)
256
+ ], 2)
257
+ ], 6),
258
+ t.isLoading || typeof t.loanCallouts > "u" ? (a(), d(m, {
259
+ key: 0,
260
+ class: "tw-mt-1.5 tw-mb-1 tw-rounded-full",
261
+ style: { width: "60%", height: "1.5rem" }
262
+ })) : (a(), d(M, {
263
+ key: 1,
264
+ callouts: t.loanCallouts,
265
+ class: c(["tw-mt-1.5", { "goal-variant-callouts": t.isPostGoalVariant }]),
266
+ onClick: n[6] || (n[6] = (o) => b.$emit("jump-filter-page", o))
267
+ }, null, 8, ["callouts", "class"]))
268
+ ]),
269
+ r("div", {
270
+ class: c(["tw-flex tw-items-center tw-justify-between tw-w-full tw-mt-1", {
271
+ "tw-gap-1": t.sharesAvailable,
272
+ "!tw-items-end !tw-gap-2": t.isPostGoalVariant,
273
+ "!tw-mt-1.5": t.isLightDetailedVariant
274
+ }])
275
+ }, [
276
+ t.hasProgressData ? t.isLightDetailedVariant ? (a(), l(s, { key: 1 }, [
277
+ r("div", p, [
278
+ i(y, {
279
+ "money-left": t.unreservedAmount,
280
+ "progress-percent": t.fundraisingPercent,
281
+ class: "tw-text-black light-detailed-progress-group"
282
+ }, null, 8, ["money-left", "progress-percent"])
283
+ ]),
284
+ r("div", $, [
285
+ r("span", tt, " $" + w(e.customAmountLent), 1),
286
+ (a(), d(k(t.tag), {
287
+ to: t.readMorePath,
288
+ href: t.readMorePath,
289
+ target: e.externalLinksNewTab ? "_blank" : void 0,
290
+ rel: e.externalLinksNewTab ? "noopener noreferrer" : void 0,
291
+ class: "tw-flex tw-items-center tw-justify-center",
292
+ "aria-label": `View ${t.borrowerName || "this borrower"}'s loan details`,
293
+ onClick: n[7] || (n[7] = (o) => t.clickReadMore("Arrow", o))
294
+ }, {
295
+ default: f(() => [
296
+ i(v, {
297
+ icon: t.mdiArrowRight,
298
+ class: "tw-w-2.5 tw-h-2.5 tw-text-action"
299
+ }, null, 8, ["icon"])
300
+ ]),
301
+ _: 1
302
+ }, 8, ["to", "href", "target", "rel", "aria-label"]))
303
+ ])
304
+ ], 64)) : t.isPostGoalVariant ? (a(), l(s, { key: 2 }, [
305
+ r("div", et, [
306
+ i(y, {
307
+ "money-left": t.unreservedAmount,
308
+ "progress-percent": t.fundraisingPercent,
309
+ class: "tw-text-black goal-variant-progress-group"
310
+ }, null, 8, ["money-left", "progress-percent"])
311
+ ]),
312
+ r("div", null, [
313
+ i(N, {
314
+ id: `PostGoalAmountDropdown_${((V = e.loan) == null ? void 0 : V.id) ?? e.loanId}`,
315
+ modelValue: t.selectedAmount,
316
+ "onUpdate:modelValue": [
317
+ n[8] || (n[8] = (o) => t.selectedAmount = o),
318
+ t.handleSelectedAmount
319
+ ],
320
+ "aria-label": "Lend amount",
321
+ disabled: !t.amountOptions.length || x.isInBasket,
322
+ class: "amount-dropdown"
323
+ }, {
324
+ default: f(() => [
325
+ (a(!0), l(s, null, u(t.amountOptions, (o) => (a(), l("option", {
326
+ key: o,
327
+ value: o
328
+ }, " $" + w(o), 9, at))), 128))
329
+ ]),
330
+ _: 1
331
+ }, 8, ["id", "modelValue", "disabled", "onUpdate:modelValue"])
332
+ ])
333
+ ], 64)) : (a(), l(s, { key: 3 }, [
334
+ r("div", ot, [
335
+ t.sharesAvailable ? (a(), d(k(t.tag), {
336
+ key: 0,
337
+ to: t.readMorePath,
338
+ href: t.readMorePath,
339
+ target: e.externalLinksNewTab ? "_blank" : void 0,
340
+ rel: e.externalLinksNewTab ? "noopener noreferrer" : void 0,
341
+ class: "loan-card-progress tw-no-underline tw-block",
342
+ "aria-label": "Loan progress",
343
+ onClick: n[9] || (n[9] = (o) => t.clickReadMore("Progress", o))
344
+ }, {
345
+ default: f(() => [
346
+ i(y, {
347
+ id: "loanProgress",
348
+ "money-left": t.unreservedAmount,
349
+ "progress-percent": t.fundraisingPercent,
350
+ class: "tw-text-black"
351
+ }, null, 8, ["money-left", "progress-percent"])
352
+ ]),
353
+ _: 1
354
+ }, 8, ["to", "href", "target", "rel"])) : g("", !0)
355
+ ]),
356
+ e.showLightView ? (a(), l("button", {
357
+ key: 0,
358
+ class: "tw-ml-2",
359
+ onClick: n[10] || (n[10] = (o) => t.clickReadMore("View", o))
360
+ }, [
361
+ r("span", nt, " $" + w(e.customAmountLent), 1),
362
+ n[15] || (n[15] = r("span", { class: "tw-bg-gray-100 tw-px-1.5 tw-py-1 tw-rounded-r-sm tw-border tw-border-gray-100 tw-text-action tw-font-medium hover:tw-underline tw-text-center tw-cursor-pointer" }, " View ", -1))
363
+ ])) : (a(), l("div", {
364
+ key: 1,
365
+ class: c(["tw-flex-shrink-0 loan-card-cta", { "tw-w-full": !t.sharesAvailable }]),
366
+ style: { height: "40px" }
367
+ }, [
368
+ i(A, {
369
+ loan: e.loan,
370
+ "unreserved-amount": t.unreservedAmount,
371
+ "basket-items": e.basketItems,
372
+ "is-loading": t.isLoading,
373
+ "is-adding": e.isAdding,
374
+ "enable-five-dollars-notes": e.enableFiveDollarsNotes,
375
+ "five-dollars-selected": e.fiveDollarsSelected,
376
+ "kv-track-function": e.kvTrackFunction,
377
+ "show-view-loan": e.showViewLoan,
378
+ "custom-loan-details": e.customLoanDetails,
379
+ "external-links": e.externalLinks,
380
+ route: e.route,
381
+ "user-balance": e.userBalance,
382
+ "get-cookie": e.getCookie,
383
+ "set-cookie": e.setCookie,
384
+ "is-visitor": e.isVisitor,
385
+ "primary-button-text": e.primaryButtonText,
386
+ "secondary-button-text": e.secondaryButtonText,
387
+ "secondary-button-handler": e.secondaryButtonHandler,
388
+ onAddToBasket: n[11] || (n[11] = (o) => b.$emit("add-to-basket", o)),
389
+ onShowLoanDetails: n[12] || (n[12] = (o) => t.clickReadMore("ViewLoan", o)),
390
+ onRemoveFromBasket: n[13] || (n[13] = (o) => b.$emit("remove-from-basket", o))
391
+ }, null, 8, ["loan", "unreserved-amount", "basket-items", "is-loading", "is-adding", "enable-five-dollars-notes", "five-dollars-selected", "kv-track-function", "show-view-loan", "custom-loan-details", "external-links", "route", "user-balance", "get-cookie", "set-cookie", "is-visitor", "primary-button-text", "secondary-button-text", "secondary-button-handler"])
392
+ ], 2))
393
+ ], 64)) : (a(), l(s, { key: 0 }, [
394
+ r("div", Y, [
395
+ i(m, {
396
+ class: "tw-mb-0.5",
397
+ style: { width: "100%", maxWidth: "11rem", height: "1rem" }
398
+ }),
399
+ i(m, {
400
+ class: "tw-rounded",
401
+ style: { width: "100%", maxWidth: "11rem", height: "0.5rem" }
402
+ })
403
+ ]),
404
+ t.allDataLoaded ? g("", !0) : (a(), d(m, {
405
+ key: 0,
406
+ class: "tw-rounded tw-flex-shrink-0",
407
+ style: { width: "8rem", height: "2.5rem" }
408
+ }))
409
+ ], 64))
410
+ ], 2)
411
+ ], 10, S);
412
+ }
413
+ const mt = /* @__PURE__ */ B(D, [["render", lt], ["__scopeId", "data-v-330ff302"]]);
384
414
  export {
385
- $e as KV_COMPACT_LOAN_CARD_FRAGMENT,
386
- He as KV_COMPACT_LOAN_CARD_USER_FRAGMENT,
387
- je as default
415
+ gt as KV_COMPACT_LOAN_CARD_FRAGMENT,
416
+ ft as KV_COMPACT_LOAN_CARD_USER_FRAGMENT,
417
+ mt as default
388
418
  };