@kiva/kv-components 8.14.1 → 8.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/index.js +104 -102
  2. package/dist/utils/headerNavLinks.d.ts +8 -0
  3. package/dist/utils/headerNavLinks.js +19 -0
  4. package/dist/utils/markMatches.js +12 -0
  5. package/dist/utils/typeaheadSearchConfig.d.ts +4 -0
  6. package/dist/utils/typeaheadSearchConfig.js +31 -0
  7. package/dist/utils/typeaheadSearchEngine.d.ts +14 -0
  8. package/dist/utils/typeaheadSearchEngine.js +28 -0
  9. package/dist/utils/useBreakpoints.d.ts +4 -0
  10. package/dist/utils/useBreakpoints.js +18 -0
  11. package/dist/utils/useHeaderBasicMenuState.d.ts +3197 -0
  12. package/dist/utils/useHeaderBasicMenuState.js +30 -0
  13. package/dist/utils/useTypeaheadSearch.d.ts +19 -0
  14. package/dist/utils/useTypeaheadSearch.js +64 -0
  15. package/dist/vue/KvTab.vue.d.ts +9 -0
  16. package/dist/vue/KvTextInput.css +1 -0
  17. package/dist/vue/KvTextInput.js +18 -17
  18. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenu.js +29 -13
  19. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenu2.js +58 -32
  20. package/dist/vue/KvWwwHeaderBasic/AboutMenu.css +1 -0
  21. package/dist/vue/KvWwwHeaderBasic/AboutMenu.js +25 -0
  22. package/dist/vue/KvWwwHeaderBasic/AboutMenu.vue.d.ts +29 -0
  23. package/dist/vue/KvWwwHeaderBasic/AboutMenu2.js +33 -0
  24. package/dist/vue/KvWwwHeaderBasic/KvWwwHeaderBasic.css +1 -0
  25. package/dist/vue/KvWwwHeaderBasic/KvWwwHeaderBasic.js +105 -0
  26. package/dist/vue/KvWwwHeaderBasic/KvWwwHeaderBasic2.js +106 -0
  27. package/dist/vue/KvWwwHeaderBasic/LinkBar.css +1 -0
  28. package/dist/vue/KvWwwHeaderBasic/LinkBar.js +161 -0
  29. package/dist/vue/KvWwwHeaderBasic/LinkBar.vue.d.ts +398 -0
  30. package/dist/vue/KvWwwHeaderBasic/LinkBar2.js +114 -0
  31. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/CategoriesPanel.css +1 -0
  32. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/CategoriesPanel.js +61 -0
  33. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/CategoriesPanel.vue.d.ts +30 -0
  34. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/CategoriesPanel2.js +18 -0
  35. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/MobileLendMenu.css +1 -0
  36. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/MobileLendMenu.js +102 -0
  37. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/MobileLendMenu.vue.d.ts +285 -0
  38. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/MobileLendMenu2.js +74 -0
  39. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/MyKivaPanel.css +1 -0
  40. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/MyKivaPanel.js +51 -0
  41. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/MyKivaPanel.vue.d.ts +48 -0
  42. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/MyKivaPanel2.js +31 -0
  43. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/RegionsPanel.js +38 -0
  44. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/RegionsPanel.vue.d.ts +38 -0
  45. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/RegionsPanel2.js +24 -0
  46. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/SearchPanel.js +17 -0
  47. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/SearchPanel.vue.d.ts +81 -0
  48. package/dist/vue/KvWwwHeaderBasic/MobileLendMenu/SearchPanel2.js +19 -0
  49. package/dist/vue/KvWwwHeaderBasic/MobileMenu.css +1 -0
  50. package/dist/vue/KvWwwHeaderBasic/MobileMenu.js +52 -0
  51. package/dist/vue/KvWwwHeaderBasic/MobileMenu.vue.d.ts +59 -0
  52. package/dist/vue/KvWwwHeaderBasic/MobileMenu2.js +36 -0
  53. package/dist/vue/KvWwwHeaderBasic/MyKivaMenu.css +1 -0
  54. package/dist/vue/KvWwwHeaderBasic/MyKivaMenu.js +90 -0
  55. package/dist/vue/KvWwwHeaderBasic/MyKivaMenu.vue.d.ts +65 -0
  56. package/dist/vue/KvWwwHeaderBasic/MyKivaMenu2.js +45 -0
  57. package/dist/vue/KvWwwHeaderBasic/SearchBar.js +73 -0
  58. package/dist/vue/KvWwwHeaderBasic/SearchBar.vue.d.ts +54 -0
  59. package/dist/vue/KvWwwHeaderBasic/SearchBar2.js +84 -0
  60. package/dist/vue/index.d.ts +1 -0
  61. package/package.json +6 -3
@@ -0,0 +1,106 @@
1
+ import { ref as a, computed as r, watch as P, nextTick as T, onMounted as D, onBeforeUnmount as K } from "vue";
2
+ import O from "../KvThemeProvider.js";
3
+ import _ from "../KvPageContainer.js";
4
+ import { useBreakpoints as $ } from "../../utils/useBreakpoints.js";
5
+ import { useHeaderBasicMenuState as E } from "../../utils/useHeaderBasicMenuState.js";
6
+ import R from "./LinkBar.js";
7
+ const w = "4rem", F = {
8
+ name: "KvWwwHeaderBasic",
9
+ components: {
10
+ KvThemeProvider: O,
11
+ KvPageContainer: _,
12
+ LinkBar: R
13
+ },
14
+ props: {
15
+ loggedIn: { type: Boolean, default: !1 },
16
+ basketCount: { type: Number, default: 0 },
17
+ balance: { type: Number, default: 0 },
18
+ userId: { type: Number, default: null },
19
+ isBorrower: { type: Boolean, default: !1 },
20
+ isTrustee: { type: Boolean, default: !1 },
21
+ lenderName: { type: String, default: "" },
22
+ lenderImageUrl: { type: String, default: "" },
23
+ isUserDataLoading: { type: Boolean, default: !1 },
24
+ isBasketDataLoading: { type: Boolean, default: !1 },
25
+ showMGUpsellLink: { type: Boolean, default: !1 },
26
+ loginUrl: { type: String, default: "/ui-login" },
27
+ myDashboardUrl: { type: String, default: "/mykiva" },
28
+ countriesNotLentToUrl: { type: String, default: "/lend/countries-not-lent" },
29
+ appOrigin: { type: String, default: "" },
30
+ searchSuggestions: { type: Array, default: () => [] }
31
+ },
32
+ emits: ["load-lend-menu-data", "load-search-data", "search-submit"],
33
+ setup(W, { emit: b }) {
34
+ const { isMobile: y, checkIsMobile: g } = $(), {
35
+ menuOpen: M,
36
+ menuComponent: h,
37
+ menuItem: B,
38
+ menuPosition: m,
39
+ setMenu: i,
40
+ markMounted: k,
41
+ pinMenuOpen: I
42
+ } = E(), u = a(null), p = a(null), l = a(null), c = a(w), s = a(null), H = a(!0);
43
+ let n = null;
44
+ const d = r(() => {
45
+ var t, e;
46
+ return ((e = (t = u.value) == null ? void 0 : t.$options) == null ? void 0 : e.name) === "MobileMenu";
47
+ }), v = r(() => {
48
+ var t, e;
49
+ return ((e = (t = u.value) == null ? void 0 : t.$options) == null ? void 0 : e.name) === "MyKivaMenu";
50
+ }), S = r(() => {
51
+ var t, e;
52
+ return ((e = (t = u.value) == null ? void 0 : t.$options) == null ? void 0 : e.name) === "AboutMenu";
53
+ }), A = r(() => d.value ? "tw-w-full tw-min-h-dvh tw-rounded-none" : v.value ? "tw-w-auto tw-rounded-b tw-border tw-border-t-0 tw-border-tertiary" : S.value ? "tw-w-full md:tw-w-auto tw-rounded-none !tw-rounded-b md:tw-border md:tw-border-t-0 md:tw-border-tertiary" : "tw-w-full md:tw-w-auto tw-rounded-none !md:tw-rounded-b");
54
+ function C(t, e, o, f = null) {
55
+ s.value = f, i(t, e, o);
56
+ }
57
+ P(v, async (t) => {
58
+ if (!t || s.value == null) return;
59
+ await T();
60
+ const e = p.value;
61
+ if (!e) return;
62
+ const o = e.offsetWidth, f = s.value, N = Math.max(0, window.innerWidth - (f + o / 2));
63
+ m.value = { right: `${N}px`, position: "absolute" };
64
+ });
65
+ function L() {
66
+ b("load-lend-menu-data");
67
+ }
68
+ function U(t) {
69
+ var e, o;
70
+ (o = (e = u.value) == null ? void 0 : e.onLoad) == null || o.call(e, t);
71
+ }
72
+ function x() {
73
+ d.value || i();
74
+ }
75
+ return D(() => {
76
+ g(), k(), l.value && typeof ResizeObserver < "u" && (n = new ResizeObserver(() => {
77
+ l.value && (c.value = `${l.value.offsetHeight}px`);
78
+ }), n.observe(l.value));
79
+ }), K(() => {
80
+ n == null || n.disconnect(), n = null;
81
+ }), {
82
+ MIN_HEADER_HEIGHT: w,
83
+ navHeight: c,
84
+ navRef: l,
85
+ linksVisible: H,
86
+ isMobile: y,
87
+ menuOpen: M,
88
+ menuComponent: h,
89
+ menuItem: B,
90
+ menuPosition: m,
91
+ isMobileMenuActive: d,
92
+ menuPanelClass: A,
93
+ menuComponentInstance: u,
94
+ menuPanelRef: p,
95
+ pinMenuOpen: I,
96
+ setMenu: i,
97
+ onItemHover: C,
98
+ handleOverlayClick: x,
99
+ emitLendMenuEvent: L,
100
+ loadMenuData: U
101
+ };
102
+ }
103
+ };
104
+ export {
105
+ F as default
106
+ };
@@ -0,0 +1 @@
1
+ .link-bar[data-v-a53394e2]{display:flex;align-items:center;gap:.5rem}.link-bar__logo[data-v-a53394e2]{position:absolute;top:50%;left:50%;--tw-translate-x: -50%;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}@media (min-width: 45.875rem){.link-bar[data-v-a53394e2]{display:grid;-moz-column-gap:1rem;column-gap:1rem;grid-template-areas:"logo lend right" "search search search";grid-template-columns:1fr auto auto;grid-template-rows:4rem auto;row-gap:.5rem}.link-bar__logo[data-v-a53394e2]{position:static;--tw-translate-x: 0;--tw-translate-y: 0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));grid-area:logo;justify-self:start}.link-bar__lend[data-v-a53394e2]{grid-area:lend}.link-bar__search[data-v-a53394e2]{grid-area:search;margin-bottom:.5rem}.link-bar__right[data-v-a53394e2]{grid-area:right}}@media (min-width: 64rem){.link-bar[data-v-a53394e2]{-moz-column-gap:1.25rem;column-gap:1.25rem;grid-template-areas:"logo lend search right";grid-template-columns:auto auto 1fr auto;grid-template-rows:4rem}.link-bar__search[data-v-a53394e2]{margin-bottom:0}}.header-link[data-v-a53394e2]{cursor:pointer;padding-top:1rem;padding-bottom:1rem;--tw-text-opacity: 1;color:rgba(var(--text-primary),var(--tw-text-opacity, 1));text-decoration-line:none}.header-link[data-v-a53394e2]:hover{--tw-text-opacity: 1;color:rgba(var(--text-action),var(--tw-text-opacity, 1));text-decoration-line:none}
@@ -0,0 +1,161 @@
1
+ import C from "./LinkBar2.js";
2
+ import { resolveComponent as d, openBlock as a, createElementBlock as i, createElementVNode as l, withModifiers as h, createVNode as r, withCtx as k, createTextVNode as s, Fragment as M, renderList as p, toDisplayString as m, createCommentVNode as w, withDirectives as x, vShow as L, createBlock as B } from "vue";
3
+ import "./LinkBar.css";
4
+ import O from "../../_virtual/_plugin-vue_export-helper.js";
5
+ const S = { class: "link-bar__right tw-flex tw-items-center tw-justify-end tw-ml-auto md:tw-ml-0 tw-gap-1 md:tw-gap-2 lg:tw-gap-2.5" }, T = ["href", "data-testid", "onClick"], D = ["href"], U = { class: "tw-hidden md:tw-flex tw-items-center" }, H = { class: "tw-bg-secondary tw-rounded-xs tw-py-0.5 tw-px-1 tw-mr-1 tw-leading-none" }, I = { class: "tw-relative tw-flex md:tw-hidden tw-items-center tw-text-eco-green-4" }, A = {
6
+ key: 0,
7
+ class: "tw-absolute tw-w-4 tw-h-4 tw-pt-0.5 tw-flex tw-items-center tw-justify-center tw-text-white tw-text-small tw-font-medium tw-pointer-events-none"
8
+ }, K = { class: "tw-hidden md:tw-block" }, N = {
9
+ key: 0,
10
+ class: "tw-w-4 tw-h-3"
11
+ }, E = {
12
+ key: 1,
13
+ class: "tw-text-eco-green-4"
14
+ }, P = {
15
+ key: 2,
16
+ class: "tw-w-3 tw-h-3 tw-rounded-full tw-overflow-hidden"
17
+ };
18
+ function V(v, n, o, e, j, X) {
19
+ const c = d("kv-material-icon"), b = d("kv-header-logo"), u = d("kv-header-dropdown-link"), f = d("search-bar"), _ = d("kv-button"), g = d("kv-loading-placeholder"), y = d("kv-user-avatar");
20
+ return a(), i("div", {
21
+ class: "link-bar tw-min-h-[4rem] tw-font-medium tw-relative",
22
+ onTouchstart: n[12] || (n[12] = (...t) => e.handleEmptySpaceClick && e.handleEmptySpaceClick(...t))
23
+ }, [
24
+ l("button", {
25
+ type: "button",
26
+ "aria-label": "Open menu",
27
+ class: "header-link link-bar__hamburger tw-inline-flex md:tw-hidden",
28
+ onMouseover: n[0] || (n[0] = (t) => e.handleOnHover("menuButton", e.MobileMenu)),
29
+ onTouchstart: n[1] || (n[1] = h((t) => e.handleTouchStart("menuButton", e.MobileMenu), ["stop", "prevent"]))
30
+ }, [
31
+ r(c, { icon: e.mdiMenu }, null, 8, ["icon"])
32
+ ], 32),
33
+ l("a", {
34
+ href: "/",
35
+ "aria-label": "Kiva home",
36
+ class: "link-bar__logo tw-px-1 tw-py-2 tw-cursor-pointer",
37
+ onClick: n[2] || (n[2] = (...t) => e.onLogoClick && e.onLogoClick(...t))
38
+ }, [
39
+ r(b)
40
+ ]),
41
+ r(u, {
42
+ class: "link-bar__lend",
43
+ "ref-name": "lendButton",
44
+ href: e.lendUrl,
45
+ "menu-component": e.KvLendMenu,
46
+ "open-menu-item": e.lendOpenItem,
47
+ "dropdown-icon": e.mdiChevronDown,
48
+ "base-class": "tw-py-1",
49
+ onOnHover: e.handleOnHover,
50
+ onMouseleave: n[3] || (n[3] = (t) => e.handleMouseOut("lendButton")),
51
+ onUserTap: e.handleTouchStart
52
+ }, {
53
+ default: k(() => n[13] || (n[13] = [
54
+ s(" Lend ")
55
+ ])),
56
+ _: 1
57
+ }, 8, ["href", "menu-component", "open-menu-item", "dropdown-icon", "onOnHover", "onUserTap"]),
58
+ r(f, {
59
+ class: "link-bar__search tw-min-w-0 tw-hidden md:tw-block",
60
+ "search-suggestions": o.searchSuggestions,
61
+ "app-origin": o.appOrigin,
62
+ "is-mobile": o.isMobile,
63
+ onLoadSearchData: n[4] || (n[4] = (t) => v.$emit("load-search-data")),
64
+ onSearchSubmit: n[5] || (n[5] = (t) => v.$emit("search-submit", t))
65
+ }, null, 8, ["search-suggestions", "app-origin", "is-mobile"]),
66
+ l("div", S, [
67
+ (a(!0), i(M, null, p(e.visiblePrimaryLinks, (t) => (a(), i("a", {
68
+ key: t.id,
69
+ href: t.href,
70
+ class: "header-link tw-hidden md:tw-block",
71
+ "data-testid": `header-link-${t.id}`,
72
+ onClick: (F) => e.onPrimaryClick(t)
73
+ }, m(t.label), 9, T))), 128)),
74
+ r(u, {
75
+ "ref-name": "aboutLink",
76
+ class: "tw-hidden md:tw-block",
77
+ "menu-component": e.AboutMenu,
78
+ "open-menu-item": e.aboutOpenItem,
79
+ "dropdown-icon": e.mdiChevronDown,
80
+ "base-class": "tw-py-1",
81
+ "send-link-position": "",
82
+ onOnHover: e.handleOnHover,
83
+ onMouseleave: n[6] || (n[6] = (t) => e.handleMouseOut("aboutLink")),
84
+ onUserTap: e.handleTouchStart
85
+ }, {
86
+ default: k(() => n[14] || (n[14] = [
87
+ s(" About ")
88
+ ])),
89
+ _: 1
90
+ }, 8, ["menu-component", "open-menu-item", "dropdown-icon", "onOnHover", "onUserTap"]),
91
+ o.loggedIn ? w("", !0) : (a(), i("a", {
92
+ key: 0,
93
+ href: o.loginUrl,
94
+ class: "header-link",
95
+ "data-testid": "header-login",
96
+ onClick: n[7] || (n[7] = (...t) => e.onLoginClick && e.onLoginClick(...t))
97
+ }, "Log in", 8, D)),
98
+ o.loggedIn ? x((a(), i("a", {
99
+ key: 1,
100
+ href: "/basket",
101
+ class: "header-link tw-flex tw-items-center",
102
+ "data-testid": "header-basket",
103
+ onClick: n[8] || (n[8] = (...t) => e.onBasketClick && e.onBasketClick(...t))
104
+ }, [
105
+ l("span", U, [
106
+ l("span", H, m(o.basketCount), 1),
107
+ n[15] || (n[15] = s(" Basket "))
108
+ ]),
109
+ l("span", I, [
110
+ o.isBasketDataLoading ? w("", !0) : (a(), i("span", A, m(o.basketCount), 1)),
111
+ r(c, {
112
+ icon: e.mdiBriefcase,
113
+ class: "tw-w-4 tw-h-4 tw-pointer-events-none"
114
+ }, null, 8, ["icon"]),
115
+ n[16] || (n[16] = l("span", { class: "tw-sr-only" }, "Basket", -1))
116
+ ])
117
+ ], 512)), [
118
+ [L, o.basketCount > 0 || o.isBasketDataLoading]
119
+ ]) : w("", !0),
120
+ l("div", K, [
121
+ r(_, {
122
+ variant: "secondary",
123
+ href: "/donate/supportus",
124
+ class: "tw-whitespace-nowrap",
125
+ "data-testid": "header-support-kiva",
126
+ onClick: e.onSupportKivaClick
127
+ }, {
128
+ default: k(() => n[17] || (n[17] = [
129
+ s(" Support Kiva ")
130
+ ])),
131
+ _: 1
132
+ }, 8, ["onClick"])
133
+ ]),
134
+ o.loggedIn ? (a(), i("div", {
135
+ key: 2,
136
+ ref: "avatarMenu",
137
+ class: "tw-flex tw-items-center tw-gap-1 tw-cursor-pointer tw-py-1",
138
+ onMouseenter: n[9] || (n[9] = (t) => e.handleOnHover("avatarMenu", e.MyKivaMenu, e.getAvatarMenuPosition(), e.getAvatarTriggerCenterX())),
139
+ onMouseleave: n[10] || (n[10] = (t) => e.handleMouseOut("avatarMenu")),
140
+ onTouchstart: n[11] || (n[11] = h((t) => e.handleTouchStart("avatarMenu", e.MyKivaMenu, e.getAvatarMenuPosition(), e.getAvatarTriggerCenterX()), ["stop"]))
141
+ }, [
142
+ o.isUserDataLoading ? (a(), i("div", N, [
143
+ r(g)
144
+ ])) : (a(), i("span", E, m(e.formattedBalance), 1)),
145
+ o.isUserDataLoading ? (a(), i("div", P, [
146
+ r(g)
147
+ ])) : (a(), B(y, {
148
+ key: 3,
149
+ class: "tw-w-3 tw-h-3",
150
+ "lender-name": o.lenderName,
151
+ "lender-image-url": o.lenderImageUrl,
152
+ "is-small": ""
153
+ }, null, 8, ["lender-name", "lender-image-url"]))
154
+ ], 544)) : w("", !0)
155
+ ])
156
+ ], 32);
157
+ }
158
+ const Q = /* @__PURE__ */ O(C, [["render", V], ["__scopeId", "data-v-a53394e2"]]);
159
+ export {
160
+ Q as default
161
+ };
@@ -0,0 +1,398 @@
1
+ import { default as numeral } from 'numeral';
2
+ import { NavLink } from '../../../../../../../../../../src/utils/headerNavLinks';
3
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
4
+ loggedIn: {
5
+ type: BooleanConstructor;
6
+ default: boolean;
7
+ };
8
+ basketCount: {
9
+ type: NumberConstructor;
10
+ default: number;
11
+ };
12
+ balance: {
13
+ type: NumberConstructor;
14
+ default: number;
15
+ };
16
+ userId: {
17
+ type: NumberConstructor;
18
+ default: any;
19
+ };
20
+ isBorrower: {
21
+ type: BooleanConstructor;
22
+ default: boolean;
23
+ };
24
+ isTrustee: {
25
+ type: BooleanConstructor;
26
+ default: boolean;
27
+ };
28
+ lenderName: {
29
+ type: StringConstructor;
30
+ default: string;
31
+ };
32
+ lenderImageUrl: {
33
+ type: StringConstructor;
34
+ default: string;
35
+ };
36
+ isUserDataLoading: {
37
+ type: BooleanConstructor;
38
+ default: boolean;
39
+ };
40
+ isBasketDataLoading: {
41
+ type: BooleanConstructor;
42
+ default: boolean;
43
+ };
44
+ showMGUpsellLink: {
45
+ type: BooleanConstructor;
46
+ default: boolean;
47
+ };
48
+ loginUrl: {
49
+ type: StringConstructor;
50
+ default: string;
51
+ };
52
+ myDashboardUrl: {
53
+ type: StringConstructor;
54
+ default: string;
55
+ };
56
+ countriesNotLentToUrl: {
57
+ type: StringConstructor;
58
+ default: string;
59
+ };
60
+ appOrigin: {
61
+ type: StringConstructor;
62
+ default: string;
63
+ };
64
+ searchSuggestions: {
65
+ type: ArrayConstructor;
66
+ default: () => any[];
67
+ };
68
+ isMobile: {
69
+ type: BooleanConstructor;
70
+ default: boolean;
71
+ };
72
+ openMenuItem: {
73
+ type: (ObjectConstructor | FunctionConstructor)[];
74
+ default: any;
75
+ };
76
+ }>, {
77
+ mdiMenu: string;
78
+ mdiChevronDown: string;
79
+ mdiBriefcase: string;
80
+ KvLendMenu: any;
81
+ AboutMenu: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
82
+ isMobile: {
83
+ type: BooleanConstructor;
84
+ default: boolean;
85
+ };
86
+ }>, {
87
+ links: import('./AboutMenu.vue').AboutLink[];
88
+ onLinkClick: (action: string) => void;
89
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "closing-menu"[], "closing-menu", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
90
+ isMobile: {
91
+ type: BooleanConstructor;
92
+ default: boolean;
93
+ };
94
+ }>> & Readonly<{
95
+ "onClosing-menu"?: (...args: any[]) => any;
96
+ }>, {
97
+ isMobile: boolean;
98
+ }, {}, {
99
+ KvHeaderMenuLink: any;
100
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
101
+ MyKivaMenu: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
102
+ loggedIn: {
103
+ type: BooleanConstructor;
104
+ default: boolean;
105
+ };
106
+ userId: {
107
+ type: NumberConstructor;
108
+ default: any;
109
+ };
110
+ isBorrower: {
111
+ type: BooleanConstructor;
112
+ default: boolean;
113
+ };
114
+ isTrustee: {
115
+ type: BooleanConstructor;
116
+ default: boolean;
117
+ };
118
+ myDashboardUrl: {
119
+ type: StringConstructor;
120
+ default: string;
121
+ };
122
+ isMobile: {
123
+ type: BooleanConstructor;
124
+ default: boolean;
125
+ };
126
+ }>, {
127
+ onLinkClick: (action: string) => void;
128
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "closing-menu"[], "closing-menu", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
129
+ loggedIn: {
130
+ type: BooleanConstructor;
131
+ default: boolean;
132
+ };
133
+ userId: {
134
+ type: NumberConstructor;
135
+ default: any;
136
+ };
137
+ isBorrower: {
138
+ type: BooleanConstructor;
139
+ default: boolean;
140
+ };
141
+ isTrustee: {
142
+ type: BooleanConstructor;
143
+ default: boolean;
144
+ };
145
+ myDashboardUrl: {
146
+ type: StringConstructor;
147
+ default: string;
148
+ };
149
+ isMobile: {
150
+ type: BooleanConstructor;
151
+ default: boolean;
152
+ };
153
+ }>> & Readonly<{
154
+ "onClosing-menu"?: (...args: any[]) => any;
155
+ }>, {
156
+ loggedIn: boolean;
157
+ isMobile: boolean;
158
+ isBorrower: boolean;
159
+ isTrustee: boolean;
160
+ myDashboardUrl: string;
161
+ userId: number;
162
+ }, {}, {
163
+ KvHeaderMenuLink: any;
164
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
165
+ MobileMenu: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
166
+ loggedIn: {
167
+ type: BooleanConstructor;
168
+ default: boolean;
169
+ };
170
+ loginUrl: {
171
+ type: StringConstructor;
172
+ default: string;
173
+ };
174
+ isMobile: {
175
+ type: BooleanConstructor;
176
+ default: boolean;
177
+ };
178
+ }>, {
179
+ onClose: () => void;
180
+ onLinkClick: (action: string) => void;
181
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "closing-menu"[], "closing-menu", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
182
+ loggedIn: {
183
+ type: BooleanConstructor;
184
+ default: boolean;
185
+ };
186
+ loginUrl: {
187
+ type: StringConstructor;
188
+ default: string;
189
+ };
190
+ isMobile: {
191
+ type: BooleanConstructor;
192
+ default: boolean;
193
+ };
194
+ }>> & Readonly<{
195
+ "onClosing-menu"?: (...args: any[]) => any;
196
+ }>, {
197
+ loggedIn: boolean;
198
+ loginUrl: string;
199
+ isMobile: boolean;
200
+ }, {}, {
201
+ KvAccordionItem: any;
202
+ AboutMenu: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
203
+ isMobile: {
204
+ type: BooleanConstructor;
205
+ default: boolean;
206
+ };
207
+ }>, {
208
+ links: import('./AboutMenu.vue').AboutLink[];
209
+ onLinkClick: (action: string) => void;
210
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "closing-menu"[], "closing-menu", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
211
+ isMobile: {
212
+ type: BooleanConstructor;
213
+ default: boolean;
214
+ };
215
+ }>> & Readonly<{
216
+ "onClosing-menu"?: (...args: any[]) => any;
217
+ }>, {
218
+ isMobile: boolean;
219
+ }, {}, {
220
+ KvHeaderMenuLink: any;
221
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
222
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
223
+ avatarMenu: import('vue').Ref<any, any>;
224
+ getAvatarMenuPosition: () => {
225
+ right: string;
226
+ } | null;
227
+ getAvatarTriggerCenterX: () => number | null;
228
+ visiblePrimaryLinks: import('vue').ComputedRef<any>;
229
+ lendUrl: import('vue').ComputedRef<string>;
230
+ formattedBalance: import('vue').ComputedRef<any>;
231
+ lendOpenItem: import('vue').ComputedRef<Function | Record<string, any>>;
232
+ aboutOpenItem: import('vue').ComputedRef<Function | Record<string, any>>;
233
+ handleOnHover: (item: string, menu: unknown, position?: unknown, triggerCenterX?: number | null) => void;
234
+ handleMouseOut: (item: string) => void;
235
+ handleTouchStart: (item: string, menu: unknown, position?: unknown, triggerCenterX?: number | null) => void;
236
+ handleEmptySpaceClick: (event: Event) => void;
237
+ onPrimaryClick: (link: NavLink) => void;
238
+ onLoginClick: () => void;
239
+ onBasketClick: () => void;
240
+ onSupportKivaClick: () => void;
241
+ onLogoClick: () => void;
242
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("load-search-data" | "search-submit" | "item-hover")[], "load-search-data" | "search-submit" | "item-hover", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
243
+ loggedIn: {
244
+ type: BooleanConstructor;
245
+ default: boolean;
246
+ };
247
+ basketCount: {
248
+ type: NumberConstructor;
249
+ default: number;
250
+ };
251
+ balance: {
252
+ type: NumberConstructor;
253
+ default: number;
254
+ };
255
+ userId: {
256
+ type: NumberConstructor;
257
+ default: any;
258
+ };
259
+ isBorrower: {
260
+ type: BooleanConstructor;
261
+ default: boolean;
262
+ };
263
+ isTrustee: {
264
+ type: BooleanConstructor;
265
+ default: boolean;
266
+ };
267
+ lenderName: {
268
+ type: StringConstructor;
269
+ default: string;
270
+ };
271
+ lenderImageUrl: {
272
+ type: StringConstructor;
273
+ default: string;
274
+ };
275
+ isUserDataLoading: {
276
+ type: BooleanConstructor;
277
+ default: boolean;
278
+ };
279
+ isBasketDataLoading: {
280
+ type: BooleanConstructor;
281
+ default: boolean;
282
+ };
283
+ showMGUpsellLink: {
284
+ type: BooleanConstructor;
285
+ default: boolean;
286
+ };
287
+ loginUrl: {
288
+ type: StringConstructor;
289
+ default: string;
290
+ };
291
+ myDashboardUrl: {
292
+ type: StringConstructor;
293
+ default: string;
294
+ };
295
+ countriesNotLentToUrl: {
296
+ type: StringConstructor;
297
+ default: string;
298
+ };
299
+ appOrigin: {
300
+ type: StringConstructor;
301
+ default: string;
302
+ };
303
+ searchSuggestions: {
304
+ type: ArrayConstructor;
305
+ default: () => any[];
306
+ };
307
+ isMobile: {
308
+ type: BooleanConstructor;
309
+ default: boolean;
310
+ };
311
+ openMenuItem: {
312
+ type: (ObjectConstructor | FunctionConstructor)[];
313
+ default: any;
314
+ };
315
+ }>> & Readonly<{
316
+ "onLoad-search-data"?: (...args: any[]) => any;
317
+ "onSearch-submit"?: (...args: any[]) => any;
318
+ "onItem-hover"?: (...args: any[]) => any;
319
+ }>, {
320
+ lenderName: string;
321
+ lenderImageUrl: string;
322
+ basketCount: number;
323
+ openMenuItem: Function | Record<string, any>;
324
+ loggedIn: boolean;
325
+ loginUrl: string;
326
+ isMobile: boolean;
327
+ balance: number;
328
+ isBorrower: boolean;
329
+ isTrustee: boolean;
330
+ myDashboardUrl: string;
331
+ userId: number;
332
+ showMGUpsellLink: boolean;
333
+ countriesNotLentToUrl: string;
334
+ searchSuggestions: unknown[];
335
+ appOrigin: string;
336
+ isBasketDataLoading: boolean;
337
+ isUserDataLoading: boolean;
338
+ }, {}, {
339
+ KvMaterialIcon: any;
340
+ KvUserAvatar: any;
341
+ KvLoadingPlaceholder: any;
342
+ KvButton: any;
343
+ KvHeaderLogo: any;
344
+ KvHeaderDropdownLink: any;
345
+ SearchBar: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
346
+ searchSuggestions: {
347
+ type: () => numeral[];
348
+ default: () => any[];
349
+ };
350
+ appOrigin: {
351
+ type: StringConstructor;
352
+ default: string;
353
+ };
354
+ isMobile: {
355
+ type: BooleanConstructor;
356
+ default: boolean;
357
+ };
358
+ }>, {
359
+ mdiMagnify: string;
360
+ inputId: string;
361
+ term: any;
362
+ displayTerm: import('vue').ComputedRef<any>;
363
+ groupedResults: any;
364
+ highlighted: import('vue').ComputedRef<any>;
365
+ showResults: import('vue').ComputedRef<boolean>;
366
+ onInput: (value: string) => void;
367
+ onFocus: () => void;
368
+ onBlur: () => void;
369
+ onSubmit: () => void;
370
+ runSearch: (suggestion: numeral) => void;
371
+ listUp: () => void;
372
+ listDown: () => void;
373
+ formatResult: (suggestion: numeral) => string;
374
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("load-search-data" | "search-submit")[], "load-search-data" | "search-submit", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
375
+ searchSuggestions: {
376
+ type: () => numeral[];
377
+ default: () => any[];
378
+ };
379
+ appOrigin: {
380
+ type: StringConstructor;
381
+ default: string;
382
+ };
383
+ isMobile: {
384
+ type: BooleanConstructor;
385
+ default: boolean;
386
+ };
387
+ }>> & Readonly<{
388
+ "onLoad-search-data"?: (...args: any[]) => any;
389
+ "onSearch-submit"?: (...args: any[]) => any;
390
+ }>, {
391
+ isMobile: boolean;
392
+ searchSuggestions: SearchSuggestion[];
393
+ appOrigin: string;
394
+ }, {}, {
395
+ KvTextInput: any;
396
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
397
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
398
+ export default _default;