gordon-posit commited on
Commit
34044ef
·
1 Parent(s): 3c7eb63

Test deploy

Browse files
Files changed (42) hide show
  1. README.md +1 -0
  2. index.html +0 -19
  3. src/.gitignore +1 -0
  4. src/_quarto.yml +19 -0
  5. src/_site/about.html +533 -0
  6. src/_site/index.html +677 -0
  7. src/_site/listings.json +9 -0
  8. src/_site/posts/post-with-code/image.jpg +0 -0
  9. src/_site/posts/post-with-code/index.html +556 -0
  10. src/_site/posts/welcome/index.html +556 -0
  11. src/_site/posts/welcome/thumbnail.jpg +0 -0
  12. src/_site/profile.jpg +0 -0
  13. src/_site/search.json +30 -0
  14. src/_site/site_libs/bootstrap/bootstrap-icons.css +0 -0
  15. src/_site/site_libs/bootstrap/bootstrap-icons.woff +0 -0
  16. src/_site/site_libs/bootstrap/bootstrap.min.css +0 -0
  17. src/_site/site_libs/bootstrap/bootstrap.min.js +7 -0
  18. src/_site/site_libs/clipboard/clipboard.min.js +7 -0
  19. src/_site/site_libs/quarto-html/anchor.min.js +9 -0
  20. src/_site/site_libs/quarto-html/popper.min.js +6 -0
  21. src/_site/site_libs/quarto-html/quarto-syntax-highlighting.css +203 -0
  22. src/_site/site_libs/quarto-html/quarto.js +899 -0
  23. src/_site/site_libs/quarto-html/tippy.css +1 -0
  24. src/_site/site_libs/quarto-html/tippy.umd.min.js +2 -0
  25. src/_site/site_libs/quarto-listing/list.min.js +2 -0
  26. src/_site/site_libs/quarto-listing/quarto-listing.js +243 -0
  27. src/_site/site_libs/quarto-nav/headroom.min.js +7 -0
  28. src/_site/site_libs/quarto-nav/quarto-nav.js +288 -0
  29. src/_site/site_libs/quarto-search/autocomplete.umd.js +3 -0
  30. src/_site/site_libs/quarto-search/fuse.min.js +9 -0
  31. src/_site/site_libs/quarto-search/quarto-search.js +1247 -0
  32. src/_site/styles.css +1 -0
  33. src/about.qmd +19 -0
  34. src/index.qmd +14 -0
  35. src/posts/_metadata.yml +8 -0
  36. src/posts/post-with-code/image.jpg +0 -0
  37. src/posts/post-with-code/index.qmd +9 -0
  38. src/posts/welcome/index.qmd +12 -0
  39. src/posts/welcome/thumbnail.jpg +0 -0
  40. src/profile.jpg +0 -0
  41. src/styles.css +1 -0
  42. style.css +0 -28
README.md CHANGED
@@ -5,6 +5,7 @@ colorFrom: green
5
  colorTo: pink
6
  sdk: static
7
  pinned: false
 
8
  ---
9
 
10
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
5
  colorTo: pink
6
  sdk: static
7
  pinned: false
8
+ entrypoint: _site/index.html
9
  ---
10
 
11
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html DELETED
@@ -1,19 +0,0 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/.gitignore ADDED
@@ -0,0 +1 @@
 
 
1
+ /.quarto/
src/_quarto.yml ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ project:
2
+ type: website
3
+
4
+ website:
5
+ title: "Src"
6
+ navbar:
7
+ right:
8
+ - about.qmd
9
+ - icon: github
10
+ href: https://github.com/
11
+ - icon: twitter
12
+ href: https://twitter.com
13
+ format:
14
+ html:
15
+ theme: cosmo
16
+ css: styles.css
17
+
18
+
19
+
src/_site/about.html ADDED
@@ -0,0 +1,533 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
3
+
4
+ <meta charset="utf-8">
5
+ <meta name="generator" content="quarto-1.4.543">
6
+
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
8
+
9
+
10
+ <title>Src - About</title>
11
+ <style>
12
+ code{white-space: pre-wrap;}
13
+ span.smallcaps{font-variant: small-caps;}
14
+ div.columns{display: flex; gap: min(4vw, 1.5em);}
15
+ div.column{flex: auto; overflow-x: auto;}
16
+ div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
17
+ ul.task-list{list-style: none;}
18
+ ul.task-list li input[type="checkbox"] {
19
+ width: 0.8em;
20
+ margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
21
+ vertical-align: middle;
22
+ }
23
+ </style>
24
+
25
+
26
+ <script src="site_libs/quarto-nav/quarto-nav.js"></script>
27
+ <script src="site_libs/quarto-nav/headroom.min.js"></script>
28
+ <script src="site_libs/clipboard/clipboard.min.js"></script>
29
+ <script src="site_libs/quarto-search/autocomplete.umd.js"></script>
30
+ <script src="site_libs/quarto-search/fuse.min.js"></script>
31
+ <script src="site_libs/quarto-search/quarto-search.js"></script>
32
+ <meta name="quarto:offset" content="./">
33
+ <script src="site_libs/quarto-html/quarto.js"></script>
34
+ <script src="site_libs/quarto-html/popper.min.js"></script>
35
+ <script src="site_libs/quarto-html/tippy.umd.min.js"></script>
36
+ <link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
37
+ <link href="site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles">
38
+ <script src="site_libs/bootstrap/bootstrap.min.js"></script>
39
+ <link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
40
+ <link href="site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" id="quarto-bootstrap" data-mode="light">
41
+ <script id="quarto-search-options" type="application/json">{
42
+ "location": "navbar",
43
+ "copy-button": false,
44
+ "collapse-after": 3,
45
+ "panel-placement": "end",
46
+ "type": "overlay",
47
+ "limit": 50,
48
+ "keyboard-shortcut": [
49
+ "f",
50
+ "/",
51
+ "s"
52
+ ],
53
+ "show-item-context": false,
54
+ "language": {
55
+ "search-no-results-text": "No results",
56
+ "search-matching-documents-text": "matching documents",
57
+ "search-copy-link-title": "Copy link to search",
58
+ "search-hide-matches-text": "Hide additional matches",
59
+ "search-more-match-text": "more match in this document",
60
+ "search-more-matches-text": "more matches in this document",
61
+ "search-clear-button-title": "Clear",
62
+ "search-text-placeholder": "",
63
+ "search-detached-cancel-button-title": "Cancel",
64
+ "search-submit-button-title": "Submit",
65
+ "search-label": "Search"
66
+ }
67
+ }</script>
68
+
69
+
70
+ <link rel="stylesheet" href="styles.css">
71
+ </head>
72
+
73
+ <body class="nav-fixed fullcontent">
74
+
75
+ <div id="quarto-search-results"></div>
76
+ <header id="quarto-header" class="headroom fixed-top">
77
+ <nav class="navbar navbar-expand-lg " data-bs-theme="dark">
78
+ <div class="navbar-container container-fluid">
79
+ <div class="navbar-brand-container mx-auto">
80
+ <a class="navbar-brand" href="./index.html">
81
+ <span class="navbar-title">Src</span>
82
+ </a>
83
+ </div>
84
+ <div id="quarto-search" class="" title="Search"></div>
85
+ <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
86
+ <span class="navbar-toggler-icon"></span>
87
+ </button>
88
+ <div class="collapse navbar-collapse" id="navbarCollapse">
89
+ <ul class="navbar-nav navbar-nav-scroll ms-auto">
90
+ <li class="nav-item">
91
+ <a class="nav-link active" href="./about.html" aria-current="page">
92
+ <span class="menu-text">About</span></a>
93
+ </li>
94
+ <li class="nav-item compact">
95
+ <a class="nav-link" href="https://github.com/"> <i class="bi bi-github" role="img">
96
+ </i>
97
+ <span class="menu-text"></span></a>
98
+ </li>
99
+ <li class="nav-item compact">
100
+ <a class="nav-link" href="https://twitter.com"> <i class="bi bi-twitter" role="img">
101
+ </i>
102
+ <span class="menu-text"></span></a>
103
+ </li>
104
+ </ul>
105
+ </div> <!-- /navcollapse -->
106
+ <div class="quarto-navbar-tools">
107
+ </div>
108
+ </div> <!-- /container-fluid -->
109
+ </nav>
110
+ </header>
111
+ <!-- content -->
112
+ <div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
113
+ <!-- sidebar -->
114
+ <!-- margin-sidebar -->
115
+
116
+ <!-- main -->
117
+ <div class="quarto-about-jolla content">
118
+ <img src="profile.jpg" class="about-image
119
+ round " style="height: 15em; width: 15em;">
120
+ <header id="title-block-header" class="quarto-title-block default">
121
+ <div class="quarto-title">
122
+ <h1 class="title">About</h1>
123
+ </div>
124
+ <div class="quarto-title-meta">
125
+ </div>
126
+ </header><main class="content" id="quarto-document-content">
127
+ <p>About this blog</p>
128
+
129
+
130
+ </main>
131
+ <hr class="about-sep">
132
+ <div class="about-links">
133
+ <a href="https://twitter.com" class="about-link" rel="" target="">
134
+ <i class="bi bi-twitter"></i>
135
+ <span class="about-link-text">Twitter</span>
136
+ </a>
137
+ <a href="https://linkedin.com" class="about-link" rel="" target="">
138
+ <i class="bi bi-linkedin"></i>
139
+ <span class="about-link-text">LinkedIn</span>
140
+ </a>
141
+ <a href="https://github.com" class="about-link" rel="" target="">
142
+ <i class="bi bi-github"></i>
143
+ <span class="about-link-text">Github</span>
144
+ </a>
145
+ </div>
146
+ </div>
147
+ <!-- /main -->
148
+ <script id="quarto-html-after-body" type="application/javascript">
149
+ window.document.addEventListener("DOMContentLoaded", function (event) {
150
+ const toggleBodyColorMode = (bsSheetEl) => {
151
+ const mode = bsSheetEl.getAttribute("data-mode");
152
+ const bodyEl = window.document.querySelector("body");
153
+ if (mode === "dark") {
154
+ bodyEl.classList.add("quarto-dark");
155
+ bodyEl.classList.remove("quarto-light");
156
+ } else {
157
+ bodyEl.classList.add("quarto-light");
158
+ bodyEl.classList.remove("quarto-dark");
159
+ }
160
+ }
161
+ const toggleBodyColorPrimary = () => {
162
+ const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
163
+ if (bsSheetEl) {
164
+ toggleBodyColorMode(bsSheetEl);
165
+ }
166
+ }
167
+ toggleBodyColorPrimary();
168
+ const isCodeAnnotation = (el) => {
169
+ for (const clz of el.classList) {
170
+ if (clz.startsWith('code-annotation-')) {
171
+ return true;
172
+ }
173
+ }
174
+ return false;
175
+ }
176
+ const clipboard = new window.ClipboardJS('.code-copy-button', {
177
+ text: function(trigger) {
178
+ const codeEl = trigger.previousElementSibling.cloneNode(true);
179
+ for (const childEl of codeEl.children) {
180
+ if (isCodeAnnotation(childEl)) {
181
+ childEl.remove();
182
+ }
183
+ }
184
+ return codeEl.innerText;
185
+ }
186
+ });
187
+ clipboard.on('success', function(e) {
188
+ // button target
189
+ const button = e.trigger;
190
+ // don't keep focus
191
+ button.blur();
192
+ // flash "checked"
193
+ button.classList.add('code-copy-button-checked');
194
+ var currentTitle = button.getAttribute("title");
195
+ button.setAttribute("title", "Copied!");
196
+ let tooltip;
197
+ if (window.bootstrap) {
198
+ button.setAttribute("data-bs-toggle", "tooltip");
199
+ button.setAttribute("data-bs-placement", "left");
200
+ button.setAttribute("data-bs-title", "Copied!");
201
+ tooltip = new bootstrap.Tooltip(button,
202
+ { trigger: "manual",
203
+ customClass: "code-copy-button-tooltip",
204
+ offset: [0, -8]});
205
+ tooltip.show();
206
+ }
207
+ setTimeout(function() {
208
+ if (tooltip) {
209
+ tooltip.hide();
210
+ button.removeAttribute("data-bs-title");
211
+ button.removeAttribute("data-bs-toggle");
212
+ button.removeAttribute("data-bs-placement");
213
+ }
214
+ button.setAttribute("title", currentTitle);
215
+ button.classList.remove('code-copy-button-checked');
216
+ }, 1000);
217
+ // clear code selection
218
+ e.clearSelection();
219
+ });
220
+ function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
221
+ const config = {
222
+ allowHTML: true,
223
+ maxWidth: 500,
224
+ delay: 100,
225
+ arrow: false,
226
+ appendTo: function(el) {
227
+ return el.parentElement;
228
+ },
229
+ interactive: true,
230
+ interactiveBorder: 10,
231
+ theme: 'quarto',
232
+ placement: 'bottom-start',
233
+ };
234
+ if (contentFn) {
235
+ config.content = contentFn;
236
+ }
237
+ if (onTriggerFn) {
238
+ config.onTrigger = onTriggerFn;
239
+ }
240
+ if (onUntriggerFn) {
241
+ config.onUntrigger = onUntriggerFn;
242
+ }
243
+ window.tippy(el, config);
244
+ }
245
+ const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
246
+ for (var i=0; i<noterefs.length; i++) {
247
+ const ref = noterefs[i];
248
+ tippyHover(ref, function() {
249
+ // use id or data attribute instead here
250
+ let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
251
+ try { href = new URL(href).hash; } catch {}
252
+ const id = href.replace(/^#\/?/, "");
253
+ const note = window.document.getElementById(id);
254
+ return note.innerHTML;
255
+ });
256
+ }
257
+ const xrefs = window.document.querySelectorAll('a.quarto-xref');
258
+ const processXRef = (id, note) => {
259
+ // Strip column container classes
260
+ const stripColumnClz = (el) => {
261
+ el.classList.remove("page-full", "page-columns");
262
+ if (el.children) {
263
+ for (const child of el.children) {
264
+ stripColumnClz(child);
265
+ }
266
+ }
267
+ }
268
+ stripColumnClz(note)
269
+ if (id === null || id.startsWith('sec-')) {
270
+ // Special case sections, only their first couple elements
271
+ const container = document.createElement("div");
272
+ if (note.children && note.children.length > 2) {
273
+ container.appendChild(note.children[0].cloneNode(true));
274
+ for (let i = 1; i < note.children.length; i++) {
275
+ const child = note.children[i];
276
+ if (child.tagName === "P" && child.innerText === "") {
277
+ continue;
278
+ } else {
279
+ container.appendChild(child.cloneNode(true));
280
+ break;
281
+ }
282
+ }
283
+ if (window.Quarto?.typesetMath) {
284
+ window.Quarto.typesetMath(container);
285
+ }
286
+ return container.innerHTML
287
+ } else {
288
+ if (window.Quarto?.typesetMath) {
289
+ window.Quarto.typesetMath(note);
290
+ }
291
+ return note.innerHTML;
292
+ }
293
+ } else {
294
+ // Remove any anchor links if they are present
295
+ const anchorLink = note.querySelector('a.anchorjs-link');
296
+ if (anchorLink) {
297
+ anchorLink.remove();
298
+ }
299
+ if (window.Quarto?.typesetMath) {
300
+ window.Quarto.typesetMath(note);
301
+ }
302
+ // TODO in 1.5, we should make sure this works without a callout special case
303
+ if (note.classList.contains("callout")) {
304
+ return note.outerHTML;
305
+ } else {
306
+ return note.innerHTML;
307
+ }
308
+ }
309
+ }
310
+ for (var i=0; i<xrefs.length; i++) {
311
+ const xref = xrefs[i];
312
+ tippyHover(xref, undefined, function(instance) {
313
+ instance.disable();
314
+ let url = xref.getAttribute('href');
315
+ let hash = undefined;
316
+ if (url.startsWith('#')) {
317
+ hash = url;
318
+ } else {
319
+ try { hash = new URL(url).hash; } catch {}
320
+ }
321
+ if (hash) {
322
+ const id = hash.replace(/^#\/?/, "");
323
+ const note = window.document.getElementById(id);
324
+ if (note !== null) {
325
+ try {
326
+ const html = processXRef(id, note.cloneNode(true));
327
+ instance.setContent(html);
328
+ } finally {
329
+ instance.enable();
330
+ instance.show();
331
+ }
332
+ } else {
333
+ // See if we can fetch this
334
+ fetch(url.split('#')[0])
335
+ .then(res => res.text())
336
+ .then(html => {
337
+ const parser = new DOMParser();
338
+ const htmlDoc = parser.parseFromString(html, "text/html");
339
+ const note = htmlDoc.getElementById(id);
340
+ if (note !== null) {
341
+ const html = processXRef(id, note);
342
+ instance.setContent(html);
343
+ }
344
+ }).finally(() => {
345
+ instance.enable();
346
+ instance.show();
347
+ });
348
+ }
349
+ } else {
350
+ // See if we can fetch a full url (with no hash to target)
351
+ // This is a special case and we should probably do some content thinning / targeting
352
+ fetch(url)
353
+ .then(res => res.text())
354
+ .then(html => {
355
+ const parser = new DOMParser();
356
+ const htmlDoc = parser.parseFromString(html, "text/html");
357
+ const note = htmlDoc.querySelector('main.content');
358
+ if (note !== null) {
359
+ // This should only happen for chapter cross references
360
+ // (since there is no id in the URL)
361
+ // remove the first header
362
+ if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
363
+ note.children[0].remove();
364
+ }
365
+ const html = processXRef(null, note);
366
+ instance.setContent(html);
367
+ }
368
+ }).finally(() => {
369
+ instance.enable();
370
+ instance.show();
371
+ });
372
+ }
373
+ }, function(instance) {
374
+ });
375
+ }
376
+ let selectedAnnoteEl;
377
+ const selectorForAnnotation = ( cell, annotation) => {
378
+ let cellAttr = 'data-code-cell="' + cell + '"';
379
+ let lineAttr = 'data-code-annotation="' + annotation + '"';
380
+ const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
381
+ return selector;
382
+ }
383
+ const selectCodeLines = (annoteEl) => {
384
+ const doc = window.document;
385
+ const targetCell = annoteEl.getAttribute("data-target-cell");
386
+ const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
387
+ const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
388
+ const lines = annoteSpan.getAttribute("data-code-lines").split(",");
389
+ const lineIds = lines.map((line) => {
390
+ return targetCell + "-" + line;
391
+ })
392
+ let top = null;
393
+ let height = null;
394
+ let parent = null;
395
+ if (lineIds.length > 0) {
396
+ //compute the position of the single el (top and bottom and make a div)
397
+ const el = window.document.getElementById(lineIds[0]);
398
+ top = el.offsetTop;
399
+ height = el.offsetHeight;
400
+ parent = el.parentElement.parentElement;
401
+ if (lineIds.length > 1) {
402
+ const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
403
+ const bottom = lastEl.offsetTop + lastEl.offsetHeight;
404
+ height = bottom - top;
405
+ }
406
+ if (top !== null && height !== null && parent !== null) {
407
+ // cook up a div (if necessary) and position it
408
+ let div = window.document.getElementById("code-annotation-line-highlight");
409
+ if (div === null) {
410
+ div = window.document.createElement("div");
411
+ div.setAttribute("id", "code-annotation-line-highlight");
412
+ div.style.position = 'absolute';
413
+ parent.appendChild(div);
414
+ }
415
+ div.style.top = top - 2 + "px";
416
+ div.style.height = height + 4 + "px";
417
+ div.style.left = 0;
418
+ let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
419
+ if (gutterDiv === null) {
420
+ gutterDiv = window.document.createElement("div");
421
+ gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
422
+ gutterDiv.style.position = 'absolute';
423
+ const codeCell = window.document.getElementById(targetCell);
424
+ const gutter = codeCell.querySelector('.code-annotation-gutter');
425
+ gutter.appendChild(gutterDiv);
426
+ }
427
+ gutterDiv.style.top = top - 2 + "px";
428
+ gutterDiv.style.height = height + 4 + "px";
429
+ }
430
+ selectedAnnoteEl = annoteEl;
431
+ }
432
+ };
433
+ const unselectCodeLines = () => {
434
+ const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
435
+ elementsIds.forEach((elId) => {
436
+ const div = window.document.getElementById(elId);
437
+ if (div) {
438
+ div.remove();
439
+ }
440
+ });
441
+ selectedAnnoteEl = undefined;
442
+ };
443
+ // Handle positioning of the toggle
444
+ window.addEventListener(
445
+ "resize",
446
+ throttle(() => {
447
+ elRect = undefined;
448
+ if (selectedAnnoteEl) {
449
+ selectCodeLines(selectedAnnoteEl);
450
+ }
451
+ }, 10)
452
+ );
453
+ function throttle(fn, ms) {
454
+ let throttle = false;
455
+ let timer;
456
+ return (...args) => {
457
+ if(!throttle) { // first call gets through
458
+ fn.apply(this, args);
459
+ throttle = true;
460
+ } else { // all the others get throttled
461
+ if(timer) clearTimeout(timer); // cancel #2
462
+ timer = setTimeout(() => {
463
+ fn.apply(this, args);
464
+ timer = throttle = false;
465
+ }, ms);
466
+ }
467
+ };
468
+ }
469
+ // Attach click handler to the DT
470
+ const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
471
+ for (const annoteDlNode of annoteDls) {
472
+ annoteDlNode.addEventListener('click', (event) => {
473
+ const clickedEl = event.target;
474
+ if (clickedEl !== selectedAnnoteEl) {
475
+ unselectCodeLines();
476
+ const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
477
+ if (activeEl) {
478
+ activeEl.classList.remove('code-annotation-active');
479
+ }
480
+ selectCodeLines(clickedEl);
481
+ clickedEl.classList.add('code-annotation-active');
482
+ } else {
483
+ // Unselect the line
484
+ unselectCodeLines();
485
+ clickedEl.classList.remove('code-annotation-active');
486
+ }
487
+ });
488
+ }
489
+ const findCites = (el) => {
490
+ const parentEl = el.parentElement;
491
+ if (parentEl) {
492
+ const cites = parentEl.dataset.cites;
493
+ if (cites) {
494
+ return {
495
+ el,
496
+ cites: cites.split(' ')
497
+ };
498
+ } else {
499
+ return findCites(el.parentElement)
500
+ }
501
+ } else {
502
+ return undefined;
503
+ }
504
+ };
505
+ var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
506
+ for (var i=0; i<bibliorefs.length; i++) {
507
+ const ref = bibliorefs[i];
508
+ const citeInfo = findCites(ref);
509
+ if (citeInfo) {
510
+ tippyHover(citeInfo.el, function() {
511
+ var popup = window.document.createElement('div');
512
+ citeInfo.cites.forEach(function(cite) {
513
+ var citeDiv = window.document.createElement('div');
514
+ citeDiv.classList.add('hanging-indent');
515
+ citeDiv.classList.add('csl-entry');
516
+ var biblioDiv = window.document.getElementById('ref-' + cite);
517
+ if (biblioDiv) {
518
+ citeDiv.innerHTML = biblioDiv.innerHTML;
519
+ }
520
+ popup.appendChild(citeDiv);
521
+ });
522
+ return popup.innerHTML;
523
+ });
524
+ }
525
+ }
526
+ });
527
+ </script>
528
+ </div> <!-- /content -->
529
+
530
+
531
+
532
+
533
+ </body></html>
src/_site/index.html ADDED
@@ -0,0 +1,677 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
3
+
4
+ <meta charset="utf-8">
5
+ <meta name="generator" content="quarto-1.4.543">
6
+
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
8
+
9
+
10
+ <title>Src</title>
11
+ <style>
12
+ code{white-space: pre-wrap;}
13
+ span.smallcaps{font-variant: small-caps;}
14
+ div.columns{display: flex; gap: min(4vw, 1.5em);}
15
+ div.column{flex: auto; overflow-x: auto;}
16
+ div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
17
+ ul.task-list{list-style: none;}
18
+ ul.task-list li input[type="checkbox"] {
19
+ width: 0.8em;
20
+ margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
21
+ vertical-align: middle;
22
+ }
23
+ </style>
24
+
25
+
26
+ <script src="site_libs/quarto-nav/quarto-nav.js"></script>
27
+ <script src="site_libs/quarto-nav/headroom.min.js"></script>
28
+ <script src="site_libs/clipboard/clipboard.min.js"></script>
29
+ <script src="site_libs/quarto-search/autocomplete.umd.js"></script>
30
+ <script src="site_libs/quarto-search/fuse.min.js"></script>
31
+ <script src="site_libs/quarto-search/quarto-search.js"></script>
32
+ <meta name="quarto:offset" content="./">
33
+ <script src="site_libs/quarto-listing/list.min.js"></script>
34
+ <script src="site_libs/quarto-listing/quarto-listing.js"></script>
35
+ <script src="site_libs/quarto-html/quarto.js"></script>
36
+ <script src="site_libs/quarto-html/popper.min.js"></script>
37
+ <script src="site_libs/quarto-html/tippy.umd.min.js"></script>
38
+ <script src="site_libs/quarto-html/anchor.min.js"></script>
39
+ <link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
40
+ <link href="site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles">
41
+ <script src="site_libs/bootstrap/bootstrap.min.js"></script>
42
+ <link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
43
+ <link href="site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" id="quarto-bootstrap" data-mode="light">
44
+ <script id="quarto-search-options" type="application/json">{
45
+ "location": "navbar",
46
+ "copy-button": false,
47
+ "collapse-after": 3,
48
+ "panel-placement": "end",
49
+ "type": "overlay",
50
+ "limit": 50,
51
+ "keyboard-shortcut": [
52
+ "f",
53
+ "/",
54
+ "s"
55
+ ],
56
+ "show-item-context": false,
57
+ "language": {
58
+ "search-no-results-text": "No results",
59
+ "search-matching-documents-text": "matching documents",
60
+ "search-copy-link-title": "Copy link to search",
61
+ "search-hide-matches-text": "Hide additional matches",
62
+ "search-more-match-text": "more match in this document",
63
+ "search-more-matches-text": "more matches in this document",
64
+ "search-clear-button-title": "Clear",
65
+ "search-text-placeholder": "",
66
+ "search-detached-cancel-button-title": "Cancel",
67
+ "search-submit-button-title": "Submit",
68
+ "search-label": "Search"
69
+ }
70
+ }</script>
71
+ <script>
72
+
73
+ window.document.addEventListener("DOMContentLoaded", function (_event) {
74
+ const listingTargetEl = window.document.querySelector('#listing-listing .list');
75
+ if (!listingTargetEl) {
76
+ // No listing discovered, do not attach.
77
+ return;
78
+ }
79
+
80
+ const options = {
81
+ valueNames: ['listing-date','listing-title','listing-author','listing-image','listing-description','listing-categories',{ data: ['index'] },{ data: ['categories'] },{ data: ['listing-date-sort'] },{ data: ['listing-file-modified-sort'] }],
82
+
83
+ searchColumns: ["listing-date","listing-title","listing-author","listing-image","listing-description","listing-categories"],
84
+ };
85
+
86
+ window['quarto-listings'] = window['quarto-listings'] || {};
87
+ window['quarto-listings']['listing-listing'] = new List('listing-listing', options);
88
+
89
+ if (window['quarto-listing-loaded']) {
90
+ window['quarto-listing-loaded']();
91
+ }
92
+ });
93
+
94
+ window.addEventListener('hashchange',() => {
95
+ if (window['quarto-listing-loaded']) {
96
+ window['quarto-listing-loaded']();
97
+ }
98
+ })
99
+ </script>
100
+
101
+ <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
102
+ <script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js" type="text/javascript"></script>
103
+
104
+ <script type="text/javascript">
105
+ const typesetMath = (el) => {
106
+ if (window.MathJax) {
107
+ // MathJax Typeset
108
+ window.MathJax.typeset([el]);
109
+ } else if (window.katex) {
110
+ // KaTeX Render
111
+ var mathElements = el.getElementsByClassName("math");
112
+ var macros = [];
113
+ for (var i = 0; i < mathElements.length; i++) {
114
+ var texText = mathElements[i].firstChild;
115
+ if (mathElements[i].tagName == "SPAN") {
116
+ window.katex.render(texText.data, mathElements[i], {
117
+ displayMode: mathElements[i].classList.contains('display'),
118
+ throwOnError: false,
119
+ macros: macros,
120
+ fleqn: false
121
+ });
122
+ }
123
+ }
124
+ }
125
+ }
126
+ window.Quarto = {
127
+ typesetMath
128
+ };
129
+ </script>
130
+
131
+ <link rel="stylesheet" href="styles.css">
132
+ </head>
133
+
134
+ <body class="nav-fixed">
135
+
136
+ <div id="quarto-search-results"></div>
137
+ <header id="quarto-header" class="headroom fixed-top quarto-banner">
138
+ <nav class="navbar navbar-expand-lg " data-bs-theme="dark">
139
+ <div class="navbar-container container-fluid">
140
+ <div class="navbar-brand-container mx-auto">
141
+ <a class="navbar-brand" href="./index.html">
142
+ <span class="navbar-title">Src</span>
143
+ </a>
144
+ </div>
145
+ <div id="quarto-search" class="" title="Search"></div>
146
+ <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
147
+ <span class="navbar-toggler-icon"></span>
148
+ </button>
149
+ <div class="collapse navbar-collapse" id="navbarCollapse">
150
+ <ul class="navbar-nav navbar-nav-scroll ms-auto">
151
+ <li class="nav-item">
152
+ <a class="nav-link" href="./about.html">
153
+ <span class="menu-text">About</span></a>
154
+ </li>
155
+ <li class="nav-item compact">
156
+ <a class="nav-link" href="https://github.com/"> <i class="bi bi-github" role="img">
157
+ </i>
158
+ <span class="menu-text"></span></a>
159
+ </li>
160
+ <li class="nav-item compact">
161
+ <a class="nav-link" href="https://twitter.com"> <i class="bi bi-twitter" role="img">
162
+ </i>
163
+ <span class="menu-text"></span></a>
164
+ </li>
165
+ </ul>
166
+ </div> <!-- /navcollapse -->
167
+ <div class="quarto-navbar-tools">
168
+ </div>
169
+ </div> <!-- /container-fluid -->
170
+ </nav>
171
+ </header>
172
+ <!-- content -->
173
+ <header id="title-block-header" class="quarto-title-block default page-columns page-full">
174
+ <div class="quarto-title-banner page-columns page-full">
175
+ <div class="quarto-title column-page-left">
176
+ <h1 class="title">Src</h1>
177
+ </div>
178
+ </div>
179
+
180
+
181
+ <div class="quarto-title-meta column-page-left">
182
+
183
+
184
+
185
+
186
+ </div>
187
+
188
+
189
+ </header><div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-full page-navbar">
190
+ <!-- sidebar -->
191
+ <!-- margin-sidebar -->
192
+ <div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
193
+
194
+ <h5 class="quarto-listing-category-title">Categories</h5><div class="quarto-listing-category category-default"><div class="category" data-category="">All <span class="quarto-category-count">(2)</span></div><div class="category" data-category="analysis">analysis <span class="quarto-category-count">(1)</span></div><div class="category" data-category="code">code <span class="quarto-category-count">(1)</span></div><div class="category" data-category="news">news <span class="quarto-category-count">(2)</span></div></div></div>
195
+ <!-- main -->
196
+ <main class="content quarto-banner-title-block column-page-left" id="quarto-document-content">
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+ <div class="quarto-listing quarto-listing-container-default" id="listing-listing">
207
+ <div class="list quarto-listing-default">
208
+ <div class="quarto-post image-right" data-index="0" data-categories="news,code,analysis" data-listing-date-sort="1707969600000" data-listing-file-modified-sort="1708028395348" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="1" data-listing-word-count-sort="7">
209
+ <div class="thumbnail">
210
+ <p><a href="./posts/post-with-code/index.html" class="no-external"></a></p><a href="./posts/post-with-code/index.html" class="no-external">
211
+ <p><img src="./posts/post-with-code/image.jpg" class="thumbnail-image"></p>
212
+ </a><p><a href="./posts/post-with-code/index.html" class="no-external"></a></p>
213
+ </div>
214
+ <div class="body">
215
+ <h3 class="no-anchor listing-title">
216
+ <a href="./posts/post-with-code/index.html" class="no-external">Post With Code</a>
217
+ </h3>
218
+ <div class="listing-subtitle">
219
+ <a href="./posts/post-with-code/index.html" class="no-external"></a>
220
+ </div>
221
+ <div class="listing-categories">
222
+ <div class="listing-category" onclick="window.quartoListingCategory('news'); return false;">
223
+ news
224
+ </div>
225
+ <div class="listing-category" onclick="window.quartoListingCategory('code'); return false;">
226
+ code
227
+ </div>
228
+ <div class="listing-category" onclick="window.quartoListingCategory('analysis'); return false;">
229
+ analysis
230
+ </div>
231
+ </div>
232
+ <div class="listing-description">
233
+ <a href="./posts/post-with-code/index.html" class="no-external">This is a post with executable code.</a>
234
+ </div>
235
+ </div>
236
+ <div class="metadata">
237
+ <a href="./posts/post-with-code/index.html" class="no-external">
238
+ <div class="listing-date">
239
+ Feb 15, 2024
240
+ </div>
241
+ <div class="listing-author">
242
+ Harlow Malloc
243
+ </div>
244
+ </a>
245
+ </div>
246
+ </div>
247
+ <div class="quarto-post image-right" data-index="1" data-categories="news" data-listing-date-sort="1707710400000" data-listing-file-modified-sort="1708028395347" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="1" data-listing-word-count-sort="32">
248
+ <div class="thumbnail">
249
+ <p><a href="./posts/welcome/index.html" class="no-external"></a></p><a href="./posts/welcome/index.html" class="no-external">
250
+ <p class="card-img-top"><img src="posts/welcome/thumbnail.jpg" class="thumbnail-image card-img"/></p>
251
+ </a><p><a href="./posts/welcome/index.html" class="no-external"></a></p>
252
+ </div>
253
+ <div class="body">
254
+ <h3 class="no-anchor listing-title">
255
+ <a href="./posts/welcome/index.html" class="no-external">Welcome To My Blog</a>
256
+ </h3>
257
+ <div class="listing-subtitle">
258
+ <a href="./posts/welcome/index.html" class="no-external"></a>
259
+ </div>
260
+ <div class="listing-categories">
261
+ <div class="listing-category" onclick="window.quartoListingCategory('news'); return false;">
262
+ news
263
+ </div>
264
+ </div>
265
+ <div class="listing-description">
266
+ <a href="./posts/welcome/index.html" class="no-external">This is the first post in a Quarto blog. Welcome!</a>
267
+ </div>
268
+ </div>
269
+ <div class="metadata">
270
+ <a href="./posts/welcome/index.html" class="no-external">
271
+ <div class="listing-date">
272
+ Feb 12, 2024
273
+ </div>
274
+ <div class="listing-author">
275
+ Tristan O’Malley
276
+ </div>
277
+ </a>
278
+ </div>
279
+ </div>
280
+ </div>
281
+ <div class="listing-no-matching d-none">
282
+ No matching items
283
+ </div>
284
+ </div></main> <!-- /main -->
285
+ <script id="quarto-html-after-body" type="application/javascript">
286
+ window.document.addEventListener("DOMContentLoaded", function (event) {
287
+ const toggleBodyColorMode = (bsSheetEl) => {
288
+ const mode = bsSheetEl.getAttribute("data-mode");
289
+ const bodyEl = window.document.querySelector("body");
290
+ if (mode === "dark") {
291
+ bodyEl.classList.add("quarto-dark");
292
+ bodyEl.classList.remove("quarto-light");
293
+ } else {
294
+ bodyEl.classList.add("quarto-light");
295
+ bodyEl.classList.remove("quarto-dark");
296
+ }
297
+ }
298
+ const toggleBodyColorPrimary = () => {
299
+ const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
300
+ if (bsSheetEl) {
301
+ toggleBodyColorMode(bsSheetEl);
302
+ }
303
+ }
304
+ toggleBodyColorPrimary();
305
+ const icon = "";
306
+ const anchorJS = new window.AnchorJS();
307
+ anchorJS.options = {
308
+ placement: 'right',
309
+ icon: icon
310
+ };
311
+ anchorJS.add('.anchored');
312
+ const isCodeAnnotation = (el) => {
313
+ for (const clz of el.classList) {
314
+ if (clz.startsWith('code-annotation-')) {
315
+ return true;
316
+ }
317
+ }
318
+ return false;
319
+ }
320
+ const clipboard = new window.ClipboardJS('.code-copy-button', {
321
+ text: function(trigger) {
322
+ const codeEl = trigger.previousElementSibling.cloneNode(true);
323
+ for (const childEl of codeEl.children) {
324
+ if (isCodeAnnotation(childEl)) {
325
+ childEl.remove();
326
+ }
327
+ }
328
+ return codeEl.innerText;
329
+ }
330
+ });
331
+ clipboard.on('success', function(e) {
332
+ // button target
333
+ const button = e.trigger;
334
+ // don't keep focus
335
+ button.blur();
336
+ // flash "checked"
337
+ button.classList.add('code-copy-button-checked');
338
+ var currentTitle = button.getAttribute("title");
339
+ button.setAttribute("title", "Copied!");
340
+ let tooltip;
341
+ if (window.bootstrap) {
342
+ button.setAttribute("data-bs-toggle", "tooltip");
343
+ button.setAttribute("data-bs-placement", "left");
344
+ button.setAttribute("data-bs-title", "Copied!");
345
+ tooltip = new bootstrap.Tooltip(button,
346
+ { trigger: "manual",
347
+ customClass: "code-copy-button-tooltip",
348
+ offset: [0, -8]});
349
+ tooltip.show();
350
+ }
351
+ setTimeout(function() {
352
+ if (tooltip) {
353
+ tooltip.hide();
354
+ button.removeAttribute("data-bs-title");
355
+ button.removeAttribute("data-bs-toggle");
356
+ button.removeAttribute("data-bs-placement");
357
+ }
358
+ button.setAttribute("title", currentTitle);
359
+ button.classList.remove('code-copy-button-checked');
360
+ }, 1000);
361
+ // clear code selection
362
+ e.clearSelection();
363
+ });
364
+ function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
365
+ const config = {
366
+ allowHTML: true,
367
+ maxWidth: 500,
368
+ delay: 100,
369
+ arrow: false,
370
+ appendTo: function(el) {
371
+ return el.parentElement;
372
+ },
373
+ interactive: true,
374
+ interactiveBorder: 10,
375
+ theme: 'quarto',
376
+ placement: 'bottom-start',
377
+ };
378
+ if (contentFn) {
379
+ config.content = contentFn;
380
+ }
381
+ if (onTriggerFn) {
382
+ config.onTrigger = onTriggerFn;
383
+ }
384
+ if (onUntriggerFn) {
385
+ config.onUntrigger = onUntriggerFn;
386
+ }
387
+ window.tippy(el, config);
388
+ }
389
+ const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
390
+ for (var i=0; i<noterefs.length; i++) {
391
+ const ref = noterefs[i];
392
+ tippyHover(ref, function() {
393
+ // use id or data attribute instead here
394
+ let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
395
+ try { href = new URL(href).hash; } catch {}
396
+ const id = href.replace(/^#\/?/, "");
397
+ const note = window.document.getElementById(id);
398
+ return note.innerHTML;
399
+ });
400
+ }
401
+ const xrefs = window.document.querySelectorAll('a.quarto-xref');
402
+ const processXRef = (id, note) => {
403
+ // Strip column container classes
404
+ const stripColumnClz = (el) => {
405
+ el.classList.remove("page-full", "page-columns");
406
+ if (el.children) {
407
+ for (const child of el.children) {
408
+ stripColumnClz(child);
409
+ }
410
+ }
411
+ }
412
+ stripColumnClz(note)
413
+ if (id === null || id.startsWith('sec-')) {
414
+ // Special case sections, only their first couple elements
415
+ const container = document.createElement("div");
416
+ if (note.children && note.children.length > 2) {
417
+ container.appendChild(note.children[0].cloneNode(true));
418
+ for (let i = 1; i < note.children.length; i++) {
419
+ const child = note.children[i];
420
+ if (child.tagName === "P" && child.innerText === "") {
421
+ continue;
422
+ } else {
423
+ container.appendChild(child.cloneNode(true));
424
+ break;
425
+ }
426
+ }
427
+ if (window.Quarto?.typesetMath) {
428
+ window.Quarto.typesetMath(container);
429
+ }
430
+ return container.innerHTML
431
+ } else {
432
+ if (window.Quarto?.typesetMath) {
433
+ window.Quarto.typesetMath(note);
434
+ }
435
+ return note.innerHTML;
436
+ }
437
+ } else {
438
+ // Remove any anchor links if they are present
439
+ const anchorLink = note.querySelector('a.anchorjs-link');
440
+ if (anchorLink) {
441
+ anchorLink.remove();
442
+ }
443
+ if (window.Quarto?.typesetMath) {
444
+ window.Quarto.typesetMath(note);
445
+ }
446
+ // TODO in 1.5, we should make sure this works without a callout special case
447
+ if (note.classList.contains("callout")) {
448
+ return note.outerHTML;
449
+ } else {
450
+ return note.innerHTML;
451
+ }
452
+ }
453
+ }
454
+ for (var i=0; i<xrefs.length; i++) {
455
+ const xref = xrefs[i];
456
+ tippyHover(xref, undefined, function(instance) {
457
+ instance.disable();
458
+ let url = xref.getAttribute('href');
459
+ let hash = undefined;
460
+ if (url.startsWith('#')) {
461
+ hash = url;
462
+ } else {
463
+ try { hash = new URL(url).hash; } catch {}
464
+ }
465
+ if (hash) {
466
+ const id = hash.replace(/^#\/?/, "");
467
+ const note = window.document.getElementById(id);
468
+ if (note !== null) {
469
+ try {
470
+ const html = processXRef(id, note.cloneNode(true));
471
+ instance.setContent(html);
472
+ } finally {
473
+ instance.enable();
474
+ instance.show();
475
+ }
476
+ } else {
477
+ // See if we can fetch this
478
+ fetch(url.split('#')[0])
479
+ .then(res => res.text())
480
+ .then(html => {
481
+ const parser = new DOMParser();
482
+ const htmlDoc = parser.parseFromString(html, "text/html");
483
+ const note = htmlDoc.getElementById(id);
484
+ if (note !== null) {
485
+ const html = processXRef(id, note);
486
+ instance.setContent(html);
487
+ }
488
+ }).finally(() => {
489
+ instance.enable();
490
+ instance.show();
491
+ });
492
+ }
493
+ } else {
494
+ // See if we can fetch a full url (with no hash to target)
495
+ // This is a special case and we should probably do some content thinning / targeting
496
+ fetch(url)
497
+ .then(res => res.text())
498
+ .then(html => {
499
+ const parser = new DOMParser();
500
+ const htmlDoc = parser.parseFromString(html, "text/html");
501
+ const note = htmlDoc.querySelector('main.content');
502
+ if (note !== null) {
503
+ // This should only happen for chapter cross references
504
+ // (since there is no id in the URL)
505
+ // remove the first header
506
+ if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
507
+ note.children[0].remove();
508
+ }
509
+ const html = processXRef(null, note);
510
+ instance.setContent(html);
511
+ }
512
+ }).finally(() => {
513
+ instance.enable();
514
+ instance.show();
515
+ });
516
+ }
517
+ }, function(instance) {
518
+ });
519
+ }
520
+ let selectedAnnoteEl;
521
+ const selectorForAnnotation = ( cell, annotation) => {
522
+ let cellAttr = 'data-code-cell="' + cell + '"';
523
+ let lineAttr = 'data-code-annotation="' + annotation + '"';
524
+ const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
525
+ return selector;
526
+ }
527
+ const selectCodeLines = (annoteEl) => {
528
+ const doc = window.document;
529
+ const targetCell = annoteEl.getAttribute("data-target-cell");
530
+ const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
531
+ const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
532
+ const lines = annoteSpan.getAttribute("data-code-lines").split(",");
533
+ const lineIds = lines.map((line) => {
534
+ return targetCell + "-" + line;
535
+ })
536
+ let top = null;
537
+ let height = null;
538
+ let parent = null;
539
+ if (lineIds.length > 0) {
540
+ //compute the position of the single el (top and bottom and make a div)
541
+ const el = window.document.getElementById(lineIds[0]);
542
+ top = el.offsetTop;
543
+ height = el.offsetHeight;
544
+ parent = el.parentElement.parentElement;
545
+ if (lineIds.length > 1) {
546
+ const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
547
+ const bottom = lastEl.offsetTop + lastEl.offsetHeight;
548
+ height = bottom - top;
549
+ }
550
+ if (top !== null && height !== null && parent !== null) {
551
+ // cook up a div (if necessary) and position it
552
+ let div = window.document.getElementById("code-annotation-line-highlight");
553
+ if (div === null) {
554
+ div = window.document.createElement("div");
555
+ div.setAttribute("id", "code-annotation-line-highlight");
556
+ div.style.position = 'absolute';
557
+ parent.appendChild(div);
558
+ }
559
+ div.style.top = top - 2 + "px";
560
+ div.style.height = height + 4 + "px";
561
+ div.style.left = 0;
562
+ let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
563
+ if (gutterDiv === null) {
564
+ gutterDiv = window.document.createElement("div");
565
+ gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
566
+ gutterDiv.style.position = 'absolute';
567
+ const codeCell = window.document.getElementById(targetCell);
568
+ const gutter = codeCell.querySelector('.code-annotation-gutter');
569
+ gutter.appendChild(gutterDiv);
570
+ }
571
+ gutterDiv.style.top = top - 2 + "px";
572
+ gutterDiv.style.height = height + 4 + "px";
573
+ }
574
+ selectedAnnoteEl = annoteEl;
575
+ }
576
+ };
577
+ const unselectCodeLines = () => {
578
+ const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
579
+ elementsIds.forEach((elId) => {
580
+ const div = window.document.getElementById(elId);
581
+ if (div) {
582
+ div.remove();
583
+ }
584
+ });
585
+ selectedAnnoteEl = undefined;
586
+ };
587
+ // Handle positioning of the toggle
588
+ window.addEventListener(
589
+ "resize",
590
+ throttle(() => {
591
+ elRect = undefined;
592
+ if (selectedAnnoteEl) {
593
+ selectCodeLines(selectedAnnoteEl);
594
+ }
595
+ }, 10)
596
+ );
597
+ function throttle(fn, ms) {
598
+ let throttle = false;
599
+ let timer;
600
+ return (...args) => {
601
+ if(!throttle) { // first call gets through
602
+ fn.apply(this, args);
603
+ throttle = true;
604
+ } else { // all the others get throttled
605
+ if(timer) clearTimeout(timer); // cancel #2
606
+ timer = setTimeout(() => {
607
+ fn.apply(this, args);
608
+ timer = throttle = false;
609
+ }, ms);
610
+ }
611
+ };
612
+ }
613
+ // Attach click handler to the DT
614
+ const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
615
+ for (const annoteDlNode of annoteDls) {
616
+ annoteDlNode.addEventListener('click', (event) => {
617
+ const clickedEl = event.target;
618
+ if (clickedEl !== selectedAnnoteEl) {
619
+ unselectCodeLines();
620
+ const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
621
+ if (activeEl) {
622
+ activeEl.classList.remove('code-annotation-active');
623
+ }
624
+ selectCodeLines(clickedEl);
625
+ clickedEl.classList.add('code-annotation-active');
626
+ } else {
627
+ // Unselect the line
628
+ unselectCodeLines();
629
+ clickedEl.classList.remove('code-annotation-active');
630
+ }
631
+ });
632
+ }
633
+ const findCites = (el) => {
634
+ const parentEl = el.parentElement;
635
+ if (parentEl) {
636
+ const cites = parentEl.dataset.cites;
637
+ if (cites) {
638
+ return {
639
+ el,
640
+ cites: cites.split(' ')
641
+ };
642
+ } else {
643
+ return findCites(el.parentElement)
644
+ }
645
+ } else {
646
+ return undefined;
647
+ }
648
+ };
649
+ var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
650
+ for (var i=0; i<bibliorefs.length; i++) {
651
+ const ref = bibliorefs[i];
652
+ const citeInfo = findCites(ref);
653
+ if (citeInfo) {
654
+ tippyHover(citeInfo.el, function() {
655
+ var popup = window.document.createElement('div');
656
+ citeInfo.cites.forEach(function(cite) {
657
+ var citeDiv = window.document.createElement('div');
658
+ citeDiv.classList.add('hanging-indent');
659
+ citeDiv.classList.add('csl-entry');
660
+ var biblioDiv = window.document.getElementById('ref-' + cite);
661
+ if (biblioDiv) {
662
+ citeDiv.innerHTML = biblioDiv.innerHTML;
663
+ }
664
+ popup.appendChild(citeDiv);
665
+ });
666
+ return popup.innerHTML;
667
+ });
668
+ }
669
+ }
670
+ });
671
+ </script>
672
+ </div> <!-- /content -->
673
+
674
+
675
+
676
+
677
+ </body></html>
src/_site/listings.json ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "listing": "/index.html",
4
+ "items": [
5
+ "/posts/post-with-code/index.html",
6
+ "/posts/welcome/index.html"
7
+ ]
8
+ }
9
+ ]
src/_site/posts/post-with-code/image.jpg ADDED
src/_site/posts/post-with-code/index.html ADDED
@@ -0,0 +1,556 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
3
+
4
+ <meta charset="utf-8">
5
+ <meta name="generator" content="quarto-1.4.543">
6
+
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
8
+
9
+ <meta name="author" content="Harlow Malloc">
10
+ <meta name="dcterms.date" content="2024-02-15">
11
+
12
+ <title>Src - Post With Code</title>
13
+ <style>
14
+ code{white-space: pre-wrap;}
15
+ span.smallcaps{font-variant: small-caps;}
16
+ div.columns{display: flex; gap: min(4vw, 1.5em);}
17
+ div.column{flex: auto; overflow-x: auto;}
18
+ div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
19
+ ul.task-list{list-style: none;}
20
+ ul.task-list li input[type="checkbox"] {
21
+ width: 0.8em;
22
+ margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
23
+ vertical-align: middle;
24
+ }
25
+ </style>
26
+
27
+
28
+ <script src="../../site_libs/quarto-nav/quarto-nav.js"></script>
29
+ <script src="../../site_libs/quarto-nav/headroom.min.js"></script>
30
+ <script src="../../site_libs/clipboard/clipboard.min.js"></script>
31
+ <script src="../../site_libs/quarto-search/autocomplete.umd.js"></script>
32
+ <script src="../../site_libs/quarto-search/fuse.min.js"></script>
33
+ <script src="../../site_libs/quarto-search/quarto-search.js"></script>
34
+ <meta name="quarto:offset" content="../../">
35
+ <script src="../../site_libs/quarto-html/quarto.js"></script>
36
+ <script src="../../site_libs/quarto-html/popper.min.js"></script>
37
+ <script src="../../site_libs/quarto-html/tippy.umd.min.js"></script>
38
+ <script src="../../site_libs/quarto-html/anchor.min.js"></script>
39
+ <link href="../../site_libs/quarto-html/tippy.css" rel="stylesheet">
40
+ <link href="../../site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles">
41
+ <script src="../../site_libs/bootstrap/bootstrap.min.js"></script>
42
+ <link href="../../site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
43
+ <link href="../../site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" id="quarto-bootstrap" data-mode="light">
44
+ <script id="quarto-search-options" type="application/json">{
45
+ "location": "navbar",
46
+ "copy-button": false,
47
+ "collapse-after": 3,
48
+ "panel-placement": "end",
49
+ "type": "overlay",
50
+ "limit": 50,
51
+ "keyboard-shortcut": [
52
+ "f",
53
+ "/",
54
+ "s"
55
+ ],
56
+ "show-item-context": false,
57
+ "language": {
58
+ "search-no-results-text": "No results",
59
+ "search-matching-documents-text": "matching documents",
60
+ "search-copy-link-title": "Copy link to search",
61
+ "search-hide-matches-text": "Hide additional matches",
62
+ "search-more-match-text": "more match in this document",
63
+ "search-more-matches-text": "more matches in this document",
64
+ "search-clear-button-title": "Clear",
65
+ "search-text-placeholder": "",
66
+ "search-detached-cancel-button-title": "Cancel",
67
+ "search-submit-button-title": "Submit",
68
+ "search-label": "Search"
69
+ }
70
+ }</script>
71
+
72
+
73
+ <link rel="stylesheet" href="../../styles.css">
74
+ </head>
75
+
76
+ <body class="nav-fixed fullcontent">
77
+
78
+ <div id="quarto-search-results"></div>
79
+ <header id="quarto-header" class="headroom fixed-top quarto-banner">
80
+ <nav class="navbar navbar-expand-lg " data-bs-theme="dark">
81
+ <div class="navbar-container container-fluid">
82
+ <div class="navbar-brand-container mx-auto">
83
+ <a class="navbar-brand" href="../../index.html">
84
+ <span class="navbar-title">Src</span>
85
+ </a>
86
+ </div>
87
+ <div id="quarto-search" class="" title="Search"></div>
88
+ <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
89
+ <span class="navbar-toggler-icon"></span>
90
+ </button>
91
+ <div class="collapse navbar-collapse" id="navbarCollapse">
92
+ <ul class="navbar-nav navbar-nav-scroll ms-auto">
93
+ <li class="nav-item">
94
+ <a class="nav-link" href="../../about.html">
95
+ <span class="menu-text">About</span></a>
96
+ </li>
97
+ <li class="nav-item compact">
98
+ <a class="nav-link" href="https://github.com/"> <i class="bi bi-github" role="img">
99
+ </i>
100
+ <span class="menu-text"></span></a>
101
+ </li>
102
+ <li class="nav-item compact">
103
+ <a class="nav-link" href="https://twitter.com"> <i class="bi bi-twitter" role="img">
104
+ </i>
105
+ <span class="menu-text"></span></a>
106
+ </li>
107
+ </ul>
108
+ </div> <!-- /navcollapse -->
109
+ <div class="quarto-navbar-tools">
110
+ </div>
111
+ </div> <!-- /container-fluid -->
112
+ </nav>
113
+ </header>
114
+ <!-- content -->
115
+ <header id="title-block-header" class="quarto-title-block default page-columns page-full">
116
+ <div class="quarto-title-banner page-columns page-full">
117
+ <div class="quarto-title column-body">
118
+ <h1 class="title">Post With Code</h1>
119
+ <div class="quarto-categories">
120
+ <div class="quarto-category">news</div>
121
+ <div class="quarto-category">code</div>
122
+ <div class="quarto-category">analysis</div>
123
+ </div>
124
+ </div>
125
+ </div>
126
+
127
+
128
+ <div class="quarto-title-meta">
129
+
130
+ <div>
131
+ <div class="quarto-title-meta-heading">Author</div>
132
+ <div class="quarto-title-meta-contents">
133
+ <p>Harlow Malloc </p>
134
+ </div>
135
+ </div>
136
+
137
+ <div>
138
+ <div class="quarto-title-meta-heading">Published</div>
139
+ <div class="quarto-title-meta-contents">
140
+ <p class="date">February 15, 2024</p>
141
+ </div>
142
+ </div>
143
+
144
+
145
+ </div>
146
+
147
+
148
+ </header><div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
149
+ <!-- sidebar -->
150
+ <!-- margin-sidebar -->
151
+
152
+ <!-- main -->
153
+ <main class="content quarto-banner-title-block" id="quarto-document-content">
154
+
155
+
156
+
157
+
158
+
159
+ <p>This is a post with executable code.</p>
160
+
161
+
162
+
163
+ </main> <!-- /main -->
164
+ <script id="quarto-html-after-body" type="application/javascript">
165
+ window.document.addEventListener("DOMContentLoaded", function (event) {
166
+ const toggleBodyColorMode = (bsSheetEl) => {
167
+ const mode = bsSheetEl.getAttribute("data-mode");
168
+ const bodyEl = window.document.querySelector("body");
169
+ if (mode === "dark") {
170
+ bodyEl.classList.add("quarto-dark");
171
+ bodyEl.classList.remove("quarto-light");
172
+ } else {
173
+ bodyEl.classList.add("quarto-light");
174
+ bodyEl.classList.remove("quarto-dark");
175
+ }
176
+ }
177
+ const toggleBodyColorPrimary = () => {
178
+ const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
179
+ if (bsSheetEl) {
180
+ toggleBodyColorMode(bsSheetEl);
181
+ }
182
+ }
183
+ toggleBodyColorPrimary();
184
+ const icon = "";
185
+ const anchorJS = new window.AnchorJS();
186
+ anchorJS.options = {
187
+ placement: 'right',
188
+ icon: icon
189
+ };
190
+ anchorJS.add('.anchored');
191
+ const isCodeAnnotation = (el) => {
192
+ for (const clz of el.classList) {
193
+ if (clz.startsWith('code-annotation-')) {
194
+ return true;
195
+ }
196
+ }
197
+ return false;
198
+ }
199
+ const clipboard = new window.ClipboardJS('.code-copy-button', {
200
+ text: function(trigger) {
201
+ const codeEl = trigger.previousElementSibling.cloneNode(true);
202
+ for (const childEl of codeEl.children) {
203
+ if (isCodeAnnotation(childEl)) {
204
+ childEl.remove();
205
+ }
206
+ }
207
+ return codeEl.innerText;
208
+ }
209
+ });
210
+ clipboard.on('success', function(e) {
211
+ // button target
212
+ const button = e.trigger;
213
+ // don't keep focus
214
+ button.blur();
215
+ // flash "checked"
216
+ button.classList.add('code-copy-button-checked');
217
+ var currentTitle = button.getAttribute("title");
218
+ button.setAttribute("title", "Copied!");
219
+ let tooltip;
220
+ if (window.bootstrap) {
221
+ button.setAttribute("data-bs-toggle", "tooltip");
222
+ button.setAttribute("data-bs-placement", "left");
223
+ button.setAttribute("data-bs-title", "Copied!");
224
+ tooltip = new bootstrap.Tooltip(button,
225
+ { trigger: "manual",
226
+ customClass: "code-copy-button-tooltip",
227
+ offset: [0, -8]});
228
+ tooltip.show();
229
+ }
230
+ setTimeout(function() {
231
+ if (tooltip) {
232
+ tooltip.hide();
233
+ button.removeAttribute("data-bs-title");
234
+ button.removeAttribute("data-bs-toggle");
235
+ button.removeAttribute("data-bs-placement");
236
+ }
237
+ button.setAttribute("title", currentTitle);
238
+ button.classList.remove('code-copy-button-checked');
239
+ }, 1000);
240
+ // clear code selection
241
+ e.clearSelection();
242
+ });
243
+ function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
244
+ const config = {
245
+ allowHTML: true,
246
+ maxWidth: 500,
247
+ delay: 100,
248
+ arrow: false,
249
+ appendTo: function(el) {
250
+ return el.parentElement;
251
+ },
252
+ interactive: true,
253
+ interactiveBorder: 10,
254
+ theme: 'quarto',
255
+ placement: 'bottom-start',
256
+ };
257
+ if (contentFn) {
258
+ config.content = contentFn;
259
+ }
260
+ if (onTriggerFn) {
261
+ config.onTrigger = onTriggerFn;
262
+ }
263
+ if (onUntriggerFn) {
264
+ config.onUntrigger = onUntriggerFn;
265
+ }
266
+ window.tippy(el, config);
267
+ }
268
+ const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
269
+ for (var i=0; i<noterefs.length; i++) {
270
+ const ref = noterefs[i];
271
+ tippyHover(ref, function() {
272
+ // use id or data attribute instead here
273
+ let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
274
+ try { href = new URL(href).hash; } catch {}
275
+ const id = href.replace(/^#\/?/, "");
276
+ const note = window.document.getElementById(id);
277
+ return note.innerHTML;
278
+ });
279
+ }
280
+ const xrefs = window.document.querySelectorAll('a.quarto-xref');
281
+ const processXRef = (id, note) => {
282
+ // Strip column container classes
283
+ const stripColumnClz = (el) => {
284
+ el.classList.remove("page-full", "page-columns");
285
+ if (el.children) {
286
+ for (const child of el.children) {
287
+ stripColumnClz(child);
288
+ }
289
+ }
290
+ }
291
+ stripColumnClz(note)
292
+ if (id === null || id.startsWith('sec-')) {
293
+ // Special case sections, only their first couple elements
294
+ const container = document.createElement("div");
295
+ if (note.children && note.children.length > 2) {
296
+ container.appendChild(note.children[0].cloneNode(true));
297
+ for (let i = 1; i < note.children.length; i++) {
298
+ const child = note.children[i];
299
+ if (child.tagName === "P" && child.innerText === "") {
300
+ continue;
301
+ } else {
302
+ container.appendChild(child.cloneNode(true));
303
+ break;
304
+ }
305
+ }
306
+ if (window.Quarto?.typesetMath) {
307
+ window.Quarto.typesetMath(container);
308
+ }
309
+ return container.innerHTML
310
+ } else {
311
+ if (window.Quarto?.typesetMath) {
312
+ window.Quarto.typesetMath(note);
313
+ }
314
+ return note.innerHTML;
315
+ }
316
+ } else {
317
+ // Remove any anchor links if they are present
318
+ const anchorLink = note.querySelector('a.anchorjs-link');
319
+ if (anchorLink) {
320
+ anchorLink.remove();
321
+ }
322
+ if (window.Quarto?.typesetMath) {
323
+ window.Quarto.typesetMath(note);
324
+ }
325
+ // TODO in 1.5, we should make sure this works without a callout special case
326
+ if (note.classList.contains("callout")) {
327
+ return note.outerHTML;
328
+ } else {
329
+ return note.innerHTML;
330
+ }
331
+ }
332
+ }
333
+ for (var i=0; i<xrefs.length; i++) {
334
+ const xref = xrefs[i];
335
+ tippyHover(xref, undefined, function(instance) {
336
+ instance.disable();
337
+ let url = xref.getAttribute('href');
338
+ let hash = undefined;
339
+ if (url.startsWith('#')) {
340
+ hash = url;
341
+ } else {
342
+ try { hash = new URL(url).hash; } catch {}
343
+ }
344
+ if (hash) {
345
+ const id = hash.replace(/^#\/?/, "");
346
+ const note = window.document.getElementById(id);
347
+ if (note !== null) {
348
+ try {
349
+ const html = processXRef(id, note.cloneNode(true));
350
+ instance.setContent(html);
351
+ } finally {
352
+ instance.enable();
353
+ instance.show();
354
+ }
355
+ } else {
356
+ // See if we can fetch this
357
+ fetch(url.split('#')[0])
358
+ .then(res => res.text())
359
+ .then(html => {
360
+ const parser = new DOMParser();
361
+ const htmlDoc = parser.parseFromString(html, "text/html");
362
+ const note = htmlDoc.getElementById(id);
363
+ if (note !== null) {
364
+ const html = processXRef(id, note);
365
+ instance.setContent(html);
366
+ }
367
+ }).finally(() => {
368
+ instance.enable();
369
+ instance.show();
370
+ });
371
+ }
372
+ } else {
373
+ // See if we can fetch a full url (with no hash to target)
374
+ // This is a special case and we should probably do some content thinning / targeting
375
+ fetch(url)
376
+ .then(res => res.text())
377
+ .then(html => {
378
+ const parser = new DOMParser();
379
+ const htmlDoc = parser.parseFromString(html, "text/html");
380
+ const note = htmlDoc.querySelector('main.content');
381
+ if (note !== null) {
382
+ // This should only happen for chapter cross references
383
+ // (since there is no id in the URL)
384
+ // remove the first header
385
+ if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
386
+ note.children[0].remove();
387
+ }
388
+ const html = processXRef(null, note);
389
+ instance.setContent(html);
390
+ }
391
+ }).finally(() => {
392
+ instance.enable();
393
+ instance.show();
394
+ });
395
+ }
396
+ }, function(instance) {
397
+ });
398
+ }
399
+ let selectedAnnoteEl;
400
+ const selectorForAnnotation = ( cell, annotation) => {
401
+ let cellAttr = 'data-code-cell="' + cell + '"';
402
+ let lineAttr = 'data-code-annotation="' + annotation + '"';
403
+ const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
404
+ return selector;
405
+ }
406
+ const selectCodeLines = (annoteEl) => {
407
+ const doc = window.document;
408
+ const targetCell = annoteEl.getAttribute("data-target-cell");
409
+ const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
410
+ const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
411
+ const lines = annoteSpan.getAttribute("data-code-lines").split(",");
412
+ const lineIds = lines.map((line) => {
413
+ return targetCell + "-" + line;
414
+ })
415
+ let top = null;
416
+ let height = null;
417
+ let parent = null;
418
+ if (lineIds.length > 0) {
419
+ //compute the position of the single el (top and bottom and make a div)
420
+ const el = window.document.getElementById(lineIds[0]);
421
+ top = el.offsetTop;
422
+ height = el.offsetHeight;
423
+ parent = el.parentElement.parentElement;
424
+ if (lineIds.length > 1) {
425
+ const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
426
+ const bottom = lastEl.offsetTop + lastEl.offsetHeight;
427
+ height = bottom - top;
428
+ }
429
+ if (top !== null && height !== null && parent !== null) {
430
+ // cook up a div (if necessary) and position it
431
+ let div = window.document.getElementById("code-annotation-line-highlight");
432
+ if (div === null) {
433
+ div = window.document.createElement("div");
434
+ div.setAttribute("id", "code-annotation-line-highlight");
435
+ div.style.position = 'absolute';
436
+ parent.appendChild(div);
437
+ }
438
+ div.style.top = top - 2 + "px";
439
+ div.style.height = height + 4 + "px";
440
+ div.style.left = 0;
441
+ let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
442
+ if (gutterDiv === null) {
443
+ gutterDiv = window.document.createElement("div");
444
+ gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
445
+ gutterDiv.style.position = 'absolute';
446
+ const codeCell = window.document.getElementById(targetCell);
447
+ const gutter = codeCell.querySelector('.code-annotation-gutter');
448
+ gutter.appendChild(gutterDiv);
449
+ }
450
+ gutterDiv.style.top = top - 2 + "px";
451
+ gutterDiv.style.height = height + 4 + "px";
452
+ }
453
+ selectedAnnoteEl = annoteEl;
454
+ }
455
+ };
456
+ const unselectCodeLines = () => {
457
+ const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
458
+ elementsIds.forEach((elId) => {
459
+ const div = window.document.getElementById(elId);
460
+ if (div) {
461
+ div.remove();
462
+ }
463
+ });
464
+ selectedAnnoteEl = undefined;
465
+ };
466
+ // Handle positioning of the toggle
467
+ window.addEventListener(
468
+ "resize",
469
+ throttle(() => {
470
+ elRect = undefined;
471
+ if (selectedAnnoteEl) {
472
+ selectCodeLines(selectedAnnoteEl);
473
+ }
474
+ }, 10)
475
+ );
476
+ function throttle(fn, ms) {
477
+ let throttle = false;
478
+ let timer;
479
+ return (...args) => {
480
+ if(!throttle) { // first call gets through
481
+ fn.apply(this, args);
482
+ throttle = true;
483
+ } else { // all the others get throttled
484
+ if(timer) clearTimeout(timer); // cancel #2
485
+ timer = setTimeout(() => {
486
+ fn.apply(this, args);
487
+ timer = throttle = false;
488
+ }, ms);
489
+ }
490
+ };
491
+ }
492
+ // Attach click handler to the DT
493
+ const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
494
+ for (const annoteDlNode of annoteDls) {
495
+ annoteDlNode.addEventListener('click', (event) => {
496
+ const clickedEl = event.target;
497
+ if (clickedEl !== selectedAnnoteEl) {
498
+ unselectCodeLines();
499
+ const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
500
+ if (activeEl) {
501
+ activeEl.classList.remove('code-annotation-active');
502
+ }
503
+ selectCodeLines(clickedEl);
504
+ clickedEl.classList.add('code-annotation-active');
505
+ } else {
506
+ // Unselect the line
507
+ unselectCodeLines();
508
+ clickedEl.classList.remove('code-annotation-active');
509
+ }
510
+ });
511
+ }
512
+ const findCites = (el) => {
513
+ const parentEl = el.parentElement;
514
+ if (parentEl) {
515
+ const cites = parentEl.dataset.cites;
516
+ if (cites) {
517
+ return {
518
+ el,
519
+ cites: cites.split(' ')
520
+ };
521
+ } else {
522
+ return findCites(el.parentElement)
523
+ }
524
+ } else {
525
+ return undefined;
526
+ }
527
+ };
528
+ var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
529
+ for (var i=0; i<bibliorefs.length; i++) {
530
+ const ref = bibliorefs[i];
531
+ const citeInfo = findCites(ref);
532
+ if (citeInfo) {
533
+ tippyHover(citeInfo.el, function() {
534
+ var popup = window.document.createElement('div');
535
+ citeInfo.cites.forEach(function(cite) {
536
+ var citeDiv = window.document.createElement('div');
537
+ citeDiv.classList.add('hanging-indent');
538
+ citeDiv.classList.add('csl-entry');
539
+ var biblioDiv = window.document.getElementById('ref-' + cite);
540
+ if (biblioDiv) {
541
+ citeDiv.innerHTML = biblioDiv.innerHTML;
542
+ }
543
+ popup.appendChild(citeDiv);
544
+ });
545
+ return popup.innerHTML;
546
+ });
547
+ }
548
+ }
549
+ });
550
+ </script>
551
+ </div> <!-- /content -->
552
+
553
+
554
+
555
+
556
+ </body></html>
src/_site/posts/welcome/index.html ADDED
@@ -0,0 +1,556 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
3
+
4
+ <meta charset="utf-8">
5
+ <meta name="generator" content="quarto-1.4.543">
6
+
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
8
+
9
+ <meta name="author" content="Tristan O’Malley">
10
+ <meta name="dcterms.date" content="2024-02-12">
11
+
12
+ <title>Src - Welcome To My Blog</title>
13
+ <style>
14
+ code{white-space: pre-wrap;}
15
+ span.smallcaps{font-variant: small-caps;}
16
+ div.columns{display: flex; gap: min(4vw, 1.5em);}
17
+ div.column{flex: auto; overflow-x: auto;}
18
+ div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
19
+ ul.task-list{list-style: none;}
20
+ ul.task-list li input[type="checkbox"] {
21
+ width: 0.8em;
22
+ margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
23
+ vertical-align: middle;
24
+ }
25
+ </style>
26
+
27
+
28
+ <script src="../../site_libs/quarto-nav/quarto-nav.js"></script>
29
+ <script src="../../site_libs/quarto-nav/headroom.min.js"></script>
30
+ <script src="../../site_libs/clipboard/clipboard.min.js"></script>
31
+ <script src="../../site_libs/quarto-search/autocomplete.umd.js"></script>
32
+ <script src="../../site_libs/quarto-search/fuse.min.js"></script>
33
+ <script src="../../site_libs/quarto-search/quarto-search.js"></script>
34
+ <meta name="quarto:offset" content="../../">
35
+ <script src="../../site_libs/quarto-html/quarto.js"></script>
36
+ <script src="../../site_libs/quarto-html/popper.min.js"></script>
37
+ <script src="../../site_libs/quarto-html/tippy.umd.min.js"></script>
38
+ <script src="../../site_libs/quarto-html/anchor.min.js"></script>
39
+ <link href="../../site_libs/quarto-html/tippy.css" rel="stylesheet">
40
+ <link href="../../site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles">
41
+ <script src="../../site_libs/bootstrap/bootstrap.min.js"></script>
42
+ <link href="../../site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
43
+ <link href="../../site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" id="quarto-bootstrap" data-mode="light">
44
+ <script id="quarto-search-options" type="application/json">{
45
+ "location": "navbar",
46
+ "copy-button": false,
47
+ "collapse-after": 3,
48
+ "panel-placement": "end",
49
+ "type": "overlay",
50
+ "limit": 50,
51
+ "keyboard-shortcut": [
52
+ "f",
53
+ "/",
54
+ "s"
55
+ ],
56
+ "show-item-context": false,
57
+ "language": {
58
+ "search-no-results-text": "No results",
59
+ "search-matching-documents-text": "matching documents",
60
+ "search-copy-link-title": "Copy link to search",
61
+ "search-hide-matches-text": "Hide additional matches",
62
+ "search-more-match-text": "more match in this document",
63
+ "search-more-matches-text": "more matches in this document",
64
+ "search-clear-button-title": "Clear",
65
+ "search-text-placeholder": "",
66
+ "search-detached-cancel-button-title": "Cancel",
67
+ "search-submit-button-title": "Submit",
68
+ "search-label": "Search"
69
+ }
70
+ }</script>
71
+
72
+
73
+ <link rel="stylesheet" href="../../styles.css">
74
+ </head>
75
+
76
+ <body class="nav-fixed fullcontent">
77
+
78
+ <div id="quarto-search-results"></div>
79
+ <header id="quarto-header" class="headroom fixed-top quarto-banner">
80
+ <nav class="navbar navbar-expand-lg " data-bs-theme="dark">
81
+ <div class="navbar-container container-fluid">
82
+ <div class="navbar-brand-container mx-auto">
83
+ <a class="navbar-brand" href="../../index.html">
84
+ <span class="navbar-title">Src</span>
85
+ </a>
86
+ </div>
87
+ <div id="quarto-search" class="" title="Search"></div>
88
+ <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
89
+ <span class="navbar-toggler-icon"></span>
90
+ </button>
91
+ <div class="collapse navbar-collapse" id="navbarCollapse">
92
+ <ul class="navbar-nav navbar-nav-scroll ms-auto">
93
+ <li class="nav-item">
94
+ <a class="nav-link" href="../../about.html">
95
+ <span class="menu-text">About</span></a>
96
+ </li>
97
+ <li class="nav-item compact">
98
+ <a class="nav-link" href="https://github.com/"> <i class="bi bi-github" role="img">
99
+ </i>
100
+ <span class="menu-text"></span></a>
101
+ </li>
102
+ <li class="nav-item compact">
103
+ <a class="nav-link" href="https://twitter.com"> <i class="bi bi-twitter" role="img">
104
+ </i>
105
+ <span class="menu-text"></span></a>
106
+ </li>
107
+ </ul>
108
+ </div> <!-- /navcollapse -->
109
+ <div class="quarto-navbar-tools">
110
+ </div>
111
+ </div> <!-- /container-fluid -->
112
+ </nav>
113
+ </header>
114
+ <!-- content -->
115
+ <header id="title-block-header" class="quarto-title-block default page-columns page-full">
116
+ <div class="quarto-title-banner page-columns page-full">
117
+ <div class="quarto-title column-body">
118
+ <h1 class="title">Welcome To My Blog</h1>
119
+ <div class="quarto-categories">
120
+ <div class="quarto-category">news</div>
121
+ </div>
122
+ </div>
123
+ </div>
124
+
125
+
126
+ <div class="quarto-title-meta">
127
+
128
+ <div>
129
+ <div class="quarto-title-meta-heading">Author</div>
130
+ <div class="quarto-title-meta-contents">
131
+ <p>Tristan O’Malley </p>
132
+ </div>
133
+ </div>
134
+
135
+ <div>
136
+ <div class="quarto-title-meta-heading">Published</div>
137
+ <div class="quarto-title-meta-contents">
138
+ <p class="date">February 12, 2024</p>
139
+ </div>
140
+ </div>
141
+
142
+
143
+ </div>
144
+
145
+
146
+ </header><div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
147
+ <!-- sidebar -->
148
+ <!-- margin-sidebar -->
149
+
150
+ <!-- main -->
151
+ <main class="content quarto-banner-title-block" id="quarto-document-content">
152
+
153
+
154
+
155
+
156
+
157
+ <p>This is the first post in a Quarto blog. Welcome!</p>
158
+ <p><img src="thumbnail.jpg" class="img-fluid"></p>
159
+ <p>Since this post doesn’t specify an explicit <code>image</code>, the first image in the post will be used in the listing page of posts.</p>
160
+
161
+
162
+
163
+ </main> <!-- /main -->
164
+ <script id="quarto-html-after-body" type="application/javascript">
165
+ window.document.addEventListener("DOMContentLoaded", function (event) {
166
+ const toggleBodyColorMode = (bsSheetEl) => {
167
+ const mode = bsSheetEl.getAttribute("data-mode");
168
+ const bodyEl = window.document.querySelector("body");
169
+ if (mode === "dark") {
170
+ bodyEl.classList.add("quarto-dark");
171
+ bodyEl.classList.remove("quarto-light");
172
+ } else {
173
+ bodyEl.classList.add("quarto-light");
174
+ bodyEl.classList.remove("quarto-dark");
175
+ }
176
+ }
177
+ const toggleBodyColorPrimary = () => {
178
+ const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
179
+ if (bsSheetEl) {
180
+ toggleBodyColorMode(bsSheetEl);
181
+ }
182
+ }
183
+ toggleBodyColorPrimary();
184
+ const icon = "";
185
+ const anchorJS = new window.AnchorJS();
186
+ anchorJS.options = {
187
+ placement: 'right',
188
+ icon: icon
189
+ };
190
+ anchorJS.add('.anchored');
191
+ const isCodeAnnotation = (el) => {
192
+ for (const clz of el.classList) {
193
+ if (clz.startsWith('code-annotation-')) {
194
+ return true;
195
+ }
196
+ }
197
+ return false;
198
+ }
199
+ const clipboard = new window.ClipboardJS('.code-copy-button', {
200
+ text: function(trigger) {
201
+ const codeEl = trigger.previousElementSibling.cloneNode(true);
202
+ for (const childEl of codeEl.children) {
203
+ if (isCodeAnnotation(childEl)) {
204
+ childEl.remove();
205
+ }
206
+ }
207
+ return codeEl.innerText;
208
+ }
209
+ });
210
+ clipboard.on('success', function(e) {
211
+ // button target
212
+ const button = e.trigger;
213
+ // don't keep focus
214
+ button.blur();
215
+ // flash "checked"
216
+ button.classList.add('code-copy-button-checked');
217
+ var currentTitle = button.getAttribute("title");
218
+ button.setAttribute("title", "Copied!");
219
+ let tooltip;
220
+ if (window.bootstrap) {
221
+ button.setAttribute("data-bs-toggle", "tooltip");
222
+ button.setAttribute("data-bs-placement", "left");
223
+ button.setAttribute("data-bs-title", "Copied!");
224
+ tooltip = new bootstrap.Tooltip(button,
225
+ { trigger: "manual",
226
+ customClass: "code-copy-button-tooltip",
227
+ offset: [0, -8]});
228
+ tooltip.show();
229
+ }
230
+ setTimeout(function() {
231
+ if (tooltip) {
232
+ tooltip.hide();
233
+ button.removeAttribute("data-bs-title");
234
+ button.removeAttribute("data-bs-toggle");
235
+ button.removeAttribute("data-bs-placement");
236
+ }
237
+ button.setAttribute("title", currentTitle);
238
+ button.classList.remove('code-copy-button-checked');
239
+ }, 1000);
240
+ // clear code selection
241
+ e.clearSelection();
242
+ });
243
+ function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
244
+ const config = {
245
+ allowHTML: true,
246
+ maxWidth: 500,
247
+ delay: 100,
248
+ arrow: false,
249
+ appendTo: function(el) {
250
+ return el.parentElement;
251
+ },
252
+ interactive: true,
253
+ interactiveBorder: 10,
254
+ theme: 'quarto',
255
+ placement: 'bottom-start',
256
+ };
257
+ if (contentFn) {
258
+ config.content = contentFn;
259
+ }
260
+ if (onTriggerFn) {
261
+ config.onTrigger = onTriggerFn;
262
+ }
263
+ if (onUntriggerFn) {
264
+ config.onUntrigger = onUntriggerFn;
265
+ }
266
+ window.tippy(el, config);
267
+ }
268
+ const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
269
+ for (var i=0; i<noterefs.length; i++) {
270
+ const ref = noterefs[i];
271
+ tippyHover(ref, function() {
272
+ // use id or data attribute instead here
273
+ let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
274
+ try { href = new URL(href).hash; } catch {}
275
+ const id = href.replace(/^#\/?/, "");
276
+ const note = window.document.getElementById(id);
277
+ return note.innerHTML;
278
+ });
279
+ }
280
+ const xrefs = window.document.querySelectorAll('a.quarto-xref');
281
+ const processXRef = (id, note) => {
282
+ // Strip column container classes
283
+ const stripColumnClz = (el) => {
284
+ el.classList.remove("page-full", "page-columns");
285
+ if (el.children) {
286
+ for (const child of el.children) {
287
+ stripColumnClz(child);
288
+ }
289
+ }
290
+ }
291
+ stripColumnClz(note)
292
+ if (id === null || id.startsWith('sec-')) {
293
+ // Special case sections, only their first couple elements
294
+ const container = document.createElement("div");
295
+ if (note.children && note.children.length > 2) {
296
+ container.appendChild(note.children[0].cloneNode(true));
297
+ for (let i = 1; i < note.children.length; i++) {
298
+ const child = note.children[i];
299
+ if (child.tagName === "P" && child.innerText === "") {
300
+ continue;
301
+ } else {
302
+ container.appendChild(child.cloneNode(true));
303
+ break;
304
+ }
305
+ }
306
+ if (window.Quarto?.typesetMath) {
307
+ window.Quarto.typesetMath(container);
308
+ }
309
+ return container.innerHTML
310
+ } else {
311
+ if (window.Quarto?.typesetMath) {
312
+ window.Quarto.typesetMath(note);
313
+ }
314
+ return note.innerHTML;
315
+ }
316
+ } else {
317
+ // Remove any anchor links if they are present
318
+ const anchorLink = note.querySelector('a.anchorjs-link');
319
+ if (anchorLink) {
320
+ anchorLink.remove();
321
+ }
322
+ if (window.Quarto?.typesetMath) {
323
+ window.Quarto.typesetMath(note);
324
+ }
325
+ // TODO in 1.5, we should make sure this works without a callout special case
326
+ if (note.classList.contains("callout")) {
327
+ return note.outerHTML;
328
+ } else {
329
+ return note.innerHTML;
330
+ }
331
+ }
332
+ }
333
+ for (var i=0; i<xrefs.length; i++) {
334
+ const xref = xrefs[i];
335
+ tippyHover(xref, undefined, function(instance) {
336
+ instance.disable();
337
+ let url = xref.getAttribute('href');
338
+ let hash = undefined;
339
+ if (url.startsWith('#')) {
340
+ hash = url;
341
+ } else {
342
+ try { hash = new URL(url).hash; } catch {}
343
+ }
344
+ if (hash) {
345
+ const id = hash.replace(/^#\/?/, "");
346
+ const note = window.document.getElementById(id);
347
+ if (note !== null) {
348
+ try {
349
+ const html = processXRef(id, note.cloneNode(true));
350
+ instance.setContent(html);
351
+ } finally {
352
+ instance.enable();
353
+ instance.show();
354
+ }
355
+ } else {
356
+ // See if we can fetch this
357
+ fetch(url.split('#')[0])
358
+ .then(res => res.text())
359
+ .then(html => {
360
+ const parser = new DOMParser();
361
+ const htmlDoc = parser.parseFromString(html, "text/html");
362
+ const note = htmlDoc.getElementById(id);
363
+ if (note !== null) {
364
+ const html = processXRef(id, note);
365
+ instance.setContent(html);
366
+ }
367
+ }).finally(() => {
368
+ instance.enable();
369
+ instance.show();
370
+ });
371
+ }
372
+ } else {
373
+ // See if we can fetch a full url (with no hash to target)
374
+ // This is a special case and we should probably do some content thinning / targeting
375
+ fetch(url)
376
+ .then(res => res.text())
377
+ .then(html => {
378
+ const parser = new DOMParser();
379
+ const htmlDoc = parser.parseFromString(html, "text/html");
380
+ const note = htmlDoc.querySelector('main.content');
381
+ if (note !== null) {
382
+ // This should only happen for chapter cross references
383
+ // (since there is no id in the URL)
384
+ // remove the first header
385
+ if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
386
+ note.children[0].remove();
387
+ }
388
+ const html = processXRef(null, note);
389
+ instance.setContent(html);
390
+ }
391
+ }).finally(() => {
392
+ instance.enable();
393
+ instance.show();
394
+ });
395
+ }
396
+ }, function(instance) {
397
+ });
398
+ }
399
+ let selectedAnnoteEl;
400
+ const selectorForAnnotation = ( cell, annotation) => {
401
+ let cellAttr = 'data-code-cell="' + cell + '"';
402
+ let lineAttr = 'data-code-annotation="' + annotation + '"';
403
+ const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
404
+ return selector;
405
+ }
406
+ const selectCodeLines = (annoteEl) => {
407
+ const doc = window.document;
408
+ const targetCell = annoteEl.getAttribute("data-target-cell");
409
+ const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
410
+ const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
411
+ const lines = annoteSpan.getAttribute("data-code-lines").split(",");
412
+ const lineIds = lines.map((line) => {
413
+ return targetCell + "-" + line;
414
+ })
415
+ let top = null;
416
+ let height = null;
417
+ let parent = null;
418
+ if (lineIds.length > 0) {
419
+ //compute the position of the single el (top and bottom and make a div)
420
+ const el = window.document.getElementById(lineIds[0]);
421
+ top = el.offsetTop;
422
+ height = el.offsetHeight;
423
+ parent = el.parentElement.parentElement;
424
+ if (lineIds.length > 1) {
425
+ const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
426
+ const bottom = lastEl.offsetTop + lastEl.offsetHeight;
427
+ height = bottom - top;
428
+ }
429
+ if (top !== null && height !== null && parent !== null) {
430
+ // cook up a div (if necessary) and position it
431
+ let div = window.document.getElementById("code-annotation-line-highlight");
432
+ if (div === null) {
433
+ div = window.document.createElement("div");
434
+ div.setAttribute("id", "code-annotation-line-highlight");
435
+ div.style.position = 'absolute';
436
+ parent.appendChild(div);
437
+ }
438
+ div.style.top = top - 2 + "px";
439
+ div.style.height = height + 4 + "px";
440
+ div.style.left = 0;
441
+ let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
442
+ if (gutterDiv === null) {
443
+ gutterDiv = window.document.createElement("div");
444
+ gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
445
+ gutterDiv.style.position = 'absolute';
446
+ const codeCell = window.document.getElementById(targetCell);
447
+ const gutter = codeCell.querySelector('.code-annotation-gutter');
448
+ gutter.appendChild(gutterDiv);
449
+ }
450
+ gutterDiv.style.top = top - 2 + "px";
451
+ gutterDiv.style.height = height + 4 + "px";
452
+ }
453
+ selectedAnnoteEl = annoteEl;
454
+ }
455
+ };
456
+ const unselectCodeLines = () => {
457
+ const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
458
+ elementsIds.forEach((elId) => {
459
+ const div = window.document.getElementById(elId);
460
+ if (div) {
461
+ div.remove();
462
+ }
463
+ });
464
+ selectedAnnoteEl = undefined;
465
+ };
466
+ // Handle positioning of the toggle
467
+ window.addEventListener(
468
+ "resize",
469
+ throttle(() => {
470
+ elRect = undefined;
471
+ if (selectedAnnoteEl) {
472
+ selectCodeLines(selectedAnnoteEl);
473
+ }
474
+ }, 10)
475
+ );
476
+ function throttle(fn, ms) {
477
+ let throttle = false;
478
+ let timer;
479
+ return (...args) => {
480
+ if(!throttle) { // first call gets through
481
+ fn.apply(this, args);
482
+ throttle = true;
483
+ } else { // all the others get throttled
484
+ if(timer) clearTimeout(timer); // cancel #2
485
+ timer = setTimeout(() => {
486
+ fn.apply(this, args);
487
+ timer = throttle = false;
488
+ }, ms);
489
+ }
490
+ };
491
+ }
492
+ // Attach click handler to the DT
493
+ const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
494
+ for (const annoteDlNode of annoteDls) {
495
+ annoteDlNode.addEventListener('click', (event) => {
496
+ const clickedEl = event.target;
497
+ if (clickedEl !== selectedAnnoteEl) {
498
+ unselectCodeLines();
499
+ const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
500
+ if (activeEl) {
501
+ activeEl.classList.remove('code-annotation-active');
502
+ }
503
+ selectCodeLines(clickedEl);
504
+ clickedEl.classList.add('code-annotation-active');
505
+ } else {
506
+ // Unselect the line
507
+ unselectCodeLines();
508
+ clickedEl.classList.remove('code-annotation-active');
509
+ }
510
+ });
511
+ }
512
+ const findCites = (el) => {
513
+ const parentEl = el.parentElement;
514
+ if (parentEl) {
515
+ const cites = parentEl.dataset.cites;
516
+ if (cites) {
517
+ return {
518
+ el,
519
+ cites: cites.split(' ')
520
+ };
521
+ } else {
522
+ return findCites(el.parentElement)
523
+ }
524
+ } else {
525
+ return undefined;
526
+ }
527
+ };
528
+ var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
529
+ for (var i=0; i<bibliorefs.length; i++) {
530
+ const ref = bibliorefs[i];
531
+ const citeInfo = findCites(ref);
532
+ if (citeInfo) {
533
+ tippyHover(citeInfo.el, function() {
534
+ var popup = window.document.createElement('div');
535
+ citeInfo.cites.forEach(function(cite) {
536
+ var citeDiv = window.document.createElement('div');
537
+ citeDiv.classList.add('hanging-indent');
538
+ citeDiv.classList.add('csl-entry');
539
+ var biblioDiv = window.document.getElementById('ref-' + cite);
540
+ if (biblioDiv) {
541
+ citeDiv.innerHTML = biblioDiv.innerHTML;
542
+ }
543
+ popup.appendChild(citeDiv);
544
+ });
545
+ return popup.innerHTML;
546
+ });
547
+ }
548
+ }
549
+ });
550
+ </script>
551
+ </div> <!-- /content -->
552
+
553
+
554
+
555
+
556
+ </body></html>
src/_site/posts/welcome/thumbnail.jpg ADDED
src/_site/profile.jpg ADDED
src/_site/search.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "objectID": "about.html",
4
+ "href": "about.html",
5
+ "title": "About",
6
+ "section": "",
7
+ "text": "About this blog"
8
+ },
9
+ {
10
+ "objectID": "posts/welcome/index.html",
11
+ "href": "posts/welcome/index.html",
12
+ "title": "Welcome To My Blog",
13
+ "section": "",
14
+ "text": "This is the first post in a Quarto blog. Welcome!\n\nSince this post doesn’t specify an explicit image, the first image in the post will be used in the listing page of posts."
15
+ },
16
+ {
17
+ "objectID": "posts/post-with-code/index.html",
18
+ "href": "posts/post-with-code/index.html",
19
+ "title": "Post With Code",
20
+ "section": "",
21
+ "text": "This is a post with executable code."
22
+ },
23
+ {
24
+ "objectID": "index.html",
25
+ "href": "index.html",
26
+ "title": "Src",
27
+ "section": "",
28
+ "text": "Post With Code\n\n\n\n\n\n\nnews\n\n\ncode\n\n\nanalysis\n\n\n\n\n\n\n\n\n\nFeb 15, 2024\n\n\nHarlow Malloc\n\n\n\n\n\n\n\n\n\n\n\n\nWelcome To My Blog\n\n\n\n\n\n\nnews\n\n\n\n\n\n\n\n\n\nFeb 12, 2024\n\n\nTristan O’Malley\n\n\n\n\n\n\nNo matching items"
29
+ }
30
+ ]
src/_site/site_libs/bootstrap/bootstrap-icons.css ADDED
The diff for this file is too large to render. See raw diff
 
src/_site/site_libs/bootstrap/bootstrap-icons.woff ADDED
Binary file (176 kB). View file
 
src/_site/site_libs/bootstrap/bootstrap.min.css ADDED
The diff for this file is too large to render. See raw diff
 
src/_site/site_libs/bootstrap/bootstrap.min.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap v5.3.1 (https://getbootstrap.com/)
3
+ * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ */
6
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i="transitionend",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),s=t=>{t.dispatchEvent(new Event(i))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(n(t)):null,a=t=>{if(!o(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),c=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,f=[],p=()=>"rtl"===document.documentElement.dir,m=t=>{var e;e=()=>{const e=u();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(f.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of f)t()})),f.push(e)):e()},g=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,_=(t,e,n=!0)=>{if(!n)return void g(t);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),g(t))};e.addEventListener(i,a),setTimeout((()=>{r||s(e)}),o)},b=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,A={};let E=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},C=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function O(t,e){return e&&`${e}::${E++}`||t.uidEvent||E++}function x(t){const e=O(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function L(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=I(t);return C.has(o)||(o=t),[n,s,o]}function S(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=L(e,i,n);if(e in T){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=x(t),c=l[a]||(l[a]={}),h=k(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=O(r,e.replace(v,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return P(s,{delegateTarget:r}),n.oneOff&&N.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return P(n,{delegateTarget:t}),i.oneOff&&N.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function D(t,e,i,n,s){const o=k(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function $(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&D(t,e,i,r.callable,r.delegationSelector)}function I(t){return t=t.replace(y,""),T[t]||t}const N={on(t,e,i,n){S(t,e,i,n,!1)},one(t,e,i,n){S(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=L(e,i,n),a=r!==e,l=x(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))$(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(w,"");a&&!e.includes(s)||D(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;D(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=u();let s=null,o=!0,r=!0,a=!1;e!==I(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=P(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function P(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function M(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function j(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const F={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${j(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${j(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=M(t.dataset[n])}return e},getDataAttribute:(t,e)=>M(t.getAttribute(`data-bs-${j(e)}`))};class H{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=o(e)?F.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...o(e)?F.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],r=o(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`)}var i}}class W extends H{constructor(t,i){super(),(t=r(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),N.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){_(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.1"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const B=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return n(e)},z={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!l(t)&&a(t)))},getSelectorFromElement(t){const e=B(t);return e&&z.findOne(e)?e:null},getElementFromSelector(t){const e=B(t);return e?z.findOne(e):null},getMultipleElementsFromSelector(t){const e=B(t);return e?z.find(e):[]}},R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;N.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),l(this))return;const s=z.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},q=".bs.alert",V=`close${q}`,K=`closed${q}`;class Q extends W{static get NAME(){return"alert"}close(){if(N.trigger(this._element,V).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),N.trigger(this._element,K),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(Q,"close"),m(Q);const X='[data-bs-toggle="button"]';class Y extends W{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=Y.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}N.on(document,"click.bs.button.data-api",X,(t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()})),m(Y);const U=".bs.swipe",G=`touchstart${U}`,J=`touchmove${U}`,Z=`touchend${U}`,tt=`pointerdown${U}`,et=`pointerup${U}`,it={endCallback:null,leftCallback:null,rightCallback:null},nt={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class st extends H{constructor(t,e){super(),this._element=t,t&&st.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return it}static get DefaultType(){return nt}static get NAME(){return"swipe"}dispose(){N.off(this._element,U)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),g(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&g(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(N.on(this._element,tt,(t=>this._start(t))),N.on(this._element,et,(t=>this._end(t))),this._element.classList.add("pointer-event")):(N.on(this._element,G,(t=>this._start(t))),N.on(this._element,J,(t=>this._move(t))),N.on(this._element,Z,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const ot=".bs.carousel",rt=".data-api",at="next",lt="prev",ct="left",ht="right",dt=`slide${ot}`,ut=`slid${ot}`,ft=`keydown${ot}`,pt=`mouseenter${ot}`,mt=`mouseleave${ot}`,gt=`dragstart${ot}`,_t=`load${ot}${rt}`,bt=`click${ot}${rt}`,vt="carousel",yt="active",wt=".active",At=".carousel-item",Et=wt+At,Tt={ArrowLeft:ht,ArrowRight:ct},Ct={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Ot={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class xt extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=z.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===vt&&this.cycle()}static get Default(){return Ct}static get DefaultType(){return Ot}static get NAME(){return"carousel"}next(){this._slide(at)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(lt)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?N.one(this._element,ut,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void N.one(this._element,ut,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?at:lt;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&N.on(this._element,ft,(t=>this._keydown(t))),"hover"===this._config.pause&&(N.on(this._element,pt,(()=>this.pause())),N.on(this._element,mt,(()=>this._maybeEnableCycle()))),this._config.touch&&st.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of z.find(".carousel-item img",this._element))N.on(t,gt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ct)),rightCallback:()=>this._slide(this._directionToOrder(ht)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new st(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Tt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=z.findOne(wt,this._indicatorsElement);e.classList.remove(yt),e.removeAttribute("aria-current");const i=z.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(yt),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===at,s=e||b(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>N.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(dt).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),d(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(yt),i.classList.remove(yt,c,l),this._isSliding=!1,r(ut)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return z.findOne(Et,this._element)}_getItems(){return z.find(At,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===ct?lt:at:t===ct?at:lt}_orderToDirection(t){return p()?t===lt?ct:ht:t===lt?ht:ct}static jQueryInterface(t){return this.each((function(){const e=xt.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}N.on(document,bt,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=z.getElementFromSelector(this);if(!e||!e.classList.contains(vt))return;t.preventDefault();const i=xt.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===F.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),N.on(window,_t,(()=>{const t=z.find('[data-bs-ride="carousel"]');for(const e of t)xt.getOrCreateInstance(e)})),m(xt);const kt=".bs.collapse",Lt=`show${kt}`,St=`shown${kt}`,Dt=`hide${kt}`,$t=`hidden${kt}`,It=`click${kt}.data-api`,Nt="show",Pt="collapse",Mt="collapsing",jt=`:scope .${Pt} .${Pt}`,Ft='[data-bs-toggle="collapse"]',Ht={parent:null,toggle:!0},Wt={parent:"(null|element)",toggle:"boolean"};class Bt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=z.find(Ft);for(const t of i){const e=z.getSelectorFromElement(t),i=z.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Ht}static get DefaultType(){return Wt}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>Bt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(N.trigger(this._element,Lt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Pt),this._element.classList.add(Mt),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt,Nt),this._element.style[e]="",N.trigger(this._element,St)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(N.trigger(this._element,Dt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,d(this._element),this._element.classList.add(Mt),this._element.classList.remove(Pt,Nt);for(const t of this._triggerArray){const e=z.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt),N.trigger(this._element,$t)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(Nt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=r(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Ft);for(const e of t){const t=z.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=z.find(jt,this._config.parent);return z.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Bt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}N.on(document,It,Ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of z.getMultipleElementsFromSelector(this))Bt.getOrCreateInstance(t,{toggle:!1}).toggle()})),m(Bt);var zt="top",Rt="bottom",qt="right",Vt="left",Kt="auto",Qt=[zt,Rt,qt,Vt],Xt="start",Yt="end",Ut="clippingParents",Gt="viewport",Jt="popper",Zt="reference",te=Qt.reduce((function(t,e){return t.concat([e+"-"+Xt,e+"-"+Yt])}),[]),ee=[].concat(Qt,[Kt]).reduce((function(t,e){return t.concat([e,e+"-"+Xt,e+"-"+Yt])}),[]),ie="beforeRead",ne="read",se="afterRead",oe="beforeMain",re="main",ae="afterMain",le="beforeWrite",ce="write",he="afterWrite",de=[ie,ne,se,oe,re,ae,le,ce,he];function ue(t){return t?(t.nodeName||"").toLowerCase():null}function fe(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function pe(t){return t instanceof fe(t).Element||t instanceof Element}function me(t){return t instanceof fe(t).HTMLElement||t instanceof HTMLElement}function ge(t){return"undefined"!=typeof ShadowRoot&&(t instanceof fe(t).ShadowRoot||t instanceof ShadowRoot)}const _e={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];me(s)&&ue(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});me(n)&&ue(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function be(t){return t.split("-")[0]}var ve=Math.max,ye=Math.min,we=Math.round;function Ae(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function Ee(){return!/^((?!chrome|android).)*safari/i.test(Ae())}function Te(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&me(t)&&(s=t.offsetWidth>0&&we(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&we(n.height)/t.offsetHeight||1);var r=(pe(t)?fe(t):window).visualViewport,a=!Ee()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function Ce(t){var e=Te(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Oe(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ge(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function xe(t){return fe(t).getComputedStyle(t)}function ke(t){return["table","td","th"].indexOf(ue(t))>=0}function Le(t){return((pe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Se(t){return"html"===ue(t)?t:t.assignedSlot||t.parentNode||(ge(t)?t.host:null)||Le(t)}function De(t){return me(t)&&"fixed"!==xe(t).position?t.offsetParent:null}function $e(t){for(var e=fe(t),i=De(t);i&&ke(i)&&"static"===xe(i).position;)i=De(i);return i&&("html"===ue(i)||"body"===ue(i)&&"static"===xe(i).position)?e:i||function(t){var e=/firefox/i.test(Ae());if(/Trident/i.test(Ae())&&me(t)&&"fixed"===xe(t).position)return null;var i=Se(t);for(ge(i)&&(i=i.host);me(i)&&["html","body"].indexOf(ue(i))<0;){var n=xe(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Ie(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ne(t,e,i){return ve(t,ye(e,i))}function Pe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Me(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const je={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=be(i.placement),l=Ie(a),c=[Vt,qt].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return Pe("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Me(t,Qt))}(s.padding,i),d=Ce(o),u="y"===l?zt:Vt,f="y"===l?Rt:qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=$e(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=Ne(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Oe(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Fe(t){return t.split("-")[1]}var He={top:"auto",right:"auto",bottom:"auto",left:"auto"};function We(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g="function"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=Vt,y=zt,w=window;if(c){var A=$e(i),E="clientHeight",T="clientWidth";A===fe(i)&&"static"!==xe(A=Le(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===zt||(s===Vt||s===qt)&&o===Yt)&&(y=Rt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Vt&&(s!==zt&&s!==Rt||o!==Yt)||(v=qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&He),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:we(i*s)/s||0,y:we(n*s)/s||0}}({x:f,y:m},fe(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?m+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const Be={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:be(e.placement),variation:Fe(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,We(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,We(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var ze={passive:!0};const Re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=fe(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,ze)})),a&&l.addEventListener("resize",i.update,ze),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,ze)})),a&&l.removeEventListener("resize",i.update,ze)}},data:{}};var qe={left:"right",right:"left",bottom:"top",top:"bottom"};function Ve(t){return t.replace(/left|right|bottom|top/g,(function(t){return qe[t]}))}var Ke={start:"end",end:"start"};function Qe(t){return t.replace(/start|end/g,(function(t){return Ke[t]}))}function Xe(t){var e=fe(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ye(t){return Te(Le(t)).left+Xe(t).scrollLeft}function Ue(t){var e=xe(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ge(t){return["html","body","#document"].indexOf(ue(t))>=0?t.ownerDocument.body:me(t)&&Ue(t)?t:Ge(Se(t))}function Je(t,e){var i;void 0===e&&(e=[]);var n=Ge(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=fe(n),r=s?[o].concat(o.visualViewport||[],Ue(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Je(Se(r)))}function Ze(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ti(t,e,i){return e===Gt?Ze(function(t,e){var i=fe(t),n=Le(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Ee();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Ye(t),y:l}}(t,i)):pe(e)?function(t,e){var i=Te(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):Ze(function(t){var e,i=Le(t),n=Xe(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ve(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ve(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ye(t),l=-n.scrollTop;return"rtl"===xe(s||i).direction&&(a+=ve(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Le(t)))}function ei(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?be(s):null,r=s?Fe(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case zt:e={x:a,y:i.y-n.height};break;case Rt:e={x:a,y:i.y+i.height};break;case qt:e={x:i.x+i.width,y:l};break;case Vt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Ie(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case Xt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Yt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ii(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Ut:a,c=i.rootBoundary,h=void 0===c?Gt:c,d=i.elementContext,u=void 0===d?Jt:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Pe("number"!=typeof g?g:Me(g,Qt)),b=u===Jt?Zt:Jt,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=Je(Se(t)),i=["absolute","fixed"].indexOf(xe(t).position)>=0&&me(t)?$e(t):t;return pe(i)?e.filter((function(t){return pe(t)&&Oe(t,i)&&"body"!==ue(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=ti(t,i,n);return e.top=ve(s.top,e.top),e.right=ye(s.right,e.right),e.bottom=ye(s.bottom,e.bottom),e.left=ve(s.left,e.left),e}),ti(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(pe(y)?y:y.contextElement||Le(t.elements.popper),l,h,r),A=Te(t.elements.reference),E=ei({reference:A,element:v,strategy:"absolute",placement:s}),T=Ze(Object.assign({},v,E)),C=u===Jt?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Jt&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[qt,Rt].indexOf(t)>=0?1:-1,i=[zt,Rt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function ni(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?ee:l,h=Fe(n),d=h?a?te:te.filter((function(t){return Fe(t)===h})):Qt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ii(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[be(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const si={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=be(g),b=l||(_!==g&&p?function(t){if(be(t)===Kt)return[];var e=Ve(t);return[Qe(t),e,Qe(e)]}(g):[Ve(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(be(i)===Kt?ni(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C<v.length;C++){var O=v[C],x=be(O),k=Fe(O)===Xt,L=[zt,Rt].indexOf(x)>=0,S=L?"width":"height",D=ii(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?qt:Vt:k?Rt:zt;y[S]>w[S]&&($=Ve($));var I=Ve($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every((function(t){return t}))){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find((function(e){var i=A.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==P(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function oi(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ri(t){return[zt,qt,Rt,Vt].some((function(e){return t[e]>=0}))}const ai={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ii(e,{elementContext:"reference"}),a=ii(e,{altBoundary:!0}),l=oi(r,n),c=oi(a,s,o),h=ri(l),d=ri(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},li={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=ee.reduce((function(t,i){return t[i]=function(t,e,i){var n=be(t),s=[Vt,zt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Vt,qt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},ci={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=ei({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},hi={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ii(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=be(e.placement),b=Fe(e.placement),v=!b,y=Ie(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S="y"===y?zt:Vt,D="y"===y?Rt:qt,$="y"===y?"height":"width",I=A[y],N=I+g[S],P=I-g[D],M=f?-T[$]/2:0,j=b===Xt?E[$]:T[$],F=b===Xt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?Ce(H):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Ne(0,E[$],W[$]),V=v?E[$]/2-M-q-z-O.mainAxis:j-q-z-O.mainAxis,K=v?-E[$]/2+M+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&$e(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Ne(f?ye(N,I+V-Y-X):N,I,f?ve(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z="x"===y?zt:Vt,tt="x"===y?Rt:qt,et=A[w],it="y"===w?"height":"width",nt=et+g[Z],st=et-g[tt],ot=-1!==[zt,Vt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Ne(t,e,i);return n>i?i:n}(at,et,lt):Ne(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function di(t,e,i){void 0===i&&(i=!1);var n,s,o=me(e),r=me(e)&&function(t){var e=t.getBoundingClientRect(),i=we(e.width)/t.offsetWidth||1,n=we(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=Le(e),l=Te(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==ue(e)||Ue(a))&&(c=(n=e)!==fe(n)&&me(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Xe(n)),me(e)?((h=Te(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Ye(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function ui(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var fi={placement:"bottom",modifiers:[],strategy:"absolute"};function pi(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return!e.some((function(t){return!(t&&"function"==typeof t.getBoundingClientRect)}))}function mi(t){void 0===t&&(t={});var e=t,i=e.defaultModifiers,n=void 0===i?[]:i,s=e.defaultOptions,o=void 0===s?fi:s;return function(t,e,i){void 0===i&&(i=o);var s,r,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},fi,o),modifiersData:{},elements:{reference:t,popper:e},attributes:{},styles:{}},l=[],c=!1,h={state:a,setOptions:function(i){var s="function"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,s),a.scrollParents={reference:pe(t)?Je(t):t.contextElement?Je(t.contextElement):[],popper:Je(e)};var r,c,u=function(t){var e=ui(t);return de.reduce((function(t,i){return t.concat(e.filter((function(t){return t.phase===i})))}),[])}((r=[].concat(n,a.options.modifiers),c=r.reduce((function(t,e){var i=t[e.name];return t[e.name]=i?Object.assign({},i,e,{options:Object.assign({},i.options,e.options),data:Object.assign({},i.data,e.data)}):e,t}),{}),Object.keys(c).map((function(t){return c[t]}))));return a.orderedModifiers=u.filter((function(t){return t.enabled})),a.orderedModifiers.forEach((function(t){var e=t.name,i=t.options,n=void 0===i?{}:i,s=t.effect;if("function"==typeof s){var o=s({state:a,name:e,instance:h,options:n});l.push(o||function(){})}})),h.update()},forceUpdate:function(){if(!c){var t=a.elements,e=t.reference,i=t.popper;if(pi(e,i)){a.rects={reference:di(e,$e(i),"fixed"===a.options.strategy),popper:Ce(i)},a.reset=!1,a.placement=a.options.placement,a.orderedModifiers.forEach((function(t){return a.modifiersData[t.name]=Object.assign({},t.data)}));for(var n=0;n<a.orderedModifiers.length;n++)if(!0!==a.reset){var s=a.orderedModifiers[n],o=s.fn,r=s.options,l=void 0===r?{}:r,d=s.name;"function"==typeof o&&(a=o({state:a,options:l,name:d,instance:h})||a)}else a.reset=!1,n=-1}}},update:(s=function(){return new Promise((function(t){h.forceUpdate(),t(a)}))},function(){return r||(r=new Promise((function(t){Promise.resolve().then((function(){r=void 0,t(s())}))}))),r}),destroy:function(){d(),c=!0}};if(!pi(t,e))return h;function d(){l.forEach((function(t){return t()})),l=[]}return h.setOptions(i).then((function(t){!c&&i.onFirstUpdate&&i.onFirstUpdate(t)})),h}}var gi=mi(),_i=mi({defaultModifiers:[Re,ci,Be,_e]}),bi=mi({defaultModifiers:[Re,ci,Be,_e,li,si,hi,je,ai]});const vi=Object.freeze(Object.defineProperty({__proto__:null,afterMain:ae,afterRead:se,afterWrite:he,applyStyles:_e,arrow:je,auto:Kt,basePlacements:Qt,beforeMain:oe,beforeRead:ie,beforeWrite:le,bottom:Rt,clippingParents:Ut,computeStyles:Be,createPopper:bi,createPopperBase:gi,createPopperLite:_i,detectOverflow:ii,end:Yt,eventListeners:Re,flip:si,hide:ai,left:Vt,main:re,modifierPhases:de,offset:li,placements:ee,popper:Jt,popperGenerator:mi,popperOffsets:ci,preventOverflow:hi,read:ne,reference:Zt,right:qt,start:Xt,top:zt,variationPlacements:te,viewport:Gt,write:ce},Symbol.toStringTag,{value:"Module"})),yi="dropdown",wi=".bs.dropdown",Ai=".data-api",Ei="ArrowUp",Ti="ArrowDown",Ci=`hide${wi}`,Oi=`hidden${wi}`,xi=`show${wi}`,ki=`shown${wi}`,Li=`click${wi}${Ai}`,Si=`keydown${wi}${Ai}`,Di=`keyup${wi}${Ai}`,$i="show",Ii='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',Ni=`${Ii}.${$i}`,Pi=".dropdown-menu",Mi=p()?"top-end":"top-start",ji=p()?"top-start":"top-end",Fi=p()?"bottom-end":"bottom-start",Hi=p()?"bottom-start":"bottom-end",Wi=p()?"left-start":"right-start",Bi=p()?"right-start":"left-start",zi={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},Ri={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class qi extends W{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=z.next(this._element,Pi)[0]||z.prev(this._element,Pi)[0]||z.findOne(Pi,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return zi}static get DefaultType(){return Ri}static get NAME(){return yi}toggle(){return this._isShown()?this.hide():this.show()}show(){if(l(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!N.trigger(this._element,xi,t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add($i),this._element.classList.add($i),N.trigger(this._element,ki,t)}}hide(){if(l(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!N.trigger(this._element,Ci,t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._popper&&this._popper.destroy(),this._menu.classList.remove($i),this._element.classList.remove($i),this._element.setAttribute("aria-expanded","false"),F.removeDataAttribute(this._menu,"popper"),N.trigger(this._element,Oi,t)}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!o(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${yi.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(void 0===vi)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=this._parent:o(this._config.reference)?t=r(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=bi(t,this._menu,e)}_isShown(){return this._menu.classList.contains($i)}_getPlacement(){const t=this._parent;if(t.classList.contains("dropend"))return Wi;if(t.classList.contains("dropstart"))return Bi;if(t.classList.contains("dropup-center"))return"top";if(t.classList.contains("dropdown-center"))return"bottom";const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?ji:Mi:e?Hi:Fi}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(F.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...g(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>a(t)));i.length&&b(i,e,t===Ti,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=qi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=z.find(Ni);for(const i of e){const e=qi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Ei,Ti].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ii)?this:z.prev(this,Ii)[0]||z.next(this,Ii)[0]||z.findOne(Ii,t.delegateTarget.parentNode),o=qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}N.on(document,Si,Ii,qi.dataApiKeydownHandler),N.on(document,Si,Pi,qi.dataApiKeydownHandler),N.on(document,Li,qi.clearMenus),N.on(document,Di,qi.clearMenus),N.on(document,Li,Ii,(function(t){t.preventDefault(),qi.getOrCreateInstance(this).toggle()})),m(qi);const Vi="backdrop",Ki="show",Qi=`mousedown.bs.${Vi}`,Xi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Yi={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ui extends H{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Xi}static get DefaultType(){return Yi}static get NAME(){return Vi}show(t){if(!this._config.isVisible)return void g(t);this._append();const e=this._getElement();this._config.isAnimated&&d(e),e.classList.add(Ki),this._emulateAnimation((()=>{g(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ki),this._emulateAnimation((()=>{this.dispose(),g(t)}))):g(t)}dispose(){this._isAppended&&(N.off(this._element,Qi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=r(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),N.on(t,Qi,(()=>{g(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){_(t,this._getElement(),this._config.isAnimated)}}const Gi=".bs.focustrap",Ji=`focusin${Gi}`,Zi=`keydown.tab${Gi}`,tn="backward",en={autofocus:!0,trapElement:null},nn={autofocus:"boolean",trapElement:"element"};class sn extends H{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return en}static get DefaultType(){return nn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),N.off(document,Gi),N.on(document,Ji,(t=>this._handleFocusin(t))),N.on(document,Zi,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,N.off(document,Gi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=z.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===tn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?tn:"forward")}}const on=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",rn=".sticky-top",an="padding-right",ln="margin-right";class cn{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,an,(e=>e+t)),this._setElementAttributes(on,an,(e=>e+t)),this._setElementAttributes(rn,ln,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,an),this._resetElementAttributes(on,an),this._resetElementAttributes(rn,ln)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&F.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=F.getDataAttribute(t,e);null!==i?(F.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(o(t))e(t);else for(const i of z.find(t,this._element))e(i)}}const hn=".bs.modal",dn=`hide${hn}`,un=`hidePrevented${hn}`,fn=`hidden${hn}`,pn=`show${hn}`,mn=`shown${hn}`,gn=`resize${hn}`,_n=`click.dismiss${hn}`,bn=`mousedown.dismiss${hn}`,vn=`keydown.dismiss${hn}`,yn=`click${hn}.data-api`,wn="modal-open",An="show",En="modal-static",Tn={backdrop:!0,focus:!0,keyboard:!0},Cn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class On extends W{constructor(t,e){super(t,e),this._dialog=z.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new cn,this._addEventListeners()}static get Default(){return Tn}static get DefaultType(){return Cn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||N.trigger(this._element,pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(wn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(N.trigger(this._element,dn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(An),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){N.off(window,hn),N.off(this._dialog,hn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ui({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=z.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),d(this._element),this._element.classList.add(An),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,N.trigger(this._element,mn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){N.on(this._element,vn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),N.on(window,gn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),N.on(this._element,bn,(t=>{N.one(this._element,_n,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(wn),this._resetAdjustments(),this._scrollBar.reset(),N.trigger(this._element,fn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(N.trigger(this._element,un).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(En)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(En),this._queueCallback((()=>{this._element.classList.remove(En),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=p()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=On.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}N.on(document,yn,'[data-bs-toggle="modal"]',(function(t){const e=z.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),N.one(e,pn,(t=>{t.defaultPrevented||N.one(e,fn,(()=>{a(this)&&this.focus()}))}));const i=z.findOne(".modal.show");i&&On.getInstance(i).hide(),On.getOrCreateInstance(e).toggle(this)})),R(On),m(On);const xn=".bs.offcanvas",kn=".data-api",Ln=`load${xn}${kn}`,Sn="show",Dn="showing",$n="hiding",In=".offcanvas.show",Nn=`show${xn}`,Pn=`shown${xn}`,Mn=`hide${xn}`,jn=`hidePrevented${xn}`,Fn=`hidden${xn}`,Hn=`resize${xn}`,Wn=`click${xn}${kn}`,Bn=`keydown.dismiss${xn}`,zn={backdrop:!0,keyboard:!0,scroll:!1},Rn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class qn extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return zn}static get DefaultType(){return Rn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||N.trigger(this._element,Nn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new cn).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Dn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Sn),this._element.classList.remove(Dn),N.trigger(this._element,Pn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(N.trigger(this._element,Mn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add($n),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Sn,$n),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new cn).reset(),N.trigger(this._element,Fn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Ui({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():N.trigger(this._element,jn)}:null})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_addEventListeners(){N.on(this._element,Bn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():N.trigger(this._element,jn))}))}static jQueryInterface(t){return this.each((function(){const e=qn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}N.on(document,Wn,'[data-bs-toggle="offcanvas"]',(function(t){const e=z.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this))return;N.one(e,Fn,(()=>{a(this)&&this.focus()}));const i=z.findOne(In);i&&i!==e&&qn.getInstance(i).hide(),qn.getOrCreateInstance(e).toggle(this)})),N.on(window,Ln,(()=>{for(const t of z.find(In))qn.getOrCreateInstance(t).show()})),N.on(window,Hn,(()=>{for(const t of z.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&qn.getOrCreateInstance(t).hide()})),R(qn),m(qn);const Vn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Kn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Qn=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Xn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Yn={allowList:Vn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"<div></div>"},Un={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Gn={entry:"(string|element|function|null)",selector:"(string|element)"};class Jn extends H{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Yn}static get DefaultType(){return Un}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Gn)}_setContent(t,e,i){const n=z.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?o(e)?this._putElementInTemplate(r(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Xn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return g(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Zn=new Set(["sanitize","allowList","sanitizeFn"]),ts="fade",es="show",is=".modal",ns="hide.bs.modal",ss="hover",os="focus",rs={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},as={allowList:Vn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',title:"",trigger:"hover focus"},ls={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class cs extends W{constructor(t,e){if(void 0===vi)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return as}static get DefaultType(){return ls}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),N.off(this._element.closest(is),ns,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=N.trigger(this._element,this.constructor.eventName("show")),e=(c(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),N.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._queueCallback((()=>{N.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!N.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._activeTrigger.click=!1,this._activeTrigger[os]=!1,this._activeTrigger[ss]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),N.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ts,es),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(ts),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Jn({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ts)}_isShown(){return this.tip&&this.tip.classList.contains(es)}_createPopper(t){const e=g(this._config.placement,[this,t,this._element]),i=rs[e.toUpperCase()];return bi(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return g(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...g(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)N.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===ss?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ss?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");N.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?os:ss]=!0,e._enter()})),N.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?os:ss]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},N.on(this._element.closest(is),ns,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=F.getDataAttributes(this._element);for(const t of Object.keys(e))Zn.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=cs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(cs);const hs={...cs.Default,content:"",offset:[0,8],placement:"right",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',trigger:"click"},ds={...cs.DefaultType,content:"(null|string|element|function)"};class us extends cs{static get Default(){return hs}static get DefaultType(){return ds}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=us.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(us);const fs=".bs.scrollspy",ps=`activate${fs}`,ms=`click${fs}`,gs=`load${fs}.data-api`,_s="active",bs="[href]",vs=".nav-link",ys=`${vs}, .nav-item > ${vs}, .list-group-item`,ws={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},As={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Es extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return ws}static get DefaultType(){return As}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=r(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(N.off(this._config.target,ms),N.on(this._config.target,ms,bs,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=z.find(bs,this._config.target);for(const e of t){if(!e.hash||l(e))continue;const t=z.findOne(decodeURI(e.hash),this._element);a(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(_s),this._activateParents(t),N.trigger(this._element,ps,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))z.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(_s);else for(const e of z.parents(t,".nav, .list-group"))for(const t of z.prev(e,ys))t.classList.add(_s)}_clearActiveClass(t){t.classList.remove(_s);const e=z.find(`${bs}.${_s}`,t);for(const t of e)t.classList.remove(_s)}static jQueryInterface(t){return this.each((function(){const e=Es.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(window,gs,(()=>{for(const t of z.find('[data-bs-spy="scroll"]'))Es.getOrCreateInstance(t)})),m(Es);const Ts=".bs.tab",Cs=`hide${Ts}`,Os=`hidden${Ts}`,xs=`show${Ts}`,ks=`shown${Ts}`,Ls=`click${Ts}`,Ss=`keydown${Ts}`,Ds=`load${Ts}`,$s="ArrowLeft",Is="ArrowRight",Ns="ArrowUp",Ps="ArrowDown",Ms="Home",js="End",Fs="active",Hs="fade",Ws="show",Bs=":not(.dropdown-toggle)",zs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Rs=`.nav-link${Bs}, .list-group-item${Bs}, [role="tab"]${Bs}, ${zs}`,qs=`.${Fs}[data-bs-toggle="tab"], .${Fs}[data-bs-toggle="pill"], .${Fs}[data-bs-toggle="list"]`;class Vs extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),N.on(this._element,Ss,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?N.trigger(e,Cs,{relatedTarget:t}):null;N.trigger(t,xs,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Fs),this._activate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),N.trigger(t,ks,{relatedTarget:e})):t.classList.add(Ws)}),t,t.classList.contains(Hs)))}_deactivate(t,e){t&&(t.classList.remove(Fs),t.blur(),this._deactivate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),N.trigger(t,Os,{relatedTarget:e})):t.classList.remove(Ws)}),t,t.classList.contains(Hs)))}_keydown(t){if(![$s,Is,Ns,Ps,Ms,js].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!l(t)));let i;if([Ms,js].includes(t.key))i=e[t.key===Ms?0:e.length-1];else{const n=[Is,Ps].includes(t.key);i=b(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Vs.getOrCreateInstance(i).show())}_getChildren(){return z.find(Rs,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=z.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=z.findOne(t,i);s&&s.classList.toggle(n,e)};n(".dropdown-toggle",Fs),n(".dropdown-menu",Ws),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Fs)}_getInnerElement(t){return t.matches(Rs)?t:z.findOne(Rs,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Vs.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(document,Ls,zs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this)||Vs.getOrCreateInstance(this).show()})),N.on(window,Ds,(()=>{for(const t of z.find(qs))Vs.getOrCreateInstance(t)})),m(Vs);const Ks=".bs.toast",Qs=`mouseover${Ks}`,Xs=`mouseout${Ks}`,Ys=`focusin${Ks}`,Us=`focusout${Ks}`,Gs=`hide${Ks}`,Js=`hidden${Ks}`,Zs=`show${Ks}`,to=`shown${Ks}`,eo="hide",io="show",no="showing",so={animation:"boolean",autohide:"boolean",delay:"number"},oo={animation:!0,autohide:!0,delay:5e3};class ro extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return oo}static get DefaultType(){return so}static get NAME(){return"toast"}show(){N.trigger(this._element,Zs).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(eo),d(this._element),this._element.classList.add(io,no),this._queueCallback((()=>{this._element.classList.remove(no),N.trigger(this._element,to),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(N.trigger(this._element,Gs).defaultPrevented||(this._element.classList.add(no),this._queueCallback((()=>{this._element.classList.add(eo),this._element.classList.remove(no,io),N.trigger(this._element,Js)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(io),super.dispose()}isShown(){return this._element.classList.contains(io)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){N.on(this._element,Qs,(t=>this._onInteraction(t,!0))),N.on(this._element,Xs,(t=>this._onInteraction(t,!1))),N.on(this._element,Ys,(t=>this._onInteraction(t,!0))),N.on(this._element,Us,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ro.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(ro),m(ro),{Alert:Q,Button:Y,Carousel:xt,Collapse:Bt,Dropdown:qi,Modal:On,Offcanvas:qn,Popover:us,ScrollSpy:Es,Tab:Vs,Toast:ro,Tooltip:cs}}));
7
+ //# sourceMappingURL=bootstrap.bundle.min.js.map
src/_site/site_libs/clipboard/clipboard.min.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * clipboard.js v2.0.11
3
+ * https://clipboardjs.com/
4
+ *
5
+ * Licensed MIT © Zeno Rocha
6
+ */
7
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body},n="";return"string"==typeof t?n=o(t,e):t instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(null==t?void 0:t.type)?n=o(t.value,e):(n=r()(t),c("copy")),n};function l(t){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var s=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=t.action,n=void 0===e?"copy":e,o=t.container,e=t.target,t=t.text;if("copy"!==n&&"cut"!==n)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==e){if(!e||"object"!==l(e)||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===n&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===n&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return t?f(t,{container:o}):e?"cut"===n?a(e):f(e,{container:o}):void 0};function p(t){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function d(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function y(t,e){return(y=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(n){var o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=v(n);return t=o?(t=v(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments),e=this,!(t=t)||"object"!==p(t)&&"function"!=typeof t?function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}}function v(t){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function m(t,e){t="data-clipboard-".concat(t);if(e.hasAttribute(t))return e.getAttribute(t)}var b=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&y(t,e)}(r,i());var t,e,n,o=h(r);function r(t,e){var n;return function(t){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this),(n=o.call(this)).resolveOptions(e),n.listenClick(t),n}return t=r,n=[{key:"copy",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body};return f(t,e)}},{key:"cut",value:function(t){return a(t)}},{key:"isSupported",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof t?[t]:t,e=!!document.queryCommandSupported;return t.forEach(function(t){e=e&&!!document.queryCommandSupported(t)}),e}}],(e=[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===p(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=u()(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget,n=this.action(e)||"copy",t=s({action:n,container:this.container,target:this.target(e),text:this.text(e)});this.emit(t?"success":"error",{action:n,text:t,trigger:e,clearSelection:function(){e&&e.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(t){return m("action",t)}},{key:"defaultTarget",value:function(t){t=m("target",t);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(t){return m("text",t)}},{key:"destroy",value:function(){this.listener.destroy()}}])&&d(t.prototype,e),n&&d(t,n),r}()},828:function(t){var e;"undefined"==typeof Element||Element.prototype.matches||((e=Element.prototype).matches=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector),t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}},438:function(t,e,n){var u=n(828);function i(t,e,n,o,r){var i=function(e,n,t,o){return function(t){t.delegateTarget=u(t.target,n),t.delegateTarget&&o.call(e,t)}}.apply(this,arguments);return t.addEventListener(n,i,r),{destroy:function(){t.removeEventListener(n,i,r)}}}t.exports=function(t,e,n,o,r){return"function"==typeof t.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return i(t,e,n,o,r)}))}},879:function(t,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},370:function(t,e,n){var f=n(879),l=n(438);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!f.string(e))throw new TypeError("Second argument must be a String");if(!f.fn(n))throw new TypeError("Third argument must be a Function");if(f.node(t))return c=e,a=n,(u=t).addEventListener(c,a),{destroy:function(){u.removeEventListener(c,a)}};if(f.nodeList(t))return o=t,r=e,i=n,Array.prototype.forEach.call(o,function(t){t.addEventListener(r,i)}),{destroy:function(){Array.prototype.forEach.call(o,function(t){t.removeEventListener(r,i)})}};if(f.string(t))return t=t,e=e,n=n,l(document.body,t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");var o,r,i,u,c,a}},817:function(t){t.exports=function(t){var e,n="SELECT"===t.nodeName?(t.focus(),t.value):"INPUT"===t.nodeName||"TEXTAREA"===t.nodeName?((e=t.hasAttribute("readonly"))||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),e||t.removeAttribute("readonly"),t.value):(t.hasAttribute("contenteditable")&&t.focus(),n=window.getSelection(),(e=document.createRange()).selectNodeContents(t),n.removeAllRanges(),n.addRange(e),n.toString());return n}},279:function(t){function e(){}e.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o<r;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,u=o.length;i<u;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},t.exports=e,t.exports.TinyEmitter=e}},r={},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,{a:e}),e},o.d=function(t,e){for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o(686).default;function o(t){if(r[t])return r[t].exports;var e=r[t]={exports:{}};return n[t](e,e.exports,o),e.exports}var n,r});
src/_site/site_libs/quarto-html/anchor.min.js ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
2
+ //
3
+ // AnchorJS - v5.0.0 - 2023-01-18
4
+ // https://www.bryanbraun.com/anchorjs/
5
+ // Copyright (c) 2023 Bryan Braun; Licensed MIT
6
+ //
7
+ // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
8
+ !function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(globalThis,function(){"use strict";return function(A){function u(A){A.icon=Object.prototype.hasOwnProperty.call(A,"icon")?A.icon:"",A.visible=Object.prototype.hasOwnProperty.call(A,"visible")?A.visible:"hover",A.placement=Object.prototype.hasOwnProperty.call(A,"placement")?A.placement:"right",A.ariaLabel=Object.prototype.hasOwnProperty.call(A,"ariaLabel")?A.ariaLabel:"Anchor",A.class=Object.prototype.hasOwnProperty.call(A,"class")?A.class:"",A.base=Object.prototype.hasOwnProperty.call(A,"base")?A.base:"",A.truncate=Object.prototype.hasOwnProperty.call(A,"truncate")?Math.floor(A.truncate):64,A.titleText=Object.prototype.hasOwnProperty.call(A,"titleText")?A.titleText:""}function d(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new TypeError("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],u(this.options),this.add=function(A){var e,t,o,i,n,s,a,r,l,c,h,p=[];if(u(this.options),0!==(e=d(A=A||"h2, h3, h4, h5, h6")).length){for(null===document.head.querySelector("style.anchorjs")&&((A=document.createElement("style")).className="anchorjs",A.appendChild(document.createTextNode("")),void 0===(h=document.head.querySelector('[rel="stylesheet"],style'))?document.head.appendChild(A):document.head.insertBefore(A,h),A.sheet.insertRule(".anchorjs-link{opacity:0;text-decoration:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}",A.sheet.cssRules.length),A.sheet.insertRule(":hover>.anchorjs-link,.anchorjs-link:focus{opacity:1}",A.sheet.cssRules.length),A.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",A.sheet.cssRules.length),A.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',A.sheet.cssRules.length)),h=document.querySelectorAll("[id]"),t=[].map.call(h,function(A){return A.id}),i=0;i<e.length;i++)if(this.hasAnchorJSLink(e[i]))p.push(i);else{if(e[i].hasAttribute("id"))o=e[i].getAttribute("id");else if(e[i].hasAttribute("data-anchor-id"))o=e[i].getAttribute("data-anchor-id");else{for(r=a=this.urlify(e[i].textContent),s=0;n=t.indexOf(r=void 0!==n?a+"-"+s:r),s+=1,-1!==n;);n=void 0,t.push(r),e[i].setAttribute("id",r),o=r}(l=document.createElement("a")).className="anchorjs-link "+this.options.class,l.setAttribute("aria-label",this.options.ariaLabel),l.setAttribute("data-anchorjs-icon",this.options.icon),this.options.titleText&&(l.title=this.options.titleText),c=document.querySelector("base")?window.location.pathname+window.location.search:"",c=this.options.base||c,l.href=c+"#"+o,"always"===this.options.visible&&(l.style.opacity="1"),""===this.options.icon&&(l.style.font="1em/1 anchorjs-icons","left"===this.options.placement)&&(l.style.lineHeight="inherit"),"left"===this.options.placement?(l.style.position="absolute",l.style.marginLeft="-1.25em",l.style.paddingRight=".25em",l.style.paddingLeft=".25em",e[i].insertBefore(l,e[i].firstChild)):(l.style.marginLeft=".1875em",l.style.paddingRight=".1875em",l.style.paddingLeft=".1875em",e[i].appendChild(l))}for(i=0;i<p.length;i++)e.splice(p[i]-i,1);this.elements=this.elements.concat(e)}return this},this.remove=function(A){for(var e,t,o=d(A),i=0;i<o.length;i++)(t=o[i].querySelector(".anchorjs-link"))&&(-1!==(e=this.elements.indexOf(o[i]))&&this.elements.splice(e,1),o[i].removeChild(t));return this},this.removeAll=function(){this.remove(this.elements)},this.urlify=function(A){var e=document.createElement("textarea");return e.innerHTML=A,A=e.value,this.options.truncate||u(this.options),A.trim().replace(/'/gi,"").replace(/[& +$,:;=?@"#{}|^~[`%!'<>\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}});
9
+ // @license-end
src/_site/site_libs/quarto-html/popper.min.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ /**
2
+ * @popperjs/core v2.11.7 - MIT License
3
+ */
4
+
5
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function c(){return!/^((?!chrome|android).)*safari/i.test(f())}function p(e,o,i){void 0===o&&(o=!1),void 0===i&&(i=!1);var a=e.getBoundingClientRect(),f=1,p=1;o&&r(e)&&(f=e.offsetWidth>0&&s(a.width)/e.offsetWidth||1,p=e.offsetHeight>0&&s(a.height)/e.offsetHeight||1);var u=(n(e)?t(e):window).visualViewport,l=!c()&&i,d=(a.left+(l&&u?u.offsetLeft:0))/f,h=(a.top+(l&&u?u.offsetTop:0))/p,m=a.width/f,v=a.height/p;return{width:m,height:v,top:h,right:d+m,bottom:h+v,left:d,x:d,y:h}}function u(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function l(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return p(d(e)).left+u(e).scrollLeft}function m(e){return t(e).getComputedStyle(e)}function v(e){var t=m(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function y(e,n,o){void 0===o&&(o=!1);var i,a,f=r(n),c=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),m=d(n),y=p(e,c,o),g={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(f||!f&&!o)&&(("body"!==l(n)||v(m))&&(g=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:u(i)),r(n)?((b=p(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):m&&(b.x=h(m))),{x:y.left+g.scrollLeft-b.x,y:y.top+g.scrollTop-b.y,width:y.width,height:y.height}}function g(e){var t=p(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function b(e){return"html"===l(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||d(e)}function x(e){return["html","body","#document"].indexOf(l(e))>=0?e.ownerDocument.body:r(e)&&v(e)?e:x(b(e))}function w(e,n){var r;void 0===n&&(n=[]);var o=x(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],v(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(w(b(s)))}function O(e){return["table","td","th"].indexOf(l(e))>=0}function j(e){return r(e)&&"fixed"!==m(e).position?e.offsetParent:null}function E(e){for(var n=t(e),i=j(e);i&&O(i)&&"static"===m(i).position;)i=j(i);return i&&("html"===l(i)||"body"===l(i)&&"static"===m(i).position)?n:i||function(e){var t=/firefox/i.test(f());if(/Trident/i.test(f())&&r(e)&&"fixed"===m(e).position)return null;var n=b(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(l(n))<0;){var i=m(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var D="top",A="bottom",L="right",P="left",M="auto",k=[D,A,L,P],W="start",B="end",H="viewport",T="popper",R=k.reduce((function(e,t){return e.concat([t+"-"+W,t+"-"+B])}),[]),S=[].concat(k,[M]).reduce((function(e,t){return e.concat([t,t+"-"+W,t+"-"+B])}),[]),V=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function q(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split("-")[0]}function N(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function I(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function _(e,r,o){return r===H?I(function(e,n){var r=t(e),o=d(e),i=r.visualViewport,a=o.clientWidth,s=o.clientHeight,f=0,p=0;if(i){a=i.width,s=i.height;var u=c();(u||!u&&"fixed"===n)&&(f=i.offsetLeft,p=i.offsetTop)}return{width:a,height:s,x:f+h(e),y:p}}(e,o)):n(r)?function(e,t){var n=p(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(r,o):I(function(e){var t,n=d(e),r=u(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+h(e),c=-r.scrollTop;return"rtl"===m(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:c}}(d(e)))}function F(e,t,o,s){var f="clippingParents"===t?function(e){var t=w(b(e)),o=["absolute","fixed"].indexOf(m(e).position)>=0&&r(e)?E(e):e;return n(o)?t.filter((function(e){return n(e)&&N(e,o)&&"body"!==l(e)})):[]}(e):[].concat(t),c=[].concat(f,[o]),p=c[0],u=c.reduce((function(t,n){var r=_(e,n,s);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),_(e,p,s));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function U(e){return e.split("-")[1]}function z(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function X(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?U(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case D:t={x:s,y:n.y-r.height};break;case A:t={x:s,y:n.y+n.height};break;case L:t={x:n.x+n.width,y:f};break;case P:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?z(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case W:t[c]=t[c]-(n[p]/2-r[p]/2);break;case B:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function Y(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function G(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function J(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.strategy,s=void 0===a?e.strategy:a,f=r.boundary,c=void 0===f?"clippingParents":f,u=r.rootBoundary,l=void 0===u?H:u,h=r.elementContext,m=void 0===h?T:h,v=r.altBoundary,y=void 0!==v&&v,g=r.padding,b=void 0===g?0:g,x=Y("number"!=typeof b?b:G(b,k)),w=m===T?"reference":T,O=e.rects.popper,j=e.elements[y?w:m],E=F(n(j)?j:j.contextElement||d(e.elements.popper),c,l,s),P=p(e.elements.reference),M=X({reference:P,element:O,strategy:"absolute",placement:i}),W=I(Object.assign({},O,M)),B=m===T?W:P,R={top:E.top-B.top+x.top,bottom:B.bottom-E.bottom+x.bottom,left:E.left-B.left+x.left,right:B.right-E.right+x.right},S=e.modifiersData.offset;if(m===T&&S){var V=S[i];Object.keys(R).forEach((function(e){var t=[L,A].indexOf(e)>=0?1:-1,n=[D,A].indexOf(e)>=0?"y":"x";R[e]+=V[n]*t}))}return R}var K={placement:"bottom",modifiers:[],strategy:"absolute"};function Q(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some((function(e){return!(e&&"function"==typeof e.getBoundingClientRect)}))}function Z(e){void 0===e&&(e={});var t=e,r=t.defaultModifiers,o=void 0===r?[]:r,i=t.defaultOptions,a=void 0===i?K:i;return function(e,t,r){void 0===r&&(r=a);var i,s,f={placement:"bottom",orderedModifiers:[],options:Object.assign({},K,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},c=[],p=!1,u={state:f,setOptions:function(r){var i="function"==typeof r?r(f.options):r;l(),f.options=Object.assign({},a,f.options,i),f.scrollParents={reference:n(e)?w(e):e.contextElement?w(e.contextElement):[],popper:w(t)};var s,p,d=function(e){var t=q(e);return V.reduce((function(e,n){return e.concat(t.filter((function(e){return e.phase===n})))}),[])}((s=[].concat(o,f.options.modifiers),p=s.reduce((function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e}),{}),Object.keys(p).map((function(e){return p[e]}))));return f.orderedModifiers=d.filter((function(e){return e.enabled})),f.orderedModifiers.forEach((function(e){var t=e.name,n=e.options,r=void 0===n?{}:n,o=e.effect;if("function"==typeof o){var i=o({state:f,name:t,instance:u,options:r}),a=function(){};c.push(i||a)}})),u.update()},forceUpdate:function(){if(!p){var e=f.elements,t=e.reference,n=e.popper;if(Q(t,n)){f.rects={reference:y(t,E(n),"fixed"===f.options.strategy),popper:g(n)},f.reset=!1,f.placement=f.options.placement,f.orderedModifiers.forEach((function(e){return f.modifiersData[e.name]=Object.assign({},e.data)}));for(var r=0;r<f.orderedModifiers.length;r++)if(!0!==f.reset){var o=f.orderedModifiers[r],i=o.fn,a=o.options,s=void 0===a?{}:a,c=o.name;"function"==typeof i&&(f=i({state:f,options:s,name:c,instance:u})||f)}else f.reset=!1,r=-1}}},update:(i=function(){return new Promise((function(e){u.forceUpdate(),e(f)}))},function(){return s||(s=new Promise((function(e){Promise.resolve().then((function(){s=void 0,e(i())}))}))),s}),destroy:function(){l(),p=!0}};if(!Q(e,t))return u;function l(){c.forEach((function(e){return e()})),c=[]}return u.setOptions(r).then((function(e){!p&&r.onFirstUpdate&&r.onFirstUpdate(e)})),u}}var $={passive:!0};var ee={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var n=e.state,r=e.instance,o=e.options,i=o.scroll,a=void 0===i||i,s=o.resize,f=void 0===s||s,c=t(n.elements.popper),p=[].concat(n.scrollParents.reference,n.scrollParents.popper);return a&&p.forEach((function(e){e.addEventListener("scroll",r.update,$)})),f&&c.addEventListener("resize",r.update,$),function(){a&&p.forEach((function(e){e.removeEventListener("scroll",r.update,$)})),f&&c.removeEventListener("resize",r.update,$)}},data:{}};var te={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=X({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},ne={top:"auto",right:"auto",bottom:"auto",left:"auto"};function re(e){var n,r=e.popper,o=e.popperRect,i=e.placement,a=e.variation,f=e.offsets,c=e.position,p=e.gpuAcceleration,u=e.adaptive,l=e.roundOffsets,h=e.isFixed,v=f.x,y=void 0===v?0:v,g=f.y,b=void 0===g?0:g,x="function"==typeof l?l({x:y,y:b}):{x:y,y:b};y=x.x,b=x.y;var w=f.hasOwnProperty("x"),O=f.hasOwnProperty("y"),j=P,M=D,k=window;if(u){var W=E(r),H="clientHeight",T="clientWidth";if(W===t(r)&&"static"!==m(W=d(r)).position&&"absolute"===c&&(H="scrollHeight",T="scrollWidth"),W=W,i===D||(i===P||i===L)&&a===B)M=A,b-=(h&&W===k&&k.visualViewport?k.visualViewport.height:W[H])-o.height,b*=p?1:-1;if(i===P||(i===D||i===A)&&a===B)j=L,y-=(h&&W===k&&k.visualViewport?k.visualViewport.width:W[T])-o.width,y*=p?1:-1}var R,S=Object.assign({position:c},u&&ne),V=!0===l?function(e,t){var n=e.x,r=e.y,o=t.devicePixelRatio||1;return{x:s(n*o)/o||0,y:s(r*o)/o||0}}({x:y,y:b},t(r)):{x:y,y:b};return y=V.x,b=V.y,p?Object.assign({},S,((R={})[M]=O?"0":"",R[j]=w?"0":"",R.transform=(k.devicePixelRatio||1)<=1?"translate("+y+"px, "+b+"px)":"translate3d("+y+"px, "+b+"px, 0)",R)):Object.assign({},S,((n={})[M]=O?b+"px":"",n[j]=w?y+"px":"",n.transform="",n))}var oe={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=void 0===r||r,i=n.adaptive,a=void 0===i||i,s=n.roundOffsets,f=void 0===s||s,c={placement:C(t.placement),variation:U(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,re(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:f})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,re(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:f})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}};var ie={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},i=t.elements[e];r(i)&&l(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});r(o)&&l(o)&&(Object.assign(o.style,a),Object.keys(i).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]};var ae={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.offset,i=void 0===o?[0,0]:o,a=S.reduce((function(e,n){return e[n]=function(e,t,n){var r=C(e),o=[P,D].indexOf(r)>=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[P,L].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},se={left:"right",right:"left",bottom:"top",top:"bottom"};function fe(e){return e.replace(/left|right|bottom|top/g,(function(e){return se[e]}))}var ce={start:"end",end:"start"};function pe(e){return e.replace(/start|end/g,(function(e){return ce[e]}))}function ue(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?S:f,p=U(r),u=p?s?R:R.filter((function(e){return U(e)===p})):k,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=J(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[C(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var le={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,y=C(v),g=f||(y===v||!h?[fe(v)]:function(e){if(C(e)===M)return[];var t=fe(e);return[pe(e),t,pe(t)]}(v)),b=[v].concat(g).reduce((function(e,n){return e.concat(C(n)===M?ue(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,j=!0,E=b[0],k=0;k<b.length;k++){var B=b[k],H=C(B),T=U(B)===W,R=[D,A].indexOf(H)>=0,S=R?"width":"height",V=J(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),q=R?T?L:P:T?A:D;x[S]>w[S]&&(q=fe(q));var N=fe(q),I=[];if(i&&I.push(V[H]<=0),s&&I.push(V[q]<=0,V[N]<=0),I.every((function(e){return e}))){E=B,j=!1;break}O.set(B,I)}if(j)for(var _=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return E=t,"break"},F=h?3:1;F>0;F--){if("break"===_(F))break}t.placement!==E&&(t.modifiersData[r]._skip=!0,t.placement=E,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function de(e,t,n){return i(e,a(t,n))}var he={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,v=n.tetherOffset,y=void 0===v?0:v,b=J(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=C(t.placement),w=U(t.placement),O=!w,j=z(x),M="x"===j?"y":"x",k=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,V={x:0,y:0};if(k){if(s){var q,N="y"===j?D:P,I="y"===j?A:L,_="y"===j?"height":"width",F=k[j],X=F+b[N],Y=F-b[I],G=m?-H[_]/2:0,K=w===W?B[_]:H[_],Q=w===W?-H[_]:-B[_],Z=t.elements.arrow,$=m&&Z?g(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ne=ee[I],re=de(0,B[_],$[_]),oe=O?B[_]/2-G-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=O?-B[_]/2+G+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&E(t.elements.arrow),se=ae?"y"===j?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(q=null==S?void 0:S[j])?q:0,ce=F+ie-fe,pe=de(m?a(X,F+oe-fe-se):X,F,m?i(Y,ce):Y);k[j]=pe,V[j]=pe-F}if(c){var ue,le="x"===j?D:P,he="x"===j?A:L,me=k[M],ve="y"===M?"height":"width",ye=me+b[le],ge=me-b[he],be=-1!==[D,P].indexOf(x),xe=null!=(ue=null==S?void 0:S[M])?ue:0,we=be?ye:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ge,je=m&&be?function(e,t,n){var r=de(e,t,n);return r>n?n:r}(we,me,Oe):de(m?we:ye,me,m?Oe:ge);k[M]=je,V[M]=je-me}t.modifiersData[r]=V}},requiresIfExists:["offset"]};var me={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=C(n.placement),f=z(s),c=[P,L].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return Y("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:G(e,k))}(o.padding,n),u=g(i),l="y"===f?D:P,d="y"===f?A:L,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],v=E(i),y=v?"y"===f?v.clientHeight||0:v.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],O=y/2-u[c]/2+b,j=de(x,O,w),M=f;n.modifiersData[r]=((t={})[M]=j,t.centerOffset=j-O,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&N(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ve(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(e){return[D,L,A,P].some((function(t){return e[t]>=0}))}var ge={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=J(t,{elementContext:"reference"}),s=J(t,{altBoundary:!0}),f=ve(a,r),c=ve(s,o,i),p=ye(f),u=ye(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},be=Z({defaultModifiers:[ee,te,oe,ie]}),xe=[ee,te,oe,ie,ae,le,he,me,ge],we=Z({defaultModifiers:xe});e.applyStyles=ie,e.arrow=me,e.computeStyles=oe,e.createPopper=we,e.createPopperLite=be,e.defaultModifiers=xe,e.detectOverflow=J,e.eventListeners=ee,e.flip=le,e.hide=ge,e.offset=ae,e.popperGenerator=Z,e.popperOffsets=te,e.preventOverflow=he,Object.defineProperty(e,"__esModule",{value:!0})}));
6
+
src/_site/site_libs/quarto-html/quarto-syntax-highlighting.css ADDED
@@ -0,0 +1,203 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* quarto syntax highlight colors */
2
+ :root {
3
+ --quarto-hl-ot-color: #003B4F;
4
+ --quarto-hl-at-color: #657422;
5
+ --quarto-hl-ss-color: #20794D;
6
+ --quarto-hl-an-color: #5E5E5E;
7
+ --quarto-hl-fu-color: #4758AB;
8
+ --quarto-hl-st-color: #20794D;
9
+ --quarto-hl-cf-color: #003B4F;
10
+ --quarto-hl-op-color: #5E5E5E;
11
+ --quarto-hl-er-color: #AD0000;
12
+ --quarto-hl-bn-color: #AD0000;
13
+ --quarto-hl-al-color: #AD0000;
14
+ --quarto-hl-va-color: #111111;
15
+ --quarto-hl-bu-color: inherit;
16
+ --quarto-hl-ex-color: inherit;
17
+ --quarto-hl-pp-color: #AD0000;
18
+ --quarto-hl-in-color: #5E5E5E;
19
+ --quarto-hl-vs-color: #20794D;
20
+ --quarto-hl-wa-color: #5E5E5E;
21
+ --quarto-hl-do-color: #5E5E5E;
22
+ --quarto-hl-im-color: #00769E;
23
+ --quarto-hl-ch-color: #20794D;
24
+ --quarto-hl-dt-color: #AD0000;
25
+ --quarto-hl-fl-color: #AD0000;
26
+ --quarto-hl-co-color: #5E5E5E;
27
+ --quarto-hl-cv-color: #5E5E5E;
28
+ --quarto-hl-cn-color: #8f5902;
29
+ --quarto-hl-sc-color: #5E5E5E;
30
+ --quarto-hl-dv-color: #AD0000;
31
+ --quarto-hl-kw-color: #003B4F;
32
+ }
33
+
34
+ /* other quarto variables */
35
+ :root {
36
+ --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
37
+ }
38
+
39
+ pre > code.sourceCode > span {
40
+ color: #003B4F;
41
+ }
42
+
43
+ code span {
44
+ color: #003B4F;
45
+ }
46
+
47
+ code.sourceCode > span {
48
+ color: #003B4F;
49
+ }
50
+
51
+ div.sourceCode,
52
+ div.sourceCode pre.sourceCode {
53
+ color: #003B4F;
54
+ }
55
+
56
+ code span.ot {
57
+ color: #003B4F;
58
+ font-style: inherit;
59
+ }
60
+
61
+ code span.at {
62
+ color: #657422;
63
+ font-style: inherit;
64
+ }
65
+
66
+ code span.ss {
67
+ color: #20794D;
68
+ font-style: inherit;
69
+ }
70
+
71
+ code span.an {
72
+ color: #5E5E5E;
73
+ font-style: inherit;
74
+ }
75
+
76
+ code span.fu {
77
+ color: #4758AB;
78
+ font-style: inherit;
79
+ }
80
+
81
+ code span.st {
82
+ color: #20794D;
83
+ font-style: inherit;
84
+ }
85
+
86
+ code span.cf {
87
+ color: #003B4F;
88
+ font-style: inherit;
89
+ }
90
+
91
+ code span.op {
92
+ color: #5E5E5E;
93
+ font-style: inherit;
94
+ }
95
+
96
+ code span.er {
97
+ color: #AD0000;
98
+ font-style: inherit;
99
+ }
100
+
101
+ code span.bn {
102
+ color: #AD0000;
103
+ font-style: inherit;
104
+ }
105
+
106
+ code span.al {
107
+ color: #AD0000;
108
+ font-style: inherit;
109
+ }
110
+
111
+ code span.va {
112
+ color: #111111;
113
+ font-style: inherit;
114
+ }
115
+
116
+ code span.bu {
117
+ font-style: inherit;
118
+ }
119
+
120
+ code span.ex {
121
+ font-style: inherit;
122
+ }
123
+
124
+ code span.pp {
125
+ color: #AD0000;
126
+ font-style: inherit;
127
+ }
128
+
129
+ code span.in {
130
+ color: #5E5E5E;
131
+ font-style: inherit;
132
+ }
133
+
134
+ code span.vs {
135
+ color: #20794D;
136
+ font-style: inherit;
137
+ }
138
+
139
+ code span.wa {
140
+ color: #5E5E5E;
141
+ font-style: italic;
142
+ }
143
+
144
+ code span.do {
145
+ color: #5E5E5E;
146
+ font-style: italic;
147
+ }
148
+
149
+ code span.im {
150
+ color: #00769E;
151
+ font-style: inherit;
152
+ }
153
+
154
+ code span.ch {
155
+ color: #20794D;
156
+ font-style: inherit;
157
+ }
158
+
159
+ code span.dt {
160
+ color: #AD0000;
161
+ font-style: inherit;
162
+ }
163
+
164
+ code span.fl {
165
+ color: #AD0000;
166
+ font-style: inherit;
167
+ }
168
+
169
+ code span.co {
170
+ color: #5E5E5E;
171
+ font-style: inherit;
172
+ }
173
+
174
+ code span.cv {
175
+ color: #5E5E5E;
176
+ font-style: italic;
177
+ }
178
+
179
+ code span.cn {
180
+ color: #8f5902;
181
+ font-style: inherit;
182
+ }
183
+
184
+ code span.sc {
185
+ color: #5E5E5E;
186
+ font-style: inherit;
187
+ }
188
+
189
+ code span.dv {
190
+ color: #AD0000;
191
+ font-style: inherit;
192
+ }
193
+
194
+ code span.kw {
195
+ color: #003B4F;
196
+ font-style: inherit;
197
+ }
198
+
199
+ .prevent-inlining {
200
+ content: "</";
201
+ }
202
+
203
+ /*# sourceMappingURL=debc5d5d77c3f9108843748ff7464032.css.map */
src/_site/site_libs/quarto-html/quarto.js ADDED
@@ -0,0 +1,899 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const sectionChanged = new CustomEvent("quarto-sectionChanged", {
2
+ detail: {},
3
+ bubbles: true,
4
+ cancelable: false,
5
+ composed: false,
6
+ });
7
+
8
+ const layoutMarginEls = () => {
9
+ // Find any conflicting margin elements and add margins to the
10
+ // top to prevent overlap
11
+ const marginChildren = window.document.querySelectorAll(
12
+ ".column-margin.column-container > *, .margin-caption, .aside"
13
+ );
14
+
15
+ let lastBottom = 0;
16
+ for (const marginChild of marginChildren) {
17
+ if (marginChild.offsetParent !== null) {
18
+ // clear the top margin so we recompute it
19
+ marginChild.style.marginTop = null;
20
+ const top = marginChild.getBoundingClientRect().top + window.scrollY;
21
+ if (top < lastBottom) {
22
+ const marginChildStyle = window.getComputedStyle(marginChild);
23
+ const marginBottom = parseFloat(marginChildStyle["marginBottom"]);
24
+ const margin = lastBottom - top + marginBottom;
25
+ marginChild.style.marginTop = `${margin}px`;
26
+ }
27
+ const styles = window.getComputedStyle(marginChild);
28
+ const marginTop = parseFloat(styles["marginTop"]);
29
+ lastBottom = top + marginChild.getBoundingClientRect().height + marginTop;
30
+ }
31
+ }
32
+ };
33
+
34
+ window.document.addEventListener("DOMContentLoaded", function (_event) {
35
+ // Recompute the position of margin elements anytime the body size changes
36
+ if (window.ResizeObserver) {
37
+ const resizeObserver = new window.ResizeObserver(
38
+ throttle(() => {
39
+ layoutMarginEls();
40
+ if (
41
+ window.document.body.getBoundingClientRect().width < 990 &&
42
+ isReaderMode()
43
+ ) {
44
+ quartoToggleReader();
45
+ }
46
+ }, 50)
47
+ );
48
+ resizeObserver.observe(window.document.body);
49
+ }
50
+
51
+ const tocEl = window.document.querySelector('nav.toc-active[role="doc-toc"]');
52
+ const sidebarEl = window.document.getElementById("quarto-sidebar");
53
+ const leftTocEl = window.document.getElementById("quarto-sidebar-toc-left");
54
+ const marginSidebarEl = window.document.getElementById(
55
+ "quarto-margin-sidebar"
56
+ );
57
+ // function to determine whether the element has a previous sibling that is active
58
+ const prevSiblingIsActiveLink = (el) => {
59
+ const sibling = el.previousElementSibling;
60
+ if (sibling && sibling.tagName === "A") {
61
+ return sibling.classList.contains("active");
62
+ } else {
63
+ return false;
64
+ }
65
+ };
66
+
67
+ // fire slideEnter for bootstrap tab activations (for htmlwidget resize behavior)
68
+ function fireSlideEnter(e) {
69
+ const event = window.document.createEvent("Event");
70
+ event.initEvent("slideenter", true, true);
71
+ window.document.dispatchEvent(event);
72
+ }
73
+ const tabs = window.document.querySelectorAll('a[data-bs-toggle="tab"]');
74
+ tabs.forEach((tab) => {
75
+ tab.addEventListener("shown.bs.tab", fireSlideEnter);
76
+ });
77
+
78
+ // fire slideEnter for tabby tab activations (for htmlwidget resize behavior)
79
+ document.addEventListener("tabby", fireSlideEnter, false);
80
+
81
+ // Track scrolling and mark TOC links as active
82
+ // get table of contents and sidebar (bail if we don't have at least one)
83
+ const tocLinks = tocEl
84
+ ? [...tocEl.querySelectorAll("a[data-scroll-target]")]
85
+ : [];
86
+ const makeActive = (link) => tocLinks[link].classList.add("active");
87
+ const removeActive = (link) => tocLinks[link].classList.remove("active");
88
+ const removeAllActive = () =>
89
+ [...Array(tocLinks.length).keys()].forEach((link) => removeActive(link));
90
+
91
+ // activate the anchor for a section associated with this TOC entry
92
+ tocLinks.forEach((link) => {
93
+ link.addEventListener("click", () => {
94
+ if (link.href.indexOf("#") !== -1) {
95
+ const anchor = link.href.split("#")[1];
96
+ const heading = window.document.querySelector(
97
+ `[data-anchor-id=${anchor}]`
98
+ );
99
+ if (heading) {
100
+ // Add the class
101
+ heading.classList.add("reveal-anchorjs-link");
102
+
103
+ // function to show the anchor
104
+ const handleMouseout = () => {
105
+ heading.classList.remove("reveal-anchorjs-link");
106
+ heading.removeEventListener("mouseout", handleMouseout);
107
+ };
108
+
109
+ // add a function to clear the anchor when the user mouses out of it
110
+ heading.addEventListener("mouseout", handleMouseout);
111
+ }
112
+ }
113
+ });
114
+ });
115
+
116
+ const sections = tocLinks.map((link) => {
117
+ const target = link.getAttribute("data-scroll-target");
118
+ if (target.startsWith("#")) {
119
+ return window.document.getElementById(decodeURI(`${target.slice(1)}`));
120
+ } else {
121
+ return window.document.querySelector(decodeURI(`${target}`));
122
+ }
123
+ });
124
+
125
+ const sectionMargin = 200;
126
+ let currentActive = 0;
127
+ // track whether we've initialized state the first time
128
+ let init = false;
129
+
130
+ const updateActiveLink = () => {
131
+ // The index from bottom to top (e.g. reversed list)
132
+ let sectionIndex = -1;
133
+ if (
134
+ window.innerHeight + window.pageYOffset >=
135
+ window.document.body.offsetHeight
136
+ ) {
137
+ sectionIndex = 0;
138
+ } else {
139
+ sectionIndex = [...sections].reverse().findIndex((section) => {
140
+ if (section) {
141
+ return window.pageYOffset >= section.offsetTop - sectionMargin;
142
+ } else {
143
+ return false;
144
+ }
145
+ });
146
+ }
147
+ if (sectionIndex > -1) {
148
+ const current = sections.length - sectionIndex - 1;
149
+ if (current !== currentActive) {
150
+ removeAllActive();
151
+ currentActive = current;
152
+ makeActive(current);
153
+ if (init) {
154
+ window.dispatchEvent(sectionChanged);
155
+ }
156
+ init = true;
157
+ }
158
+ }
159
+ };
160
+
161
+ const inHiddenRegion = (top, bottom, hiddenRegions) => {
162
+ for (const region of hiddenRegions) {
163
+ if (top <= region.bottom && bottom >= region.top) {
164
+ return true;
165
+ }
166
+ }
167
+ return false;
168
+ };
169
+
170
+ const categorySelector = "header.quarto-title-block .quarto-category";
171
+ const activateCategories = (href) => {
172
+ // Find any categories
173
+ // Surround them with a link pointing back to:
174
+ // #category=Authoring
175
+ try {
176
+ const categoryEls = window.document.querySelectorAll(categorySelector);
177
+ for (const categoryEl of categoryEls) {
178
+ const categoryText = categoryEl.textContent;
179
+ if (categoryText) {
180
+ const link = `${href}#category=${encodeURIComponent(categoryText)}`;
181
+ const linkEl = window.document.createElement("a");
182
+ linkEl.setAttribute("href", link);
183
+ for (const child of categoryEl.childNodes) {
184
+ linkEl.append(child);
185
+ }
186
+ categoryEl.appendChild(linkEl);
187
+ }
188
+ }
189
+ } catch {
190
+ // Ignore errors
191
+ }
192
+ };
193
+ function hasTitleCategories() {
194
+ return window.document.querySelector(categorySelector) !== null;
195
+ }
196
+
197
+ function offsetRelativeUrl(url) {
198
+ const offset = getMeta("quarto:offset");
199
+ return offset ? offset + url : url;
200
+ }
201
+
202
+ function offsetAbsoluteUrl(url) {
203
+ const offset = getMeta("quarto:offset");
204
+ const baseUrl = new URL(offset, window.location);
205
+
206
+ const projRelativeUrl = url.replace(baseUrl, "");
207
+ if (projRelativeUrl.startsWith("/")) {
208
+ return projRelativeUrl;
209
+ } else {
210
+ return "/" + projRelativeUrl;
211
+ }
212
+ }
213
+
214
+ // read a meta tag value
215
+ function getMeta(metaName) {
216
+ const metas = window.document.getElementsByTagName("meta");
217
+ for (let i = 0; i < metas.length; i++) {
218
+ if (metas[i].getAttribute("name") === metaName) {
219
+ return metas[i].getAttribute("content");
220
+ }
221
+ }
222
+ return "";
223
+ }
224
+
225
+ async function findAndActivateCategories() {
226
+ const currentPagePath = offsetAbsoluteUrl(window.location.href);
227
+ const response = await fetch(offsetRelativeUrl("listings.json"));
228
+ if (response.status == 200) {
229
+ return response.json().then(function (listingPaths) {
230
+ const listingHrefs = [];
231
+ for (const listingPath of listingPaths) {
232
+ const pathWithoutLeadingSlash = listingPath.listing.substring(1);
233
+ for (const item of listingPath.items) {
234
+ if (
235
+ item === currentPagePath ||
236
+ item === currentPagePath + "index.html"
237
+ ) {
238
+ // Resolve this path against the offset to be sure
239
+ // we already are using the correct path to the listing
240
+ // (this adjusts the listing urls to be rooted against
241
+ // whatever root the page is actually running against)
242
+ const relative = offsetRelativeUrl(pathWithoutLeadingSlash);
243
+ const baseUrl = window.location;
244
+ const resolvedPath = new URL(relative, baseUrl);
245
+ listingHrefs.push(resolvedPath.pathname);
246
+ break;
247
+ }
248
+ }
249
+ }
250
+
251
+ // Look up the tree for a nearby linting and use that if we find one
252
+ const nearestListing = findNearestParentListing(
253
+ offsetAbsoluteUrl(window.location.pathname),
254
+ listingHrefs
255
+ );
256
+ if (nearestListing) {
257
+ activateCategories(nearestListing);
258
+ } else {
259
+ // See if the referrer is a listing page for this item
260
+ const referredRelativePath = offsetAbsoluteUrl(document.referrer);
261
+ const referrerListing = listingHrefs.find((listingHref) => {
262
+ const isListingReferrer =
263
+ listingHref === referredRelativePath ||
264
+ listingHref === referredRelativePath + "index.html";
265
+ return isListingReferrer;
266
+ });
267
+
268
+ if (referrerListing) {
269
+ // Try to use the referrer if possible
270
+ activateCategories(referrerListing);
271
+ } else if (listingHrefs.length > 0) {
272
+ // Otherwise, just fall back to the first listing
273
+ activateCategories(listingHrefs[0]);
274
+ }
275
+ }
276
+ });
277
+ }
278
+ }
279
+ if (hasTitleCategories()) {
280
+ findAndActivateCategories();
281
+ }
282
+
283
+ const findNearestParentListing = (href, listingHrefs) => {
284
+ if (!href || !listingHrefs) {
285
+ return undefined;
286
+ }
287
+ // Look up the tree for a nearby linting and use that if we find one
288
+ const relativeParts = href.substring(1).split("/");
289
+ while (relativeParts.length > 0) {
290
+ const path = relativeParts.join("/");
291
+ for (const listingHref of listingHrefs) {
292
+ if (listingHref.startsWith(path)) {
293
+ return listingHref;
294
+ }
295
+ }
296
+ relativeParts.pop();
297
+ }
298
+
299
+ return undefined;
300
+ };
301
+
302
+ const manageSidebarVisiblity = (el, placeholderDescriptor) => {
303
+ let isVisible = true;
304
+ let elRect;
305
+
306
+ return (hiddenRegions) => {
307
+ if (el === null) {
308
+ return;
309
+ }
310
+
311
+ // Find the last element of the TOC
312
+ const lastChildEl = el.lastElementChild;
313
+
314
+ if (lastChildEl) {
315
+ // Converts the sidebar to a menu
316
+ const convertToMenu = () => {
317
+ for (const child of el.children) {
318
+ child.style.opacity = 0;
319
+ child.style.overflow = "hidden";
320
+ }
321
+
322
+ nexttick(() => {
323
+ const toggleContainer = window.document.createElement("div");
324
+ toggleContainer.style.width = "100%";
325
+ toggleContainer.classList.add("zindex-over-content");
326
+ toggleContainer.classList.add("quarto-sidebar-toggle");
327
+ toggleContainer.classList.add("headroom-target"); // Marks this to be managed by headeroom
328
+ toggleContainer.id = placeholderDescriptor.id;
329
+ toggleContainer.style.position = "fixed";
330
+
331
+ const toggleIcon = window.document.createElement("i");
332
+ toggleIcon.classList.add("quarto-sidebar-toggle-icon");
333
+ toggleIcon.classList.add("bi");
334
+ toggleIcon.classList.add("bi-caret-down-fill");
335
+
336
+ const toggleTitle = window.document.createElement("div");
337
+ const titleEl = window.document.body.querySelector(
338
+ placeholderDescriptor.titleSelector
339
+ );
340
+ if (titleEl) {
341
+ toggleTitle.append(
342
+ titleEl.textContent || titleEl.innerText,
343
+ toggleIcon
344
+ );
345
+ }
346
+ toggleTitle.classList.add("zindex-over-content");
347
+ toggleTitle.classList.add("quarto-sidebar-toggle-title");
348
+ toggleContainer.append(toggleTitle);
349
+
350
+ const toggleContents = window.document.createElement("div");
351
+ toggleContents.classList = el.classList;
352
+ toggleContents.classList.add("zindex-over-content");
353
+ toggleContents.classList.add("quarto-sidebar-toggle-contents");
354
+ for (const child of el.children) {
355
+ if (child.id === "toc-title") {
356
+ continue;
357
+ }
358
+
359
+ const clone = child.cloneNode(true);
360
+ clone.style.opacity = 1;
361
+ clone.style.display = null;
362
+ toggleContents.append(clone);
363
+ }
364
+ toggleContents.style.height = "0px";
365
+ const positionToggle = () => {
366
+ // position the element (top left of parent, same width as parent)
367
+ if (!elRect) {
368
+ elRect = el.getBoundingClientRect();
369
+ }
370
+ toggleContainer.style.left = `${elRect.left}px`;
371
+ toggleContainer.style.top = `${elRect.top}px`;
372
+ toggleContainer.style.width = `${elRect.width}px`;
373
+ };
374
+ positionToggle();
375
+
376
+ toggleContainer.append(toggleContents);
377
+ el.parentElement.prepend(toggleContainer);
378
+
379
+ // Process clicks
380
+ let tocShowing = false;
381
+ // Allow the caller to control whether this is dismissed
382
+ // when it is clicked (e.g. sidebar navigation supports
383
+ // opening and closing the nav tree, so don't dismiss on click)
384
+ const clickEl = placeholderDescriptor.dismissOnClick
385
+ ? toggleContainer
386
+ : toggleTitle;
387
+
388
+ const closeToggle = () => {
389
+ if (tocShowing) {
390
+ toggleContainer.classList.remove("expanded");
391
+ toggleContents.style.height = "0px";
392
+ tocShowing = false;
393
+ }
394
+ };
395
+
396
+ // Get rid of any expanded toggle if the user scrolls
397
+ window.document.addEventListener(
398
+ "scroll",
399
+ throttle(() => {
400
+ closeToggle();
401
+ }, 50)
402
+ );
403
+
404
+ // Handle positioning of the toggle
405
+ window.addEventListener(
406
+ "resize",
407
+ throttle(() => {
408
+ elRect = undefined;
409
+ positionToggle();
410
+ }, 50)
411
+ );
412
+
413
+ window.addEventListener("quarto-hrChanged", () => {
414
+ elRect = undefined;
415
+ });
416
+
417
+ // Process the click
418
+ clickEl.onclick = () => {
419
+ if (!tocShowing) {
420
+ toggleContainer.classList.add("expanded");
421
+ toggleContents.style.height = null;
422
+ tocShowing = true;
423
+ } else {
424
+ closeToggle();
425
+ }
426
+ };
427
+ });
428
+ };
429
+
430
+ // Converts a sidebar from a menu back to a sidebar
431
+ const convertToSidebar = () => {
432
+ for (const child of el.children) {
433
+ child.style.opacity = 1;
434
+ child.style.overflow = null;
435
+ }
436
+
437
+ const placeholderEl = window.document.getElementById(
438
+ placeholderDescriptor.id
439
+ );
440
+ if (placeholderEl) {
441
+ placeholderEl.remove();
442
+ }
443
+
444
+ el.classList.remove("rollup");
445
+ };
446
+
447
+ if (isReaderMode()) {
448
+ convertToMenu();
449
+ isVisible = false;
450
+ } else {
451
+ // Find the top and bottom o the element that is being managed
452
+ const elTop = el.offsetTop;
453
+ const elBottom =
454
+ elTop + lastChildEl.offsetTop + lastChildEl.offsetHeight;
455
+
456
+ if (!isVisible) {
457
+ // If the element is current not visible reveal if there are
458
+ // no conflicts with overlay regions
459
+ if (!inHiddenRegion(elTop, elBottom, hiddenRegions)) {
460
+ convertToSidebar();
461
+ isVisible = true;
462
+ }
463
+ } else {
464
+ // If the element is visible, hide it if it conflicts with overlay regions
465
+ // and insert a placeholder toggle (or if we're in reader mode)
466
+ if (inHiddenRegion(elTop, elBottom, hiddenRegions)) {
467
+ convertToMenu();
468
+ isVisible = false;
469
+ }
470
+ }
471
+ }
472
+ }
473
+ };
474
+ };
475
+
476
+ const tabEls = document.querySelectorAll('a[data-bs-toggle="tab"]');
477
+ for (const tabEl of tabEls) {
478
+ const id = tabEl.getAttribute("data-bs-target");
479
+ if (id) {
480
+ const columnEl = document.querySelector(
481
+ `${id} .column-margin, .tabset-margin-content`
482
+ );
483
+ if (columnEl)
484
+ tabEl.addEventListener("shown.bs.tab", function (event) {
485
+ const el = event.srcElement;
486
+ if (el) {
487
+ const visibleCls = `${el.id}-margin-content`;
488
+ // walk up until we find a parent tabset
489
+ let panelTabsetEl = el.parentElement;
490
+ while (panelTabsetEl) {
491
+ if (panelTabsetEl.classList.contains("panel-tabset")) {
492
+ break;
493
+ }
494
+ panelTabsetEl = panelTabsetEl.parentElement;
495
+ }
496
+
497
+ if (panelTabsetEl) {
498
+ const prevSib = panelTabsetEl.previousElementSibling;
499
+ if (
500
+ prevSib &&
501
+ prevSib.classList.contains("tabset-margin-container")
502
+ ) {
503
+ const childNodes = prevSib.querySelectorAll(
504
+ ".tabset-margin-content"
505
+ );
506
+ for (const childEl of childNodes) {
507
+ if (childEl.classList.contains(visibleCls)) {
508
+ childEl.classList.remove("collapse");
509
+ } else {
510
+ childEl.classList.add("collapse");
511
+ }
512
+ }
513
+ }
514
+ }
515
+ }
516
+
517
+ layoutMarginEls();
518
+ });
519
+ }
520
+ }
521
+
522
+ // Manage the visibility of the toc and the sidebar
523
+ const marginScrollVisibility = manageSidebarVisiblity(marginSidebarEl, {
524
+ id: "quarto-toc-toggle",
525
+ titleSelector: "#toc-title",
526
+ dismissOnClick: true,
527
+ });
528
+ const sidebarScrollVisiblity = manageSidebarVisiblity(sidebarEl, {
529
+ id: "quarto-sidebarnav-toggle",
530
+ titleSelector: ".title",
531
+ dismissOnClick: false,
532
+ });
533
+ let tocLeftScrollVisibility;
534
+ if (leftTocEl) {
535
+ tocLeftScrollVisibility = manageSidebarVisiblity(leftTocEl, {
536
+ id: "quarto-lefttoc-toggle",
537
+ titleSelector: "#toc-title",
538
+ dismissOnClick: true,
539
+ });
540
+ }
541
+
542
+ // Find the first element that uses formatting in special columns
543
+ const conflictingEls = window.document.body.querySelectorAll(
544
+ '[class^="column-"], [class*=" column-"], aside, [class*="margin-caption"], [class*=" margin-caption"], [class*="margin-ref"], [class*=" margin-ref"]'
545
+ );
546
+
547
+ // Filter all the possibly conflicting elements into ones
548
+ // the do conflict on the left or ride side
549
+ const arrConflictingEls = Array.from(conflictingEls);
550
+ const leftSideConflictEls = arrConflictingEls.filter((el) => {
551
+ if (el.tagName === "ASIDE") {
552
+ return false;
553
+ }
554
+ return Array.from(el.classList).find((className) => {
555
+ return (
556
+ className !== "column-body" &&
557
+ className.startsWith("column-") &&
558
+ !className.endsWith("right") &&
559
+ !className.endsWith("container") &&
560
+ className !== "column-margin"
561
+ );
562
+ });
563
+ });
564
+ const rightSideConflictEls = arrConflictingEls.filter((el) => {
565
+ if (el.tagName === "ASIDE") {
566
+ return true;
567
+ }
568
+
569
+ const hasMarginCaption = Array.from(el.classList).find((className) => {
570
+ return className == "margin-caption";
571
+ });
572
+ if (hasMarginCaption) {
573
+ return true;
574
+ }
575
+
576
+ return Array.from(el.classList).find((className) => {
577
+ return (
578
+ className !== "column-body" &&
579
+ !className.endsWith("container") &&
580
+ className.startsWith("column-") &&
581
+ !className.endsWith("left")
582
+ );
583
+ });
584
+ });
585
+
586
+ const kOverlapPaddingSize = 10;
587
+ function toRegions(els) {
588
+ return els.map((el) => {
589
+ const boundRect = el.getBoundingClientRect();
590
+ const top =
591
+ boundRect.top +
592
+ document.documentElement.scrollTop -
593
+ kOverlapPaddingSize;
594
+ return {
595
+ top,
596
+ bottom: top + el.scrollHeight + 2 * kOverlapPaddingSize,
597
+ };
598
+ });
599
+ }
600
+
601
+ let hasObserved = false;
602
+ const visibleItemObserver = (els) => {
603
+ let visibleElements = [...els];
604
+ const intersectionObserver = new IntersectionObserver(
605
+ (entries, _observer) => {
606
+ entries.forEach((entry) => {
607
+ if (entry.isIntersecting) {
608
+ if (visibleElements.indexOf(entry.target) === -1) {
609
+ visibleElements.push(entry.target);
610
+ }
611
+ } else {
612
+ visibleElements = visibleElements.filter((visibleEntry) => {
613
+ return visibleEntry !== entry;
614
+ });
615
+ }
616
+ });
617
+
618
+ if (!hasObserved) {
619
+ hideOverlappedSidebars();
620
+ }
621
+ hasObserved = true;
622
+ },
623
+ {}
624
+ );
625
+ els.forEach((el) => {
626
+ intersectionObserver.observe(el);
627
+ });
628
+
629
+ return {
630
+ getVisibleEntries: () => {
631
+ return visibleElements;
632
+ },
633
+ };
634
+ };
635
+
636
+ const rightElementObserver = visibleItemObserver(rightSideConflictEls);
637
+ const leftElementObserver = visibleItemObserver(leftSideConflictEls);
638
+
639
+ const hideOverlappedSidebars = () => {
640
+ marginScrollVisibility(toRegions(rightElementObserver.getVisibleEntries()));
641
+ sidebarScrollVisiblity(toRegions(leftElementObserver.getVisibleEntries()));
642
+ if (tocLeftScrollVisibility) {
643
+ tocLeftScrollVisibility(
644
+ toRegions(leftElementObserver.getVisibleEntries())
645
+ );
646
+ }
647
+ };
648
+
649
+ window.quartoToggleReader = () => {
650
+ // Applies a slow class (or removes it)
651
+ // to update the transition speed
652
+ const slowTransition = (slow) => {
653
+ const manageTransition = (id, slow) => {
654
+ const el = document.getElementById(id);
655
+ if (el) {
656
+ if (slow) {
657
+ el.classList.add("slow");
658
+ } else {
659
+ el.classList.remove("slow");
660
+ }
661
+ }
662
+ };
663
+
664
+ manageTransition("TOC", slow);
665
+ manageTransition("quarto-sidebar", slow);
666
+ };
667
+ const readerMode = !isReaderMode();
668
+ setReaderModeValue(readerMode);
669
+
670
+ // If we're entering reader mode, slow the transition
671
+ if (readerMode) {
672
+ slowTransition(readerMode);
673
+ }
674
+ highlightReaderToggle(readerMode);
675
+ hideOverlappedSidebars();
676
+
677
+ // If we're exiting reader mode, restore the non-slow transition
678
+ if (!readerMode) {
679
+ slowTransition(!readerMode);
680
+ }
681
+ };
682
+
683
+ const highlightReaderToggle = (readerMode) => {
684
+ const els = document.querySelectorAll(".quarto-reader-toggle");
685
+ if (els) {
686
+ els.forEach((el) => {
687
+ if (readerMode) {
688
+ el.classList.add("reader");
689
+ } else {
690
+ el.classList.remove("reader");
691
+ }
692
+ });
693
+ }
694
+ };
695
+
696
+ const setReaderModeValue = (val) => {
697
+ if (window.location.protocol !== "file:") {
698
+ window.localStorage.setItem("quarto-reader-mode", val);
699
+ } else {
700
+ localReaderMode = val;
701
+ }
702
+ };
703
+
704
+ const isReaderMode = () => {
705
+ if (window.location.protocol !== "file:") {
706
+ return window.localStorage.getItem("quarto-reader-mode") === "true";
707
+ } else {
708
+ return localReaderMode;
709
+ }
710
+ };
711
+ let localReaderMode = null;
712
+
713
+ const tocOpenDepthStr = tocEl?.getAttribute("data-toc-expanded");
714
+ const tocOpenDepth = tocOpenDepthStr ? Number(tocOpenDepthStr) : 1;
715
+
716
+ // Walk the TOC and collapse/expand nodes
717
+ // Nodes are expanded if:
718
+ // - they are top level
719
+ // - they have children that are 'active' links
720
+ // - they are directly below an link that is 'active'
721
+ const walk = (el, depth) => {
722
+ // Tick depth when we enter a UL
723
+ if (el.tagName === "UL") {
724
+ depth = depth + 1;
725
+ }
726
+
727
+ // It this is active link
728
+ let isActiveNode = false;
729
+ if (el.tagName === "A" && el.classList.contains("active")) {
730
+ isActiveNode = true;
731
+ }
732
+
733
+ // See if there is an active child to this element
734
+ let hasActiveChild = false;
735
+ for (child of el.children) {
736
+ hasActiveChild = walk(child, depth) || hasActiveChild;
737
+ }
738
+
739
+ // Process the collapse state if this is an UL
740
+ if (el.tagName === "UL") {
741
+ if (tocOpenDepth === -1 && depth > 1) {
742
+ el.classList.add("collapse");
743
+ } else if (
744
+ depth <= tocOpenDepth ||
745
+ hasActiveChild ||
746
+ prevSiblingIsActiveLink(el)
747
+ ) {
748
+ el.classList.remove("collapse");
749
+ } else {
750
+ el.classList.add("collapse");
751
+ }
752
+
753
+ // untick depth when we leave a UL
754
+ depth = depth - 1;
755
+ }
756
+ return hasActiveChild || isActiveNode;
757
+ };
758
+
759
+ // walk the TOC and expand / collapse any items that should be shown
760
+
761
+ if (tocEl) {
762
+ walk(tocEl, 0);
763
+ updateActiveLink();
764
+ }
765
+
766
+ // Throttle the scroll event and walk peridiocally
767
+ window.document.addEventListener(
768
+ "scroll",
769
+ throttle(() => {
770
+ if (tocEl) {
771
+ updateActiveLink();
772
+ walk(tocEl, 0);
773
+ }
774
+ if (!isReaderMode()) {
775
+ hideOverlappedSidebars();
776
+ }
777
+ }, 5)
778
+ );
779
+ window.addEventListener(
780
+ "resize",
781
+ throttle(() => {
782
+ if (!isReaderMode()) {
783
+ hideOverlappedSidebars();
784
+ }
785
+ }, 10)
786
+ );
787
+ hideOverlappedSidebars();
788
+ highlightReaderToggle(isReaderMode());
789
+ });
790
+
791
+ // grouped tabsets
792
+ window.addEventListener("pageshow", (_event) => {
793
+ function getTabSettings() {
794
+ const data = localStorage.getItem("quarto-persistent-tabsets-data");
795
+ if (!data) {
796
+ localStorage.setItem("quarto-persistent-tabsets-data", "{}");
797
+ return {};
798
+ }
799
+ if (data) {
800
+ return JSON.parse(data);
801
+ }
802
+ }
803
+
804
+ function setTabSettings(data) {
805
+ localStorage.setItem(
806
+ "quarto-persistent-tabsets-data",
807
+ JSON.stringify(data)
808
+ );
809
+ }
810
+
811
+ function setTabState(groupName, groupValue) {
812
+ const data = getTabSettings();
813
+ data[groupName] = groupValue;
814
+ setTabSettings(data);
815
+ }
816
+
817
+ function toggleTab(tab, active) {
818
+ const tabPanelId = tab.getAttribute("aria-controls");
819
+ const tabPanel = document.getElementById(tabPanelId);
820
+ if (active) {
821
+ tab.classList.add("active");
822
+ tabPanel.classList.add("active");
823
+ } else {
824
+ tab.classList.remove("active");
825
+ tabPanel.classList.remove("active");
826
+ }
827
+ }
828
+
829
+ function toggleAll(selectedGroup, selectorsToSync) {
830
+ for (const [thisGroup, tabs] of Object.entries(selectorsToSync)) {
831
+ const active = selectedGroup === thisGroup;
832
+ for (const tab of tabs) {
833
+ toggleTab(tab, active);
834
+ }
835
+ }
836
+ }
837
+
838
+ function findSelectorsToSyncByLanguage() {
839
+ const result = {};
840
+ const tabs = Array.from(
841
+ document.querySelectorAll(`div[data-group] a[id^='tabset-']`)
842
+ );
843
+ for (const item of tabs) {
844
+ const div = item.parentElement.parentElement.parentElement;
845
+ const group = div.getAttribute("data-group");
846
+ if (!result[group]) {
847
+ result[group] = {};
848
+ }
849
+ const selectorsToSync = result[group];
850
+ const value = item.innerHTML;
851
+ if (!selectorsToSync[value]) {
852
+ selectorsToSync[value] = [];
853
+ }
854
+ selectorsToSync[value].push(item);
855
+ }
856
+ return result;
857
+ }
858
+
859
+ function setupSelectorSync() {
860
+ const selectorsToSync = findSelectorsToSyncByLanguage();
861
+ Object.entries(selectorsToSync).forEach(([group, tabSetsByValue]) => {
862
+ Object.entries(tabSetsByValue).forEach(([value, items]) => {
863
+ items.forEach((item) => {
864
+ item.addEventListener("click", (_event) => {
865
+ setTabState(group, value);
866
+ toggleAll(value, selectorsToSync[group]);
867
+ });
868
+ });
869
+ });
870
+ });
871
+ return selectorsToSync;
872
+ }
873
+
874
+ const selectorsToSync = setupSelectorSync();
875
+ for (const [group, selectedName] of Object.entries(getTabSettings())) {
876
+ const selectors = selectorsToSync[group];
877
+ // it's possible that stale state gives us empty selections, so we explicitly check here.
878
+ if (selectors) {
879
+ toggleAll(selectedName, selectors);
880
+ }
881
+ }
882
+ });
883
+
884
+ function throttle(func, wait) {
885
+ let waiting = false;
886
+ return function () {
887
+ if (!waiting) {
888
+ func.apply(this, arguments);
889
+ waiting = true;
890
+ setTimeout(function () {
891
+ waiting = false;
892
+ }, wait);
893
+ }
894
+ };
895
+ }
896
+
897
+ function nexttick(func) {
898
+ return setTimeout(func, 0);
899
+ }
src/_site/site_libs/quarto-html/tippy.css ADDED
@@ -0,0 +1 @@
 
 
1
+ .tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}
src/_site/site_libs/quarto-html/tippy.umd.min.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],t):(e=e||self).tippy=t(e.Popper)}(this,(function(e){"use strict";var t={passive:!0,capture:!0},n=function(){return document.body};function r(e,t,n){if(Array.isArray(e)){var r=e[t];return null==r?Array.isArray(n)?n[t]:n:r}return e}function o(e,t){var n={}.toString.call(e);return 0===n.indexOf("[object")&&n.indexOf(t+"]")>-1}function i(e,t){return"function"==typeof e?e.apply(void 0,t):e}function a(e,t){return 0===t?e:function(r){clearTimeout(n),n=setTimeout((function(){e(r)}),t)};var n}function s(e,t){var n=Object.assign({},e);return t.forEach((function(e){delete n[e]})),n}function u(e){return[].concat(e)}function c(e,t){-1===e.indexOf(t)&&e.push(t)}function p(e){return e.split("-")[0]}function f(e){return[].slice.call(e)}function l(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function d(){return document.createElement("div")}function v(e){return["Element","Fragment"].some((function(t){return o(e,t)}))}function m(e){return o(e,"MouseEvent")}function g(e){return!(!e||!e._tippy||e._tippy.reference!==e)}function h(e){return v(e)?[e]:function(e){return o(e,"NodeList")}(e)?f(e):Array.isArray(e)?e:f(document.querySelectorAll(e))}function b(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function y(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function w(e){var t,n=u(e)[0];return null!=n&&null!=(t=n.ownerDocument)&&t.body?n.ownerDocument:document}function E(e,t,n){var r=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[r](t,n)}))}function O(e,t){for(var n=t;n;){var r;if(e.contains(n))return!0;n=null==n.getRootNode||null==(r=n.getRootNode())?void 0:r.host}return!1}var x={isTouch:!1},C=0;function T(){x.isTouch||(x.isTouch=!0,window.performance&&document.addEventListener("mousemove",A))}function A(){var e=performance.now();e-C<20&&(x.isTouch=!1,document.removeEventListener("mousemove",A)),C=e}function L(){var e=document.activeElement;if(g(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}var D=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,R=Object.assign({appendTo:n,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),k=Object.keys(R);function P(e){var t=(e.plugins||[]).reduce((function(t,n){var r,o=n.name,i=n.defaultValue;o&&(t[o]=void 0!==e[o]?e[o]:null!=(r=R[o])?r:i);return t}),{});return Object.assign({},e,t)}function j(e,t){var n=Object.assign({},t,{content:i(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(P(Object.assign({},R,{plugins:t}))):k).reduce((function(t,n){var r=(e.getAttribute("data-tippy-"+n)||"").trim();if(!r)return t;if("content"===n)t[n]=r;else try{t[n]=JSON.parse(r)}catch(e){t[n]=r}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},R.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}function M(e,t){e.innerHTML=t}function V(e){var t=d();return!0===e?t.className="tippy-arrow":(t.className="tippy-svg-arrow",v(e)?t.appendChild(e):M(t,e)),t}function I(e,t){v(t.content)?(M(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?M(e,t.content):e.textContent=t.content)}function S(e){var t=e.firstElementChild,n=f(t.children);return{box:t,content:n.find((function(e){return e.classList.contains("tippy-content")})),arrow:n.find((function(e){return e.classList.contains("tippy-arrow")||e.classList.contains("tippy-svg-arrow")})),backdrop:n.find((function(e){return e.classList.contains("tippy-backdrop")}))}}function N(e){var t=d(),n=d();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var r=d();function o(n,r){var o=S(t),i=o.box,a=o.content,s=o.arrow;r.theme?i.setAttribute("data-theme",r.theme):i.removeAttribute("data-theme"),"string"==typeof r.animation?i.setAttribute("data-animation",r.animation):i.removeAttribute("data-animation"),r.inertia?i.setAttribute("data-inertia",""):i.removeAttribute("data-inertia"),i.style.maxWidth="number"==typeof r.maxWidth?r.maxWidth+"px":r.maxWidth,r.role?i.setAttribute("role",r.role):i.removeAttribute("role"),n.content===r.content&&n.allowHTML===r.allowHTML||I(a,e.props),r.arrow?s?n.arrow!==r.arrow&&(i.removeChild(s),i.appendChild(V(r.arrow))):i.appendChild(V(r.arrow)):s&&i.removeChild(s)}return r.className="tippy-content",r.setAttribute("data-state","hidden"),I(r,e.props),t.appendChild(n),n.appendChild(r),o(e.props,e.props),{popper:t,onUpdate:o}}N.$$tippy=!0;var B=1,H=[],U=[];function _(o,s){var v,g,h,C,T,A,L,k,M=j(o,Object.assign({},R,P(l(s)))),V=!1,I=!1,N=!1,_=!1,F=[],W=a(we,M.interactiveDebounce),X=B++,Y=(k=M.plugins).filter((function(e,t){return k.indexOf(e)===t})),$={id:X,reference:o,popper:d(),popperInstance:null,props:M,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:Y,clearDelayTimeouts:function(){clearTimeout(v),clearTimeout(g),cancelAnimationFrame(h)},setProps:function(e){if($.state.isDestroyed)return;ae("onBeforeUpdate",[$,e]),be();var t=$.props,n=j(o,Object.assign({},t,l(e),{ignoreAttributes:!0}));$.props=n,he(),t.interactiveDebounce!==n.interactiveDebounce&&(ce(),W=a(we,n.interactiveDebounce));t.triggerTarget&&!n.triggerTarget?u(t.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):n.triggerTarget&&o.removeAttribute("aria-expanded");ue(),ie(),J&&J(t,n);$.popperInstance&&(Ce(),Ae().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));ae("onAfterUpdate",[$,e])},setContent:function(e){$.setProps({content:e})},show:function(){var e=$.state.isVisible,t=$.state.isDestroyed,o=!$.state.isEnabled,a=x.isTouch&&!$.props.touch,s=r($.props.duration,0,R.duration);if(e||t||o||a)return;if(te().hasAttribute("disabled"))return;if(ae("onShow",[$],!1),!1===$.props.onShow($))return;$.state.isVisible=!0,ee()&&(z.style.visibility="visible");ie(),de(),$.state.isMounted||(z.style.transition="none");if(ee()){var u=re(),p=u.box,f=u.content;b([p,f],0)}A=function(){var e;if($.state.isVisible&&!_){if(_=!0,z.offsetHeight,z.style.transition=$.props.moveTransition,ee()&&$.props.animation){var t=re(),n=t.box,r=t.content;b([n,r],s),y([n,r],"visible")}se(),ue(),c(U,$),null==(e=$.popperInstance)||e.forceUpdate(),ae("onMount",[$]),$.props.animation&&ee()&&function(e,t){me(e,t)}(s,(function(){$.state.isShown=!0,ae("onShown",[$])}))}},function(){var e,t=$.props.appendTo,r=te();e=$.props.interactive&&t===n||"parent"===t?r.parentNode:i(t,[r]);e.contains(z)||e.appendChild(z);$.state.isMounted=!0,Ce()}()},hide:function(){var e=!$.state.isVisible,t=$.state.isDestroyed,n=!$.state.isEnabled,o=r($.props.duration,1,R.duration);if(e||t||n)return;if(ae("onHide",[$],!1),!1===$.props.onHide($))return;$.state.isVisible=!1,$.state.isShown=!1,_=!1,V=!1,ee()&&(z.style.visibility="hidden");if(ce(),ve(),ie(!0),ee()){var i=re(),a=i.box,s=i.content;$.props.animation&&(b([a,s],o),y([a,s],"hidden"))}se(),ue(),$.props.animation?ee()&&function(e,t){me(e,(function(){!$.state.isVisible&&z.parentNode&&z.parentNode.contains(z)&&t()}))}(o,$.unmount):$.unmount()},hideWithInteractivity:function(e){ne().addEventListener("mousemove",W),c(H,W),W(e)},enable:function(){$.state.isEnabled=!0},disable:function(){$.hide(),$.state.isEnabled=!1},unmount:function(){$.state.isVisible&&$.hide();if(!$.state.isMounted)return;Te(),Ae().forEach((function(e){e._tippy.unmount()})),z.parentNode&&z.parentNode.removeChild(z);U=U.filter((function(e){return e!==$})),$.state.isMounted=!1,ae("onHidden",[$])},destroy:function(){if($.state.isDestroyed)return;$.clearDelayTimeouts(),$.unmount(),be(),delete o._tippy,$.state.isDestroyed=!0,ae("onDestroy",[$])}};if(!M.render)return $;var q=M.render($),z=q.popper,J=q.onUpdate;z.setAttribute("data-tippy-root",""),z.id="tippy-"+$.id,$.popper=z,o._tippy=$,z._tippy=$;var G=Y.map((function(e){return e.fn($)})),K=o.hasAttribute("aria-expanded");return he(),ue(),ie(),ae("onCreate",[$]),M.showOnCreate&&Le(),z.addEventListener("mouseenter",(function(){$.props.interactive&&$.state.isVisible&&$.clearDelayTimeouts()})),z.addEventListener("mouseleave",(function(){$.props.interactive&&$.props.trigger.indexOf("mouseenter")>=0&&ne().addEventListener("mousemove",W)})),$;function Q(){var e=$.props.touch;return Array.isArray(e)?e:[e,0]}function Z(){return"hold"===Q()[0]}function ee(){var e;return!(null==(e=$.props.render)||!e.$$tippy)}function te(){return L||o}function ne(){var e=te().parentNode;return e?w(e):document}function re(){return S(z)}function oe(e){return $.state.isMounted&&!$.state.isVisible||x.isTouch||C&&"focus"===C.type?0:r($.props.delay,e?0:1,R.delay)}function ie(e){void 0===e&&(e=!1),z.style.pointerEvents=$.props.interactive&&!e?"":"none",z.style.zIndex=""+$.props.zIndex}function ae(e,t,n){var r;(void 0===n&&(n=!0),G.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(r=$.props)[e].apply(r,t)}function se(){var e=$.props.aria;if(e.content){var t="aria-"+e.content,n=z.id;u($.props.triggerTarget||o).forEach((function(e){var r=e.getAttribute(t);if($.state.isVisible)e.setAttribute(t,r?r+" "+n:n);else{var o=r&&r.replace(n,"").trim();o?e.setAttribute(t,o):e.removeAttribute(t)}}))}}function ue(){!K&&$.props.aria.expanded&&u($.props.triggerTarget||o).forEach((function(e){$.props.interactive?e.setAttribute("aria-expanded",$.state.isVisible&&e===te()?"true":"false"):e.removeAttribute("aria-expanded")}))}function ce(){ne().removeEventListener("mousemove",W),H=H.filter((function(e){return e!==W}))}function pe(e){if(!x.isTouch||!N&&"mousedown"!==e.type){var t=e.composedPath&&e.composedPath()[0]||e.target;if(!$.props.interactive||!O(z,t)){if(u($.props.triggerTarget||o).some((function(e){return O(e,t)}))){if(x.isTouch)return;if($.state.isVisible&&$.props.trigger.indexOf("click")>=0)return}else ae("onClickOutside",[$,e]);!0===$.props.hideOnClick&&($.clearDelayTimeouts(),$.hide(),I=!0,setTimeout((function(){I=!1})),$.state.isMounted||ve())}}}function fe(){N=!0}function le(){N=!1}function de(){var e=ne();e.addEventListener("mousedown",pe,!0),e.addEventListener("touchend",pe,t),e.addEventListener("touchstart",le,t),e.addEventListener("touchmove",fe,t)}function ve(){var e=ne();e.removeEventListener("mousedown",pe,!0),e.removeEventListener("touchend",pe,t),e.removeEventListener("touchstart",le,t),e.removeEventListener("touchmove",fe,t)}function me(e,t){var n=re().box;function r(e){e.target===n&&(E(n,"remove",r),t())}if(0===e)return t();E(n,"remove",T),E(n,"add",r),T=r}function ge(e,t,n){void 0===n&&(n=!1),u($.props.triggerTarget||o).forEach((function(r){r.addEventListener(e,t,n),F.push({node:r,eventType:e,handler:t,options:n})}))}function he(){var e;Z()&&(ge("touchstart",ye,{passive:!0}),ge("touchend",Ee,{passive:!0})),(e=$.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(ge(e,ye),e){case"mouseenter":ge("mouseleave",Ee);break;case"focus":ge(D?"focusout":"blur",Oe);break;case"focusin":ge("focusout",Oe)}}))}function be(){F.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),F=[]}function ye(e){var t,n=!1;if($.state.isEnabled&&!xe(e)&&!I){var r="focus"===(null==(t=C)?void 0:t.type);C=e,L=e.currentTarget,ue(),!$.state.isVisible&&m(e)&&H.forEach((function(t){return t(e)})),"click"===e.type&&($.props.trigger.indexOf("mouseenter")<0||V)&&!1!==$.props.hideOnClick&&$.state.isVisible?n=!0:Le(e),"click"===e.type&&(V=!n),n&&!r&&De(e)}}function we(e){var t=e.target,n=te().contains(t)||z.contains(t);"mousemove"===e.type&&n||function(e,t){var n=t.clientX,r=t.clientY;return e.every((function(e){var t=e.popperRect,o=e.popperState,i=e.props.interactiveBorder,a=p(o.placement),s=o.modifiersData.offset;if(!s)return!0;var u="bottom"===a?s.top.y:0,c="top"===a?s.bottom.y:0,f="right"===a?s.left.x:0,l="left"===a?s.right.x:0,d=t.top-r+u>i,v=r-t.bottom-c>i,m=t.left-n+f>i,g=n-t.right-l>i;return d||v||m||g}))}(Ae().concat(z).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:M}:null})).filter(Boolean),e)&&(ce(),De(e))}function Ee(e){xe(e)||$.props.trigger.indexOf("click")>=0&&V||($.props.interactive?$.hideWithInteractivity(e):De(e))}function Oe(e){$.props.trigger.indexOf("focusin")<0&&e.target!==te()||$.props.interactive&&e.relatedTarget&&z.contains(e.relatedTarget)||De(e)}function xe(e){return!!x.isTouch&&Z()!==e.type.indexOf("touch")>=0}function Ce(){Te();var t=$.props,n=t.popperOptions,r=t.placement,i=t.offset,a=t.getReferenceClientRect,s=t.moveTransition,u=ee()?S(z).arrow:null,c=a?{getBoundingClientRect:a,contextElement:a.contextElement||te()}:o,p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!s}},{name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(ee()){var n=re().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}}];ee()&&u&&p.push({name:"arrow",options:{element:u,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),$.popperInstance=e.createPopper(c,z,Object.assign({},n,{placement:r,onFirstUpdate:A,modifiers:p}))}function Te(){$.popperInstance&&($.popperInstance.destroy(),$.popperInstance=null)}function Ae(){return f(z.querySelectorAll("[data-tippy-root]"))}function Le(e){$.clearDelayTimeouts(),e&&ae("onTrigger",[$,e]),de();var t=oe(!0),n=Q(),r=n[0],o=n[1];x.isTouch&&"hold"===r&&o&&(t=o),t?v=setTimeout((function(){$.show()}),t):$.show()}function De(e){if($.clearDelayTimeouts(),ae("onUntrigger",[$,e]),$.state.isVisible){if(!($.props.trigger.indexOf("mouseenter")>=0&&$.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&V)){var t=oe(!1);t?g=setTimeout((function(){$.state.isVisible&&$.hide()}),t):h=requestAnimationFrame((function(){$.hide()}))}}else ve()}}function F(e,n){void 0===n&&(n={});var r=R.plugins.concat(n.plugins||[]);document.addEventListener("touchstart",T,t),window.addEventListener("blur",L);var o=Object.assign({},n,{plugins:r}),i=h(e).reduce((function(e,t){var n=t&&_(t,o);return n&&e.push(n),e}),[]);return v(e)?i[0]:i}F.defaultProps=R,F.setDefaultProps=function(e){Object.keys(e).forEach((function(t){R[t]=e[t]}))},F.currentInput=x;var W=Object.assign({},e.applyStyles,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),X={mouseover:"mouseenter",focusin:"focus",click:"click"};var Y={name:"animateFill",defaultValue:!1,fn:function(e){var t;if(null==(t=e.props.render)||!t.$$tippy)return{};var n=S(e.popper),r=n.box,o=n.content,i=e.props.animateFill?function(){var e=d();return e.className="tippy-backdrop",y([e],"hidden"),e}():null;return{onCreate:function(){i&&(r.insertBefore(i,r.firstElementChild),r.setAttribute("data-animatefill",""),r.style.overflow="hidden",e.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(i){var e=r.style.transitionDuration,t=Number(e.replace("ms",""));o.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y([i],"visible")}},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y([i],"hidden")}}}};var $={clientX:0,clientY:0},q=[];function z(e){var t=e.clientX,n=e.clientY;$={clientX:t,clientY:n}}var J={name:"followCursor",defaultValue:!1,fn:function(e){var t=e.reference,n=w(e.props.triggerTarget||t),r=!1,o=!1,i=!0,a=e.props;function s(){return"initial"===e.props.followCursor&&e.state.isVisible}function u(){n.addEventListener("mousemove",f)}function c(){n.removeEventListener("mousemove",f)}function p(){r=!0,e.setProps({getReferenceClientRect:null}),r=!1}function f(n){var r=!n.target||t.contains(n.target),o=e.props.followCursor,i=n.clientX,a=n.clientY,s=t.getBoundingClientRect(),u=i-s.left,c=a-s.top;!r&&e.props.interactive||e.setProps({getReferenceClientRect:function(){var e=t.getBoundingClientRect(),n=i,r=a;"initial"===o&&(n=e.left+u,r=e.top+c);var s="horizontal"===o?e.top:r,p="vertical"===o?e.right:n,f="horizontal"===o?e.bottom:r,l="vertical"===o?e.left:n;return{width:p-l,height:f-s,top:s,right:p,bottom:f,left:l}}})}function l(){e.props.followCursor&&(q.push({instance:e,doc:n}),function(e){e.addEventListener("mousemove",z)}(n))}function d(){0===(q=q.filter((function(t){return t.instance!==e}))).filter((function(e){return e.doc===n})).length&&function(e){e.removeEventListener("mousemove",z)}(n)}return{onCreate:l,onDestroy:d,onBeforeUpdate:function(){a=e.props},onAfterUpdate:function(t,n){var i=n.followCursor;r||void 0!==i&&a.followCursor!==i&&(d(),i?(l(),!e.state.isMounted||o||s()||u()):(c(),p()))},onMount:function(){e.props.followCursor&&!o&&(i&&(f($),i=!1),s()||u())},onTrigger:function(e,t){m(t)&&($={clientX:t.clientX,clientY:t.clientY}),o="focus"===t.type},onHidden:function(){e.props.followCursor&&(p(),c(),i=!0)}}}};var G={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t,n=e.reference;var r=-1,o=!1,i=[],a={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(o){var a=o.state;e.props.inlinePositioning&&(-1!==i.indexOf(a.placement)&&(i=[]),t!==a.placement&&-1===i.indexOf(a.placement)&&(i.push(a.placement),e.setProps({getReferenceClientRect:function(){return function(e){return function(e,t,n,r){if(n.length<2||null===e)return t;if(2===n.length&&r>=0&&n[0].left>n[1].right)return n[r]||t;switch(e){case"top":case"bottom":var o=n[0],i=n[n.length-1],a="top"===e,s=o.top,u=i.bottom,c=a?o.left:i.left,p=a?o.right:i.right;return{top:s,bottom:u,left:c,right:p,width:p-c,height:u-s};case"left":case"right":var f=Math.min.apply(Math,n.map((function(e){return e.left}))),l=Math.max.apply(Math,n.map((function(e){return e.right}))),d=n.filter((function(t){return"left"===e?t.left===f:t.right===l})),v=d[0].top,m=d[d.length-1].bottom;return{top:v,bottom:m,left:f,right:l,width:l-f,height:m-v};default:return t}}(p(e),n.getBoundingClientRect(),f(n.getClientRects()),r)}(a.placement)}})),t=a.placement)}};function s(){var t;o||(t=function(e,t){var n;return{popperOptions:Object.assign({},e.popperOptions,{modifiers:[].concat(((null==(n=e.popperOptions)?void 0:n.modifiers)||[]).filter((function(e){return e.name!==t.name})),[t])})}}(e.props,a),o=!0,e.setProps(t),o=!1)}return{onCreate:s,onAfterUpdate:s,onTrigger:function(t,n){if(m(n)){var o=f(e.reference.getClientRects()),i=o.find((function(e){return e.left-2<=n.clientX&&e.right+2>=n.clientX&&e.top-2<=n.clientY&&e.bottom+2>=n.clientY})),a=o.indexOf(i);r=a>-1?a:r}},onHidden:function(){r=-1}}}};var K={name:"sticky",defaultValue:!1,fn:function(e){var t=e.reference,n=e.popper;function r(t){return!0===e.props.sticky||e.props.sticky===t}var o=null,i=null;function a(){var s=r("reference")?(e.popperInstance?e.popperInstance.state.elements.reference:t).getBoundingClientRect():null,u=r("popper")?n.getBoundingClientRect():null;(s&&Q(o,s)||u&&Q(i,u))&&e.popperInstance&&e.popperInstance.update(),o=s,i=u,e.state.isMounted&&requestAnimationFrame(a)}return{onMount:function(){e.props.sticky&&a()}}}};function Q(e,t){return!e||!t||(e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left)}return F.setDefaultProps({plugins:[Y,J,G,K],render:N}),F.createSingleton=function(e,t){var n;void 0===t&&(t={});var r,o=e,i=[],a=[],c=t.overrides,p=[],f=!1;function l(){a=o.map((function(e){return u(e.props.triggerTarget||e.reference)})).reduce((function(e,t){return e.concat(t)}),[])}function v(){i=o.map((function(e){return e.reference}))}function m(e){o.forEach((function(t){e?t.enable():t.disable()}))}function g(e){return o.map((function(t){var n=t.setProps;return t.setProps=function(o){n(o),t.reference===r&&e.setProps(o)},function(){t.setProps=n}}))}function h(e,t){var n=a.indexOf(t);if(t!==r){r=t;var s=(c||[]).concat("content").reduce((function(e,t){return e[t]=o[n].props[t],e}),{});e.setProps(Object.assign({},s,{getReferenceClientRect:"function"==typeof s.getReferenceClientRect?s.getReferenceClientRect:function(){var e;return null==(e=i[n])?void 0:e.getBoundingClientRect()}}))}}m(!1),v(),l();var b={fn:function(){return{onDestroy:function(){m(!0)},onHidden:function(){r=null},onClickOutside:function(e){e.props.showOnCreate&&!f&&(f=!0,r=null)},onShow:function(e){e.props.showOnCreate&&!f&&(f=!0,h(e,i[0]))},onTrigger:function(e,t){h(e,t.currentTarget)}}}},y=F(d(),Object.assign({},s(t,["overrides"]),{plugins:[b].concat(t.plugins||[]),triggerTarget:a,popperOptions:Object.assign({},t.popperOptions,{modifiers:[].concat((null==(n=t.popperOptions)?void 0:n.modifiers)||[],[W])})})),w=y.show;y.show=function(e){if(w(),!r&&null==e)return h(y,i[0]);if(!r||null!=e){if("number"==typeof e)return i[e]&&h(y,i[e]);if(o.indexOf(e)>=0){var t=e.reference;return h(y,t)}return i.indexOf(e)>=0?h(y,e):void 0}},y.showNext=function(){var e=i[0];if(!r)return y.show(0);var t=i.indexOf(r);y.show(i[t+1]||e)},y.showPrevious=function(){var e=i[i.length-1];if(!r)return y.show(e);var t=i.indexOf(r),n=i[t-1]||e;y.show(n)};var E=y.setProps;return y.setProps=function(e){c=e.overrides||c,E(e)},y.setInstances=function(e){m(!0),p.forEach((function(e){return e()})),o=e,m(!1),v(),l(),p=g(y),y.setProps({triggerTarget:a})},p=g(y),y},F.delegate=function(e,n){var r=[],o=[],i=!1,a=n.target,c=s(n,["target"]),p=Object.assign({},c,{trigger:"manual",touch:!1}),f=Object.assign({touch:R.touch},c,{showOnCreate:!0}),l=F(e,p);function d(e){if(e.target&&!i){var t=e.target.closest(a);if(t){var r=t.getAttribute("data-tippy-trigger")||n.trigger||R.trigger;if(!t._tippy&&!("touchstart"===e.type&&"boolean"==typeof f.touch||"touchstart"!==e.type&&r.indexOf(X[e.type])<0)){var s=F(t,f);s&&(o=o.concat(s))}}}}function v(e,t,n,o){void 0===o&&(o=!1),e.addEventListener(t,n,o),r.push({node:e,eventType:t,handler:n,options:o})}return u(l).forEach((function(e){var n=e.destroy,a=e.enable,s=e.disable;e.destroy=function(e){void 0===e&&(e=!0),e&&o.forEach((function(e){e.destroy()})),o=[],r.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),r=[],n()},e.enable=function(){a(),o.forEach((function(e){return e.enable()})),i=!1},e.disable=function(){s(),o.forEach((function(e){return e.disable()})),i=!0},function(e){var n=e.reference;v(n,"touchstart",d,t),v(n,"mouseover",d),v(n,"focusin",d),v(n,"click",d)}(e)})),l},F.hideAll=function(e){var t=void 0===e?{}:e,n=t.exclude,r=t.duration;U.forEach((function(e){var t=!1;if(n&&(t=g(n)?e.reference===n:e.popper===n.popper),!t){var o=e.props.duration;e.setProps({duration:r}),e.hide(),e.state.isDestroyed||e.setProps({duration:o})}}))},F.roundArrow='<svg width="16" height="6" xmlns="http://www.w3.org/2000/svg"><path d="M0 6s1.796-.013 4.67-3.615C5.851.9 6.93.006 8 0c1.07-.006 2.148.887 3.343 2.385C14.233 6.005 16 6 16 6H0z"></svg>',F}));
2
+
src/_site/site_libs/quarto-listing/list.min.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ var List;List=function(){var t={"./src/add-async.js":function(t){t.exports=function(t){return function e(r,n,s){var i=r.splice(0,50);s=(s=s||[]).concat(t.add(i)),r.length>0?setTimeout((function(){e(r,n,s)}),1):(t.update(),n(s))}}},"./src/filter.js":function(t){t.exports=function(t){return t.handlers.filterStart=t.handlers.filterStart||[],t.handlers.filterComplete=t.handlers.filterComplete||[],function(e){if(t.trigger("filterStart"),t.i=1,t.reset.filter(),void 0===e)t.filtered=!1;else{t.filtered=!0;for(var r=t.items,n=0,s=r.length;n<s;n++){var i=r[n];e(i)?i.filtered=!0:i.filtered=!1}}return t.update(),t.trigger("filterComplete"),t.visibleItems}}},"./src/fuzzy-search.js":function(t,e,r){r("./src/utils/classes.js");var n=r("./src/utils/events.js"),s=r("./src/utils/extend.js"),i=r("./src/utils/to-string.js"),a=r("./src/utils/get-by-class.js"),o=r("./src/utils/fuzzy.js");t.exports=function(t,e){e=s({location:0,distance:100,threshold:.4,multiSearch:!0,searchClass:"fuzzy-search"},e=e||{});var r={search:function(n,s){for(var i=e.multiSearch?n.replace(/ +$/,"").split(/ +/):[n],a=0,o=t.items.length;a<o;a++)r.item(t.items[a],s,i)},item:function(t,e,n){for(var s=!0,i=0;i<n.length;i++){for(var a=!1,o=0,l=e.length;o<l;o++)r.values(t.values(),e[o],n[i])&&(a=!0);a||(s=!1)}t.found=s},values:function(t,r,n){if(t.hasOwnProperty(r)){var s=i(t[r]).toLowerCase();if(o(s,n,e))return!0}return!1}};return n.bind(a(t.listContainer,e.searchClass),"keyup",t.utils.events.debounce((function(e){var n=e.target||e.srcElement;t.search(n.value,r.search)}),t.searchDelay)),function(e,n){t.search(e,n,r.search)}}},"./src/index.js":function(t,e,r){var n=r("./node_modules/string-natural-compare/natural-compare.js"),s=r("./src/utils/get-by-class.js"),i=r("./src/utils/extend.js"),a=r("./src/utils/index-of.js"),o=r("./src/utils/events.js"),l=r("./src/utils/to-string.js"),u=r("./src/utils/classes.js"),c=r("./src/utils/get-attribute.js"),f=r("./src/utils/to-array.js");t.exports=function(t,e,h){var d,v=this,g=r("./src/item.js")(v),m=r("./src/add-async.js")(v),p=r("./src/pagination.js")(v);d={start:function(){v.listClass="list",v.searchClass="search",v.sortClass="sort",v.page=1e4,v.i=1,v.items=[],v.visibleItems=[],v.matchingItems=[],v.searched=!1,v.filtered=!1,v.searchColumns=void 0,v.searchDelay=0,v.handlers={updated:[]},v.valueNames=[],v.utils={getByClass:s,extend:i,indexOf:a,events:o,toString:l,naturalSort:n,classes:u,getAttribute:c,toArray:f},v.utils.extend(v,e),v.listContainer="string"==typeof t?document.getElementById(t):t,v.listContainer&&(v.list=s(v.listContainer,v.listClass,!0),v.parse=r("./src/parse.js")(v),v.templater=r("./src/templater.js")(v),v.search=r("./src/search.js")(v),v.filter=r("./src/filter.js")(v),v.sort=r("./src/sort.js")(v),v.fuzzySearch=r("./src/fuzzy-search.js")(v,e.fuzzySearch),this.handlers(),this.items(),this.pagination(),v.update())},handlers:function(){for(var t in v.handlers)v[t]&&v.handlers.hasOwnProperty(t)&&v.on(t,v[t])},items:function(){v.parse(v.list),void 0!==h&&v.add(h)},pagination:function(){if(void 0!==e.pagination){!0===e.pagination&&(e.pagination=[{}]),void 0===e.pagination[0]&&(e.pagination=[e.pagination]);for(var t=0,r=e.pagination.length;t<r;t++)p(e.pagination[t])}}},this.reIndex=function(){v.items=[],v.visibleItems=[],v.matchingItems=[],v.searched=!1,v.filtered=!1,v.parse(v.list)},this.toJSON=function(){for(var t=[],e=0,r=v.items.length;e<r;e++)t.push(v.items[e].values());return t},this.add=function(t,e){if(0!==t.length){if(!e){var r=[],n=!1;void 0===t[0]&&(t=[t]);for(var s=0,i=t.length;s<i;s++){var a;n=v.items.length>v.page,a=new g(t[s],void 0,n),v.items.push(a),r.push(a)}return v.update(),r}m(t.slice(0),e)}},this.show=function(t,e){return this.i=t,this.page=e,v.update(),v},this.remove=function(t,e,r){for(var n=0,s=0,i=v.items.length;s<i;s++)v.items[s].values()[t]==e&&(v.templater.remove(v.items[s],r),v.items.splice(s,1),i--,s--,n++);return v.update(),n},this.get=function(t,e){for(var r=[],n=0,s=v.items.length;n<s;n++){var i=v.items[n];i.values()[t]==e&&r.push(i)}return r},this.size=function(){return v.items.length},this.clear=function(){return v.templater.clear(),v.items=[],v},this.on=function(t,e){return v.handlers[t].push(e),v},this.off=function(t,e){var r=v.handlers[t],n=a(r,e);return n>-1&&r.splice(n,1),v},this.trigger=function(t){for(var e=v.handlers[t].length;e--;)v.handlers[t][e](v);return v},this.reset={filter:function(){for(var t=v.items,e=t.length;e--;)t[e].filtered=!1;return v},search:function(){for(var t=v.items,e=t.length;e--;)t[e].found=!1;return v}},this.update=function(){var t=v.items,e=t.length;v.visibleItems=[],v.matchingItems=[],v.templater.clear();for(var r=0;r<e;r++)t[r].matching()&&v.matchingItems.length+1>=v.i&&v.visibleItems.length<v.page?(t[r].show(),v.visibleItems.push(t[r]),v.matchingItems.push(t[r])):t[r].matching()?(v.matchingItems.push(t[r]),t[r].hide()):t[r].hide();return v.trigger("updated"),v},d.start()}},"./src/item.js":function(t){t.exports=function(t){return function(e,r,n){var s=this;this._values={},this.found=!1,this.filtered=!1;this.values=function(e,r){if(void 0===e)return s._values;for(var n in e)s._values[n]=e[n];!0!==r&&t.templater.set(s,s.values())},this.show=function(){t.templater.show(s)},this.hide=function(){t.templater.hide(s)},this.matching=function(){return t.filtered&&t.searched&&s.found&&s.filtered||t.filtered&&!t.searched&&s.filtered||!t.filtered&&t.searched&&s.found||!t.filtered&&!t.searched},this.visible=function(){return!(!s.elm||s.elm.parentNode!=t.list)},function(e,r,n){if(void 0===r)n?s.values(e,n):s.values(e);else{s.elm=r;var i=t.templater.get(s,e);s.values(i)}}(e,r,n)}}},"./src/pagination.js":function(t,e,r){var n=r("./src/utils/classes.js"),s=r("./src/utils/events.js"),i=r("./src/index.js");t.exports=function(t){var e=!1,r=function(r,s){if(t.page<1)return t.listContainer.style.display="none",void(e=!0);e&&(t.listContainer.style.display="block");var i,o=t.matchingItems.length,l=t.i,u=t.page,c=Math.ceil(o/u),f=Math.ceil(l/u),h=s.innerWindow||2,d=s.left||s.outerWindow||0,v=s.right||s.outerWindow||0;v=c-v,r.clear();for(var g=1;g<=c;g++){var m=f===g?"active":"";a.number(g,d,v,f,h)?(i=r.add({page:g,dotted:!1})[0],m&&n(i.elm).add(m),i.elm.firstChild.setAttribute("data-i",g),i.elm.firstChild.setAttribute("data-page",u)):a.dotted(r,g,d,v,f,h,r.size())&&(i=r.add({page:"...",dotted:!0})[0],n(i.elm).add("disabled"))}},a={number:function(t,e,r,n,s){return this.left(t,e)||this.right(t,r)||this.innerWindow(t,n,s)},left:function(t,e){return t<=e},right:function(t,e){return t>e},innerWindow:function(t,e,r){return t>=e-r&&t<=e+r},dotted:function(t,e,r,n,s,i,a){return this.dottedLeft(t,e,r,n,s,i)||this.dottedRight(t,e,r,n,s,i,a)},dottedLeft:function(t,e,r,n,s,i){return e==r+1&&!this.innerWindow(e,s,i)&&!this.right(e,n)},dottedRight:function(t,e,r,n,s,i,a){return!t.items[a-1].values().dotted&&(e==n&&!this.innerWindow(e,s,i)&&!this.right(e,n))}};return function(e){var n=new i(t.listContainer.id,{listClass:e.paginationClass||"pagination",item:e.item||"<li><a class='page' href='#'></a></li>",valueNames:["page","dotted"],searchClass:"pagination-search-that-is-not-supposed-to-exist",sortClass:"pagination-sort-that-is-not-supposed-to-exist"});s.bind(n.listContainer,"click",(function(e){var r=e.target||e.srcElement,n=t.utils.getAttribute(r,"data-page"),s=t.utils.getAttribute(r,"data-i");s&&t.show((s-1)*n+1,n)})),t.on("updated",(function(){r(n,e)})),r(n,e)}}},"./src/parse.js":function(t,e,r){t.exports=function(t){var e=r("./src/item.js")(t),n=function(r,n){for(var s=0,i=r.length;s<i;s++)t.items.push(new e(n,r[s]))},s=function e(r,s){var i=r.splice(0,50);n(i,s),r.length>0?setTimeout((function(){e(r,s)}),1):(t.update(),t.trigger("parseComplete"))};return t.handlers.parseComplete=t.handlers.parseComplete||[],function(){var e=function(t){for(var e=t.childNodes,r=[],n=0,s=e.length;n<s;n++)void 0===e[n].data&&r.push(e[n]);return r}(t.list),r=t.valueNames;t.indexAsync?s(e,r):n(e,r)}}},"./src/search.js":function(t){t.exports=function(t){var e,r,n,s={resetList:function(){t.i=1,t.templater.clear(),n=void 0},setOptions:function(t){2==t.length&&t[1]instanceof Array?e=t[1]:2==t.length&&"function"==typeof t[1]?(e=void 0,n=t[1]):3==t.length?(e=t[1],n=t[2]):e=void 0},setColumns:function(){0!==t.items.length&&void 0===e&&(e=void 0===t.searchColumns?s.toArray(t.items[0].values()):t.searchColumns)},setSearchString:function(e){e=(e=t.utils.toString(e).toLowerCase()).replace(/[-[\]{}()*+?.,\\^$|#]/g,"\\$&"),r=e},toArray:function(t){var e=[];for(var r in t)e.push(r);return e}},i=function(){for(var n,s=[],i=r;null!==(n=i.match(/"([^"]+)"/));)s.push(n[1]),i=i.substring(0,n.index)+i.substring(n.index+n[0].length);(i=i.trim()).length&&(s=s.concat(i.split(/\s+/)));for(var a=0,o=t.items.length;a<o;a++){var l=t.items[a];if(l.found=!1,s.length){for(var u=0,c=s.length;u<c;u++){for(var f=!1,h=0,d=e.length;h<d;h++){var v=l.values(),g=e[h];if(v.hasOwnProperty(g)&&void 0!==v[g]&&null!==v[g])if(-1!==("string"!=typeof v[g]?v[g].toString():v[g]).toLowerCase().indexOf(s[u])){f=!0;break}}if(!f)break}l.found=f}}},a=function(){t.reset.search(),t.searched=!1},o=function(o){return t.trigger("searchStart"),s.resetList(),s.setSearchString(o),s.setOptions(arguments),s.setColumns(),""===r?a():(t.searched=!0,n?n(r,e):i()),t.update(),t.trigger("searchComplete"),t.visibleItems};return t.handlers.searchStart=t.handlers.searchStart||[],t.handlers.searchComplete=t.handlers.searchComplete||[],t.utils.events.bind(t.utils.getByClass(t.listContainer,t.searchClass),"keyup",t.utils.events.debounce((function(e){var r=e.target||e.srcElement;""===r.value&&!t.searched||o(r.value)}),t.searchDelay)),t.utils.events.bind(t.utils.getByClass(t.listContainer,t.searchClass),"input",(function(t){""===(t.target||t.srcElement).value&&o("")})),o}},"./src/sort.js":function(t){t.exports=function(t){var e={els:void 0,clear:function(){for(var r=0,n=e.els.length;r<n;r++)t.utils.classes(e.els[r]).remove("asc"),t.utils.classes(e.els[r]).remove("desc")},getOrder:function(e){var r=t.utils.getAttribute(e,"data-order");return"asc"==r||"desc"==r?r:t.utils.classes(e).has("desc")?"asc":t.utils.classes(e).has("asc")?"desc":"asc"},getInSensitive:function(e,r){var n=t.utils.getAttribute(e,"data-insensitive");r.insensitive="false"!==n},setOrder:function(r){for(var n=0,s=e.els.length;n<s;n++){var i=e.els[n];if(t.utils.getAttribute(i,"data-sort")===r.valueName){var a=t.utils.getAttribute(i,"data-order");"asc"==a||"desc"==a?a==r.order&&t.utils.classes(i).add(r.order):t.utils.classes(i).add(r.order)}}}},r=function(){t.trigger("sortStart");var r={},n=arguments[0].currentTarget||arguments[0].srcElement||void 0;n?(r.valueName=t.utils.getAttribute(n,"data-sort"),e.getInSensitive(n,r),r.order=e.getOrder(n)):((r=arguments[1]||r).valueName=arguments[0],r.order=r.order||"asc",r.insensitive=void 0===r.insensitive||r.insensitive),e.clear(),e.setOrder(r);var s,i=r.sortFunction||t.sortFunction||null,a="desc"===r.order?-1:1;s=i?function(t,e){return i(t,e,r)*a}:function(e,n){var s=t.utils.naturalSort;return s.alphabet=t.alphabet||r.alphabet||void 0,!s.alphabet&&r.insensitive&&(s=t.utils.naturalSort.caseInsensitive),s(e.values()[r.valueName],n.values()[r.valueName])*a},t.items.sort(s),t.update(),t.trigger("sortComplete")};return t.handlers.sortStart=t.handlers.sortStart||[],t.handlers.sortComplete=t.handlers.sortComplete||[],e.els=t.utils.getByClass(t.listContainer,t.sortClass),t.utils.events.bind(e.els,"click",r),t.on("searchStart",e.clear),t.on("filterStart",e.clear),r}},"./src/templater.js":function(t){var e=function(t){var e,r=this,n=function(e,r){var n=e.cloneNode(!0);n.removeAttribute("id");for(var s=0,i=r.length;s<i;s++){var a=void 0,o=r[s];if(o.data)for(var l=0,u=o.data.length;l<u;l++)n.setAttribute("data-"+o.data[l],"");else o.attr&&o.name?(a=t.utils.getByClass(n,o.name,!0))&&a.setAttribute(o.attr,""):(a=t.utils.getByClass(n,o,!0))&&(a.innerHTML="")}return n},s=function(){for(var e=t.list.childNodes,r=0,n=e.length;r<n;r++)if(void 0===e[r].data)return e[r].cloneNode(!0)},i=function(t){if("string"==typeof t){if(/<tr[\s>]/g.exec(t)){var e=document.createElement("tbody");return e.innerHTML=t,e.firstElementChild}if(-1!==t.indexOf("<")){var r=document.createElement("div");return r.innerHTML=t,r.firstElementChild}}},a=function(e,r,n){var s=void 0,i=function(e){for(var r=0,n=t.valueNames.length;r<n;r++){var s=t.valueNames[r];if(s.data){for(var i=s.data,a=0,o=i.length;a<o;a++)if(i[a]===e)return{data:e}}else{if(s.attr&&s.name&&s.name==e)return s;if(s===e)return e}}}(r);i&&(i.data?e.elm.setAttribute("data-"+i.data,n):i.attr&&i.name?(s=t.utils.getByClass(e.elm,i.name,!0))&&s.setAttribute(i.attr,n):(s=t.utils.getByClass(e.elm,i,!0))&&(s.innerHTML=n))};this.get=function(e,n){r.create(e);for(var s={},i=0,a=n.length;i<a;i++){var o=void 0,l=n[i];if(l.data)for(var u=0,c=l.data.length;u<c;u++)s[l.data[u]]=t.utils.getAttribute(e.elm,"data-"+l.data[u]);else l.attr&&l.name?(o=t.utils.getByClass(e.elm,l.name,!0),s[l.name]=o?t.utils.getAttribute(o,l.attr):""):(o=t.utils.getByClass(e.elm,l,!0),s[l]=o?o.innerHTML:"")}return s},this.set=function(t,e){if(!r.create(t))for(var n in e)e.hasOwnProperty(n)&&a(t,n,e[n])},this.create=function(t){return void 0===t.elm&&(t.elm=e(t.values()),r.set(t,t.values()),!0)},this.remove=function(e){e.elm.parentNode===t.list&&t.list.removeChild(e.elm)},this.show=function(e){r.create(e),t.list.appendChild(e.elm)},this.hide=function(e){void 0!==e.elm&&e.elm.parentNode===t.list&&t.list.removeChild(e.elm)},this.clear=function(){if(t.list.hasChildNodes())for(;t.list.childNodes.length>=1;)t.list.removeChild(t.list.firstChild)},function(){var r;if("function"!=typeof t.item){if(!(r="string"==typeof t.item?-1===t.item.indexOf("<")?document.getElementById(t.item):i(t.item):s()))throw new Error("The list needs to have at least one item on init otherwise you'll have to add a template.");r=n(r,t.valueNames),e=function(){return r.cloneNode(!0)}}else e=function(e){var r=t.item(e);return i(r)}}()};t.exports=function(t){return new e(t)}},"./src/utils/classes.js":function(t,e,r){var n=r("./src/utils/index-of.js"),s=/\s+/;Object.prototype.toString;function i(t){if(!t||!t.nodeType)throw new Error("A DOM element reference is required");this.el=t,this.list=t.classList}t.exports=function(t){return new i(t)},i.prototype.add=function(t){if(this.list)return this.list.add(t),this;var e=this.array();return~n(e,t)||e.push(t),this.el.className=e.join(" "),this},i.prototype.remove=function(t){if(this.list)return this.list.remove(t),this;var e=this.array(),r=n(e,t);return~r&&e.splice(r,1),this.el.className=e.join(" "),this},i.prototype.toggle=function(t,e){return this.list?(void 0!==e?e!==this.list.toggle(t,e)&&this.list.toggle(t):this.list.toggle(t),this):(void 0!==e?e?this.add(t):this.remove(t):this.has(t)?this.remove(t):this.add(t),this)},i.prototype.array=function(){var t=(this.el.getAttribute("class")||"").replace(/^\s+|\s+$/g,"").split(s);return""===t[0]&&t.shift(),t},i.prototype.has=i.prototype.contains=function(t){return this.list?this.list.contains(t):!!~n(this.array(),t)}},"./src/utils/events.js":function(t,e,r){var n=window.addEventListener?"addEventListener":"attachEvent",s=window.removeEventListener?"removeEventListener":"detachEvent",i="addEventListener"!==n?"on":"",a=r("./src/utils/to-array.js");e.bind=function(t,e,r,s){for(var o=0,l=(t=a(t)).length;o<l;o++)t[o][n](i+e,r,s||!1)},e.unbind=function(t,e,r,n){for(var o=0,l=(t=a(t)).length;o<l;o++)t[o][s](i+e,r,n||!1)},e.debounce=function(t,e,r){var n;return e?function(){var s=this,i=arguments,a=function(){n=null,r||t.apply(s,i)},o=r&&!n;clearTimeout(n),n=setTimeout(a,e),o&&t.apply(s,i)}:t}},"./src/utils/extend.js":function(t){t.exports=function(t){for(var e,r=Array.prototype.slice.call(arguments,1),n=0;e=r[n];n++)if(e)for(var s in e)t[s]=e[s];return t}},"./src/utils/fuzzy.js":function(t){t.exports=function(t,e,r){var n=r.location||0,s=r.distance||100,i=r.threshold||.4;if(e===t)return!0;if(e.length>32)return!1;var a=n,o=function(){var t,r={};for(t=0;t<e.length;t++)r[e.charAt(t)]=0;for(t=0;t<e.length;t++)r[e.charAt(t)]|=1<<e.length-t-1;return r}();function l(t,r){var n=t/e.length,i=Math.abs(a-r);return s?n+i/s:i?1:n}var u=i,c=t.indexOf(e,a);-1!=c&&(u=Math.min(l(0,c),u),-1!=(c=t.lastIndexOf(e,a+e.length))&&(u=Math.min(l(0,c),u)));var f,h,d=1<<e.length-1;c=-1;for(var v,g=e.length+t.length,m=0;m<e.length;m++){for(f=0,h=g;f<h;)l(m,a+h)<=u?f=h:g=h,h=Math.floor((g-f)/2+f);g=h;var p=Math.max(1,a-h+1),y=Math.min(a+h,t.length)+e.length,C=Array(y+2);C[y+1]=(1<<m)-1;for(var b=y;b>=p;b--){var j=o[t.charAt(b-1)];if(C[b]=0===m?(C[b+1]<<1|1)&j:(C[b+1]<<1|1)&j|(v[b+1]|v[b])<<1|1|v[b+1],C[b]&d){var x=l(m,b-1);if(x<=u){if(u=x,!((c=b-1)>a))break;p=Math.max(1,2*a-c)}}}if(l(m+1,a)>u)break;v=C}return!(c<0)}},"./src/utils/get-attribute.js":function(t){t.exports=function(t,e){var r=t.getAttribute&&t.getAttribute(e)||null;if(!r)for(var n=t.attributes,s=n.length,i=0;i<s;i++)void 0!==n[i]&&n[i].nodeName===e&&(r=n[i].nodeValue);return r}},"./src/utils/get-by-class.js":function(t){t.exports=function(t,e,r,n){return(n=n||{}).test&&n.getElementsByClassName||!n.test&&document.getElementsByClassName?function(t,e,r){return r?t.getElementsByClassName(e)[0]:t.getElementsByClassName(e)}(t,e,r):n.test&&n.querySelector||!n.test&&document.querySelector?function(t,e,r){return e="."+e,r?t.querySelector(e):t.querySelectorAll(e)}(t,e,r):function(t,e,r){for(var n=[],s=t.getElementsByTagName("*"),i=s.length,a=new RegExp("(^|\\s)"+e+"(\\s|$)"),o=0,l=0;o<i;o++)if(a.test(s[o].className)){if(r)return s[o];n[l]=s[o],l++}return n}(t,e,r)}},"./src/utils/index-of.js":function(t){var e=[].indexOf;t.exports=function(t,r){if(e)return t.indexOf(r);for(var n=0,s=t.length;n<s;++n)if(t[n]===r)return n;return-1}},"./src/utils/to-array.js":function(t){t.exports=function(t){if(void 0===t)return[];if(null===t)return[null];if(t===window)return[window];if("string"==typeof t)return[t];if(function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;if("number"!=typeof t.length)return[t];if("function"==typeof t&&t instanceof Function)return[t];for(var e=[],r=0,n=t.length;r<n;r++)(Object.prototype.hasOwnProperty.call(t,r)||r in t)&&e.push(t[r]);return e.length?e:[]}},"./src/utils/to-string.js":function(t){t.exports=function(t){return t=(t=null===(t=void 0===t?"":t)?"":t).toString()}},"./node_modules/string-natural-compare/natural-compare.js":function(t){"use strict";var e,r,n=0;function s(t){return t>=48&&t<=57}function i(t,e){for(var i=(t+="").length,a=(e+="").length,o=0,l=0;o<i&&l<a;){var u=t.charCodeAt(o),c=e.charCodeAt(l);if(s(u)){if(!s(c))return u-c;for(var f=o,h=l;48===u&&++f<i;)u=t.charCodeAt(f);for(;48===c&&++h<a;)c=e.charCodeAt(h);for(var d=f,v=h;d<i&&s(t.charCodeAt(d));)++d;for(;v<a&&s(e.charCodeAt(v));)++v;var g=d-f-v+h;if(g)return g;for(;f<d;)if(g=t.charCodeAt(f++)-e.charCodeAt(h++))return g;o=d,l=v}else{if(u!==c)return u<n&&c<n&&-1!==r[u]&&-1!==r[c]?r[u]-r[c]:u-c;++o,++l}}return o>=i&&l<a&&i>=a?-1:l>=a&&o<i&&a>=i?1:i-a}i.caseInsensitive=i.i=function(t,e){return i((""+t).toLowerCase(),(""+e).toLowerCase())},Object.defineProperties(i,{alphabet:{get:function(){return e},set:function(t){r=[];var s=0;if(e=t)for(;s<e.length;s++)r[e.charCodeAt(s)]=s;for(n=r.length,s=0;s<n;s++)void 0===r[s]&&(r[s]=-1)}}}),t.exports=i}},e={};return function r(n){if(e[n])return e[n].exports;var s=e[n]={exports:{}};return t[n](s,s.exports,r),s.exports}("./src/index.js")}();
2
+ //# sourceMappingURL=list.min.js.map
src/_site/site_libs/quarto-listing/quarto-listing.js ADDED
@@ -0,0 +1,243 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const kProgressiveAttr = "data-src";
2
+ let categoriesLoaded = false;
3
+
4
+ window.quartoListingCategory = (category) => {
5
+ if (categoriesLoaded) {
6
+ activateCategory(category);
7
+ setCategoryHash(category);
8
+ }
9
+ };
10
+
11
+ window["quarto-listing-loaded"] = () => {
12
+ // Process any existing hash
13
+ const hash = getHash();
14
+
15
+ if (hash) {
16
+ // If there is a category, switch to that
17
+ if (hash.category) {
18
+ activateCategory(hash.category);
19
+ }
20
+ // Paginate a specific listing
21
+ const listingIds = Object.keys(window["quarto-listings"]);
22
+ for (const listingId of listingIds) {
23
+ const page = hash[getListingPageKey(listingId)];
24
+ if (page) {
25
+ showPage(listingId, page);
26
+ }
27
+ }
28
+ }
29
+
30
+ const listingIds = Object.keys(window["quarto-listings"]);
31
+ for (const listingId of listingIds) {
32
+ // The actual list
33
+ const list = window["quarto-listings"][listingId];
34
+
35
+ // Update the handlers for pagination events
36
+ refreshPaginationHandlers(listingId);
37
+
38
+ // Render any visible items that need it
39
+ renderVisibleProgressiveImages(list);
40
+
41
+ // Whenever the list is updated, we also need to
42
+ // attach handlers to the new pagination elements
43
+ // and refresh any newly visible items.
44
+ list.on("updated", function () {
45
+ renderVisibleProgressiveImages(list);
46
+ setTimeout(() => refreshPaginationHandlers(listingId));
47
+
48
+ // Show or hide the no matching message
49
+ toggleNoMatchingMessage(list);
50
+ });
51
+ }
52
+ };
53
+
54
+ window.document.addEventListener("DOMContentLoaded", function (_event) {
55
+ // Attach click handlers to categories
56
+ const categoryEls = window.document.querySelectorAll(
57
+ ".quarto-listing-category .category"
58
+ );
59
+
60
+ for (const categoryEl of categoryEls) {
61
+ const category = categoryEl.getAttribute("data-category");
62
+ categoryEl.onclick = () => {
63
+ activateCategory(category);
64
+ setCategoryHash(category);
65
+ };
66
+ }
67
+
68
+ // Attach a click handler to the category title
69
+ // (there should be only one, but since it is a class name, handle N)
70
+ const categoryTitleEls = window.document.querySelectorAll(
71
+ ".quarto-listing-category-title"
72
+ );
73
+ for (const categoryTitleEl of categoryTitleEls) {
74
+ categoryTitleEl.onclick = () => {
75
+ activateCategory("");
76
+ setCategoryHash("");
77
+ };
78
+ }
79
+
80
+ categoriesLoaded = true;
81
+ });
82
+
83
+ function toggleNoMatchingMessage(list) {
84
+ const selector = `#${list.listContainer.id} .listing-no-matching`;
85
+ const noMatchingEl = window.document.querySelector(selector);
86
+ if (noMatchingEl) {
87
+ if (list.visibleItems.length === 0) {
88
+ noMatchingEl.classList.remove("d-none");
89
+ } else {
90
+ if (!noMatchingEl.classList.contains("d-none")) {
91
+ noMatchingEl.classList.add("d-none");
92
+ }
93
+ }
94
+ }
95
+ }
96
+
97
+ function setCategoryHash(category) {
98
+ setHash({ category });
99
+ }
100
+
101
+ function setPageHash(listingId, page) {
102
+ const currentHash = getHash() || {};
103
+ currentHash[getListingPageKey(listingId)] = page;
104
+ setHash(currentHash);
105
+ }
106
+
107
+ function getListingPageKey(listingId) {
108
+ return `${listingId}-page`;
109
+ }
110
+
111
+ function refreshPaginationHandlers(listingId) {
112
+ const listingEl = window.document.getElementById(listingId);
113
+ const paginationEls = listingEl.querySelectorAll(
114
+ ".pagination li.page-item:not(.disabled) .page.page-link"
115
+ );
116
+ for (const paginationEl of paginationEls) {
117
+ paginationEl.onclick = (sender) => {
118
+ setPageHash(listingId, sender.target.getAttribute("data-i"));
119
+ showPage(listingId, sender.target.getAttribute("data-i"));
120
+ return false;
121
+ };
122
+ }
123
+ }
124
+
125
+ function renderVisibleProgressiveImages(list) {
126
+ // Run through the visible items and render any progressive images
127
+ for (const item of list.visibleItems) {
128
+ const itemEl = item.elm;
129
+ if (itemEl) {
130
+ const progressiveImgs = itemEl.querySelectorAll(
131
+ `img[${kProgressiveAttr}]`
132
+ );
133
+ for (const progressiveImg of progressiveImgs) {
134
+ const srcValue = progressiveImg.getAttribute(kProgressiveAttr);
135
+ if (srcValue) {
136
+ progressiveImg.setAttribute("src", srcValue);
137
+ }
138
+ progressiveImg.removeAttribute(kProgressiveAttr);
139
+ }
140
+ }
141
+ }
142
+ }
143
+
144
+ function getHash() {
145
+ // Hashes are of the form
146
+ // #name:value|name1:value1|name2:value2
147
+ const currentUrl = new URL(window.location);
148
+ const hashRaw = currentUrl.hash ? currentUrl.hash.slice(1) : undefined;
149
+ return parseHash(hashRaw);
150
+ }
151
+
152
+ const kAnd = "&";
153
+ const kEquals = "=";
154
+
155
+ function parseHash(hash) {
156
+ if (!hash) {
157
+ return undefined;
158
+ }
159
+ const hasValuesStrs = hash.split(kAnd);
160
+ const hashValues = hasValuesStrs
161
+ .map((hashValueStr) => {
162
+ const vals = hashValueStr.split(kEquals);
163
+ if (vals.length === 2) {
164
+ return { name: vals[0], value: vals[1] };
165
+ } else {
166
+ return undefined;
167
+ }
168
+ })
169
+ .filter((value) => {
170
+ return value !== undefined;
171
+ });
172
+
173
+ const hashObj = {};
174
+ hashValues.forEach((hashValue) => {
175
+ hashObj[hashValue.name] = decodeURIComponent(hashValue.value);
176
+ });
177
+ return hashObj;
178
+ }
179
+
180
+ function makeHash(obj) {
181
+ return Object.keys(obj)
182
+ .map((key) => {
183
+ return `${key}${kEquals}${obj[key]}`;
184
+ })
185
+ .join(kAnd);
186
+ }
187
+
188
+ function setHash(obj) {
189
+ const hash = makeHash(obj);
190
+ window.history.pushState(null, null, `#${hash}`);
191
+ }
192
+
193
+ function showPage(listingId, page) {
194
+ const list = window["quarto-listings"][listingId];
195
+ if (list) {
196
+ list.show((page - 1) * list.page + 1, list.page);
197
+ }
198
+ }
199
+
200
+ function activateCategory(category) {
201
+ // Deactivate existing categories
202
+ const activeEls = window.document.querySelectorAll(
203
+ ".quarto-listing-category .category.active"
204
+ );
205
+ for (const activeEl of activeEls) {
206
+ activeEl.classList.remove("active");
207
+ }
208
+
209
+ // Activate this category
210
+ const categoryEl = window.document.querySelector(
211
+ `.quarto-listing-category .category[data-category='${category}'`
212
+ );
213
+ if (categoryEl) {
214
+ categoryEl.classList.add("active");
215
+ }
216
+
217
+ // Filter the listings to this category
218
+ filterListingCategory(category);
219
+ }
220
+
221
+ function filterListingCategory(category) {
222
+ const listingIds = Object.keys(window["quarto-listings"]);
223
+ for (const listingId of listingIds) {
224
+ const list = window["quarto-listings"][listingId];
225
+ if (list) {
226
+ if (category === "") {
227
+ // resets the filter
228
+ list.filter();
229
+ } else {
230
+ // filter to this category
231
+ list.filter(function (item) {
232
+ const itemValues = item.values();
233
+ if (itemValues.categories !== null) {
234
+ const categories = itemValues.categories.split(",");
235
+ return categories.includes(category);
236
+ } else {
237
+ return false;
238
+ }
239
+ });
240
+ }
241
+ }
242
+ }
243
+ }
src/_site/site_libs/quarto-nav/headroom.min.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it
3
+ * Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js
4
+ * License: MIT
5
+ */
6
+
7
+ !function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t=t||self).Headroom=n()}(this,function(){"use strict";function t(){return"undefined"!=typeof window}function d(t){return function(t){return t&&t.document&&function(t){return 9===t.nodeType}(t.document)}(t)?function(t){var n=t.document,o=n.body,s=n.documentElement;return{scrollHeight:function(){return Math.max(o.scrollHeight,s.scrollHeight,o.offsetHeight,s.offsetHeight,o.clientHeight,s.clientHeight)},height:function(){return t.innerHeight||s.clientHeight||o.clientHeight},scrollY:function(){return void 0!==t.pageYOffset?t.pageYOffset:(s||o.parentNode||o).scrollTop}}}(t):function(t){return{scrollHeight:function(){return Math.max(t.scrollHeight,t.offsetHeight,t.clientHeight)},height:function(){return Math.max(t.offsetHeight,t.clientHeight)},scrollY:function(){return t.scrollTop}}}(t)}function n(t,s,e){var n,o=function(){var n=!1;try{var t={get passive(){n=!0}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){n=!1}return n}(),i=!1,r=d(t),l=r.scrollY(),a={};function c(){var t=Math.round(r.scrollY()),n=r.height(),o=r.scrollHeight();a.scrollY=t,a.lastScrollY=l,a.direction=l<t?"down":"up",a.distance=Math.abs(t-l),a.isOutOfBounds=t<0||o<t+n,a.top=t<=s.offset[a.direction],a.bottom=o<=t+n,a.toleranceExceeded=a.distance>s.tolerance[a.direction],e(a),l=t,i=!1}function h(){i||(i=!0,n=requestAnimationFrame(c))}var u=!!o&&{passive:!0,capture:!1};return t.addEventListener("scroll",h,u),c(),{destroy:function(){cancelAnimationFrame(n),t.removeEventListener("scroll",h,u)}}}function o(t){return t===Object(t)?t:{down:t,up:t}}function s(t,n){n=n||{},Object.assign(this,s.options,n),this.classes=Object.assign({},s.options.classes,n.classes),this.elem=t,this.tolerance=o(this.tolerance),this.offset=o(this.offset),this.initialised=!1,this.frozen=!1}return s.prototype={constructor:s,init:function(){return s.cutsTheMustard&&!this.initialised&&(this.addClass("initial"),this.initialised=!0,setTimeout(function(t){t.scrollTracker=n(t.scroller,{offset:t.offset,tolerance:t.tolerance},t.update.bind(t))},100,this)),this},destroy:function(){this.initialised=!1,Object.keys(this.classes).forEach(this.removeClass,this),this.scrollTracker.destroy()},unpin:function(){!this.hasClass("pinned")&&this.hasClass("unpinned")||(this.addClass("unpinned"),this.removeClass("pinned"),this.onUnpin&&this.onUnpin.call(this))},pin:function(){this.hasClass("unpinned")&&(this.addClass("pinned"),this.removeClass("unpinned"),this.onPin&&this.onPin.call(this))},freeze:function(){this.frozen=!0,this.addClass("frozen")},unfreeze:function(){this.frozen=!1,this.removeClass("frozen")},top:function(){this.hasClass("top")||(this.addClass("top"),this.removeClass("notTop"),this.onTop&&this.onTop.call(this))},notTop:function(){this.hasClass("notTop")||(this.addClass("notTop"),this.removeClass("top"),this.onNotTop&&this.onNotTop.call(this))},bottom:function(){this.hasClass("bottom")||(this.addClass("bottom"),this.removeClass("notBottom"),this.onBottom&&this.onBottom.call(this))},notBottom:function(){this.hasClass("notBottom")||(this.addClass("notBottom"),this.removeClass("bottom"),this.onNotBottom&&this.onNotBottom.call(this))},shouldUnpin:function(t){return"down"===t.direction&&!t.top&&t.toleranceExceeded},shouldPin:function(t){return"up"===t.direction&&t.toleranceExceeded||t.top},addClass:function(t){this.elem.classList.add.apply(this.elem.classList,this.classes[t].split(" "))},removeClass:function(t){this.elem.classList.remove.apply(this.elem.classList,this.classes[t].split(" "))},hasClass:function(t){return this.classes[t].split(" ").every(function(t){return this.classList.contains(t)},this.elem)},update:function(t){t.isOutOfBounds||!0!==this.frozen&&(t.top?this.top():this.notTop(),t.bottom?this.bottom():this.notBottom(),this.shouldUnpin(t)?this.unpin():this.shouldPin(t)&&this.pin())}},s.options={tolerance:{up:0,down:0},offset:0,scroller:t()?window:null,classes:{frozen:"headroom--frozen",pinned:"headroom--pinned",unpinned:"headroom--unpinned",top:"headroom--top",notTop:"headroom--not-top",bottom:"headroom--bottom",notBottom:"headroom--not-bottom",initial:"headroom"}},s.cutsTheMustard=!!(t()&&function(){}.bind&&"classList"in document.documentElement&&Object.assign&&Object.keys&&requestAnimationFrame),s});
src/_site/site_libs/quarto-nav/quarto-nav.js ADDED
@@ -0,0 +1,288 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const headroomChanged = new CustomEvent("quarto-hrChanged", {
2
+ detail: {},
3
+ bubbles: true,
4
+ cancelable: false,
5
+ composed: false,
6
+ });
7
+
8
+ window.document.addEventListener("DOMContentLoaded", function () {
9
+ let init = false;
10
+
11
+ // Manage the back to top button, if one is present.
12
+ let lastScrollTop = window.pageYOffset || document.documentElement.scrollTop;
13
+ const scrollDownBuffer = 5;
14
+ const scrollUpBuffer = 35;
15
+ const btn = document.getElementById("quarto-back-to-top");
16
+ const hideBackToTop = () => {
17
+ btn.style.display = "none";
18
+ };
19
+ const showBackToTop = () => {
20
+ btn.style.display = "inline-block";
21
+ };
22
+ if (btn) {
23
+ window.document.addEventListener(
24
+ "scroll",
25
+ function () {
26
+ const currentScrollTop =
27
+ window.pageYOffset || document.documentElement.scrollTop;
28
+
29
+ // Shows and hides the button 'intelligently' as the user scrolls
30
+ if (currentScrollTop - scrollDownBuffer > lastScrollTop) {
31
+ hideBackToTop();
32
+ lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop;
33
+ } else if (currentScrollTop < lastScrollTop - scrollUpBuffer) {
34
+ showBackToTop();
35
+ lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop;
36
+ }
37
+
38
+ // Show the button at the bottom, hides it at the top
39
+ if (currentScrollTop <= 0) {
40
+ hideBackToTop();
41
+ } else if (
42
+ window.innerHeight + currentScrollTop >=
43
+ document.body.offsetHeight
44
+ ) {
45
+ showBackToTop();
46
+ }
47
+ },
48
+ false
49
+ );
50
+ }
51
+
52
+ function throttle(func, wait) {
53
+ var timeout;
54
+ return function () {
55
+ const context = this;
56
+ const args = arguments;
57
+ const later = function () {
58
+ clearTimeout(timeout);
59
+ timeout = null;
60
+ func.apply(context, args);
61
+ };
62
+
63
+ if (!timeout) {
64
+ timeout = setTimeout(later, wait);
65
+ }
66
+ };
67
+ }
68
+
69
+ function headerOffset() {
70
+ // Set an offset if there is are fixed top navbar
71
+ const headerEl = window.document.querySelector("header.fixed-top");
72
+ if (headerEl) {
73
+ return headerEl.clientHeight;
74
+ } else {
75
+ return 0;
76
+ }
77
+ }
78
+
79
+ function footerOffset() {
80
+ const footerEl = window.document.querySelector("footer.footer");
81
+ if (footerEl) {
82
+ return footerEl.clientHeight;
83
+ } else {
84
+ return 0;
85
+ }
86
+ }
87
+
88
+ function dashboardOffset() {
89
+ const dashboardNavEl = window.document.getElementById(
90
+ "quarto-dashboard-header"
91
+ );
92
+ if (dashboardNavEl !== null) {
93
+ return dashboardNavEl.clientHeight;
94
+ } else {
95
+ return 0;
96
+ }
97
+ }
98
+
99
+ function updateDocumentOffsetWithoutAnimation() {
100
+ updateDocumentOffset(false);
101
+ }
102
+
103
+ function updateDocumentOffset(animated) {
104
+ // set body offset
105
+ const topOffset = headerOffset();
106
+ const bodyOffset = topOffset + footerOffset() + dashboardOffset();
107
+ const bodyEl = window.document.body;
108
+ bodyEl.setAttribute("data-bs-offset", topOffset);
109
+ bodyEl.style.paddingTop = topOffset + "px";
110
+
111
+ // deal with sidebar offsets
112
+ const sidebars = window.document.querySelectorAll(
113
+ ".sidebar, .headroom-target"
114
+ );
115
+ sidebars.forEach((sidebar) => {
116
+ if (!animated) {
117
+ sidebar.classList.add("notransition");
118
+ // Remove the no transition class after the animation has time to complete
119
+ setTimeout(function () {
120
+ sidebar.classList.remove("notransition");
121
+ }, 201);
122
+ }
123
+
124
+ if (window.Headroom && sidebar.classList.contains("sidebar-unpinned")) {
125
+ sidebar.style.top = "0";
126
+ sidebar.style.maxHeight = "100vh";
127
+ } else {
128
+ sidebar.style.top = topOffset + "px";
129
+ sidebar.style.maxHeight = "calc(100vh - " + topOffset + "px)";
130
+ }
131
+ });
132
+
133
+ // allow space for footer
134
+ const mainContainer = window.document.querySelector(".quarto-container");
135
+ if (mainContainer) {
136
+ mainContainer.style.minHeight = "calc(100vh - " + bodyOffset + "px)";
137
+ }
138
+
139
+ // link offset
140
+ let linkStyle = window.document.querySelector("#quarto-target-style");
141
+ if (!linkStyle) {
142
+ linkStyle = window.document.createElement("style");
143
+ linkStyle.setAttribute("id", "quarto-target-style");
144
+ window.document.head.appendChild(linkStyle);
145
+ }
146
+ while (linkStyle.firstChild) {
147
+ linkStyle.removeChild(linkStyle.firstChild);
148
+ }
149
+ if (topOffset > 0) {
150
+ linkStyle.appendChild(
151
+ window.document.createTextNode(`
152
+ section:target::before {
153
+ content: "";
154
+ display: block;
155
+ height: ${topOffset}px;
156
+ margin: -${topOffset}px 0 0;
157
+ }`)
158
+ );
159
+ }
160
+ if (init) {
161
+ window.dispatchEvent(headroomChanged);
162
+ }
163
+ init = true;
164
+ }
165
+
166
+ // initialize headroom
167
+ var header = window.document.querySelector("#quarto-header");
168
+ if (header && window.Headroom) {
169
+ const headroom = new window.Headroom(header, {
170
+ tolerance: 5,
171
+ onPin: function () {
172
+ const sidebars = window.document.querySelectorAll(
173
+ ".sidebar, .headroom-target"
174
+ );
175
+ sidebars.forEach((sidebar) => {
176
+ sidebar.classList.remove("sidebar-unpinned");
177
+ });
178
+ updateDocumentOffset();
179
+ },
180
+ onUnpin: function () {
181
+ const sidebars = window.document.querySelectorAll(
182
+ ".sidebar, .headroom-target"
183
+ );
184
+ sidebars.forEach((sidebar) => {
185
+ sidebar.classList.add("sidebar-unpinned");
186
+ });
187
+ updateDocumentOffset();
188
+ },
189
+ });
190
+ headroom.init();
191
+
192
+ let frozen = false;
193
+ window.quartoToggleHeadroom = function () {
194
+ if (frozen) {
195
+ headroom.unfreeze();
196
+ frozen = false;
197
+ } else {
198
+ headroom.freeze();
199
+ frozen = true;
200
+ }
201
+ };
202
+ }
203
+
204
+ window.addEventListener(
205
+ "hashchange",
206
+ function (e) {
207
+ if (
208
+ getComputedStyle(document.documentElement).scrollBehavior !== "smooth"
209
+ ) {
210
+ window.scrollTo(0, window.pageYOffset - headerOffset());
211
+ }
212
+ },
213
+ false
214
+ );
215
+
216
+ // Observe size changed for the header
217
+ const headerEl = window.document.querySelector("header.fixed-top");
218
+ if (headerEl && window.ResizeObserver) {
219
+ const observer = new window.ResizeObserver(() => {
220
+ setTimeout(updateDocumentOffsetWithoutAnimation, 0);
221
+ });
222
+ observer.observe(headerEl, {
223
+ attributes: true,
224
+ childList: true,
225
+ characterData: true,
226
+ });
227
+ } else {
228
+ window.addEventListener(
229
+ "resize",
230
+ throttle(updateDocumentOffsetWithoutAnimation, 50)
231
+ );
232
+ }
233
+ setTimeout(updateDocumentOffsetWithoutAnimation, 250);
234
+
235
+ // fixup index.html links if we aren't on the filesystem
236
+ if (window.location.protocol !== "file:") {
237
+ const links = window.document.querySelectorAll("a");
238
+ for (let i = 0; i < links.length; i++) {
239
+ if (links[i].href) {
240
+ links[i].href = links[i].href.replace(/\/index\.html/, "/");
241
+ }
242
+ }
243
+
244
+ // Fixup any sharing links that require urls
245
+ // Append url to any sharing urls
246
+ const sharingLinks = window.document.querySelectorAll(
247
+ "a.sidebar-tools-main-item, a.quarto-navigation-tool, a.quarto-navbar-tools, a.quarto-navbar-tools-item"
248
+ );
249
+ for (let i = 0; i < sharingLinks.length; i++) {
250
+ const sharingLink = sharingLinks[i];
251
+ const href = sharingLink.getAttribute("href");
252
+ if (href) {
253
+ sharingLink.setAttribute(
254
+ "href",
255
+ href.replace("|url|", window.location.href)
256
+ );
257
+ }
258
+ }
259
+
260
+ // Scroll the active navigation item into view, if necessary
261
+ const navSidebar = window.document.querySelector("nav#quarto-sidebar");
262
+ if (navSidebar) {
263
+ // Find the active item
264
+ const activeItem = navSidebar.querySelector("li.sidebar-item a.active");
265
+ if (activeItem) {
266
+ // Wait for the scroll height and height to resolve by observing size changes on the
267
+ // nav element that is scrollable
268
+ const resizeObserver = new ResizeObserver((_entries) => {
269
+ // The bottom of the element
270
+ const elBottom = activeItem.offsetTop;
271
+ const viewBottom = navSidebar.scrollTop + navSidebar.clientHeight;
272
+
273
+ // The element height and scroll height are the same, then we are still loading
274
+ if (viewBottom !== navSidebar.scrollHeight) {
275
+ // Determine if the item isn't visible and scroll to it
276
+ if (elBottom >= viewBottom) {
277
+ navSidebar.scrollTop = elBottom;
278
+ }
279
+
280
+ // stop observing now since we've completed the scroll
281
+ resizeObserver.unobserve(navSidebar);
282
+ }
283
+ });
284
+ resizeObserver.observe(navSidebar);
285
+ }
286
+ }
287
+ }
288
+ });
src/_site/site_libs/quarto-search/autocomplete.umd.js ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ /*! @algolia/autocomplete-js 1.11.1 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
2
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-js"]={})}(this,(function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?t(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):t(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function o(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}function u(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,u,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(u=n.return(),Object(u)!==u))return}finally{if(c)throw o}}return a}}(e,t)||c(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||c(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){if(e){if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function f(e){return{current:e}}function p(e,t){var n=void 0;return function(){for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];n&&clearTimeout(n),n=setTimeout((function(){return e.apply(void 0,o)}),t)}}function m(e){return e.reduce((function(e,t){return e.concat(t)}),[])}var v=0;function d(){return"autocomplete-".concat(v++)}function y(e,t){return t.reduce((function(e,t){return e&&e[t]}),e)}function b(e){return 0===e.collections.length?0:e.collections.reduce((function(e,t){return e+t.items.length}),0)}function g(e){return e!==Object(e)}function h(e,t){if(e===t)return!0;if(g(e)||g(t)||"function"==typeof e||"function"==typeof t)return e===t;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n=0,r=Object.keys(e);n<r.length;n++){var o=r[n];if(!(o in t))return!1;if(!h(e[o],t[o]))return!1}return!0}var O=function(){};var _="1.11.1",S=[{segment:"autocomplete-core",version:_}];function j(e){var t=e.item,n=e.items,r=void 0===n?[]:n;return{index:t.__autocomplete_indexName,items:[t],positions:[1+r.findIndex((function(e){return e.objectID===t.objectID}))],queryID:t.__autocomplete_queryID,algoliaSource:["autocomplete"]}}function P(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,u,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(u=n.return(),Object(u)!==u))return}finally{if(c)throw o}}return a}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return w(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return w(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var I=["items"],A=["items"];function E(e){return E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E(e)}function D(e){return function(e){if(Array.isArray(e))return C(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return C(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return C(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function k(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function x(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function N(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?x(Object(n),!0).forEach((function(t){T(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function T(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==E(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==E(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===E(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function q(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,n=[],r=0;r<e.objectIDs.length;r+=t)n.push(N(N({},e),{},{objectIDs:e.objectIDs.slice(r,r+t)}));return n}function B(e){return e.map((function(e){var t=e.items,n=k(e,I);return N(N({},n),{},{objectIDs:(null==t?void 0:t.map((function(e){return e.objectID})))||n.objectIDs})}))}function R(e){var t,n,r,o=(t=P((e.version||"").split(".").map(Number),2),n=t[0],r=t[1],n>=3||2===n&&r>=4||1===n&&r>=10);function i(t,n,r){if(o&&void 0!==r){var i=r[0].__autocomplete_algoliaCredentials,u={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(D(n),[{headers:u}]))}else e.apply(void 0,[t].concat(D(n)))}return{init:function(t,n){e("init",{appId:t,apiKey:n})},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t.length>0&&i("clickedObjectIDsAfterSearch",B(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t.length>0&&i("clickedObjectIDs",B(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];n.length>0&&e.apply(void 0,["clickedFilters"].concat(n))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t.length>0&&i("convertedObjectIDsAfterSearch",B(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t.length>0&&i("convertedObjectIDs",B(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];n.length>0&&e.apply(void 0,["convertedFilters"].concat(n))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t.length>0&&t.reduce((function(e,t){var n=t.items,r=k(t,A);return[].concat(D(e),D(q(N(N({},r),{},{objectIDs:(null==n?void 0:n.map((function(e){return e.objectID})))||r.objectIDs})).map((function(e){return{items:n,payload:e}}))))}),[]).forEach((function(e){var t=e.items;return i("viewedObjectIDs",[e.payload],t)}))},viewedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];n.length>0&&e.apply(void 0,["viewedFilters"].concat(n))}}}function F(e){var t=e.items.reduce((function(e,t){var n;return e[t.__autocomplete_indexName]=(null!==(n=e[t.__autocomplete_indexName])&&void 0!==n?n:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function L(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function U(e){return U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},U(e)}function M(e){return function(e){if(Array.isArray(e))return H(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return H(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return H(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function H(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function V(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function W(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?V(Object(n),!0).forEach((function(t){K(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):V(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function K(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==U(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==U(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===U(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Q="2.6.0",$="https://cdn.jsdelivr.net/npm/search-insights@".concat(Q,"/dist/search-insights.min.js"),z=p((function(e){var t=e.onItemsChange,n=e.items,r=e.insights,o=e.state;t({insights:r,insightsEvents:F({items:n}).map((function(e){return W({eventName:"Items Viewed"},e)})),state:o})}),400);function G(e){var t=function(e){return W({onItemsChange:function(e){var t=e.insights,n=e.insightsEvents;t.viewedObjectIDs.apply(t,M(n.map((function(e){return W(W({},e),{},{algoliaSource:[].concat(M(e.algoliaSource||[]),["autocomplete-internal"])})}))))},onSelect:function(e){var t=e.insights,n=e.insightsEvents;t.clickedObjectIDsAfterSearch.apply(t,M(n.map((function(e){return W(W({},e),{},{algoliaSource:[].concat(M(e.algoliaSource||[]),["autocomplete-internal"])})}))))},onActive:O},e)}(e),n=t.insightsClient,r=t.onItemsChange,o=t.onSelect,i=t.onActive,u=n;n||function(e){if("undefined"!=typeof window)e({window:window})}((function(e){var t=e.window,n=t.AlgoliaAnalyticsObject||"aa";"string"==typeof n&&(u=t[n]),u||(t.AlgoliaAnalyticsObject=n,t[n]||(t[n]=function(){t[n].queue||(t[n].queue=[]);for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];t[n].queue.push(r)}),t[n].version=Q,u=t[n],function(e){var t="[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete";try{var n=e.document.createElement("script");n.async=!0,n.src=$,n.onerror=function(){console.error(t)},document.body.appendChild(n)}catch(e){console.error(t)}}(t))}));var a=R(u),l=f([]),c=p((function(e){var t=e.state;if(t.isOpen){var n=t.collections.reduce((function(e,t){return[].concat(M(e),M(t.items))}),[]).filter(L);h(l.current.map((function(e){return e.objectID})),n.map((function(e){return e.objectID})))||(l.current=n,n.length>0&&z({onItemsChange:r,items:n,insights:a,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,n=e.onSelect,r=e.onActive;function l(e){t({algoliaInsightsPlugin:{__algoliaSearchParameters:W({clickAnalytics:!0},e?{userToken:e}:{}),insights:a}})}u("addAlgoliaAgent","insights-plugin"),l(),u("onUserTokenChange",l),u("getUserToken",null,(function(e,t){l(t)})),n((function(e){var t=e.item,n=e.state,r=e.event,i=e.source;L(t)&&o({state:n,event:r,insights:a,item:t,insightsEvents:[W({eventName:"Item Selected"},j({item:t,items:i.getItems().filter(L)}))]})})),r((function(e){var t=e.item,n=e.source,r=e.state,o=e.event;L(t)&&i({state:r,event:o,insights:a,item:t,insightsEvents:[W({eventName:"Item Active"},j({item:t,items:n.getItems().filter(L)}))]})}))},onStateChange:function(e){var t=e.state;c({state:t})},__autocomplete_pluginOptions:e}}function J(e,t){var n=t;return{then:function(t,r){return J(e.then(Y(t,n,e),Y(r,n,e)),n)},catch:function(t){return J(e.catch(Y(t,n,e)),n)},finally:function(t){return t&&n.onCancelList.push(t),J(e.finally(Y(t&&function(){return n.onCancelList=[],t()},n,e)),n)},cancel:function(){n.isCanceled=!0;var e=n.onCancelList;n.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===n.isCanceled}}}function X(e){return J(e,{isCanceled:!1,onCancelList:[]})}function Y(e,t,n){return e?function(n){return t.isCanceled?n:e(n)}:n}function Z(e,t,n,r){if(!n)return null;if(e<0&&(null===t||null!==r&&0===t))return n+e;var o=(null===t?-1:t)+e;return o<=-1||o>=n?null===r?null:0:o}function ee(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function te(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ee(Object(n),!0).forEach((function(t){ne(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ee(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ne(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==re(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==re(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===re(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function re(e){return re="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},re(e)}function oe(e){var t=function(e){var t=e.collections.map((function(e){return e.items.length})).reduce((function(e,t,n){var r=(e[n-1]||0)+t;return e.push(r),e}),[]).reduce((function(t,n){return n<=e.activeItemId?t+1:t}),0);return e.collections[t]}(e);if(!t)return null;var n=t.items[function(e){for(var t=e.state,n=e.collection,r=!1,o=0,i=0;!1===r;){var u=t.collections[o];if(u===n){r=!0;break}i+=u.items.length,o++}return t.activeItemId-i}({state:e,collection:t})],r=t.source;return{item:n,itemInputValue:r.getItemInputValue({item:n,state:e}),itemUrl:r.getItemUrl({item:n,state:e}),source:r}}function ie(e,t,n){return[e,null==n?void 0:n.sourceId,t].filter(Boolean).join("-").replace(/\s/g,"")}var ue=/((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;function ae(e){return ae="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ae(e)}function le(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ce(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==ae(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==ae(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===ae(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function se(e,t,n){var r,o=t.initialState;return{getState:function(){return o},dispatch:function(r,i){var u=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?le(Object(n),!0).forEach((function(t){ce(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):le(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},o);o=e(o,{type:r,props:t,payload:i}),n({state:o,prevState:u})},pendingRequests:(r=[],{add:function(e){return r.push(e),e.finally((function(){r=r.filter((function(t){return t!==e}))}))},cancelAll:function(){r.forEach((function(e){return e.cancel()}))},isEmpty:function(){return 0===r.length}})}}function fe(e){return fe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},fe(e)}function pe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function me(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?pe(Object(n),!0).forEach((function(t){ve(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ve(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==fe(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==fe(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===fe(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function de(e){return de="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},de(e)}function ye(e){return function(e){if(Array.isArray(e))return be(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return be(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return be(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function be(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function he(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ge(Object(n),!0).forEach((function(t){Oe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ge(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Oe(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==de(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==de(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===de(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _e(e,t){var n,r="undefined"!=typeof window?window:{},o=e.plugins||[];return he(he({debug:!1,openOnFocus:!1,enterKeyHint:void 0,placeholder:"",autoFocus:!1,defaultActiveItemId:null,stallThreshold:300,insights:!1,environment:r,shouldPanelOpen:function(e){return b(e.state)>0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:d(),plugins:o,initialState:he({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(ye(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var n=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,n.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));n.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:O,onResolve:O};Object.keys(t).forEach((function(e){t[e].__default=!0}));var r=te(te({},t),e);return Promise.resolve(r)})))}))}(e,n)}))).then((function(e){return m(e)})).then((function(e){return e.map((function(e){return he(he({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))},onResolve:function(n){e.onResolve(n),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:he({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}function Se(e){return Se="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Se(e)}function je(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Pe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?je(Object(n),!0).forEach((function(t){we(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):je(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function we(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Se(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Se(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Se(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ie(e){return Ie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ie(e)}function Ae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ee(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ae(Object(n),!0).forEach((function(t){De(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ae(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function De(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Ie(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Ie(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Ie(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ce(e){return function(e){if(Array.isArray(e))return ke(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return ke(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ke(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function xe(e){return Boolean(e.execute)}function Ne(e,t,n){if(o=e,Boolean(null==o?void 0:o.execute)){var r="algolia"===e.requesterId?Object.assign.apply(Object,[{}].concat(Ce(Object.keys(n.context).map((function(e){var t;return null===(t=n.context[e])||void 0===t?void 0:t.__algoliaSearchParameters}))))):{};return Ee(Ee({},e),{},{requests:e.queries.map((function(n){return{query:"algolia"===e.requesterId?Ee(Ee({},n),{},{params:Ee(Ee({},r),n.params)}):n,sourceId:t,transformResponse:e.transformResponse}}))})}var o;return{items:e,sourceId:t}}function Te(e){var t=e.reduce((function(e,t){if(!xe(t))return e.push(t),e;var n=t.searchClient,r=t.execute,o=t.requesterId,i=t.requests,u=e.find((function(e){return xe(t)&&xe(e)&&e.searchClient===n&&Boolean(o)&&e.requesterId===o}));if(u){var a;(a=u.items).push.apply(a,Ce(i))}else{var l={execute:r,requesterId:o,items:i,searchClient:n};e.push(l)}return e}),[]).map((function(e){if(!xe(e))return Promise.resolve(e);var t=e,n=t.execute,r=t.items;return n({searchClient:t.searchClient,requests:r})}));return Promise.all(t).then((function(e){return m(e)}))}function qe(e,t,n){return t.map((function(t){var r,o=e.filter((function(e){return e.sourceId===t.sourceId})),i=o.map((function(e){return e.items})),u=o[0].transformResponse,a=u?u({results:r=i,hits:r.map((function(e){return e.hits})).filter(Boolean),facetHits:r.map((function(e){var t;return null===(t=e.facetHits)||void 0===t?void 0:t.map((function(e){return{label:e.value,count:e.count,_highlightResult:{label:{value:e.highlighted}}}}))})).filter(Boolean)}):i;return t.onResolve({source:t,results:i,items:a,state:n.getState()}),a.every(Boolean),'The `getItems` function from source "'.concat(t.sourceId,'" must return an array of items but returned ').concat(JSON.stringify(void 0),".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"),{source:t,items:a}}))}function Be(e){return Be="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Be(e)}var Re=["event","nextState","props","query","refresh","store"];function Fe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Le(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Fe(Object(n),!0).forEach((function(t){Ue(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Fe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ue(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Be(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Be(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Be(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Me(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var He,Ve,We,Ke=null,Qe=(He=-1,Ve=-1,We=void 0,function(e){var t=++He;return Promise.resolve(e).then((function(e){return We&&t<Ve?We:(Ve=t,We=e,e)}))});function $e(e){var t=e.event,n=e.nextState,r=void 0===n?{}:n,o=e.props,i=e.query,u=e.refresh,a=e.store,l=Me(e,Re);Ke&&o.environment.clearTimeout(Ke);var c=l.setCollections,s=l.setIsOpen,f=l.setQuery,p=l.setActiveItemId,v=l.setStatus;if(f(i),p(o.defaultActiveItemId),!i&&!1===o.openOnFocus){var d,y=a.getState().collections.map((function(e){return Le(Le({},e),{},{items:[]})}));v("idle"),c(y),s(null!==(d=r.isOpen)&&void 0!==d?d:o.shouldPanelOpen({state:a.getState()}));var b=X(Qe(y).then((function(){return Promise.resolve()})));return a.pendingRequests.add(b)}v("loading"),Ke=o.environment.setTimeout((function(){v("stalled")}),o.stallThreshold);var g=X(Qe(o.getSources(Le({query:i,refresh:u,state:a.getState()},l)).then((function(e){return Promise.all(e.map((function(e){return Promise.resolve(e.getItems(Le({query:i,refresh:u,state:a.getState()},l))).then((function(t){return Ne(t,e.sourceId,a.getState())}))}))).then(Te).then((function(t){return qe(t,e,a)})).then((function(e){return function(e){var t=e.collections,n=e.props,r=e.state,o=t.reduce((function(e,t){return Pe(Pe({},e),{},we({},t.source.sourceId,Pe(Pe({},t.source),{},{getItems:function(){return m(t.items)}})))}),{}),i=n.plugins.reduce((function(e,t){return t.reshape?t.reshape(e):e}),{sourcesBySourceId:o,state:r}).sourcesBySourceId;return m(n.reshape({sourcesBySourceId:i,sources:Object.values(i),state:r})).filter(Boolean).map((function(e){return{source:e,items:e.getItems()}}))}({collections:e,props:o,state:a.getState()})}))})))).then((function(e){var n;v("idle"),c(e);var f=o.shouldPanelOpen({state:a.getState()});s(null!==(n=r.isOpen)&&void 0!==n?n:o.openOnFocus&&!i&&f||f);var p=oe(a.getState());if(null!==a.getState().activeItemId&&p){var m=p.item,d=p.itemInputValue,y=p.itemUrl,b=p.source;b.onActive(Le({event:t,item:m,itemInputValue:d,itemUrl:y,refresh:u,source:b,state:a.getState()},l))}})).finally((function(){v("idle"),Ke&&o.environment.clearTimeout(Ke)}));return a.pendingRequests.add(g)}function ze(e){return ze="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ze(e)}var Ge=["event","props","refresh","store"];function Je(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Xe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Je(Object(n),!0).forEach((function(t){Ye(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Je(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ye(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==ze(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==ze(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===ze(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ze(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function et(e){return et="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},et(e)}var tt=["props","refresh","store"],nt=["inputElement","formElement","panelElement"],rt=["inputElement"],ot=["inputElement","maxLength"],it=["source"],ut=["item","source"];function at(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function lt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?at(Object(n),!0).forEach((function(t){ct(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):at(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ct(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==et(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==et(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===et(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function st(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function ft(e){var t=e.props,n=e.refresh,r=e.store,o=st(e,tt);return{getEnvironmentProps:function(e){var n=e.inputElement,o=e.formElement,i=e.panelElement;function u(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[o,i].some((function(t){return n=t,r=e.target,n===r||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return lt({onTouchStart:u,onMouseDown:u,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},st(e,nt))},getRootProps:function(e){return lt({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return ie(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":ie(t.id,"label")},e)},getFormProps:function(e){return e.inputElement,lt({action:"",noValidate:!0,role:"search",onSubmit:function(i){var u;i.preventDefault(),t.onSubmit(lt({event:i,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),null===(u=e.inputElement)||void 0===u||u.blur()},onReset:function(i){var u;i.preventDefault(),t.onReset(lt({event:i,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(u=e.inputElement)||void 0===u||u.focus()}},st(e,rt))},getLabelProps:function(e){return lt({htmlFor:ie(t.id,"input"),id:ie(t.id,"label")},e)},getInputProps:function(e){var i;function u(e){(t.openOnFocus||Boolean(r.getState().query))&&$e(lt({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var a=e||{};a.inputElement;var l=a.maxLength,c=void 0===l?512:l,s=st(a,ot),f=oe(r.getState()),p=function(e){return Boolean(e&&e.match(ue))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||""),m=t.enterKeyHint||(null!=f&&f.itemUrl&&!p?"go":"search");return lt({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?ie(t.id,"item-".concat(r.getState().activeItemId),null==f?void 0:f.source):void 0,"aria-controls":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return ie(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":ie(t.id,"label"),value:r.getState().completion||r.getState().query,id:ie(t.id,"input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:m,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:c,type:"search",onChange:function(e){$e(lt({event:e,props:t,query:e.currentTarget.value.slice(0,c),refresh:n,store:r},o))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,i=Ze(e,Ge);if("ArrowUp"===t.key||"ArrowDown"===t.key){var u=function(){var e=oe(o.getState()),t=n.environment.document.getElementById(ie(n.id,"item-".concat(o.getState().activeItemId),null==e?void 0:e.source));t&&(t.scrollIntoViewIfNeeded?t.scrollIntoViewIfNeeded(!1):t.scrollIntoView(!1))},a=function(){var e=oe(o.getState());if(null!==o.getState().activeItemId&&e){var n=e.item,u=e.itemInputValue,a=e.itemUrl,l=e.source;l.onActive(Xe({event:t,item:n,itemInputValue:u,itemUrl:a,refresh:r,source:l,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(n.openOnFocus||Boolean(o.getState().query))?$e(Xe({event:t,props:n,query:o.getState().query,refresh:r,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),a(),setTimeout(u,0)})):(o.dispatch(t.key,{}),a(),u())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(n.debug||o.pendingRequests.cancelAll());t.preventDefault();var l=oe(o.getState()),c=l.item,s=l.itemInputValue,f=l.itemUrl,p=l.source;if(t.metaKey||t.ctrlKey)void 0!==f&&(p.onSelect(Xe({event:t,item:c,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i)),n.navigator.navigateNewTab({itemUrl:f,item:c,state:o.getState()}));else if(t.shiftKey)void 0!==f&&(p.onSelect(Xe({event:t,item:c,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i)),n.navigator.navigateNewWindow({itemUrl:f,item:c,state:o.getState()}));else if(t.altKey);else{if(void 0!==f)return p.onSelect(Xe({event:t,item:c,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i)),void n.navigator.navigate({itemUrl:f,item:c,state:o.getState()});$e(Xe({event:t,nextState:{isOpen:!1},props:n,query:s,refresh:r,store:o},i)).then((function(){p.onSelect(Xe({event:t,item:c,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i))}))}}}(lt({event:e,props:t,refresh:n,store:r},o))},onFocus:u,onBlur:O,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||u(n)}},s)},getPanelProps:function(e){return lt({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){var n=e||{},r=n.source,o=st(n,it);return lt({role:"listbox","aria-labelledby":ie(t.id,"label"),id:ie(t.id,"list",r)},o)},getItemProps:function(e){var i=e.item,u=e.source,a=st(e,ut);return lt({id:ie(t.id,"item-".concat(i.__autocomplete_id),u),role:"option","aria-selected":r.getState().activeItemId===i.__autocomplete_id,onMouseMove:function(e){if(i.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",i.__autocomplete_id);var t=oe(r.getState());if(null!==r.getState().activeItemId&&t){var u=t.item,a=t.itemInputValue,l=t.itemUrl,c=t.source;c.onActive(lt({event:e,item:u,itemInputValue:a,itemUrl:l,refresh:n,source:c,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var a=u.getItemInputValue({item:i,state:r.getState()}),l=u.getItemUrl({item:i,state:r.getState()});(l?Promise.resolve():$e(lt({event:e,nextState:{isOpen:!1},props:t,query:a,refresh:n,store:r},o))).then((function(){u.onSelect(lt({event:e,item:i,itemInputValue:a,itemUrl:l,refresh:n,source:u,state:r.getState()},o))}))}},a)}}}function pt(e){return pt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pt(e)}function mt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function vt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?mt(Object(n),!0).forEach((function(t){dt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function dt(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==pt(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==pt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===pt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yt(e){var t,n,r,o,i=e.plugins,u=e.options,a=null===(t=((null===(n=u.__autocomplete_metadata)||void 0===n?void 0:n.userAgents)||[])[0])||void 0===t?void 0:t.segment,l=a?dt({},a,Object.keys((null===(r=u.__autocomplete_metadata)||void 0===r?void 0:r.options)||{})):{};return{plugins:i.map((function(e){return{name:e.name,options:Object.keys(e.__autocomplete_pluginOptions||[])}})),options:vt({"autocomplete-core":Object.keys(u)},l),ua:S.concat((null===(o=u.__autocomplete_metadata)||void 0===o?void 0:o.userAgents)||[])}}function bt(e){var t,n=e.state;return!1===n.isOpen||null===n.activeItemId?null:(null===(t=oe(n))||void 0===t?void 0:t.itemInputValue)||null}function gt(e){return gt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},gt(e)}function ht(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ot(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ht(Object(n),!0).forEach((function(t){_t(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ht(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _t(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==gt(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==gt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===gt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var St=function(e,t){switch(t.type){case"setActiveItemId":case"mousemove":return Ot(Ot({},e),{},{activeItemId:t.payload});case"setQuery":return Ot(Ot({},e),{},{query:t.payload,completion:null});case"setCollections":return Ot(Ot({},e),{},{collections:t.payload});case"setIsOpen":return Ot(Ot({},e),{},{isOpen:t.payload});case"setStatus":return Ot(Ot({},e),{},{status:t.payload});case"setContext":return Ot(Ot({},e),{},{context:Ot(Ot({},e.context),t.payload)});case"ArrowDown":var n=Ot(Ot({},e),{},{activeItemId:t.payload.hasOwnProperty("nextActiveItemId")?t.payload.nextActiveItemId:Z(1,e.activeItemId,b(e),t.props.defaultActiveItemId)});return Ot(Ot({},n),{},{completion:bt({state:n})});case"ArrowUp":var r=Ot(Ot({},e),{},{activeItemId:Z(-1,e.activeItemId,b(e),t.props.defaultActiveItemId)});return Ot(Ot({},r),{},{completion:bt({state:r})});case"Escape":return e.isOpen?Ot(Ot({},e),{},{activeItemId:null,isOpen:!1,completion:null}):Ot(Ot({},e),{},{activeItemId:null,query:"",status:"idle",collections:[]});case"submit":return Ot(Ot({},e),{},{activeItemId:null,isOpen:!1,status:"idle"});case"reset":return Ot(Ot({},e),{},{activeItemId:!0===t.props.openOnFocus?t.props.defaultActiveItemId:null,status:"idle",query:""});case"focus":return Ot(Ot({},e),{},{activeItemId:t.props.defaultActiveItemId,isOpen:(t.props.openOnFocus||Boolean(e.query))&&t.props.shouldPanelOpen({state:e})});case"blur":return t.props.debug?e:Ot(Ot({},e),{},{isOpen:!1,activeItemId:null});case"mouseleave":return Ot(Ot({},e),{},{activeItemId:t.props.defaultActiveItemId});default:return"The reducer action ".concat(JSON.stringify(t.type)," is not supported."),e}};function jt(e){return jt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},jt(e)}function Pt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function wt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Pt(Object(n),!0).forEach((function(t){It(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function It(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==jt(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==jt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===jt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function At(e){var t=[],n=_e(e,t),r=se(St,n,(function(e){var t=e.prevState,r=e.state;n.onStateChange(wt({prevState:t,state:r,refresh:u,navigator:n.navigator},o))})),o=function(e){var t=e.store;return{setActiveItemId:function(e){t.dispatch("setActiveItemId",e)},setQuery:function(e){t.dispatch("setQuery",e)},setCollections:function(e){var n=0,r=e.map((function(e){return me(me({},e),{},{items:m(e.items).map((function(e){return me(me({},e),{},{__autocomplete_id:n++})}))})}));t.dispatch("setCollections",r)},setIsOpen:function(e){t.dispatch("setIsOpen",e)},setStatus:function(e){t.dispatch("setStatus",e)},setContext:function(e){t.dispatch("setContext",e)}}}({store:r}),i=ft(wt({props:n,refresh:u,store:r,navigator:n.navigator},o));function u(){return $e(wt({event:new Event("input"),nextState:{isOpen:r.getState().isOpen},props:n,navigator:n.navigator,query:r.getState().query,refresh:u,store:r},o))}if(e.insights&&!n.plugins.some((function(e){return"aa.algoliaInsightsPlugin"===e.name}))){var a="boolean"==typeof e.insights?{}:e.insights;n.plugins.push(G(a))}return n.plugins.forEach((function(e){var r;return null===(r=e.subscribe)||void 0===r?void 0:r.call(e,wt(wt({},o),{},{navigator:n.navigator,refresh:u,onSelect:function(e){t.push({onSelect:e})},onActive:function(e){t.push({onActive:e})},onResolve:function(e){t.push({onResolve:e})}}))})),function(e){var t,n,r=e.metadata,o=e.environment;if(null===(t=o.navigator)||void 0===t||null===(n=t.userAgent)||void 0===n?void 0:n.includes("Algolia Crawler")){var i=o.document.createElement("meta"),u=o.document.querySelector("head");i.name="algolia:metadata",setTimeout((function(){i.content=JSON.stringify(r),u.appendChild(i)}),0)}}({metadata:yt({plugins:n.plugins,options:e}),environment:n.environment}),wt(wt({refresh:u,navigator:n.navigator},i),o)}var Et=function(e,t,n,r){var o;t[0]=0;for(var i=1;i<t.length;i++){var u=t[i++],a=t[i]?(t[0]|=u?1:2,n[t[i++]]):t[++i];3===u?r[0]=a:4===u?r[1]=Object.assign(r[1]||{},a):5===u?(r[1]=r[1]||{})[t[++i]]=a:6===u?r[1][t[++i]]+=a+"":u?(o=e.apply(a,Et(e,a,n,["",null])),r.push(o),a[0]?t[0]|=2:(t[i-2]=0,t[i]=o)):r.push(a)}return r},Dt=new Map;function Ct(e){var t=Dt.get(this);return t||(t=new Map,Dt.set(this,t)),(t=Et(this,t.get(e)||(t.set(e,t=function(e){for(var t,n,r=1,o="",i="",u=[0],a=function(e){1===r&&(e||(o=o.replace(/^\s*\n\s*|\s*\n\s*$/g,"")))?u.push(0,e,o):3===r&&(e||o)?(u.push(3,e,o),r=2):2===r&&"..."===o&&e?u.push(4,e,0):2===r&&o&&!e?u.push(5,0,!0,o):r>=5&&((o||!e&&5===r)&&(u.push(r,0,o,n),r=6),e&&(u.push(r,e,0,n),r=6)),o=""},l=0;l<e.length;l++){l&&(1===r&&a(),a(l));for(var c=0;c<e[l].length;c++)t=e[l][c],1===r?"<"===t?(a(),u=[u],r=3):o+=t:4===r?"--"===o&&">"===t?(r=1,o=""):o=t+o[0]:i?t===i?i="":o+=t:'"'===t||"'"===t?i=t:">"===t?(a(),r=1):r&&("="===t?(r=5,n=o,o=""):"/"===t&&(r<5||">"===e[l][c+1])?(a(),3===r&&(u=u[0]),r=u,(u=u[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(a(),r=2):o+=t),3===r&&"!--"===o&&(r=4,u=u[0])}return a(),u}(e)),t),arguments,[])).length>1?t:t[0]}var kt=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-ClearIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","18"),n.setAttribute("height","18"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z"),n.appendChild(r),n};function xt(e,t){if("string"==typeof t){var n=e.document.querySelector(t);return"The element ".concat(JSON.stringify(t)," is not in the document."),n}return t}function Nt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((function(e,t){return Object.keys(t).forEach((function(n){var r=e[n],o=t[n];r!==o&&(e[n]=[r,o].filter(Boolean).join(" "))})),e}),{})}var Tt=function(e){return e&&"object"===r(e)&&"[object Object]"===Object.prototype.toString.call(e)};function qt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((function(e,t){return Object.keys(t).forEach((function(n){var r=e[n],o=t[n];Array.isArray(r)&&Array.isArray(o)?e[n]=r.concat.apply(r,l(o)):Tt(r)&&Tt(o)?e[n]=qt(r,o):e[n]=o})),e}),{})}function Bt(e,t){return Object.entries(e).reduce((function(e,r){var i=a(r,2),u=i[0],l=i[1];return t({key:u,value:l})?n(n({},e),{},o({},u,l)):e}),{})}var Rt=["ontouchstart","ontouchend","ontouchmove","ontouchcancel"];function Ft(e,t,n){e[t]=null===n?"":"number"!=typeof n?n:n+"px"}function Lt(e){this._listeners[e.type](e)}function Ut(e,t,n){var r,o,i=e[t];if("style"===t)if("string"==typeof n)e.style=n;else if(null===n)e.style="";else for(t in n)i&&n[t]===i[t]||Ft(e.style,t,n[t]);else"o"===t[0]&&"n"===t[1]?(r=t!==(t=t.replace(/Capture$/,"")),((o=t.toLowerCase())in e||Rt.includes(o))&&(t=o),t=t.slice(2),e._listeners||(e._listeners={}),e._listeners[t]=n,n?i||e.addEventListener(t,Lt,r):e.removeEventListener(t,Lt,r)):"list"!==t&&"tagName"!==t&&"form"!==t&&"type"!==t&&"size"!==t&&"download"!==t&&"href"!==t&&t in e?e[t]=null==n?"":n:"function"!=typeof n&&"dangerouslySetInnerHTML"!==t&&(null==n||!1===n&&!/^ar/.test(t)?e.removeAttribute(t):e.setAttribute(t,n))}function Mt(e){return"onChange"===e?"onInput":e}function Ht(e,t){for(var n in t)Ut(e,Mt(n),t[n])}function Vt(e,t){for(var n in t)"o"===n[0]&&"n"===n[1]||Ut(e,Mt(n),t[n])}var Wt=["children"];function Kt(e){return function(t,n){var r=n.children,o=void 0===r?[]:r,i=u(n,Wt),a=e.document.createElement(t);return Ht(a,i),a.append.apply(a,l(o)),a}}var Qt=["autocompleteScopeApi","environment","classNames","getInputProps","getInputPropsCore","isDetached","state"],$t=function(e){var t=e.environment.document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("class","aa-LoadingIcon"),t.setAttribute("viewBox","0 0 100 100"),t.setAttribute("width","20"),t.setAttribute("height","20"),t.innerHTML='<circle\n cx="50"\n cy="50"\n fill="none"\n r="35"\n stroke="currentColor"\n stroke-dasharray="164.93361431346415 56.97787143782138"\n stroke-width="6"\n>\n <animateTransform\n attributeName="transform"\n type="rotate"\n repeatCount="indefinite"\n dur="1s"\n values="0 50 50;90 50 50;180 50 50;360 50 50"\n keyTimes="0;0.40;0.65;1"\n />\n</circle>',t},zt=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-SubmitIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","20"),n.setAttribute("height","20"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M16.041 15.856c-0.034 0.026-0.067 0.055-0.099 0.087s-0.060 0.064-0.087 0.099c-1.258 1.213-2.969 1.958-4.855 1.958-1.933 0-3.682-0.782-4.95-2.050s-2.050-3.017-2.050-4.95 0.782-3.682 2.050-4.95 3.017-2.050 4.95-2.050 3.682 0.782 4.95 2.050 2.050 3.017 2.050 4.95c0 1.886-0.745 3.597-1.959 4.856zM21.707 20.293l-3.675-3.675c1.231-1.54 1.968-3.493 1.968-5.618 0-2.485-1.008-4.736-2.636-6.364s-3.879-2.636-6.364-2.636-4.736 1.008-6.364 2.636-2.636 3.879-2.636 6.364 1.008 4.736 2.636 6.364 3.879 2.636 6.364 2.636c2.125 0 4.078-0.737 5.618-1.968l3.675 3.675c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414z"),n.appendChild(r),n};function Gt(e){var t=e.autocomplete,r=e.autocompleteScopeApi,o=e.classNames,i=e.environment,a=e.isDetached,l=e.placeholder,c=void 0===l?"Search":l,s=e.propGetters,f=e.setIsModalOpen,p=e.state,m=e.translations,v=Kt(i),d=s.getRootProps(n({state:p,props:t.getRootProps({})},r)),y=v("div",n({class:o.root},d)),b=v("div",{class:o.detachedContainer,onMouseDown:function(e){e.stopPropagation()}}),g=v("div",{class:o.detachedOverlay,children:[b],onMouseDown:function(){f(!1),t.setIsOpen(!1)}}),h=s.getLabelProps(n({state:p,props:t.getLabelProps({})},r)),O=v("button",{class:o.submitButton,type:"submit",title:m.submitButtonTitle,children:[zt({environment:i})]}),_=v("label",n({class:o.label,children:[O]},h)),S=v("button",{class:o.clearButton,type:"reset",title:m.clearButtonTitle,children:[kt({environment:i})]}),j=v("div",{class:o.loadingIndicator,children:[$t({environment:i})]}),P=function(e){var t=e.autocompleteScopeApi,r=e.environment;e.classNames;var o=e.getInputProps,i=e.getInputPropsCore,a=e.isDetached,l=e.state,c=u(e,Qt),s=Kt(r)("input",c),f=o(n({state:l,props:i({inputElement:s}),inputElement:s},t));return Ht(s,n(n({},f),{},{onKeyDown:function(e){a&&"Tab"===e.key||f.onKeyDown(e)}})),s}({class:o.input,environment:i,state:p,getInputProps:s.getInputProps,getInputPropsCore:t.getInputProps,autocompleteScopeApi:r,isDetached:a}),w=v("div",{class:o.inputWrapperPrefix,children:[_,j]}),I=v("div",{class:o.inputWrapperSuffix,children:[S]}),A=v("div",{class:o.inputWrapper,children:[P]}),E=s.getFormProps(n({state:p,props:t.getFormProps({inputElement:P})},r)),D=v("form",n({class:o.form,children:[w,A,I]},E)),C=s.getPanelProps(n({state:p,props:t.getPanelProps({})},r)),k=v("div",n({class:o.panel},C)),x=v("div",{class:o.detachedSearchButtonQuery,textContent:p.query}),N=v("div",{class:o.detachedSearchButtonPlaceholder,hidden:Boolean(p.query),textContent:c});if(a){var T=v("div",{class:o.detachedSearchButtonIcon,children:[zt({environment:i})]}),q=v("button",{type:"button",class:o.detachedSearchButton,onClick:function(){f(!0)},children:[T,N,x]}),B=v("button",{type:"button",class:o.detachedCancelButton,textContent:m.detachedCancelButtonText,onTouchStart:function(e){e.stopPropagation()},onClick:function(){t.setIsOpen(!1),f(!1)}}),R=v("div",{class:o.detachedFormContainer,children:[D,B]});b.appendChild(R),y.appendChild(q)}else y.appendChild(D);return{detachedContainer:b,detachedOverlay:g,detachedSearchButtonQuery:x,detachedSearchButtonPlaceholder:N,inputWrapper:A,input:P,root:y,form:D,label:_,submitButton:O,clearButton:S,loadingIndicator:j,panel:k}}var Jt,Xt,Yt,Zt,en,tn,nn,rn={},on=[],un=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function an(e,t){for(var n in t)e[n]=t[n];return e}function ln(e){var t=e.parentNode;t&&t.removeChild(e)}function cn(e,t,n){var r,o,i,u={};for(i in t)"key"==i?r=t[i]:"ref"==i?o=t[i]:u[i]=t[i];if(arguments.length>2&&(u.children=arguments.length>3?Jt.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(i in e.defaultProps)void 0===u[i]&&(u[i]=e.defaultProps[i]);return sn(e,u,r,o,null)}function sn(e,t,n,r,o){var i={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++Yt:o};return null==o&&null!=Xt.vnode&&Xt.vnode(i),i}function fn(e){return e.children}function pn(e,t){this.props=e,this.context=t}function mn(e,t){if(null==t)return e.__?mn(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?mn(e):null}function vn(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return vn(e)}}function dn(e){(!e.__d&&(e.__d=!0)&&Zt.push(e)&&!yn.__r++||en!==Xt.debounceRendering)&&((en=Xt.debounceRendering)||tn)(yn)}function yn(){var e,t,n,r,o,i,u,a;for(Zt.sort(nn);e=Zt.shift();)e.__d&&(t=Zt.length,r=void 0,o=void 0,u=(i=(n=e).__v).__e,(a=n.__P)&&(r=[],(o=an({},i)).__v=i.__v+1,wn(a,i,o,n.__n,void 0!==a.ownerSVGElement,null!=i.__h?[u]:null,r,null==u?mn(i):u,i.__h),In(r,i),i.__e!=u&&vn(i)),Zt.length>t&&Zt.sort(nn));yn.__r=0}function bn(e,t,n,r,o,i,u,a,l,c){var s,f,p,m,v,d,y,b=r&&r.__k||on,g=b.length;for(n.__k=[],s=0;s<t.length;s++)if(null!=(m=n.__k[s]=null==(m=t[s])||"boolean"==typeof m||"function"==typeof m?null:"string"==typeof m||"number"==typeof m||"bigint"==typeof m?sn(null,m,null,null,m):Array.isArray(m)?sn(fn,{children:m},null,null,null):m.__b>0?sn(m.type,m.props,m.key,m.ref?m.ref:null,m.__v):m)){if(m.__=n,m.__b=n.__b+1,null===(p=b[s])||p&&m.key==p.key&&m.type===p.type)b[s]=void 0;else for(f=0;f<g;f++){if((p=b[f])&&m.key==p.key&&m.type===p.type){b[f]=void 0;break}p=null}wn(e,m,p=p||rn,o,i,u,a,l,c),v=m.__e,(f=m.ref)&&p.ref!=f&&(y||(y=[]),p.ref&&y.push(p.ref,null,m),y.push(f,m.__c||v,m)),null!=v?(null==d&&(d=v),"function"==typeof m.type&&m.__k===p.__k?m.__d=l=gn(m,l,e):l=hn(e,m,p,b,v,l),"function"==typeof n.type&&(n.__d=l)):l&&p.__e==l&&l.parentNode!=e&&(l=mn(p))}for(n.__e=d,s=g;s--;)null!=b[s]&&("function"==typeof n.type&&null!=b[s].__e&&b[s].__e==n.__d&&(n.__d=On(r).nextSibling),Dn(b[s],b[s]));if(y)for(s=0;s<y.length;s++)En(y[s],y[++s],y[++s])}function gn(e,t,n){for(var r,o=e.__k,i=0;o&&i<o.length;i++)(r=o[i])&&(r.__=e,t="function"==typeof r.type?gn(r,t,n):hn(n,r,r,o,r.__e,t));return t}function hn(e,t,n,r,o,i){var u,a,l;if(void 0!==t.__d)u=t.__d,t.__d=void 0;else if(null==n||o!=i||null==o.parentNode)e:if(null==i||i.parentNode!==e)e.appendChild(o),u=null;else{for(a=i,l=0;(a=a.nextSibling)&&l<r.length;l+=1)if(a==o)break e;e.insertBefore(o,i),u=i}return void 0!==u?u:o.nextSibling}function On(e){var t,n,r;if(null==e.type||"string"==typeof e.type)return e.__e;if(e.__k)for(t=e.__k.length-1;t>=0;t--)if((n=e.__k[t])&&(r=On(n)))return r;return null}function _n(e,t,n){"-"===t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||un.test(t)?n:n+"px"}function Sn(e,t,n,r,o){var i;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||_n(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||_n(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])i=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?r||e.addEventListener(t,i?Pn:jn,i):e.removeEventListener(t,i?Pn:jn,i);else if("dangerouslySetInnerHTML"!==t){if(o)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!==t&&"height"!==t&&"href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null==n||!1===n&&"-"!==t[4]?e.removeAttribute(t):e.setAttribute(t,n))}}function jn(e){return this.l[e.type+!1](Xt.event?Xt.event(e):e)}function Pn(e){return this.l[e.type+!0](Xt.event?Xt.event(e):e)}function wn(e,t,n,r,o,i,u,a,l){var c,s,f,p,m,v,d,y,b,g,h,O,_,S,j,P=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(l=n.__h,a=t.__e=n.__e,t.__h=null,i=[a]),(c=Xt.__b)&&c(t);try{e:if("function"==typeof P){if(y=t.props,b=(c=P.contextType)&&r[c.__c],g=c?b?b.props.value:c.__:r,n.__c?d=(s=t.__c=n.__c).__=s.__E:("prototype"in P&&P.prototype.render?t.__c=s=new P(y,g):(t.__c=s=new pn(y,g),s.constructor=P,s.render=Cn),b&&b.sub(s),s.props=y,s.state||(s.state={}),s.context=g,s.__n=r,f=s.__d=!0,s.__h=[],s._sb=[]),null==s.__s&&(s.__s=s.state),null!=P.getDerivedStateFromProps&&(s.__s==s.state&&(s.__s=an({},s.__s)),an(s.__s,P.getDerivedStateFromProps(y,s.__s))),p=s.props,m=s.state,s.__v=t,f)null==P.getDerivedStateFromProps&&null!=s.componentWillMount&&s.componentWillMount(),null!=s.componentDidMount&&s.__h.push(s.componentDidMount);else{if(null==P.getDerivedStateFromProps&&y!==p&&null!=s.componentWillReceiveProps&&s.componentWillReceiveProps(y,g),!s.__e&&null!=s.shouldComponentUpdate&&!1===s.shouldComponentUpdate(y,s.__s,g)||t.__v===n.__v){for(t.__v!==n.__v&&(s.props=y,s.state=s.__s,s.__d=!1),s.__e=!1,t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),h=0;h<s._sb.length;h++)s.__h.push(s._sb[h]);s._sb=[],s.__h.length&&u.push(s);break e}null!=s.componentWillUpdate&&s.componentWillUpdate(y,s.__s,g),null!=s.componentDidUpdate&&s.__h.push((function(){s.componentDidUpdate(p,m,v)}))}if(s.context=g,s.props=y,s.__P=e,O=Xt.__r,_=0,"prototype"in P&&P.prototype.render){for(s.state=s.__s,s.__d=!1,O&&O(t),c=s.render(s.props,s.state,s.context),S=0;S<s._sb.length;S++)s.__h.push(s._sb[S]);s._sb=[]}else do{s.__d=!1,O&&O(t),c=s.render(s.props,s.state,s.context),s.state=s.__s}while(s.__d&&++_<25);s.state=s.__s,null!=s.getChildContext&&(r=an(an({},r),s.getChildContext())),f||null==s.getSnapshotBeforeUpdate||(v=s.getSnapshotBeforeUpdate(p,m)),j=null!=c&&c.type===fn&&null==c.key?c.props.children:c,bn(e,Array.isArray(j)?j:[j],t,n,r,o,i,u,a,l),s.base=t.__e,t.__h=null,s.__h.length&&u.push(s),d&&(s.__E=s.__=null),s.__e=!1}else null==i&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=An(n.__e,t,n,r,o,i,u,l);(c=Xt.diffed)&&c(t)}catch(e){t.__v=null,(l||null!=i)&&(t.__e=a,t.__h=!!l,i[i.indexOf(a)]=null),Xt.__e(e,t,n)}}function In(e,t){Xt.__c&&Xt.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){Xt.__e(e,t.__v)}}))}function An(e,t,n,r,o,i,u,a){var l,c,s,f=n.props,p=t.props,m=t.type,v=0;if("svg"===m&&(o=!0),null!=i)for(;v<i.length;v++)if((l=i[v])&&"setAttribute"in l==!!m&&(m?l.localName===m:3===l.nodeType)){e=l,i[v]=null;break}if(null==e){if(null===m)return document.createTextNode(p);e=o?document.createElementNS("http://www.w3.org/2000/svg",m):document.createElement(m,p.is&&p),i=null,a=!1}if(null===m)f===p||a&&e.data===p||(e.data=p);else{if(i=i&&Jt.call(e.childNodes),c=(f=n.props||rn).dangerouslySetInnerHTML,s=p.dangerouslySetInnerHTML,!a){if(null!=i)for(f={},v=0;v<e.attributes.length;v++)f[e.attributes[v].name]=e.attributes[v].value;(s||c)&&(s&&(c&&s.__html==c.__html||s.__html===e.innerHTML)||(e.innerHTML=s&&s.__html||""))}if(function(e,t,n,r,o){var i;for(i in n)"children"===i||"key"===i||i in t||Sn(e,i,null,n[i],r);for(i in t)o&&"function"!=typeof t[i]||"children"===i||"key"===i||"value"===i||"checked"===i||n[i]===t[i]||Sn(e,i,t[i],n[i],r)}(e,p,f,o,a),s)t.__k=[];else if(v=t.props.children,bn(e,Array.isArray(v)?v:[v],t,n,r,o&&"foreignObject"!==m,i,u,i?i[0]:n.__k&&mn(n,0),a),null!=i)for(v=i.length;v--;)null!=i[v]&&ln(i[v]);a||("value"in p&&void 0!==(v=p.value)&&(v!==e.value||"progress"===m&&!v||"option"===m&&v!==f.value)&&Sn(e,"value",v,f.value,!1),"checked"in p&&void 0!==(v=p.checked)&&v!==e.checked&&Sn(e,"checked",v,f.checked,!1))}return e}function En(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){Xt.__e(e,n)}}function Dn(e,t,n){var r,o;if(Xt.unmount&&Xt.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||En(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){Xt.__e(e,t)}r.base=r.__P=null,e.__c=void 0}if(r=e.__k)for(o=0;o<r.length;o++)r[o]&&Dn(r[o],t,n||"function"!=typeof e.type);n||null==e.__e||ln(e.__e),e.__=e.__e=e.__d=void 0}function Cn(e,t,n){return this.constructor(e,n)}Jt=on.slice,Xt={__e:function(e,t,n,r){for(var o,i,u;t=t.__;)if((o=t.__c)&&!o.__)try{if((i=o.constructor)&&null!=i.getDerivedStateFromError&&(o.setState(i.getDerivedStateFromError(e)),u=o.__d),null!=o.componentDidCatch&&(o.componentDidCatch(e,r||{}),u=o.__d),u)return o.__E=o}catch(t){e=t}throw e}},Yt=0,pn.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=an({},this.state),"function"==typeof e&&(e=e(an({},n),this.props)),e&&an(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),dn(this))},pn.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),dn(this))},pn.prototype.render=fn,Zt=[],tn="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,nn=function(e,t){return e.__v.__b-t.__v.__b},yn.__r=0;var kn="__aa-highlight__",xn="__/aa-highlight__";function Nn(e){var t=e.highlightedValue.split(kn),n=t.shift(),r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{get:function(){return e},add:function(t){var n=e[e.length-1];(null==n?void 0:n.isHighlighted)===t.isHighlighted?e[e.length-1]={value:n.value+t.value,isHighlighted:n.isHighlighted}:e.push(t)}}}(n?[{value:n,isHighlighted:!1}]:[]);return t.forEach((function(e){var t=e.split(xn);r.add({value:t[0],isHighlighted:!0}),""!==t[1]&&r.add({value:t[1],isHighlighted:!1})})),r.get()}function Tn(e){return function(e){if(Array.isArray(e))return qn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return qn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return qn(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function qn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Bn(e){var t=e.hit,n=e.attribute,r=Array.isArray(n)?n:[n],o=y(t,["_highlightResult"].concat(Tn(r),["value"]));return"string"!=typeof o&&(o=y(t,r)||""),Nn({highlightedValue:o})}var Rn={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},Fn=new RegExp(/\w/i),Ln=/&(amp|quot|lt|gt|#39);/g,Un=RegExp(Ln.source);function Mn(e,t){var n,r,o,i=e[t],u=(null===(n=e[t+1])||void 0===n?void 0:n.isHighlighted)||!0,a=(null===(r=e[t-1])||void 0===r?void 0:r.isHighlighted)||!0;return Fn.test((o=i.value)&&Un.test(o)?o.replace(Ln,(function(e){return Rn[e]})):o)||a!==u?i.isHighlighted:a}function Hn(e){return Hn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Hn(e)}function Vn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Wn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Vn(Object(n),!0).forEach((function(t){Kn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Vn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Kn(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Hn(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Hn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Hn(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Qn(e){return e.some((function(e){return e.isHighlighted}))?e.map((function(t,n){return Wn(Wn({},t),{},{isHighlighted:!Mn(e,n)})})):e.map((function(e){return Wn(Wn({},e),{},{isHighlighted:!1})}))}function $n(e){return function(e){if(Array.isArray(e))return zn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return zn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return zn(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function zn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Gn(e){var t=e.hit,n=e.attribute,r=Array.isArray(n)?n:[n],o=y(t,["_snippetResult"].concat($n(r),["value"]));return"string"!=typeof o&&(o=y(t,r)||""),Nn({highlightedValue:o})}function Jn(e){return Jn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Jn(e)}function Xn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Yn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Xn(Object(n),!0).forEach((function(t){Zn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Zn(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Jn(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Jn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Jn(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function er(e){return er="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},er(e)}var tr=["params"];function nr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function rr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?nr(Object(n),!0).forEach((function(t){or(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function or(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==er(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==er(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===er(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ir(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function ur(e){return function(e){if(Array.isArray(e))return ar(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return ar(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ar(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ar(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function lr(e){var t=e.createElement,n=e.Fragment;function r(e){var r=e.hit,o=e.attribute,i=e.tagName,u=void 0===i?"mark":i;return t(n,{},Bn({hit:r,attribute:o}).map((function(e,n){return e.isHighlighted?t(u,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="Highlight",r}function cr(e){var t=e.createElement,n=e.Fragment;function r(e){var r,o=e.hit,i=e.attribute,u=e.tagName,a=void 0===u?"mark":u;return t(n,{},(r={hit:o,attribute:i},Qn(Bn(r))).map((function(e,n){return e.isHighlighted?t(a,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="ReverseHighlight",r}function sr(e){var t=e.createElement,n=e.Fragment;function r(e){var r,o=e.hit,i=e.attribute,u=e.tagName,a=void 0===u?"mark":u;return t(n,{},(r={hit:o,attribute:i},Qn(Gn(r))).map((function(e,n){return e.isHighlighted?t(a,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="ReverseSnippet",r}function fr(e){var t=e.createElement,n=e.Fragment;function r(e){var r=e.hit,o=e.attribute,i=e.tagName,u=void 0===i?"mark":i;return t(n,{},Gn({hit:r,attribute:o}).map((function(e,n){return e.isHighlighted?t(u,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="Snippet",r}var pr=["classNames","container","getEnvironmentProps","getFormProps","getInputProps","getItemProps","getLabelProps","getListProps","getPanelProps","getRootProps","panelContainer","panelPlacement","render","renderNoResults","renderer","detachedMediaQuery","components","translations"],mr={clearButton:"aa-ClearButton",detachedCancelButton:"aa-DetachedCancelButton",detachedContainer:"aa-DetachedContainer",detachedFormContainer:"aa-DetachedFormContainer",detachedOverlay:"aa-DetachedOverlay",detachedSearchButton:"aa-DetachedSearchButton",detachedSearchButtonIcon:"aa-DetachedSearchButtonIcon",detachedSearchButtonPlaceholder:"aa-DetachedSearchButtonPlaceholder",detachedSearchButtonQuery:"aa-DetachedSearchButtonQuery",form:"aa-Form",input:"aa-Input",inputWrapper:"aa-InputWrapper",inputWrapperPrefix:"aa-InputWrapperPrefix",inputWrapperSuffix:"aa-InputWrapperSuffix",item:"aa-Item",label:"aa-Label",list:"aa-List",loadingIndicator:"aa-LoadingIndicator",panel:"aa-Panel",panelLayout:"aa-PanelLayout aa-Panel--scrollable",root:"aa-Autocomplete",source:"aa-Source",sourceFooter:"aa-SourceFooter",sourceHeader:"aa-SourceHeader",sourceNoResults:"aa-SourceNoResults",submitButton:"aa-SubmitButton"},vr=function(e,t){var n=e.children;(0,e.render)(n,t)},dr={createElement:cn,Fragment:fn,render:function(e,t,n){var r,o,i;Xt.__&&Xt.__(e,t),o=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],wn(t,e=(!r&&n||t).__k=cn(fn,null,[e]),o||rn,rn,void 0!==t.ownerSVGElement,!r&&n?[n]:o?null:t.firstChild?Jt.call(t.childNodes):null,i,!r&&n?n:o?o.__e:t.firstChild,r),In(i,e)}};function yr(e){var t=e.panelPlacement,n=e.container,r=e.form,o=e.environment,i=n.getBoundingClientRect(),u=(o.pageYOffset||o.document.documentElement.scrollTop||o.document.body.scrollTop||0)+i.top+i.height;switch(t){case"start":return{top:u,left:i.left};case"end":return{top:u,right:o.document.documentElement.clientWidth-(i.left+i.width)};case"full-width":return{top:u,left:0,right:0,width:"unset",maxWidth:"unset"};case"input-wrapper-width":var a=r.getBoundingClientRect();return{top:u,left:a.left,right:o.document.documentElement.clientWidth-(a.left+a.width),width:"unset",maxWidth:"unset"};default:throw new Error("[Autocomplete] The `panelPlacement` value ".concat(JSON.stringify(t)," is not valid."))}}var br=[{segment:"autocomplete-js",version:_}],gr=["components"];var hr=function(e,t){function n(t){return e({searchClient:t.searchClient,queries:t.requests.map((function(e){return e.query}))}).then((function(e){return e.map((function(e,n){var r=t.requests[n];return{items:e,sourceId:r.sourceId,transformResponse:r.transformResponse}}))}))}return function(e){return function(r){return Yn(Yn({requesterId:t,execute:n},e),r)}}}((function(e){return function(e){var t=e.searchClient,n=e.queries,r=e.userAgents,o=void 0===r?[]:r;"function"==typeof t.addAlgoliaAgent&&[].concat(ur(S),ur(o)).forEach((function(e){var n=e.segment,r=e.version;t.addAlgoliaAgent(n,r)}));var i=function(e){var t=e.transporter||{},n=t.headers,r=void 0===n?{}:n,o=t.queryParameters,i=void 0===o?{}:o,u="x-algolia-application-id",a="x-algolia-api-key";return{appId:r[u]||i[u],apiKey:r[a]||i[a]}}(t),u=i.appId,a=i.apiKey;return t.search(n.map((function(e){var t=e.params;return rr(rr({},ir(e,tr)),{},{params:rr({hitsPerPage:5,highlightPreTag:kn,highlightPostTag:xn},t)})}))).then((function(e){return e.results.map((function(e,t){var r;return rr(rr({},e),{},{hits:null===(r=e.hits)||void 0===r?void 0:r.map((function(r){return rr(rr({},r),{},{__autocomplete_indexName:e.index||n[t].indexName,__autocomplete_queryID:e.queryID,__autocomplete_algoliaCredentials:{appId:u,apiKey:a}})}))})}))}))}(n(n({},e),{},{userAgents:br}))}),"algolia");var Or=hr({transformResponse:function(e){return e.hits}});e.autocomplete=function(e){var t,r=function(){var e=[],t=[];function n(n){e.push(n);var r=n();t.push(r)}return{runEffect:n,cleanupEffects:function(){var e=t;t=[],e.forEach((function(e){e()}))},runEffects:function(){var t=e;e=[],t.forEach((function(e){n(e)}))}}}(),a=r.runEffect,l=r.cleanupEffects,c=r.runEffects,s=(t=[],{reactive:function(e){var n=e(),r={_fn:e,_ref:{current:n},get value(){return this._ref.current},set value(e){this._ref.current=e}};return t.push(r),r},runReactives:function(){t.forEach((function(e){e._ref.current=e._fn()}))}}),m=s.reactive,v=s.runReactives,y=f(!1),g=f(e),h=f(void 0),O=m((function(){return function(e){var t,r=e.classNames,o=e.container,i=e.getEnvironmentProps,a=e.getFormProps,l=e.getInputProps,c=e.getItemProps,s=e.getLabelProps,f=e.getListProps,p=e.getPanelProps,m=e.getRootProps,v=e.panelContainer,y=e.panelPlacement,b=e.render,g=e.renderNoResults,h=e.renderer,O=e.detachedMediaQuery,_=e.components,S=e.translations,j=u(e,pr),P="undefined"!=typeof window?window:{},w=xt(P,o);w.tagName;var I=n(n({},dr),h),A={Highlight:lr(I),ReverseHighlight:cr(I),ReverseSnippet:sr(I),Snippet:fr(I)};return{renderer:{classNames:Nt(mr,null!=r?r:{}),container:w,getEnvironmentProps:null!=i?i:function(e){return e.props},getFormProps:null!=a?a:function(e){return e.props},getInputProps:null!=l?l:function(e){return e.props},getItemProps:null!=c?c:function(e){return e.props},getLabelProps:null!=s?s:function(e){return e.props},getListProps:null!=f?f:function(e){return e.props},getPanelProps:null!=p?p:function(e){return e.props},getRootProps:null!=m?m:function(e){return e.props},panelContainer:v?xt(P,v):P.document.body,panelPlacement:null!=y?y:"input-wrapper-width",render:null!=b?b:vr,renderNoResults:g,renderer:I,detachedMediaQuery:null!=O?O:getComputedStyle(P.document.documentElement).getPropertyValue("--aa-detached-media-query"),components:n(n({},A),_),translations:n(n({},{clearButtonTitle:"Clear",detachedCancelButtonText:"Cancel",submitButtonTitle:"Submit"}),S)},core:n(n({},j),{},{id:null!==(t=j.id)&&void 0!==t?t:d(),environment:P})}}(g.current)})),_=m((function(){return O.value.core.environment.matchMedia(O.value.renderer.detachedMediaQuery).matches})),S=m((function(){return At(n(n({},O.value.core),{},{onStateChange:function(e){var t,n,r;y.current=e.state.collections.some((function(e){return e.source.templates.noResults})),null===(t=h.current)||void 0===t||t.call(h,e),null===(n=(r=O.value.core).onStateChange)||void 0===n||n.call(r,e)},shouldPanelOpen:g.current.shouldPanelOpen||function(e){var t=e.state;if(_.value)return!0;var n=b(t)>0;if(!O.value.core.openOnFocus&&!t.query)return n;var r=Boolean(y.current||O.value.renderer.renderNoResults);return!n&&r||n},__autocomplete_metadata:{userAgents:br,options:e}}))})),j=f(n({collections:[],completion:null,context:{},isOpen:!1,query:"",activeItemId:null,status:"idle"},O.value.core.initialState)),P={getEnvironmentProps:O.value.renderer.getEnvironmentProps,getFormProps:O.value.renderer.getFormProps,getInputProps:O.value.renderer.getInputProps,getItemProps:O.value.renderer.getItemProps,getLabelProps:O.value.renderer.getLabelProps,getListProps:O.value.renderer.getListProps,getPanelProps:O.value.renderer.getPanelProps,getRootProps:O.value.renderer.getRootProps},w={setActiveItemId:S.value.setActiveItemId,setQuery:S.value.setQuery,setCollections:S.value.setCollections,setIsOpen:S.value.setIsOpen,setStatus:S.value.setStatus,setContext:S.value.setContext,refresh:S.value.refresh,navigator:S.value.navigator},I=m((function(){return Ct.bind(O.value.renderer.renderer.createElement)})),A=m((function(){return Gt({autocomplete:S.value,autocompleteScopeApi:w,classNames:O.value.renderer.classNames,environment:O.value.core.environment,isDetached:_.value,placeholder:O.value.core.placeholder,propGetters:P,setIsModalOpen:k,state:j.current,translations:O.value.renderer.translations})}));function E(){Ht(A.value.panel,{style:_.value?{}:yr({panelPlacement:O.value.renderer.panelPlacement,container:A.value.root,form:A.value.form,environment:O.value.core.environment})})}function D(e){j.current=e;var t={autocomplete:S.value,autocompleteScopeApi:w,classNames:O.value.renderer.classNames,components:O.value.renderer.components,container:O.value.renderer.container,html:I.value,dom:A.value,panelContainer:_.value?A.value.detachedContainer:O.value.renderer.panelContainer,propGetters:P,state:j.current,renderer:O.value.renderer.renderer},r=!b(e)&&!y.current&&O.value.renderer.renderNoResults||O.value.renderer.render;!function(e){var t=e.autocomplete,r=e.autocompleteScopeApi,o=e.dom,i=e.propGetters,u=e.state;Vt(o.root,i.getRootProps(n({state:u,props:t.getRootProps({})},r))),Vt(o.input,i.getInputProps(n({state:u,props:t.getInputProps({inputElement:o.input}),inputElement:o.input},r))),Ht(o.label,{hidden:"stalled"===u.status}),Ht(o.loadingIndicator,{hidden:"stalled"!==u.status}),Ht(o.clearButton,{hidden:!u.query}),Ht(o.detachedSearchButtonQuery,{textContent:u.query}),Ht(o.detachedSearchButtonPlaceholder,{hidden:Boolean(u.query)})}(t),function(e,t){var r=t.autocomplete,o=t.autocompleteScopeApi,u=t.classNames,a=t.html,l=t.dom,c=t.panelContainer,s=t.propGetters,f=t.state,p=t.components,m=t.renderer;if(f.isOpen){c.contains(l.panel)||"loading"===f.status||c.appendChild(l.panel),l.panel.classList.toggle("aa-Panel--stalled","stalled"===f.status);var v=f.collections.filter((function(e){var t=e.source,n=e.items;return t.templates.noResults||n.length>0})).map((function(e,t){var l=e.source,c=e.items;return m.createElement("section",{key:t,className:u.source,"data-autocomplete-source-id":l.sourceId},l.templates.header&&m.createElement("div",{className:u.sourceHeader},l.templates.header({components:p,createElement:m.createElement,Fragment:m.Fragment,items:c,source:l,state:f,html:a})),l.templates.noResults&&0===c.length?m.createElement("div",{className:u.sourceNoResults},l.templates.noResults({components:p,createElement:m.createElement,Fragment:m.Fragment,source:l,state:f,html:a})):m.createElement("ul",i({className:u.list},s.getListProps(n({state:f,props:r.getListProps({source:l})},o))),c.map((function(e){var t=r.getItemProps({item:e,source:l});return m.createElement("li",i({key:t.id,className:u.item},s.getItemProps(n({state:f,props:t},o))),l.templates.item({components:p,createElement:m.createElement,Fragment:m.Fragment,item:e,state:f,html:a}))}))),l.templates.footer&&m.createElement("div",{className:u.sourceFooter},l.templates.footer({components:p,createElement:m.createElement,Fragment:m.Fragment,items:c,source:l,state:f,html:a})))})),d=m.createElement(m.Fragment,null,m.createElement("div",{className:u.panelLayout},v),m.createElement("div",{className:"aa-GradientBottom"})),y=v.reduce((function(e,t){return e[t.props["data-autocomplete-source-id"]]=t,e}),{});e(n(n({children:d,state:f,sections:v,elements:y},m),{},{components:p,html:a},o),l.panel)}else c.contains(l.panel)&&c.removeChild(l.panel)}(r,t)}function C(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l();var t=O.value.renderer,n=t.components,r=u(t,gr);g.current=qt(r,O.value.core,{components:Bt(n,(function(e){return!e.value.hasOwnProperty("__autocomplete_componentName")})),initialState:j.current},e),v(),c(),S.value.refresh().then((function(){D(j.current)}))}function k(e){requestAnimationFrame((function(){var t=O.value.core.environment.document.body.contains(A.value.detachedOverlay);e!==t&&(e?(O.value.core.environment.document.body.appendChild(A.value.detachedOverlay),O.value.core.environment.document.body.classList.add("aa-Detached"),A.value.input.focus()):(O.value.core.environment.document.body.removeChild(A.value.detachedOverlay),O.value.core.environment.document.body.classList.remove("aa-Detached")))}))}return a((function(){var e=S.value.getEnvironmentProps({formElement:A.value.form,panelElement:A.value.panel,inputElement:A.value.input});return Ht(O.value.core.environment,e),function(){Ht(O.value.core.environment,Object.keys(e).reduce((function(e,t){return n(n({},e),{},o({},t,void 0))}),{}))}})),a((function(){var e=_.value?O.value.core.environment.document.body:O.value.renderer.panelContainer,t=_.value?A.value.detachedOverlay:A.value.panel;return _.value&&j.current.isOpen&&k(!0),D(j.current),function(){e.contains(t)&&e.removeChild(t)}})),a((function(){var e=O.value.renderer.container;return e.appendChild(A.value.root),function(){e.removeChild(A.value.root)}})),a((function(){var e=p((function(e){D(e.state)}),0);return h.current=function(t){var n=t.state,r=t.prevState;(_.value&&r.isOpen!==n.isOpen&&k(n.isOpen),_.value||!n.isOpen||r.isOpen||E(),n.query!==r.query)&&O.value.core.environment.document.querySelectorAll(".aa-Panel--scrollable").forEach((function(e){0!==e.scrollTop&&(e.scrollTop=0)}));e({state:n})},function(){h.current=void 0}})),a((function(){var e=p((function(){var e=_.value;_.value=O.value.core.environment.matchMedia(O.value.renderer.detachedMediaQuery).matches,e!==_.value?C({}):requestAnimationFrame(E)}),20);return O.value.core.environment.addEventListener("resize",e),function(){O.value.core.environment.removeEventListener("resize",e)}})),a((function(){if(!_.value)return function(){};function e(e){A.value.detachedContainer.classList.toggle("aa-DetachedContainer--modal",e)}function t(t){e(t.matches)}var n=O.value.core.environment.matchMedia(getComputedStyle(O.value.core.environment.document.documentElement).getPropertyValue("--aa-detached-modal-media-query"));e(n.matches);var r=Boolean(n.addEventListener);return r?n.addEventListener("change",t):n.addListener(t),function(){r?n.removeEventListener("change",t):n.removeListener(t)}})),a((function(){return requestAnimationFrame(E),function(){}})),n(n({},w),{},{update:C,destroy:function(){l()}})},e.getAlgoliaFacets=function(e){var t=hr({transformResponse:function(e){return e.facetHits}}),r=e.queries.map((function(e){return n(n({},e),{},{type:"facet"})}));return t(n(n({},e),{},{queries:r}))},e.getAlgoliaResults=Or,Object.defineProperty(e,"__esModule",{value:!0})}));
3
+
src/_site/site_libs/quarto-search/fuse.min.js ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Fuse.js v6.6.2 - Lightweight fuzzy-search (http://fusejs.io)
3
+ *
4
+ * Copyright (c) 2022 Kiro Risk (http://kiro.me)
5
+ * All Rights Reserved. Apache Software License 2.0
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ */
9
+ var e,t;e=this,t=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?e(Object(r),!0).forEach((function(e){c(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):e(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");Object.defineProperty(e,"prototype",{value:Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),writable:!1}),t&&u(e,t)}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function u(e,t){return u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},u(e,t)}function h(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function l(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=s(e);if(t){var i=s(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return h(this,n)}}function f(e){return function(e){if(Array.isArray(e))return d(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function v(e){return Array.isArray?Array.isArray(e):"[object Array]"===b(e)}function g(e){return"string"==typeof e}function y(e){return"number"==typeof e}function p(e){return!0===e||!1===e||function(e){return m(e)&&null!==e}(e)&&"[object Boolean]"==b(e)}function m(e){return"object"===n(e)}function k(e){return null!=e}function M(e){return!e.trim().length}function b(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var x=function(e){return"Invalid value for key ".concat(e)},w=function(e){return"Pattern length exceeds max of ".concat(e,".")},L=Object.prototype.hasOwnProperty,S=function(){function e(t){var n=this;r(this,e),this._keys=[],this._keyMap={};var i=0;t.forEach((function(e){var t=_(e);i+=t.weight,n._keys.push(t),n._keyMap[t.id]=t,i+=t.weight})),this._keys.forEach((function(e){e.weight/=i}))}return o(e,[{key:"get",value:function(e){return this._keyMap[e]}},{key:"keys",value:function(){return this._keys}},{key:"toJSON",value:function(){return JSON.stringify(this._keys)}}]),e}();function _(e){var t=null,n=null,r=null,i=1,o=null;if(g(e)||v(e))r=e,t=O(e),n=j(e);else{if(!L.call(e,"name"))throw new Error(function(e){return"Missing ".concat(e," property in key")}("name"));var c=e.name;if(r=c,L.call(e,"weight")&&(i=e.weight)<=0)throw new Error(function(e){return"Property 'weight' in key '".concat(e,"' must be a positive integer")}(c));t=O(c),n=j(c),o=e.getFn}return{path:t,id:n,weight:i,src:r,getFn:o}}function O(e){return v(e)?e:e.split(".")}function j(e){return v(e)?e.join("."):e}var A={useExtendedSearch:!1,getFn:function(e,t){var n=[],r=!1;return function e(t,i,o){if(k(t))if(i[o]){var c=t[i[o]];if(!k(c))return;if(o===i.length-1&&(g(c)||y(c)||p(c)))n.push(function(e){return null==e?"":function(e){if("string"==typeof e)return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}(e)}(c));else if(v(c)){r=!0;for(var a=0,s=c.length;a<s;a+=1)e(c[a],i,o+1)}else i.length&&e(c,i,o+1)}else n.push(t)}(e,g(t)?t.split("."):t,0),r?n:n[0]},ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1},I=t(t(t(t({},{isCaseSensitive:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:function(e,t){return e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1}}),{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1}),{location:0,threshold:.6,distance:100}),A),C=/[^ ]+/g;function E(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,n=new Map,r=Math.pow(10,t);return{get:function(t){var i=t.match(C).length;if(n.has(i))return n.get(i);var o=1/Math.pow(i,.5*e),c=parseFloat(Math.round(o*r)/r);return n.set(i,c),c},clear:function(){n.clear()}}}var $=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.getFn,i=void 0===n?I.getFn:n,o=t.fieldNormWeight,c=void 0===o?I.fieldNormWeight:o;r(this,e),this.norm=E(c,3),this.getFn=i,this.isCreated=!1,this.setIndexRecords()}return o(e,[{key:"setSources",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.docs=e}},{key:"setIndexRecords",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.records=e}},{key:"setKeys",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.keys=t,this._keysMap={},t.forEach((function(t,n){e._keysMap[t.id]=n}))}},{key:"create",value:function(){var e=this;!this.isCreated&&this.docs.length&&(this.isCreated=!0,g(this.docs[0])?this.docs.forEach((function(t,n){e._addString(t,n)})):this.docs.forEach((function(t,n){e._addObject(t,n)})),this.norm.clear())}},{key:"add",value:function(e){var t=this.size();g(e)?this._addString(e,t):this._addObject(e,t)}},{key:"removeAt",value:function(e){this.records.splice(e,1);for(var t=e,n=this.size();t<n;t+=1)this.records[t].i-=1}},{key:"getValueForItemAtKeyId",value:function(e,t){return e[this._keysMap[t]]}},{key:"size",value:function(){return this.records.length}},{key:"_addString",value:function(e,t){if(k(e)&&!M(e)){var n={v:e,i:t,n:this.norm.get(e)};this.records.push(n)}}},{key:"_addObject",value:function(e,t){var n=this,r={i:t,$:{}};this.keys.forEach((function(t,i){var o=t.getFn?t.getFn(e):n.getFn(e,t.path);if(k(o))if(v(o))!function(){for(var e=[],t=[{nestedArrIndex:-1,value:o}];t.length;){var c=t.pop(),a=c.nestedArrIndex,s=c.value;if(k(s))if(g(s)&&!M(s)){var u={v:s,i:a,n:n.norm.get(s)};e.push(u)}else v(s)&&s.forEach((function(e,n){t.push({nestedArrIndex:n,value:e})}))}r.$[i]=e}();else if(g(o)&&!M(o)){var c={v:o,n:n.norm.get(o)};r.$[i]=c}})),this.records.push(r)}},{key:"toJSON",value:function(){return{keys:this.keys,records:this.records}}}]),e}();function F(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.getFn,i=void 0===r?I.getFn:r,o=n.fieldNormWeight,c=void 0===o?I.fieldNormWeight:o,a=new $({getFn:i,fieldNormWeight:c});return a.setKeys(e.map(_)),a.setSources(t),a.create(),a}function R(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.errors,r=void 0===n?0:n,i=t.currentLocation,o=void 0===i?0:i,c=t.expectedLocation,a=void 0===c?0:c,s=t.distance,u=void 0===s?I.distance:s,h=t.ignoreLocation,l=void 0===h?I.ignoreLocation:h,f=r/e.length;if(l)return f;var d=Math.abs(a-o);return u?f+d/u:d?1:f}function N(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:I.minMatchCharLength,n=[],r=-1,i=-1,o=0,c=e.length;o<c;o+=1){var a=e[o];a&&-1===r?r=o:a||-1===r||((i=o-1)-r+1>=t&&n.push([r,i]),r=-1)}return e[o-1]&&o-r>=t&&n.push([r,o-1]),n}var P=32;function W(e){for(var t={},n=0,r=e.length;n<r;n+=1){var i=e.charAt(n);t[i]=(t[i]||0)|1<<r-n-1}return t}var T=function(){function e(t){var n=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=i.location,c=void 0===o?I.location:o,a=i.threshold,s=void 0===a?I.threshold:a,u=i.distance,h=void 0===u?I.distance:u,l=i.includeMatches,f=void 0===l?I.includeMatches:l,d=i.findAllMatches,v=void 0===d?I.findAllMatches:d,g=i.minMatchCharLength,y=void 0===g?I.minMatchCharLength:g,p=i.isCaseSensitive,m=void 0===p?I.isCaseSensitive:p,k=i.ignoreLocation,M=void 0===k?I.ignoreLocation:k;if(r(this,e),this.options={location:c,threshold:s,distance:h,includeMatches:f,findAllMatches:v,minMatchCharLength:y,isCaseSensitive:m,ignoreLocation:M},this.pattern=m?t:t.toLowerCase(),this.chunks=[],this.pattern.length){var b=function(e,t){n.chunks.push({pattern:e,alphabet:W(e),startIndex:t})},x=this.pattern.length;if(x>P){for(var w=0,L=x%P,S=x-L;w<S;)b(this.pattern.substr(w,P),w),w+=P;if(L){var _=x-P;b(this.pattern.substr(_),_)}}else b(this.pattern,0)}}return o(e,[{key:"searchIn",value:function(e){var t=this.options,n=t.isCaseSensitive,r=t.includeMatches;if(n||(e=e.toLowerCase()),this.pattern===e){var i={isMatch:!0,score:0};return r&&(i.indices=[[0,e.length-1]]),i}var o=this.options,c=o.location,a=o.distance,s=o.threshold,u=o.findAllMatches,h=o.minMatchCharLength,l=o.ignoreLocation,d=[],v=0,g=!1;this.chunks.forEach((function(t){var n=t.pattern,i=t.alphabet,o=t.startIndex,y=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=r.location,o=void 0===i?I.location:i,c=r.distance,a=void 0===c?I.distance:c,s=r.threshold,u=void 0===s?I.threshold:s,h=r.findAllMatches,l=void 0===h?I.findAllMatches:h,f=r.minMatchCharLength,d=void 0===f?I.minMatchCharLength:f,v=r.includeMatches,g=void 0===v?I.includeMatches:v,y=r.ignoreLocation,p=void 0===y?I.ignoreLocation:y;if(t.length>P)throw new Error(w(P));for(var m,k=t.length,M=e.length,b=Math.max(0,Math.min(o,M)),x=u,L=b,S=d>1||g,_=S?Array(M):[];(m=e.indexOf(t,L))>-1;){var O=R(t,{currentLocation:m,expectedLocation:b,distance:a,ignoreLocation:p});if(x=Math.min(O,x),L=m+k,S)for(var j=0;j<k;)_[m+j]=1,j+=1}L=-1;for(var A=[],C=1,E=k+M,$=1<<k-1,F=0;F<k;F+=1){for(var W=0,T=E;W<T;)R(t,{errors:F,currentLocation:b+T,expectedLocation:b,distance:a,ignoreLocation:p})<=x?W=T:E=T,T=Math.floor((E-W)/2+W);E=T;var z=Math.max(1,b-T+1),D=l?M:Math.min(b+T,M)+k,K=Array(D+2);K[D+1]=(1<<F)-1;for(var q=D;q>=z;q-=1){var B=q-1,J=n[e.charAt(B)];if(S&&(_[B]=+!!J),K[q]=(K[q+1]<<1|1)&J,F&&(K[q]|=(A[q+1]|A[q])<<1|1|A[q+1]),K[q]&$&&(C=R(t,{errors:F,currentLocation:B,expectedLocation:b,distance:a,ignoreLocation:p}))<=x){if(x=C,(L=B)<=b)break;z=Math.max(1,2*b-L)}}if(R(t,{errors:F+1,currentLocation:b,expectedLocation:b,distance:a,ignoreLocation:p})>x)break;A=K}var U={isMatch:L>=0,score:Math.max(.001,C)};if(S){var V=N(_,d);V.length?g&&(U.indices=V):U.isMatch=!1}return U}(e,n,i,{location:c+o,distance:a,threshold:s,findAllMatches:u,minMatchCharLength:h,includeMatches:r,ignoreLocation:l}),p=y.isMatch,m=y.score,k=y.indices;p&&(g=!0),v+=m,p&&k&&(d=[].concat(f(d),f(k)))}));var y={isMatch:g,score:g?v/this.chunks.length:1};return g&&r&&(y.indices=d),y}}]),e}(),z=function(){function e(t){r(this,e),this.pattern=t}return o(e,[{key:"search",value:function(){}}],[{key:"isMultiMatch",value:function(e){return D(e,this.multiRegex)}},{key:"isSingleMatch",value:function(e){return D(e,this.singleRegex)}}]),e}();function D(e,t){var n=e.match(t);return n?n[1]:null}var K=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"exact"}},{key:"multiRegex",get:function(){return/^="(.*)"$/}},{key:"singleRegex",get:function(){return/^=(.*)$/}}]),n}(z),q=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=-1===e.indexOf(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"$/}},{key:"singleRegex",get:function(){return/^!(.*)$/}}]),n}(z),B=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"prefix-exact"}},{key:"multiRegex",get:function(){return/^\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^\^(.*)$/}}]),n}(z),J=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=!e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-prefix-exact"}},{key:"multiRegex",get:function(){return/^!\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^!\^(.*)$/}}]),n}(z),U=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[e.length-this.pattern.length,e.length-1]}}}],[{key:"type",get:function(){return"suffix-exact"}},{key:"multiRegex",get:function(){return/^"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^(.*)\$$/}}]),n}(z),V=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=!e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-suffix-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^!(.*)\$$/}}]),n}(z),G=function(e){a(n,e);var t=l(n);function n(e){var i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=o.location,a=void 0===c?I.location:c,s=o.threshold,u=void 0===s?I.threshold:s,h=o.distance,l=void 0===h?I.distance:h,f=o.includeMatches,d=void 0===f?I.includeMatches:f,v=o.findAllMatches,g=void 0===v?I.findAllMatches:v,y=o.minMatchCharLength,p=void 0===y?I.minMatchCharLength:y,m=o.isCaseSensitive,k=void 0===m?I.isCaseSensitive:m,M=o.ignoreLocation,b=void 0===M?I.ignoreLocation:M;return r(this,n),(i=t.call(this,e))._bitapSearch=new T(e,{location:a,threshold:u,distance:l,includeMatches:d,findAllMatches:g,minMatchCharLength:p,isCaseSensitive:k,ignoreLocation:b}),i}return o(n,[{key:"search",value:function(e){return this._bitapSearch.searchIn(e)}}],[{key:"type",get:function(){return"fuzzy"}},{key:"multiRegex",get:function(){return/^"(.*)"$/}},{key:"singleRegex",get:function(){return/^(.*)$/}}]),n}(z),H=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){for(var t,n=0,r=[],i=this.pattern.length;(t=e.indexOf(this.pattern,n))>-1;)n=t+i,r.push([t,n-1]);var o=!!r.length;return{isMatch:o,score:o?0:1,indices:r}}}],[{key:"type",get:function(){return"include"}},{key:"multiRegex",get:function(){return/^'"(.*)"$/}},{key:"singleRegex",get:function(){return/^'(.*)$/}}]),n}(z),Q=[K,H,B,J,V,U,q,G],X=Q.length,Y=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/;function Z(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.split("|").map((function(e){for(var n=e.trim().split(Y).filter((function(e){return e&&!!e.trim()})),r=[],i=0,o=n.length;i<o;i+=1){for(var c=n[i],a=!1,s=-1;!a&&++s<X;){var u=Q[s],h=u.isMultiMatch(c);h&&(r.push(new u(h,t)),a=!0)}if(!a)for(s=-1;++s<X;){var l=Q[s],f=l.isSingleMatch(c);if(f){r.push(new l(f,t));break}}}return r}))}var ee=new Set([G.type,H.type]),te=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=n.isCaseSensitive,o=void 0===i?I.isCaseSensitive:i,c=n.includeMatches,a=void 0===c?I.includeMatches:c,s=n.minMatchCharLength,u=void 0===s?I.minMatchCharLength:s,h=n.ignoreLocation,l=void 0===h?I.ignoreLocation:h,f=n.findAllMatches,d=void 0===f?I.findAllMatches:f,v=n.location,g=void 0===v?I.location:v,y=n.threshold,p=void 0===y?I.threshold:y,m=n.distance,k=void 0===m?I.distance:m;r(this,e),this.query=null,this.options={isCaseSensitive:o,includeMatches:a,minMatchCharLength:u,findAllMatches:d,ignoreLocation:l,location:g,threshold:p,distance:k},this.pattern=o?t:t.toLowerCase(),this.query=Z(this.pattern,this.options)}return o(e,[{key:"searchIn",value:function(e){var t=this.query;if(!t)return{isMatch:!1,score:1};var n=this.options,r=n.includeMatches;e=n.isCaseSensitive?e:e.toLowerCase();for(var i=0,o=[],c=0,a=0,s=t.length;a<s;a+=1){var u=t[a];o.length=0,i=0;for(var h=0,l=u.length;h<l;h+=1){var d=u[h],v=d.search(e),g=v.isMatch,y=v.indices,p=v.score;if(!g){c=0,i=0,o.length=0;break}if(i+=1,c+=p,r){var m=d.constructor.type;ee.has(m)?o=[].concat(f(o),f(y)):o.push(y)}}if(i){var k={isMatch:!0,score:c/i};return r&&(k.indices=o),k}}return{isMatch:!1,score:1}}}],[{key:"condition",value:function(e,t){return t.useExtendedSearch}}]),e}(),ne=[];function re(e,t){for(var n=0,r=ne.length;n<r;n+=1){var i=ne[n];if(i.condition(e,t))return new i(e,t)}return new T(e,t)}var ie="$and",oe="$or",ce="$path",ae="$val",se=function(e){return!(!e[ie]&&!e[oe])},ue=function(e){return!!e[ce]},he=function(e){return!v(e)&&m(e)&&!se(e)},le=function(e){return c({},ie,Object.keys(e).map((function(t){return c({},t,e[t])})))};function fe(e,t){var n=t.ignoreFieldNorm,r=void 0===n?I.ignoreFieldNorm:n;e.forEach((function(e){var t=1;e.matches.forEach((function(e){var n=e.key,i=e.norm,o=e.score,c=n?n.weight:null;t*=Math.pow(0===o&&c?Number.EPSILON:o,(c||1)*(r?1:i))})),e.score=t}))}function de(e,t){var n=e.matches;t.matches=[],k(n)&&n.forEach((function(e){if(k(e.indices)&&e.indices.length){var n={indices:e.indices,value:e.value};e.key&&(n.key=e.key.src),e.idx>-1&&(n.refIndex=e.idx),t.matches.push(n)}}))}function ve(e,t){t.score=e.score}function ge(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.includeMatches,i=void 0===r?I.includeMatches:r,o=n.includeScore,c=void 0===o?I.includeScore:o,a=[];return i&&a.push(de),c&&a.push(ve),e.map((function(e){var n=e.idx,r={item:t[n],refIndex:n};return a.length&&a.forEach((function(t){t(e,r)})),r}))}var ye=function(){function e(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;r(this,e),this.options=t(t({},I),i),this.options.useExtendedSearch,this._keyStore=new S(this.options.keys),this.setCollection(n,o)}return o(e,[{key:"setCollection",value:function(e,t){if(this._docs=e,t&&!(t instanceof $))throw new Error("Incorrect 'index' type");this._myIndex=t||F(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}},{key:"add",value:function(e){k(e)&&(this._docs.push(e),this._myIndex.add(e))}},{key:"remove",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!1},t=[],n=0,r=this._docs.length;n<r;n+=1){var i=this._docs[n];e(i,n)&&(this.removeAt(n),n-=1,r-=1,t.push(i))}return t}},{key:"removeAt",value:function(e){this._docs.splice(e,1),this._myIndex.removeAt(e)}},{key:"getIndex",value:function(){return this._myIndex}},{key:"search",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.limit,r=void 0===n?-1:n,i=this.options,o=i.includeMatches,c=i.includeScore,a=i.shouldSort,s=i.sortFn,u=i.ignoreFieldNorm,h=g(e)?g(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return fe(h,{ignoreFieldNorm:u}),a&&h.sort(s),y(r)&&r>-1&&(h=h.slice(0,r)),ge(h,this._docs,{includeMatches:o,includeScore:c})}},{key:"_searchStringList",value:function(e){var t=re(e,this.options),n=this._myIndex.records,r=[];return n.forEach((function(e){var n=e.v,i=e.i,o=e.n;if(k(n)){var c=t.searchIn(n),a=c.isMatch,s=c.score,u=c.indices;a&&r.push({item:n,idx:i,matches:[{score:s,value:n,norm:o,indices:u}]})}})),r}},{key:"_searchLogical",value:function(e){var t=this,n=function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).auto,r=void 0===n||n,i=function e(n){var i=Object.keys(n),o=ue(n);if(!o&&i.length>1&&!se(n))return e(le(n));if(he(n)){var c=o?n[ce]:i[0],a=o?n[ae]:n[c];if(!g(a))throw new Error(x(c));var s={keyId:j(c),pattern:a};return r&&(s.searcher=re(a,t)),s}var u={children:[],operator:i[0]};return i.forEach((function(t){var r=n[t];v(r)&&r.forEach((function(t){u.children.push(e(t))}))})),u};return se(e)||(e=le(e)),i(e)}(e,this.options),r=function e(n,r,i){if(!n.children){var o=n.keyId,c=n.searcher,a=t._findMatches({key:t._keyStore.get(o),value:t._myIndex.getValueForItemAtKeyId(r,o),searcher:c});return a&&a.length?[{idx:i,item:r,matches:a}]:[]}for(var s=[],u=0,h=n.children.length;u<h;u+=1){var l=e(n.children[u],r,i);if(l.length)s.push.apply(s,f(l));else if(n.operator===ie)return[]}return s},i=this._myIndex.records,o={},c=[];return i.forEach((function(e){var t=e.$,i=e.i;if(k(t)){var a=r(n,t,i);a.length&&(o[i]||(o[i]={idx:i,item:t,matches:[]},c.push(o[i])),a.forEach((function(e){var t,n=e.matches;(t=o[i].matches).push.apply(t,f(n))})))}})),c}},{key:"_searchObjectList",value:function(e){var t=this,n=re(e,this.options),r=this._myIndex,i=r.keys,o=r.records,c=[];return o.forEach((function(e){var r=e.$,o=e.i;if(k(r)){var a=[];i.forEach((function(e,i){a.push.apply(a,f(t._findMatches({key:e,value:r[i],searcher:n})))})),a.length&&c.push({idx:o,item:r,matches:a})}})),c}},{key:"_findMatches",value:function(e){var t=e.key,n=e.value,r=e.searcher;if(!k(n))return[];var i=[];if(v(n))n.forEach((function(e){var n=e.v,o=e.i,c=e.n;if(k(n)){var a=r.searchIn(n),s=a.isMatch,u=a.score,h=a.indices;s&&i.push({score:u,key:t,value:n,idx:o,norm:c,indices:h})}}));else{var o=n.v,c=n.n,a=r.searchIn(o),s=a.isMatch,u=a.score,h=a.indices;s&&i.push({score:u,key:t,value:o,norm:c,indices:h})}return i}}]),e}();return ye.version="6.6.2",ye.createIndex=F,ye.parseIndex=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.getFn,r=void 0===n?I.getFn:n,i=t.fieldNormWeight,o=void 0===i?I.fieldNormWeight:i,c=e.keys,a=e.records,s=new $({getFn:r,fieldNormWeight:o});return s.setKeys(c),s.setIndexRecords(a),s},ye.config=I,function(){ne.push.apply(ne,arguments)}(te),ye},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Fuse=t();
src/_site/site_libs/quarto-search/quarto-search.js ADDED
@@ -0,0 +1,1247 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const kQueryArg = "q";
2
+ const kResultsArg = "show-results";
3
+
4
+ // If items don't provide a URL, then both the navigator and the onSelect
5
+ // function aren't called (and therefore, the default implementation is used)
6
+ //
7
+ // We're using this sentinel URL to signal to those handlers that this
8
+ // item is a more item (along with the type) and can be handled appropriately
9
+ const kItemTypeMoreHref = "0767FDFD-0422-4E5A-BC8A-3BE11E5BBA05";
10
+
11
+ window.document.addEventListener("DOMContentLoaded", function (_event) {
12
+ // Ensure that search is available on this page. If it isn't,
13
+ // should return early and not do anything
14
+ var searchEl = window.document.getElementById("quarto-search");
15
+ if (!searchEl) return;
16
+
17
+ const { autocomplete } = window["@algolia/autocomplete-js"];
18
+
19
+ let quartoSearchOptions = {};
20
+ let language = {};
21
+ const searchOptionEl = window.document.getElementById(
22
+ "quarto-search-options"
23
+ );
24
+ if (searchOptionEl) {
25
+ const jsonStr = searchOptionEl.textContent;
26
+ quartoSearchOptions = JSON.parse(jsonStr);
27
+ language = quartoSearchOptions.language;
28
+ }
29
+
30
+ // note the search mode
31
+ if (quartoSearchOptions.type === "overlay") {
32
+ searchEl.classList.add("type-overlay");
33
+ } else {
34
+ searchEl.classList.add("type-textbox");
35
+ }
36
+
37
+ // Used to determine highlighting behavior for this page
38
+ // A `q` query param is expected when the user follows a search
39
+ // to this page
40
+ const currentUrl = new URL(window.location);
41
+ const query = currentUrl.searchParams.get(kQueryArg);
42
+ const showSearchResults = currentUrl.searchParams.get(kResultsArg);
43
+ const mainEl = window.document.querySelector("main");
44
+
45
+ // highlight matches on the page
46
+ if (query && mainEl) {
47
+ // perform any highlighting
48
+ highlight(escapeRegExp(query), mainEl);
49
+
50
+ // fix up the URL to remove the q query param
51
+ const replacementUrl = new URL(window.location);
52
+ replacementUrl.searchParams.delete(kQueryArg);
53
+ window.history.replaceState({}, "", replacementUrl);
54
+ }
55
+
56
+ // function to clear highlighting on the page when the search query changes
57
+ // (e.g. if the user edits the query or clears it)
58
+ let highlighting = true;
59
+ const resetHighlighting = (searchTerm) => {
60
+ if (mainEl && highlighting && query && searchTerm !== query) {
61
+ clearHighlight(query, mainEl);
62
+ highlighting = false;
63
+ }
64
+ };
65
+
66
+ // Clear search highlighting when the user scrolls sufficiently
67
+ const resetFn = () => {
68
+ resetHighlighting("");
69
+ window.removeEventListener("quarto-hrChanged", resetFn);
70
+ window.removeEventListener("quarto-sectionChanged", resetFn);
71
+ };
72
+
73
+ // Register this event after the initial scrolling and settling of events
74
+ // on the page
75
+ window.addEventListener("quarto-hrChanged", resetFn);
76
+ window.addEventListener("quarto-sectionChanged", resetFn);
77
+
78
+ // Responsively switch to overlay mode if the search is present on the navbar
79
+ // Note that switching the sidebar to overlay mode requires more coordinate (not just
80
+ // the media query since we generate different HTML for sidebar overlays than we do
81
+ // for sidebar input UI)
82
+ const detachedMediaQuery =
83
+ quartoSearchOptions.type === "overlay" ? "all" : "(max-width: 991px)";
84
+
85
+ // If configured, include the analytics client to send insights
86
+ const plugins = configurePlugins(quartoSearchOptions);
87
+
88
+ let lastState = null;
89
+ const { setIsOpen, setQuery, setCollections } = autocomplete({
90
+ container: searchEl,
91
+ detachedMediaQuery: detachedMediaQuery,
92
+ defaultActiveItemId: 0,
93
+ panelContainer: "#quarto-search-results",
94
+ panelPlacement: quartoSearchOptions["panel-placement"],
95
+ debug: false,
96
+ openOnFocus: true,
97
+ plugins,
98
+ classNames: {
99
+ form: "d-flex",
100
+ },
101
+ placeholder: language["search-text-placeholder"],
102
+ translations: {
103
+ clearButtonTitle: language["search-clear-button-title"],
104
+ detachedCancelButtonText: language["search-detached-cancel-button-title"],
105
+ submitButtonTitle: language["search-submit-button-title"],
106
+ },
107
+ initialState: {
108
+ query,
109
+ },
110
+ getItemUrl({ item }) {
111
+ return item.href;
112
+ },
113
+ onStateChange({ state }) {
114
+ // If this is a file URL, note that
115
+
116
+ // Perhaps reset highlighting
117
+ resetHighlighting(state.query);
118
+
119
+ // If the panel just opened, ensure the panel is positioned properly
120
+ if (state.isOpen) {
121
+ if (lastState && !lastState.isOpen) {
122
+ setTimeout(() => {
123
+ positionPanel(quartoSearchOptions["panel-placement"]);
124
+ }, 150);
125
+ }
126
+ }
127
+
128
+ // Perhaps show the copy link
129
+ showCopyLink(state.query, quartoSearchOptions);
130
+
131
+ lastState = state;
132
+ },
133
+ reshape({ sources, state }) {
134
+ return sources.map((source) => {
135
+ try {
136
+ const items = source.getItems();
137
+
138
+ // Validate the items
139
+ validateItems(items);
140
+
141
+ // group the items by document
142
+ const groupedItems = new Map();
143
+ items.forEach((item) => {
144
+ const hrefParts = item.href.split("#");
145
+ const baseHref = hrefParts[0];
146
+ const isDocumentItem = hrefParts.length === 1;
147
+
148
+ const items = groupedItems.get(baseHref);
149
+ if (!items) {
150
+ groupedItems.set(baseHref, [item]);
151
+ } else {
152
+ // If the href for this item matches the document
153
+ // exactly, place this item first as it is the item that represents
154
+ // the document itself
155
+ if (isDocumentItem) {
156
+ items.unshift(item);
157
+ } else {
158
+ items.push(item);
159
+ }
160
+ groupedItems.set(baseHref, items);
161
+ }
162
+ });
163
+
164
+ const reshapedItems = [];
165
+ let count = 1;
166
+ for (const [_key, value] of groupedItems) {
167
+ const firstItem = value[0];
168
+ reshapedItems.push({
169
+ ...firstItem,
170
+ type: kItemTypeDoc,
171
+ });
172
+
173
+ const collapseMatches = quartoSearchOptions["collapse-after"];
174
+ const collapseCount =
175
+ typeof collapseMatches === "number" ? collapseMatches : 1;
176
+
177
+ if (value.length > 1) {
178
+ const target = `search-more-${count}`;
179
+ const isExpanded =
180
+ state.context.expanded &&
181
+ state.context.expanded.includes(target);
182
+
183
+ const remainingCount = value.length - collapseCount;
184
+
185
+ for (let i = 1; i < value.length; i++) {
186
+ if (collapseMatches && i === collapseCount) {
187
+ reshapedItems.push({
188
+ target,
189
+ title: isExpanded
190
+ ? language["search-hide-matches-text"]
191
+ : remainingCount === 1
192
+ ? `${remainingCount} ${language["search-more-match-text"]}`
193
+ : `${remainingCount} ${language["search-more-matches-text"]}`,
194
+ type: kItemTypeMore,
195
+ href: kItemTypeMoreHref,
196
+ });
197
+ }
198
+
199
+ if (isExpanded || !collapseMatches || i < collapseCount) {
200
+ reshapedItems.push({
201
+ ...value[i],
202
+ type: kItemTypeItem,
203
+ target,
204
+ });
205
+ }
206
+ }
207
+ }
208
+ count += 1;
209
+ }
210
+
211
+ return {
212
+ ...source,
213
+ getItems() {
214
+ return reshapedItems;
215
+ },
216
+ };
217
+ } catch (error) {
218
+ // Some form of error occurred
219
+ return {
220
+ ...source,
221
+ getItems() {
222
+ return [
223
+ {
224
+ title: error.name || "An Error Occurred While Searching",
225
+ text:
226
+ error.message ||
227
+ "An unknown error occurred while attempting to perform the requested search.",
228
+ type: kItemTypeError,
229
+ },
230
+ ];
231
+ },
232
+ };
233
+ }
234
+ });
235
+ },
236
+ navigator: {
237
+ navigate({ itemUrl }) {
238
+ if (itemUrl !== offsetURL(kItemTypeMoreHref)) {
239
+ window.location.assign(itemUrl);
240
+ }
241
+ },
242
+ navigateNewTab({ itemUrl }) {
243
+ if (itemUrl !== offsetURL(kItemTypeMoreHref)) {
244
+ const windowReference = window.open(itemUrl, "_blank", "noopener");
245
+ if (windowReference) {
246
+ windowReference.focus();
247
+ }
248
+ }
249
+ },
250
+ navigateNewWindow({ itemUrl }) {
251
+ if (itemUrl !== offsetURL(kItemTypeMoreHref)) {
252
+ window.open(itemUrl, "_blank", "noopener");
253
+ }
254
+ },
255
+ },
256
+ getSources({ state, setContext, setActiveItemId, refresh }) {
257
+ return [
258
+ {
259
+ sourceId: "documents",
260
+ getItemUrl({ item }) {
261
+ if (item.href) {
262
+ return offsetURL(item.href);
263
+ } else {
264
+ return undefined;
265
+ }
266
+ },
267
+ onSelect({
268
+ item,
269
+ state,
270
+ setContext,
271
+ setIsOpen,
272
+ setActiveItemId,
273
+ refresh,
274
+ }) {
275
+ if (item.type === kItemTypeMore) {
276
+ toggleExpanded(item, state, setContext, setActiveItemId, refresh);
277
+
278
+ // Toggle more
279
+ setIsOpen(true);
280
+ }
281
+ },
282
+ getItems({ query }) {
283
+ if (query === null || query === "") {
284
+ return [];
285
+ }
286
+
287
+ const limit = quartoSearchOptions.limit;
288
+ if (quartoSearchOptions.algolia) {
289
+ return algoliaSearch(query, limit, quartoSearchOptions.algolia);
290
+ } else {
291
+ // Fuse search options
292
+ const fuseSearchOptions = {
293
+ isCaseSensitive: false,
294
+ shouldSort: true,
295
+ minMatchCharLength: 2,
296
+ limit: limit,
297
+ };
298
+
299
+ return readSearchData().then(function (fuse) {
300
+ return fuseSearch(query, fuse, fuseSearchOptions);
301
+ });
302
+ }
303
+ },
304
+ templates: {
305
+ noResults({ createElement }) {
306
+ const hasQuery = lastState.query;
307
+
308
+ return createElement(
309
+ "div",
310
+ {
311
+ class: `quarto-search-no-results${
312
+ hasQuery ? "" : " no-query"
313
+ }`,
314
+ },
315
+ language["search-no-results-text"]
316
+ );
317
+ },
318
+ header({ items, createElement }) {
319
+ // count the documents
320
+ const count = items.filter((item) => {
321
+ return item.type === kItemTypeDoc;
322
+ }).length;
323
+
324
+ if (count > 0) {
325
+ return createElement(
326
+ "div",
327
+ { class: "search-result-header" },
328
+ `${count} ${language["search-matching-documents-text"]}`
329
+ );
330
+ } else {
331
+ return createElement(
332
+ "div",
333
+ { class: "search-result-header-no-results" },
334
+ ``
335
+ );
336
+ }
337
+ },
338
+ footer({ _items, createElement }) {
339
+ if (
340
+ quartoSearchOptions.algolia &&
341
+ quartoSearchOptions.algolia["show-logo"]
342
+ ) {
343
+ const libDir = quartoSearchOptions.algolia["libDir"];
344
+ const logo = createElement("img", {
345
+ src: offsetURL(
346
+ `${libDir}/quarto-search/search-by-algolia.svg`
347
+ ),
348
+ class: "algolia-search-logo",
349
+ });
350
+ return createElement(
351
+ "a",
352
+ { href: "http://www.algolia.com/" },
353
+ logo
354
+ );
355
+ }
356
+ },
357
+
358
+ item({ item, createElement }) {
359
+ return renderItem(
360
+ item,
361
+ createElement,
362
+ state,
363
+ setActiveItemId,
364
+ setContext,
365
+ refresh,
366
+ quartoSearchOptions
367
+ );
368
+ },
369
+ },
370
+ },
371
+ ];
372
+ },
373
+ });
374
+
375
+ window.quartoOpenSearch = () => {
376
+ setIsOpen(false);
377
+ setIsOpen(true);
378
+ focusSearchInput();
379
+ };
380
+
381
+ document.addEventListener("keyup", (event) => {
382
+ const { key } = event;
383
+ const kbds = quartoSearchOptions["keyboard-shortcut"];
384
+ const focusedEl = document.activeElement;
385
+
386
+ const isFormElFocused = [
387
+ "input",
388
+ "select",
389
+ "textarea",
390
+ "button",
391
+ "option",
392
+ ].find((tag) => {
393
+ return focusedEl.tagName.toLowerCase() === tag;
394
+ });
395
+
396
+ if (
397
+ kbds &&
398
+ kbds.includes(key) &&
399
+ !isFormElFocused &&
400
+ !document.activeElement.isContentEditable
401
+ ) {
402
+ event.preventDefault();
403
+ window.quartoOpenSearch();
404
+ }
405
+ });
406
+
407
+ // Remove the labeleledby attribute since it is pointing
408
+ // to a non-existent label
409
+ if (quartoSearchOptions.type === "overlay") {
410
+ const inputEl = window.document.querySelector(
411
+ "#quarto-search .aa-Autocomplete"
412
+ );
413
+ if (inputEl) {
414
+ inputEl.removeAttribute("aria-labelledby");
415
+ }
416
+ }
417
+
418
+ function throttle(func, wait) {
419
+ let waiting = false;
420
+ return function () {
421
+ if (!waiting) {
422
+ func.apply(this, arguments);
423
+ waiting = true;
424
+ setTimeout(function () {
425
+ waiting = false;
426
+ }, wait);
427
+ }
428
+ };
429
+ }
430
+
431
+ // If the main document scrolls dismiss the search results
432
+ // (otherwise, since they're floating in the document they can scroll with the document)
433
+ window.document.body.onscroll = throttle(() => {
434
+ // Only do this if we're not detached
435
+ // Bug #7117
436
+ // This will happen when the keyboard is shown on ios (resulting in a scroll)
437
+ // which then closed the search UI
438
+ if (!window.matchMedia(detachedMediaQuery).matches) {
439
+ setIsOpen(false);
440
+ }
441
+ }, 50);
442
+
443
+ if (showSearchResults) {
444
+ setIsOpen(true);
445
+ focusSearchInput();
446
+ }
447
+ });
448
+
449
+ function configurePlugins(quartoSearchOptions) {
450
+ const autocompletePlugins = [];
451
+ const algoliaOptions = quartoSearchOptions.algolia;
452
+ if (
453
+ algoliaOptions &&
454
+ algoliaOptions["analytics-events"] &&
455
+ algoliaOptions["search-only-api-key"] &&
456
+ algoliaOptions["application-id"]
457
+ ) {
458
+ const apiKey = algoliaOptions["search-only-api-key"];
459
+ const appId = algoliaOptions["application-id"];
460
+
461
+ // Aloglia insights may not be loaded because they require cookie consent
462
+ // Use deferred loading so events will start being recorded when/if consent
463
+ // is granted.
464
+ const algoliaInsightsDeferredPlugin = deferredLoadPlugin(() => {
465
+ if (
466
+ window.aa &&
467
+ window["@algolia/autocomplete-plugin-algolia-insights"]
468
+ ) {
469
+ window.aa("init", {
470
+ appId,
471
+ apiKey,
472
+ useCookie: true,
473
+ });
474
+
475
+ const { createAlgoliaInsightsPlugin } =
476
+ window["@algolia/autocomplete-plugin-algolia-insights"];
477
+ // Register the insights client
478
+ const algoliaInsightsPlugin = createAlgoliaInsightsPlugin({
479
+ insightsClient: window.aa,
480
+ onItemsChange({ insights, insightsEvents }) {
481
+ const events = insightsEvents.flatMap((event) => {
482
+ // This API limits the number of items per event to 20
483
+ const chunkSize = 20;
484
+ const itemChunks = [];
485
+ const eventItems = event.items;
486
+ for (let i = 0; i < eventItems.length; i += chunkSize) {
487
+ itemChunks.push(eventItems.slice(i, i + chunkSize));
488
+ }
489
+ // Split the items into multiple events that can be sent
490
+ const events = itemChunks.map((items) => {
491
+ return {
492
+ ...event,
493
+ items,
494
+ };
495
+ });
496
+ return events;
497
+ });
498
+
499
+ for (const event of events) {
500
+ insights.viewedObjectIDs(event);
501
+ }
502
+ },
503
+ });
504
+ return algoliaInsightsPlugin;
505
+ }
506
+ });
507
+
508
+ // Add the plugin
509
+ autocompletePlugins.push(algoliaInsightsDeferredPlugin);
510
+ return autocompletePlugins;
511
+ }
512
+ }
513
+
514
+ // For plugins that may not load immediately, create a wrapper
515
+ // plugin and forward events and plugin data once the plugin
516
+ // is initialized. This is useful for cases like cookie consent
517
+ // which may prevent the analytics insights event plugin from initializing
518
+ // immediately.
519
+ function deferredLoadPlugin(createPlugin) {
520
+ let plugin = undefined;
521
+ let subscribeObj = undefined;
522
+ const wrappedPlugin = () => {
523
+ if (!plugin && subscribeObj) {
524
+ plugin = createPlugin();
525
+ if (plugin && plugin.subscribe) {
526
+ plugin.subscribe(subscribeObj);
527
+ }
528
+ }
529
+ return plugin;
530
+ };
531
+
532
+ return {
533
+ subscribe: (obj) => {
534
+ subscribeObj = obj;
535
+ },
536
+ onStateChange: (obj) => {
537
+ const plugin = wrappedPlugin();
538
+ if (plugin && plugin.onStateChange) {
539
+ plugin.onStateChange(obj);
540
+ }
541
+ },
542
+ onSubmit: (obj) => {
543
+ const plugin = wrappedPlugin();
544
+ if (plugin && plugin.onSubmit) {
545
+ plugin.onSubmit(obj);
546
+ }
547
+ },
548
+ onReset: (obj) => {
549
+ const plugin = wrappedPlugin();
550
+ if (plugin && plugin.onReset) {
551
+ plugin.onReset(obj);
552
+ }
553
+ },
554
+ getSources: (obj) => {
555
+ const plugin = wrappedPlugin();
556
+ if (plugin && plugin.getSources) {
557
+ return plugin.getSources(obj);
558
+ } else {
559
+ return Promise.resolve([]);
560
+ }
561
+ },
562
+ data: (obj) => {
563
+ const plugin = wrappedPlugin();
564
+ if (plugin && plugin.data) {
565
+ plugin.data(obj);
566
+ }
567
+ },
568
+ };
569
+ }
570
+
571
+ function validateItems(items) {
572
+ // Validate the first item
573
+ if (items.length > 0) {
574
+ const item = items[0];
575
+ const missingFields = [];
576
+ if (item.href == undefined) {
577
+ missingFields.push("href");
578
+ }
579
+ if (!item.title == undefined) {
580
+ missingFields.push("title");
581
+ }
582
+ if (!item.text == undefined) {
583
+ missingFields.push("text");
584
+ }
585
+
586
+ if (missingFields.length === 1) {
587
+ throw {
588
+ name: `Error: Search index is missing the <code>${missingFields[0]}</code> field.`,
589
+ message: `The items being returned for this search do not include all the required fields. Please ensure that your index items include the <code>${missingFields[0]}</code> field or use <code>index-fields</code> in your <code>_quarto.yml</code> file to specify the field names.`,
590
+ };
591
+ } else if (missingFields.length > 1) {
592
+ const missingFieldList = missingFields
593
+ .map((field) => {
594
+ return `<code>${field}</code>`;
595
+ })
596
+ .join(", ");
597
+
598
+ throw {
599
+ name: `Error: Search index is missing the following fields: ${missingFieldList}.`,
600
+ message: `The items being returned for this search do not include all the required fields. Please ensure that your index items includes the following fields: ${missingFieldList}, or use <code>index-fields</code> in your <code>_quarto.yml</code> file to specify the field names.`,
601
+ };
602
+ }
603
+ }
604
+ }
605
+
606
+ let lastQuery = null;
607
+ function showCopyLink(query, options) {
608
+ const language = options.language;
609
+ lastQuery = query;
610
+ // Insert share icon
611
+ const inputSuffixEl = window.document.body.querySelector(
612
+ ".aa-Form .aa-InputWrapperSuffix"
613
+ );
614
+
615
+ if (inputSuffixEl) {
616
+ let copyButtonEl = window.document.body.querySelector(
617
+ ".aa-Form .aa-InputWrapperSuffix .aa-CopyButton"
618
+ );
619
+
620
+ if (copyButtonEl === null) {
621
+ copyButtonEl = window.document.createElement("button");
622
+ copyButtonEl.setAttribute("class", "aa-CopyButton");
623
+ copyButtonEl.setAttribute("type", "button");
624
+ copyButtonEl.setAttribute("title", language["search-copy-link-title"]);
625
+ copyButtonEl.onmousedown = (e) => {
626
+ e.preventDefault();
627
+ e.stopPropagation();
628
+ };
629
+
630
+ const linkIcon = "bi-clipboard";
631
+ const checkIcon = "bi-check2";
632
+
633
+ const shareIconEl = window.document.createElement("i");
634
+ shareIconEl.setAttribute("class", `bi ${linkIcon}`);
635
+ copyButtonEl.appendChild(shareIconEl);
636
+ inputSuffixEl.prepend(copyButtonEl);
637
+
638
+ const clipboard = new window.ClipboardJS(".aa-CopyButton", {
639
+ text: function (_trigger) {
640
+ const copyUrl = new URL(window.location);
641
+ copyUrl.searchParams.set(kQueryArg, lastQuery);
642
+ copyUrl.searchParams.set(kResultsArg, "1");
643
+ return copyUrl.toString();
644
+ },
645
+ });
646
+ clipboard.on("success", function (e) {
647
+ // Focus the input
648
+
649
+ // button target
650
+ const button = e.trigger;
651
+ const icon = button.querySelector("i.bi");
652
+
653
+ // flash "checked"
654
+ icon.classList.add(checkIcon);
655
+ icon.classList.remove(linkIcon);
656
+ setTimeout(function () {
657
+ icon.classList.remove(checkIcon);
658
+ icon.classList.add(linkIcon);
659
+ }, 1000);
660
+ });
661
+ }
662
+
663
+ // If there is a query, show the link icon
664
+ if (copyButtonEl) {
665
+ if (lastQuery && options["copy-button"]) {
666
+ copyButtonEl.style.display = "flex";
667
+ } else {
668
+ copyButtonEl.style.display = "none";
669
+ }
670
+ }
671
+ }
672
+ }
673
+
674
+ /* Search Index Handling */
675
+ // create the index
676
+ var fuseIndex = undefined;
677
+ var shownWarning = false;
678
+ async function readSearchData() {
679
+ // Initialize the search index on demand
680
+ if (fuseIndex === undefined) {
681
+ if (window.location.protocol === "file:" && !shownWarning) {
682
+ window.alert(
683
+ "Search requires JavaScript features disabled when running in file://... URLs. In order to use search, please run this document in a web server."
684
+ );
685
+ shownWarning = true;
686
+ return;
687
+ }
688
+ // create fuse index
689
+ const options = {
690
+ keys: [
691
+ { name: "title", weight: 20 },
692
+ { name: "section", weight: 20 },
693
+ { name: "text", weight: 10 },
694
+ ],
695
+ ignoreLocation: true,
696
+ threshold: 0.1,
697
+ };
698
+ const fuse = new window.Fuse([], options);
699
+
700
+ // fetch the main search.json
701
+ const response = await fetch(offsetURL("search.json"));
702
+ if (response.status == 200) {
703
+ return response.json().then(function (searchDocs) {
704
+ searchDocs.forEach(function (searchDoc) {
705
+ fuse.add(searchDoc);
706
+ });
707
+ fuseIndex = fuse;
708
+ return fuseIndex;
709
+ });
710
+ } else {
711
+ return Promise.reject(
712
+ new Error(
713
+ "Unexpected status from search index request: " + response.status
714
+ )
715
+ );
716
+ }
717
+ }
718
+
719
+ return fuseIndex;
720
+ }
721
+
722
+ function inputElement() {
723
+ return window.document.body.querySelector(".aa-Form .aa-Input");
724
+ }
725
+
726
+ function focusSearchInput() {
727
+ setTimeout(() => {
728
+ const inputEl = inputElement();
729
+ if (inputEl) {
730
+ inputEl.focus();
731
+ }
732
+ }, 50);
733
+ }
734
+
735
+ /* Panels */
736
+ const kItemTypeDoc = "document";
737
+ const kItemTypeMore = "document-more";
738
+ const kItemTypeItem = "document-item";
739
+ const kItemTypeError = "error";
740
+
741
+ function renderItem(
742
+ item,
743
+ createElement,
744
+ state,
745
+ setActiveItemId,
746
+ setContext,
747
+ refresh,
748
+ quartoSearchOptions
749
+ ) {
750
+ switch (item.type) {
751
+ case kItemTypeDoc:
752
+ return createDocumentCard(
753
+ createElement,
754
+ "file-richtext",
755
+ item.title,
756
+ item.section,
757
+ item.text,
758
+ item.href,
759
+ item.crumbs,
760
+ quartoSearchOptions
761
+ );
762
+ case kItemTypeMore:
763
+ return createMoreCard(
764
+ createElement,
765
+ item,
766
+ state,
767
+ setActiveItemId,
768
+ setContext,
769
+ refresh
770
+ );
771
+ case kItemTypeItem:
772
+ return createSectionCard(
773
+ createElement,
774
+ item.section,
775
+ item.text,
776
+ item.href
777
+ );
778
+ case kItemTypeError:
779
+ return createErrorCard(createElement, item.title, item.text);
780
+ default:
781
+ return undefined;
782
+ }
783
+ }
784
+
785
+ function createDocumentCard(
786
+ createElement,
787
+ icon,
788
+ title,
789
+ section,
790
+ text,
791
+ href,
792
+ crumbs,
793
+ quartoSearchOptions
794
+ ) {
795
+ const iconEl = createElement("i", {
796
+ class: `bi bi-${icon} search-result-icon`,
797
+ });
798
+ const titleEl = createElement("p", { class: "search-result-title" }, title);
799
+ const titleContents = [iconEl, titleEl];
800
+ const showParent = quartoSearchOptions["show-item-context"];
801
+ if (crumbs && showParent) {
802
+ let crumbsOut = undefined;
803
+ const crumbClz = ["search-result-crumbs"];
804
+ if (showParent === "root") {
805
+ crumbsOut = crumbs.length > 1 ? crumbs[0] : undefined;
806
+ } else if (showParent === "parent") {
807
+ crumbsOut = crumbs.length > 1 ? crumbs[crumbs.length - 2] : undefined;
808
+ } else {
809
+ crumbsOut = crumbs.length > 1 ? crumbs.join(" > ") : undefined;
810
+ crumbClz.push("search-result-crumbs-wrap");
811
+ }
812
+
813
+ const crumbEl = createElement(
814
+ "p",
815
+ { class: crumbClz.join(" ") },
816
+ crumbsOut
817
+ );
818
+ titleContents.push(crumbEl);
819
+ }
820
+
821
+ const titleContainerEl = createElement(
822
+ "div",
823
+ { class: "search-result-title-container" },
824
+ titleContents
825
+ );
826
+
827
+ const textEls = [];
828
+ if (section) {
829
+ const sectionEl = createElement(
830
+ "p",
831
+ { class: "search-result-section" },
832
+ section
833
+ );
834
+ textEls.push(sectionEl);
835
+ }
836
+ const descEl = createElement("p", {
837
+ class: "search-result-text",
838
+ dangerouslySetInnerHTML: {
839
+ __html: text,
840
+ },
841
+ });
842
+ textEls.push(descEl);
843
+
844
+ const textContainerEl = createElement(
845
+ "div",
846
+ { class: "search-result-text-container" },
847
+ textEls
848
+ );
849
+
850
+ const containerEl = createElement(
851
+ "div",
852
+ {
853
+ class: "search-result-container",
854
+ },
855
+ [titleContainerEl, textContainerEl]
856
+ );
857
+
858
+ const linkEl = createElement(
859
+ "a",
860
+ {
861
+ href: offsetURL(href),
862
+ class: "search-result-link",
863
+ },
864
+ containerEl
865
+ );
866
+
867
+ const classes = ["search-result-doc", "search-item"];
868
+ if (!section) {
869
+ classes.push("document-selectable");
870
+ }
871
+
872
+ return createElement(
873
+ "div",
874
+ {
875
+ class: classes.join(" "),
876
+ },
877
+ linkEl
878
+ );
879
+ }
880
+
881
+ function createMoreCard(
882
+ createElement,
883
+ item,
884
+ state,
885
+ setActiveItemId,
886
+ setContext,
887
+ refresh
888
+ ) {
889
+ const moreCardEl = createElement(
890
+ "div",
891
+ {
892
+ class: "search-result-more search-item",
893
+ onClick: (e) => {
894
+ // Handle expanding the sections by adding the expanded
895
+ // section to the list of expanded sections
896
+ toggleExpanded(item, state, setContext, setActiveItemId, refresh);
897
+ e.stopPropagation();
898
+ },
899
+ },
900
+ item.title
901
+ );
902
+
903
+ return moreCardEl;
904
+ }
905
+
906
+ function toggleExpanded(item, state, setContext, setActiveItemId, refresh) {
907
+ const expanded = state.context.expanded || [];
908
+ if (expanded.includes(item.target)) {
909
+ setContext({
910
+ expanded: expanded.filter((target) => target !== item.target),
911
+ });
912
+ } else {
913
+ setContext({ expanded: [...expanded, item.target] });
914
+ }
915
+
916
+ refresh();
917
+ setActiveItemId(item.__autocomplete_id);
918
+ }
919
+
920
+ function createSectionCard(createElement, section, text, href) {
921
+ const sectionEl = createSection(createElement, section, text, href);
922
+ return createElement(
923
+ "div",
924
+ {
925
+ class: "search-result-doc-section search-item",
926
+ },
927
+ sectionEl
928
+ );
929
+ }
930
+
931
+ function createSection(createElement, title, text, href) {
932
+ const descEl = createElement("p", {
933
+ class: "search-result-text",
934
+ dangerouslySetInnerHTML: {
935
+ __html: text,
936
+ },
937
+ });
938
+
939
+ const titleEl = createElement("p", { class: "search-result-section" }, title);
940
+ const linkEl = createElement(
941
+ "a",
942
+ {
943
+ href: offsetURL(href),
944
+ class: "search-result-link",
945
+ },
946
+ [titleEl, descEl]
947
+ );
948
+ return linkEl;
949
+ }
950
+
951
+ function createErrorCard(createElement, title, text) {
952
+ const descEl = createElement("p", {
953
+ class: "search-error-text",
954
+ dangerouslySetInnerHTML: {
955
+ __html: text,
956
+ },
957
+ });
958
+
959
+ const titleEl = createElement("p", {
960
+ class: "search-error-title",
961
+ dangerouslySetInnerHTML: {
962
+ __html: `<i class="bi bi-exclamation-circle search-error-icon"></i> ${title}`,
963
+ },
964
+ });
965
+ const errorEl = createElement("div", { class: "search-error" }, [
966
+ titleEl,
967
+ descEl,
968
+ ]);
969
+ return errorEl;
970
+ }
971
+
972
+ function positionPanel(pos) {
973
+ const panelEl = window.document.querySelector(
974
+ "#quarto-search-results .aa-Panel"
975
+ );
976
+ const inputEl = window.document.querySelector(
977
+ "#quarto-search .aa-Autocomplete"
978
+ );
979
+
980
+ if (panelEl && inputEl) {
981
+ panelEl.style.top = `${Math.round(panelEl.offsetTop)}px`;
982
+ if (pos === "start") {
983
+ panelEl.style.left = `${Math.round(inputEl.left)}px`;
984
+ } else {
985
+ panelEl.style.right = `${Math.round(inputEl.offsetRight)}px`;
986
+ }
987
+ }
988
+ }
989
+
990
+ /* Highlighting */
991
+ // highlighting functions
992
+ function highlightMatch(query, text) {
993
+ if (text) {
994
+ const start = text.toLowerCase().indexOf(query.toLowerCase());
995
+ if (start !== -1) {
996
+ const startMark = "<mark class='search-match'>";
997
+ const endMark = "</mark>";
998
+
999
+ const end = start + query.length;
1000
+ text =
1001
+ text.slice(0, start) +
1002
+ startMark +
1003
+ text.slice(start, end) +
1004
+ endMark +
1005
+ text.slice(end);
1006
+ const startInfo = clipStart(text, start);
1007
+ const endInfo = clipEnd(
1008
+ text,
1009
+ startInfo.position + startMark.length + endMark.length
1010
+ );
1011
+ text =
1012
+ startInfo.prefix +
1013
+ text.slice(startInfo.position, endInfo.position) +
1014
+ endInfo.suffix;
1015
+
1016
+ return text;
1017
+ } else {
1018
+ return text;
1019
+ }
1020
+ } else {
1021
+ return text;
1022
+ }
1023
+ }
1024
+
1025
+ function clipStart(text, pos) {
1026
+ const clipStart = pos - 50;
1027
+ if (clipStart < 0) {
1028
+ // This will just return the start of the string
1029
+ return {
1030
+ position: 0,
1031
+ prefix: "",
1032
+ };
1033
+ } else {
1034
+ // We're clipping before the start of the string, walk backwards to the first space.
1035
+ const spacePos = findSpace(text, pos, -1);
1036
+ return {
1037
+ position: spacePos.position,
1038
+ prefix: "",
1039
+ };
1040
+ }
1041
+ }
1042
+
1043
+ function clipEnd(text, pos) {
1044
+ const clipEnd = pos + 200;
1045
+ if (clipEnd > text.length) {
1046
+ return {
1047
+ position: text.length,
1048
+ suffix: "",
1049
+ };
1050
+ } else {
1051
+ const spacePos = findSpace(text, clipEnd, 1);
1052
+ return {
1053
+ position: spacePos.position,
1054
+ suffix: spacePos.clipped ? "…" : "",
1055
+ };
1056
+ }
1057
+ }
1058
+
1059
+ function findSpace(text, start, step) {
1060
+ let stepPos = start;
1061
+ while (stepPos > -1 && stepPos < text.length) {
1062
+ const char = text[stepPos];
1063
+ if (char === " " || char === "," || char === ":") {
1064
+ return {
1065
+ position: step === 1 ? stepPos : stepPos - step,
1066
+ clipped: stepPos > 1 && stepPos < text.length,
1067
+ };
1068
+ }
1069
+ stepPos = stepPos + step;
1070
+ }
1071
+
1072
+ return {
1073
+ position: stepPos - step,
1074
+ clipped: false,
1075
+ };
1076
+ }
1077
+
1078
+ // removes highlighting as implemented by the mark tag
1079
+ function clearHighlight(searchterm, el) {
1080
+ const childNodes = el.childNodes;
1081
+ for (let i = childNodes.length - 1; i >= 0; i--) {
1082
+ const node = childNodes[i];
1083
+ if (node.nodeType === Node.ELEMENT_NODE) {
1084
+ if (
1085
+ node.tagName === "MARK" &&
1086
+ node.innerText.toLowerCase() === searchterm.toLowerCase()
1087
+ ) {
1088
+ el.replaceChild(document.createTextNode(node.innerText), node);
1089
+ } else {
1090
+ clearHighlight(searchterm, node);
1091
+ }
1092
+ }
1093
+ }
1094
+ }
1095
+
1096
+ function escapeRegExp(string) {
1097
+ return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
1098
+ }
1099
+
1100
+ // highlight matches
1101
+ function highlight(term, el) {
1102
+ const termRegex = new RegExp(term, "ig");
1103
+ const childNodes = el.childNodes;
1104
+
1105
+ // walk back to front avoid mutating elements in front of us
1106
+ for (let i = childNodes.length - 1; i >= 0; i--) {
1107
+ const node = childNodes[i];
1108
+
1109
+ if (node.nodeType === Node.TEXT_NODE) {
1110
+ // Search text nodes for text to highlight
1111
+ const text = node.nodeValue;
1112
+
1113
+ let startIndex = 0;
1114
+ let matchIndex = text.search(termRegex);
1115
+ if (matchIndex > -1) {
1116
+ const markFragment = document.createDocumentFragment();
1117
+ while (matchIndex > -1) {
1118
+ const prefix = text.slice(startIndex, matchIndex);
1119
+ markFragment.appendChild(document.createTextNode(prefix));
1120
+
1121
+ const mark = document.createElement("mark");
1122
+ mark.appendChild(
1123
+ document.createTextNode(
1124
+ text.slice(matchIndex, matchIndex + term.length)
1125
+ )
1126
+ );
1127
+ markFragment.appendChild(mark);
1128
+
1129
+ startIndex = matchIndex + term.length;
1130
+ matchIndex = text.slice(startIndex).search(new RegExp(term, "ig"));
1131
+ if (matchIndex > -1) {
1132
+ matchIndex = startIndex + matchIndex;
1133
+ }
1134
+ }
1135
+ if (startIndex < text.length) {
1136
+ markFragment.appendChild(
1137
+ document.createTextNode(text.slice(startIndex, text.length))
1138
+ );
1139
+ }
1140
+
1141
+ el.replaceChild(markFragment, node);
1142
+ }
1143
+ } else if (node.nodeType === Node.ELEMENT_NODE) {
1144
+ // recurse through elements
1145
+ highlight(term, node);
1146
+ }
1147
+ }
1148
+ }
1149
+
1150
+ /* Link Handling */
1151
+ // get the offset from this page for a given site root relative url
1152
+ function offsetURL(url) {
1153
+ var offset = getMeta("quarto:offset");
1154
+ return offset ? offset + url : url;
1155
+ }
1156
+
1157
+ // read a meta tag value
1158
+ function getMeta(metaName) {
1159
+ var metas = window.document.getElementsByTagName("meta");
1160
+ for (let i = 0; i < metas.length; i++) {
1161
+ if (metas[i].getAttribute("name") === metaName) {
1162
+ return metas[i].getAttribute("content");
1163
+ }
1164
+ }
1165
+ return "";
1166
+ }
1167
+
1168
+ function algoliaSearch(query, limit, algoliaOptions) {
1169
+ const { getAlgoliaResults } = window["@algolia/autocomplete-preset-algolia"];
1170
+
1171
+ const applicationId = algoliaOptions["application-id"];
1172
+ const searchOnlyApiKey = algoliaOptions["search-only-api-key"];
1173
+ const indexName = algoliaOptions["index-name"];
1174
+ const indexFields = algoliaOptions["index-fields"];
1175
+ const searchClient = window.algoliasearch(applicationId, searchOnlyApiKey);
1176
+ const searchParams = algoliaOptions["params"];
1177
+ const searchAnalytics = !!algoliaOptions["analytics-events"];
1178
+
1179
+ return getAlgoliaResults({
1180
+ searchClient,
1181
+ queries: [
1182
+ {
1183
+ indexName: indexName,
1184
+ query,
1185
+ params: {
1186
+ hitsPerPage: limit,
1187
+ clickAnalytics: searchAnalytics,
1188
+ ...searchParams,
1189
+ },
1190
+ },
1191
+ ],
1192
+ transformResponse: (response) => {
1193
+ if (!indexFields) {
1194
+ return response.hits.map((hit) => {
1195
+ return hit.map((item) => {
1196
+ return {
1197
+ ...item,
1198
+ text: highlightMatch(query, item.text),
1199
+ };
1200
+ });
1201
+ });
1202
+ } else {
1203
+ const remappedHits = response.hits.map((hit) => {
1204
+ return hit.map((item) => {
1205
+ const newItem = { ...item };
1206
+ ["href", "section", "title", "text", "crumbs"].forEach(
1207
+ (keyName) => {
1208
+ const mappedName = indexFields[keyName];
1209
+ if (
1210
+ mappedName &&
1211
+ item[mappedName] !== undefined &&
1212
+ mappedName !== keyName
1213
+ ) {
1214
+ newItem[keyName] = item[mappedName];
1215
+ delete newItem[mappedName];
1216
+ }
1217
+ }
1218
+ );
1219
+ newItem.text = highlightMatch(query, newItem.text);
1220
+ return newItem;
1221
+ });
1222
+ });
1223
+ return remappedHits;
1224
+ }
1225
+ },
1226
+ });
1227
+ }
1228
+
1229
+ function fuseSearch(query, fuse, fuseOptions) {
1230
+ return fuse.search(query, fuseOptions).map((result) => {
1231
+ const addParam = (url, name, value) => {
1232
+ const anchorParts = url.split("#");
1233
+ const baseUrl = anchorParts[0];
1234
+ const sep = baseUrl.search("\\?") > 0 ? "&" : "?";
1235
+ anchorParts[0] = baseUrl + sep + name + "=" + value;
1236
+ return anchorParts.join("#");
1237
+ };
1238
+
1239
+ return {
1240
+ title: result.item.title,
1241
+ section: result.item.section,
1242
+ href: addParam(result.item.href, kQueryArg, query),
1243
+ text: highlightMatch(query, result.item.text),
1244
+ crumbs: result.item.crumbs,
1245
+ };
1246
+ });
1247
+ }
src/_site/styles.css ADDED
@@ -0,0 +1 @@
 
 
1
+ /* css styles */
src/about.qmd ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: "About"
3
+ image: profile.jpg
4
+ about:
5
+ template: jolla
6
+ links:
7
+ - icon: twitter
8
+ text: Twitter
9
+ href: https://twitter.com
10
+ - icon: linkedin
11
+ text: LinkedIn
12
+ href: https://linkedin.com
13
+ - icon: github
14
+ text: Github
15
+ href: https://github.com
16
+
17
+ ---
18
+
19
+ About this blog
src/index.qmd ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: "Src"
3
+ listing:
4
+ contents: posts
5
+ sort: "date desc"
6
+ type: default
7
+ categories: true
8
+ sort-ui: false
9
+ filter-ui: false
10
+ page-layout: full
11
+ title-block-banner: true
12
+ ---
13
+
14
+
src/posts/_metadata.yml ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ # options specified here will apply to all posts in this folder
2
+
3
+ # freeze computational output
4
+ # (see https://quarto.org/docs/projects/code-execution.html#freeze)
5
+ freeze: true
6
+
7
+ # Enable banner style title blocks
8
+ title-block-banner: true
src/posts/post-with-code/image.jpg ADDED
src/posts/post-with-code/index.qmd ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: "Post With Code"
3
+ author: "Harlow Malloc"
4
+ date: "2024-02-15"
5
+ categories: [news, code, analysis]
6
+ image: "image.jpg"
7
+ ---
8
+
9
+ This is a post with executable code.
src/posts/welcome/index.qmd ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: "Welcome To My Blog"
3
+ author: "Tristan O'Malley"
4
+ date: "2024-02-12"
5
+ categories: [news]
6
+ ---
7
+
8
+ This is the first post in a Quarto blog. Welcome!
9
+
10
+ ![](thumbnail.jpg)
11
+
12
+ Since this post doesn't specify an explicit `image`, the first image in the post will be used in the listing page of posts.
src/posts/welcome/thumbnail.jpg ADDED
src/profile.jpg ADDED
src/styles.css ADDED
@@ -0,0 +1 @@
 
 
1
+ /* css styles */
style.css DELETED
@@ -1,28 +0,0 @@
1
- body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
4
- }
5
-
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
9
- }
10
-
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
- }
17
-
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
- }
25
-
26
- .card p:last-child {
27
- margin-bottom: 0;
28
- }