@indxsearch/intrface 1.1.5 → 1.1.7
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.es.js +582 -580
- package/dist/index.umd.js +4 -4
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -2,8 +2,8 @@ var gt = Object.defineProperty;
|
|
|
2
2
|
var mt = (r, o, d) => o in r ? gt(r, o, { enumerable: !0, configurable: !0, writable: !0, value: d }) : r[o] = d;
|
|
3
3
|
var tt = (r, o, d) => mt(r, typeof o != "symbol" ? o + "" : o, d);
|
|
4
4
|
import "@indxsearch/systm/styles.css";
|
|
5
|
-
import
|
|
6
|
-
import { SearchField as bt, Button as ye, FilterPanelBase as Se, ToggleSwitch as le, Checkbox as rt, Slider as lt, InputField as
|
|
5
|
+
import re, { createContext as pt, useRef as me, useState as X, useEffect as ie, useCallback as K, useMemo as Be, useContext as vt, memo as it, Component as xt } from "react";
|
|
6
|
+
import { SearchField as bt, Button as ye, FilterPanelBase as Se, ToggleSwitch as le, Checkbox as rt, Slider as lt, InputField as ee, Select as St, RadioButton as yt } from "@indxsearch/systm";
|
|
7
7
|
var qe = { exports: {} }, Pe = {};
|
|
8
8
|
/**
|
|
9
9
|
* @license React
|
|
@@ -19,19 +19,19 @@ function jt() {
|
|
|
19
19
|
if (nt) return Pe;
|
|
20
20
|
nt = 1;
|
|
21
21
|
var r = Symbol.for("react.transitional.element"), o = Symbol.for("react.fragment");
|
|
22
|
-
function d(s, u,
|
|
23
|
-
var
|
|
24
|
-
if (
|
|
25
|
-
|
|
22
|
+
function d(s, u, v) {
|
|
23
|
+
var S = null;
|
|
24
|
+
if (v !== void 0 && (S = "" + v), u.key !== void 0 && (S = "" + u.key), "key" in u) {
|
|
25
|
+
v = {};
|
|
26
26
|
for (var f in u)
|
|
27
|
-
f !== "key" && (
|
|
28
|
-
} else
|
|
29
|
-
return u =
|
|
27
|
+
f !== "key" && (v[f] = u[f]);
|
|
28
|
+
} else v = u;
|
|
29
|
+
return u = v.ref, {
|
|
30
30
|
$$typeof: r,
|
|
31
31
|
type: s,
|
|
32
|
-
key:
|
|
32
|
+
key: S,
|
|
33
33
|
ref: u !== void 0 ? u : null,
|
|
34
|
-
props:
|
|
34
|
+
props: v
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
return Pe.Fragment = o, Pe.jsx = d, Pe.jsxs = d, Pe;
|
|
@@ -52,38 +52,38 @@ function Ct() {
|
|
|
52
52
|
function r(e) {
|
|
53
53
|
if (e == null) return null;
|
|
54
54
|
if (typeof e == "function")
|
|
55
|
-
return e.$$typeof ===
|
|
55
|
+
return e.$$typeof === Z ? null : e.displayName || e.name || null;
|
|
56
56
|
if (typeof e == "string") return e;
|
|
57
57
|
switch (e) {
|
|
58
|
-
case g:
|
|
59
|
-
return "Fragment";
|
|
60
58
|
case p:
|
|
59
|
+
return "Fragment";
|
|
60
|
+
case g:
|
|
61
61
|
return "Profiler";
|
|
62
|
-
case
|
|
62
|
+
case T:
|
|
63
63
|
return "StrictMode";
|
|
64
|
-
case
|
|
64
|
+
case j:
|
|
65
65
|
return "Suspense";
|
|
66
|
-
case
|
|
66
|
+
case m:
|
|
67
67
|
return "SuspenseList";
|
|
68
|
-
case
|
|
68
|
+
case G:
|
|
69
69
|
return "Activity";
|
|
70
70
|
}
|
|
71
71
|
if (typeof e == "object")
|
|
72
72
|
switch (typeof e.tag == "number" && console.error(
|
|
73
73
|
"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
|
|
74
74
|
), e.$$typeof) {
|
|
75
|
-
case
|
|
75
|
+
case q:
|
|
76
76
|
return "Portal";
|
|
77
|
-
case
|
|
77
|
+
case c:
|
|
78
78
|
return e.displayName || "Context";
|
|
79
|
-
case
|
|
79
|
+
case x:
|
|
80
80
|
return (e._context.displayName || "Context") + ".Consumer";
|
|
81
|
-
case
|
|
81
|
+
case y:
|
|
82
82
|
var a = e.render;
|
|
83
83
|
return e = e.displayName, e || (e = a.displayName || a.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
|
|
84
|
-
case
|
|
84
|
+
case D:
|
|
85
85
|
return a = e.displayName || null, a !== null ? a : r(e.type) || "Memo";
|
|
86
|
-
case
|
|
86
|
+
case U:
|
|
87
87
|
a = e._payload, e = e._init;
|
|
88
88
|
try {
|
|
89
89
|
return r(e(a));
|
|
@@ -104,17 +104,17 @@ function Ct() {
|
|
|
104
104
|
}
|
|
105
105
|
if (a) {
|
|
106
106
|
a = console;
|
|
107
|
-
var
|
|
108
|
-
return
|
|
107
|
+
var b = a.error, F = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
|
|
108
|
+
return b.call(
|
|
109
109
|
a,
|
|
110
110
|
"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
|
|
111
|
-
|
|
111
|
+
F
|
|
112
112
|
), o(e);
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
function s(e) {
|
|
116
|
-
if (e ===
|
|
117
|
-
if (typeof e == "object" && e !== null && e.$$typeof ===
|
|
116
|
+
if (e === p) return "<>";
|
|
117
|
+
if (typeof e == "object" && e !== null && e.$$typeof === U)
|
|
118
118
|
return "<...>";
|
|
119
119
|
try {
|
|
120
120
|
var a = r(e);
|
|
@@ -127,25 +127,25 @@ function Ct() {
|
|
|
127
127
|
var e = O.A;
|
|
128
128
|
return e === null ? null : e.getOwner();
|
|
129
129
|
}
|
|
130
|
-
function
|
|
130
|
+
function v() {
|
|
131
131
|
return Error("react-stack-top-frame");
|
|
132
132
|
}
|
|
133
|
-
function
|
|
134
|
-
if (
|
|
133
|
+
function S(e) {
|
|
134
|
+
if (pe.call(e, "key")) {
|
|
135
135
|
var a = Object.getOwnPropertyDescriptor(e, "key").get;
|
|
136
136
|
if (a && a.isReactWarning) return !1;
|
|
137
137
|
}
|
|
138
138
|
return e.key !== void 0;
|
|
139
139
|
}
|
|
140
140
|
function f(e, a) {
|
|
141
|
-
function
|
|
142
|
-
|
|
141
|
+
function b() {
|
|
142
|
+
B || (B = !0, console.error(
|
|
143
143
|
"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
|
|
144
144
|
a
|
|
145
145
|
));
|
|
146
146
|
}
|
|
147
|
-
|
|
148
|
-
get:
|
|
147
|
+
b.isReactWarning = !0, Object.defineProperty(e, "key", {
|
|
148
|
+
get: b,
|
|
149
149
|
configurable: !0
|
|
150
150
|
});
|
|
151
151
|
}
|
|
@@ -155,14 +155,14 @@ function Ct() {
|
|
|
155
155
|
"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
|
|
156
156
|
)), e = this.props.ref, e !== void 0 ? e : null;
|
|
157
157
|
}
|
|
158
|
-
function
|
|
159
|
-
var A =
|
|
158
|
+
function w(e, a, b, F, ce, xe) {
|
|
159
|
+
var A = b.ref;
|
|
160
160
|
return e = {
|
|
161
|
-
$$typeof:
|
|
161
|
+
$$typeof: ne,
|
|
162
162
|
type: e,
|
|
163
163
|
key: a,
|
|
164
|
-
props:
|
|
165
|
-
_owner:
|
|
164
|
+
props: b,
|
|
165
|
+
_owner: F
|
|
166
166
|
}, (A !== void 0 ? A : null) !== null ? Object.defineProperty(e, "ref", {
|
|
167
167
|
enumerable: !1,
|
|
168
168
|
get: n
|
|
@@ -180,7 +180,7 @@ function Ct() {
|
|
|
180
180
|
configurable: !1,
|
|
181
181
|
enumerable: !1,
|
|
182
182
|
writable: !0,
|
|
183
|
-
value:
|
|
183
|
+
value: ce
|
|
184
184
|
}), Object.defineProperty(e, "_debugTask", {
|
|
185
185
|
configurable: !1,
|
|
186
186
|
enumerable: !1,
|
|
@@ -188,91 +188,91 @@ function Ct() {
|
|
|
188
188
|
value: xe
|
|
189
189
|
}), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
|
|
190
190
|
}
|
|
191
|
-
function
|
|
191
|
+
function V(e, a, b, F, ce, xe) {
|
|
192
192
|
var A = a.children;
|
|
193
193
|
if (A !== void 0)
|
|
194
|
-
if (
|
|
195
|
-
if (
|
|
196
|
-
for (
|
|
197
|
-
|
|
194
|
+
if (F)
|
|
195
|
+
if (P(A)) {
|
|
196
|
+
for (F = 0; F < A.length; F++)
|
|
197
|
+
M(A[F]);
|
|
198
198
|
Object.freeze && Object.freeze(A);
|
|
199
199
|
} else
|
|
200
200
|
console.error(
|
|
201
201
|
"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
|
|
202
202
|
);
|
|
203
|
-
else
|
|
204
|
-
if (
|
|
203
|
+
else M(A);
|
|
204
|
+
if (pe.call(a, "key")) {
|
|
205
205
|
A = r(e);
|
|
206
206
|
var se = Object.keys(a).filter(function(Ne) {
|
|
207
207
|
return Ne !== "key";
|
|
208
208
|
});
|
|
209
|
-
|
|
209
|
+
F = 0 < se.length ? "{key: someKey, " + se.join(": ..., ") + ": ...}" : "{key: someKey}", E[A + F] || (se = 0 < se.length ? "{" + se.join(": ..., ") + ": ...}" : "{}", console.error(
|
|
210
210
|
`A props object containing a "key" prop is being spread into JSX:
|
|
211
211
|
let props = %s;
|
|
212
212
|
<%s {...props} />
|
|
213
213
|
React keys must be passed directly to JSX without using spread:
|
|
214
214
|
let props = %s;
|
|
215
215
|
<%s key={someKey} {...props} />`,
|
|
216
|
-
|
|
216
|
+
F,
|
|
217
217
|
A,
|
|
218
218
|
se,
|
|
219
219
|
A
|
|
220
|
-
),
|
|
220
|
+
), E[A + F] = !0);
|
|
221
221
|
}
|
|
222
|
-
if (A = null,
|
|
223
|
-
|
|
222
|
+
if (A = null, b !== void 0 && (d(b), A = "" + b), S(a) && (d(a.key), A = "" + a.key), "key" in a) {
|
|
223
|
+
b = {};
|
|
224
224
|
for (var be in a)
|
|
225
|
-
be !== "key" && (
|
|
226
|
-
} else
|
|
225
|
+
be !== "key" && (b[be] = a[be]);
|
|
226
|
+
} else b = a;
|
|
227
227
|
return A && f(
|
|
228
|
-
|
|
228
|
+
b,
|
|
229
229
|
typeof e == "function" ? e.displayName || e.name || "Unknown" : e
|
|
230
|
-
),
|
|
230
|
+
), w(
|
|
231
231
|
e,
|
|
232
232
|
A,
|
|
233
|
-
|
|
233
|
+
b,
|
|
234
234
|
u(),
|
|
235
|
-
|
|
235
|
+
ce,
|
|
236
236
|
xe
|
|
237
237
|
);
|
|
238
238
|
}
|
|
239
|
-
function
|
|
240
|
-
|
|
239
|
+
function M(e) {
|
|
240
|
+
L(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e !== null && e.$$typeof === U && (e._payload.status === "fulfilled" ? L(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
|
|
241
241
|
}
|
|
242
|
-
function
|
|
243
|
-
return typeof e == "object" && e !== null && e.$$typeof ===
|
|
242
|
+
function L(e) {
|
|
243
|
+
return typeof e == "object" && e !== null && e.$$typeof === ne;
|
|
244
244
|
}
|
|
245
|
-
var
|
|
245
|
+
var k = re, ne = Symbol.for("react.transitional.element"), q = Symbol.for("react.portal"), p = Symbol.for("react.fragment"), T = Symbol.for("react.strict_mode"), g = Symbol.for("react.profiler"), x = Symbol.for("react.consumer"), c = Symbol.for("react.context"), y = Symbol.for("react.forward_ref"), j = Symbol.for("react.suspense"), m = Symbol.for("react.suspense_list"), D = Symbol.for("react.memo"), U = Symbol.for("react.lazy"), G = Symbol.for("react.activity"), Z = Symbol.for("react.client.reference"), O = k.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, pe = Object.prototype.hasOwnProperty, P = Array.isArray, R = console.createTask ? console.createTask : function() {
|
|
246
246
|
return null;
|
|
247
247
|
};
|
|
248
|
-
|
|
248
|
+
k = {
|
|
249
249
|
react_stack_bottom_frame: function(e) {
|
|
250
250
|
return e();
|
|
251
251
|
}
|
|
252
252
|
};
|
|
253
|
-
var
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
)(), h =
|
|
257
|
-
He.Fragment =
|
|
258
|
-
var
|
|
259
|
-
return
|
|
253
|
+
var B, ve = {}, he = k.react_stack_bottom_frame.bind(
|
|
254
|
+
k,
|
|
255
|
+
v
|
|
256
|
+
)(), h = R(s(v)), E = {};
|
|
257
|
+
He.Fragment = p, He.jsx = function(e, a, b) {
|
|
258
|
+
var F = 1e4 > O.recentlyCreatedOwnerStacks++;
|
|
259
|
+
return V(
|
|
260
260
|
e,
|
|
261
261
|
a,
|
|
262
|
-
|
|
262
|
+
b,
|
|
263
263
|
!1,
|
|
264
|
-
|
|
265
|
-
|
|
264
|
+
F ? Error("react-stack-top-frame") : he,
|
|
265
|
+
F ? R(s(e)) : h
|
|
266
266
|
);
|
|
267
|
-
}, He.jsxs = function(e, a,
|
|
268
|
-
var
|
|
269
|
-
return
|
|
267
|
+
}, He.jsxs = function(e, a, b) {
|
|
268
|
+
var F = 1e4 > O.recentlyCreatedOwnerStacks++;
|
|
269
|
+
return V(
|
|
270
270
|
e,
|
|
271
271
|
a,
|
|
272
|
-
|
|
272
|
+
b,
|
|
273
273
|
!0,
|
|
274
|
-
|
|
275
|
-
|
|
274
|
+
F ? Error("react-stack-top-frame") : he,
|
|
275
|
+
F ? R(s(e)) : h
|
|
276
276
|
);
|
|
277
277
|
};
|
|
278
278
|
})()), He;
|
|
@@ -296,33 +296,33 @@ const Qt = ({
|
|
|
296
296
|
password: d,
|
|
297
297
|
url: s,
|
|
298
298
|
dataset: u,
|
|
299
|
-
allowEmptySearch:
|
|
300
|
-
maxResults:
|
|
299
|
+
allowEmptySearch: v = !1,
|
|
300
|
+
maxResults: S = 10,
|
|
301
301
|
facetDebounceDelayMillis: f = 500,
|
|
302
302
|
// debounce faceted searches only
|
|
303
303
|
enableFacets: n = !0,
|
|
304
|
-
coverageDepth:
|
|
305
|
-
removeDuplicates:
|
|
306
|
-
enableCoverage:
|
|
307
|
-
initialCoverageSetup:
|
|
308
|
-
enableDebugLogs:
|
|
309
|
-
preAuthenticatedToken:
|
|
304
|
+
coverageDepth: w = 500,
|
|
305
|
+
removeDuplicates: V = !0,
|
|
306
|
+
enableCoverage: M = !0,
|
|
307
|
+
initialCoverageSetup: L = {},
|
|
308
|
+
enableDebugLogs: k = !1,
|
|
309
|
+
preAuthenticatedToken: ne
|
|
310
310
|
}) => {
|
|
311
|
-
const
|
|
311
|
+
const q = me(0), p = me(void 0), T = me(!1), g = me(!1), x = me(!1), [c, y] = X({
|
|
312
312
|
query: "",
|
|
313
313
|
results: null,
|
|
314
314
|
isLoading: !1,
|
|
315
|
-
resultsSuppressed: !
|
|
315
|
+
resultsSuppressed: !v,
|
|
316
316
|
// Show placeholder if empty search not allowed
|
|
317
317
|
facetDebounceDelayMillis: f,
|
|
318
318
|
filters: {},
|
|
319
319
|
rangeFilters: {},
|
|
320
320
|
facetStats: {},
|
|
321
321
|
searchSettings: {
|
|
322
|
-
maxNumberOfRecordsToReturn:
|
|
323
|
-
coverageDepth:
|
|
324
|
-
enableCoverage:
|
|
325
|
-
removeDuplicates:
|
|
322
|
+
maxNumberOfRecordsToReturn: S,
|
|
323
|
+
coverageDepth: w,
|
|
324
|
+
enableCoverage: M,
|
|
325
|
+
removeDuplicates: V,
|
|
326
326
|
minimumScore: 0,
|
|
327
327
|
showScore: !0,
|
|
328
328
|
placeholderText: "Type to search",
|
|
@@ -340,177 +340,177 @@ const Qt = ({
|
|
|
340
340
|
coverJoinedWords: !0,
|
|
341
341
|
coverPrefixSuffix: !0,
|
|
342
342
|
truncate: !0,
|
|
343
|
-
...
|
|
343
|
+
...L
|
|
344
344
|
// Allow prop-based override
|
|
345
345
|
}
|
|
346
346
|
}
|
|
347
347
|
});
|
|
348
348
|
ie(() => {
|
|
349
|
-
|
|
350
|
-
}, [
|
|
351
|
-
|
|
352
|
-
...
|
|
349
|
+
k && console.log("SearchContext mounted on client");
|
|
350
|
+
}, [k]), ie(() => {
|
|
351
|
+
y((i) => ({
|
|
352
|
+
...i,
|
|
353
353
|
facetDebounceDelayMillis: f
|
|
354
354
|
}));
|
|
355
355
|
}, [f]);
|
|
356
|
-
const [
|
|
357
|
-
if (!
|
|
356
|
+
const [j, m] = X(null), [D] = X(n), U = K((i, l = {}) => {
|
|
357
|
+
if (!j)
|
|
358
358
|
throw new Error("No authentication token available");
|
|
359
|
-
return fetch(
|
|
360
|
-
...
|
|
359
|
+
return fetch(i, {
|
|
360
|
+
...l,
|
|
361
361
|
headers: {
|
|
362
|
-
...
|
|
363
|
-
Authorization: `Bearer ${
|
|
362
|
+
...l.headers,
|
|
363
|
+
Authorization: `Bearer ${j}`
|
|
364
364
|
},
|
|
365
365
|
credentials: "include"
|
|
366
366
|
});
|
|
367
|
-
}, [
|
|
368
|
-
|
|
369
|
-
...
|
|
370
|
-
query:
|
|
367
|
+
}, [j]), [G, Z] = X([]), [O, pe] = X([]), [P, R] = X([]), [B, ve] = X(!0), [he, h] = X({}), [E, e] = X({}), [a, b] = X({}), [F, ce] = X(""), [xe, A] = X(""), [se, be] = X({}), Ne = me(null), H = K((i) => {
|
|
368
|
+
y((l) => ({
|
|
369
|
+
...l,
|
|
370
|
+
query: i,
|
|
371
371
|
filters: {},
|
|
372
372
|
rangeFilters: {},
|
|
373
373
|
searchSettings: {
|
|
374
|
-
...
|
|
375
|
-
maxNumberOfRecordsToReturn:
|
|
374
|
+
...l.searchSettings,
|
|
375
|
+
maxNumberOfRecordsToReturn: S
|
|
376
376
|
}
|
|
377
377
|
}));
|
|
378
|
-
}, [
|
|
379
|
-
|
|
380
|
-
...
|
|
381
|
-
facetDebounceDelayMillis:
|
|
378
|
+
}, [S]), $ = K((i) => {
|
|
379
|
+
y((l) => ({
|
|
380
|
+
...l,
|
|
381
|
+
facetDebounceDelayMillis: i
|
|
382
382
|
}));
|
|
383
|
-
}, []),
|
|
384
|
-
|
|
385
|
-
...
|
|
383
|
+
}, []), J = K((i) => {
|
|
384
|
+
y((l) => ({
|
|
385
|
+
...l,
|
|
386
386
|
searchSettings: {
|
|
387
|
-
...
|
|
388
|
-
...
|
|
387
|
+
...l.searchSettings,
|
|
388
|
+
...i,
|
|
389
389
|
coverageSetup: {
|
|
390
|
-
...
|
|
391
|
-
...
|
|
390
|
+
...l.searchSettings.coverageSetup,
|
|
391
|
+
...i.coverageSetup || {}
|
|
392
392
|
}
|
|
393
393
|
}
|
|
394
394
|
}));
|
|
395
|
-
}, []), Te =
|
|
396
|
-
|
|
397
|
-
...
|
|
395
|
+
}, []), Te = K((i) => {
|
|
396
|
+
x.current = !0, y((l) => ({
|
|
397
|
+
...l,
|
|
398
398
|
searchSettings: {
|
|
399
|
-
...
|
|
400
|
-
maxNumberOfRecordsToReturn:
|
|
399
|
+
...l.searchSettings,
|
|
400
|
+
maxNumberOfRecordsToReturn: i
|
|
401
401
|
}
|
|
402
402
|
}));
|
|
403
|
-
}, []), _e =
|
|
404
|
-
|
|
405
|
-
const _ = { ...C.filters },
|
|
406
|
-
return
|
|
403
|
+
}, []), _e = K((i, l) => {
|
|
404
|
+
y((C) => {
|
|
405
|
+
const _ = { ...C.filters }, I = _[i] || [], z = I.includes(l) ? I.filter((Q) => Q !== l) : [...I, l];
|
|
406
|
+
return z.length ? _[i] = z : delete _[i], {
|
|
407
407
|
...C,
|
|
408
408
|
filters: _
|
|
409
409
|
};
|
|
410
410
|
});
|
|
411
|
-
}, []), Ae =
|
|
412
|
-
|
|
411
|
+
}, []), Ae = K((i, l, C) => {
|
|
412
|
+
y((_) => ({
|
|
413
413
|
..._,
|
|
414
414
|
rangeFilters: {
|
|
415
415
|
..._.rangeFilters,
|
|
416
|
-
[
|
|
416
|
+
[i]: { min: l, max: C }
|
|
417
417
|
}
|
|
418
418
|
}));
|
|
419
|
-
}, []), ze =
|
|
420
|
-
|
|
421
|
-
...
|
|
419
|
+
}, []), ze = K(() => {
|
|
420
|
+
y((i) => ({
|
|
421
|
+
...i,
|
|
422
422
|
filters: {},
|
|
423
423
|
rangeFilters: {}
|
|
424
424
|
}));
|
|
425
|
-
}, []), Le =
|
|
426
|
-
|
|
427
|
-
const _ = { ...C.filters },
|
|
428
|
-
if (
|
|
429
|
-
const
|
|
430
|
-
|
|
425
|
+
}, []), Le = K((i, l) => {
|
|
426
|
+
y((C) => {
|
|
427
|
+
const _ = { ...C.filters }, I = { ...C.rangeFilters };
|
|
428
|
+
if (l !== void 0) {
|
|
429
|
+
const Q = (_[i] || []).filter((de) => de !== l);
|
|
430
|
+
Q.length > 0 ? _[i] = Q : delete _[i];
|
|
431
431
|
} else
|
|
432
|
-
delete
|
|
432
|
+
delete I[i];
|
|
433
433
|
return {
|
|
434
434
|
...C,
|
|
435
435
|
filters: _,
|
|
436
|
-
rangeFilters:
|
|
436
|
+
rangeFilters: I
|
|
437
437
|
};
|
|
438
438
|
});
|
|
439
|
-
}, []), dt =
|
|
440
|
-
|
|
439
|
+
}, []), dt = K((i, l) => {
|
|
440
|
+
y((C) => ({
|
|
441
441
|
...C,
|
|
442
|
-
sortBy:
|
|
443
|
-
sortAscending:
|
|
442
|
+
sortBy: i || void 0,
|
|
443
|
+
sortAscending: i ? l : void 0
|
|
444
444
|
}));
|
|
445
|
-
}, []), Ge =
|
|
446
|
-
if (
|
|
447
|
-
if (
|
|
448
|
-
let _ =
|
|
449
|
-
for (let
|
|
450
|
-
const
|
|
445
|
+
}, []), Ge = K(async (i, l, C) => {
|
|
446
|
+
if (i.length === 0) return null;
|
|
447
|
+
if (i.length === 1) return i[0];
|
|
448
|
+
let _ = i[0];
|
|
449
|
+
for (let I = 1; I < i.length; I++) {
|
|
450
|
+
const z = await U(`${l}/api/CombineFilters/${C}`, {
|
|
451
451
|
// Combine the current filter with the next filter
|
|
452
452
|
method: "PUT",
|
|
453
453
|
headers: {
|
|
454
454
|
"Content-Type": "application/json"
|
|
455
455
|
},
|
|
456
|
-
body: JSON.stringify({ A: _, B:
|
|
456
|
+
body: JSON.stringify({ A: _, B: i[I], useAndOperation: !0 })
|
|
457
457
|
});
|
|
458
|
-
if (!
|
|
459
|
-
const
|
|
460
|
-
throw console.error("CombineFilters failed:",
|
|
458
|
+
if (!z.ok) {
|
|
459
|
+
const Q = await z.json();
|
|
460
|
+
throw console.error("CombineFilters failed:", Q), new Error("CombineFilters failed");
|
|
461
461
|
}
|
|
462
|
-
_ = await
|
|
462
|
+
_ = await z.json();
|
|
463
463
|
}
|
|
464
464
|
return _;
|
|
465
|
-
}, [
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
]), Ke =
|
|
479
|
-
async ({ enableFacets:
|
|
480
|
-
if (!
|
|
481
|
-
const
|
|
482
|
-
|
|
465
|
+
}, [U]), Ue = c.searchSettings.maxNumberOfRecordsToReturn, Xe = c.searchSettings.enableCoverage, Je = c.searchSettings.removeDuplicates, Qe = c.searchSettings.coverageDepth, Ye = c.searchSettings.minimumScore, $e = c.sortBy, Ie = c.sortAscending, Ze = Be(() => c.searchSettings.coverageSetup, [
|
|
466
|
+
c.searchSettings.coverageSetup.levenshteinMaxWordSize,
|
|
467
|
+
c.searchSettings.coverageSetup.minWordSize,
|
|
468
|
+
c.searchSettings.coverageSetup.coverageMinWordHitsAbs,
|
|
469
|
+
c.searchSettings.coverageSetup.coverageMinWordHitsRelative,
|
|
470
|
+
c.searchSettings.coverageSetup.coverageQLimitForErrorTolerance,
|
|
471
|
+
c.searchSettings.coverageSetup.coverageLcsErrorToleranceRelativeq,
|
|
472
|
+
c.searchSettings.coverageSetup.coverWholeQuery,
|
|
473
|
+
c.searchSettings.coverageSetup.coverWholeWords,
|
|
474
|
+
c.searchSettings.coverageSetup.coverFuzzyWords,
|
|
475
|
+
c.searchSettings.coverageSetup.coverJoinedWords,
|
|
476
|
+
c.searchSettings.coverageSetup.coverPrefixSuffix,
|
|
477
|
+
c.searchSettings.coverageSetup.truncate
|
|
478
|
+
]), Ke = K(
|
|
479
|
+
async ({ enableFacets: i }) => {
|
|
480
|
+
if (!j) return;
|
|
481
|
+
const l = ++q.current;
|
|
482
|
+
y((C) => ({ ...C, isLoading: !0 }));
|
|
483
483
|
try {
|
|
484
|
-
const C = Object.entries(
|
|
484
|
+
const C = Object.entries(c.filters ?? {}), I = (await Promise.all(
|
|
485
485
|
C.map(
|
|
486
|
-
async ([
|
|
487
|
-
|
|
488
|
-
(
|
|
486
|
+
async ([W, Y]) => Promise.all(
|
|
487
|
+
Y.map(
|
|
488
|
+
(te) => U(`${s}/api/CreateValueFilter/${u}`, {
|
|
489
489
|
method: "PUT",
|
|
490
490
|
headers: {
|
|
491
491
|
"Content-Type": "application/json"
|
|
492
492
|
},
|
|
493
|
-
body: JSON.stringify({ FieldName:
|
|
494
|
-
}).then((
|
|
493
|
+
body: JSON.stringify({ FieldName: W, Value: te })
|
|
494
|
+
}).then((ge) => ge.json())
|
|
495
495
|
)
|
|
496
496
|
)
|
|
497
497
|
)
|
|
498
|
-
)).flat(),
|
|
499
|
-
|
|
500
|
-
([
|
|
498
|
+
)).flat(), z = Object.entries(c.rangeFilters ?? {}), Q = await Promise.all(
|
|
499
|
+
z.map(
|
|
500
|
+
([W, { min: Y, max: te }]) => U(`${s}/api/CreateRangeFilter/${u}`, {
|
|
501
501
|
method: "PUT",
|
|
502
502
|
headers: {
|
|
503
503
|
"Content-Type": "application/json"
|
|
504
504
|
},
|
|
505
|
-
body: JSON.stringify({ FieldName:
|
|
506
|
-
}).then((
|
|
505
|
+
body: JSON.stringify({ FieldName: W, LowerLimit: Y, UpperLimit: te })
|
|
506
|
+
}).then((ge) => ge.json())
|
|
507
507
|
)
|
|
508
|
-
),
|
|
509
|
-
(
|
|
510
|
-
), oe = await Ge(
|
|
511
|
-
text:
|
|
508
|
+
), de = [...I, ...Q].filter(
|
|
509
|
+
(W) => W && typeof W.hashString == "string"
|
|
510
|
+
), oe = await Ge(de, s, u), je = v || c.query.trim() !== "", We = {
|
|
511
|
+
text: c.query,
|
|
512
512
|
maxNumberOfRecordsToReturn: je ? Ue : 0,
|
|
513
|
-
enableFacets:
|
|
513
|
+
enableFacets: i,
|
|
514
514
|
...oe ? { filter: oe } : {},
|
|
515
515
|
...$e ? { sortBy: $e } : {},
|
|
516
516
|
...Ie !== void 0 ? { sortAscending: Ie } : {},
|
|
@@ -519,62 +519,62 @@ const Qt = ({
|
|
|
519
519
|
coverageDepth: Qe,
|
|
520
520
|
coverageSetup: Ze
|
|
521
521
|
};
|
|
522
|
-
|
|
523
|
-
const ke = await (await
|
|
522
|
+
k && console.log("[performSearch] request body:", JSON.stringify(We, null, 2));
|
|
523
|
+
const ke = await (await U(`${s}/api/Search/${u}`, {
|
|
524
524
|
method: "POST",
|
|
525
525
|
headers: {
|
|
526
526
|
"Content-Type": "application/json"
|
|
527
527
|
},
|
|
528
528
|
body: JSON.stringify(We)
|
|
529
|
-
})).json(), Ce = ke.truncationIndex ?? -1, we = ke.records || [], Re = we.map((
|
|
529
|
+
})).json(), Ce = ke.truncationIndex ?? -1, we = ke.records || [], Re = we.map((W) => W.documentKey), N = we.map((W) => W.score);
|
|
530
530
|
let ae = [];
|
|
531
|
-
je && Re.length > 0 && (ae = (await (await
|
|
531
|
+
je && Re.length > 0 && (ae = (await (await U(`${s}/api/GetJson/${u}`, {
|
|
532
532
|
method: "POST",
|
|
533
533
|
headers: {
|
|
534
534
|
"Content-Type": "application/json"
|
|
535
535
|
},
|
|
536
536
|
body: JSON.stringify(Re)
|
|
537
|
-
})).json()).map((
|
|
538
|
-
document:
|
|
539
|
-
documentKey: Re[
|
|
540
|
-
score: N[
|
|
537
|
+
})).json()).map((te, ge) => ({
|
|
538
|
+
document: te,
|
|
539
|
+
documentKey: Re[ge],
|
|
540
|
+
score: N[ge]
|
|
541
541
|
})));
|
|
542
|
-
let
|
|
543
|
-
if (
|
|
544
|
-
for (const [
|
|
545
|
-
if (Array.isArray(
|
|
546
|
-
const
|
|
547
|
-
|
|
548
|
-
min: Math.min(...
|
|
549
|
-
max: Math.max(...
|
|
542
|
+
let fe = {};
|
|
543
|
+
if (i && ke.facets) {
|
|
544
|
+
for (const [W, Y] of Object.entries(ke.facets))
|
|
545
|
+
if (Array.isArray(Y) && Y.length > 0) {
|
|
546
|
+
const te = Y.map((ge) => Number(ge.key)).filter((ge) => !isNaN(ge));
|
|
547
|
+
te.length > 0 && (fe[W] = {
|
|
548
|
+
min: Math.min(...te),
|
|
549
|
+
max: Math.max(...te)
|
|
550
550
|
});
|
|
551
551
|
}
|
|
552
552
|
}
|
|
553
|
-
const Ve =
|
|
554
|
-
let De =
|
|
555
|
-
if (Ve ? (De = { ...
|
|
556
|
-
const
|
|
557
|
-
for (const [
|
|
558
|
-
|
|
559
|
-
be(
|
|
553
|
+
const Ve = c.query !== F, ht = c.query !== xe;
|
|
554
|
+
let De = c.facetStats ?? {};
|
|
555
|
+
if (Ve ? (De = { ...he, ...fe }, b(De), ce(c.query)) : De = { ...a, ...fe }, ht && i) {
|
|
556
|
+
const W = { ...se };
|
|
557
|
+
for (const [Y, te] of Object.entries(fe))
|
|
558
|
+
W[Y] = te;
|
|
559
|
+
be(W), A(c.query);
|
|
560
560
|
}
|
|
561
561
|
let Oe = ke.facets;
|
|
562
|
-
if (
|
|
562
|
+
if (i && (!Oe || Object.keys(Oe).length === 0)) {
|
|
563
563
|
Oe = {};
|
|
564
|
-
for (const [
|
|
565
|
-
Oe[
|
|
564
|
+
for (const [W, Y] of Object.entries(E))
|
|
565
|
+
Oe[W] = Y.map((te) => ({ key: te, value: null }));
|
|
566
566
|
}
|
|
567
|
-
if (
|
|
567
|
+
if (l !== q.current)
|
|
568
568
|
return;
|
|
569
|
-
const ft = ae.filter((
|
|
570
|
-
const
|
|
571
|
-
return
|
|
569
|
+
const ft = ae.filter((W) => {
|
|
570
|
+
const Y = c.query.trim();
|
|
571
|
+
return Y === "" || Y.length === 1 ? !0 : W.score >= Ye;
|
|
572
572
|
});
|
|
573
|
-
|
|
574
|
-
...
|
|
573
|
+
y((W) => ({
|
|
574
|
+
...W,
|
|
575
575
|
results: ft,
|
|
576
576
|
resultsSuppressed: !je,
|
|
577
|
-
...
|
|
577
|
+
...i ? {
|
|
578
578
|
facets: Oe,
|
|
579
579
|
facetStats: De
|
|
580
580
|
} : {},
|
|
@@ -582,9 +582,9 @@ const Qt = ({
|
|
|
582
582
|
truncationIndex: Ce
|
|
583
583
|
}));
|
|
584
584
|
} catch (C) {
|
|
585
|
-
if (console.error("[Search] ❌ Search failed:", C), C instanceof TypeError && C.message.includes("fetch") ? (console.error("[Search] ❌ Network error - cannot reach INDX server"), console.error("[Search] 💡 Check if server is running at:", s)) : C instanceof Error && (C.message.includes("401") ? (console.error("[Search] ❌ Authentication failed"), console.error("[Search] 💡 Your token may have expired. Get a fresh token with:"), console.error('[Search] 💡 curl -X POST "' + s + `/api/Login" -H "Content-Type: application/json" -d '{"userEmail":"your@email.com","userPassWord":"yourpassword"}'`)) : C.message.includes("404") ? (console.error("[Search] ❌ Dataset not found"), console.error('[Search] 💡 Check that dataset "' + u + '" exists')) : console.error("[Search] 💡 Error:", C.message)),
|
|
585
|
+
if (console.error("[Search] ❌ Search failed:", C), C instanceof TypeError && C.message.includes("fetch") ? (console.error("[Search] ❌ Network error - cannot reach INDX server"), console.error("[Search] 💡 Check if server is running at:", s)) : C instanceof Error && (C.message.includes("401") ? (console.error("[Search] ❌ Authentication failed"), console.error("[Search] 💡 Your token may have expired. Get a fresh token with:"), console.error('[Search] 💡 curl -X POST "' + s + `/api/Login" -H "Content-Type: application/json" -d '{"userEmail":"your@email.com","userPassWord":"yourpassword"}'`)) : C.message.includes("404") ? (console.error("[Search] ❌ Dataset not found"), console.error('[Search] 💡 Check that dataset "' + u + '" exists')) : console.error("[Search] 💡 Error:", C.message)), l !== q.current)
|
|
586
586
|
return;
|
|
587
|
-
|
|
587
|
+
y((_) => ({
|
|
588
588
|
..._,
|
|
589
589
|
results: null,
|
|
590
590
|
isLoading: !1,
|
|
@@ -594,9 +594,9 @@ const Qt = ({
|
|
|
594
594
|
}
|
|
595
595
|
},
|
|
596
596
|
[
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
597
|
+
c.query,
|
|
598
|
+
c.filters,
|
|
599
|
+
c.rangeFilters,
|
|
600
600
|
$e,
|
|
601
601
|
Ie,
|
|
602
602
|
Ue,
|
|
@@ -605,78 +605,78 @@ const Qt = ({
|
|
|
605
605
|
Qe,
|
|
606
606
|
Ze,
|
|
607
607
|
Ye,
|
|
608
|
-
|
|
608
|
+
U,
|
|
609
609
|
Ge,
|
|
610
610
|
s,
|
|
611
611
|
u,
|
|
612
|
-
|
|
613
|
-
|
|
612
|
+
v,
|
|
613
|
+
j
|
|
614
614
|
]
|
|
615
615
|
);
|
|
616
616
|
ie(() => {
|
|
617
|
-
|
|
618
|
-
}, [Ke]),
|
|
619
|
-
var
|
|
620
|
-
|
|
617
|
+
p.current = Ke;
|
|
618
|
+
}, [Ke]), K(() => {
|
|
619
|
+
var i;
|
|
620
|
+
k && console.log("Search fired"), (i = p.current) == null || i.call(p, { enableFacets: !1 });
|
|
621
621
|
}, []);
|
|
622
|
-
const
|
|
622
|
+
const ue = me(null);
|
|
623
623
|
return ie(() => {
|
|
624
|
-
var
|
|
625
|
-
return (
|
|
626
|
-
var
|
|
627
|
-
|
|
628
|
-
},
|
|
629
|
-
var
|
|
630
|
-
(
|
|
624
|
+
var i;
|
|
625
|
+
return (i = ue.current) == null || i.cancel(), ue.current = kt(() => {
|
|
626
|
+
var l;
|
|
627
|
+
k && console.log("Debounced searchWithFacets fired"), (l = p.current) == null || l.call(p, { enableFacets: !0 });
|
|
628
|
+
}, c.facetDebounceDelayMillis ?? 500), () => {
|
|
629
|
+
var l;
|
|
630
|
+
(l = ue.current) == null || l.cancel();
|
|
631
631
|
};
|
|
632
|
-
}, [
|
|
633
|
-
var
|
|
634
|
-
(
|
|
632
|
+
}, [c.facetDebounceDelayMillis]), K(() => {
|
|
633
|
+
var i;
|
|
634
|
+
(i = ue.current) == null || i.call(ue);
|
|
635
635
|
}, []), ie(() => {
|
|
636
|
-
var
|
|
637
|
-
!
|
|
638
|
-
}, [
|
|
639
|
-
var _,
|
|
640
|
-
if (!
|
|
641
|
-
const
|
|
642
|
-
if (
|
|
643
|
-
|
|
636
|
+
var i;
|
|
637
|
+
!B && j && !T.current && (v && ((i = p.current) == null || i.call(p, { enableFacets: D })), T.current = !0);
|
|
638
|
+
}, [B, j, v, D]), ie(() => {
|
|
639
|
+
var _, I, z, Q, de;
|
|
640
|
+
if (!j || !T.current) return;
|
|
641
|
+
const i = c.query.trim(), l = i === "" && v;
|
|
642
|
+
if (i === "" && !v) {
|
|
643
|
+
c.resultsSuppressed || y((oe) => ({
|
|
644
644
|
...oe,
|
|
645
645
|
resultsSuppressed: !0
|
|
646
646
|
}));
|
|
647
647
|
return;
|
|
648
648
|
}
|
|
649
|
-
return
|
|
649
|
+
return l ? ((_ = ue.current) == null || _.cancel(), (I = p.current) == null || I.call(p, { enableFacets: D })) : D ? (k && console.log("Search fired"), (z = p.current) == null || z.call(p, { enableFacets: !1 }), (Q = ue.current) == null || Q.call(ue)) : (de = p.current) == null || de.call(p, { enableFacets: !1 }), () => {
|
|
650
650
|
var oe;
|
|
651
|
-
(oe =
|
|
651
|
+
(oe = ue.current) == null || oe.cancel();
|
|
652
652
|
};
|
|
653
|
-
}, [
|
|
653
|
+
}, [c.query, v, D]), ie(() => {
|
|
654
654
|
var C;
|
|
655
|
-
if (!
|
|
656
|
-
if (!
|
|
657
|
-
|
|
655
|
+
if (!T.current || !j) return;
|
|
656
|
+
if (!g.current) {
|
|
657
|
+
g.current = !0, k && console.log("[Filter effect] First run, skipping");
|
|
658
658
|
return;
|
|
659
659
|
}
|
|
660
|
-
if (
|
|
661
|
-
|
|
660
|
+
if (c.query !== F) {
|
|
661
|
+
k && console.log("[Filter effect] Skipping because query changed");
|
|
662
662
|
return;
|
|
663
663
|
}
|
|
664
|
-
const
|
|
665
|
-
|
|
666
|
-
}, [
|
|
664
|
+
const i = c.query.trim();
|
|
665
|
+
D && !(!v && i === "") && (k && console.log("[Filter effect] Firing search"), (C = p.current) == null || C.call(p, { enableFacets: !0 }));
|
|
666
|
+
}, [c.filters, c.rangeFilters]), ie(() => {
|
|
667
667
|
var C;
|
|
668
|
-
if (!
|
|
669
|
-
const
|
|
670
|
-
|
|
668
|
+
if (!T.current || !j) return;
|
|
669
|
+
const i = c.query.trim();
|
|
670
|
+
D && !(!v && i === "") && ((C = p.current) == null || C.call(p, { enableFacets: !0 }));
|
|
671
671
|
}, [$e, Ie]), ie(() => {
|
|
672
|
-
var
|
|
673
|
-
!
|
|
674
|
-
}, [Ue,
|
|
672
|
+
var i;
|
|
673
|
+
!T.current || !j || x.current && (x.current = !1, (i = p.current) == null || i.call(p, { enableFacets: !1 }));
|
|
674
|
+
}, [Ue, j]), ie(() => {
|
|
675
675
|
(async () => {
|
|
676
676
|
try {
|
|
677
|
-
let
|
|
678
|
-
if (
|
|
679
|
-
|
|
677
|
+
let l;
|
|
678
|
+
if (ne)
|
|
679
|
+
k && console.log("[Auth] ✅ Using pre-authenticated token"), l = ne;
|
|
680
680
|
else {
|
|
681
681
|
if (!o || !d)
|
|
682
682
|
throw console.error("[Auth] ❌ Missing credentials"), o || (console.error("[Auth] ❌ Missing email"), console.error('[Auth] 💡 Pass email="your@email.com" to SearchProvider')), d || (console.error("[Auth] ❌ Missing password"), console.error('[Auth] 💡 Pass password="yourpassword" to SearchProvider')), new Error("Email and password are required. Check console for instructions.");
|
|
@@ -684,7 +684,7 @@ const Qt = ({
|
|
|
684
684
|
throw console.error("[Auth] ❌ Missing INDX server URL"), console.error("[Auth] 💡 Add NEXT_PUBLIC_INDX_URL to your .env.local file"), new Error("INDX server URL is required. Check console for instructions.");
|
|
685
685
|
if (!u)
|
|
686
686
|
throw console.error("[Auth] ❌ Missing dataset name"), console.error('[Auth] 💡 Pass dataset="your-dataset-name" to SearchProvider'), new Error("Dataset name is required. Check console for instructions.");
|
|
687
|
-
|
|
687
|
+
k && console.log("[Auth] 🔐 Logging in to get session token...");
|
|
688
688
|
const N = await fetch(`${s}/api/Login`, {
|
|
689
689
|
method: "POST",
|
|
690
690
|
headers: {
|
|
@@ -699,66 +699,66 @@ const Qt = ({
|
|
|
699
699
|
});
|
|
700
700
|
if (!N.ok)
|
|
701
701
|
throw console.error("[Auth] ❌ Login failed:", N.status, await N.text()), new Error("Login failed. Check your email and password.");
|
|
702
|
-
if (
|
|
702
|
+
if (l = (await N.json()).token, !l)
|
|
703
703
|
throw console.error("[Auth] ❌ No token received from login response"), new Error("No token received from login.");
|
|
704
|
-
|
|
704
|
+
k && console.log("[Auth] ✅ Login successful, bearer token received (length:", l.length, ")");
|
|
705
705
|
}
|
|
706
|
-
|
|
706
|
+
k && console.log("[Auth] 🔓 Opening dataset session...");
|
|
707
707
|
const C = await fetch(`${s}/api/CreateOrOpen/${u}/400`, {
|
|
708
708
|
method: "PUT",
|
|
709
709
|
headers: {
|
|
710
710
|
"Content-Type": "application/json",
|
|
711
|
-
Authorization: `Bearer ${
|
|
711
|
+
Authorization: `Bearer ${l}`
|
|
712
712
|
},
|
|
713
713
|
body: '""'
|
|
714
714
|
});
|
|
715
715
|
if (!C.ok)
|
|
716
716
|
throw console.error("[Auth] ❌ CreateOrOpen failed:", C.status, await C.text()), new Error("Failed to open dataset session.");
|
|
717
|
-
|
|
717
|
+
m(l), k && console.log("[Auth] ✅ Dataset session established");
|
|
718
718
|
const _ = (N) => fetch(N, {
|
|
719
719
|
method: "GET",
|
|
720
720
|
headers: {
|
|
721
721
|
accept: "text/plain",
|
|
722
|
-
Authorization: `Bearer ${
|
|
722
|
+
Authorization: `Bearer ${l}`
|
|
723
723
|
},
|
|
724
724
|
credentials: "include"
|
|
725
725
|
});
|
|
726
|
-
|
|
727
|
-
const
|
|
728
|
-
if (!
|
|
729
|
-
if (
|
|
726
|
+
k && console.log("[Auth] 🔍 Checking dataset status...");
|
|
727
|
+
const I = await _(`${s}/api/GetStatus/${u}`);
|
|
728
|
+
if (!I.ok) {
|
|
729
|
+
if (I.status === 401)
|
|
730
730
|
throw console.error("[Auth] ❌ Authentication failed (401 Unauthorized)"), console.error("[Auth] 💡 Your token may be expired or invalid"), console.error('[Auth] 💡 Get a fresh token with: curl -X POST "' + s + `/api/Login" -H "Content-Type: application/json" -d '{"userEmail":"your@email.com","userPassWord":"yourpassword"}'`), new Error("Authentication failed (401). Token may be expired. Check console for instructions.");
|
|
731
|
-
if (
|
|
731
|
+
if (I.status === 404)
|
|
732
732
|
throw console.error('[Auth] ❌ Dataset "' + u + '" not found (404)'), console.error('[Auth] 💡 Available datasets can be checked with: curl -X GET "' + s + '/api/GetUserDataSets" -H "Authorization: Bearer YOUR_TOKEN"'), console.error("[Auth] 💡 Make sure you spelled the dataset name correctly"), new Error('Dataset "' + u + '" not found. Check console for instructions.');
|
|
733
733
|
{
|
|
734
|
-
const N = await
|
|
735
|
-
throw console.error("[Auth] ❌ Failed to get dataset status:",
|
|
734
|
+
const N = await I.text();
|
|
735
|
+
throw console.error("[Auth] ❌ Failed to get dataset status:", I.status, N), console.error("[Auth] 💡 Check if your INDX server is running at:", s), new Error("Failed to connect to INDX server. Check console for details.");
|
|
736
736
|
}
|
|
737
737
|
}
|
|
738
|
-
const
|
|
739
|
-
|
|
740
|
-
const
|
|
741
|
-
|
|
742
|
-
const [
|
|
738
|
+
const z = await I.json();
|
|
739
|
+
k && console.log("[Auth] 📊 Dataset status:", z), z.state && z.state !== "Ready" && (console.warn("[Auth] ⚠️ Dataset is not ready yet. Current state:", z.state), console.warn("[Auth] 💡 Wait for indexing to complete before searching"));
|
|
740
|
+
const Q = z.documentCount ?? z.numberOfRecords ?? 0;
|
|
741
|
+
Q === 0 ? (console.warn('[Auth] ⚠️ Dataset "' + u + '" is empty (0 records)'), console.warn("[Auth] 💡 Add documents to your dataset before searching"), console.warn("[Auth] 💡 Search will work but return no results")) : k && console.log("[Auth] ✅ Dataset has", Q, "records");
|
|
742
|
+
const [de, oe, je] = await Promise.all([
|
|
743
743
|
_(`${s}/api/GetFilterableFields/${u}`),
|
|
744
744
|
_(`${s}/api/GetFacetableFields/${u}`),
|
|
745
745
|
_(`${s}/api/GetSortableFields/${u}`)
|
|
746
746
|
]);
|
|
747
|
-
if (!
|
|
748
|
-
throw console.error("[Auth] ❌ GetFilterableFields failed:",
|
|
747
|
+
if (!de.ok)
|
|
748
|
+
throw console.error("[Auth] ❌ GetFilterableFields failed:", de.status, await de.text()), new Error("Failed to get filterable fields. Check console for details.");
|
|
749
749
|
if (!oe.ok)
|
|
750
750
|
throw console.error("[Auth] ❌ GetFacetableFields failed:", oe.status, await oe.text()), new Error("Failed to get facetable fields. Check console for details.");
|
|
751
751
|
if (!je.ok)
|
|
752
752
|
throw console.error("[Auth] ❌ GetSortableFields failed:", je.status, await je.text()), new Error("Failed to get sortable fields. Check console for details.");
|
|
753
|
-
const We = await
|
|
754
|
-
|
|
753
|
+
const We = await de.json().catch((N) => (console.error("Failed to parse GetFilterableFields response:", N), [])), et = await oe.json().catch((N) => (console.error("Failed to parse GetFacetableFields response:", N), [])), ke = await je.json().catch((N) => (console.error("Failed to parse GetSortableFields response:", N), []));
|
|
754
|
+
Z(We || []), pe(et || []), R(ke || []);
|
|
755
755
|
let Ce = { facets: {} };
|
|
756
756
|
try {
|
|
757
757
|
const N = await fetch(`${s}/api/Search/${u}`, {
|
|
758
758
|
method: "POST",
|
|
759
759
|
headers: {
|
|
760
760
|
"Content-Type": "application/json",
|
|
761
|
-
Authorization: `Bearer ${
|
|
761
|
+
Authorization: `Bearer ${l}`
|
|
762
762
|
},
|
|
763
763
|
credentials: "include",
|
|
764
764
|
body: JSON.stringify({ text: "", maxNumberOfRecordsToReturn: 0, enableFacets: !0 })
|
|
@@ -771,28 +771,28 @@ const Qt = ({
|
|
|
771
771
|
if (Ce.facets) {
|
|
772
772
|
for (const [N, ae] of Object.entries(Ce.facets))
|
|
773
773
|
if (Array.isArray(ae) && ae.length > 0) {
|
|
774
|
-
const
|
|
775
|
-
|
|
776
|
-
min: Math.min(...
|
|
777
|
-
max: Math.max(...
|
|
774
|
+
const fe = ae.map((Ve) => Number(Ve.key)).filter((Ve) => !isNaN(Ve));
|
|
775
|
+
fe.length > 0 && (we[N] = {
|
|
776
|
+
min: Math.min(...fe),
|
|
777
|
+
max: Math.max(...fe)
|
|
778
778
|
});
|
|
779
779
|
}
|
|
780
780
|
}
|
|
781
781
|
const Re = {};
|
|
782
782
|
if (Ce.facets)
|
|
783
783
|
for (const [N, ae] of Object.entries(Ce.facets))
|
|
784
|
-
Array.isArray(ae) && (Re[N] = ae.map((
|
|
784
|
+
Array.isArray(ae) && (Re[N] = ae.map((fe) => fe.key));
|
|
785
785
|
Ne.current = {
|
|
786
786
|
facets: Ce.facets,
|
|
787
787
|
facetStats: we,
|
|
788
788
|
facetKeys: Re
|
|
789
|
-
}, h(we), e(Re), be(we),
|
|
789
|
+
}, h(we), e(Re), be(we), y((N) => ({
|
|
790
790
|
...N,
|
|
791
791
|
facetStats: we,
|
|
792
|
-
totalDocumentCount:
|
|
793
|
-
})),
|
|
794
|
-
} catch (
|
|
795
|
-
throw console.error("[Auth] ❌ Initialization failed:",
|
|
792
|
+
totalDocumentCount: Q
|
|
793
|
+
})), k && console.log("[Auth] ✅ Initialization complete");
|
|
794
|
+
} catch (l) {
|
|
795
|
+
throw console.error("[Auth] ❌ Initialization failed:", l), (l instanceof Error || typeof l == "object" && l !== null && "message" in l) && console.error("[Auth] 💡 Error:", l.message), l instanceof TypeError && l.message.includes("fetch") && (console.error("[Auth] ❌ Network error - cannot connect to INDX server"), console.error("[Auth] 💡 Check if the server is running at:", s), console.error("[Auth] 💡 Check your NEXT_PUBLIC_INDX_URL in .env.local"), console.error("[Auth] 💡 For local development, it should be: http://localhost:5001")), l;
|
|
796
796
|
} finally {
|
|
797
797
|
ve(!1);
|
|
798
798
|
}
|
|
@@ -802,22 +802,22 @@ const Qt = ({
|
|
|
802
802
|
{
|
|
803
803
|
value: {
|
|
804
804
|
state: {
|
|
805
|
-
...
|
|
806
|
-
filterableFields:
|
|
805
|
+
...c,
|
|
806
|
+
filterableFields: G,
|
|
807
807
|
facetableFields: O,
|
|
808
|
-
sortableFields:
|
|
808
|
+
sortableFields: P,
|
|
809
809
|
rangeBounds: se
|
|
810
810
|
},
|
|
811
|
-
isFetchingInitial:
|
|
812
|
-
allowEmptySearch:
|
|
813
|
-
setQuery:
|
|
811
|
+
isFetchingInitial: B,
|
|
812
|
+
allowEmptySearch: v,
|
|
813
|
+
setQuery: H,
|
|
814
814
|
toggleFilter: _e,
|
|
815
815
|
setRangeFilter: Ae,
|
|
816
816
|
resetFilters: ze,
|
|
817
817
|
resetSingleFilter: Le,
|
|
818
818
|
setSort: dt,
|
|
819
|
-
setDebounceDelay:
|
|
820
|
-
setSearchSettings:
|
|
819
|
+
setDebounceDelay: $,
|
|
820
|
+
setSearchSettings: J,
|
|
821
821
|
fetchMoreResults: Te
|
|
822
822
|
},
|
|
823
823
|
children: r
|
|
@@ -834,30 +834,30 @@ const Qt = ({
|
|
|
834
834
|
inputSize: d = "default",
|
|
835
835
|
showClear: s = !0,
|
|
836
836
|
showFocus: u = !1,
|
|
837
|
-
...
|
|
837
|
+
...v
|
|
838
838
|
}) => {
|
|
839
|
-
const { state: { query:
|
|
839
|
+
const { state: { query: S, filters: f, rangeFilters: n, searchSettings: w }, setQuery: V } = Fe();
|
|
840
840
|
Object.keys(f).length > 0 || Object.keys(n).length > 0;
|
|
841
|
-
const
|
|
841
|
+
const M = S.length > 0;
|
|
842
842
|
return /* @__PURE__ */ t.jsx(
|
|
843
843
|
bt,
|
|
844
844
|
{
|
|
845
845
|
type: "text",
|
|
846
|
-
value:
|
|
847
|
-
onChange: (
|
|
848
|
-
placeholder:
|
|
846
|
+
value: S,
|
|
847
|
+
onChange: (L) => V(L.target.value),
|
|
848
|
+
placeholder: w.placeholderText,
|
|
849
849
|
autoFocus: o,
|
|
850
850
|
className: r,
|
|
851
851
|
showSearchIcon: !0,
|
|
852
852
|
inputSize: d,
|
|
853
853
|
showFocusBorder: u,
|
|
854
|
-
...
|
|
855
|
-
children: s &&
|
|
854
|
+
...v,
|
|
855
|
+
children: s && M && /* @__PURE__ */ t.jsx(
|
|
856
856
|
ye,
|
|
857
857
|
{
|
|
858
858
|
variant: "ghost",
|
|
859
859
|
size: "micro",
|
|
860
|
-
onClick: () =>
|
|
860
|
+
onClick: () => V(""),
|
|
861
861
|
"aria-label": "Clear search",
|
|
862
862
|
children: "Clear"
|
|
863
863
|
}
|
|
@@ -884,54 +884,54 @@ const Qt = ({
|
|
|
884
884
|
return t.jsx("svg", { width: s, height: u, viewBox: "0 0 7 5", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: t.jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M1 0H2V1H1V0ZM3 2H2V1H3V2ZM4 2H3V3H2V4H1V5H2V4H3V3H4V4H5V5H6V4H5V3H4V2ZM5 1V2H4V1H5ZM5 1V0H6V1H5Z", fill: r }) });
|
|
885
885
|
}, Zt = ({ fields: r, resultsPerPage: o, children: d }) => {
|
|
886
886
|
const {
|
|
887
|
-
state: { results: s, resultsSuppressed: u, searchSettings:
|
|
888
|
-
isFetchingInitial:
|
|
889
|
-
fetchMoreResults:
|
|
890
|
-
} = Fe(),
|
|
887
|
+
state: { results: s, resultsSuppressed: u, searchSettings: v, truncationIndex: S, query: f },
|
|
888
|
+
isFetchingInitial: n,
|
|
889
|
+
fetchMoreResults: w
|
|
890
|
+
} = Fe(), V = o ?? 30, [M, L] = X(V), k = me(0), ne = me("");
|
|
891
891
|
ie(() => {
|
|
892
|
-
const
|
|
893
|
-
(!s || s.length <
|
|
894
|
-
}, [s,
|
|
895
|
-
const
|
|
896
|
-
const
|
|
897
|
-
|
|
892
|
+
const T = f !== ne.current;
|
|
893
|
+
(!s || s.length < k.current || T) && L(V), k.current = (s == null ? void 0 : s.length) ?? 0, ne.current = f;
|
|
894
|
+
}, [s, V, f]);
|
|
895
|
+
const q = s && s.length > M, p = () => {
|
|
896
|
+
const T = M + V;
|
|
897
|
+
L(T), s && T >= s.length && (!S || S === -1 || S > s.length) && w(s.length + V);
|
|
898
898
|
};
|
|
899
|
-
return
|
|
900
|
-
/* @__PURE__ */ t.jsx("div", { className: Me.container, children: (s ?? []).slice(0,
|
|
901
|
-
const
|
|
902
|
-
let
|
|
899
|
+
return n || u || s === null ? /* @__PURE__ */ t.jsx("div", { className: Me.placeholder, children: /* @__PURE__ */ t.jsx(At, { size: 200, color: "var(--lv5)" }) }) : s.length === 0 ? /* @__PURE__ */ t.jsx("div", { className: Me.invalid, children: /* @__PURE__ */ t.jsx("p", { children: "No results found." }) }) : /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
|
|
900
|
+
/* @__PURE__ */ t.jsx("div", { className: Me.container, children: (s ?? []).slice(0, M).map((T, g) => {
|
|
901
|
+
const x = T.document, c = T.score;
|
|
902
|
+
let y;
|
|
903
903
|
try {
|
|
904
|
-
|
|
904
|
+
y = typeof x == "string" ? JSON.parse(x) : x;
|
|
905
905
|
} catch {
|
|
906
|
-
return /* @__PURE__ */ t.jsx("div", { className: Me.invalid, children: /* @__PURE__ */ t.jsx("p", { children: "Invalid JSON" }) },
|
|
906
|
+
return /* @__PURE__ */ t.jsx("div", { className: Me.invalid, children: /* @__PURE__ */ t.jsx("p", { children: "Invalid JSON" }) }, g);
|
|
907
907
|
}
|
|
908
|
-
let
|
|
908
|
+
let j;
|
|
909
909
|
if (r && r.length > 0) {
|
|
910
|
-
|
|
911
|
-
for (const
|
|
912
|
-
|
|
910
|
+
j = {};
|
|
911
|
+
for (const m of r)
|
|
912
|
+
m in y && (j[m] = y[m]);
|
|
913
913
|
} else
|
|
914
|
-
|
|
915
|
-
for (const
|
|
916
|
-
const
|
|
917
|
-
if (typeof
|
|
918
|
-
const
|
|
919
|
-
|
|
914
|
+
j = { ...y };
|
|
915
|
+
for (const m in j) {
|
|
916
|
+
const D = j[m];
|
|
917
|
+
if (typeof D == "string" && D.startsWith("[") && D.endsWith("]")) {
|
|
918
|
+
const G = D.replace(/^\[|\]$/g, "").split(",").map((Z) => Z.trim().replace(/^'|'$/g, "")).filter((Z) => Z.length > 0);
|
|
919
|
+
j[m] = G;
|
|
920
920
|
}
|
|
921
921
|
}
|
|
922
922
|
return /* @__PURE__ */ t.jsxs("div", { className: Me.row, children: [
|
|
923
|
-
/* @__PURE__ */ t.jsx("div", { className: Me.indexNumber, children:
|
|
924
|
-
d(
|
|
925
|
-
|
|
926
|
-
] },
|
|
923
|
+
/* @__PURE__ */ t.jsx("div", { className: Me.indexNumber, children: g }),
|
|
924
|
+
d(j),
|
|
925
|
+
v.showScore && /* @__PURE__ */ t.jsx("div", { className: Me.scoreNumber, children: c })
|
|
926
|
+
] }, g);
|
|
927
927
|
}) }),
|
|
928
|
-
|
|
928
|
+
q && /* @__PURE__ */ t.jsx("div", { style: { textAlign: "center", marginTop: "20px" }, children: /* @__PURE__ */ t.jsx(
|
|
929
929
|
ye,
|
|
930
930
|
{
|
|
931
931
|
variant: "secondary",
|
|
932
932
|
size: "micro",
|
|
933
|
-
onClick:
|
|
934
|
-
children: f.trim() === "" ? "Load more" :
|
|
933
|
+
onClick: p,
|
|
934
|
+
children: f.trim() === "" ? "Load more" : S !== -1 && S !== void 0 && S > 0 ? `Load results ${M + 1}-${Math.min(M + V, s.length, S)} of ${S}` : "Load more"
|
|
935
935
|
}
|
|
936
936
|
) })
|
|
937
937
|
] });
|
|
@@ -945,30 +945,30 @@ const Qt = ({
|
|
|
945
945
|
preserveBlankFacetState: d = !1,
|
|
946
946
|
preserveBlankFacetStateOrder: s = !1,
|
|
947
947
|
sortFacetsBy: u = "histogram",
|
|
948
|
-
limit:
|
|
949
|
-
collapsible:
|
|
948
|
+
limit: v = 10,
|
|
949
|
+
collapsible: S = !0,
|
|
950
950
|
startCollapsed: f = !1,
|
|
951
951
|
displayType: n = "checkbox",
|
|
952
|
-
layout:
|
|
953
|
-
showActivePanel:
|
|
954
|
-
showCount:
|
|
955
|
-
showNull:
|
|
956
|
-
displayIfEmptyQuery:
|
|
957
|
-
displayCondition:
|
|
952
|
+
layout: w = "list",
|
|
953
|
+
showActivePanel: V = !1,
|
|
954
|
+
showCount: M = !0,
|
|
955
|
+
showNull: L = !1,
|
|
956
|
+
displayIfEmptyQuery: k = !0,
|
|
957
|
+
displayCondition: ne = (q) => !0
|
|
958
958
|
}) => {
|
|
959
959
|
const {
|
|
960
|
-
state: { facets:
|
|
961
|
-
toggleFilter:
|
|
962
|
-
isFetchingInitial:
|
|
963
|
-
allowEmptySearch:
|
|
964
|
-
} = Fe(),
|
|
960
|
+
state: { facets: q, filterableFields: p, facetableFields: T, filters: g, query: x },
|
|
961
|
+
toggleFilter: c,
|
|
962
|
+
isFetchingInitial: y,
|
|
963
|
+
allowEmptySearch: j
|
|
964
|
+
} = Fe(), m = me(null), [D, U] = X(v);
|
|
965
965
|
if (ie(() => {
|
|
966
|
-
|
|
967
|
-
}, [
|
|
966
|
+
U(v);
|
|
967
|
+
}, [q == null ? void 0 : q[r], v]), !j && !x || y || !q || !ne({ query: x ?? "", filters: g, facets: q }) || !k && !x && Object.keys(g).length < 1)
|
|
968
968
|
return null;
|
|
969
|
-
if (!(
|
|
969
|
+
if (!(p != null && p.includes(r)) || !(T != null && T.includes(r))) {
|
|
970
970
|
const h = [];
|
|
971
|
-
return
|
|
971
|
+
return p != null && p.includes(r) || h.push("filterable"), T != null && T.includes(r) || h.push("facetable"), /* @__PURE__ */ t.jsx(Se, { collapsible: !1, children: /* @__PURE__ */ t.jsxs("div", { style: { color: "red", fontSize: "12px" }, children: [
|
|
972
972
|
'Cannot render filter for "',
|
|
973
973
|
r,
|
|
974
974
|
'": missing ',
|
|
@@ -976,27 +976,27 @@ const Qt = ({
|
|
|
976
976
|
"."
|
|
977
977
|
] }) });
|
|
978
978
|
}
|
|
979
|
-
const
|
|
980
|
-
if (!
|
|
981
|
-
const
|
|
982
|
-
d && !
|
|
983
|
-
(h,
|
|
979
|
+
const G = q == null ? void 0 : q[r];
|
|
980
|
+
if (!G || !Array.isArray(G)) return null;
|
|
981
|
+
const Z = (g == null ? void 0 : g[r]) ?? [];
|
|
982
|
+
d && !m.current && G.length > 0 && (m.current = G.reduce(
|
|
983
|
+
(h, E) => (h[E.key] = E.value, h),
|
|
984
984
|
{}
|
|
985
985
|
));
|
|
986
986
|
const O = /* @__PURE__ */ new Map();
|
|
987
|
-
d &&
|
|
987
|
+
d && m.current ? (Object.keys(m.current).forEach((h) => {
|
|
988
988
|
O.set(h, 0);
|
|
989
|
-
}),
|
|
989
|
+
}), G.forEach((h) => {
|
|
990
990
|
O.set(h.key, h.value);
|
|
991
|
-
})) :
|
|
991
|
+
})) : G.forEach((h) => {
|
|
992
992
|
O.set(h.key, h.value);
|
|
993
993
|
});
|
|
994
|
-
const
|
|
994
|
+
const pe = n === "toggle" && O.size === 2 && O.has("true") && (O.has("false") || O.has("null"));
|
|
995
995
|
if (O.has("null")) {
|
|
996
|
-
const h = O.get("null") ?? 0,
|
|
997
|
-
O.set("false", (
|
|
996
|
+
const h = O.get("null") ?? 0, E = O.get("false") ?? 0;
|
|
997
|
+
O.set("false", (E ?? 0) + h), O.delete("null");
|
|
998
998
|
}
|
|
999
|
-
if (n === "toggle" && !
|
|
999
|
+
if (n === "toggle" && !pe)
|
|
1000
1000
|
return /* @__PURE__ */ t.jsx(Se, { collapsible: !1, children: /* @__PURE__ */ t.jsx("div", { className: Ee.count, children: /* @__PURE__ */ t.jsx(
|
|
1001
1001
|
le,
|
|
1002
1002
|
{
|
|
@@ -1007,62 +1007,62 @@ const Qt = ({
|
|
|
1007
1007
|
disabled: !0
|
|
1008
1008
|
}
|
|
1009
1009
|
) }) });
|
|
1010
|
-
if (
|
|
1011
|
-
const h = O.get("true"),
|
|
1010
|
+
if (pe) {
|
|
1011
|
+
const h = O.get("true"), E = typeof h == "number" ? h : null, e = Z.includes("true"), a = E === 0, b = M && (E ?? 0) > 0 ? `${E}` : "";
|
|
1012
1012
|
return /* @__PURE__ */ t.jsx(Se, { collapsible: !1, children: /* @__PURE__ */ t.jsxs("div", { className: Ee.count, children: [
|
|
1013
1013
|
/* @__PURE__ */ t.jsx(
|
|
1014
1014
|
le,
|
|
1015
1015
|
{
|
|
1016
1016
|
label: o,
|
|
1017
1017
|
checked: e,
|
|
1018
|
-
onChange: () =>
|
|
1018
|
+
onChange: () => c(r, "true"),
|
|
1019
1019
|
disabled: a
|
|
1020
1020
|
}
|
|
1021
1021
|
),
|
|
1022
1022
|
" ",
|
|
1023
|
-
|
|
1023
|
+
b
|
|
1024
1024
|
] }) });
|
|
1025
1025
|
}
|
|
1026
|
-
let
|
|
1027
|
-
if (
|
|
1026
|
+
let P = Array.from(O.entries());
|
|
1027
|
+
if (L || (P = P.filter(([h]) => h !== "null")), P.length === 0 && !d)
|
|
1028
1028
|
return null;
|
|
1029
1029
|
if (!s) if (u === "alphabetical") {
|
|
1030
|
-
const h =
|
|
1031
|
-
|
|
1030
|
+
const h = P.filter(([, e]) => typeof e == "number" && e > 0).sort(([e], [a]) => e.localeCompare(a)), E = P.filter(([, e]) => e === 0 || e === null).sort(([e], [a]) => e.localeCompare(a));
|
|
1031
|
+
P = [...h, ...E];
|
|
1032
1032
|
} else if (u === "numeric") {
|
|
1033
|
-
const h = (a,
|
|
1034
|
-
const
|
|
1035
|
-
return xe && A ?
|
|
1036
|
-
},
|
|
1037
|
-
|
|
1033
|
+
const h = (a, b) => {
|
|
1034
|
+
const F = Number(a), ce = Number(b), xe = !isNaN(F), A = !isNaN(ce);
|
|
1035
|
+
return xe && A ? F - ce : a.localeCompare(b);
|
|
1036
|
+
}, E = P.filter(([, a]) => typeof a == "number" && a > 0).sort(([a], [b]) => h(a, b)), e = P.filter(([, a]) => a === 0 || a === null).sort(([a], [b]) => h(a, b));
|
|
1037
|
+
P = [...E, ...e];
|
|
1038
1038
|
} else {
|
|
1039
|
-
const h =
|
|
1040
|
-
|
|
1039
|
+
const h = P.filter(([, e]) => typeof e == "number" && e > 0), E = P.filter(([, e]) => e === 0 || e === null);
|
|
1040
|
+
P = [...h, ...E];
|
|
1041
1041
|
}
|
|
1042
|
-
const
|
|
1043
|
-
const e =
|
|
1042
|
+
const R = typeof v == "number" && P.length > v, B = R ? P.slice(0, D) : P, ve = (h, E) => {
|
|
1043
|
+
const e = Z.includes(h), a = E === 0, b = M && (E ?? 0) > 0 ? ` (${E})` : "", F = M && (E ?? 0) > 0 ? E : "";
|
|
1044
1044
|
switch (n) {
|
|
1045
1045
|
case "button":
|
|
1046
|
-
return
|
|
1046
|
+
return w === "list" ? /* @__PURE__ */ t.jsxs("div", { className: Ee.count, children: [
|
|
1047
1047
|
/* @__PURE__ */ t.jsx(
|
|
1048
1048
|
ye,
|
|
1049
1049
|
{
|
|
1050
1050
|
variant: e ? "primary" : "secondary",
|
|
1051
|
-
onClick: () =>
|
|
1051
|
+
onClick: () => c(r, h),
|
|
1052
1052
|
disabled: a,
|
|
1053
1053
|
size: "micro",
|
|
1054
1054
|
children: h
|
|
1055
1055
|
}
|
|
1056
1056
|
),
|
|
1057
|
-
/* @__PURE__ */ t.jsx("span", { children:
|
|
1057
|
+
/* @__PURE__ */ t.jsx("span", { children: F })
|
|
1058
1058
|
] }) : /* @__PURE__ */ t.jsx(
|
|
1059
1059
|
ye,
|
|
1060
1060
|
{
|
|
1061
1061
|
variant: e ? "primary" : "secondary",
|
|
1062
|
-
onClick: () =>
|
|
1062
|
+
onClick: () => c(r, h),
|
|
1063
1063
|
disabled: a,
|
|
1064
1064
|
size: "micro",
|
|
1065
|
-
children: `${h}${
|
|
1065
|
+
children: `${h}${b}`
|
|
1066
1066
|
}
|
|
1067
1067
|
);
|
|
1068
1068
|
case "toggle":
|
|
@@ -1071,58 +1071,58 @@ const Qt = ({
|
|
|
1071
1071
|
{
|
|
1072
1072
|
label: h,
|
|
1073
1073
|
checked: e,
|
|
1074
|
-
onChange: () =>
|
|
1074
|
+
onChange: () => c(r, h),
|
|
1075
1075
|
disabled: a
|
|
1076
1076
|
}
|
|
1077
1077
|
);
|
|
1078
1078
|
case "checkbox":
|
|
1079
1079
|
default:
|
|
1080
|
-
return
|
|
1080
|
+
return w === "list" ? /* @__PURE__ */ t.jsxs("div", { className: Ee.count, children: [
|
|
1081
1081
|
/* @__PURE__ */ t.jsx(
|
|
1082
1082
|
rt,
|
|
1083
1083
|
{
|
|
1084
1084
|
label: h,
|
|
1085
1085
|
score: "",
|
|
1086
1086
|
checked: e,
|
|
1087
|
-
onChange: () =>
|
|
1087
|
+
onChange: () => c(r, h),
|
|
1088
1088
|
disabled: a
|
|
1089
1089
|
}
|
|
1090
1090
|
),
|
|
1091
|
-
/* @__PURE__ */ t.jsx("span", { children:
|
|
1091
|
+
/* @__PURE__ */ t.jsx("span", { children: F })
|
|
1092
1092
|
] }) : /* @__PURE__ */ t.jsx(
|
|
1093
1093
|
rt,
|
|
1094
1094
|
{
|
|
1095
1095
|
label: h,
|
|
1096
|
-
score:
|
|
1096
|
+
score: b,
|
|
1097
1097
|
checked: e,
|
|
1098
|
-
onChange: () =>
|
|
1098
|
+
onChange: () => c(r, h),
|
|
1099
1099
|
disabled: a
|
|
1100
1100
|
}
|
|
1101
1101
|
);
|
|
1102
1102
|
}
|
|
1103
|
-
},
|
|
1103
|
+
}, he = S ? f : !1;
|
|
1104
1104
|
return /* @__PURE__ */ t.jsx(
|
|
1105
1105
|
Se,
|
|
1106
1106
|
{
|
|
1107
1107
|
title: o,
|
|
1108
|
-
collapsible:
|
|
1109
|
-
collapsed:
|
|
1108
|
+
collapsible: S,
|
|
1109
|
+
collapsed: he,
|
|
1110
1110
|
children: /* @__PURE__ */ t.jsxs(
|
|
1111
1111
|
"ul",
|
|
1112
1112
|
{
|
|
1113
|
-
className:
|
|
1113
|
+
className: w === "grid" ? Ee.grid : Ee.list,
|
|
1114
1114
|
style: { listStyle: "none", padding: 0, margin: 0 },
|
|
1115
1115
|
children: [
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
const h =
|
|
1116
|
+
B.map(([h, E]) => /* @__PURE__ */ t.jsx("li", { children: ve(h, E) }, h)),
|
|
1117
|
+
R && D < P.length && (() => {
|
|
1118
|
+
const h = P.length - D, E = Math.min(50, h);
|
|
1119
1119
|
return /* @__PURE__ */ t.jsx("li", { className: Ee.toggleItem, children: /* @__PURE__ */ t.jsx(
|
|
1120
1120
|
ye,
|
|
1121
1121
|
{
|
|
1122
1122
|
variant: "ghost",
|
|
1123
1123
|
size: "micro",
|
|
1124
|
-
onClick: () =>
|
|
1125
|
-
children: `Show ${
|
|
1124
|
+
onClick: () => U((e) => e + 50),
|
|
1125
|
+
children: `Show ${E} more of ${P.length} total`
|
|
1126
1126
|
}
|
|
1127
1127
|
) });
|
|
1128
1128
|
})()
|
|
@@ -1139,89 +1139,90 @@ const Qt = ({
|
|
|
1139
1139
|
expectedMin: d = 0,
|
|
1140
1140
|
expectedMax: s = 1e3,
|
|
1141
1141
|
displayType: u = "input",
|
|
1142
|
-
collapsible:
|
|
1143
|
-
startCollapsed:
|
|
1142
|
+
collapsible: v = !0,
|
|
1143
|
+
startCollapsed: S = !1
|
|
1144
1144
|
}) => {
|
|
1145
1145
|
const {
|
|
1146
|
-
state: { rangeFilters: f, rangeBounds: n, facetStats:
|
|
1147
|
-
setRangeFilter:
|
|
1148
|
-
resetSingleFilter:
|
|
1149
|
-
allowEmptySearch:
|
|
1150
|
-
isFetchingInitial:
|
|
1151
|
-
} = Fe(),
|
|
1152
|
-
|
|
1146
|
+
state: { rangeFilters: f, rangeBounds: n, facetStats: w, query: V, facetDebounceDelayMillis: M },
|
|
1147
|
+
setRangeFilter: L,
|
|
1148
|
+
resetSingleFilter: k,
|
|
1149
|
+
allowEmptySearch: ne,
|
|
1150
|
+
isFetchingInitial: q
|
|
1151
|
+
} = Fe(), p = (n == null ? void 0 : n[r]) !== void 0, T = (n == null ? void 0 : n[r]) ?? { min: d, max: s }, g = T.min, x = T.max, c = (w == null ? void 0 : w[r]) ?? T, y = c.min, j = c.max, m = p && g === x, D = m ? d : g, U = m ? s : x, G = f == null ? void 0 : f[r], Z = G ? G.min : g, O = G ? G.max : x, pe = G !== void 0, P = y !== g || j !== x, [R, B] = re.useState([
|
|
1152
|
+
Z,
|
|
1153
1153
|
O
|
|
1154
|
-
]), [ve,
|
|
1155
|
-
const [
|
|
1154
|
+
]), [ve, he] = re.useState(!1), [h, E] = re.useState(!1), { finalMin: e, finalMax: a, isValidMin: b, isValidMax: F } = re.useMemo(() => {
|
|
1155
|
+
const [H, $] = R, J = Math.max(g, Math.min(x, H)), Te = Math.max(g, Math.min(x, $)), _e = Math.min(J, Te), Ae = Math.max(J, Te), ze = _e >= g && _e < Ae, Le = Ae <= x && Ae > _e;
|
|
1156
1156
|
return { finalMin: _e, finalMax: Ae, isValidMin: ze, isValidMax: Le };
|
|
1157
|
-
}, [
|
|
1158
|
-
|
|
1159
|
-
if (
|
|
1157
|
+
}, [R, g, x]);
|
|
1158
|
+
re.useEffect(() => {
|
|
1159
|
+
if (m)
|
|
1160
1160
|
return;
|
|
1161
|
-
if (
|
|
1162
|
-
|
|
1161
|
+
if (R[0] === g && R[1] === x) {
|
|
1162
|
+
he(!1), E(!1);
|
|
1163
1163
|
return;
|
|
1164
1164
|
}
|
|
1165
|
-
const
|
|
1166
|
-
|
|
1165
|
+
const $ = M ?? 500, J = setTimeout(() => {
|
|
1166
|
+
he(!b), E(!F);
|
|
1167
1167
|
}, 300), Te = setTimeout(() => {
|
|
1168
|
-
|
|
1169
|
-
},
|
|
1168
|
+
b && F && (e === g && a === x ? k(r) : L(r, e, a));
|
|
1169
|
+
}, $);
|
|
1170
1170
|
return () => {
|
|
1171
|
-
clearTimeout(
|
|
1171
|
+
clearTimeout(J), clearTimeout(Te);
|
|
1172
1172
|
};
|
|
1173
|
-
}, [e, a,
|
|
1174
|
-
|
|
1175
|
-
}, [
|
|
1176
|
-
const
|
|
1177
|
-
if (
|
|
1178
|
-
const
|
|
1179
|
-
|
|
1180
|
-
}, [
|
|
1181
|
-
if (
|
|
1182
|
-
const
|
|
1183
|
-
|
|
1184
|
-
}, [
|
|
1185
|
-
if (
|
|
1186
|
-
const
|
|
1187
|
-
if (!isNaN(
|
|
1188
|
-
const
|
|
1189
|
-
|
|
1173
|
+
}, [e, a, b, F, g, x, r, k, L, M, m]), re.useEffect(() => {
|
|
1174
|
+
B([Z, O]), he(!1), E(!1);
|
|
1175
|
+
}, [Z, O, r]);
|
|
1176
|
+
const ce = re.useCallback((H) => {
|
|
1177
|
+
if (m) return;
|
|
1178
|
+
const $ = Math.max(g, Math.min(j, H[0])), J = Math.max(y, Math.min(x, H[1]));
|
|
1179
|
+
B([$, J]);
|
|
1180
|
+
}, [m, g, x, y, j]), xe = re.useCallback((H) => {
|
|
1181
|
+
if (m) return;
|
|
1182
|
+
const $ = Math.max(g, Math.min(j, H[0])), J = Math.max(y, Math.min(x, H[1]));
|
|
1183
|
+
$ === g && J === x ? (B([g, x]), k(r)) : B([$, J]);
|
|
1184
|
+
}, [m, g, x, y, j, r, k]), A = re.useCallback((H) => {
|
|
1185
|
+
if (m) return;
|
|
1186
|
+
const $ = Number(H.target.value);
|
|
1187
|
+
if (!isNaN($)) {
|
|
1188
|
+
const J = Math.max(g, Math.min(j, $));
|
|
1189
|
+
B([J, R[1]]);
|
|
1190
1190
|
}
|
|
1191
|
-
}, [
|
|
1192
|
-
if (
|
|
1193
|
-
const
|
|
1194
|
-
if (!isNaN(
|
|
1195
|
-
const
|
|
1196
|
-
|
|
1191
|
+
}, [m, R, g, j]), se = re.useCallback((H) => {
|
|
1192
|
+
if (m) return;
|
|
1193
|
+
const $ = Number(H.target.value);
|
|
1194
|
+
if (!isNaN($)) {
|
|
1195
|
+
const J = Math.max(y, Math.min(x, $));
|
|
1196
|
+
B([R[0], J]);
|
|
1197
1197
|
}
|
|
1198
|
-
}, [
|
|
1199
|
-
const
|
|
1200
|
-
|
|
1201
|
-
}, [
|
|
1202
|
-
const
|
|
1203
|
-
|
|
1204
|
-
}, [
|
|
1205
|
-
return
|
|
1206
|
-
|
|
1198
|
+
}, [m, R, y, x]), be = re.useCallback(() => {
|
|
1199
|
+
const H = R[0], $ = Math.max(g, Math.min(j, H));
|
|
1200
|
+
$ < R[1] ? B([$, R[1]]) : B([g, R[1]]);
|
|
1201
|
+
}, [R, g, j]), Ne = re.useCallback(() => {
|
|
1202
|
+
const H = R[1], $ = Math.max(y, Math.min(x, H));
|
|
1203
|
+
$ > R[0] ? B([R[0], $]) : B([R[0], x]);
|
|
1204
|
+
}, [R, y, x]);
|
|
1205
|
+
return q || !ne && !V ? null : u === "slider" ? /* @__PURE__ */ t.jsxs(Se, { title: o, collapsed: S, collapsible: v, children: [
|
|
1206
|
+
m && /* @__PURE__ */ t.jsxs("div", { className: at.disabledMessage, children: [
|
|
1207
1207
|
"No adjustable range (all results have the same value: ",
|
|
1208
|
-
|
|
1208
|
+
g,
|
|
1209
1209
|
")."
|
|
1210
1210
|
] }),
|
|
1211
1211
|
/* @__PURE__ */ t.jsx("div", { style: { padding: "10px 10px 20px 10px" }, children: /* @__PURE__ */ t.jsx(
|
|
1212
1212
|
lt,
|
|
1213
1213
|
{
|
|
1214
|
-
min:
|
|
1215
|
-
max:
|
|
1216
|
-
value:
|
|
1214
|
+
min: D,
|
|
1215
|
+
max: U,
|
|
1216
|
+
value: m ? [D, U] : [e, a],
|
|
1217
1217
|
isRange: !0,
|
|
1218
|
-
onChange: (
|
|
1219
|
-
onFinalChange: (
|
|
1220
|
-
disabled:
|
|
1221
|
-
activeMin:
|
|
1222
|
-
activeMax:
|
|
1223
|
-
isFaceted:
|
|
1224
|
-
highlightFaceted:
|
|
1218
|
+
onChange: (H) => ce(H),
|
|
1219
|
+
onFinalChange: (H) => xe(H),
|
|
1220
|
+
disabled: m,
|
|
1221
|
+
activeMin: y,
|
|
1222
|
+
activeMax: j,
|
|
1223
|
+
isFaceted: P,
|
|
1224
|
+
highlightFaceted: pe,
|
|
1225
|
+
"aria-label": o || `Filter by ${r}`
|
|
1225
1226
|
}
|
|
1226
1227
|
) }),
|
|
1227
1228
|
/* @__PURE__ */ t.jsxs(
|
|
@@ -1236,69 +1237,69 @@ const Qt = ({
|
|
|
1236
1237
|
},
|
|
1237
1238
|
children: [
|
|
1238
1239
|
/* @__PURE__ */ t.jsx(
|
|
1239
|
-
|
|
1240
|
+
ee,
|
|
1240
1241
|
{
|
|
1241
1242
|
label: "Min:",
|
|
1242
1243
|
type: "number",
|
|
1243
|
-
value:
|
|
1244
|
-
min:
|
|
1245
|
-
max: Math.min(
|
|
1244
|
+
value: m ? g : R[0],
|
|
1245
|
+
min: g,
|
|
1246
|
+
max: Math.min(j, R[1] - 1),
|
|
1246
1247
|
onChange: A,
|
|
1247
1248
|
onBlur: be,
|
|
1248
|
-
disabled:
|
|
1249
|
-
isValid:
|
|
1249
|
+
disabled: m,
|
|
1250
|
+
isValid: m || !ve
|
|
1250
1251
|
}
|
|
1251
1252
|
),
|
|
1252
1253
|
/* @__PURE__ */ t.jsx(
|
|
1253
|
-
|
|
1254
|
+
ee,
|
|
1254
1255
|
{
|
|
1255
1256
|
label: "Max:",
|
|
1256
1257
|
type: "number",
|
|
1257
|
-
value:
|
|
1258
|
-
min: Math.max(
|
|
1259
|
-
max:
|
|
1258
|
+
value: m ? x : R[1],
|
|
1259
|
+
min: Math.max(y, R[0] + 1),
|
|
1260
|
+
max: x,
|
|
1260
1261
|
onChange: se,
|
|
1261
1262
|
onBlur: Ne,
|
|
1262
|
-
disabled:
|
|
1263
|
-
isValid:
|
|
1263
|
+
disabled: m,
|
|
1264
|
+
isValid: m || !h
|
|
1264
1265
|
}
|
|
1265
1266
|
)
|
|
1266
1267
|
]
|
|
1267
1268
|
}
|
|
1268
1269
|
)
|
|
1269
1270
|
] }) : /* @__PURE__ */ t.jsxs(Se, { title: o, children: [
|
|
1270
|
-
|
|
1271
|
+
m && /* @__PURE__ */ t.jsxs("div", { className: at.disabledMessage, children: [
|
|
1271
1272
|
"No adjustable range (all results have the same value: ",
|
|
1272
|
-
|
|
1273
|
+
g,
|
|
1273
1274
|
")."
|
|
1274
1275
|
] }),
|
|
1275
1276
|
/* @__PURE__ */ t.jsxs("div", { style: { display: "flex", gap: "10px", alignItems: "flex-start" }, children: [
|
|
1276
1277
|
/* @__PURE__ */ t.jsx(
|
|
1277
|
-
|
|
1278
|
+
ee,
|
|
1278
1279
|
{
|
|
1279
1280
|
label: "Min:",
|
|
1280
1281
|
type: "number",
|
|
1281
|
-
value:
|
|
1282
|
-
min:
|
|
1283
|
-
max: Math.min(
|
|
1282
|
+
value: m ? g : R[0],
|
|
1283
|
+
min: g,
|
|
1284
|
+
max: Math.min(j, R[1] - 1),
|
|
1284
1285
|
onChange: A,
|
|
1285
1286
|
onBlur: be,
|
|
1286
|
-
disabled:
|
|
1287
|
-
isValid:
|
|
1287
|
+
disabled: m,
|
|
1288
|
+
isValid: m || !ve
|
|
1288
1289
|
}
|
|
1289
1290
|
),
|
|
1290
1291
|
/* @__PURE__ */ t.jsx(
|
|
1291
|
-
|
|
1292
|
+
ee,
|
|
1292
1293
|
{
|
|
1293
1294
|
label: "Max:",
|
|
1294
1295
|
type: "number",
|
|
1295
|
-
value:
|
|
1296
|
-
min: Math.max(
|
|
1297
|
-
max:
|
|
1296
|
+
value: m ? x : R[1],
|
|
1297
|
+
min: Math.max(y, R[0] + 1),
|
|
1298
|
+
max: x,
|
|
1298
1299
|
onChange: se,
|
|
1299
1300
|
onBlur: Ne,
|
|
1300
|
-
disabled:
|
|
1301
|
-
isValid:
|
|
1301
|
+
disabled: m,
|
|
1302
|
+
isValid: m || !h
|
|
1302
1303
|
}
|
|
1303
1304
|
)
|
|
1304
1305
|
] })
|
|
@@ -1341,11 +1342,11 @@ function tr() {
|
|
|
1341
1342
|
resetSingleFilter: s
|
|
1342
1343
|
} = Fe(), u = Be(
|
|
1343
1344
|
() => Object.entries(r).map(
|
|
1344
|
-
([f, n]) => n.map((
|
|
1345
|
+
([f, n]) => n.map((w) => ({ field: f, value: w }))
|
|
1345
1346
|
).flat(),
|
|
1346
1347
|
[r]
|
|
1347
|
-
),
|
|
1348
|
-
() => Object.entries(o).map(([f, { min: n, max:
|
|
1348
|
+
), v = Be(
|
|
1349
|
+
() => Object.entries(o).map(([f, { min: n, max: w }]) => ({ field: f, min: n, max: w })),
|
|
1349
1350
|
[o]
|
|
1350
1351
|
);
|
|
1351
1352
|
return Be(
|
|
@@ -1361,12 +1362,12 @@ function tr() {
|
|
|
1361
1362
|
},
|
|
1362
1363
|
`${f}-${n}`
|
|
1363
1364
|
)),
|
|
1364
|
-
|
|
1365
|
+
v.map(({ field: f, min: n, max: w }) => /* @__PURE__ */ t.jsx(
|
|
1365
1366
|
Dt,
|
|
1366
1367
|
{
|
|
1367
1368
|
field: f,
|
|
1368
1369
|
min: n,
|
|
1369
|
-
max:
|
|
1370
|
+
max: w,
|
|
1370
1371
|
onReset: () => s(f)
|
|
1371
1372
|
},
|
|
1372
1373
|
f
|
|
@@ -1386,49 +1387,49 @@ const qt = "_radioGroup_nwf7i_6", Bt = {
|
|
|
1386
1387
|
radioGroup: qt
|
|
1387
1388
|
}, rr = ({ displayType: r = "dropdown", collapsible: o = !0, startCollapsed: d = !1 }) => {
|
|
1388
1389
|
const {
|
|
1389
|
-
state: { sortableFields: s, sortBy: u, sortAscending:
|
|
1390
|
-
setSort:
|
|
1390
|
+
state: { sortableFields: s, sortBy: u, sortAscending: v },
|
|
1391
|
+
setSort: S
|
|
1391
1392
|
} = Fe();
|
|
1392
1393
|
if (!s || s.length === 0) return null;
|
|
1393
|
-
const f = u ? `${u}:${
|
|
1394
|
+
const f = u ? `${u}:${v ? "asc" : "desc"}` : "none", n = [
|
|
1394
1395
|
{ label: "None", value: "none" },
|
|
1395
|
-
...s.flatMap((
|
|
1396
|
-
{ label: `${
|
|
1397
|
-
{ label: `${
|
|
1396
|
+
...s.flatMap((M) => [
|
|
1397
|
+
{ label: `${M} (asc)`, value: `${M}:asc` },
|
|
1398
|
+
{ label: `${M} (desc)`, value: `${M}:desc` }
|
|
1398
1399
|
])
|
|
1399
|
-
],
|
|
1400
|
-
if (
|
|
1401
|
-
|
|
1400
|
+
], w = (M) => {
|
|
1401
|
+
if (M === "none" || M === "")
|
|
1402
|
+
S(null, !0);
|
|
1402
1403
|
else {
|
|
1403
|
-
const [
|
|
1404
|
-
|
|
1404
|
+
const [L, k] = M.split(":");
|
|
1405
|
+
S(L, k === "asc");
|
|
1405
1406
|
}
|
|
1406
|
-
},
|
|
1407
|
+
}, V = o ? d : !1;
|
|
1407
1408
|
return /* @__PURE__ */ t.jsx(
|
|
1408
1409
|
Se,
|
|
1409
1410
|
{
|
|
1410
1411
|
title: "Sort by",
|
|
1411
1412
|
collapsible: o,
|
|
1412
|
-
collapsed:
|
|
1413
|
+
collapsed: V,
|
|
1413
1414
|
children: r === "dropdown" ? /* @__PURE__ */ t.jsx(
|
|
1414
1415
|
St,
|
|
1415
1416
|
{
|
|
1416
1417
|
value: f,
|
|
1417
|
-
onValueChange:
|
|
1418
|
+
onValueChange: w,
|
|
1418
1419
|
options: n,
|
|
1419
1420
|
placeholder: "Select sort..."
|
|
1420
1421
|
}
|
|
1421
|
-
) : /* @__PURE__ */ t.jsx("div", { className: Bt.radioGroup, children: n.map((
|
|
1422
|
+
) : /* @__PURE__ */ t.jsx("div", { className: Bt.radioGroup, children: n.map((M) => /* @__PURE__ */ t.jsx(
|
|
1422
1423
|
yt,
|
|
1423
1424
|
{
|
|
1424
|
-
id: `sort-${
|
|
1425
|
+
id: `sort-${M.value}`,
|
|
1425
1426
|
name: "sort-by",
|
|
1426
|
-
value:
|
|
1427
|
-
label:
|
|
1428
|
-
checked: f ===
|
|
1429
|
-
onChange: (
|
|
1427
|
+
value: M.value,
|
|
1428
|
+
label: M.label,
|
|
1429
|
+
checked: f === M.value,
|
|
1430
|
+
onChange: (L) => w(L.target.value)
|
|
1430
1431
|
},
|
|
1431
|
-
|
|
1432
|
+
M.value
|
|
1432
1433
|
)) })
|
|
1433
1434
|
}
|
|
1434
1435
|
);
|
|
@@ -1439,34 +1440,34 @@ function nr() {
|
|
|
1439
1440
|
const {
|
|
1440
1441
|
state: { searchSettings: r },
|
|
1441
1442
|
setSearchSettings: o
|
|
1442
|
-
} = Fe(), [d, s] = X(!1), u = (n,
|
|
1443
|
-
const
|
|
1444
|
-
isNaN(
|
|
1445
|
-
[n]:
|
|
1443
|
+
} = Fe(), [d, s] = X(!1), u = (n, w) => {
|
|
1444
|
+
const V = parseInt(w, 10);
|
|
1445
|
+
isNaN(V) || o({
|
|
1446
|
+
[n]: V
|
|
1446
1447
|
});
|
|
1447
|
-
},
|
|
1448
|
+
}, v = (n, w) => {
|
|
1448
1449
|
o({
|
|
1449
|
-
[n]:
|
|
1450
|
+
[n]: w
|
|
1450
1451
|
});
|
|
1451
|
-
},
|
|
1452
|
-
const
|
|
1453
|
-
isNaN(
|
|
1452
|
+
}, S = (n, w) => {
|
|
1453
|
+
const V = parseInt(w, 10);
|
|
1454
|
+
isNaN(V) || o({
|
|
1454
1455
|
coverageSetup: {
|
|
1455
1456
|
...r.coverageSetup,
|
|
1456
|
-
[n]:
|
|
1457
|
+
[n]: V
|
|
1457
1458
|
}
|
|
1458
1459
|
});
|
|
1459
|
-
}, f = (n,
|
|
1460
|
+
}, f = (n, w) => {
|
|
1460
1461
|
o({
|
|
1461
1462
|
coverageSetup: {
|
|
1462
1463
|
...r.coverageSetup,
|
|
1463
|
-
[n]:
|
|
1464
|
+
[n]: w
|
|
1464
1465
|
}
|
|
1465
1466
|
});
|
|
1466
1467
|
};
|
|
1467
1468
|
return /* @__PURE__ */ t.jsx(Se, { collapsed: !0, title: "Settings", children: /* @__PURE__ */ t.jsxs("ul", { className: Lt.list, children: [
|
|
1468
1469
|
/* @__PURE__ */ t.jsx("li", { children: /* @__PURE__ */ t.jsx(
|
|
1469
|
-
|
|
1470
|
+
ee,
|
|
1470
1471
|
{
|
|
1471
1472
|
label: "Max Results",
|
|
1472
1473
|
type: "number",
|
|
@@ -1475,7 +1476,7 @@ function nr() {
|
|
|
1475
1476
|
}
|
|
1476
1477
|
) }),
|
|
1477
1478
|
/* @__PURE__ */ t.jsx("li", { children: /* @__PURE__ */ t.jsx(
|
|
1478
|
-
|
|
1479
|
+
ee,
|
|
1479
1480
|
{
|
|
1480
1481
|
label: "Coverage Depth",
|
|
1481
1482
|
type: "number",
|
|
@@ -1485,14 +1486,14 @@ function nr() {
|
|
|
1485
1486
|
) }),
|
|
1486
1487
|
/* @__PURE__ */ t.jsxs("li", { children: [
|
|
1487
1488
|
/* @__PURE__ */ t.jsx(
|
|
1488
|
-
|
|
1489
|
+
ee,
|
|
1489
1490
|
{
|
|
1490
1491
|
label: "Minimum Score",
|
|
1491
1492
|
type: "number",
|
|
1492
1493
|
value: r.minimumScore.toString(),
|
|
1493
1494
|
onChange: (n) => {
|
|
1494
|
-
const
|
|
1495
|
-
isNaN(
|
|
1495
|
+
const w = parseFloat(n.target.value);
|
|
1496
|
+
isNaN(w) || o({ minimumScore: w });
|
|
1496
1497
|
}
|
|
1497
1498
|
}
|
|
1498
1499
|
),
|
|
@@ -1505,12 +1506,13 @@ function nr() {
|
|
|
1505
1506
|
value: r.minimumScore,
|
|
1506
1507
|
onChange: (n) => {
|
|
1507
1508
|
o({ minimumScore: n });
|
|
1508
|
-
}
|
|
1509
|
+
},
|
|
1510
|
+
"aria-label": "Minimum score"
|
|
1509
1511
|
}
|
|
1510
1512
|
) })
|
|
1511
1513
|
] }),
|
|
1512
1514
|
/* @__PURE__ */ t.jsx("li", { children: /* @__PURE__ */ t.jsx(
|
|
1513
|
-
|
|
1515
|
+
ee,
|
|
1514
1516
|
{
|
|
1515
1517
|
label: "Placeholder text",
|
|
1516
1518
|
type: "text",
|
|
@@ -1525,7 +1527,7 @@ function nr() {
|
|
|
1525
1527
|
{
|
|
1526
1528
|
label: "Show score",
|
|
1527
1529
|
checked: r.showScore,
|
|
1528
|
-
onChange: (n) =>
|
|
1530
|
+
onChange: (n) => v("showScore", n)
|
|
1529
1531
|
}
|
|
1530
1532
|
) }),
|
|
1531
1533
|
/* @__PURE__ */ t.jsx("li", { children: /* @__PURE__ */ t.jsx(
|
|
@@ -1533,7 +1535,7 @@ function nr() {
|
|
|
1533
1535
|
{
|
|
1534
1536
|
label: "Enable Coverage",
|
|
1535
1537
|
checked: r.enableCoverage,
|
|
1536
|
-
onChange: (n) =>
|
|
1538
|
+
onChange: (n) => v("enableCoverage", n)
|
|
1537
1539
|
}
|
|
1538
1540
|
) }),
|
|
1539
1541
|
/* @__PURE__ */ t.jsx("li", { children: /* @__PURE__ */ t.jsx(
|
|
@@ -1541,7 +1543,7 @@ function nr() {
|
|
|
1541
1543
|
{
|
|
1542
1544
|
label: "Remove Duplicates",
|
|
1543
1545
|
checked: r.removeDuplicates,
|
|
1544
|
-
onChange: (n) =>
|
|
1546
|
+
onChange: (n) => v("removeDuplicates", n)
|
|
1545
1547
|
}
|
|
1546
1548
|
) }),
|
|
1547
1549
|
/* @__PURE__ */ t.jsx("li", { children: /* @__PURE__ */ t.jsx(ye, { variant: "ghost", size: "micro", iconRight: d ? /* @__PURE__ */ t.jsx(Tt, {}) : /* @__PURE__ */ t.jsx(_t, {}), onClick: () => s((n) => !n), children: d ? "Hide Coverage Setup" : "Show Coverage Setup" }) }),
|
|
@@ -1595,57 +1597,57 @@ function nr() {
|
|
|
1595
1597
|
}
|
|
1596
1598
|
) }),
|
|
1597
1599
|
/* @__PURE__ */ t.jsx("li", { children: /* @__PURE__ */ t.jsx(
|
|
1598
|
-
|
|
1600
|
+
ee,
|
|
1599
1601
|
{
|
|
1600
1602
|
label: "Levenshtein Max Word Size",
|
|
1601
1603
|
type: "number",
|
|
1602
1604
|
value: r.coverageSetup.levenshteinMaxWordSize.toString(),
|
|
1603
|
-
onChange: (n) =>
|
|
1605
|
+
onChange: (n) => S("levenshteinMaxWordSize", n.target.value)
|
|
1604
1606
|
}
|
|
1605
1607
|
) }),
|
|
1606
1608
|
/* @__PURE__ */ t.jsx("li", { children: /* @__PURE__ */ t.jsx(
|
|
1607
|
-
|
|
1609
|
+
ee,
|
|
1608
1610
|
{
|
|
1609
1611
|
label: "Min Word Size",
|
|
1610
1612
|
type: "number",
|
|
1611
1613
|
value: r.coverageSetup.minWordSize.toString(),
|
|
1612
|
-
onChange: (n) =>
|
|
1614
|
+
onChange: (n) => S("minWordSize", n.target.value)
|
|
1613
1615
|
}
|
|
1614
1616
|
) }),
|
|
1615
1617
|
/* @__PURE__ */ t.jsx("li", { children: /* @__PURE__ */ t.jsx(
|
|
1616
|
-
|
|
1618
|
+
ee,
|
|
1617
1619
|
{
|
|
1618
1620
|
label: "Coverage Min Word Hits Abs",
|
|
1619
1621
|
type: "number",
|
|
1620
1622
|
value: r.coverageSetup.coverageMinWordHitsAbs.toString(),
|
|
1621
|
-
onChange: (n) =>
|
|
1623
|
+
onChange: (n) => S("coverageMinWordHitsAbs", n.target.value)
|
|
1622
1624
|
}
|
|
1623
1625
|
) }),
|
|
1624
1626
|
/* @__PURE__ */ t.jsx("li", { children: /* @__PURE__ */ t.jsx(
|
|
1625
|
-
|
|
1627
|
+
ee,
|
|
1626
1628
|
{
|
|
1627
1629
|
label: "Coverage Min Word Hits Relative",
|
|
1628
1630
|
type: "number",
|
|
1629
1631
|
value: r.coverageSetup.coverageMinWordHitsRelative.toString(),
|
|
1630
|
-
onChange: (n) =>
|
|
1632
|
+
onChange: (n) => S("coverageMinWordHitsRelative", n.target.value)
|
|
1631
1633
|
}
|
|
1632
1634
|
) }),
|
|
1633
1635
|
/* @__PURE__ */ t.jsx("li", { children: /* @__PURE__ */ t.jsx(
|
|
1634
|
-
|
|
1636
|
+
ee,
|
|
1635
1637
|
{
|
|
1636
1638
|
label: "Coverage Q Limit For Error Tolerance",
|
|
1637
1639
|
type: "number",
|
|
1638
1640
|
value: r.coverageSetup.coverageQLimitForErrorTolerance.toString(),
|
|
1639
|
-
onChange: (n) =>
|
|
1641
|
+
onChange: (n) => S("coverageQLimitForErrorTolerance", n.target.value)
|
|
1640
1642
|
}
|
|
1641
1643
|
) }),
|
|
1642
1644
|
/* @__PURE__ */ t.jsx("li", { children: /* @__PURE__ */ t.jsx(
|
|
1643
|
-
|
|
1645
|
+
ee,
|
|
1644
1646
|
{
|
|
1645
1647
|
label: "Coverage LCS Error Tolerance Relative Q",
|
|
1646
1648
|
type: "number",
|
|
1647
1649
|
value: r.coverageSetup.coverageLcsErrorToleranceRelativeq.toString(),
|
|
1648
|
-
onChange: (n) =>
|
|
1650
|
+
onChange: (n) => S("coverageLcsErrorToleranceRelativeq", n.target.value)
|
|
1649
1651
|
}
|
|
1650
1652
|
) })
|
|
1651
1653
|
] })
|