@kiva/kv-components 8.17.0 → 8.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +232 -227
- package/dist/utils/imageUtils.d.ts +19 -0
- package/dist/utils/imageUtils.js +70 -23
- package/dist/utils/useTypeaheadSearch.d.ts +1 -1
- package/dist/utils/useTypeaheadSearch.js +33 -32
- package/dist/vue/KvImageUpload.css +1 -0
- package/dist/vue/KvImageUpload.js +72 -0
- package/dist/vue/KvImageUpload2.js +150 -0
- package/dist/vue/KvPieChartV2.vue.d.ts +1 -1
- package/dist/vue/KvWwwHeaderBasic/KvWwwHeaderBasic.css +1 -1
- package/dist/vue/KvWwwHeaderBasic/KvWwwHeaderBasic.js +63 -61
- package/dist/vue/KvWwwHeaderBasic/KvWwwHeaderBasic2.js +100 -68
- package/dist/vue/KvWwwHeaderBasic/LinkBar.vue.d.ts +19 -0
- package/dist/vue/KvWwwHeaderBasic/MyKivaMenu.css +1 -1
- package/dist/vue/KvWwwHeaderBasic/MyKivaMenu.js +96 -54
- package/dist/vue/KvWwwHeaderBasic/MyKivaMenu.vue.d.ts +19 -0
- package/dist/vue/KvWwwHeaderBasic/MyKivaMenu2.js +21 -11
- package/dist/vue/KvWwwHeaderBasic/SearchBar2.js +26 -26
- package/dist/vue/index.d.ts +1 -0
- package/package.json +2 -2
|
@@ -1,36 +1,37 @@
|
|
|
1
|
-
import { ref as o, watch as
|
|
2
|
-
import
|
|
3
|
-
import { GIFT_SUGGESTIONS as
|
|
4
|
-
const
|
|
5
|
-
function
|
|
6
|
-
return Object.keys(u).some((
|
|
1
|
+
import { ref as o, watch as g, computed as v, unref as E } from "vue";
|
|
2
|
+
import S from "./typeaheadSearchEngine.js";
|
|
3
|
+
import { GIFT_SUGGESTIONS as R, MAX_PER_GROUP as O, SECTION_ORDER as m } from "./typeaheadSearchConfig.js";
|
|
4
|
+
const _ = ["activity", "city_state", "loanTags", "state", "loanLimit"];
|
|
5
|
+
function T(u) {
|
|
6
|
+
return Object.keys(u).some((a) => _.includes(a));
|
|
7
7
|
}
|
|
8
8
|
function y(u) {
|
|
9
|
-
return u &&
|
|
9
|
+
return u && T(u) ? "/lend" : "/lend/filter";
|
|
10
10
|
}
|
|
11
|
-
function
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}, { immediate: !0 }),
|
|
16
|
-
if (
|
|
17
|
-
|
|
11
|
+
function I(u, a) {
|
|
12
|
+
const i = new S(), n = o(""), s = o([]), l = o(-1);
|
|
13
|
+
g(u, (e) => {
|
|
14
|
+
i.reset([...e ?? [], ...R]);
|
|
15
|
+
}, { immediate: !0 }), g(n, async (e) => {
|
|
16
|
+
if (l.value = -1, !e) {
|
|
17
|
+
s.value = [];
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
|
-
|
|
20
|
+
s.value = await i.search(e);
|
|
21
21
|
});
|
|
22
|
-
const
|
|
22
|
+
const p = v(() => {
|
|
23
23
|
const e = /* @__PURE__ */ new Map();
|
|
24
|
-
return
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
}), [...e.keys()].sort((
|
|
24
|
+
return s.value.forEach((r) => {
|
|
25
|
+
const t = e.get(r.group) ?? [];
|
|
26
|
+
t.length < O && t.push(r), e.set(r.group, t);
|
|
27
|
+
}), [...e.keys()].sort((r, t) => m.indexOf(r) - m.indexOf(t)).map((r) => ({ group: r, items: e.get(r) ?? [] }));
|
|
28
28
|
});
|
|
29
|
-
function
|
|
29
|
+
function d(e) {
|
|
30
|
+
const r = E(a);
|
|
30
31
|
if (typeof e == "string") {
|
|
31
32
|
const f = { queryString: e };
|
|
32
33
|
return {
|
|
33
|
-
url: `${
|
|
34
|
+
url: `${r}${y(f)}`,
|
|
34
35
|
query: f,
|
|
35
36
|
suggestion: null,
|
|
36
37
|
term: e
|
|
@@ -41,24 +42,24 @@ function w(u, n) {
|
|
|
41
42
|
url: e.url,
|
|
42
43
|
query: null,
|
|
43
44
|
suggestion: e,
|
|
44
|
-
term:
|
|
45
|
+
term: n.value
|
|
45
46
|
};
|
|
46
|
-
const [t,
|
|
47
|
+
const [t, h] = (e.query ?? "").split("="), c = t ? { [t]: h } : null;
|
|
47
48
|
return {
|
|
48
|
-
url: `${
|
|
49
|
+
url: `${r}${y(c)}`,
|
|
49
50
|
query: c,
|
|
50
51
|
suggestion: e,
|
|
51
|
-
term:
|
|
52
|
+
term: n.value
|
|
52
53
|
};
|
|
53
54
|
}
|
|
54
55
|
return {
|
|
55
|
-
term:
|
|
56
|
-
rawResults:
|
|
57
|
-
activeIndex:
|
|
58
|
-
groupedResults:
|
|
59
|
-
resolveSubmit:
|
|
56
|
+
term: n,
|
|
57
|
+
rawResults: s,
|
|
58
|
+
activeIndex: l,
|
|
59
|
+
groupedResults: p,
|
|
60
|
+
resolveSubmit: d
|
|
60
61
|
};
|
|
61
62
|
}
|
|
62
63
|
export {
|
|
63
|
-
|
|
64
|
+
I as useTypeaheadSearch
|
|
64
65
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.image-upload-icon[data-v-ea802cf6]{background-color:#ffffffbf;border-radius:9px;display:flex;align-items:center;justify-content:center;border-radius:.5rem}.image-upload-icon--circle[data-v-ea802cf6]{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-shadow: 0 1px 4px 0 rgb(0 0 0 / .08);--tw-shadow-colored: 0 1px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import p from "./KvImageUpload2.js";
|
|
2
|
+
import { resolveComponent as f, openBlock as i, createElementBlock as n, createElementVNode as a, normalizeClass as l, normalizeStyle as g, renderSlot as b, createVNode as c, withModifiers as w, createCommentVNode as m } from "vue";
|
|
3
|
+
import "./KvImageUpload.css";
|
|
4
|
+
import u from "../_virtual/_plugin-vue_export-helper.js";
|
|
5
|
+
const v = { class: "tw-flex tw-flex-col" }, h = ["src", "alt"], C = ["accept", "aria-label"];
|
|
6
|
+
function k(d, t, s, e, I, _) {
|
|
7
|
+
const r = f("kv-material-icon");
|
|
8
|
+
return i(), n("div", v, [
|
|
9
|
+
a("div", {
|
|
10
|
+
class: l(["kv-image-upload tw-relative", e.shapeClass]),
|
|
11
|
+
style: g(e.containerStyle)
|
|
12
|
+
}, [
|
|
13
|
+
e.previewImage ? (i(), n("img", {
|
|
14
|
+
key: 0,
|
|
15
|
+
src: e.previewImage,
|
|
16
|
+
alt: s.imageAlt,
|
|
17
|
+
class: l(["tw-w-full tw-h-full tw-object-cover", e.shapeClass])
|
|
18
|
+
}, null, 10, h)) : b(d.$slots, "fallback-image", { key: 1 }, () => [
|
|
19
|
+
a("div", {
|
|
20
|
+
class: l(["kv-image-upload__placeholder tw-w-full tw-h-full tw-bg-eco-green-1 tw-p-0.5", e.shapeClass])
|
|
21
|
+
}, [
|
|
22
|
+
a("div", {
|
|
23
|
+
class: l(["tw-flex tw-flex-col tw-items-center tw-justify-center tw-gap-0.5 tw-w-full tw-h-full tw-border-2 tw-border-dashed tw-border-black", e.shapeClass])
|
|
24
|
+
}, [
|
|
25
|
+
c(r, {
|
|
26
|
+
icon: e.mdiCameraPlusOutline,
|
|
27
|
+
class: "tw-w-3.5"
|
|
28
|
+
}, null, 8, ["icon"]),
|
|
29
|
+
t[3] || (t[3] = a("span", { class: "tw-text-label" }, " Add a photo ", -1))
|
|
30
|
+
], 2)
|
|
31
|
+
], 2)
|
|
32
|
+
], !0),
|
|
33
|
+
a("input", {
|
|
34
|
+
ref: "fileInput",
|
|
35
|
+
type: "file",
|
|
36
|
+
accept: e.acceptAttr,
|
|
37
|
+
"aria-label": e.inputLabel,
|
|
38
|
+
class: "tw-absolute tw-inset-0 tw-w-full tw-h-full tw-opacity-0 tw-cursor-pointer",
|
|
39
|
+
onChange: t[0] || (t[0] = (...o) => e.handleFileChange && e.handleFileChange(...o))
|
|
40
|
+
}, null, 40, C),
|
|
41
|
+
e.previewImage || s.showEditIcon ? (i(), n("button", {
|
|
42
|
+
key: 2,
|
|
43
|
+
class: l(["image-upload-icon edit-icon tw-absolute tw-bottom-1 tw-right-1 tw-p-1 tw-z-10", { "image-upload-icon--circle": e.isCircle }]),
|
|
44
|
+
type: "button",
|
|
45
|
+
"aria-hidden": "true",
|
|
46
|
+
tabindex: "-1",
|
|
47
|
+
onClick: t[1] || (t[1] = w((...o) => e.openFileInput && e.openFileInput(...o), ["stop"]))
|
|
48
|
+
}, [
|
|
49
|
+
c(r, {
|
|
50
|
+
icon: e.mdiPencil,
|
|
51
|
+
class: "tw-w-2"
|
|
52
|
+
}, null, 8, ["icon"])
|
|
53
|
+
], 2)) : m("", !0),
|
|
54
|
+
e.previewImage ? (i(), n("button", {
|
|
55
|
+
key: 3,
|
|
56
|
+
class: l(["image-upload-icon remove-icon tw-absolute tw-top-1 tw-right-1 tw-p-1 tw-z-10", { "image-upload-icon--circle": e.isCircle }]),
|
|
57
|
+
type: "button",
|
|
58
|
+
"aria-label": "Remove Image",
|
|
59
|
+
onClick: t[2] || (t[2] = w((...o) => e.removeImage && e.removeImage(...o), ["stop"]))
|
|
60
|
+
}, [
|
|
61
|
+
c(r, {
|
|
62
|
+
icon: e.mdiClose,
|
|
63
|
+
class: "tw-w-2"
|
|
64
|
+
}, null, 8, ["icon"])
|
|
65
|
+
], 2)) : m("", !0)
|
|
66
|
+
], 6)
|
|
67
|
+
]);
|
|
68
|
+
}
|
|
69
|
+
const A = /* @__PURE__ */ u(p, [["render", k], ["__scopeId", "data-v-ea802cf6"]]);
|
|
70
|
+
export {
|
|
71
|
+
A as default
|
|
72
|
+
};
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { toRefs as S, ref as u, watch as x, computed as l } from "vue";
|
|
2
|
+
import { mdiPencil as F, mdiClose as w, mdiCameraPlusOutline as I } from "@mdi/js";
|
|
3
|
+
import C from "./KvMaterialIcon.js";
|
|
4
|
+
import { DEFAULT_ACCEPTED_IMAGE_TYPES as b, validateImageFile as R, cropResizeImageToDataUrl as T } from "../utils/imageUtils.js";
|
|
5
|
+
const U = {
|
|
6
|
+
components: {
|
|
7
|
+
KvMaterialIcon: C
|
|
8
|
+
},
|
|
9
|
+
props: {
|
|
10
|
+
/**
|
|
11
|
+
* URL of an initial image to preview.
|
|
12
|
+
*/
|
|
13
|
+
imageUrl: {
|
|
14
|
+
type: String,
|
|
15
|
+
default: ""
|
|
16
|
+
},
|
|
17
|
+
/**
|
|
18
|
+
* Target crop aspect ratio (width / height). `1` = square, `4 / 3` ≈ 1.333.
|
|
19
|
+
*/
|
|
20
|
+
aspectRatio: {
|
|
21
|
+
type: Number,
|
|
22
|
+
default: 1
|
|
23
|
+
},
|
|
24
|
+
/**
|
|
25
|
+
* Preview shape. `square (default), circle`
|
|
26
|
+
*/
|
|
27
|
+
shape: {
|
|
28
|
+
type: String,
|
|
29
|
+
default: "square",
|
|
30
|
+
validator(e) {
|
|
31
|
+
return ["square", "circle"].includes(e);
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
/**
|
|
35
|
+
* Maximum allowed file size, in megabytes.
|
|
36
|
+
*/
|
|
37
|
+
maxSizeMb: {
|
|
38
|
+
type: Number,
|
|
39
|
+
default: 1
|
|
40
|
+
},
|
|
41
|
+
/**
|
|
42
|
+
* Output resolution used when generating the preview.
|
|
43
|
+
*/
|
|
44
|
+
maxDimension: {
|
|
45
|
+
type: Number,
|
|
46
|
+
default: 1e3
|
|
47
|
+
},
|
|
48
|
+
/**
|
|
49
|
+
* Maximum rendered preview size, in pixels (height; width follows aspectRatio).
|
|
50
|
+
* Note: the parent element must supply a width; this component sets only
|
|
51
|
+
* max-width/max-height + aspect-ratio and will not stretch to fill a sizeless container.
|
|
52
|
+
*/
|
|
53
|
+
previewSize: {
|
|
54
|
+
type: Number,
|
|
55
|
+
default: 200
|
|
56
|
+
},
|
|
57
|
+
/**
|
|
58
|
+
* Accepted MIME types for both the file input and validation.
|
|
59
|
+
*/
|
|
60
|
+
acceptedFileTypes: {
|
|
61
|
+
type: Array,
|
|
62
|
+
default: () => [...b]
|
|
63
|
+
},
|
|
64
|
+
/**
|
|
65
|
+
* Whether to show the edit (pencil) affordance in the blank state, before an image is
|
|
66
|
+
* selected. Off by default. Once an image is present the edit icon always shows
|
|
67
|
+
* (bottom-right, below the remove icon), regardless of this prop.
|
|
68
|
+
*/
|
|
69
|
+
showEditIcon: {
|
|
70
|
+
type: Boolean,
|
|
71
|
+
default: !1
|
|
72
|
+
},
|
|
73
|
+
/**
|
|
74
|
+
* Alt text for the preview image.
|
|
75
|
+
*/
|
|
76
|
+
imageAlt: {
|
|
77
|
+
type: String,
|
|
78
|
+
default: "Image preview"
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
emits: [
|
|
82
|
+
/**
|
|
83
|
+
* Emitted with `{ file }` when a valid file is selected or dropped.
|
|
84
|
+
*/
|
|
85
|
+
"file-uploaded",
|
|
86
|
+
/**
|
|
87
|
+
* Emitted when the current image is removed.
|
|
88
|
+
*/
|
|
89
|
+
"file-removed",
|
|
90
|
+
/**
|
|
91
|
+
* Emitted with `{ type, message }` when validation or processing fails.
|
|
92
|
+
*/
|
|
93
|
+
"file-error"
|
|
94
|
+
],
|
|
95
|
+
setup(e, { emit: r }) {
|
|
96
|
+
const { imageUrl: c } = S(e), a = u(c.value || ""), s = u(null);
|
|
97
|
+
x(c, (t) => {
|
|
98
|
+
a.value = t || "";
|
|
99
|
+
});
|
|
100
|
+
const m = l(() => e.shape === "circle"), d = l(() => m.value ? "tw-rounded-full" : "tw-rounded"), p = l(() => e.acceptedFileTypes.join(",")), f = l(() => a.value ? "Change image" : "Upload image"), g = l(() => ({
|
|
101
|
+
aspectRatio: String(e.aspectRatio),
|
|
102
|
+
maxHeight: `${e.previewSize}px`,
|
|
103
|
+
maxWidth: `${e.previewSize * e.aspectRatio}px`
|
|
104
|
+
})), v = () => {
|
|
105
|
+
var t;
|
|
106
|
+
(t = s.value) == null || t.click();
|
|
107
|
+
}, y = () => {
|
|
108
|
+
a.value = "", r("file-removed");
|
|
109
|
+
}, h = async (t) => {
|
|
110
|
+
const { valid: o, error: i } = R(t, {
|
|
111
|
+
maxSizeMb: e.maxSizeMb,
|
|
112
|
+
acceptedFileTypes: e.acceptedFileTypes
|
|
113
|
+
});
|
|
114
|
+
if (!o && i) {
|
|
115
|
+
r("file-error", i);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
try {
|
|
119
|
+
a.value = await T(t, {
|
|
120
|
+
aspectRatio: e.aspectRatio,
|
|
121
|
+
maxDimension: e.maxDimension
|
|
122
|
+
}), r("file-uploaded", { file: t });
|
|
123
|
+
} catch {
|
|
124
|
+
r("file-error", { type: "other", message: "Failed to read file" });
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
return {
|
|
128
|
+
mdiPencil: F,
|
|
129
|
+
mdiClose: w,
|
|
130
|
+
mdiCameraPlusOutline: I,
|
|
131
|
+
fileInput: s,
|
|
132
|
+
previewImage: a,
|
|
133
|
+
isCircle: m,
|
|
134
|
+
shapeClass: d,
|
|
135
|
+
acceptAttr: p,
|
|
136
|
+
inputLabel: f,
|
|
137
|
+
containerStyle: g,
|
|
138
|
+
openFileInput: v,
|
|
139
|
+
removeImage: y,
|
|
140
|
+
handleFileChange: (t) => {
|
|
141
|
+
var n;
|
|
142
|
+
const o = t.target, i = (n = o.files) == null ? void 0 : n[0];
|
|
143
|
+
i && (h(i), o.value = "");
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
export {
|
|
149
|
+
U as default
|
|
150
|
+
};
|
|
@@ -115,8 +115,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
115
115
|
}>> & Readonly<{}>, {
|
|
116
116
|
values: KvPieChartV2Item[];
|
|
117
117
|
loading: boolean;
|
|
118
|
-
initialDelay: number;
|
|
119
118
|
strokeWidth: number;
|
|
119
|
+
initialDelay: number;
|
|
120
120
|
unit: PieChartUnit;
|
|
121
121
|
shownSegments: number;
|
|
122
122
|
segmentGap: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.header-fade-enter-active[data-v-
|
|
1
|
+
.header-fade-enter-active[data-v-0d2a85d2]{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.header-fade-leave-active[data-v-0d2a85d2]{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.1s}.header-fade-enter[data-v-0d2a85d2],.header-fade-leave-to[data-v-0d2a85d2]{opacity:0}.header-fade-leave[data-v-0d2a85d2],.header-fade-enter-to[data-v-0d2a85d2]{opacity:1}.bg-opacity-50[data-v-0d2a85d2]{background-color:rgba(var(--bg-action-highlight),.5)}
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { resolveComponent as l, openBlock as
|
|
1
|
+
import h from "./KvWwwHeaderBasic2.js";
|
|
2
|
+
import { resolveComponent as l, openBlock as m, createBlock as u, withCtx as r, createElementVNode as s, normalizeStyle as d, createVNode as a, Transition as g, withDirectives as b, vShow as v, normalizeClass as k, resolveDynamicComponent as y, withModifiers as M } from "vue";
|
|
3
3
|
import "./KvWwwHeaderBasic.css";
|
|
4
|
-
import
|
|
5
|
-
function
|
|
6
|
-
const w = l("link-bar"),
|
|
7
|
-
return
|
|
4
|
+
import I from "../../_virtual/_plugin-vue_export-helper.js";
|
|
5
|
+
function L(t, o, n, e, C, D) {
|
|
6
|
+
const w = l("link-bar"), c = l("kv-page-container"), f = l("kv-theme-provider");
|
|
7
|
+
return m(), u(f, {
|
|
8
8
|
tag: "div",
|
|
9
9
|
class: "tw-bg-primary"
|
|
10
10
|
}, {
|
|
11
|
-
default:
|
|
11
|
+
default: r(() => [
|
|
12
12
|
s("nav", {
|
|
13
13
|
ref: "navRef",
|
|
14
|
-
class: "tw-font-medium tw-relative
|
|
15
|
-
style:
|
|
14
|
+
class: "tw-font-medium tw-relative",
|
|
15
|
+
style: d({ minHeight: e.MIN_HEADER_HEIGHT })
|
|
16
16
|
}, [
|
|
17
|
-
|
|
18
|
-
default:
|
|
19
|
-
|
|
20
|
-
default:
|
|
21
|
-
b(
|
|
22
|
-
"logged-in":
|
|
23
|
-
"basket-count":
|
|
24
|
-
balance:
|
|
25
|
-
"user-id":
|
|
26
|
-
"is-borrower":
|
|
27
|
-
"is-trustee":
|
|
28
|
-
"lender-name":
|
|
29
|
-
"lender-image-url":
|
|
30
|
-
"is-user-data-loading":
|
|
31
|
-
"is-basket-data-loading":
|
|
32
|
-
"show-m-g-upsell-link":
|
|
33
|
-
"login-url":
|
|
34
|
-
"my-dashboard-url":
|
|
35
|
-
"countries-not-lent-to-url":
|
|
36
|
-
"app-origin": e.
|
|
37
|
-
"search-suggestions": e.
|
|
38
|
-
"is-mobile":
|
|
39
|
-
"open-menu-item":
|
|
40
|
-
onItemHover:
|
|
17
|
+
a(c, null, {
|
|
18
|
+
default: r(() => [
|
|
19
|
+
a(g, { name: "header-fade" }, {
|
|
20
|
+
default: r(() => [
|
|
21
|
+
b(a(w, {
|
|
22
|
+
"logged-in": n.loggedIn,
|
|
23
|
+
"basket-count": n.basketCount,
|
|
24
|
+
balance: n.balance,
|
|
25
|
+
"user-id": n.userId,
|
|
26
|
+
"is-borrower": n.isBorrower,
|
|
27
|
+
"is-trustee": n.isTrustee,
|
|
28
|
+
"lender-name": n.lenderName,
|
|
29
|
+
"lender-image-url": n.lenderImageUrl,
|
|
30
|
+
"is-user-data-loading": n.isUserDataLoading,
|
|
31
|
+
"is-basket-data-loading": n.isBasketDataLoading,
|
|
32
|
+
"show-m-g-upsell-link": n.showMGUpsellLink,
|
|
33
|
+
"login-url": n.loginUrl,
|
|
34
|
+
"my-dashboard-url": n.myDashboardUrl,
|
|
35
|
+
"countries-not-lent-to-url": n.countriesNotLentToUrl,
|
|
36
|
+
"app-origin": e.resolvedAppOrigin,
|
|
37
|
+
"search-suggestions": e.effectiveSuggestions,
|
|
38
|
+
"is-mobile": e.isMobile,
|
|
39
|
+
"open-menu-item": e.menuComponent,
|
|
40
|
+
onItemHover: e.onItemHover,
|
|
41
41
|
onLoadSearchData: o[0] || (o[0] = (i) => t.$emit("load-search-data")),
|
|
42
42
|
onSearchSubmit: o[1] || (o[1] = (i) => t.$emit("search-submit", i))
|
|
43
43
|
}, null, 8, ["logged-in", "basket-count", "balance", "user-id", "is-borrower", "is-trustee", "lender-name", "lender-image-url", "is-user-data-loading", "is-basket-data-loading", "show-m-g-upsell-link", "login-url", "my-dashboard-url", "countries-not-lent-to-url", "app-origin", "search-suggestions", "is-mobile", "open-menu-item", "onItemHover"]), [
|
|
44
|
-
[v,
|
|
44
|
+
[v, e.linksVisible]
|
|
45
45
|
])
|
|
46
46
|
]),
|
|
47
47
|
_: 1
|
|
@@ -50,47 +50,49 @@ function I(t, o, e, n, L, D) {
|
|
|
50
50
|
_: 1
|
|
51
51
|
})
|
|
52
52
|
], 4),
|
|
53
|
-
|
|
54
|
-
default:
|
|
53
|
+
a(g, { name: "header-fade" }, {
|
|
54
|
+
default: r(() => [
|
|
55
55
|
b(s("div", {
|
|
56
56
|
class: "tw-absolute tw-z-modal tw-h-full tw-inset-x-0 tw-bg-eco-green-4 bg-opacity-50 tw-min-h-screen",
|
|
57
|
-
style:
|
|
58
|
-
onTouchstart: o[8] || (o[8] = (...i) =>
|
|
57
|
+
style: d({ top: e.navHeight }),
|
|
58
|
+
onTouchstart: o[8] || (o[8] = (...i) => e.handleOverlayClick && e.handleOverlayClick(...i))
|
|
59
59
|
}, [
|
|
60
60
|
s("div", {
|
|
61
61
|
ref: "menuPanelRef",
|
|
62
|
-
class: k(["tw-bg-primary tw-overflow-y-auto",
|
|
63
|
-
style:
|
|
64
|
-
...
|
|
65
|
-
maxHeight:
|
|
62
|
+
class: k(["tw-bg-primary tw-overflow-y-auto", e.menuPanelClass]),
|
|
63
|
+
style: d({
|
|
64
|
+
...e.menuPosition,
|
|
65
|
+
maxHeight: e.isMobileMenuActive ? "auto" : `calc(100dvh - ${e.navHeight})`
|
|
66
66
|
}),
|
|
67
|
-
onMouseenter: o[6] || (o[6] = (i) =>
|
|
68
|
-
onMouseleave: o[7] || (o[7] = (i) =>
|
|
67
|
+
onMouseenter: o[6] || (o[6] = (i) => e.setMenu(e.menuItem, e.menuComponent)),
|
|
68
|
+
onMouseleave: o[7] || (o[7] = (i) => e.setMenu())
|
|
69
69
|
}, [
|
|
70
|
-
(
|
|
70
|
+
(m(), u(y(e.menuComponent), {
|
|
71
71
|
ref: "menuComponentInstance",
|
|
72
|
-
"logged-in":
|
|
73
|
-
"login-url":
|
|
74
|
-
"user-id":
|
|
75
|
-
"is-borrower":
|
|
76
|
-
"is-trustee":
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
72
|
+
"logged-in": n.loggedIn,
|
|
73
|
+
"login-url": n.loginUrl,
|
|
74
|
+
"user-id": n.userId,
|
|
75
|
+
"is-borrower": n.isBorrower,
|
|
76
|
+
"is-trustee": n.isTrustee,
|
|
77
|
+
"trustee-id": n.trusteeId,
|
|
78
|
+
"most-recent-borrowed-loan-id": n.mostRecentBorrowedLoanId,
|
|
79
|
+
"my-dashboard-url": n.myDashboardUrl,
|
|
80
|
+
"show-m-g-upsell-link": n.showMGUpsellLink,
|
|
81
|
+
"is-mobile": e.isMobile,
|
|
82
|
+
"countries-not-lent-to-url": n.countriesNotLentToUrl,
|
|
81
83
|
"use-mobile-mega-menu": !0,
|
|
82
|
-
"app-origin": e.
|
|
83
|
-
"search-suggestions": e.
|
|
84
|
-
onLoadLendMenuData:
|
|
84
|
+
"app-origin": e.resolvedAppOrigin,
|
|
85
|
+
"search-suggestions": e.effectiveSuggestions,
|
|
86
|
+
onLoadLendMenuData: e.emitLendMenuEvent,
|
|
85
87
|
onLoadSearchData: o[2] || (o[2] = (i) => t.$emit("load-search-data")),
|
|
86
88
|
onSearchSubmit: o[3] || (o[3] = (i) => t.$emit("search-submit", i)),
|
|
87
|
-
onClosingMenu: o[4] || (o[4] = (i) =>
|
|
89
|
+
onClosingMenu: o[4] || (o[4] = (i) => e.setMenu()),
|
|
88
90
|
onTouchstart: o[5] || (o[5] = M(() => {
|
|
89
91
|
}, ["stop"]))
|
|
90
|
-
}, null, 40, ["logged-in", "login-url", "user-id", "is-borrower", "is-trustee", "my-dashboard-url", "show-m-g-upsell-link", "is-mobile", "countries-not-lent-to-url", "app-origin", "search-suggestions", "onLoadLendMenuData"]))
|
|
92
|
+
}, null, 40, ["logged-in", "login-url", "user-id", "is-borrower", "is-trustee", "trustee-id", "most-recent-borrowed-loan-id", "my-dashboard-url", "show-m-g-upsell-link", "is-mobile", "countries-not-lent-to-url", "app-origin", "search-suggestions", "onLoadLendMenuData"]))
|
|
91
93
|
], 38)
|
|
92
94
|
], 36), [
|
|
93
|
-
[v,
|
|
95
|
+
[v, e.menuOpen]
|
|
94
96
|
])
|
|
95
97
|
]),
|
|
96
98
|
_: 1
|
|
@@ -99,7 +101,7 @@ function I(t, o, e, n, L, D) {
|
|
|
99
101
|
_: 1
|
|
100
102
|
});
|
|
101
103
|
}
|
|
102
|
-
const B = /* @__PURE__ */
|
|
104
|
+
const B = /* @__PURE__ */ I(h, [["render", L], ["__scopeId", "data-v-0d2a85d2"]]);
|
|
103
105
|
export {
|
|
104
106
|
B as default
|
|
105
107
|
};
|