@nanoporetech-digital/components 5.2.1 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/cjs/{_commonjsHelpers-9f2314fc.js → _commonjsHelpers-29614748.js} +1 -17
  3. package/dist/cjs/_commonjsHelpers-29614748.js.map +1 -0
  4. package/dist/cjs/algoliasearch-lite.esm.browser-992a2eff.js +922 -0
  5. package/dist/cjs/algoliasearch-lite.esm.browser-992a2eff.js.map +1 -0
  6. package/dist/cjs/component-store-21cb4901.js +328 -0
  7. package/dist/cjs/component-store-21cb4901.js.map +1 -0
  8. package/dist/cjs/events-db0a42ee.js +39 -0
  9. package/dist/cjs/events-db0a42ee.js.map +1 -0
  10. package/dist/cjs/loader.cjs.js +1 -1
  11. package/dist/cjs/nano-alert.cjs.entry.js +9 -2
  12. package/dist/cjs/nano-alert.cjs.entry.js.map +1 -1
  13. package/dist/cjs/nano-algolia-filter.cjs.entry.js +1 -2
  14. package/dist/cjs/nano-algolia-filter.cjs.entry.js.map +1 -1
  15. package/dist/cjs/nano-algolia-input.cjs.entry.js +8 -4
  16. package/dist/cjs/nano-algolia-input.cjs.entry.js.map +1 -1
  17. package/dist/cjs/nano-algolia.cjs.entry.js +4 -4
  18. package/dist/cjs/nano-algolia.cjs.entry.js.map +1 -1
  19. package/dist/cjs/nano-components.cjs.js +1 -1
  20. package/dist/cjs/nano-datalist_3.cjs.entry.js +1 -1
  21. package/dist/cjs/nano-dialog.cjs.entry.js +23 -22
  22. package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
  23. package/dist/cjs/nano-drawer.cjs.entry.js +169 -111
  24. package/dist/cjs/nano-drawer.cjs.entry.js.map +1 -1
  25. package/dist/cjs/nano-dropdown.cjs.entry.js +16 -2
  26. package/dist/cjs/nano-dropdown.cjs.entry.js.map +1 -1
  27. package/dist/cjs/nano-global-nav.cjs.entry.js +5 -6
  28. package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
  29. package/dist/cjs/nano-global-search-results.cjs.entry.js +2 -1
  30. package/dist/cjs/nano-global-search-results.cjs.entry.js.map +1 -1
  31. package/dist/cjs/nano-slides.cjs.entry.js +1 -1
  32. package/dist/cjs/nano-sortable.cjs.entry.js +3 -15
  33. package/dist/cjs/nano-sortable.cjs.entry.js.map +1 -1
  34. package/dist/cjs/nano-sticker.cjs.entry.js +16 -9
  35. package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
  36. package/dist/cjs/nano-tab-group.cjs.entry.js +1 -2
  37. package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
  38. package/dist/cjs/{nano-table-10a40ab3.js → nano-table-e15cc6b0.js} +6 -6
  39. package/dist/cjs/nano-table-e15cc6b0.js.map +1 -0
  40. package/dist/cjs/nano-table.cjs.entry.js +1 -1
  41. package/dist/cjs/{slot-a448c1a7.js → slot-2dd6ed1d.js} +20 -15
  42. package/dist/cjs/slot-2dd6ed1d.js.map +1 -0
  43. package/dist/cjs/{table.worker-f04588c1.js → table.worker-8759e6ea.js} +2 -2
  44. package/dist/cjs/table.worker-8759e6ea.js.map +1 -0
  45. package/dist/collection/components/alert/alert.css +15 -0
  46. package/dist/collection/components/alert/alert.js +10 -2
  47. package/dist/collection/components/alert/alert.js.map +1 -1
  48. package/dist/collection/components/algolia/algolia-interface.js.map +1 -1
  49. package/dist/collection/components/algolia/algolia.js +1 -1
  50. package/dist/collection/components/algolia/algolia.js.map +1 -1
  51. package/dist/collection/components/dialog/dialog.css +1 -17
  52. package/dist/collection/components/dialog/dialog.js +31 -20
  53. package/dist/collection/components/dialog/dialog.js.map +1 -1
  54. package/dist/collection/components/drawer/drawer.css +136 -67
  55. package/dist/collection/components/drawer/drawer.js +282 -154
  56. package/dist/collection/components/drawer/drawer.js.map +1 -1
  57. package/dist/collection/components/dropdown/dropdown.css +10 -0
  58. package/dist/collection/components/dropdown/dropdown.js +15 -1
  59. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  60. package/dist/collection/components/global-nav/global-nav.js +2 -2
  61. package/dist/collection/components/global-nav/global-nav.js.map +1 -1
  62. package/dist/collection/components/global-nav/style/global-nav.css +5 -1
  63. package/dist/collection/components/global-search-results/global-search-results.js +2 -1
  64. package/dist/collection/components/global-search-results/global-search-results.js.map +1 -1
  65. package/dist/collection/components/sticker/sticker.js +16 -9
  66. package/dist/collection/components/sticker/sticker.js.map +1 -1
  67. package/dist/collection/components/table/table.pin-service.js +4 -4
  68. package/dist/collection/components/table/table.pin-service.js.map +1 -1
  69. package/dist/collection/utils/events.js +17 -0
  70. package/dist/collection/utils/events.js.map +1 -1
  71. package/dist/collection/utils/slot.js +19 -14
  72. package/dist/collection/utils/slot.js.map +1 -1
  73. package/dist/collection/utils/store/get-set.js +6 -12
  74. package/dist/collection/utils/store/get-set.js.map +1 -1
  75. package/dist/components/_commonjsHelpers.js +1 -16
  76. package/dist/components/_commonjsHelpers.js.map +1 -1
  77. package/dist/components/algolia.js +2 -2
  78. package/dist/components/algolia.js.map +1 -1
  79. package/dist/components/algoliasearch-lite.esm.browser.js +920 -0
  80. package/dist/components/algoliasearch-lite.esm.browser.js.map +1 -0
  81. package/dist/components/component-store.js +68 -2001
  82. package/dist/components/component-store.js.map +1 -1
  83. package/dist/components/dropdown.js +16 -2
  84. package/dist/components/dropdown.js.map +1 -1
  85. package/dist/components/events.js +36 -0
  86. package/dist/components/events.js.map +1 -0
  87. package/dist/components/nano-alert.js +10 -2
  88. package/dist/components/nano-alert.js.map +1 -1
  89. package/dist/components/nano-algolia-input.js +6 -1
  90. package/dist/components/nano-algolia-input.js.map +1 -1
  91. package/dist/components/nano-dialog.js +21 -20
  92. package/dist/components/nano-dialog.js.map +1 -1
  93. package/dist/components/nano-drawer.js +205 -122
  94. package/dist/components/nano-drawer.js.map +1 -1
  95. package/dist/components/nano-global-nav.js +4 -4
  96. package/dist/components/nano-global-nav.js.map +1 -1
  97. package/dist/components/nano-global-search-results.js +2 -1
  98. package/dist/components/nano-global-search-results.js.map +1 -1
  99. package/dist/components/nano-sortable.js +1 -13
  100. package/dist/components/nano-sortable.js.map +1 -1
  101. package/dist/components/slot.js +19 -14
  102. package/dist/components/slot.js.map +1 -1
  103. package/dist/components/sticker.js +16 -9
  104. package/dist/components/sticker.js.map +1 -1
  105. package/dist/components/table.js +4 -4
  106. package/dist/components/table.js.map +1 -1
  107. package/dist/esm/{_commonjsHelpers-e401b2a2.js → _commonjsHelpers-04a0e019.js} +2 -17
  108. package/dist/esm/_commonjsHelpers-04a0e019.js.map +1 -0
  109. package/dist/esm/algoliasearch-lite.esm.browser-04891fdc.js +920 -0
  110. package/dist/esm/algoliasearch-lite.esm.browser-04891fdc.js.map +1 -0
  111. package/dist/esm/component-store-65d7e36a.js +326 -0
  112. package/dist/esm/component-store-65d7e36a.js.map +1 -0
  113. package/dist/esm/events-6a805b42.js +36 -0
  114. package/dist/esm/events-6a805b42.js.map +1 -0
  115. package/dist/esm/loader.js +1 -1
  116. package/dist/esm/nano-alert.entry.js +9 -2
  117. package/dist/esm/nano-alert.entry.js.map +1 -1
  118. package/dist/esm/nano-algolia-filter.entry.js +1 -2
  119. package/dist/esm/nano-algolia-filter.entry.js.map +1 -1
  120. package/dist/esm/nano-algolia-input.entry.js +7 -3
  121. package/dist/esm/nano-algolia-input.entry.js.map +1 -1
  122. package/dist/esm/nano-algolia.entry.js +4 -4
  123. package/dist/esm/nano-algolia.entry.js.map +1 -1
  124. package/dist/esm/nano-components.js +1 -1
  125. package/dist/esm/nano-datalist_3.entry.js +1 -1
  126. package/dist/esm/nano-dialog.entry.js +23 -22
  127. package/dist/esm/nano-dialog.entry.js.map +1 -1
  128. package/dist/esm/nano-drawer.entry.js +171 -113
  129. package/dist/esm/nano-drawer.entry.js.map +1 -1
  130. package/dist/esm/nano-dropdown.entry.js +16 -2
  131. package/dist/esm/nano-dropdown.entry.js.map +1 -1
  132. package/dist/esm/nano-global-nav.entry.js +5 -6
  133. package/dist/esm/nano-global-nav.entry.js.map +1 -1
  134. package/dist/esm/nano-global-search-results.entry.js +2 -1
  135. package/dist/esm/nano-global-search-results.entry.js.map +1 -1
  136. package/dist/esm/nano-slides.entry.js +1 -1
  137. package/dist/esm/nano-sortable.entry.js +1 -13
  138. package/dist/esm/nano-sortable.entry.js.map +1 -1
  139. package/dist/esm/nano-sticker.entry.js +16 -9
  140. package/dist/esm/nano-sticker.entry.js.map +1 -1
  141. package/dist/esm/nano-tab-group.entry.js +1 -2
  142. package/dist/esm/nano-tab-group.entry.js.map +1 -1
  143. package/dist/esm/{nano-table-2bbcaa8d.js → nano-table-5c5bd3f2.js} +6 -6
  144. package/dist/esm/nano-table-5c5bd3f2.js.map +1 -0
  145. package/dist/esm/nano-table.entry.js +1 -1
  146. package/dist/esm/{slot-a4f6e2af.js → slot-8126e238.js} +20 -15
  147. package/dist/esm/slot-8126e238.js.map +1 -0
  148. package/dist/esm/{table.worker-7324ad73.js → table.worker-e7f4f50c.js} +2 -2
  149. package/dist/esm/table.worker-e7f4f50c.js.map +1 -0
  150. package/dist/nano-components/nano-components.css +1 -1
  151. package/dist/nano-components/nano-components.esm.js +1 -1
  152. package/dist/nano-components/nano-components.esm.js.map +1 -1
  153. package/dist/nano-components/p-0301e8f7.entry.js +5 -0
  154. package/dist/nano-components/p-0301e8f7.entry.js.map +1 -0
  155. package/dist/nano-components/p-27422aa9.entry.js +5 -0
  156. package/dist/nano-components/{p-6920ad69.entry.js.map → p-27422aa9.entry.js.map} +1 -1
  157. package/dist/nano-components/{p-52ae36ec.js → p-2d79f5b3.js} +2 -2
  158. package/dist/nano-components/{p-0697795a.entry.js → p-31c23d6e.entry.js} +2 -2
  159. package/dist/nano-components/p-31c23d6e.entry.js.map +1 -0
  160. package/dist/nano-components/p-487de04d.entry.js.map +1 -1
  161. package/dist/nano-components/p-570d2e50.entry.js +5 -0
  162. package/dist/nano-components/p-570d2e50.entry.js.map +1 -0
  163. package/dist/nano-components/{p-3eb6d833.entry.js → p-5a4b3fa9.entry.js} +2 -2
  164. package/dist/nano-components/p-653ae985.js +5 -0
  165. package/dist/nano-components/p-653ae985.js.map +1 -0
  166. package/dist/nano-components/p-676a4744.entry.js +5 -0
  167. package/dist/nano-components/{p-d0eefd52.entry.js.map → p-676a4744.entry.js.map} +1 -1
  168. package/dist/nano-components/p-8fe51abf.js +5 -0
  169. package/dist/nano-components/{p-4884b65a.entry.js → p-90cd4f56.entry.js} +2 -2
  170. package/dist/nano-components/p-90cd4f56.entry.js.map +1 -0
  171. package/dist/nano-components/p-9ba81ed2.js +5 -0
  172. package/dist/nano-components/p-9ba81ed2.js.map +1 -0
  173. package/dist/nano-components/p-9bfdee71.js +5 -0
  174. package/dist/nano-components/p-9bfdee71.js.map +1 -0
  175. package/dist/nano-components/p-a8d6ca38.entry.js +5 -0
  176. package/dist/nano-components/p-a8d6ca38.entry.js.map +1 -0
  177. package/dist/nano-components/p-ace7743c.entry.js +5 -0
  178. package/dist/nano-components/p-ace7743c.entry.js.map +1 -0
  179. package/dist/nano-components/{p-39aec880.entry.js → p-bab2888b.entry.js} +2 -2
  180. package/dist/nano-components/p-bdb5b6fc.entry.js +5 -0
  181. package/dist/nano-components/p-bdb5b6fc.entry.js.map +1 -0
  182. package/dist/nano-components/p-cad86fb8.js +5 -0
  183. package/dist/nano-components/p-cad86fb8.js.map +1 -0
  184. package/dist/nano-components/p-dc565459.js +5 -0
  185. package/dist/nano-components/p-dc565459.js.map +1 -0
  186. package/dist/nano-components/p-ede12d35.entry.js +5 -0
  187. package/dist/nano-components/p-ede12d35.entry.js.map +1 -0
  188. package/dist/nano-components/p-f504b1df.entry.js +7 -0
  189. package/dist/nano-components/p-f504b1df.entry.js.map +1 -0
  190. package/dist/nano-components/{p-db370094.entry.js → p-f7a4c62b.entry.js} +2 -2
  191. package/dist/themes/london-calling.css.map +1 -1
  192. package/dist/themes/nanopore.cn.css.map +1 -1
  193. package/dist/themes/nanopore.css.map +1 -1
  194. package/dist/types/components/alert/alert.d.ts +1 -0
  195. package/dist/types/components/algolia/algolia-interface.d.ts +1 -1
  196. package/dist/types/components/algolia/algolia.d.ts +1 -1
  197. package/dist/types/components/dialog/dialog.d.ts +15 -4
  198. package/dist/types/components/drawer/drawer.d.ts +69 -50
  199. package/dist/types/components/sticker/sticker.d.ts +4 -4
  200. package/dist/types/components.d.ts +50 -28
  201. package/dist/types/types/algolia.d.ts +4 -0
  202. package/dist/types/types/scss.vars.d.ts +4 -0
  203. package/dist/types/utils/events.d.ts +7 -0
  204. package/dist/types/utils/slot.d.ts +3 -3
  205. package/docs-json.json +268 -61
  206. package/docs-vscode.json +28 -11
  207. package/hydrate/index.js +1335 -2236
  208. package/package.json +4 -4
  209. package/dist/cjs/_commonjsHelpers-9f2314fc.js.map +0 -1
  210. package/dist/cjs/algoliasearch.umd-689c1560.js +0 -15
  211. package/dist/cjs/algoliasearch.umd-689c1560.js.map +0 -1
  212. package/dist/cjs/component-store-f1dc1276.js +0 -2261
  213. package/dist/cjs/component-store-f1dc1276.js.map +0 -1
  214. package/dist/cjs/nano-table-10a40ab3.js.map +0 -1
  215. package/dist/cjs/slot-a448c1a7.js.map +0 -1
  216. package/dist/cjs/table.worker-f04588c1.js.map +0 -1
  217. package/dist/components/algoliasearch.umd.js +0 -13
  218. package/dist/components/algoliasearch.umd.js.map +0 -1
  219. package/dist/esm/_commonjsHelpers-e401b2a2.js.map +0 -1
  220. package/dist/esm/algoliasearch.umd-4f7efa84.js +0 -13
  221. package/dist/esm/algoliasearch.umd-4f7efa84.js.map +0 -1
  222. package/dist/esm/component-store-c23ebc9c.js +0 -2259
  223. package/dist/esm/component-store-c23ebc9c.js.map +0 -1
  224. package/dist/esm/nano-table-2bbcaa8d.js.map +0 -1
  225. package/dist/esm/slot-a4f6e2af.js.map +0 -1
  226. package/dist/esm/table.worker-7324ad73.js.map +0 -1
  227. package/dist/nano-components/p-0697795a.entry.js.map +0 -1
  228. package/dist/nano-components/p-17b099cc.entry.js +0 -5
  229. package/dist/nano-components/p-17b099cc.entry.js.map +0 -1
  230. package/dist/nano-components/p-1a0b5bc3.js +0 -5
  231. package/dist/nano-components/p-1a0b5bc3.js.map +0 -1
  232. package/dist/nano-components/p-4884b65a.entry.js.map +0 -1
  233. package/dist/nano-components/p-58cf5446.js +0 -5
  234. package/dist/nano-components/p-58cf5446.js.map +0 -1
  235. package/dist/nano-components/p-6920ad69.entry.js +0 -5
  236. package/dist/nano-components/p-69a3e911.js +0 -5
  237. package/dist/nano-components/p-7baa9e14.entry.js +0 -5
  238. package/dist/nano-components/p-7baa9e14.entry.js.map +0 -1
  239. package/dist/nano-components/p-9b533dc3.js +0 -5
  240. package/dist/nano-components/p-9b533dc3.js.map +0 -1
  241. package/dist/nano-components/p-a362bd23.entry.js +0 -5
  242. package/dist/nano-components/p-a362bd23.entry.js.map +0 -1
  243. package/dist/nano-components/p-b04fd7ca.entry.js +0 -5
  244. package/dist/nano-components/p-b04fd7ca.entry.js.map +0 -1
  245. package/dist/nano-components/p-b72df1aa.entry.js +0 -5
  246. package/dist/nano-components/p-b72df1aa.entry.js.map +0 -1
  247. package/dist/nano-components/p-ce5efc3f.entry.js +0 -5
  248. package/dist/nano-components/p-ce5efc3f.entry.js.map +0 -1
  249. package/dist/nano-components/p-d0eefd52.entry.js +0 -5
  250. package/dist/nano-components/p-e2b2b015.entry.js +0 -5
  251. package/dist/nano-components/p-e2b2b015.entry.js.map +0 -1
  252. package/dist/nano-components/p-ed6adde2.js +0 -7
  253. package/dist/nano-components/p-ed6adde2.js.map +0 -1
  254. package/dist/types/dom.ie.d.ts +0 -3
  255. /package/dist/nano-components/{p-39aec880.entry.js.map → p-2d79f5b3.js.map} +0 -0
  256. /package/dist/nano-components/{p-3eb6d833.entry.js.map → p-5a4b3fa9.entry.js.map} +0 -0
  257. /package/dist/nano-components/{p-52ae36ec.js.map → p-8fe51abf.js.map} +0 -0
  258. /package/dist/nano-components/{p-69a3e911.js.map → p-bab2888b.entry.js.map} +0 -0
  259. /package/dist/nano-components/{p-db370094.entry.js.map → p-f7a4c62b.entry.js.map} +0 -0
package/hydrate/index.js CHANGED
@@ -6514,7 +6514,7 @@ function scrollIntoView(element, container, direction = 'vertical', position = '
6514
6514
  }
6515
6515
  }
6516
6516
 
6517
- const alertCss = "/*!@:host*/.sc-nano-alert-h{box-sizing:border-box}/*!@*,\n*::before,\n*::after*/*.sc-nano-alert,*.sc-nano-alert::before,*.sc-nano-alert::after{box-sizing:border-box}/*!@[hidden]*/[hidden].sc-nano-alert{display:none !important}/*!@:host*/.sc-nano-alert-h{--border-radius:var(--nano-layer-border-radius, var(--nano-border-radius-medium, 4px));--border-color:var(--nano-layer-border-color, rgba(0, 0, 0, 0.1));--border-width:var(--nano-layer-border-width, 1px);--background:var(--nano-layer-bg, #fff);--tint-color:var(--nano-color-base, var(--nano-color-primary, #007495));--icon-size:2rem;--scrim-color:var(--nano-layer-overlay-dark, rgb(74 74 74 / 50%));--close-button-color:#b5aea7;display:block}/*!@:host(.nano-color)*/.nano-color.sc-nano-alert-h{--tint-color:var(--nano-color-base, var(--nano-color-primary, #007495))}/*!@.alert*/.alert.sc-nano-alert{position:relative;background-color:var(--background);border:solid var(--border-width) var(--border-color);border-block-start-width:4px;border-block-start-color:var(--tint-color);border-radius:var(--border-radius);opacity:0;transform:scale(0.9);transition:var(--nano-transition-medium, 0.5s) opacity ease, var(--nano-transition-fast, 0.3s) transform ease}/*!@.alert:focus*/.alert.sc-nano-alert:focus{outline:none}/*!@.alert:not(.alert--showing)*/.alert.sc-nano-alert:not(.alert--showing){position:absolute;inline-size:1px;block-size:1px;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);overflow:hidden;pointer-events:none;visibility:hidden}/*!@.alert--open*/.alert--open.sc-nano-alert{opacity:1;transform:none}/*!@.alert--toasty, .alert--modal*/.alert--toasty.sc-nano-alert,.alert--modal.sc-nano-alert{box-shadow:var(--nano-layer-shadow-large, 0 2px 8px rgba(0, 0, 0, 0.2));margin:var(--nano-spacing-medium, 16px)}/*!@.alert__content*/.alert__content.sc-nano-alert{display:flex;align-items:stretch}/*!@.alert__modal-wrap*/.alert__modal-wrap.sc-nano-alert{position:fixed;display:flex;align-items:center;justify-content:center;inset:0;z-index:var(--nano-layer-index-alert, 800)}/*!@.alert__message*/.alert__message.sc-nano-alert{flex:1 1 auto;padding:var(--nano-spacing-medium, 16px);overflow:hidden;line-height:1.6}/*!@.alert__close*/.alert__close.sc-nano-alert{--color:var(--close-button-color);flex:0 0 auto;display:flex;align-items:center;font-size:1.1em;padding-inline:0 var(--nano-spacing-medium, 16px);padding-block:0}/*!@.alert__footer*/.alert__footer.sc-nano-alert{padding:0 var(--nano-spacing-small, 8px) 0;display:flex;flex-direction:row;justify-content:space-around;align-items:center}/*!@.alert__footer ::slotted(*)*/.alert__footer .sc-nano-alert-s>*{flex:1;margin:0 var(--nano-spacing-small, 8px) var(--nano-spacing-medium, 16px) !important}/*!@.alert__overlay*/.alert__overlay.sc-nano-alert{position:fixed;inset:0;background-color:var(--scrim-color);opacity:0;transition:var(--nano-transition-fast, 0.3s) opacity;z-index:var(--nano-layer-index-alert, 800);-webkit-backdrop-filter:blur(var(--nano-layer-overlay-blur, 3px));backdrop-filter:blur(var(--nano-layer-overlay-blur, 3px))}/*!@.alert__overlay--open*/.alert__overlay--open.sc-nano-alert{opacity:1}/*!@.alert__icon*/.alert__icon.sc-nano-alert{flex:0 0 auto;display:flex;align-items:center;font-size:var(--icon-size)}/*!@.alert__icon ::slotted(*)*/.alert__icon .sc-nano-alert-s>*{color:var(--tint-color);-webkit-margin-start:var(--nano-spacing-medium, 16px);margin-inline-start:var(--nano-spacing-medium, 16px)}";
6517
+ const alertCss = "/*!@:host*/.sc-nano-alert-h{box-sizing:border-box}/*!@*,\n*::before,\n*::after*/*.sc-nano-alert,*.sc-nano-alert::before,*.sc-nano-alert::after{box-sizing:border-box}/*!@[hidden]*/[hidden].sc-nano-alert{display:none !important}/*!@:host*/.sc-nano-alert-h{--border-radius:var(--nano-layer-border-radius, var(--nano-border-radius-medium, 4px));--border-color:var(--nano-layer-border-color, rgba(0, 0, 0, 0.1));--border-width:var(--nano-layer-border-width, 1px);--background:var(--nano-layer-bg, #fff);--tint-color:var(--nano-color-base, var(--nano-color-primary, #007495));--icon-size:2rem;--scrim-color:var(--nano-layer-overlay-dark, rgb(74 74 74 / 50%));--close-button-color:#b5aea7;display:block}/*!@:host(.nano-color)*/.nano-color.sc-nano-alert-h{--tint-color:var(--nano-color-base, var(--nano-color-primary, #007495))}/*!@.alert*/.alert.sc-nano-alert{position:relative;background-color:var(--background);border:solid var(--border-width) var(--border-color);border-block-start-width:4px;border-block-start-color:var(--tint-color);border-radius:var(--border-radius);opacity:0;transform:scale(0.9);transition:var(--nano-transition-medium, 0.5s) opacity ease, var(--nano-transition-fast, 0.3s) transform ease}/*!@.alert:focus*/.alert.sc-nano-alert:focus{outline:none}/*!@.alert:not(.alert--showing)*/.alert.sc-nano-alert:not(.alert--showing){position:absolute;inline-size:1px;block-size:1px;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);overflow:hidden;pointer-events:none;visibility:hidden}/*!@.alert--open*/.alert--open.sc-nano-alert{opacity:1;transform:none}/*!@.alert--toasty, .alert--modal*/.alert--toasty.sc-nano-alert,.alert--modal.sc-nano-alert{box-shadow:var(--nano-layer-shadow-large, 0 2px 8px rgba(0, 0, 0, 0.2));margin:var(--nano-spacing-medium, 16px)}/*!@.alert--modal.alert--nodismiss*/.alert--modal.alert--nodismiss.sc-nano-alert{animation:cannotClose 0.25s ease-in-out 1}@keyframes cannotClose{0%{transform:scale(1)}50%{transform:scale(1.08)}100%{transform:scale(1)}}/*!@.alert__content*/.alert__content.sc-nano-alert{display:flex;align-items:stretch}/*!@.alert__modal-wrap*/.alert__modal-wrap.sc-nano-alert{position:fixed;display:flex;align-items:center;justify-content:center;inset:0;z-index:var(--nano-layer-index-alert, 800)}/*!@.alert__message*/.alert__message.sc-nano-alert{flex:1 1 auto;padding:var(--nano-spacing-medium, 16px);overflow:hidden;line-height:1.6}/*!@.alert__close*/.alert__close.sc-nano-alert{--color:var(--close-button-color);flex:0 0 auto;display:flex;align-items:center;font-size:1.1em;padding-inline:0 var(--nano-spacing-medium, 16px);padding-block:0}/*!@.alert__footer*/.alert__footer.sc-nano-alert{padding:0 var(--nano-spacing-small, 8px) 0;display:flex;flex-direction:row;justify-content:space-around;align-items:center}/*!@.alert__footer ::slotted(*)*/.alert__footer .sc-nano-alert-s>*{flex:1;margin:0 var(--nano-spacing-small, 8px) var(--nano-spacing-medium, 16px) !important}/*!@.alert__overlay*/.alert__overlay.sc-nano-alert{position:fixed;inset:0;background-color:var(--scrim-color);opacity:0;transition:var(--nano-transition-fast, 0.3s) opacity;z-index:var(--nano-layer-index-alert, 800);-webkit-backdrop-filter:blur(var(--nano-layer-overlay-blur, 3px));backdrop-filter:blur(var(--nano-layer-overlay-blur, 3px));pointer-events:all}/*!@.alert__overlay--open*/.alert__overlay--open.sc-nano-alert{opacity:1}/*!@.alert__icon*/.alert__icon.sc-nano-alert{flex:0 0 auto;display:flex;align-items:center;font-size:var(--icon-size)}/*!@.alert__icon ::slotted(*)*/.alert__icon .sc-nano-alert-s>*{color:var(--tint-color);-webkit-margin-start:var(--nano-spacing-medium, 16px);margin-inline-start:var(--nano-spacing-medium, 16px)}";
6518
6518
 
6519
6519
  let toastStackTr;
6520
6520
  let toastStackTl;
@@ -6583,12 +6583,14 @@ class Alert {
6583
6583
  'alert--toasty': this.isToast,
6584
6584
  'alert--modal': !!this.isModal,
6585
6585
  'alert--showing': this.isShowing,
6586
+ 'alert--nodismiss': this.noDismiss,
6586
6587
  }, role: !!this.isModal ? 'alertdialog' : 'alert', "aria-live": "assertive", "aria-atomic": "true", "aria-hidden": this.open ? 'false' : 'true', "aria-modal": !!this.isModal ? 'true' : undefined, "aria-label": this.label ? this.label : undefined, onMouseMove: this.handleMouseMove, tabIndex: !!this.isModal ? 0 : undefined }, hAsync("div", { class: "alert__content" }, hAsync("div", { part: "icon", class: "alert__icon" }, hAsync("slot", { name: "icon" })), hAsync("div", { part: "message", class: "alert__message" }, hAsync("slot", null)), this.closable && (hAsync("div", { class: "alert__close" }, hAsync("nano-icon-button", { class: "alert__close", iconName: "light/times", label: "close menu", onClick: this.handleCloseClick })))), hAsync("div", { class: "alert__footer" }, hAsync("slot", { name: "footer" }))));
6587
6588
  };
6588
6589
  this.isModal = false;
6589
6590
  this.isToast = false;
6590
6591
  this.isShowing = false;
6591
6592
  this.label = undefined;
6593
+ this.noDismiss = false;
6592
6594
  this.open = false;
6593
6595
  this.closable = false;
6594
6596
  this.color = undefined;
@@ -6759,7 +6761,12 @@ class Alert {
6759
6761
  alert__overlay: true,
6760
6762
  'alert__overlay--open': this.open,
6761
6763
  }, ref: (div) => (this.overlay = div) }),
6762
- hAsync("div", { class: "alert__modal-wrap" }, hAsync(this.Panel, null)),
6764
+ hAsync("div", { class: "alert__modal-wrap", onClick: (e) => {
6765
+ if (!e.target.classList.contains('alert__modal-wrap'))
6766
+ return;
6767
+ this.noDismiss = true;
6768
+ setTimeout(() => (this.noDismiss = false), 250);
6769
+ } }, hAsync(this.Panel, null)),
6763
6770
  ], !this.isModal && hAsync(this.Panel, null)));
6764
6771
  }
6765
6772
  get host() { return getElement(this); }
@@ -6782,6 +6789,7 @@ class Alert {
6782
6789
  "isToast": [32],
6783
6790
  "isShowing": [32],
6784
6791
  "label": [32],
6792
+ "noDismiss": [32],
6785
6793
  "show": [64],
6786
6794
  "hide": [64],
6787
6795
  "toast": [64],
@@ -6793,45 +6801,919 @@ class Alert {
6793
6801
  }; }
6794
6802
  }
6795
6803
 
6796
- var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
6797
-
6798
- function getDefaultExportFromCjs (x) {
6799
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
6800
- }
6801
-
6802
- function createCommonjsModule(fn, basedir, module) {
6803
- return module = {
6804
- path: basedir,
6805
- exports: {},
6806
- require: function (path, base) {
6807
- return commonjsRequire();
6808
- }
6809
- }, fn(module, module.exports), module.exports;
6810
- }
6811
-
6812
- function getAugmentedNamespace(n) {
6813
- if (n.__esModule) return n;
6814
- var a = Object.defineProperty({}, '__esModule', {value: true});
6815
- Object.keys(n).forEach(function (k) {
6816
- var d = Object.getOwnPropertyDescriptor(n, k);
6817
- Object.defineProperty(a, k, d.get ? d : {
6818
- enumerable: true,
6819
- get: function () {
6820
- return n[k];
6821
- }
6822
- });
6823
- });
6824
- return a;
6825
- }
6826
-
6827
- function commonjsRequire () {
6828
- throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
6829
- }
6830
-
6831
- var algoliasearch_umd = createCommonjsModule(function (module, exports) {
6832
- /*! algoliasearch.umd.js | 4.14.3 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
6833
- !function(t,e){module.exports=e();}(commonjsGlobal,(function(){function t(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n);}return r}function r(r){for(var n=1;n<arguments.length;n++){var a=null!=arguments[n]?arguments[n]:{};n%2?e(Object(a),!0).forEach((function(e){t(r,e,a[e]);})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(a)):e(Object(a)).forEach((function(t){Object.defineProperty(r,t,Object.getOwnPropertyDescriptor(a,t));}));}return r}function n(t,e){if(null==t)return {};var r,n,a=function(t,e){if(null==t)return {};var r,n,a={},o=Object.keys(t);for(n=0;n<o.length;n++)r=o[n],e.indexOf(r)>=0||(a[r]=t[r]);return a}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n<o.length;n++)r=o[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(a[r]=t[r]);}return a}function a(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if(!(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t)))return;var r=[],n=!0,a=!1,o=void 0;try{for(var i,u=t[Symbol.iterator]();!(n=(i=u.next()).done)&&(r.push(i.value),!e||r.length!==e);n=!0);}catch(t){a=!0,o=t;}finally{try{n||null==u.return||u.return();}finally{if(a)throw o}}return r}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function o(t){return function(t){if(Array.isArray(t)){for(var e=0,r=new Array(t.length);e<t.length;e++)r[e]=t[e];return r}}(t)||function(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function i(t){var e,r="algoliasearch-client-js-".concat(t.key),n=function(){return void 0===e&&(e=t.localStorage||window.localStorage),e},o=function(){return JSON.parse(n().getItem(r)||"{}")};return {get:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){var r=JSON.stringify(t),n=o()[r];return Promise.all([n||e(),void 0!==n])})).then((function(t){var e=a(t,2),n=e[0],o=e[1];return Promise.all([n,o||r.miss(n)])})).then((function(t){return a(t,1)[0]}))},set:function(t,e){return Promise.resolve().then((function(){var a=o();return a[JSON.stringify(t)]=e,n().setItem(r,JSON.stringify(a)),e}))},delete:function(t){return Promise.resolve().then((function(){var e=o();delete e[JSON.stringify(t)],n().setItem(r,JSON.stringify(e));}))},clear:function(){return Promise.resolve().then((function(){n().removeItem(r);}))}}}function u(t){var e=o(t.caches),r=e.shift();return void 0===r?{get:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},n=e();return n.then((function(t){return Promise.all([t,r.miss(t)])})).then((function(t){return a(t,1)[0]}))},set:function(t,e){return Promise.resolve(e)},delete:function(t){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(t,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(t,n,a).catch((function(){return u({caches:e}).get(t,n,a)}))},set:function(t,n){return r.set(t,n).catch((function(){return u({caches:e}).set(t,n)}))},delete:function(t){return r.delete(t).catch((function(){return u({caches:e}).delete(t)}))},clear:function(){return r.clear().catch((function(){return u({caches:e}).clear()}))}}}function s(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},e={};return {get:function(r,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},o=JSON.stringify(r);if(o in e)return Promise.resolve(t.serializable?JSON.parse(e[o]):e[o]);var i=n(),u=a&&a.miss||function(){return Promise.resolve()};return i.then((function(t){return u(t)})).then((function(){return i}))},set:function(r,n){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(t){return delete e[JSON.stringify(t)],Promise.resolve()},clear:function(){return e={},Promise.resolve()}}}function c(t,e,r){var n={"x-algolia-api-key":r,"x-algolia-application-id":e};return {headers:function(){return t===m.WithinHeaders?n:{}},queryParameters:function(){return t===m.WithinQueryParameters?n:{}}}}function f(t){var e=0;return t((function r(){return e++,new Promise((function(n){setTimeout((function(){n(t(r));}),Math.min(100*e,1e3));}))}))}function d(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(t,e){return Promise.resolve()};return Object.assign(t,{wait:function(r){return d(t.then((function(t){return Promise.all([e(t,r),t])})).then((function(t){return t[1]})))}})}function l(t){for(var e=t.length-1;e>0;e--){var r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n;}return t}function p(t,e){return e?(Object.keys(e).forEach((function(r){t[r]=e[r](t);})),t):t}function h(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n<e;n++)r[n-1]=arguments[n];var a=0;return t.replace(/%s/g,(function(){return encodeURIComponent(r[a++])}))}var m={WithinQueryParameters:0,WithinHeaders:1};function y(t,e){var r=t||{},n=r.data||{};return Object.keys(r).forEach((function(t){-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(t)&&(n[t]=r[t]);})),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||e,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var g={Read:1,Write:2,Any:3},v=1,b=2,P=3;function w(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:v;return r(r({},t),{},{status:e,lastUpdate:Date.now()})}function O(t){return "string"==typeof t?{protocol:"https",url:t,accept:g.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||g.Any}}var I="DELETE",x="GET",j="POST",D="PUT";function q(t,e){return Promise.all(e.map((function(e){return t.get(e,(function(){return Promise.resolve(w(e))}))}))).then((function(t){var r=t.filter((function(t){return function(t){return t.status===v||Date.now()-t.lastUpdate>12e4}(t)})),n=t.filter((function(t){return function(t){return t.status===P&&Date.now()-t.lastUpdate<=12e4}(t)})),a=[].concat(o(r),o(n));return {getTimeout:function(t,e){return (0===n.length&&0===t?1:n.length+3+t)*e},statelessHosts:a.length>0?a.map((function(t){return O(t)})):e}}))}function S(t,e,n,a){var i=[],u=function(t,e){if(t.method===x||void 0===t.data&&void 0===e.data)return;var n=Array.isArray(t.data)?t.data:r(r({},t.data),e.data);return JSON.stringify(n)}(n,a),s=function(t,e){var n=r(r({},t.headers),e.headers),a={};return Object.keys(n).forEach((function(t){var e=n[t];a[t.toLowerCase()]=e;})),a}(t,a),c=n.method,f=n.method!==x?{}:r(r({},n.data),a.data),d=r(r(r({"x-algolia-agent":t.userAgent.value},t.queryParameters),f),a.queryParameters),l=0,p=function e(r,o){var f=r.pop();if(void 0===f)throw {name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:R(i)};var p={data:u,headers:s,method:c,url:N(f,n.path,d),connectTimeout:o(l,t.timeouts.connect),responseTimeout:o(l,a.timeout)},h=function(t){var e={request:p,response:t,host:f,triesLeft:r.length};return i.push(e),e},m={onSuccess:function(t){return function(t){try{return JSON.parse(t.content)}catch(e){throw function(t,e){return {name:"DeserializationError",message:t,response:e}}(e.message,t)}}(t)},onRetry:function(n){var a=h(n);return n.isTimedOut&&l++,Promise.all([t.logger.info("Retryable failure",A(a)),t.hostsCache.set(f,w(f,n.isTimedOut?P:b))]).then((function(){return e(r,o)}))},onFail:function(t){throw h(t),function(t,e){var r=t.content,n=t.status,a=r;try{a=JSON.parse(r).message;}catch(t){}return function(t,e,r){return {name:"ApiError",message:t,status:e,transporterStackTrace:r}}(a,n,e)}(t,R(i))}};return t.requester.send(p).then((function(t){return function(t,e){return function(t){var e=t.status;return t.isTimedOut||function(t){var e=t.isTimedOut,r=t.status;return !e&&0==~~r}(t)||2!=~~(e/100)&&4!=~~(e/100)}(t)?e.onRetry(t):2==~~(t.status/100)?e.onSuccess(t):e.onFail(t)}(t,m)}))};return q(t.hostsCache,e).then((function(t){return p(o(t.statelessHosts).reverse(),t.getTimeout)}))}function k(t){var e=t.hostsCache,r=t.logger,n=t.requester,o=t.requestsCache,i=t.responsesCache,u=t.timeouts,s=t.userAgent,c=t.hosts,f=t.queryParameters,d={hostsCache:e,logger:r,requester:n,requestsCache:o,responsesCache:i,timeouts:u,userAgent:s,headers:t.headers,queryParameters:f,hosts:c.map((function(t){return O(t)})),read:function(t,e){var r=y(e,d.timeouts.read),n=function(){return S(d,d.hosts.filter((function(t){return 0!=(t.accept&g.Read)})),t,r)};if(!0!==(void 0!==r.cacheable?r.cacheable:t.cacheable))return n();var o={request:t,mappedRequestOptions:r,transporter:{queryParameters:d.queryParameters,headers:d.headers}};return d.responsesCache.get(o,(function(){return d.requestsCache.get(o,(function(){return d.requestsCache.set(o,n()).then((function(t){return Promise.all([d.requestsCache.delete(o),t])}),(function(t){return Promise.all([d.requestsCache.delete(o),Promise.reject(t)])})).then((function(t){var e=a(t,2);return e[1]}))}))}),{miss:function(t){return d.responsesCache.set(o,t)}})},write:function(t,e){return S(d,d.hosts.filter((function(t){return 0!=(t.accept&g.Write)})),t,y(e,d.timeouts.write))}};return d}function T(t){var e={value:"Algolia for JavaScript (".concat(t,")"),add:function(t){var r="; ".concat(t.segment).concat(void 0!==t.version?" (".concat(t.version,")"):"");return -1===e.value.indexOf(r)&&(e.value="".concat(e.value).concat(r)),e}};return e}function N(t,e,r){var n=E(r),a="".concat(t.protocol,"://").concat(t.url,"/").concat("/"===e.charAt(0)?e.substr(1):e);return n.length&&(a+="?".concat(n)),a}function E(t){return Object.keys(t).map((function(e){return h("%s=%s",e,(r=t[e],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(t[e]):t[e]));var r;})).join("&")}function R(t){return t.map((function(t){return A(t)}))}function A(t){var e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return r(r({},t),{},{request:r(r({},t.request),{},{headers:r(r({},t.request.headers),e)})})}var C=function(t){return function(e,r){return t.transporter.write({method:j,path:"2/abtests",data:e},r)}},U=function(t){return function(e,r){return t.transporter.write({method:I,path:h("2/abtests/%s",e)},r)}},z=function(t){return function(e,r){return t.transporter.read({method:x,path:h("2/abtests/%s",e)},r)}},J=function(t){return function(e){return t.transporter.read({method:x,path:"2/abtests"},e)}},F=function(t){return function(e,r){return t.transporter.write({method:j,path:h("2/abtests/%s/stop",e)},r)}},H=function(t){return function(e){return t.transporter.read({method:x,path:"1/strategies/personalization"},e)}},M=function(t){return function(e,r){return t.transporter.write({method:j,path:"1/strategies/personalization",data:e},r)}};function K(t){return function e(r){return t.request(r).then((function(n){if(void 0!==t.batch&&t.batch(n.hits),!t.shouldStop(n))return n.cursor?e({cursor:n.cursor}):e({page:(r.page||0)+1})}))}({})}var W=function(t){return function(e,a){var o=a||{},i=o.queryParameters,u=n(o,["queryParameters"]),s=r({acl:e},void 0!==i?{queryParameters:i}:{});return d(t.transporter.write({method:j,path:"1/keys",data:s},u),(function(e,r){return f((function(n){return tt(t)(e.key,r).catch((function(t){if(404!==t.status)throw t;return n()}))}))}))}},B=function(t){return function(e,r,n){var a=y(n);return a.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:j,path:"1/clusters/mapping",data:{cluster:r}},a)}},Q=function(t){return function(e,r,n){return t.transporter.write({method:j,path:"1/clusters/mapping/batch",data:{users:e,cluster:r}},n)}},G=function(t){return function(e,r){return d(t.transporter.write({method:j,path:h("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(function(e,r){return jt(t)(e.taskID,r)}))}},L=function(t){return function(e,r,n){return d(t.transporter.write({method:j,path:h("1/indexes/%s/operation",e),data:{operation:"copy",destination:r}},n),(function(r,n){return ut(t)(e,{methods:{waitTask:de}}).waitTask(r.taskID,n)}))}},V=function(t){return function(e,n,a){return L(t)(e,n,r(r({},a),{},{scope:[pe.Rules]}))}},_=function(t){return function(e,n,a){return L(t)(e,n,r(r({},a),{},{scope:[pe.Settings]}))}},X=function(t){return function(e,n,a){return L(t)(e,n,r(r({},a),{},{scope:[pe.Synonyms]}))}},Y=function(t){return function(e,r){return e.method===x?t.transporter.read(e,r):t.transporter.write(e,r)}},Z=function(t){return function(e,r){return d(t.transporter.write({method:I,path:h("1/keys/%s",e)},r),(function(r,n){return f((function(r){return tt(t)(e,n).then(r).catch((function(t){if(404!==t.status)throw t}))}))}))}},$=function(t){return function(e,r,n){var a=r.map((function(t){return {action:"deleteEntry",body:{objectID:t}}}));return d(t.transporter.write({method:j,path:h("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},n),(function(e,r){return jt(t)(e.taskID,r)}))}},tt=function(t){return function(e,r){return t.transporter.read({method:x,path:h("1/keys/%s",e)},r)}},et=function(t){return function(e,r){return t.transporter.read({method:x,path:h("1/task/%s",e.toString())},r)}},rt=function(t){return function(e){return t.transporter.read({method:x,path:"/1/dictionaries/*/settings"},e)}},nt=function(t){return function(e){return t.transporter.read({method:x,path:"1/logs"},e)}},at=function(t){return function(e){return t.transporter.read({method:x,path:"1/clusters/mapping/top"},e)}},ot=function(t){return function(e,r){return t.transporter.read({method:x,path:h("1/clusters/mapping/%s",e)},r)}},it=function(t){return function(e){var r=e||{},a=r.retrieveMappings,o=n(r,["retrieveMappings"]);return !0===a&&(o.getClusters=!0),t.transporter.read({method:x,path:"1/clusters/mapping/pending"},o)}},ut=function(t){return function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={transporter:t.transporter,appId:t.appId,indexName:e};return p(n,r.methods)}},st=function(t){return function(e){return t.transporter.read({method:x,path:"1/keys"},e)}},ct=function(t){return function(e){return t.transporter.read({method:x,path:"1/clusters"},e)}},ft=function(t){return function(e){return t.transporter.read({method:x,path:"1/indexes"},e)}},dt=function(t){return function(e){return t.transporter.read({method:x,path:"1/clusters/mapping"},e)}},lt=function(t){return function(e,r,n){return d(t.transporter.write({method:j,path:h("1/indexes/%s/operation",e),data:{operation:"move",destination:r}},n),(function(r,n){return ut(t)(e,{methods:{waitTask:de}}).waitTask(r.taskID,n)}))}},pt=function(t){return function(e,r){return d(t.transporter.write({method:j,path:"1/indexes/*/batch",data:{requests:e}},r),(function(e,r){return Promise.all(Object.keys(e.taskID).map((function(n){return ut(t)(n,{methods:{waitTask:de}}).waitTask(e.taskID[n],r)})))}))}},ht=function(t){return function(e,r){return t.transporter.read({method:j,path:"1/indexes/*/objects",data:{requests:e}},r)}},mt=function(t){return function(e,n){var a=e.map((function(t){return r(r({},t),{},{params:E(t.params||{})})}));return t.transporter.read({method:j,path:"1/indexes/*/queries",data:{requests:a},cacheable:!0},n)}},yt=function(t){return function(e,a){return Promise.all(e.map((function(e){var o=e.params,i=o.facetName,u=o.facetQuery,s=n(o,["facetName","facetQuery"]);return ut(t)(e.indexName,{methods:{searchForFacetValues:ue}}).searchForFacetValues(i,u,r(r({},a),s))})))}},gt=function(t){return function(e,r){var n=y(r);return n.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:I,path:"1/clusters/mapping"},n)}},vt=function(t){return function(e,r,n){var a=r.map((function(t){return {action:"addEntry",body:t}}));return d(t.transporter.write({method:j,path:h("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:a}},n),(function(e,r){return jt(t)(e.taskID,r)}))}},bt=function(t){return function(e,r){return d(t.transporter.write({method:j,path:h("1/keys/%s/restore",e)},r),(function(r,n){return f((function(r){return tt(t)(e,n).catch((function(t){if(404!==t.status)throw t;return r()}))}))}))}},Pt=function(t){return function(e,r,n){var a=r.map((function(t){return {action:"addEntry",body:t}}));return d(t.transporter.write({method:j,path:h("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},n),(function(e,r){return jt(t)(e.taskID,r)}))}},wt=function(t){return function(e,r,n){return t.transporter.read({method:j,path:h("/1/dictionaries/%s/search",e),data:{query:r},cacheable:!0},n)}},Ot=function(t){return function(e,r){return t.transporter.read({method:j,path:"1/clusters/mapping/search",data:{query:e}},r)}},It=function(t){return function(e,r){return d(t.transporter.write({method:D,path:"/1/dictionaries/*/settings",data:e},r),(function(e,r){return jt(t)(e.taskID,r)}))}},xt=function(t){return function(e,r){var a=Object.assign({},r),o=r||{},i=o.queryParameters,u=n(o,["queryParameters"]),s=i?{queryParameters:i}:{},c=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"];return d(t.transporter.write({method:D,path:h("1/keys/%s",e),data:s},u),(function(r,n){return f((function(r){return tt(t)(e,n).then((function(t){return function(t){return Object.keys(a).filter((function(t){return -1!==c.indexOf(t)})).every((function(e){return t[e]===a[e]}))}(t)?Promise.resolve():r()}))}))}))}},jt=function(t){return function(e,r){return f((function(n){return et(t)(e,r).then((function(t){return "published"!==t.status?n():void 0}))}))}},Dt=function(t){return function(e,r){return d(t.transporter.write({method:j,path:h("1/indexes/%s/batch",t.indexName),data:{requests:e}},r),(function(e,r){return de(t)(e.taskID,r)}))}},qt=function(t){return function(e){return K(r(r({shouldStop:function(t){return void 0===t.cursor}},e),{},{request:function(r){return t.transporter.read({method:j,path:h("1/indexes/%s/browse",t.indexName),data:r},e)}}))}},St=function(t){return function(e){var n=r({hitsPerPage:1e3},e);return K(r(r({shouldStop:function(t){return t.hits.length<n.hitsPerPage}},n),{},{request:function(e){return se(t)("",r(r({},n),e)).then((function(t){return r(r({},t),{},{hits:t.hits.map((function(t){return delete t._highlightResult,t}))})}))}}))}},kt=function(t){return function(e){var n=r({hitsPerPage:1e3},e);return K(r(r({shouldStop:function(t){return t.hits.length<n.hitsPerPage}},n),{},{request:function(e){return ce(t)("",r(r({},n),e)).then((function(t){return r(r({},t),{},{hits:t.hits.map((function(t){return delete t._highlightResult,t}))})}))}}))}},Tt=function(t){return function(e,r,a){var o=a||{},i=o.batchSize,u=n(o,["batchSize"]),s={taskIDs:[],objectIDs:[]};return d(function n(){var a,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,c=[];for(a=o;a<e.length&&(c.push(e[a]),c.length!==(i||1e3));a++);return 0===c.length?Promise.resolve(s):Dt(t)(c.map((function(t){return {action:r,body:t}})),u).then((function(t){return s.objectIDs=s.objectIDs.concat(t.objectIDs),s.taskIDs.push(t.taskID),a++,n(a)}))}(),(function(e,r){return Promise.all(e.taskIDs.map((function(e){return de(t)(e,r)})))}))}},Nt=function(t){return function(e){return d(t.transporter.write({method:j,path:h("1/indexes/%s/clear",t.indexName)},e),(function(e,r){return de(t)(e.taskID,r)}))}},Et=function(t){return function(e){var r=e||{},a=r.forwardToReplicas,o=y(n(r,["forwardToReplicas"]));return a&&(o.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:j,path:h("1/indexes/%s/rules/clear",t.indexName)},o),(function(e,r){return de(t)(e.taskID,r)}))}},Rt=function(t){return function(e){var r=e||{},a=r.forwardToReplicas,o=y(n(r,["forwardToReplicas"]));return a&&(o.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:j,path:h("1/indexes/%s/synonyms/clear",t.indexName)},o),(function(e,r){return de(t)(e.taskID,r)}))}},At=function(t){return function(e,r){return d(t.transporter.write({method:j,path:h("1/indexes/%s/deleteByQuery",t.indexName),data:e},r),(function(e,r){return de(t)(e.taskID,r)}))}},Ct=function(t){return function(e){return d(t.transporter.write({method:I,path:h("1/indexes/%s",t.indexName)},e),(function(e,r){return de(t)(e.taskID,r)}))}},Ut=function(t){return function(e,r){return d(zt(t)([e],r).then((function(t){return {taskID:t.taskIDs[0]}})),(function(e,r){return de(t)(e.taskID,r)}))}},zt=function(t){return function(e,r){var n=e.map((function(t){return {objectID:t}}));return Tt(t)(n,le.DeleteObject,r)}},Jt=function(t){return function(e,r){var a=r||{},o=a.forwardToReplicas,i=y(n(a,["forwardToReplicas"]));return o&&(i.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:I,path:h("1/indexes/%s/rules/%s",t.indexName,e)},i),(function(e,r){return de(t)(e.taskID,r)}))}},Ft=function(t){return function(e,r){var a=r||{},o=a.forwardToReplicas,i=y(n(a,["forwardToReplicas"]));return o&&(i.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:I,path:h("1/indexes/%s/synonyms/%s",t.indexName,e)},i),(function(e,r){return de(t)(e.taskID,r)}))}},Ht=function(t){return function(e){return Lt(t)(e).then((function(){return !0})).catch((function(t){if(404!==t.status)throw t;return !1}))}},Mt=function(t){return function(e,r,n){return t.transporter.read({method:j,path:h("1/answers/%s/prediction",t.indexName),data:{query:e,queryLanguages:r},cacheable:!0},n)}},Kt=function(t){return function(e,o){var i=o||{},u=i.query,s=i.paginate,c=n(i,["query","paginate"]),f=0;return function n(){return ie(t)(u||"",r(r({},c),{},{page:f})).then((function(t){for(var r=0,o=Object.entries(t.hits);r<o.length;r++){var i=a(o[r],2),u=i[0],c=i[1];if(e(c))return {object:c,position:parseInt(u,10),page:f}}if(f++,!1===s||f>=t.nbPages)throw {name:"ObjectNotFoundError",message:"Object not found."};return n()}))}()}},Wt=function(t){return function(e,r){return t.transporter.read({method:x,path:h("1/indexes/%s/%s",t.indexName,e)},r)}},Bt=function(){return function(t,e){for(var r=0,n=Object.entries(t.hits);r<n.length;r++){var o=a(n[r],2),i=o[0];if(o[1].objectID===e)return parseInt(i,10)}return -1}},Qt=function(t){return function(e,a){var o=a||{},i=o.attributesToRetrieve,u=n(o,["attributesToRetrieve"]),s=e.map((function(e){return r({indexName:t.indexName,objectID:e},i?{attributesToRetrieve:i}:{})}));return t.transporter.read({method:j,path:"1/indexes/*/objects",data:{requests:s}},u)}},Gt=function(t){return function(e,r){return t.transporter.read({method:x,path:h("1/indexes/%s/rules/%s",t.indexName,e)},r)}},Lt=function(t){return function(e){return t.transporter.read({method:x,path:h("1/indexes/%s/settings",t.indexName),data:{getVersion:2}},e)}},Vt=function(t){return function(e,r){return t.transporter.read({method:x,path:h("1/indexes/%s/synonyms/%s",t.indexName,e)},r)}},_t=function(t){return function(e,r){return d(Xt(t)([e],r).then((function(t){return {objectID:t.objectIDs[0],taskID:t.taskIDs[0]}})),(function(e,r){return de(t)(e.taskID,r)}))}},Xt=function(t){return function(e,r){var a=r||{},o=a.createIfNotExists,i=n(a,["createIfNotExists"]),u=o?le.PartialUpdateObject:le.PartialUpdateObjectNoCreate;return Tt(t)(e,u,i)}},Yt=function(t){return function(e,i){var u=i||{},s=u.safe,c=u.autoGenerateObjectIDIfNotExist,f=u.batchSize,l=n(u,["safe","autoGenerateObjectIDIfNotExist","batchSize"]),p=function(e,r,n,a){return d(t.transporter.write({method:j,path:h("1/indexes/%s/operation",e),data:{operation:n,destination:r}},a),(function(e,r){return de(t)(e.taskID,r)}))},m=Math.random().toString(36).substring(7),y="".concat(t.indexName,"_tmp_").concat(m),g=ee({appId:t.appId,transporter:t.transporter,indexName:y}),v=[],b=p(t.indexName,y,"copy",r(r({},l),{},{scope:["settings","synonyms","rules"]}));return v.push(b),d((s?b.wait(l):b).then((function(){var t=g(e,r(r({},l),{},{autoGenerateObjectIDIfNotExist:c,batchSize:f}));return v.push(t),s?t.wait(l):t})).then((function(){var e=p(y,t.indexName,"move",l);return v.push(e),s?e.wait(l):e})).then((function(){return Promise.all(v)})).then((function(t){var e=a(t,3),r=e[0],n=e[1],i=e[2];return {objectIDs:n.objectIDs,taskIDs:[r.taskID].concat(o(n.taskIDs),[i.taskID])}})),(function(t,e){return Promise.all(v.map((function(t){return t.wait(e)})))}))}},Zt=function(t){return function(e,n){return ne(t)(e,r(r({},n),{},{clearExistingRules:!0}))}},$t=function(t){return function(e,n){return oe(t)(e,r(r({},n),{},{clearExistingSynonyms:!0}))}},te=function(t){return function(e,r){return d(ee(t)([e],r).then((function(t){return {objectID:t.objectIDs[0],taskID:t.taskIDs[0]}})),(function(e,r){return de(t)(e.taskID,r)}))}},ee=function(t){return function(e,r){var a=r||{},o=a.autoGenerateObjectIDIfNotExist,i=n(a,["autoGenerateObjectIDIfNotExist"]),u=o?le.AddObject:le.UpdateObject;if(u===le.UpdateObject){var s=!0,c=!1,f=void 0;try{for(var l,p=e[Symbol.iterator]();!(s=(l=p.next()).done);s=!0){if(void 0===l.value.objectID)return d(Promise.reject({name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}))}}catch(t){c=!0,f=t;}finally{try{s||null==p.return||p.return();}finally{if(c)throw f}}}return Tt(t)(e,u,i)}},re=function(t){return function(e,r){return ne(t)([e],r)}},ne=function(t){return function(e,r){var a=r||{},o=a.forwardToReplicas,i=a.clearExistingRules,u=y(n(a,["forwardToReplicas","clearExistingRules"]));return o&&(u.queryParameters.forwardToReplicas=1),i&&(u.queryParameters.clearExistingRules=1),d(t.transporter.write({method:j,path:h("1/indexes/%s/rules/batch",t.indexName),data:e},u),(function(e,r){return de(t)(e.taskID,r)}))}},ae=function(t){return function(e,r){return oe(t)([e],r)}},oe=function(t){return function(e,r){var a=r||{},o=a.forwardToReplicas,i=a.clearExistingSynonyms,u=a.replaceExistingSynonyms,s=y(n(a,["forwardToReplicas","clearExistingSynonyms","replaceExistingSynonyms"]));return o&&(s.queryParameters.forwardToReplicas=1),(u||i)&&(s.queryParameters.replaceExistingSynonyms=1),d(t.transporter.write({method:j,path:h("1/indexes/%s/synonyms/batch",t.indexName),data:e},s),(function(e,r){return de(t)(e.taskID,r)}))}},ie=function(t){return function(e,r){return t.transporter.read({method:j,path:h("1/indexes/%s/query",t.indexName),data:{query:e},cacheable:!0},r)}},ue=function(t){return function(e,r,n){return t.transporter.read({method:j,path:h("1/indexes/%s/facets/%s/query",t.indexName,e),data:{facetQuery:r},cacheable:!0},n)}},se=function(t){return function(e,r){return t.transporter.read({method:j,path:h("1/indexes/%s/rules/search",t.indexName),data:{query:e}},r)}},ce=function(t){return function(e,r){return t.transporter.read({method:j,path:h("1/indexes/%s/synonyms/search",t.indexName),data:{query:e}},r)}},fe=function(t){return function(e,r){var a=r||{},o=a.forwardToReplicas,i=y(n(a,["forwardToReplicas"]));return o&&(i.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:D,path:h("1/indexes/%s/settings",t.indexName),data:e},i),(function(e,r){return de(t)(e.taskID,r)}))}},de=function(t){return function(e,r){return f((function(n){return function(t){return function(e,r){return t.transporter.read({method:x,path:h("1/indexes/%s/task/%s",t.indexName,e.toString())},r)}}(t)(e,r).then((function(t){return "published"!==t.status?n():void 0}))}))}},le={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},pe={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},he=1,me=2,ye=3;function ge(t,e,n){var a,o={appId:t,apiKey:e,timeouts:{connect:1,read:2,write:30},requester:{send:function(t){return new Promise((function(e){var r=new XMLHttpRequest;r.open(t.method,t.url,!0),Object.keys(t.headers).forEach((function(e){return r.setRequestHeader(e,t.headers[e])}));var n,a=function(t,n){return setTimeout((function(){r.abort(),e({status:0,content:n,isTimedOut:!0});}),1e3*t)},o=a(t.connectTimeout,"Connection timeout");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(o),n=a(t.responseTimeout,"Socket timeout"));},r.onerror=function(){0===r.status&&(clearTimeout(o),clearTimeout(n),e({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}));},r.onload=function(){clearTimeout(o),clearTimeout(n),e({content:r.responseText,status:r.status,isTimedOut:!1});},r.send(t.data);}))}},logger:(a=ye,{debug:function(t,e){return he>=a&&console.debug(t,e),Promise.resolve()},info:function(t,e){return me>=a&&console.info(t,e),Promise.resolve()},error:function(t,e){return console.error(t,e),Promise.resolve()}}),responsesCache:s(),requestsCache:s({serializable:!1}),hostsCache:u({caches:[i({key:"".concat("4.14.3","-").concat(t)}),s()]}),userAgent:T("4.14.3").add({segment:"Browser"})},f=r(r({},o),n),d=function(){return function(t){return function(t){var e=t.region||"us",n=c(m.WithinHeaders,t.appId,t.apiKey),a=k(r(r({hosts:[{url:"personalization.".concat(e,".algolia.com")}]},t),{},{headers:r(r(r({},n.headers()),{"content-type":"application/json"}),t.headers),queryParameters:r(r({},n.queryParameters()),t.queryParameters)}));return p({appId:t.appId,transporter:a},t.methods)}(r(r(r({},o),t),{},{methods:{getPersonalizationStrategy:H,setPersonalizationStrategy:M}}))}};return function(t){var e=t.appId,n=c(void 0!==t.authMode?t.authMode:m.WithinHeaders,e,t.apiKey),a=k(r(r({hosts:[{url:"".concat(e,"-dsn.algolia.net"),accept:g.Read},{url:"".concat(e,".algolia.net"),accept:g.Write}].concat(l([{url:"".concat(e,"-1.algolianet.com")},{url:"".concat(e,"-2.algolianet.com")},{url:"".concat(e,"-3.algolianet.com")}]))},t),{},{headers:r(r(r({},n.headers()),{"content-type":"application/x-www-form-urlencoded"}),t.headers),queryParameters:r(r({},n.queryParameters()),t.queryParameters)}));return p({transporter:a,appId:e,addAlgoliaAgent:function(t,e){a.userAgent.add({segment:t,version:e});},clearCache:function(){return Promise.all([a.requestsCache.clear(),a.responsesCache.clear()]).then((function(){}))}},t.methods)}(r(r({},f),{},{methods:{search:mt,searchForFacetValues:yt,multipleBatch:pt,multipleGetObjects:ht,multipleQueries:mt,copyIndex:L,copySettings:_,copySynonyms:X,copyRules:V,moveIndex:lt,listIndices:ft,getLogs:nt,listClusters:ct,multipleSearchForFacetValues:yt,getApiKey:tt,addApiKey:W,listApiKeys:st,updateApiKey:xt,deleteApiKey:Z,restoreApiKey:bt,assignUserID:B,assignUserIDs:Q,getUserID:ot,searchUserIDs:Ot,listUserIDs:dt,getTopUserIDs:at,removeUserID:gt,hasPendingMappings:it,clearDictionaryEntries:G,deleteDictionaryEntries:$,getDictionarySettings:rt,getAppTask:et,replaceDictionaryEntries:vt,saveDictionaryEntries:Pt,searchDictionaryEntries:wt,setDictionarySettings:It,waitAppTask:jt,customRequest:Y,initIndex:function(t){return function(e){return ut(t)(e,{methods:{batch:Dt,delete:Ct,findAnswers:Mt,getObject:Wt,getObjects:Qt,saveObject:te,saveObjects:ee,search:ie,searchForFacetValues:ue,waitTask:de,setSettings:fe,getSettings:Lt,partialUpdateObject:_t,partialUpdateObjects:Xt,deleteObject:Ut,deleteObjects:zt,deleteBy:At,clearObjects:Nt,browseObjects:qt,getObjectPosition:Bt,findObject:Kt,exists:Ht,saveSynonym:ae,saveSynonyms:oe,getSynonym:Vt,searchSynonyms:ce,browseSynonyms:kt,deleteSynonym:Ft,clearSynonyms:Rt,replaceAllObjects:Yt,replaceAllSynonyms:$t,searchRules:se,getRule:Gt,deleteRule:Jt,saveRule:re,saveRules:ne,replaceAllRules:Zt,browseRules:St,clearRules:Et}})}},initAnalytics:function(){return function(t){return function(t){var e=t.region||"us",n=c(m.WithinHeaders,t.appId,t.apiKey),a=k(r(r({hosts:[{url:"analytics.".concat(e,".algolia.com")}]},t),{},{headers:r(r(r({},n.headers()),{"content-type":"application/json"}),t.headers),queryParameters:r(r({},n.queryParameters()),t.queryParameters)}));return p({appId:t.appId,transporter:a},t.methods)}(r(r(r({},o),t),{},{methods:{addABTest:C,getABTest:z,getABTests:J,stopABTest:F,deleteABTest:U}}))}},initPersonalization:d,initRecommendation:function(){return function(t){return f.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),d()(t)}}}}))}return ge.version="4.14.3",ge}));
6834
- });
6804
+ function createBrowserLocalStorageCache(options) {
6805
+ const namespaceKey = `algoliasearch-client-js-${options.key}`;
6806
+ // eslint-disable-next-line functional/no-let
6807
+ let storage;
6808
+ const getStorage = () => {
6809
+ if (storage === undefined) {
6810
+ storage = options.localStorage || window.localStorage;
6811
+ }
6812
+ return storage;
6813
+ };
6814
+ const getNamespace = () => {
6815
+ return JSON.parse(getStorage().getItem(namespaceKey) || '{}');
6816
+ };
6817
+ return {
6818
+ get(key, defaultValue, events = {
6819
+ miss: () => Promise.resolve(),
6820
+ }) {
6821
+ return Promise.resolve()
6822
+ .then(() => {
6823
+ const keyAsString = JSON.stringify(key);
6824
+ const value = getNamespace()[keyAsString];
6825
+ return Promise.all([value || defaultValue(), value !== undefined]);
6826
+ })
6827
+ .then(([value, exists]) => {
6828
+ return Promise.all([value, exists || events.miss(value)]);
6829
+ })
6830
+ .then(([value]) => value);
6831
+ },
6832
+ set(key, value) {
6833
+ return Promise.resolve().then(() => {
6834
+ const namespace = getNamespace();
6835
+ // eslint-disable-next-line functional/immutable-data
6836
+ namespace[JSON.stringify(key)] = value;
6837
+ getStorage().setItem(namespaceKey, JSON.stringify(namespace));
6838
+ return value;
6839
+ });
6840
+ },
6841
+ delete(key) {
6842
+ return Promise.resolve().then(() => {
6843
+ const namespace = getNamespace();
6844
+ // eslint-disable-next-line functional/immutable-data
6845
+ delete namespace[JSON.stringify(key)];
6846
+ getStorage().setItem(namespaceKey, JSON.stringify(namespace));
6847
+ });
6848
+ },
6849
+ clear() {
6850
+ return Promise.resolve().then(() => {
6851
+ getStorage().removeItem(namespaceKey);
6852
+ });
6853
+ },
6854
+ };
6855
+ }
6856
+
6857
+ // @todo Add logger on options to debug when caches go wrong.
6858
+ function createFallbackableCache(options) {
6859
+ const caches = [...options.caches];
6860
+ const current = caches.shift(); // eslint-disable-line functional/immutable-data
6861
+ if (current === undefined) {
6862
+ return createNullCache();
6863
+ }
6864
+ return {
6865
+ get(key, defaultValue, events = {
6866
+ miss: () => Promise.resolve(),
6867
+ }) {
6868
+ return current.get(key, defaultValue, events).catch(() => {
6869
+ return createFallbackableCache({ caches }).get(key, defaultValue, events);
6870
+ });
6871
+ },
6872
+ set(key, value) {
6873
+ return current.set(key, value).catch(() => {
6874
+ return createFallbackableCache({ caches }).set(key, value);
6875
+ });
6876
+ },
6877
+ delete(key) {
6878
+ return current.delete(key).catch(() => {
6879
+ return createFallbackableCache({ caches }).delete(key);
6880
+ });
6881
+ },
6882
+ clear() {
6883
+ return current.clear().catch(() => {
6884
+ return createFallbackableCache({ caches }).clear();
6885
+ });
6886
+ },
6887
+ };
6888
+ }
6889
+
6890
+ function createNullCache() {
6891
+ return {
6892
+ get(_key, defaultValue, events = {
6893
+ miss: () => Promise.resolve(),
6894
+ }) {
6895
+ const value = defaultValue();
6896
+ return value
6897
+ .then(result => Promise.all([result, events.miss(result)]))
6898
+ .then(([result]) => result);
6899
+ },
6900
+ set(_key, value) {
6901
+ return Promise.resolve(value);
6902
+ },
6903
+ delete(_key) {
6904
+ return Promise.resolve();
6905
+ },
6906
+ clear() {
6907
+ return Promise.resolve();
6908
+ },
6909
+ };
6910
+ }
6911
+
6912
+ function createInMemoryCache(options = { serializable: true }) {
6913
+ // eslint-disable-next-line functional/no-let
6914
+ let cache = {};
6915
+ return {
6916
+ get(key, defaultValue, events = {
6917
+ miss: () => Promise.resolve(),
6918
+ }) {
6919
+ const keyAsString = JSON.stringify(key);
6920
+ if (keyAsString in cache) {
6921
+ return Promise.resolve(options.serializable ? JSON.parse(cache[keyAsString]) : cache[keyAsString]);
6922
+ }
6923
+ const promise = defaultValue();
6924
+ const miss = (events && events.miss) || (() => Promise.resolve());
6925
+ return promise.then((value) => miss(value)).then(() => promise);
6926
+ },
6927
+ set(key, value) {
6928
+ // eslint-disable-next-line functional/immutable-data
6929
+ cache[JSON.stringify(key)] = options.serializable ? JSON.stringify(value) : value;
6930
+ return Promise.resolve(value);
6931
+ },
6932
+ delete(key) {
6933
+ // eslint-disable-next-line functional/immutable-data
6934
+ delete cache[JSON.stringify(key)];
6935
+ return Promise.resolve();
6936
+ },
6937
+ clear() {
6938
+ cache = {};
6939
+ return Promise.resolve();
6940
+ },
6941
+ };
6942
+ }
6943
+
6944
+ function createAuth(authMode, appId, apiKey) {
6945
+ const credentials = {
6946
+ 'x-algolia-api-key': apiKey,
6947
+ 'x-algolia-application-id': appId,
6948
+ };
6949
+ return {
6950
+ headers() {
6951
+ return authMode === AuthMode.WithinHeaders ? credentials : {};
6952
+ },
6953
+ queryParameters() {
6954
+ return authMode === AuthMode.WithinQueryParameters ? credentials : {};
6955
+ },
6956
+ };
6957
+ }
6958
+
6959
+ // eslint-disable-next-line functional/prefer-readonly-type
6960
+ function shuffle(array) {
6961
+ let c = array.length - 1; // eslint-disable-line functional/no-let
6962
+ // eslint-disable-next-line functional/no-loop-statement
6963
+ for (c; c > 0; c--) {
6964
+ const b = Math.floor(Math.random() * (c + 1));
6965
+ const a = array[c];
6966
+ array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign
6967
+ array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign
6968
+ }
6969
+ return array;
6970
+ }
6971
+ function addMethods(base, methods) {
6972
+ if (!methods) {
6973
+ return base;
6974
+ }
6975
+ Object.keys(methods).forEach(key => {
6976
+ // eslint-disable-next-line functional/immutable-data, no-param-reassign
6977
+ base[key] = methods[key](base);
6978
+ });
6979
+ return base;
6980
+ }
6981
+ function encode(format, ...args) {
6982
+ // eslint-disable-next-line functional/no-let
6983
+ let i = 0;
6984
+ return format.replace(/%s/g, () => encodeURIComponent(args[i++]));
6985
+ }
6986
+
6987
+ const version = '4.14.3';
6988
+
6989
+ const AuthMode = {
6990
+ /**
6991
+ * If auth credentials should be in query parameters.
6992
+ */
6993
+ WithinQueryParameters: 0,
6994
+ /**
6995
+ * If auth credentials should be in headers.
6996
+ */
6997
+ WithinHeaders: 1,
6998
+ };
6999
+
7000
+ function createMappedRequestOptions(requestOptions, timeout) {
7001
+ const options = requestOptions || {};
7002
+ const data = options.data || {};
7003
+ Object.keys(options).forEach(key => {
7004
+ if (['timeout', 'headers', 'queryParameters', 'data', 'cacheable'].indexOf(key) === -1) {
7005
+ data[key] = options[key]; // eslint-disable-line functional/immutable-data
7006
+ }
7007
+ });
7008
+ return {
7009
+ data: Object.entries(data).length > 0 ? data : undefined,
7010
+ timeout: options.timeout || timeout,
7011
+ headers: options.headers || {},
7012
+ queryParameters: options.queryParameters || {},
7013
+ cacheable: options.cacheable,
7014
+ };
7015
+ }
7016
+
7017
+ const CallEnum = {
7018
+ /**
7019
+ * If the host is read only.
7020
+ */
7021
+ Read: 1,
7022
+ /**
7023
+ * If the host is write only.
7024
+ */
7025
+ Write: 2,
7026
+ /**
7027
+ * If the host is both read and write.
7028
+ */
7029
+ Any: 3,
7030
+ };
7031
+
7032
+ const HostStatusEnum = {
7033
+ Up: 1,
7034
+ Down: 2,
7035
+ Timeouted: 3,
7036
+ };
7037
+
7038
+ // By default, API Clients at Algolia have expiration delay
7039
+ // of 5 mins. In the JavaScript client, we have 2 mins.
7040
+ const EXPIRATION_DELAY = 2 * 60 * 1000;
7041
+ function createStatefulHost(host, status = HostStatusEnum.Up) {
7042
+ return {
7043
+ ...host,
7044
+ status,
7045
+ lastUpdate: Date.now(),
7046
+ };
7047
+ }
7048
+ function isStatefulHostUp(host) {
7049
+ return host.status === HostStatusEnum.Up || Date.now() - host.lastUpdate > EXPIRATION_DELAY;
7050
+ }
7051
+ function isStatefulHostTimeouted(host) {
7052
+ return (host.status === HostStatusEnum.Timeouted && Date.now() - host.lastUpdate <= EXPIRATION_DELAY);
7053
+ }
7054
+
7055
+ function createStatelessHost(options) {
7056
+ if (typeof options === 'string') {
7057
+ return {
7058
+ protocol: 'https',
7059
+ url: options,
7060
+ accept: CallEnum.Any,
7061
+ };
7062
+ }
7063
+ return {
7064
+ protocol: options.protocol || 'https',
7065
+ url: options.url,
7066
+ accept: options.accept || CallEnum.Any,
7067
+ };
7068
+ }
7069
+
7070
+ const MethodEnum = {
7071
+ Delete: 'DELETE',
7072
+ Get: 'GET',
7073
+ Post: 'POST',
7074
+ Put: 'PUT',
7075
+ };
7076
+
7077
+ function createRetryableOptions(hostsCache, statelessHosts) {
7078
+ return Promise.all(statelessHosts.map(statelessHost => {
7079
+ return hostsCache.get(statelessHost, () => {
7080
+ return Promise.resolve(createStatefulHost(statelessHost));
7081
+ });
7082
+ })).then(statefulHosts => {
7083
+ const hostsUp = statefulHosts.filter(host => isStatefulHostUp(host));
7084
+ const hostsTimeouted = statefulHosts.filter(host => isStatefulHostTimeouted(host));
7085
+ /**
7086
+ * Note, we put the hosts that previously timeouted on the end of the list.
7087
+ */
7088
+ const hostsAvailable = [...hostsUp, ...hostsTimeouted];
7089
+ const statelessHostsAvailable = hostsAvailable.length > 0
7090
+ ? hostsAvailable.map(host => createStatelessHost(host))
7091
+ : statelessHosts;
7092
+ return {
7093
+ getTimeout(timeoutsCount, baseTimeout) {
7094
+ /**
7095
+ * Imagine that you have 4 hosts, if timeouts will increase
7096
+ * on the following way: 1 (timeouted) > 4 (timeouted) > 5 (200)
7097
+ *
7098
+ * Note that, the very next request, we start from the previous timeout
7099
+ *
7100
+ * 5 (timeouted) > 6 (timeouted) > 7 ...
7101
+ *
7102
+ * This strategy may need to be reviewed, but is the strategy on the our
7103
+ * current v3 version.
7104
+ */
7105
+ const timeoutMultiplier = hostsTimeouted.length === 0 && timeoutsCount === 0
7106
+ ? 1
7107
+ : hostsTimeouted.length + 3 + timeoutsCount;
7108
+ return timeoutMultiplier * baseTimeout;
7109
+ },
7110
+ statelessHosts: statelessHostsAvailable,
7111
+ };
7112
+ });
7113
+ }
7114
+
7115
+ const isNetworkError = ({ isTimedOut, status }) => {
7116
+ return !isTimedOut && ~~status === 0;
7117
+ };
7118
+ const isRetryable = (response) => {
7119
+ const status = response.status;
7120
+ const isTimedOut = response.isTimedOut;
7121
+ return (isTimedOut || isNetworkError(response) || (~~(status / 100) !== 2 && ~~(status / 100) !== 4));
7122
+ };
7123
+ const isSuccess = ({ status }) => {
7124
+ return ~~(status / 100) === 2;
7125
+ };
7126
+ const retryDecision = (response, outcomes) => {
7127
+ if (isRetryable(response)) {
7128
+ return outcomes.onRetry(response);
7129
+ }
7130
+ if (isSuccess(response)) {
7131
+ return outcomes.onSuccess(response);
7132
+ }
7133
+ return outcomes.onFail(response);
7134
+ };
7135
+
7136
+ function retryableRequest(transporter, statelessHosts, request, requestOptions) {
7137
+ const stackTrace = []; // eslint-disable-line functional/prefer-readonly-type
7138
+ /**
7139
+ * First we prepare the payload that do not depend from hosts.
7140
+ */
7141
+ const data = serializeData(request, requestOptions);
7142
+ const headers = serializeHeaders(transporter, requestOptions);
7143
+ const method = request.method;
7144
+ // On `GET`, the data is proxied to query parameters.
7145
+ const dataQueryParameters = request.method !== MethodEnum.Get
7146
+ ? {}
7147
+ : {
7148
+ ...request.data,
7149
+ ...requestOptions.data,
7150
+ };
7151
+ const queryParameters = {
7152
+ 'x-algolia-agent': transporter.userAgent.value,
7153
+ ...transporter.queryParameters,
7154
+ ...dataQueryParameters,
7155
+ ...requestOptions.queryParameters,
7156
+ };
7157
+ let timeoutsCount = 0; // eslint-disable-line functional/no-let
7158
+ const retry = (hosts, // eslint-disable-line functional/prefer-readonly-type
7159
+ getTimeout) => {
7160
+ /**
7161
+ * We iterate on each host, until there is no host left.
7162
+ */
7163
+ const host = hosts.pop(); // eslint-disable-line functional/immutable-data
7164
+ if (host === undefined) {
7165
+ throw createRetryError(stackTraceWithoutCredentials(stackTrace));
7166
+ }
7167
+ const payload = {
7168
+ data,
7169
+ headers,
7170
+ method,
7171
+ url: serializeUrl(host, request.path, queryParameters),
7172
+ connectTimeout: getTimeout(timeoutsCount, transporter.timeouts.connect),
7173
+ responseTimeout: getTimeout(timeoutsCount, requestOptions.timeout),
7174
+ };
7175
+ /**
7176
+ * The stackFrame is pushed to the stackTrace so we
7177
+ * can have information about onRetry and onFailure
7178
+ * decisions.
7179
+ */
7180
+ const pushToStackTrace = (response) => {
7181
+ const stackFrame = {
7182
+ request: payload,
7183
+ response,
7184
+ host,
7185
+ triesLeft: hosts.length,
7186
+ };
7187
+ // eslint-disable-next-line functional/immutable-data
7188
+ stackTrace.push(stackFrame);
7189
+ return stackFrame;
7190
+ };
7191
+ const decisions = {
7192
+ onSuccess: response => deserializeSuccess(response),
7193
+ onRetry(response) {
7194
+ const stackFrame = pushToStackTrace(response);
7195
+ /**
7196
+ * If response is a timeout, we increaset the number of
7197
+ * timeouts so we can increase the timeout later.
7198
+ */
7199
+ if (response.isTimedOut) {
7200
+ timeoutsCount++;
7201
+ }
7202
+ return Promise.all([
7203
+ /**
7204
+ * Failures are individually send the logger, allowing
7205
+ * the end user to debug / store stack frames even
7206
+ * when a retry error does not happen.
7207
+ */
7208
+ transporter.logger.info('Retryable failure', stackFrameWithoutCredentials(stackFrame)),
7209
+ /**
7210
+ * We also store the state of the host in failure cases. If the host, is
7211
+ * down it will remain down for the next 2 minutes. In a timeout situation,
7212
+ * this host will be added end of the list of hosts on the next request.
7213
+ */
7214
+ transporter.hostsCache.set(host, createStatefulHost(host, response.isTimedOut ? HostStatusEnum.Timeouted : HostStatusEnum.Down)),
7215
+ ]).then(() => retry(hosts, getTimeout));
7216
+ },
7217
+ onFail(response) {
7218
+ pushToStackTrace(response);
7219
+ throw deserializeFailure(response, stackTraceWithoutCredentials(stackTrace));
7220
+ },
7221
+ };
7222
+ return transporter.requester.send(payload).then(response => {
7223
+ return retryDecision(response, decisions);
7224
+ });
7225
+ };
7226
+ /**
7227
+ * Finally, for each retryable host perform request until we got a non
7228
+ * retryable response. Some notes here:
7229
+ *
7230
+ * 1. The reverse here is applied so we can apply a `pop` later on => more performant.
7231
+ * 2. We also get from the retryable options a timeout multiplier that is tailored
7232
+ * for the current context.
7233
+ */
7234
+ return createRetryableOptions(transporter.hostsCache, statelessHosts).then(options => {
7235
+ return retry([...options.statelessHosts].reverse(), options.getTimeout);
7236
+ });
7237
+ }
7238
+
7239
+ function createTransporter(options) {
7240
+ const { hostsCache, logger, requester, requestsCache, responsesCache, timeouts, userAgent, hosts, queryParameters, headers, } = options;
7241
+ const transporter = {
7242
+ hostsCache,
7243
+ logger,
7244
+ requester,
7245
+ requestsCache,
7246
+ responsesCache,
7247
+ timeouts,
7248
+ userAgent,
7249
+ headers,
7250
+ queryParameters,
7251
+ hosts: hosts.map(host => createStatelessHost(host)),
7252
+ read(request, requestOptions) {
7253
+ /**
7254
+ * First, we compute the user request options. Now, keep in mind,
7255
+ * that using request options the user is able to modified the intire
7256
+ * payload of the request. Such as headers, query parameters, and others.
7257
+ */
7258
+ const mappedRequestOptions = createMappedRequestOptions(requestOptions, transporter.timeouts.read);
7259
+ const createRetryableRequest = () => {
7260
+ /**
7261
+ * Then, we prepare a function factory that contains the construction of
7262
+ * the retryable request. At this point, we may *not* perform the actual
7263
+ * request. But we want to have the function factory ready.
7264
+ */
7265
+ return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Read) !== 0), request, mappedRequestOptions);
7266
+ };
7267
+ /**
7268
+ * Once we have the function factory ready, we need to determine of the
7269
+ * request is "cacheable" - should be cached. Note that, once again,
7270
+ * the user can force this option.
7271
+ */
7272
+ const cacheable = mappedRequestOptions.cacheable !== undefined
7273
+ ? mappedRequestOptions.cacheable
7274
+ : request.cacheable;
7275
+ /**
7276
+ * If is not "cacheable", we immediatly trigger the retryable request, no
7277
+ * need to check cache implementations.
7278
+ */
7279
+ if (cacheable !== true) {
7280
+ return createRetryableRequest();
7281
+ }
7282
+ /**
7283
+ * If the request is "cacheable", we need to first compute the key to ask
7284
+ * the cache implementations if this request is on progress or if the
7285
+ * response already exists on the cache.
7286
+ */
7287
+ const key = {
7288
+ request,
7289
+ mappedRequestOptions,
7290
+ transporter: {
7291
+ queryParameters: transporter.queryParameters,
7292
+ headers: transporter.headers,
7293
+ },
7294
+ };
7295
+ /**
7296
+ * With the computed key, we first ask the responses cache
7297
+ * implemention if this request was been resolved before.
7298
+ */
7299
+ return transporter.responsesCache.get(key, () => {
7300
+ /**
7301
+ * If the request has never resolved before, we actually ask if there
7302
+ * is a current request with the same key on progress.
7303
+ */
7304
+ return transporter.requestsCache.get(key, () => {
7305
+ return (transporter.requestsCache
7306
+ /**
7307
+ * Finally, if there is no request in progress with the same key,
7308
+ * this `createRetryableRequest()` will actually trigger the
7309
+ * retryable request.
7310
+ */
7311
+ .set(key, createRetryableRequest())
7312
+ .then(response => Promise.all([transporter.requestsCache.delete(key), response]), err => Promise.all([transporter.requestsCache.delete(key), Promise.reject(err)]))
7313
+ .then(([_, response]) => response));
7314
+ });
7315
+ }, {
7316
+ /**
7317
+ * Of course, once we get this response back from the server, we
7318
+ * tell response cache to actually store the received response
7319
+ * to be used later.
7320
+ */
7321
+ miss: response => transporter.responsesCache.set(key, response),
7322
+ });
7323
+ },
7324
+ write(request, requestOptions) {
7325
+ /**
7326
+ * On write requests, no cache mechanisms are applied, and we
7327
+ * proxy the request immediately to the requester.
7328
+ */
7329
+ return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Write) !== 0), request, createMappedRequestOptions(requestOptions, transporter.timeouts.write));
7330
+ },
7331
+ };
7332
+ return transporter;
7333
+ }
7334
+
7335
+ function createUserAgent(version) {
7336
+ const userAgent = {
7337
+ value: `Algolia for JavaScript (${version})`,
7338
+ add(options) {
7339
+ const addedUserAgent = `; ${options.segment}${options.version !== undefined ? ` (${options.version})` : ''}`;
7340
+ if (userAgent.value.indexOf(addedUserAgent) === -1) {
7341
+ // eslint-disable-next-line functional/immutable-data
7342
+ userAgent.value = `${userAgent.value}${addedUserAgent}`;
7343
+ }
7344
+ return userAgent;
7345
+ },
7346
+ };
7347
+ return userAgent;
7348
+ }
7349
+
7350
+ function deserializeSuccess(response) {
7351
+ // eslint-disable-next-line functional/no-try-statement
7352
+ try {
7353
+ return JSON.parse(response.content);
7354
+ }
7355
+ catch (e) {
7356
+ throw createDeserializationError(e.message, response);
7357
+ }
7358
+ }
7359
+ function deserializeFailure({ content, status }, stackFrame) {
7360
+ // eslint-disable-next-line functional/no-let
7361
+ let message = content;
7362
+ // eslint-disable-next-line functional/no-try-statement
7363
+ try {
7364
+ message = JSON.parse(content).message;
7365
+ }
7366
+ catch (e) {
7367
+ // ..
7368
+ }
7369
+ return createApiError(message, status, stackFrame);
7370
+ }
7371
+
7372
+ function serializeUrl(host, path, queryParameters) {
7373
+ const queryParametersAsString = serializeQueryParameters(queryParameters);
7374
+ // eslint-disable-next-line functional/no-let
7375
+ let url = `${host.protocol}://${host.url}/${path.charAt(0) === '/' ? path.substr(1) : path}`;
7376
+ if (queryParametersAsString.length) {
7377
+ url += `?${queryParametersAsString}`;
7378
+ }
7379
+ return url;
7380
+ }
7381
+ function serializeQueryParameters(parameters) {
7382
+ const isObjectOrArray = (value) => Object.prototype.toString.call(value) === '[object Object]' ||
7383
+ Object.prototype.toString.call(value) === '[object Array]';
7384
+ return Object.keys(parameters)
7385
+ .map(key => encode('%s=%s', key, isObjectOrArray(parameters[key]) ? JSON.stringify(parameters[key]) : parameters[key]))
7386
+ .join('&');
7387
+ }
7388
+ function serializeData(request, requestOptions) {
7389
+ if (request.method === MethodEnum.Get ||
7390
+ (request.data === undefined && requestOptions.data === undefined)) {
7391
+ return undefined;
7392
+ }
7393
+ const data = Array.isArray(request.data)
7394
+ ? request.data
7395
+ : { ...request.data, ...requestOptions.data };
7396
+ return JSON.stringify(data);
7397
+ }
7398
+ function serializeHeaders(transporter, requestOptions) {
7399
+ const headers = {
7400
+ ...transporter.headers,
7401
+ ...requestOptions.headers,
7402
+ };
7403
+ const serializedHeaders = {};
7404
+ Object.keys(headers).forEach(header => {
7405
+ const value = headers[header];
7406
+ // @ts-ignore
7407
+ // eslint-disable-next-line functional/immutable-data
7408
+ serializedHeaders[header.toLowerCase()] = value;
7409
+ });
7410
+ return serializedHeaders;
7411
+ }
7412
+
7413
+ function stackTraceWithoutCredentials(stackTrace) {
7414
+ return stackTrace.map(stackFrame => stackFrameWithoutCredentials(stackFrame));
7415
+ }
7416
+ function stackFrameWithoutCredentials(stackFrame) {
7417
+ const modifiedHeaders = stackFrame.request.headers['x-algolia-api-key']
7418
+ ? { 'x-algolia-api-key': '*****' }
7419
+ : {};
7420
+ return {
7421
+ ...stackFrame,
7422
+ request: {
7423
+ ...stackFrame.request,
7424
+ headers: {
7425
+ ...stackFrame.request.headers,
7426
+ ...modifiedHeaders,
7427
+ },
7428
+ },
7429
+ };
7430
+ }
7431
+
7432
+ function createApiError(message, status, transporterStackTrace) {
7433
+ return {
7434
+ name: 'ApiError',
7435
+ message,
7436
+ status,
7437
+ transporterStackTrace,
7438
+ };
7439
+ }
7440
+
7441
+ function createDeserializationError(message, response) {
7442
+ return {
7443
+ name: 'DeserializationError',
7444
+ message,
7445
+ response,
7446
+ };
7447
+ }
7448
+
7449
+ function createRetryError(transporterStackTrace) {
7450
+ return {
7451
+ name: 'RetryError',
7452
+ message: 'Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.',
7453
+ transporterStackTrace,
7454
+ };
7455
+ }
7456
+
7457
+ const createSearchClient = options => {
7458
+ const appId = options.appId;
7459
+ const auth = createAuth(options.authMode !== undefined ? options.authMode : AuthMode.WithinHeaders, appId, options.apiKey);
7460
+ const transporter = createTransporter({
7461
+ hosts: [
7462
+ { url: `${appId}-dsn.algolia.net`, accept: CallEnum.Read },
7463
+ { url: `${appId}.algolia.net`, accept: CallEnum.Write },
7464
+ ].concat(shuffle([
7465
+ { url: `${appId}-1.algolianet.com` },
7466
+ { url: `${appId}-2.algolianet.com` },
7467
+ { url: `${appId}-3.algolianet.com` },
7468
+ ])),
7469
+ ...options,
7470
+ headers: {
7471
+ ...auth.headers(),
7472
+ ...{ 'content-type': 'application/x-www-form-urlencoded' },
7473
+ ...options.headers,
7474
+ },
7475
+ queryParameters: {
7476
+ ...auth.queryParameters(),
7477
+ ...options.queryParameters,
7478
+ },
7479
+ });
7480
+ const base = {
7481
+ transporter,
7482
+ appId,
7483
+ addAlgoliaAgent(segment, version) {
7484
+ transporter.userAgent.add({ segment, version });
7485
+ },
7486
+ clearCache() {
7487
+ return Promise.all([
7488
+ transporter.requestsCache.clear(),
7489
+ transporter.responsesCache.clear(),
7490
+ ]).then(() => undefined);
7491
+ },
7492
+ };
7493
+ return addMethods(base, options.methods);
7494
+ };
7495
+
7496
+ const customRequest = (base) => {
7497
+ return (request, requestOptions) => {
7498
+ if (request.method === MethodEnum.Get) {
7499
+ return base.transporter.read(request, requestOptions);
7500
+ }
7501
+ return base.transporter.write(request, requestOptions);
7502
+ };
7503
+ };
7504
+
7505
+ const initIndex = (base) => {
7506
+ return (indexName, options = {}) => {
7507
+ const searchIndex = {
7508
+ transporter: base.transporter,
7509
+ appId: base.appId,
7510
+ indexName,
7511
+ };
7512
+ return addMethods(searchIndex, options.methods);
7513
+ };
7514
+ };
7515
+
7516
+ const multipleQueries = (base) => {
7517
+ return (queries, requestOptions) => {
7518
+ const requests = queries.map(query => {
7519
+ return {
7520
+ ...query,
7521
+ params: serializeQueryParameters(query.params || {}),
7522
+ };
7523
+ });
7524
+ return base.transporter.read({
7525
+ method: MethodEnum.Post,
7526
+ path: '1/indexes/*/queries',
7527
+ data: {
7528
+ requests,
7529
+ },
7530
+ cacheable: true,
7531
+ }, requestOptions);
7532
+ };
7533
+ };
7534
+
7535
+ const multipleSearchForFacetValues = (base) => {
7536
+ return (queries, requestOptions) => {
7537
+ return Promise.all(queries.map(query => {
7538
+ const { facetName, facetQuery, ...params } = query.params;
7539
+ return initIndex(base)(query.indexName, {
7540
+ methods: { searchForFacetValues },
7541
+ }).searchForFacetValues(facetName, facetQuery, {
7542
+ ...requestOptions,
7543
+ ...params,
7544
+ });
7545
+ }));
7546
+ };
7547
+ };
7548
+
7549
+ const findAnswers = (base) => {
7550
+ return (query, queryLanguages, requestOptions) => {
7551
+ return base.transporter.read({
7552
+ method: MethodEnum.Post,
7553
+ path: encode('1/answers/%s/prediction', base.indexName),
7554
+ data: {
7555
+ query,
7556
+ queryLanguages,
7557
+ },
7558
+ cacheable: true,
7559
+ }, requestOptions);
7560
+ };
7561
+ };
7562
+
7563
+ const search$1 = (base) => {
7564
+ return (query, requestOptions) => {
7565
+ return base.transporter.read({
7566
+ method: MethodEnum.Post,
7567
+ path: encode('1/indexes/%s/query', base.indexName),
7568
+ data: {
7569
+ query,
7570
+ },
7571
+ cacheable: true,
7572
+ }, requestOptions);
7573
+ };
7574
+ };
7575
+
7576
+ const searchForFacetValues = (base) => {
7577
+ return (facetName, facetQuery, requestOptions) => {
7578
+ return base.transporter.read({
7579
+ method: MethodEnum.Post,
7580
+ path: encode('1/indexes/%s/facets/%s/query', base.indexName, facetName),
7581
+ data: {
7582
+ facetQuery,
7583
+ },
7584
+ cacheable: true,
7585
+ }, requestOptions);
7586
+ };
7587
+ };
7588
+
7589
+ const LogLevelEnum = {
7590
+ Debug: 1,
7591
+ Info: 2,
7592
+ Error: 3,
7593
+ };
7594
+
7595
+ /* eslint no-console: 0 */
7596
+ function createConsoleLogger(logLevel) {
7597
+ return {
7598
+ debug(message, args) {
7599
+ if (LogLevelEnum.Debug >= logLevel) {
7600
+ console.debug(message, args);
7601
+ }
7602
+ return Promise.resolve();
7603
+ },
7604
+ info(message, args) {
7605
+ if (LogLevelEnum.Info >= logLevel) {
7606
+ console.info(message, args);
7607
+ }
7608
+ return Promise.resolve();
7609
+ },
7610
+ error(message, args) {
7611
+ console.error(message, args);
7612
+ return Promise.resolve();
7613
+ },
7614
+ };
7615
+ }
7616
+
7617
+ function createBrowserXhrRequester() {
7618
+ return {
7619
+ send(request) {
7620
+ return new Promise((resolve) => {
7621
+ const baseRequester = new XMLHttpRequest();
7622
+ baseRequester.open(request.method, request.url, true);
7623
+ Object.keys(request.headers).forEach(key => baseRequester.setRequestHeader(key, request.headers[key]));
7624
+ const createTimeout = (timeout, content) => {
7625
+ return setTimeout(() => {
7626
+ baseRequester.abort();
7627
+ resolve({
7628
+ status: 0,
7629
+ content,
7630
+ isTimedOut: true,
7631
+ });
7632
+ }, timeout * 1000);
7633
+ };
7634
+ const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');
7635
+ // eslint-disable-next-line functional/no-let
7636
+ let responseTimeout;
7637
+ // eslint-disable-next-line functional/immutable-data
7638
+ baseRequester.onreadystatechange = () => {
7639
+ if (baseRequester.readyState > baseRequester.OPENED && responseTimeout === undefined) {
7640
+ clearTimeout(connectTimeout);
7641
+ responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout');
7642
+ }
7643
+ };
7644
+ // eslint-disable-next-line functional/immutable-data
7645
+ baseRequester.onerror = () => {
7646
+ // istanbul ignore next
7647
+ if (baseRequester.status === 0) {
7648
+ clearTimeout(connectTimeout);
7649
+ clearTimeout(responseTimeout);
7650
+ resolve({
7651
+ content: baseRequester.responseText || 'Network request failed',
7652
+ status: baseRequester.status,
7653
+ isTimedOut: false,
7654
+ });
7655
+ }
7656
+ };
7657
+ // eslint-disable-next-line functional/immutable-data
7658
+ baseRequester.onload = () => {
7659
+ clearTimeout(connectTimeout);
7660
+ clearTimeout(responseTimeout);
7661
+ resolve({
7662
+ content: baseRequester.responseText,
7663
+ status: baseRequester.status,
7664
+ isTimedOut: false,
7665
+ });
7666
+ };
7667
+ baseRequester.send(request.data);
7668
+ });
7669
+ },
7670
+ };
7671
+ }
7672
+
7673
+ function algoliasearch(appId, apiKey, options) {
7674
+ const commonOptions = {
7675
+ appId,
7676
+ apiKey,
7677
+ timeouts: {
7678
+ connect: 1,
7679
+ read: 2,
7680
+ write: 30,
7681
+ },
7682
+ requester: createBrowserXhrRequester(),
7683
+ logger: createConsoleLogger(LogLevelEnum.Error),
7684
+ responsesCache: createInMemoryCache(),
7685
+ requestsCache: createInMemoryCache({ serializable: false }),
7686
+ hostsCache: createFallbackableCache({
7687
+ caches: [
7688
+ createBrowserLocalStorageCache({ key: `${version}-${appId}` }),
7689
+ createInMemoryCache(),
7690
+ ],
7691
+ }),
7692
+ userAgent: createUserAgent(version).add({
7693
+ segment: 'Browser',
7694
+ version: 'lite',
7695
+ }),
7696
+ authMode: AuthMode.WithinQueryParameters,
7697
+ };
7698
+ return createSearchClient({
7699
+ ...commonOptions,
7700
+ ...options,
7701
+ methods: {
7702
+ search: multipleQueries,
7703
+ searchForFacetValues: multipleSearchForFacetValues,
7704
+ multipleQueries,
7705
+ multipleSearchForFacetValues,
7706
+ customRequest,
7707
+ initIndex: base => (indexName) => {
7708
+ return initIndex(base)(indexName, {
7709
+ methods: { search: search$1, searchForFacetValues, findAnswers },
7710
+ });
7711
+ },
7712
+ },
7713
+ });
7714
+ }
7715
+ // eslint-disable-next-line functional/immutable-data
7716
+ algoliasearch.version = version;
6835
7717
 
6836
7718
  class PromiseQueue {
6837
7719
  constructor() {
@@ -6909,2013 +7791,85 @@ const debounce$2 = (callback, wait = 0) => {
6909
7791
  };
6910
7792
  };
6911
7793
 
6912
- /* eslint complexity: [2, 18], max-statements: [2, 33] */
6913
- var shams = function hasSymbols() {
6914
- if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
6915
- if (typeof Symbol.iterator === 'symbol') { return true; }
6916
-
6917
- var obj = {};
6918
- var sym = Symbol('test');
6919
- var symObj = Object(sym);
6920
- if (typeof sym === 'string') { return false; }
6921
-
6922
- if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
6923
- if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
6924
-
6925
- // temp disabled per https://github.com/ljharb/object.assign/issues/17
6926
- // if (sym instanceof Symbol) { return false; }
6927
- // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
6928
- // if (!(symObj instanceof Symbol)) { return false; }
6929
-
6930
- // if (typeof Symbol.prototype.toString !== 'function') { return false; }
6931
- // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
6932
-
6933
- var symVal = 42;
6934
- obj[sym] = symVal;
6935
- for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop
6936
- if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
6937
-
6938
- if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
6939
-
6940
- var syms = Object.getOwnPropertySymbols(obj);
6941
- if (syms.length !== 1 || syms[0] !== sym) { return false; }
6942
-
6943
- if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
6944
-
6945
- if (typeof Object.getOwnPropertyDescriptor === 'function') {
6946
- var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
6947
- if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
6948
- }
6949
-
6950
- return true;
6951
- };
6952
-
6953
- var origSymbol = typeof Symbol !== 'undefined' && Symbol;
6954
-
6955
-
6956
- var hasSymbols$1 = function hasNativeSymbols() {
6957
- if (typeof origSymbol !== 'function') { return false; }
6958
- if (typeof Symbol !== 'function') { return false; }
6959
- if (typeof origSymbol('foo') !== 'symbol') { return false; }
6960
- if (typeof Symbol('bar') !== 'symbol') { return false; }
6961
-
6962
- return shams();
6963
- };
6964
-
6965
- /* eslint no-invalid-this: 1 */
6966
-
6967
- var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';
6968
- var slice = Array.prototype.slice;
6969
- var toStr$1 = Object.prototype.toString;
6970
- var funcType = '[object Function]';
6971
-
6972
- var implementation = function bind(that) {
6973
- var target = this;
6974
- if (typeof target !== 'function' || toStr$1.call(target) !== funcType) {
6975
- throw new TypeError(ERROR_MESSAGE + target);
6976
- }
6977
- var args = slice.call(arguments, 1);
6978
-
6979
- var bound;
6980
- var binder = function () {
6981
- if (this instanceof bound) {
6982
- var result = target.apply(
6983
- this,
6984
- args.concat(slice.call(arguments))
6985
- );
6986
- if (Object(result) === result) {
6987
- return result;
6988
- }
6989
- return this;
6990
- } else {
6991
- return target.apply(
6992
- that,
6993
- args.concat(slice.call(arguments))
6994
- );
6995
- }
6996
- };
6997
-
6998
- var boundLength = Math.max(0, target.length - args.length);
6999
- var boundArgs = [];
7000
- for (var i = 0; i < boundLength; i++) {
7001
- boundArgs.push('$' + i);
7002
- }
7003
-
7004
- bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);
7005
-
7006
- if (target.prototype) {
7007
- var Empty = function Empty() {};
7008
- Empty.prototype = target.prototype;
7009
- bound.prototype = new Empty();
7010
- Empty.prototype = null;
7011
- }
7012
-
7013
- return bound;
7014
- };
7015
-
7016
- var functionBind = Function.prototype.bind || implementation;
7017
-
7018
- var src = functionBind.call(Function.call, Object.prototype.hasOwnProperty);
7019
-
7020
- var undefined$1;
7021
-
7022
- var $SyntaxError = SyntaxError;
7023
- var $Function = Function;
7024
- var $TypeError$1 = TypeError;
7025
-
7026
- // eslint-disable-next-line consistent-return
7027
- var getEvalledConstructor = function (expressionSyntax) {
7028
- try {
7029
- return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')();
7030
- } catch (e) {}
7031
- };
7032
-
7033
- var $gOPD = Object.getOwnPropertyDescriptor;
7034
-
7035
- var throwTypeError = function () {
7036
- throw new $TypeError$1();
7037
- };
7038
- var ThrowTypeError = $gOPD
7039
- ? (function () {
7040
- try {
7041
- return throwTypeError;
7042
- } catch (calleeThrows) {
7043
- try {
7044
- // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')
7045
- return $gOPD(arguments, 'callee').get;
7046
- } catch (gOPDthrows) {
7047
- return throwTypeError;
7048
- }
7049
- }
7050
- }())
7051
- : throwTypeError;
7052
-
7053
- var hasSymbols = hasSymbols$1();
7054
-
7055
- var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
7056
-
7057
- var needsEval = {};
7058
-
7059
- var TypedArray = typeof Uint8Array === 'undefined' ? undefined$1 : getProto(Uint8Array);
7060
-
7061
- var INTRINSICS = {
7062
- '%AggregateError%': typeof AggregateError === 'undefined' ? undefined$1 : AggregateError,
7063
- '%Array%': Array,
7064
- '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined$1 : ArrayBuffer,
7065
- '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined$1,
7066
- '%AsyncFromSyncIteratorPrototype%': undefined$1,
7067
- '%AsyncFunction%': needsEval,
7068
- '%AsyncGenerator%': needsEval,
7069
- '%AsyncGeneratorFunction%': needsEval,
7070
- '%AsyncIteratorPrototype%': needsEval,
7071
- '%Atomics%': typeof Atomics === 'undefined' ? undefined$1 : Atomics,
7072
- '%BigInt%': typeof BigInt === 'undefined' ? undefined$1 : BigInt,
7073
- '%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined$1 : BigInt64Array,
7074
- '%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined$1 : BigUint64Array,
7075
- '%Boolean%': Boolean,
7076
- '%DataView%': typeof DataView === 'undefined' ? undefined$1 : DataView,
7077
- '%Date%': Date,
7078
- '%decodeURI%': decodeURI,
7079
- '%decodeURIComponent%': decodeURIComponent,
7080
- '%encodeURI%': encodeURI,
7081
- '%encodeURIComponent%': encodeURIComponent,
7082
- '%Error%': Error,
7083
- '%eval%': eval, // eslint-disable-line no-eval
7084
- '%EvalError%': EvalError,
7085
- '%Float32Array%': typeof Float32Array === 'undefined' ? undefined$1 : Float32Array,
7086
- '%Float64Array%': typeof Float64Array === 'undefined' ? undefined$1 : Float64Array,
7087
- '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined$1 : FinalizationRegistry,
7088
- '%Function%': $Function,
7089
- '%GeneratorFunction%': needsEval,
7090
- '%Int8Array%': typeof Int8Array === 'undefined' ? undefined$1 : Int8Array,
7091
- '%Int16Array%': typeof Int16Array === 'undefined' ? undefined$1 : Int16Array,
7092
- '%Int32Array%': typeof Int32Array === 'undefined' ? undefined$1 : Int32Array,
7093
- '%isFinite%': isFinite,
7094
- '%isNaN%': isNaN,
7095
- '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined$1,
7096
- '%JSON%': typeof JSON === 'object' ? JSON : undefined$1,
7097
- '%Map%': typeof Map === 'undefined' ? undefined$1 : Map,
7098
- '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined$1 : getProto(new Map()[Symbol.iterator]()),
7099
- '%Math%': Math,
7100
- '%Number%': Number,
7101
- '%Object%': Object,
7102
- '%parseFloat%': parseFloat,
7103
- '%parseInt%': parseInt,
7104
- '%Promise%': typeof Promise === 'undefined' ? undefined$1 : Promise,
7105
- '%Proxy%': typeof Proxy === 'undefined' ? undefined$1 : Proxy,
7106
- '%RangeError%': RangeError,
7107
- '%ReferenceError%': ReferenceError,
7108
- '%Reflect%': typeof Reflect === 'undefined' ? undefined$1 : Reflect,
7109
- '%RegExp%': RegExp,
7110
- '%Set%': typeof Set === 'undefined' ? undefined$1 : Set,
7111
- '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined$1 : getProto(new Set()[Symbol.iterator]()),
7112
- '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined$1 : SharedArrayBuffer,
7113
- '%String%': String,
7114
- '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined$1,
7115
- '%Symbol%': hasSymbols ? Symbol : undefined$1,
7116
- '%SyntaxError%': $SyntaxError,
7117
- '%ThrowTypeError%': ThrowTypeError,
7118
- '%TypedArray%': TypedArray,
7119
- '%TypeError%': $TypeError$1,
7120
- '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined$1 : Uint8Array,
7121
- '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined$1 : Uint8ClampedArray,
7122
- '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined$1 : Uint16Array,
7123
- '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined$1 : Uint32Array,
7124
- '%URIError%': URIError,
7125
- '%WeakMap%': typeof WeakMap === 'undefined' ? undefined$1 : WeakMap,
7126
- '%WeakRef%': typeof WeakRef === 'undefined' ? undefined$1 : WeakRef,
7127
- '%WeakSet%': typeof WeakSet === 'undefined' ? undefined$1 : WeakSet
7128
- };
7129
-
7130
- var doEval = function doEval(name) {
7131
- var value;
7132
- if (name === '%AsyncFunction%') {
7133
- value = getEvalledConstructor('async function () {}');
7134
- } else if (name === '%GeneratorFunction%') {
7135
- value = getEvalledConstructor('function* () {}');
7136
- } else if (name === '%AsyncGeneratorFunction%') {
7137
- value = getEvalledConstructor('async function* () {}');
7138
- } else if (name === '%AsyncGenerator%') {
7139
- var fn = doEval('%AsyncGeneratorFunction%');
7140
- if (fn) {
7141
- value = fn.prototype;
7142
- }
7143
- } else if (name === '%AsyncIteratorPrototype%') {
7144
- var gen = doEval('%AsyncGenerator%');
7145
- if (gen) {
7146
- value = getProto(gen.prototype);
7147
- }
7148
- }
7149
-
7150
- INTRINSICS[name] = value;
7151
-
7152
- return value;
7153
- };
7154
-
7155
- var LEGACY_ALIASES = {
7156
- '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],
7157
- '%ArrayPrototype%': ['Array', 'prototype'],
7158
- '%ArrayProto_entries%': ['Array', 'prototype', 'entries'],
7159
- '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],
7160
- '%ArrayProto_keys%': ['Array', 'prototype', 'keys'],
7161
- '%ArrayProto_values%': ['Array', 'prototype', 'values'],
7162
- '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],
7163
- '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],
7164
- '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],
7165
- '%BooleanPrototype%': ['Boolean', 'prototype'],
7166
- '%DataViewPrototype%': ['DataView', 'prototype'],
7167
- '%DatePrototype%': ['Date', 'prototype'],
7168
- '%ErrorPrototype%': ['Error', 'prototype'],
7169
- '%EvalErrorPrototype%': ['EvalError', 'prototype'],
7170
- '%Float32ArrayPrototype%': ['Float32Array', 'prototype'],
7171
- '%Float64ArrayPrototype%': ['Float64Array', 'prototype'],
7172
- '%FunctionPrototype%': ['Function', 'prototype'],
7173
- '%Generator%': ['GeneratorFunction', 'prototype'],
7174
- '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],
7175
- '%Int8ArrayPrototype%': ['Int8Array', 'prototype'],
7176
- '%Int16ArrayPrototype%': ['Int16Array', 'prototype'],
7177
- '%Int32ArrayPrototype%': ['Int32Array', 'prototype'],
7178
- '%JSONParse%': ['JSON', 'parse'],
7179
- '%JSONStringify%': ['JSON', 'stringify'],
7180
- '%MapPrototype%': ['Map', 'prototype'],
7181
- '%NumberPrototype%': ['Number', 'prototype'],
7182
- '%ObjectPrototype%': ['Object', 'prototype'],
7183
- '%ObjProto_toString%': ['Object', 'prototype', 'toString'],
7184
- '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],
7185
- '%PromisePrototype%': ['Promise', 'prototype'],
7186
- '%PromiseProto_then%': ['Promise', 'prototype', 'then'],
7187
- '%Promise_all%': ['Promise', 'all'],
7188
- '%Promise_reject%': ['Promise', 'reject'],
7189
- '%Promise_resolve%': ['Promise', 'resolve'],
7190
- '%RangeErrorPrototype%': ['RangeError', 'prototype'],
7191
- '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],
7192
- '%RegExpPrototype%': ['RegExp', 'prototype'],
7193
- '%SetPrototype%': ['Set', 'prototype'],
7194
- '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],
7195
- '%StringPrototype%': ['String', 'prototype'],
7196
- '%SymbolPrototype%': ['Symbol', 'prototype'],
7197
- '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],
7198
- '%TypedArrayPrototype%': ['TypedArray', 'prototype'],
7199
- '%TypeErrorPrototype%': ['TypeError', 'prototype'],
7200
- '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],
7201
- '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],
7202
- '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],
7203
- '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],
7204
- '%URIErrorPrototype%': ['URIError', 'prototype'],
7205
- '%WeakMapPrototype%': ['WeakMap', 'prototype'],
7206
- '%WeakSetPrototype%': ['WeakSet', 'prototype']
7207
- };
7208
-
7209
-
7210
-
7211
- var $concat$1 = functionBind.call(Function.call, Array.prototype.concat);
7212
- var $spliceApply = functionBind.call(Function.apply, Array.prototype.splice);
7213
- var $replace$1 = functionBind.call(Function.call, String.prototype.replace);
7214
- var $strSlice = functionBind.call(Function.call, String.prototype.slice);
7215
- var $exec = functionBind.call(Function.call, RegExp.prototype.exec);
7216
-
7217
- /* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */
7218
- var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
7219
- var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */
7220
- var stringToPath = function stringToPath(string) {
7221
- var first = $strSlice(string, 0, 1);
7222
- var last = $strSlice(string, -1);
7223
- if (first === '%' && last !== '%') {
7224
- throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');
7225
- } else if (last === '%' && first !== '%') {
7226
- throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');
7227
- }
7228
- var result = [];
7229
- $replace$1(string, rePropName, function (match, number, quote, subString) {
7230
- result[result.length] = quote ? $replace$1(subString, reEscapeChar, '$1') : number || match;
7231
- });
7232
- return result;
7233
- };
7234
- /* end adaptation */
7235
-
7236
- var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {
7237
- var intrinsicName = name;
7238
- var alias;
7239
- if (src(LEGACY_ALIASES, intrinsicName)) {
7240
- alias = LEGACY_ALIASES[intrinsicName];
7241
- intrinsicName = '%' + alias[0] + '%';
7242
- }
7243
-
7244
- if (src(INTRINSICS, intrinsicName)) {
7245
- var value = INTRINSICS[intrinsicName];
7246
- if (value === needsEval) {
7247
- value = doEval(intrinsicName);
7248
- }
7249
- if (typeof value === 'undefined' && !allowMissing) {
7250
- throw new $TypeError$1('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
7251
- }
7252
-
7253
- return {
7254
- alias: alias,
7255
- name: intrinsicName,
7256
- value: value
7257
- };
7258
- }
7259
-
7260
- throw new $SyntaxError('intrinsic ' + name + ' does not exist!');
7261
- };
7262
-
7263
- var getIntrinsic = function GetIntrinsic(name, allowMissing) {
7264
- if (typeof name !== 'string' || name.length === 0) {
7265
- throw new $TypeError$1('intrinsic name must be a non-empty string');
7266
- }
7267
- if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
7268
- throw new $TypeError$1('"allowMissing" argument must be a boolean');
7269
- }
7270
-
7271
- if ($exec(/^%?[^%]*%?$/, name) === null) {
7272
- throw new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');
7273
- }
7274
- var parts = stringToPath(name);
7275
- var intrinsicBaseName = parts.length > 0 ? parts[0] : '';
7276
-
7277
- var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);
7278
- var intrinsicRealName = intrinsic.name;
7279
- var value = intrinsic.value;
7280
- var skipFurtherCaching = false;
7281
-
7282
- var alias = intrinsic.alias;
7283
- if (alias) {
7284
- intrinsicBaseName = alias[0];
7285
- $spliceApply(parts, $concat$1([0, 1], alias));
7286
- }
7287
-
7288
- for (var i = 1, isOwn = true; i < parts.length; i += 1) {
7289
- var part = parts[i];
7290
- var first = $strSlice(part, 0, 1);
7291
- var last = $strSlice(part, -1);
7292
- if (
7293
- (
7294
- (first === '"' || first === "'" || first === '`')
7295
- || (last === '"' || last === "'" || last === '`')
7296
- )
7297
- && first !== last
7298
- ) {
7299
- throw new $SyntaxError('property names with quotes must have matching quotes');
7300
- }
7301
- if (part === 'constructor' || !isOwn) {
7302
- skipFurtherCaching = true;
7303
- }
7304
-
7305
- intrinsicBaseName += '.' + part;
7306
- intrinsicRealName = '%' + intrinsicBaseName + '%';
7307
-
7308
- if (src(INTRINSICS, intrinsicRealName)) {
7309
- value = INTRINSICS[intrinsicRealName];
7310
- } else if (value != null) {
7311
- if (!(part in value)) {
7312
- if (!allowMissing) {
7313
- throw new $TypeError$1('base intrinsic for ' + name + ' exists, but the property is not available.');
7314
- }
7315
- return void undefined$1;
7316
- }
7317
- if ($gOPD && (i + 1) >= parts.length) {
7318
- var desc = $gOPD(value, part);
7319
- isOwn = !!desc;
7320
-
7321
- // By convention, when a data property is converted to an accessor
7322
- // property to emulate a data property that does not suffer from
7323
- // the override mistake, that accessor's getter is marked with
7324
- // an `originalValue` property. Here, when we detect this, we
7325
- // uphold the illusion by pretending to see that original data
7326
- // property, i.e., returning the value rather than the getter
7327
- // itself.
7328
- if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {
7329
- value = desc.get;
7330
- } else {
7331
- value = value[part];
7332
- }
7333
- } else {
7334
- isOwn = src(value, part);
7335
- value = value[part];
7336
- }
7337
-
7338
- if (isOwn && !skipFurtherCaching) {
7339
- INTRINSICS[intrinsicRealName] = value;
7340
- }
7341
- }
7342
- }
7343
- return value;
7344
- };
7345
-
7346
- var callBind = createCommonjsModule(function (module) {
7347
-
7348
-
7349
-
7350
-
7351
- var $apply = getIntrinsic('%Function.prototype.apply%');
7352
- var $call = getIntrinsic('%Function.prototype.call%');
7353
- var $reflectApply = getIntrinsic('%Reflect.apply%', true) || functionBind.call($call, $apply);
7354
-
7355
- var $gOPD = getIntrinsic('%Object.getOwnPropertyDescriptor%', true);
7356
- var $defineProperty = getIntrinsic('%Object.defineProperty%', true);
7357
- var $max = getIntrinsic('%Math.max%');
7358
-
7359
- if ($defineProperty) {
7360
- try {
7361
- $defineProperty({}, 'a', { value: 1 });
7362
- } catch (e) {
7363
- // IE 8 has a broken defineProperty
7364
- $defineProperty = null;
7365
- }
7366
- }
7367
-
7368
- module.exports = function callBind(originalFunction) {
7369
- var func = $reflectApply(functionBind, $call, arguments);
7370
- if ($gOPD && $defineProperty) {
7371
- var desc = $gOPD(func, 'length');
7372
- if (desc.configurable) {
7373
- // original length, plus the receiver, minus any additional arguments (after the receiver)
7374
- $defineProperty(
7375
- func,
7376
- 'length',
7377
- { value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }
7378
- );
7379
- }
7380
- }
7381
- return func;
7382
- };
7383
-
7384
- var applyBind = function applyBind() {
7385
- return $reflectApply(functionBind, $apply, arguments);
7386
- };
7387
-
7388
- if ($defineProperty) {
7389
- $defineProperty(module.exports, 'apply', { value: applyBind });
7390
- } else {
7391
- module.exports.apply = applyBind;
7392
- }
7393
- });
7394
-
7395
- var $indexOf = callBind(getIntrinsic('String.prototype.indexOf'));
7396
-
7397
- var callBound = function callBoundIntrinsic(name, allowMissing) {
7398
- var intrinsic = getIntrinsic(name, !!allowMissing);
7399
- if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {
7400
- return callBind(intrinsic);
7401
- }
7402
- return intrinsic;
7403
- };
7404
-
7405
- var _nodeResolve_empty = {};
7406
-
7407
- var _nodeResolve_empty$1 = /*#__PURE__*/Object.freeze({
7408
- __proto__: null,
7409
- 'default': _nodeResolve_empty
7410
- });
7411
-
7412
- var utilInspect = /*@__PURE__*/getAugmentedNamespace(_nodeResolve_empty$1);
7413
-
7414
- var hasMap = typeof Map === 'function' && Map.prototype;
7415
- var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;
7416
- var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;
7417
- var mapForEach = hasMap && Map.prototype.forEach;
7418
- var hasSet = typeof Set === 'function' && Set.prototype;
7419
- var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;
7420
- var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;
7421
- var setForEach = hasSet && Set.prototype.forEach;
7422
- var hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;
7423
- var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;
7424
- var hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;
7425
- var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;
7426
- var hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;
7427
- var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;
7428
- var booleanValueOf = Boolean.prototype.valueOf;
7429
- var objectToString$1 = Object.prototype.toString;
7430
- var functionToString = Function.prototype.toString;
7431
- var $match = String.prototype.match;
7432
- var $slice = String.prototype.slice;
7433
- var $replace = String.prototype.replace;
7434
- var $toUpperCase = String.prototype.toUpperCase;
7435
- var $toLowerCase = String.prototype.toLowerCase;
7436
- var $test = RegExp.prototype.test;
7437
- var $concat = Array.prototype.concat;
7438
- var $join = Array.prototype.join;
7439
- var $arrSlice = Array.prototype.slice;
7440
- var $floor = Math.floor;
7441
- var bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;
7442
- var gOPS = Object.getOwnPropertySymbols;
7443
- var symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;
7444
- var hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';
7445
- // ie, `has-tostringtag/shams
7446
- var toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')
7447
- ? Symbol.toStringTag
7448
- : null;
7449
- var isEnumerable = Object.prototype.propertyIsEnumerable;
7450
-
7451
- var gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (
7452
- [].__proto__ === Array.prototype // eslint-disable-line no-proto
7453
- ? function (O) {
7454
- return O.__proto__; // eslint-disable-line no-proto
7455
- }
7456
- : null
7457
- );
7458
-
7459
- function addNumericSeparator(num, str) {
7460
- if (
7461
- num === Infinity
7462
- || num === -Infinity
7463
- || num !== num
7464
- || (num && num > -1000 && num < 1000)
7465
- || $test.call(/e/, str)
7466
- ) {
7467
- return str;
7468
- }
7469
- var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;
7470
- if (typeof num === 'number') {
7471
- var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)
7472
- if (int !== num) {
7473
- var intStr = String(int);
7474
- var dec = $slice.call(str, intStr.length + 1);
7475
- return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');
7794
+ function parse(searchParams, replacer) {
7795
+ const params = new URLSearchParams([...new URLSearchParams(searchParams)].map(([k, v]) => [
7796
+ k.replace(/([[\]])/g, (_, s) => s === '[' ? '.' : ''),
7797
+ v,
7798
+ ]));
7799
+ const t = {};
7800
+ new Set(params.keys()).forEach((paramKey) => {
7801
+ const rawValue = params
7802
+ .getAll(paramKey)
7803
+ .join(',')
7804
+ .split(',')
7805
+ .map(n => decodeURIComponent(n.replace(/\+/g, ' ')));
7806
+ const value = rawValue.length === 1 ? rawValue[0] : rawValue;
7807
+ let key = paramKey;
7808
+ let v = replacer ?
7809
+ replacer({
7810
+ firstRawValue: params.get(paramKey).split(','),
7811
+ key,
7812
+ rawValue,
7813
+ value,
7814
+ }) :
7815
+ value;
7816
+ if (key.includes('.')) {
7817
+ const [f, ...kl] = key.split('.');
7818
+ const o = (t[f] || {});
7819
+ const l = kl.pop();
7820
+ (kl.reduce((p, n) => (p[n] ??= {}), o))[l] = v;
7821
+ key = f;
7822
+ v = o;
7476
7823
  }
7477
- }
7478
- return $replace.call(str, sepRegex, '$&_');
7824
+ t[key] = v;
7825
+ });
7826
+ return t;
7479
7827
  }
7480
7828
 
7481
-
7482
- var inspectCustom = utilInspect.custom;
7483
- var inspectSymbol = isSymbol$1(inspectCustom) ? inspectCustom : null;
7484
-
7485
- var objectInspect = function inspect_(obj, options, depth, seen) {
7486
- var opts = options || {};
7487
-
7488
- if (has$3(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {
7489
- throw new TypeError('option "quoteStyle" must be "single" or "double"');
7490
- }
7491
- if (
7492
- has$3(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'
7493
- ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity
7494
- : opts.maxStringLength !== null
7495
- )
7496
- ) {
7497
- throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');
7498
- }
7499
- var customInspect = has$3(opts, 'customInspect') ? opts.customInspect : true;
7500
- if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {
7501
- throw new TypeError('option "customInspect", if provided, must be `true`, `false`, or `\'symbol\'`');
7502
- }
7503
-
7504
- if (
7505
- has$3(opts, 'indent')
7506
- && opts.indent !== null
7507
- && opts.indent !== '\t'
7508
- && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)
7509
- ) {
7510
- throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');
7511
- }
7512
- if (has$3(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {
7513
- throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');
7514
- }
7515
- var numericSeparator = opts.numericSeparator;
7516
-
7517
- if (typeof obj === 'undefined') {
7518
- return 'undefined';
7519
- }
7520
- if (obj === null) {
7521
- return 'null';
7522
- }
7523
- if (typeof obj === 'boolean') {
7524
- return obj ? 'true' : 'false';
7525
- }
7526
-
7527
- if (typeof obj === 'string') {
7528
- return inspectString(obj, opts);
7529
- }
7530
- if (typeof obj === 'number') {
7531
- if (obj === 0) {
7532
- return Infinity / obj > 0 ? '0' : '-0';
7533
- }
7534
- var str = String(obj);
7535
- return numericSeparator ? addNumericSeparator(obj, str) : str;
7536
- }
7537
- if (typeof obj === 'bigint') {
7538
- var bigIntStr = String(obj) + 'n';
7539
- return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;
7540
- }
7541
-
7542
- var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;
7543
- if (typeof depth === 'undefined') { depth = 0; }
7544
- if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {
7545
- return isArray$3(obj) ? '[Array]' : '[Object]';
7546
- }
7547
-
7548
- var indent = getIndent(opts, depth);
7549
-
7550
- if (typeof seen === 'undefined') {
7551
- seen = [];
7552
- } else if (indexOf(seen, obj) >= 0) {
7553
- return '[Circular]';
7554
- }
7555
-
7556
- function inspect(value, from, noIndent) {
7557
- if (from) {
7558
- seen = $arrSlice.call(seen);
7559
- seen.push(from);
7560
- }
7561
- if (noIndent) {
7562
- var newOpts = {
7563
- depth: opts.depth
7564
- };
7565
- if (has$3(opts, 'quoteStyle')) {
7566
- newOpts.quoteStyle = opts.quoteStyle;
7829
+ function stringify(input, replacer) {
7830
+ if (!input)
7831
+ return '';
7832
+ const stack = [['', input]];
7833
+ const sp = new URLSearchParams();
7834
+ while (stack.length) {
7835
+ const [itemKey, itemValue] = stack.pop();
7836
+ Object.entries(itemValue).forEach(([key, rawValue]) => {
7837
+ if (rawValue == null && replacer == null)
7838
+ return;
7839
+ const typeOfValue = typeof (rawValue);
7840
+ const flattenedKey = itemKey ? `${itemKey}.${key}` : key;
7841
+ if (rawValue !== null && typeOfValue === 'object' && !Array.isArray(rawValue)) {
7842
+ stack.push([flattenedKey, rawValue]);
7567
7843
  }
7568
- return inspect_(value, newOpts, depth + 1, seen);
7569
- }
7570
- return inspect_(value, opts, depth + 1, seen);
7571
- }
7572
-
7573
- if (typeof obj === 'function' && !isRegExp$1(obj)) { // in older engines, regexes are callable
7574
- var name = nameOf(obj);
7575
- var keys = arrObjKeys(obj, inspect);
7576
- return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');
7577
- }
7578
- if (isSymbol$1(obj)) {
7579
- var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, '$1') : symToString.call(obj);
7580
- return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;
7581
- }
7582
- if (isElement$1(obj)) {
7583
- var s = '<' + $toLowerCase.call(String(obj.nodeName));
7584
- var attrs = obj.attributes || [];
7585
- for (var i = 0; i < attrs.length; i++) {
7586
- s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);
7587
- }
7588
- s += '>';
7589
- if (obj.childNodes && obj.childNodes.length) { s += '...'; }
7590
- s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';
7591
- return s;
7592
- }
7593
- if (isArray$3(obj)) {
7594
- if (obj.length === 0) { return '[]'; }
7595
- var xs = arrObjKeys(obj, inspect);
7596
- if (indent && !singleLineValues(xs)) {
7597
- return '[' + indentedJoin(xs, indent) + ']';
7598
- }
7599
- return '[ ' + $join.call(xs, ', ') + ' ]';
7600
- }
7601
- if (isError(obj)) {
7602
- var parts = arrObjKeys(obj, inspect);
7603
- if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {
7604
- return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';
7605
- }
7606
- if (parts.length === 0) { return '[' + String(obj) + ']'; }
7607
- return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';
7608
- }
7609
- if (typeof obj === 'object' && customInspect) {
7610
- if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {
7611
- return utilInspect(obj, { depth: maxDepth - depth });
7612
- } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {
7613
- return obj.inspect();
7614
- }
7615
- }
7616
- if (isMap(obj)) {
7617
- var mapParts = [];
7618
- if (mapForEach) {
7619
- mapForEach.call(obj, function (value, key) {
7620
- mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));
7621
- });
7622
- }
7623
- return collectionOf('Map', mapSize.call(obj), mapParts, indent);
7624
- }
7625
- if (isSet(obj)) {
7626
- var setParts = [];
7627
- if (setForEach) {
7628
- setForEach.call(obj, function (value) {
7629
- setParts.push(inspect(value, obj));
7630
- });
7631
- }
7632
- return collectionOf('Set', setSize.call(obj), setParts, indent);
7633
- }
7634
- if (isWeakMap(obj)) {
7635
- return weakCollectionOf('WeakMap');
7636
- }
7637
- if (isWeakSet(obj)) {
7638
- return weakCollectionOf('WeakSet');
7639
- }
7640
- if (isWeakRef(obj)) {
7641
- return weakCollectionOf('WeakRef');
7642
- }
7643
- if (isNumber(obj)) {
7644
- return markBoxed(inspect(Number(obj)));
7645
- }
7646
- if (isBigInt(obj)) {
7647
- return markBoxed(inspect(bigIntValueOf.call(obj)));
7648
- }
7649
- if (isBoolean(obj)) {
7650
- return markBoxed(booleanValueOf.call(obj));
7651
- }
7652
- if (isString(obj)) {
7653
- return markBoxed(inspect(String(obj)));
7654
- }
7655
- if (!isDate(obj) && !isRegExp$1(obj)) {
7656
- var ys = arrObjKeys(obj, inspect);
7657
- var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;
7658
- var protoTag = obj instanceof Object ? '' : 'null prototype';
7659
- var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';
7660
- var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';
7661
- var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');
7662
- if (ys.length === 0) { return tag + '{}'; }
7663
- if (indent) {
7664
- return tag + '{' + indentedJoin(ys, indent) + '}';
7665
- }
7666
- return tag + '{ ' + $join.call(ys, ', ') + ' }';
7667
- }
7668
- return String(obj);
7669
- };
7670
-
7671
- function wrapQuotes(s, defaultStyle, opts) {
7672
- var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '"' : "'";
7673
- return quoteChar + s + quoteChar;
7674
- }
7675
-
7676
- function quote(s) {
7677
- return $replace.call(String(s), /"/g, '&quot;');
7678
- }
7679
-
7680
- function isArray$3(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
7681
- function isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
7682
- function isRegExp$1(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
7683
- function isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
7684
- function isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
7685
- function isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
7686
- function isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
7687
-
7688
- // Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives
7689
- function isSymbol$1(obj) {
7690
- if (hasShammedSymbols) {
7691
- return obj && typeof obj === 'object' && obj instanceof Symbol;
7692
- }
7693
- if (typeof obj === 'symbol') {
7694
- return true;
7695
- }
7696
- if (!obj || typeof obj !== 'object' || !symToString) {
7697
- return false;
7698
- }
7699
- try {
7700
- symToString.call(obj);
7701
- return true;
7702
- } catch (e) {}
7703
- return false;
7704
- }
7705
-
7706
- function isBigInt(obj) {
7707
- if (!obj || typeof obj !== 'object' || !bigIntValueOf) {
7708
- return false;
7709
- }
7710
- try {
7711
- bigIntValueOf.call(obj);
7712
- return true;
7713
- } catch (e) {}
7714
- return false;
7715
- }
7716
-
7717
- var hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };
7718
- function has$3(obj, key) {
7719
- return hasOwn.call(obj, key);
7720
- }
7721
-
7722
- function toStr(obj) {
7723
- return objectToString$1.call(obj);
7724
- }
7725
-
7726
- function nameOf(f) {
7727
- if (f.name) { return f.name; }
7728
- var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/);
7729
- if (m) { return m[1]; }
7730
- return null;
7731
- }
7732
-
7733
- function indexOf(xs, x) {
7734
- if (xs.indexOf) { return xs.indexOf(x); }
7735
- for (var i = 0, l = xs.length; i < l; i++) {
7736
- if (xs[i] === x) { return i; }
7737
- }
7738
- return -1;
7739
- }
7740
-
7741
- function isMap(x) {
7742
- if (!mapSize || !x || typeof x !== 'object') {
7743
- return false;
7744
- }
7745
- try {
7746
- mapSize.call(x);
7747
- try {
7748
- setSize.call(x);
7749
- } catch (s) {
7750
- return true;
7751
- }
7752
- return x instanceof Map; // core-js workaround, pre-v2.5.0
7753
- } catch (e) {}
7754
- return false;
7755
- }
7756
-
7757
- function isWeakMap(x) {
7758
- if (!weakMapHas || !x || typeof x !== 'object') {
7759
- return false;
7760
- }
7761
- try {
7762
- weakMapHas.call(x, weakMapHas);
7763
- try {
7764
- weakSetHas.call(x, weakSetHas);
7765
- } catch (s) {
7766
- return true;
7767
- }
7768
- return x instanceof WeakMap; // core-js workaround, pre-v2.5.0
7769
- } catch (e) {}
7770
- return false;
7771
- }
7772
-
7773
- function isWeakRef(x) {
7774
- if (!weakRefDeref || !x || typeof x !== 'object') {
7775
- return false;
7776
- }
7777
- try {
7778
- weakRefDeref.call(x);
7779
- return true;
7780
- } catch (e) {}
7781
- return false;
7782
- }
7783
-
7784
- function isSet(x) {
7785
- if (!setSize || !x || typeof x !== 'object') {
7786
- return false;
7844
+ else {
7845
+ let value = typeOfValue === 'string' ? rawValue : '';
7846
+ if (Array.isArray(rawValue))
7847
+ value = rawValue.join(',');
7848
+ else if (rawValue?.toJSON)
7849
+ value = rawValue.toJSON();
7850
+ else if (rawValue?.toString)
7851
+ value = rawValue.toString();
7852
+ else
7853
+ value = String(rawValue);
7854
+ const vv = replacer ?
7855
+ replacer({ flattenedKey, key, rawValue, value }) :
7856
+ value;
7857
+ vv != null && sp.append(flattenedKey, vv);
7858
+ }
7859
+ });
7787
7860
  }
7788
- try {
7789
- setSize.call(x);
7790
- try {
7791
- mapSize.call(x);
7792
- } catch (m) {
7793
- return true;
7794
- }
7795
- return x instanceof Set; // core-js workaround, pre-v2.5.0
7796
- } catch (e) {}
7797
- return false;
7798
- }
7799
-
7800
- function isWeakSet(x) {
7801
- if (!weakSetHas || !x || typeof x !== 'object') {
7802
- return false;
7803
- }
7804
- try {
7805
- weakSetHas.call(x, weakSetHas);
7806
- try {
7807
- weakMapHas.call(x, weakMapHas);
7808
- } catch (s) {
7809
- return true;
7810
- }
7811
- return x instanceof WeakSet; // core-js workaround, pre-v2.5.0
7812
- } catch (e) {}
7813
- return false;
7814
- }
7815
-
7816
- function isElement$1(x) {
7817
- if (!x || typeof x !== 'object') { return false; }
7818
- if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {
7819
- return true;
7820
- }
7821
- return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';
7822
- }
7823
-
7824
- function inspectString(str, opts) {
7825
- if (str.length > opts.maxStringLength) {
7826
- var remaining = str.length - opts.maxStringLength;
7827
- var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');
7828
- return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;
7829
- }
7830
- // eslint-disable-next-line no-control-regex
7831
- var s = $replace.call($replace.call(str, /(['\\])/g, '\\$1'), /[\x00-\x1f]/g, lowbyte);
7832
- return wrapQuotes(s, 'single', opts);
7833
- }
7834
-
7835
- function lowbyte(c) {
7836
- var n = c.charCodeAt(0);
7837
- var x = {
7838
- 8: 'b',
7839
- 9: 't',
7840
- 10: 'n',
7841
- 12: 'f',
7842
- 13: 'r'
7843
- }[n];
7844
- if (x) { return '\\' + x; }
7845
- return '\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));
7846
- }
7847
-
7848
- function markBoxed(str) {
7849
- return 'Object(' + str + ')';
7850
- }
7851
-
7852
- function weakCollectionOf(type) {
7853
- return type + ' { ? }';
7854
- }
7855
-
7856
- function collectionOf(type, size, entries, indent) {
7857
- var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');
7858
- return type + ' (' + size + ') {' + joinedEntries + '}';
7859
- }
7860
-
7861
- function singleLineValues(xs) {
7862
- for (var i = 0; i < xs.length; i++) {
7863
- if (indexOf(xs[i], '\n') >= 0) {
7864
- return false;
7865
- }
7866
- }
7867
- return true;
7868
- }
7869
-
7870
- function getIndent(opts, depth) {
7871
- var baseIndent;
7872
- if (opts.indent === '\t') {
7873
- baseIndent = '\t';
7874
- } else if (typeof opts.indent === 'number' && opts.indent > 0) {
7875
- baseIndent = $join.call(Array(opts.indent + 1), ' ');
7876
- } else {
7877
- return null;
7878
- }
7879
- return {
7880
- base: baseIndent,
7881
- prev: $join.call(Array(depth + 1), baseIndent)
7882
- };
7883
- }
7884
-
7885
- function indentedJoin(xs, indent) {
7886
- if (xs.length === 0) { return ''; }
7887
- var lineJoiner = '\n' + indent.prev + indent.base;
7888
- return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\n' + indent.prev;
7889
- }
7890
-
7891
- function arrObjKeys(obj, inspect) {
7892
- var isArr = isArray$3(obj);
7893
- var xs = [];
7894
- if (isArr) {
7895
- xs.length = obj.length;
7896
- for (var i = 0; i < obj.length; i++) {
7897
- xs[i] = has$3(obj, i) ? inspect(obj[i], obj) : '';
7898
- }
7899
- }
7900
- var syms = typeof gOPS === 'function' ? gOPS(obj) : [];
7901
- var symMap;
7902
- if (hasShammedSymbols) {
7903
- symMap = {};
7904
- for (var k = 0; k < syms.length; k++) {
7905
- symMap['$' + syms[k]] = syms[k];
7906
- }
7907
- }
7908
-
7909
- for (var key in obj) { // eslint-disable-line no-restricted-syntax
7910
- if (!has$3(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue
7911
- if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue
7912
- if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {
7913
- // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section
7914
- continue; // eslint-disable-line no-restricted-syntax, no-continue
7915
- } else if ($test.call(/[^\w$]/, key)) {
7916
- xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));
7917
- } else {
7918
- xs.push(key + ': ' + inspect(obj[key], obj));
7919
- }
7920
- }
7921
- if (typeof gOPS === 'function') {
7922
- for (var j = 0; j < syms.length; j++) {
7923
- if (isEnumerable.call(obj, syms[j])) {
7924
- xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));
7925
- }
7926
- }
7927
- }
7928
- return xs;
7929
- }
7930
-
7931
- var $TypeError = getIntrinsic('%TypeError%');
7932
- var $WeakMap = getIntrinsic('%WeakMap%', true);
7933
- var $Map = getIntrinsic('%Map%', true);
7934
-
7935
- var $weakMapGet = callBound('WeakMap.prototype.get', true);
7936
- var $weakMapSet = callBound('WeakMap.prototype.set', true);
7937
- var $weakMapHas = callBound('WeakMap.prototype.has', true);
7938
- var $mapGet = callBound('Map.prototype.get', true);
7939
- var $mapSet = callBound('Map.prototype.set', true);
7940
- var $mapHas = callBound('Map.prototype.has', true);
7941
-
7942
- /*
7943
- * This function traverses the list returning the node corresponding to the
7944
- * given key.
7945
- *
7946
- * That node is also moved to the head of the list, so that if it's accessed
7947
- * again we don't need to traverse the whole list. By doing so, all the recently
7948
- * used nodes can be accessed relatively quickly.
7949
- */
7950
- var listGetNode = function (list, key) { // eslint-disable-line consistent-return
7951
- for (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {
7952
- if (curr.key === key) {
7953
- prev.next = curr.next;
7954
- curr.next = list.next;
7955
- list.next = curr; // eslint-disable-line no-param-reassign
7956
- return curr;
7957
- }
7958
- }
7959
- };
7960
-
7961
- var listGet = function (objects, key) {
7962
- var node = listGetNode(objects, key);
7963
- return node && node.value;
7964
- };
7965
- var listSet = function (objects, key, value) {
7966
- var node = listGetNode(objects, key);
7967
- if (node) {
7968
- node.value = value;
7969
- } else {
7970
- // Prepend the new node to the beginning of the list
7971
- objects.next = { // eslint-disable-line no-param-reassign
7972
- key: key,
7973
- next: objects.next,
7974
- value: value
7975
- };
7976
- }
7977
- };
7978
- var listHas = function (objects, key) {
7979
- return !!listGetNode(objects, key);
7980
- };
7981
-
7982
- var sideChannel = function getSideChannel() {
7983
- var $wm;
7984
- var $m;
7985
- var $o;
7986
- var channel = {
7987
- assert: function (key) {
7988
- if (!channel.has(key)) {
7989
- throw new $TypeError('Side channel does not contain ' + objectInspect(key));
7990
- }
7991
- },
7992
- get: function (key) { // eslint-disable-line consistent-return
7993
- if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {
7994
- if ($wm) {
7995
- return $weakMapGet($wm, key);
7996
- }
7997
- } else if ($Map) {
7998
- if ($m) {
7999
- return $mapGet($m, key);
8000
- }
8001
- } else {
8002
- if ($o) { // eslint-disable-line no-lonely-if
8003
- return listGet($o, key);
8004
- }
8005
- }
8006
- },
8007
- has: function (key) {
8008
- if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {
8009
- if ($wm) {
8010
- return $weakMapHas($wm, key);
8011
- }
8012
- } else if ($Map) {
8013
- if ($m) {
8014
- return $mapHas($m, key);
8015
- }
8016
- } else {
8017
- if ($o) { // eslint-disable-line no-lonely-if
8018
- return listHas($o, key);
8019
- }
8020
- }
8021
- return false;
8022
- },
8023
- set: function (key, value) {
8024
- if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {
8025
- if (!$wm) {
8026
- $wm = new $WeakMap();
8027
- }
8028
- $weakMapSet($wm, key, value);
8029
- } else if ($Map) {
8030
- if (!$m) {
8031
- $m = new $Map();
8032
- }
8033
- $mapSet($m, key, value);
8034
- } else {
8035
- if (!$o) {
8036
- /*
8037
- * Initialize the linked list as an empty node, so that we don't have
8038
- * to special-case handling of the first node: we can always refer to
8039
- * it as (previous node).next, instead of something like (list).head
8040
- */
8041
- $o = { key: {}, next: null };
8042
- }
8043
- listSet($o, key, value);
8044
- }
8045
- }
8046
- };
8047
- return channel;
8048
- };
8049
-
8050
- var replace = String.prototype.replace;
8051
- var percentTwenties = /%20/g;
8052
-
8053
- var Format = {
8054
- RFC1738: 'RFC1738',
8055
- RFC3986: 'RFC3986'
8056
- };
8057
-
8058
- var formats = {
8059
- 'default': Format.RFC3986,
8060
- formatters: {
8061
- RFC1738: function (value) {
8062
- return replace.call(value, percentTwenties, '+');
8063
- },
8064
- RFC3986: function (value) {
8065
- return String(value);
8066
- }
8067
- },
8068
- RFC1738: Format.RFC1738,
8069
- RFC3986: Format.RFC3986
8070
- };
8071
-
8072
- var has$2 = Object.prototype.hasOwnProperty;
8073
- var isArray$2 = Array.isArray;
8074
-
8075
- var hexTable = (function () {
8076
- var array = [];
8077
- for (var i = 0; i < 256; ++i) {
8078
- array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());
8079
- }
8080
-
8081
- return array;
8082
- }());
8083
-
8084
- var compactQueue = function compactQueue(queue) {
8085
- while (queue.length > 1) {
8086
- var item = queue.pop();
8087
- var obj = item.obj[item.prop];
8088
-
8089
- if (isArray$2(obj)) {
8090
- var compacted = [];
8091
-
8092
- for (var j = 0; j < obj.length; ++j) {
8093
- if (typeof obj[j] !== 'undefined') {
8094
- compacted.push(obj[j]);
8095
- }
8096
- }
8097
-
8098
- item.obj[item.prop] = compacted;
8099
- }
8100
- }
8101
- };
8102
-
8103
- var arrayToObject = function arrayToObject(source, options) {
8104
- var obj = options && options.plainObjects ? Object.create(null) : {};
8105
- for (var i = 0; i < source.length; ++i) {
8106
- if (typeof source[i] !== 'undefined') {
8107
- obj[i] = source[i];
8108
- }
8109
- }
8110
-
8111
- return obj;
8112
- };
8113
-
8114
- var merge = function merge(target, source, options) {
8115
- /* eslint no-param-reassign: 0 */
8116
- if (!source) {
8117
- return target;
8118
- }
8119
-
8120
- if (typeof source !== 'object') {
8121
- if (isArray$2(target)) {
8122
- target.push(source);
8123
- } else if (target && typeof target === 'object') {
8124
- if ((options && (options.plainObjects || options.allowPrototypes)) || !has$2.call(Object.prototype, source)) {
8125
- target[source] = true;
8126
- }
8127
- } else {
8128
- return [target, source];
8129
- }
8130
-
8131
- return target;
8132
- }
8133
-
8134
- if (!target || typeof target !== 'object') {
8135
- return [target].concat(source);
8136
- }
8137
-
8138
- var mergeTarget = target;
8139
- if (isArray$2(target) && !isArray$2(source)) {
8140
- mergeTarget = arrayToObject(target, options);
8141
- }
8142
-
8143
- if (isArray$2(target) && isArray$2(source)) {
8144
- source.forEach(function (item, i) {
8145
- if (has$2.call(target, i)) {
8146
- var targetItem = target[i];
8147
- if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {
8148
- target[i] = merge(targetItem, item, options);
8149
- } else {
8150
- target.push(item);
8151
- }
8152
- } else {
8153
- target[i] = item;
8154
- }
8155
- });
8156
- return target;
8157
- }
8158
-
8159
- return Object.keys(source).reduce(function (acc, key) {
8160
- var value = source[key];
8161
-
8162
- if (has$2.call(acc, key)) {
8163
- acc[key] = merge(acc[key], value, options);
8164
- } else {
8165
- acc[key] = value;
8166
- }
8167
- return acc;
8168
- }, mergeTarget);
8169
- };
8170
-
8171
- var assign = function assignSingleSource(target, source) {
8172
- return Object.keys(source).reduce(function (acc, key) {
8173
- acc[key] = source[key];
8174
- return acc;
8175
- }, target);
8176
- };
8177
-
8178
- var decode = function (str, decoder, charset) {
8179
- var strWithoutPlus = str.replace(/\+/g, ' ');
8180
- if (charset === 'iso-8859-1') {
8181
- // unescape never throws, no try...catch needed:
8182
- return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
8183
- }
8184
- // utf-8
8185
- try {
8186
- return decodeURIComponent(strWithoutPlus);
8187
- } catch (e) {
8188
- return strWithoutPlus;
8189
- }
8190
- };
8191
-
8192
- var encode = function encode(str, defaultEncoder, charset, kind, format) {
8193
- // This code was originally written by Brian White (mscdex) for the io.js core querystring library.
8194
- // It has been adapted here for stricter adherence to RFC 3986
8195
- if (str.length === 0) {
8196
- return str;
8197
- }
8198
-
8199
- var string = str;
8200
- if (typeof str === 'symbol') {
8201
- string = Symbol.prototype.toString.call(str);
8202
- } else if (typeof str !== 'string') {
8203
- string = String(str);
8204
- }
8205
-
8206
- if (charset === 'iso-8859-1') {
8207
- return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {
8208
- return '%26%23' + parseInt($0.slice(2), 16) + '%3B';
8209
- });
8210
- }
8211
-
8212
- var out = '';
8213
- for (var i = 0; i < string.length; ++i) {
8214
- var c = string.charCodeAt(i);
8215
-
8216
- if (
8217
- c === 0x2D // -
8218
- || c === 0x2E // .
8219
- || c === 0x5F // _
8220
- || c === 0x7E // ~
8221
- || (c >= 0x30 && c <= 0x39) // 0-9
8222
- || (c >= 0x41 && c <= 0x5A) // a-z
8223
- || (c >= 0x61 && c <= 0x7A) // A-Z
8224
- || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )
8225
- ) {
8226
- out += string.charAt(i);
8227
- continue;
8228
- }
8229
-
8230
- if (c < 0x80) {
8231
- out = out + hexTable[c];
8232
- continue;
8233
- }
8234
-
8235
- if (c < 0x800) {
8236
- out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);
8237
- continue;
8238
- }
8239
-
8240
- if (c < 0xD800 || c >= 0xE000) {
8241
- out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);
8242
- continue;
8243
- }
8244
-
8245
- i += 1;
8246
- c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));
8247
- /* eslint operator-linebreak: [2, "before"] */
8248
- out += hexTable[0xF0 | (c >> 18)]
8249
- + hexTable[0x80 | ((c >> 12) & 0x3F)]
8250
- + hexTable[0x80 | ((c >> 6) & 0x3F)]
8251
- + hexTable[0x80 | (c & 0x3F)];
8252
- }
8253
-
8254
- return out;
8255
- };
8256
-
8257
- var compact = function compact(value) {
8258
- var queue = [{ obj: { o: value }, prop: 'o' }];
8259
- var refs = [];
8260
-
8261
- for (var i = 0; i < queue.length; ++i) {
8262
- var item = queue[i];
8263
- var obj = item.obj[item.prop];
8264
-
8265
- var keys = Object.keys(obj);
8266
- for (var j = 0; j < keys.length; ++j) {
8267
- var key = keys[j];
8268
- var val = obj[key];
8269
- if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {
8270
- queue.push({ obj: obj, prop: key });
8271
- refs.push(val);
8272
- }
8273
- }
8274
- }
8275
-
8276
- compactQueue(queue);
8277
-
8278
- return value;
8279
- };
8280
-
8281
- var isRegExp = function isRegExp(obj) {
8282
- return Object.prototype.toString.call(obj) === '[object RegExp]';
8283
- };
8284
-
8285
- var isBuffer = function isBuffer(obj) {
8286
- if (!obj || typeof obj !== 'object') {
8287
- return false;
8288
- }
8289
-
8290
- return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
8291
- };
8292
-
8293
- var combine = function combine(a, b) {
8294
- return [].concat(a, b);
8295
- };
8296
-
8297
- var maybeMap = function maybeMap(val, fn) {
8298
- if (isArray$2(val)) {
8299
- var mapped = [];
8300
- for (var i = 0; i < val.length; i += 1) {
8301
- mapped.push(fn(val[i]));
8302
- }
8303
- return mapped;
8304
- }
8305
- return fn(val);
8306
- };
8307
-
8308
- var utils$1 = {
8309
- arrayToObject: arrayToObject,
8310
- assign: assign,
8311
- combine: combine,
8312
- compact: compact,
8313
- decode: decode,
8314
- encode: encode,
8315
- isBuffer: isBuffer,
8316
- isRegExp: isRegExp,
8317
- maybeMap: maybeMap,
8318
- merge: merge
8319
- };
8320
-
8321
- var has$1 = Object.prototype.hasOwnProperty;
8322
-
8323
- var arrayPrefixGenerators = {
8324
- brackets: function brackets(prefix) {
8325
- return prefix + '[]';
8326
- },
8327
- comma: 'comma',
8328
- indices: function indices(prefix, key) {
8329
- return prefix + '[' + key + ']';
8330
- },
8331
- repeat: function repeat(prefix) {
8332
- return prefix;
8333
- }
8334
- };
8335
-
8336
- var isArray$1 = Array.isArray;
8337
- var split = String.prototype.split;
8338
- var push = Array.prototype.push;
8339
- var pushToArray = function (arr, valueOrArray) {
8340
- push.apply(arr, isArray$1(valueOrArray) ? valueOrArray : [valueOrArray]);
8341
- };
8342
-
8343
- var toISO = Date.prototype.toISOString;
8344
-
8345
- var defaultFormat = formats['default'];
8346
- var defaults$1 = {
8347
- addQueryPrefix: false,
8348
- allowDots: false,
8349
- charset: 'utf-8',
8350
- charsetSentinel: false,
8351
- delimiter: '&',
8352
- encode: true,
8353
- encoder: utils$1.encode,
8354
- encodeValuesOnly: false,
8355
- format: defaultFormat,
8356
- formatter: formats.formatters[defaultFormat],
8357
- // deprecated
8358
- indices: false,
8359
- serializeDate: function serializeDate(date) {
8360
- return toISO.call(date);
8361
- },
8362
- skipNulls: false,
8363
- strictNullHandling: false
8364
- };
8365
-
8366
- var isNonNullishPrimitive = function isNonNullishPrimitive(v) {
8367
- return typeof v === 'string'
8368
- || typeof v === 'number'
8369
- || typeof v === 'boolean'
8370
- || typeof v === 'symbol'
8371
- || typeof v === 'bigint';
8372
- };
8373
-
8374
- var sentinel = {};
8375
-
8376
- var stringify = function stringify(
8377
- object,
8378
- prefix,
8379
- generateArrayPrefix,
8380
- commaRoundTrip,
8381
- strictNullHandling,
8382
- skipNulls,
8383
- encoder,
8384
- filter,
8385
- sort,
8386
- allowDots,
8387
- serializeDate,
8388
- format,
8389
- formatter,
8390
- encodeValuesOnly,
8391
- charset,
8392
- sideChannel$1
8393
- ) {
8394
- var obj = object;
8395
-
8396
- var tmpSc = sideChannel$1;
8397
- var step = 0;
8398
- var findFlag = false;
8399
- while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {
8400
- // Where object last appeared in the ref tree
8401
- var pos = tmpSc.get(object);
8402
- step += 1;
8403
- if (typeof pos !== 'undefined') {
8404
- if (pos === step) {
8405
- throw new RangeError('Cyclic object value');
8406
- } else {
8407
- findFlag = true; // Break while
8408
- }
8409
- }
8410
- if (typeof tmpSc.get(sentinel) === 'undefined') {
8411
- step = 0;
8412
- }
8413
- }
8414
-
8415
- if (typeof filter === 'function') {
8416
- obj = filter(prefix, obj);
8417
- } else if (obj instanceof Date) {
8418
- obj = serializeDate(obj);
8419
- } else if (generateArrayPrefix === 'comma' && isArray$1(obj)) {
8420
- obj = utils$1.maybeMap(obj, function (value) {
8421
- if (value instanceof Date) {
8422
- return serializeDate(value);
8423
- }
8424
- return value;
8425
- });
8426
- }
8427
-
8428
- if (obj === null) {
8429
- if (strictNullHandling) {
8430
- return encoder && !encodeValuesOnly ? encoder(prefix, defaults$1.encoder, charset, 'key', format) : prefix;
8431
- }
8432
-
8433
- obj = '';
8434
- }
8435
-
8436
- if (isNonNullishPrimitive(obj) || utils$1.isBuffer(obj)) {
8437
- if (encoder) {
8438
- var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults$1.encoder, charset, 'key', format);
8439
- if (generateArrayPrefix === 'comma' && encodeValuesOnly) {
8440
- var valuesArray = split.call(String(obj), ',');
8441
- var valuesJoined = '';
8442
- for (var i = 0; i < valuesArray.length; ++i) {
8443
- valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults$1.encoder, charset, 'value', format));
8444
- }
8445
- return [formatter(keyValue) + (commaRoundTrip && isArray$1(obj) && valuesArray.length === 1 ? '[]' : '') + '=' + valuesJoined];
8446
- }
8447
- return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults$1.encoder, charset, 'value', format))];
8448
- }
8449
- return [formatter(prefix) + '=' + formatter(String(obj))];
8450
- }
8451
-
8452
- var values = [];
8453
-
8454
- if (typeof obj === 'undefined') {
8455
- return values;
8456
- }
8457
-
8458
- var objKeys;
8459
- if (generateArrayPrefix === 'comma' && isArray$1(obj)) {
8460
- // we need to join elements in
8461
- objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];
8462
- } else if (isArray$1(filter)) {
8463
- objKeys = filter;
8464
- } else {
8465
- var keys = Object.keys(obj);
8466
- objKeys = sort ? keys.sort(sort) : keys;
8467
- }
8468
-
8469
- var adjustedPrefix = commaRoundTrip && isArray$1(obj) && obj.length === 1 ? prefix + '[]' : prefix;
8470
-
8471
- for (var j = 0; j < objKeys.length; ++j) {
8472
- var key = objKeys[j];
8473
- var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];
8474
-
8475
- if (skipNulls && value === null) {
8476
- continue;
8477
- }
8478
-
8479
- var keyPrefix = isArray$1(obj)
8480
- ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, key) : adjustedPrefix
8481
- : adjustedPrefix + (allowDots ? '.' + key : '[' + key + ']');
8482
-
8483
- sideChannel$1.set(object, step);
8484
- var valueSideChannel = sideChannel();
8485
- valueSideChannel.set(sentinel, sideChannel$1);
8486
- pushToArray(values, stringify(
8487
- value,
8488
- keyPrefix,
8489
- generateArrayPrefix,
8490
- commaRoundTrip,
8491
- strictNullHandling,
8492
- skipNulls,
8493
- encoder,
8494
- filter,
8495
- sort,
8496
- allowDots,
8497
- serializeDate,
8498
- format,
8499
- formatter,
8500
- encodeValuesOnly,
8501
- charset,
8502
- valueSideChannel
8503
- ));
8504
- }
8505
-
8506
- return values;
8507
- };
8508
-
8509
- var normalizeStringifyOptions = function normalizeStringifyOptions(opts) {
8510
- if (!opts) {
8511
- return defaults$1;
8512
- }
8513
-
8514
- if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {
8515
- throw new TypeError('Encoder has to be a function.');
8516
- }
8517
-
8518
- var charset = opts.charset || defaults$1.charset;
8519
- if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {
8520
- throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');
8521
- }
8522
-
8523
- var format = formats['default'];
8524
- if (typeof opts.format !== 'undefined') {
8525
- if (!has$1.call(formats.formatters, opts.format)) {
8526
- throw new TypeError('Unknown format option provided.');
8527
- }
8528
- format = opts.format;
8529
- }
8530
- var formatter = formats.formatters[format];
8531
-
8532
- var filter = defaults$1.filter;
8533
- if (typeof opts.filter === 'function' || isArray$1(opts.filter)) {
8534
- filter = opts.filter;
8535
- }
8536
-
8537
- return {
8538
- addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults$1.addQueryPrefix,
8539
- allowDots: typeof opts.allowDots === 'undefined' ? defaults$1.allowDots : !!opts.allowDots,
8540
- charset: charset,
8541
- charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults$1.charsetSentinel,
8542
- delimiter: typeof opts.delimiter === 'undefined' ? defaults$1.delimiter : opts.delimiter,
8543
- encode: typeof opts.encode === 'boolean' ? opts.encode : defaults$1.encode,
8544
- encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults$1.encoder,
8545
- encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults$1.encodeValuesOnly,
8546
- filter: filter,
8547
- format: format,
8548
- formatter: formatter,
8549
- serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults$1.serializeDate,
8550
- skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults$1.skipNulls,
8551
- sort: typeof opts.sort === 'function' ? opts.sort : null,
8552
- strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults$1.strictNullHandling
8553
- };
8554
- };
8555
-
8556
- var stringify_1 = function (object, opts) {
8557
- var obj = object;
8558
- var options = normalizeStringifyOptions(opts);
8559
-
8560
- var objKeys;
8561
- var filter;
8562
-
8563
- if (typeof options.filter === 'function') {
8564
- filter = options.filter;
8565
- obj = filter('', obj);
8566
- } else if (isArray$1(options.filter)) {
8567
- filter = options.filter;
8568
- objKeys = filter;
8569
- }
8570
-
8571
- var keys = [];
8572
-
8573
- if (typeof obj !== 'object' || obj === null) {
8574
- return '';
8575
- }
8576
-
8577
- var arrayFormat;
8578
- if (opts && opts.arrayFormat in arrayPrefixGenerators) {
8579
- arrayFormat = opts.arrayFormat;
8580
- } else if (opts && 'indices' in opts) {
8581
- arrayFormat = opts.indices ? 'indices' : 'repeat';
8582
- } else {
8583
- arrayFormat = 'indices';
8584
- }
8585
-
8586
- var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];
8587
- if (opts && 'commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {
8588
- throw new TypeError('`commaRoundTrip` must be a boolean, or absent');
8589
- }
8590
- var commaRoundTrip = generateArrayPrefix === 'comma' && opts && opts.commaRoundTrip;
8591
-
8592
- if (!objKeys) {
8593
- objKeys = Object.keys(obj);
8594
- }
8595
-
8596
- if (options.sort) {
8597
- objKeys.sort(options.sort);
8598
- }
8599
-
8600
- var sideChannel$1 = sideChannel();
8601
- for (var i = 0; i < objKeys.length; ++i) {
8602
- var key = objKeys[i];
8603
-
8604
- if (options.skipNulls && obj[key] === null) {
8605
- continue;
8606
- }
8607
- pushToArray(keys, stringify(
8608
- obj[key],
8609
- key,
8610
- generateArrayPrefix,
8611
- commaRoundTrip,
8612
- options.strictNullHandling,
8613
- options.skipNulls,
8614
- options.encode ? options.encoder : null,
8615
- options.filter,
8616
- options.sort,
8617
- options.allowDots,
8618
- options.serializeDate,
8619
- options.format,
8620
- options.formatter,
8621
- options.encodeValuesOnly,
8622
- options.charset,
8623
- sideChannel$1
8624
- ));
8625
- }
8626
-
8627
- var joined = keys.join(options.delimiter);
8628
- var prefix = options.addQueryPrefix === true ? '?' : '';
8629
-
8630
- if (options.charsetSentinel) {
8631
- if (options.charset === 'iso-8859-1') {
8632
- // encodeURIComponent('&#10003;'), the "numeric entity" representation of a checkmark
8633
- prefix += 'utf8=%26%2310003%3B&';
8634
- } else {
8635
- // encodeURIComponent('✓')
8636
- prefix += 'utf8=%E2%9C%93&';
8637
- }
8638
- }
8639
-
8640
- return joined.length > 0 ? prefix + joined : '';
8641
- };
8642
-
8643
- var has = Object.prototype.hasOwnProperty;
8644
- var isArray = Array.isArray;
8645
-
8646
- var defaults = {
8647
- allowDots: false,
8648
- allowPrototypes: false,
8649
- allowSparse: false,
8650
- arrayLimit: 20,
8651
- charset: 'utf-8',
8652
- charsetSentinel: false,
8653
- comma: false,
8654
- decoder: utils$1.decode,
8655
- delimiter: '&',
8656
- depth: 5,
8657
- ignoreQueryPrefix: false,
8658
- interpretNumericEntities: false,
8659
- parameterLimit: 1000,
8660
- parseArrays: true,
8661
- plainObjects: false,
8662
- strictNullHandling: false
8663
- };
8664
-
8665
- var interpretNumericEntities = function (str) {
8666
- return str.replace(/&#(\d+);/g, function ($0, numberStr) {
8667
- return String.fromCharCode(parseInt(numberStr, 10));
8668
- });
8669
- };
8670
-
8671
- var parseArrayValue = function (val, options) {
8672
- if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {
8673
- return val.split(',');
8674
- }
8675
-
8676
- return val;
8677
- };
8678
-
8679
- // This is what browsers will submit when the ✓ character occurs in an
8680
- // application/x-www-form-urlencoded body and the encoding of the page containing
8681
- // the form is iso-8859-1, or when the submitted form has an accept-charset
8682
- // attribute of iso-8859-1. Presumably also with other charsets that do not contain
8683
- // the ✓ character, such as us-ascii.
8684
- var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('&#10003;')
8685
-
8686
- // These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.
8687
- var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')
8688
-
8689
- var parseValues = function parseQueryStringValues(str, options) {
8690
- var obj = {};
8691
- var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str;
8692
- var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;
8693
- var parts = cleanStr.split(options.delimiter, limit);
8694
- var skipIndex = -1; // Keep track of where the utf8 sentinel was found
8695
- var i;
8696
-
8697
- var charset = options.charset;
8698
- if (options.charsetSentinel) {
8699
- for (i = 0; i < parts.length; ++i) {
8700
- if (parts[i].indexOf('utf8=') === 0) {
8701
- if (parts[i] === charsetSentinel) {
8702
- charset = 'utf-8';
8703
- } else if (parts[i] === isoSentinel) {
8704
- charset = 'iso-8859-1';
8705
- }
8706
- skipIndex = i;
8707
- i = parts.length; // The eslint settings do not allow break;
8708
- }
8709
- }
8710
- }
8711
-
8712
- for (i = 0; i < parts.length; ++i) {
8713
- if (i === skipIndex) {
8714
- continue;
8715
- }
8716
- var part = parts[i];
8717
-
8718
- var bracketEqualsPos = part.indexOf(']=');
8719
- var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;
8720
-
8721
- var key, val;
8722
- if (pos === -1) {
8723
- key = options.decoder(part, defaults.decoder, charset, 'key');
8724
- val = options.strictNullHandling ? null : '';
8725
- } else {
8726
- key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');
8727
- val = utils$1.maybeMap(
8728
- parseArrayValue(part.slice(pos + 1), options),
8729
- function (encodedVal) {
8730
- return options.decoder(encodedVal, defaults.decoder, charset, 'value');
8731
- }
8732
- );
8733
- }
8734
-
8735
- if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {
8736
- val = interpretNumericEntities(val);
8737
- }
8738
-
8739
- if (part.indexOf('[]=') > -1) {
8740
- val = isArray(val) ? [val] : val;
8741
- }
8742
-
8743
- if (has.call(obj, key)) {
8744
- obj[key] = utils$1.combine(obj[key], val);
8745
- } else {
8746
- obj[key] = val;
8747
- }
8748
- }
8749
-
8750
- return obj;
8751
- };
8752
-
8753
- var parseObject = function (chain, val, options, valuesParsed) {
8754
- var leaf = valuesParsed ? val : parseArrayValue(val, options);
8755
-
8756
- for (var i = chain.length - 1; i >= 0; --i) {
8757
- var obj;
8758
- var root = chain[i];
8759
-
8760
- if (root === '[]' && options.parseArrays) {
8761
- obj = [].concat(leaf);
8762
- } else {
8763
- obj = options.plainObjects ? Object.create(null) : {};
8764
- var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;
8765
- var index = parseInt(cleanRoot, 10);
8766
- if (!options.parseArrays && cleanRoot === '') {
8767
- obj = { 0: leaf };
8768
- } else if (
8769
- !isNaN(index)
8770
- && root !== cleanRoot
8771
- && String(index) === cleanRoot
8772
- && index >= 0
8773
- && (options.parseArrays && index <= options.arrayLimit)
8774
- ) {
8775
- obj = [];
8776
- obj[index] = leaf;
8777
- } else if (cleanRoot !== '__proto__') {
8778
- obj[cleanRoot] = leaf;
8779
- }
8780
- }
8781
-
8782
- leaf = obj;
8783
- }
8784
-
8785
- return leaf;
8786
- };
8787
-
8788
- var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {
8789
- if (!givenKey) {
8790
- return;
8791
- }
8792
-
8793
- // Transform dot notation to bracket notation
8794
- var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey;
8795
-
8796
- // The regex chunks
8797
-
8798
- var brackets = /(\[[^[\]]*])/;
8799
- var child = /(\[[^[\]]*])/g;
8800
-
8801
- // Get the parent
8802
-
8803
- var segment = options.depth > 0 && brackets.exec(key);
8804
- var parent = segment ? key.slice(0, segment.index) : key;
8805
-
8806
- // Stash the parent if it exists
8807
-
8808
- var keys = [];
8809
- if (parent) {
8810
- // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties
8811
- if (!options.plainObjects && has.call(Object.prototype, parent)) {
8812
- if (!options.allowPrototypes) {
8813
- return;
8814
- }
8815
- }
8816
-
8817
- keys.push(parent);
8818
- }
8819
-
8820
- // Loop through children appending to the array until we hit depth
8821
-
8822
- var i = 0;
8823
- while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {
8824
- i += 1;
8825
- if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {
8826
- if (!options.allowPrototypes) {
8827
- return;
8828
- }
8829
- }
8830
- keys.push(segment[1]);
8831
- }
8832
-
8833
- // If there's a remainder, just add whatever is left
8834
-
8835
- if (segment) {
8836
- keys.push('[' + key.slice(segment.index) + ']');
8837
- }
8838
-
8839
- return parseObject(keys, val, options, valuesParsed);
8840
- };
8841
-
8842
- var normalizeParseOptions = function normalizeParseOptions(opts) {
8843
- if (!opts) {
8844
- return defaults;
8845
- }
8846
-
8847
- if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {
8848
- throw new TypeError('Decoder has to be a function.');
8849
- }
8850
-
8851
- if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {
8852
- throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');
8853
- }
8854
- var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;
8855
-
8856
- return {
8857
- allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,
8858
- allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,
8859
- allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,
8860
- arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,
8861
- charset: charset,
8862
- charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,
8863
- comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,
8864
- decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,
8865
- delimiter: typeof opts.delimiter === 'string' || utils$1.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,
8866
- // eslint-disable-next-line no-implicit-coercion, no-extra-parens
8867
- depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,
8868
- ignoreQueryPrefix: opts.ignoreQueryPrefix === true,
8869
- interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,
8870
- parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,
8871
- parseArrays: opts.parseArrays !== false,
8872
- plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,
8873
- strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling
8874
- };
8875
- };
8876
-
8877
- var parse = function (str, opts) {
8878
- var options = normalizeParseOptions(opts);
8879
-
8880
- if (str === '' || str === null || typeof str === 'undefined') {
8881
- return options.plainObjects ? Object.create(null) : {};
8882
- }
8883
-
8884
- var tempObj = typeof str === 'string' ? parseValues(str, options) : str;
8885
- var obj = options.plainObjects ? Object.create(null) : {};
8886
-
8887
- // Iterate over the keys and setup the new object
8888
-
8889
- var keys = Object.keys(tempObj);
8890
- for (var i = 0; i < keys.length; ++i) {
8891
- var key = keys[i];
8892
- var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');
8893
- obj = utils$1.merge(obj, newObj, options);
8894
- }
8895
-
8896
- if (options.allowSparse === true) {
8897
- return obj;
8898
- }
8899
-
8900
- return utils$1.compact(obj);
8901
- };
8902
-
8903
- var lib = {
8904
- formats: formats,
8905
- parse: parse,
8906
- stringify: stringify_1
8907
- };
7861
+ sp.sort();
7862
+ return sp.toString();
7863
+ }
8908
7864
 
8909
7865
  const STORAGE_NAME_SPACE = 'nano-component-store:';
8910
7866
  const urlRead = (from = 'hash', win = window) => {
8911
7867
  if (!win || !win.location)
8912
7868
  return {};
8913
7869
  if (from === 'hash' && win.location.hash)
8914
- return lib.parse(win.location.hash.replace(/^\#/, ''), {
8915
- strictNullHandling: true,
8916
- });
7870
+ return parse(win.location.hash.replace(/^\#/, ''));
8917
7871
  else if (from === 'query' && win.location.search)
8918
- return lib.parse(win.location.search, { ignoreQueryPrefix: true });
7872
+ return parse(win.location.search.replace(/^\?/, ''));
8919
7873
  return {};
8920
7874
  };
8921
7875
  const urlSave = (object, to = 'hash', win = window, method = 'replace') => {
@@ -8925,11 +7879,7 @@ const urlSave = (object, to = 'hash', win = window, method = 'replace') => {
8925
7879
  const basePath = to === 'query'
8926
7880
  ? win.location.pathname
8927
7881
  : win.location.pathname + win.location.search;
8928
- let queryStr = lib.stringify(object, {
8929
- strictNullHandling: true,
8930
- addQueryPrefix: false,
8931
- encodeValuesOnly: true,
8932
- });
7882
+ let queryStr = stringify(object);
8933
7883
  if (!queryStr || !queryStr.length) {
8934
7884
  if (!oldQuery || !oldQuery.length)
8935
7885
  return;
@@ -8956,7 +7906,7 @@ const urlSave = (object, to = 'hash', win = window, method = 'replace') => {
8956
7906
  };
8957
7907
  const urlSet = (id, data, to = 'hash', win = window, method = 'replace') => {
8958
7908
  // sanitize the incoming key
8959
- id = Object.keys(lib.parse(id))[0];
7909
+ id = Object.keys(parse(id))[0];
8960
7910
  const object = {};
8961
7911
  object[id] = data;
8962
7912
  let currentData = urlRead(to, win);
@@ -8965,7 +7915,7 @@ const urlSet = (id, data, to = 'hash', win = window, method = 'replace') => {
8965
7915
  };
8966
7916
  const urlGet = (key, to = 'hash', win = window) => {
8967
7917
  // sanitize the incoming key
8968
- key = Object.keys(lib.parse(key))[0];
7918
+ key = Object.keys(parse(key))[0];
8969
7919
  const currentData = urlRead(to, win);
8970
7920
  return currentData[key] || null;
8971
7921
  };
@@ -9158,6 +8108,26 @@ class Store {
9158
8108
  }
9159
8109
  }
9160
8110
 
8111
+ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
8112
+
8113
+ function getDefaultExportFromCjs (x) {
8114
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
8115
+ }
8116
+
8117
+ function createCommonjsModule(fn, basedir, module) {
8118
+ return module = {
8119
+ path: basedir,
8120
+ exports: {},
8121
+ require: function (path, base) {
8122
+ return commonjsRequire();
8123
+ }
8124
+ }, fn(module, module.exports), module.exports;
8125
+ }
8126
+
8127
+ function commonjsRequire () {
8128
+ throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
8129
+ }
8130
+
9161
8131
  var squirrelly_min = createCommonjsModule(function (module, exports) {
9162
8132
  !function(e,t){t(exports);}(commonjsGlobal,(function(e){function t(e){var n,r,a=new Error(e);return n=a,r=t.prototype,Object.setPrototypeOf?Object.setPrototypeOf(n,r):n.__proto__=r,a}function n(e,n,r){var a=n.slice(0,r).split(/\n/),i=a.length,s=a[i-1].length+1;throw t(e+=" at line "+i+" col "+s+":\n\n "+n.split(/\n/)[i-1]+"\n "+Array(s).join(" ")+"^")}t.prototype=Object.create(Error.prototype,{name:{value:"Squirrelly Error",enumerable:!1}});var r=new Function("return this")().Promise,a=!1;try{a=new Function("return (async function(){}).constructor")();}catch(e){if(!(e instanceof SyntaxError))throw e}function i(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function s(e,t,n){for(var r in t)i(t,r)&&(null==t[r]||"object"!=typeof t[r]||"storage"!==r&&"prefixes"!==r||n?e[r]=t[r]:e[r]=s({},t[r]));return e}var c=/^async +/,o=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,l=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,f=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g,u=/[.*+\-?^${}()|[\]\\]/g;function p(e){return u.test(e)?e.replace(u,"\\$&"):e}function h(e,r){r.rmWhitespace&&(e=e.replace(/[\r\n]+/g,"\n").replace(/^\s+|\s+$/gm,"")),o.lastIndex=0,l.lastIndex=0,f.lastIndex=0;var a=r.prefixes,i=[a.h,a.b,a.i,a.r,a.c,a.e].reduce((function(e,t){return e&&t?e+"|"+p(t):t?p(t):e}),""),s=new RegExp("([|()]|=>)|('|\"|`|\\/\\*)|\\s*((\\/)?(-|_)?"+p(r.tags[1])+")","g"),u=new RegExp("([^]*?)"+p(r.tags[0])+"(-|_)?\\s*("+i+")?\\s*","g"),h=0,d=!1;function g(t,a){var i,p={f:[]},g=0,v="c";function m(t){var a=e.slice(h,t),i=a.trim();if("f"===v)"safe"===i?p.raw=!0:r.async&&c.test(i)?(i=i.replace(c,""),p.f.push([i,"",!0])):p.f.push([i,""]);else if("fp"===v)p.f[p.f.length-1][1]+=i;else if("err"===v){if(i){var s=a.search(/\S/);n("invalid syntax",e,h+s);}}else p[v]=i;h=t+1;}for("h"===a||"b"===a||"c"===a?v="n":"r"===a&&(p.raw=!0,a="i"),s.lastIndex=h;null!==(i=s.exec(e));){var y=i[1],x=i[2],b=i[3],w=i[4],F=i[5],S=i.index;if(y)"("===y?(0===g&&("n"===v?(m(S),v="p"):"f"===v&&(m(S),v="fp")),g++):")"===y?0===--g&&"c"!==v&&(m(S),v="err"):0===g&&"|"===y?(m(S),v="f"):"=>"===y&&(m(S),h+=1,v="res");else if(x){if("/*"===x){var I=e.indexOf("*/",s.lastIndex);-1===I&&n("unclosed comment",e,i.index),s.lastIndex=I+2;}else if("'"===x){l.lastIndex=i.index,l.exec(e)?s.lastIndex=l.lastIndex:n("unclosed string",e,i.index);}else if('"'===x){f.lastIndex=i.index,f.exec(e)?s.lastIndex=f.lastIndex:n("unclosed string",e,i.index);}else if("`"===x){o.lastIndex=i.index,o.exec(e)?s.lastIndex=o.lastIndex:n("unclosed string",e,i.index);}}else if(b)return m(S),h=S+i[0].length,u.lastIndex=h,d=F,w&&"h"===a&&(a="s"),p.t=a,p}return n("unclosed tag",e,t),p}var v=function i(s,o){s.b=[],s.d=[];var l,f=!1,p=[];function v(e,t){e&&(e=function(e,t,n,r){var a,i;return "string"==typeof t.autoTrim?a=i=t.autoTrim:Array.isArray(t.autoTrim)&&(a=t.autoTrim[1],i=t.autoTrim[0]),(n||!1===n)&&(a=n),(r||!1===r)&&(i=r),"slurp"===a&&"slurp"===i?e.trim():("_"===a||"slurp"===a?e=String.prototype.trimLeft?e.trimLeft():e.replace(/^[\s\uFEFF\xA0]+/,""):"-"!==a&&"nl"!==a||(e=e.replace(/^(?:\n|\r|\r\n)/,"")),"_"===i||"slurp"===i?e=String.prototype.trimRight?e.trimRight():e.replace(/[\s\uFEFF\xA0]+$/,""):"-"!==i&&"nl"!==i||(e=e.replace(/(?:\n|\r|\r\n)$/,"")),e)}(e,r,d,t))&&(e=e.replace(/\\|'/g,"\\$&").replace(/\r\n|\n|\r/g,"\\n"),p.push(e));}for(;null!==(l=u.exec(e));){var m,y=l[1],x=l[2],b=l[3]||"";for(var w in a)if(a[w]===b){m=w;break}v(y,x),h=l.index+l[0].length,m||n("unrecognized tag type: "+b,e,h);var F=g(l.index,m),S=F.t;if("h"===S){var I=F.n||"";r.async&&c.test(I)&&(F.a=!0,F.n=I.replace(c,"")),F=i(F),p.push(F);}else if("c"===S){if(s.n===F.n)return f?(f.d=p,s.b.push(f)):s.d=p,s;n("Helper start and end don't match",e,l.index+l[0].length);}else if("b"===S){f?(f.d=p,s.b.push(f)):s.d=p;var R=F.n||"";r.async&&c.test(R)&&(F.a=!0,F.n=R.replace(c,"")),f=F,p=[];}else if("s"===S){var T=F.n||"";r.async&&c.test(T)&&(F.a=!0,F.n=T.replace(c,"")),p.push(F);}else p.push(F);}if(!o)throw t('unclosed helper "'+s.n+'"');return v(e.slice(h,e.length),!1),s.d=p,s}({f:[]},!0);if(r.plugins)for(var m=0;m<r.plugins.length;m++){var y=r.plugins[m];y.processAST&&(v.d=y.processAST(v.d,r));}return v.d}function d(e,t){var n=h(e,t),r="var tR='';"+(t.useWith?"with("+t.varName+"||{}){":"")+x(n,t)+"if(cb){cb(null,tR)} return tR"+(t.useWith?"}":"");if(t.plugins)for(var a=0;a<t.plugins.length;a++){var i=t.plugins[a];i.processFnString&&(r=i.processFnString(r,t));}return r}function g(e,t){for(var n=0;n<t.length;n++){var r=t[n][0],a=t[n][1];e=(t[n][2]?"await ":"")+"c.l('F','"+r+"')("+e,a&&(e+=","+a),e+=")";}return e}function v(e,t,n,r,a,i){var s="{exec:"+(a?"async ":"")+y(n,t,e)+",params:["+r+"]";return i&&(s+=",name:'"+i+"'"),a&&(s+=",async:true"),s+="}"}function m(e,t){for(var n="[",r=0;r<e.length;r++){var a=e[r];n+=v(t,a.res||"",a.d,a.p||"",a.a,a.n),r<e.length&&(n+=",");}return n+="]"}function y(e,t,n){return "function("+t+"){var tR='';"+x(e,n)+"return tR}"}function x(e,t){for(var n=0,r=e.length,a="";n<r;n++){var i=e[n];if("string"==typeof i){a+="tR+='"+i+"';";}else {var s=i.t,c=i.c||"",o=i.f,l=i.n||"",f=i.p||"",u=i.res||"",p=i.b,h=!!i.a;if("i"===s){t.defaultFilter&&(c="c.l('F','"+t.defaultFilter+"')("+c+")");var d=g(c,o);!i.raw&&t.autoEscape&&(d="c.l('F','e')("+d+")"),a+="tR+="+d+";";}else if("h"===s)if(t.storage.nativeHelpers.get(l))a+=t.storage.nativeHelpers.get(l)(i,t);else {var y=(h?"await ":"")+"c.l('H','"+l+"')("+v(t,u,i.d,f,h);y+=p?","+m(p,t):",[]",a+="tR+="+g(y+=",c)",o)+";";}else "s"===s?a+="tR+="+g((h?"await ":"")+"c.l('H','"+l+"')({params:["+f+"]},[],c)",o)+";":"e"===s&&(a+=c+"\n");}}return a}var b=function(){function e(e){this.cache=e;}return e.prototype.define=function(e,t){this.cache[e]=t;},e.prototype.get=function(e){return this.cache[e]},e.prototype.remove=function(e){delete this.cache[e];},e.prototype.reset=function(){this.cache={};},e.prototype.load=function(e){s(this.cache,e,!0);},e}();function w(e,n,r,a){if(n&&n.length>0)throw t((a?"Native":"")+"Helper '"+e+"' doesn't accept blocks");if(r&&r.length>0)throw t((a?"Native":"")+"Helper '"+e+"' doesn't accept filters")}var F={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function S(e){return F[e]}var I=new b({}),R=new b({each:function(e,t){var n="",r=e.params[0];if(w("each",t,!1),e.async)return new Promise((function(t){!function e(t,n,r,a,i){r(t[n],n).then((function(s){a+=s,n===t.length-1?i(a):e(t,n+1,r,a,i);}));}(r,0,e.exec,n,t);}));for(var a=0;a<r.length;a++)n+=e.exec(r[a],a);return n},foreach:function(e,t){var n=e.params[0];if(w("foreach",t,!1),e.async)return new Promise((function(t){!function e(t,n,r,a,i,s){a(n[r],t[n[r]]).then((function(c){i+=c,r===n.length-1?s(i):e(t,n,r+1,a,i,s);}));}(n,Object.keys(n),0,e.exec,"",t);}));var r="";for(var a in n)i(n,a)&&(r+=e.exec(a,n[a]));return r},include:function(e,n,r){w("include",n,!1);var a=r.storage.templates.get(e.params[0]);if(!a)throw t('Could not fetch template "'+e.params[0]+'"');return a(e.params[1],r)},extends:function(e,n,r){var a=e.params[1]||{};a.content=e.exec();for(var i=0;i<n.length;i++){var s=n[i];a[s.name]=s.exec();}var c=r.storage.templates.get(e.params[0]);if(!c)throw t('Could not fetch template "'+e.params[0]+'"');return c(a,r)},useScope:function(e,t){return w("useScope",t,!1),e.exec(e.params[0])}}),T=new b({if:function(e,t){w("if",!1,e.f,!0);var n="if("+e.p+"){"+x(e.d,t)+"}";if(e.b)for(var r=0;r<e.b.length;r++){var a=e.b[r];"else"===a.n?n+="else{"+x(a.d,t)+"}":"elif"===a.n&&(n+="else if("+a.p+"){"+x(a.d,t)+"}");}return n},try:function(e,n){if(w("try",!1,e.f,!0),!e.b||1!==e.b.length||"catch"!==e.b[0].n)throw t("native helper 'try' only accepts 1 block, 'catch'");var r="try{"+x(e.d,n)+"}",a=e.b[0];return r+="catch"+(a.res?"("+a.res+")":"")+"{"+x(a.d,n)+"}"},block:function(e,t){return w("block",e.b,e.f,!0),"if(!"+t.varName+"["+e.p+"]){tR+=("+y(e.d,"",t)+")()}else{tR+="+t.varName+"["+e.p+"]}"}}),E=new b({e:function(e){var t=String(e);return /[&<>"']/.test(t)?t.replace(/[&<>"']/g,S):t}}),j={varName:"it",autoTrim:[!1,"nl"],autoEscape:!0,defaultFilter:!1,tags:["{{","}}"],l:function(e,n){if("H"===e){var r=this.storage.helpers.get(n);if(r)return r;throw t("Can't find helper '"+n+"'")}if("F"===e){var a=this.storage.filters.get(n);if(a)return a;throw t("Can't find filter '"+n+"'")}},async:!1,storage:{helpers:R,nativeHelpers:T,filters:E,templates:I},prefixes:{h:"@",b:"#",i:"",r:"*",c:"/",e:"!"},cache:!1,plugins:[],useWith:!1};function H(e,t){var n={};return s(n,j),t&&s(n,t),e&&s(n,e),n.l.bind(n),n}function O(e,n){var r=H(n||{}),i=Function;if(r.async){if(!a)throw t("This environment doesn't support async/await");i=a;}try{return new i(r.varName,"c","cb",d(e,r))}catch(n){throw n instanceof SyntaxError?t("Bad template syntax\n\n"+n.message+"\n"+Array(n.message.length+1).join("=")+"\n"+d(e,r)):n}}function _(e,t){var n;return t.cache&&t.name&&t.storage.templates.get(t.name)?t.storage.templates.get(t.name):(n="function"==typeof e?e:O(e,t),t.cache&&t.name&&t.storage.templates.define(t.name,n),n)}j.l.bind(j),e.compile=O,e.compileScope=x,e.compileScopeIntoFunction=y,e.compileToString=d,e.defaultConfig=j,e.filters=E,e.getConfig=H,e.helpers=R,e.nativeHelpers=T,e.parse=h,e.render=function(e,n,a,i){var s=H(a||{});if(!s.async)return _(e,s)(n,s);if(!i){if("function"==typeof r)return new r((function(t,r){try{t(_(e,s)(n,s));}catch(e){r(e);}}));throw t("Please provide a callback function, this env doesn't support Promises")}try{_(e,s)(n,s,i);}catch(e){return i(e)}},e.templates=I,Object.defineProperty(e,"__esModule",{value:!0});}));
9163
8133
  //# sourceMappingURL=squirrelly.min.js.map
@@ -9661,7 +8631,7 @@ class Algolia {
9661
8631
  initAlgoliaClient() {
9662
8632
  if (!this.appId || !this.apiKey)
9663
8633
  return;
9664
- this.algoliaClient = algoliasearch_umd(this.appId, this.apiKey);
8634
+ this.algoliaClient = algoliasearch(this.appId, this.apiKey);
9665
8635
  }
9666
8636
  initAlgoliaIndex() {
9667
8637
  if (!this.algoliaClient || !this.searchIndex)
@@ -10265,6 +9235,11 @@ Wormhole(AlgoliaFilter, [
10265
9235
  ]);
10266
9236
  let filterIds = 0;
10267
9237
 
9238
+ var algoliasearch_umd = createCommonjsModule(function (module, exports) {
9239
+ /*! algoliasearch.umd.js | 4.14.3 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
9240
+ !function(t,e){module.exports=e();}(commonjsGlobal,(function(){function t(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n);}return r}function r(r){for(var n=1;n<arguments.length;n++){var a=null!=arguments[n]?arguments[n]:{};n%2?e(Object(a),!0).forEach((function(e){t(r,e,a[e]);})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(a)):e(Object(a)).forEach((function(t){Object.defineProperty(r,t,Object.getOwnPropertyDescriptor(a,t));}));}return r}function n(t,e){if(null==t)return {};var r,n,a=function(t,e){if(null==t)return {};var r,n,a={},o=Object.keys(t);for(n=0;n<o.length;n++)r=o[n],e.indexOf(r)>=0||(a[r]=t[r]);return a}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n<o.length;n++)r=o[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(a[r]=t[r]);}return a}function a(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if(!(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t)))return;var r=[],n=!0,a=!1,o=void 0;try{for(var i,u=t[Symbol.iterator]();!(n=(i=u.next()).done)&&(r.push(i.value),!e||r.length!==e);n=!0);}catch(t){a=!0,o=t;}finally{try{n||null==u.return||u.return();}finally{if(a)throw o}}return r}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function o(t){return function(t){if(Array.isArray(t)){for(var e=0,r=new Array(t.length);e<t.length;e++)r[e]=t[e];return r}}(t)||function(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function i(t){var e,r="algoliasearch-client-js-".concat(t.key),n=function(){return void 0===e&&(e=t.localStorage||window.localStorage),e},o=function(){return JSON.parse(n().getItem(r)||"{}")};return {get:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){var r=JSON.stringify(t),n=o()[r];return Promise.all([n||e(),void 0!==n])})).then((function(t){var e=a(t,2),n=e[0],o=e[1];return Promise.all([n,o||r.miss(n)])})).then((function(t){return a(t,1)[0]}))},set:function(t,e){return Promise.resolve().then((function(){var a=o();return a[JSON.stringify(t)]=e,n().setItem(r,JSON.stringify(a)),e}))},delete:function(t){return Promise.resolve().then((function(){var e=o();delete e[JSON.stringify(t)],n().setItem(r,JSON.stringify(e));}))},clear:function(){return Promise.resolve().then((function(){n().removeItem(r);}))}}}function u(t){var e=o(t.caches),r=e.shift();return void 0===r?{get:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},n=e();return n.then((function(t){return Promise.all([t,r.miss(t)])})).then((function(t){return a(t,1)[0]}))},set:function(t,e){return Promise.resolve(e)},delete:function(t){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(t,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(t,n,a).catch((function(){return u({caches:e}).get(t,n,a)}))},set:function(t,n){return r.set(t,n).catch((function(){return u({caches:e}).set(t,n)}))},delete:function(t){return r.delete(t).catch((function(){return u({caches:e}).delete(t)}))},clear:function(){return r.clear().catch((function(){return u({caches:e}).clear()}))}}}function s(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},e={};return {get:function(r,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},o=JSON.stringify(r);if(o in e)return Promise.resolve(t.serializable?JSON.parse(e[o]):e[o]);var i=n(),u=a&&a.miss||function(){return Promise.resolve()};return i.then((function(t){return u(t)})).then((function(){return i}))},set:function(r,n){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(t){return delete e[JSON.stringify(t)],Promise.resolve()},clear:function(){return e={},Promise.resolve()}}}function c(t,e,r){var n={"x-algolia-api-key":r,"x-algolia-application-id":e};return {headers:function(){return t===m.WithinHeaders?n:{}},queryParameters:function(){return t===m.WithinQueryParameters?n:{}}}}function f(t){var e=0;return t((function r(){return e++,new Promise((function(n){setTimeout((function(){n(t(r));}),Math.min(100*e,1e3));}))}))}function d(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(t,e){return Promise.resolve()};return Object.assign(t,{wait:function(r){return d(t.then((function(t){return Promise.all([e(t,r),t])})).then((function(t){return t[1]})))}})}function l(t){for(var e=t.length-1;e>0;e--){var r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n;}return t}function p(t,e){return e?(Object.keys(e).forEach((function(r){t[r]=e[r](t);})),t):t}function h(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n<e;n++)r[n-1]=arguments[n];var a=0;return t.replace(/%s/g,(function(){return encodeURIComponent(r[a++])}))}var m={WithinQueryParameters:0,WithinHeaders:1};function y(t,e){var r=t||{},n=r.data||{};return Object.keys(r).forEach((function(t){-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(t)&&(n[t]=r[t]);})),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||e,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var g={Read:1,Write:2,Any:3},v=1,b=2,P=3;function w(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:v;return r(r({},t),{},{status:e,lastUpdate:Date.now()})}function O(t){return "string"==typeof t?{protocol:"https",url:t,accept:g.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||g.Any}}var I="DELETE",x="GET",j="POST",D="PUT";function q(t,e){return Promise.all(e.map((function(e){return t.get(e,(function(){return Promise.resolve(w(e))}))}))).then((function(t){var r=t.filter((function(t){return function(t){return t.status===v||Date.now()-t.lastUpdate>12e4}(t)})),n=t.filter((function(t){return function(t){return t.status===P&&Date.now()-t.lastUpdate<=12e4}(t)})),a=[].concat(o(r),o(n));return {getTimeout:function(t,e){return (0===n.length&&0===t?1:n.length+3+t)*e},statelessHosts:a.length>0?a.map((function(t){return O(t)})):e}}))}function S(t,e,n,a){var i=[],u=function(t,e){if(t.method===x||void 0===t.data&&void 0===e.data)return;var n=Array.isArray(t.data)?t.data:r(r({},t.data),e.data);return JSON.stringify(n)}(n,a),s=function(t,e){var n=r(r({},t.headers),e.headers),a={};return Object.keys(n).forEach((function(t){var e=n[t];a[t.toLowerCase()]=e;})),a}(t,a),c=n.method,f=n.method!==x?{}:r(r({},n.data),a.data),d=r(r(r({"x-algolia-agent":t.userAgent.value},t.queryParameters),f),a.queryParameters),l=0,p=function e(r,o){var f=r.pop();if(void 0===f)throw {name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:R(i)};var p={data:u,headers:s,method:c,url:N(f,n.path,d),connectTimeout:o(l,t.timeouts.connect),responseTimeout:o(l,a.timeout)},h=function(t){var e={request:p,response:t,host:f,triesLeft:r.length};return i.push(e),e},m={onSuccess:function(t){return function(t){try{return JSON.parse(t.content)}catch(e){throw function(t,e){return {name:"DeserializationError",message:t,response:e}}(e.message,t)}}(t)},onRetry:function(n){var a=h(n);return n.isTimedOut&&l++,Promise.all([t.logger.info("Retryable failure",A(a)),t.hostsCache.set(f,w(f,n.isTimedOut?P:b))]).then((function(){return e(r,o)}))},onFail:function(t){throw h(t),function(t,e){var r=t.content,n=t.status,a=r;try{a=JSON.parse(r).message;}catch(t){}return function(t,e,r){return {name:"ApiError",message:t,status:e,transporterStackTrace:r}}(a,n,e)}(t,R(i))}};return t.requester.send(p).then((function(t){return function(t,e){return function(t){var e=t.status;return t.isTimedOut||function(t){var e=t.isTimedOut,r=t.status;return !e&&0==~~r}(t)||2!=~~(e/100)&&4!=~~(e/100)}(t)?e.onRetry(t):2==~~(t.status/100)?e.onSuccess(t):e.onFail(t)}(t,m)}))};return q(t.hostsCache,e).then((function(t){return p(o(t.statelessHosts).reverse(),t.getTimeout)}))}function k(t){var e=t.hostsCache,r=t.logger,n=t.requester,o=t.requestsCache,i=t.responsesCache,u=t.timeouts,s=t.userAgent,c=t.hosts,f=t.queryParameters,d={hostsCache:e,logger:r,requester:n,requestsCache:o,responsesCache:i,timeouts:u,userAgent:s,headers:t.headers,queryParameters:f,hosts:c.map((function(t){return O(t)})),read:function(t,e){var r=y(e,d.timeouts.read),n=function(){return S(d,d.hosts.filter((function(t){return 0!=(t.accept&g.Read)})),t,r)};if(!0!==(void 0!==r.cacheable?r.cacheable:t.cacheable))return n();var o={request:t,mappedRequestOptions:r,transporter:{queryParameters:d.queryParameters,headers:d.headers}};return d.responsesCache.get(o,(function(){return d.requestsCache.get(o,(function(){return d.requestsCache.set(o,n()).then((function(t){return Promise.all([d.requestsCache.delete(o),t])}),(function(t){return Promise.all([d.requestsCache.delete(o),Promise.reject(t)])})).then((function(t){var e=a(t,2);return e[1]}))}))}),{miss:function(t){return d.responsesCache.set(o,t)}})},write:function(t,e){return S(d,d.hosts.filter((function(t){return 0!=(t.accept&g.Write)})),t,y(e,d.timeouts.write))}};return d}function T(t){var e={value:"Algolia for JavaScript (".concat(t,")"),add:function(t){var r="; ".concat(t.segment).concat(void 0!==t.version?" (".concat(t.version,")"):"");return -1===e.value.indexOf(r)&&(e.value="".concat(e.value).concat(r)),e}};return e}function N(t,e,r){var n=E(r),a="".concat(t.protocol,"://").concat(t.url,"/").concat("/"===e.charAt(0)?e.substr(1):e);return n.length&&(a+="?".concat(n)),a}function E(t){return Object.keys(t).map((function(e){return h("%s=%s",e,(r=t[e],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(t[e]):t[e]));var r;})).join("&")}function R(t){return t.map((function(t){return A(t)}))}function A(t){var e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return r(r({},t),{},{request:r(r({},t.request),{},{headers:r(r({},t.request.headers),e)})})}var C=function(t){return function(e,r){return t.transporter.write({method:j,path:"2/abtests",data:e},r)}},U=function(t){return function(e,r){return t.transporter.write({method:I,path:h("2/abtests/%s",e)},r)}},z=function(t){return function(e,r){return t.transporter.read({method:x,path:h("2/abtests/%s",e)},r)}},J=function(t){return function(e){return t.transporter.read({method:x,path:"2/abtests"},e)}},F=function(t){return function(e,r){return t.transporter.write({method:j,path:h("2/abtests/%s/stop",e)},r)}},H=function(t){return function(e){return t.transporter.read({method:x,path:"1/strategies/personalization"},e)}},M=function(t){return function(e,r){return t.transporter.write({method:j,path:"1/strategies/personalization",data:e},r)}};function K(t){return function e(r){return t.request(r).then((function(n){if(void 0!==t.batch&&t.batch(n.hits),!t.shouldStop(n))return n.cursor?e({cursor:n.cursor}):e({page:(r.page||0)+1})}))}({})}var W=function(t){return function(e,a){var o=a||{},i=o.queryParameters,u=n(o,["queryParameters"]),s=r({acl:e},void 0!==i?{queryParameters:i}:{});return d(t.transporter.write({method:j,path:"1/keys",data:s},u),(function(e,r){return f((function(n){return tt(t)(e.key,r).catch((function(t){if(404!==t.status)throw t;return n()}))}))}))}},B=function(t){return function(e,r,n){var a=y(n);return a.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:j,path:"1/clusters/mapping",data:{cluster:r}},a)}},Q=function(t){return function(e,r,n){return t.transporter.write({method:j,path:"1/clusters/mapping/batch",data:{users:e,cluster:r}},n)}},G=function(t){return function(e,r){return d(t.transporter.write({method:j,path:h("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(function(e,r){return jt(t)(e.taskID,r)}))}},L=function(t){return function(e,r,n){return d(t.transporter.write({method:j,path:h("1/indexes/%s/operation",e),data:{operation:"copy",destination:r}},n),(function(r,n){return ut(t)(e,{methods:{waitTask:de}}).waitTask(r.taskID,n)}))}},V=function(t){return function(e,n,a){return L(t)(e,n,r(r({},a),{},{scope:[pe.Rules]}))}},_=function(t){return function(e,n,a){return L(t)(e,n,r(r({},a),{},{scope:[pe.Settings]}))}},X=function(t){return function(e,n,a){return L(t)(e,n,r(r({},a),{},{scope:[pe.Synonyms]}))}},Y=function(t){return function(e,r){return e.method===x?t.transporter.read(e,r):t.transporter.write(e,r)}},Z=function(t){return function(e,r){return d(t.transporter.write({method:I,path:h("1/keys/%s",e)},r),(function(r,n){return f((function(r){return tt(t)(e,n).then(r).catch((function(t){if(404!==t.status)throw t}))}))}))}},$=function(t){return function(e,r,n){var a=r.map((function(t){return {action:"deleteEntry",body:{objectID:t}}}));return d(t.transporter.write({method:j,path:h("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},n),(function(e,r){return jt(t)(e.taskID,r)}))}},tt=function(t){return function(e,r){return t.transporter.read({method:x,path:h("1/keys/%s",e)},r)}},et=function(t){return function(e,r){return t.transporter.read({method:x,path:h("1/task/%s",e.toString())},r)}},rt=function(t){return function(e){return t.transporter.read({method:x,path:"/1/dictionaries/*/settings"},e)}},nt=function(t){return function(e){return t.transporter.read({method:x,path:"1/logs"},e)}},at=function(t){return function(e){return t.transporter.read({method:x,path:"1/clusters/mapping/top"},e)}},ot=function(t){return function(e,r){return t.transporter.read({method:x,path:h("1/clusters/mapping/%s",e)},r)}},it=function(t){return function(e){var r=e||{},a=r.retrieveMappings,o=n(r,["retrieveMappings"]);return !0===a&&(o.getClusters=!0),t.transporter.read({method:x,path:"1/clusters/mapping/pending"},o)}},ut=function(t){return function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={transporter:t.transporter,appId:t.appId,indexName:e};return p(n,r.methods)}},st=function(t){return function(e){return t.transporter.read({method:x,path:"1/keys"},e)}},ct=function(t){return function(e){return t.transporter.read({method:x,path:"1/clusters"},e)}},ft=function(t){return function(e){return t.transporter.read({method:x,path:"1/indexes"},e)}},dt=function(t){return function(e){return t.transporter.read({method:x,path:"1/clusters/mapping"},e)}},lt=function(t){return function(e,r,n){return d(t.transporter.write({method:j,path:h("1/indexes/%s/operation",e),data:{operation:"move",destination:r}},n),(function(r,n){return ut(t)(e,{methods:{waitTask:de}}).waitTask(r.taskID,n)}))}},pt=function(t){return function(e,r){return d(t.transporter.write({method:j,path:"1/indexes/*/batch",data:{requests:e}},r),(function(e,r){return Promise.all(Object.keys(e.taskID).map((function(n){return ut(t)(n,{methods:{waitTask:de}}).waitTask(e.taskID[n],r)})))}))}},ht=function(t){return function(e,r){return t.transporter.read({method:j,path:"1/indexes/*/objects",data:{requests:e}},r)}},mt=function(t){return function(e,n){var a=e.map((function(t){return r(r({},t),{},{params:E(t.params||{})})}));return t.transporter.read({method:j,path:"1/indexes/*/queries",data:{requests:a},cacheable:!0},n)}},yt=function(t){return function(e,a){return Promise.all(e.map((function(e){var o=e.params,i=o.facetName,u=o.facetQuery,s=n(o,["facetName","facetQuery"]);return ut(t)(e.indexName,{methods:{searchForFacetValues:ue}}).searchForFacetValues(i,u,r(r({},a),s))})))}},gt=function(t){return function(e,r){var n=y(r);return n.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:I,path:"1/clusters/mapping"},n)}},vt=function(t){return function(e,r,n){var a=r.map((function(t){return {action:"addEntry",body:t}}));return d(t.transporter.write({method:j,path:h("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:a}},n),(function(e,r){return jt(t)(e.taskID,r)}))}},bt=function(t){return function(e,r){return d(t.transporter.write({method:j,path:h("1/keys/%s/restore",e)},r),(function(r,n){return f((function(r){return tt(t)(e,n).catch((function(t){if(404!==t.status)throw t;return r()}))}))}))}},Pt=function(t){return function(e,r,n){var a=r.map((function(t){return {action:"addEntry",body:t}}));return d(t.transporter.write({method:j,path:h("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},n),(function(e,r){return jt(t)(e.taskID,r)}))}},wt=function(t){return function(e,r,n){return t.transporter.read({method:j,path:h("/1/dictionaries/%s/search",e),data:{query:r},cacheable:!0},n)}},Ot=function(t){return function(e,r){return t.transporter.read({method:j,path:"1/clusters/mapping/search",data:{query:e}},r)}},It=function(t){return function(e,r){return d(t.transporter.write({method:D,path:"/1/dictionaries/*/settings",data:e},r),(function(e,r){return jt(t)(e.taskID,r)}))}},xt=function(t){return function(e,r){var a=Object.assign({},r),o=r||{},i=o.queryParameters,u=n(o,["queryParameters"]),s=i?{queryParameters:i}:{},c=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"];return d(t.transporter.write({method:D,path:h("1/keys/%s",e),data:s},u),(function(r,n){return f((function(r){return tt(t)(e,n).then((function(t){return function(t){return Object.keys(a).filter((function(t){return -1!==c.indexOf(t)})).every((function(e){return t[e]===a[e]}))}(t)?Promise.resolve():r()}))}))}))}},jt=function(t){return function(e,r){return f((function(n){return et(t)(e,r).then((function(t){return "published"!==t.status?n():void 0}))}))}},Dt=function(t){return function(e,r){return d(t.transporter.write({method:j,path:h("1/indexes/%s/batch",t.indexName),data:{requests:e}},r),(function(e,r){return de(t)(e.taskID,r)}))}},qt=function(t){return function(e){return K(r(r({shouldStop:function(t){return void 0===t.cursor}},e),{},{request:function(r){return t.transporter.read({method:j,path:h("1/indexes/%s/browse",t.indexName),data:r},e)}}))}},St=function(t){return function(e){var n=r({hitsPerPage:1e3},e);return K(r(r({shouldStop:function(t){return t.hits.length<n.hitsPerPage}},n),{},{request:function(e){return se(t)("",r(r({},n),e)).then((function(t){return r(r({},t),{},{hits:t.hits.map((function(t){return delete t._highlightResult,t}))})}))}}))}},kt=function(t){return function(e){var n=r({hitsPerPage:1e3},e);return K(r(r({shouldStop:function(t){return t.hits.length<n.hitsPerPage}},n),{},{request:function(e){return ce(t)("",r(r({},n),e)).then((function(t){return r(r({},t),{},{hits:t.hits.map((function(t){return delete t._highlightResult,t}))})}))}}))}},Tt=function(t){return function(e,r,a){var o=a||{},i=o.batchSize,u=n(o,["batchSize"]),s={taskIDs:[],objectIDs:[]};return d(function n(){var a,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,c=[];for(a=o;a<e.length&&(c.push(e[a]),c.length!==(i||1e3));a++);return 0===c.length?Promise.resolve(s):Dt(t)(c.map((function(t){return {action:r,body:t}})),u).then((function(t){return s.objectIDs=s.objectIDs.concat(t.objectIDs),s.taskIDs.push(t.taskID),a++,n(a)}))}(),(function(e,r){return Promise.all(e.taskIDs.map((function(e){return de(t)(e,r)})))}))}},Nt=function(t){return function(e){return d(t.transporter.write({method:j,path:h("1/indexes/%s/clear",t.indexName)},e),(function(e,r){return de(t)(e.taskID,r)}))}},Et=function(t){return function(e){var r=e||{},a=r.forwardToReplicas,o=y(n(r,["forwardToReplicas"]));return a&&(o.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:j,path:h("1/indexes/%s/rules/clear",t.indexName)},o),(function(e,r){return de(t)(e.taskID,r)}))}},Rt=function(t){return function(e){var r=e||{},a=r.forwardToReplicas,o=y(n(r,["forwardToReplicas"]));return a&&(o.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:j,path:h("1/indexes/%s/synonyms/clear",t.indexName)},o),(function(e,r){return de(t)(e.taskID,r)}))}},At=function(t){return function(e,r){return d(t.transporter.write({method:j,path:h("1/indexes/%s/deleteByQuery",t.indexName),data:e},r),(function(e,r){return de(t)(e.taskID,r)}))}},Ct=function(t){return function(e){return d(t.transporter.write({method:I,path:h("1/indexes/%s",t.indexName)},e),(function(e,r){return de(t)(e.taskID,r)}))}},Ut=function(t){return function(e,r){return d(zt(t)([e],r).then((function(t){return {taskID:t.taskIDs[0]}})),(function(e,r){return de(t)(e.taskID,r)}))}},zt=function(t){return function(e,r){var n=e.map((function(t){return {objectID:t}}));return Tt(t)(n,le.DeleteObject,r)}},Jt=function(t){return function(e,r){var a=r||{},o=a.forwardToReplicas,i=y(n(a,["forwardToReplicas"]));return o&&(i.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:I,path:h("1/indexes/%s/rules/%s",t.indexName,e)},i),(function(e,r){return de(t)(e.taskID,r)}))}},Ft=function(t){return function(e,r){var a=r||{},o=a.forwardToReplicas,i=y(n(a,["forwardToReplicas"]));return o&&(i.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:I,path:h("1/indexes/%s/synonyms/%s",t.indexName,e)},i),(function(e,r){return de(t)(e.taskID,r)}))}},Ht=function(t){return function(e){return Lt(t)(e).then((function(){return !0})).catch((function(t){if(404!==t.status)throw t;return !1}))}},Mt=function(t){return function(e,r,n){return t.transporter.read({method:j,path:h("1/answers/%s/prediction",t.indexName),data:{query:e,queryLanguages:r},cacheable:!0},n)}},Kt=function(t){return function(e,o){var i=o||{},u=i.query,s=i.paginate,c=n(i,["query","paginate"]),f=0;return function n(){return ie(t)(u||"",r(r({},c),{},{page:f})).then((function(t){for(var r=0,o=Object.entries(t.hits);r<o.length;r++){var i=a(o[r],2),u=i[0],c=i[1];if(e(c))return {object:c,position:parseInt(u,10),page:f}}if(f++,!1===s||f>=t.nbPages)throw {name:"ObjectNotFoundError",message:"Object not found."};return n()}))}()}},Wt=function(t){return function(e,r){return t.transporter.read({method:x,path:h("1/indexes/%s/%s",t.indexName,e)},r)}},Bt=function(){return function(t,e){for(var r=0,n=Object.entries(t.hits);r<n.length;r++){var o=a(n[r],2),i=o[0];if(o[1].objectID===e)return parseInt(i,10)}return -1}},Qt=function(t){return function(e,a){var o=a||{},i=o.attributesToRetrieve,u=n(o,["attributesToRetrieve"]),s=e.map((function(e){return r({indexName:t.indexName,objectID:e},i?{attributesToRetrieve:i}:{})}));return t.transporter.read({method:j,path:"1/indexes/*/objects",data:{requests:s}},u)}},Gt=function(t){return function(e,r){return t.transporter.read({method:x,path:h("1/indexes/%s/rules/%s",t.indexName,e)},r)}},Lt=function(t){return function(e){return t.transporter.read({method:x,path:h("1/indexes/%s/settings",t.indexName),data:{getVersion:2}},e)}},Vt=function(t){return function(e,r){return t.transporter.read({method:x,path:h("1/indexes/%s/synonyms/%s",t.indexName,e)},r)}},_t=function(t){return function(e,r){return d(Xt(t)([e],r).then((function(t){return {objectID:t.objectIDs[0],taskID:t.taskIDs[0]}})),(function(e,r){return de(t)(e.taskID,r)}))}},Xt=function(t){return function(e,r){var a=r||{},o=a.createIfNotExists,i=n(a,["createIfNotExists"]),u=o?le.PartialUpdateObject:le.PartialUpdateObjectNoCreate;return Tt(t)(e,u,i)}},Yt=function(t){return function(e,i){var u=i||{},s=u.safe,c=u.autoGenerateObjectIDIfNotExist,f=u.batchSize,l=n(u,["safe","autoGenerateObjectIDIfNotExist","batchSize"]),p=function(e,r,n,a){return d(t.transporter.write({method:j,path:h("1/indexes/%s/operation",e),data:{operation:n,destination:r}},a),(function(e,r){return de(t)(e.taskID,r)}))},m=Math.random().toString(36).substring(7),y="".concat(t.indexName,"_tmp_").concat(m),g=ee({appId:t.appId,transporter:t.transporter,indexName:y}),v=[],b=p(t.indexName,y,"copy",r(r({},l),{},{scope:["settings","synonyms","rules"]}));return v.push(b),d((s?b.wait(l):b).then((function(){var t=g(e,r(r({},l),{},{autoGenerateObjectIDIfNotExist:c,batchSize:f}));return v.push(t),s?t.wait(l):t})).then((function(){var e=p(y,t.indexName,"move",l);return v.push(e),s?e.wait(l):e})).then((function(){return Promise.all(v)})).then((function(t){var e=a(t,3),r=e[0],n=e[1],i=e[2];return {objectIDs:n.objectIDs,taskIDs:[r.taskID].concat(o(n.taskIDs),[i.taskID])}})),(function(t,e){return Promise.all(v.map((function(t){return t.wait(e)})))}))}},Zt=function(t){return function(e,n){return ne(t)(e,r(r({},n),{},{clearExistingRules:!0}))}},$t=function(t){return function(e,n){return oe(t)(e,r(r({},n),{},{clearExistingSynonyms:!0}))}},te=function(t){return function(e,r){return d(ee(t)([e],r).then((function(t){return {objectID:t.objectIDs[0],taskID:t.taskIDs[0]}})),(function(e,r){return de(t)(e.taskID,r)}))}},ee=function(t){return function(e,r){var a=r||{},o=a.autoGenerateObjectIDIfNotExist,i=n(a,["autoGenerateObjectIDIfNotExist"]),u=o?le.AddObject:le.UpdateObject;if(u===le.UpdateObject){var s=!0,c=!1,f=void 0;try{for(var l,p=e[Symbol.iterator]();!(s=(l=p.next()).done);s=!0){if(void 0===l.value.objectID)return d(Promise.reject({name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}))}}catch(t){c=!0,f=t;}finally{try{s||null==p.return||p.return();}finally{if(c)throw f}}}return Tt(t)(e,u,i)}},re=function(t){return function(e,r){return ne(t)([e],r)}},ne=function(t){return function(e,r){var a=r||{},o=a.forwardToReplicas,i=a.clearExistingRules,u=y(n(a,["forwardToReplicas","clearExistingRules"]));return o&&(u.queryParameters.forwardToReplicas=1),i&&(u.queryParameters.clearExistingRules=1),d(t.transporter.write({method:j,path:h("1/indexes/%s/rules/batch",t.indexName),data:e},u),(function(e,r){return de(t)(e.taskID,r)}))}},ae=function(t){return function(e,r){return oe(t)([e],r)}},oe=function(t){return function(e,r){var a=r||{},o=a.forwardToReplicas,i=a.clearExistingSynonyms,u=a.replaceExistingSynonyms,s=y(n(a,["forwardToReplicas","clearExistingSynonyms","replaceExistingSynonyms"]));return o&&(s.queryParameters.forwardToReplicas=1),(u||i)&&(s.queryParameters.replaceExistingSynonyms=1),d(t.transporter.write({method:j,path:h("1/indexes/%s/synonyms/batch",t.indexName),data:e},s),(function(e,r){return de(t)(e.taskID,r)}))}},ie=function(t){return function(e,r){return t.transporter.read({method:j,path:h("1/indexes/%s/query",t.indexName),data:{query:e},cacheable:!0},r)}},ue=function(t){return function(e,r,n){return t.transporter.read({method:j,path:h("1/indexes/%s/facets/%s/query",t.indexName,e),data:{facetQuery:r},cacheable:!0},n)}},se=function(t){return function(e,r){return t.transporter.read({method:j,path:h("1/indexes/%s/rules/search",t.indexName),data:{query:e}},r)}},ce=function(t){return function(e,r){return t.transporter.read({method:j,path:h("1/indexes/%s/synonyms/search",t.indexName),data:{query:e}},r)}},fe=function(t){return function(e,r){var a=r||{},o=a.forwardToReplicas,i=y(n(a,["forwardToReplicas"]));return o&&(i.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:D,path:h("1/indexes/%s/settings",t.indexName),data:e},i),(function(e,r){return de(t)(e.taskID,r)}))}},de=function(t){return function(e,r){return f((function(n){return function(t){return function(e,r){return t.transporter.read({method:x,path:h("1/indexes/%s/task/%s",t.indexName,e.toString())},r)}}(t)(e,r).then((function(t){return "published"!==t.status?n():void 0}))}))}},le={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},pe={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},he=1,me=2,ye=3;function ge(t,e,n){var a,o={appId:t,apiKey:e,timeouts:{connect:1,read:2,write:30},requester:{send:function(t){return new Promise((function(e){var r=new XMLHttpRequest;r.open(t.method,t.url,!0),Object.keys(t.headers).forEach((function(e){return r.setRequestHeader(e,t.headers[e])}));var n,a=function(t,n){return setTimeout((function(){r.abort(),e({status:0,content:n,isTimedOut:!0});}),1e3*t)},o=a(t.connectTimeout,"Connection timeout");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(o),n=a(t.responseTimeout,"Socket timeout"));},r.onerror=function(){0===r.status&&(clearTimeout(o),clearTimeout(n),e({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}));},r.onload=function(){clearTimeout(o),clearTimeout(n),e({content:r.responseText,status:r.status,isTimedOut:!1});},r.send(t.data);}))}},logger:(a=ye,{debug:function(t,e){return he>=a&&console.debug(t,e),Promise.resolve()},info:function(t,e){return me>=a&&console.info(t,e),Promise.resolve()},error:function(t,e){return console.error(t,e),Promise.resolve()}}),responsesCache:s(),requestsCache:s({serializable:!1}),hostsCache:u({caches:[i({key:"".concat("4.14.3","-").concat(t)}),s()]}),userAgent:T("4.14.3").add({segment:"Browser"})},f=r(r({},o),n),d=function(){return function(t){return function(t){var e=t.region||"us",n=c(m.WithinHeaders,t.appId,t.apiKey),a=k(r(r({hosts:[{url:"personalization.".concat(e,".algolia.com")}]},t),{},{headers:r(r(r({},n.headers()),{"content-type":"application/json"}),t.headers),queryParameters:r(r({},n.queryParameters()),t.queryParameters)}));return p({appId:t.appId,transporter:a},t.methods)}(r(r(r({},o),t),{},{methods:{getPersonalizationStrategy:H,setPersonalizationStrategy:M}}))}};return function(t){var e=t.appId,n=c(void 0!==t.authMode?t.authMode:m.WithinHeaders,e,t.apiKey),a=k(r(r({hosts:[{url:"".concat(e,"-dsn.algolia.net"),accept:g.Read},{url:"".concat(e,".algolia.net"),accept:g.Write}].concat(l([{url:"".concat(e,"-1.algolianet.com")},{url:"".concat(e,"-2.algolianet.com")},{url:"".concat(e,"-3.algolianet.com")}]))},t),{},{headers:r(r(r({},n.headers()),{"content-type":"application/x-www-form-urlencoded"}),t.headers),queryParameters:r(r({},n.queryParameters()),t.queryParameters)}));return p({transporter:a,appId:e,addAlgoliaAgent:function(t,e){a.userAgent.add({segment:t,version:e});},clearCache:function(){return Promise.all([a.requestsCache.clear(),a.responsesCache.clear()]).then((function(){}))}},t.methods)}(r(r({},f),{},{methods:{search:mt,searchForFacetValues:yt,multipleBatch:pt,multipleGetObjects:ht,multipleQueries:mt,copyIndex:L,copySettings:_,copySynonyms:X,copyRules:V,moveIndex:lt,listIndices:ft,getLogs:nt,listClusters:ct,multipleSearchForFacetValues:yt,getApiKey:tt,addApiKey:W,listApiKeys:st,updateApiKey:xt,deleteApiKey:Z,restoreApiKey:bt,assignUserID:B,assignUserIDs:Q,getUserID:ot,searchUserIDs:Ot,listUserIDs:dt,getTopUserIDs:at,removeUserID:gt,hasPendingMappings:it,clearDictionaryEntries:G,deleteDictionaryEntries:$,getDictionarySettings:rt,getAppTask:et,replaceDictionaryEntries:vt,saveDictionaryEntries:Pt,searchDictionaryEntries:wt,setDictionarySettings:It,waitAppTask:jt,customRequest:Y,initIndex:function(t){return function(e){return ut(t)(e,{methods:{batch:Dt,delete:Ct,findAnswers:Mt,getObject:Wt,getObjects:Qt,saveObject:te,saveObjects:ee,search:ie,searchForFacetValues:ue,waitTask:de,setSettings:fe,getSettings:Lt,partialUpdateObject:_t,partialUpdateObjects:Xt,deleteObject:Ut,deleteObjects:zt,deleteBy:At,clearObjects:Nt,browseObjects:qt,getObjectPosition:Bt,findObject:Kt,exists:Ht,saveSynonym:ae,saveSynonyms:oe,getSynonym:Vt,searchSynonyms:ce,browseSynonyms:kt,deleteSynonym:Ft,clearSynonyms:Rt,replaceAllObjects:Yt,replaceAllSynonyms:$t,searchRules:se,getRule:Gt,deleteRule:Jt,saveRule:re,saveRules:ne,replaceAllRules:Zt,browseRules:St,clearRules:Et}})}},initAnalytics:function(){return function(t){return function(t){var e=t.region||"us",n=c(m.WithinHeaders,t.appId,t.apiKey),a=k(r(r({hosts:[{url:"analytics.".concat(e,".algolia.com")}]},t),{},{headers:r(r(r({},n.headers()),{"content-type":"application/json"}),t.headers),queryParameters:r(r({},n.queryParameters()),t.queryParameters)}));return p({appId:t.appId,transporter:a},t.methods)}(r(r(r({},o),t),{},{methods:{addABTest:C,getABTest:z,getABTests:J,stopABTest:F,deleteABTest:U}}))}},initPersonalization:d,initRecommendation:function(){return function(t){return f.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),d()(t)}}}}))}return ge.version="4.14.3",ge}));
9241
+ });
9242
+
10268
9243
  /**
10269
9244
  * @deprecated
10270
9245
  * Component for querying Algolia Indeces.
@@ -13386,39 +12361,54 @@ function getTextContent(slot) {
13386
12361
  /**
13387
12362
  * Determines whether an element has a slot. If name is specified, the function will look for a corresponding named
13388
12363
  * slot, otherwise it will look for a "default" slot (e.g. a non-empty text node or an element with no slot attribute).
13389
- * @param el
13390
- * @param name
12364
+ * @param host a custom element host
12365
+ * @param name a slot to find
13391
12366
  * @returns boolean
13392
12367
  */
13393
- function hasSlot(el, name) {
12368
+ function hasSlot(host, name) {
13394
12369
  // Look for a named slot
13395
12370
  if (name) {
13396
- return el.querySelector(`[slot="${name}"]`) !== null;
12371
+ return host.querySelector(`[slot="${name}"]`) !== null;
13397
12372
  }
13398
12373
  // Look for a default slot
13399
- return [...Array.from(el.childNodes)].some((node) => {
13400
- if (node.nodeType === node.TEXT_NODE && node.textContent.trim() !== '') {
13401
- return true;
13402
- }
13403
- if (node.nodeType === node.ELEMENT_NODE) {
13404
- const el = node;
13405
- if (!el.hasAttribute('slot')) {
12374
+ if (this.host.shadowRoot) {
12375
+ return [...Array.from(host.childNodes)].some((node) => {
12376
+ if (node.nodeType === node.TEXT_NODE && node.textContent.trim() !== '') {
13406
12377
  return true;
13407
12378
  }
13408
- }
13409
- return false;
13410
- });
12379
+ if (node.nodeType === node.ELEMENT_NODE) {
12380
+ const el = node;
12381
+ if (!el.hasAttribute('slot')) {
12382
+ return true;
12383
+ }
12384
+ }
12385
+ return false;
12386
+ });
12387
+ }
12388
+ // non-shadow component...TODO - only for 'scoped' components atm
12389
+ if (host.querySelector(`:not(.sc-${host.tagName.toLowerCase()}):not([slot])`))
12390
+ return true;
13411
12391
  }
13412
12392
 
13413
- const dialogCss = "/*!@:host*/.sc-nano-dialog-h{box-sizing:border-box}/*!@*,\n*::before,\n*::after*/*.sc-nano-dialog,*.sc-nano-dialog::before,*.sc-nano-dialog::after{box-sizing:border-box}/*!@[hidden]*/[hidden].sc-nano-dialog{display:none !important}/*!@:host*/.sc-nano-dialog-h{--border-radius:var(--nano-layer-border-radius, var(--nano-border-radius-medium, 4px));--content-background:#fafafa;--footer-content:#e4e6e8;--scrim-color:var(--nano-layer-overlay-dark, rgb(74 74 74 / 50%));--box-shadow:var(--nano-layer-shadow-large, 0 2px 8px rgba(0, 0, 0, 0.2));--close-button-color:#b5aea7;--width:60rem;--tint-color:#00607b;--body-padding-v:var(--nano-spacing-large, 20px);--body-padding-h:var(--nano-spacing-large, 20px);--header-padding-v:var(--nano-spacing-medium, 16px);--header-padding-h:var(--nano-spacing-large, 20px);--footer-padding-v:var(--nano-spacing-medium, 16px);--footer-padding-h:var(--nano-spacing-large, 20px)}/*!@.dialog*/.dialog.sc-nano-dialog{display:flex;align-items:center;justify-content:center;position:fixed;inset:0;z-index:var(--nano-layer-index-modal, 700)}/*!@.dialog:not(.dialog--visible)*/.dialog.sc-nano-dialog:not(.dialog--visible){position:absolute;inline-size:1px;block-size:1px;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);overflow:hidden;pointer-events:none;visibility:hidden}/*!@.dialog__panel*/.dialog__panel.sc-nano-dialog{display:flex;flex-direction:column;z-index:2;inline-size:var(--width);max-inline-size:calc(100% - var(--nano-spacing-xlarge, 24px));max-block-size:calc(92% - var(--nano-spacing-xlarge, 24px));background-color:var(--content-background);border-radius:var(--border-radius);box-shadow:var(--box-shadow);opacity:0;transform:scale(0.8);transition:var(--nano-transition-fast, 0.3s) opacity, var(--nano-transition-fast, 0.3s) transform}/*!@.dialog__panel:focus*/.dialog__panel.sc-nano-dialog:focus{outline:none}/*!@.dialog--with-ribbon .dialog__panel*/.dialog--with-ribbon.sc-nano-dialog .dialog__panel.sc-nano-dialog{-webkit-border-before:5px solid var(--tint-color);border-block-start:5px solid var(--tint-color)}/*!@.dialog--open .dialog__panel*/.dialog--open.sc-nano-dialog .dialog__panel.sc-nano-dialog{display:flex;opacity:1;transform:none}/*!@.dialog--nodismiss .dialog__panel*/.dialog--nodismiss.sc-nano-dialog .dialog__panel.sc-nano-dialog{animation:cannotClose 0.25s ease-in-out 1}@keyframes cannotClose{0%{transform:scale(1)}50%{transform:scale(1.08)}100%{transform:scale(1)}}/*!@.dialog__header*/.dialog__header.sc-nano-dialog{flex:0 0 auto;display:flex;min-inline-size:var(--width);inline-size:100%;background-color:var(--content-background);border-radius:var(--border-radius) var(--border-radius) 0 0;transition:var(--nano-transition-fast, 0.1s) box-shadow}/*!@.dialog--visible .dialog__header*/.dialog--visible.sc-nano-dialog .dialog__header.sc-nano-dialog{min-inline-size:auto}/*!@[stuck] .dialog__header*/[stuck].sc-nano-dialog .dialog__header.sc-nano-dialog{box-shadow:var(--nano-layer-shadow-medium, 0 2px 4px rgba(0, 0, 0, 0.2))}/*!@.dialog__title*/.dialog__title.sc-nano-dialog{flex:1 1 auto;font-size:var(--nano-fontsize-large, 1.25rem);line-height:1.6;padding-block:var(--header-padding-v);padding-inline:var(--header-padding-h)}/*!@.dialog .dialog__close-icon*/.dialog.sc-nano-dialog .dialog__close-icon.sc-nano-dialog{flex:0 0 auto;display:flex;align-items:center;font-size:var(--nano-fontsize-xlarge, 1.5rem);padding-block:0;padding-inline:var(--header-padding-h);--color:var(--close-button-color)}/*!@.dialog__body*/.dialog__body.sc-nano-dialog{padding-block:0 var(--body-padding-v);padding-inline:var(--body-padding-h)}/*!@.dialog:not(.dialog--has-header) .dialog__body*/.dialog.sc-nano-dialog:not(.dialog--has-header) .dialog__body.sc-nano-dialog{-webkit-padding-before:var(--body-padding-v);padding-block-start:var(--body-padding-v)}/*!@.dialog__body ::slotted(*)*/.dialog__body .sc-nano-dialog-s>*{max-inline-size:100%}/*!@.dialog__body-wrap*/.dialog__body-wrap.sc-nano-dialog{flex:1 1 auto;overflow:auto;-webkit-overflow-scrolling:touch;border-radius:var(--border-radius)}/*!@.dialog:not(.dialog--has-header) .dialog__body-wrap*/.dialog.sc-nano-dialog:not(.dialog--has-header) .dialog__body-wrap.sc-nano-dialog{border-radius:0 0 inherit inherit}/*!@.dialog:not(.dialog--has-footer) .dialog__body-wrap*/.dialog.sc-nano-dialog:not(.dialog--has-footer) .dialog__body-wrap.sc-nano-dialog{border-radius:inherit inherit 0 0}/*!@.dialog__footer*/.dialog__footer.sc-nano-dialog{inline-size:100%;padding-block:var(--footer-padding-v);padding-inline:var(--footer-padding-h);background:var(--footer-content);border-radius:0 0 var(--border-radius) var(--border-radius);position:relative;inset-block-start:1px}/*!@.dialog--visible .dialog__footer*/.dialog--visible.sc-nano-dialog .dialog__footer.sc-nano-dialog{min-inline-size:auto}/*!@.dialog__footer ::slotted(button)*/.dialog__footer .sc-nano-dialog-s>button{-webkit-margin-end:var(--nano-spacing-small, 8px) !important;margin-inline-end:var(--nano-spacing-small, 8px) !important}/*!@.dialog:not(.dialog--has-footer) .dialog__footer*/.dialog.sc-nano-dialog:not(.dialog--has-footer) .dialog__footer.sc-nano-dialog{display:none}/*!@.dialog__close-txt*/.dialog__close-txt.sc-nano-dialog{color:var(--tint-color);border:none;text-decoration:underline;margin:0;text-underline-offset:4px;background-color:transparent;font:inherit;-webkit-box-align:center;cursor:pointer;font-size:var(--nano-fontsize-small, 0.875rem);padding:0.5rem;border-radius:var(--nano-border-radius-small, 2px);transition:box-shadow 100ms ease-in-out}/*!@.dialog__close-txt:focus*/.dialog__close-txt.sc-nano-dialog:focus{outline:none;box-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)))}/*!@.dialog__overlay*/.dialog__overlay.sc-nano-dialog{position:fixed;inset:0;background-color:var(--scrim-color);opacity:0;transition:var(--nano-transition-fast, 0.3s) opacity;-webkit-backdrop-filter:blur(var(--nano-layer-overlay-blur, 3px));backdrop-filter:blur(var(--nano-layer-overlay-blur, 3px))}/*!@.dialog--open .dialog__overlay*/.dialog--open.sc-nano-dialog .dialog__overlay.sc-nano-dialog{opacity:1}";
12393
+ const dialogCss = "/*!@:host*/.sc-nano-dialog-h{box-sizing:border-box}/*!@*,\n*::before,\n*::after*/*.sc-nano-dialog,*.sc-nano-dialog::before,*.sc-nano-dialog::after{box-sizing:border-box}/*!@[hidden]*/[hidden].sc-nano-dialog{display:none !important}/*!@:host*/.sc-nano-dialog-h{--border-radius:var(--nano-layer-border-radius, var(--nano-border-radius-medium, 4px));--content-background:#fafafa;--footer-content:#e4e6e8;--scrim-color:var(--nano-layer-overlay-dark, rgb(74 74 74 / 50%));--box-shadow:var(--nano-layer-shadow-large, 0 2px 8px rgba(0, 0, 0, 0.2));--close-button-color:#b5aea7;--width:60rem;--tint-color:#00607b;--body-padding-v:var(--nano-spacing-large, 20px);--body-padding-h:var(--nano-spacing-large, 20px);--header-padding-v:var(--nano-spacing-medium, 16px);--header-padding-h:var(--nano-spacing-large, 20px);--footer-padding-v:var(--nano-spacing-medium, 16px);--footer-padding-h:var(--nano-spacing-large, 20px)}/*!@.dialog*/.dialog.sc-nano-dialog{display:flex;align-items:center;justify-content:center;position:fixed;inset:0;z-index:var(--nano-layer-index-modal, 700)}/*!@.dialog__panel*/.dialog__panel.sc-nano-dialog{display:flex;flex-direction:column;z-index:2;inline-size:var(--width);max-inline-size:calc(100% - var(--nano-spacing-xlarge, 24px));max-block-size:calc(92% - var(--nano-spacing-xlarge, 24px));background-color:var(--content-background);border-radius:var(--border-radius);box-shadow:var(--box-shadow);opacity:0;transform:scale(0.8);transition:var(--nano-transition-fast, 0.3s) opacity, var(--nano-transition-fast, 0.3s) transform}/*!@.dialog__panel:focus*/.dialog__panel.sc-nano-dialog:focus{outline:none}/*!@.dialog--with-ribbon .dialog__panel*/.dialog--with-ribbon.sc-nano-dialog .dialog__panel.sc-nano-dialog{-webkit-border-before:5px solid var(--tint-color);border-block-start:5px solid var(--tint-color)}/*!@.dialog--open .dialog__panel*/.dialog--open.sc-nano-dialog .dialog__panel.sc-nano-dialog{display:flex;opacity:1;transform:none}/*!@.dialog--nodismiss .dialog__panel*/.dialog--nodismiss.sc-nano-dialog .dialog__panel.sc-nano-dialog{animation:cannotClose 0.25s ease-in-out 1}@keyframes cannotClose{0%{transform:scale(1)}50%{transform:scale(1.08)}100%{transform:scale(1)}}/*!@.dialog__header*/.dialog__header.sc-nano-dialog{flex:0 0 auto;display:flex;inline-size:100%;background-color:var(--content-background);border-radius:var(--border-radius) var(--border-radius) 0 0;transition:var(--nano-transition-fast, 0.1s) box-shadow;min-inline-size:auto}/*!@[stuck] .dialog__header*/[stuck].sc-nano-dialog .dialog__header.sc-nano-dialog{box-shadow:var(--nano-layer-shadow-medium, 0 2px 4px rgba(0, 0, 0, 0.2))}/*!@.dialog__title*/.dialog__title.sc-nano-dialog{flex:1 1 auto;font-size:var(--nano-fontsize-large, 1.25rem);line-height:1.6;padding-block:var(--header-padding-v);padding-inline:var(--header-padding-h)}/*!@.dialog .dialog__close-icon*/.dialog.sc-nano-dialog .dialog__close-icon.sc-nano-dialog{flex:0 0 auto;display:flex;align-items:center;font-size:var(--nano-fontsize-xlarge, 1.5rem);padding-block:0;padding-inline:var(--header-padding-h);--color:var(--close-button-color)}/*!@.dialog__body*/.dialog__body.sc-nano-dialog{padding-block:0 var(--body-padding-v);padding-inline:var(--body-padding-h)}/*!@.dialog:not(.dialog--has-header) .dialog__body*/.dialog.sc-nano-dialog:not(.dialog--has-header) .dialog__body.sc-nano-dialog{-webkit-padding-before:var(--body-padding-v);padding-block-start:var(--body-padding-v)}/*!@.dialog__body ::slotted(*)*/.dialog__body .sc-nano-dialog-s>*{max-inline-size:100%}/*!@.dialog__body-wrap*/.dialog__body-wrap.sc-nano-dialog{flex:1 1 auto;overflow:auto;-webkit-overflow-scrolling:touch;border-radius:var(--border-radius)}/*!@.dialog:not(.dialog--has-header) .dialog__body-wrap*/.dialog.sc-nano-dialog:not(.dialog--has-header) .dialog__body-wrap.sc-nano-dialog{border-radius:0 0 inherit inherit}/*!@.dialog:not(.dialog--has-footer) .dialog__body-wrap*/.dialog.sc-nano-dialog:not(.dialog--has-footer) .dialog__body-wrap.sc-nano-dialog{border-radius:inherit inherit 0 0}/*!@.dialog__footer*/.dialog__footer.sc-nano-dialog{inline-size:100%;padding-block:var(--footer-padding-v);padding-inline:var(--footer-padding-h);background:var(--footer-content);border-radius:0 0 var(--border-radius) var(--border-radius);position:relative;inset-block-start:1px;min-inline-size:auto}/*!@.dialog__footer ::slotted(button)*/.dialog__footer .sc-nano-dialog-s>button{-webkit-margin-end:var(--nano-spacing-small, 8px) !important;margin-inline-end:var(--nano-spacing-small, 8px) !important}/*!@.dialog:not(.dialog--has-footer) .dialog__footer*/.dialog.sc-nano-dialog:not(.dialog--has-footer) .dialog__footer.sc-nano-dialog{display:none}/*!@.dialog__close-txt*/.dialog__close-txt.sc-nano-dialog{color:var(--tint-color);border:none;text-decoration:underline;margin:0;text-underline-offset:4px;background-color:transparent;font:inherit;-webkit-box-align:center;cursor:pointer;font-size:var(--nano-fontsize-small, 0.875rem);padding:0.5rem;border-radius:var(--nano-border-radius-small, 2px);transition:box-shadow 100ms ease-in-out}/*!@.dialog__close-txt:focus*/.dialog__close-txt.sc-nano-dialog:focus{outline:none;box-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)))}/*!@.dialog__overlay*/.dialog__overlay.sc-nano-dialog{position:fixed;inset:0;background-color:var(--scrim-color);opacity:0;transition:var(--nano-transition-fast, 0.3s) opacity;-webkit-backdrop-filter:blur(var(--nano-layer-overlay-blur, 3px));backdrop-filter:blur(var(--nano-layer-overlay-blur, 3px))}/*!@.dialog--open .dialog__overlay*/.dialog--open.sc-nano-dialog .dialog__overlay.sc-nano-dialog{opacity:1}";
13414
12394
 
13415
- let id$4 = 0;
12395
+ let id$3 = 0;
13416
12396
  /**
13417
12397
  * Dialogs, sometimes called "modals", appear above the page and require the user's immediate attention.
13418
12398
  *
13419
- * @slot - The dialog's content.
12399
+ * @part base - The component’s base wrapper
12400
+ * @part overlay - The overlay that covers the screen behind the dialog
12401
+ * @part panel - The dialog’s panel (where the dialog and its content are rendered)
12402
+ * @part header - The dialog’s header. This element wraps the title and header actions
12403
+ * @part title - The dialog’s title
12404
+ * @part close-button - The `<nano-icon-button>` close button
12405
+ * @part close-button__base - The close button's exported `base` part
12406
+ * @part body - dilog body / content
12407
+ * @part footer - dialog footer bar
12408
+ *
13420
12409
  * @slot label - The dialog's label. Alternatively, you can use the label prop.
13421
12410
  * @slot footer - The dialog's footer, usually one or more buttons representing various options.
12411
+ * @slot - The dialog's content.
13422
12412
  */
13423
12413
  class Dialog {
13424
12414
  constructor(hostRef) {
@@ -13429,10 +12419,9 @@ class Dialog {
13429
12419
  this.nanoAfterHide = createEvent(this, "nanoAfterHide", 7);
13430
12420
  this.nanoInitialFocus = createEvent(this, "nanoInitialFocus", 7);
13431
12421
  this.nanoRequestClose = createEvent(this, "nanoRequestClose", 7);
13432
- this.componentId = `dialog-${++id$4}`;
12422
+ this.componentId = `dialog-${++id$3}`;
13433
12423
  this.willShow = false;
13434
12424
  this.willHide = false;
13435
- this.addedTransEnd = false;
13436
12425
  this.handleKeyDown = (event) => {
13437
12426
  if (event.key === 'Escape') {
13438
12427
  this.requestClose();
@@ -13445,7 +12434,7 @@ class Dialog {
13445
12434
  }
13446
12435
  else {
13447
12436
  this.noDismiss = true;
13448
- setTimeout((_) => (this.noDismiss = false), 250);
12437
+ setTimeout(() => (this.noDismiss = false), 250);
13449
12438
  }
13450
12439
  };
13451
12440
  this.handleTransitionEnd = (event) => {
@@ -13454,16 +12443,16 @@ class Dialog {
13454
12443
  .composedPath()
13455
12444
  .find((node) => node === this.panel || node === this.overlay)) {
13456
12445
  // Ensure we only emit one event when the target element is no longer visible
13457
- this.isVisible = this.open;
13458
12446
  this.willShow = false;
13459
12447
  this.willHide = false;
13460
12448
  this.open ? this.nanoAfterShow.emit() : this.nanoAfterHide.emit();
12449
+ if (!this.open)
12450
+ this.dialog.hidden = true;
13461
12451
  }
13462
12452
  };
13463
12453
  this.handleSlotChange = () => {
13464
12454
  this.hasFooter = hasSlot(this.host, 'footer');
13465
12455
  };
13466
- this.isVisible = false;
13467
12456
  this.noDismiss = false;
13468
12457
  this.hasFooter = false;
13469
12458
  this.showRibbon = true;
@@ -13476,11 +12465,21 @@ class Dialog {
13476
12465
  this.storeMethod = 'url-hash';
13477
12466
  this.hoist = false;
13478
12467
  }
12468
+ get panel() {
12469
+ return this._panel;
12470
+ }
12471
+ set panel(p) {
12472
+ if (this._panel) {
12473
+ this.panel.removeEventListener('transitionend', this.handleTransitionEnd);
12474
+ }
12475
+ p.addEventListener('transitionend', this.handleTransitionEnd);
12476
+ this._panel = p;
12477
+ }
13479
12478
  handleOpenChange() {
13480
12479
  this.open ? this.show() : this.hide();
13481
12480
  }
13482
12481
  handleHoistChange() {
13483
- if (!this.hoist || document.body.children[0] === this.host)
12482
+ if (!this.hoist || Array.from(document.body.children).includes(this.host))
13484
12483
  return;
13485
12484
  document.body.prepend(this.host);
13486
12485
  }
@@ -13494,9 +12493,10 @@ class Dialog {
13494
12493
  this.open = false;
13495
12494
  return;
13496
12495
  }
12496
+ if (this.dialog)
12497
+ this.dialog.hidden = false;
13497
12498
  this.originalTrigger = document.activeElement;
13498
12499
  this.willShow = true;
13499
- this.isVisible = true;
13500
12500
  this.open = true;
13501
12501
  this.modal.activate();
13502
12502
  lockBodyScrolling(this.host);
@@ -13545,10 +12545,6 @@ class Dialog {
13545
12545
  connectedCallback() {
13546
12546
  this.handleHoistChange();
13547
12547
  this.modal = new Modal(this.host);
13548
- if (this.panel) {
13549
- this.addedTransEnd = true;
13550
- this.panel.addEventListener('transitionend', this.handleTransitionEnd);
13551
- }
13552
12548
  }
13553
12549
  componentWillLoad() {
13554
12550
  this.handleSlotChange();
@@ -13559,27 +12555,23 @@ class Dialog {
13559
12555
  ComponentStore.init(this, ['open'], this.storeMethod, this.storeId);
13560
12556
  }
13561
12557
  componentDidLoad() {
13562
- if (!this.addedTransEnd) {
13563
- this.panel.addEventListener('transitionend', this.handleTransitionEnd);
13564
- }
12558
+ this.dialog.hidden = !this.open;
13565
12559
  }
13566
12560
  disconnectedCallback() {
12561
+ unlockBodyScrolling(this.host);
13567
12562
  if (!this.panel)
13568
12563
  return;
13569
- unlockBodyScrolling(this.host);
13570
- this.addedTransEnd = false;
13571
12564
  this.panel.removeEventListener('transitionend', this.handleTransitionEnd);
13572
12565
  }
13573
12566
  render() {
13574
- return (hAsync(Host, { showing: this.isVisible ? true : undefined }, hAsync("div", { part: "base", class: {
12567
+ return (hAsync(Host, null, hAsync("div", { part: "base", class: {
13575
12568
  dialog: true,
13576
12569
  'dialog--open': this.open,
13577
- 'dialog--visible': this.isVisible,
13578
12570
  'dialog--has-footer': !this.noFooter,
13579
12571
  'dialog--has-header': !this.noHeader,
13580
12572
  'dialog--nodismiss': this.noDismiss,
13581
12573
  'dialog--with-ribbon': this.showRibbon,
13582
- }, onKeyDown: this.handleKeyDown }, hAsync("div", { part: "overlay", class: "dialog__overlay", ref: (el) => (this.overlay = el), onClick: this.requestClose }), hAsync("div", { ref: (el) => (this.panel = el), part: "panel", class: "dialog__panel", role: "dialog", "aria-modal": "true", "aria-hidden": this.open ? 'false' : 'true', "aria-label": this.noHeader ? this.label : null, "aria-labelledby": !this.noHeader ? `${this.componentId}-title` : null, tabIndex: 0 }, hAsync("div", { class: "dialog__body-wrap" }, !this.noHeader && (hAsync("nano-sticker", null, hAsync("header", { part: "header", class: "dialog__header" }, hAsync("span", { part: "title", class: "dialog__title", id: `${this.componentId}-title` }, hAsync("slot", { name: "label" }, this.label || String.fromCharCode(65279))), !this.noUserDismiss && (hAsync("nano-icon-button", { exportparts: "base:close-button", class: "dialog__close-icon", label: "close dialog", onClick: this.requestClose, iconName: "light/times" }))))), hAsync("div", { part: "body", class: "dialog__body", style: { display: !this.isVisible ? 'none' : '' } }, hAsync("slot", null)), !this.noFooter && (this.hasFooter || !this.noUserDismiss) && (hAsync("nano-sticker", { position: "bottom" }, hAsync("footer", { part: "footer", class: "dialog__footer" }, hAsync("slot", { name: "footer", onSlotchange: this.handleSlotChange }), !this.noUserDismiss && (hAsync("button", { class: "dialog__close-txt", onClick: this.requestClose }, "Close"))))))))));
12574
+ }, onKeyDown: this.handleKeyDown, ref: (ele) => (this.dialog = ele) }, hAsync("div", { part: "overlay", class: "dialog__overlay", ref: (el) => (this.overlay = el), onClick: this.requestClose }), hAsync("div", { ref: (el) => (this.panel = el), part: "panel", class: "dialog__panel", role: "dialog", "aria-modal": "true", "aria-hidden": this.open ? 'false' : 'true', "aria-label": this.noHeader ? this.label : null, "aria-labelledby": !this.noHeader ? `${this.componentId}-title` : null, tabIndex: 0 }, hAsync("div", { class: "dialog__body-wrap" }, !this.noHeader && (hAsync("nano-sticker", null, hAsync("header", { part: "header", class: "dialog__header" }, hAsync("span", { part: "title", class: "dialog__title", id: `${this.componentId}-title` }, hAsync("slot", { name: "label" }, this.label || String.fromCharCode(65279))), !this.noUserDismiss && (hAsync("nano-icon-button", { part: "close-button", exportparts: "base:close-button__base", class: "dialog__close-icon", label: "close dialog", onClick: this.requestClose, iconName: "light/times" }))))), hAsync("div", { part: "body", class: "dialog__body" }, hAsync("slot", null)), !this.noFooter && (this.hasFooter || !this.noUserDismiss) && (hAsync("nano-sticker", { position: "bottom" }, hAsync("footer", { part: "footer", class: "dialog__footer" }, hAsync("slot", { name: "footer", onSlotchange: this.handleSlotChange }), !this.noUserDismiss && (hAsync("button", { class: "dialog__close-txt", onClick: this.requestClose }, "Close"))))))))));
13583
12575
  }
13584
12576
  get host() { return getElement(this); }
13585
12577
  static get watchers() { return {
@@ -13600,7 +12592,6 @@ class Dialog {
13600
12592
  "storeId": [1, "store-id"],
13601
12593
  "storeMethod": [1, "store-method"],
13602
12594
  "hoist": [4],
13603
- "isVisible": [32],
13604
12595
  "noDismiss": [32],
13605
12596
  "hasFooter": [32],
13606
12597
  "show": [64],
@@ -13612,186 +12603,285 @@ class Dialog {
13612
12603
  }; }
13613
12604
  }
13614
12605
 
13615
- const drawerCss = "/*!@:host*/.sc-nano-drawer-h{box-sizing:border-box}/*!@*,\n*::before,\n*::after*/*.sc-nano-drawer,*.sc-nano-drawer::before,*.sc-nano-drawer::after{box-sizing:border-box}/*!@[hidden]*/[hidden].sc-nano-drawer{display:none !important}/*!@:host*/.sc-nano-drawer-h{position:relative;display:block;--size:25rem;--panel-background-color:white;--panel-shadow:0 4px 16px rgb(0 0 0 / 10%);--overlay-color:hsl(203deg 10% 20% / 50%)}/*!@.drawer*/.drawer.sc-nano-drawer{inset-block-start:0;inset-inline-start:0;width:100%;height:100%;pointer-events:none;overflow:hidden}/*!@.drawer:not(.drawer--visible)*/.drawer.sc-nano-drawer:not(.drawer--visible){position:absolute;inline-size:1px;block-size:1px;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);overflow:hidden;pointer-events:none;visibility:hidden}/*!@.drawer--contained*/.drawer--contained.sc-nano-drawer{position:absolute;z-index:initial}/*!@.drawer--fixed*/.drawer--fixed.sc-nano-drawer{position:fixed;z-index:2000}/*!@.drawer__panel*/.drawer__panel.sc-nano-drawer{position:absolute;display:flex;flex-direction:column;z-index:2;max-width:100%;max-height:100%;background-color:var(--panel-background-color);box-shadow:var(--panel-shadow);transition:250ms transform;overflow:auto;pointer-events:all}/*!@.drawer__panel:focus*/.drawer__panel.sc-nano-drawer:focus{outline:none}/*!@.drawer--start .drawer__panel*/.drawer--start.sc-nano-drawer .drawer__panel.sc-nano-drawer{transform:translate3d(-100%, 0, 0);inset-block:0 auto;width:var(--size);height:100%}/*!@.drawer--start .drawer__panel[dir=rtl]*/.drawer--start.sc-nano-drawer .drawer__panel[dir=rtl].sc-nano-drawer{transform:translate3d(calc(-1 * -100%), 0, 0)}/*!@.drawer--end .drawer__panel*/.drawer--end.sc-nano-drawer .drawer__panel.sc-nano-drawer{transform:translate3d(100%, 0, 0);inset-block:0 auto;width:var(--size);height:100%}/*!@.drawer--end .drawer__panel[dir=rtl]*/.drawer--end.sc-nano-drawer .drawer__panel[dir=rtl].sc-nano-drawer{transform:translate3d(calc(-1 * 100%), 0, 0)}/*!@.drawer--top .drawer__panel*/.drawer--top.sc-nano-drawer .drawer__panel.sc-nano-drawer{inset-inline:auto 0;inset-block:0 auto;width:100%;height:var(--size);transform:translate(0, -100%)}/*!@.drawer--bottom .drawer__panel*/.drawer--bottom.sc-nano-drawer .drawer__panel.sc-nano-drawer{inset-inline:auto 0;inset-block:auto 0;width:100%;height:var(--size);transform:translate(0, 100%)}/*!@.drawer--open .drawer__panel*/.drawer--open.sc-nano-drawer .drawer__panel.sc-nano-drawer{transform:translate(0, 0)}/*!@.drawer__header*/.drawer__header.sc-nano-drawer{display:flex}/*!@.drawer__title*/.drawer__title.sc-nano-drawer{flex:1 1 auto;padding:20px}/*!@.drawer__close*/.drawer__close.sc-nano-drawer{flex:0 0 auto;display:flex;align-items:center}/*!@.drawer__body*/.drawer__body.sc-nano-drawer{flex:1 1 auto;overflow:auto;-webkit-overflow-scrolling:touch}/*!@.drawer__footer*/.drawer__footer.sc-nano-drawer{text-align:end}/*!@.drawer:not(.drawer--has-footer) .drawer__footer*/.drawer.sc-nano-drawer:not(.drawer--has-footer) .drawer__footer.sc-nano-drawer{display:none}/*!@.drawer__overlay*/.drawer__overlay.sc-nano-drawer{display:block;position:fixed;inset:0;background-color:var(--overlay-color);opacity:0;transition:250ms opacity;pointer-events:all}/*!@.drawer--contained .drawer__overlay*/.drawer--contained.sc-nano-drawer .drawer__overlay.sc-nano-drawer{position:absolute}/*!@.drawer--open .drawer__overlay*/.drawer--open.sc-nano-drawer .drawer__overlay.sc-nano-drawer{opacity:1}";
12606
+ /**
12607
+ * Add multiple event listeners with the same callback function
12608
+ * @param el the element which emits events
12609
+ * @param events the event names to listen to (string separated by a space)
12610
+ * @param fn the function to call
12611
+ * @param opts the event options to apply
12612
+ */
12613
+ function addListeners(el, events, fn, opts) {
12614
+ events
12615
+ .split(' ')
12616
+ .forEach((e) => el.addEventListener(e, fn, opts));
12617
+ }
12618
+ /**
12619
+ * Waits for a specific event to be emitted from an element.
12620
+ * Ignores events that bubble up from child elements.
12621
+ * @param el an html element
12622
+ * @param eventName name of the event
12623
+ */
12624
+ function waitForEvent(el, eventName) {
12625
+ return new Promise((resolve) => {
12626
+ function done(event) {
12627
+ if (event.target === el) {
12628
+ el.removeEventListener(eventName, done);
12629
+ resolve();
12630
+ }
12631
+ }
12632
+ el.addEventListener(eventName, done);
12633
+ });
12634
+ }
12635
+
12636
+ const drawerCss = "/*!@:host*/.sc-nano-drawer-h{box-sizing:border-box}/*!@*,\n*::before,\n*::after*/*.sc-nano-drawer,*.sc-nano-drawer::before,*.sc-nano-drawer::after{box-sizing:border-box}/*!@[hidden]*/[hidden].sc-nano-drawer{display:none !important}/*!@:host*/.sc-nano-drawer-h{--size:25rem;--panel-background:white;--panel-shadow:var(--nano-layer-shadow-xlarge, 0 4px 16px rgba(0, 0, 0, 0.4));--scrim-color:var(--nano-layer-overlay-dark, rgb(74 74 74 / 50%));--header-button-color:#b5aea7;--footer-background:#e4e6e8;--header-background:var(--panel-background);--header-spacing:var(--nano-spacing-large, 20px);--body-spacing:var(--nano-spacing-large, 20px);--footer-spacing:var(--nano-spacing-medium, 16px) var(--nano-spacing-large, 20px);--dir:1}/*!@:host(:dir(rtl))*/.sc-nano-drawer-h:dir(rtl){--dir:-1}/*!@:host-context([dir=rtl])*/[dir=rtl].sc-nano-drawer-h,[dir=rtl] .sc-nano-drawer-h{--dir:-1}/*!@.drawer*/.drawer.sc-nano-drawer{inset-block-start:0;inset-inline-start:0;width:100%;height:100%;pointer-events:none;overflow:hidden}/*!@.drawer--contained*/.drawer--contained.sc-nano-drawer{position:absolute;z-index:initial}/*!@.drawer--fixed*/.drawer--fixed.sc-nano-drawer{position:fixed;z-index:var(--nano-layer-index-modal, 700)}/*!@.drawer__panel*/.drawer__panel.sc-nano-drawer{position:absolute;z-index:2;max-width:100%;max-height:100%;background-color:var(--panel-background);box-shadow:var(--panel-shadow);pointer-events:all;transition:var(--nano-transition-fast, 0.3s) opacity, var(--nano-transition-fast, 0.3s) transform;display:flex;flex-direction:column}@media (forced-colors: active){/*!@.drawer__panel*/.drawer__panel.sc-nano-drawer{border:solid 1px #4a4a4a}}/*!@.drawer__panel:focus*/.drawer__panel.sc-nano-drawer:focus{outline:none}/*!@.drawer--nodismiss .drawer__panel*/.drawer--nodismiss.sc-nano-drawer .drawer__panel.sc-nano-drawer{animation:cannotClose 0.25s ease-in-out 1}@keyframes cannotClose{0%{transform:scale(1)}50%{transform:scale(1.08)}100%{transform:scale(1)}}/*!@.drawer--top .drawer__panel*/.drawer--top.sc-nano-drawer .drawer__panel.sc-nano-drawer{inset-block:0 auto;inset-inline-end:auto;inset-inline-start:0;width:100%;height:var(--size);opacity:0;transform:translateY(-100%)}/*!@.drawer--bottom .drawer__panel*/.drawer--bottom.sc-nano-drawer .drawer__panel.sc-nano-drawer{inset-block:auto 0;inset-inline-end:auto;inset-inline-start:0;width:100%;height:var(--size);opacity:0;transform:translateY(100%)}/*!@.drawer--top.drawer--open .drawer__panel, .drawer--bottom.drawer--open .drawer__panel*/.drawer--top.drawer--open.sc-nano-drawer .drawer__panel.sc-nano-drawer,.drawer--bottom.drawer--open.sc-nano-drawer .drawer__panel.sc-nano-drawer{opacity:1;transform:translateY(0)}/*!@.drawer--start .drawer__panel*/.drawer--start.sc-nano-drawer .drawer__panel.sc-nano-drawer{inset-block:0 auto;inset-inline-end:auto;inset-inline-start:0;width:var(--size);height:100%;opacity:0;transform:translateX(calc(var(--dir) * -100%))}/*!@.drawer--end .drawer__panel*/.drawer--end.sc-nano-drawer .drawer__panel.sc-nano-drawer{inset-block:0 auto;inset-inline-end:0;inset-inline-start:auto;width:var(--size);height:100%;opacity:0;transform:translateX(calc(var(--dir) * 100%))}/*!@.drawer--start.drawer--open .drawer__panel, .drawer--end.drawer--open .drawer__panel*/.drawer--start.drawer--open.sc-nano-drawer .drawer__panel.sc-nano-drawer,.drawer--end.drawer--open.sc-nano-drawer .drawer__panel.sc-nano-drawer{opacity:1;transform:translateX(0)}/*!@.drawer__header*/.drawer__header.sc-nano-drawer{inline-size:100%;display:flex;background-color:var(--header-background)}/*!@[stuck] .drawer__header*/[stuck].sc-nano-drawer .drawer__header.sc-nano-drawer{box-shadow:var(--nano-layer-shadow-medium, 0 2px 4px rgba(0, 0, 0, 0.2))}/*!@.drawer__title*/.drawer__title.sc-nano-drawer{flex:1 1 auto;font:inherit;font-size:var(--nano-fontsize-large, 1.25rem);line-height:1.2;padding:var(--header-spacing);margin:0}/*!@.drawer__header-actions*/.drawer__header-actions.sc-nano-drawer{flex-shrink:0;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--nano-spacing-xsmall, 4px);padding:0 var(--header-spacing)}/*!@.drawer__header-actions .drawer__close,\n.drawer__header-actions ::slotted(nano-icon-button)*/.drawer__header-actions.sc-nano-drawer .drawer__close.sc-nano-drawer,.drawer__header-actions .sc-nano-drawer-s>nano-icon-button{flex:0 0 auto;display:flex;align-items:center;font-size:var(--nano-fontsize-xlarge, 1.5rem);--color:var(--header-button-color)}/*!@.drawer__main*/.drawer__main.sc-nano-drawer{display:flex;flex-direction:column;overflow:auto;-webkit-overflow-scrolling:touch;flex:1 1 auto}/*!@.drawer__body*/.drawer__body.sc-nano-drawer{display:block;flex:1 1 auto;padding:var(--body-spacing);padding-block:0 var(--body-spacing);padding-inline:var(--body-spacing)}/*!@.drawer:not(.drawer--has-header) .drawer__body*/.drawer.sc-nano-drawer:not(.drawer--has-header) .drawer__body.sc-nano-drawer{-webkit-padding-before:var(--body-spacing);padding-block-start:var(--body-spacing)}/*!@.drawer__footer*/.drawer__footer.sc-nano-drawer{inline-size:100%;text-align:end;padding:var(--footer-spacing);background:var(--footer-background);inset-block-start:1px;position:relative}/*!@.drawer__footer ::slotted(button:not(:last-of-type))*/.drawer__footer .sc-nano-drawer-s>button:not(:last-of-type){-webkit-margin-end:var(--nano-spacing-xsmall, 4px);margin-inline-end:var(--nano-spacing-xsmall, 4px)}/*!@.drawer:not(.drawer--has-footer) .drawer__footer*/.drawer.sc-nano-drawer:not(.drawer--has-footer) .drawer__footer.sc-nano-drawer{display:none}/*!@.drawer__overlay*/.drawer__overlay.sc-nano-drawer{display:block;position:fixed;inset:0;background-color:var(--scrim-color);pointer-events:all;-webkit-backdrop-filter:blur(var(--nano-layer-overlay-blur, 3px));backdrop-filter:blur(var(--nano-layer-overlay-blur, 3px));opacity:0;transition:var(--nano-transition-fast, 0.3s) opacity}/*!@.drawer--open .drawer__overlay*/.drawer--open.sc-nano-drawer .drawer__overlay.sc-nano-drawer{opacity:1}/*!@.drawer--contained .drawer__overlay*/.drawer--contained.sc-nano-drawer .drawer__overlay.sc-nano-drawer{display:none}";
13616
12637
 
13617
- let id$3 = 0;
13618
12638
  /**
13619
- * WIP / TODO. https://git.oxfordnanolabs.local/Digital/nano-components/-/issues/24
13620
- * @slot - The drawer's content.
13621
- * @slot label - The dialog's label. Alternatively, you can use the label prop.
13622
- * @slot footer - The drawer's footer, usually one or more buttons representing various options.
12639
+ * Drawers slide in from a container to expose additional options and information.
12640
+ *
12641
+ * @slot - The drawer's main content
12642
+ * @slot label - The drawer's label. Alternatively, you can use the `label` attribute
12643
+ * @slot header-actions - Optional actions to add to the header. Works best with `<nano-icon-button>`
12644
+ * @slot footer - The drawer's footer, usually one or more buttons representing various options
12645
+ *
12646
+ * @part base - The component's base wrapper
12647
+ * @part overlay - The overlay that covers the screen behind the drawer
12648
+ * @part panel - The drawer's panel (where the drawer and its content are rendered)
12649
+ * @part header - The drawer's header. This element wraps the title and header actions
12650
+ * @part header-actions - Optional actions to add to the header. Works best with `<nano-icon-button>`
12651
+ * @part title - The drawer's title
12652
+ * @part close-button - The close button, an `<nano-icon-button>`
12653
+ * @part close-button__base - The close button's exported `base` part
12654
+ * @part body - The drawer's body
12655
+ * @part footer - The drawer's footer
13623
12656
  */
13624
12657
  class Drawer {
13625
12658
  constructor(hostRef) {
13626
12659
  registerInstance(this, hostRef);
13627
12660
  this.nanoShow = createEvent(this, "nanoShow", 7);
13628
- this.nanoAfterShow = createEvent(this, "nanoAfterShow", 7);
13629
12661
  this.nanoHide = createEvent(this, "nanoHide", 7);
13630
12662
  this.nanoAfterHide = createEvent(this, "nanoAfterHide", 7);
13631
- this.nanoOverlayDismiss = createEvent(this, "nanoOverlayDismiss", 7);
13632
- this.componentId = `drawer-${++id$3}`;
13633
- this.hasFooter = false;
13634
- this.isVisible = false;
12663
+ this.nanoAfterShow = createEvent(this, "nanoAfterShow", 7);
12664
+ this.nanoInitialFocus = createEvent(this, "nanoInitialFocus", 7);
12665
+ this.nanoRquestClose = createEvent(this, "nanoRquestClose", 7);
12666
+ this.handleDocumentKeyDown = (event) => {
12667
+ // Contained drawers aren't modal and don't response to the escape key
12668
+ if (this.contained) {
12669
+ return;
12670
+ }
12671
+ if (event.key === 'Escape' && this.modal.isActive() && this.open) {
12672
+ event.stopImmediatePropagation();
12673
+ this.requestClose('keyboard');
12674
+ }
12675
+ };
12676
+ this.handleTransitionEnd = (event) => {
12677
+ if (event.propertyName === 'opacity' &&
12678
+ event
12679
+ .composedPath()
12680
+ .find((node) => node === this.panel || node === this.overlay)) {
12681
+ if (!this.open) {
12682
+ this.drawer.hidden = true;
12683
+ // Now that the dialog is hidden, restore the overlay and panel for next time
12684
+ this.overlay.hidden = false;
12685
+ this.panel.hidden = false;
12686
+ }
12687
+ this.open ? this.nanoAfterShow.emit() : this.nanoAfterHide.emit();
12688
+ }
12689
+ };
12690
+ this.handleSlotChange = () => {
12691
+ this.hasFooter = hasSlot(this.host, 'footer');
12692
+ };
12693
+ this.noDismiss = false;
12694
+ this.hasFooter = undefined;
13635
12695
  this.open = false;
13636
- this.label = '';
12696
+ this.label = undefined;
13637
12697
  this.placement = 'end';
13638
12698
  this.contained = false;
13639
12699
  this.noHeader = false;
13640
- this.type = 'overlay';
13641
- this.contentSelector = undefined;
12700
+ this.storeId = undefined;
12701
+ this.storeMethod = 'url-hash';
12702
+ this.noUserDismiss = false;
12703
+ this.hoist = false;
13642
12704
  }
13643
- handleOpenChange() {
13644
- this.open ? this.show() : this.hide();
12705
+ get panel() {
12706
+ return this._panel;
13645
12707
  }
13646
- handleTypeChange() {
13647
- if (this.type !== 'push' && this.type !== 'reveal')
13648
- return;
13649
- if (!this.contentEle) {
13650
- this.type = 'overlay';
13651
- console.warn('a valid contentSelector must be set');
13652
- return;
12708
+ set panel(ele) {
12709
+ if (this._panel) {
12710
+ this.panel.removeEventListener('animationend', this.handleTransitionEnd);
13653
12711
  }
12712
+ if (!ele)
12713
+ return;
12714
+ ele.addEventListener('transitionend', this.handleTransitionEnd);
12715
+ this._panel = ele;
13654
12716
  }
13655
- handleContentSelector() {
13656
- if (!this.contentSelector)
13657
- this.contentEle = null;
13658
- else
13659
- this.contentEle = this.host.ownerDocument.querySelector(this.contentSelector);
13660
- }
13661
- connectedCallback() {
13662
- this.handleCloseClick = this.handleCloseClick.bind(this);
13663
- this.handleTransitionEnd = this.handleTransitionEnd.bind(this);
13664
- this.handleKeyDown = this.handleKeyDown.bind(this);
13665
- this.handleOverlayClick = this.handleOverlayClick.bind(this);
13666
- this.handleSlotChange = this.handleSlotChange.bind(this);
13667
- this.modal = new Modal(this.host);
12717
+ handleHoistChange() {
12718
+ if (!this.hoist || Array.from(document.body.children).includes(this.host))
12719
+ return;
12720
+ document.body.prepend(this.host);
13668
12721
  }
13669
- componentWillLoad() {
13670
- // Show on init if open
13671
- if (this.open) {
13672
- this.show();
13673
- }
13674
- this.handleContentSelector();
12722
+ /** Shows the drawer. */
12723
+ async show() {
12724
+ if (this.open)
12725
+ return undefined;
12726
+ this.open = true;
12727
+ return waitForEvent(this.host, 'nanoAfterShow');
13675
12728
  }
13676
- disconnectedCallback() {
13677
- unlockBodyScrolling(this.host);
12729
+ /** Hides the drawer */
12730
+ async hide() {
12731
+ if (!this.open)
12732
+ return undefined;
12733
+ this.open = false;
12734
+ return waitForEvent(this.host, 'nanoAfterHide');
13678
12735
  }
13679
- /** Shows the drawer */
13680
- async show() {
13681
- // Prevent subsequent calls to the method, whether manually or triggered by the `open` watcher
13682
- if (this.isVisible) {
13683
- return;
13684
- }
13685
- const nanoShow = this.nanoShow.emit();
13686
- if (nanoShow.defaultPrevented) {
13687
- this.open = false;
12736
+ requestClose(source) {
12737
+ const nanoRequestClose = this.nanoRquestClose.emit({ source });
12738
+ if (nanoRequestClose.defaultPrevented || this.noUserDismiss) {
12739
+ this.noDismiss = true;
12740
+ setTimeout(() => (this.noDismiss = false), 250);
13688
12741
  return;
13689
12742
  }
13690
- this.isVisible = true;
13691
- this.open = true;
13692
- // Lock body scrolling only if the drawer isn't contained
13693
- if (!this.contained) {
12743
+ this.hide();
12744
+ }
12745
+ // Prop Change Handlers
12746
+ handleNoModalChange() {
12747
+ if (this.open && !this.contained) {
13694
12748
  this.modal.activate();
13695
12749
  lockBodyScrolling(this.host);
13696
12750
  }
13697
- if (!this.contentEle || (this.type !== 'push' && this.type !== 'reveal'))
13698
- return;
13699
- this.contentEle.style.right = '0';
13700
- this.contentEle.style.transition = 'all ease 250ms';
13701
- this.contentEle.style.position = 'relative';
13702
- this.contentEle.style.overflow = 'hidden';
13703
- setTimeout((_) => (this.contentEle.style.right = '25rem'), 0);
12751
+ if (this.open && this.contained) {
12752
+ this.modal.deactivate();
12753
+ unlockBodyScrolling(this.host);
12754
+ }
13704
12755
  }
13705
- /** Hides the drawer */
13706
- async hide() {
13707
- // Prevent subsequent calls to the method, whether manually or triggered by the `open` watcher
13708
- if (!this.isVisible) {
12756
+ async handleOpenChange() {
12757
+ if (this.open) {
12758
+ // Show
12759
+ this.nanoShow.emit();
12760
+ this.addOpenListeners();
12761
+ this.originalTrigger = document.activeElement;
12762
+ // Lock body scrolling only if the drawer isn't contained
12763
+ if (!this.contained) {
12764
+ this.modal.activate();
12765
+ lockBodyScrolling(this.host);
12766
+ }
12767
+ // When the drawer is shown, Safari will attempt to set focus on whatever element has autofocus. This causes the
12768
+ // drawer's animation to jitter, so we'll temporarily remove the attribute, call `focus({ preventScroll: true })`
12769
+ // ourselves, and add the attribute back afterwards.
12770
+ const autoFocusTarget = this.host.querySelector('[autofocus]');
12771
+ if (autoFocusTarget) {
12772
+ autoFocusTarget.removeAttribute('autofocus');
12773
+ }
12774
+ this.drawer.hidden = false;
12775
+ // Set initial focus
12776
+ requestAnimationFrame(() => {
12777
+ const nanoInitialFocus = this.nanoInitialFocus.emit();
12778
+ if (!nanoInitialFocus.defaultPrevented) {
12779
+ // Set focus to the autofocus target and restore the attribute
12780
+ if (autoFocusTarget) {
12781
+ autoFocusTarget.focus({
12782
+ preventScroll: true,
12783
+ });
12784
+ }
12785
+ else {
12786
+ this.panel.focus({ preventScroll: true });
12787
+ }
12788
+ }
12789
+ // Restore the autofocus attribute
12790
+ if (autoFocusTarget) {
12791
+ autoFocusTarget.setAttribute('autofocus', '');
12792
+ }
12793
+ });
12794
+ this.nanoAfterShow.emit();
13709
12795
  return;
13710
12796
  }
13711
- const nanoHide = this.nanoHide.emit();
13712
- if (nanoHide.defaultPrevented) {
13713
- this.open = true;
13714
- return;
12797
+ // Hide
12798
+ this.nanoHide.emit();
12799
+ this.removeOpenListeners();
12800
+ if (!this.contained) {
12801
+ this.modal.deactivate();
12802
+ unlockBodyScrolling(this.host);
12803
+ }
12804
+ // Restore focus to the original trigger
12805
+ const trigger = this.originalTrigger;
12806
+ if (typeof (trigger === null || trigger === void 0 ? void 0 : trigger.focus) === 'function') {
12807
+ setTimeout(() => trigger.focus());
13715
12808
  }
13716
- this.open = false;
13717
- this.modal.deactivate();
13718
- unlockBodyScrolling(this.host);
13719
- if (!this.contentEle)
13720
- return;
13721
- this.contentEle.style.transition = '';
13722
- this.contentEle.style.position = '';
13723
- this.contentEle.style.overflow = '';
13724
- this.contentEle.style.right = '';
13725
12809
  }
13726
- handleCloseClick() {
13727
- this.hide();
12810
+ // Event Handling
12811
+ addOpenListeners() {
12812
+ document.addEventListener('keydown', this.handleDocumentKeyDown);
13728
12813
  }
13729
- handleKeyDown(event) {
13730
- if (event.key === 'Escape') {
13731
- this.hide();
13732
- }
12814
+ removeOpenListeners() {
12815
+ document.removeEventListener('keydown', this.handleDocumentKeyDown);
13733
12816
  }
13734
- handleOverlayClick() {
13735
- const slOverlayDismiss = this.nanoOverlayDismiss.emit();
13736
- if (!slOverlayDismiss.defaultPrevented) {
13737
- this.hide();
13738
- }
12817
+ // Component Lifecycle
12818
+ connectedCallback() {
12819
+ this.handleHoistChange();
12820
+ this.modal = new Modal(this.host);
13739
12821
  }
13740
- handleSlotChange() {
13741
- this.hasFooter = !!this.host.querySelector('[slot="footer"]');
12822
+ disconnectedCallback() {
12823
+ unlockBodyScrolling(this.host);
13742
12824
  }
13743
- handleTransitionEnd(event) {
13744
- const target = event.target;
13745
- // Ensure we only emit one event when the target element is no longer visible
13746
- if (event.propertyName === 'transform' &&
13747
- target.classList.contains('drawer__panel')) {
13748
- this.isVisible = this.open;
13749
- this.open ? this.nanoAfterShow.emit() : this.nanoAfterHide.emit();
13750
- if (this.open) {
13751
- this.panel.focus();
12825
+ componentWillLoad() {
12826
+ this.handleSlotChange();
12827
+ // Show on init if open
12828
+ if (this.open)
12829
+ this.show();
12830
+ if (this.storeId)
12831
+ ComponentStore.init(this, ['open'], this.storeMethod, this.storeId);
12832
+ }
12833
+ componentDidLoad() {
12834
+ this.drawer.hidden = !this.open;
12835
+ if (this.open) {
12836
+ this.addOpenListeners();
12837
+ if (!this.contained) {
12838
+ this.modal.activate();
12839
+ lockBodyScrolling(this.host);
13752
12840
  }
13753
12841
  }
13754
12842
  }
13755
12843
  render() {
13756
- const placementClass = 'drawer--' + this.placement;
13757
- const typeClass = 'drawer--' + this.type;
13758
- return (hAsync(Host, null, hAsync("div", { part: "base", class: {
12844
+ return (hAsync("div", { ref: (ele) => (this.drawer = ele), part: "base", class: {
13759
12845
  drawer: true,
13760
12846
  'drawer--open': this.open,
13761
- 'drawer--visible': this.isVisible,
13762
- [typeClass]: true,
13763
- [placementClass]: true,
12847
+ [`drawer--${this.placement}`]: true,
13764
12848
  'drawer--contained': this.contained,
13765
12849
  'drawer--fixed': !this.contained,
13766
- 'drawer--has-footer': this.hasFooter,
13767
- }, onKeyDown: this.handleKeyDown, onTransitionEnd: this.handleTransitionEnd }, hAsync("div", { part: "overlay", class: "drawer__overlay", onClick: this.handleOverlayClick }), hAsync("div", { ref: (el) => (this.panel = el), part: "panel", class: "drawer__panel", role: "dialog", "aria-modal": "true", "aria-hidden": this.open ? 'false' : 'true', "aria-label": this.noHeader ? this.label : null, "aria-labelledby": !this.noHeader ? `${this.componentId}-title` : null, tabIndex: 0 }, !this.noHeader && (hAsync("header", { part: "header", class: "drawer__header" }, hAsync("span", { part: "title", class: "drawer__title", id: `${this.componentId}-title` }, hAsync("slot", { name: "label" }, this.label || String.fromCharCode(65279))))), hAsync("div", { part: "body", class: "drawer__body" }, hAsync("slot", null)), hAsync("footer", { part: "footer", class: "drawer__footer" }, hAsync("slot", { name: "footer", onSlotchange: this.handleSlotChange }))))));
12850
+ 'drawer--has-footer': hasSlot(this.host, 'footer'),
12851
+ 'drawer--has-header': !this.noHeader,
12852
+ 'drawer--nodismiss': this.noDismiss,
12853
+ } }, hAsync("div", { ref: (ele) => (this.overlay = ele), part: "overlay", class: "drawer__overlay", onClick: () => this.requestClose('overlay'), tabindex: "-1" }), hAsync("div", { ref: (ele) => (this.panel = ele), part: "panel", class: "drawer__panel", role: "dialog", "aria-modal": "true", "aria-hidden": this.open ? 'false' : 'true', "aria-label": this.noHeader ? this.label : undefined, "aria-labelledby": !this.noHeader ? 'title' : undefined, tabindex: "0" }, hAsync("div", { class: "drawer__main" }, !this.noHeader && (hAsync("nano-sticker", null, hAsync("header", { part: "header", class: "drawer__header" }, hAsync("h2", { part: "title", class: "drawer__title", id: "title" }, hAsync("slot", { name: "label" }, this.label.length > 0
12854
+ ? this.label
12855
+ : String.fromCharCode(65279))), hAsync("div", { part: "header-actions", class: "drawer__header-actions" }, hAsync("slot", { name: "header-actions" }), !this.noUserDismiss && (hAsync("nano-icon-button", { part: "close-button", exportparts: "base:close-button__base", class: "drawer__close", iconName: "light/times", label: "Close", onClick: () => this.requestClose('close-button') })))))), hAsync("div", { part: "body", class: "drawer__body" }, hAsync("slot", null)), hAsync("nano-sticker", { position: "bottom" }, hAsync("footer", { part: "footer", class: "drawer__footer" }, hAsync("slot", { name: "footer", onSlotchange: this.handleSlotChange })))))));
13768
12856
  }
13769
12857
  get host() { return getElement(this); }
13770
12858
  static get watchers() { return {
13771
- "open": ["handleOpenChange"],
13772
- "type": ["handleTypeChange"],
13773
- "contentSelector": ["handleContentSelector"]
12859
+ "hoist": ["handleHoistChange"],
12860
+ "contained": ["handleNoModalChange"],
12861
+ "open": ["handleOpenChange"]
13774
12862
  }; }
13775
12863
  static get style() { return drawerCss; }
13776
12864
  static get cmpMeta() { return {
13777
12865
  "$flags$": 9,
13778
12866
  "$tagName$": "nano-drawer",
13779
12867
  "$members$": {
13780
- "open": [1540],
13781
- "label": [1],
13782
- "placement": [1],
13783
- "contained": [4],
13784
- "noHeader": [4, "no-header"],
13785
- "type": [1],
13786
- "contentSelector": [1, "content-selector"],
12868
+ "open": [516],
12869
+ "label": [513],
12870
+ "placement": [513],
12871
+ "contained": [516],
12872
+ "noHeader": [516, "no-header"],
12873
+ "storeId": [1, "store-id"],
12874
+ "storeMethod": [1, "store-method"],
12875
+ "noUserDismiss": [4, "no-user-dismiss"],
12876
+ "hoist": [4],
12877
+ "noDismiss": [32],
13787
12878
  "hasFooter": [32],
13788
- "isVisible": [32],
13789
12879
  "show": [64],
13790
12880
  "hide": [64]
13791
12881
  },
13792
12882
  "$listeners$": undefined,
13793
12883
  "$lazyBundleId$": "-",
13794
- "$attrsToReflect$": [["open", "open"]]
12884
+ "$attrsToReflect$": [["open", "open"], ["label", "label"], ["placement", "placement"], ["contained", "contained"], ["noHeader", "no-header"]]
13795
12885
  }; }
13796
12886
  }
13797
12887
 
@@ -15707,7 +14797,7 @@ class Popover {
15707
14797
  }
15708
14798
  }
15709
14799
 
15710
- const dropdownCss = "/*!@:host*/.sc-nano-dropdown-h{box-sizing:border-box}/*!@*,\n*::before,\n*::after*/*.sc-nano-dropdown,*.sc-nano-dropdown::before,*.sc-nano-dropdown::after{box-sizing:border-box}/*!@[hidden]*/[hidden].sc-nano-dropdown{display:none !important}/*!@:host*/.sc-nano-dropdown-h{--width:auto;--border:var(--nano-layer-border-style, 1px solid var(--nano-layer-border-color, rgba(0, 0, 0, 0.1)));--border-radius:var(--nano-layer-border-radius, var(--nano-border-radius-medium, 4px));--background:var(--nano-layer-bg, #fff);--padding:10px 0;--overflow:auto;--dropdown-z-index:var(--nano-layer-index-dropdown, 300);--min-width:0;--box-shadow:var(--nano-layer-shadow-large, 0 2px 8px rgba(0, 0, 0, 0.2));--menu-height:var(--max-menu-height, 50vh);display:flex}/*!@.dropdown*/.dropdown.sc-nano-dropdown{position:relative}/*!@.dropdown__trigger*/.dropdown__trigger.sc-nano-dropdown{display:block}/*!@.dropdown__positioner*/.dropdown__positioner.sc-nano-dropdown{position:absolute;z-index:var(--dropdown-z-index);min-inline-size:var(--min-width)}@media (max-width: 35.9375em){/*!@.dropdown__positioner*/.dropdown__positioner.sc-nano-dropdown{z-index:100}}/*!@.dropdown__panel*/.dropdown__panel.sc-nano-dropdown{padding:var(--padding);background:var(--background);min-inline-size:var(--min-width);inline-size:var(--width);border:var(--border);border-radius:var(--border-radius);color:currentcolor;box-shadow:var(--box-shadow);opacity:0;transition:0.2s ease opacity, 0.2s ease transform, 0.2s ease min-block-size;min-block-size:20px;overflow:var(--overflow);box-sizing:content-box !important}/*!@.dropdown__panel.loading*/.dropdown__panel.loading.sc-nano-dropdown{overflow-y:hidden}/*!@.dropdown__panel.top*/.dropdown__panel.top.sc-nano-dropdown{transform:translateY(-20px) translateZ(0)}/*!@.dropdown__panel.bottom*/.dropdown__panel.bottom.sc-nano-dropdown{transform:translateY(20px) translateZ(0)}/*!@.dropdown__positioner.popover-visible .dropdown__panel*/.dropdown__positioner.popover-visible.sc-nano-dropdown .dropdown__panel.sc-nano-dropdown{opacity:1;transform:translateY(0) translateZ(0)}/*!@.dropdown__panel ::slotted(nano-menu)*/.dropdown__panel .sc-nano-dropdown-s>nano-menu{max-block-size:var(--menu-height)}/*!@.dropdown__accessible-title*/.dropdown__accessible-title.sc-nano-dropdown{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);block-size:1px;inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}";
14800
+ const dropdownCss = "/*!@:host*/.sc-nano-dropdown-h{box-sizing:border-box}/*!@*,\n*::before,\n*::after*/*.sc-nano-dropdown,*.sc-nano-dropdown::before,*.sc-nano-dropdown::after{box-sizing:border-box}/*!@[hidden]*/[hidden].sc-nano-dropdown{display:none !important}/*!@:host*/.sc-nano-dropdown-h{--width:auto;--border:var(--nano-layer-border-style, 1px solid var(--nano-layer-border-color, rgba(0, 0, 0, 0.1)));--border-radius:var(--nano-layer-border-radius, var(--nano-border-radius-medium, 4px));--background:var(--nano-layer-bg, #fff);--padding:10px 0;--overflow:auto;--dropdown-z-index:var(--nano-layer-index-dropdown, 300);--min-width:0;--box-shadow:var(--nano-layer-shadow-large, 0 2px 8px rgba(0, 0, 0, 0.2));--menu-height:var(--max-menu-height, 50vh);display:flex}/*!@.dropdown*/.dropdown.sc-nano-dropdown{position:relative}/*!@.dropdown__trigger*/.dropdown__trigger.sc-nano-dropdown{display:block}/*!@.dropdown__positioner*/.dropdown__positioner.sc-nano-dropdown{position:absolute;z-index:var(--dropdown-z-index);min-inline-size:var(--min-width);border:0;background:none;padding:0;overflow:visible}/*!@.dropdown__positioner::backdrop*/.dropdown__positioner.sc-nano-dropdown::backdrop{display:none}/*!@.dropdown__positioner[popover], .dropdown__positioner:popover-open*/.dropdown__positioner[popover].sc-nano-dropdown,.dropdown__positioner.sc-nano-dropdown:popover-open{inset:unset}@media (max-width: 35.9375em){/*!@.dropdown__positioner*/.dropdown__positioner.sc-nano-dropdown{z-index:100}}/*!@.dropdown__panel*/.dropdown__panel.sc-nano-dropdown{padding:var(--padding);background:var(--background);min-inline-size:var(--min-width);inline-size:var(--width);border:var(--border);border-radius:var(--border-radius);color:currentcolor;box-shadow:var(--box-shadow);opacity:0;transition:0.2s ease opacity, 0.2s ease transform, 0.2s ease min-block-size;min-block-size:20px;overflow:var(--overflow);box-sizing:content-box !important}/*!@.dropdown__panel.loading*/.dropdown__panel.loading.sc-nano-dropdown{overflow-y:hidden}/*!@.dropdown__panel.top*/.dropdown__panel.top.sc-nano-dropdown{transform:translateY(-20px) translateZ(0)}/*!@.dropdown__panel.bottom*/.dropdown__panel.bottom.sc-nano-dropdown{transform:translateY(20px) translateZ(0)}/*!@.dropdown__positioner.popover-visible .dropdown__panel*/.dropdown__positioner.popover-visible.sc-nano-dropdown .dropdown__panel.sc-nano-dropdown{opacity:1;transform:translateY(0) translateZ(0)}/*!@.dropdown__panel ::slotted(nano-menu)*/.dropdown__panel .sc-nano-dropdown-s>nano-menu{max-block-size:var(--menu-height)}/*!@.dropdown__accessible-title*/.dropdown__accessible-title.sc-nano-dropdown{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);block-size:1px;inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}";
15711
14801
 
15712
14802
  let dropDownIds = 0;
15713
14803
  /**
@@ -15814,6 +14904,7 @@ class Dropdown {
15814
14904
  // Methods
15815
14905
  /** Shows the dropdown panel */
15816
14906
  async show() {
14907
+ var _a;
15817
14908
  this.ignoreOpenWatcher = true;
15818
14909
  this.open = true;
15819
14910
  const nanoShow = this.nanoShow.emit();
@@ -15823,12 +14914,18 @@ class Dropdown {
15823
14914
  return;
15824
14915
  }
15825
14916
  this.popover.show();
14917
+ // @ts-expect-error
14918
+ if (typeof ((_a = this.positioner) === null || _a === void 0 ? void 0 : _a.showPopover) === 'function') {
14919
+ // @ts-expect-error
14920
+ this.positioner.showPopover();
14921
+ }
15826
14922
  this.ignoreOpenWatcher = false;
15827
14923
  document.addEventListener('mousedown', this.handleDocumentMouseDown);
15828
14924
  document.addEventListener('keydown', this.handleDocumentKeyDown);
15829
14925
  }
15830
14926
  /** Hides the dropdown panel */
15831
14927
  async hide() {
14928
+ var _a;
15832
14929
  this.ignoreOpenWatcher = true;
15833
14930
  this.open = false;
15834
14931
  const nanoHide = this.nanoHide.emit();
@@ -15840,6 +14937,11 @@ class Dropdown {
15840
14937
  if (this.popover)
15841
14938
  this.popover.hide();
15842
14939
  this.ignoreOpenWatcher = false;
14940
+ // @ts-expect-error
14941
+ if (typeof ((_a = this.positioner) === null || _a === void 0 ? void 0 : _a.hidePopover) === 'function') {
14942
+ // @ts-expect-error
14943
+ this.positioner.hidePopover();
14944
+ }
15843
14945
  document.removeEventListener('mousedown', this.handleDocumentMouseDown);
15844
14946
  document.removeEventListener('keydown', this.handleDocumentKeyDown);
15845
14947
  if (this.accessibleTrigger && this.focusEleInDropDwn()) {
@@ -15979,7 +15081,9 @@ class Dropdown {
15979
15081
  return (hAsync("div", { part: "base", id: this.dropdownId, class: {
15980
15082
  dropdown: true,
15981
15083
  'dropdown--open': this.open,
15982
- } }, hAsync("span", { part: "trigger", class: "dropdown__trigger", ref: (el) => (this.trigger = el), onKeyDown: this.handleTriggerKeyDown, onClick: this.togglePanel }, hAsync("slot", { name: "trigger", onSlotchange: this.handleTriggerSlotChange })), hAsync("div", { ref: (el) => (this.positioner = el), class: "dropdown__positioner" }, hAsync("div", { ref: (el) => (this.panel = el), part: "panel", class: `dropdown__panel ${this.placement.split('-').join(' ')}`, "aria-hidden": !this.open, role: this.host.getAttribute('role') === 'group' ? 'group' : 'dialog', "aria-modal": this.host.getAttribute('role') === 'group' ? undefined : 'true', "aria-labelledby": this.dialogTitle ? this.labelId : undefined }, this.dialogTitle && (hAsync("span", { id: this.labelId, class: "dropdown__accessible-title", "aria-live": this.host.getAttribute('role') === 'group'
15084
+ } }, hAsync("span", { part: "trigger", class: "dropdown__trigger", ref: (el) => (this.trigger = el), onKeyDown: this.handleTriggerKeyDown, onClick: this.togglePanel }, hAsync("slot", { name: "trigger", onSlotchange: this.handleTriggerSlotChange })), hAsync("div", { ref: (el) => (this.positioner = el), class: "dropdown__positioner",
15085
+ // @ts-ignore
15086
+ popover: "manual", id: this.dropdownId + '-positioner' }, hAsync("div", { ref: (el) => (this.panel = el), part: "panel", class: `dropdown__panel ${this.placement.split('-').join(' ')}`, "aria-hidden": !this.open, role: this.host.getAttribute('role') === 'group' ? 'group' : 'dialog', "aria-modal": this.host.getAttribute('role') === 'group' ? undefined : 'true', "aria-labelledby": this.dialogTitle ? this.labelId : undefined }, this.dialogTitle && (hAsync("span", { id: this.labelId, class: "dropdown__accessible-title", "aria-live": this.host.getAttribute('role') === 'group'
15983
15087
  ? undefined
15984
15088
  : 'polite' }, this.dialogTitle)), hAsync("slot", null)))));
15985
15089
  }
@@ -17272,7 +16376,7 @@ async function clientFetch(url, _a = {}) {
17272
16376
  }
17273
16377
  }
17274
16378
 
17275
- const globalNavCss = "/*!@:host*/.sc-nano-global-nav-h{box-sizing:border-box}/*!@*,\n*::before,\n*::after*/*.sc-nano-global-nav,*.sc-nano-global-nav::before,*.sc-nano-global-nav::after{box-sizing:border-box}/*!@[hidden]*/[hidden].sc-nano-global-nav{display:none !important}/*!@.global-nav*/.global-nav.sc-nano-global-nav{font-family:inherit;font-size:inherit;font-stretch:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit}/*!@.global-nav > .sticker-trigger*/.global-nav.sc-nano-global-nav>.sticker-trigger.sc-nano-global-nav{display:none}/*!@.global-nav > .sticker-trigger ~ .sticker-trigger*/.global-nav.sc-nano-global-nav>.sticker-trigger.sc-nano-global-nav~.sticker-trigger.sc-nano-global-nav{display:block}/*!@.global-nav button*/.global-nav.sc-nano-global-nav button.sc-nano-global-nav{background:none;color:inherit;border:none}/*!@.global-nav .icon-btn*/.global-nav.sc-nano-global-nav .icon-btn.sc-nano-global-nav{position:relative;background:none;color:inherit;border:none;align-self:normal;padding:9px 7px;cursor:pointer;display:flex;align-items:center}/*!@.global-nav .icon-btn nano-icon*/.global-nav.sc-nano-global-nav .icon-btn.sc-nano-global-nav nano-icon.sc-nano-global-nav{width:18px;height:18px}/*!@.global-nav ::slotted(nano-nav-item[slot=icon])*/.global-nav .sc-nano-global-nav-s>nano-nav-item[slot=icon]{--padding-top:9px;--padding-bottom:9px;--padding-start:7px;--padding-end:7px;--display:flex;font-size:18px}/*!@.global-nav a*/.global-nav.sc-nano-global-nav a.sc-nano-global-nav{color:inherit;text-decoration:none;white-space:nowrap}/*!@.global-nav .nav-links_title*/.global-nav.sc-nano-global-nav .nav-links_title.sc-nano-global-nav{margin:8px 0 3px}/*!@.global-nav .nav-links ul*/.global-nav.sc-nano-global-nav .nav-links.sc-nano-global-nav ul.sc-nano-global-nav{margin:0;padding:0}/*!@.global-nav .nav-links li*/.global-nav.sc-nano-global-nav .nav-links.sc-nano-global-nav li.sc-nano-global-nav{list-style:none}/*!@.global-nav .login-btn*/.global-nav.sc-nano-global-nav .login-btn.sc-nano-global-nav{display:flex;align-items:center}/*!@.global-nav .menu-btn*/.global-nav.sc-nano-global-nav .menu-btn.sc-nano-global-nav{padding:9px var(--bar-item-spacing) 9px var(--bar-item-spacing)}/*!@.site-content*/.site-content.sc-nano-global-nav{display:flex;transition:min-height 0.2s ease;position:relative;z-index:auto;align-items:stretch;flex:1}/*!@.mask*/.mask.sc-nano-global-nav{opacity:0;background:rgba(0, 0, 0, 0.3);position:fixed;inset-inline:0;inset-block-start:0;height:100vh;z-index:-1;transition:transform 0.2s ease, opacity 0.2s ease, visibility 0.01s ease 0.2s, z-index 0.01s ease 0.2s;visibility:hidden}/*!@.mask.open*/.mask.open.sc-nano-global-nav{opacity:1;transition:z-index 0.01s ease, visibility 0.01s ease, transform 0.2s ease 0.01s, opacity 0.2s ease 0.01s;z-index:3;visibility:visible}/*!@.bars*/.bars.sc-nano-global-nav{color:var(--bar-text-color);z-index:var(--nano-layer-index-menubar, 10);position:relative;max-width:100%;min-width:100%;box-shadow:none;transition:0.2s ease box-shadow}/*!@[stuck] .bars*/[stuck].sc-nano-global-nav .bars.sc-nano-global-nav{box-shadow:0 1px 25px 0 rgba(0, 0, 0, 0.15)}/*!@.bars::before*/.bars.sc-nano-global-nav::before{content:\"\";width:100%;height:100%;z-index:-1;background:var(--bar-background);position:absolute}/*!@.main-bar*/.main-bar.sc-nano-global-nav{width:100%;padding-inline:0 var(--bar-item-spacing);padding-block:var(--bar-vertical-padding);display:flex;align-items:center;justify-content:space-between;overflow-x:hidden}/*!@.main-bar:focus*/.main-bar.sc-nano-global-nav:focus{outline:none}/*!@:host(.ready) .main-bar*/.ready.sc-nano-global-nav-h .main-bar.sc-nano-global-nav{overflow-x:visible}/*!@.main-bar > *,\n.main-bar ::slotted(*)*/.main-bar.sc-nano-global-nav>*.sc-nano-global-nav,.main-bar .sc-nano-global-nav-s>*{transition:opacity 0.2s ease}/*!@:host(:not(.ready)) .main-bar > *,\n:host(:not(.ready)) .main-bar ::slotted(*)*/.sc-nano-global-nav-h:not(.ready) .main-bar.sc-nano-global-nav>*.sc-nano-global-nav,.sc-nano-global-nav-h:not(.ready) .main-bar .sc-nano-global-nav-s>*{opacity:0 !important}/*!@:host(.ready) .main-bar > *,\n:host(.ready) .main-bar ::slotted(*)*/.ready.sc-nano-global-nav-h .main-bar.sc-nano-global-nav>*.sc-nano-global-nav,.sc-nano-global-nav-h.ready .main-bar .sc-nano-global-nav-s>*{opacity:1}/*!@:host(.resizing) .main-bar > *,\n:host(.resizing) .main-bar ::slotted(*)*/.resizing.sc-nano-global-nav-h .main-bar.sc-nano-global-nav>*.sc-nano-global-nav,.sc-nano-global-nav-h.resizing .main-bar .sc-nano-global-nav-s>*{opacity:0 !important}/*!@.main-bar > **/.main-bar.sc-nano-global-nav>*.sc-nano-global-nav{flex:0 0 auto}/*!@.main-bar > * ::slotted(nano-nav-item[slot=icon])*/.main-bar .sc-nano-global-nav-s>nano-nav-item[slot=icon]{-webkit-margin-start:11px;margin-inline-start:11px}/*!@.main-bar > * ::slotted(nano-nav-item),\n.main-bar > * nano-nav-item*/.main-bar .sc-nano-global-nav-s>nano-nav-item,.main-bar.sc-nano-global-nav>*.sc-nano-global-nav nano-nav-item.sc-nano-global-nav{--color-hover:var(--bar-color-focus);--secondary-bg-color:var(--bar-dropdown-bg);--secondary-color:var(--bar-dropdown-text);--bg-color-open:var(--bar-background);--padding-top:7px;--padding-bottom:7px;--padding-end:2px;--padding-start:2px;text-decoration:none !important}/*!@.main-bar .icon-btn*/.main-bar.sc-nano-global-nav .icon-btn.sc-nano-global-nav{-webkit-margin-before:0;margin-block-start:0;-webkit-margin-after:0;margin-block-end:0;-webkit-margin-start:6px;margin-inline-start:6px}/*!@:host(.threshold-2) .main-bar .icon-btn*/.threshold-2.sc-nano-global-nav-h .main-bar.sc-nano-global-nav .icon-btn.sc-nano-global-nav{-webkit-margin-before:0;margin-block-start:0;-webkit-margin-after:0;margin-block-end:0;-webkit-margin-start:11px;margin-inline-start:11px}/*!@.main-bar .menu-btn.icon-btn*/.main-bar.sc-nano-global-nav .menu-btn.icon-btn.sc-nano-global-nav{margin:0 !important;-webkit-border-end:1.5px solid var(--bar-color-shade);border-inline-end:1.5px solid var(--bar-color-shade)}/*!@.main-bar .logo*/.main-bar.sc-nano-global-nav .logo.sc-nano-global-nav{height:36px;width:200px;min-width:200px}/*!@:host(:not(.threshold-1)) .main-bar .logo*/.sc-nano-global-nav-h:not(.threshold-1) .main-bar.sc-nano-global-nav .logo.sc-nano-global-nav{height:30px}/*!@.main-bar .logo-link*/.main-bar.sc-nano-global-nav .logo-link.sc-nano-global-nav{-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-start:0;margin-inline-start:0;padding-inline:var(--bar-item-spacing);display:flex;align-items:center;border:none}/*!@.main-bar .nav-links*/.main-bar.sc-nano-global-nav .nav-links.sc-nano-global-nav{flex:0 0 auto;display:flex;justify-content:space-around}/*!@.main-bar .nav-links ul*/.main-bar.sc-nano-global-nav .nav-links.sc-nano-global-nav ul.sc-nano-global-nav{display:flex;justify-content:space-around}/*!@.main-bar .nav-links ::slotted(nano-nav-item),\n.main-bar .nav-links nano-nav-item*/.main-bar .nav-links .sc-nano-global-nav-s>nano-nav-item,.main-bar.sc-nano-global-nav .nav-links.sc-nano-global-nav nano-nav-item.sc-nano-global-nav{--padding-top:7px;--padding-bottom:7px;--padding-end:2px;--padding-start:2px;--margin:0 var(--bar-item-spacing)}/*!@.main-bar .nav-links--main*/.main-bar.sc-nano-global-nav .nav-links--main.sc-nano-global-nav{justify-content:flex-start;letter-spacing:1.5px;font-weight:600;font-stretch:condensed;text-transform:uppercase;font-size:1.065em;-webkit-margin-end:auto;margin-inline-end:auto}/*!@.main-bar .nav-links--main ::slotted(nano-nav-item)*/.main-bar .nav-links--main .sc-nano-global-nav-s>nano-nav-item{--color:var(--bar-text-color);--padding-end:3px;--padding-start:0}/*!@.main-bar .nav-links--sub*/.main-bar.sc-nano-global-nav .nav-links--sub.sc-nano-global-nav{--color:var(--color, #e2e2e2);-webkit-margin-start:6px;margin-inline-start:6px;justify-content:flex-end}/*!@.main-bar .login-btn*/.main-bar.sc-nano-global-nav .login-btn.sc-nano-global-nav{display:inline-block;border-radius:4px;background-color:var(--login-button-bg);color:var(--login-button-text);padding:3px 10px;position:relative;inset-inline-start:auto;inset-block-end:auto;margin-inline:11px 0}/*!@.main-bar .measure-ele*/.main-bar.sc-nano-global-nav .measure-ele.sc-nano-global-nav{min-width:1px;display:block;margin:0;padding:0}/*!@.sticker-trigger*/.sticker-trigger.sc-nano-global-nav{background:var(--bar-background);width:100%;height:1px;z-index:20;position:relative}/*!@.gn-menu*/.gn-menu.sc-nano-global-nav{position:fixed;inset-block-start:0;inset-inline-start:0;z-index:-1;display:none;transition:z-index 0.01s ease 0.2s;height:100vh;width:100vw;overflow-y:auto}/*!@:host(.threshold-4) .gn-menu*/.threshold-4.sc-nano-global-nav-h .gn-menu.sc-nano-global-nav{position:absolute;width:calc(100vw - 20px)}/*!@.gn-menu.menu-full-screen*/.gn-menu.menu-full-screen.sc-nano-global-nav{width:100vw !important}/*!@.gn-menu_wrap*/.gn-menu_wrap.sc-nano-global-nav{max-width:92vw;width:335px;background:var(--menu-background);color:var(--menu-text-color);padding:calc(var(--bar-vertical-padding) + 1px) 0 0;box-shadow:0 0 36px 0 rgba(0, 0, 0, 0.8);position:relative;pointer-events:all;-webkit-margin-after:36px;margin-block-end:36px;opacity:0;outline:none;transition:transform 0.2s ease, opacity 0.2s ease;overflow:hidden}/*!@.gn-menu_wrap.has-promotion*/.gn-menu_wrap.has-promotion.sc-nano-global-nav{padding:var(--menu-padding) 0 0}/*!@.gn-menu.open*/.gn-menu.open.sc-nano-global-nav{z-index:var(--nano-layer-index-dropdown, 300);transition:z-index 0.01s ease}/*!@.gn-menu.open .gn-menu_wrap*/.gn-menu.open.sc-nano-global-nav .gn-menu_wrap.sc-nano-global-nav{opacity:1;transform:translate3d(0, 0, 0) !important;transition:transform 0.2s ease 0.01s, opacity 0.2s ease 0.01s}/*!@.gn-menu_actions*/.gn-menu_actions.sc-nano-global-nav{-webkit-padding-end:calc(var(--menu-padding) / 2);padding-inline-end:calc(var(--menu-padding) / 2);display:flex;justify-content:space-between}/*!@.gn-menu_actions-counter*/.gn-menu_actions-counter.sc-nano-global-nav{background:#d0021b;color:var(--menu-text-color);position:absolute;inset-block-end:4px;inset-inline:auto 0;font-size:9px;height:14px;line-height:14px;width:auto;min-width:14px;border-radius:50%;box-sizing:border-box;text-align:center;text-indent:0}/*!@.gn-menu .content-wrap*/.gn-menu.sc-nano-global-nav .content-wrap.sc-nano-global-nav{position:relative;transition:0.2s ease min-height;min-height:190px}/*!@.gn-menu .content--sub*/.gn-menu.sc-nano-global-nav .content--sub.sc-nano-global-nav{padding:var(--menu-padding) 0 var(--menu-padding) 7px}/*!@.gn-menu .menu-btn*/.gn-menu.sc-nano-global-nav .menu-btn.sc-nano-global-nav{-webkit-margin-end:auto;margin-inline-end:auto}/*!@.gn-menu .nav-links*/.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav{display:flex;flex-wrap:wrap}/*!@.gn-menu .nav-links ::slotted(nano-nav-item),\n.gn-menu .nav-links nano-nav-item*/.gn-menu .nav-links .sc-nano-global-nav-s>nano-nav-item,.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav nano-nav-item.sc-nano-global-nav{--icon-size:14px;--display:inline-block;--secondary-bg-color:#001a21;--padding-top:10px;--padding-bottom:10px;--padding-end:calc(var(--menu-padding) * 2);--padding-start:calc(var(--menu-padding) + 3px);--color:var(--menu-text-color);--color-hover:var(--menu-title-text);--bg-color-hover:transparent;--bg-color-focus:#002530;--focus-outline:none;width:100%}/*!@.gn-menu .nav-links .user-nav*/.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav .user-nav.sc-nano-global-nav{--bg-color:var(--menu-user-panel-bg);--padding-top:9px;--padding-bottom:9px;font-weight:bold;margin:5px 0 0}/*!@.gn-menu .nav-links .user-nav ::slotted(nano-nav-item),\n.gn-menu .nav-links .user-nav nano-nav-item*/.gn-menu .nav-links .user-nav .sc-nano-global-nav-s>nano-nav-item,.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav .user-nav.sc-nano-global-nav nano-nav-item.sc-nano-global-nav{font-weight:400;--bg-color:transparent}/*!@.gn-menu .nav-links .user-nav .content*/.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav .user-nav.sc-nano-global-nav .content.sc-nano-global-nav{padding:0;background-color:var(--menu-user-panel-bg)}/*!@.gn-menu .nav-links .user-nav .content--sub*/.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav .user-nav.sc-nano-global-nav .content--sub.sc-nano-global-nav{padding-inline:var(--menu-padding)}/*!@.gn-menu .nav-links .user-nav .back-btn*/.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav .user-nav.sc-nano-global-nav .back-btn.sc-nano-global-nav{-webkit-padding-start:var(--menu-padding);padding-inline-start:var(--menu-padding)}/*!@.gn-menu .nav-links_title*/.gn-menu.sc-nano-global-nav .nav-links_title.sc-nano-global-nav{margin:0 var(--menu-padding) 4px;-webkit-border-after:1px solid var(--menu-hint-color);border-block-end:1px solid var(--menu-hint-color);-webkit-padding-after:8px;padding-block-end:8px;text-transform:uppercase;color:var(--menu-title-text);letter-spacing:1px;font-weight:700}/*!@.gn-menu .nav-links_title--sites*/.gn-menu.sc-nano-global-nav .nav-links_title--sites.sc-nano-global-nav{-webkit-border-after:none;border-block-end:none}/*!@.gn-menu .nav-links-wrap*/.gn-menu.sc-nano-global-nav .nav-links-wrap.sc-nano-global-nav{margin:18px 0}/*!@.gn-menu .nav-links-wrap:last-child*/.gn-menu.sc-nano-global-nav .nav-links-wrap.sc-nano-global-nav:last-child{-webkit-margin-after:0;margin-block-end:0}/*!@.gn-menu .nav-links .back-btn*/.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav .back-btn.sc-nano-global-nav{-webkit-border-before:1px solid var(--menu-hint-color);border-block-start:1px solid var(--menu-hint-color);-webkit-border-after:1px solid var(--menu-hint-color);border-block-end:1px solid var(--menu-hint-color);display:flex;align-items:center;padding:10px 11px 10px 0;width:100%;font-size:12px;text-transform:uppercase;color:var(--menu-title-text);letter-spacing:1px;font-weight:700;cursor:pointer;font-stretch:expanded}/*!@.gn-menu .nav-links .back-btn:hover*/.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav .back-btn.sc-nano-global-nav:hover{color:var(--menu-text-color)}/*!@.gn-menu .nav-links .back-btn nano-icon*/.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav .back-btn.sc-nano-global-nav nano-icon.sc-nano-global-nav{-webkit-margin-end:10px;margin-inline-end:10px;font-size:12px;color:var(--menu-icon-color)}/*!@.gn-menu .nav-links--sub*/.gn-menu.sc-nano-global-nav .nav-links--sub.sc-nano-global-nav{display:flex;flex-wrap:wrap}/*!@.gn-menu .nav-links--sub ::slotted(nano-nav-item),\n.gn-menu .nav-links--sub nano-nav-item*/.gn-menu .nav-links--sub .sc-nano-global-nav-s>nano-nav-item,.gn-menu.sc-nano-global-nav .nav-links--sub.sc-nano-global-nav nano-nav-item.sc-nano-global-nav{--border-bottom:none;--padding-end:var(--menu-padding);--padding-start:var(--menu-padding);--padding-top:8px;--padding-bottom:8px;margin:0;width:50%;line-height:1.8}/*!@.gn-menu .nav-links--sites ::slotted(nano-nav-item),\n.gn-menu .nav-links--sites nano-nav-item*/.gn-menu .nav-links--sites .sc-nano-global-nav-s>nano-nav-item,.gn-menu.sc-nano-global-nav .nav-links--sites.sc-nano-global-nav nano-nav-item.sc-nano-global-nav{width:100%}/*!@.gn-menu .nav-links .content*/.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav .content.sc-nano-global-nav{padding:8px var(--menu-padding)}/*!@.gn-menu .login-btn*/.gn-menu.sc-nano-global-nav .login-btn.sc-nano-global-nav{padding-inline:7px var(--menu-padding);padding-block:var(--menu-padding)}/*!@.gn-menu .login-btn nano-icon*/.gn-menu.sc-nano-global-nav .login-btn.sc-nano-global-nav nano-icon.sc-nano-global-nav{-webkit-margin-start:10px;margin-inline-start:10px}/*!@.gn-menu .logout-btn*/.gn-menu.sc-nano-global-nav .logout-btn.sc-nano-global-nav{justify-content:flex-end}/*!@.gn-menu .logout-btn a*/.gn-menu.sc-nano-global-nav .logout-btn.sc-nano-global-nav a.sc-nano-global-nav{padding:0 5px}/*!@.search-btn::before*/.search-btn.sc-nano-global-nav::before{content:\"\";background-color:#0c5a71;height:9px;inset-inline:0 5px;inset-block-end:-20px;position:absolute;transform:translateZ(0) scaleX(0);transform-origin:0;transition:0.2s ease transform}/*!@.search-btn--open::before*/.search-btn--open.sc-nano-global-nav::before{transform:translateZ(0) scaleX(1);opacity:0.7}/*!@.search-bar*/.search-bar.sc-nano-global-nav{height:0;overflow:hidden;transition:0.2s ease height;padding:0 var(--bar-item-spacing);outline:none;max-width:45em;-webkit-margin-start:auto;margin-inline-start:auto}/*!@.search-bar .search-widget*/.search-bar.sc-nano-global-nav .search-widget.sc-nano-global-nav{margin:0;overflow:inherit;max-width:none;max-height:none;min-width:auto;-webkit-padding-end:0;padding-inline-end:0}/*!@.search-bar .search-widget .search-icon--search*/.search-bar.sc-nano-global-nav .search-widget.sc-nano-global-nav .search-icon--search.sc-nano-global-nav{display:none}/*!@.search-bar .search-widget .search-input*/.search-bar.sc-nano-global-nav .search-widget.sc-nano-global-nav .search-input.sc-nano-global-nav{--input-border-width:2px 0 0 0;--input-bg-color:#f3f3f3;--nano-input-border-color:transparent;--nano-input-border-color--focus:var(--bar-color-shade);font-size:1.1875em}/*!@.search-bar .search-widget nano-select.search-input*/.search-bar.sc-nano-global-nav .search-widget.sc-nano-global-nav nano-select.search-input.sc-nano-global-nav{--input-border-width:2px 3px 0 0;--input-bg-color:var(--bar-color-shade);--input-bg-color--focus:#f3f3f3;color:#f3f3f3}/*!@.search-bar .search-widget nano-select.search-input.has-focus*/.search-bar.sc-nano-global-nav .search-widget.sc-nano-global-nav nano-select.search-input.has-focus.sc-nano-global-nav{color:var(--bar-color-shade)}/*!@.search-bar .search-widget .select-input__arrow*/.search-bar.sc-nano-global-nav .search-widget.sc-nano-global-nav .select-input__arrow.sc-nano-global-nav{font-size:0.75em}/*!@.search-bar .search-widget .select__mask.sc-nano-select*/.search-bar.sc-nano-global-nav .search-widget.sc-nano-global-nav .select__mask.sc-nano-select.sc-nano-global-nav{line-height:2.35em;min-height:2.35em;-webkit-padding-before:2px;padding-block-start:2px}/*!@.search-bar .search-inputs*/.search-bar.sc-nano-global-nav .search-inputs.sc-nano-global-nav{padding:0;margin:0}/*!@.search-bar .search-autocomplete*/.search-bar.sc-nano-global-nav .search-autocomplete.sc-nano-global-nav{inset-block-start:100%;width:100%}/*!@.search-widget*/.search-widget.sc-nano-global-nav{-webkit-padding-end:var(--bar-item-spacing);padding-inline-end:var(--bar-item-spacing);-webkit-margin-start:var(--bar-item-spacing);margin-inline-start:var(--bar-item-spacing);-webkit-margin-end:auto;margin-inline-end:auto;position:relative;flex:1 1 auto;max-width:500px;min-width:350px;max-height:36px;inset-block-start:-1px}/*!@.search-inputs*/.search-inputs.sc-nano-global-nav{display:flex;margin:0}/*!@.search-inputs input[type=submit]*/.search-inputs.sc-nano-global-nav input[type=submit].sc-nano-global-nav{display:none}/*!@.search-autocomplete*/.search-autocomplete.sc-nano-global-nav{position:absolute;inset-block-start:calc(100% + 15px);width:calc(100% - var(--bar-item-spacing));inset-inline-start:0;background:white;border:2px solid var(--bar-color-tint);border-radius:0 0 5px 5px;color:#4a4a4a;-webkit-padding-before:calc(var(--bar-vertical-padding) / 2);padding-block-start:calc(var(--bar-vertical-padding) / 2);-webkit-padding-end:0;padding-inline-end:0;-webkit-padding-after:1px;padding-block-end:1px;-webkit-padding-start:0;padding-inline-start:0;z-index:1}/*!@.search-autocomplete-hit*/.search-autocomplete-hit.sc-nano-global-nav{padding-block:calc(var(--bar-vertical-padding) / 4);padding-inline:var(--bar-item-spacing);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;text-align:start;line-height:1.5;cursor:pointer}/*!@.search-autocomplete-hit-scope*/.search-autocomplete-hit-scope.sc-nano-global-nav{color:#a7b0b3;font-weight:600}/*!@.search-autocomplete-hit:hover, .search-autocomplete-hit:focus-visible*/.search-autocomplete-hit.sc-nano-global-nav:hover,.search-autocomplete-hit.sc-nano-global-nav:focus-visible{background-color:#e4e6e8}/*!@.search-autocomplete-hit:focus-visible*/.search-autocomplete-hit.sc-nano-global-nav:focus-visible{box-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)))}/*!@.search-autocomplete-hit:focus*/.search-autocomplete-hit.sc-nano-global-nav:focus{outline:none}/*!@.search-autocomplete-hit .search__highlight,\n.search-autocomplete-hit em*/.search-autocomplete-hit.sc-nano-global-nav .search__highlight.sc-nano-global-nav,.search-autocomplete-hit.sc-nano-global-nav em.sc-nano-global-nav{font-weight:bold;font-style:normal}/*!@.search-autocomplete-hit--no-result:hover, .search-autocomplete-hit--no-result:focus*/.search-autocomplete-hit--no-result.sc-nano-global-nav:hover,.search-autocomplete-hit--no-result.sc-nano-global-nav:focus{background:none !important}/*!@.search-autocomplete-foot*/.search-autocomplete-foot.sc-nano-global-nav{margin:7px 0 0}/*!@.search-autocomplete-submit*/.search-autocomplete-submit.sc-nano-global-nav{background:none;border:none;align-self:normal;padding:9px var(--bar-item-spacing) !important;cursor:pointer;display:flex;align-items:center;color:#007495;justify-content:flex-end;width:100%;text-decoration:underline;-webkit-border-before:1px solid #e8eaea;border-block-start:1px solid #e8eaea}/*!@.search-autocomplete-submit:hover, .search-autocomplete-submit:focus*/.search-autocomplete-submit.sc-nano-global-nav:hover,.search-autocomplete-submit.sc-nano-global-nav:focus{background-color:#e4e6e8}/*!@nano-select.search-input*/nano-select.search-input.sc-nano-global-nav{--input-border-width:0 0 2px 0;--input-text-color:var(--bar-text-color);--nano-input-border-color:rgb(103 138 154);--padding-end:var(--bar-item-spacing);--nano-input-border-color--focus:black;font-stretch:condensed;font-weight:600;letter-spacing:1.5px;font-size:1.2em;flex:0 1 auto;width:auto;display:flex;align-items:center;flex-direction:column;position:relative;inset-inline-start:1px;text-transform:uppercase}/*!@:host(:not(.ready)) nano-select.search-input*/.sc-nano-global-nav-h:not(.ready) nano-select.search-input.sc-nano-global-nav{overflow:hidden;max-height:1em}/*!@nano-select.search-input .down-arrow*/nano-select.search-input.sc-nano-global-nav .down-arrow.sc-nano-global-nav{font-size:0.65em}/*!@nano-input.search-input*/nano-input.search-input.sc-nano-global-nav{--clear-btn-color:var(--bar-text-color);--nano-input-border-color:rgb(103 138 154);--input-border-width:0 0 2px 0;--placeholder-color:var(--bar-text-color);--input-text-color:var(--bar-text-color);--padding-start:21px;--nano-input-border-color--focus:black;font-size:1.2em;width:206px;display:flex;align-items:center;flex-direction:column;flex:1}/*!@:host([dir=rtl]) nano-input.search-input*/[dir=rtl].sc-nano-global-nav-h nano-input.search-input.sc-nano-global-nav{--input-border-radius:5px 0 0 5px}/*!@:host(:not(.ready)) nano-input.search-input*/.sc-nano-global-nav-h:not(.ready) nano-input.search-input.sc-nano-global-nav{overflow:hidden;max-height:1em}/*!@nano-input.search-input .search-icon*/nano-input.search-input.sc-nano-global-nav .search-icon.sc-nano-global-nav{background:none;padding:0 8px;display:none;font-size:0.9em}/*!@nano-input.search-input .search-icon--show*/nano-input.search-input.sc-nano-global-nav .search-icon--show.sc-nano-global-nav{display:flex !important}/*!@nano-input.search-input .search-icon--loader*/nano-input.search-input.sc-nano-global-nav .search-icon--loader.sc-nano-global-nav{animation:spin 1s linear infinite}@keyframes spin{100%{transform:rotate(360deg)}}/*!@nano-input.search-input .search-icon nano-icon*/nano-input.search-input.sc-nano-global-nav .search-icon.sc-nano-global-nav nano-icon.sc-nano-global-nav{height:1.4em}/*!@.user-profile*/.user-profile.sc-nano-global-nav{display:flex;justify-content:space-between;align-items:center;padding:2em;background-color:var(--menu-user-profile-bg)}/*!@.user-profile .left*/.user-profile.sc-nano-global-nav .left.sc-nano-global-nav{display:flex;align-items:center}/*!@.user-profile .avatar-container*/.user-profile.sc-nano-global-nav .avatar-container.sc-nano-global-nav{position:relative}/*!@.user-profile .avatar-container img.avatar*/.user-profile.sc-nano-global-nav .avatar-container.sc-nano-global-nav img.avatar.sc-nano-global-nav{border-radius:50px}/*!@.user-profile .avatar-container img.logo-small*/.user-profile.sc-nano-global-nav .avatar-container.sc-nano-global-nav img.logo-small.sc-nano-global-nav{position:absolute;height:30px;width:30px;inset-block-end:0;inset-inline-end:0;background-color:#27586e;border-radius:10px;padding:5px}/*!@.user-profile .user-details*/.user-profile.sc-nano-global-nav .user-details.sc-nano-global-nav{display:flex;flex-direction:column;margin:0 1.25em;color:white}/*!@.user-profile .user-details .name*/.user-profile.sc-nano-global-nav .user-details.sc-nano-global-nav .name.sc-nano-global-nav{font-size:1.25em}/*!@.user-profile .user-details .bio*/.user-profile.sc-nano-global-nav .user-details.sc-nano-global-nav .bio.sc-nano-global-nav{margin:0.5em 0}/*!@.user-profile .user-details .kudos span*/.user-profile.sc-nano-global-nav .user-details.sc-nano-global-nav .kudos.sc-nano-global-nav span.sc-nano-global-nav{background-color:#81c7eb;color:#415958;padding:0.25em;border-radius:0.5em;font-weight:bold}/*!@.user-profile .chevron-right*/.user-profile.sc-nano-global-nav .chevron-right.sc-nano-global-nav{font-size:1.5em;color:white}/*!@.user-links*/.user-links.sc-nano-global-nav{position:relative}/*!@.user-links .icon-btn*/.user-links.sc-nano-global-nav .icon-btn.sc-nano-global-nav{-webkit-padding-end:0;padding-inline-end:0;font-weight:400;padding:7px}/*!@.user-links .icon-btn nano-icon*/.user-links.sc-nano-global-nav .icon-btn.sc-nano-global-nav nano-icon.sc-nano-global-nav{-webkit-margin-start:5px;margin-inline-start:5px;width:16px;height:16px;transform-origin:center;transition:transform 0.2s ease, color 0.2s ease}/*!@.user-links .icon-btn.open nano-icon*/.user-links.sc-nano-global-nav .icon-btn.open.sc-nano-global-nav nano-icon.sc-nano-global-nav{transform:rotate(180deg);color:#007495}/*!@.user-links-panel*/.user-links-panel.sc-nano-global-nav{display:none;position:absolute;border-radius:4px 0 4px 4px;box-shadow:0 1px 5px 0 rgba(0, 0, 0, 0.4);background-color:#568c9d;opacity:0;transform:translate3d(0, 30px, 0);transition:transform 0.2s ease, opacity 0.2s ease;inset-inline-end:0;min-width:318px;z-index:2}/*!@.user-links-panel:focus*/.user-links-panel.sc-nano-global-nav:focus{outline:none}/*!@.user-links-panel.show*/.user-links-panel.show.sc-nano-global-nav{opacity:1;transform:translate3d(0, calc(var(--padding) + 1px), 0)}/*!@.user-links-panel-content*/.user-links-panel-content.sc-nano-global-nav{padding:0 18px;display:flex;flex-direction:column;color:white}/*!@.user-links-panel-content a*/.user-links-panel-content.sc-nano-global-nav a.sc-nano-global-nav{padding:11px 0;-webkit-border-after:#669dac 1px solid;border-block-end:#669dac 1px solid}/*!@.user-links-panel-content a:hover, .user-links-panel-content a:focus*/.user-links-panel-content.sc-nano-global-nav a.sc-nano-global-nav:hover,.user-links-panel-content.sc-nano-global-nav a.sc-nano-global-nav:focus{color:#455556}/*!@.user-links-panel-content a:last-child*/.user-links-panel-content.sc-nano-global-nav a.sc-nano-global-nav:last-child{-webkit-border-after:none;border-block-end:none}/*!@.user-links-panel-foot*/.user-links-panel-foot.sc-nano-global-nav{background-color:#aac5cd;border-radius:0 0 4px 4px;padding:var(--padding);color:#455556;display:flex;align-items:center;font-weight:400;justify-content:space-between}/*!@.user-links-panel-foot a:hover*/.user-links-panel-foot.sc-nano-global-nav a.sc-nano-global-nav:hover{text-decoration:underline}/*!@.user-links-panel .user-profile*/.user-links-panel.sc-nano-global-nav .user-profile.sc-nano-global-nav{background-color:var(--bar-user-panel-bg)}/*!@:host*/.sc-nano-global-nav-h{--bar-vertical-padding:21px;--bar-item-spacing:13px;--bar-background:white;--bar-text-color:#196c82;--bar-color-shade:rgb(12 90 113);--bar-color-tint:rgb(19 89 111);--bar-color-focus:#99a3a6;--bar-user-panel-bg:#016d86;--bar-dropdown-bg:#196c82;--bar-dropdown-text:white;--menu-background:#001a21;--menu-text-color:white;--menu-user-profile-bg:#001a21;--menu-user-panel-bg:#193037;--menu-padding:12px;--menu-hint-color:#33484d;--menu-title-text:#90c6e7;--menu-icon-color:white;--login-button-bg:#17bb75;--login-button-text:white;--padding:12px;--padding-top:var(--padding);--padding-end:var(--padding);--padding-bottom:var(--padding);--padding-start:var(--padding);display:flex;flex-direction:column;position:relative;line-height:1.5;height:100%;font-size:0.9375em;font-size:clamp(0.77rem, 1vw, 0.9rem)}/*!@:host input,\n:host select,\n:host button*/.sc-nano-global-nav-h input.sc-nano-global-nav,.sc-nano-global-nav-h select.sc-nano-global-nav,.sc-nano-global-nav-h button.sc-nano-global-nav{font-family:inherit;-webkit-appearance:none;appearance:none;font-size:inherit}/*!@:host a:focus,\n:host button:focus*/.sc-nano-global-nav-h a.sc-nano-global-nav:focus,.sc-nano-global-nav-h button.sc-nano-global-nav:focus{outline:none}/*!@:host a:focus-visible,\n:host button:focus-visible*/.sc-nano-global-nav-h a.sc-nano-global-nav:focus-visible,.sc-nano-global-nav-h button.sc-nano-global-nav:focus-visible{box-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)))}";
16379
+ const globalNavCss = "/*!@:host*/.sc-nano-global-nav-h{box-sizing:border-box}/*!@*,\n*::before,\n*::after*/*.sc-nano-global-nav,*.sc-nano-global-nav::before,*.sc-nano-global-nav::after{box-sizing:border-box}/*!@[hidden]*/[hidden].sc-nano-global-nav{display:none !important}/*!@.global-nav*/.global-nav.sc-nano-global-nav{font-family:inherit;font-size:inherit;font-stretch:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit}/*!@.global-nav > .sticker-trigger*/.global-nav.sc-nano-global-nav>.sticker-trigger.sc-nano-global-nav{display:none}/*!@.global-nav > .sticker-trigger ~ .sticker-trigger*/.global-nav.sc-nano-global-nav>.sticker-trigger.sc-nano-global-nav~.sticker-trigger.sc-nano-global-nav{display:block}/*!@.global-nav button*/.global-nav.sc-nano-global-nav button.sc-nano-global-nav{background:none;color:inherit;border:none}/*!@.global-nav .icon-btn*/.global-nav.sc-nano-global-nav .icon-btn.sc-nano-global-nav{position:relative;background:none;color:inherit;border:none;align-self:normal;padding:9px 7px;cursor:pointer;display:flex;align-items:center}/*!@.global-nav .icon-btn nano-icon*/.global-nav.sc-nano-global-nav .icon-btn.sc-nano-global-nav nano-icon.sc-nano-global-nav{width:18px;height:18px}/*!@.global-nav ::slotted(nano-nav-item[slot=icon])*/.global-nav .sc-nano-global-nav-s>nano-nav-item[slot=icon]{--padding-top:9px;--padding-bottom:9px;--padding-start:7px;--padding-end:7px;--display:flex;font-size:18px}/*!@.global-nav a*/.global-nav.sc-nano-global-nav a.sc-nano-global-nav{color:inherit;text-decoration:none;white-space:nowrap}/*!@.global-nav .nav-links_title*/.global-nav.sc-nano-global-nav .nav-links_title.sc-nano-global-nav{margin:8px 0 3px}/*!@.global-nav .nav-links ul*/.global-nav.sc-nano-global-nav .nav-links.sc-nano-global-nav ul.sc-nano-global-nav{margin:0;padding:0}/*!@.global-nav .nav-links li*/.global-nav.sc-nano-global-nav .nav-links.sc-nano-global-nav li.sc-nano-global-nav{list-style:none}/*!@.global-nav .login-btn*/.global-nav.sc-nano-global-nav .login-btn.sc-nano-global-nav{display:flex;align-items:center}/*!@.global-nav .menu-btn*/.global-nav.sc-nano-global-nav .menu-btn.sc-nano-global-nav{padding:9px var(--bar-item-spacing) 9px var(--bar-item-spacing)}/*!@.site-content*/.site-content.sc-nano-global-nav{display:flex;transition:min-height 0.2s ease;position:relative;z-index:auto;align-items:stretch;flex:1}/*!@.mask*/.mask.sc-nano-global-nav{opacity:0;background:rgba(0, 0, 0, 0.3);position:fixed;inset-inline:0;inset-block-start:0;height:100vh;z-index:-1;transition:transform 0.2s ease, opacity 0.2s ease, visibility 0.01s ease 0.2s, z-index 0.01s ease 0.2s;visibility:hidden}/*!@.mask.open*/.mask.open.sc-nano-global-nav{opacity:1;transition:z-index 0.01s ease, visibility 0.01s ease, transform 0.2s ease 0.01s, opacity 0.2s ease 0.01s;z-index:3;visibility:visible}/*!@.bars*/.bars.sc-nano-global-nav{color:var(--bar-text-color);z-index:var(--nano-layer-index-menubar, 10);position:relative;max-width:100%;min-width:100%;box-shadow:none;transition:0.2s ease box-shadow}/*!@[stuck] .bars*/[stuck].sc-nano-global-nav .bars.sc-nano-global-nav{box-shadow:0 1px 25px 0 rgba(0, 0, 0, 0.15)}/*!@.bars::before*/.bars.sc-nano-global-nav::before{content:\"\";width:100%;height:100%;z-index:-1;background:var(--bar-background);position:absolute}/*!@.main-bar*/.main-bar.sc-nano-global-nav{width:100%;padding-inline:0 var(--bar-item-spacing);padding-block:var(--bar-vertical-padding);display:flex;align-items:center;justify-content:space-between;overflow-x:hidden}/*!@.main-bar:focus*/.main-bar.sc-nano-global-nav:focus{outline:none}/*!@:host(.ready) .main-bar*/.ready.sc-nano-global-nav-h .main-bar.sc-nano-global-nav{overflow-x:visible}/*!@.main-bar > *,\n.main-bar ::slotted(*)*/.main-bar.sc-nano-global-nav>*.sc-nano-global-nav,.main-bar .sc-nano-global-nav-s>*{transition:opacity 0.2s ease}/*!@:host(:not(.ready)) .main-bar > *,\n:host(:not(.ready)) .main-bar ::slotted(*)*/.sc-nano-global-nav-h:not(.ready) .main-bar.sc-nano-global-nav>*.sc-nano-global-nav,.sc-nano-global-nav-h:not(.ready) .main-bar .sc-nano-global-nav-s>*{opacity:0 !important}/*!@:host(.ready) .main-bar > *,\n:host(.ready) .main-bar ::slotted(*)*/.ready.sc-nano-global-nav-h .main-bar.sc-nano-global-nav>*.sc-nano-global-nav,.sc-nano-global-nav-h.ready .main-bar .sc-nano-global-nav-s>*{opacity:1}/*!@:host(.resizing) .main-bar > *,\n:host(.resizing) .main-bar ::slotted(*)*/.resizing.sc-nano-global-nav-h .main-bar.sc-nano-global-nav>*.sc-nano-global-nav,.sc-nano-global-nav-h.resizing .main-bar .sc-nano-global-nav-s>*{opacity:0 !important}/*!@.main-bar > **/.main-bar.sc-nano-global-nav>*.sc-nano-global-nav{flex:0 0 auto}/*!@.main-bar > * ::slotted(nano-nav-item[slot=icon])*/.main-bar .sc-nano-global-nav-s>nano-nav-item[slot=icon]{-webkit-margin-start:11px;margin-inline-start:11px}/*!@.main-bar > * ::slotted(nano-nav-item),\n.main-bar > * nano-nav-item*/.main-bar .sc-nano-global-nav-s>nano-nav-item,.main-bar.sc-nano-global-nav>*.sc-nano-global-nav nano-nav-item.sc-nano-global-nav{--color-hover:var(--bar-color-focus);--secondary-bg-color:var(--bar-dropdown-bg);--secondary-color:var(--bar-dropdown-text);--bg-color-open:var(--bar-background);--padding-top:7px;--padding-bottom:7px;--padding-end:2px;--padding-start:2px;text-decoration:none !important}/*!@.main-bar .icon-btn*/.main-bar.sc-nano-global-nav .icon-btn.sc-nano-global-nav{-webkit-margin-before:0;margin-block-start:0;-webkit-margin-after:0;margin-block-end:0;-webkit-margin-start:6px;margin-inline-start:6px}/*!@:host(.threshold-2) .main-bar .icon-btn*/.threshold-2.sc-nano-global-nav-h .main-bar.sc-nano-global-nav .icon-btn.sc-nano-global-nav{-webkit-margin-before:0;margin-block-start:0;-webkit-margin-after:0;margin-block-end:0;-webkit-margin-start:11px;margin-inline-start:11px}/*!@.main-bar .menu-btn.icon-btn*/.main-bar.sc-nano-global-nav .menu-btn.icon-btn.sc-nano-global-nav{margin:0 !important;-webkit-border-end:1.5px solid var(--bar-color-shade);border-inline-end:1.5px solid var(--bar-color-shade)}/*!@.main-bar .logo*/.main-bar.sc-nano-global-nav .logo.sc-nano-global-nav{height:36px;width:200px;min-width:200px}/*!@:host(:not(.threshold-1)) .main-bar .logo*/.sc-nano-global-nav-h:not(.threshold-1) .main-bar.sc-nano-global-nav .logo.sc-nano-global-nav{height:30px}/*!@.main-bar .logo-link*/.main-bar.sc-nano-global-nav .logo-link.sc-nano-global-nav{-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-start:0;margin-inline-start:0;padding-inline:var(--bar-item-spacing);display:flex;align-items:center;border:none}/*!@.main-bar .nav-links*/.main-bar.sc-nano-global-nav .nav-links.sc-nano-global-nav{flex:0 0 auto;display:flex;justify-content:space-around}/*!@.main-bar .nav-links ul*/.main-bar.sc-nano-global-nav .nav-links.sc-nano-global-nav ul.sc-nano-global-nav{display:flex;justify-content:space-around}/*!@.main-bar .nav-links ::slotted(nano-nav-item),\n.main-bar .nav-links nano-nav-item*/.main-bar .nav-links .sc-nano-global-nav-s>nano-nav-item,.main-bar.sc-nano-global-nav .nav-links.sc-nano-global-nav nano-nav-item.sc-nano-global-nav{--padding-top:7px;--padding-bottom:7px;--padding-end:2px;--padding-start:2px;--margin:0 var(--bar-item-spacing)}/*!@.main-bar .nav-links--main*/.main-bar.sc-nano-global-nav .nav-links--main.sc-nano-global-nav{justify-content:flex-start;letter-spacing:1.5px;font-weight:600;font-stretch:condensed;text-transform:uppercase;font-size:1.065em;-webkit-margin-end:auto;margin-inline-end:auto}/*!@.main-bar .nav-links--main ::slotted(nano-nav-item)*/.main-bar .nav-links--main .sc-nano-global-nav-s>nano-nav-item{--color:var(--bar-text-color);--padding-end:3px;--padding-start:0}/*!@.main-bar .nav-links--sub*/.main-bar.sc-nano-global-nav .nav-links--sub.sc-nano-global-nav{--color:var(--color, #e2e2e2);-webkit-margin-start:6px;margin-inline-start:6px;justify-content:flex-end}/*!@.main-bar .login-btn*/.main-bar.sc-nano-global-nav .login-btn.sc-nano-global-nav{display:inline-block;border-radius:4px;background-color:var(--login-button-bg);color:var(--login-button-text);padding:3px 10px;position:relative;inset-inline-start:auto;inset-block-end:auto;margin-inline:11px 0}/*!@.main-bar .measure-ele*/.main-bar.sc-nano-global-nav .measure-ele.sc-nano-global-nav{min-width:1px;display:block;margin:0;padding:0}/*!@.sticker-trigger*/.sticker-trigger.sc-nano-global-nav{background:var(--bar-background);width:100%;height:1px;z-index:20;position:relative}/*!@.gn-menu*/.gn-menu.sc-nano-global-nav{position:fixed;inset-block-start:0;inset-inline-start:0;z-index:-1;display:none;transition:z-index 0.01s ease 0.2s;height:100vh;width:100vw;overflow-y:auto}/*!@:host(.threshold-4) .gn-menu*/.threshold-4.sc-nano-global-nav-h .gn-menu.sc-nano-global-nav{position:absolute;width:calc(100vw - 20px)}/*!@.gn-menu.menu-full-screen*/.gn-menu.menu-full-screen.sc-nano-global-nav{width:100vw !important}/*!@.gn-menu_wrap*/.gn-menu_wrap.sc-nano-global-nav{max-width:92vw;width:335px;background:var(--menu-background);color:var(--menu-text-color);padding:calc(var(--bar-vertical-padding) + 1px) 0 0;box-shadow:0 0 36px 0 rgba(0, 0, 0, 0.8);position:relative;pointer-events:all;-webkit-margin-after:36px;margin-block-end:36px;opacity:0;outline:none;transition:transform 0.2s ease, opacity 0.2s ease;overflow:hidden}/*!@.gn-menu_wrap.has-promotion*/.gn-menu_wrap.has-promotion.sc-nano-global-nav{padding:var(--menu-padding) 0 0}/*!@.gn-menu.open*/.gn-menu.open.sc-nano-global-nav{z-index:var(--nano-layer-index-dropdown, 300);transition:z-index 0.01s ease}/*!@.gn-menu.open .gn-menu_wrap*/.gn-menu.open.sc-nano-global-nav .gn-menu_wrap.sc-nano-global-nav{opacity:1;transform:translate3d(0, 0, 0) !important;transition:transform 0.2s ease 0.01s, opacity 0.2s ease 0.01s}/*!@.gn-menu_actions*/.gn-menu_actions.sc-nano-global-nav{-webkit-padding-end:calc(var(--menu-padding) / 2);padding-inline-end:calc(var(--menu-padding) / 2);display:flex;justify-content:space-between}/*!@.gn-menu_actions-counter*/.gn-menu_actions-counter.sc-nano-global-nav{background:#d0021b;color:var(--menu-text-color);position:absolute;inset-block-end:4px;inset-inline:auto 0;font-size:9px;height:14px;line-height:14px;width:auto;min-width:14px;border-radius:50%;box-sizing:border-box;text-align:center;text-indent:0}/*!@.gn-menu .content-wrap*/.gn-menu.sc-nano-global-nav .content-wrap.sc-nano-global-nav{position:relative;transition:0.2s ease min-height;min-height:190px}/*!@.gn-menu .content--sub*/.gn-menu.sc-nano-global-nav .content--sub.sc-nano-global-nav{padding:var(--menu-padding) 0 var(--menu-padding) 7px}/*!@.gn-menu .menu-btn*/.gn-menu.sc-nano-global-nav .menu-btn.sc-nano-global-nav{-webkit-margin-end:auto;margin-inline-end:auto}/*!@.gn-menu .nav-links*/.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav{display:flex;flex-wrap:wrap}/*!@.gn-menu .nav-links ::slotted(nano-nav-item),\n.gn-menu .nav-links nano-nav-item*/.gn-menu .nav-links .sc-nano-global-nav-s>nano-nav-item,.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav nano-nav-item.sc-nano-global-nav{--icon-size:14px;--display:inline-block;--secondary-bg-color:#001a21;--padding-top:10px;--padding-bottom:10px;--padding-end:calc(var(--menu-padding) * 2);--padding-start:calc(var(--menu-padding) + 3px);--color:var(--menu-text-color);--color-hover:var(--menu-title-text);--bg-color-hover:transparent;--bg-color-focus:#002530;--focus-outline:none;width:100%}/*!@.gn-menu .nav-links .user-nav*/.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav .user-nav.sc-nano-global-nav{--bg-color:var(--menu-user-panel-bg);--padding-top:9px;--padding-bottom:9px;font-weight:bold;margin:5px 0 0}/*!@.gn-menu .nav-links .user-nav ::slotted(nano-nav-item),\n.gn-menu .nav-links .user-nav nano-nav-item*/.gn-menu .nav-links .user-nav .sc-nano-global-nav-s>nano-nav-item,.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav .user-nav.sc-nano-global-nav nano-nav-item.sc-nano-global-nav{font-weight:400;--bg-color:transparent}/*!@.gn-menu .nav-links .user-nav .content*/.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav .user-nav.sc-nano-global-nav .content.sc-nano-global-nav{padding:0;background-color:var(--menu-user-panel-bg)}/*!@.gn-menu .nav-links .user-nav .content--sub*/.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav .user-nav.sc-nano-global-nav .content--sub.sc-nano-global-nav{padding-inline:var(--menu-padding)}/*!@.gn-menu .nav-links .user-nav .back-btn*/.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav .user-nav.sc-nano-global-nav .back-btn.sc-nano-global-nav{-webkit-padding-start:var(--menu-padding);padding-inline-start:var(--menu-padding)}/*!@.gn-menu .nav-links_title*/.gn-menu.sc-nano-global-nav .nav-links_title.sc-nano-global-nav{margin:0 var(--menu-padding) 4px;-webkit-border-after:1px solid var(--menu-hint-color);border-block-end:1px solid var(--menu-hint-color);-webkit-padding-after:8px;padding-block-end:8px;text-transform:uppercase;color:var(--menu-title-text);letter-spacing:1px;font-weight:700}/*!@.gn-menu .nav-links_title--sites*/.gn-menu.sc-nano-global-nav .nav-links_title--sites.sc-nano-global-nav{-webkit-border-after:none;border-block-end:none}/*!@.gn-menu .nav-links-wrap*/.gn-menu.sc-nano-global-nav .nav-links-wrap.sc-nano-global-nav{margin:18px 0}/*!@.gn-menu .nav-links-wrap:last-child*/.gn-menu.sc-nano-global-nav .nav-links-wrap.sc-nano-global-nav:last-child{-webkit-margin-after:0;margin-block-end:0}/*!@.gn-menu .nav-links .back-btn*/.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav .back-btn.sc-nano-global-nav{-webkit-border-before:1px solid var(--menu-hint-color);border-block-start:1px solid var(--menu-hint-color);-webkit-border-after:1px solid var(--menu-hint-color);border-block-end:1px solid var(--menu-hint-color);display:flex;align-items:center;padding:10px 11px 10px 0;width:100%;font-size:12px;text-transform:uppercase;color:var(--menu-title-text);letter-spacing:1px;font-weight:700;cursor:pointer;font-stretch:expanded}/*!@.gn-menu .nav-links .back-btn:hover*/.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav .back-btn.sc-nano-global-nav:hover{color:var(--menu-text-color)}/*!@.gn-menu .nav-links .back-btn nano-icon*/.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav .back-btn.sc-nano-global-nav nano-icon.sc-nano-global-nav{-webkit-margin-end:10px;margin-inline-end:10px;font-size:12px;color:var(--menu-icon-color)}/*!@.gn-menu .nav-links--sub*/.gn-menu.sc-nano-global-nav .nav-links--sub.sc-nano-global-nav{display:flex;flex-wrap:wrap}/*!@.gn-menu .nav-links--sub ::slotted(nano-nav-item),\n.gn-menu .nav-links--sub nano-nav-item*/.gn-menu .nav-links--sub .sc-nano-global-nav-s>nano-nav-item,.gn-menu.sc-nano-global-nav .nav-links--sub.sc-nano-global-nav nano-nav-item.sc-nano-global-nav{--border-bottom:none;--padding-end:var(--menu-padding);--padding-start:var(--menu-padding);--padding-top:8px;--padding-bottom:8px;margin:0;width:50%;line-height:1.8}/*!@.gn-menu .nav-links--sites ::slotted(nano-nav-item),\n.gn-menu .nav-links--sites nano-nav-item*/.gn-menu .nav-links--sites .sc-nano-global-nav-s>nano-nav-item,.gn-menu.sc-nano-global-nav .nav-links--sites.sc-nano-global-nav nano-nav-item.sc-nano-global-nav{width:100%}/*!@.gn-menu .nav-links .content*/.gn-menu.sc-nano-global-nav .nav-links.sc-nano-global-nav .content.sc-nano-global-nav{padding:8px var(--menu-padding)}/*!@.gn-menu .login-btn*/.gn-menu.sc-nano-global-nav .login-btn.sc-nano-global-nav{padding-inline:7px var(--menu-padding);padding-block:var(--menu-padding)}/*!@.gn-menu .login-btn nano-icon*/.gn-menu.sc-nano-global-nav .login-btn.sc-nano-global-nav nano-icon.sc-nano-global-nav{-webkit-margin-start:10px;margin-inline-start:10px}/*!@.gn-menu .logout-btn*/.gn-menu.sc-nano-global-nav .logout-btn.sc-nano-global-nav{justify-content:flex-end}/*!@.gn-menu .logout-btn a*/.gn-menu.sc-nano-global-nav .logout-btn.sc-nano-global-nav a.sc-nano-global-nav{padding:0 5px}/*!@.search-btn::before*/.search-btn.sc-nano-global-nav::before{content:\"\";background-color:#0c5a71;height:9px;inset-inline:0 5px;inset-block-end:-20px;position:absolute;transform:translateZ(0) scaleX(0);transform-origin:0;transition:0.2s ease transform}/*!@.search-btn--open::before*/.search-btn--open.sc-nano-global-nav::before{transform:translateZ(0) scaleX(1);opacity:0.7}/*!@.search-bar*/.search-bar.sc-nano-global-nav{height:0;overflow:hidden;transition:0.2s ease height;padding:0 var(--bar-item-spacing);outline:none;max-width:45em;-webkit-margin-start:auto;margin-inline-start:auto}/*!@.search-bar .search-widget*/.search-bar.sc-nano-global-nav .search-widget.sc-nano-global-nav{margin:0;overflow:inherit;max-width:none;max-height:none;min-width:auto;-webkit-padding-end:0;padding-inline-end:0}/*!@.search-bar .search-widget .search-icon--search*/.search-bar.sc-nano-global-nav .search-widget.sc-nano-global-nav .search-icon--search.sc-nano-global-nav{display:none}/*!@.search-bar .search-widget .search-input*/.search-bar.sc-nano-global-nav .search-widget.sc-nano-global-nav .search-input.sc-nano-global-nav{--input-border-width:2px 0 0 0;--input-bg-color:#f3f3f3;--nano-input-border-color:transparent;--nano-input-border-color--focus:var(--bar-color-shade);font-size:1.1875em}/*!@.search-bar .search-widget nano-select.search-input*/.search-bar.sc-nano-global-nav .search-widget.sc-nano-global-nav nano-select.search-input.sc-nano-global-nav{--input-border-width:2px 3px 0 0;--input-bg-color:var(--bar-color-shade);--input-bg-color--focus:#f3f3f3;color:#f3f3f3}/*!@.search-bar .search-widget nano-select.search-input.has-focus*/.search-bar.sc-nano-global-nav .search-widget.sc-nano-global-nav nano-select.search-input.has-focus.sc-nano-global-nav{color:var(--bar-color-shade)}/*!@.search-bar .search-widget .select-input__arrow*/.search-bar.sc-nano-global-nav .search-widget.sc-nano-global-nav .select-input__arrow.sc-nano-global-nav{font-size:0.75em}/*!@.search-bar .search-widget .select__mask.sc-nano-select*/.search-bar.sc-nano-global-nav .search-widget.sc-nano-global-nav .select__mask.sc-nano-select.sc-nano-global-nav{line-height:2.35em;min-height:2.35em;-webkit-padding-before:2px;padding-block-start:2px}/*!@.search-bar .search-inputs*/.search-bar.sc-nano-global-nav .search-inputs.sc-nano-global-nav{padding:0;margin:0}/*!@.search-bar .search-autocomplete*/.search-bar.sc-nano-global-nav .search-autocomplete.sc-nano-global-nav{inset-block-start:100%;width:100%}/*!@.search-widget*/.search-widget.sc-nano-global-nav{-webkit-padding-end:var(--bar-item-spacing);padding-inline-end:var(--bar-item-spacing);-webkit-margin-start:var(--bar-item-spacing);margin-inline-start:var(--bar-item-spacing);-webkit-margin-end:auto;margin-inline-end:auto;position:relative;flex:1 1 auto;max-width:500px;min-width:350px;max-height:36px;inset-block-start:-1px}/*!@.search-inputs*/.search-inputs.sc-nano-global-nav{display:flex;margin:0}/*!@.search-inputs input[type=submit]*/.search-inputs.sc-nano-global-nav input[type=submit].sc-nano-global-nav{display:none}/*!@.search-autocomplete*/.search-autocomplete.sc-nano-global-nav{position:absolute;inset-block-start:calc(100% + 15px);width:calc(100% - var(--bar-item-spacing));inset-inline-start:0;background:white;border:2px solid var(--bar-color-tint);border-radius:0 0 5px 5px;color:#4a4a4a;-webkit-padding-before:calc(var(--bar-vertical-padding) / 2);padding-block-start:calc(var(--bar-vertical-padding) / 2);-webkit-padding-end:0;padding-inline-end:0;-webkit-padding-after:1px;padding-block-end:1px;-webkit-padding-start:0;padding-inline-start:0;z-index:1}/*!@.search-autocomplete-hit*/.search-autocomplete-hit.sc-nano-global-nav{padding-block:calc(var(--bar-vertical-padding) / 4);padding-inline:var(--bar-item-spacing);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;text-align:start;line-height:1.5;cursor:pointer}/*!@.search-autocomplete-hit-scope*/.search-autocomplete-hit-scope.sc-nano-global-nav{color:#a7b0b3;font-weight:600}/*!@.search-autocomplete-hit:hover, .search-autocomplete-hit:focus-visible*/.search-autocomplete-hit.sc-nano-global-nav:hover,.search-autocomplete-hit.sc-nano-global-nav:focus-visible{background-color:#e4e6e8}/*!@.search-autocomplete-hit:focus-visible*/.search-autocomplete-hit.sc-nano-global-nav:focus-visible{box-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)))}/*!@.search-autocomplete-hit:focus*/.search-autocomplete-hit.sc-nano-global-nav:focus{outline:none}/*!@.search-autocomplete-hit .search__highlight,\n.search-autocomplete-hit em*/.search-autocomplete-hit.sc-nano-global-nav .search__highlight.sc-nano-global-nav,.search-autocomplete-hit.sc-nano-global-nav em.sc-nano-global-nav{font-weight:bold;font-style:normal}/*!@.search-autocomplete-hit--no-result:hover, .search-autocomplete-hit--no-result:focus*/.search-autocomplete-hit--no-result.sc-nano-global-nav:hover,.search-autocomplete-hit--no-result.sc-nano-global-nav:focus{background:none !important}/*!@.search-autocomplete-foot*/.search-autocomplete-foot.sc-nano-global-nav{margin:7px 0 0}/*!@.search-autocomplete-submit*/.search-autocomplete-submit.sc-nano-global-nav{background:none;border:none;align-self:normal;padding:9px var(--bar-item-spacing) !important;cursor:pointer;display:flex;align-items:center;color:#007495;justify-content:flex-end;width:100%;text-decoration:underline;-webkit-border-before:1px solid #e8eaea;border-block-start:1px solid #e8eaea}/*!@.search-autocomplete-submit:hover, .search-autocomplete-submit:focus*/.search-autocomplete-submit.sc-nano-global-nav:hover,.search-autocomplete-submit.sc-nano-global-nav:focus{background-color:#e4e6e8}/*!@nano-select.search-input*/nano-select.search-input.sc-nano-global-nav{--input-border-width:0 0 2px 0;--input-text-color:var(--bar-text-color);--nano-input-border-color:rgb(103 138 154);--padding-end:var(--bar-item-spacing);--nano-input-border-color--focus:black;font-stretch:condensed;font-weight:600;letter-spacing:1.5px;font-size:1.2em;flex:0 1 auto;width:auto;display:flex;align-items:center;flex-direction:column;position:relative;inset-inline-start:1px;text-transform:uppercase}/*!@:host(:not(.ready)) nano-select.search-input*/.sc-nano-global-nav-h:not(.ready) nano-select.search-input.sc-nano-global-nav{overflow:hidden;max-height:1em}/*!@nano-select.search-input .down-arrow*/nano-select.search-input.sc-nano-global-nav .down-arrow.sc-nano-global-nav{font-size:0.65em}/*!@nano-input.search-input*/nano-input.search-input.sc-nano-global-nav{--clear-btn-color:var(--bar-text-color);--nano-input-border-color:rgb(103 138 154);--input-border-width:0 0 2px 0;--placeholder-color:var(--bar-text-color);--input-text-color:var(--bar-text-color);--padding-start:21px;--nano-input-border-color--focus:black;font-size:1.2em;width:206px;display:flex;align-items:center;flex-direction:column;flex:1}/*!@:host(:dir(rtl)) nano-input.search-input*/.sc-nano-global-nav-h:dir(rtl) nano-input.search-input.sc-nano-global-nav{--input-border-radius:5px 0 0 5px}/*!@:host-context([dir=rtl]) nano-input.search-input*/[dir=rtl].sc-nano-global-nav-h nano-input.search-input.sc-nano-global-nav,[dir=rtl] .sc-nano-global-nav-h nano-input.search-input.sc-nano-global-nav{--input-border-radius:5px 0 0 5px}/*!@:host(:not(.ready)) nano-input.search-input*/.sc-nano-global-nav-h:not(.ready) nano-input.search-input.sc-nano-global-nav{overflow:hidden;max-height:1em}/*!@nano-input.search-input .search-icon*/nano-input.search-input.sc-nano-global-nav .search-icon.sc-nano-global-nav{background:none;padding:0 8px;display:none;font-size:0.9em}/*!@nano-input.search-input .search-icon--show*/nano-input.search-input.sc-nano-global-nav .search-icon--show.sc-nano-global-nav{display:flex !important}/*!@nano-input.search-input .search-icon--loader*/nano-input.search-input.sc-nano-global-nav .search-icon--loader.sc-nano-global-nav{animation:spin 1s linear infinite}@keyframes spin{100%{transform:rotate(360deg)}}/*!@nano-input.search-input .search-icon nano-icon*/nano-input.search-input.sc-nano-global-nav .search-icon.sc-nano-global-nav nano-icon.sc-nano-global-nav{height:1.4em}/*!@.user-profile*/.user-profile.sc-nano-global-nav{display:flex;justify-content:space-between;align-items:center;padding:2em;background-color:var(--menu-user-profile-bg)}/*!@.user-profile .left*/.user-profile.sc-nano-global-nav .left.sc-nano-global-nav{display:flex;align-items:center}/*!@.user-profile .avatar-container*/.user-profile.sc-nano-global-nav .avatar-container.sc-nano-global-nav{position:relative}/*!@.user-profile .avatar-container img.avatar*/.user-profile.sc-nano-global-nav .avatar-container.sc-nano-global-nav img.avatar.sc-nano-global-nav{border-radius:50px}/*!@.user-profile .avatar-container img.logo-small*/.user-profile.sc-nano-global-nav .avatar-container.sc-nano-global-nav img.logo-small.sc-nano-global-nav{position:absolute;height:30px;width:30px;inset-block-end:0;inset-inline-end:0;background-color:#27586e;border-radius:10px;padding:5px}/*!@.user-profile .user-details*/.user-profile.sc-nano-global-nav .user-details.sc-nano-global-nav{display:flex;flex-direction:column;margin:0 1.25em;color:white}/*!@.user-profile .user-details .name*/.user-profile.sc-nano-global-nav .user-details.sc-nano-global-nav .name.sc-nano-global-nav{font-size:1.25em}/*!@.user-profile .user-details .bio*/.user-profile.sc-nano-global-nav .user-details.sc-nano-global-nav .bio.sc-nano-global-nav{margin:0.5em 0}/*!@.user-profile .user-details .kudos span*/.user-profile.sc-nano-global-nav .user-details.sc-nano-global-nav .kudos.sc-nano-global-nav span.sc-nano-global-nav{background-color:#81c7eb;color:#415958;padding:0.25em;border-radius:0.5em;font-weight:bold}/*!@.user-profile .chevron-right*/.user-profile.sc-nano-global-nav .chevron-right.sc-nano-global-nav{font-size:1.5em;color:white}/*!@.user-links*/.user-links.sc-nano-global-nav{position:relative}/*!@.user-links .icon-btn*/.user-links.sc-nano-global-nav .icon-btn.sc-nano-global-nav{-webkit-padding-end:0;padding-inline-end:0;font-weight:400;padding:7px}/*!@.user-links .icon-btn nano-icon*/.user-links.sc-nano-global-nav .icon-btn.sc-nano-global-nav nano-icon.sc-nano-global-nav{-webkit-margin-start:5px;margin-inline-start:5px;width:16px;height:16px;transform-origin:center;transition:transform 0.2s ease, color 0.2s ease}/*!@.user-links .icon-btn.open nano-icon*/.user-links.sc-nano-global-nav .icon-btn.open.sc-nano-global-nav nano-icon.sc-nano-global-nav{transform:rotate(180deg);color:#007495}/*!@.user-links-panel*/.user-links-panel.sc-nano-global-nav{display:none;position:absolute;border-radius:4px 0 4px 4px;box-shadow:0 1px 5px 0 rgba(0, 0, 0, 0.4);background-color:#568c9d;opacity:0;transform:translate3d(0, 30px, 0);transition:transform 0.2s ease, opacity 0.2s ease;inset-inline-end:0;min-width:318px;z-index:2}/*!@.user-links-panel:focus*/.user-links-panel.sc-nano-global-nav:focus{outline:none}/*!@.user-links-panel.show*/.user-links-panel.show.sc-nano-global-nav{opacity:1;transform:translate3d(0, calc(var(--padding) + 1px), 0)}/*!@.user-links-panel-content*/.user-links-panel-content.sc-nano-global-nav{padding:0 18px;display:flex;flex-direction:column;color:white}/*!@.user-links-panel-content a*/.user-links-panel-content.sc-nano-global-nav a.sc-nano-global-nav{padding:11px 0;-webkit-border-after:#669dac 1px solid;border-block-end:#669dac 1px solid}/*!@.user-links-panel-content a:hover, .user-links-panel-content a:focus*/.user-links-panel-content.sc-nano-global-nav a.sc-nano-global-nav:hover,.user-links-panel-content.sc-nano-global-nav a.sc-nano-global-nav:focus{color:#455556}/*!@.user-links-panel-content a:last-child*/.user-links-panel-content.sc-nano-global-nav a.sc-nano-global-nav:last-child{-webkit-border-after:none;border-block-end:none}/*!@.user-links-panel-foot*/.user-links-panel-foot.sc-nano-global-nav{background-color:#aac5cd;border-radius:0 0 4px 4px;padding:var(--padding);color:#455556;display:flex;align-items:center;font-weight:400;justify-content:space-between}/*!@.user-links-panel-foot a:hover*/.user-links-panel-foot.sc-nano-global-nav a.sc-nano-global-nav:hover{text-decoration:underline}/*!@.user-links-panel .user-profile*/.user-links-panel.sc-nano-global-nav .user-profile.sc-nano-global-nav{background-color:var(--bar-user-panel-bg)}/*!@:host*/.sc-nano-global-nav-h{--bar-vertical-padding:21px;--bar-item-spacing:13px;--bar-background:white;--bar-text-color:#196c82;--bar-color-shade:rgb(12 90 113);--bar-color-tint:rgb(19 89 111);--bar-color-focus:#99a3a6;--bar-user-panel-bg:#016d86;--bar-dropdown-bg:#196c82;--bar-dropdown-text:white;--menu-background:#001a21;--menu-text-color:white;--menu-user-profile-bg:#001a21;--menu-user-panel-bg:#193037;--menu-padding:12px;--menu-hint-color:#33484d;--menu-title-text:#90c6e7;--menu-icon-color:white;--login-button-bg:#17bb75;--login-button-text:white;--padding:12px;--padding-top:var(--padding);--padding-end:var(--padding);--padding-bottom:var(--padding);--padding-start:var(--padding);display:flex;flex-direction:column;position:relative;line-height:1.5;height:100%;font-size:0.9375em;font-size:clamp(0.77rem, 1vw, 0.9rem)}/*!@:host input,\n:host select,\n:host button*/.sc-nano-global-nav-h input.sc-nano-global-nav,.sc-nano-global-nav-h select.sc-nano-global-nav,.sc-nano-global-nav-h button.sc-nano-global-nav{font-family:inherit;-webkit-appearance:none;appearance:none;font-size:inherit}/*!@:host a:focus,\n:host button:focus*/.sc-nano-global-nav-h a.sc-nano-global-nav:focus,.sc-nano-global-nav-h button.sc-nano-global-nav:focus{outline:none}/*!@:host a:focus-visible,\n:host button:focus-visible*/.sc-nano-global-nav-h a.sc-nano-global-nav:focus-visible,.sc-nano-global-nav-h button.sc-nano-global-nav:focus-visible{box-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)))}";
17276
16380
 
17277
16381
  // the 'breakpoints' where different segments of content go into or out-of the burger / overflow menu
17278
16382
  const THRESHOLDBREAKS = {
@@ -17509,7 +16613,7 @@ class GlobalNav {
17509
16613
  };
17510
16614
  });
17511
16615
  try {
17512
- this.algoliaSearchResults = this.processSearchResults((await this.algoliaClient.multipleQueries(queries)));
16616
+ this.algoliaSearchResults = this.processSearchResults((await this.algoliaClient.search(queries)));
17513
16617
  }
17514
16618
  catch (e) {
17515
16619
  this.nanoSearchError.emit(e);
@@ -17802,7 +16906,7 @@ class GlobalNav {
17802
16906
  initAlgoliaClient() {
17803
16907
  if (!this.searchAppId || !this.searchApiKey)
17804
16908
  return;
17805
- this.algoliaClient = algoliasearch_umd(this.searchAppId, this.searchApiKey);
16909
+ this.algoliaClient = algoliasearch(this.searchAppId, this.searchApiKey);
17806
16910
  this.addAlgoliaIndeces();
17807
16911
  }
17808
16912
  addIndeces() {
@@ -18634,7 +17738,8 @@ class GlobalSearchResults {
18634
17738
  this.ro.observe(this.el);
18635
17739
  }
18636
17740
  render() {
18637
- return (hAsync(Host, { class: { small: this.currentWidth < 677 }, dir: this.el.ownerDocument.dir === 'rtl' ? 'rtl' : undefined }, hAsync("nano-algolia", { "store-id": "searchq", "store-method": "url-hash-push", class: "main-search__wrap sc-nano-global-search-results", ref: (ele) => (this.algoliaEle = ele), id: "main-search" }, hAsync("template", { slot: "template" }, `<div class="main-search sc-nano-global-search-results">
17741
+ return (hAsync(Host, { class: { small: this.currentWidth < 677 }, dir: this.el.ownerDocument.dir === 'rtl' ? 'rtl' : undefined }, hAsync("nano-algolia", { "store-id": "searchq", "store-method": "url-hash-push", class: "main-search__wrap sc-nano-global-search-results", ref: (ele) => (this.algoliaEle = ele), id: "main-search" }, hAsync("template", { slot: "template" },
17742
+ /* html */ `<div class="main-search sc-nano-global-search-results">
18638
17743
  <nano-algolia-results id="main-search-results" class="main-search__results sc-nano-global-search-results" infinite-scroll>
18639
17744
  <script type="text/template" slot="start-template">
18640
17745
  <div class="sc-nano-global-search-results main-search__topbar topbar">
@@ -27521,19 +26626,6 @@ function drag(container, options) {
27521
26626
  // move(initialEvent);
27522
26627
  }
27523
26628
 
27524
- /**
27525
- * Add multiple event listeners with the same callback function
27526
- * @param el the element which emits events
27527
- * @param events the event names to listen to (string separated by a space)
27528
- * @param fn the function to call
27529
- * @param opts the event options to apply
27530
- */
27531
- function addListeners(el, events, fn, opts) {
27532
- events
27533
- .split(' ')
27534
- .forEach((e) => el.addEventListener(e, fn, opts));
27535
- }
27536
-
27537
26629
  const sortableCss = "/*!@:host*/.sc-nano-sortable-h{box-sizing:border-box}/*!@*,\n*::before,\n*::after*/*.sc-nano-sortable,*.sc-nano-sortable::before,*.sc-nano-sortable::after{box-sizing:border-box}/*!@[hidden]*/[hidden].sc-nano-sortable{display:none !important}/*!@:host*/.sc-nano-sortable-h{position:relative;display:block}/*!@.sortable__live-region*/.sortable__live-region.sc-nano-sortable{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);block-size:1px;inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}";
27538
26630
 
27539
26631
  // Orientation map to limit dragging to horizontal or vertical.
@@ -28571,7 +27663,7 @@ class Sticker {
28571
27663
  this.hasBootstrapped = false;
28572
27664
  // Private methods / handlers
28573
27665
  /** Assesses the public API quitemode and works out if it should be applied atm.
28574
- * If 'smallscreen', or there is a breakpointmax / min it will add a resizeobserver to conditionally add behaviour */
27666
+ * If 'small screen', or there is a breakpointmax / min it will add a resizeobserver to conditionally add behaviour */
28575
27667
  this.setupParentResizeListener = () => {
28576
27668
  if (!window['ResizeObserver'])
28577
27669
  return;
@@ -28614,8 +27706,8 @@ class Sticker {
28614
27706
  if (toWatch)
28615
27707
  this.parentSizeObserver.observe(toWatch);
28616
27708
  };
28617
- /** For stickTo stickers. We listen to the events from the 'master' sticker to ammend the hide/show trigger
28618
- * Main diffs from rootstickers / non is height being on 'master' */
27709
+ /** For stickTo stickers. We listen to the events from the 'master' sticker to amend the hide/show trigger
27710
+ * Main diffs from root-stickers / non is height being on 'master' */
28619
27711
  this.onStickToDisplayEvent = (e) => {
28620
27712
  if (e.detail.sticker !== this.stickToEle)
28621
27713
  return;
@@ -28835,7 +27927,9 @@ class Sticker {
28835
27927
  const u = pos.match(/(top|bottom)/) ? v + _v : h + _h;
28836
27928
  this.trigger.style[pos] = u * -1 + 'px';
28837
27929
  this.trigger.style.position = 'relative';
28838
- this.trigger.style.height = '1px';
27930
+ this.trigger.style.minHeight = '1px';
27931
+ this.trigger.style.maxHeight = '1px';
27932
+ this.trigger.style.overflow = 'hidden';
28839
27933
  };
28840
27934
  if ((this.positions.includes('start') && this.isRtl) ||
28841
27935
  (this.positions.includes('end') && !this.isRtl))
@@ -28927,7 +28021,7 @@ class Sticker {
28927
28021
  else
28928
28022
  this.stickToEle = undefined;
28929
28023
  }
28930
- /** 2 potential criteria for hiding. Multi-stickers or quietmode. */
28024
+ /** 2 potential criteria for hiding. Multi-stickers or quiet mode. */
28931
28025
  visibilityDecisionHandler() {
28932
28026
  if (this.multiStickerHide || this.scrollHide)
28933
28027
  this.hide = true;
@@ -29048,10 +28142,12 @@ class Sticker {
29048
28142
  shouldStick(data) {
29049
28143
  let scrollAmt;
29050
28144
  if (this.positions.includes('top')) {
29051
- if (!this.isRootSticker)
28145
+ if (!this.isRootSticker) {
29052
28146
  scrollAmt = _getOffset(this.trigger, this.scrollParent).top;
29053
- else
28147
+ }
28148
+ else {
29054
28149
  scrollAmt = this.trigger.getBoundingClientRect().top;
28150
+ }
29055
28151
  this.isStuck = scrollAmt < -1;
29056
28152
  }
29057
28153
  else if (this.positions.includes('bottom')) {
@@ -29061,7 +28157,9 @@ class Sticker {
29061
28157
  : (this.scrollParent instanceof Document
29062
28158
  ? document.documentElement
29063
28159
  : this.scrollParent).getBoundingClientRect();
29064
- this.isStuck = scrollAmt > parentBounding.height + parentBounding.top;
28160
+ this.isStuck =
28161
+ !data.isIntersecting ||
28162
+ scrollAmt > parentBounding.height + parentBounding.top;
29065
28163
  }
29066
28164
  }
29067
28165
  bootstrapGurantor() {
@@ -29069,6 +28167,7 @@ class Sticker {
29069
28167
  this.scrollParent = this.scrollParent || this.getScrollParent();
29070
28168
  this.isRootSticker = this.scrollParent instanceof Document;
29071
28169
  this.trigger = this.trigger || document.createElement('div');
28170
+ this.trigger.innerHTML = '&nbsp;';
29072
28171
  this.trigger.classList.add('sticker-trigger');
29073
28172
  this.positionChange();
29074
28173
  this.moveTrigger(true);
@@ -29091,7 +28190,7 @@ class Sticker {
29091
28190
  this.setupIO();
29092
28191
  this.onStickToDisplayEvent = debounce$2(this.onStickToDisplayEvent, 50);
29093
28192
  }
29094
- // Stencil metthods
28193
+ // Stencil methods
29095
28194
  connectedCallback() {
29096
28195
  this.isRtl =
29097
28196
  this.host.dir === 'rtl' ||
@@ -31414,8 +30513,8 @@ class TablePinService {
31414
30513
  // so only aggregate height / offset when cacheParent is different from current parent.
31415
30514
  // Devs can override this behaviour by manually setting `--pin-bottom` on the table row
31416
30515
  if (cacheParent !== currParent) {
31417
- currParent.style.setProperty('--pin-top', `${heightAggregate}px`);
31418
- heightAggregate += height;
30516
+ currParent.style.setProperty('--pin-top', `${heightAggregate - 1}px`);
30517
+ heightAggregate += height - 1;
31419
30518
  cacheParent = currParent;
31420
30519
  }
31421
30520
  resolve();
@@ -31453,8 +30552,8 @@ class TablePinService {
31453
30552
  // so only aggregate height / offset when cacheParent is different from current parent.
31454
30553
  // Devs can override this behaviour by manually setting `--pin-bottom` on the table row
31455
30554
  if (cacheParent !== currParent) {
31456
- currParent.style.setProperty('--pin-bottom', `${heightAggregate}px`);
31457
- heightAggregate += height;
30555
+ currParent.style.setProperty('--pin-bottom', `${heightAggregate - 1}px`);
30556
+ heightAggregate += height - 1;
31458
30557
  cacheParent = currParent;
31459
30558
  }
31460
30559
  resolve();