@ray-js/robot-map-sdk 0.0.2-beta-1 → 0.0.2-beta-2

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 (59) hide show
  1. package/dist/index.cjs.js +1 -1
  2. package/dist/index.d.ts +12 -0
  3. package/dist/index.es.js +1 -1
  4. package/dist-app/assets/{index-ByRT_epP.js → index-BYNxFFSu.js} +1 -1
  5. package/dist-app/index.html +1 -1
  6. package/dist-docs/404.html +22 -0
  7. package/dist-docs/assets/app.D7Qrktsc.js +104 -0
  8. package/dist-docs/assets/chunks/@localSearchIndexroot.Btgy4C48.js +3 -0
  9. package/dist-docs/assets/chunks/VPLocalSearchBox.CTbu0gVG.js +3556 -0
  10. package/dist-docs/assets/chunks/framework.DRADY2L-.js +6808 -0
  11. package/dist-docs/assets/chunks/theme.B7-5vjJp.js +4152 -0
  12. package/dist-docs/assets/guide_advanced-usage.md.DfDqOTuu.js +546 -0
  13. package/dist-docs/assets/guide_advanced-usage.md.DfDqOTuu.lean.js +10 -0
  14. package/dist-docs/assets/guide_concepts.md.GEw3xVjc.js +21 -0
  15. package/dist-docs/assets/guide_concepts.md.GEw3xVjc.lean.js +10 -0
  16. package/dist-docs/assets/guide_getting-started.md.dZsqAPPF.js +230 -0
  17. package/dist-docs/assets/guide_getting-started.md.dZsqAPPF.lean.js +10 -0
  18. package/dist-docs/assets/index.md.Dd6Azqjp.js +10 -0
  19. package/dist-docs/assets/index.md.Dd6Azqjp.lean.js +10 -0
  20. package/dist-docs/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
  21. package/dist-docs/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
  22. package/dist-docs/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
  23. package/dist-docs/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
  24. package/dist-docs/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
  25. package/dist-docs/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
  26. package/dist-docs/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
  27. package/dist-docs/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
  28. package/dist-docs/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
  29. package/dist-docs/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
  30. package/dist-docs/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
  31. package/dist-docs/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
  32. package/dist-docs/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
  33. package/dist-docs/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
  34. package/dist-docs/assets/reference_callbacks.md.CR2l2ExI.js +301 -0
  35. package/dist-docs/assets/reference_callbacks.md.CR2l2ExI.lean.js +10 -0
  36. package/dist-docs/assets/reference_config.md.BW2PJe_F.js +593 -0
  37. package/dist-docs/assets/reference_config.md.BW2PJe_F.lean.js +10 -0
  38. package/dist-docs/assets/reference_data.md.GtmKYR4M.js +269 -0
  39. package/dist-docs/assets/reference_data.md.GtmKYR4M.lean.js +10 -0
  40. package/dist-docs/assets/reference_methods.md.yDXPS10c.js +324 -0
  41. package/dist-docs/assets/reference_methods.md.yDXPS10c.lean.js +10 -0
  42. package/dist-docs/assets/reference_runtime.md.BQ6YWC8F.js +81 -0
  43. package/dist-docs/assets/reference_runtime.md.BQ6YWC8F.lean.js +10 -0
  44. package/dist-docs/assets/reference_types.md.b5p13ywD.js +210 -0
  45. package/dist-docs/assets/reference_types.md.b5p13ywD.lean.js +10 -0
  46. package/dist-docs/assets/style.BhX5jokk.css +1 -0
  47. package/dist-docs/guide/advanced-usage.html +550 -0
  48. package/dist-docs/guide/concepts.html +25 -0
  49. package/dist-docs/guide/getting-started.html +234 -0
  50. package/dist-docs/hashmap.json +1 -0
  51. package/dist-docs/index.html +25 -0
  52. package/dist-docs/reference/callbacks.html +305 -0
  53. package/dist-docs/reference/config.html +597 -0
  54. package/dist-docs/reference/data.html +273 -0
  55. package/dist-docs/reference/methods.html +328 -0
  56. package/dist-docs/reference/runtime.html +85 -0
  57. package/dist-docs/reference/types.html +214 -0
  58. package/dist-docs/vp-icons.css +0 -0
  59. package/package.json +4 -3
@@ -0,0 +1,3556 @@
1
+ var Nt = Object.defineProperty
2
+ var Ft = (a, e, t) =>
3
+ e in a
4
+ ? Nt(a, e, { enumerable: !0, configurable: !0, writable: !0, value: t })
5
+ : (a[e] = t)
6
+ var Ce = (a, e, t) => Ft(a, typeof e != 'symbol' ? e + '' : e, t)
7
+ import {
8
+ V as Ot,
9
+ D as le,
10
+ h as ge,
11
+ ah as et,
12
+ ai as Rt,
13
+ aj as Ct,
14
+ ak as At,
15
+ q as $e,
16
+ al as Mt,
17
+ d as Lt,
18
+ am as tt,
19
+ p as he,
20
+ an as Dt,
21
+ ao as Pt,
22
+ s as zt,
23
+ ap as Vt,
24
+ v as Ae,
25
+ P as fe,
26
+ O as _e,
27
+ aq as $t,
28
+ ar as jt,
29
+ W as Bt,
30
+ R as Wt,
31
+ $ as Kt,
32
+ b as Jt,
33
+ o as H,
34
+ j as _,
35
+ a0 as qt,
36
+ as as Ut,
37
+ k as L,
38
+ at as Gt,
39
+ au as Ht,
40
+ c as Z,
41
+ e as Se,
42
+ n as st,
43
+ B as nt,
44
+ F as it,
45
+ a as pe,
46
+ t as ve,
47
+ av as Qt,
48
+ aw as rt,
49
+ ax as Yt,
50
+ a5 as Zt,
51
+ aa as Xt,
52
+ ay as es,
53
+ _ as ts,
54
+ } from './framework.DRADY2L-.js'
55
+ import { u as ss, c as ns } from './theme.B7-5vjJp.js'
56
+ const is = {
57
+ root: () => Ot(() => import('./@localSearchIndexroot.Btgy4C48.js'), []),
58
+ }
59
+ /*!
60
+ * tabbable 6.2.0
61
+ * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
62
+ */ var vt = [
63
+ 'input:not([inert])',
64
+ 'select:not([inert])',
65
+ 'textarea:not([inert])',
66
+ 'a[href]:not([inert])',
67
+ 'button:not([inert])',
68
+ '[tabindex]:not(slot):not([inert])',
69
+ 'audio[controls]:not([inert])',
70
+ 'video[controls]:not([inert])',
71
+ '[contenteditable]:not([contenteditable="false"]):not([inert])',
72
+ 'details>summary:first-of-type:not([inert])',
73
+ 'details:not([inert])',
74
+ ],
75
+ ke = vt.join(','),
76
+ mt = typeof Element > 'u',
77
+ re = mt
78
+ ? function () {}
79
+ : Element.prototype.matches ||
80
+ Element.prototype.msMatchesSelector ||
81
+ Element.prototype.webkitMatchesSelector,
82
+ Ne =
83
+ !mt && Element.prototype.getRootNode
84
+ ? function (a) {
85
+ var e
86
+ return a == null || (e = a.getRootNode) === null || e === void 0
87
+ ? void 0
88
+ : e.call(a)
89
+ }
90
+ : function (a) {
91
+ return a == null ? void 0 : a.ownerDocument
92
+ },
93
+ Fe = function a(e, t) {
94
+ var s
95
+ t === void 0 && (t = !0)
96
+ var n =
97
+ e == null || (s = e.getAttribute) === null || s === void 0
98
+ ? void 0
99
+ : s.call(e, 'inert'),
100
+ r = n === '' || n === 'true',
101
+ i = r || (t && e && a(e.parentNode))
102
+ return i
103
+ },
104
+ rs = function (e) {
105
+ var t,
106
+ s =
107
+ e == null || (t = e.getAttribute) === null || t === void 0
108
+ ? void 0
109
+ : t.call(e, 'contenteditable')
110
+ return s === '' || s === 'true'
111
+ },
112
+ gt = function (e, t, s) {
113
+ if (Fe(e)) return []
114
+ var n = Array.prototype.slice.apply(e.querySelectorAll(ke))
115
+ return (t && re.call(e, ke) && n.unshift(e), (n = n.filter(s)), n)
116
+ },
117
+ bt = function a(e, t, s) {
118
+ for (var n = [], r = Array.from(e); r.length; ) {
119
+ var i = r.shift()
120
+ if (!Fe(i, !1))
121
+ if (i.tagName === 'SLOT') {
122
+ var o = i.assignedElements(),
123
+ l = o.length ? o : i.children,
124
+ c = a(l, !0, s)
125
+ s.flatten
126
+ ? n.push.apply(n, c)
127
+ : n.push({ scopeParent: i, candidates: c })
128
+ } else {
129
+ var h = re.call(i, ke)
130
+ h && s.filter(i) && (t || !e.includes(i)) && n.push(i)
131
+ var m =
132
+ i.shadowRoot ||
133
+ (typeof s.getShadowRoot == 'function' && s.getShadowRoot(i)),
134
+ f = !Fe(m, !1) && (!s.shadowRootFilter || s.shadowRootFilter(i))
135
+ if (m && f) {
136
+ var b = a(m === !0 ? i.children : m.children, !0, s)
137
+ s.flatten
138
+ ? n.push.apply(n, b)
139
+ : n.push({ scopeParent: i, candidates: b })
140
+ } else r.unshift.apply(r, i.children)
141
+ }
142
+ }
143
+ return n
144
+ },
145
+ yt = function (e) {
146
+ return !isNaN(parseInt(e.getAttribute('tabindex'), 10))
147
+ },
148
+ ie = function (e) {
149
+ if (!e) throw new Error('No node provided')
150
+ return e.tabIndex < 0 &&
151
+ (/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName) || rs(e)) &&
152
+ !yt(e)
153
+ ? 0
154
+ : e.tabIndex
155
+ },
156
+ as = function (e, t) {
157
+ var s = ie(e)
158
+ return s < 0 && t && !yt(e) ? 0 : s
159
+ },
160
+ os = function (e, t) {
161
+ return e.tabIndex === t.tabIndex
162
+ ? e.documentOrder - t.documentOrder
163
+ : e.tabIndex - t.tabIndex
164
+ },
165
+ wt = function (e) {
166
+ return e.tagName === 'INPUT'
167
+ },
168
+ ls = function (e) {
169
+ return wt(e) && e.type === 'hidden'
170
+ },
171
+ cs = function (e) {
172
+ var t =
173
+ e.tagName === 'DETAILS' &&
174
+ Array.prototype.slice.apply(e.children).some(function (s) {
175
+ return s.tagName === 'SUMMARY'
176
+ })
177
+ return t
178
+ },
179
+ us = function (e, t) {
180
+ for (var s = 0; s < e.length; s++)
181
+ if (e[s].checked && e[s].form === t) return e[s]
182
+ },
183
+ ds = function (e) {
184
+ if (!e.name) return !0
185
+ var t = e.form || Ne(e),
186
+ s = function (o) {
187
+ return t.querySelectorAll('input[type="radio"][name="' + o + '"]')
188
+ },
189
+ n
190
+ if (
191
+ typeof window < 'u' &&
192
+ typeof window.CSS < 'u' &&
193
+ typeof window.CSS.escape == 'function'
194
+ )
195
+ n = s(window.CSS.escape(e.name))
196
+ else
197
+ try {
198
+ n = s(e.name)
199
+ } catch (i) {
200
+ return (
201
+ console.error(
202
+ 'Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s',
203
+ i.message,
204
+ ),
205
+ !1
206
+ )
207
+ }
208
+ var r = us(n, e.form)
209
+ return !r || r === e
210
+ },
211
+ hs = function (e) {
212
+ return wt(e) && e.type === 'radio'
213
+ },
214
+ fs = function (e) {
215
+ return hs(e) && !ds(e)
216
+ },
217
+ ps = function (e) {
218
+ var t,
219
+ s = e && Ne(e),
220
+ n = (t = s) === null || t === void 0 ? void 0 : t.host,
221
+ r = !1
222
+ if (s && s !== e) {
223
+ var i, o, l
224
+ for (
225
+ r = !!(
226
+ ((i = n) !== null &&
227
+ i !== void 0 &&
228
+ (o = i.ownerDocument) !== null &&
229
+ o !== void 0 &&
230
+ o.contains(n)) ||
231
+ (e != null &&
232
+ (l = e.ownerDocument) !== null &&
233
+ l !== void 0 &&
234
+ l.contains(e))
235
+ );
236
+ !r && n;
237
+
238
+ ) {
239
+ var c, h, m
240
+ ;((s = Ne(n)),
241
+ (n = (c = s) === null || c === void 0 ? void 0 : c.host),
242
+ (r = !!(
243
+ (h = n) !== null &&
244
+ h !== void 0 &&
245
+ (m = h.ownerDocument) !== null &&
246
+ m !== void 0 &&
247
+ m.contains(n)
248
+ )))
249
+ }
250
+ }
251
+ return r
252
+ },
253
+ at = function (e) {
254
+ var t = e.getBoundingClientRect(),
255
+ s = t.width,
256
+ n = t.height
257
+ return s === 0 && n === 0
258
+ },
259
+ vs = function (e, t) {
260
+ var s = t.displayCheck,
261
+ n = t.getShadowRoot
262
+ if (getComputedStyle(e).visibility === 'hidden') return !0
263
+ var r = re.call(e, 'details>summary:first-of-type'),
264
+ i = r ? e.parentElement : e
265
+ if (re.call(i, 'details:not([open]) *')) return !0
266
+ if (!s || s === 'full' || s === 'legacy-full') {
267
+ if (typeof n == 'function') {
268
+ for (var o = e; e; ) {
269
+ var l = e.parentElement,
270
+ c = Ne(e)
271
+ if (l && !l.shadowRoot && n(l) === !0) return at(e)
272
+ e.assignedSlot
273
+ ? (e = e.assignedSlot)
274
+ : !l && c !== e.ownerDocument
275
+ ? (e = c.host)
276
+ : (e = l)
277
+ }
278
+ e = o
279
+ }
280
+ if (ps(e)) return !e.getClientRects().length
281
+ if (s !== 'legacy-full') return !0
282
+ } else if (s === 'non-zero-area') return at(e)
283
+ return !1
284
+ },
285
+ ms = function (e) {
286
+ if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))
287
+ for (var t = e.parentElement; t; ) {
288
+ if (t.tagName === 'FIELDSET' && t.disabled) {
289
+ for (var s = 0; s < t.children.length; s++) {
290
+ var n = t.children.item(s)
291
+ if (n.tagName === 'LEGEND')
292
+ return re.call(t, 'fieldset[disabled] *') ? !0 : !n.contains(e)
293
+ }
294
+ return !0
295
+ }
296
+ t = t.parentElement
297
+ }
298
+ return !1
299
+ },
300
+ Oe = function (e, t) {
301
+ return !(t.disabled || Fe(t) || ls(t) || vs(t, e) || cs(t) || ms(t))
302
+ },
303
+ je = function (e, t) {
304
+ return !(fs(t) || ie(t) < 0 || !Oe(e, t))
305
+ },
306
+ gs = function (e) {
307
+ var t = parseInt(e.getAttribute('tabindex'), 10)
308
+ return !!(isNaN(t) || t >= 0)
309
+ },
310
+ bs = function a(e) {
311
+ var t = [],
312
+ s = []
313
+ return (
314
+ e.forEach(function (n, r) {
315
+ var i = !!n.scopeParent,
316
+ o = i ? n.scopeParent : n,
317
+ l = as(o, i),
318
+ c = i ? a(n.candidates) : o
319
+ l === 0
320
+ ? i
321
+ ? t.push.apply(t, c)
322
+ : t.push(o)
323
+ : s.push({
324
+ documentOrder: r,
325
+ tabIndex: l,
326
+ item: n,
327
+ isScope: i,
328
+ content: c,
329
+ })
330
+ }),
331
+ s
332
+ .sort(os)
333
+ .reduce(function (n, r) {
334
+ return (r.isScope ? n.push.apply(n, r.content) : n.push(r.content), n)
335
+ }, [])
336
+ .concat(t)
337
+ )
338
+ },
339
+ ys = function (e, t) {
340
+ t = t || {}
341
+ var s
342
+ return (
343
+ t.getShadowRoot
344
+ ? (s = bt([e], t.includeContainer, {
345
+ filter: je.bind(null, t),
346
+ flatten: !1,
347
+ getShadowRoot: t.getShadowRoot,
348
+ shadowRootFilter: gs,
349
+ }))
350
+ : (s = gt(e, t.includeContainer, je.bind(null, t))),
351
+ bs(s)
352
+ )
353
+ },
354
+ ws = function (e, t) {
355
+ t = t || {}
356
+ var s
357
+ return (
358
+ t.getShadowRoot
359
+ ? (s = bt([e], t.includeContainer, {
360
+ filter: Oe.bind(null, t),
361
+ flatten: !0,
362
+ getShadowRoot: t.getShadowRoot,
363
+ }))
364
+ : (s = gt(e, t.includeContainer, Oe.bind(null, t))),
365
+ s
366
+ )
367
+ },
368
+ ae = function (e, t) {
369
+ if (((t = t || {}), !e)) throw new Error('No node provided')
370
+ return re.call(e, ke) === !1 ? !1 : je(t, e)
371
+ },
372
+ xs = vt.concat('iframe').join(','),
373
+ Me = function (e, t) {
374
+ if (((t = t || {}), !e)) throw new Error('No node provided')
375
+ return re.call(e, xs) === !1 ? !1 : Oe(t, e)
376
+ }
377
+ /*!
378
+ * focus-trap 7.6.5
379
+ * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE
380
+ */ function Be(a, e) {
381
+ ;(e == null || e > a.length) && (e = a.length)
382
+ for (var t = 0, s = Array(e); t < e; t++) s[t] = a[t]
383
+ return s
384
+ }
385
+ function _s(a) {
386
+ if (Array.isArray(a)) return Be(a)
387
+ }
388
+ function Ss(a, e, t) {
389
+ return (
390
+ (e = Ns(e)) in a
391
+ ? Object.defineProperty(a, e, {
392
+ value: t,
393
+ enumerable: !0,
394
+ configurable: !0,
395
+ writable: !0,
396
+ })
397
+ : (a[e] = t),
398
+ a
399
+ )
400
+ }
401
+ function Es(a) {
402
+ if (
403
+ (typeof Symbol < 'u' && a[Symbol.iterator] != null) ||
404
+ a['@@iterator'] != null
405
+ )
406
+ return Array.from(a)
407
+ }
408
+ function Ts() {
409
+ throw new TypeError(`Invalid attempt to spread non-iterable instance.
410
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)
411
+ }
412
+ function ot(a, e) {
413
+ var t = Object.keys(a)
414
+ if (Object.getOwnPropertySymbols) {
415
+ var s = Object.getOwnPropertySymbols(a)
416
+ ;(e &&
417
+ (s = s.filter(function (n) {
418
+ return Object.getOwnPropertyDescriptor(a, n).enumerable
419
+ })),
420
+ t.push.apply(t, s))
421
+ }
422
+ return t
423
+ }
424
+ function lt(a) {
425
+ for (var e = 1; e < arguments.length; e++) {
426
+ var t = arguments[e] != null ? arguments[e] : {}
427
+ e % 2
428
+ ? ot(Object(t), !0).forEach(function (s) {
429
+ Ss(a, s, t[s])
430
+ })
431
+ : Object.getOwnPropertyDescriptors
432
+ ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(t))
433
+ : ot(Object(t)).forEach(function (s) {
434
+ Object.defineProperty(a, s, Object.getOwnPropertyDescriptor(t, s))
435
+ })
436
+ }
437
+ return a
438
+ }
439
+ function Is(a) {
440
+ return _s(a) || Es(a) || Fs(a) || Ts()
441
+ }
442
+ function ks(a, e) {
443
+ if (typeof a != 'object' || !a) return a
444
+ var t = a[Symbol.toPrimitive]
445
+ if (t !== void 0) {
446
+ var s = t.call(a, e)
447
+ if (typeof s != 'object') return s
448
+ throw new TypeError('@@toPrimitive must return a primitive value.')
449
+ }
450
+ return (e === 'string' ? String : Number)(a)
451
+ }
452
+ function Ns(a) {
453
+ var e = ks(a, 'string')
454
+ return typeof e == 'symbol' ? e : e + ''
455
+ }
456
+ function Fs(a, e) {
457
+ if (a) {
458
+ if (typeof a == 'string') return Be(a, e)
459
+ var t = {}.toString.call(a).slice(8, -1)
460
+ return (
461
+ t === 'Object' && a.constructor && (t = a.constructor.name),
462
+ t === 'Map' || t === 'Set'
463
+ ? Array.from(a)
464
+ : t === 'Arguments' ||
465
+ /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)
466
+ ? Be(a, e)
467
+ : void 0
468
+ )
469
+ }
470
+ }
471
+ var ct = {
472
+ activateTrap: function (e, t) {
473
+ if (e.length > 0) {
474
+ var s = e[e.length - 1]
475
+ s !== t && s._setPausedState(!0)
476
+ }
477
+ var n = e.indexOf(t)
478
+ ;(n === -1 || e.splice(n, 1), e.push(t))
479
+ },
480
+ deactivateTrap: function (e, t) {
481
+ var s = e.indexOf(t)
482
+ ;(s !== -1 && e.splice(s, 1),
483
+ e.length > 0 &&
484
+ !e[e.length - 1]._isManuallyPaused() &&
485
+ e[e.length - 1]._setPausedState(!1))
486
+ },
487
+ },
488
+ Os = function (e) {
489
+ return (
490
+ e.tagName &&
491
+ e.tagName.toLowerCase() === 'input' &&
492
+ typeof e.select == 'function'
493
+ )
494
+ },
495
+ Rs = function (e) {
496
+ return (
497
+ (e == null ? void 0 : e.key) === 'Escape' ||
498
+ (e == null ? void 0 : e.key) === 'Esc' ||
499
+ (e == null ? void 0 : e.keyCode) === 27
500
+ )
501
+ },
502
+ be = function (e) {
503
+ return (
504
+ (e == null ? void 0 : e.key) === 'Tab' ||
505
+ (e == null ? void 0 : e.keyCode) === 9
506
+ )
507
+ },
508
+ Cs = function (e) {
509
+ return be(e) && !e.shiftKey
510
+ },
511
+ As = function (e) {
512
+ return be(e) && e.shiftKey
513
+ },
514
+ ut = function (e) {
515
+ return setTimeout(e, 0)
516
+ },
517
+ me = function (e) {
518
+ for (
519
+ var t = arguments.length, s = new Array(t > 1 ? t - 1 : 0), n = 1;
520
+ n < t;
521
+ n++
522
+ )
523
+ s[n - 1] = arguments[n]
524
+ return typeof e == 'function' ? e.apply(void 0, s) : e
525
+ },
526
+ Ee = function (e) {
527
+ return e.target.shadowRoot && typeof e.composedPath == 'function'
528
+ ? e.composedPath()[0]
529
+ : e.target
530
+ },
531
+ Ms = [],
532
+ Ls = function (e, t) {
533
+ var s = (t == null ? void 0 : t.document) || document,
534
+ n = (t == null ? void 0 : t.trapStack) || Ms,
535
+ r = lt(
536
+ {
537
+ returnFocusOnDeactivate: !0,
538
+ escapeDeactivates: !0,
539
+ delayInitialFocus: !0,
540
+ isKeyForward: Cs,
541
+ isKeyBackward: As,
542
+ },
543
+ t,
544
+ ),
545
+ i = {
546
+ containers: [],
547
+ containerGroups: [],
548
+ tabbableGroups: [],
549
+ nodeFocusedBeforeActivation: null,
550
+ mostRecentlyFocusedNode: null,
551
+ active: !1,
552
+ paused: !1,
553
+ manuallyPaused: !1,
554
+ delayInitialFocusTimer: void 0,
555
+ recentNavEvent: void 0,
556
+ },
557
+ o,
558
+ l = function (u, d, g) {
559
+ return u && u[d] !== void 0 ? u[d] : r[g || d]
560
+ },
561
+ c = function (u, d) {
562
+ var g =
563
+ typeof (d == null ? void 0 : d.composedPath) == 'function'
564
+ ? d.composedPath()
565
+ : void 0
566
+ return i.containerGroups.findIndex(function (E) {
567
+ var T = E.container,
568
+ F = E.tabbableNodes
569
+ return (
570
+ T.contains(u) ||
571
+ (g == null ? void 0 : g.includes(T)) ||
572
+ F.find(function (S) {
573
+ return S === u
574
+ })
575
+ )
576
+ })
577
+ },
578
+ h = function (u) {
579
+ var d =
580
+ arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {},
581
+ g = d.hasFallback,
582
+ E = g === void 0 ? !1 : g,
583
+ T = d.params,
584
+ F = T === void 0 ? [] : T,
585
+ S = r[u]
586
+ if (
587
+ (typeof S == 'function' && (S = S.apply(void 0, Is(F))),
588
+ S === !0 && (S = void 0),
589
+ !S)
590
+ ) {
591
+ if (S === void 0 || S === !1) return S
592
+ throw new Error(
593
+ '`'.concat(
594
+ u,
595
+ '` was specified but was not a node, or did not return a node',
596
+ ),
597
+ )
598
+ }
599
+ var R = S
600
+ if (typeof S == 'string') {
601
+ try {
602
+ R = s.querySelector(S)
603
+ } catch (v) {
604
+ throw new Error(
605
+ '`'
606
+ .concat(u, '` appears to be an invalid selector; error="')
607
+ .concat(v.message, '"'),
608
+ )
609
+ }
610
+ if (!R && !E)
611
+ throw new Error(
612
+ '`'.concat(u, '` as selector refers to no known node'),
613
+ )
614
+ }
615
+ return R
616
+ },
617
+ m = function () {
618
+ var u = h('initialFocus', { hasFallback: !0 })
619
+ if (u === !1) return !1
620
+ if (u === void 0 || (u && !Me(u, r.tabbableOptions)))
621
+ if (c(s.activeElement) >= 0) u = s.activeElement
622
+ else {
623
+ var d = i.tabbableGroups[0],
624
+ g = d && d.firstTabbableNode
625
+ u = g || h('fallbackFocus')
626
+ }
627
+ else u === null && (u = h('fallbackFocus'))
628
+ if (!u)
629
+ throw new Error(
630
+ 'Your focus-trap needs to have at least one focusable element',
631
+ )
632
+ return u
633
+ },
634
+ f = function () {
635
+ if (
636
+ ((i.containerGroups = i.containers.map(function (u) {
637
+ var d = ys(u, r.tabbableOptions),
638
+ g = ws(u, r.tabbableOptions),
639
+ E = d.length > 0 ? d[0] : void 0,
640
+ T = d.length > 0 ? d[d.length - 1] : void 0,
641
+ F = g.find(function (v) {
642
+ return ae(v)
643
+ }),
644
+ S = g
645
+ .slice()
646
+ .reverse()
647
+ .find(function (v) {
648
+ return ae(v)
649
+ }),
650
+ R = !!d.find(function (v) {
651
+ return ie(v) > 0
652
+ })
653
+ return {
654
+ container: u,
655
+ tabbableNodes: d,
656
+ focusableNodes: g,
657
+ posTabIndexesFound: R,
658
+ firstTabbableNode: E,
659
+ lastTabbableNode: T,
660
+ firstDomTabbableNode: F,
661
+ lastDomTabbableNode: S,
662
+ nextTabbableNode: function (p) {
663
+ var I =
664
+ arguments.length > 1 && arguments[1] !== void 0
665
+ ? arguments[1]
666
+ : !0,
667
+ O = d.indexOf(p)
668
+ return O < 0
669
+ ? I
670
+ ? g.slice(g.indexOf(p) + 1).find(function (P) {
671
+ return ae(P)
672
+ })
673
+ : g
674
+ .slice(0, g.indexOf(p))
675
+ .reverse()
676
+ .find(function (P) {
677
+ return ae(P)
678
+ })
679
+ : d[O + (I ? 1 : -1)]
680
+ },
681
+ }
682
+ })),
683
+ (i.tabbableGroups = i.containerGroups.filter(function (u) {
684
+ return u.tabbableNodes.length > 0
685
+ })),
686
+ i.tabbableGroups.length <= 0 && !h('fallbackFocus'))
687
+ )
688
+ throw new Error(
689
+ 'Your focus-trap must have at least one container with at least one tabbable node in it at all times',
690
+ )
691
+ if (
692
+ i.containerGroups.find(function (u) {
693
+ return u.posTabIndexesFound
694
+ }) &&
695
+ i.containerGroups.length > 1
696
+ )
697
+ throw new Error(
698
+ "At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.",
699
+ )
700
+ },
701
+ b = function (u) {
702
+ var d = u.activeElement
703
+ if (d)
704
+ return d.shadowRoot && d.shadowRoot.activeElement !== null
705
+ ? b(d.shadowRoot)
706
+ : d
707
+ },
708
+ y = function (u) {
709
+ if (u !== !1 && u !== b(document)) {
710
+ if (!u || !u.focus) {
711
+ y(m())
712
+ return
713
+ }
714
+ ;(u.focus({ preventScroll: !!r.preventScroll }),
715
+ (i.mostRecentlyFocusedNode = u),
716
+ Os(u) && u.select())
717
+ }
718
+ },
719
+ x = function (u) {
720
+ var d = h('setReturnFocus', { params: [u] })
721
+ return d || (d === !1 ? !1 : u)
722
+ },
723
+ w = function (u) {
724
+ var d = u.target,
725
+ g = u.event,
726
+ E = u.isBackward,
727
+ T = E === void 0 ? !1 : E
728
+ ;((d = d || Ee(g)), f())
729
+ var F = null
730
+ if (i.tabbableGroups.length > 0) {
731
+ var S = c(d, g),
732
+ R = S >= 0 ? i.containerGroups[S] : void 0
733
+ if (S < 0)
734
+ T
735
+ ? (F =
736
+ i.tabbableGroups[i.tabbableGroups.length - 1]
737
+ .lastTabbableNode)
738
+ : (F = i.tabbableGroups[0].firstTabbableNode)
739
+ else if (T) {
740
+ var v = i.tabbableGroups.findIndex(function (V) {
741
+ var k = V.firstTabbableNode
742
+ return d === k
743
+ })
744
+ if (
745
+ (v < 0 &&
746
+ (R.container === d ||
747
+ (Me(d, r.tabbableOptions) &&
748
+ !ae(d, r.tabbableOptions) &&
749
+ !R.nextTabbableNode(d, !1))) &&
750
+ (v = S),
751
+ v >= 0)
752
+ ) {
753
+ var p = v === 0 ? i.tabbableGroups.length - 1 : v - 1,
754
+ I = i.tabbableGroups[p]
755
+ F = ie(d) >= 0 ? I.lastTabbableNode : I.lastDomTabbableNode
756
+ } else be(g) || (F = R.nextTabbableNode(d, !1))
757
+ } else {
758
+ var O = i.tabbableGroups.findIndex(function (V) {
759
+ var k = V.lastTabbableNode
760
+ return d === k
761
+ })
762
+ if (
763
+ (O < 0 &&
764
+ (R.container === d ||
765
+ (Me(d, r.tabbableOptions) &&
766
+ !ae(d, r.tabbableOptions) &&
767
+ !R.nextTabbableNode(d))) &&
768
+ (O = S),
769
+ O >= 0)
770
+ ) {
771
+ var P = O === i.tabbableGroups.length - 1 ? 0 : O + 1,
772
+ z = i.tabbableGroups[P]
773
+ F = ie(d) >= 0 ? z.firstTabbableNode : z.firstDomTabbableNode
774
+ } else be(g) || (F = R.nextTabbableNode(d))
775
+ }
776
+ } else F = h('fallbackFocus')
777
+ return F
778
+ },
779
+ C = function (u) {
780
+ var d = Ee(u)
781
+ if (!(c(d, u) >= 0)) {
782
+ if (me(r.clickOutsideDeactivates, u)) {
783
+ o.deactivate({ returnFocus: r.returnFocusOnDeactivate })
784
+ return
785
+ }
786
+ me(r.allowOutsideClick, u) || u.preventDefault()
787
+ }
788
+ },
789
+ A = function (u) {
790
+ var d = Ee(u),
791
+ g = c(d, u) >= 0
792
+ if (g || d instanceof Document) g && (i.mostRecentlyFocusedNode = d)
793
+ else {
794
+ u.stopImmediatePropagation()
795
+ var E,
796
+ T = !0
797
+ if (i.mostRecentlyFocusedNode)
798
+ if (ie(i.mostRecentlyFocusedNode) > 0) {
799
+ var F = c(i.mostRecentlyFocusedNode),
800
+ S = i.containerGroups[F].tabbableNodes
801
+ if (S.length > 0) {
802
+ var R = S.findIndex(function (v) {
803
+ return v === i.mostRecentlyFocusedNode
804
+ })
805
+ R >= 0 &&
806
+ (r.isKeyForward(i.recentNavEvent)
807
+ ? R + 1 < S.length && ((E = S[R + 1]), (T = !1))
808
+ : R - 1 >= 0 && ((E = S[R - 1]), (T = !1)))
809
+ }
810
+ } else
811
+ i.containerGroups.some(function (v) {
812
+ return v.tabbableNodes.some(function (p) {
813
+ return ie(p) > 0
814
+ })
815
+ }) || (T = !1)
816
+ else T = !1
817
+ ;(T &&
818
+ (E = w({
819
+ target: i.mostRecentlyFocusedNode,
820
+ isBackward: r.isKeyBackward(i.recentNavEvent),
821
+ })),
822
+ y(E || i.mostRecentlyFocusedNode || m()))
823
+ }
824
+ i.recentNavEvent = void 0
825
+ },
826
+ J = function (u) {
827
+ var d =
828
+ arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1
829
+ i.recentNavEvent = u
830
+ var g = w({ event: u, isBackward: d })
831
+ g && (be(u) && u.preventDefault(), y(g))
832
+ },
833
+ Q = function (u) {
834
+ ;(r.isKeyForward(u) || r.isKeyBackward(u)) && J(u, r.isKeyBackward(u))
835
+ },
836
+ W = function (u) {
837
+ Rs(u) &&
838
+ me(r.escapeDeactivates, u) !== !1 &&
839
+ (u.preventDefault(), o.deactivate())
840
+ },
841
+ $ = function (u) {
842
+ var d = Ee(u)
843
+ c(d, u) >= 0 ||
844
+ me(r.clickOutsideDeactivates, u) ||
845
+ me(r.allowOutsideClick, u) ||
846
+ (u.preventDefault(), u.stopImmediatePropagation())
847
+ },
848
+ j = function () {
849
+ if (i.active)
850
+ return (
851
+ ct.activateTrap(n, o),
852
+ (i.delayInitialFocusTimer = r.delayInitialFocus
853
+ ? ut(function () {
854
+ y(m())
855
+ })
856
+ : y(m())),
857
+ s.addEventListener('focusin', A, !0),
858
+ s.addEventListener('mousedown', C, { capture: !0, passive: !1 }),
859
+ s.addEventListener('touchstart', C, { capture: !0, passive: !1 }),
860
+ s.addEventListener('click', $, { capture: !0, passive: !1 }),
861
+ s.addEventListener('keydown', Q, { capture: !0, passive: !1 }),
862
+ s.addEventListener('keydown', W),
863
+ o
864
+ )
865
+ },
866
+ ye = function () {
867
+ if (i.active)
868
+ return (
869
+ s.removeEventListener('focusin', A, !0),
870
+ s.removeEventListener('mousedown', C, !0),
871
+ s.removeEventListener('touchstart', C, !0),
872
+ s.removeEventListener('click', $, !0),
873
+ s.removeEventListener('keydown', Q, !0),
874
+ s.removeEventListener('keydown', W),
875
+ o
876
+ )
877
+ },
878
+ M = function (u) {
879
+ var d = u.some(function (g) {
880
+ var E = Array.from(g.removedNodes)
881
+ return E.some(function (T) {
882
+ return T === i.mostRecentlyFocusedNode
883
+ })
884
+ })
885
+ d && y(m())
886
+ },
887
+ q =
888
+ typeof window < 'u' && 'MutationObserver' in window
889
+ ? new MutationObserver(M)
890
+ : void 0,
891
+ U = function () {
892
+ q &&
893
+ (q.disconnect(),
894
+ i.active &&
895
+ !i.paused &&
896
+ i.containers.map(function (u) {
897
+ q.observe(u, { subtree: !0, childList: !0 })
898
+ }))
899
+ }
900
+ return (
901
+ (o = {
902
+ get active() {
903
+ return i.active
904
+ },
905
+ get paused() {
906
+ return i.paused
907
+ },
908
+ activate: function (u) {
909
+ if (i.active) return this
910
+ var d = l(u, 'onActivate'),
911
+ g = l(u, 'onPostActivate'),
912
+ E = l(u, 'checkCanFocusTrap')
913
+ ;(E || f(),
914
+ (i.active = !0),
915
+ (i.paused = !1),
916
+ (i.nodeFocusedBeforeActivation = b(s)),
917
+ d == null || d())
918
+ var T = function () {
919
+ ;(E && f(), j(), U(), g == null || g())
920
+ }
921
+ return E ? (E(i.containers.concat()).then(T, T), this) : (T(), this)
922
+ },
923
+ deactivate: function (u) {
924
+ if (!i.active) return this
925
+ var d = lt(
926
+ {
927
+ onDeactivate: r.onDeactivate,
928
+ onPostDeactivate: r.onPostDeactivate,
929
+ checkCanReturnFocus: r.checkCanReturnFocus,
930
+ },
931
+ u,
932
+ )
933
+ ;(clearTimeout(i.delayInitialFocusTimer),
934
+ (i.delayInitialFocusTimer = void 0),
935
+ ye(),
936
+ (i.active = !1),
937
+ (i.paused = !1),
938
+ U(),
939
+ ct.deactivateTrap(n, o))
940
+ var g = l(d, 'onDeactivate'),
941
+ E = l(d, 'onPostDeactivate'),
942
+ T = l(d, 'checkCanReturnFocus'),
943
+ F = l(d, 'returnFocus', 'returnFocusOnDeactivate')
944
+ g == null || g()
945
+ var S = function () {
946
+ ut(function () {
947
+ ;(F && y(x(i.nodeFocusedBeforeActivation)), E == null || E())
948
+ })
949
+ }
950
+ return F && T
951
+ ? (T(x(i.nodeFocusedBeforeActivation)).then(S, S), this)
952
+ : (S(), this)
953
+ },
954
+ pause: function (u) {
955
+ return i.active
956
+ ? ((i.manuallyPaused = !0), this._setPausedState(!0, u))
957
+ : this
958
+ },
959
+ unpause: function (u) {
960
+ return i.active
961
+ ? ((i.manuallyPaused = !1),
962
+ n[n.length - 1] !== this ? this : this._setPausedState(!1, u))
963
+ : this
964
+ },
965
+ updateContainerElements: function (u) {
966
+ var d = [].concat(u).filter(Boolean)
967
+ return (
968
+ (i.containers = d.map(function (g) {
969
+ return typeof g == 'string' ? s.querySelector(g) : g
970
+ })),
971
+ i.active && f(),
972
+ U(),
973
+ this
974
+ )
975
+ },
976
+ }),
977
+ Object.defineProperties(o, {
978
+ _isManuallyPaused: {
979
+ value: function () {
980
+ return i.manuallyPaused
981
+ },
982
+ },
983
+ _setPausedState: {
984
+ value: function (u, d) {
985
+ if (i.paused === u) return this
986
+ if (((i.paused = u), u)) {
987
+ var g = l(d, 'onPause'),
988
+ E = l(d, 'onPostPause')
989
+ ;(g == null || g(), ye(), U(), E == null || E())
990
+ } else {
991
+ var T = l(d, 'onUnpause'),
992
+ F = l(d, 'onPostUnpause')
993
+ ;(T == null || T(), f(), j(), U(), F == null || F())
994
+ }
995
+ return this
996
+ },
997
+ },
998
+ }),
999
+ o.updateContainerElements(e),
1000
+ o
1001
+ )
1002
+ }
1003
+ function Ds(a, e = {}) {
1004
+ let t
1005
+ const { immediate: s, ...n } = e,
1006
+ r = le(!1),
1007
+ i = le(!1),
1008
+ o = (f) => t && t.activate(f),
1009
+ l = (f) => t && t.deactivate(f),
1010
+ c = () => {
1011
+ t && (t.pause(), (i.value = !0))
1012
+ },
1013
+ h = () => {
1014
+ t && (t.unpause(), (i.value = !1))
1015
+ },
1016
+ m = ge(() => {
1017
+ const f = et(a)
1018
+ return Rt(f)
1019
+ .map((b) => {
1020
+ const y = et(b)
1021
+ return typeof y == 'string' ? y : Ct(y)
1022
+ })
1023
+ .filter(At)
1024
+ })
1025
+ return (
1026
+ $e(
1027
+ m,
1028
+ (f) => {
1029
+ f.length &&
1030
+ ((t = Ls(f, {
1031
+ ...n,
1032
+ onActivate() {
1033
+ ;((r.value = !0), e.onActivate && e.onActivate())
1034
+ },
1035
+ onDeactivate() {
1036
+ ;((r.value = !1), e.onDeactivate && e.onDeactivate())
1037
+ },
1038
+ })),
1039
+ s && o())
1040
+ },
1041
+ { flush: 'post' },
1042
+ ),
1043
+ Mt(() => l()),
1044
+ {
1045
+ hasFocus: r,
1046
+ isPaused: i,
1047
+ activate: o,
1048
+ deactivate: l,
1049
+ pause: c,
1050
+ unpause: h,
1051
+ }
1052
+ )
1053
+ }
1054
+ class ce {
1055
+ constructor(e, t = !0, s = [], n = 5e3) {
1056
+ ;((this.ctx = e),
1057
+ (this.iframes = t),
1058
+ (this.exclude = s),
1059
+ (this.iframesTimeout = n))
1060
+ }
1061
+ static matches(e, t) {
1062
+ const s = typeof t == 'string' ? [t] : t,
1063
+ n =
1064
+ e.matches ||
1065
+ e.matchesSelector ||
1066
+ e.msMatchesSelector ||
1067
+ e.mozMatchesSelector ||
1068
+ e.oMatchesSelector ||
1069
+ e.webkitMatchesSelector
1070
+ if (n) {
1071
+ let r = !1
1072
+ return (s.every((i) => (n.call(e, i) ? ((r = !0), !1) : !0)), r)
1073
+ } else return !1
1074
+ }
1075
+ getContexts() {
1076
+ let e,
1077
+ t = []
1078
+ return (
1079
+ typeof this.ctx > 'u' || !this.ctx
1080
+ ? (e = [])
1081
+ : NodeList.prototype.isPrototypeOf(this.ctx)
1082
+ ? (e = Array.prototype.slice.call(this.ctx))
1083
+ : Array.isArray(this.ctx)
1084
+ ? (e = this.ctx)
1085
+ : typeof this.ctx == 'string'
1086
+ ? (e = Array.prototype.slice.call(
1087
+ document.querySelectorAll(this.ctx),
1088
+ ))
1089
+ : (e = [this.ctx]),
1090
+ e.forEach((s) => {
1091
+ const n = t.filter((r) => r.contains(s)).length > 0
1092
+ t.indexOf(s) === -1 && !n && t.push(s)
1093
+ }),
1094
+ t
1095
+ )
1096
+ }
1097
+ getIframeContents(e, t, s = () => {}) {
1098
+ let n
1099
+ try {
1100
+ const r = e.contentWindow
1101
+ if (((n = r.document), !r || !n)) throw new Error('iframe inaccessible')
1102
+ } catch {
1103
+ s()
1104
+ }
1105
+ n && t(n)
1106
+ }
1107
+ isIframeBlank(e) {
1108
+ const t = 'about:blank',
1109
+ s = e.getAttribute('src').trim()
1110
+ return e.contentWindow.location.href === t && s !== t && s
1111
+ }
1112
+ observeIframeLoad(e, t, s) {
1113
+ let n = !1,
1114
+ r = null
1115
+ const i = () => {
1116
+ if (!n) {
1117
+ ;((n = !0), clearTimeout(r))
1118
+ try {
1119
+ this.isIframeBlank(e) ||
1120
+ (e.removeEventListener('load', i), this.getIframeContents(e, t, s))
1121
+ } catch {
1122
+ s()
1123
+ }
1124
+ }
1125
+ }
1126
+ ;(e.addEventListener('load', i), (r = setTimeout(i, this.iframesTimeout)))
1127
+ }
1128
+ onIframeReady(e, t, s) {
1129
+ try {
1130
+ e.contentWindow.document.readyState === 'complete'
1131
+ ? this.isIframeBlank(e)
1132
+ ? this.observeIframeLoad(e, t, s)
1133
+ : this.getIframeContents(e, t, s)
1134
+ : this.observeIframeLoad(e, t, s)
1135
+ } catch {
1136
+ s()
1137
+ }
1138
+ }
1139
+ waitForIframes(e, t) {
1140
+ let s = 0
1141
+ this.forEachIframe(
1142
+ e,
1143
+ () => !0,
1144
+ (n) => {
1145
+ ;(s++,
1146
+ this.waitForIframes(n.querySelector('html'), () => {
1147
+ --s || t()
1148
+ }))
1149
+ },
1150
+ (n) => {
1151
+ n || t()
1152
+ },
1153
+ )
1154
+ }
1155
+ forEachIframe(e, t, s, n = () => {}) {
1156
+ let r = e.querySelectorAll('iframe'),
1157
+ i = r.length,
1158
+ o = 0
1159
+ r = Array.prototype.slice.call(r)
1160
+ const l = () => {
1161
+ --i <= 0 && n(o)
1162
+ }
1163
+ ;(i || l(),
1164
+ r.forEach((c) => {
1165
+ ce.matches(c, this.exclude)
1166
+ ? l()
1167
+ : this.onIframeReady(
1168
+ c,
1169
+ (h) => {
1170
+ ;(t(c) && (o++, s(h)), l())
1171
+ },
1172
+ l,
1173
+ )
1174
+ }))
1175
+ }
1176
+ createIterator(e, t, s) {
1177
+ return document.createNodeIterator(e, t, s, !1)
1178
+ }
1179
+ createInstanceOnIframe(e) {
1180
+ return new ce(e.querySelector('html'), this.iframes)
1181
+ }
1182
+ compareNodeIframe(e, t, s) {
1183
+ const n = e.compareDocumentPosition(s),
1184
+ r = Node.DOCUMENT_POSITION_PRECEDING
1185
+ if (n & r)
1186
+ if (t !== null) {
1187
+ const i = t.compareDocumentPosition(s),
1188
+ o = Node.DOCUMENT_POSITION_FOLLOWING
1189
+ if (i & o) return !0
1190
+ } else return !0
1191
+ return !1
1192
+ }
1193
+ getIteratorNode(e) {
1194
+ const t = e.previousNode()
1195
+ let s
1196
+ return (
1197
+ t === null ? (s = e.nextNode()) : (s = e.nextNode() && e.nextNode()),
1198
+ { prevNode: t, node: s }
1199
+ )
1200
+ }
1201
+ checkIframeFilter(e, t, s, n) {
1202
+ let r = !1,
1203
+ i = !1
1204
+ return (
1205
+ n.forEach((o, l) => {
1206
+ o.val === s && ((r = l), (i = o.handled))
1207
+ }),
1208
+ this.compareNodeIframe(e, t, s)
1209
+ ? (r === !1 && !i
1210
+ ? n.push({ val: s, handled: !0 })
1211
+ : r !== !1 && !i && (n[r].handled = !0),
1212
+ !0)
1213
+ : (r === !1 && n.push({ val: s, handled: !1 }), !1)
1214
+ )
1215
+ }
1216
+ handleOpenIframes(e, t, s, n) {
1217
+ e.forEach((r) => {
1218
+ r.handled ||
1219
+ this.getIframeContents(r.val, (i) => {
1220
+ this.createInstanceOnIframe(i).forEachNode(t, s, n)
1221
+ })
1222
+ })
1223
+ }
1224
+ iterateThroughNodes(e, t, s, n, r) {
1225
+ const i = this.createIterator(t, e, n)
1226
+ let o = [],
1227
+ l = [],
1228
+ c,
1229
+ h,
1230
+ m = () => (({ prevNode: h, node: c } = this.getIteratorNode(i)), c)
1231
+ for (; m(); )
1232
+ (this.iframes &&
1233
+ this.forEachIframe(
1234
+ t,
1235
+ (f) => this.checkIframeFilter(c, h, f, o),
1236
+ (f) => {
1237
+ this.createInstanceOnIframe(f).forEachNode(e, (b) => l.push(b), n)
1238
+ },
1239
+ ),
1240
+ l.push(c))
1241
+ ;(l.forEach((f) => {
1242
+ s(f)
1243
+ }),
1244
+ this.iframes && this.handleOpenIframes(o, e, s, n),
1245
+ r())
1246
+ }
1247
+ forEachNode(e, t, s, n = () => {}) {
1248
+ const r = this.getContexts()
1249
+ let i = r.length
1250
+ ;(i || n(),
1251
+ r.forEach((o) => {
1252
+ const l = () => {
1253
+ this.iterateThroughNodes(e, o, t, s, () => {
1254
+ --i <= 0 && n()
1255
+ })
1256
+ }
1257
+ this.iframes ? this.waitForIframes(o, l) : l()
1258
+ }))
1259
+ }
1260
+ }
1261
+ let Ps = class {
1262
+ constructor(e) {
1263
+ ;((this.ctx = e), (this.ie = !1))
1264
+ const t = window.navigator.userAgent
1265
+ ;(t.indexOf('MSIE') > -1 || t.indexOf('Trident') > -1) && (this.ie = !0)
1266
+ }
1267
+ set opt(e) {
1268
+ this._opt = Object.assign(
1269
+ {},
1270
+ {
1271
+ element: '',
1272
+ className: '',
1273
+ exclude: [],
1274
+ iframes: !1,
1275
+ iframesTimeout: 5e3,
1276
+ separateWordSearch: !0,
1277
+ diacritics: !0,
1278
+ synonyms: {},
1279
+ accuracy: 'partially',
1280
+ acrossElements: !1,
1281
+ caseSensitive: !1,
1282
+ ignoreJoiners: !1,
1283
+ ignoreGroups: 0,
1284
+ ignorePunctuation: [],
1285
+ wildcards: 'disabled',
1286
+ each: () => {},
1287
+ noMatch: () => {},
1288
+ filter: () => !0,
1289
+ done: () => {},
1290
+ debug: !1,
1291
+ log: window.console,
1292
+ },
1293
+ e,
1294
+ )
1295
+ }
1296
+ get opt() {
1297
+ return this._opt
1298
+ }
1299
+ get iterator() {
1300
+ return new ce(
1301
+ this.ctx,
1302
+ this.opt.iframes,
1303
+ this.opt.exclude,
1304
+ this.opt.iframesTimeout,
1305
+ )
1306
+ }
1307
+ log(e, t = 'debug') {
1308
+ const s = this.opt.log
1309
+ this.opt.debug &&
1310
+ typeof s == 'object' &&
1311
+ typeof s[t] == 'function' &&
1312
+ s[t](`mark.js: ${e}`)
1313
+ }
1314
+ escapeStr(e) {
1315
+ return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&')
1316
+ }
1317
+ createRegExp(e) {
1318
+ return (
1319
+ this.opt.wildcards !== 'disabled' && (e = this.setupWildcardsRegExp(e)),
1320
+ (e = this.escapeStr(e)),
1321
+ Object.keys(this.opt.synonyms).length &&
1322
+ (e = this.createSynonymsRegExp(e)),
1323
+ (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) &&
1324
+ (e = this.setupIgnoreJoinersRegExp(e)),
1325
+ this.opt.diacritics && (e = this.createDiacriticsRegExp(e)),
1326
+ (e = this.createMergedBlanksRegExp(e)),
1327
+ (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) &&
1328
+ (e = this.createJoinersRegExp(e)),
1329
+ this.opt.wildcards !== 'disabled' && (e = this.createWildcardsRegExp(e)),
1330
+ (e = this.createAccuracyRegExp(e)),
1331
+ e
1332
+ )
1333
+ }
1334
+ createSynonymsRegExp(e) {
1335
+ const t = this.opt.synonyms,
1336
+ s = this.opt.caseSensitive ? '' : 'i',
1337
+ n =
1338
+ this.opt.ignoreJoiners || this.opt.ignorePunctuation.length ? '\0' : ''
1339
+ for (let r in t)
1340
+ if (t.hasOwnProperty(r)) {
1341
+ const i = t[r],
1342
+ o =
1343
+ this.opt.wildcards !== 'disabled'
1344
+ ? this.setupWildcardsRegExp(r)
1345
+ : this.escapeStr(r),
1346
+ l =
1347
+ this.opt.wildcards !== 'disabled'
1348
+ ? this.setupWildcardsRegExp(i)
1349
+ : this.escapeStr(i)
1350
+ o !== '' &&
1351
+ l !== '' &&
1352
+ (e = e.replace(
1353
+ new RegExp(`(${this.escapeStr(o)}|${this.escapeStr(l)})`, `gm${s}`),
1354
+ n + `(${this.processSynomyms(o)}|${this.processSynomyms(l)})` + n,
1355
+ ))
1356
+ }
1357
+ return e
1358
+ }
1359
+ processSynomyms(e) {
1360
+ return (
1361
+ (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) &&
1362
+ (e = this.setupIgnoreJoinersRegExp(e)),
1363
+ e
1364
+ )
1365
+ }
1366
+ setupWildcardsRegExp(e) {
1367
+ return (
1368
+ (e = e.replace(/(?:\\)*\?/g, (t) => (t.charAt(0) === '\\' ? '?' : ''))),
1369
+ e.replace(/(?:\\)*\*/g, (t) => (t.charAt(0) === '\\' ? '*' : ''))
1370
+ )
1371
+ }
1372
+ createWildcardsRegExp(e) {
1373
+ let t = this.opt.wildcards === 'withSpaces'
1374
+ return e
1375
+ .replace(/\u0001/g, t ? '[\\S\\s]?' : '\\S?')
1376
+ .replace(/\u0002/g, t ? '[\\S\\s]*?' : '\\S*')
1377
+ }
1378
+ setupIgnoreJoinersRegExp(e) {
1379
+ return e.replace(/[^(|)\\]/g, (t, s, n) => {
1380
+ let r = n.charAt(s + 1)
1381
+ return /[(|)\\]/.test(r) || r === '' ? t : t + '\0'
1382
+ })
1383
+ }
1384
+ createJoinersRegExp(e) {
1385
+ let t = []
1386
+ const s = this.opt.ignorePunctuation
1387
+ return (
1388
+ Array.isArray(s) && s.length && t.push(this.escapeStr(s.join(''))),
1389
+ this.opt.ignoreJoiners && t.push('\\u00ad\\u200b\\u200c\\u200d'),
1390
+ t.length ? e.split(/\u0000+/).join(`[${t.join('')}]*`) : e
1391
+ )
1392
+ }
1393
+ createDiacriticsRegExp(e) {
1394
+ const t = this.opt.caseSensitive ? '' : 'i',
1395
+ s = this.opt.caseSensitive
1396
+ ? [
1397
+ 'aàáảãạăằắẳẵặâầấẩẫậäåāą',
1398
+ 'AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ',
1399
+ 'cçćč',
1400
+ 'CÇĆČ',
1401
+ 'dđď',
1402
+ 'DĐĎ',
1403
+ 'eèéẻẽẹêềếểễệëěēę',
1404
+ 'EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ',
1405
+ 'iìíỉĩịîïī',
1406
+ 'IÌÍỈĨỊÎÏĪ',
1407
+ 'lł',
1408
+ 'LŁ',
1409
+ 'nñňń',
1410
+ 'NÑŇŃ',
1411
+ 'oòóỏõọôồốổỗộơởỡớờợöøō',
1412
+ 'OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ',
1413
+ 'rř',
1414
+ 'RŘ',
1415
+ 'sšśșş',
1416
+ 'SŠŚȘŞ',
1417
+ 'tťțţ',
1418
+ 'TŤȚŢ',
1419
+ 'uùúủũụưừứửữựûüůū',
1420
+ 'UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ',
1421
+ 'yýỳỷỹỵÿ',
1422
+ 'YÝỲỶỸỴŸ',
1423
+ 'zžżź',
1424
+ 'ZŽŻŹ',
1425
+ ]
1426
+ : [
1427
+ 'aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ',
1428
+ 'cçćčCÇĆČ',
1429
+ 'dđďDĐĎ',
1430
+ 'eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ',
1431
+ 'iìíỉĩịîïīIÌÍỈĨỊÎÏĪ',
1432
+ 'lłLŁ',
1433
+ 'nñňńNÑŇŃ',
1434
+ 'oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ',
1435
+ 'rřRŘ',
1436
+ 'sšśșşSŠŚȘŞ',
1437
+ 'tťțţTŤȚŢ',
1438
+ 'uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ',
1439
+ 'yýỳỷỹỵÿYÝỲỶỸỴŸ',
1440
+ 'zžżźZŽŻŹ',
1441
+ ]
1442
+ let n = []
1443
+ return (
1444
+ e.split('').forEach((r) => {
1445
+ s.every((i) => {
1446
+ if (i.indexOf(r) !== -1) {
1447
+ if (n.indexOf(i) > -1) return !1
1448
+ ;((e = e.replace(new RegExp(`[${i}]`, `gm${t}`), `[${i}]`)),
1449
+ n.push(i))
1450
+ }
1451
+ return !0
1452
+ })
1453
+ }),
1454
+ e
1455
+ )
1456
+ }
1457
+ createMergedBlanksRegExp(e) {
1458
+ return e.replace(/[\s]+/gim, '[\\s]+')
1459
+ }
1460
+ createAccuracyRegExp(e) {
1461
+ const t = '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~¡¿'
1462
+ let s = this.opt.accuracy,
1463
+ n = typeof s == 'string' ? s : s.value,
1464
+ r = typeof s == 'string' ? [] : s.limiters,
1465
+ i = ''
1466
+ switch (
1467
+ (r.forEach((o) => {
1468
+ i += `|${this.escapeStr(o)}`
1469
+ }),
1470
+ n)
1471
+ ) {
1472
+ case 'partially':
1473
+ default:
1474
+ return `()(${e})`
1475
+ case 'complementary':
1476
+ return (
1477
+ (i = '\\s' + (i || this.escapeStr(t))),
1478
+ `()([^${i}]*${e}[^${i}]*)`
1479
+ )
1480
+ case 'exactly':
1481
+ return `(^|\\s${i})(${e})(?=$|\\s${i})`
1482
+ }
1483
+ }
1484
+ getSeparatedKeywords(e) {
1485
+ let t = []
1486
+ return (
1487
+ e.forEach((s) => {
1488
+ this.opt.separateWordSearch
1489
+ ? s.split(' ').forEach((n) => {
1490
+ n.trim() && t.indexOf(n) === -1 && t.push(n)
1491
+ })
1492
+ : s.trim() && t.indexOf(s) === -1 && t.push(s)
1493
+ }),
1494
+ { keywords: t.sort((s, n) => n.length - s.length), length: t.length }
1495
+ )
1496
+ }
1497
+ isNumeric(e) {
1498
+ return Number(parseFloat(e)) == e
1499
+ }
1500
+ checkRanges(e) {
1501
+ if (
1502
+ !Array.isArray(e) ||
1503
+ Object.prototype.toString.call(e[0]) !== '[object Object]'
1504
+ )
1505
+ return (
1506
+ this.log('markRanges() will only accept an array of objects'),
1507
+ this.opt.noMatch(e),
1508
+ []
1509
+ )
1510
+ const t = []
1511
+ let s = 0
1512
+ return (
1513
+ e
1514
+ .sort((n, r) => n.start - r.start)
1515
+ .forEach((n) => {
1516
+ let {
1517
+ start: r,
1518
+ end: i,
1519
+ valid: o,
1520
+ } = this.callNoMatchOnInvalidRanges(n, s)
1521
+ o && ((n.start = r), (n.length = i - r), t.push(n), (s = i))
1522
+ }),
1523
+ t
1524
+ )
1525
+ }
1526
+ callNoMatchOnInvalidRanges(e, t) {
1527
+ let s,
1528
+ n,
1529
+ r = !1
1530
+ return (
1531
+ e && typeof e.start < 'u'
1532
+ ? ((s = parseInt(e.start, 10)),
1533
+ (n = s + parseInt(e.length, 10)),
1534
+ this.isNumeric(e.start) &&
1535
+ this.isNumeric(e.length) &&
1536
+ n - t > 0 &&
1537
+ n - s > 0
1538
+ ? (r = !0)
1539
+ : (this.log(
1540
+ `Ignoring invalid or overlapping range: ${JSON.stringify(e)}`,
1541
+ ),
1542
+ this.opt.noMatch(e)))
1543
+ : (this.log(`Ignoring invalid range: ${JSON.stringify(e)}`),
1544
+ this.opt.noMatch(e)),
1545
+ { start: s, end: n, valid: r }
1546
+ )
1547
+ }
1548
+ checkWhitespaceRanges(e, t, s) {
1549
+ let n,
1550
+ r = !0,
1551
+ i = s.length,
1552
+ o = t - i,
1553
+ l = parseInt(e.start, 10) - o
1554
+ return (
1555
+ (l = l > i ? i : l),
1556
+ (n = l + parseInt(e.length, 10)),
1557
+ n > i &&
1558
+ ((n = i),
1559
+ this.log(`End range automatically set to the max value of ${i}`)),
1560
+ l < 0 || n - l < 0 || l > i || n > i
1561
+ ? ((r = !1),
1562
+ this.log(`Invalid range: ${JSON.stringify(e)}`),
1563
+ this.opt.noMatch(e))
1564
+ : s.substring(l, n).replace(/\s+/g, '') === '' &&
1565
+ ((r = !1),
1566
+ this.log('Skipping whitespace only range: ' + JSON.stringify(e)),
1567
+ this.opt.noMatch(e)),
1568
+ { start: l, end: n, valid: r }
1569
+ )
1570
+ }
1571
+ getTextNodes(e) {
1572
+ let t = '',
1573
+ s = []
1574
+ this.iterator.forEachNode(
1575
+ NodeFilter.SHOW_TEXT,
1576
+ (n) => {
1577
+ s.push({ start: t.length, end: (t += n.textContent).length, node: n })
1578
+ },
1579
+ (n) =>
1580
+ this.matchesExclude(n.parentNode)
1581
+ ? NodeFilter.FILTER_REJECT
1582
+ : NodeFilter.FILTER_ACCEPT,
1583
+ () => {
1584
+ e({ value: t, nodes: s })
1585
+ },
1586
+ )
1587
+ }
1588
+ matchesExclude(e) {
1589
+ return ce.matches(
1590
+ e,
1591
+ this.opt.exclude.concat(['script', 'style', 'title', 'head', 'html']),
1592
+ )
1593
+ }
1594
+ wrapRangeInTextNode(e, t, s) {
1595
+ const n = this.opt.element ? this.opt.element : 'mark',
1596
+ r = e.splitText(t),
1597
+ i = r.splitText(s - t)
1598
+ let o = document.createElement(n)
1599
+ return (
1600
+ o.setAttribute('data-markjs', 'true'),
1601
+ this.opt.className && o.setAttribute('class', this.opt.className),
1602
+ (o.textContent = r.textContent),
1603
+ r.parentNode.replaceChild(o, r),
1604
+ i
1605
+ )
1606
+ }
1607
+ wrapRangeInMappedTextNode(e, t, s, n, r) {
1608
+ e.nodes.every((i, o) => {
1609
+ const l = e.nodes[o + 1]
1610
+ if (typeof l > 'u' || l.start > t) {
1611
+ if (!n(i.node)) return !1
1612
+ const c = t - i.start,
1613
+ h = (s > i.end ? i.end : s) - i.start,
1614
+ m = e.value.substr(0, i.start),
1615
+ f = e.value.substr(h + i.start)
1616
+ if (
1617
+ ((i.node = this.wrapRangeInTextNode(i.node, c, h)),
1618
+ (e.value = m + f),
1619
+ e.nodes.forEach((b, y) => {
1620
+ y >= o &&
1621
+ (e.nodes[y].start > 0 && y !== o && (e.nodes[y].start -= h),
1622
+ (e.nodes[y].end -= h))
1623
+ }),
1624
+ (s -= h),
1625
+ r(i.node.previousSibling, i.start),
1626
+ s > i.end)
1627
+ )
1628
+ t = i.end
1629
+ else return !1
1630
+ }
1631
+ return !0
1632
+ })
1633
+ }
1634
+ wrapMatches(e, t, s, n, r) {
1635
+ const i = t === 0 ? 0 : t + 1
1636
+ this.getTextNodes((o) => {
1637
+ ;(o.nodes.forEach((l) => {
1638
+ l = l.node
1639
+ let c
1640
+ for (; (c = e.exec(l.textContent)) !== null && c[i] !== ''; ) {
1641
+ if (!s(c[i], l)) continue
1642
+ let h = c.index
1643
+ if (i !== 0) for (let m = 1; m < i; m++) h += c[m].length
1644
+ ;((l = this.wrapRangeInTextNode(l, h, h + c[i].length)),
1645
+ n(l.previousSibling),
1646
+ (e.lastIndex = 0))
1647
+ }
1648
+ }),
1649
+ r())
1650
+ })
1651
+ }
1652
+ wrapMatchesAcrossElements(e, t, s, n, r) {
1653
+ const i = t === 0 ? 0 : t + 1
1654
+ this.getTextNodes((o) => {
1655
+ let l
1656
+ for (; (l = e.exec(o.value)) !== null && l[i] !== ''; ) {
1657
+ let c = l.index
1658
+ if (i !== 0) for (let m = 1; m < i; m++) c += l[m].length
1659
+ const h = c + l[i].length
1660
+ this.wrapRangeInMappedTextNode(
1661
+ o,
1662
+ c,
1663
+ h,
1664
+ (m) => s(l[i], m),
1665
+ (m, f) => {
1666
+ ;((e.lastIndex = f), n(m))
1667
+ },
1668
+ )
1669
+ }
1670
+ r()
1671
+ })
1672
+ }
1673
+ wrapRangeFromIndex(e, t, s, n) {
1674
+ this.getTextNodes((r) => {
1675
+ const i = r.value.length
1676
+ ;(e.forEach((o, l) => {
1677
+ let {
1678
+ start: c,
1679
+ end: h,
1680
+ valid: m,
1681
+ } = this.checkWhitespaceRanges(o, i, r.value)
1682
+ m &&
1683
+ this.wrapRangeInMappedTextNode(
1684
+ r,
1685
+ c,
1686
+ h,
1687
+ (f) => t(f, o, r.value.substring(c, h), l),
1688
+ (f) => {
1689
+ s(f, o)
1690
+ },
1691
+ )
1692
+ }),
1693
+ n())
1694
+ })
1695
+ }
1696
+ unwrapMatches(e) {
1697
+ const t = e.parentNode
1698
+ let s = document.createDocumentFragment()
1699
+ for (; e.firstChild; ) s.appendChild(e.removeChild(e.firstChild))
1700
+ ;(t.replaceChild(s, e), this.ie ? this.normalizeTextNode(t) : t.normalize())
1701
+ }
1702
+ normalizeTextNode(e) {
1703
+ if (e) {
1704
+ if (e.nodeType === 3)
1705
+ for (; e.nextSibling && e.nextSibling.nodeType === 3; )
1706
+ ((e.nodeValue += e.nextSibling.nodeValue),
1707
+ e.parentNode.removeChild(e.nextSibling))
1708
+ else this.normalizeTextNode(e.firstChild)
1709
+ this.normalizeTextNode(e.nextSibling)
1710
+ }
1711
+ }
1712
+ markRegExp(e, t) {
1713
+ ;((this.opt = t), this.log(`Searching with expression "${e}"`))
1714
+ let s = 0,
1715
+ n = 'wrapMatches'
1716
+ const r = (i) => {
1717
+ ;(s++, this.opt.each(i))
1718
+ }
1719
+ ;(this.opt.acrossElements && (n = 'wrapMatchesAcrossElements'),
1720
+ this[n](
1721
+ e,
1722
+ this.opt.ignoreGroups,
1723
+ (i, o) => this.opt.filter(o, i, s),
1724
+ r,
1725
+ () => {
1726
+ ;(s === 0 && this.opt.noMatch(e), this.opt.done(s))
1727
+ },
1728
+ ))
1729
+ }
1730
+ mark(e, t) {
1731
+ this.opt = t
1732
+ let s = 0,
1733
+ n = 'wrapMatches'
1734
+ const { keywords: r, length: i } = this.getSeparatedKeywords(
1735
+ typeof e == 'string' ? [e] : e,
1736
+ ),
1737
+ o = this.opt.caseSensitive ? '' : 'i',
1738
+ l = (c) => {
1739
+ let h = new RegExp(this.createRegExp(c), `gm${o}`),
1740
+ m = 0
1741
+ ;(this.log(`Searching with expression "${h}"`),
1742
+ this[n](
1743
+ h,
1744
+ 1,
1745
+ (f, b) => this.opt.filter(b, c, s, m),
1746
+ (f) => {
1747
+ ;(m++, s++, this.opt.each(f))
1748
+ },
1749
+ () => {
1750
+ ;(m === 0 && this.opt.noMatch(c),
1751
+ r[i - 1] === c ? this.opt.done(s) : l(r[r.indexOf(c) + 1]))
1752
+ },
1753
+ ))
1754
+ }
1755
+ ;(this.opt.acrossElements && (n = 'wrapMatchesAcrossElements'),
1756
+ i === 0 ? this.opt.done(s) : l(r[0]))
1757
+ }
1758
+ markRanges(e, t) {
1759
+ this.opt = t
1760
+ let s = 0,
1761
+ n = this.checkRanges(e)
1762
+ n && n.length
1763
+ ? (this.log(
1764
+ 'Starting to mark with the following ranges: ' + JSON.stringify(n),
1765
+ ),
1766
+ this.wrapRangeFromIndex(
1767
+ n,
1768
+ (r, i, o, l) => this.opt.filter(r, i, o, l),
1769
+ (r, i) => {
1770
+ ;(s++, this.opt.each(r, i))
1771
+ },
1772
+ () => {
1773
+ this.opt.done(s)
1774
+ },
1775
+ ))
1776
+ : this.opt.done(s)
1777
+ }
1778
+ unmark(e) {
1779
+ this.opt = e
1780
+ let t = this.opt.element ? this.opt.element : '*'
1781
+ ;((t += '[data-markjs]'),
1782
+ this.opt.className && (t += `.${this.opt.className}`),
1783
+ this.log(`Removal selector "${t}"`),
1784
+ this.iterator.forEachNode(
1785
+ NodeFilter.SHOW_ELEMENT,
1786
+ (s) => {
1787
+ this.unwrapMatches(s)
1788
+ },
1789
+ (s) => {
1790
+ const n = ce.matches(s, t),
1791
+ r = this.matchesExclude(s)
1792
+ return !n || r ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT
1793
+ },
1794
+ this.opt.done,
1795
+ ))
1796
+ }
1797
+ }
1798
+ function zs(a) {
1799
+ const e = new Ps(a)
1800
+ return (
1801
+ (this.mark = (t, s) => (e.mark(t, s), this)),
1802
+ (this.markRegExp = (t, s) => (e.markRegExp(t, s), this)),
1803
+ (this.markRanges = (t, s) => (e.markRanges(t, s), this)),
1804
+ (this.unmark = (t) => (e.unmark(t), this)),
1805
+ this
1806
+ )
1807
+ }
1808
+ const Vs = 'ENTRIES',
1809
+ xt = 'KEYS',
1810
+ _t = 'VALUES',
1811
+ D = ''
1812
+ class Le {
1813
+ constructor(e, t) {
1814
+ const s = e._tree,
1815
+ n = Array.from(s.keys())
1816
+ ;((this.set = e),
1817
+ (this._type = t),
1818
+ (this._path = n.length > 0 ? [{ node: s, keys: n }] : []))
1819
+ }
1820
+ next() {
1821
+ const e = this.dive()
1822
+ return (this.backtrack(), e)
1823
+ }
1824
+ dive() {
1825
+ if (this._path.length === 0) return { done: !0, value: void 0 }
1826
+ const { node: e, keys: t } = oe(this._path)
1827
+ if (oe(t) === D) return { done: !1, value: this.result() }
1828
+ const s = e.get(oe(t))
1829
+ return (
1830
+ this._path.push({ node: s, keys: Array.from(s.keys()) }),
1831
+ this.dive()
1832
+ )
1833
+ }
1834
+ backtrack() {
1835
+ if (this._path.length === 0) return
1836
+ const e = oe(this._path).keys
1837
+ ;(e.pop(), !(e.length > 0) && (this._path.pop(), this.backtrack()))
1838
+ }
1839
+ key() {
1840
+ return (
1841
+ this.set._prefix +
1842
+ this._path
1843
+ .map(({ keys: e }) => oe(e))
1844
+ .filter((e) => e !== D)
1845
+ .join('')
1846
+ )
1847
+ }
1848
+ value() {
1849
+ return oe(this._path).node.get(D)
1850
+ }
1851
+ result() {
1852
+ switch (this._type) {
1853
+ case _t:
1854
+ return this.value()
1855
+ case xt:
1856
+ return this.key()
1857
+ default:
1858
+ return [this.key(), this.value()]
1859
+ }
1860
+ }
1861
+ [Symbol.iterator]() {
1862
+ return this
1863
+ }
1864
+ }
1865
+ const oe = (a) => a[a.length - 1],
1866
+ $s = (a, e, t) => {
1867
+ const s = new Map()
1868
+ if (e === void 0) return s
1869
+ const n = e.length + 1,
1870
+ r = n + t,
1871
+ i = new Uint8Array(r * n).fill(t + 1)
1872
+ for (let o = 0; o < n; ++o) i[o] = o
1873
+ for (let o = 1; o < r; ++o) i[o * n] = o
1874
+ return (St(a, e, t, s, i, 1, n, ''), s)
1875
+ },
1876
+ St = (a, e, t, s, n, r, i, o) => {
1877
+ const l = r * i
1878
+ e: for (const c of a.keys())
1879
+ if (c === D) {
1880
+ const h = n[l - 1]
1881
+ h <= t && s.set(o, [a.get(c), h])
1882
+ } else {
1883
+ let h = r
1884
+ for (let m = 0; m < c.length; ++m, ++h) {
1885
+ const f = c[m],
1886
+ b = i * h,
1887
+ y = b - i
1888
+ let x = n[b]
1889
+ const w = Math.max(0, h - t - 1),
1890
+ C = Math.min(i - 1, h + t)
1891
+ for (let A = w; A < C; ++A) {
1892
+ const J = f !== e[A],
1893
+ Q = n[y + A] + +J,
1894
+ W = n[y + A + 1] + 1,
1895
+ $ = n[b + A] + 1,
1896
+ j = (n[b + A + 1] = Math.min(Q, W, $))
1897
+ j < x && (x = j)
1898
+ }
1899
+ if (x > t) continue e
1900
+ }
1901
+ St(a.get(c), e, t, s, n, h, i, o + c)
1902
+ }
1903
+ }
1904
+ class X {
1905
+ constructor(e = new Map(), t = '') {
1906
+ ;((this._size = void 0), (this._tree = e), (this._prefix = t))
1907
+ }
1908
+ atPrefix(e) {
1909
+ if (!e.startsWith(this._prefix)) throw new Error('Mismatched prefix')
1910
+ const [t, s] = Re(this._tree, e.slice(this._prefix.length))
1911
+ if (t === void 0) {
1912
+ const [n, r] = qe(s)
1913
+ for (const i of n.keys())
1914
+ if (i !== D && i.startsWith(r)) {
1915
+ const o = new Map()
1916
+ return (o.set(i.slice(r.length), n.get(i)), new X(o, e))
1917
+ }
1918
+ }
1919
+ return new X(t, e)
1920
+ }
1921
+ clear() {
1922
+ ;((this._size = void 0), this._tree.clear())
1923
+ }
1924
+ delete(e) {
1925
+ return ((this._size = void 0), js(this._tree, e))
1926
+ }
1927
+ entries() {
1928
+ return new Le(this, Vs)
1929
+ }
1930
+ forEach(e) {
1931
+ for (const [t, s] of this) e(t, s, this)
1932
+ }
1933
+ fuzzyGet(e, t) {
1934
+ return $s(this._tree, e, t)
1935
+ }
1936
+ get(e) {
1937
+ const t = We(this._tree, e)
1938
+ return t !== void 0 ? t.get(D) : void 0
1939
+ }
1940
+ has(e) {
1941
+ const t = We(this._tree, e)
1942
+ return t !== void 0 && t.has(D)
1943
+ }
1944
+ keys() {
1945
+ return new Le(this, xt)
1946
+ }
1947
+ set(e, t) {
1948
+ if (typeof e != 'string') throw new Error('key must be a string')
1949
+ return ((this._size = void 0), De(this._tree, e).set(D, t), this)
1950
+ }
1951
+ get size() {
1952
+ if (this._size) return this._size
1953
+ this._size = 0
1954
+ const e = this.entries()
1955
+ for (; !e.next().done; ) this._size += 1
1956
+ return this._size
1957
+ }
1958
+ update(e, t) {
1959
+ if (typeof e != 'string') throw new Error('key must be a string')
1960
+ this._size = void 0
1961
+ const s = De(this._tree, e)
1962
+ return (s.set(D, t(s.get(D))), this)
1963
+ }
1964
+ fetch(e, t) {
1965
+ if (typeof e != 'string') throw new Error('key must be a string')
1966
+ this._size = void 0
1967
+ const s = De(this._tree, e)
1968
+ let n = s.get(D)
1969
+ return (n === void 0 && s.set(D, (n = t())), n)
1970
+ }
1971
+ values() {
1972
+ return new Le(this, _t)
1973
+ }
1974
+ [Symbol.iterator]() {
1975
+ return this.entries()
1976
+ }
1977
+ static from(e) {
1978
+ const t = new X()
1979
+ for (const [s, n] of e) t.set(s, n)
1980
+ return t
1981
+ }
1982
+ static fromObject(e) {
1983
+ return X.from(Object.entries(e))
1984
+ }
1985
+ }
1986
+ const Re = (a, e, t = []) => {
1987
+ if (e.length === 0 || a == null) return [a, t]
1988
+ for (const s of a.keys())
1989
+ if (s !== D && e.startsWith(s))
1990
+ return (t.push([a, s]), Re(a.get(s), e.slice(s.length), t))
1991
+ return (t.push([a, e]), Re(void 0, '', t))
1992
+ },
1993
+ We = (a, e) => {
1994
+ if (e.length === 0 || a == null) return a
1995
+ for (const t of a.keys())
1996
+ if (t !== D && e.startsWith(t)) return We(a.get(t), e.slice(t.length))
1997
+ },
1998
+ De = (a, e) => {
1999
+ const t = e.length
2000
+ e: for (let s = 0; a && s < t; ) {
2001
+ for (const r of a.keys())
2002
+ if (r !== D && e[s] === r[0]) {
2003
+ const i = Math.min(t - s, r.length)
2004
+ let o = 1
2005
+ for (; o < i && e[s + o] === r[o]; ) ++o
2006
+ const l = a.get(r)
2007
+ if (o === r.length) a = l
2008
+ else {
2009
+ const c = new Map()
2010
+ ;(c.set(r.slice(o), l),
2011
+ a.set(e.slice(s, s + o), c),
2012
+ a.delete(r),
2013
+ (a = c))
2014
+ }
2015
+ s += o
2016
+ continue e
2017
+ }
2018
+ const n = new Map()
2019
+ return (a.set(e.slice(s), n), n)
2020
+ }
2021
+ return a
2022
+ },
2023
+ js = (a, e) => {
2024
+ const [t, s] = Re(a, e)
2025
+ if (t !== void 0) {
2026
+ if ((t.delete(D), t.size === 0)) Et(s)
2027
+ else if (t.size === 1) {
2028
+ const [n, r] = t.entries().next().value
2029
+ Tt(s, n, r)
2030
+ }
2031
+ }
2032
+ },
2033
+ Et = (a) => {
2034
+ if (a.length === 0) return
2035
+ const [e, t] = qe(a)
2036
+ if ((e.delete(t), e.size === 0)) Et(a.slice(0, -1))
2037
+ else if (e.size === 1) {
2038
+ const [s, n] = e.entries().next().value
2039
+ s !== D && Tt(a.slice(0, -1), s, n)
2040
+ }
2041
+ },
2042
+ Tt = (a, e, t) => {
2043
+ if (a.length === 0) return
2044
+ const [s, n] = qe(a)
2045
+ ;(s.set(n + e, t), s.delete(n))
2046
+ },
2047
+ qe = (a) => a[a.length - 1],
2048
+ Ue = 'or',
2049
+ It = 'and',
2050
+ Bs = 'and_not'
2051
+ class ue {
2052
+ constructor(e) {
2053
+ if ((e == null ? void 0 : e.fields) == null)
2054
+ throw new Error('MiniSearch: option "fields" must be provided')
2055
+ const t = e.autoVacuum == null || e.autoVacuum === !0 ? Ve : e.autoVacuum
2056
+ ;((this._options = {
2057
+ ...ze,
2058
+ ...e,
2059
+ autoVacuum: t,
2060
+ searchOptions: { ...dt, ...(e.searchOptions || {}) },
2061
+ autoSuggestOptions: { ...Us, ...(e.autoSuggestOptions || {}) },
2062
+ }),
2063
+ (this._index = new X()),
2064
+ (this._documentCount = 0),
2065
+ (this._documentIds = new Map()),
2066
+ (this._idToShortId = new Map()),
2067
+ (this._fieldIds = {}),
2068
+ (this._fieldLength = new Map()),
2069
+ (this._avgFieldLength = []),
2070
+ (this._nextId = 0),
2071
+ (this._storedFields = new Map()),
2072
+ (this._dirtCount = 0),
2073
+ (this._currentVacuum = null),
2074
+ (this._enqueuedVacuum = null),
2075
+ (this._enqueuedVacuumConditions = Je),
2076
+ this.addFields(this._options.fields))
2077
+ }
2078
+ add(e) {
2079
+ const {
2080
+ extractField: t,
2081
+ tokenize: s,
2082
+ processTerm: n,
2083
+ fields: r,
2084
+ idField: i,
2085
+ } = this._options,
2086
+ o = t(e, i)
2087
+ if (o == null)
2088
+ throw new Error(`MiniSearch: document does not have ID field "${i}"`)
2089
+ if (this._idToShortId.has(o))
2090
+ throw new Error(`MiniSearch: duplicate ID ${o}`)
2091
+ const l = this.addDocumentId(o)
2092
+ this.saveStoredFields(l, e)
2093
+ for (const c of r) {
2094
+ const h = t(e, c)
2095
+ if (h == null) continue
2096
+ const m = s(h.toString(), c),
2097
+ f = this._fieldIds[c],
2098
+ b = new Set(m).size
2099
+ this.addFieldLength(l, f, this._documentCount - 1, b)
2100
+ for (const y of m) {
2101
+ const x = n(y, c)
2102
+ if (Array.isArray(x)) for (const w of x) this.addTerm(f, l, w)
2103
+ else x && this.addTerm(f, l, x)
2104
+ }
2105
+ }
2106
+ }
2107
+ addAll(e) {
2108
+ for (const t of e) this.add(t)
2109
+ }
2110
+ addAllAsync(e, t = {}) {
2111
+ const { chunkSize: s = 10 } = t,
2112
+ n = { chunk: [], promise: Promise.resolve() },
2113
+ { chunk: r, promise: i } = e.reduce(
2114
+ ({ chunk: o, promise: l }, c, h) => (
2115
+ o.push(c),
2116
+ (h + 1) % s === 0
2117
+ ? {
2118
+ chunk: [],
2119
+ promise: l
2120
+ .then(() => new Promise((m) => setTimeout(m, 0)))
2121
+ .then(() => this.addAll(o)),
2122
+ }
2123
+ : { chunk: o, promise: l }
2124
+ ),
2125
+ n,
2126
+ )
2127
+ return i.then(() => this.addAll(r))
2128
+ }
2129
+ remove(e) {
2130
+ const {
2131
+ tokenize: t,
2132
+ processTerm: s,
2133
+ extractField: n,
2134
+ fields: r,
2135
+ idField: i,
2136
+ } = this._options,
2137
+ o = n(e, i)
2138
+ if (o == null)
2139
+ throw new Error(`MiniSearch: document does not have ID field "${i}"`)
2140
+ const l = this._idToShortId.get(o)
2141
+ if (l == null)
2142
+ throw new Error(
2143
+ `MiniSearch: cannot remove document with ID ${o}: it is not in the index`,
2144
+ )
2145
+ for (const c of r) {
2146
+ const h = n(e, c)
2147
+ if (h == null) continue
2148
+ const m = t(h.toString(), c),
2149
+ f = this._fieldIds[c],
2150
+ b = new Set(m).size
2151
+ this.removeFieldLength(l, f, this._documentCount, b)
2152
+ for (const y of m) {
2153
+ const x = s(y, c)
2154
+ if (Array.isArray(x)) for (const w of x) this.removeTerm(f, l, w)
2155
+ else x && this.removeTerm(f, l, x)
2156
+ }
2157
+ }
2158
+ ;(this._storedFields.delete(l),
2159
+ this._documentIds.delete(l),
2160
+ this._idToShortId.delete(o),
2161
+ this._fieldLength.delete(l),
2162
+ (this._documentCount -= 1))
2163
+ }
2164
+ removeAll(e) {
2165
+ if (e) for (const t of e) this.remove(t)
2166
+ else {
2167
+ if (arguments.length > 0)
2168
+ throw new Error(
2169
+ 'Expected documents to be present. Omit the argument to remove all documents.',
2170
+ )
2171
+ ;((this._index = new X()),
2172
+ (this._documentCount = 0),
2173
+ (this._documentIds = new Map()),
2174
+ (this._idToShortId = new Map()),
2175
+ (this._fieldLength = new Map()),
2176
+ (this._avgFieldLength = []),
2177
+ (this._storedFields = new Map()),
2178
+ (this._nextId = 0))
2179
+ }
2180
+ }
2181
+ discard(e) {
2182
+ const t = this._idToShortId.get(e)
2183
+ if (t == null)
2184
+ throw new Error(
2185
+ `MiniSearch: cannot discard document with ID ${e}: it is not in the index`,
2186
+ )
2187
+ ;(this._idToShortId.delete(e),
2188
+ this._documentIds.delete(t),
2189
+ this._storedFields.delete(t),
2190
+ (this._fieldLength.get(t) || []).forEach((s, n) => {
2191
+ this.removeFieldLength(t, n, this._documentCount, s)
2192
+ }),
2193
+ this._fieldLength.delete(t),
2194
+ (this._documentCount -= 1),
2195
+ (this._dirtCount += 1),
2196
+ this.maybeAutoVacuum())
2197
+ }
2198
+ maybeAutoVacuum() {
2199
+ if (this._options.autoVacuum === !1) return
2200
+ const {
2201
+ minDirtFactor: e,
2202
+ minDirtCount: t,
2203
+ batchSize: s,
2204
+ batchWait: n,
2205
+ } = this._options.autoVacuum
2206
+ this.conditionalVacuum(
2207
+ { batchSize: s, batchWait: n },
2208
+ { minDirtCount: t, minDirtFactor: e },
2209
+ )
2210
+ }
2211
+ discardAll(e) {
2212
+ const t = this._options.autoVacuum
2213
+ try {
2214
+ this._options.autoVacuum = !1
2215
+ for (const s of e) this.discard(s)
2216
+ } finally {
2217
+ this._options.autoVacuum = t
2218
+ }
2219
+ this.maybeAutoVacuum()
2220
+ }
2221
+ replace(e) {
2222
+ const { idField: t, extractField: s } = this._options,
2223
+ n = s(e, t)
2224
+ ;(this.discard(n), this.add(e))
2225
+ }
2226
+ vacuum(e = {}) {
2227
+ return this.conditionalVacuum(e)
2228
+ }
2229
+ conditionalVacuum(e, t) {
2230
+ return this._currentVacuum
2231
+ ? ((this._enqueuedVacuumConditions = this._enqueuedVacuumConditions && t),
2232
+ this._enqueuedVacuum != null
2233
+ ? this._enqueuedVacuum
2234
+ : ((this._enqueuedVacuum = this._currentVacuum.then(() => {
2235
+ const s = this._enqueuedVacuumConditions
2236
+ return (
2237
+ (this._enqueuedVacuumConditions = Je),
2238
+ this.performVacuuming(e, s)
2239
+ )
2240
+ })),
2241
+ this._enqueuedVacuum))
2242
+ : this.vacuumConditionsMet(t) === !1
2243
+ ? Promise.resolve()
2244
+ : ((this._currentVacuum = this.performVacuuming(e)),
2245
+ this._currentVacuum)
2246
+ }
2247
+ async performVacuuming(e, t) {
2248
+ const s = this._dirtCount
2249
+ if (this.vacuumConditionsMet(t)) {
2250
+ const n = e.batchSize || Ke.batchSize,
2251
+ r = e.batchWait || Ke.batchWait
2252
+ let i = 1
2253
+ for (const [o, l] of this._index) {
2254
+ for (const [c, h] of l)
2255
+ for (const [m] of h)
2256
+ this._documentIds.has(m) ||
2257
+ (h.size <= 1 ? l.delete(c) : h.delete(m))
2258
+ ;(this._index.get(o).size === 0 && this._index.delete(o),
2259
+ i % n === 0 && (await new Promise((c) => setTimeout(c, r))),
2260
+ (i += 1))
2261
+ }
2262
+ this._dirtCount -= s
2263
+ }
2264
+ ;(await null,
2265
+ (this._currentVacuum = this._enqueuedVacuum),
2266
+ (this._enqueuedVacuum = null))
2267
+ }
2268
+ vacuumConditionsMet(e) {
2269
+ if (e == null) return !0
2270
+ let { minDirtCount: t, minDirtFactor: s } = e
2271
+ return (
2272
+ (t = t || Ve.minDirtCount),
2273
+ (s = s || Ve.minDirtFactor),
2274
+ this.dirtCount >= t && this.dirtFactor >= s
2275
+ )
2276
+ }
2277
+ get isVacuuming() {
2278
+ return this._currentVacuum != null
2279
+ }
2280
+ get dirtCount() {
2281
+ return this._dirtCount
2282
+ }
2283
+ get dirtFactor() {
2284
+ return this._dirtCount / (1 + this._documentCount + this._dirtCount)
2285
+ }
2286
+ has(e) {
2287
+ return this._idToShortId.has(e)
2288
+ }
2289
+ getStoredFields(e) {
2290
+ const t = this._idToShortId.get(e)
2291
+ if (t != null) return this._storedFields.get(t)
2292
+ }
2293
+ search(e, t = {}) {
2294
+ const { searchOptions: s } = this._options,
2295
+ n = { ...s, ...t },
2296
+ r = this.executeQuery(e, t),
2297
+ i = []
2298
+ for (const [o, { score: l, terms: c, match: h }] of r) {
2299
+ const m = c.length || 1,
2300
+ f = {
2301
+ id: this._documentIds.get(o),
2302
+ score: l * m,
2303
+ terms: Object.keys(h),
2304
+ queryTerms: c,
2305
+ match: h,
2306
+ }
2307
+ ;(Object.assign(f, this._storedFields.get(o)),
2308
+ (n.filter == null || n.filter(f)) && i.push(f))
2309
+ }
2310
+ return ((e === ue.wildcard && n.boostDocument == null) || i.sort(ft), i)
2311
+ }
2312
+ autoSuggest(e, t = {}) {
2313
+ t = { ...this._options.autoSuggestOptions, ...t }
2314
+ const s = new Map()
2315
+ for (const { score: r, terms: i } of this.search(e, t)) {
2316
+ const o = i.join(' '),
2317
+ l = s.get(o)
2318
+ l != null
2319
+ ? ((l.score += r), (l.count += 1))
2320
+ : s.set(o, { score: r, terms: i, count: 1 })
2321
+ }
2322
+ const n = []
2323
+ for (const [r, { score: i, terms: o, count: l }] of s)
2324
+ n.push({ suggestion: r, terms: o, score: i / l })
2325
+ return (n.sort(ft), n)
2326
+ }
2327
+ get documentCount() {
2328
+ return this._documentCount
2329
+ }
2330
+ get termCount() {
2331
+ return this._index.size
2332
+ }
2333
+ static loadJSON(e, t) {
2334
+ if (t == null)
2335
+ throw new Error(
2336
+ 'MiniSearch: loadJSON should be given the same options used when serializing the index',
2337
+ )
2338
+ return this.loadJS(JSON.parse(e), t)
2339
+ }
2340
+ static async loadJSONAsync(e, t) {
2341
+ if (t == null)
2342
+ throw new Error(
2343
+ 'MiniSearch: loadJSON should be given the same options used when serializing the index',
2344
+ )
2345
+ return this.loadJSAsync(JSON.parse(e), t)
2346
+ }
2347
+ static getDefault(e) {
2348
+ if (ze.hasOwnProperty(e)) return Pe(ze, e)
2349
+ throw new Error(`MiniSearch: unknown option "${e}"`)
2350
+ }
2351
+ static loadJS(e, t) {
2352
+ const {
2353
+ index: s,
2354
+ documentIds: n,
2355
+ fieldLength: r,
2356
+ storedFields: i,
2357
+ serializationVersion: o,
2358
+ } = e,
2359
+ l = this.instantiateMiniSearch(e, t)
2360
+ ;((l._documentIds = Te(n)),
2361
+ (l._fieldLength = Te(r)),
2362
+ (l._storedFields = Te(i)))
2363
+ for (const [c, h] of l._documentIds) l._idToShortId.set(h, c)
2364
+ for (const [c, h] of s) {
2365
+ const m = new Map()
2366
+ for (const f of Object.keys(h)) {
2367
+ let b = h[f]
2368
+ ;(o === 1 && (b = b.ds), m.set(parseInt(f, 10), Te(b)))
2369
+ }
2370
+ l._index.set(c, m)
2371
+ }
2372
+ return l
2373
+ }
2374
+ static async loadJSAsync(e, t) {
2375
+ const {
2376
+ index: s,
2377
+ documentIds: n,
2378
+ fieldLength: r,
2379
+ storedFields: i,
2380
+ serializationVersion: o,
2381
+ } = e,
2382
+ l = this.instantiateMiniSearch(e, t)
2383
+ ;((l._documentIds = await Ie(n)),
2384
+ (l._fieldLength = await Ie(r)),
2385
+ (l._storedFields = await Ie(i)))
2386
+ for (const [h, m] of l._documentIds) l._idToShortId.set(m, h)
2387
+ let c = 0
2388
+ for (const [h, m] of s) {
2389
+ const f = new Map()
2390
+ for (const b of Object.keys(m)) {
2391
+ let y = m[b]
2392
+ ;(o === 1 && (y = y.ds), f.set(parseInt(b, 10), await Ie(y)))
2393
+ }
2394
+ ;(++c % 1e3 === 0 && (await kt(0)), l._index.set(h, f))
2395
+ }
2396
+ return l
2397
+ }
2398
+ static instantiateMiniSearch(e, t) {
2399
+ const {
2400
+ documentCount: s,
2401
+ nextId: n,
2402
+ fieldIds: r,
2403
+ averageFieldLength: i,
2404
+ dirtCount: o,
2405
+ serializationVersion: l,
2406
+ } = e
2407
+ if (l !== 1 && l !== 2)
2408
+ throw new Error(
2409
+ 'MiniSearch: cannot deserialize an index created with an incompatible version',
2410
+ )
2411
+ const c = new ue(t)
2412
+ return (
2413
+ (c._documentCount = s),
2414
+ (c._nextId = n),
2415
+ (c._idToShortId = new Map()),
2416
+ (c._fieldIds = r),
2417
+ (c._avgFieldLength = i),
2418
+ (c._dirtCount = o || 0),
2419
+ (c._index = new X()),
2420
+ c
2421
+ )
2422
+ }
2423
+ executeQuery(e, t = {}) {
2424
+ if (e === ue.wildcard) return this.executeWildcardQuery(t)
2425
+ if (typeof e != 'string') {
2426
+ const f = { ...t, ...e, queries: void 0 },
2427
+ b = e.queries.map((y) => this.executeQuery(y, f))
2428
+ return this.combineResults(b, f.combineWith)
2429
+ }
2430
+ const { tokenize: s, processTerm: n, searchOptions: r } = this._options,
2431
+ i = { tokenize: s, processTerm: n, ...r, ...t },
2432
+ { tokenize: o, processTerm: l } = i,
2433
+ m = o(e)
2434
+ .flatMap((f) => l(f))
2435
+ .filter((f) => !!f)
2436
+ .map(qs(i))
2437
+ .map((f) => this.executeQuerySpec(f, i))
2438
+ return this.combineResults(m, i.combineWith)
2439
+ }
2440
+ executeQuerySpec(e, t) {
2441
+ const s = { ...this._options.searchOptions, ...t },
2442
+ n = (s.fields || this._options.fields).reduce(
2443
+ (x, w) => ({ ...x, [w]: Pe(s.boost, w) || 1 }),
2444
+ {},
2445
+ ),
2446
+ { boostDocument: r, weights: i, maxFuzzy: o, bm25: l } = s,
2447
+ { fuzzy: c, prefix: h } = { ...dt.weights, ...i },
2448
+ m = this._index.get(e.term),
2449
+ f = this.termResults(e.term, e.term, 1, e.termBoost, m, n, r, l)
2450
+ let b, y
2451
+ if ((e.prefix && (b = this._index.atPrefix(e.term)), e.fuzzy)) {
2452
+ const x = e.fuzzy === !0 ? 0.2 : e.fuzzy,
2453
+ w = x < 1 ? Math.min(o, Math.round(e.term.length * x)) : x
2454
+ w && (y = this._index.fuzzyGet(e.term, w))
2455
+ }
2456
+ if (b)
2457
+ for (const [x, w] of b) {
2458
+ const C = x.length - e.term.length
2459
+ if (!C) continue
2460
+ y == null || y.delete(x)
2461
+ const A = (h * x.length) / (x.length + 0.3 * C)
2462
+ this.termResults(e.term, x, A, e.termBoost, w, n, r, l, f)
2463
+ }
2464
+ if (y)
2465
+ for (const x of y.keys()) {
2466
+ const [w, C] = y.get(x)
2467
+ if (!C) continue
2468
+ const A = (c * x.length) / (x.length + C)
2469
+ this.termResults(e.term, x, A, e.termBoost, w, n, r, l, f)
2470
+ }
2471
+ return f
2472
+ }
2473
+ executeWildcardQuery(e) {
2474
+ const t = new Map(),
2475
+ s = { ...this._options.searchOptions, ...e }
2476
+ for (const [n, r] of this._documentIds) {
2477
+ const i = s.boostDocument
2478
+ ? s.boostDocument(r, '', this._storedFields.get(n))
2479
+ : 1
2480
+ t.set(n, { score: i, terms: [], match: {} })
2481
+ }
2482
+ return t
2483
+ }
2484
+ combineResults(e, t = Ue) {
2485
+ if (e.length === 0) return new Map()
2486
+ const s = t.toLowerCase(),
2487
+ n = Ws[s]
2488
+ if (!n) throw new Error(`Invalid combination operator: ${t}`)
2489
+ return e.reduce(n) || new Map()
2490
+ }
2491
+ toJSON() {
2492
+ const e = []
2493
+ for (const [t, s] of this._index) {
2494
+ const n = {}
2495
+ for (const [r, i] of s) n[r] = Object.fromEntries(i)
2496
+ e.push([t, n])
2497
+ }
2498
+ return {
2499
+ documentCount: this._documentCount,
2500
+ nextId: this._nextId,
2501
+ documentIds: Object.fromEntries(this._documentIds),
2502
+ fieldIds: this._fieldIds,
2503
+ fieldLength: Object.fromEntries(this._fieldLength),
2504
+ averageFieldLength: this._avgFieldLength,
2505
+ storedFields: Object.fromEntries(this._storedFields),
2506
+ dirtCount: this._dirtCount,
2507
+ index: e,
2508
+ serializationVersion: 2,
2509
+ }
2510
+ }
2511
+ termResults(e, t, s, n, r, i, o, l, c = new Map()) {
2512
+ if (r == null) return c
2513
+ for (const h of Object.keys(i)) {
2514
+ const m = i[h],
2515
+ f = this._fieldIds[h],
2516
+ b = r.get(f)
2517
+ if (b == null) continue
2518
+ let y = b.size
2519
+ const x = this._avgFieldLength[f]
2520
+ for (const w of b.keys()) {
2521
+ if (!this._documentIds.has(w)) {
2522
+ ;(this.removeTerm(f, w, t), (y -= 1))
2523
+ continue
2524
+ }
2525
+ const C = o
2526
+ ? o(this._documentIds.get(w), t, this._storedFields.get(w))
2527
+ : 1
2528
+ if (!C) continue
2529
+ const A = b.get(w),
2530
+ J = this._fieldLength.get(w)[f],
2531
+ Q = Js(A, y, this._documentCount, J, x, l),
2532
+ W = s * n * m * C * Q,
2533
+ $ = c.get(w)
2534
+ if ($) {
2535
+ ;(($.score += W), Gs($.terms, e))
2536
+ const j = Pe($.match, t)
2537
+ j ? j.push(h) : ($.match[t] = [h])
2538
+ } else c.set(w, { score: W, terms: [e], match: { [t]: [h] } })
2539
+ }
2540
+ }
2541
+ return c
2542
+ }
2543
+ addTerm(e, t, s) {
2544
+ const n = this._index.fetch(s, pt)
2545
+ let r = n.get(e)
2546
+ if (r == null) ((r = new Map()), r.set(t, 1), n.set(e, r))
2547
+ else {
2548
+ const i = r.get(t)
2549
+ r.set(t, (i || 0) + 1)
2550
+ }
2551
+ }
2552
+ removeTerm(e, t, s) {
2553
+ if (!this._index.has(s)) {
2554
+ this.warnDocumentChanged(t, e, s)
2555
+ return
2556
+ }
2557
+ const n = this._index.fetch(s, pt),
2558
+ r = n.get(e)
2559
+ ;(r == null || r.get(t) == null
2560
+ ? this.warnDocumentChanged(t, e, s)
2561
+ : r.get(t) <= 1
2562
+ ? r.size <= 1
2563
+ ? n.delete(e)
2564
+ : r.delete(t)
2565
+ : r.set(t, r.get(t) - 1),
2566
+ this._index.get(s).size === 0 && this._index.delete(s))
2567
+ }
2568
+ warnDocumentChanged(e, t, s) {
2569
+ for (const n of Object.keys(this._fieldIds))
2570
+ if (this._fieldIds[n] === t) {
2571
+ this._options.logger(
2572
+ 'warn',
2573
+ `MiniSearch: document with ID ${this._documentIds.get(e)} has changed before removal: term "${s}" was not present in field "${n}". Removing a document after it has changed can corrupt the index!`,
2574
+ 'version_conflict',
2575
+ )
2576
+ return
2577
+ }
2578
+ }
2579
+ addDocumentId(e) {
2580
+ const t = this._nextId
2581
+ return (
2582
+ this._idToShortId.set(e, t),
2583
+ this._documentIds.set(t, e),
2584
+ (this._documentCount += 1),
2585
+ (this._nextId += 1),
2586
+ t
2587
+ )
2588
+ }
2589
+ addFields(e) {
2590
+ for (let t = 0; t < e.length; t++) this._fieldIds[e[t]] = t
2591
+ }
2592
+ addFieldLength(e, t, s, n) {
2593
+ let r = this._fieldLength.get(e)
2594
+ ;(r == null && this._fieldLength.set(e, (r = [])), (r[t] = n))
2595
+ const o = (this._avgFieldLength[t] || 0) * s + n
2596
+ this._avgFieldLength[t] = o / (s + 1)
2597
+ }
2598
+ removeFieldLength(e, t, s, n) {
2599
+ if (s === 1) {
2600
+ this._avgFieldLength[t] = 0
2601
+ return
2602
+ }
2603
+ const r = this._avgFieldLength[t] * s - n
2604
+ this._avgFieldLength[t] = r / (s - 1)
2605
+ }
2606
+ saveStoredFields(e, t) {
2607
+ const { storeFields: s, extractField: n } = this._options
2608
+ if (s == null || s.length === 0) return
2609
+ let r = this._storedFields.get(e)
2610
+ r == null && this._storedFields.set(e, (r = {}))
2611
+ for (const i of s) {
2612
+ const o = n(t, i)
2613
+ o !== void 0 && (r[i] = o)
2614
+ }
2615
+ }
2616
+ }
2617
+ ue.wildcard = Symbol('*')
2618
+ const Pe = (a, e) =>
2619
+ Object.prototype.hasOwnProperty.call(a, e) ? a[e] : void 0,
2620
+ Ws = {
2621
+ [Ue]: (a, e) => {
2622
+ for (const t of e.keys()) {
2623
+ const s = a.get(t)
2624
+ if (s == null) a.set(t, e.get(t))
2625
+ else {
2626
+ const { score: n, terms: r, match: i } = e.get(t)
2627
+ ;((s.score = s.score + n),
2628
+ (s.match = Object.assign(s.match, i)),
2629
+ ht(s.terms, r))
2630
+ }
2631
+ }
2632
+ return a
2633
+ },
2634
+ [It]: (a, e) => {
2635
+ const t = new Map()
2636
+ for (const s of e.keys()) {
2637
+ const n = a.get(s)
2638
+ if (n == null) continue
2639
+ const { score: r, terms: i, match: o } = e.get(s)
2640
+ ;(ht(n.terms, i),
2641
+ t.set(s, {
2642
+ score: n.score + r,
2643
+ terms: n.terms,
2644
+ match: Object.assign(n.match, o),
2645
+ }))
2646
+ }
2647
+ return t
2648
+ },
2649
+ [Bs]: (a, e) => {
2650
+ for (const t of e.keys()) a.delete(t)
2651
+ return a
2652
+ },
2653
+ },
2654
+ Ks = { k: 1.2, b: 0.7, d: 0.5 },
2655
+ Js = (a, e, t, s, n, r) => {
2656
+ const { k: i, b: o, d: l } = r
2657
+ return (
2658
+ Math.log(1 + (t - e + 0.5) / (e + 0.5)) *
2659
+ (l + (a * (i + 1)) / (a + i * (1 - o + (o * s) / n)))
2660
+ )
2661
+ },
2662
+ qs = (a) => (e, t, s) => {
2663
+ const n = typeof a.fuzzy == 'function' ? a.fuzzy(e, t, s) : a.fuzzy || !1,
2664
+ r = typeof a.prefix == 'function' ? a.prefix(e, t, s) : a.prefix === !0,
2665
+ i = typeof a.boostTerm == 'function' ? a.boostTerm(e, t, s) : 1
2666
+ return { term: e, fuzzy: n, prefix: r, termBoost: i }
2667
+ },
2668
+ ze = {
2669
+ idField: 'id',
2670
+ extractField: (a, e) => a[e],
2671
+ tokenize: (a) => a.split(Hs),
2672
+ processTerm: (a) => a.toLowerCase(),
2673
+ fields: void 0,
2674
+ searchOptions: void 0,
2675
+ storeFields: [],
2676
+ logger: (a, e) => {
2677
+ typeof (console == null ? void 0 : console[a]) == 'function' &&
2678
+ console[a](e)
2679
+ },
2680
+ autoVacuum: !0,
2681
+ },
2682
+ dt = {
2683
+ combineWith: Ue,
2684
+ prefix: !1,
2685
+ fuzzy: !1,
2686
+ maxFuzzy: 6,
2687
+ boost: {},
2688
+ weights: { fuzzy: 0.45, prefix: 0.375 },
2689
+ bm25: Ks,
2690
+ },
2691
+ Us = { combineWith: It, prefix: (a, e, t) => e === t.length - 1 },
2692
+ Ke = { batchSize: 1e3, batchWait: 10 },
2693
+ Je = { minDirtFactor: 0.1, minDirtCount: 20 },
2694
+ Ve = { ...Ke, ...Je },
2695
+ Gs = (a, e) => {
2696
+ a.includes(e) || a.push(e)
2697
+ },
2698
+ ht = (a, e) => {
2699
+ for (const t of e) a.includes(t) || a.push(t)
2700
+ },
2701
+ ft = ({ score: a }, { score: e }) => e - a,
2702
+ pt = () => new Map(),
2703
+ Te = (a) => {
2704
+ const e = new Map()
2705
+ for (const t of Object.keys(a)) e.set(parseInt(t, 10), a[t])
2706
+ return e
2707
+ },
2708
+ Ie = async (a) => {
2709
+ const e = new Map()
2710
+ let t = 0
2711
+ for (const s of Object.keys(a))
2712
+ (e.set(parseInt(s, 10), a[s]), ++t % 1e3 === 0 && (await kt(0)))
2713
+ return e
2714
+ },
2715
+ kt = (a) => new Promise((e) => setTimeout(e, a)),
2716
+ Hs = /[\n\r\p{Z}\p{P}]+/u
2717
+ class Qs {
2718
+ constructor(e = 10) {
2719
+ Ce(this, 'max')
2720
+ Ce(this, 'cache')
2721
+ ;((this.max = e), (this.cache = new Map()))
2722
+ }
2723
+ get(e) {
2724
+ let t = this.cache.get(e)
2725
+ return (t !== void 0 && (this.cache.delete(e), this.cache.set(e, t)), t)
2726
+ }
2727
+ set(e, t) {
2728
+ ;(this.cache.has(e)
2729
+ ? this.cache.delete(e)
2730
+ : this.cache.size === this.max && this.cache.delete(this.first()),
2731
+ this.cache.set(e, t))
2732
+ }
2733
+ first() {
2734
+ return this.cache.keys().next().value
2735
+ }
2736
+ clear() {
2737
+ this.cache.clear()
2738
+ }
2739
+ }
2740
+ const Ys = ['aria-owns'],
2741
+ Zs = { class: 'shell' },
2742
+ Xs = ['title'],
2743
+ en = { class: 'search-actions before' },
2744
+ tn = ['title'],
2745
+ sn = ['aria-activedescendant', 'aria-controls', 'placeholder'],
2746
+ nn = { class: 'search-actions' },
2747
+ rn = ['title'],
2748
+ an = ['disabled', 'title'],
2749
+ on = ['id', 'role', 'aria-labelledby'],
2750
+ ln = ['id', 'aria-selected'],
2751
+ cn = ['href', 'aria-label', 'onMouseenter', 'onFocusin', 'data-index'],
2752
+ un = { class: 'titles' },
2753
+ dn = ['innerHTML'],
2754
+ hn = { class: 'title main' },
2755
+ fn = ['innerHTML'],
2756
+ pn = { key: 0, class: 'excerpt-wrapper' },
2757
+ vn = { key: 0, class: 'excerpt', inert: '' },
2758
+ mn = ['innerHTML'],
2759
+ gn = { key: 0, class: 'no-results' },
2760
+ bn = { class: 'search-keyboard-shortcuts' },
2761
+ yn = ['aria-label'],
2762
+ wn = ['aria-label'],
2763
+ xn = ['aria-label'],
2764
+ _n = ['aria-label'],
2765
+ Sn = Lt({
2766
+ __name: 'VPLocalSearchBox',
2767
+ emits: ['close'],
2768
+ setup(a, { emit: e }) {
2769
+ var S, R
2770
+ const t = e,
2771
+ s = le(),
2772
+ n = le(),
2773
+ r = le(is),
2774
+ i = ss(),
2775
+ { activate: o } = Ds(s, {
2776
+ immediate: !0,
2777
+ allowOutsideClick: !0,
2778
+ clickOutsideDeactivates: !0,
2779
+ escapeDeactivates: !0,
2780
+ }),
2781
+ { localeIndex: l, theme: c } = i,
2782
+ h = tt(async () => {
2783
+ var v, p, I, O, P, z, V, k, K
2784
+ return rt(
2785
+ ue.loadJSON(
2786
+ (I = await ((p = (v = r.value)[l.value]) == null
2787
+ ? void 0
2788
+ : p.call(v))) == null
2789
+ ? void 0
2790
+ : I.default,
2791
+ {
2792
+ fields: ['title', 'titles', 'text'],
2793
+ storeFields: ['title', 'titles'],
2794
+ searchOptions: {
2795
+ fuzzy: 0.2,
2796
+ prefix: !0,
2797
+ boost: { title: 4, text: 2, titles: 1 },
2798
+ ...(((O = c.value.search) == null ? void 0 : O.provider) ===
2799
+ 'local' &&
2800
+ ((z =
2801
+ (P = c.value.search.options) == null
2802
+ ? void 0
2803
+ : P.miniSearch) == null
2804
+ ? void 0
2805
+ : z.searchOptions)),
2806
+ },
2807
+ ...(((V = c.value.search) == null ? void 0 : V.provider) ===
2808
+ 'local' &&
2809
+ ((K =
2810
+ (k = c.value.search.options) == null
2811
+ ? void 0
2812
+ : k.miniSearch) == null
2813
+ ? void 0
2814
+ : K.options)),
2815
+ },
2816
+ ),
2817
+ )
2818
+ }),
2819
+ f = ge(() => {
2820
+ var v, p
2821
+ return (
2822
+ ((v = c.value.search) == null ? void 0 : v.provider) === 'local' &&
2823
+ ((p = c.value.search.options) == null
2824
+ ? void 0
2825
+ : p.disableQueryPersistence) === !0
2826
+ )
2827
+ }).value
2828
+ ? he('')
2829
+ : Dt('vitepress:local-search-filter', ''),
2830
+ b = Pt(
2831
+ 'vitepress:local-search-detailed-list',
2832
+ ((S = c.value.search) == null ? void 0 : S.provider) === 'local' &&
2833
+ ((R = c.value.search.options) == null ? void 0 : R.detailedView) ===
2834
+ !0,
2835
+ ),
2836
+ y = ge(() => {
2837
+ var v, p, I
2838
+ return (
2839
+ ((v = c.value.search) == null ? void 0 : v.provider) === 'local' &&
2840
+ (((p = c.value.search.options) == null
2841
+ ? void 0
2842
+ : p.disableDetailedView) === !0 ||
2843
+ ((I = c.value.search.options) == null
2844
+ ? void 0
2845
+ : I.detailedView) === !1)
2846
+ )
2847
+ }),
2848
+ x = ge(() => {
2849
+ var p, I, O, P, z, V, k
2850
+ const v =
2851
+ ((p = c.value.search) == null ? void 0 : p.options) ??
2852
+ c.value.algolia
2853
+ return (
2854
+ ((z =
2855
+ (P =
2856
+ (O =
2857
+ (I = v == null ? void 0 : v.locales) == null
2858
+ ? void 0
2859
+ : I[l.value]) == null
2860
+ ? void 0
2861
+ : O.translations) == null
2862
+ ? void 0
2863
+ : P.button) == null
2864
+ ? void 0
2865
+ : z.buttonText) ||
2866
+ ((k =
2867
+ (V = v == null ? void 0 : v.translations) == null
2868
+ ? void 0
2869
+ : V.button) == null
2870
+ ? void 0
2871
+ : k.buttonText) ||
2872
+ 'Search'
2873
+ )
2874
+ })
2875
+ zt(() => {
2876
+ y.value && (b.value = !1)
2877
+ })
2878
+ const w = le([]),
2879
+ C = he(!1)
2880
+ $e(f, () => {
2881
+ C.value = !1
2882
+ })
2883
+ const A = tt(async () => {
2884
+ if (n.value) return rt(new zs(n.value))
2885
+ }, null),
2886
+ J = new Qs(16)
2887
+ Vt(
2888
+ () => [h.value, f.value, b.value],
2889
+ async ([v, p, I], O, P) => {
2890
+ var ee, we, Ge, He
2891
+ ;(O == null ? void 0 : O[0]) !== v && J.clear()
2892
+ let z = !1
2893
+ if (
2894
+ (P(() => {
2895
+ z = !0
2896
+ }),
2897
+ !v)
2898
+ )
2899
+ return
2900
+ ;((w.value = v.search(p).slice(0, 16)), (C.value = !0))
2901
+ const V = I ? await Promise.all(w.value.map((B) => Q(B.id))) : []
2902
+ if (z) return
2903
+ for (const { id: B, mod: te } of V) {
2904
+ const se = B.slice(0, B.indexOf('#'))
2905
+ let Y = J.get(se)
2906
+ if (Y) continue
2907
+ ;((Y = new Map()), J.set(se, Y))
2908
+ const G = te.default ?? te
2909
+ if ((G != null && G.render) || (G != null && G.setup)) {
2910
+ const ne = Yt(G)
2911
+ ;((ne.config.warnHandler = () => {}),
2912
+ ne.provide(Zt, i),
2913
+ Object.defineProperties(ne.config.globalProperties, {
2914
+ $frontmatter: {
2915
+ get() {
2916
+ return i.frontmatter.value
2917
+ },
2918
+ },
2919
+ $params: {
2920
+ get() {
2921
+ return i.page.value.params
2922
+ },
2923
+ },
2924
+ }))
2925
+ const Qe = document.createElement('div')
2926
+ ;(ne.mount(Qe),
2927
+ Qe.querySelectorAll('h1, h2, h3, h4, h5, h6').forEach((de) => {
2928
+ var Xe
2929
+ const xe =
2930
+ (Xe = de.querySelector('a')) == null
2931
+ ? void 0
2932
+ : Xe.getAttribute('href'),
2933
+ Ye =
2934
+ (xe == null ? void 0 : xe.startsWith('#')) && xe.slice(1)
2935
+ if (!Ye) return
2936
+ let Ze = ''
2937
+ for (
2938
+ ;
2939
+ (de = de.nextElementSibling) &&
2940
+ !/^h[1-6]$/i.test(de.tagName);
2941
+
2942
+ )
2943
+ Ze += de.outerHTML
2944
+ Y.set(Ye, Ze)
2945
+ }),
2946
+ ne.unmount())
2947
+ }
2948
+ if (z) return
2949
+ }
2950
+ const k = new Set()
2951
+ if (
2952
+ ((w.value = w.value.map((B) => {
2953
+ const [te, se] = B.id.split('#'),
2954
+ Y = J.get(te),
2955
+ G = (Y == null ? void 0 : Y.get(se)) ?? ''
2956
+ for (const ne in B.match) k.add(ne)
2957
+ return { ...B, text: G }
2958
+ })),
2959
+ await fe(),
2960
+ z)
2961
+ )
2962
+ return
2963
+ await new Promise((B) => {
2964
+ var te
2965
+ ;(te = A.value) == null ||
2966
+ te.unmark({
2967
+ done: () => {
2968
+ var se
2969
+ ;(se = A.value) == null || se.markRegExp(T(k), { done: B })
2970
+ },
2971
+ })
2972
+ })
2973
+ const K =
2974
+ ((ee = s.value) == null
2975
+ ? void 0
2976
+ : ee.querySelectorAll('.result .excerpt')) ?? []
2977
+ for (const B of K)
2978
+ (we = B.querySelector('mark[data-markjs="true"]')) == null ||
2979
+ we.scrollIntoView({ block: 'center' })
2980
+ ;(He = (Ge = n.value) == null ? void 0 : Ge.firstElementChild) ==
2981
+ null || He.scrollIntoView({ block: 'start' })
2982
+ },
2983
+ { debounce: 200, immediate: !0 },
2984
+ )
2985
+ async function Q(v) {
2986
+ const p = Xt(v.slice(0, v.indexOf('#')))
2987
+ try {
2988
+ if (!p) throw new Error(`Cannot find file for id: ${v}`)
2989
+ return { id: v, mod: await import(p) }
2990
+ } catch (I) {
2991
+ return (console.error(I), { id: v, mod: {} })
2992
+ }
2993
+ }
2994
+ const W = he(),
2995
+ $ = ge(() => {
2996
+ var v
2997
+ return ((v = f.value) == null ? void 0 : v.length) <= 0
2998
+ })
2999
+ function j(v = !0) {
3000
+ var p, I
3001
+ ;((p = W.value) == null || p.focus(),
3002
+ v && ((I = W.value) == null || I.select()))
3003
+ }
3004
+ Ae(() => {
3005
+ j()
3006
+ })
3007
+ function ye(v) {
3008
+ v.pointerType === 'mouse' && j()
3009
+ }
3010
+ const M = he(-1),
3011
+ q = he(!0)
3012
+ $e(w, (v) => {
3013
+ ;((M.value = v.length ? 0 : -1), U())
3014
+ })
3015
+ function U() {
3016
+ fe(() => {
3017
+ const v = document.querySelector('.result.selected')
3018
+ v == null || v.scrollIntoView({ block: 'nearest' })
3019
+ })
3020
+ }
3021
+ ;(_e('ArrowUp', (v) => {
3022
+ ;(v.preventDefault(),
3023
+ M.value--,
3024
+ M.value < 0 && (M.value = w.value.length - 1),
3025
+ (q.value = !0),
3026
+ U())
3027
+ }),
3028
+ _e('ArrowDown', (v) => {
3029
+ ;(v.preventDefault(),
3030
+ M.value++,
3031
+ M.value >= w.value.length && (M.value = 0),
3032
+ (q.value = !0),
3033
+ U())
3034
+ }))
3035
+ const N = $t()
3036
+ ;(_e('Enter', (v) => {
3037
+ if (
3038
+ v.isComposing ||
3039
+ (v.target instanceof HTMLButtonElement && v.target.type !== 'submit')
3040
+ )
3041
+ return
3042
+ const p = w.value[M.value]
3043
+ if (v.target instanceof HTMLInputElement && !p) {
3044
+ v.preventDefault()
3045
+ return
3046
+ }
3047
+ p && (N.go(p.id), t('close'))
3048
+ }),
3049
+ _e('Escape', () => {
3050
+ t('close')
3051
+ }))
3052
+ const d = ns({
3053
+ modal: {
3054
+ displayDetails: 'Display detailed list',
3055
+ resetButtonTitle: 'Reset search',
3056
+ backButtonTitle: 'Close search',
3057
+ noResultsText: 'No results for',
3058
+ footer: {
3059
+ selectText: 'to select',
3060
+ selectKeyAriaLabel: 'enter',
3061
+ navigateText: 'to navigate',
3062
+ navigateUpKeyAriaLabel: 'up arrow',
3063
+ navigateDownKeyAriaLabel: 'down arrow',
3064
+ closeText: 'to close',
3065
+ closeKeyAriaLabel: 'escape',
3066
+ },
3067
+ },
3068
+ })
3069
+ ;(Ae(() => {
3070
+ window.history.pushState(null, '', null)
3071
+ }),
3072
+ jt('popstate', (v) => {
3073
+ ;(v.preventDefault(), t('close'))
3074
+ }))
3075
+ const g = Bt(Wt ? document.body : null)
3076
+ ;(Ae(() => {
3077
+ fe(() => {
3078
+ ;((g.value = !0), fe().then(() => o()))
3079
+ })
3080
+ }),
3081
+ Kt(() => {
3082
+ g.value = !1
3083
+ }))
3084
+ function E() {
3085
+ ;((f.value = ''), fe().then(() => j(!1)))
3086
+ }
3087
+ function T(v) {
3088
+ return new RegExp(
3089
+ [...v]
3090
+ .sort((p, I) => I.length - p.length)
3091
+ .map((p) => `(${es(p)})`)
3092
+ .join('|'),
3093
+ 'gi',
3094
+ )
3095
+ }
3096
+ function F(v) {
3097
+ var O
3098
+ if (!q.value) return
3099
+ const p = (O = v.target) == null ? void 0 : O.closest('.result'),
3100
+ I = Number.parseInt(p == null ? void 0 : p.dataset.index)
3101
+ ;(I >= 0 && I !== M.value && (M.value = I), (q.value = !1))
3102
+ }
3103
+ return (v, p) => {
3104
+ var I, O, P, z, V
3105
+ return (
3106
+ H(),
3107
+ Jt(Qt, { to: 'body' }, [
3108
+ _(
3109
+ 'div',
3110
+ {
3111
+ ref_key: 'el',
3112
+ ref: s,
3113
+ role: 'button',
3114
+ 'aria-owns':
3115
+ (I = w.value) != null && I.length
3116
+ ? 'localsearch-list'
3117
+ : void 0,
3118
+ 'aria-expanded': 'true',
3119
+ 'aria-haspopup': 'listbox',
3120
+ 'aria-labelledby': 'localsearch-label',
3121
+ class: 'VPLocalSearchBox',
3122
+ },
3123
+ [
3124
+ _('div', {
3125
+ class: 'backdrop',
3126
+ onClick: p[0] || (p[0] = (k) => v.$emit('close')),
3127
+ }),
3128
+ _('div', Zs, [
3129
+ _(
3130
+ 'form',
3131
+ {
3132
+ class: 'search-bar',
3133
+ onPointerup: p[4] || (p[4] = (k) => ye(k)),
3134
+ onSubmit: p[5] || (p[5] = qt(() => {}, ['prevent'])),
3135
+ },
3136
+ [
3137
+ _(
3138
+ 'label',
3139
+ {
3140
+ title: x.value,
3141
+ id: 'localsearch-label',
3142
+ for: 'localsearch-input',
3143
+ },
3144
+ [
3145
+ ...(p[7] ||
3146
+ (p[7] = [
3147
+ _(
3148
+ 'span',
3149
+ {
3150
+ 'aria-hidden': 'true',
3151
+ class:
3152
+ 'vpi-search search-icon local-search-icon',
3153
+ },
3154
+ null,
3155
+ -1,
3156
+ ),
3157
+ ])),
3158
+ ],
3159
+ 8,
3160
+ Xs,
3161
+ ),
3162
+ _('div', en, [
3163
+ _(
3164
+ 'button',
3165
+ {
3166
+ class: 'back-button',
3167
+ title: L(d)('modal.backButtonTitle'),
3168
+ onClick: p[1] || (p[1] = (k) => v.$emit('close')),
3169
+ },
3170
+ [
3171
+ ...(p[8] ||
3172
+ (p[8] = [
3173
+ _(
3174
+ 'span',
3175
+ { class: 'vpi-arrow-left local-search-icon' },
3176
+ null,
3177
+ -1,
3178
+ ),
3179
+ ])),
3180
+ ],
3181
+ 8,
3182
+ tn,
3183
+ ),
3184
+ ]),
3185
+ Ut(
3186
+ _(
3187
+ 'input',
3188
+ {
3189
+ ref_key: 'searchInput',
3190
+ ref: W,
3191
+ 'onUpdate:modelValue':
3192
+ p[2] ||
3193
+ (p[2] = (k) => (Ht(f) ? (f.value = k) : null)),
3194
+ 'aria-activedescendant':
3195
+ M.value > -1
3196
+ ? 'localsearch-item-' + M.value
3197
+ : void 0,
3198
+ 'aria-autocomplete': 'both',
3199
+ 'aria-controls':
3200
+ (O = w.value) != null && O.length
3201
+ ? 'localsearch-list'
3202
+ : void 0,
3203
+ 'aria-labelledby': 'localsearch-label',
3204
+ autocapitalize: 'off',
3205
+ autocomplete: 'off',
3206
+ autocorrect: 'off',
3207
+ class: 'search-input',
3208
+ id: 'localsearch-input',
3209
+ enterkeyhint: 'go',
3210
+ maxlength: '64',
3211
+ placeholder: x.value,
3212
+ spellcheck: 'false',
3213
+ type: 'search',
3214
+ },
3215
+ null,
3216
+ 8,
3217
+ sn,
3218
+ ),
3219
+ [[Gt, L(f)]],
3220
+ ),
3221
+ _('div', nn, [
3222
+ y.value
3223
+ ? Se('', !0)
3224
+ : (H(),
3225
+ Z(
3226
+ 'button',
3227
+ {
3228
+ key: 0,
3229
+ class: st([
3230
+ 'toggle-layout-button',
3231
+ { 'detailed-list': L(b) },
3232
+ ]),
3233
+ type: 'button',
3234
+ title: L(d)('modal.displayDetails'),
3235
+ onClick:
3236
+ p[3] ||
3237
+ (p[3] = (k) =>
3238
+ M.value > -1 && (b.value = !L(b))),
3239
+ },
3240
+ [
3241
+ ...(p[9] ||
3242
+ (p[9] = [
3243
+ _(
3244
+ 'span',
3245
+ {
3246
+ class:
3247
+ 'vpi-layout-list local-search-icon',
3248
+ },
3249
+ null,
3250
+ -1,
3251
+ ),
3252
+ ])),
3253
+ ],
3254
+ 10,
3255
+ rn,
3256
+ )),
3257
+ _(
3258
+ 'button',
3259
+ {
3260
+ class: 'clear-button',
3261
+ type: 'reset',
3262
+ disabled: $.value,
3263
+ title: L(d)('modal.resetButtonTitle'),
3264
+ onClick: E,
3265
+ },
3266
+ [
3267
+ ...(p[10] ||
3268
+ (p[10] = [
3269
+ _(
3270
+ 'span',
3271
+ { class: 'vpi-delete local-search-icon' },
3272
+ null,
3273
+ -1,
3274
+ ),
3275
+ ])),
3276
+ ],
3277
+ 8,
3278
+ an,
3279
+ ),
3280
+ ]),
3281
+ ],
3282
+ 32,
3283
+ ),
3284
+ _(
3285
+ 'ul',
3286
+ {
3287
+ ref_key: 'resultsEl',
3288
+ ref: n,
3289
+ id:
3290
+ (P = w.value) != null && P.length
3291
+ ? 'localsearch-list'
3292
+ : void 0,
3293
+ role:
3294
+ (z = w.value) != null && z.length ? 'listbox' : void 0,
3295
+ 'aria-labelledby':
3296
+ (V = w.value) != null && V.length
3297
+ ? 'localsearch-label'
3298
+ : void 0,
3299
+ class: 'results',
3300
+ onMousemove: F,
3301
+ },
3302
+ [
3303
+ (H(!0),
3304
+ Z(
3305
+ it,
3306
+ null,
3307
+ nt(
3308
+ w.value,
3309
+ (k, K) => (
3310
+ H(),
3311
+ Z(
3312
+ 'li',
3313
+ {
3314
+ key: k.id,
3315
+ id: 'localsearch-item-' + K,
3316
+ 'aria-selected':
3317
+ M.value === K ? 'true' : 'false',
3318
+ role: 'option',
3319
+ },
3320
+ [
3321
+ _(
3322
+ 'a',
3323
+ {
3324
+ href: k.id,
3325
+ class: st([
3326
+ 'result',
3327
+ { selected: M.value === K },
3328
+ ]),
3329
+ 'aria-label': [...k.titles, k.title].join(
3330
+ ' > ',
3331
+ ),
3332
+ onMouseenter: (ee) =>
3333
+ !q.value && (M.value = K),
3334
+ onFocusin: (ee) => (M.value = K),
3335
+ onClick:
3336
+ p[6] || (p[6] = (ee) => v.$emit('close')),
3337
+ 'data-index': K,
3338
+ },
3339
+ [
3340
+ _('div', null, [
3341
+ _('div', un, [
3342
+ p[12] ||
3343
+ (p[12] = _(
3344
+ 'span',
3345
+ { class: 'title-icon' },
3346
+ '#',
3347
+ -1,
3348
+ )),
3349
+ (H(!0),
3350
+ Z(
3351
+ it,
3352
+ null,
3353
+ nt(
3354
+ k.titles,
3355
+ (ee, we) => (
3356
+ H(),
3357
+ Z(
3358
+ 'span',
3359
+ { key: we, class: 'title' },
3360
+ [
3361
+ _(
3362
+ 'span',
3363
+ {
3364
+ class: 'text',
3365
+ innerHTML: ee,
3366
+ },
3367
+ null,
3368
+ 8,
3369
+ dn,
3370
+ ),
3371
+ p[11] ||
3372
+ (p[11] = _(
3373
+ 'span',
3374
+ {
3375
+ class:
3376
+ 'vpi-chevron-right local-search-icon',
3377
+ },
3378
+ null,
3379
+ -1,
3380
+ )),
3381
+ ],
3382
+ )
3383
+ ),
3384
+ ),
3385
+ 128,
3386
+ )),
3387
+ _('span', hn, [
3388
+ _(
3389
+ 'span',
3390
+ {
3391
+ class: 'text',
3392
+ innerHTML: k.title,
3393
+ },
3394
+ null,
3395
+ 8,
3396
+ fn,
3397
+ ),
3398
+ ]),
3399
+ ]),
3400
+ L(b)
3401
+ ? (H(),
3402
+ Z('div', pn, [
3403
+ k.text
3404
+ ? (H(),
3405
+ Z('div', vn, [
3406
+ _(
3407
+ 'div',
3408
+ {
3409
+ class: 'vp-doc',
3410
+ innerHTML: k.text,
3411
+ },
3412
+ null,
3413
+ 8,
3414
+ mn,
3415
+ ),
3416
+ ]))
3417
+ : Se('', !0),
3418
+ p[13] ||
3419
+ (p[13] = _(
3420
+ 'div',
3421
+ {
3422
+ class:
3423
+ 'excerpt-gradient-bottom',
3424
+ },
3425
+ null,
3426
+ -1,
3427
+ )),
3428
+ p[14] ||
3429
+ (p[14] = _(
3430
+ 'div',
3431
+ {
3432
+ class: 'excerpt-gradient-top',
3433
+ },
3434
+ null,
3435
+ -1,
3436
+ )),
3437
+ ]))
3438
+ : Se('', !0),
3439
+ ]),
3440
+ ],
3441
+ 42,
3442
+ cn,
3443
+ ),
3444
+ ],
3445
+ 8,
3446
+ ln,
3447
+ )
3448
+ ),
3449
+ ),
3450
+ 128,
3451
+ )),
3452
+ L(f) && !w.value.length && C.value
3453
+ ? (H(),
3454
+ Z('li', gn, [
3455
+ pe(ve(L(d)('modal.noResultsText')) + ' "', 1),
3456
+ _('strong', null, ve(L(f)), 1),
3457
+ p[15] || (p[15] = pe('" ', -1)),
3458
+ ]))
3459
+ : Se('', !0),
3460
+ ],
3461
+ 40,
3462
+ on,
3463
+ ),
3464
+ _('div', bn, [
3465
+ _('span', null, [
3466
+ _(
3467
+ 'kbd',
3468
+ {
3469
+ 'aria-label': L(d)(
3470
+ 'modal.footer.navigateUpKeyAriaLabel',
3471
+ ),
3472
+ },
3473
+ [
3474
+ ...(p[16] ||
3475
+ (p[16] = [
3476
+ _(
3477
+ 'span',
3478
+ { class: 'vpi-arrow-up navigate-icon' },
3479
+ null,
3480
+ -1,
3481
+ ),
3482
+ ])),
3483
+ ],
3484
+ 8,
3485
+ yn,
3486
+ ),
3487
+ _(
3488
+ 'kbd',
3489
+ {
3490
+ 'aria-label': L(d)(
3491
+ 'modal.footer.navigateDownKeyAriaLabel',
3492
+ ),
3493
+ },
3494
+ [
3495
+ ...(p[17] ||
3496
+ (p[17] = [
3497
+ _(
3498
+ 'span',
3499
+ { class: 'vpi-arrow-down navigate-icon' },
3500
+ null,
3501
+ -1,
3502
+ ),
3503
+ ])),
3504
+ ],
3505
+ 8,
3506
+ wn,
3507
+ ),
3508
+ pe(' ' + ve(L(d)('modal.footer.navigateText')), 1),
3509
+ ]),
3510
+ _('span', null, [
3511
+ _(
3512
+ 'kbd',
3513
+ {
3514
+ 'aria-label': L(d)('modal.footer.selectKeyAriaLabel'),
3515
+ },
3516
+ [
3517
+ ...(p[18] ||
3518
+ (p[18] = [
3519
+ _(
3520
+ 'span',
3521
+ { class: 'vpi-corner-down-left navigate-icon' },
3522
+ null,
3523
+ -1,
3524
+ ),
3525
+ ])),
3526
+ ],
3527
+ 8,
3528
+ xn,
3529
+ ),
3530
+ pe(' ' + ve(L(d)('modal.footer.selectText')), 1),
3531
+ ]),
3532
+ _('span', null, [
3533
+ _(
3534
+ 'kbd',
3535
+ {
3536
+ 'aria-label': L(d)('modal.footer.closeKeyAriaLabel'),
3537
+ },
3538
+ 'esc',
3539
+ 8,
3540
+ _n,
3541
+ ),
3542
+ pe(' ' + ve(L(d)('modal.footer.closeText')), 1),
3543
+ ]),
3544
+ ]),
3545
+ ]),
3546
+ ],
3547
+ 8,
3548
+ Ys,
3549
+ ),
3550
+ ])
3551
+ )
3552
+ }
3553
+ },
3554
+ }),
3555
+ Fn = ts(Sn, [['__scopeId', 'data-v-ce626c7c']])
3556
+ export { Fn as default }