@nosto/search-js 3.25.4 → 3.25.6

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 (112) hide show
  1. package/dist/AutocompletePageProvider-D48n1GB-.js +37 -0
  2. package/dist/AutocompletePageProvider-DzjwKsBp.cjs +1 -0
  3. package/dist/BaseElement-BnP6tQrH.cjs +1 -0
  4. package/dist/BaseElement-C25wjvSR.js +19 -0
  5. package/dist/CategoryPageProvider-B6w4FHhB.cjs +1 -0
  6. package/dist/CategoryPageProvider-BYw7KGoS.js +30 -0
  7. package/dist/ErrorBoundary-BtAe8lXu.cjs +1 -0
  8. package/dist/ErrorBoundary-Bxyssvki.js +11 -0
  9. package/dist/InfiniteScrollWithObserver-8imjYGGz.js +226 -0
  10. package/dist/InfiniteScrollWithObserver-k7oYk4f9.cjs +1 -0
  11. package/dist/SerpPageProvider-BgRZJNth.cjs +1 -0
  12. package/dist/SerpPageProvider-fg14kNV9.js +30 -0
  13. package/dist/baseConfig-Che6Adb6.js +50 -0
  14. package/dist/baseConfig-jLd7jchq.cjs +1 -0
  15. package/dist/cl-CYT5y6Dn.cjs +1 -0
  16. package/dist/cl-G5KK1qHD.js +6 -0
  17. package/dist/core/core.cjs.js +1 -1
  18. package/dist/core/core.es.js +8 -8
  19. package/dist/currencies/currencies.cjs.js +1 -1
  20. package/dist/currencies/currencies.es.js +61 -65
  21. package/dist/disableNativeAutocomplete-CcR_Ek_P.js +26 -0
  22. package/dist/disableNativeAutocomplete-CjBGhRWW.cjs +1 -0
  23. package/dist/eventBusDispatch-B6VswTu8.cjs +1 -0
  24. package/dist/eventBusDispatch-DnFmEqYe.js +15 -0
  25. package/dist/eventBusSubscribe-C6qT1aOO.js +22 -0
  26. package/dist/eventBusSubscribe-c9a_PP0j.cjs +1 -0
  27. package/dist/index.es-Ba4tuzxb.cjs +1 -0
  28. package/dist/index.es-jSYcbRvi.js +25 -0
  29. package/dist/{isBot-B05pQGIe.js → isBot-CPesLwHL.js} +18 -17
  30. package/dist/isBot-CkyQfegP.cjs +1 -0
  31. package/dist/jsxRuntime.module-BRdvPAre.js +30 -0
  32. package/dist/jsxRuntime.module-Ba9fccPy.cjs +1 -0
  33. package/dist/parseNumber-BH_92pM8.cjs +1 -0
  34. package/dist/parseNumber-DFsrGj64.js +9 -0
  35. package/dist/pick-0KNFTqKn.cjs +1 -0
  36. package/dist/pick-B8ymxJme.js +6 -0
  37. package/dist/preact/autocomplete/autocomplete.cjs.js +1 -1
  38. package/dist/preact/autocomplete/autocomplete.es.js +49 -42
  39. package/dist/preact/category/category.cjs.js +1 -1
  40. package/dist/preact/category/category.es.js +9 -4
  41. package/dist/preact/common/common.cjs.js +1 -1
  42. package/dist/preact/common/common.es.js +27 -31
  43. package/dist/preact/events/events.cjs.js +1 -1
  44. package/dist/preact/events/events.es.js +3 -8
  45. package/dist/preact/hooks/hooks.cjs.js +1 -1
  46. package/dist/preact/hooks/hooks.es.js +495 -508
  47. package/dist/preact/inject/inject.cjs.js +1 -1
  48. package/dist/preact/inject/inject.es.js +318 -301
  49. package/dist/preact/legacy/legacy.cjs.js +1 -1
  50. package/dist/preact/legacy/legacy.es.js +8 -10
  51. package/dist/preact/serp/serp.cjs.js +1 -1
  52. package/dist/preact/serp/serp.es.js +28 -18
  53. package/dist/search-BeFE0Ezr.cjs +1 -0
  54. package/dist/search-C2WGFf4C.js +155 -0
  55. package/dist/storage-B3FIcJQv.cjs +1 -0
  56. package/dist/storage-DeAo7M3s.js +115 -0
  57. package/dist/thumbnails/thumbnails.cjs.js +1 -1
  58. package/dist/thumbnails/thumbnails.es.js +93 -97
  59. package/dist/unique-BXFI_-3F.cjs +1 -0
  60. package/dist/unique-DSDxyj90.js +37 -0
  61. package/dist/useActions-BmWNZAES.js +182 -0
  62. package/dist/useActions-boQy-Vp0.cjs +1 -0
  63. package/dist/useHistory-BMkSr69f.js +24 -0
  64. package/dist/useHistory-GRnuHgQ5.cjs +1 -0
  65. package/dist/useLoadMore-B9LiuhfV.cjs +1 -0
  66. package/dist/useLoadMore-BkJV7F21.js +38 -0
  67. package/dist/utils/utils.cjs.js +1 -1
  68. package/dist/utils/utils.es.js +9 -28
  69. package/package.json +5 -5
  70. package/dist/AutocompletePageProvider-CFEbt11-.cjs +0 -1
  71. package/dist/AutocompletePageProvider-CQePqAhB.js +0 -35
  72. package/dist/BaseElement-CIHACCWd.cjs +0 -1
  73. package/dist/BaseElement-DD_4UwDm.js +0 -24
  74. package/dist/CategoryPageProvider-037sXEh9.cjs +0 -1
  75. package/dist/CategoryPageProvider-DVL9lsCU.js +0 -26
  76. package/dist/ErrorBoundary-DFs5vnv-.js +0 -11
  77. package/dist/ErrorBoundary-DNPL7EwP.cjs +0 -1
  78. package/dist/InfiniteScrollWithObserver-BliG4dEl.cjs +0 -1
  79. package/dist/InfiniteScrollWithObserver-DvkEUZUE.js +0 -205
  80. package/dist/SerpPageProvider-BzrNPc7g.js +0 -26
  81. package/dist/SerpPageProvider-CxqiX9Zo.cjs +0 -1
  82. package/dist/baseConfig-BOOw0mWW.cjs +0 -1
  83. package/dist/baseConfig-Cf28X268.js +0 -48
  84. package/dist/cl-B00bZ7jc.cjs +0 -1
  85. package/dist/cl-CcykAxZN.js +0 -6
  86. package/dist/disableNativeAutocomplete-Bkta_WR2.js +0 -27
  87. package/dist/disableNativeAutocomplete-DI6zaZII.cjs +0 -1
  88. package/dist/eventBusDispatch-BKQcSHAB.cjs +0 -1
  89. package/dist/eventBusDispatch-DPR2Vwd4.js +0 -20
  90. package/dist/eventBusSubscribe-B5E7dTzk.js +0 -26
  91. package/dist/eventBusSubscribe-C4H9Nv1Z.cjs +0 -1
  92. package/dist/index.es-Dp6Iaxz3.cjs +0 -1
  93. package/dist/index.es-XNBESE3P.js +0 -26
  94. package/dist/isBot-C-qPIZyF.cjs +0 -1
  95. package/dist/jsxRuntime.module-B3sGoTIU.cjs +0 -1
  96. package/dist/jsxRuntime.module-Bzuv3cXw.js +0 -13
  97. package/dist/parseNumber-FsZ8w61u.cjs +0 -1
  98. package/dist/parseNumber-QA48nJLp.js +0 -11
  99. package/dist/pick-DReBictn.js +0 -9
  100. package/dist/pick-rYi1lc2m.cjs +0 -1
  101. package/dist/search-BchLEATK.cjs +0 -1
  102. package/dist/search-D1jQPG6P.js +0 -156
  103. package/dist/storage-9KuhFI9v.cjs +0 -1
  104. package/dist/storage-B97DRj5i.js +0 -121
  105. package/dist/unique-C1G3v2Y8.cjs +0 -1
  106. package/dist/unique-CCu7ChUL.js +0 -39
  107. package/dist/useActions-BD6dgsX8.js +0 -260
  108. package/dist/useActions-DIlSparF.cjs +0 -1
  109. package/dist/useHistory-DLCyHMo1.cjs +0 -1
  110. package/dist/useHistory-sjFYeR68.js +0 -27
  111. package/dist/useLoadMore-BMOT8Dfn.js +0 -33
  112. package/dist/useLoadMore-vCpwy6JC.cjs +0 -1
@@ -1,326 +1,343 @@
1
- import { A as L, m as j } from "../../AutocompletePageProvider-CQePqAhB.js";
2
- import { C as O, m as R } from "../../CategoryPageProvider-DVL9lsCU.js";
3
- import { n as T, c as p } from "../../useActions-BD6dgsX8.js";
4
- import { S as $, m as F } from "../../SerpPageProvider-BzrNPc7g.js";
5
- import { u as d } from "../../jsxRuntime.module-Bzuv3cXw.js";
6
- import { E as h } from "../../ErrorBoundary-DFs5vnv-.js";
7
- import { d as k, b as B } from "../../disableNativeAutocomplete-Bkta_WR2.js";
8
- import { m as I } from "../../unique-CCu7ChUL.js";
9
- import { render as y } from "preact";
10
- import { l as q, g as w, s as Q } from "../../storage-B97DRj5i.js";
11
- function U(e) {
12
- let n;
13
- return (t) => {
14
- n && clearTimeout(n), n = setTimeout(t, e);
15
- };
1
+ import "../../index.es-jSYcbRvi.js";
2
+ import "../../search-C2WGFf4C.js";
3
+ import { a as e, s as t, t as n } from "../../storage-DeAo7M3s.js";
4
+ import { n as r, t as i } from "../../disableNativeAutocomplete-CcR_Ek_P.js";
5
+ import { n as a } from "../../unique-DSDxyj90.js";
6
+ import { a as o, r as s } from "../../useActions-BmWNZAES.js";
7
+ import "../../eventBusSubscribe-C6qT1aOO.js";
8
+ import "../../baseConfig-Che6Adb6.js";
9
+ import "../../useHistory-BMkSr69f.js";
10
+ import { n as c, t as l } from "../../AutocompletePageProvider-D48n1GB-.js";
11
+ import { n as u } from "../../jsxRuntime.module-BRdvPAre.js";
12
+ import { n as d, t as f } from "../../CategoryPageProvider-BYw7KGoS.js";
13
+ import { t as p } from "../../ErrorBoundary-Bxyssvki.js";
14
+ import { n as m, t as h } from "../../SerpPageProvider-fg14kNV9.js";
15
+ import { render as g } from "preact";
16
+ //#region packages/utils/src/debounce.ts
17
+ function _(e) {
18
+ let t;
19
+ return (n) => {
20
+ t && clearTimeout(t), t = setTimeout(n, e);
21
+ };
16
22
  }
17
- function b(e) {
18
- return Array.from(document.querySelectorAll(e));
23
+ //#endregion
24
+ //#region packages/preact/inject/src/helpers/dom.ts
25
+ function v(e) {
26
+ return Array.from(document.querySelectorAll(e));
19
27
  }
20
- function K(e) {
21
- const n = [];
22
- let t = e.parentNode;
23
- for (; t && t !== document && t instanceof Element; )
24
- n.push(t), t = t.parentNode;
25
- return n;
28
+ function y(e) {
29
+ let t = [], n = e.parentNode;
30
+ for (; n && n !== document && n instanceof Element;) t.push(n), n = n.parentNode;
31
+ return t;
26
32
  }
27
- function S([e, n], t) {
28
- const o = (r) => {
29
- const s = r.target;
30
- s instanceof HTMLElement && e && s !== e && s !== n && !K(s).includes(e) && t();
31
- };
32
- return document.addEventListener("click", o), {
33
- destroy: () => {
34
- document.removeEventListener("click", o);
35
- }
36
- };
33
+ function b([e, t], n) {
34
+ let r = (r) => {
35
+ let i = r.target;
36
+ i instanceof HTMLElement && e && i !== e && i !== t && !y(i).includes(e) && n();
37
+ };
38
+ return document.addEventListener("click", r), { destroy: () => {
39
+ document.removeEventListener("click", r);
40
+ } };
37
41
  }
38
- function E(e, n) {
39
- e.tabIndex = 0, e.addEventListener("blur", n);
42
+ function x(e, t) {
43
+ e.tabIndex = 0, e.addEventListener("blur", t);
40
44
  }
41
- function C(e) {
42
- return typeof e == "string" ? {
43
- selector: e,
44
- position: "last"
45
- } : {
46
- position: "last",
47
- ...e
48
- };
45
+ //#endregion
46
+ //#region packages/preact/inject/src/resolveCssSelector.ts
47
+ function S(e) {
48
+ return typeof e == "string" ? {
49
+ selector: e,
50
+ position: "last"
51
+ } : {
52
+ position: "last",
53
+ ...e
54
+ };
49
55
  }
50
- function N({ selector: e, timeout: n = 500 }) {
51
- return new Promise((t) => {
52
- const o = b(e);
53
- if (o.length > 0)
54
- return t(o);
55
- const r = new MutationObserver(() => {
56
- const i = b(e);
57
- i.length > 0 && (r.disconnect(), clearTimeout(s), t(i));
58
- }), s = setTimeout(() => {
59
- r.disconnect(), q.warn(`Timed out (${n}) while waiting for element ${e}`), t([]);
60
- }, n);
61
- r.observe(document.body, {
62
- childList: !0,
63
- subtree: !0
64
- });
65
- });
56
+ //#endregion
57
+ //#region packages/preact/inject/src/wait.ts
58
+ function C({ selector: e, timeout: n = 500 }) {
59
+ return new Promise((r) => {
60
+ let i = v(e);
61
+ if (i.length > 0) return r(i);
62
+ let a = new MutationObserver(() => {
63
+ let t = v(e);
64
+ t.length > 0 && (a.disconnect(), clearTimeout(o), r(t));
65
+ }), o = setTimeout(() => {
66
+ a.disconnect(), t.warn(`Timed out (${n}) while waiting for element ${e}`), r([]);
67
+ }, n);
68
+ a.observe(document.body, {
69
+ childList: !0,
70
+ subtree: !0
71
+ });
72
+ });
66
73
  }
67
- function H(e, n, t) {
68
- n.style.display = "none";
69
- const o = (() => {
70
- if (e.parentElement && e.parentElement.classList.contains("nosto-autocomplete-wrapper"))
71
- return e.parentElement;
72
- const a = document.createElement("div");
73
- return a.className = "nosto-autocomplete-wrapper", e.parentNode?.insertBefore(a, e.nextSibling), a.appendChild(e), a;
74
- })(), r = C(t), s = r && document.querySelector(r.selector);
75
- if (s) {
76
- const a = document.createElement("form");
77
- a.className = "nosto-dropdown-form", a.appendChild(n), r.position === "first" ? s.prepend(a) : s.appendChild(a);
78
- } else
79
- o.appendChild(n);
80
- const i = {
81
- index: -1,
82
- onChangeListeners: []
83
- }, c = (a, m) => {
84
- const f = a.length;
85
- f === 0 && (m = -1), i.index = m >= 0 ? m % f : f - 1, i.onChangeListeners.forEach((D) => D());
86
- }, l = () => {
87
- i.index = -1, i.onChangeListeners.forEach((a) => a());
88
- }, u = () => i.index;
89
- return {
90
- element: n,
91
- hide: () => {
92
- n.style.display = "none", l();
93
- },
94
- show: () => {
95
- n.style.display = "inherit";
96
- },
97
- isOpen: () => n.style.display !== "none",
98
- goDown: () => {
99
- const a = Array.from(n.getElementsByClassName("ns-autocomplete-element")), m = u();
100
- c(a, m + 1);
101
- },
102
- goUp: () => {
103
- const a = Array.from(n.getElementsByClassName("ns-autocomplete-element")), m = u();
104
- c(a, m - 1);
105
- },
106
- highlight: c,
107
- highlightedIndex: u,
108
- submitHighlightedItem: (a) => {
109
- Array.from(n.querySelectorAll(".ns-autocomplete-element"))[a]?.click();
110
- },
111
- onHighlightChange: (a) => {
112
- i.onChangeListeners.push(a);
113
- }
114
- };
74
+ //#endregion
75
+ //#region packages/preact/inject/src/init/autocomplete/components/createComponent.tsx
76
+ function w(e, t, n) {
77
+ t.style.display = "none";
78
+ let r = (() => {
79
+ if (e.parentElement && e.parentElement.classList.contains("nosto-autocomplete-wrapper")) return e.parentElement;
80
+ let t = document.createElement("div");
81
+ return t.className = "nosto-autocomplete-wrapper", e.parentNode?.insertBefore(t, e.nextSibling), t.appendChild(e), t;
82
+ })(), i = S(n), a = i && document.querySelector(i.selector);
83
+ if (a) {
84
+ let e = document.createElement("form");
85
+ e.className = "nosto-dropdown-form", e.appendChild(t), i.position === "first" ? a.prepend(e) : a.appendChild(e);
86
+ } else r.appendChild(t);
87
+ let o = {
88
+ index: -1,
89
+ onChangeListeners: []
90
+ }, s = (e, t) => {
91
+ let n = e.length;
92
+ n === 0 && (t = -1), o.index = t >= 0 ? t % n : n - 1, o.onChangeListeners.forEach((e) => e());
93
+ }, c = () => {
94
+ o.index = -1, o.onChangeListeners.forEach((e) => e());
95
+ }, l = () => o.index;
96
+ return {
97
+ element: t,
98
+ hide: () => {
99
+ t.style.display = "none", c();
100
+ },
101
+ show: () => {
102
+ t.style.display = "inherit";
103
+ },
104
+ isOpen: () => t.style.display !== "none",
105
+ goDown: () => {
106
+ s(Array.from(t.getElementsByClassName("ns-autocomplete-element")), l() + 1);
107
+ },
108
+ goUp: () => {
109
+ s(Array.from(t.getElementsByClassName("ns-autocomplete-element")), l() - 1);
110
+ },
111
+ highlight: s,
112
+ highlightedIndex: l,
113
+ submitHighlightedItem: (e) => {
114
+ Array.from(t.querySelectorAll(".ns-autocomplete-element"))[e]?.click();
115
+ },
116
+ onHighlightChange: (e) => {
117
+ o.onChangeListeners.push(e);
118
+ }
119
+ };
115
120
  }
116
- function M(e, n) {
117
- const t = document.createElement("div");
118
- return t.className = "nosto-autocomplete-dropdown", {
119
- ...H(e, t, n),
120
- element: t
121
- };
121
+ //#endregion
122
+ //#region packages/preact/inject/src/init/autocomplete/components/AutocompleteDropdown.tsx
123
+ function T(e, t) {
124
+ let n = document.createElement("div");
125
+ return n.className = "nosto-autocomplete-dropdown", {
126
+ ...w(e, n, t),
127
+ element: n
128
+ };
122
129
  }
123
- const g = "nosto:search-js:history";
124
- function v(e, n, t) {
125
- const o = document.createElement("div");
126
- return o.className = "nosto-autocomplete-history", {
127
- ...H(e, o, n),
128
- element: o,
129
- add: (s) => {
130
- const c = (w(g) ?? []).filter((l) => l !== s).slice(t ? -t : 0);
131
- c.push(s), Q(g, c);
132
- },
133
- get: () => (w(g) ?? []).reverse().filter((i) => !!i)
134
- };
130
+ //#endregion
131
+ //#region packages/preact/inject/src/init/autocomplete/components/AutocompleteHistory.tsx
132
+ var E = "nosto:search-js:history";
133
+ function D(t, r, i) {
134
+ let a = document.createElement("div");
135
+ return a.className = "nosto-autocomplete-history", {
136
+ ...w(t, a, r),
137
+ element: a,
138
+ add: (t) => {
139
+ let r = (n(E) ?? []).filter((e) => e !== t).slice(i ? -i : 0);
140
+ r.push(t), e(E, r);
141
+ },
142
+ get: () => (n(E) ?? []).reverse().filter((e) => !!e)
143
+ };
135
144
  }
136
- async function z(e, { config: n, dropdown: t, history: o, renderHistory: r, store: s }) {
137
- const { historyEnabled: i, minQueryLength: c } = n;
138
- if (e.length < c && i && r && !o.isOpen()) {
139
- o.show();
140
- return;
141
- }
142
- if (e.length < c)
143
- return;
144
- t.hide();
145
- const l = s.getState()?.query?.query;
146
- l && l !== e && await T({ config: n, store: s }, { query: e }), t.show();
145
+ //#endregion
146
+ //#region packages/preact/inject/src/init/autocomplete/events/onClick.tsx
147
+ async function O(e, { config: t, dropdown: n, history: r, renderHistory: i, store: a }) {
148
+ let { historyEnabled: o, minQueryLength: c } = t;
149
+ if (e.length < c && o && i && !r.isOpen()) {
150
+ r.show();
151
+ return;
152
+ }
153
+ if (e.length < c) return;
154
+ n.hide();
155
+ let l = a.getState()?.query?.query;
156
+ l && l !== e && await s({
157
+ config: t,
158
+ store: a
159
+ }, { query: e }), n.show();
147
160
  }
148
- async function G(e, n) {
149
- const { config: t, renderHistory: o, history: r } = n, { historyEnabled: s, minQueryLength: i } = t;
150
- if (!o || e.length >= i || !s || r.isOpen())
151
- return;
152
- const c = x(n);
153
- r.onHighlightChange(() => {
154
- c(o, r.element);
155
- }), r.show();
156
- const l = I("renderHistory");
157
- c(o, r.element), l();
161
+ //#endregion
162
+ //#region packages/preact/inject/src/init/autocomplete/events/onFocus.tsx
163
+ async function k(e, t) {
164
+ let { config: n, renderHistory: r, history: i } = t, { historyEnabled: o, minQueryLength: s } = n;
165
+ if (!r || e.length >= s || !o || i.isOpen()) return;
166
+ let c = R(t);
167
+ i.onHighlightChange(() => {
168
+ c(r, i.element);
169
+ }), i.show();
170
+ let l = a("renderHistory");
171
+ c(r, i.element), l();
158
172
  }
159
- async function J(e, { config: n, dropdown: t, history: o, store: r, debouncer: s }) {
160
- const { minQueryLength: i, historyEnabled: c } = n;
161
- if (e.length < i && !c) {
162
- t.hide(), o.hide();
163
- return;
164
- }
165
- if (e.length < i && c) {
166
- t.hide(), o.show();
167
- return;
168
- }
169
- o.hide(), s(async () => {
170
- T({ config: n, store: r }, { query: e }), t.show();
171
- });
173
+ //#endregion
174
+ //#region packages/preact/inject/src/init/autocomplete/events/onInput.tsx
175
+ async function A(e, { config: t, dropdown: n, history: r, store: i, debouncer: a }) {
176
+ let { minQueryLength: o, historyEnabled: c } = t;
177
+ if (e.length < o && !c) {
178
+ n.hide(), r.hide();
179
+ return;
180
+ }
181
+ if (e.length < o && c) {
182
+ n.hide(), r.show();
183
+ return;
184
+ }
185
+ r.hide(), a(async () => {
186
+ s({
187
+ config: t,
188
+ store: i
189
+ }, { query: e }), n.show();
190
+ });
172
191
  }
173
- function V(e, n, t) {
174
- const { config: o, debouncer: r } = t;
175
- if (r(() => {
176
- }), e.length >= o.minQueryLength)
177
- return A(n, t.dropdown, t.history);
178
- if (o.historyEnabled)
179
- return A(n, t.history, t.dropdown);
192
+ //#endregion
193
+ //#region packages/preact/inject/src/init/autocomplete/events/onKeyDown.tsx
194
+ function j(e, t, n) {
195
+ let { config: r, debouncer: i } = n;
196
+ if (i(() => {}), e.length >= r.minQueryLength) return M(t, n.dropdown, n.history);
197
+ if (r.historyEnabled) return M(t, n.history, n.dropdown);
180
198
  }
181
- function A(e, n, t) {
182
- if (!n.isOpen() && e === "ArrowDown") {
183
- n.show(), t.hide();
184
- return;
185
- }
186
- if (e === "Escape" && n.hide(), !!n.isOpen()) {
187
- if (e === "ArrowDown")
188
- n.goDown();
189
- else if (e === "ArrowUp")
190
- n.goUp();
191
- else if (e === "Enter") {
192
- const o = n.highlightedIndex();
193
- return o >= 0 && n.submitHighlightedItem(o), n.hide(), o >= 0;
194
- }
195
- }
199
+ function M(e, t, n) {
200
+ if (!t.isOpen() && e === "ArrowDown") {
201
+ t.show(), n.hide();
202
+ return;
203
+ }
204
+ if (e === "Escape" && t.hide(), t.isOpen()) {
205
+ if (e === "ArrowDown") t.goDown();
206
+ else if (e === "ArrowUp") t.goUp();
207
+ else if (e === "Enter") {
208
+ let e = t.highlightedIndex();
209
+ return e >= 0 && t.submitHighlightedItem(e), t.hide(), e >= 0;
210
+ }
211
+ }
196
212
  }
197
- function W(e, { config: n, dropdown: t, history: o, onNavigateToSearch: r, store: s }) {
198
- t.hide(), o.hide(), !(e.length < n.minQueryLength) && (o.add(e), s.updateState({
199
- historyItems: o.get()
200
- }), r?.({
201
- query: e
202
- }));
213
+ //#endregion
214
+ //#region packages/preact/inject/src/init/autocomplete/events/onSubmit.tsx
215
+ function N(e, { config: t, dropdown: n, history: r, onNavigateToSearch: i, store: a }) {
216
+ n.hide(), r.hide(), !(e.length < t.minQueryLength) && (r.add(e), a.updateState({ historyItems: r.get() }), i?.({ query: e }));
203
217
  }
204
- async function X(e, n) {
205
- const { inputCssSelector: t, timeout: o } = e, r = C(t).selector, s = await N({
206
- selector: r,
207
- timeout: o
208
- });
209
- if (s.length === 0)
210
- throw new Error(`No elements found for selector: ${r}`);
211
- s.forEach((i) => {
212
- Y(i, e, n);
213
- });
218
+ //#endregion
219
+ //#region packages/preact/inject/src/init/injectAutocomplete.tsx
220
+ async function P(e, t) {
221
+ let { inputCssSelector: n, timeout: r } = e, i = S(n).selector, a = await C({
222
+ selector: i,
223
+ timeout: r
224
+ });
225
+ if (a.length === 0) throw Error(`No elements found for selector: ${i}`);
226
+ a.forEach((n) => {
227
+ F(n, e, t);
228
+ });
214
229
  }
215
- async function Y(e, n, t) {
216
- const { config: o, dropdownCssSelector: r } = n, s = M(e, r), i = v(e, r, o.historySize), c = {
217
- ...n,
218
- input: e,
219
- dropdown: s,
220
- history: i,
221
- store: t,
222
- debouncer: U(o.debounceDelay)
223
- };
224
- _(c), e.setAttribute("data-nosto-element", "search-input"), t.updateState({
225
- historyItems: i.get()
226
- }), k(e), t.onInit(() => {
227
- Z(c);
228
- }), B(e, {
229
- onInput: (l) => J(l, c),
230
- onFocus: (l) => G(l, c),
231
- onClick: (l) => z(l, c),
232
- onSubmit: (l) => W(l, c),
233
- onKeyDown: (l, u) => V(l, u, c)
234
- }), E(i.element, i.hide), E(s.element, s.hide), S([i.element, e], i.hide), S([s.element, e], s.hide);
230
+ async function F(e, t, n) {
231
+ let { config: a, dropdownCssSelector: o } = t, s = T(e, o), c = D(e, o, a.historySize), l = {
232
+ ...t,
233
+ input: e,
234
+ dropdown: s,
235
+ history: c,
236
+ store: n,
237
+ debouncer: _(a.debounceDelay)
238
+ };
239
+ L(l), e.setAttribute("data-nosto-element", "search-input"), n.updateState({ historyItems: c.get() }), i(e), n.onInit(() => {
240
+ I(l);
241
+ }), r(e, {
242
+ onInput: (e) => A(e, l),
243
+ onFocus: (e) => k(e, l),
244
+ onClick: (e) => O(e, l),
245
+ onSubmit: (e) => N(e, l),
246
+ onKeyDown: (e, t) => j(e, t, l)
247
+ }), x(c.element, c.hide), x(s.element, s.hide), b([c.element, e], c.hide), b([s.element, e], s.hide);
235
248
  }
236
- function Z(e) {
237
- const { dropdown: n, renderAutocomplete: t } = e;
238
- if (!t)
239
- return;
240
- const o = x(e);
241
- n.onHighlightChange(() => {
242
- o(t, n.element);
243
- });
244
- const r = I("renderAutocomplete");
245
- o(t, n.element), r();
249
+ function I(e) {
250
+ let { dropdown: t, renderAutocomplete: n } = e;
251
+ if (!n) return;
252
+ let r = R(e);
253
+ t.onHighlightChange(() => {
254
+ r(n, t.element);
255
+ });
256
+ let i = a("renderAutocomplete");
257
+ r(n, t.element), i();
246
258
  }
247
- async function _(e) {
248
- const { input: n, renderSpeechToText: t, config: o, store: r } = e;
249
- if (!t) return;
250
- const s = "ns-autocomplete-voice-position";
251
- if (!!n.parentElement?.querySelector(`.${s}`)) return;
252
- const c = document.createElement("div");
253
- c.className = s, n.insertAdjacentElement("afterend", c);
254
- const l = await t();
255
- y(
256
- /* @__PURE__ */ d(h, { children: /* @__PURE__ */ d(L, { config: o, store: r, children: l }) }),
257
- c
258
- );
259
+ async function L(e) {
260
+ let { input: t, renderSpeechToText: n, config: r, store: i } = e;
261
+ if (!n) return;
262
+ let a = "ns-autocomplete-voice-position";
263
+ if (t.parentElement?.querySelector(`.${a}`)) return;
264
+ let o = document.createElement("div");
265
+ o.className = a, t.insertAdjacentElement("afterend", o), g(/* @__PURE__ */ u(p, { children: /* @__PURE__ */ u(l, {
266
+ config: r,
267
+ store: i,
268
+ children: await n()
269
+ }) }), o);
259
270
  }
260
- function x(e) {
261
- const { config: n, store: t } = e;
262
- return (o, r) => y(
263
- /* @__PURE__ */ d(h, { children: /* @__PURE__ */ d(L, { config: n, store: t, children: o() }) }),
264
- r
265
- );
271
+ function R(e) {
272
+ let { config: t, store: n } = e;
273
+ return (e, r) => g(/* @__PURE__ */ u(p, { children: /* @__PURE__ */ u(l, {
274
+ config: t,
275
+ store: n,
276
+ children: e()
277
+ }) }), r);
266
278
  }
267
- async function P({ cssSelector: e, timeout: n, renderComponent: t }) {
268
- const o = C(e).selector, r = await N({
269
- selector: o,
270
- timeout: n ?? 100
271
- });
272
- if (r.length === 0)
273
- throw new Error(`No elements found for selector: ${o}`);
274
- r.length > 1 && q.warn(`Multiple (${r.length}) elements found for selector: ${o}`), y(t(), r[0]);
279
+ //#endregion
280
+ //#region packages/preact/inject/src/init/injectComponent.tsx
281
+ async function z({ cssSelector: e, timeout: n, renderComponent: r }) {
282
+ let i = S(e).selector, a = await C({
283
+ selector: i,
284
+ timeout: n ?? 100
285
+ });
286
+ if (a.length === 0) throw Error(`No elements found for selector: ${i}`);
287
+ a.length > 1 && t.warn(`Multiple (${a.length}) elements found for selector: ${i}`), g(r(), a[0]);
275
288
  }
276
- async function ee(e, n) {
277
- const { render: t } = e, o = await t();
278
- P({
279
- ...e,
280
- renderComponent: () => /* @__PURE__ */ d(h, { children: /* @__PURE__ */ d(O, { store: n, config: e.config, children: o }) })
281
- });
289
+ //#endregion
290
+ //#region packages/preact/inject/src/init/injectCategory.tsx
291
+ async function B(e, t) {
292
+ let { render: n } = e, r = await n(), i = () => /* @__PURE__ */ u(p, { children: /* @__PURE__ */ u(f, {
293
+ store: t,
294
+ config: e.config,
295
+ children: r
296
+ }) });
297
+ z({
298
+ ...e,
299
+ renderComponent: i
300
+ });
282
301
  }
283
- async function ne(e, n) {
284
- const { render: t } = e, o = await t();
285
- P({
286
- ...e,
287
- renderComponent: () => /* @__PURE__ */ d(h, { children: /* @__PURE__ */ d($, { store: n, config: e.config, children: o }) })
288
- });
302
+ //#endregion
303
+ //#region packages/preact/inject/src/init/injectSerp.tsx
304
+ async function V(e, t) {
305
+ let { render: n } = e, r = await n(), i = () => /* @__PURE__ */ u(p, { children: /* @__PURE__ */ u(h, {
306
+ store: t,
307
+ config: e.config,
308
+ children: r
309
+ }) });
310
+ z({
311
+ ...e,
312
+ renderComponent: i
313
+ });
289
314
  }
290
- async function ue({ autocomplete: e, category: n, serp: t }) {
291
- const o = {};
292
- if (e) {
293
- const r = p({ query: e.query });
294
- await X(
295
- {
296
- ...e,
297
- config: j(e.config)
298
- },
299
- r
300
- ), o.autocomplete = { store: r };
301
- }
302
- if (n) {
303
- const r = p({ query: n.query });
304
- await ee(
305
- {
306
- ...n,
307
- config: R(n.config)
308
- },
309
- r
310
- ), o.category = { store: r };
311
- }
312
- if (t) {
313
- const r = p({ query: t.query });
314
- await ne(
315
- {
316
- ...t,
317
- config: F(t.config)
318
- },
319
- r
320
- ), o.serp = { store: r };
321
- }
322
- return o;
315
+ //#endregion
316
+ //#region packages/preact/inject/src/init.ts
317
+ async function H({ autocomplete: e, category: t, serp: n }) {
318
+ let r = {};
319
+ if (e) {
320
+ let t = o({ query: e.query });
321
+ await P({
322
+ ...e,
323
+ config: c(e.config)
324
+ }, t), r.autocomplete = { store: t };
325
+ }
326
+ if (t) {
327
+ let e = o({ query: t.query });
328
+ await B({
329
+ ...t,
330
+ config: d(t.config)
331
+ }, e), r.category = { store: e };
332
+ }
333
+ if (n) {
334
+ let e = o({ query: n.query });
335
+ await V({
336
+ ...n,
337
+ config: m(n.config)
338
+ }, e), r.serp = { store: e };
339
+ }
340
+ return r;
323
341
  }
324
- export {
325
- ue as init
326
- };
342
+ //#endregion
343
+ export { H as init };