@kiva/kv-components 8.14.2 → 8.15.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 (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,114 @@
1
+ import { defineAsyncComponent as l, inject as U, ref as s, computed as a } from "vue";
2
+ import { mdiMenu as w, mdiChevronDown as A, mdiBriefcase as P } from "@mdi/js";
3
+ import O from "numeral";
4
+ import D from "../KvMaterialIcon.js";
5
+ import x from "../KvUserAvatar.js";
6
+ import R from "../KvLoadingPlaceholder.js";
7
+ import $ from "../KvButton.js";
8
+ import E from "../KvWwwHeader/KvHeaderLogo.js";
9
+ import H from "../KvWwwHeader/KvHeaderDropdownLink.js";
10
+ import { PRIMARY_LINKS as _ } from "../../utils/headerNavLinks.js";
11
+ import j from "./SearchBar.js";
12
+ const d = l(() => import("../KvWwwHeader/LendMenu/KvLendMenu.js")), m = l(() => import("./AboutMenu.js")), F = l(() => import("./MyKivaMenu.js")), G = l(() => import("./MobileMenu.js")), ne = {
13
+ name: "LinkBar",
14
+ components: {
15
+ KvMaterialIcon: D,
16
+ KvUserAvatar: x,
17
+ KvLoadingPlaceholder: R,
18
+ KvButton: $,
19
+ KvHeaderLogo: E,
20
+ KvHeaderDropdownLink: H,
21
+ SearchBar: j
22
+ },
23
+ props: {
24
+ loggedIn: { type: Boolean, default: !1 },
25
+ basketCount: { type: Number, default: 0 },
26
+ balance: { type: Number, default: 0 },
27
+ userId: { type: Number, default: null },
28
+ isBorrower: { type: Boolean, default: !1 },
29
+ isTrustee: { type: Boolean, default: !1 },
30
+ lenderName: { type: String, default: "" },
31
+ lenderImageUrl: { type: String, default: "" },
32
+ isUserDataLoading: { type: Boolean, default: !1 },
33
+ isBasketDataLoading: { type: Boolean, default: !1 },
34
+ showMGUpsellLink: { type: Boolean, default: !1 },
35
+ loginUrl: { type: String, default: "/ui-login" },
36
+ myDashboardUrl: { type: String, default: "/mykiva" },
37
+ countriesNotLentToUrl: { type: String, default: "/lend/countries-not-lent" },
38
+ appOrigin: { type: String, default: "" },
39
+ searchSuggestions: { type: Array, default: () => [] },
40
+ isMobile: { type: Boolean, default: !1 },
41
+ openMenuItem: { type: [Object, Function], default: null }
42
+ },
43
+ emits: ["item-hover", "load-search-data", "search-submit"],
44
+ setup(t, { emit: r }) {
45
+ const i = U("$kvTrackEvent", () => {
46
+ }), o = s(null), u = s(null);
47
+ function p() {
48
+ const e = u.value, n = e == null ? void 0 : e.getBoundingClientRect();
49
+ return n ? t.isMobile ? { right: "0" } : { right: `${window.innerWidth - n.right}px` } : null;
50
+ }
51
+ function g() {
52
+ if (t.isMobile) return null;
53
+ const e = u.value, n = e == null ? void 0 : e.getBoundingClientRect();
54
+ return n ? n.left + n.width / 2 : null;
55
+ }
56
+ const v = a(() => _.filter((e) => e.visibility === "visitor" ? !t.loggedIn : e.visibility === "loggedIn" ? t.loggedIn : !0)), y = a(() => t.isMobile ? void 0 : "/lend-by-category"), h = a(() => O(Math.floor(t.balance)).format("$0")), k = a(() => t.openMenuItem === d ? t.openMenuItem : null), M = a(() => t.openMenuItem === m ? t.openMenuItem : null);
57
+ function b(e, n, c = null, f = null) {
58
+ navigator.maxTouchPoints || (o.value = e, r("item-hover", e, n, c, f));
59
+ }
60
+ function B(e) {
61
+ navigator.maxTouchPoints || o.value === e && (o.value = null, r("item-hover"));
62
+ }
63
+ function I(e, n, c = null, f = null) {
64
+ o.value === e ? (o.value = null, r("item-hover")) : (o.value = e, r("item-hover", e, n, c, f));
65
+ }
66
+ function L(e) {
67
+ e.target === e.currentTarget && r("item-hover");
68
+ }
69
+ function S(e) {
70
+ i(e.track[0], e.track[1]);
71
+ }
72
+ function T() {
73
+ i("TopNav", "click-Log-in");
74
+ }
75
+ function C() {
76
+ i("TopNav", "click-Basket");
77
+ }
78
+ function K() {
79
+ i("TopNav", "click-Support-Kiva");
80
+ }
81
+ function N() {
82
+ i("TopNav", "click-Logo");
83
+ }
84
+ return {
85
+ mdiMenu: w,
86
+ mdiChevronDown: A,
87
+ mdiBriefcase: P,
88
+ KvLendMenu: d,
89
+ AboutMenu: m,
90
+ MyKivaMenu: F,
91
+ MobileMenu: G,
92
+ avatarMenu: u,
93
+ getAvatarMenuPosition: p,
94
+ getAvatarTriggerCenterX: g,
95
+ visiblePrimaryLinks: v,
96
+ lendUrl: y,
97
+ formattedBalance: h,
98
+ lendOpenItem: k,
99
+ aboutOpenItem: M,
100
+ handleOnHover: b,
101
+ handleMouseOut: B,
102
+ handleTouchStart: I,
103
+ handleEmptySpaceClick: L,
104
+ onPrimaryClick: S,
105
+ onLoginClick: T,
106
+ onBasketClick: C,
107
+ onSupportKivaClick: K,
108
+ onLogoClick: N
109
+ };
110
+ }
111
+ };
112
+ export {
113
+ ne as default
114
+ };
@@ -0,0 +1 @@
1
+ .lend-link[data-v-09a764b4]{display:block;width:100%;padding-top:.5rem;padding-bottom:.5rem;--tw-text-opacity: 1;color:rgba(var(--text-primary),var(--tw-text-opacity, 1));text-decoration-line:none}.lend-link[data-v-09a764b4]:hover{--tw-text-opacity: 1;color:rgba(var(--text-action),var(--tw-text-opacity, 1));text-decoration-line:underline}
@@ -0,0 +1,61 @@
1
+ import k from "./CategoriesPanel2.js";
2
+ import { resolveComponent as p, resolveDirective as v, openBlock as e, createElementBlock as t, Fragment as a, renderList as c, createElementVNode as r, createVNode as f, withDirectives as s, createTextVNode as i, toDisplayString as h } from "vue";
3
+ import "./CategoriesPanel.css";
4
+ import u from "../../../_virtual/_plugin-vue_export-helper.js";
5
+ const y = { class: "tw-font-medium" }, g = ["href"], b = { class: "tw-border-t tw-border-tertiary tw-mt-1" }, w = {
6
+ href: "/lend-by-category/recommended-by-lenders",
7
+ class: "lend-link tw-text-brand"
8
+ }, L = {
9
+ href: "/lend",
10
+ class: "lend-link"
11
+ }, N = {
12
+ href: "/categories",
13
+ class: "lend-link"
14
+ };
15
+ function x(C, n, d, T, A, D) {
16
+ const m = p("kv-loading-placeholder"), o = v("kv-track-event");
17
+ return e(), t("ul", y, [
18
+ d.isChannelsLoading ? (e(), t(a, { key: 0 }, c(12, (l) => r("li", {
19
+ key: l,
20
+ class: "tw-py-1"
21
+ }, [
22
+ f(m, { style: { height: "1rem", width: "11rem" } })
23
+ ])), 64)) : (e(!0), t(a, { key: 1 }, c(d.categories, (l, _) => (e(), t("li", {
24
+ key: l.url
25
+ }, [
26
+ s((e(), t("a", {
27
+ href: l.url,
28
+ class: "lend-link"
29
+ }, [
30
+ i(h(l.name), 1)
31
+ ], 8, g)), [
32
+ [o, ["TopNav", "click-Lend-Category", l.name, _ + 1]]
33
+ ])
34
+ ]))), 128)),
35
+ r("li", b, [
36
+ s((e(), t("a", w, n[0] || (n[0] = [
37
+ i(" Recommended by lenders ")
38
+ ]))), [
39
+ [o, ["TopNav", "click-Lend-Recommended-by-lenders"]]
40
+ ])
41
+ ]),
42
+ r("li", null, [
43
+ s((e(), t("a", L, n[1] || (n[1] = [
44
+ i(" All loans ")
45
+ ]))), [
46
+ [o, ["TopNav", "click-Lend-All_Loans"]]
47
+ ])
48
+ ]),
49
+ r("li", null, [
50
+ s((e(), t("a", N, n[2] || (n[2] = [
51
+ i(" All categories ")
52
+ ]))), [
53
+ [o, ["TopNav", "click-Lend-All_Categories"]]
54
+ ])
55
+ ])
56
+ ]);
57
+ }
58
+ const $ = /* @__PURE__ */ u(k, [["render", x], ["__scopeId", "data-v-09a764b4"]]);
59
+ export {
60
+ $ as default
61
+ };
@@ -0,0 +1,30 @@
1
+ import { PropType } from 'vue';
2
+ export interface Category {
3
+ name: string;
4
+ url: string;
5
+ }
6
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
7
+ categories: {
8
+ type: PropType<Category[]>;
9
+ default: () => any[];
10
+ };
11
+ isChannelsLoading: {
12
+ type: BooleanConstructor;
13
+ default: boolean;
14
+ };
15
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
16
+ categories: {
17
+ type: PropType<Category[]>;
18
+ default: () => any[];
19
+ };
20
+ isChannelsLoading: {
21
+ type: BooleanConstructor;
22
+ default: boolean;
23
+ };
24
+ }>> & Readonly<{}>, {
25
+ categories: Category[];
26
+ isChannelsLoading: boolean;
27
+ }, {}, {
28
+ KvLoadingPlaceholder: any;
29
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
30
+ export default _default;
@@ -0,0 +1,18 @@
1
+ import e from "../../KvLoadingPlaceholder.js";
2
+ const o = {
3
+ name: "CategoriesPanel",
4
+ components: { KvLoadingPlaceholder: e },
5
+ props: {
6
+ categories: {
7
+ type: Array,
8
+ default: () => []
9
+ },
10
+ isChannelsLoading: {
11
+ type: Boolean,
12
+ default: !1
13
+ }
14
+ }
15
+ };
16
+ export {
17
+ o as default
18
+ };
@@ -0,0 +1 @@
1
+ [data-v-972cda69] [role=tab]{font-family:PostGrotesk,PostGrotesk-fallback,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;font-weight:400;font-size:1.125rem;letter-spacing:0em;line-height:1.2777778em}@media (min-width: 45.875rem){[data-v-972cda69] [role=tab]{font-size:1.125rem;letter-spacing:0em;line-height:1.2777778em}}@media (min-width: 64rem){[data-v-972cda69] [role=tab]{font-size:1.25rem;letter-spacing:0em;line-height:1.3em}}
@@ -0,0 +1,102 @@
1
+ import h from "./MobileLendMenu2.js";
2
+ import { resolveComponent as a, resolveDirective as T, openBlock as i, createElementBlock as L, createVNode as o, withCtx as t, withDirectives as c, createBlock as s, createTextVNode as g, createCommentVNode as _ } from "vue";
3
+ import "./MobileLendMenu.css";
4
+ import N from "../../../_virtual/_plugin-vue_export-helper.js";
5
+ const y = { class: "tw-px-0 tw-pt-1.5 tw-pb-2" };
6
+ function C(m, e, n, S, w, x) {
7
+ const l = a("kv-tab"), v = a("categories-panel"), r = a("kv-tab-panel"), b = a("regions-panel"), f = a("my-kiva-panel"), k = a("search-panel"), p = a("kv-tabs"), d = T("kv-track-event");
8
+ return i(), L("div", y, [
9
+ o(p, { ref: "tabsRef" }, {
10
+ tabNav: t(() => [
11
+ c((i(), s(l, {
12
+ "for-panel": "mobile-lend-categories",
13
+ selected: ""
14
+ }, {
15
+ default: t(() => e[2] || (e[2] = [
16
+ g(" Categories ")
17
+ ])),
18
+ _: 1
19
+ })), [
20
+ [d, ["TopNav", "click-Lend-Tab-Categories"]]
21
+ ]),
22
+ c((i(), s(l, { "for-panel": "mobile-lend-regions" }, {
23
+ default: t(() => e[3] || (e[3] = [
24
+ g(" Regions ")
25
+ ])),
26
+ _: 1
27
+ })), [
28
+ [d, ["TopNav", "click-Lend-Tab-Regions"]]
29
+ ]),
30
+ n.userId ? c((i(), s(l, {
31
+ key: 0,
32
+ "for-panel": "mobile-lend-my-kiva"
33
+ }, {
34
+ default: t(() => e[4] || (e[4] = [
35
+ g(" MyKiva ")
36
+ ])),
37
+ _: 1
38
+ })), [
39
+ [d, ["TopNav", "click-Lend-Tab-My-Kiva"]]
40
+ ]) : _("", !0),
41
+ c((i(), s(l, { "for-panel": "mobile-lend-search" }, {
42
+ default: t(() => e[5] || (e[5] = [
43
+ g(" Search ")
44
+ ])),
45
+ _: 1
46
+ })), [
47
+ [d, ["TopNav", "click-Lend-Tab-Search"]]
48
+ ])
49
+ ]),
50
+ tabPanels: t(() => [
51
+ o(r, { id: "mobile-lend-categories" }, {
52
+ default: t(() => [
53
+ o(v, {
54
+ categories: n.categories,
55
+ "is-channels-loading": n.isChannelsLoading
56
+ }, null, 8, ["categories", "is-channels-loading"])
57
+ ]),
58
+ _: 1
59
+ }),
60
+ o(r, { id: "mobile-lend-regions" }, {
61
+ default: t(() => [
62
+ o(b, {
63
+ regions: n.regions,
64
+ "is-regions-loading": n.isRegionsLoading
65
+ }, null, 8, ["regions", "is-regions-loading"])
66
+ ]),
67
+ _: 1
68
+ }),
69
+ n.userId ? (i(), s(r, {
70
+ key: 0,
71
+ id: "mobile-lend-my-kiva"
72
+ }, {
73
+ default: t(() => [
74
+ o(f, {
75
+ "user-id": n.userId,
76
+ favorites: n.favorites,
77
+ searches: n.searches,
78
+ "countries-not-lent-to-url": n.countriesNotLentToUrl
79
+ }, null, 8, ["user-id", "favorites", "searches", "countries-not-lent-to-url"])
80
+ ]),
81
+ _: 1
82
+ })) : _("", !0),
83
+ o(r, { id: "mobile-lend-search" }, {
84
+ default: t(() => [
85
+ o(k, {
86
+ "search-suggestions": n.searchSuggestions,
87
+ "app-origin": n.appOrigin,
88
+ onLoadSearchData: e[0] || (e[0] = (u) => m.$emit("load-search-data")),
89
+ onSearchSubmit: e[1] || (e[1] = (u) => m.$emit("search-submit", u))
90
+ }, null, 8, ["search-suggestions", "app-origin"])
91
+ ]),
92
+ _: 1
93
+ })
94
+ ]),
95
+ _: 1
96
+ }, 512)
97
+ ]);
98
+ }
99
+ const D = /* @__PURE__ */ N(h, [["render", C], ["__scopeId", "data-v-972cda69"]]);
100
+ export {
101
+ D as default
102
+ };
@@ -0,0 +1,285 @@
1
+ import { PropType } from 'vue';
2
+ import { SearchSuggestion } from '../../../../../../../../../../../src/utils/typeaheadSearchEngine';
3
+ import { LendMenuSearch } from '../../../../../../../../../../../src/vue/KvWwwHeader/LendMenu/KvLendMenuSearchList.vue';
4
+ import { Category } from './CategoriesPanel.vue';
5
+ import { Region } from './RegionsPanel.vue';
6
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
7
+ categories: {
8
+ type: PropType<Category[]>;
9
+ default: () => any[];
10
+ };
11
+ regions: {
12
+ type: PropType<Region[]>;
13
+ default: () => any[];
14
+ };
15
+ userId: {
16
+ type: NumberConstructor;
17
+ default: any;
18
+ };
19
+ favorites: {
20
+ type: NumberConstructor;
21
+ default: number;
22
+ };
23
+ searches: {
24
+ type: PropType<LendMenuSearch[]>;
25
+ default: () => any[];
26
+ };
27
+ isChannelsLoading: {
28
+ type: BooleanConstructor;
29
+ default: boolean;
30
+ };
31
+ isRegionsLoading: {
32
+ type: BooleanConstructor;
33
+ default: boolean;
34
+ };
35
+ countriesNotLentToUrl: {
36
+ type: StringConstructor;
37
+ default: string;
38
+ };
39
+ searchSuggestions: {
40
+ type: PropType<SearchSuggestion[]>;
41
+ default: () => any[];
42
+ };
43
+ appOrigin: {
44
+ type: StringConstructor;
45
+ default: string;
46
+ };
47
+ }>, {
48
+ tabsRef: import('vue').Ref<any, any>;
49
+ onClose: () => void;
50
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("load-search-data" | "search-submit")[], "load-search-data" | "search-submit", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
51
+ categories: {
52
+ type: PropType<Category[]>;
53
+ default: () => any[];
54
+ };
55
+ regions: {
56
+ type: PropType<Region[]>;
57
+ default: () => any[];
58
+ };
59
+ userId: {
60
+ type: NumberConstructor;
61
+ default: any;
62
+ };
63
+ favorites: {
64
+ type: NumberConstructor;
65
+ default: number;
66
+ };
67
+ searches: {
68
+ type: PropType<LendMenuSearch[]>;
69
+ default: () => any[];
70
+ };
71
+ isChannelsLoading: {
72
+ type: BooleanConstructor;
73
+ default: boolean;
74
+ };
75
+ isRegionsLoading: {
76
+ type: BooleanConstructor;
77
+ default: boolean;
78
+ };
79
+ countriesNotLentToUrl: {
80
+ type: StringConstructor;
81
+ default: string;
82
+ };
83
+ searchSuggestions: {
84
+ type: PropType<SearchSuggestion[]>;
85
+ default: () => any[];
86
+ };
87
+ appOrigin: {
88
+ type: StringConstructor;
89
+ default: string;
90
+ };
91
+ }>> & Readonly<{
92
+ "onLoad-search-data"?: (...args: any[]) => any;
93
+ "onSearch-submit"?: (...args: any[]) => any;
94
+ }>, {
95
+ searches: LendMenuSearch[];
96
+ categories: Category[];
97
+ favorites: number;
98
+ userId: number;
99
+ regions: Region[];
100
+ isRegionsLoading: boolean;
101
+ isChannelsLoading: boolean;
102
+ countriesNotLentToUrl: string;
103
+ searchSuggestions: SearchSuggestion[];
104
+ appOrigin: string;
105
+ }, {}, {
106
+ KvTab: any;
107
+ KvTabPanel: any;
108
+ KvTabs: any;
109
+ CategoriesPanel: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
110
+ categories: {
111
+ type: PropType<Category[]>;
112
+ default: () => any[];
113
+ };
114
+ isChannelsLoading: {
115
+ type: BooleanConstructor;
116
+ default: boolean;
117
+ };
118
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
119
+ categories: {
120
+ type: PropType<Category[]>;
121
+ default: () => any[];
122
+ };
123
+ isChannelsLoading: {
124
+ type: BooleanConstructor;
125
+ default: boolean;
126
+ };
127
+ }>> & Readonly<{}>, {
128
+ categories: Category[];
129
+ isChannelsLoading: boolean;
130
+ }, {}, {
131
+ KvLoadingPlaceholder: any;
132
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
133
+ RegionsPanel: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
134
+ regions: {
135
+ type: PropType<Region[]>;
136
+ default: () => any[];
137
+ };
138
+ isRegionsLoading: {
139
+ type: BooleanConstructor;
140
+ default: boolean;
141
+ };
142
+ }>, {
143
+ paramCase: any;
144
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
145
+ regions: {
146
+ type: PropType<Region[]>;
147
+ default: () => any[];
148
+ };
149
+ isRegionsLoading: {
150
+ type: BooleanConstructor;
151
+ default: boolean;
152
+ };
153
+ }>> & Readonly<{}>, {
154
+ regions: Region[];
155
+ isRegionsLoading: boolean;
156
+ }, {}, {
157
+ KvAccordionItem: any;
158
+ KvLoadingPlaceholder: any;
159
+ KvLendMenuCountryList: any;
160
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
161
+ MyKivaPanel: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
162
+ userId: {
163
+ type: NumberConstructor;
164
+ default: any;
165
+ };
166
+ favorites: {
167
+ type: NumberConstructor;
168
+ default: number;
169
+ };
170
+ searches: {
171
+ type: PropType<LendMenuSearch[]>;
172
+ default: () => any[];
173
+ };
174
+ countriesNotLentToUrl: {
175
+ type: StringConstructor;
176
+ default: string;
177
+ };
178
+ }>, {
179
+ hasSearches: import('vue').ComputedRef<boolean>;
180
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
181
+ userId: {
182
+ type: NumberConstructor;
183
+ default: any;
184
+ };
185
+ favorites: {
186
+ type: NumberConstructor;
187
+ default: number;
188
+ };
189
+ searches: {
190
+ type: PropType<LendMenuSearch[]>;
191
+ default: () => any[];
192
+ };
193
+ countriesNotLentToUrl: {
194
+ type: StringConstructor;
195
+ default: string;
196
+ };
197
+ }>> & Readonly<{}>, {
198
+ searches: LendMenuSearch[];
199
+ favorites: number;
200
+ userId: number;
201
+ countriesNotLentToUrl: string;
202
+ }, {}, {
203
+ KvAccordionItem: any;
204
+ KvLendMenuSearchList: any;
205
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
206
+ SearchPanel: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
207
+ searchSuggestions: {
208
+ type: PropType<SearchSuggestion[]>;
209
+ default: () => any[];
210
+ };
211
+ appOrigin: {
212
+ type: StringConstructor;
213
+ default: string;
214
+ };
215
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("load-search-data" | "search-submit")[], "load-search-data" | "search-submit", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
216
+ searchSuggestions: {
217
+ type: PropType<SearchSuggestion[]>;
218
+ default: () => any[];
219
+ };
220
+ appOrigin: {
221
+ type: StringConstructor;
222
+ default: string;
223
+ };
224
+ }>> & Readonly<{
225
+ "onLoad-search-data"?: (...args: any[]) => any;
226
+ "onSearch-submit"?: (...args: any[]) => any;
227
+ }>, {
228
+ searchSuggestions: SearchSuggestion[];
229
+ appOrigin: string;
230
+ }, {}, {
231
+ SearchBar: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
232
+ searchSuggestions: {
233
+ type: () => SearchSuggestion[];
234
+ default: () => any[];
235
+ };
236
+ appOrigin: {
237
+ type: StringConstructor;
238
+ default: string;
239
+ };
240
+ isMobile: {
241
+ type: BooleanConstructor;
242
+ default: boolean;
243
+ };
244
+ }>, {
245
+ mdiMagnify: string;
246
+ inputId: string;
247
+ term: any;
248
+ displayTerm: import('vue').ComputedRef<any>;
249
+ groupedResults: any;
250
+ highlighted: import('vue').ComputedRef<any>;
251
+ showResults: import('vue').ComputedRef<boolean>;
252
+ onInput: (value: string) => void;
253
+ onFocus: () => void;
254
+ onBlur: () => void;
255
+ onSubmit: () => void;
256
+ runSearch: (suggestion: SearchSuggestion) => void;
257
+ listUp: () => void;
258
+ listDown: () => void;
259
+ formatResult: (suggestion: SearchSuggestion) => string;
260
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("load-search-data" | "search-submit")[], "load-search-data" | "search-submit", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
261
+ searchSuggestions: {
262
+ type: () => SearchSuggestion[];
263
+ default: () => any[];
264
+ };
265
+ appOrigin: {
266
+ type: StringConstructor;
267
+ default: string;
268
+ };
269
+ isMobile: {
270
+ type: BooleanConstructor;
271
+ default: boolean;
272
+ };
273
+ }>> & Readonly<{
274
+ "onLoad-search-data"?: (...args: any[]) => any;
275
+ "onSearch-submit"?: (...args: any[]) => any;
276
+ }>, {
277
+ isMobile: boolean;
278
+ searchSuggestions: SearchSuggestion[];
279
+ appOrigin: string;
280
+ }, {}, {
281
+ KvTextInput: any;
282
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
283
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
284
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
285
+ export default _default;
@@ -0,0 +1,74 @@
1
+ import { ref as n } from "vue";
2
+ import s from "../../KvTab.js";
3
+ import l from "../../KvTabPanel.js";
4
+ import i from "../../KvTabs.js";
5
+ import f from "./CategoriesPanel.js";
6
+ import p from "./RegionsPanel.js";
7
+ import u from "./MyKivaPanel.js";
8
+ import m from "./SearchPanel.js";
9
+ const T = {
10
+ name: "MobileLendMenu",
11
+ components: {
12
+ KvTab: s,
13
+ KvTabPanel: l,
14
+ KvTabs: i,
15
+ CategoriesPanel: f,
16
+ RegionsPanel: p,
17
+ MyKivaPanel: u,
18
+ SearchPanel: m
19
+ },
20
+ props: {
21
+ categories: {
22
+ type: Array,
23
+ default: () => []
24
+ },
25
+ regions: {
26
+ type: Array,
27
+ default: () => []
28
+ },
29
+ userId: {
30
+ type: Number,
31
+ default: null
32
+ },
33
+ favorites: {
34
+ type: Number,
35
+ default: 0
36
+ },
37
+ searches: {
38
+ type: Array,
39
+ default: () => []
40
+ },
41
+ isChannelsLoading: {
42
+ type: Boolean,
43
+ default: !1
44
+ },
45
+ isRegionsLoading: {
46
+ type: Boolean,
47
+ default: !1
48
+ },
49
+ countriesNotLentToUrl: {
50
+ type: String,
51
+ default: "/lend/countries-not-lent"
52
+ },
53
+ searchSuggestions: {
54
+ type: Array,
55
+ default: () => []
56
+ },
57
+ appOrigin: {
58
+ type: String,
59
+ default: ""
60
+ }
61
+ },
62
+ emits: ["load-search-data", "search-submit"],
63
+ setup() {
64
+ const t = n(null);
65
+ function o() {
66
+ var a, e, r;
67
+ (r = (e = (a = t.value) == null ? void 0 : a.tabContext) == null ? void 0 : e.setTab) == null || r.call(e, 0);
68
+ }
69
+ return { tabsRef: t, onClose: o };
70
+ }
71
+ };
72
+ export {
73
+ T as default
74
+ };