@nanoporetech-digital/components 1.15.6 → 2.0.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 (981) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/cjs/active-element-2f9bf0aa.js +21 -0
  3. package/dist/cjs/active-element-2f9bf0aa.js.map +1 -0
  4. package/dist/cjs/{algoliasearch.umd-0ccd70ce.js → algoliasearch.umd-4d15f5e0.js} +3 -3
  5. package/dist/cjs/{algoliasearch.umd-0ccd70ce.js.map → algoliasearch.umd-4d15f5e0.js.map} +1 -1
  6. package/dist/cjs/{dom-5f3fae1a.js → dom-52f9b8b7.js} +25 -6
  7. package/dist/cjs/dom-52f9b8b7.js.map +1 -0
  8. package/dist/cjs/form-control-3bc82e3e.js +80 -0
  9. package/dist/cjs/form-control-3bc82e3e.js.map +1 -0
  10. package/dist/cjs/{index-117f36a4.js → index-53d02e05.js} +12 -27
  11. package/dist/cjs/index-53d02e05.js.map +1 -0
  12. package/dist/cjs/index-cb62df44.js +12 -12
  13. package/dist/cjs/index.cjs.js +3 -3
  14. package/dist/cjs/index.cjs.js.map +1 -1
  15. package/dist/cjs/loader.cjs.js +1 -1
  16. package/dist/cjs/{modal-01eed1bf.js → modal-f09e431f.js} +2 -2
  17. package/dist/cjs/{modal-01eed1bf.js.map → modal-f09e431f.js.map} +1 -1
  18. package/dist/cjs/nano-accordion.cjs.entry.js +2 -4
  19. package/dist/cjs/nano-accordion.cjs.entry.js.map +1 -1
  20. package/dist/cjs/nano-alert.cjs.entry.js +6 -6
  21. package/dist/cjs/nano-alert.cjs.entry.js.map +1 -1
  22. package/dist/cjs/nano-algolia-filter.cjs.entry.js +1 -1
  23. package/dist/cjs/nano-algolia-filter.cjs.entry.js.map +1 -1
  24. package/dist/cjs/nano-algolia-input.cjs.entry.js +1 -1
  25. package/dist/cjs/nano-algolia.cjs.entry.js +9 -5
  26. package/dist/cjs/nano-algolia.cjs.entry.js.map +1 -1
  27. package/dist/cjs/nano-aspect-ratio.cjs.entry.js +1 -1
  28. package/dist/cjs/nano-aspect-ratio.cjs.entry.js.map +1 -1
  29. package/dist/cjs/nano-checkbox-group.cjs.entry.js +4 -1
  30. package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
  31. package/dist/cjs/nano-checkbox.cjs.entry.js +1 -1
  32. package/dist/cjs/nano-checkbox.cjs.entry.js.map +1 -1
  33. package/dist/cjs/nano-components.cjs.js +1 -1
  34. package/dist/cjs/nano-datalist_3.cjs.entry.js +776 -0
  35. package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -0
  36. package/dist/cjs/nano-date-input.cjs.entry.js +9 -5
  37. package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
  38. package/dist/cjs/{nano-date-picker_2.cjs.entry.js → nano-date-picker.cjs.entry.js} +2 -274
  39. package/dist/cjs/nano-date-picker.cjs.entry.js.map +1 -0
  40. package/dist/cjs/nano-details.cjs.entry.js +2 -2
  41. package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
  42. package/dist/cjs/nano-dialog.cjs.entry.js +5 -5
  43. package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
  44. package/dist/cjs/nano-drawer.cjs.entry.js +5 -5
  45. package/dist/cjs/nano-drawer.cjs.entry.js.map +1 -1
  46. package/dist/cjs/nano-dropdown.cjs.entry.js +307 -0
  47. package/dist/cjs/nano-dropdown.cjs.entry.js.map +1 -0
  48. package/dist/cjs/nano-file-upload.cjs.entry.js +1 -1
  49. package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
  50. package/dist/cjs/nano-global-nav.cjs.entry.js +19 -24
  51. package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
  52. package/dist/cjs/nano-global-search-results.cjs.entry.js +200 -115
  53. package/dist/cjs/nano-global-search-results.cjs.entry.js.map +1 -1
  54. package/dist/cjs/nano-grid_3.cjs.entry.js +15 -7
  55. package/dist/cjs/nano-grid_3.cjs.entry.js.map +1 -1
  56. package/dist/cjs/nano-hero.cjs.entry.js +13 -5
  57. package/dist/cjs/nano-hero.cjs.entry.js.map +1 -1
  58. package/dist/cjs/nano-icon-button.cjs.entry.js +2 -2
  59. package/dist/cjs/nano-icon-button.cjs.entry.js.map +1 -1
  60. package/dist/cjs/nano-icon.cjs.entry.js +1 -1
  61. package/dist/cjs/nano-icon.cjs.entry.js.map +1 -1
  62. package/dist/cjs/nano-input.cjs.entry.js +80 -75
  63. package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
  64. package/dist/cjs/nano-menu-drawer.cjs.entry.js +2 -2
  65. package/dist/cjs/nano-menu-drawer.cjs.entry.js.map +1 -1
  66. package/dist/cjs/nano-nav-item_2.cjs.entry.js +284 -533
  67. package/dist/cjs/nano-nav-item_2.cjs.entry.js.map +1 -1
  68. package/dist/cjs/nano-range.cjs.entry.js +2 -2
  69. package/dist/cjs/nano-range.cjs.entry.js.map +1 -1
  70. package/dist/cjs/nano-rating.cjs.entry.js +2 -2
  71. package/dist/cjs/nano-rating.cjs.entry.js.map +1 -1
  72. package/dist/cjs/nano-resize-observe_2.cjs.entry.js +1 -1
  73. package/dist/cjs/nano-resize-observe_2.cjs.entry.js.map +1 -1
  74. package/dist/cjs/nano-slide.cjs.entry.js +1 -1
  75. package/dist/cjs/nano-slide.cjs.entry.js.map +1 -1
  76. package/dist/cjs/nano-slides.cjs.entry.js +1 -1
  77. package/dist/cjs/nano-slides.cjs.entry.js.map +1 -1
  78. package/dist/cjs/nano-spinner.cjs.entry.js +1 -1
  79. package/dist/cjs/nano-spinner.cjs.entry.js.map +1 -1
  80. package/dist/cjs/nano-sticker.cjs.entry.js +3 -3
  81. package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
  82. package/dist/cjs/nano-tab-content.cjs.entry.js +2 -2
  83. package/dist/cjs/nano-tab-content.cjs.entry.js.map +1 -1
  84. package/dist/cjs/nano-tab-group.cjs.entry.js +66 -33
  85. package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
  86. package/dist/cjs/nano-tab.cjs.entry.js +9 -2
  87. package/dist/cjs/nano-tab.cjs.entry.js.map +1 -1
  88. package/dist/cjs/nano-tooltip.cjs.entry.js +2 -2
  89. package/dist/cjs/nano-tooltip.cjs.entry.js.map +1 -1
  90. package/dist/cjs/{popover-d033efa2.js → popover-86f1775c.js} +10 -1
  91. package/dist/cjs/popover-86f1775c.js.map +1 -0
  92. package/dist/cjs/{scroll-d7753eed.js → scroll-6b9e6870.js} +2 -2
  93. package/dist/cjs/{scroll-d7753eed.js.map → scroll-6b9e6870.js.map} +1 -1
  94. package/dist/cjs/{tabbable-615c30e1.js → tabbable-de4c23d8.js} +8 -6
  95. package/dist/cjs/tabbable-de4c23d8.js.map +1 -0
  96. package/dist/collection/collection-manifest.json +3 -2
  97. package/dist/collection/components/accordion/accordion.css +3 -0
  98. package/dist/collection/components/accordion/accordion.js +2 -5
  99. package/dist/collection/components/accordion/accordion.js.map +1 -1
  100. package/dist/collection/components/alert/alert.css +5 -6
  101. package/dist/collection/components/alert/alert.helpers.js +2 -2
  102. package/dist/collection/components/alert/alert.helpers.js.map +1 -1
  103. package/dist/collection/components/alert/alert.js +1 -1
  104. package/dist/collection/components/algolia/algolia-filter.css +3 -0
  105. package/dist/collection/components/algolia/algolia-filter.js +2 -2
  106. package/dist/collection/components/algolia/algolia-input.js +5 -5
  107. package/dist/collection/components/algolia/algolia-results.js +1 -1
  108. package/dist/collection/components/algolia/algolia.css +3 -0
  109. package/dist/collection/components/algolia/algolia.js +6 -6
  110. package/dist/collection/components/aspect-ratio/aspect-ratio.css +3 -0
  111. package/dist/collection/components/checkbox/checkbox-group.css +3 -0
  112. package/dist/collection/components/checkbox/checkbox-group.js +5 -2
  113. package/dist/collection/components/checkbox/checkbox-group.js.map +1 -1
  114. package/dist/collection/components/checkbox/checkbox.css +3 -0
  115. package/dist/collection/components/checkbox/checkbox.js +3 -3
  116. package/dist/collection/components/datalist/datalist.css +55 -0
  117. package/dist/collection/components/datalist/datalist.js +782 -0
  118. package/dist/collection/components/datalist/datalist.js.map +1 -0
  119. package/dist/collection/components/date-input/date-input.css +3 -0
  120. package/dist/collection/components/date-input/date-input.js +18 -10
  121. package/dist/collection/components/date-input/date-input.js.map +1 -1
  122. package/dist/collection/components/date-picker/date-picker.css +3 -0
  123. package/dist/collection/components/date-picker/date-picker.js +5 -5
  124. package/dist/collection/components/details/details.css +3 -0
  125. package/dist/collection/components/details/details.js +2 -3
  126. package/dist/collection/components/details/details.js.map +1 -1
  127. package/dist/collection/components/dialog/dialog.css +4 -1
  128. package/dist/collection/components/dialog/dialog.helpers.js.map +1 -1
  129. package/dist/collection/components/dialog/dialog.js +1 -1
  130. package/dist/collection/components/drawer/drawer.css +3 -0
  131. package/dist/collection/components/dropdown/dropdown.css +19 -2
  132. package/dist/collection/components/dropdown/dropdown.js +56 -39
  133. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  134. package/dist/collection/components/file-upload/file-upload.css +5 -2
  135. package/dist/collection/components/file-upload/file-upload.js +4 -4
  136. package/dist/collection/components/form-control/form-control.js +73 -0
  137. package/dist/collection/components/form-control/form-control.js.map +1 -0
  138. package/dist/collection/components/global-nav/global-nav.css +43 -37
  139. package/dist/collection/components/global-nav/global-nav.js +21 -26
  140. package/dist/collection/components/global-nav/global-nav.js.map +1 -1
  141. package/dist/collection/components/global-search-results/global-search-results.css +299 -18
  142. package/dist/collection/components/global-search-results/global-search-results.js +200 -113
  143. package/dist/collection/components/global-search-results/global-search-results.js.map +1 -1
  144. package/dist/collection/components/grid/grid-item.css +3 -0
  145. package/dist/collection/components/grid/grid-item.js +1 -1
  146. package/dist/collection/components/grid/grid.css +3 -0
  147. package/dist/collection/components/grid/grid.js +37 -6
  148. package/dist/collection/components/grid/grid.js.map +1 -1
  149. package/dist/collection/components/hero/hero.css +13 -5
  150. package/dist/collection/components/hero/hero.js +32 -22
  151. package/dist/collection/components/hero/hero.js.map +1 -1
  152. package/dist/collection/components/icon/icon.css +3 -0
  153. package/dist/collection/components/icon/icon.js +1 -1
  154. package/dist/collection/components/icon-button/icon-button.css +6 -1
  155. package/dist/collection/components/icon-button/icon-button.js +1 -1
  156. package/dist/collection/components/icon-button/icon-button.js.map +1 -1
  157. package/dist/collection/components/img/img.css +3 -0
  158. package/dist/collection/components/input/input.css +242 -232
  159. package/dist/collection/components/input/input.js +111 -114
  160. package/dist/collection/components/input/input.js.map +1 -1
  161. package/dist/collection/components/menu/menu.css +27 -35
  162. package/dist/collection/components/menu/menu.js +222 -48
  163. package/dist/collection/components/menu/menu.js.map +1 -1
  164. package/dist/collection/components/menu-drawer/menu-drawer.css +3 -0
  165. package/dist/collection/components/nav-item/nav-item.css +3 -0
  166. package/dist/collection/components/nav-item/nav-item.js +5 -5
  167. package/dist/collection/components/nav-item/nav-item.js.map +1 -1
  168. package/dist/collection/components/option/option-interface.js +5 -0
  169. package/dist/collection/components/option/option-interface.js.map +1 -0
  170. package/dist/collection/components/option/option.css +187 -0
  171. package/dist/collection/components/option/option.js +242 -0
  172. package/dist/collection/components/option/option.js.map +1 -0
  173. package/dist/collection/components/range/range.css +3 -0
  174. package/dist/collection/components/range/range.js +4 -4
  175. package/dist/collection/components/rating/rating.css +3 -0
  176. package/dist/collection/components/resize-observe/resize-observe.js +1 -1
  177. package/dist/collection/components/select/select.css +458 -391
  178. package/dist/collection/components/select/select.js +364 -607
  179. package/dist/collection/components/select/select.js.map +1 -1
  180. package/dist/collection/components/skeleton/skeleton.css +3 -0
  181. package/dist/collection/components/slides/slide.css +3 -0
  182. package/dist/collection/components/slides/slides.css +3 -0
  183. package/dist/collection/components/slides/slides.js +7 -7
  184. package/dist/collection/components/spinner/spinner.css +3 -0
  185. package/dist/collection/components/sticky/sticker.css +3 -0
  186. package/dist/collection/components/tabs/tab-content.css +3 -0
  187. package/dist/collection/components/tabs/tab-content.js +3 -3
  188. package/dist/collection/components/tabs/tab-content.js.map +1 -1
  189. package/dist/collection/components/tabs/tab-group.css +16 -5
  190. package/dist/collection/components/tabs/tab-group.js +125 -38
  191. package/dist/collection/components/tabs/tab-group.js.map +1 -1
  192. package/dist/collection/components/tabs/tab.css +36 -6
  193. package/dist/collection/components/tabs/tab.js +45 -2
  194. package/dist/collection/components/tabs/tab.js.map +1 -1
  195. package/dist/collection/components/tooltip/tooltip.css +3 -0
  196. package/dist/collection/utils/active-element.js +16 -0
  197. package/dist/collection/utils/active-element.js.map +1 -0
  198. package/dist/collection/utils/dom.js +24 -5
  199. package/dist/collection/utils/dom.js.map +1 -1
  200. package/dist/collection/utils/index.js +13 -13
  201. package/dist/collection/utils/index.js.map +1 -1
  202. package/dist/collection/utils/popover.js +9 -0
  203. package/dist/collection/utils/popover.js.map +1 -1
  204. package/dist/collection/utils/tabbable.js +7 -5
  205. package/dist/collection/utils/tabbable.js.map +1 -1
  206. package/dist/collection/utils/template.js +5 -1
  207. package/dist/collection/utils/template.js.map +1 -1
  208. package/dist/collection/utils/testing/index.js +11 -1
  209. package/dist/collection/utils/testing/index.js.map +1 -1
  210. package/dist/components/ResizeObserver.es.js +933 -0
  211. package/dist/components/ResizeObserver.es.js.map +1 -0
  212. package/dist/components/_commonjsHelpers.js +41 -0
  213. package/dist/components/_commonjsHelpers.js.map +1 -0
  214. package/dist/components/active-element.js +19 -0
  215. package/dist/components/active-element.js.map +1 -0
  216. package/dist/components/algolia-data.js +49 -0
  217. package/dist/components/algolia-data.js.map +1 -0
  218. package/dist/components/algolia.js +906 -0
  219. package/dist/components/algolia.js.map +1 -0
  220. package/dist/components/algoliasearch.umd.js +13 -0
  221. package/dist/components/algoliasearch.umd.js.map +1 -0
  222. package/dist/components/component-store.js +2234 -0
  223. package/dist/components/component-store.js.map +1 -0
  224. package/dist/components/datalist.js +543 -0
  225. package/dist/components/datalist.js.map +1 -0
  226. package/dist/components/date-picker.js +624 -0
  227. package/dist/components/date-picker.js.map +1 -0
  228. package/dist/{esm/dom-a791b223.js → components/dom.js} +25 -6
  229. package/dist/components/dom.js.map +1 -0
  230. package/dist/components/dropdown.js +332 -0
  231. package/dist/components/dropdown.js.map +1 -0
  232. package/dist/components/focus-visible.js +66 -0
  233. package/dist/components/focus-visible.js.map +1 -0
  234. package/dist/components/form-control.js +77 -0
  235. package/dist/components/form-control.js.map +1 -0
  236. package/dist/components/grid-item.js +112 -0
  237. package/dist/components/grid-item.js.map +1 -0
  238. package/dist/components/grid.js +276 -0
  239. package/dist/components/grid.js.map +1 -0
  240. package/dist/components/icon-button.js +70 -0
  241. package/dist/components/icon-button.js.map +1 -0
  242. package/dist/components/icon.js +269 -0
  243. package/dist/components/icon.js.map +1 -0
  244. package/dist/components/img.js +184 -0
  245. package/dist/components/img.js.map +1 -0
  246. package/dist/components/index.d.ts +26 -0
  247. package/dist/components/index.js +251 -0
  248. package/dist/components/index.js.map +1 -0
  249. package/dist/{esm/index-f41ae118.js → components/index2.js} +13 -27
  250. package/dist/components/index2.js.map +1 -0
  251. package/dist/components/index3.js +1075 -0
  252. package/dist/components/index3.js.map +1 -0
  253. package/dist/components/index4.js +637 -0
  254. package/dist/components/index4.js.map +1 -0
  255. package/dist/components/input.js +474 -0
  256. package/dist/components/input.js.map +1 -0
  257. package/dist/components/intersection-observer.js +985 -0
  258. package/dist/components/intersection-observer.js.map +1 -0
  259. package/dist/components/local-my-account.js +353 -0
  260. package/dist/components/local-my-account.js.map +1 -0
  261. package/dist/components/menu.js +235 -0
  262. package/dist/components/menu.js.map +1 -0
  263. package/dist/components/modal.js +48 -0
  264. package/dist/components/modal.js.map +1 -0
  265. package/dist/components/nano-accordion.d.ts +11 -0
  266. package/dist/components/nano-accordion.js +63 -0
  267. package/dist/components/nano-accordion.js.map +1 -0
  268. package/dist/components/nano-alert.d.ts +11 -0
  269. package/dist/components/nano-alert.js +296 -0
  270. package/dist/components/nano-alert.js.map +1 -0
  271. package/dist/components/nano-algolia-filter.d.ts +11 -0
  272. package/dist/components/nano-algolia-filter.js +317 -0
  273. package/dist/components/nano-algolia-filter.js.map +1 -0
  274. package/dist/components/nano-algolia-input.d.ts +11 -0
  275. package/dist/components/nano-algolia-input.js +224 -0
  276. package/dist/components/nano-algolia-input.js.map +1 -0
  277. package/dist/components/nano-algolia-pagination.d.ts +11 -0
  278. package/dist/components/nano-algolia-pagination.js +104 -0
  279. package/dist/components/nano-algolia-pagination.js.map +1 -0
  280. package/dist/components/nano-algolia-results.d.ts +11 -0
  281. package/dist/components/nano-algolia-results.js +224 -0
  282. package/dist/components/nano-algolia-results.js.map +1 -0
  283. package/dist/components/nano-algolia.d.ts +11 -0
  284. package/dist/components/nano-algolia.js +11 -0
  285. package/dist/components/nano-algolia.js.map +1 -0
  286. package/dist/components/nano-aspect-ratio.d.ts +11 -0
  287. package/dist/components/nano-aspect-ratio.js +74 -0
  288. package/dist/components/nano-aspect-ratio.js.map +1 -0
  289. package/dist/components/nano-checkbox-group.d.ts +11 -0
  290. package/dist/components/nano-checkbox-group.js +235 -0
  291. package/dist/components/nano-checkbox-group.js.map +1 -0
  292. package/dist/components/nano-checkbox.d.ts +11 -0
  293. package/dist/components/nano-checkbox.js +231 -0
  294. package/dist/components/nano-checkbox.js.map +1 -0
  295. package/dist/components/nano-datalist.d.ts +11 -0
  296. package/dist/components/nano-datalist.js +11 -0
  297. package/dist/components/nano-datalist.js.map +1 -0
  298. package/dist/components/nano-date-input.d.ts +11 -0
  299. package/dist/components/nano-date-input.js +408 -0
  300. package/dist/components/nano-date-input.js.map +1 -0
  301. package/dist/components/nano-date-picker.d.ts +11 -0
  302. package/dist/components/nano-date-picker.js +11 -0
  303. package/dist/components/nano-date-picker.js.map +1 -0
  304. package/dist/components/nano-details.d.ts +11 -0
  305. package/dist/components/nano-details.js +162 -0
  306. package/dist/components/nano-details.js.map +1 -0
  307. package/dist/components/nano-dialog.d.ts +11 -0
  308. package/dist/components/nano-dialog.js +231 -0
  309. package/dist/components/nano-dialog.js.map +1 -0
  310. package/dist/components/nano-drawer.d.ts +11 -0
  311. package/dist/components/nano-drawer.js +217 -0
  312. package/dist/components/nano-drawer.js.map +1 -0
  313. package/dist/components/nano-dropdown.d.ts +11 -0
  314. package/dist/components/nano-dropdown.js +11 -0
  315. package/dist/components/nano-dropdown.js.map +1 -0
  316. package/dist/components/nano-file-upload.d.ts +11 -0
  317. package/dist/components/nano-file-upload.js +421 -0
  318. package/dist/components/nano-file-upload.js.map +1 -0
  319. package/dist/components/nano-global-nav.d.ts +11 -0
  320. package/dist/components/nano-global-nav.js +1221 -0
  321. package/dist/components/nano-global-nav.js.map +1 -0
  322. package/dist/components/nano-global-search-results.d.ts +11 -0
  323. package/dist/components/nano-global-search-results.js +608 -0
  324. package/dist/components/nano-global-search-results.js.map +1 -0
  325. package/dist/components/nano-grid-item.d.ts +11 -0
  326. package/dist/components/nano-grid-item.js +11 -0
  327. package/dist/components/nano-grid-item.js.map +1 -0
  328. package/dist/components/nano-grid.d.ts +11 -0
  329. package/dist/components/nano-grid.js +11 -0
  330. package/dist/components/nano-grid.js.map +1 -0
  331. package/dist/components/nano-hero.d.ts +11 -0
  332. package/dist/components/nano-hero.js +187 -0
  333. package/dist/components/nano-hero.js.map +1 -0
  334. package/dist/components/nano-icon-button.d.ts +11 -0
  335. package/dist/components/nano-icon-button.js +11 -0
  336. package/dist/components/nano-icon-button.js.map +1 -0
  337. package/dist/components/nano-icon.d.ts +11 -0
  338. package/dist/components/nano-icon.js +11 -0
  339. package/dist/components/nano-icon.js.map +1 -0
  340. package/dist/components/nano-img.d.ts +11 -0
  341. package/dist/components/nano-img.js +11 -0
  342. package/dist/components/nano-img.js.map +1 -0
  343. package/dist/components/nano-input.d.ts +11 -0
  344. package/dist/components/nano-input.js +11 -0
  345. package/dist/components/nano-input.js.map +1 -0
  346. package/dist/components/nano-menu-drawer.d.ts +11 -0
  347. package/dist/components/nano-menu-drawer.js +221 -0
  348. package/dist/components/nano-menu-drawer.js.map +1 -0
  349. package/dist/components/nano-menu.d.ts +11 -0
  350. package/dist/components/nano-menu.js +11 -0
  351. package/dist/components/nano-menu.js.map +1 -0
  352. package/dist/components/nano-nav-item.d.ts +11 -0
  353. package/dist/components/nano-nav-item.js +11 -0
  354. package/dist/components/nano-nav-item.js.map +1 -0
  355. package/dist/components/nano-option.d.ts +11 -0
  356. package/dist/components/nano-option.js +11 -0
  357. package/dist/components/nano-option.js.map +1 -0
  358. package/dist/components/nano-range.d.ts +11 -0
  359. package/dist/components/nano-range.js +430 -0
  360. package/dist/components/nano-range.js.map +1 -0
  361. package/dist/components/nano-rating.d.ts +11 -0
  362. package/dist/components/nano-rating.js +240 -0
  363. package/dist/components/nano-rating.js.map +1 -0
  364. package/dist/components/nano-resize-observe.d.ts +11 -0
  365. package/dist/components/nano-resize-observe.js +11 -0
  366. package/dist/components/nano-resize-observe.js.map +1 -0
  367. package/dist/components/nano-select.d.ts +11 -0
  368. package/dist/components/nano-select.js +11 -0
  369. package/dist/components/nano-select.js.map +1 -0
  370. package/dist/components/nano-skeleton.d.ts +11 -0
  371. package/dist/components/nano-skeleton.js +11 -0
  372. package/dist/components/nano-skeleton.js.map +1 -0
  373. package/dist/components/nano-slide.d.ts +11 -0
  374. package/dist/components/nano-slide.js +66 -0
  375. package/dist/components/nano-slide.js.map +1 -0
  376. package/dist/components/nano-slides.d.ts +11 -0
  377. package/dist/components/nano-slides.js +4335 -0
  378. package/dist/components/nano-slides.js.map +1 -0
  379. package/dist/components/nano-spinner.d.ts +11 -0
  380. package/dist/components/nano-spinner.js +11 -0
  381. package/dist/components/nano-spinner.js.map +1 -0
  382. package/dist/components/nano-sticker.d.ts +11 -0
  383. package/dist/components/nano-sticker.js +11 -0
  384. package/dist/components/nano-sticker.js.map +1 -0
  385. package/dist/components/nano-tab-content.d.ts +11 -0
  386. package/dist/components/nano-tab-content.js +49 -0
  387. package/dist/components/nano-tab-content.js.map +1 -0
  388. package/dist/components/nano-tab-group.d.ts +11 -0
  389. package/dist/components/nano-tab-group.js +457 -0
  390. package/dist/components/nano-tab-group.js.map +1 -0
  391. package/dist/components/nano-tab.d.ts +11 -0
  392. package/dist/components/nano-tab.js +86 -0
  393. package/dist/components/nano-tab.js.map +1 -0
  394. package/dist/components/nano-tooltip.d.ts +11 -0
  395. package/dist/components/nano-tooltip.js +11 -0
  396. package/dist/components/nano-tooltip.js.map +1 -0
  397. package/dist/components/nav-item.js +327 -0
  398. package/dist/components/nav-item.js.map +1 -0
  399. package/dist/components/option.js +120 -0
  400. package/dist/components/option.js.map +1 -0
  401. package/dist/{esm/popover-2c7b2326.js → components/popover.js} +10 -1
  402. package/dist/components/popover.js.map +1 -0
  403. package/dist/components/resize-observe.js +162 -0
  404. package/dist/components/resize-observe.js.map +1 -0
  405. package/dist/{esm/scroll-5cd0ab13.js → components/scroll.js} +2 -2
  406. package/dist/components/scroll.js.map +1 -0
  407. package/dist/components/select.js +667 -0
  408. package/dist/components/select.js.map +1 -0
  409. package/dist/components/skeleton.js +43 -0
  410. package/dist/components/skeleton.js.map +1 -0
  411. package/dist/components/slot.js +48 -0
  412. package/dist/components/slot.js.map +1 -0
  413. package/dist/components/spinner.js +49 -0
  414. package/dist/components/spinner.js.map +1 -0
  415. package/dist/components/sticker.js +665 -0
  416. package/dist/components/sticker.js.map +1 -0
  417. package/dist/{esm/tabbable-e21f860a.js → components/tabbable.js} +8 -6
  418. package/dist/components/tabbable.js.map +1 -0
  419. package/dist/components/theme.js +29 -0
  420. package/dist/components/theme.js.map +1 -0
  421. package/dist/components/throttle.js +55 -0
  422. package/dist/components/throttle.js.map +1 -0
  423. package/dist/components/tooltip.js +216 -0
  424. package/dist/components/tooltip.js.map +1 -0
  425. package/dist/custom-elements/index.d.ts +12 -6
  426. package/dist/custom-elements/index.js +1722 -1113
  427. package/dist/custom-elements/index.js.map +1 -1
  428. package/dist/esm/active-element-75b7c8a0.js +19 -0
  429. package/dist/esm/active-element-75b7c8a0.js.map +1 -0
  430. package/dist/esm/{algoliasearch.umd-8e5aff52.js → algoliasearch.umd-adbc4aa5.js} +3 -3
  431. package/dist/esm/{algoliasearch.umd-8e5aff52.js.map → algoliasearch.umd-adbc4aa5.js.map} +1 -1
  432. package/dist/esm/dom-faa69d29.js +75 -0
  433. package/dist/esm/dom-faa69d29.js.map +1 -0
  434. package/dist/esm/form-control-67eeb108.js +77 -0
  435. package/dist/esm/form-control-67eeb108.js.map +1 -0
  436. package/dist/esm/index-5f8d16e7.js +12 -12
  437. package/dist/esm/index-bf53664b.js +74 -0
  438. package/dist/esm/{index-f41ae118.js.map → index-bf53664b.js.map} +1 -1
  439. package/dist/esm/index.js +4 -4
  440. package/dist/esm/index.js.map +1 -1
  441. package/dist/esm/loader.js +1 -1
  442. package/dist/esm/{modal-eb0a9bb3.js → modal-215df46b.js} +2 -2
  443. package/dist/esm/{modal-eb0a9bb3.js.map → modal-215df46b.js.map} +1 -1
  444. package/dist/esm/nano-accordion.entry.js +2 -4
  445. package/dist/esm/nano-accordion.entry.js.map +1 -1
  446. package/dist/esm/nano-alert.entry.js +6 -6
  447. package/dist/esm/nano-alert.entry.js.map +1 -1
  448. package/dist/esm/nano-algolia-filter.entry.js +1 -1
  449. package/dist/esm/nano-algolia-filter.entry.js.map +1 -1
  450. package/dist/esm/nano-algolia-input.entry.js +1 -1
  451. package/dist/esm/nano-algolia.entry.js +9 -5
  452. package/dist/esm/nano-algolia.entry.js.map +1 -1
  453. package/dist/esm/nano-aspect-ratio.entry.js +1 -1
  454. package/dist/esm/nano-aspect-ratio.entry.js.map +1 -1
  455. package/dist/esm/nano-checkbox-group.entry.js +4 -1
  456. package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
  457. package/dist/esm/nano-checkbox.entry.js +1 -1
  458. package/dist/esm/nano-checkbox.entry.js.map +1 -1
  459. package/dist/esm/nano-components.js +1 -1
  460. package/dist/esm/nano-datalist_3.entry.js +770 -0
  461. package/dist/esm/nano-datalist_3.entry.js.map +1 -0
  462. package/dist/esm/nano-date-input.entry.js +9 -5
  463. package/dist/esm/nano-date-input.entry.js.map +1 -1
  464. package/dist/esm/{nano-date-picker_2.entry.js → nano-date-picker.entry.js} +3 -274
  465. package/dist/esm/nano-date-picker.entry.js.map +1 -0
  466. package/dist/esm/nano-details.entry.js +2 -2
  467. package/dist/esm/nano-details.entry.js.map +1 -1
  468. package/dist/esm/nano-dialog.entry.js +5 -5
  469. package/dist/esm/nano-dialog.entry.js.map +1 -1
  470. package/dist/esm/nano-drawer.entry.js +5 -5
  471. package/dist/esm/nano-drawer.entry.js.map +1 -1
  472. package/dist/esm/nano-dropdown.entry.js +303 -0
  473. package/dist/esm/nano-dropdown.entry.js.map +1 -0
  474. package/dist/esm/nano-file-upload.entry.js +1 -1
  475. package/dist/esm/nano-file-upload.entry.js.map +1 -1
  476. package/dist/esm/nano-global-nav.entry.js +19 -24
  477. package/dist/esm/nano-global-nav.entry.js.map +1 -1
  478. package/dist/esm/nano-global-search-results.entry.js +200 -115
  479. package/dist/esm/nano-global-search-results.entry.js.map +1 -1
  480. package/dist/esm/nano-grid_3.entry.js +16 -8
  481. package/dist/esm/nano-grid_3.entry.js.map +1 -1
  482. package/dist/esm/nano-hero.entry.js +14 -6
  483. package/dist/esm/nano-hero.entry.js.map +1 -1
  484. package/dist/esm/nano-icon-button.entry.js +2 -2
  485. package/dist/esm/nano-icon-button.entry.js.map +1 -1
  486. package/dist/esm/nano-icon.entry.js +1 -1
  487. package/dist/esm/nano-icon.entry.js.map +1 -1
  488. package/dist/esm/nano-input.entry.js +80 -75
  489. package/dist/esm/nano-input.entry.js.map +1 -1
  490. package/dist/esm/nano-menu-drawer.entry.js +2 -2
  491. package/dist/esm/nano-menu-drawer.entry.js.map +1 -1
  492. package/dist/esm/nano-nav-item_2.entry.js +284 -533
  493. package/dist/esm/nano-nav-item_2.entry.js.map +1 -1
  494. package/dist/esm/nano-range.entry.js +2 -2
  495. package/dist/esm/nano-range.entry.js.map +1 -1
  496. package/dist/esm/nano-rating.entry.js +2 -2
  497. package/dist/esm/nano-rating.entry.js.map +1 -1
  498. package/dist/esm/nano-resize-observe_2.entry.js +1 -1
  499. package/dist/esm/nano-resize-observe_2.entry.js.map +1 -1
  500. package/dist/esm/nano-slide.entry.js +1 -1
  501. package/dist/esm/nano-slide.entry.js.map +1 -1
  502. package/dist/esm/nano-slides.entry.js +1 -1
  503. package/dist/esm/nano-slides.entry.js.map +1 -1
  504. package/dist/esm/nano-spinner.entry.js +1 -1
  505. package/dist/esm/nano-spinner.entry.js.map +1 -1
  506. package/dist/esm/nano-sticker.entry.js +3 -3
  507. package/dist/esm/nano-sticker.entry.js.map +1 -1
  508. package/dist/esm/nano-tab-content.entry.js +2 -2
  509. package/dist/esm/nano-tab-content.entry.js.map +1 -1
  510. package/dist/esm/nano-tab-group.entry.js +66 -33
  511. package/dist/esm/nano-tab-group.entry.js.map +1 -1
  512. package/dist/esm/nano-tab.entry.js +10 -3
  513. package/dist/esm/nano-tab.entry.js.map +1 -1
  514. package/dist/esm/nano-tooltip.entry.js +2 -2
  515. package/dist/esm/nano-tooltip.entry.js.map +1 -1
  516. package/dist/esm/popover-db86a392.js +1893 -0
  517. package/dist/esm/popover-db86a392.js.map +1 -0
  518. package/dist/esm/scroll-881feb46.js +76 -0
  519. package/dist/esm/{scroll-5cd0ab13.js.map → scroll-881feb46.js.map} +1 -1
  520. package/dist/esm/tabbable-614f515e.js +94 -0
  521. package/dist/esm/tabbable-614f515e.js.map +1 -0
  522. package/dist/esm-es5/active-element-75b7c8a0.js +5 -0
  523. package/dist/esm-es5/active-element-75b7c8a0.js.map +1 -0
  524. package/dist/esm-es5/{algoliasearch.umd-8e5aff52.js → algoliasearch.umd-adbc4aa5.js} +3 -3
  525. package/dist/esm-es5/{algoliasearch.umd-8e5aff52.js.map → algoliasearch.umd-adbc4aa5.js.map} +1 -1
  526. package/dist/esm-es5/dom-faa69d29.js +5 -0
  527. package/dist/esm-es5/dom-faa69d29.js.map +1 -0
  528. package/dist/esm-es5/form-control-67eeb108.js +5 -0
  529. package/dist/esm-es5/form-control-67eeb108.js.map +1 -0
  530. package/dist/esm-es5/index-5f8d16e7.js +1 -1
  531. package/dist/esm-es5/index-bf53664b.js +5 -0
  532. package/dist/esm-es5/index-bf53664b.js.map +1 -0
  533. package/dist/esm-es5/index.js +1 -1
  534. package/dist/esm-es5/index.js.map +1 -1
  535. package/dist/esm-es5/loader.js +1 -1
  536. package/dist/esm-es5/loader.js.map +1 -1
  537. package/dist/esm-es5/{modal-eb0a9bb3.js → modal-215df46b.js} +2 -2
  538. package/dist/esm-es5/{modal-eb0a9bb3.js.map → modal-215df46b.js.map} +0 -0
  539. package/dist/esm-es5/nano-accordion.entry.js +1 -1
  540. package/dist/esm-es5/nano-accordion.entry.js.map +1 -1
  541. package/dist/esm-es5/nano-alert.entry.js +1 -1
  542. package/dist/esm-es5/nano-alert.entry.js.map +1 -1
  543. package/dist/esm-es5/nano-algolia-filter.entry.js +1 -1
  544. package/dist/esm-es5/nano-algolia-filter.entry.js.map +1 -1
  545. package/dist/esm-es5/nano-algolia-input.entry.js +1 -1
  546. package/dist/esm-es5/nano-algolia.entry.js +1 -1
  547. package/dist/esm-es5/nano-algolia.entry.js.map +1 -1
  548. package/dist/esm-es5/nano-aspect-ratio.entry.js +1 -1
  549. package/dist/esm-es5/nano-aspect-ratio.entry.js.map +1 -1
  550. package/dist/esm-es5/nano-checkbox-group.entry.js +1 -1
  551. package/dist/esm-es5/nano-checkbox-group.entry.js.map +1 -1
  552. package/dist/esm-es5/nano-checkbox.entry.js +1 -1
  553. package/dist/esm-es5/nano-checkbox.entry.js.map +1 -1
  554. package/dist/esm-es5/nano-components.js +1 -1
  555. package/dist/esm-es5/nano-components.js.map +1 -1
  556. package/dist/esm-es5/nano-datalist_3.entry.js +5 -0
  557. package/dist/esm-es5/nano-datalist_3.entry.js.map +1 -0
  558. package/dist/esm-es5/nano-date-input.entry.js +1 -1
  559. package/dist/esm-es5/nano-date-input.entry.js.map +1 -1
  560. package/dist/esm-es5/nano-date-picker.entry.js +5 -0
  561. package/dist/esm-es5/nano-date-picker.entry.js.map +1 -0
  562. package/dist/esm-es5/nano-details.entry.js +1 -1
  563. package/dist/esm-es5/nano-details.entry.js.map +1 -1
  564. package/dist/esm-es5/nano-dialog.entry.js +1 -1
  565. package/dist/esm-es5/nano-dialog.entry.js.map +1 -1
  566. package/dist/esm-es5/nano-drawer.entry.js +1 -1
  567. package/dist/esm-es5/nano-drawer.entry.js.map +1 -1
  568. package/dist/esm-es5/nano-dropdown.entry.js +5 -0
  569. package/dist/esm-es5/nano-dropdown.entry.js.map +1 -0
  570. package/dist/esm-es5/nano-file-upload.entry.js +1 -1
  571. package/dist/esm-es5/nano-file-upload.entry.js.map +1 -1
  572. package/dist/esm-es5/nano-global-nav.entry.js +1 -1
  573. package/dist/esm-es5/nano-global-nav.entry.js.map +1 -1
  574. package/dist/esm-es5/nano-global-search-results.entry.js +2 -2
  575. package/dist/esm-es5/nano-global-search-results.entry.js.map +1 -1
  576. package/dist/esm-es5/nano-grid_3.entry.js +1 -1
  577. package/dist/esm-es5/nano-grid_3.entry.js.map +1 -1
  578. package/dist/esm-es5/nano-hero.entry.js +1 -1
  579. package/dist/esm-es5/nano-hero.entry.js.map +1 -1
  580. package/dist/esm-es5/nano-icon-button.entry.js +1 -1
  581. package/dist/esm-es5/nano-icon-button.entry.js.map +1 -1
  582. package/dist/esm-es5/nano-icon.entry.js +1 -1
  583. package/dist/esm-es5/nano-icon.entry.js.map +1 -1
  584. package/dist/esm-es5/nano-input.entry.js +2 -2
  585. package/dist/esm-es5/nano-input.entry.js.map +1 -1
  586. package/dist/esm-es5/nano-menu-drawer.entry.js +1 -1
  587. package/dist/esm-es5/nano-menu-drawer.entry.js.map +1 -1
  588. package/dist/esm-es5/nano-nav-item_2.entry.js +1 -1
  589. package/dist/esm-es5/nano-nav-item_2.entry.js.map +1 -1
  590. package/dist/esm-es5/nano-range.entry.js +1 -1
  591. package/dist/esm-es5/nano-range.entry.js.map +1 -1
  592. package/dist/esm-es5/nano-rating.entry.js +1 -1
  593. package/dist/esm-es5/nano-rating.entry.js.map +1 -1
  594. package/dist/esm-es5/nano-resize-observe_2.entry.js +2 -2
  595. package/dist/esm-es5/nano-resize-observe_2.entry.js.map +1 -1
  596. package/dist/esm-es5/nano-slide.entry.js +1 -1
  597. package/dist/esm-es5/nano-slide.entry.js.map +1 -1
  598. package/dist/esm-es5/nano-slides.entry.js +1 -1
  599. package/dist/esm-es5/nano-slides.entry.js.map +1 -1
  600. package/dist/esm-es5/nano-spinner.entry.js +1 -1
  601. package/dist/esm-es5/nano-spinner.entry.js.map +1 -1
  602. package/dist/esm-es5/nano-sticker.entry.js +1 -1
  603. package/dist/esm-es5/nano-sticker.entry.js.map +1 -1
  604. package/dist/esm-es5/nano-tab-content.entry.js +1 -1
  605. package/dist/esm-es5/nano-tab-content.entry.js.map +1 -1
  606. package/dist/esm-es5/nano-tab-group.entry.js +2 -2
  607. package/dist/esm-es5/nano-tab-group.entry.js.map +1 -1
  608. package/dist/esm-es5/nano-tab.entry.js +2 -2
  609. package/dist/esm-es5/nano-tab.entry.js.map +1 -1
  610. package/dist/esm-es5/nano-tooltip.entry.js +1 -1
  611. package/dist/esm-es5/nano-tooltip.entry.js.map +1 -1
  612. package/dist/esm-es5/{popover-2c7b2326.js → popover-db86a392.js} +2 -2
  613. package/dist/esm-es5/popover-db86a392.js.map +1 -0
  614. package/dist/esm-es5/{scroll-5cd0ab13.js → scroll-881feb46.js} +2 -2
  615. package/dist/esm-es5/{scroll-5cd0ab13.js.map → scroll-881feb46.js.map} +0 -0
  616. package/dist/esm-es5/tabbable-614f515e.js +5 -0
  617. package/dist/esm-es5/tabbable-614f515e.js.map +1 -0
  618. package/dist/nano-components/index.esm.js +1 -1
  619. package/dist/nano-components/index.esm.js.map +1 -1
  620. package/dist/nano-components/nano-components.css +1 -1
  621. package/dist/nano-components/nano-components.esm.js +1 -1
  622. package/dist/nano-components/nano-components.esm.js.map +1 -1
  623. package/dist/nano-components/{p-2f21a443.system.entry.js → p-033296c7.system.entry.js} +2 -2
  624. package/dist/nano-components/{p-2f21a443.system.entry.js.map → p-033296c7.system.entry.js.map} +1 -1
  625. package/dist/nano-components/p-040b6cda.entry.js +5 -0
  626. package/dist/nano-components/{p-61565b5a.entry.js.map → p-040b6cda.entry.js.map} +1 -1
  627. package/dist/nano-components/p-05c7bde1.system.entry.js +5 -0
  628. package/dist/nano-components/{p-30df44d9.system.entry.js.map → p-05c7bde1.system.entry.js.map} +1 -1
  629. package/dist/nano-components/p-07bdf44d.entry.js +5 -0
  630. package/dist/nano-components/{p-88bcf55b.entry.js.map → p-07bdf44d.entry.js.map} +1 -1
  631. package/dist/nano-components/p-09066701.system.entry.js +5 -0
  632. package/dist/nano-components/p-09066701.system.entry.js.map +1 -0
  633. package/dist/nano-components/p-090f22a9.system.entry.js +5 -0
  634. package/dist/nano-components/{p-854df906.system.entry.js.map → p-090f22a9.system.entry.js.map} +1 -1
  635. package/dist/nano-components/p-096682d9.system.js +1 -1
  636. package/dist/nano-components/p-096682d9.system.js.map +1 -1
  637. package/dist/nano-components/p-09d2d944.system.js +5 -0
  638. package/dist/nano-components/p-09d2d944.system.js.map +1 -0
  639. package/dist/nano-components/p-14402794.entry.js +5 -0
  640. package/dist/nano-components/p-14402794.entry.js.map +1 -0
  641. package/dist/nano-components/{p-21c2a9a5.system.entry.js → p-173bae15.system.entry.js} +2 -2
  642. package/dist/nano-components/{p-21c2a9a5.system.entry.js.map → p-173bae15.system.entry.js.map} +1 -1
  643. package/dist/nano-components/p-17ebff74.system.entry.js +5 -0
  644. package/dist/nano-components/p-17ebff74.system.entry.js.map +1 -0
  645. package/dist/nano-components/{p-731935b1.js → p-1805d59a.js} +2 -2
  646. package/dist/nano-components/{p-731935b1.js.map → p-1805d59a.js.map} +0 -0
  647. package/dist/nano-components/p-1a293bd0.entry.js +5 -0
  648. package/dist/nano-components/{p-8b7f8ef4.entry.js.map → p-1a293bd0.entry.js.map} +1 -1
  649. package/dist/nano-components/p-1c216ca4.system.js +5 -0
  650. package/dist/{esm-es5/index-f41ae118.js.map → nano-components/p-1c216ca4.system.js.map} +1 -1
  651. package/dist/nano-components/p-1d13dbdf.system.js +5 -0
  652. package/dist/nano-components/p-1d13dbdf.system.js.map +1 -0
  653. package/dist/nano-components/p-1e974cad.entry.js +5 -0
  654. package/dist/nano-components/{p-7e60c331.entry.js.map → p-1e974cad.entry.js.map} +1 -1
  655. package/dist/nano-components/p-20387cde.system.entry.js +5 -0
  656. package/dist/nano-components/{p-91778977.system.entry.js.map → p-20387cde.system.entry.js.map} +1 -1
  657. package/dist/nano-components/p-20db18f3.entry.js +5 -0
  658. package/dist/nano-components/{p-a9dd7cf9.entry.js.map → p-20db18f3.entry.js.map} +1 -1
  659. package/dist/nano-components/p-22884654.system.entry.js +5 -0
  660. package/dist/nano-components/{p-3d0fbd0e.system.entry.js.map → p-22884654.system.entry.js.map} +1 -1
  661. package/dist/nano-components/p-239cc7ff.system.entry.js +5 -0
  662. package/dist/nano-components/p-239cc7ff.system.entry.js.map +1 -0
  663. package/dist/nano-components/p-2559e9c1.entry.js +5 -0
  664. package/dist/nano-components/p-2559e9c1.entry.js.map +1 -0
  665. package/dist/nano-components/p-289aa03f.js +5 -0
  666. package/dist/nano-components/p-289aa03f.js.map +1 -0
  667. package/dist/nano-components/p-2e6c55e2.entry.js +5 -0
  668. package/dist/nano-components/{p-6f3d20fe.entry.js.map → p-2e6c55e2.entry.js.map} +1 -1
  669. package/dist/nano-components/{p-8757b4eb.js → p-305abcb0.js} +3 -3
  670. package/dist/nano-components/{p-8757b4eb.js.map → p-305abcb0.js.map} +1 -1
  671. package/dist/nano-components/{p-60c9b580.system.js → p-3258c568.system.js} +2 -2
  672. package/dist/nano-components/p-3258c568.system.js.map +1 -0
  673. package/dist/nano-components/p-3456db01.entry.js +5 -0
  674. package/dist/nano-components/p-3456db01.entry.js.map +1 -0
  675. package/dist/nano-components/p-346588cc.entry.js +5 -0
  676. package/dist/nano-components/p-346588cc.entry.js.map +1 -0
  677. package/dist/nano-components/p-394c3c19.entry.js +5 -0
  678. package/dist/nano-components/{p-217f71aa.entry.js.map → p-394c3c19.entry.js.map} +1 -1
  679. package/dist/nano-components/p-3a13948a.system.entry.js +5 -0
  680. package/dist/nano-components/p-3a13948a.system.entry.js.map +1 -0
  681. package/dist/nano-components/p-3aa1d07d.entry.js +5 -0
  682. package/dist/nano-components/{p-6a1c69d3.entry.js.map → p-3aa1d07d.entry.js.map} +1 -1
  683. package/dist/nano-components/p-3ad1d5aa.system.entry.js +5 -0
  684. package/dist/nano-components/p-3ad1d5aa.system.entry.js.map +1 -0
  685. package/dist/nano-components/p-3ef30ded.system.entry.js +5 -0
  686. package/dist/nano-components/{p-9bf4a6e0.system.entry.js.map → p-3ef30ded.system.entry.js.map} +1 -1
  687. package/dist/nano-components/p-4429caac.system.entry.js +5 -0
  688. package/dist/nano-components/p-4429caac.system.entry.js.map +1 -0
  689. package/dist/nano-components/p-4535e3bb.entry.js +5 -0
  690. package/dist/nano-components/{p-143bca0d.entry.js.map → p-4535e3bb.entry.js.map} +1 -1
  691. package/dist/nano-components/p-462ad4f1.entry.js +5 -0
  692. package/dist/nano-components/p-462ad4f1.entry.js.map +1 -0
  693. package/dist/nano-components/p-5066e563.system.entry.js +5 -0
  694. package/dist/nano-components/{p-006f2fd3.system.entry.js.map → p-5066e563.system.entry.js.map} +1 -1
  695. package/dist/nano-components/p-52ab579e.system.entry.js +5 -0
  696. package/dist/nano-components/p-52ab579e.system.entry.js.map +1 -0
  697. package/dist/nano-components/p-531d5275.system.entry.js +5 -0
  698. package/dist/nano-components/{p-b79dc23a.system.entry.js.map → p-531d5275.system.entry.js.map} +1 -1
  699. package/dist/nano-components/p-55535a0c.system.entry.js +5 -0
  700. package/dist/nano-components/p-55535a0c.system.entry.js.map +1 -0
  701. package/dist/nano-components/p-5653961d.system.entry.js +5 -0
  702. package/dist/nano-components/{p-18f49ebf.system.entry.js.map → p-5653961d.system.entry.js.map} +1 -1
  703. package/dist/nano-components/p-56ba0d63.entry.js +5 -0
  704. package/dist/nano-components/p-56ba0d63.entry.js.map +1 -0
  705. package/dist/nano-components/p-593de29b.system.entry.js +5 -0
  706. package/dist/nano-components/{p-76b13c27.system.entry.js.map → p-593de29b.system.entry.js.map} +1 -1
  707. package/dist/nano-components/{p-8a608e6d.entry.js → p-5e7c7d3d.entry.js} +2 -2
  708. package/dist/nano-components/{p-8a608e6d.entry.js.map → p-5e7c7d3d.entry.js.map} +1 -1
  709. package/dist/nano-components/p-672e5547.js +5 -0
  710. package/dist/nano-components/p-672e5547.js.map +1 -0
  711. package/dist/nano-components/p-69439aa1.system.entry.js +5 -0
  712. package/dist/nano-components/p-69439aa1.system.entry.js.map +1 -0
  713. package/dist/nano-components/p-6ade3290.entry.js +5 -0
  714. package/dist/nano-components/{p-1e03f9bf.entry.js.map → p-6ade3290.entry.js.map} +1 -1
  715. package/dist/nano-components/p-70dec19f.entry.js +5 -0
  716. package/dist/nano-components/{p-d0e9b177.entry.js.map → p-70dec19f.entry.js.map} +1 -1
  717. package/dist/nano-components/p-7232c046.system.entry.js +5 -0
  718. package/dist/nano-components/{p-92b3f99b.system.entry.js.map → p-7232c046.system.entry.js.map} +1 -1
  719. package/dist/nano-components/p-730f60ea.entry.js +5 -0
  720. package/dist/nano-components/{p-78cf9d39.entry.js.map → p-730f60ea.entry.js.map} +1 -1
  721. package/dist/nano-components/{p-a16651a6.system.js → p-7319fa52.system.js} +3 -3
  722. package/dist/nano-components/{p-a16651a6.system.js.map → p-7319fa52.system.js.map} +1 -1
  723. package/dist/nano-components/p-74a7fc4f.js +5 -0
  724. package/dist/nano-components/p-74a7fc4f.js.map +1 -0
  725. package/dist/nano-components/{p-981cc614.entry.js → p-7a9aeeb5.entry.js} +2 -2
  726. package/dist/nano-components/{p-981cc614.entry.js.map → p-7a9aeeb5.entry.js.map} +0 -0
  727. package/dist/nano-components/{p-d31761c8.system.js → p-7be6b7f3.system.js} +2 -2
  728. package/dist/nano-components/p-7be6b7f3.system.js.map +1 -0
  729. package/dist/nano-components/p-7d2e2685.entry.js +5 -0
  730. package/dist/nano-components/p-7d2e2685.entry.js.map +1 -0
  731. package/dist/nano-components/p-820d9e23.system.entry.js +5 -0
  732. package/dist/nano-components/p-820d9e23.system.entry.js.map +1 -0
  733. package/dist/nano-components/p-8278c5d2.system.entry.js +5 -0
  734. package/dist/nano-components/{p-badf69ee.system.entry.js.map → p-8278c5d2.system.entry.js.map} +1 -1
  735. package/dist/nano-components/p-82f4b071.entry.js +5 -0
  736. package/dist/nano-components/p-82f4b071.entry.js.map +1 -0
  737. package/dist/nano-components/p-88f17c86.system.entry.js +5 -0
  738. package/dist/nano-components/p-88f17c86.system.entry.js.map +1 -0
  739. package/dist/nano-components/p-8a8f893b.system.entry.js +5 -0
  740. package/dist/nano-components/{p-cc668975.system.entry.js.map → p-8a8f893b.system.entry.js.map} +1 -1
  741. package/dist/nano-components/p-93448bcd.system.entry.js +5 -0
  742. package/dist/nano-components/{p-02e82e14.system.entry.js.map → p-93448bcd.system.entry.js.map} +1 -1
  743. package/dist/nano-components/p-94593617.system.entry.js +5 -0
  744. package/dist/nano-components/{p-2442eda0.system.entry.js.map → p-94593617.system.entry.js.map} +1 -1
  745. package/dist/nano-components/{p-56113dd3.js → p-9a385481.js} +2 -2
  746. package/dist/nano-components/p-9a385481.js.map +1 -0
  747. package/dist/nano-components/{p-8134c14e.system.js → p-9de508a5.system.js} +2 -2
  748. package/dist/nano-components/p-9de508a5.system.js.map +1 -0
  749. package/dist/nano-components/p-a315ed2c.entry.js +5 -0
  750. package/dist/nano-components/{p-13801651.entry.js.map → p-a315ed2c.entry.js.map} +1 -1
  751. package/dist/nano-components/{p-18411914.system.js → p-b370e3ef.system.js} +2 -2
  752. package/dist/nano-components/{p-18411914.system.js.map → p-b370e3ef.system.js.map} +0 -0
  753. package/dist/nano-components/p-b59d2bd5.entry.js +5 -0
  754. package/dist/nano-components/p-b59d2bd5.entry.js.map +1 -0
  755. package/dist/nano-components/p-b619500f.js +5 -0
  756. package/dist/nano-components/p-b619500f.js.map +1 -0
  757. package/dist/nano-components/{p-23f65b34.entry.js → p-ba13bb56.entry.js} +2 -2
  758. package/dist/nano-components/{p-23f65b34.entry.js.map → p-ba13bb56.entry.js.map} +1 -1
  759. package/dist/nano-components/p-c0ddb4c3.entry.js +5 -0
  760. package/dist/nano-components/{p-78569d39.entry.js.map → p-c0ddb4c3.entry.js.map} +1 -1
  761. package/dist/nano-components/p-c475b57f.system.entry.js +5 -0
  762. package/dist/nano-components/p-c475b57f.system.entry.js.map +1 -0
  763. package/dist/nano-components/{p-bfc12324.system.entry.js → p-c7c50a7d.system.entry.js} +2 -2
  764. package/dist/nano-components/{p-bfc12324.system.entry.js.map → p-c7c50a7d.system.entry.js.map} +0 -0
  765. package/dist/nano-components/p-c9c1a345.system.entry.js +5 -0
  766. package/dist/nano-components/{p-38a3e791.system.entry.js.map → p-c9c1a345.system.entry.js.map} +1 -1
  767. package/dist/nano-components/{p-8c8963f6.js → p-cb79d1ec.js} +2 -2
  768. package/dist/nano-components/{p-8c8963f6.js.map → p-cb79d1ec.js.map} +0 -0
  769. package/dist/nano-components/p-cce0806e.entry.js +5 -0
  770. package/dist/nano-components/p-cce0806e.entry.js.map +1 -0
  771. package/dist/nano-components/p-d6569144.entry.js +5 -0
  772. package/dist/nano-components/{p-c7b7f7ab.entry.js.map → p-d6569144.entry.js.map} +1 -1
  773. package/dist/nano-components/{p-2d1a856e.system.js → p-d84ef175.system.js} +2 -2
  774. package/dist/nano-components/{p-2d1a856e.system.js.map → p-d84ef175.system.js.map} +0 -0
  775. package/dist/nano-components/p-d857f3ed.entry.js +5 -0
  776. package/dist/nano-components/p-d857f3ed.entry.js.map +1 -0
  777. package/dist/nano-components/p-d9c7909e.js +5 -0
  778. package/dist/nano-components/p-d9c7909e.js.map +1 -0
  779. package/dist/nano-components/p-dfe50fff.entry.js +5 -0
  780. package/dist/nano-components/p-dfe50fff.entry.js.map +1 -0
  781. package/dist/nano-components/p-e11bd40d.entry.js +5 -0
  782. package/dist/nano-components/{p-a21d90aa.entry.js.map → p-e11bd40d.entry.js.map} +1 -1
  783. package/dist/nano-components/p-e15be516.system.entry.js +5 -0
  784. package/dist/nano-components/p-e15be516.system.entry.js.map +1 -0
  785. package/dist/nano-components/p-e35eac75.entry.js +5 -0
  786. package/dist/nano-components/p-e35eac75.entry.js.map +1 -0
  787. package/dist/nano-components/p-e562bffd.entry.js +5 -0
  788. package/dist/nano-components/p-e562bffd.entry.js.map +1 -0
  789. package/dist/nano-components/p-e64daa92.entry.js +5 -0
  790. package/dist/nano-components/p-e64daa92.entry.js.map +1 -0
  791. package/dist/nano-components/p-e6f41b97.entry.js +5 -0
  792. package/dist/nano-components/p-e6f41b97.entry.js.map +1 -0
  793. package/dist/nano-components/p-e6f8f9f7.system.entry.js +5 -0
  794. package/dist/nano-components/p-e6f8f9f7.system.entry.js.map +1 -0
  795. package/dist/nano-components/p-ea5eb591.system.js +5 -0
  796. package/dist/nano-components/p-ea5eb591.system.js.map +1 -0
  797. package/dist/nano-components/p-ef4e0912.system.entry.js +5 -0
  798. package/dist/nano-components/{p-2aed806d.system.entry.js.map → p-ef4e0912.system.entry.js.map} +1 -1
  799. package/dist/nano-components/p-f2e7d2f9.system.entry.js +5 -0
  800. package/dist/nano-components/p-f2e7d2f9.system.entry.js.map +1 -0
  801. package/dist/nano-components/p-f3bf942d.entry.js +5 -0
  802. package/dist/nano-components/p-f3bf942d.entry.js.map +1 -0
  803. package/dist/nano-components/p-f53989c3.system.entry.js +5 -0
  804. package/dist/nano-components/{p-6621e4f1.system.entry.js.map → p-f53989c3.system.entry.js.map} +1 -1
  805. package/dist/nano-components/p-f84998c9.system.entry.js +5 -0
  806. package/dist/nano-components/p-f84998c9.system.entry.js.map +1 -0
  807. package/dist/themes/nanopore.css +1 -1
  808. package/dist/themes/nanopore.css.map +1 -1
  809. package/dist/types/components/accordion/accordion.d.ts +0 -1
  810. package/dist/types/components/checkbox/checkbox-group.d.ts +1 -0
  811. package/dist/types/components/datalist/datalist.d.ts +98 -0
  812. package/dist/types/components/date-input/date-input.d.ts +2 -0
  813. package/dist/types/components/dialog/dialog.helpers.d.ts +2 -2
  814. package/dist/types/components/dropdown/dropdown.d.ts +8 -4
  815. package/dist/types/components/form-control/form-control.d.ts +35 -0
  816. package/dist/types/components/global-search-results/global-search-results.d.ts +1 -0
  817. package/dist/types/components/grid/grid.d.ts +7 -1
  818. package/dist/types/components/hero/hero.d.ts +2 -0
  819. package/dist/types/components/input/input.d.ts +13 -9
  820. package/dist/types/components/menu/menu.d.ts +22 -8
  821. package/dist/types/components/option/option-interface.d.ts +7 -0
  822. package/dist/types/components/option/option.d.ts +45 -0
  823. package/dist/types/components/select/select.d.ts +43 -49
  824. package/dist/types/components/tabs/tab-group.d.ts +26 -6
  825. package/dist/types/components/tabs/tab.d.ts +6 -1
  826. package/dist/types/components.d.ts +241 -70
  827. package/dist/types/interface.d.ts +1 -0
  828. package/dist/types/utils/active-element.d.ts +1 -0
  829. package/dist/types/utils/dom.d.ts +9 -1
  830. package/dist/types/utils/index.d.ts +2 -1
  831. package/dist/types/utils/tabbable.d.ts +2 -2
  832. package/dist/types/utils/testing/index.d.ts +3 -2
  833. package/docs-json.json +1223 -261
  834. package/docs-vscode.json +102 -33
  835. package/package.json +5 -5
  836. package/dist/cjs/dom-5f3fae1a.js.map +0 -1
  837. package/dist/cjs/index-117f36a4.js.map +0 -1
  838. package/dist/cjs/nano-date-picker_2.cjs.entry.js.map +0 -1
  839. package/dist/cjs/nano-menu.cjs.entry.js +0 -156
  840. package/dist/cjs/nano-menu.cjs.entry.js.map +0 -1
  841. package/dist/cjs/nano-select-option.cjs.entry.js +0 -43
  842. package/dist/cjs/nano-select-option.cjs.entry.js.map +0 -1
  843. package/dist/cjs/popover-d033efa2.js.map +0 -1
  844. package/dist/cjs/tabbable-615c30e1.js.map +0 -1
  845. package/dist/collection/components/select/select-option.css +0 -15
  846. package/dist/collection/components/select/select-option.js +0 -127
  847. package/dist/collection/components/select/select-option.js.map +0 -1
  848. package/dist/esm/dom-a791b223.js.map +0 -1
  849. package/dist/esm/nano-date-picker_2.entry.js.map +0 -1
  850. package/dist/esm/nano-menu.entry.js +0 -152
  851. package/dist/esm/nano-menu.entry.js.map +0 -1
  852. package/dist/esm/nano-select-option.entry.js +0 -39
  853. package/dist/esm/nano-select-option.entry.js.map +0 -1
  854. package/dist/esm/popover-2c7b2326.js.map +0 -1
  855. package/dist/esm/tabbable-e21f860a.js.map +0 -1
  856. package/dist/esm-es5/dom-a791b223.js +0 -5
  857. package/dist/esm-es5/dom-a791b223.js.map +0 -1
  858. package/dist/esm-es5/index-f41ae118.js +0 -5
  859. package/dist/esm-es5/nano-date-picker_2.entry.js +0 -5
  860. package/dist/esm-es5/nano-date-picker_2.entry.js.map +0 -1
  861. package/dist/esm-es5/nano-menu.entry.js +0 -5
  862. package/dist/esm-es5/nano-menu.entry.js.map +0 -1
  863. package/dist/esm-es5/nano-select-option.entry.js +0 -5
  864. package/dist/esm-es5/nano-select-option.entry.js.map +0 -1
  865. package/dist/esm-es5/popover-2c7b2326.js.map +0 -1
  866. package/dist/esm-es5/tabbable-e21f860a.js +0 -5
  867. package/dist/esm-es5/tabbable-e21f860a.js.map +0 -1
  868. package/dist/nano-components/p-006f2fd3.system.entry.js +0 -5
  869. package/dist/nano-components/p-02e82e14.system.entry.js +0 -5
  870. package/dist/nano-components/p-05a8014a.entry.js +0 -5
  871. package/dist/nano-components/p-05a8014a.entry.js.map +0 -1
  872. package/dist/nano-components/p-13801651.entry.js +0 -5
  873. package/dist/nano-components/p-13fa75fc.entry.js +0 -5
  874. package/dist/nano-components/p-13fa75fc.entry.js.map +0 -1
  875. package/dist/nano-components/p-143bca0d.entry.js +0 -5
  876. package/dist/nano-components/p-18f49ebf.system.entry.js +0 -5
  877. package/dist/nano-components/p-19428228.system.entry.js +0 -5
  878. package/dist/nano-components/p-19428228.system.entry.js.map +0 -1
  879. package/dist/nano-components/p-1e03f9bf.entry.js +0 -5
  880. package/dist/nano-components/p-217f71aa.entry.js +0 -5
  881. package/dist/nano-components/p-2442eda0.system.entry.js +0 -5
  882. package/dist/nano-components/p-2946bd70.system.entry.js +0 -5
  883. package/dist/nano-components/p-2946bd70.system.entry.js.map +0 -1
  884. package/dist/nano-components/p-2aed806d.system.entry.js +0 -5
  885. package/dist/nano-components/p-30df44d9.system.entry.js +0 -5
  886. package/dist/nano-components/p-38a3e791.system.entry.js +0 -5
  887. package/dist/nano-components/p-3a49ceab.entry.js +0 -5
  888. package/dist/nano-components/p-3a49ceab.entry.js.map +0 -1
  889. package/dist/nano-components/p-3d0fbd0e.system.entry.js +0 -5
  890. package/dist/nano-components/p-3f00179c.js +0 -5
  891. package/dist/nano-components/p-3f00179c.js.map +0 -1
  892. package/dist/nano-components/p-48e6bea3.entry.js +0 -5
  893. package/dist/nano-components/p-48e6bea3.entry.js.map +0 -1
  894. package/dist/nano-components/p-4d62ec32.system.js +0 -5
  895. package/dist/nano-components/p-4d62ec32.system.js.map +0 -1
  896. package/dist/nano-components/p-4e451498.entry.js +0 -5
  897. package/dist/nano-components/p-4e451498.entry.js.map +0 -1
  898. package/dist/nano-components/p-51d9570d.entry.js +0 -5
  899. package/dist/nano-components/p-51d9570d.entry.js.map +0 -1
  900. package/dist/nano-components/p-51fa04a6.entry.js +0 -5
  901. package/dist/nano-components/p-51fa04a6.entry.js.map +0 -1
  902. package/dist/nano-components/p-55189485.system.entry.js +0 -5
  903. package/dist/nano-components/p-55189485.system.entry.js.map +0 -1
  904. package/dist/nano-components/p-56113dd3.js.map +0 -1
  905. package/dist/nano-components/p-5bbd6c81.entry.js +0 -5
  906. package/dist/nano-components/p-5bbd6c81.entry.js.map +0 -1
  907. package/dist/nano-components/p-5e9170ae.entry.js +0 -5
  908. package/dist/nano-components/p-5e9170ae.entry.js.map +0 -1
  909. package/dist/nano-components/p-60c9b580.system.js.map +0 -1
  910. package/dist/nano-components/p-61565b5a.entry.js +0 -5
  911. package/dist/nano-components/p-621750cc.js +0 -5
  912. package/dist/nano-components/p-621750cc.js.map +0 -1
  913. package/dist/nano-components/p-6621e4f1.system.entry.js +0 -5
  914. package/dist/nano-components/p-6a1c69d3.entry.js +0 -5
  915. package/dist/nano-components/p-6ab8d211.system.entry.js +0 -5
  916. package/dist/nano-components/p-6ab8d211.system.entry.js.map +0 -1
  917. package/dist/nano-components/p-6e9b3d60.system.entry.js +0 -5
  918. package/dist/nano-components/p-6e9b3d60.system.entry.js.map +0 -1
  919. package/dist/nano-components/p-6f3d20fe.entry.js +0 -5
  920. package/dist/nano-components/p-6feac35e.entry.js +0 -5
  921. package/dist/nano-components/p-6feac35e.entry.js.map +0 -1
  922. package/dist/nano-components/p-723c212f.system.entry.js +0 -5
  923. package/dist/nano-components/p-723c212f.system.entry.js.map +0 -1
  924. package/dist/nano-components/p-76b13c27.system.entry.js +0 -5
  925. package/dist/nano-components/p-78569d39.entry.js +0 -5
  926. package/dist/nano-components/p-78cf9d39.entry.js +0 -5
  927. package/dist/nano-components/p-7e60c331.entry.js +0 -5
  928. package/dist/nano-components/p-8134c14e.system.js.map +0 -1
  929. package/dist/nano-components/p-81b4ed2a.system.entry.js +0 -5
  930. package/dist/nano-components/p-81b4ed2a.system.entry.js.map +0 -1
  931. package/dist/nano-components/p-854df906.system.entry.js +0 -5
  932. package/dist/nano-components/p-88bcf55b.entry.js +0 -5
  933. package/dist/nano-components/p-8b7f8ef4.entry.js +0 -5
  934. package/dist/nano-components/p-8c3993ff.entry.js +0 -5
  935. package/dist/nano-components/p-8c3993ff.entry.js.map +0 -1
  936. package/dist/nano-components/p-91778977.system.entry.js +0 -5
  937. package/dist/nano-components/p-92b3f99b.system.entry.js +0 -5
  938. package/dist/nano-components/p-9bd73d1d.js +0 -5
  939. package/dist/nano-components/p-9bd73d1d.js.map +0 -1
  940. package/dist/nano-components/p-9bf4a6e0.system.entry.js +0 -5
  941. package/dist/nano-components/p-9df226fd.system.entry.js +0 -5
  942. package/dist/nano-components/p-9df226fd.system.entry.js.map +0 -1
  943. package/dist/nano-components/p-a0b55c38.system.entry.js +0 -5
  944. package/dist/nano-components/p-a0b55c38.system.entry.js.map +0 -1
  945. package/dist/nano-components/p-a21d90aa.entry.js +0 -5
  946. package/dist/nano-components/p-a9dd7cf9.entry.js +0 -5
  947. package/dist/nano-components/p-ad069ba4.entry.js +0 -5
  948. package/dist/nano-components/p-ad069ba4.entry.js.map +0 -1
  949. package/dist/nano-components/p-b246a7bb.entry.js +0 -5
  950. package/dist/nano-components/p-b246a7bb.entry.js.map +0 -1
  951. package/dist/nano-components/p-b45d4be9.entry.js +0 -5
  952. package/dist/nano-components/p-b45d4be9.entry.js.map +0 -1
  953. package/dist/nano-components/p-b79dc23a.system.entry.js +0 -5
  954. package/dist/nano-components/p-b86fc6b7.system.js +0 -5
  955. package/dist/nano-components/p-b86fc6b7.system.js.map +0 -1
  956. package/dist/nano-components/p-badf69ee.system.entry.js +0 -5
  957. package/dist/nano-components/p-bde0deae.system.entry.js +0 -5
  958. package/dist/nano-components/p-bde0deae.system.entry.js.map +0 -1
  959. package/dist/nano-components/p-be3df2e8.system.entry.js +0 -5
  960. package/dist/nano-components/p-be3df2e8.system.entry.js.map +0 -1
  961. package/dist/nano-components/p-c39c1e8d.entry.js +0 -5
  962. package/dist/nano-components/p-c39c1e8d.entry.js.map +0 -1
  963. package/dist/nano-components/p-c7b7f7ab.entry.js +0 -5
  964. package/dist/nano-components/p-c82ccbc8.entry.js +0 -5
  965. package/dist/nano-components/p-c82ccbc8.entry.js.map +0 -1
  966. package/dist/nano-components/p-cc668975.system.entry.js +0 -5
  967. package/dist/nano-components/p-cfd4c9de.system.entry.js +0 -5
  968. package/dist/nano-components/p-cfd4c9de.system.entry.js.map +0 -1
  969. package/dist/nano-components/p-d0e9b177.entry.js +0 -5
  970. package/dist/nano-components/p-d31761c8.system.js.map +0 -1
  971. package/dist/nano-components/p-d47d297b.system.entry.js +0 -5
  972. package/dist/nano-components/p-d47d297b.system.entry.js.map +0 -1
  973. package/dist/nano-components/p-e48a53f5.system.entry.js +0 -5
  974. package/dist/nano-components/p-e48a53f5.system.entry.js.map +0 -1
  975. package/dist/nano-components/p-e5f01860.entry.js +0 -5
  976. package/dist/nano-components/p-e5f01860.entry.js.map +0 -1
  977. package/dist/nano-components/p-f2b2cd38.system.entry.js +0 -5
  978. package/dist/nano-components/p-f2b2cd38.system.entry.js.map +0 -1
  979. package/dist/nano-components/p-fcb5ffaf.system.entry.js +0 -5
  980. package/dist/nano-components/p-fcb5ffaf.system.entry.js.map +0 -1
  981. package/dist/types/components/select/select-option.d.ts +0 -23
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["src/components/input/input.scss?tag=nano-input&encapsulation=scoped","src/components/input/input.tsx"],"names":["inputCss","inputIds","Input","[object Object]","hostRef","this","inputId","didBlurAfterEdit","rtl","charCount","hasRendered","hasFocus","hasLabelSlot","hasHelperSlot","errorMessage","datalist","_invalid","autocapitalise","autocomplete","autocorrect","autofocus","clearInput","debounce","disabled","validateOn","showInlineError","hideLabel","floatLabel","name","readonly","required","spellcheck","type","value","resize","rows","showCharCount","validate","ev","nativeInput","validity","valid","preventDefault","validationMessage","nanoValidate","emit","isValid","originalEvent","onInput","input","target","nanoInput","onBlur","focusChanged","nanoBlur","onFocus","nanoFocus","onKeydown","shouldClearOnEdit","hasValue","clearTextInput","stopPropagation","event","window","Event","dispatchEvent","nativeInputWrap","_nativeInputWrap","ele","setDataListOpts","currDWConfig","dropDownConfig","Object","assign","skidding","tetherTo","invalid","setTimeout","nanoChange","length","style","height","scrollHeight","debounceEvent","validateFirst","focus","click","Promise","resolve","message","setCustomValidity","e","form","document","querySelector","el","closest","kev","raf","key","activeElement","closestElement","tagName","toLowerCase","clearOnEdit","undefined","getValue","mo","disconnect","MutationObserver","processSlottedContent","observe","childList","subtree","querySelectorAll","console","warn","debounceChanged","CustomEvent","detail","slotChangeObserver","_","setFocus","labelId","moreId","ownerDocument","dir","compWrapOptions","label","placeholder","maxlength","wrapOptions","controlId","controlOptions","clearControl","h","Host","aria-disabled","class","createColorClasses","color","has-value","has-focus","is-invalid","FormControlWrap","FormControl","onClearText","control","ref","id","aria-labelledby","accept","autoCapitalize","autoComplete","autoCorrect","autoFocus","inputMode","inputmode","min","max","minLength","minlength","maxLength","multiple","pattern","readOnly","step","size","onChange","onKeyDown","onInvalid","native-input","resizable"],"mappings":";;;2PAAA,MAAMA,EAAW,ggfC+BjB,IAAIC,EAAW,MAmBFC,EAAK,MALlBC,YAAAC,kSAOUC,KAAAC,QAAU,cAAcL,MACxBI,KAAAE,iBAAmB,MACnBF,KAAAG,IAAe,MAEfH,KAAAI,UAAY,EACZJ,KAAAK,YAAc,MAcbL,KAAAM,SAAW,MACXN,KAAAO,aAAe,MACfP,KAAAQ,cAAgB,MAChBR,KAAAS,aAAuB,GACvBT,KAAAU,SAAoC,KAuBpCV,KAAAW,SAAW,MAeZX,KAAAY,eACN,OAKMZ,KAAAa,aAA6B,MAK7Bb,KAAAc,YAA4B,MAK5Bd,KAAAe,UAAY,MAKZf,KAAAgB,WAAa,MAUbhB,KAAAiB,SAAW,EAKMjB,KAAAkB,SAAW,MAoBXlB,KAAAmB,WACvB,SAKuBnB,KAAAoB,gBAAkB,KAUnCpB,KAAAqB,UAAsB,MAKtBrB,KAAAsB,WAAsB,MA8BtBtB,KAAAuB,KAAevB,KAAKC,QAeHD,KAAAwB,SAAW,MAK5BxB,KAAAyB,SAAW,MAKXzB,KAAA0B,WAAa,MAgBb1B,KAAA2B,KAAuB,OAUN3B,KAAA4B,MAAwB,GAKzC5B,KAAA6B,OAAoC,OAKpC7B,KAAA8B,KAAO,EAKP9B,KAAA+B,cAAgB,MAqKhB/B,KAAAgC,SAAYC,IAClB,GAAIjC,KAAKmB,aAAe,kBAAmBnB,KAAKmB,WAAa,QAE7D,IAAKnB,KAAKkC,YAAYC,SAASC,MAAO,CACpC,GAAIpC,KAAKoB,gBAAiB,CACxB,GAAIa,EAAIA,EAAGI,iBACXrC,KAAKS,aAAeT,KAAKkC,YAAYI,kBAEvCtC,KAAKW,SAAW,UACXX,KAAKW,SAAW,MAEvBX,KAAKuC,aAAaC,KAAK,CACrBC,SAAUzC,KAAKW,SACfF,aAAcT,KAAKkC,YAAYI,kBAC/BI,cAAeT,KAIXjC,KAAA2C,QAAWV,IACjB,MAAMW,EAAQX,EAAGY,OACjB,GAAID,EAAO5C,KAAK4B,MAAQgB,EAAMhB,OAAS,GACvC5B,KAAK8C,UAAUN,KAAKP,IAGdjC,KAAA+C,OAAS,KACf/C,KAAKM,SAAW,MAChBN,KAAKgD,eACL,GAAIhD,KAAKmB,aAAe,QAASnB,KAAKgC,WACtChC,KAAKiD,SAAST,QAGRxC,KAAAkD,QAAU,KAChBlD,KAAKM,SAAW,KAChBN,KAAKgD,eACLhD,KAAKmD,UAAUX,QAGTxC,KAAAoD,UAAY,KAClB,GAAIpD,KAAKqD,oBAAqB,CAE5B,GAAIrD,KAAKE,kBAAoBF,KAAKsD,WAAY,CAE5CtD,KAAKuD,iBAIPvD,KAAKE,iBAAmB,QAIpBF,KAAAuD,eAAkBtB,IACxB,GAAIjC,KAAKgB,aAAehB,KAAKwB,WAAaxB,KAAKkB,UAAYe,EAAI,CAC7DA,EAAGI,iBACHJ,EAAGuB,kBAGLxD,KAAK4B,MAAQ,GACb5B,KAAKkC,YAAYN,MAAQ,GACzB,MAAM6B,EAAQ,IAAIC,OAAOC,MAAM,UAC/B3D,KAAKkC,YAAY0B,cAAcH,IAhcjCI,sBACE,OAAO7D,KAAK8D,iBAEdD,oBAA4BE,GAC1B,GAAI/D,KAAK8D,mBAAqBC,EAAK,OACnC/D,KAAK8D,iBAAmBC,EACxB/D,KAAKgE,kBAUPlE,kBACE,IAAKE,KAAKU,SAAU,OACpB,MAAMuD,EAAejE,KAAKU,SAASwD,gBAAkB,GACrDlE,KAAKU,SAASwD,eAAcC,OAAAC,OAAAD,OAAAC,OAAA,GACvBH,GAAY,CACfI,UAAW,EACXC,SAAUtE,KAAK6D,kBAUnBU,cAEE,OAAOvE,KAAKW,SA0MJb,iBACR,IAAKE,KAAKK,YAAa,OACvBmE,YAAW,KACT,GAAIxE,KAAKmB,aAAe,QAASnB,KAAKgC,aACrC,IAOKlC,eACRE,KAAKyE,WAAWjC,KAAK,CAAEZ,MAAO5B,KAAK4B,QACnC5B,KAAKI,UAAYJ,KAAK4B,MAAM8C,OAE5B,GAAI1E,KAAK2B,OAAS,YAAc3B,KAAK6B,SAAW,OAAQ,CACtD7B,KAAKkC,YAAYyC,MAAMC,OAAS,OAChC,GAAI5E,KAAK4B,MAAM8C,OACb1E,KAAKkC,YAAYyC,MAAMC,OAAS5E,KAAKkC,YAAY2C,aAAe,KAGpEL,YAAW,KACT,GAAIxE,KAAKmB,aAAe,QAASnB,KAAKgC,aACrC,IAIKlC,kBACRE,KAAKyE,WAAaK,EAAc9E,KAAKyE,WAAYzE,KAAKiB,UA+CxDnB,qBAAqBiF,GACnB,GAAIA,EAAe/E,KAAKgC,WACxB,MAAO,CACLS,SAAUzC,KAAKW,SACfF,aAAcT,KAAKkC,YAAYI,mBASnCxC,iBACE,GAAIE,KAAKkC,YAAa,CACpBlC,KAAKkC,YAAY8C,QACjBhF,KAAKkC,YAAY+C,SAQrBnF,kBACE,OAAOoF,QAAQC,QAAQnF,KAAKkC,aAO9BpC,gBAAgBsF,GACd,GAAIpF,KAAKkC,YAAa,CACpBlC,KAAKkC,YAAYmD,kBAAkBD,GACnCpF,KAAKgC,YAKTlC,QAAQwF,GACN,MAAMC,EAAOvF,KAAKuF,KACdC,SAASC,cAAc,IAAMzF,KAAKuF,MAClCvF,KAAK0F,GAAGC,QAAQ,QACpB,IAAKJ,GAAQD,EAAEzC,SAAW7C,KAAK0F,GAAGC,QAAQ,QAAS,OAEnD3F,KAAK4B,MAAQ,GAKf9B,WAAWwF,GACT,IAAKtF,KAAKM,SAAU,OAEpB,MAAMsF,EAAMN,EACZ,IAAIzC,EAEJgD,GAAI,KACF,GAAID,EAAIE,IAAK,CACX,GAAIF,EAAIE,MAAQ,MAAO,OACvBjD,EAAS2C,SAASO,mBACblD,EAASyC,EAAEzC,OAElB,GAAImD,EAAehG,KAAK0F,GAAGO,QAAQC,cAAerD,KAAY7C,KAAK0F,GAAI,CACrE1F,KAAK+C,aAKHjD,oBACN,MAAM6B,KAAEA,EAAIwE,YAAEA,GAAgBnG,KAC9B,OAAOmG,IAAgBC,UAAYzE,IAAS,WAAawE,EAGnDrG,WACN,OAAOE,KAAK4B,OAAS,GAiEf9B,eAEN,IAAKE,KAAKM,UAAYN,KAAKqD,qBAAuBrD,KAAKsD,WAAY,CACjEtD,KAAKE,iBAAmB,MAIpBJ,WACN,OAAOE,KAAKqG,WAAW3B,OAAS,EAG1B5E,qBAGN,GAAIE,KAAKsG,GAAItG,KAAKsG,GAAGC,aACrB,MAAMD,EAAMtG,KAAKsG,GAAK,IAAIE,kBAAiB,IACzCxG,KAAKyG,0BAEPH,EAAGI,QAAQ1G,KAAK0F,GAAI,CAAEiB,UAAW,KAAMC,QAAS,OAG1C9G,wBAENE,KAAKO,eAAiBP,KAAK0F,GAAGmB,iBAAiB,kBAC/C7G,KAAKQ,gBAAkBR,KAAK0F,GAAGD,cAAc,mBAC7CzF,KAAKU,SAAWV,KAAK0F,GAAGD,cAAc,6BAGtC,KAAMzF,KAAK0F,GAAGD,cAAc,0BAA2B,CACrDqB,QAAQC,KACN,gFACA/G,KAAK0F,IAKT,KAAM1F,KAAK0F,GAAGD,cAAc,mBAAoB,CAC9CqB,QAAQC,KACN,8DACA/G,KAAK0F,KAKX5F,oBACEE,KAAKgH,kBACgB,CACnBhH,KAAK0F,GAAG9B,cACN,IAAIqD,YAAY,cAAe,CAC7BC,OAAQlH,KAAK0F,OAMrB5F,uBACuB,CACnB0F,SAAS5B,cACP,IAAIqD,YAAY,gBAAiB,CAC/BC,OAAQlH,KAAK0F,MAInB,GAAI1F,KAAKsG,GAAItG,KAAKsG,GAAGC,aAGvBzG,mBACEE,KAAKmH,qBACLnH,KAAKK,YAAc,KACnB,GAAIL,KAAKe,UAAWyD,YAAY4C,GAAMpH,KAAKqH,YAAY,KAGzDvH,oBACEE,KAAKyG,wBAGP3G,SACE,MAAM8B,EAAQ5B,KAAKqG,WACnB,MAAMiB,EAAUtH,KAAKC,QAAU,OAC/B,MAAMsH,EACJvH,KAAKoB,iBAAmBpB,KAAKQ,cAAgBR,KAAKC,QAAU,QAAU,GACxED,KAAKG,IAAOH,KAAK0F,GAAG8B,cAA2BC,MAAQ,MAEvD,MAAMC,EAAkB,GACtBhC,GAAAA,EACApE,WAAAA,EACAqG,MAAAA,EACAlH,aAAAA,EACAkB,KAAAA,EACAP,gBAAAA,EACAZ,cAAAA,EACAD,aAAAA,EACAc,UAAAA,EACAuG,YAAAA,EACAC,UAAAA,EACAzH,UAAAA,EACA2B,cAAAA,EACA5B,IAAAA,MACD,CACCuF,GAAAA,EACApE,WAAAA,EACAqG,MAAAA,EACAlH,aAAAA,EACAkB,KAAAA,EACAP,gBAAAA,EACAZ,cAAAA,EACAD,aAAAA,EACAc,UAAAA,EACAuG,YAAAA,EACAC,UAAAA,EACAzH,UAAAA,EACA2B,cAAAA,EACA5B,IAAAA,IA7BsB,CA8BpBH,MACJ,MAAM8H,EAAW3D,OAAAC,OAAAD,OAAAC,OAAA,GACZsD,GAAe,CAClBJ,QAAAA,EACAC,OAAAA,EACAjE,SAAUtD,KAAKsD,WACfyE,UAAW/H,KAAKC,UAGlB,MAAM+H,EAAiB,GAAIhH,WAAAA,EAAYQ,SAAAA,EAAUN,SAAAA,MAAU,CACzDF,WAAAA,EACAQ,SAAAA,EACAN,SAAAA,EACA+G,aAAcjI,KAAKgB,aAJE,CAKnBhB,MAEJ,OACEkI,EAACC,EAAI,CAAAC,gBACYpI,KAAKkB,SAAW,OAAS,KACxCuG,IAAKzH,KAAKG,IAAM,MAAQ,KACxBkI,MAAKlE,OAAAC,OAAAD,OAAAC,OAAA,GACAkE,EAAmBtI,KAAKuI,QAAM,CACjCC,YAAaxI,KAAKsD,WAClBmF,YAAazI,KAAKM,SAClBoI,aAAc1I,KAAKW,YAGrBuH,EAACS,EAAexE,OAAAC,OAAA,GAAK0D,GACnBI,EAACU,EAAWzE,OAAAC,OAAA,GACN4D,EAAc,CAClBa,YAAa7I,KAAKuD,eAClBuF,QAAS9I,KAAK0F,GACdqD,IAAMrD,GAAQ1F,KAAK6D,gBAAkB6B,IAEpC1F,KAAK2B,OAAS,YACbuG,EAAA,QAAA,CACEc,GAAIhJ,KAAKC,QACToI,MAAM,eACNU,IAAMnG,GAAW5C,KAAKkC,YAAcU,EAAMqG,kBACzB3B,EAAU,IAAMC,EACjCrG,SAAUlB,KAAKkB,SACfgI,OAAQlJ,KAAKkJ,OACbC,eAAgBnJ,KAAKY,eACrBwI,aAAcpJ,KAAKa,aACnBwI,YAAarJ,KAAKc,YAClBwI,UAAWtJ,KAAKe,UAChBwI,UAAWvJ,KAAKwJ,UAChBjE,KAAMvF,KAAKuF,KACXkE,IAAKzJ,KAAKyJ,IACVC,IAAK1J,KAAK0J,IACVC,UAAW3J,KAAK4J,UAChBC,UAAW7J,KAAK6H,UAChBiC,SAAU9J,KAAK8J,SACfvI,KAAMvB,KAAKuB,KACXwI,QAAS/J,KAAK+J,QACdnC,aACG5H,KAAKsB,YAActB,KAAK4H,YAAc5H,KAAK4H,YAAc,GAE5DoC,SAAUhK,KAAKwB,SACfC,SAAUzB,KAAKyB,SACfC,WAAY1B,KAAK0B,WACjBuI,KAAMjK,KAAKiK,KACXC,KAAMlK,KAAKkK,KACXvI,KAAM3B,KAAK2B,KACXC,MAAOA,EACPe,QAAS3C,KAAK2C,QACdwH,SAAUnK,KAAK2C,QACfO,QAASlD,KAAKkD,QACdkH,UAAWpK,KAAKoD,UAChBiH,UAAWrK,KAAKgC,WAGnBhC,KAAK2B,OAAS,YACbuG,EAAA,WAAA,CACEpG,KAAM9B,KAAKsB,WAAa,EAAItB,KAAK8B,KACjCkH,GAAIhJ,KAAKC,QACToI,MAAO,CACLiC,eAAgB,KAChBC,UAAWvK,KAAK6B,SAAW,QAE7BkH,IAAMnG,GAAW5C,KAAKkC,YAAcU,EAAMqG,kBACzB3B,EAAU,IAAMC,EACjCrG,SAAUlB,KAAKkB,SACfiI,eAAgBnJ,KAAKY,eACrByI,YAAarJ,KAAKc,YAClBwI,UAAWtJ,KAAKe,UAChBwI,UAAWvJ,KAAKwJ,UAChBjE,KAAMvF,KAAKuF,KACXoE,UAAW3J,KAAK4J,UAChBC,UAAW7J,KAAK6H,UAChBtG,KAAMvB,KAAKuB,KACXqG,aACG5H,KAAKsB,YAActB,KAAK4H,YAAc5H,KAAK4H,YAAc,GAE5DoC,SAAUhK,KAAKwB,SACfC,SAAUzB,KAAKyB,SACfC,WAAY1B,KAAK0B,WACjBE,MAAOA,EACPe,QAAS3C,KAAK2C,QACdwH,SAAUnK,KAAK2C,QACfO,QAASlD,KAAKkD,QACdkH,UAAWpK,KAAKoD,UAChBiH,UAAWrK,KAAKgC,YAItBkG,EAAA,OAAA","sourcesContent":["@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n@import '../form-control/form-control';\n@import '../form-control/form-control-vars';\n\n:host {\n @include formControlVars;\n\n position: relative;\n width: 100%;\n padding: 0 !important;\n color: currentColor;\n display: inline-block;\n}\n\n:host(.nano-color) {\n color: current-color(base);\n\n --input-border-style--focus: #{$input-border-style} var(--nano-color-tint, #{nano-color(primary, tint)});\n}\n\n:host([disabled]:not([disabled='false'])) {\n opacity: 0.7;\n}\n\n.native-input {\n @include border-radius(var(--input-border-radius));\n @include padding(0, var(--padding-end), 0, var(--padding-start));\n @include text-inherit();\n\n text-overflow: ellipsis;\n color: var(--input-text-color);\n display: inline-block;\n flex: 1;\n width: 100%;\n max-width: 100%;\n max-height: 100%;\n border: 0;\n outline: none;\n background: transparent;\n appearance: none;\n line-height: 2.5em;\n min-height: 2.5em;\n margin: 0;\n box-sizing: border-box;\n resize: none;\n overflow: hidden;\n\n &[disabled] {\n opacity: 0.4;\n }\n\n &::placeholder {\n color: var(--placeholder-color);\n font-family: inherit;\n font-style: var(--placeholder-font-style);\n font-weight: var(--placeholder-font-weight);\n opacity: var(--placeholder-opacity);\n line-height: 2.5em;\n min-height: 2.5em;\n // text-overflow: ellipsis;\n }\n\n &::-moz-placeholder {\n line-height: 2.8em;\n text-overflow: ellipsis;\n }\n\n &:-webkit-autofill {\n background-color: transparent;\n }\n\n &::-webkit-search-decoration,\n &::-webkit-search-cancel-button,\n &::-webkit-search-results-button,\n &::-webkit-search-results-decoration {\n appearance: none;\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &::-ms-clear,\n &::-ms-reveal {\n display: none;\n }\n\n &.resizable {\n resize: vertical;\n overflow: auto;\n }\n\n .textarea & {\n line-height: 1.5em;\n padding-top: var(--padding-top);\n padding-bottom: var(--padding-bottom);\n white-space: pre-wrap;\n\n &::placeholder {\n line-height: 1.5em;\n }\n }\n\n .has-float-label & {\n padding-top: 1.4em;\n }\n\n .has-float-label.textarea & {\n padding-top: 1.8em;\n }\n\n .legacy & {\n box-sizing: content-box;\n }\n\n :host([readonly]:not([readonly='false'])) & {\n user-select: none;\n }\n}\n\n.placeholder-as-label {\n :host(.has-focus) & {\n transform: translateY(-120%);\n font-size: 0.9em;\n }\n}\n","import {\n Build,\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n State,\n Watch,\n h,\n Listen,\n} from '@stencil/core';\n\nimport {\n Color,\n ControlValidity,\n ControlValidityEventDetail,\n InputChangeEventDetail,\n TextFieldTypes,\n} from '../../interface';\nimport {\n debounceEvent,\n closestElement,\n createColorClasses,\n raf,\n} from '../../utils';\nimport { FormControl, FormControlWrap } from '../form-control/form-control';\n\nlet inputIds = 0;\n\n/**\n * The input component is a wrapper to the HTML input element with custom styling and additional functionality. It accepts most of the same properties as the HTML [input](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input), but works great on desktop devices and integrates with the keyboard on mobile devices.\n\nIt is meant for text type inputs only, such as \"text\", \"password\", \"email\", \"number\", \"search\", \"tel\", and \"url\". It supports all standard text input events including keyup, keydown, keypress, and more.\n * @slot start - suitable for inline action buttons or icons that may add extra contextual information\n * @slot end - suitable for inline action buttons or icons that may add extra contextual information\n * @slot value-start - similar to 'start', however clicking elements using this slot will activate the input control. This would be suitable to show a secodary 'value' for context or to show a dropdown arrow if using a datalist\n * @slot value-end - similar to 'end', however clicking elements using this slot will activate the input control. This would be suitable to show a secodary 'value' for context or to show a dropdown arrow if using a datalist\n * @slot label - if you do not set a label attribute, you can use this slot for more complex markup\n * @slot helper - helper text to accompany the form field underneath.\n * @slot - can be used with a `nano-datalist`. See the `nano-datalist` docs for more information\n */\n@Component({\n tag: 'nano-input',\n styleUrl: 'input.scss',\n scoped: true,\n})\nexport class Input implements ComponentInterface {\n private nativeInput?: HTMLInputElement | HTMLTextAreaElement;\n private inputId = `nano-input-${inputIds++}`;\n private didBlurAfterEdit = false;\n private rtl: boolean = false;\n private mo?: MutationObserver;\n private charCount = 0;\n private hasRendered = false;\n\n // we don't want these rendered eles decorated with @State\n // because that will cause re-renders. User get/set to set datalist options\n private _nativeInputWrap: HTMLElement;\n private get nativeInputWrap() {\n return this._nativeInputWrap;\n }\n private set nativeInputWrap(ele: HTMLElement) {\n if (this._nativeInputWrap === ele) return;\n this._nativeInputWrap = ele;\n this.setDataListOpts();\n }\n\n @State() hasFocus = false;\n @State() hasLabelSlot = false;\n @State() hasHelperSlot = false;\n @State() errorMessage: string = '';\n @State() datalist: HTMLNanoDatalistElement = null;\n\n @Watch('datalist')\n setDataListOpts() {\n if (!this.datalist) return;\n const currDWConfig = this.datalist.dropDownConfig || {};\n this.datalist.dropDownConfig = {\n ...currDWConfig,\n skidding: -1,\n tetherTo: this.nativeInputWrap,\n };\n }\n\n @Element() el!: HTMLNanoInputElement;\n\n /**\n * This will be true when the control is in an invalid state.\n * Validity is determined by the `required` prop. Or if custom validity message is set. @readonly\n */\n @Prop({ reflect: true })\n get invalid() {\n return this._invalid;\n }\n @State() _invalid = false;\n\n /**\n * The color to use from the application's color palette.\n */\n @Prop() color?: Color;\n\n /**\n * If the value of the type attribute is `\"file\"`, then this attribute will indicate the types of files that the server accepts, otherwise it will be ignored. The value must be a comma-separated list of unique content type specifiers.\n */\n @Prop() accept?: string;\n\n /**\n * Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.\n */\n @Prop() autocapitalise: 'none' | 'sentences' | 'words' | 'characters' =\n 'none';\n\n /**\n * Indicates whether the value of the control can be automatically completed by the browser.\n */\n @Prop() autocomplete: 'on' | 'off' = 'off';\n\n /**\n * Whether auto correction should be enabled when the user is entering/editing the text value.\n */\n @Prop() autocorrect: 'on' | 'off' = 'off';\n\n /**\n * This Boolean attribute lets you specify that a form control should have input focus when the page loads.\n */\n @Prop() autofocus = false;\n\n /**\n * If `true`, a clear icon will appear in the input when there is a value. Clicking it clears the input.\n */\n @Prop() clearInput = false;\n\n /**\n * If `true`, the value will be cleared after focus upon edit. Defaults to `true` when `type` is `\"password\"`, `false` for all other types.\n */\n @Prop() clearOnEdit?: boolean;\n\n /**\n * Set the amount of time, in milliseconds, to wait to trigger the `nanoChange` event after each keystroke.\n */\n @Prop() debounce = 0;\n\n /**\n * If `true`, the user cannot interact with the input.\n */\n @Prop({ reflect: true }) disabled = false;\n\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n @Prop() inputmode?:\n | 'none'\n | 'text'\n | 'tel'\n | 'url'\n | 'email'\n | 'numeric'\n | 'decimal'\n | 'search';\n\n /**\n * When should the field perform validation\n */\n @Prop({ mutable: true }) validateOn: 'dirty' | 'submit' | 'submitThenDirty' =\n 'submit';\n\n /**\n * Whether to show validation errors underneath input\n */\n @Prop({ reflect: true }) showInlineError = true;\n\n /**\n * String to place within a label element. Alternatively you may use a label slot.\n */\n @Prop() label!: string;\n\n /**\n * Visually hide the label - but make it accessible.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * Enable floating label behaviour. Will disable placeholder if set.\n */\n @Prop() floatLabel: boolean = false;\n\n /**\n * The maximum value, which must not be less than its minimum (min attribute) value.\n */\n @Prop() max?: string;\n\n /**\n * If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the maximum number of characters that the user can enter.\n */\n @Prop() maxlength?: number;\n\n /**\n * The minimum value, which must not be greater than its maximum (max attribute) value.\n */\n @Prop() min?: string;\n\n /**\n * If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the minimum number of characters that the user can enter.\n */\n @Prop() minlength?: number;\n\n /**\n * If `true`, the user can enter more than one value. This attribute applies when the type attribute is set to `\"email\"` or `\"file\"`, otherwise it is ignored.\n */\n @Prop() multiple?: boolean;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.inputId;\n\n /**\n * A regular expression that the value is checked against. The pattern must match the entire value, not just some subset. Use the title attribute to describe the pattern to help the user. This attribute applies when the value of the type attribute is `\"text\"`, `\"search\"`, `\"tel\"`, `\"url\"`, `\"email\"`, or `\"password\"`, otherwise it is ignored.\n */\n @Prop() pattern?: string;\n\n /**\n * Instructional text that shows before the input has a value.\n */\n @Prop() placeholder?: string | null;\n\n /**\n * If `true`, the user cannot modify the value.\n */\n @Prop({ reflect: true }) readonly = false;\n\n /**\n * If `true`, the user must fill in a value before submitting a form.\n */\n @Prop() required = false;\n\n /**\n * If `true`, the element will have its spelling and grammar checked.\n */\n @Prop() spellcheck = false;\n\n /**\n * Works with the min and max attributes to limit the increments at which a value can be set.\n * Possible values are: `\"any\"` or a positive floating point number.\n */\n @Prop() step?: string;\n\n /**\n * The initial size of the control. This value is in pixels unless the value of the type attribute is `\"text\"` or `\"password\"`, in which case it is an integer number of characters. This attribute applies only when the `type` attribute is set to `\"text\"`, `\"search\"`, `\"tel\"`, `\"url\"`, `\"email\"`, or `\"password\"`, otherwise it is ignored.\n */\n @Prop() size?: number;\n\n /**\n * The type of control to display. The default type is text.\n */\n @Prop() type: TextFieldTypes = 'text';\n\n /**\n * The form element to associate the select with (its form owner). Must be the id of a form.\n */\n @Prop() form?: string | null;\n\n /**\n * The value of the input.\n */\n @Prop({ mutable: true }) value?: string | null = '';\n\n /**\n * relevant to type=\"textarea\". Vertical resizing - enable / disable or make automatic.\n */\n @Prop() resize: 'true' | 'false' | 'auto' = 'auto';\n\n /**\n * relevant to type=\"textarea\". Default number of rows to show\n */\n @Prop() rows = 2;\n\n /**\n * relevant to type=\"textarea\".\n */\n @Prop() showCharCount = false;\n\n @Watch('minlength')\n @Watch('maxlength')\n @Watch('min')\n @Watch('max')\n @Watch('required')\n @Watch('disabled')\n @Watch('validateOn')\n @Watch('readonly')\n @Watch('pattern')\n @Watch('inputmode')\n protected shouldValidate() {\n if (!this.hasRendered) return;\n setTimeout(() => {\n if (this.validateOn === 'dirty') this.validate();\n }, 20);\n }\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n this.nanoChange.emit({ value: this.value });\n this.charCount = this.value.length;\n\n if (this.type === 'textarea' && this.resize === 'auto') {\n this.nativeInput.style.height = 'auto';\n if (this.value.length)\n this.nativeInput.style.height = this.nativeInput.scrollHeight + 'px';\n }\n\n setTimeout(() => {\n if (this.validateOn === 'dirty') this.validate();\n }, 20);\n }\n\n @Watch('debounce')\n protected debounceChanged() {\n this.nanoChange = debounceEvent(this.nanoChange, this.debounce);\n }\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() nanoInput!: EventEmitter<InputEvent>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() nanoChange!: EventEmitter<InputChangeEventDetail>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() nanoBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() nanoFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the input has been created.\n * @internal\n */\n @Event() nanoDidLoad!: EventEmitter<void>;\n\n /**\n * Emitted when the input has been removed.\n * @internal\n */\n @Event() nanoDidUnload!: EventEmitter<void>;\n\n /**\n * Called when validation is performed (which depends on `validateOn`).\n * @returns event.detail: `{ isValid: boolean, errorMessage: string, originalEvent: Event }`.\n */\n @Event() nanoValidate: EventEmitter<ControlValidityEventDetail>;\n\n /**\n * Get the current state of the control.\n * @param validateFirst - perform validation first before reporting\n * @returns `{ isValid: boolean, errorMessage: string }`\n */\n @Method()\n async reportValidity(validateFirst: boolean): Promise<ControlValidity> {\n if (validateFirst) this.validate();\n return {\n isValid: !this._invalid,\n errorMessage: this.nativeInput.validationMessage,\n };\n }\n\n /**\n * Sets focus on the specified `nano-input`. Use this method instead of the global\n * `input.focus()`.\n */\n @Method()\n async setFocus() {\n if (this.nativeInput) {\n this.nativeInput.focus();\n this.nativeInput.click();\n }\n }\n\n /**\n * Returns the native `<input>` element used under the hood.\n */\n @Method()\n getInputElement(): Promise<HTMLInputElement | HTMLTextAreaElement> {\n return Promise.resolve(this.nativeInput);\n }\n\n /**\n * Invalidate the field and show a custom error message. To clear the error you will need to re-call this method with an empty string.\n */\n @Method()\n async showError(message: string) {\n if (this.nativeInput) {\n this.nativeInput.setCustomValidity(message);\n this.validate();\n }\n }\n\n @Listen('reset', { target: 'body' })\n onReset(e) {\n const form = this.form\n ? document.querySelector('#' + this.form)\n : this.el.closest('form');\n if (!form || e.target !== this.el.closest('form')) return;\n\n this.value = '';\n }\n\n @Listen('mousedown', { target: 'body' })\n @Listen('keydown')\n handleBlur(e: KeyboardEvent | MouseEvent) {\n if (!this.hasFocus) return;\n\n const kev = e as KeyboardEvent;\n let target: Element;\n\n raf(() => {\n if (kev.key) {\n if (kev.key !== 'Tab') return;\n target = document.activeElement;\n } else target = e.target as Element;\n\n if (closestElement(this.el.tagName.toLowerCase(), target) !== this.el) {\n this.onBlur();\n }\n });\n }\n\n private shouldClearOnEdit() {\n const { type, clearOnEdit } = this;\n return clearOnEdit === undefined ? type === 'password' : clearOnEdit;\n }\n\n private getValue(): string {\n return this.value || '';\n }\n\n private validate = (ev?: Event) => {\n if (this.validateOn === 'submitThenDirty') this.validateOn = 'dirty';\n\n if (!this.nativeInput.validity.valid) {\n if (this.showInlineError) {\n if (ev) ev.preventDefault();\n this.errorMessage = this.nativeInput.validationMessage;\n }\n this._invalid = true;\n } else this._invalid = false;\n\n this.nanoValidate.emit({\n isValid: !this._invalid,\n errorMessage: this.nativeInput.validationMessage,\n originalEvent: ev,\n });\n };\n\n private onInput = (ev: InputEvent) => {\n const input = ev.target as HTMLInputElement | null;\n if (input) this.value = input.value || '';\n this.nanoInput.emit(ev);\n };\n\n private onBlur = () => {\n this.hasFocus = false;\n this.focusChanged();\n if (this.validateOn === 'dirty') this.validate();\n this.nanoBlur.emit();\n };\n\n private onFocus = () => {\n this.hasFocus = true;\n this.focusChanged();\n this.nanoFocus.emit();\n };\n\n private onKeydown = () => {\n if (this.shouldClearOnEdit()) {\n // Did the input value change after it was blurred and edited?\n if (this.didBlurAfterEdit && this.hasValue()) {\n // Clear the input\n this.clearTextInput();\n }\n\n // Reset the flag\n this.didBlurAfterEdit = false;\n }\n };\n\n private clearTextInput = (ev?: Event) => {\n if (this.clearInput && !this.readonly && !this.disabled && ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n this.value = '';\n this.nativeInput.value = '';\n const event = new window.Event('change');\n this.nativeInput.dispatchEvent(event);\n };\n\n private focusChanged() {\n // If clearOnEdit is enabled and the input blurred but has a value, set a flag\n if (!this.hasFocus && this.shouldClearOnEdit() && this.hasValue()) {\n this.didBlurAfterEdit = true;\n }\n }\n\n private hasValue(): boolean {\n return this.getValue().length > 0;\n }\n\n private slotChangeObserver() {\n if (!Build.isBrowser) return;\n\n if (this.mo) this.mo.disconnect();\n const mo = (this.mo = new MutationObserver(() =>\n this.processSlottedContent()\n ));\n mo.observe(this.el, { childList: true, subtree: true });\n }\n\n private processSlottedContent() {\n // see if we have label / button content\n this.hasLabelSlot = !!this.el.querySelectorAll('[slot=\"label\"]');\n this.hasHelperSlot = !!this.el.querySelector('[slot=\"helper\"]');\n this.datalist = this.el.querySelector('nano-datalist:not([slot])');\n\n // breaking change introduced in v2. Rm in v3\n if (!!this.el.querySelector('[slot=\"inline-button\"]')) {\n console.warn(\n 'The `inline-button` slot was renamed to `end` in v2 - please update your code',\n this.el\n );\n }\n\n // breaking change introduced in v2. Rm in v3\n if (!!this.el.querySelector('[slot=\"legacy\"]')) {\n console.warn(\n 'The `legacy` slot has been removed. Please update your code',\n this.el\n );\n }\n }\n\n connectedCallback() {\n this.debounceChanged();\n if (Build.isBrowser) {\n this.el.dispatchEvent(\n new CustomEvent('nanoDidLoad', {\n detail: this.el,\n })\n );\n }\n }\n\n disconnectedCallback() {\n if (Build.isBrowser) {\n document.dispatchEvent(\n new CustomEvent('nanoDidUnload', {\n detail: this.el,\n })\n );\n }\n if (this.mo) this.mo.disconnect();\n }\n\n componentDidLoad() {\n this.slotChangeObserver();\n this.hasRendered = true;\n if (this.autofocus) setTimeout((_) => this.setFocus(), 300);\n }\n\n componentWillLoad() {\n this.processSlottedContent();\n }\n\n render() {\n const value = this.getValue();\n const labelId = this.inputId + '-lbl';\n const moreId =\n this.showInlineError || this.hasHelperSlot ? this.inputId + '-more' : '';\n this.rtl = (this.el.ownerDocument as Document).dir === 'rtl';\n\n const compWrapOptions = (({\n el,\n floatLabel,\n label,\n errorMessage,\n type,\n showInlineError,\n hasHelperSlot,\n hasLabelSlot,\n hideLabel,\n placeholder,\n maxlength,\n charCount,\n showCharCount,\n rtl,\n }) => ({\n el,\n floatLabel,\n label,\n errorMessage,\n type,\n showInlineError,\n hasHelperSlot,\n hasLabelSlot,\n hideLabel,\n placeholder,\n maxlength,\n charCount,\n showCharCount,\n rtl,\n }))(this);\n const wrapOptions = {\n ...compWrapOptions,\n labelId,\n moreId,\n hasValue: this.hasValue(),\n controlId: this.inputId,\n };\n\n const controlOptions = (({ clearInput, readonly, disabled }) => ({\n clearInput,\n readonly,\n disabled,\n clearControl: this.clearInput,\n }))(this);\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n dir={this.rtl ? 'rtl' : null}\n class={{\n ...createColorClasses(this.color),\n 'has-value': this.hasValue(),\n 'has-focus': this.hasFocus,\n 'is-invalid': this._invalid,\n }}\n >\n <FormControlWrap {...wrapOptions}>\n <FormControl\n {...controlOptions}\n onClearText={this.clearTextInput}\n control={this.el}\n ref={(el) => (this.nativeInputWrap = el)}\n >\n {this.type !== 'textarea' && (\n <input\n id={this.inputId}\n class=\"native-input\"\n ref={(input) => (this.nativeInput = input)}\n aria-labelledby={labelId + ' ' + moreId}\n disabled={this.disabled}\n accept={this.accept}\n autoCapitalize={this.autocapitalise}\n autoComplete={this.autocomplete}\n autoCorrect={this.autocorrect}\n autoFocus={this.autofocus}\n inputMode={this.inputmode}\n form={this.form}\n min={this.min}\n max={this.max}\n minLength={this.minlength}\n maxLength={this.maxlength}\n multiple={this.multiple}\n name={this.name}\n pattern={this.pattern}\n placeholder={\n !this.floatLabel && this.placeholder ? this.placeholder : ''\n }\n readOnly={this.readonly}\n required={this.required}\n spellcheck={this.spellcheck}\n step={this.step}\n size={this.size}\n type={this.type}\n value={value}\n onInput={this.onInput}\n onChange={this.onInput}\n onFocus={this.onFocus}\n onKeyDown={this.onKeydown}\n onInvalid={this.validate}\n />\n )}\n {this.type === 'textarea' && (\n <textarea\n rows={this.floatLabel ? 1 : this.rows}\n id={this.inputId}\n class={{\n 'native-input': true,\n resizable: this.resize === 'true',\n }}\n ref={(input) => (this.nativeInput = input)}\n aria-labelledby={labelId + ' ' + moreId}\n disabled={this.disabled}\n autoCapitalize={this.autocapitalise}\n autoCorrect={this.autocorrect}\n autoFocus={this.autofocus}\n inputMode={this.inputmode}\n form={this.form}\n minLength={this.minlength}\n maxLength={this.maxlength}\n name={this.name}\n placeholder={\n !this.floatLabel && this.placeholder ? this.placeholder : ''\n }\n readOnly={this.readonly}\n required={this.required}\n spellcheck={this.spellcheck}\n value={value}\n onInput={this.onInput}\n onChange={this.onInput}\n onFocus={this.onFocus}\n onKeyDown={this.onKeydown}\n onInvalid={this.validate}\n ></textarea>\n )}\n </FormControl>\n <slot />\n </FormControlWrap>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,5 @@
1
+ /*!
2
+ * Web Components for Nanopore digital Web Apps
3
+ */
4
+ const n=n=>{if(typeof __zone_symbol__requestAnimationFrame==="function"){return __zone_symbol__requestAnimationFrame(n)}if(typeof requestAnimationFrame==="function"){return requestAnimationFrame(n)}return setTimeout(n)};const e=n=>!!n.shadowRoot&&!!n.attachShadow;const t=()=>window.CSS&&CSS.supports("color","var(--fake-var)");const o=(n,t,o,i,r)=>{if(n||e(t)){let n=t.querySelector("input.aux-input");if(!n){n=t.ownerDocument.createElement("input");n.type="hidden";n.classList.add("aux-input");t.appendChild(n)}n.disabled=r;n.name=o;n.value=i||""}};const i=(n,e,t)=>Math.max(n,Math.min(e,t));const r=(n,e,t=true)=>new Promise((o=>{if(t){n.addEventListener("transitionend",(e=>{if(e.target!==n)return;o("shown")}),{once:true});n.style.display="block";n.dataset.displayTransition="true";setTimeout((()=>n.classList.add(e)),20)}else{n.addEventListener("transitionend",(e=>{if(e.target!==n)return;n.style.display="none";o("hidden")}),{once:true});n.classList.remove(e)}}));export{o as a,t as b,i as c,r as d,e as h,n as r};
5
+ //# sourceMappingURL=p-289aa03f.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["src/utils/index.ts"],"names":["raf","callback","__zone_symbol__requestAnimationFrame","requestAnimationFrame","setTimeout","hasShadowDom","el","shadowRoot","attachShadow","browserCanUseCssVariables","window","CSS","supports","renderHiddenInput","always","container","name","value","disabled","input","querySelector","ownerDocument","createElement","type","classList","add","appendChild","clamp","min","n","max","Math","displayTransition","className","show","Promise","resolve","addEventListener","e","target","once","style","display","dataset","remove"],"mappings":";;;MAmBaA,EAAOC,IAClB,UAAWC,uCAAyC,WAAY,CAC9D,OAAOA,qCAAqCD,GAE9C,UAAWE,wBAA0B,WAAY,CAC/C,OAAOA,sBAAsBF,GAE/B,OAAOG,WAAWH,UAGPI,EAAgBC,KAClBA,EAAGC,cAAiBD,EAAWE,mBAG7BC,EAA4B,IAChCC,OAAOC,KAAOA,IAAIC,SAAS,QAAS,yBAGhCC,EAAoB,CAC/BC,EACAC,EACAC,EACAC,EACAC,KAEA,GAAIJ,GAAUT,EAAaU,GAAY,CACrC,IAAII,EAAQJ,EAAUK,cACpB,mBAEF,IAAKD,EAAO,CACVA,EAAQJ,EAAUM,cAAeC,cAAc,SAC/CH,EAAMI,KAAO,SACbJ,EAAMK,UAAUC,IAAI,aACpBV,EAAUW,YAAYP,GAExBA,EAAMD,SAAWA,EACjBC,EAAMH,KAAOA,EACbG,EAAMF,MAAQA,GAAS,WAIdU,EAAQ,CAACC,EAAaC,EAAWC,IACrCC,KAAKD,IAAIF,EAAKG,KAAKH,IAAIC,EAAGC,UA4EtBE,EAAoB,CAC/B1B,EACA2B,EACAC,EAAgB,OAET,IAAIC,SAASC,IAClB,GAAIF,EAAM,CACR5B,EAAG+B,iBACD,iBACCC,IACC,GAAIA,EAAEC,SAAWjC,EAAI,OACrB8B,EAAQ,WAEV,CAAEI,KAAM,OAEVlC,EAAGmC,MAAMC,QAAU,QACnBpC,EAAGqC,QAAQX,kBAAoB,OAC/B5B,YAAW,IAAME,EAAGkB,UAAUC,IAAIQ,IAAY,QACzC,CACL3B,EAAG+B,iBACD,iBACCC,IACC,GAAIA,EAAEC,SAAWjC,EAAI,OACrBA,EAAGmC,MAAMC,QAAU,OACnBN,EAAQ,YAEV,CAAEI,KAAM,OAEVlC,EAAGkB,UAAUoB,OAAOX","sourcesContent":["import { Side } from '../interface';\n\nexport * from './dom';\nexport * from './throttle';\nexport * from './scroll';\nexport * from './slot';\nexport * from './theme';\nexport * from './active-element';\nexport * from './tabbable';\n\ndeclare const __zone_symbol__requestAnimationFrame: any;\ndeclare const requestAnimationFrame: any;\n\n/**\n * Patched Request Animation Frame method.\n * Perform a function between browser paints for less page jank\n * @param callback\n * @returns wrapped function\n */\nexport const raf = (callback: any) => {\n if (typeof __zone_symbol__requestAnimationFrame === 'function') {\n return __zone_symbol__requestAnimationFrame(callback);\n }\n if (typeof requestAnimationFrame === 'function') {\n return requestAnimationFrame(callback);\n }\n return setTimeout(callback);\n};\n\nexport const hasShadowDom = (el: HTMLElement) => {\n return !!el.shadowRoot && !!(el as any).attachShadow;\n};\n\nexport const browserCanUseCssVariables = () => {\n return window.CSS && CSS.supports('color', 'var(--fake-var)');\n};\n\nexport const renderHiddenInput = (\n always: boolean,\n container: HTMLElement,\n name: string,\n value: string | undefined | null,\n disabled: boolean\n) => {\n if (always || hasShadowDom(container)) {\n let input = container.querySelector(\n 'input.aux-input'\n ) as HTMLInputElement | null;\n if (!input) {\n input = container.ownerDocument!.createElement('input');\n input.type = 'hidden';\n input.classList.add('aux-input');\n container.appendChild(input);\n }\n input.disabled = disabled;\n input.name = name;\n input.value = value || '';\n }\n};\n\nexport const clamp = (min: number, n: number, max: number) => {\n return Math.max(min, Math.min(n, max));\n};\n\nexport const assert = (actual: any, reason: string) => {\n if (!actual) {\n const message = 'ASSERT: ' + reason;\n console.error(message);\n debugger; // tslint:disable-line\n throw new Error(message);\n }\n};\n\nexport const now = (ev: UIEvent) => {\n return ev.timeStamp || Date.now();\n};\n\nexport const pointerCoord = (ev: any): { x: number; y: number } => {\n // get X coordinates for either a mouse click\n // or a touch depending on the given event\n if (ev) {\n const changedTouches = ev.changedTouches;\n if (changedTouches && changedTouches.length > 0) {\n const touch = changedTouches[0];\n return { x: touch.clientX, y: touch.clientY };\n }\n if (ev.pageX !== undefined) {\n return { x: ev.pageX, y: ev.pageY };\n }\n }\n return { x: 0, y: 0 };\n};\n\n/**\n * @hidden\n * Given a side, return if it should be on the end\n * based on the value of dir\n * @param side the side\n * @param isRTL whether the application dir is rtl\n */\nexport const isEndSide = (side: Side): boolean => {\n const isRTL = document.dir === 'rtl';\n switch (side) {\n case 'start':\n return isRTL;\n case 'end':\n return !isRTL;\n default:\n throw new Error(\n `\"${side}\" is not a valid value for [side]. Use \"start\" or \"end\" instead.`\n );\n }\n};\n\n/**\n * Quality of life for transition handling.\n * Adds / removes transitionend events. Resolves on complete\n */\nexport const transitionDone = (\n el: HTMLElement\n): Promise<'shown' | 'hidden'> => {\n return new Promise((resolve) => {\n const callback = () => {\n el.removeEventListener('transitionend', callback);\n resolve;\n };\n el.addEventListener('transitionend', callback);\n // ??\n });\n};\n\n/**\n * handles hiding and showing elements properly (with display),\n * along with transitions, so they are no longer viewable in the dom.\n * - OnHide remove show class, listen for transition end, then display: none on finish\n * - OnShow, display block on start then add a show class\n */\nexport const displayTransition = (\n el: HTMLElement,\n className: string,\n show: boolean = true\n): Promise<'shown' | 'hidden'> => {\n return new Promise((resolve) => {\n if (show) {\n el.addEventListener(\n 'transitionend',\n (e: Event) => {\n if (e.target !== el) return;\n resolve('shown');\n },\n { once: true }\n );\n el.style.display = 'block';\n el.dataset.displayTransition = 'true';\n setTimeout(() => el.classList.add(className), 20);\n } else {\n el.addEventListener(\n 'transitionend',\n (e: Event) => {\n if (e.target !== el) return;\n el.style.display = 'none';\n resolve('hidden');\n },\n { once: true }\n );\n el.classList.remove(className);\n }\n });\n};\n"]}
@@ -0,0 +1,5 @@
1
+ /*!
2
+ * Web Components for Nanopore digital Web Apps
3
+ */
4
+ import{r,c as n,h as a,e,g as t}from"./p-ab5813a7.js";import{c as s,a as o}from"./p-289aa03f.js";import{c as i}from"./p-d99437a6.js";import{a as g}from"./p-1da5f8df.js";const b='.sc-nano-range-h{-webkit-box-sizing:border-box;box-sizing:border-box}*.sc-nano-range,*.sc-nano-range::before,*.sc-nano-range::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden].sc-nano-range{display:none !important}.sc-nano-range-h{--knob-handle-size:(var(--knob-size) * 2);--rgb-inactive:165, 165, 165;--knob-border-radius:50%;--knob-background:var(--nano-color-primary, #007495);--knob-box-shadow:0 2px 4px 0 rgba(0, 0, 0, 0.3);--knob-size:30px;--bar-height:8px;--bar-background:#e2e1e0;--bar-background-active:#a5a5a5;--bar-border-radius:4px;--height:42px;--pin-background:var(--nano-color-primary, #007495);--pin-color:var(--nano-color-primary-contrast, #fff);--focus-style:0 0 0 5px var(--nano-control-focus-color, rgba(144, 198, 231, 0.8))}.range-wrap.sc-nano-range{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;-webkit-box-flex:3;-ms-flex:3;flex:3;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.range-wrap.sc-nano-range-s>ion-icon[slot],.range-wrap .sc-nano-range-s>ion-icon[slot]{font-size:1.5em}.range-wrap.sc-nano-range-s>[slot=start],.range-wrap .sc-nano-range-s>[slot=start]{margin-left:0;margin-right:14px;margin-top:0;margin-bottom:0;font-size:0.9em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.range-wrap.sc-nano-range-s>[slot=start],.range-wrap .sc-nano-range-s>[slot=start]{margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:14px;margin-inline-end:14px}}.range-wrap.sc-nano-range-s>[slot=end],.range-wrap .sc-nano-range-s>[slot=end]{margin-left:14px;margin-right:0;margin-top:0;margin-bottom:0;font-size:0.9em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.range-wrap.sc-nano-range-s>[slot=end],.range-wrap .sc-nano-range-s>[slot=end]{margin-left:unset;margin-right:unset;-webkit-margin-start:14px;margin-inline-start:14px;-webkit-margin-end:0;margin-inline-end:0}}.range-slider.sc-nano-range{position:relative;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;height:var(--height);contain:size layout style;cursor:-webkit-grab;cursor:grab;-ms-touch-action:pan-y;touch-action:pan-y}.range-pressed.sc-nano-range-h .range-slider.sc-nano-range{cursor:-webkit-grabbing;cursor:grabbing}.range-bar.sc-nano-range{border-radius:var(--bar-border-radius);left:0;top:calc((var(--height) - var(--bar-height)) / 2);position:absolute;width:100%;height:var(--bar-height);background:var(--bar-background);pointer-events:none}.range-bar[dir=rtl].sc-nano-range{left:unset;right:unset;right:0}.range-snaps.sc-nano-range-h .range-bar.sc-nano-range{border-top-left-radius:var(--bar-border-radius);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--bar-border-radius)}.range-snaps.sc-nano-range-h .range-bar[dir=rtl].sc-nano-range{border-top-left-radius:0;border-top-right-radius:var(--bar-border-radius);border-bottom-right-radius:var(--bar-border-radius);border-bottom-left-radius:0}.range-bar[dir=rtl].sc-nano-range{left:unset}.range-bar-active.sc-nano-range{bottom:0;width:auto;background:var(--bar-background-active)}.range-bar-active .range-pressed.sc-nano-range-h{will-change:left, right}.range-knob.sc-nano-range{border-radius:var(--knob-border-radius);left:calc(50% - var(--knob-size) / 2);top:calc(50% - var(--knob-size) / 2);position:absolute;width:var(--knob-size);height:var(--knob-size);background:var(--knob-background);-webkit-box-shadow:var(--knob-box-shadow);box-shadow:var(--knob-box-shadow);z-index:2;pointer-events:none;-webkit-transform:scale(0.67);transform:scale(0.67);-webkit-transition-duration:120ms;transition-duration:120ms;-webkit-transition-property:background-color, border, -webkit-transform;transition-property:background-color, border, -webkit-transform;transition-property:transform, background-color, border;transition-property:transform, background-color, border, -webkit-transform;-webkit-transition-timing-function:ease;transition-timing-function:ease}.range-knob[dir=rtl].sc-nano-range{left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}.range-knob[dir=rtl].sc-nano-range{left:unset}.sc-nano-range-h:not(.range-has-pin) .range-knob-pressed.sc-nano-range .range-knob.sc-nano-range{-webkit-transform:scale(1);transform:scale(1)}.range-knob-handle.sc-nano-range{left:0;top:calc((var(--height) - var(--knob-handle-size)) / 2);margin-left:calc(0px - var(--knob-handle-size) / 2);position:absolute;width:calc(var(--knob-handle-size));height:calc(var(--knob-handle-size));text-align:center}.range-knob-handle[dir=rtl].sc-nano-range{left:unset;right:unset;right:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.range-knob-handle.sc-nano-range{margin-left:unset;-webkit-margin-start:calc(0px - var(--knob-handle-size) / 2);margin-inline-start:calc(0px - var(--knob-handle-size) / 2)}}.range-knob-handle[dir=rtl].sc-nano-range{left:unset}.range-knob-handle.sc-nano-range:active,.range-knob-handle.sc-nano-range:focus{outline:none}.range-knob-handle.sc-nano-range:active .range-knob.sc-nano-range,.range-knob-handle.sc-nano-range:focus .range-knob.sc-nano-range{-webkit-box-shadow:var(--knob-box-shadow), var(--focus-style);box-shadow:var(--knob-box-shadow), var(--focus-style)}.range-tick.sc-nano-range{position:absolute;top:calc((var(--height) - var(--bar-height)) / 2);width:var(--bar-height);height:var(--bar-height);background:var(--bar-background-active);z-index:1;pointer-events:none}.range-tick.sc-nano-range:first-of-type{border-top-left-radius:var(--bar-border-radius);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--bar-border-radius)}.range-tick.sc-nano-range:first-of-type[dir=rtl]{border-top-left-radius:0;border-top-right-radius:var(--bar-border-radius);border-bottom-right-radius:var(--bar-border-radius);border-bottom-left-radius:0}.range-tick.sc-nano-range:last-of-type{border-top-left-radius:0;border-top-right-radius:var(--bar-border-radius);border-bottom-right-radius:var(--bar-border-radius);border-bottom-left-radius:0}.range-tick.sc-nano-range:last-of-type[dir=rtl]{border-top-left-radius:var(--bar-border-radius);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--bar-border-radius)}.range-tick-active.sc-nano-range{background:transparent}.range-pin.sc-nano-range{-webkit-transform:translate3d(0, 0, 0) scale(0.01);transform:translate3d(0, 0, 0) scale(0.01);-webkit-transform-origin:center top;transform-origin:center top;padding:0.66em 0;border-radius:50%;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;position:relative;min-width:2.33em;height:2.33em;-webkit-transition:background 120ms ease, -webkit-transform 120ms ease;transition:background 120ms ease, -webkit-transform 120ms ease;transition:transform 120ms ease, background 120ms ease;transition:transform 120ms ease, background 120ms ease, -webkit-transform 120ms ease;background:var(--pin-background);color:var(--pin-color);font-size:0.75em}.range-pin.sc-nano-range::before{left:50%;top:0.25em;margin-left:-1.08em;border-radius:50% 50% 50% 0;position:absolute;width:2.16em;height:2.16em;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transition:background 120ms ease;transition:background 120ms ease;background:var(--pin-background);content:"";z-index:-1}.range-pin.sc-nano-range::before[dir=rtl]{left:unset;right:unset;right:50%}.range-pin.sc-nano-range::before[dir=rtl]{left:unset}.range-knob-pressed.sc-nano-range .range-pin.sc-nano-range{-webkit-transform:translate3d(0, -50%, 0) scale(1);transform:translate3d(0, -50%, 0) scale(1);-webkit-transform:translate3d(0, calc((100% - var(--bar-height)) * -1), 0) scale(1);transform:translate3d(0, calc((100% - var(--bar-height)) * -1), 0) scale(1)}.range-disabled.sc-nano-range-h{pointer-events:none}.range-disabled.sc-nano-range-h .range-bar-active.sc-nano-range,.range-disabled.sc-nano-range-h .range-bar.sc-nano-range,.range-disabled.sc-nano-range-h .range-tick.sc-nano-range{background-color:rgba(var(--rgb-inactive), 0.5)}.range-disabled.sc-nano-range-h .range-knob.sc-nano-range{-webkit-transform:scale(0.55);transform:scale(0.55);outline:5px solid #fff;background-color:rgba(var(--rgb-inactive), 0.5)}.nano-color.sc-nano-range-h .range-bar-active.sc-nano-range,.nano-color.sc-nano-range-h .range-knob.sc-nano-range,.nano-color.sc-nano-range-h .range-pin.sc-nano-range,.nano-color.sc-nano-range-h .range-pin.sc-nano-range::before,.nano-color.sc-nano-range-h .range-tick.sc-nano-range{background:var(--nano-color-base);color:var(--nano-color-contrast)}.nano-color.sc-nano-range-h .range-bar.sc-nano-range{background:rgba(var(--nano-color-base-rgb), 0.26)}.nano-color.sc-nano-range-h .range-knob-handle.sc-nano-range:active .range-knob.sc-nano-range,.nano-color.sc-nano-range-h .range-knob-handle.sc-nano-range:focus .range-knob.sc-nano-range{-webkit-box-shadow:var(--knob-box-shadow), 0 0 0 5px rgba(var(--nano-color-tint-rgb), 0.56);box-shadow:var(--knob-box-shadow), 0 0 0 5px rgba(var(--nano-color-tint-rgb), 0.56)}';let c=class{constructor(a){r(this,a);this.nanoChange=n(this,"nanoChange",7);this.nanoStyle=n(this,"nanoStyle",7);this.nanoFocus=n(this,"nanoFocus",7);this.nanoBlur=n(this,"nanoBlur",7);this.noUpdate=false;this.hasFocus=false;this.ratioA=0;this.ratioB=0;this.debounce=0;this.name="";this.dualKnobs=false;this.min=0;this.max=100;this.pin=false;this.snaps=false;this.step=1;this.ticks=false;this.disabled=false;this.value=0;this.clampBounds=r=>s(this.min,r,this.max);this.ensureValueInBounds=r=>{if(this.dualKnobs){return{lower:this.clampBounds(r.lower),upper:this.clampBounds(r.upper)}}else{return this.clampBounds(r)}};this.handleKeyboard=(r,n)=>{let a=this.step;a=a>0?a:1;a=a/(this.max-this.min);if(!n){a*=-1}if(r==="A"){this.ratioA=s(0,this.ratioA+a,1)}else{this.ratioB=s(0,this.ratioB+a,1)}this.updateValue()};this.onBlur=()=>{if(this.hasFocus){this.hasFocus=false;this.nanoBlur.emit();this.emitStyle()}};this.onFocus=()=>{if(!this.hasFocus){this.hasFocus=true;this.nanoFocus.emit();this.emitStyle()}}}debounceChanged(){this.nanoChange=g(this.nanoChange,this.debounce)}minChanged(){if(!this.noUpdate){this.updateRatio()}}maxChanged(){if(!this.noUpdate){this.updateRatio()}}disabledChanged(){if(this.gesture){this.gesture.enable(!this.disabled)}this.emitStyle()}valueChanged(r){if(!this.noUpdate){this.updateRatio()}r=this.ensureValueInBounds(r);this.nanoChange.emit({value:r})}connectedCallback(){this.updateRatio();this.debounceChanged();this.disabledChanged()}disconnectedCallback(){if(this.gesture){this.gesture.destroy();this.gesture=undefined}}async componentDidLoad(){const r=this.rangeSlider;if(r){this.gesture=(await __sc_import_nano_components("./p-945bc3ed.js")).createGesture({el:r,gestureName:"range",gesturePriority:100,threshold:0,onStart:r=>this.onStart(r),onMove:r=>this.onMove(r),onEnd:r=>this.onEnd(r)});this.gesture.enable(!this.disabled)}}getValue(){const r=this.value||0;if(this.dualKnobs){if(typeof r==="object"){return r}return{lower:0,upper:r}}else{if(typeof r==="object"){return r.upper}return r}}emitStyle(){this.nanoStyle.emit({interactive:true,"interactive-disabled":this.disabled})}onStart(r){const n=this.rect=this.rangeSlider.getBoundingClientRect();const a=r.currentX;let e=s(0,(a-n.left)/n.width,1);if(document.dir==="rtl"){e=1-e}this.pressedKnob=!this.dualKnobs||Math.abs(this.ratioA-e)<Math.abs(this.ratioB-e)?"A":"B";this.setFocus(this.pressedKnob);this.update(a)}onMove(r){this.update(r.currentX)}onEnd(r){this.update(r.currentX);this.pressedKnob=undefined}update(r){const n=this.rect;let a=s(0,(r-n.left)/n.width,1);if(document.dir==="rtl"){a=1-a}if(this.snaps){a=l(d(a,this.min,this.max,this.step),this.min,this.max)}if(this.pressedKnob==="A"){this.ratioA=a}else{this.ratioB=a}this.updateValue()}get valA(){return d(this.ratioA,this.min,this.max,this.step)}get valB(){return d(this.ratioB,this.min,this.max,this.step)}get ratioLower(){if(this.dualKnobs){return Math.min(this.ratioA,this.ratioB)}return 0}get ratioUpper(){if(this.dualKnobs){return Math.max(this.ratioA,this.ratioB)}return this.ratioA}updateRatio(){const r=this.getValue();const{min:n,max:a}=this;if(this.dualKnobs){this.ratioA=l(r.lower,n,a);this.ratioB=l(r.upper,n,a)}else{this.ratioA=l(r,n,a)}}updateValue(){this.noUpdate=true;const{valA:r,valB:n}=this;this.value=!this.dualKnobs?r:{lower:Math.min(r,n),upper:Math.max(r,n)};this.noUpdate=false}setFocus(r){if(this.el.shadowRoot){const n=this.el.shadowRoot.querySelector(r==="A"?".range-knob-a":".range-knob-b");if(n){n.focus()}}}render(){const{min:r,max:n,step:t,el:s,handleKeyboard:g,pressedKnob:b,disabled:c,pin:d,ratioLower:u,ratioUpper:p}=this;const f=`${u*100}%`;const m=`${100-p*100}%`;const k=document;const v=k.dir==="rtl";const w=v?"right":"left";const x=v?"left":"right";const y=r=>({[w]:r[w]});const z={[w]:f,[x]:m};const A=[];if(this.snaps&&this.ticks){for(let a=r;a<=n;a+=t){const e=l(a,r,n);const t={ratio:e,active:e>=u&&e<=p};t[w]=`${e*100}%`;A.push(t)}}o(true,s,this.name,JSON.stringify(this.getValue()),c);return a(e,{onFocusin:this.onFocus,onFocusout:this.onBlur,class:i(this.color,{"range-disabled":c,"range-pressed":b!==undefined,"range-has-pin":d,"range-snaps":this.snaps})},a("div",{class:"range-wrap"},a("slot",{name:"start"}),a("div",{class:"range-slider",ref:r=>this.rangeSlider=r},A.map((r=>a("span",{style:y(r),role:"presentation",class:{"range-tick":true,"range-tick-active":r.active},part:r.active?"tick-active":"tick"}))),a("div",{class:"range-bar",role:"presentation",part:"bar"}),a("div",{class:"range-bar range-bar-active",role:"presentation",style:z,part:"bar-active"}),h(v,{knob:"A",pressed:b==="A",value:this.valA,ratio:this.ratioA,pin:d,disabled:c,handleKeyboard:g,min:r,max:n}),this.dualKnobs&&h(v,{knob:"B",pressed:b==="B",value:this.valB,ratio:this.ratioB,pin:d,disabled:c,handleKeyboard:g,min:r,max:n})),a("slot",{name:"end"})))}get el(){return t(this)}static get watchers(){return{debounce:["debounceChanged"],min:["minChanged"],max:["maxChanged"],disabled:["disabledChanged"],value:["valueChanged"]}}};const h=(r,{knob:n,value:e,ratio:t,min:s,max:o,disabled:i,pressed:g,pin:b,handleKeyboard:c})=>{const h=r?"right":"left";const d=()=>{const r={};r[h]=`${t*100}%`;return r};return a("div",{onKeyDown:r=>{const a=r.key;if(a==="ArrowLeft"||a==="ArrowDown"){c(n,false);r.preventDefault();r.stopPropagation()}else if(a==="ArrowRight"||a==="ArrowUp"){c(n,true);r.preventDefault();r.stopPropagation()}},class:{"range-knob-handle":true,"range-knob-a":n==="A","range-knob-b":n==="B","range-knob-pressed":g,"range-knob-min":e===s,"range-knob-max":e===o},style:d(),role:"slider",tabindex:i?-1:0,"aria-valuemin":s,"aria-valuemax":o,"aria-disabled":i?"true":null,"aria-valuenow":e},b&&a("div",{class:"range-pin",role:"presentation",part:"pin"},Math.round(e)),a("div",{class:"range-knob",role:"presentation",part:"knob"}))};const d=(r,n,a,e)=>{let t=(a-n)*r;if(e>0){t=Math.round(t/e)*e+n}return s(n,t,a)};const l=(r,n,a)=>s(0,(r-n)/(a-n),1);c.style=b;export{c as nano_range};
5
+ //# sourceMappingURL=p-2e6c55e2.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["src/components/range/range.scss?tag=nano-range&encapsulation=scoped","src/components/range/range.tsx"],"names":["rangeCss","Range","[object Object]","hostRef","this","noUpdate","hasFocus","ratioA","ratioB","debounce","name","dualKnobs","min","max","pin","snaps","step","ticks","disabled","value","clampBounds","clamp","ensureValueInBounds","lower","upper","handleKeyboard","knob","isIncrease","updateValue","onBlur","nanoBlur","emit","emitStyle","onFocus","nanoFocus","nanoChange","debounceEvent","updateRatio","gesture","enable","debounceChanged","disabledChanged","destroy","undefined","rangeSlider","__sc_import_nano_components","createGesture","el","gestureName","gesturePriority","threshold","onStart","ev","onMove","onEnd","nanoStyle","interactive","interactive-disabled","detail","rect","getBoundingClientRect","currentX","ratio","left","width","document","dir","pressedKnob","Math","abs","setFocus","update","valueToRatio","ratioToValue","valA","valB","ratioLower","ratioUpper","getValue","shadowRoot","knobEl","querySelector","focus","barStart","barEnd","doc","isRTL","start","end","tickStyle","tick","barStyle","active","push","renderHiddenInput","JSON","stringify","h","Host","onFocusin","onFocusout","class","createColorClasses","color","range-disabled","range-pressed","range-has-pin","range-snaps","ref","rangeEl","map","style","role","range-tick","range-tick-active","part","renderKnob","pressed","knobStyle","onKeyDown","key","preventDefault","stopPropagation","range-knob-handle","range-knob-a","range-knob-b","range-knob-pressed","range-knob-min","range-knob-max","tabindex","aria-valuemin","aria-valuemax","aria-disabled","aria-valuenow","round"],"mappings":";;;yKAAA,MAAMA,EAAW,g9RCuCJC,EAAK,MALlBC,YAAAC,iKAMUC,KAAAC,SAAW,MAEXD,KAAAE,SAAW,MAMFF,KAAAG,OAAS,EACTH,KAAAI,OAAS,EAalBJ,KAAAK,SAAW,EAUXL,KAAAM,KAAO,GAKPN,KAAAO,UAAY,MAKZP,KAAAQ,IAAM,EAWNR,KAAAS,IAAM,IAYNT,KAAAU,IAAM,MAMNV,KAAAW,MAAQ,MAKRX,KAAAY,KAAO,EAMPZ,KAAAa,MAAQ,MAKRb,KAAAc,SAAW,MAYMd,KAAAe,MAAoB,EAYrCf,KAAAgB,YAAeD,GACdE,EAAMjB,KAAKQ,IAAKO,EAAOf,KAAKS,KAG7BT,KAAAkB,oBAAuBH,IAC7B,GAAIf,KAAKO,UAAW,CAClB,MAAO,CACLY,MAAOnB,KAAKgB,YAAYD,EAAMI,OAC9BC,MAAOpB,KAAKgB,YAAYD,EAAMK,YAE3B,CACL,OAAOpB,KAAKgB,YAAYD,KAsDpBf,KAAAqB,eAAiB,CAACC,EAAgBC,KACxC,IAAIX,EAAOZ,KAAKY,KAChBA,EAAOA,EAAO,EAAIA,EAAO,EACzBA,EAAOA,GAAQZ,KAAKS,IAAMT,KAAKQ,KAC/B,IAAKe,EAAY,CACfX,IAAS,EAEX,GAAIU,IAAS,IAAK,CAChBtB,KAAKG,OAASc,EAAM,EAAGjB,KAAKG,OAASS,EAAM,OACtC,CACLZ,KAAKI,OAASa,EAAM,EAAGjB,KAAKI,OAASQ,EAAM,GAE7CZ,KAAKwB,eAkJCxB,KAAAyB,OAAS,KACf,GAAIzB,KAAKE,SAAU,CACjBF,KAAKE,SAAW,MAChBF,KAAK0B,SAASC,OACd3B,KAAK4B,cAID5B,KAAA6B,QAAU,KAChB,IAAK7B,KAAKE,SAAU,CAClBF,KAAKE,SAAW,KAChBF,KAAK8B,UAAUH,OACf3B,KAAK4B,cAjUC9B,kBACRE,KAAK+B,WAAaC,EAAchC,KAAK+B,WAAY/B,KAAKK,UAkB9CP,aACR,IAAKE,KAAKC,SAAU,CAClBD,KAAKiC,eASCnC,aACR,IAAKE,KAAKC,SAAU,CAClBD,KAAKiC,eAgCCnC,kBACR,GAAIE,KAAKkC,QAAS,CAChBlC,KAAKkC,QAAQC,QAAQnC,KAAKc,UAE5Bd,KAAK4B,YAQG9B,aAAaiB,GACrB,IAAKf,KAAKC,SAAU,CAClBD,KAAKiC,cAGPlB,EAAQf,KAAKkB,oBAAoBH,GAEjCf,KAAK+B,WAAWJ,KAAK,CAAEZ,MAAAA,IAuCzBjB,oBACEE,KAAKiC,cACLjC,KAAKoC,kBACLpC,KAAKqC,kBAGPvC,uBACE,GAAIE,KAAKkC,QAAS,CAChBlC,KAAKkC,QAAQI,UACbtC,KAAKkC,QAAUK,WAInBzC,yBACE,MAAM0C,EAAcxC,KAAKwC,YACzB,GAAIA,EAAa,CACfxC,KAAKkC,eAAiBO,4BAAO,oBAA8BC,cAAc,CACvEC,GAAIH,EACJI,YAAa,QACbC,gBAAiB,IACjBC,UAAW,EACXC,QAAUC,GAAOhD,KAAK+C,QAAQC,GAC9BC,OAASD,GAAOhD,KAAKiD,OAAOD,GAC5BE,MAAQF,GAAOhD,KAAKkD,MAAMF,KAE5BhD,KAAKkC,QAAQC,QAAQnC,KAAKc,WAmBtBhB,WACN,MAAMiB,EAAQf,KAAKe,OAAS,EAC5B,GAAIf,KAAKO,UAAW,CAClB,UAAWQ,IAAU,SAAU,CAC7B,OAAOA,EAET,MAAO,CACLI,MAAO,EACPC,MAAOL,OAEJ,CACL,UAAWA,IAAU,SAAU,CAC7B,OAAOA,EAAMK,MAEf,OAAOL,GAIHjB,YACNE,KAAKmD,UAAUxB,KAAK,CAClByB,YAAa,KACbC,uBAAwBrD,KAAKc,WAIzBhB,QAAQwD,GACd,MAAMC,EAAQvD,KAAKuD,KAAOvD,KAAKwC,YAAagB,wBAC5C,MAAMC,EAAWH,EAAOG,SAGxB,IAAIC,EAAQzC,EAAM,GAAIwC,EAAWF,EAAKI,MAAQJ,EAAKK,MAAO,GAC1D,GAAIC,SAASC,MAAQ,MAAO,CAC1BJ,EAAQ,EAAIA,EAGd1D,KAAK+D,aACF/D,KAAKO,WACNyD,KAAKC,IAAIjE,KAAKG,OAASuD,GAASM,KAAKC,IAAIjE,KAAKI,OAASsD,GACnD,IACA,IAEN1D,KAAKkE,SAASlE,KAAK+D,aAGnB/D,KAAKmE,OAAOV,GAGN3D,OAAOwD,GACbtD,KAAKmE,OAAOb,EAAOG,UAGb3D,MAAMwD,GACZtD,KAAKmE,OAAOb,EAAOG,UACnBzD,KAAK+D,YAAcxB,UAGbzC,OAAO2D,GAGb,MAAMF,EAAOvD,KAAKuD,KAClB,IAAIG,EAAQzC,EAAM,GAAIwC,EAAWF,EAAKI,MAAQJ,EAAKK,MAAO,GAC1D,GAAIC,SAASC,MAAQ,MAAO,CAC1BJ,EAAQ,EAAIA,EAGd,GAAI1D,KAAKW,MAAO,CAEd+C,EAAQU,EACNC,EAAaX,EAAO1D,KAAKQ,IAAKR,KAAKS,IAAKT,KAAKY,MAC7CZ,KAAKQ,IACLR,KAAKS,KAKT,GAAIT,KAAK+D,cAAgB,IAAK,CAC5B/D,KAAKG,OAASuD,MACT,CACL1D,KAAKI,OAASsD,EAIhB1D,KAAKwB,cAGP8C,WACE,OAAOD,EAAarE,KAAKG,OAAQH,KAAKQ,IAAKR,KAAKS,IAAKT,KAAKY,MAG5D2D,WACE,OAAOF,EAAarE,KAAKI,OAAQJ,KAAKQ,IAAKR,KAAKS,IAAKT,KAAKY,MAG5D4D,iBACE,GAAIxE,KAAKO,UAAW,CAClB,OAAOyD,KAAKxD,IAAIR,KAAKG,OAAQH,KAAKI,QAEpC,OAAO,EAGTqE,iBACE,GAAIzE,KAAKO,UAAW,CAClB,OAAOyD,KAAKvD,IAAIT,KAAKG,OAAQH,KAAKI,QAEpC,OAAOJ,KAAKG,OAGNL,cACN,MAAMiB,EAAQf,KAAK0E,WACnB,MAAMlE,IAAEA,EAAGC,IAAEA,GAAQT,KACrB,GAAIA,KAAKO,UAAW,CAClBP,KAAKG,OAASiE,EAAarD,EAAMI,MAAOX,EAAKC,GAC7CT,KAAKI,OAASgE,EAAarD,EAAMK,MAAOZ,EAAKC,OACxC,CACLT,KAAKG,OAASiE,EAAarD,EAAOP,EAAKC,IAInCX,cACNE,KAAKC,SAAW,KAEhB,MAAMqE,KAAEA,EAAIC,KAAEA,GAASvE,KACvBA,KAAKe,OAASf,KAAKO,UACf+D,EACA,CACEnD,MAAO6C,KAAKxD,IAAI8D,EAAMC,GACtBnD,MAAO4C,KAAKvD,IAAI6D,EAAMC,IAG5BvE,KAAKC,SAAW,MAGVH,SAASwB,GACf,GAAItB,KAAK2C,GAAGgC,WAAY,CACtB,MAAMC,EAAS5E,KAAK2C,GAAGgC,WAAWE,cAChCvD,IAAS,IAAM,gBAAkB,iBAEnC,GAAIsD,EAAQ,CACVA,EAAOE,UAqBbhF,SACE,MAAMU,IACJA,EAAGC,IACHA,EAAGG,KACHA,EAAI+B,GACJA,EAAEtB,eACFA,EAAc0C,YACdA,EAAWjD,SACXA,EAAQJ,IACRA,EAAG8D,WACHA,EAAUC,WACVA,GACEzE,KAEJ,MAAM+E,EAAW,GAAGP,EAAa,OACjC,MAAMQ,EAAS,GAAG,IAAMP,EAAa,OAErC,MAAMQ,EAAMpB,SACZ,MAAMqB,EAAQD,EAAInB,MAAQ,MAC1B,MAAMqB,EAAQD,EAAQ,QAAU,OAChC,MAAME,EAAMF,EAAQ,OAAS,QAE7B,MAAMG,EAAaC,IACV,CACLxF,CAACqF,GAAQG,EAAKH,KAIlB,MAAMI,EAAW,CACfzF,CAACqF,GAAQJ,EACTjF,CAACsF,GAAMJ,GAGT,MAAMnE,EAAQ,GACd,GAAIb,KAAKW,OAASX,KAAKa,MAAO,CAC5B,IAAK,IAAIE,EAAQP,EAAKO,GAASN,EAAKM,GAASH,EAAM,CACjD,MAAM8C,EAAQU,EAAarD,EAAOP,EAAKC,GAEvC,MAAM6E,EAAY,CAChB5B,MAAAA,EACA8B,OAAQ9B,GAASc,GAAcd,GAASe,GAG1Ca,EAAKH,GAAS,GAAGzB,EAAQ,OAEzB7C,EAAM4E,KAAKH,IAIfI,EACE,KACA/C,EACA3C,KAAKM,KACLqF,KAAKC,UAAU5F,KAAK0E,YACpB5D,GAGF,OACE+E,EAACC,EAAI,CACHC,UAAW/F,KAAK6B,QAChBmE,WAAYhG,KAAKyB,OACjBwE,MAAOC,EAAmBlG,KAAKmG,MAAO,CACpCC,iBAAkBtF,EAClBuF,gBAAiBtC,IAAgBxB,UACjC+D,gBAAiB5F,EACjB6F,cAAevG,KAAKW,SAGtBkF,EAAA,MAAA,CAAKI,MAAM,cACTJ,EAAA,OAAA,CAAMvF,KAAK,UACXuF,EAAA,MAAA,CACEI,MAAM,eACNO,IAAMC,GAAazG,KAAKwC,YAAciE,GAErC5F,EAAM6F,KAAKpB,GACVO,EAAA,OAAA,CACEc,MAAOtB,EAAUC,GACjBsB,KAAK,eACLX,MAAO,CACLY,aAAc,KACdC,oBAAqBxB,EAAKE,QAE5BuB,KAAMzB,EAAKE,OAAS,cAAgB,WAIxCK,EAAA,MAAA,CAAKI,MAAM,YAAYW,KAAK,eAAeG,KAAK,QAChDlB,EAAA,MAAA,CACEI,MAAM,6BACNW,KAAK,eACLD,MAAOpB,EACPwB,KAAK,eAGNC,EAAW9B,EAAO,CACjB5D,KAAM,IACN2F,QAASlD,IAAgB,IACzBhD,MAAOf,KAAKsE,KACZZ,MAAO1D,KAAKG,OACZO,IAAAA,EACAI,SAAAA,EACAO,eAAAA,EACAb,IAAAA,EACAC,IAAAA,IAGDT,KAAKO,WACJyG,EAAW9B,EAAO,CAChB5D,KAAM,IACN2F,QAASlD,IAAgB,IACzBhD,MAAOf,KAAKuE,KACZb,MAAO1D,KAAKI,OACZM,IAAAA,EACAI,SAAAA,EACAO,eAAAA,EACAb,IAAAA,EACAC,IAAAA,KAGNoF,EAAA,OAAA,CAAMvF,KAAK,yLAoBrB,MAAM0G,EAAa,CACjB9B,GAEE5D,KAAAA,EACAP,MAAAA,EACA2C,MAAAA,EACAlD,IAAAA,EACAC,IAAAA,EACAK,SAAAA,EACAmG,QAAAA,EACAvG,IAAAA,EACAW,eAAAA,MAGF,MAAM8D,EAAQD,EAAQ,QAAU,OAEhC,MAAMgC,EAAY,KAChB,MAAMP,EAAa,GACnBA,EAAMxB,GAAS,GAAGzB,EAAQ,OAC1B,OAAOiD,GAGT,OACEd,EAAA,MAAA,CACEsB,UAAYnE,IACV,MAAMoE,EAAMpE,EAAGoE,IACf,GAAIA,IAAQ,aAAeA,IAAQ,YAAa,CAC9C/F,EAAeC,EAAM,OACrB0B,EAAGqE,iBACHrE,EAAGsE,uBACE,GAAIF,IAAQ,cAAgBA,IAAQ,UAAW,CACpD/F,EAAeC,EAAM,MACrB0B,EAAGqE,iBACHrE,EAAGsE,oBAGPrB,MAAO,CACLsB,oBAAqB,KACrBC,eAAgBlG,IAAS,IACzBmG,eAAgBnG,IAAS,IACzBoG,qBAAsBT,EACtBU,iBAAkB5G,IAAUP,EAC5BoH,iBAAkB7G,IAAUN,GAE9BkG,MAAOO,IACPN,KAAK,SACLiB,SAAU/G,GAAY,EAAI,EAACgH,gBACZtH,EAAGuH,gBACHtH,EAAGuH,gBACHlH,EAAW,OAAS,KAAImH,gBACxBlH,GAEdL,GACCmF,EAAA,MAAA,CAAKI,MAAM,YAAYW,KAAK,eAAeG,KAAK,OAC7C/C,KAAKkE,MAAMnH,IAGhB8E,EAAA,MAAA,CAAKI,MAAM,aAAaW,KAAK,eAAeG,KAAK,WAKvD,MAAM1C,EAAe,CACnBX,EACAlD,EACAC,EACAG,KAEA,IAAIG,GAASN,EAAMD,GAAOkD,EAC1B,GAAI9C,EAAO,EAAG,CACZG,EAAQiD,KAAKkE,MAAMnH,EAAQH,GAAQA,EAAOJ,EAE5C,OAAOS,EAAMT,EAAKO,EAAON,IAG3B,MAAM2D,EAAe,CAACrD,EAAeP,EAAaC,IACzCQ,EAAM,GAAIF,EAAQP,IAAQC,EAAMD,GAAM","sourcesContent":["@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n\n// Range\n// --------------------------------------------------\n\n:host {\n /**\n * @prop --knob-handle-size: defaults to calc(var(--knob-size) * 2);\n * @prop --rgb-inactive: defaults to #{color-to-rgb-list(#a5a5a5)};\n * @prop --bar-background: Background of the range bar; Defaults to #e2e1e0;\n * @prop --bar-background-active: Background of the active range bar; Defaults to #a5a5a5;\n * @prop --bar-height: Height of the range bar; Defaults to 8px;\n * @prop --bar-border-radius: Border radius of the range bar; Defaults to 4px;\n * @prop --height: Height of the range. Defaults to 42px;\n * @prop --knob-background: Background of the range knob. Defaults to #{nano-color(primary, base)};\n * @prop --knob-border-radius: Border radius of the range knob. Defaults to 50%;\n * @prop --knob-box-shadow: Box shadow of the range knob; Defaults to 0 2px 4px 0 rgba(0, 0, 0, 0.3);\n * @prop --knob-size: Size of the range knob; Defaults to 30px;\n * @prop --pin-background: Background of the range pin; Defaults to #{nano-color(primary, base)};\n * @prop --pin-color: Color of the range pin; Defaults to #{nano-color(primary, contrast)};\n * @prop --focus-style: Focus shadow around knob; Defaults to 0 0 0 5px #{$control-focus-color};\n */\n --knob-handle-size: (var(--knob-size) * 2);\n --rgb-inactive: #{color-to-rgb-list(#a5a5a5)};\n --knob-border-radius: 50%;\n --knob-background: #{nano-color(primary, base)};\n --knob-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.3);\n --knob-size: 30px;\n --bar-height: 8px;\n --bar-background: #e2e1e0;\n --bar-background-active: #a5a5a5;\n --bar-border-radius: 4px;\n --height: 42px;\n --pin-background: #{nano-color(primary, base)};\n --pin-color: #{nano-color(primary, contrast)};\n --focus-style: 0 0 0 5px #{$control-focus-color};\n}\n\n.range-wrap {\n display: flex;\n position: relative;\n flex: 3;\n align-items: center;\n user-select: none;\n\n &::slotted(ion-icon[slot]),\n ::slotted(ion-icon[slot]) {\n font-size: 1.5em;\n }\n\n &::slotted([slot='start']),\n ::slotted([slot='start']) {\n @include margin(0, 14px, 0, 0);\n\n font-size: 0.9em;\n }\n\n &::slotted([slot='end']),\n ::slotted([slot='end']) {\n @include margin(0, 0, 0, 14px);\n\n font-size: 0.9em;\n }\n}\n\n.range-slider {\n position: relative;\n flex: 1;\n width: 100%;\n height: var(--height);\n contain: size layout style;\n cursor: grab;\n touch-action: pan-y;\n}\n\n:host(.range-pressed) .range-slider {\n cursor: grabbing;\n}\n\n// bar\n\n.range-bar {\n @include border-radius(var(--bar-border-radius));\n @include position(\n calc((var(--height) - var(--bar-height)) / 2),\n null,\n null,\n 0\n );\n\n :host(.range-snaps) & {\n @include border-radius(\n var(--bar-border-radius),\n 0,\n 0,\n var(--bar-border-radius)\n );\n }\n\n @include rtl() {\n /* stylelint-disable-next-line property-blacklist */\n left: unset;\n }\n\n position: absolute;\n width: 100%;\n height: var(--bar-height);\n background: var(--bar-background);\n pointer-events: none;\n}\n\n.range-bar-active {\n bottom: 0;\n width: auto;\n background: var(--bar-background-active);\n\n :host(.range-pressed) {\n will-change: left, right;\n }\n}\n\n// knob\n\n.range-knob {\n @include border-radius(var(--knob-border-radius));\n @include position(\n calc(50% - var(--knob-size) / 2),\n null,\n null,\n calc(50% - var(--knob-size) / 2)\n );\n\n @include rtl() {\n /* stylelint-disable-next-line property-blacklist */\n left: unset;\n }\n\n position: absolute;\n width: var(--knob-size);\n height: var(--knob-size);\n background: var(--knob-background);\n box-shadow: var(--knob-box-shadow);\n z-index: 2;\n pointer-events: none;\n transform: scale(0.67);\n transition-duration: 120ms;\n transition-property: transform, background-color, border;\n transition-timing-function: ease;\n\n :host(:not(.range-has-pin)) .range-knob-pressed & {\n transform: scale(1);\n }\n}\n\n.range-knob-handle {\n @include position(\n calc((var(--height) - var(--knob-handle-size)) / 2),\n null,\n null,\n 0\n );\n @include margin-horizontal(calc(0px - var(--knob-handle-size) / 2), null);\n\n @include rtl() {\n /* stylelint-disable-next-line property-blacklist */\n left: unset;\n }\n\n position: absolute;\n width: calc(var(--knob-handle-size));\n height: calc(var(--knob-handle-size));\n text-align: center;\n\n &:active,\n &:focus {\n outline: none;\n\n .range-knob {\n box-shadow: var(--knob-box-shadow), var(--focus-style);\n }\n }\n}\n\n// ticks\n\n.range-tick {\n position: absolute;\n top: calc((var(--height) - var(--bar-height)) / 2);\n width: var(--bar-height);\n height: var(--bar-height);\n background: var(--bar-background-active);\n z-index: 1;\n pointer-events: none;\n\n &:first-of-type {\n @include border-radius(\n var(--bar-border-radius),\n 0,\n 0,\n var(--bar-border-radius)\n );\n }\n\n &:last-of-type {\n @include border-radius(\n 0,\n var(--bar-border-radius),\n var(--bar-border-radius),\n 0\n );\n }\n\n &-active {\n background: transparent;\n }\n}\n\n// pin\n\n.range-pin {\n transform: translate3d(0, 0, 0) scale(0.01);\n transform-origin: center top;\n padding: 0.66em 0;\n border-radius: 50%;\n text-align: center;\n box-sizing: border-box;\n display: inline-block;\n position: relative;\n min-width: 2.33em;\n height: 2.33em;\n transition: transform 120ms ease, background 120ms ease;\n background: var(--pin-background);\n color: var(--pin-color);\n font-size: 0.75em;\n\n &::before {\n @include position(0.25em, null, null, 50%);\n\n margin-left: -1.08em;\n\n @include multi-dir() {\n /* stylelint-disable-next-line property-blacklist */\n border-radius: 50% 50% 50% 0;\n }\n\n @include rtl() {\n /* stylelint-disable-next-line property-blacklist */\n left: unset;\n }\n\n position: absolute;\n width: 2.16em;\n height: 2.16em;\n transform: rotate(-45deg);\n transition: background 120ms ease;\n background: var(--pin-background);\n content: '';\n z-index: -1;\n }\n\n .range-knob-pressed & {\n transform: translate3d(0, -50%, 0) scale(1);\n transform: translate3d(0, calc((100% - var(--bar-height)) * -1), 0) scale(1);\n }\n}\n\n// disabled\n\n:host(.range-disabled) {\n pointer-events: none;\n\n .range-bar-active,\n .range-bar,\n .range-tick {\n background-color: rgba(var(--rgb-inactive), 0.5);\n }\n\n .range-knob {\n transform: scale(0.55);\n outline: 5px solid #fff;\n background-color: rgba(var(--rgb-inactive), 0.5);\n }\n}\n\n// theme\n\n:host(.nano-color) {\n .range-bar-active,\n .range-knob,\n .range-pin,\n .range-pin::before,\n .range-tick {\n background: current-color(base);\n color: current-color(contrast);\n }\n\n .range-bar {\n background: current-color(base, 0.26);\n }\n\n .range-knob-handle {\n &:active,\n &:focus {\n .range-knob {\n box-shadow: var(--knob-box-shadow), 0 0 0 5px current-color(tint, 0.56);\n }\n }\n }\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n State,\n Watch,\n h,\n} from '@stencil/core';\nimport {\n Color,\n Gesture,\n GestureDetail,\n KnobName,\n RangeChangeEventDetail,\n RangeValue,\n StyleEventDetail,\n} from '../../interface';\nimport { clamp, debounceEvent, renderHiddenInput } from '../../utils';\nimport { createColorClasses } from '../../utils/theme';\n\n/**\n * The Range slider lets users select from a range of values by moving\n * the slider knob. It can accept dual knobs, but by default one knob controls the value of the range.\n *\n * Labels can be placed on either side of the range by adding the\n * `slot=\"start\"` or `slot=\"end\"` to the element.\n *\n * @slot start - Content is placed to the left of the range slider in LTR, and to the right in RTL.\n * @slot end - Content is placed to the right of the range slider in LTR, and to the left in RTL.\n */\n@Component({\n tag: 'nano-range',\n styleUrl: 'range.scss',\n scoped: true,\n})\nexport class Range implements ComponentInterface {\n private noUpdate = false;\n private rect!: ClientRect;\n private hasFocus = false;\n private rangeSlider?: HTMLElement;\n private gesture?: Gesture;\n\n @Element() el!: HTMLNanoRangeElement;\n\n @State() private ratioA = 0;\n @State() private ratioB = 0;\n @State() private pressedKnob: KnobName;\n\n /**\n * The color to use from your application's color palette.\n * Default options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`\n */\n @Prop() color?: Color;\n\n /**\n * How long, in milliseconds, to wait to trigger the\n * `nanoChange` event after each change in the range value.\n */\n @Prop() debounce = 0;\n\n @Watch('debounce')\n protected debounceChanged() {\n this.nanoChange = debounceEvent(this.nanoChange, this.debounce);\n }\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name = '';\n\n /**\n * Show two knobs.\n */\n @Prop() dualKnobs = false;\n\n /**\n * Minimum integer value of the range.\n */\n @Prop() min = 0;\n @Watch('min')\n protected minChanged() {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n }\n\n /**\n * Maximum integer value of the range.\n */\n @Prop() max = 100;\n @Watch('max')\n protected maxChanged() {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n }\n\n /**\n * If `true`, a pin with integer value is shown when the knob\n * is pressed.\n */\n @Prop() pin = false;\n\n /**\n * If `true`, the knob snaps to tick marks evenly spaced based\n * on the step property value.\n */\n @Prop() snaps = false;\n\n /**\n * Specifies the value granularity.\n */\n @Prop() step = 1;\n\n /**\n * If `true`, tick marks are displayed based on the step value.\n * Only applies when `snaps` is `true`.\n */\n @Prop() ticks = false;\n\n /**\n * If `true`, the user cannot interact with the range.\n */\n @Prop() disabled = false;\n @Watch('disabled')\n protected disabledChanged() {\n if (this.gesture) {\n this.gesture.enable(!this.disabled);\n }\n this.emitStyle();\n }\n\n /**\n * the value of the range.\n */\n @Prop({ mutable: true }) value: RangeValue = 0;\n @Watch('value')\n protected valueChanged(value: RangeValue) {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n\n value = this.ensureValueInBounds(value);\n\n this.nanoChange.emit({ value });\n }\n\n private clampBounds = (value: any): number => {\n return clamp(this.min, value, this.max);\n };\n\n private ensureValueInBounds = (value: any) => {\n if (this.dualKnobs) {\n return {\n lower: this.clampBounds(value.lower),\n upper: this.clampBounds(value.upper),\n };\n } else {\n return this.clampBounds(value);\n }\n };\n\n /**\n * Emitted when the value property has changed.\n */\n @Event() nanoChange!: EventEmitter<RangeChangeEventDetail>;\n\n /**\n * Emitted when the styles change.\n * @internal\n */\n @Event() nanoStyle!: EventEmitter<StyleEventDetail>;\n\n /**\n * Emitted when the range has focus.\n */\n @Event() nanoFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the range loses focus.\n */\n @Event() nanoBlur!: EventEmitter<void>;\n\n connectedCallback() {\n this.updateRatio();\n this.debounceChanged();\n this.disabledChanged();\n }\n\n disconnectedCallback() {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n\n async componentDidLoad() {\n const rangeSlider = this.rangeSlider;\n if (rangeSlider) {\n this.gesture = (await import('../../utils/gesture/index')).createGesture({\n el: rangeSlider,\n gestureName: 'range',\n gesturePriority: 100,\n threshold: 0,\n onStart: (ev) => this.onStart(ev),\n onMove: (ev) => this.onMove(ev),\n onEnd: (ev) => this.onEnd(ev),\n });\n this.gesture.enable(!this.disabled);\n }\n }\n\n private handleKeyboard = (knob: KnobName, isIncrease: boolean) => {\n let step = this.step;\n step = step > 0 ? step : 1;\n step = step / (this.max - this.min);\n if (!isIncrease) {\n step *= -1;\n }\n if (knob === 'A') {\n this.ratioA = clamp(0, this.ratioA + step, 1);\n } else {\n this.ratioB = clamp(0, this.ratioB + step, 1);\n }\n this.updateValue();\n };\n\n private getValue(): RangeValue {\n const value = this.value || 0;\n if (this.dualKnobs) {\n if (typeof value === 'object') {\n return value;\n }\n return {\n lower: 0,\n upper: value,\n };\n } else {\n if (typeof value === 'object') {\n return value.upper;\n }\n return value;\n }\n }\n\n private emitStyle() {\n this.nanoStyle.emit({\n interactive: true,\n 'interactive-disabled': this.disabled,\n });\n }\n\n private onStart(detail: GestureDetail) {\n const rect = (this.rect = this.rangeSlider!.getBoundingClientRect() as any);\n const currentX = detail.currentX;\n\n // figure out which knob they started closer to\n let ratio = clamp(0, (currentX - rect.left) / rect.width, 1);\n if (document.dir === 'rtl') {\n ratio = 1 - ratio;\n }\n\n this.pressedKnob =\n !this.dualKnobs ||\n Math.abs(this.ratioA - ratio) < Math.abs(this.ratioB - ratio)\n ? 'A'\n : 'B';\n\n this.setFocus(this.pressedKnob);\n\n // update the active knob's position\n this.update(currentX);\n }\n\n private onMove(detail: GestureDetail) {\n this.update(detail.currentX);\n }\n\n private onEnd(detail: GestureDetail) {\n this.update(detail.currentX);\n this.pressedKnob = undefined;\n }\n\n private update(currentX: number) {\n // figure out where the pointer is currently at\n // update the knob being interacted with\n const rect = this.rect;\n let ratio = clamp(0, (currentX - rect.left) / rect.width, 1);\n if (document.dir === 'rtl') {\n ratio = 1 - ratio;\n }\n\n if (this.snaps) {\n // snaps the ratio to the current value\n ratio = valueToRatio(\n ratioToValue(ratio, this.min, this.max, this.step),\n this.min,\n this.max\n );\n }\n\n // update which knob is pressed\n if (this.pressedKnob === 'A') {\n this.ratioA = ratio;\n } else {\n this.ratioB = ratio;\n }\n\n // Update input value\n this.updateValue();\n }\n\n private get valA() {\n return ratioToValue(this.ratioA, this.min, this.max, this.step);\n }\n\n private get valB() {\n return ratioToValue(this.ratioB, this.min, this.max, this.step);\n }\n\n private get ratioLower() {\n if (this.dualKnobs) {\n return Math.min(this.ratioA, this.ratioB);\n }\n return 0;\n }\n\n private get ratioUpper() {\n if (this.dualKnobs) {\n return Math.max(this.ratioA, this.ratioB);\n }\n return this.ratioA;\n }\n\n private updateRatio() {\n const value = this.getValue() as any;\n const { min, max } = this;\n if (this.dualKnobs) {\n this.ratioA = valueToRatio(value.lower, min, max);\n this.ratioB = valueToRatio(value.upper, min, max);\n } else {\n this.ratioA = valueToRatio(value, min, max);\n }\n }\n\n private updateValue() {\n this.noUpdate = true;\n\n const { valA, valB } = this;\n this.value = !this.dualKnobs\n ? valA\n : {\n lower: Math.min(valA, valB),\n upper: Math.max(valA, valB),\n };\n\n this.noUpdate = false;\n }\n\n private setFocus(knob: KnobName) {\n if (this.el.shadowRoot) {\n const knobEl = this.el.shadowRoot.querySelector(\n knob === 'A' ? '.range-knob-a' : '.range-knob-b'\n ) as HTMLElement | undefined;\n if (knobEl) {\n knobEl.focus();\n }\n }\n }\n\n private onBlur = () => {\n if (this.hasFocus) {\n this.hasFocus = false;\n this.nanoBlur.emit();\n this.emitStyle();\n }\n };\n\n private onFocus = () => {\n if (!this.hasFocus) {\n this.hasFocus = true;\n this.nanoFocus.emit();\n this.emitStyle();\n }\n };\n\n render() {\n const {\n min,\n max,\n step,\n el,\n handleKeyboard,\n pressedKnob,\n disabled,\n pin,\n ratioLower,\n ratioUpper,\n } = this;\n\n const barStart = `${ratioLower * 100}%`;\n const barEnd = `${100 - ratioUpper * 100}%`;\n\n const doc = document;\n const isRTL = doc.dir === 'rtl';\n const start = isRTL ? 'right' : 'left';\n const end = isRTL ? 'left' : 'right';\n\n const tickStyle = (tick: any) => {\n return {\n [start]: tick[start],\n };\n };\n\n const barStyle = {\n [start]: barStart,\n [end]: barEnd,\n };\n\n const ticks = [];\n if (this.snaps && this.ticks) {\n for (let value = min; value <= max; value += step) {\n const ratio = valueToRatio(value, min, max);\n\n const tick: any = {\n ratio,\n active: ratio >= ratioLower && ratio <= ratioUpper,\n };\n\n tick[start] = `${ratio * 100}%`;\n\n ticks.push(tick);\n }\n }\n\n renderHiddenInput(\n true,\n el,\n this.name,\n JSON.stringify(this.getValue()),\n disabled\n );\n\n return (\n <Host\n onFocusin={this.onFocus}\n onFocusout={this.onBlur}\n class={createColorClasses(this.color, {\n 'range-disabled': disabled,\n 'range-pressed': pressedKnob !== undefined,\n 'range-has-pin': pin,\n 'range-snaps': this.snaps,\n })}\n >\n <div class=\"range-wrap\">\n <slot name=\"start\"></slot>\n <div\n class=\"range-slider\"\n ref={(rangeEl) => (this.rangeSlider = rangeEl)}\n >\n {ticks.map((tick) => (\n <span\n style={tickStyle(tick)}\n role=\"presentation\"\n class={{\n 'range-tick': true,\n 'range-tick-active': tick.active,\n }}\n part={tick.active ? 'tick-active' : 'tick'}\n />\n ))}\n\n <div class=\"range-bar\" role=\"presentation\" part=\"bar\" />\n <div\n class=\"range-bar range-bar-active\"\n role=\"presentation\"\n style={barStyle}\n part=\"bar-active\"\n />\n\n {renderKnob(isRTL, {\n knob: 'A',\n pressed: pressedKnob === 'A',\n value: this.valA,\n ratio: this.ratioA,\n pin,\n disabled,\n handleKeyboard,\n min,\n max,\n })}\n\n {this.dualKnobs &&\n renderKnob(isRTL, {\n knob: 'B',\n pressed: pressedKnob === 'B',\n value: this.valB,\n ratio: this.ratioB,\n pin,\n disabled,\n handleKeyboard,\n min,\n max,\n })}\n </div>\n <slot name=\"end\"></slot>\n </div>\n </Host>\n );\n }\n}\n\ninterface RangeKnob {\n knob: KnobName;\n value: number;\n ratio: number;\n min: number;\n max: number;\n disabled: boolean;\n pressed: boolean;\n pin: boolean;\n\n handleKeyboard: (name: KnobName, isIncrease: boolean) => void;\n}\n\nconst renderKnob = (\n isRTL: boolean,\n {\n knob,\n value,\n ratio,\n min,\n max,\n disabled,\n pressed,\n pin,\n handleKeyboard,\n }: RangeKnob\n) => {\n const start = isRTL ? 'right' : 'left';\n\n const knobStyle = () => {\n const style: any = {};\n style[start] = `${ratio * 100}%`;\n return style;\n };\n\n return (\n <div\n onKeyDown={(ev: KeyboardEvent) => {\n const key = ev.key;\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n handleKeyboard(knob, false);\n ev.preventDefault();\n ev.stopPropagation();\n } else if (key === 'ArrowRight' || key === 'ArrowUp') {\n handleKeyboard(knob, true);\n ev.preventDefault();\n ev.stopPropagation();\n }\n }}\n class={{\n 'range-knob-handle': true,\n 'range-knob-a': knob === 'A',\n 'range-knob-b': knob === 'B',\n 'range-knob-pressed': pressed,\n 'range-knob-min': value === min,\n 'range-knob-max': value === max,\n }}\n style={knobStyle()}\n role=\"slider\"\n tabindex={disabled ? -1 : 0}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-disabled={disabled ? 'true' : null}\n aria-valuenow={value}\n >\n {pin && (\n <div class=\"range-pin\" role=\"presentation\" part=\"pin\">\n {Math.round(value)}\n </div>\n )}\n <div class=\"range-knob\" role=\"presentation\" part=\"knob\" />\n </div>\n );\n};\n\nconst ratioToValue = (\n ratio: number,\n min: number,\n max: number,\n step: number\n): number => {\n let value = (max - min) * ratio;\n if (step > 0) {\n value = Math.round(value / step) * step + min;\n }\n return clamp(min, value, max);\n};\n\nconst valueToRatio = (value: number, min: number, max: number): number => {\n return clamp(0, (value - min) / (max - min), 1);\n};\n"]}
1
+ {"version":3,"sources":["src/components/range/range.scss?tag=nano-range&encapsulation=scoped","src/components/range/range.tsx"],"names":["rangeCss","Range","[object Object]","hostRef","this","noUpdate","hasFocus","ratioA","ratioB","debounce","name","dualKnobs","min","max","pin","snaps","step","ticks","disabled","value","clampBounds","clamp","ensureValueInBounds","lower","upper","handleKeyboard","knob","isIncrease","updateValue","onBlur","nanoBlur","emit","emitStyle","onFocus","nanoFocus","nanoChange","debounceEvent","updateRatio","gesture","enable","debounceChanged","disabledChanged","destroy","undefined","rangeSlider","__sc_import_nano_components","createGesture","el","gestureName","gesturePriority","threshold","onStart","ev","onMove","onEnd","nanoStyle","interactive","interactive-disabled","detail","rect","getBoundingClientRect","currentX","ratio","left","width","document","dir","pressedKnob","Math","abs","setFocus","update","valueToRatio","ratioToValue","valA","valB","ratioLower","ratioUpper","getValue","shadowRoot","knobEl","querySelector","focus","barStart","barEnd","doc","isRTL","start","end","tickStyle","tick","barStyle","active","push","renderHiddenInput","JSON","stringify","h","Host","onFocusin","onFocusout","class","createColorClasses","color","range-disabled","range-pressed","range-has-pin","range-snaps","ref","rangeEl","map","style","role","range-tick","range-tick-active","part","renderKnob","pressed","knobStyle","onKeyDown","key","preventDefault","stopPropagation","range-knob-handle","range-knob-a","range-knob-b","range-knob-pressed","range-knob-min","range-knob-max","tabindex","aria-valuemin","aria-valuemax","aria-disabled","aria-valuenow","round"],"mappings":";;;yKAAA,MAAMA,EAAW,+/RCuCJC,EAAK,MALlBC,YAAAC,iKAMUC,KAAAC,SAAW,MAEXD,KAAAE,SAAW,MAMFF,KAAAG,OAAS,EACTH,KAAAI,OAAS,EAalBJ,KAAAK,SAAW,EAUXL,KAAAM,KAAO,GAKPN,KAAAO,UAAY,MAKZP,KAAAQ,IAAM,EAWNR,KAAAS,IAAM,IAYNT,KAAAU,IAAM,MAMNV,KAAAW,MAAQ,MAKRX,KAAAY,KAAO,EAMPZ,KAAAa,MAAQ,MAKRb,KAAAc,SAAW,MAYMd,KAAAe,MAAoB,EAYrCf,KAAAgB,YAAeD,GACdE,EAAMjB,KAAKQ,IAAKO,EAAOf,KAAKS,KAG7BT,KAAAkB,oBAAuBH,IAC7B,GAAIf,KAAKO,UAAW,CAClB,MAAO,CACLY,MAAOnB,KAAKgB,YAAYD,EAAMI,OAC9BC,MAAOpB,KAAKgB,YAAYD,EAAMK,YAE3B,CACL,OAAOpB,KAAKgB,YAAYD,KAsDpBf,KAAAqB,eAAiB,CAACC,EAAgBC,KACxC,IAAIX,EAAOZ,KAAKY,KAChBA,EAAOA,EAAO,EAAIA,EAAO,EACzBA,EAAOA,GAAQZ,KAAKS,IAAMT,KAAKQ,KAC/B,IAAKe,EAAY,CACfX,IAAS,EAEX,GAAIU,IAAS,IAAK,CAChBtB,KAAKG,OAASc,EAAM,EAAGjB,KAAKG,OAASS,EAAM,OACtC,CACLZ,KAAKI,OAASa,EAAM,EAAGjB,KAAKI,OAASQ,EAAM,GAE7CZ,KAAKwB,eAkJCxB,KAAAyB,OAAS,KACf,GAAIzB,KAAKE,SAAU,CACjBF,KAAKE,SAAW,MAChBF,KAAK0B,SAASC,OACd3B,KAAK4B,cAID5B,KAAA6B,QAAU,KAChB,IAAK7B,KAAKE,SAAU,CAClBF,KAAKE,SAAW,KAChBF,KAAK8B,UAAUH,OACf3B,KAAK4B,cAjUC9B,kBACRE,KAAK+B,WAAaC,EAAchC,KAAK+B,WAAY/B,KAAKK,UAkB9CP,aACR,IAAKE,KAAKC,SAAU,CAClBD,KAAKiC,eASCnC,aACR,IAAKE,KAAKC,SAAU,CAClBD,KAAKiC,eAgCCnC,kBACR,GAAIE,KAAKkC,QAAS,CAChBlC,KAAKkC,QAAQC,QAAQnC,KAAKc,UAE5Bd,KAAK4B,YAQG9B,aAAaiB,GACrB,IAAKf,KAAKC,SAAU,CAClBD,KAAKiC,cAGPlB,EAAQf,KAAKkB,oBAAoBH,GAEjCf,KAAK+B,WAAWJ,KAAK,CAAEZ,MAAAA,IAuCzBjB,oBACEE,KAAKiC,cACLjC,KAAKoC,kBACLpC,KAAKqC,kBAGPvC,uBACE,GAAIE,KAAKkC,QAAS,CAChBlC,KAAKkC,QAAQI,UACbtC,KAAKkC,QAAUK,WAInBzC,yBACE,MAAM0C,EAAcxC,KAAKwC,YACzB,GAAIA,EAAa,CACfxC,KAAKkC,eAAiBO,4BAAO,oBAA8BC,cAAc,CACvEC,GAAIH,EACJI,YAAa,QACbC,gBAAiB,IACjBC,UAAW,EACXC,QAAUC,GAAOhD,KAAK+C,QAAQC,GAC9BC,OAASD,GAAOhD,KAAKiD,OAAOD,GAC5BE,MAAQF,GAAOhD,KAAKkD,MAAMF,KAE5BhD,KAAKkC,QAAQC,QAAQnC,KAAKc,WAmBtBhB,WACN,MAAMiB,EAAQf,KAAKe,OAAS,EAC5B,GAAIf,KAAKO,UAAW,CAClB,UAAWQ,IAAU,SAAU,CAC7B,OAAOA,EAET,MAAO,CACLI,MAAO,EACPC,MAAOL,OAEJ,CACL,UAAWA,IAAU,SAAU,CAC7B,OAAOA,EAAMK,MAEf,OAAOL,GAIHjB,YACNE,KAAKmD,UAAUxB,KAAK,CAClByB,YAAa,KACbC,uBAAwBrD,KAAKc,WAIzBhB,QAAQwD,GACd,MAAMC,EAAQvD,KAAKuD,KAAOvD,KAAKwC,YAAagB,wBAC5C,MAAMC,EAAWH,EAAOG,SAGxB,IAAIC,EAAQzC,EAAM,GAAIwC,EAAWF,EAAKI,MAAQJ,EAAKK,MAAO,GAC1D,GAAIC,SAASC,MAAQ,MAAO,CAC1BJ,EAAQ,EAAIA,EAGd1D,KAAK+D,aACF/D,KAAKO,WACNyD,KAAKC,IAAIjE,KAAKG,OAASuD,GAASM,KAAKC,IAAIjE,KAAKI,OAASsD,GACnD,IACA,IAEN1D,KAAKkE,SAASlE,KAAK+D,aAGnB/D,KAAKmE,OAAOV,GAGN3D,OAAOwD,GACbtD,KAAKmE,OAAOb,EAAOG,UAGb3D,MAAMwD,GACZtD,KAAKmE,OAAOb,EAAOG,UACnBzD,KAAK+D,YAAcxB,UAGbzC,OAAO2D,GAGb,MAAMF,EAAOvD,KAAKuD,KAClB,IAAIG,EAAQzC,EAAM,GAAIwC,EAAWF,EAAKI,MAAQJ,EAAKK,MAAO,GAC1D,GAAIC,SAASC,MAAQ,MAAO,CAC1BJ,EAAQ,EAAIA,EAGd,GAAI1D,KAAKW,MAAO,CAEd+C,EAAQU,EACNC,EAAaX,EAAO1D,KAAKQ,IAAKR,KAAKS,IAAKT,KAAKY,MAC7CZ,KAAKQ,IACLR,KAAKS,KAKT,GAAIT,KAAK+D,cAAgB,IAAK,CAC5B/D,KAAKG,OAASuD,MACT,CACL1D,KAAKI,OAASsD,EAIhB1D,KAAKwB,cAGP8C,WACE,OAAOD,EAAarE,KAAKG,OAAQH,KAAKQ,IAAKR,KAAKS,IAAKT,KAAKY,MAG5D2D,WACE,OAAOF,EAAarE,KAAKI,OAAQJ,KAAKQ,IAAKR,KAAKS,IAAKT,KAAKY,MAG5D4D,iBACE,GAAIxE,KAAKO,UAAW,CAClB,OAAOyD,KAAKxD,IAAIR,KAAKG,OAAQH,KAAKI,QAEpC,OAAO,EAGTqE,iBACE,GAAIzE,KAAKO,UAAW,CAClB,OAAOyD,KAAKvD,IAAIT,KAAKG,OAAQH,KAAKI,QAEpC,OAAOJ,KAAKG,OAGNL,cACN,MAAMiB,EAAQf,KAAK0E,WACnB,MAAMlE,IAAEA,EAAGC,IAAEA,GAAQT,KACrB,GAAIA,KAAKO,UAAW,CAClBP,KAAKG,OAASiE,EAAarD,EAAMI,MAAOX,EAAKC,GAC7CT,KAAKI,OAASgE,EAAarD,EAAMK,MAAOZ,EAAKC,OACxC,CACLT,KAAKG,OAASiE,EAAarD,EAAOP,EAAKC,IAInCX,cACNE,KAAKC,SAAW,KAEhB,MAAMqE,KAAEA,EAAIC,KAAEA,GAASvE,KACvBA,KAAKe,OAASf,KAAKO,UACf+D,EACA,CACEnD,MAAO6C,KAAKxD,IAAI8D,EAAMC,GACtBnD,MAAO4C,KAAKvD,IAAI6D,EAAMC,IAG5BvE,KAAKC,SAAW,MAGVH,SAASwB,GACf,GAAItB,KAAK2C,GAAGgC,WAAY,CACtB,MAAMC,EAAS5E,KAAK2C,GAAGgC,WAAWE,cAChCvD,IAAS,IAAM,gBAAkB,iBAEnC,GAAIsD,EAAQ,CACVA,EAAOE,UAqBbhF,SACE,MAAMU,IACJA,EAAGC,IACHA,EAAGG,KACHA,EAAI+B,GACJA,EAAEtB,eACFA,EAAc0C,YACdA,EAAWjD,SACXA,EAAQJ,IACRA,EAAG8D,WACHA,EAAUC,WACVA,GACEzE,KAEJ,MAAM+E,EAAW,GAAGP,EAAa,OACjC,MAAMQ,EAAS,GAAG,IAAMP,EAAa,OAErC,MAAMQ,EAAMpB,SACZ,MAAMqB,EAAQD,EAAInB,MAAQ,MAC1B,MAAMqB,EAAQD,EAAQ,QAAU,OAChC,MAAME,EAAMF,EAAQ,OAAS,QAE7B,MAAMG,EAAaC,IACV,CACLxF,CAACqF,GAAQG,EAAKH,KAIlB,MAAMI,EAAW,CACfzF,CAACqF,GAAQJ,EACTjF,CAACsF,GAAMJ,GAGT,MAAMnE,EAAQ,GACd,GAAIb,KAAKW,OAASX,KAAKa,MAAO,CAC5B,IAAK,IAAIE,EAAQP,EAAKO,GAASN,EAAKM,GAASH,EAAM,CACjD,MAAM8C,EAAQU,EAAarD,EAAOP,EAAKC,GAEvC,MAAM6E,EAAY,CAChB5B,MAAAA,EACA8B,OAAQ9B,GAASc,GAAcd,GAASe,GAG1Ca,EAAKH,GAAS,GAAGzB,EAAQ,OAEzB7C,EAAM4E,KAAKH,IAIfI,EACE,KACA/C,EACA3C,KAAKM,KACLqF,KAAKC,UAAU5F,KAAK0E,YACpB5D,GAGF,OACE+E,EAACC,EAAI,CACHC,UAAW/F,KAAK6B,QAChBmE,WAAYhG,KAAKyB,OACjBwE,MAAOC,EAAmBlG,KAAKmG,MAAO,CACpCC,iBAAkBtF,EAClBuF,gBAAiBtC,IAAgBxB,UACjC+D,gBAAiB5F,EACjB6F,cAAevG,KAAKW,SAGtBkF,EAAA,MAAA,CAAKI,MAAM,cACTJ,EAAA,OAAA,CAAMvF,KAAK,UACXuF,EAAA,MAAA,CACEI,MAAM,eACNO,IAAMC,GAAazG,KAAKwC,YAAciE,GAErC5F,EAAM6F,KAAKpB,GACVO,EAAA,OAAA,CACEc,MAAOtB,EAAUC,GACjBsB,KAAK,eACLX,MAAO,CACLY,aAAc,KACdC,oBAAqBxB,EAAKE,QAE5BuB,KAAMzB,EAAKE,OAAS,cAAgB,WAIxCK,EAAA,MAAA,CAAKI,MAAM,YAAYW,KAAK,eAAeG,KAAK,QAChDlB,EAAA,MAAA,CACEI,MAAM,6BACNW,KAAK,eACLD,MAAOpB,EACPwB,KAAK,eAGNC,EAAW9B,EAAO,CACjB5D,KAAM,IACN2F,QAASlD,IAAgB,IACzBhD,MAAOf,KAAKsE,KACZZ,MAAO1D,KAAKG,OACZO,IAAAA,EACAI,SAAAA,EACAO,eAAAA,EACAb,IAAAA,EACAC,IAAAA,IAGDT,KAAKO,WACJyG,EAAW9B,EAAO,CAChB5D,KAAM,IACN2F,QAASlD,IAAgB,IACzBhD,MAAOf,KAAKuE,KACZb,MAAO1D,KAAKI,OACZM,IAAAA,EACAI,SAAAA,EACAO,eAAAA,EACAb,IAAAA,EACAC,IAAAA,KAGNoF,EAAA,OAAA,CAAMvF,KAAK,yLAoBrB,MAAM0G,EAAa,CACjB9B,GAEE5D,KAAAA,EACAP,MAAAA,EACA2C,MAAAA,EACAlD,IAAAA,EACAC,IAAAA,EACAK,SAAAA,EACAmG,QAAAA,EACAvG,IAAAA,EACAW,eAAAA,MAGF,MAAM8D,EAAQD,EAAQ,QAAU,OAEhC,MAAMgC,EAAY,KAChB,MAAMP,EAAa,GACnBA,EAAMxB,GAAS,GAAGzB,EAAQ,OAC1B,OAAOiD,GAGT,OACEd,EAAA,MAAA,CACEsB,UAAYnE,IACV,MAAMoE,EAAMpE,EAAGoE,IACf,GAAIA,IAAQ,aAAeA,IAAQ,YAAa,CAC9C/F,EAAeC,EAAM,OACrB0B,EAAGqE,iBACHrE,EAAGsE,uBACE,GAAIF,IAAQ,cAAgBA,IAAQ,UAAW,CACpD/F,EAAeC,EAAM,MACrB0B,EAAGqE,iBACHrE,EAAGsE,oBAGPrB,MAAO,CACLsB,oBAAqB,KACrBC,eAAgBlG,IAAS,IACzBmG,eAAgBnG,IAAS,IACzBoG,qBAAsBT,EACtBU,iBAAkB5G,IAAUP,EAC5BoH,iBAAkB7G,IAAUN,GAE9BkG,MAAOO,IACPN,KAAK,SACLiB,SAAU/G,GAAY,EAAI,EAACgH,gBACZtH,EAAGuH,gBACHtH,EAAGuH,gBACHlH,EAAW,OAAS,KAAImH,gBACxBlH,GAEdL,GACCmF,EAAA,MAAA,CAAKI,MAAM,YAAYW,KAAK,eAAeG,KAAK,OAC7C/C,KAAKkE,MAAMnH,IAGhB8E,EAAA,MAAA,CAAKI,MAAM,aAAaW,KAAK,eAAeG,KAAK,WAKvD,MAAM1C,EAAe,CACnBX,EACAlD,EACAC,EACAG,KAEA,IAAIG,GAASN,EAAMD,GAAOkD,EAC1B,GAAI9C,EAAO,EAAG,CACZG,EAAQiD,KAAKkE,MAAMnH,EAAQH,GAAQA,EAAOJ,EAE5C,OAAOS,EAAMT,EAAKO,EAAON,IAG3B,MAAM2D,EAAe,CAACrD,EAAeP,EAAaC,IACzCQ,EAAM,GAAIF,EAAQP,IAAQC,EAAMD,GAAM","sourcesContent":["@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n\n// Range\n// --------------------------------------------------\n\n:host {\n /**\n * @prop --knob-handle-size: defaults to calc(var(--knob-size) * 2);\n * @prop --rgb-inactive: defaults to #{color-to-rgb-list(#a5a5a5)};\n * @prop --bar-background: Background of the range bar; Defaults to #e2e1e0;\n * @prop --bar-background-active: Background of the active range bar; Defaults to #a5a5a5;\n * @prop --bar-height: Height of the range bar; Defaults to 8px;\n * @prop --bar-border-radius: Border radius of the range bar; Defaults to 4px;\n * @prop --height: Height of the range. Defaults to 42px;\n * @prop --knob-background: Background of the range knob. Defaults to #{nano-color(primary, base)};\n * @prop --knob-border-radius: Border radius of the range knob. Defaults to 50%;\n * @prop --knob-box-shadow: Box shadow of the range knob; Defaults to 0 2px 4px 0 rgba(0, 0, 0, 0.3);\n * @prop --knob-size: Size of the range knob; Defaults to 30px;\n * @prop --pin-background: Background of the range pin; Defaults to #{nano-color(primary, base)};\n * @prop --pin-color: Color of the range pin; Defaults to #{nano-color(primary, contrast)};\n * @prop --focus-style: Focus shadow around knob; Defaults to 0 0 0 5px #{$control-focus-color};\n */\n --knob-handle-size: (var(--knob-size) * 2);\n --rgb-inactive: #{color-to-rgb-list(#a5a5a5)};\n --knob-border-radius: 50%;\n --knob-background: #{nano-color(primary, base)};\n --knob-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.3);\n --knob-size: 30px;\n --bar-height: 8px;\n --bar-background: #e2e1e0;\n --bar-background-active: #a5a5a5;\n --bar-border-radius: 4px;\n --height: 42px;\n --pin-background: #{nano-color(primary, base)};\n --pin-color: #{nano-color(primary, contrast)};\n --focus-style: 0 0 0 5px #{$control-focus-color};\n}\n\n.range-wrap {\n display: flex;\n position: relative;\n flex: 3;\n align-items: center;\n user-select: none;\n\n &::slotted(ion-icon[slot]),\n ::slotted(ion-icon[slot]) {\n font-size: 1.5em;\n }\n\n &::slotted([slot='start']),\n ::slotted([slot='start']) {\n @include margin(0, 14px, 0, 0);\n\n font-size: 0.9em;\n }\n\n &::slotted([slot='end']),\n ::slotted([slot='end']) {\n @include margin(0, 0, 0, 14px);\n\n font-size: 0.9em;\n }\n}\n\n.range-slider {\n position: relative;\n flex: 1;\n width: 100%;\n height: var(--height);\n contain: size layout style;\n cursor: grab;\n touch-action: pan-y;\n}\n\n:host(.range-pressed) .range-slider {\n cursor: grabbing;\n}\n\n// bar\n\n.range-bar {\n @include border-radius(var(--bar-border-radius));\n @include position(\n calc((var(--height) - var(--bar-height)) / 2),\n null,\n null,\n 0\n );\n\n :host(.range-snaps) & {\n @include border-radius(\n var(--bar-border-radius),\n 0,\n 0,\n var(--bar-border-radius)\n );\n }\n\n @include rtl() {\n /* stylelint-disable-next-line property-blacklist */\n left: unset;\n }\n\n position: absolute;\n width: 100%;\n height: var(--bar-height);\n background: var(--bar-background);\n pointer-events: none;\n}\n\n.range-bar-active {\n bottom: 0;\n width: auto;\n background: var(--bar-background-active);\n\n :host(.range-pressed) {\n will-change: left, right;\n }\n}\n\n// knob\n\n.range-knob {\n @include border-radius(var(--knob-border-radius));\n @include position(\n calc(50% - var(--knob-size) / 2),\n null,\n null,\n calc(50% - var(--knob-size) / 2)\n );\n\n @include rtl() {\n /* stylelint-disable-next-line property-blacklist */\n left: unset;\n }\n\n position: absolute;\n width: var(--knob-size);\n height: var(--knob-size);\n background: var(--knob-background);\n box-shadow: var(--knob-box-shadow);\n z-index: 2;\n pointer-events: none;\n transform: scale(0.67);\n transition-duration: 120ms;\n transition-property: transform, background-color, border;\n transition-timing-function: ease;\n\n :host(:not(.range-has-pin)) .range-knob-pressed & {\n transform: scale(1);\n }\n}\n\n.range-knob-handle {\n @include position(\n calc((var(--height) - var(--knob-handle-size)) / 2),\n null,\n null,\n 0\n );\n @include margin-horizontal(calc(0px - var(--knob-handle-size) / 2), null);\n\n @include rtl() {\n /* stylelint-disable-next-line property-blacklist */\n left: unset;\n }\n\n position: absolute;\n width: calc(var(--knob-handle-size));\n height: calc(var(--knob-handle-size));\n text-align: center;\n\n &:active,\n &:focus {\n outline: none;\n\n .range-knob {\n box-shadow: var(--knob-box-shadow), var(--focus-style);\n }\n }\n}\n\n// ticks\n\n.range-tick {\n position: absolute;\n top: calc((var(--height) - var(--bar-height)) / 2);\n width: var(--bar-height);\n height: var(--bar-height);\n background: var(--bar-background-active);\n z-index: 1;\n pointer-events: none;\n\n &:first-of-type {\n @include border-radius(\n var(--bar-border-radius),\n 0,\n 0,\n var(--bar-border-radius)\n );\n }\n\n &:last-of-type {\n @include border-radius(\n 0,\n var(--bar-border-radius),\n var(--bar-border-radius),\n 0\n );\n }\n\n &-active {\n background: transparent;\n }\n}\n\n// pin\n\n.range-pin {\n transform: translate3d(0, 0, 0) scale(0.01);\n transform-origin: center top;\n padding: 0.66em 0;\n border-radius: 50%;\n text-align: center;\n box-sizing: border-box;\n display: inline-block;\n position: relative;\n min-width: 2.33em;\n height: 2.33em;\n transition: transform 120ms ease, background 120ms ease;\n background: var(--pin-background);\n color: var(--pin-color);\n font-size: 0.75em;\n\n &::before {\n @include position(0.25em, null, null, 50%);\n\n margin-left: -1.08em;\n\n @include multi-dir() {\n /* stylelint-disable-next-line property-blacklist */\n border-radius: 50% 50% 50% 0;\n }\n\n @include rtl() {\n /* stylelint-disable-next-line property-blacklist */\n left: unset;\n }\n\n position: absolute;\n width: 2.16em;\n height: 2.16em;\n transform: rotate(-45deg);\n transition: background 120ms ease;\n background: var(--pin-background);\n content: '';\n z-index: -1;\n }\n\n .range-knob-pressed & {\n transform: translate3d(0, -50%, 0) scale(1);\n transform: translate3d(0, calc((100% - var(--bar-height)) * -1), 0) scale(1);\n }\n}\n\n// disabled\n\n:host(.range-disabled) {\n pointer-events: none;\n\n .range-bar-active,\n .range-bar,\n .range-tick {\n background-color: rgba(var(--rgb-inactive), 0.5);\n }\n\n .range-knob {\n transform: scale(0.55);\n outline: 5px solid #fff;\n background-color: rgba(var(--rgb-inactive), 0.5);\n }\n}\n\n// theme\n\n:host(.nano-color) {\n .range-bar-active,\n .range-knob,\n .range-pin,\n .range-pin::before,\n .range-tick {\n background: current-color(base);\n color: current-color(contrast);\n }\n\n .range-bar {\n background: current-color(base, 0.26);\n }\n\n .range-knob-handle {\n &:active,\n &:focus {\n .range-knob {\n box-shadow: var(--knob-box-shadow), 0 0 0 5px current-color(tint, 0.56);\n }\n }\n }\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n State,\n Watch,\n h,\n} from '@stencil/core';\nimport {\n Color,\n Gesture,\n GestureDetail,\n KnobName,\n RangeChangeEventDetail,\n RangeValue,\n StyleEventDetail,\n} from '../../interface';\nimport { clamp, debounceEvent, renderHiddenInput } from '../../utils';\nimport { createColorClasses } from '../../utils/theme';\n\n/**\n * The Range slider lets users select from a range of values by moving\n * the slider knob. It can accept dual knobs, but by default one knob controls the value of the range.\n *\n * Labels can be placed on either side of the range by adding the\n * `slot=\"start\"` or `slot=\"end\"` to the element.\n *\n * @slot start - Content is placed to the left of the range slider in LTR, and to the right in RTL.\n * @slot end - Content is placed to the right of the range slider in LTR, and to the left in RTL.\n */\n@Component({\n tag: 'nano-range',\n styleUrl: 'range.scss',\n scoped: true,\n})\nexport class Range implements ComponentInterface {\n private noUpdate = false;\n private rect!: ClientRect;\n private hasFocus = false;\n private rangeSlider?: HTMLElement;\n private gesture?: Gesture;\n\n @Element() el!: HTMLNanoRangeElement;\n\n @State() private ratioA = 0;\n @State() private ratioB = 0;\n @State() private pressedKnob: KnobName;\n\n /**\n * The color to use from your application's color palette.\n * Default options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`\n */\n @Prop() color?: Color;\n\n /**\n * How long, in milliseconds, to wait to trigger the\n * `nanoChange` event after each change in the range value.\n */\n @Prop() debounce = 0;\n\n @Watch('debounce')\n protected debounceChanged() {\n this.nanoChange = debounceEvent(this.nanoChange, this.debounce);\n }\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name = '';\n\n /**\n * Show two knobs.\n */\n @Prop() dualKnobs = false;\n\n /**\n * Minimum integer value of the range.\n */\n @Prop() min = 0;\n @Watch('min')\n protected minChanged() {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n }\n\n /**\n * Maximum integer value of the range.\n */\n @Prop() max = 100;\n @Watch('max')\n protected maxChanged() {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n }\n\n /**\n * If `true`, a pin with integer value is shown when the knob\n * is pressed.\n */\n @Prop() pin = false;\n\n /**\n * If `true`, the knob snaps to tick marks evenly spaced based\n * on the step property value.\n */\n @Prop() snaps = false;\n\n /**\n * Specifies the value granularity.\n */\n @Prop() step = 1;\n\n /**\n * If `true`, tick marks are displayed based on the step value.\n * Only applies when `snaps` is `true`.\n */\n @Prop() ticks = false;\n\n /**\n * If `true`, the user cannot interact with the range.\n */\n @Prop() disabled = false;\n @Watch('disabled')\n protected disabledChanged() {\n if (this.gesture) {\n this.gesture.enable(!this.disabled);\n }\n this.emitStyle();\n }\n\n /**\n * the value of the range.\n */\n @Prop({ mutable: true }) value: RangeValue = 0;\n @Watch('value')\n protected valueChanged(value: RangeValue) {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n\n value = this.ensureValueInBounds(value);\n\n this.nanoChange.emit({ value });\n }\n\n private clampBounds = (value: any): number => {\n return clamp(this.min, value, this.max);\n };\n\n private ensureValueInBounds = (value: any) => {\n if (this.dualKnobs) {\n return {\n lower: this.clampBounds(value.lower),\n upper: this.clampBounds(value.upper),\n };\n } else {\n return this.clampBounds(value);\n }\n };\n\n /**\n * Emitted when the value property has changed.\n */\n @Event() nanoChange!: EventEmitter<RangeChangeEventDetail>;\n\n /**\n * Emitted when the styles change.\n * @internal\n */\n @Event() nanoStyle!: EventEmitter<StyleEventDetail>;\n\n /**\n * Emitted when the range has focus.\n */\n @Event() nanoFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the range loses focus.\n */\n @Event() nanoBlur!: EventEmitter<void>;\n\n connectedCallback() {\n this.updateRatio();\n this.debounceChanged();\n this.disabledChanged();\n }\n\n disconnectedCallback() {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n\n async componentDidLoad() {\n const rangeSlider = this.rangeSlider;\n if (rangeSlider) {\n this.gesture = (await import('../../utils/gesture/index')).createGesture({\n el: rangeSlider,\n gestureName: 'range',\n gesturePriority: 100,\n threshold: 0,\n onStart: (ev) => this.onStart(ev),\n onMove: (ev) => this.onMove(ev),\n onEnd: (ev) => this.onEnd(ev),\n });\n this.gesture.enable(!this.disabled);\n }\n }\n\n private handleKeyboard = (knob: KnobName, isIncrease: boolean) => {\n let step = this.step;\n step = step > 0 ? step : 1;\n step = step / (this.max - this.min);\n if (!isIncrease) {\n step *= -1;\n }\n if (knob === 'A') {\n this.ratioA = clamp(0, this.ratioA + step, 1);\n } else {\n this.ratioB = clamp(0, this.ratioB + step, 1);\n }\n this.updateValue();\n };\n\n private getValue(): RangeValue {\n const value = this.value || 0;\n if (this.dualKnobs) {\n if (typeof value === 'object') {\n return value;\n }\n return {\n lower: 0,\n upper: value,\n };\n } else {\n if (typeof value === 'object') {\n return value.upper;\n }\n return value;\n }\n }\n\n private emitStyle() {\n this.nanoStyle.emit({\n interactive: true,\n 'interactive-disabled': this.disabled,\n });\n }\n\n private onStart(detail: GestureDetail) {\n const rect = (this.rect = this.rangeSlider!.getBoundingClientRect() as any);\n const currentX = detail.currentX;\n\n // figure out which knob they started closer to\n let ratio = clamp(0, (currentX - rect.left) / rect.width, 1);\n if (document.dir === 'rtl') {\n ratio = 1 - ratio;\n }\n\n this.pressedKnob =\n !this.dualKnobs ||\n Math.abs(this.ratioA - ratio) < Math.abs(this.ratioB - ratio)\n ? 'A'\n : 'B';\n\n this.setFocus(this.pressedKnob);\n\n // update the active knob's position\n this.update(currentX);\n }\n\n private onMove(detail: GestureDetail) {\n this.update(detail.currentX);\n }\n\n private onEnd(detail: GestureDetail) {\n this.update(detail.currentX);\n this.pressedKnob = undefined;\n }\n\n private update(currentX: number) {\n // figure out where the pointer is currently at\n // update the knob being interacted with\n const rect = this.rect;\n let ratio = clamp(0, (currentX - rect.left) / rect.width, 1);\n if (document.dir === 'rtl') {\n ratio = 1 - ratio;\n }\n\n if (this.snaps) {\n // snaps the ratio to the current value\n ratio = valueToRatio(\n ratioToValue(ratio, this.min, this.max, this.step),\n this.min,\n this.max\n );\n }\n\n // update which knob is pressed\n if (this.pressedKnob === 'A') {\n this.ratioA = ratio;\n } else {\n this.ratioB = ratio;\n }\n\n // Update input value\n this.updateValue();\n }\n\n private get valA() {\n return ratioToValue(this.ratioA, this.min, this.max, this.step);\n }\n\n private get valB() {\n return ratioToValue(this.ratioB, this.min, this.max, this.step);\n }\n\n private get ratioLower() {\n if (this.dualKnobs) {\n return Math.min(this.ratioA, this.ratioB);\n }\n return 0;\n }\n\n private get ratioUpper() {\n if (this.dualKnobs) {\n return Math.max(this.ratioA, this.ratioB);\n }\n return this.ratioA;\n }\n\n private updateRatio() {\n const value = this.getValue() as any;\n const { min, max } = this;\n if (this.dualKnobs) {\n this.ratioA = valueToRatio(value.lower, min, max);\n this.ratioB = valueToRatio(value.upper, min, max);\n } else {\n this.ratioA = valueToRatio(value, min, max);\n }\n }\n\n private updateValue() {\n this.noUpdate = true;\n\n const { valA, valB } = this;\n this.value = !this.dualKnobs\n ? valA\n : {\n lower: Math.min(valA, valB),\n upper: Math.max(valA, valB),\n };\n\n this.noUpdate = false;\n }\n\n private setFocus(knob: KnobName) {\n if (this.el.shadowRoot) {\n const knobEl = this.el.shadowRoot.querySelector(\n knob === 'A' ? '.range-knob-a' : '.range-knob-b'\n ) as HTMLElement | undefined;\n if (knobEl) {\n knobEl.focus();\n }\n }\n }\n\n private onBlur = () => {\n if (this.hasFocus) {\n this.hasFocus = false;\n this.nanoBlur.emit();\n this.emitStyle();\n }\n };\n\n private onFocus = () => {\n if (!this.hasFocus) {\n this.hasFocus = true;\n this.nanoFocus.emit();\n this.emitStyle();\n }\n };\n\n render() {\n const {\n min,\n max,\n step,\n el,\n handleKeyboard,\n pressedKnob,\n disabled,\n pin,\n ratioLower,\n ratioUpper,\n } = this;\n\n const barStart = `${ratioLower * 100}%`;\n const barEnd = `${100 - ratioUpper * 100}%`;\n\n const doc = document;\n const isRTL = doc.dir === 'rtl';\n const start = isRTL ? 'right' : 'left';\n const end = isRTL ? 'left' : 'right';\n\n const tickStyle = (tick: any) => {\n return {\n [start]: tick[start],\n };\n };\n\n const barStyle = {\n [start]: barStart,\n [end]: barEnd,\n };\n\n const ticks = [];\n if (this.snaps && this.ticks) {\n for (let value = min; value <= max; value += step) {\n const ratio = valueToRatio(value, min, max);\n\n const tick: any = {\n ratio,\n active: ratio >= ratioLower && ratio <= ratioUpper,\n };\n\n tick[start] = `${ratio * 100}%`;\n\n ticks.push(tick);\n }\n }\n\n renderHiddenInput(\n true,\n el,\n this.name,\n JSON.stringify(this.getValue()),\n disabled\n );\n\n return (\n <Host\n onFocusin={this.onFocus}\n onFocusout={this.onBlur}\n class={createColorClasses(this.color, {\n 'range-disabled': disabled,\n 'range-pressed': pressedKnob !== undefined,\n 'range-has-pin': pin,\n 'range-snaps': this.snaps,\n })}\n >\n <div class=\"range-wrap\">\n <slot name=\"start\"></slot>\n <div\n class=\"range-slider\"\n ref={(rangeEl) => (this.rangeSlider = rangeEl)}\n >\n {ticks.map((tick) => (\n <span\n style={tickStyle(tick)}\n role=\"presentation\"\n class={{\n 'range-tick': true,\n 'range-tick-active': tick.active,\n }}\n part={tick.active ? 'tick-active' : 'tick'}\n />\n ))}\n\n <div class=\"range-bar\" role=\"presentation\" part=\"bar\" />\n <div\n class=\"range-bar range-bar-active\"\n role=\"presentation\"\n style={barStyle}\n part=\"bar-active\"\n />\n\n {renderKnob(isRTL, {\n knob: 'A',\n pressed: pressedKnob === 'A',\n value: this.valA,\n ratio: this.ratioA,\n pin,\n disabled,\n handleKeyboard,\n min,\n max,\n })}\n\n {this.dualKnobs &&\n renderKnob(isRTL, {\n knob: 'B',\n pressed: pressedKnob === 'B',\n value: this.valB,\n ratio: this.ratioB,\n pin,\n disabled,\n handleKeyboard,\n min,\n max,\n })}\n </div>\n <slot name=\"end\"></slot>\n </div>\n </Host>\n );\n }\n}\n\ninterface RangeKnob {\n knob: KnobName;\n value: number;\n ratio: number;\n min: number;\n max: number;\n disabled: boolean;\n pressed: boolean;\n pin: boolean;\n\n handleKeyboard: (name: KnobName, isIncrease: boolean) => void;\n}\n\nconst renderKnob = (\n isRTL: boolean,\n {\n knob,\n value,\n ratio,\n min,\n max,\n disabled,\n pressed,\n pin,\n handleKeyboard,\n }: RangeKnob\n) => {\n const start = isRTL ? 'right' : 'left';\n\n const knobStyle = () => {\n const style: any = {};\n style[start] = `${ratio * 100}%`;\n return style;\n };\n\n return (\n <div\n onKeyDown={(ev: KeyboardEvent) => {\n const key = ev.key;\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n handleKeyboard(knob, false);\n ev.preventDefault();\n ev.stopPropagation();\n } else if (key === 'ArrowRight' || key === 'ArrowUp') {\n handleKeyboard(knob, true);\n ev.preventDefault();\n ev.stopPropagation();\n }\n }}\n class={{\n 'range-knob-handle': true,\n 'range-knob-a': knob === 'A',\n 'range-knob-b': knob === 'B',\n 'range-knob-pressed': pressed,\n 'range-knob-min': value === min,\n 'range-knob-max': value === max,\n }}\n style={knobStyle()}\n role=\"slider\"\n tabindex={disabled ? -1 : 0}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-disabled={disabled ? 'true' : null}\n aria-valuenow={value}\n >\n {pin && (\n <div class=\"range-pin\" role=\"presentation\" part=\"pin\">\n {Math.round(value)}\n </div>\n )}\n <div class=\"range-knob\" role=\"presentation\" part=\"knob\" />\n </div>\n );\n};\n\nconst ratioToValue = (\n ratio: number,\n min: number,\n max: number,\n step: number\n): number => {\n let value = (max - min) * ratio;\n if (step > 0) {\n value = Math.round(value / step) * step + min;\n }\n return clamp(min, value, max);\n};\n\nconst valueToRatio = (value: number, min: number, max: number): number => {\n return clamp(0, (value - min) / (max - min), 1);\n};\n"]}
@@ -2,6 +2,6 @@
2
2
  * Web Components for Nanopore digital Web Apps
3
3
  */
4
4
  import{c as t,a as n}from"./p-69a3e911.js";var e=t((function(t,e){
5
- /*! algoliasearch.umd.js | 4.12.0 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
6
- !function(n,e){t.exports=e()}(n,(function(){function t(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function n(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,r)}return e}function e(e){for(var r=1;r<arguments.length;r++){var u=null!=arguments[r]?arguments[r]:{};r%2?n(Object(u),!0).forEach((function(n){t(e,n,u[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(u)):n(Object(u)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(u,t))}))}return e}function r(t,n){if(null==t)return{};var e,r,u=function(t,n){if(null==t)return{};var e,r,u={},o=Object.keys(t);for(r=0;r<o.length;r++)e=o[r],n.indexOf(e)>=0||(u[e]=t[e]);return u}(t,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r<o.length;r++)e=o[r],n.indexOf(e)>=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(u[e]=t[e])}return u}function u(t,n){return function(t){if(Array.isArray(t))return t}(t)||function(t,n){if(!(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t)))return;var e=[],r=!0,u=!1,o=void 0;try{for(var i,c=t[Symbol.iterator]();!(r=(i=c.next()).done)&&(e.push(i.value),!n||e.length!==n);r=!0);}catch(t){u=!0,o=t}finally{try{r||null==c.return||c.return()}finally{if(u)throw o}}return e}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function o(t){return function(t){if(Array.isArray(t)){for(var n=0,e=new Array(t.length);n<t.length;n++)e[n]=t[n];return e}}(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 n,e="algoliasearch-client-js-".concat(t.key),r=function(){return void 0===n&&(n=t.localStorage||window.localStorage),n},o=function(){return JSON.parse(r().getItem(e)||"{}")};return{get:function(t,n){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){var e=JSON.stringify(t),r=o()[e];return Promise.all([r||n(),void 0!==r])})).then((function(t){var n=u(t,2),r=n[0],o=n[1];return Promise.all([r,o||e.miss(r)])})).then((function(t){return u(t,1)[0]}))},set:function(t,n){return Promise.resolve().then((function(){var u=o();return u[JSON.stringify(t)]=n,r().setItem(e,JSON.stringify(u)),n}))},delete:function(t){return Promise.resolve().then((function(){var n=o();delete n[JSON.stringify(t)],r().setItem(e,JSON.stringify(n))}))},clear:function(){return Promise.resolve().then((function(){r().removeItem(e)}))}}}function c(t){var n=o(t.caches),e=n.shift();return void 0===e?{get:function(t,n){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},r=n();return r.then((function(t){return Promise.all([t,e.miss(t)])})).then((function(t){return u(t,1)[0]}))},set:function(t,n){return Promise.resolve(n)},delete:function(t){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(t,r){var u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return e.get(t,r,u).catch((function(){return c({caches:n}).get(t,r,u)}))},set:function(t,r){return e.set(t,r).catch((function(){return c({caches:n}).set(t,r)}))},delete:function(t){return e.delete(t).catch((function(){return c({caches:n}).delete(t)}))},clear:function(){return e.clear().catch((function(){return c({caches:n}).clear()}))}}}function a(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},n={};return{get:function(e,r){var u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},o=JSON.stringify(e);if(o in n)return Promise.resolve(t.serializable?JSON.parse(n[o]):n[o]);var i=r(),c=u&&u.miss||function(){return Promise.resolve()};return i.then((function(t){return c(t)})).then((function(){return i}))},set:function(e,r){return n[JSON.stringify(e)]=t.serializable?JSON.stringify(r):r,Promise.resolve(r)},delete:function(t){return delete n[JSON.stringify(t)],Promise.resolve()},clear:function(){return n={},Promise.resolve()}}}function s(t,n,e){var r={"x-algolia-api-key":e,"x-algolia-application-id":n};return{headers:function(){return t===p.WithinHeaders?r:{}},queryParameters:function(){return t===p.WithinQueryParameters?r:{}}}}function f(t){var n=0;return t((function e(){return n++,new Promise((function(r){setTimeout((function(){r(t(e))}),Math.min(100*n,1e3))}))}))}function d(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(t,n){return Promise.resolve()};return Object.assign(t,{wait:function(e){return d(t.then((function(t){return Promise.all([n(t,e),t])})).then((function(t){return t[1]})))}})}function l(t){for(var n=t.length-1;n>0;n--){var e=Math.floor(Math.random()*(n+1)),r=t[n];t[n]=t[e],t[e]=r}return t}function h(t,n){return n?(Object.keys(n).forEach((function(e){t[e]=n[e](t)})),t):t}function m(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),r=1;r<n;r++)e[r-1]=arguments[r];var u=0;return t.replace(/%s/g,(function(){return encodeURIComponent(e[u++])}))}var p={WithinQueryParameters:0,WithinHeaders:1};function y(t,n){var e=t||{},r=e.data||{};return Object.keys(e).forEach((function(t){-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(t)&&(r[t]=e[t])})),{data:Object.entries(r).length>0?r:void 0,timeout:e.timeout||n,headers:e.headers||{},queryParameters:e.queryParameters||{},cacheable:e.cacheable}}var v={Read:1,Write:2,Any:3},b=1,g=2,j=3;function O(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:b;return e(e({},t),{},{status:n,lastUpdate:Date.now()})}function P(t){return"string"==typeof t?{protocol:"https",url:t,accept:v.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||v.Any}}var x="DELETE",S="GET",I="POST",q="PUT";function w(t,n){return Promise.all(n.map((function(n){return t.get(n,(function(){return Promise.resolve(O(n))}))}))).then((function(t){var e=t.filter((function(t){return function(t){return t.status===b||Date.now()-t.lastUpdate>12e4}(t)})),r=t.filter((function(t){return function(t){return t.status===j&&Date.now()-t.lastUpdate<=12e4}(t)})),u=[].concat(o(e),o(r));return{getTimeout:function(t,n){return(0===r.length&&0===t?1:r.length+3+t)*n},statelessHosts:u.length>0?u.map((function(t){return P(t)})):n}}))}function D(t,n,r,u){var i=[],c=function(t,n){if(t.method===S||void 0===t.data&&void 0===n.data)return;var r=Array.isArray(t.data)?t.data:e(e({},t.data),n.data);return JSON.stringify(r)}(r,u),a=function(t,n){var r=e(e({},t.headers),n.headers),u={};return Object.keys(r).forEach((function(t){var n=r[t];u[t.toLowerCase()]=n})),u}(t,u),s=r.method,f=r.method!==S?{}:e(e({},r.data),u.data),d=e(e(e({"x-algolia-agent":t.userAgent.value},t.queryParameters),f),u.queryParameters),l=0,h=function n(e,o){var f=e.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:k(i)};var h={data:c,headers:a,method:s,url:A(f,r.path,d),connectTimeout:o(l,t.timeouts.connect),responseTimeout:o(l,u.timeout)},m=function(t){var n={request:h,response:t,host:f,triesLeft:e.length};return i.push(n),n},p={onSuccess:function(t){return function(t){try{return JSON.parse(t.content)}catch(n){throw function(t,n){return{name:"DeserializationError",message:t,response:n}}(n.message,t)}}(t)},onRetry:function(r){var u=m(r);return r.isTimedOut&&l++,Promise.all([t.logger.info("Retryable failure",N(u)),t.hostsCache.set(f,O(f,r.isTimedOut?j:g))]).then((function(){return n(e,o)}))},onFail:function(t){throw m(t),function(t,n){var e=t.content,r=t.status,u=e;try{u=JSON.parse(e).message}catch(t){}return function(t,n,e){return{name:"ApiError",message:t,status:n,transporterStackTrace:e}}(u,r,n)}(t,k(i))}};return t.requester.send(h).then((function(t){return function(t,n){return function(t){var n=t.status;return t.isTimedOut||function(t){var n=t.isTimedOut,e=t.status;return!n&&0==~~e}(t)||2!=~~(n/100)&&4!=~~(n/100)}(t)?n.onRetry(t):2==~~(t.status/100)?n.onSuccess(t):n.onFail(t)}(t,p)}))};return w(t.hostsCache,n).then((function(t){return h(o(t.statelessHosts).reverse(),t.getTimeout)}))}function T(t){var n=t.hostsCache,e=t.logger,r=t.requester,o=t.requestsCache,i=t.responsesCache,c=t.timeouts,a=t.userAgent,s=t.hosts,f=t.queryParameters,d={hostsCache:n,logger:e,requester:r,requestsCache:o,responsesCache:i,timeouts:c,userAgent:a,headers:t.headers,queryParameters:f,hosts:s.map((function(t){return P(t)})),read:function(t,n){var e=y(n,d.timeouts.read),r=function(){return D(d,d.hosts.filter((function(t){return 0!=(t.accept&v.Read)})),t,e)};if(!0!==(void 0!==e.cacheable?e.cacheable:t.cacheable))return r();var o={request:t,mappedRequestOptions:e,transporter:{queryParameters:d.queryParameters,headers:d.headers}};return d.responsesCache.get(o,(function(){return d.requestsCache.get(o,(function(){return d.requestsCache.set(o,r()).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 n=u(t,2);return n[1]}))}))}),{miss:function(t){return d.responsesCache.set(o,t)}})},write:function(t,n){return D(d,d.hosts.filter((function(t){return 0!=(t.accept&v.Write)})),t,y(n,d.timeouts.write))}};return d}function E(t){var n={value:"Algolia for JavaScript (".concat(t,")"),add:function(t){var e="; ".concat(t.segment).concat(void 0!==t.version?" (".concat(t.version,")"):"");return-1===n.value.indexOf(e)&&(n.value="".concat(n.value).concat(e)),n}};return n}function A(t,n,e){var r=R(e),u="".concat(t.protocol,"://").concat(t.url,"/").concat("/"===n.charAt(0)?n.substr(1):n);return r.length&&(u+="?".concat(r)),u}function R(t){return Object.keys(t).map((function(n){return m("%s=%s",n,(e=t[n],"[object Object]"===Object.prototype.toString.call(e)||"[object Array]"===Object.prototype.toString.call(e)?JSON.stringify(t[n]):t[n]));var e})).join("&")}function k(t){return t.map((function(t){return N(t)}))}function N(t){var n=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return e(e({},t),{},{request:e(e({},t.request),{},{headers:e(e({},t.request.headers),n)})})}var U=function(t){return function(n,e){return t.transporter.write({method:I,path:"2/abtests",data:n},e)}},J=function(t){return function(n,e){return t.transporter.write({method:x,path:m("2/abtests/%s",n)},e)}},z=function(t){return function(n,e){return t.transporter.read({method:S,path:m("2/abtests/%s",n)},e)}},C=function(t){return function(n){return t.transporter.read({method:S,path:"2/abtests"},n)}},F=function(t){return function(n,e){return t.transporter.write({method:I,path:m("2/abtests/%s/stop",n)},e)}},B=function(t){return function(n){return t.transporter.read({method:S,path:"1/strategies/personalization"},n)}},M=function(t){return function(n,e){return t.transporter.write({method:I,path:"1/strategies/personalization",data:n},e)}};function K(t){return function n(e){return t.request(e).then((function(r){if(void 0!==t.batch&&t.batch(r.hits),!t.shouldStop(r))return r.cursor?n({cursor:r.cursor}):n({page:(e.page||0)+1})}))}({})}var Q=function(t){return function(n,u){var o=u||{},i=o.queryParameters,c=r(o,["queryParameters"]),a=e({acl:n},void 0!==i?{queryParameters:i}:{});return d(t.transporter.write({method:I,path:"1/keys",data:a},c),(function(n,e){return f((function(r){return tt(t)(n.key,e).catch((function(t){if(404!==t.status)throw t;return r()}))}))}))}},G=function(t){return function(n,e,r){var u=y(r);return u.queryParameters["X-Algolia-User-ID"]=n,t.transporter.write({method:I,path:"1/clusters/mapping",data:{cluster:e}},u)}},H=function(t){return function(n,e,r){return t.transporter.write({method:I,path:"1/clusters/mapping/batch",data:{users:n,cluster:e}},r)}},L=function(t){return function(n,e){return d(t.transporter.write({method:I,path:m("/1/dictionaries/%s/batch",n),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},e),(function(n,e){return It(t)(n.taskID,e)}))}},V=function(t){return function(n,e,r){return d(t.transporter.write({method:I,path:m("1/indexes/%s/operation",n),data:{operation:"copy",destination:e}},r),(function(e,r){return ct(t)(n,{methods:{waitTask:ln}}).waitTask(e.taskID,r)}))}},W=function(t){return function(n,r,u){return V(t)(n,r,e(e({},u),{},{scope:[mn.Rules]}))}},_=function(t){return function(n,r,u){return V(t)(n,r,e(e({},u),{},{scope:[mn.Settings]}))}},X=function(t){return function(n,r,u){return V(t)(n,r,e(e({},u),{},{scope:[mn.Synonyms]}))}},Y=function(t){return function(n,e){return n.method===S?t.transporter.read(n,e):t.transporter.write(n,e)}},Z=function(t){return function(n,e){return d(t.transporter.write({method:x,path:m("1/keys/%s",n)},e),(function(e,r){return f((function(e){return tt(t)(n,r).then(e).catch((function(t){if(404!==t.status)throw t}))}))}))}},$=function(t){return function(n,e,r){var u=e.map((function(t){return{action:"deleteEntry",body:{objectID:t}}}));return d(t.transporter.write({method:I,path:m("/1/dictionaries/%s/batch",n),data:{clearExistingDictionaryEntries:!1,requests:u}},r),(function(n,e){return It(t)(n.taskID,e)}))}},tt=function(t){return function(n,e){return t.transporter.read({method:S,path:m("1/keys/%s",n)},e)}},nt=function(t){return function(n,e){return t.transporter.read({method:S,path:m("1/task/%s",n.toString())},e)}},et=function(t){return function(n){return t.transporter.read({method:S,path:"/1/dictionaries/*/settings"},n)}},rt=function(t){return function(n){return t.transporter.read({method:S,path:"1/logs"},n)}},ut=function(t){return function(n){return t.transporter.read({method:S,path:"1/clusters/mapping/top"},n)}},ot=function(t){return function(n,e){return t.transporter.read({method:S,path:m("1/clusters/mapping/%s",n)},e)}},it=function(t){return function(n){var e=n||{},u=e.retrieveMappings,o=r(e,["retrieveMappings"]);return!0===u&&(o.getClusters=!0),t.transporter.read({method:S,path:"1/clusters/mapping/pending"},o)}},ct=function(t){return function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={transporter:t.transporter,appId:t.appId,indexName:n};return h(r,e.methods)}},at=function(t){return function(n){return t.transporter.read({method:S,path:"1/keys"},n)}},st=function(t){return function(n){return t.transporter.read({method:S,path:"1/clusters"},n)}},ft=function(t){return function(n){return t.transporter.read({method:S,path:"1/indexes"},n)}},dt=function(t){return function(n){return t.transporter.read({method:S,path:"1/clusters/mapping"},n)}},lt=function(t){return function(n,e,r){return d(t.transporter.write({method:I,path:m("1/indexes/%s/operation",n),data:{operation:"move",destination:e}},r),(function(e,r){return ct(t)(n,{methods:{waitTask:ln}}).waitTask(e.taskID,r)}))}},ht=function(t){return function(n,e){return d(t.transporter.write({method:I,path:"1/indexes/*/batch",data:{requests:n}},e),(function(n,e){return Promise.all(Object.keys(n.taskID).map((function(r){return ct(t)(r,{methods:{waitTask:ln}}).waitTask(n.taskID[r],e)})))}))}},mt=function(t){return function(n,e){return t.transporter.read({method:I,path:"1/indexes/*/objects",data:{requests:n}},e)}},pt=function(t){return function(n,r){var u=n.map((function(t){return e(e({},t),{},{params:R(t.params||{})})}));return t.transporter.read({method:I,path:"1/indexes/*/queries",data:{requests:u},cacheable:!0},r)}},yt=function(t){return function(n,u){return Promise.all(n.map((function(n){var o=n.params,i=o.facetName,c=o.facetQuery,a=r(o,["facetName","facetQuery"]);return ct(t)(n.indexName,{methods:{searchForFacetValues:an}}).searchForFacetValues(i,c,e(e({},u),a))})))}},vt=function(t){return function(n,e){var r=y(e);return r.queryParameters["X-Algolia-User-ID"]=n,t.transporter.write({method:x,path:"1/clusters/mapping"},r)}},bt=function(t){return function(n,e,r){var u=e.map((function(t){return{action:"addEntry",body:t}}));return d(t.transporter.write({method:I,path:m("/1/dictionaries/%s/batch",n),data:{clearExistingDictionaryEntries:!0,requests:u}},r),(function(n,e){return It(t)(n.taskID,e)}))}},gt=function(t){return function(n,e){return d(t.transporter.write({method:I,path:m("1/keys/%s/restore",n)},e),(function(e,r){return f((function(e){return tt(t)(n,r).catch((function(t){if(404!==t.status)throw t;return e()}))}))}))}},jt=function(t){return function(n,e,r){var u=e.map((function(t){return{action:"addEntry",body:t}}));return d(t.transporter.write({method:I,path:m("/1/dictionaries/%s/batch",n),data:{clearExistingDictionaryEntries:!1,requests:u}},r),(function(n,e){return It(t)(n.taskID,e)}))}},Ot=function(t){return function(n,e,r){return t.transporter.read({method:I,path:m("/1/dictionaries/%s/search",n),data:{query:e},cacheable:!0},r)}},Pt=function(t){return function(n,e){return t.transporter.read({method:I,path:"1/clusters/mapping/search",data:{query:n}},e)}},xt=function(t){return function(n,e){return d(t.transporter.write({method:q,path:"/1/dictionaries/*/settings",data:n},e),(function(n,e){return It(t)(n.taskID,e)}))}},St=function(t){return function(n,e){var u=Object.assign({},e),o=e||{},i=o.queryParameters,c=r(o,["queryParameters"]),a=i?{queryParameters:i}:{},s=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"];return d(t.transporter.write({method:q,path:m("1/keys/%s",n),data:a},c),(function(e,r){return f((function(e){return tt(t)(n,r).then((function(t){return function(t){return Object.keys(u).filter((function(t){return-1!==s.indexOf(t)})).every((function(n){return t[n]===u[n]}))}(t)?Promise.resolve():e()}))}))}))}},It=function(t){return function(n,e){return f((function(r){return nt(t)(n,e).then((function(t){return"published"!==t.status?r():void 0}))}))}},qt=function(t){return function(n,e){return d(t.transporter.write({method:I,path:m("1/indexes/%s/batch",t.indexName),data:{requests:n}},e),(function(n,e){return ln(t)(n.taskID,e)}))}},wt=function(t){return function(n){return K(e(e({shouldStop:function(t){return void 0===t.cursor}},n),{},{request:function(e){return t.transporter.read({method:I,path:m("1/indexes/%s/browse",t.indexName),data:e},n)}}))}},Dt=function(t){return function(n){var r=e({hitsPerPage:1e3},n);return K(e(e({shouldStop:function(t){return t.hits.length<r.hitsPerPage}},r),{},{request:function(n){return sn(t)("",e(e({},r),n)).then((function(t){return e(e({},t),{},{hits:t.hits.map((function(t){return delete t._highlightResult,t}))})}))}}))}},Tt=function(t){return function(n){var r=e({hitsPerPage:1e3},n);return K(e(e({shouldStop:function(t){return t.hits.length<r.hitsPerPage}},r),{},{request:function(n){return fn(t)("",e(e({},r),n)).then((function(t){return e(e({},t),{},{hits:t.hits.map((function(t){return delete t._highlightResult,t}))})}))}}))}},Et=function(t){return function(n,e,u){var o=u||{},i=o.batchSize,c=r(o,["batchSize"]),a={taskIDs:[],objectIDs:[]};return d(function r(){var u,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,s=[];for(u=o;u<n.length&&(s.push(n[u]),s.length!==(i||1e3));u++);return 0===s.length?Promise.resolve(a):qt(t)(s.map((function(t){return{action:e,body:t}})),c).then((function(t){return a.objectIDs=a.objectIDs.concat(t.objectIDs),a.taskIDs.push(t.taskID),u++,r(u)}))}(),(function(n,e){return Promise.all(n.taskIDs.map((function(n){return ln(t)(n,e)})))}))}},At=function(t){return function(n){return d(t.transporter.write({method:I,path:m("1/indexes/%s/clear",t.indexName)},n),(function(n,e){return ln(t)(n.taskID,e)}))}},Rt=function(t){return function(n){var e=n||{},u=e.forwardToReplicas,o=y(r(e,["forwardToReplicas"]));return u&&(o.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:I,path:m("1/indexes/%s/rules/clear",t.indexName)},o),(function(n,e){return ln(t)(n.taskID,e)}))}},kt=function(t){return function(n){var e=n||{},u=e.forwardToReplicas,o=y(r(e,["forwardToReplicas"]));return u&&(o.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:I,path:m("1/indexes/%s/synonyms/clear",t.indexName)},o),(function(n,e){return ln(t)(n.taskID,e)}))}},Nt=function(t){return function(n,e){return d(t.transporter.write({method:I,path:m("1/indexes/%s/deleteByQuery",t.indexName),data:n},e),(function(n,e){return ln(t)(n.taskID,e)}))}},Ut=function(t){return function(n){return d(t.transporter.write({method:x,path:m("1/indexes/%s",t.indexName)},n),(function(n,e){return ln(t)(n.taskID,e)}))}},Jt=function(t){return function(n,e){return d(zt(t)([n],e).then((function(t){return{taskID:t.taskIDs[0]}})),(function(n,e){return ln(t)(n.taskID,e)}))}},zt=function(t){return function(n,e){var r=n.map((function(t){return{objectID:t}}));return Et(t)(r,hn.DeleteObject,e)}},Ct=function(t){return function(n,e){var u=e||{},o=u.forwardToReplicas,i=y(r(u,["forwardToReplicas"]));return o&&(i.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:x,path:m("1/indexes/%s/rules/%s",t.indexName,n)},i),(function(n,e){return ln(t)(n.taskID,e)}))}},Ft=function(t){return function(n,e){var u=e||{},o=u.forwardToReplicas,i=y(r(u,["forwardToReplicas"]));return o&&(i.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:x,path:m("1/indexes/%s/synonyms/%s",t.indexName,n)},i),(function(n,e){return ln(t)(n.taskID,e)}))}},Bt=function(t){return function(n){return Vt(t)(n).then((function(){return!0})).catch((function(t){if(404!==t.status)throw t;return!1}))}},Mt=function(t){return function(n,e,r){return t.transporter.read({method:I,path:m("1/answers/%s/prediction",t.indexName),data:{query:n,queryLanguages:e},cacheable:!0},r)}},Kt=function(t){return function(n,o){var i=o||{},c=i.query,a=i.paginate,s=r(i,["query","paginate"]),f=0;return function r(){return cn(t)(c||"",e(e({},s),{},{page:f})).then((function(t){for(var e=0,o=Object.entries(t.hits);e<o.length;e++){var i=u(o[e],2),c=i[0],s=i[1];if(n(s))return{object:s,position:parseInt(c,10),page:f}}if(f++,!1===a||f>=t.nbPages)throw{name:"ObjectNotFoundError",message:"Object not found."};return r()}))}()}},Qt=function(t){return function(n,e){return t.transporter.read({method:S,path:m("1/indexes/%s/%s",t.indexName,n)},e)}},Gt=function(){return function(t,n){for(var e=0,r=Object.entries(t.hits);e<r.length;e++){var o=u(r[e],2),i=o[0];if(o[1].objectID===n)return parseInt(i,10)}return-1}},Ht=function(t){return function(n,u){var o=u||{},i=o.attributesToRetrieve,c=r(o,["attributesToRetrieve"]),a=n.map((function(n){return e({indexName:t.indexName,objectID:n},i?{attributesToRetrieve:i}:{})}));return t.transporter.read({method:I,path:"1/indexes/*/objects",data:{requests:a}},c)}},Lt=function(t){return function(n,e){return t.transporter.read({method:S,path:m("1/indexes/%s/rules/%s",t.indexName,n)},e)}},Vt=function(t){return function(n){return t.transporter.read({method:S,path:m("1/indexes/%s/settings",t.indexName),data:{getVersion:2}},n)}},Wt=function(t){return function(n,e){return t.transporter.read({method:S,path:m("1/indexes/%s/synonyms/%s",t.indexName,n)},e)}},_t=function(t){return function(n,e){return d(Xt(t)([n],e).then((function(t){return{objectID:t.objectIDs[0],taskID:t.taskIDs[0]}})),(function(n,e){return ln(t)(n.taskID,e)}))}},Xt=function(t){return function(n,e){var u=e||{},o=u.createIfNotExists,i=r(u,["createIfNotExists"]),c=o?hn.PartialUpdateObject:hn.PartialUpdateObjectNoCreate;return Et(t)(n,c,i)}},Yt=function(t){return function(n,i){var c=i||{},a=c.safe,s=c.autoGenerateObjectIDIfNotExist,f=c.batchSize,l=r(c,["safe","autoGenerateObjectIDIfNotExist","batchSize"]),h=function(n,e,r,u){return d(t.transporter.write({method:I,path:m("1/indexes/%s/operation",n),data:{operation:r,destination:e}},u),(function(n,e){return ln(t)(n.taskID,e)}))},p=Math.random().toString(36).substring(7),y="".concat(t.indexName,"_tmp_").concat(p),v=nn({appId:t.appId,transporter:t.transporter,indexName:y}),b=[],g=h(t.indexName,y,"copy",e(e({},l),{},{scope:["settings","synonyms","rules"]}));return b.push(g),d((a?g.wait(l):g).then((function(){var t=v(n,e(e({},l),{},{autoGenerateObjectIDIfNotExist:s,batchSize:f}));return b.push(t),a?t.wait(l):t})).then((function(){var n=h(y,t.indexName,"move",l);return b.push(n),a?n.wait(l):n})).then((function(){return Promise.all(b)})).then((function(t){var n=u(t,3),e=n[0],r=n[1],i=n[2];return{objectIDs:r.objectIDs,taskIDs:[e.taskID].concat(o(r.taskIDs),[i.taskID])}})),(function(t,n){return Promise.all(b.map((function(t){return t.wait(n)})))}))}},Zt=function(t){return function(n,r){return rn(t)(n,e(e({},r),{},{clearExistingRules:!0}))}},$t=function(t){return function(n,r){return on(t)(n,e(e({},r),{},{clearExistingSynonyms:!0}))}},tn=function(t){return function(n,e){return d(nn(t)([n],e).then((function(t){return{objectID:t.objectIDs[0],taskID:t.taskIDs[0]}})),(function(n,e){return ln(t)(n.taskID,e)}))}},nn=function(t){return function(n,e){var u=e||{},o=u.autoGenerateObjectIDIfNotExist,i=r(u,["autoGenerateObjectIDIfNotExist"]),c=o?hn.AddObject:hn.UpdateObject;if(c===hn.UpdateObject){var a=!0,s=!1,f=void 0;try{for(var l,h=n[Symbol.iterator]();!(a=(l=h.next()).done);a=!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){s=!0,f=t}finally{try{a||null==h.return||h.return()}finally{if(s)throw f}}}return Et(t)(n,c,i)}},en=function(t){return function(n,e){return rn(t)([n],e)}},rn=function(t){return function(n,e){var u=e||{},o=u.forwardToReplicas,i=u.clearExistingRules,c=y(r(u,["forwardToReplicas","clearExistingRules"]));return o&&(c.queryParameters.forwardToReplicas=1),i&&(c.queryParameters.clearExistingRules=1),d(t.transporter.write({method:I,path:m("1/indexes/%s/rules/batch",t.indexName),data:n},c),(function(n,e){return ln(t)(n.taskID,e)}))}},un=function(t){return function(n,e){return on(t)([n],e)}},on=function(t){return function(n,e){var u=e||{},o=u.forwardToReplicas,i=u.clearExistingSynonyms,c=u.replaceExistingSynonyms,a=y(r(u,["forwardToReplicas","clearExistingSynonyms","replaceExistingSynonyms"]));return o&&(a.queryParameters.forwardToReplicas=1),(c||i)&&(a.queryParameters.replaceExistingSynonyms=1),d(t.transporter.write({method:I,path:m("1/indexes/%s/synonyms/batch",t.indexName),data:n},a),(function(n,e){return ln(t)(n.taskID,e)}))}},cn=function(t){return function(n,e){return t.transporter.read({method:I,path:m("1/indexes/%s/query",t.indexName),data:{query:n},cacheable:!0},e)}},an=function(t){return function(n,e,r){return t.transporter.read({method:I,path:m("1/indexes/%s/facets/%s/query",t.indexName,n),data:{facetQuery:e},cacheable:!0},r)}},sn=function(t){return function(n,e){return t.transporter.read({method:I,path:m("1/indexes/%s/rules/search",t.indexName),data:{query:n}},e)}},fn=function(t){return function(n,e){return t.transporter.read({method:I,path:m("1/indexes/%s/synonyms/search",t.indexName),data:{query:n}},e)}},dn=function(t){return function(n,e){var u=e||{},o=u.forwardToReplicas,i=y(r(u,["forwardToReplicas"]));return o&&(i.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:q,path:m("1/indexes/%s/settings",t.indexName),data:n},i),(function(n,e){return ln(t)(n.taskID,e)}))}},ln=function(t){return function(n,e){return f((function(r){return function(t){return function(n,e){return t.transporter.read({method:S,path:m("1/indexes/%s/task/%s",t.indexName,n.toString())},e)}}(t)(n,e).then((function(t){return"published"!==t.status?r():void 0}))}))}},hn={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},mn={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},pn=1,yn=2,vn=3;function bn(t,n,r){var u,o={appId:t,apiKey:n,timeouts:{connect:1,read:2,write:30},requester:{send:function(t){return new Promise((function(n){var e=new XMLHttpRequest;e.open(t.method,t.url,!0),Object.keys(t.headers).forEach((function(n){return e.setRequestHeader(n,t.headers[n])}));var r,u=function(t,r){return setTimeout((function(){e.abort(),n({status:0,content:r,isTimedOut:!0})}),1e3*t)},o=u(t.connectTimeout,"Connection timeout");e.onreadystatechange=function(){e.readyState>e.OPENED&&void 0===r&&(clearTimeout(o),r=u(t.responseTimeout,"Socket timeout"))},e.onerror=function(){0===e.status&&(clearTimeout(o),clearTimeout(r),n({content:e.responseText||"Network request failed",status:e.status,isTimedOut:!1}))},e.onload=function(){clearTimeout(o),clearTimeout(r),n({content:e.responseText,status:e.status,isTimedOut:!1})},e.send(t.data)}))}},logger:(u=vn,{debug:function(t,n){return pn>=u&&console.debug(t,n),Promise.resolve()},info:function(t,n){return yn>=u&&console.info(t,n),Promise.resolve()},error:function(t,n){return console.error(t,n),Promise.resolve()}}),responsesCache:a(),requestsCache:a({serializable:!1}),hostsCache:c({caches:[i({key:"".concat("4.12.0","-").concat(t)}),a()]}),userAgent:E("4.12.0").add({segment:"Browser"})},f=e(e({},o),r),d=function(){return function(t){return function(t){var n=t.region||"us",r=s(p.WithinHeaders,t.appId,t.apiKey),u=T(e(e({hosts:[{url:"personalization.".concat(n,".algolia.com")}]},t),{},{headers:e(e(e({},r.headers()),{"content-type":"application/json"}),t.headers),queryParameters:e(e({},r.queryParameters()),t.queryParameters)}));return h({appId:t.appId,transporter:u},t.methods)}(e(e(e({},o),t),{},{methods:{getPersonalizationStrategy:B,setPersonalizationStrategy:M}}))}};return function(t){var n=t.appId,r=s(void 0!==t.authMode?t.authMode:p.WithinHeaders,n,t.apiKey),u=T(e(e({hosts:[{url:"".concat(n,"-dsn.algolia.net"),accept:v.Read},{url:"".concat(n,".algolia.net"),accept:v.Write}].concat(l([{url:"".concat(n,"-1.algolianet.com")},{url:"".concat(n,"-2.algolianet.com")},{url:"".concat(n,"-3.algolianet.com")}]))},t),{},{headers:e(e(e({},r.headers()),{"content-type":"application/x-www-form-urlencoded"}),t.headers),queryParameters:e(e({},r.queryParameters()),t.queryParameters)}));return h({transporter:u,appId:n,addAlgoliaAgent:function(t,n){u.userAgent.add({segment:t,version:n})},clearCache:function(){return Promise.all([u.requestsCache.clear(),u.responsesCache.clear()]).then((function(){}))}},t.methods)}(e(e({},f),{},{methods:{search:pt,searchForFacetValues:yt,multipleBatch:ht,multipleGetObjects:mt,multipleQueries:pt,copyIndex:V,copySettings:_,copySynonyms:X,copyRules:W,moveIndex:lt,listIndices:ft,getLogs:rt,listClusters:st,multipleSearchForFacetValues:yt,getApiKey:tt,addApiKey:Q,listApiKeys:at,updateApiKey:St,deleteApiKey:Z,restoreApiKey:gt,assignUserID:G,assignUserIDs:H,getUserID:ot,searchUserIDs:Pt,listUserIDs:dt,getTopUserIDs:ut,removeUserID:vt,hasPendingMappings:it,clearDictionaryEntries:L,deleteDictionaryEntries:$,getDictionarySettings:et,getAppTask:nt,replaceDictionaryEntries:bt,saveDictionaryEntries:jt,searchDictionaryEntries:Ot,setDictionarySettings:xt,waitAppTask:It,customRequest:Y,initIndex:function(t){return function(n){return ct(t)(n,{methods:{batch:qt,delete:Ut,findAnswers:Mt,getObject:Qt,getObjects:Ht,saveObject:tn,saveObjects:nn,search:cn,searchForFacetValues:an,waitTask:ln,setSettings:dn,getSettings:Vt,partialUpdateObject:_t,partialUpdateObjects:Xt,deleteObject:Jt,deleteObjects:zt,deleteBy:Nt,clearObjects:At,browseObjects:wt,getObjectPosition:Gt,findObject:Kt,exists:Bt,saveSynonym:un,saveSynonyms:on,getSynonym:Wt,searchSynonyms:fn,browseSynonyms:Tt,deleteSynonym:Ft,clearSynonyms:kt,replaceAllObjects:Yt,replaceAllSynonyms:$t,searchRules:sn,getRule:Lt,deleteRule:Ct,saveRule:en,saveRules:rn,replaceAllRules:Zt,browseRules:Dt,clearRules:Rt}})}},initAnalytics:function(){return function(t){return function(t){var n=t.region||"us",r=s(p.WithinHeaders,t.appId,t.apiKey),u=T(e(e({hosts:[{url:"analytics.".concat(n,".algolia.com")}]},t),{},{headers:e(e(e({},r.headers()),{"content-type":"application/json"}),t.headers),queryParameters:e(e({},r.queryParameters()),t.queryParameters)}));return h({appId:t.appId,transporter:u},t.methods)}(e(e(e({},o),t),{},{methods:{addABTest:U,getABTest:z,getABTests:C,stopABTest:F,deleteABTest:J}}))}},initPersonalization:d,initRecommendation:function(){return function(t){return f.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),d()(t)}}}}))}return bn.version="4.12.0",bn}))}));export{e as a};
7
- //# sourceMappingURL=p-8757b4eb.js.map
5
+ /*! algoliasearch.umd.js | 4.12.1 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
6
+ !function(n,e){t.exports=e()}(n,(function(){function t(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function n(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,r)}return e}function e(e){for(var r=1;r<arguments.length;r++){var u=null!=arguments[r]?arguments[r]:{};r%2?n(Object(u),!0).forEach((function(n){t(e,n,u[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(u)):n(Object(u)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(u,t))}))}return e}function r(t,n){if(null==t)return{};var e,r,u=function(t,n){if(null==t)return{};var e,r,u={},o=Object.keys(t);for(r=0;r<o.length;r++)e=o[r],n.indexOf(e)>=0||(u[e]=t[e]);return u}(t,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r<o.length;r++)e=o[r],n.indexOf(e)>=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(u[e]=t[e])}return u}function u(t,n){return function(t){if(Array.isArray(t))return t}(t)||function(t,n){if(!(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t)))return;var e=[],r=!0,u=!1,o=void 0;try{for(var i,c=t[Symbol.iterator]();!(r=(i=c.next()).done)&&(e.push(i.value),!n||e.length!==n);r=!0);}catch(t){u=!0,o=t}finally{try{r||null==c.return||c.return()}finally{if(u)throw o}}return e}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function o(t){return function(t){if(Array.isArray(t)){for(var n=0,e=new Array(t.length);n<t.length;n++)e[n]=t[n];return e}}(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 n,e="algoliasearch-client-js-".concat(t.key),r=function(){return void 0===n&&(n=t.localStorage||window.localStorage),n},o=function(){return JSON.parse(r().getItem(e)||"{}")};return{get:function(t,n){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){var e=JSON.stringify(t),r=o()[e];return Promise.all([r||n(),void 0!==r])})).then((function(t){var n=u(t,2),r=n[0],o=n[1];return Promise.all([r,o||e.miss(r)])})).then((function(t){return u(t,1)[0]}))},set:function(t,n){return Promise.resolve().then((function(){var u=o();return u[JSON.stringify(t)]=n,r().setItem(e,JSON.stringify(u)),n}))},delete:function(t){return Promise.resolve().then((function(){var n=o();delete n[JSON.stringify(t)],r().setItem(e,JSON.stringify(n))}))},clear:function(){return Promise.resolve().then((function(){r().removeItem(e)}))}}}function c(t){var n=o(t.caches),e=n.shift();return void 0===e?{get:function(t,n){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},r=n();return r.then((function(t){return Promise.all([t,e.miss(t)])})).then((function(t){return u(t,1)[0]}))},set:function(t,n){return Promise.resolve(n)},delete:function(t){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(t,r){var u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return e.get(t,r,u).catch((function(){return c({caches:n}).get(t,r,u)}))},set:function(t,r){return e.set(t,r).catch((function(){return c({caches:n}).set(t,r)}))},delete:function(t){return e.delete(t).catch((function(){return c({caches:n}).delete(t)}))},clear:function(){return e.clear().catch((function(){return c({caches:n}).clear()}))}}}function a(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},n={};return{get:function(e,r){var u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},o=JSON.stringify(e);if(o in n)return Promise.resolve(t.serializable?JSON.parse(n[o]):n[o]);var i=r(),c=u&&u.miss||function(){return Promise.resolve()};return i.then((function(t){return c(t)})).then((function(){return i}))},set:function(e,r){return n[JSON.stringify(e)]=t.serializable?JSON.stringify(r):r,Promise.resolve(r)},delete:function(t){return delete n[JSON.stringify(t)],Promise.resolve()},clear:function(){return n={},Promise.resolve()}}}function s(t,n,e){var r={"x-algolia-api-key":e,"x-algolia-application-id":n};return{headers:function(){return t===p.WithinHeaders?r:{}},queryParameters:function(){return t===p.WithinQueryParameters?r:{}}}}function f(t){var n=0;return t((function e(){return n++,new Promise((function(r){setTimeout((function(){r(t(e))}),Math.min(100*n,1e3))}))}))}function d(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(t,n){return Promise.resolve()};return Object.assign(t,{wait:function(e){return d(t.then((function(t){return Promise.all([n(t,e),t])})).then((function(t){return t[1]})))}})}function l(t){for(var n=t.length-1;n>0;n--){var e=Math.floor(Math.random()*(n+1)),r=t[n];t[n]=t[e],t[e]=r}return t}function h(t,n){return n?(Object.keys(n).forEach((function(e){t[e]=n[e](t)})),t):t}function m(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),r=1;r<n;r++)e[r-1]=arguments[r];var u=0;return t.replace(/%s/g,(function(){return encodeURIComponent(e[u++])}))}var p={WithinQueryParameters:0,WithinHeaders:1};function y(t,n){var e=t||{},r=e.data||{};return Object.keys(e).forEach((function(t){-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(t)&&(r[t]=e[t])})),{data:Object.entries(r).length>0?r:void 0,timeout:e.timeout||n,headers:e.headers||{},queryParameters:e.queryParameters||{},cacheable:e.cacheable}}var v={Read:1,Write:2,Any:3},b=1,g=2,j=3;function O(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:b;return e(e({},t),{},{status:n,lastUpdate:Date.now()})}function P(t){return"string"==typeof t?{protocol:"https",url:t,accept:v.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||v.Any}}var x="DELETE",S="GET",I="POST",q="PUT";function w(t,n){return Promise.all(n.map((function(n){return t.get(n,(function(){return Promise.resolve(O(n))}))}))).then((function(t){var e=t.filter((function(t){return function(t){return t.status===b||Date.now()-t.lastUpdate>12e4}(t)})),r=t.filter((function(t){return function(t){return t.status===j&&Date.now()-t.lastUpdate<=12e4}(t)})),u=[].concat(o(e),o(r));return{getTimeout:function(t,n){return(0===r.length&&0===t?1:r.length+3+t)*n},statelessHosts:u.length>0?u.map((function(t){return P(t)})):n}}))}function D(t,n,r,u){var i=[],c=function(t,n){if(t.method===S||void 0===t.data&&void 0===n.data)return;var r=Array.isArray(t.data)?t.data:e(e({},t.data),n.data);return JSON.stringify(r)}(r,u),a=function(t,n){var r=e(e({},t.headers),n.headers),u={};return Object.keys(r).forEach((function(t){var n=r[t];u[t.toLowerCase()]=n})),u}(t,u),s=r.method,f=r.method!==S?{}:e(e({},r.data),u.data),d=e(e(e({"x-algolia-agent":t.userAgent.value},t.queryParameters),f),u.queryParameters),l=0,h=function n(e,o){var f=e.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:k(i)};var h={data:c,headers:a,method:s,url:A(f,r.path,d),connectTimeout:o(l,t.timeouts.connect),responseTimeout:o(l,u.timeout)},m=function(t){var n={request:h,response:t,host:f,triesLeft:e.length};return i.push(n),n},p={onSuccess:function(t){return function(t){try{return JSON.parse(t.content)}catch(n){throw function(t,n){return{name:"DeserializationError",message:t,response:n}}(n.message,t)}}(t)},onRetry:function(r){var u=m(r);return r.isTimedOut&&l++,Promise.all([t.logger.info("Retryable failure",N(u)),t.hostsCache.set(f,O(f,r.isTimedOut?j:g))]).then((function(){return n(e,o)}))},onFail:function(t){throw m(t),function(t,n){var e=t.content,r=t.status,u=e;try{u=JSON.parse(e).message}catch(t){}return function(t,n,e){return{name:"ApiError",message:t,status:n,transporterStackTrace:e}}(u,r,n)}(t,k(i))}};return t.requester.send(h).then((function(t){return function(t,n){return function(t){var n=t.status;return t.isTimedOut||function(t){var n=t.isTimedOut,e=t.status;return!n&&0==~~e}(t)||2!=~~(n/100)&&4!=~~(n/100)}(t)?n.onRetry(t):2==~~(t.status/100)?n.onSuccess(t):n.onFail(t)}(t,p)}))};return w(t.hostsCache,n).then((function(t){return h(o(t.statelessHosts).reverse(),t.getTimeout)}))}function T(t){var n=t.hostsCache,e=t.logger,r=t.requester,o=t.requestsCache,i=t.responsesCache,c=t.timeouts,a=t.userAgent,s=t.hosts,f=t.queryParameters,d={hostsCache:n,logger:e,requester:r,requestsCache:o,responsesCache:i,timeouts:c,userAgent:a,headers:t.headers,queryParameters:f,hosts:s.map((function(t){return P(t)})),read:function(t,n){var e=y(n,d.timeouts.read),r=function(){return D(d,d.hosts.filter((function(t){return 0!=(t.accept&v.Read)})),t,e)};if(!0!==(void 0!==e.cacheable?e.cacheable:t.cacheable))return r();var o={request:t,mappedRequestOptions:e,transporter:{queryParameters:d.queryParameters,headers:d.headers}};return d.responsesCache.get(o,(function(){return d.requestsCache.get(o,(function(){return d.requestsCache.set(o,r()).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 n=u(t,2);return n[1]}))}))}),{miss:function(t){return d.responsesCache.set(o,t)}})},write:function(t,n){return D(d,d.hosts.filter((function(t){return 0!=(t.accept&v.Write)})),t,y(n,d.timeouts.write))}};return d}function E(t){var n={value:"Algolia for JavaScript (".concat(t,")"),add:function(t){var e="; ".concat(t.segment).concat(void 0!==t.version?" (".concat(t.version,")"):"");return-1===n.value.indexOf(e)&&(n.value="".concat(n.value).concat(e)),n}};return n}function A(t,n,e){var r=R(e),u="".concat(t.protocol,"://").concat(t.url,"/").concat("/"===n.charAt(0)?n.substr(1):n);return r.length&&(u+="?".concat(r)),u}function R(t){return Object.keys(t).map((function(n){return m("%s=%s",n,(e=t[n],"[object Object]"===Object.prototype.toString.call(e)||"[object Array]"===Object.prototype.toString.call(e)?JSON.stringify(t[n]):t[n]));var e})).join("&")}function k(t){return t.map((function(t){return N(t)}))}function N(t){var n=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return e(e({},t),{},{request:e(e({},t.request),{},{headers:e(e({},t.request.headers),n)})})}var U=function(t){return function(n,e){return t.transporter.write({method:I,path:"2/abtests",data:n},e)}},J=function(t){return function(n,e){return t.transporter.write({method:x,path:m("2/abtests/%s",n)},e)}},z=function(t){return function(n,e){return t.transporter.read({method:S,path:m("2/abtests/%s",n)},e)}},C=function(t){return function(n){return t.transporter.read({method:S,path:"2/abtests"},n)}},F=function(t){return function(n,e){return t.transporter.write({method:I,path:m("2/abtests/%s/stop",n)},e)}},B=function(t){return function(n){return t.transporter.read({method:S,path:"1/strategies/personalization"},n)}},M=function(t){return function(n,e){return t.transporter.write({method:I,path:"1/strategies/personalization",data:n},e)}};function K(t){return function n(e){return t.request(e).then((function(r){if(void 0!==t.batch&&t.batch(r.hits),!t.shouldStop(r))return r.cursor?n({cursor:r.cursor}):n({page:(e.page||0)+1})}))}({})}var Q=function(t){return function(n,u){var o=u||{},i=o.queryParameters,c=r(o,["queryParameters"]),a=e({acl:n},void 0!==i?{queryParameters:i}:{});return d(t.transporter.write({method:I,path:"1/keys",data:a},c),(function(n,e){return f((function(r){return tt(t)(n.key,e).catch((function(t){if(404!==t.status)throw t;return r()}))}))}))}},G=function(t){return function(n,e,r){var u=y(r);return u.queryParameters["X-Algolia-User-ID"]=n,t.transporter.write({method:I,path:"1/clusters/mapping",data:{cluster:e}},u)}},H=function(t){return function(n,e,r){return t.transporter.write({method:I,path:"1/clusters/mapping/batch",data:{users:n,cluster:e}},r)}},L=function(t){return function(n,e){return d(t.transporter.write({method:I,path:m("/1/dictionaries/%s/batch",n),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},e),(function(n,e){return It(t)(n.taskID,e)}))}},V=function(t){return function(n,e,r){return d(t.transporter.write({method:I,path:m("1/indexes/%s/operation",n),data:{operation:"copy",destination:e}},r),(function(e,r){return ct(t)(n,{methods:{waitTask:ln}}).waitTask(e.taskID,r)}))}},W=function(t){return function(n,r,u){return V(t)(n,r,e(e({},u),{},{scope:[mn.Rules]}))}},_=function(t){return function(n,r,u){return V(t)(n,r,e(e({},u),{},{scope:[mn.Settings]}))}},X=function(t){return function(n,r,u){return V(t)(n,r,e(e({},u),{},{scope:[mn.Synonyms]}))}},Y=function(t){return function(n,e){return n.method===S?t.transporter.read(n,e):t.transporter.write(n,e)}},Z=function(t){return function(n,e){return d(t.transporter.write({method:x,path:m("1/keys/%s",n)},e),(function(e,r){return f((function(e){return tt(t)(n,r).then(e).catch((function(t){if(404!==t.status)throw t}))}))}))}},$=function(t){return function(n,e,r){var u=e.map((function(t){return{action:"deleteEntry",body:{objectID:t}}}));return d(t.transporter.write({method:I,path:m("/1/dictionaries/%s/batch",n),data:{clearExistingDictionaryEntries:!1,requests:u}},r),(function(n,e){return It(t)(n.taskID,e)}))}},tt=function(t){return function(n,e){return t.transporter.read({method:S,path:m("1/keys/%s",n)},e)}},nt=function(t){return function(n,e){return t.transporter.read({method:S,path:m("1/task/%s",n.toString())},e)}},et=function(t){return function(n){return t.transporter.read({method:S,path:"/1/dictionaries/*/settings"},n)}},rt=function(t){return function(n){return t.transporter.read({method:S,path:"1/logs"},n)}},ut=function(t){return function(n){return t.transporter.read({method:S,path:"1/clusters/mapping/top"},n)}},ot=function(t){return function(n,e){return t.transporter.read({method:S,path:m("1/clusters/mapping/%s",n)},e)}},it=function(t){return function(n){var e=n||{},u=e.retrieveMappings,o=r(e,["retrieveMappings"]);return!0===u&&(o.getClusters=!0),t.transporter.read({method:S,path:"1/clusters/mapping/pending"},o)}},ct=function(t){return function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={transporter:t.transporter,appId:t.appId,indexName:n};return h(r,e.methods)}},at=function(t){return function(n){return t.transporter.read({method:S,path:"1/keys"},n)}},st=function(t){return function(n){return t.transporter.read({method:S,path:"1/clusters"},n)}},ft=function(t){return function(n){return t.transporter.read({method:S,path:"1/indexes"},n)}},dt=function(t){return function(n){return t.transporter.read({method:S,path:"1/clusters/mapping"},n)}},lt=function(t){return function(n,e,r){return d(t.transporter.write({method:I,path:m("1/indexes/%s/operation",n),data:{operation:"move",destination:e}},r),(function(e,r){return ct(t)(n,{methods:{waitTask:ln}}).waitTask(e.taskID,r)}))}},ht=function(t){return function(n,e){return d(t.transporter.write({method:I,path:"1/indexes/*/batch",data:{requests:n}},e),(function(n,e){return Promise.all(Object.keys(n.taskID).map((function(r){return ct(t)(r,{methods:{waitTask:ln}}).waitTask(n.taskID[r],e)})))}))}},mt=function(t){return function(n,e){return t.transporter.read({method:I,path:"1/indexes/*/objects",data:{requests:n}},e)}},pt=function(t){return function(n,r){var u=n.map((function(t){return e(e({},t),{},{params:R(t.params||{})})}));return t.transporter.read({method:I,path:"1/indexes/*/queries",data:{requests:u},cacheable:!0},r)}},yt=function(t){return function(n,u){return Promise.all(n.map((function(n){var o=n.params,i=o.facetName,c=o.facetQuery,a=r(o,["facetName","facetQuery"]);return ct(t)(n.indexName,{methods:{searchForFacetValues:an}}).searchForFacetValues(i,c,e(e({},u),a))})))}},vt=function(t){return function(n,e){var r=y(e);return r.queryParameters["X-Algolia-User-ID"]=n,t.transporter.write({method:x,path:"1/clusters/mapping"},r)}},bt=function(t){return function(n,e,r){var u=e.map((function(t){return{action:"addEntry",body:t}}));return d(t.transporter.write({method:I,path:m("/1/dictionaries/%s/batch",n),data:{clearExistingDictionaryEntries:!0,requests:u}},r),(function(n,e){return It(t)(n.taskID,e)}))}},gt=function(t){return function(n,e){return d(t.transporter.write({method:I,path:m("1/keys/%s/restore",n)},e),(function(e,r){return f((function(e){return tt(t)(n,r).catch((function(t){if(404!==t.status)throw t;return e()}))}))}))}},jt=function(t){return function(n,e,r){var u=e.map((function(t){return{action:"addEntry",body:t}}));return d(t.transporter.write({method:I,path:m("/1/dictionaries/%s/batch",n),data:{clearExistingDictionaryEntries:!1,requests:u}},r),(function(n,e){return It(t)(n.taskID,e)}))}},Ot=function(t){return function(n,e,r){return t.transporter.read({method:I,path:m("/1/dictionaries/%s/search",n),data:{query:e},cacheable:!0},r)}},Pt=function(t){return function(n,e){return t.transporter.read({method:I,path:"1/clusters/mapping/search",data:{query:n}},e)}},xt=function(t){return function(n,e){return d(t.transporter.write({method:q,path:"/1/dictionaries/*/settings",data:n},e),(function(n,e){return It(t)(n.taskID,e)}))}},St=function(t){return function(n,e){var u=Object.assign({},e),o=e||{},i=o.queryParameters,c=r(o,["queryParameters"]),a=i?{queryParameters:i}:{},s=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"];return d(t.transporter.write({method:q,path:m("1/keys/%s",n),data:a},c),(function(e,r){return f((function(e){return tt(t)(n,r).then((function(t){return function(t){return Object.keys(u).filter((function(t){return-1!==s.indexOf(t)})).every((function(n){return t[n]===u[n]}))}(t)?Promise.resolve():e()}))}))}))}},It=function(t){return function(n,e){return f((function(r){return nt(t)(n,e).then((function(t){return"published"!==t.status?r():void 0}))}))}},qt=function(t){return function(n,e){return d(t.transporter.write({method:I,path:m("1/indexes/%s/batch",t.indexName),data:{requests:n}},e),(function(n,e){return ln(t)(n.taskID,e)}))}},wt=function(t){return function(n){return K(e(e({shouldStop:function(t){return void 0===t.cursor}},n),{},{request:function(e){return t.transporter.read({method:I,path:m("1/indexes/%s/browse",t.indexName),data:e},n)}}))}},Dt=function(t){return function(n){var r=e({hitsPerPage:1e3},n);return K(e(e({shouldStop:function(t){return t.hits.length<r.hitsPerPage}},r),{},{request:function(n){return sn(t)("",e(e({},r),n)).then((function(t){return e(e({},t),{},{hits:t.hits.map((function(t){return delete t._highlightResult,t}))})}))}}))}},Tt=function(t){return function(n){var r=e({hitsPerPage:1e3},n);return K(e(e({shouldStop:function(t){return t.hits.length<r.hitsPerPage}},r),{},{request:function(n){return fn(t)("",e(e({},r),n)).then((function(t){return e(e({},t),{},{hits:t.hits.map((function(t){return delete t._highlightResult,t}))})}))}}))}},Et=function(t){return function(n,e,u){var o=u||{},i=o.batchSize,c=r(o,["batchSize"]),a={taskIDs:[],objectIDs:[]};return d(function r(){var u,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,s=[];for(u=o;u<n.length&&(s.push(n[u]),s.length!==(i||1e3));u++);return 0===s.length?Promise.resolve(a):qt(t)(s.map((function(t){return{action:e,body:t}})),c).then((function(t){return a.objectIDs=a.objectIDs.concat(t.objectIDs),a.taskIDs.push(t.taskID),u++,r(u)}))}(),(function(n,e){return Promise.all(n.taskIDs.map((function(n){return ln(t)(n,e)})))}))}},At=function(t){return function(n){return d(t.transporter.write({method:I,path:m("1/indexes/%s/clear",t.indexName)},n),(function(n,e){return ln(t)(n.taskID,e)}))}},Rt=function(t){return function(n){var e=n||{},u=e.forwardToReplicas,o=y(r(e,["forwardToReplicas"]));return u&&(o.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:I,path:m("1/indexes/%s/rules/clear",t.indexName)},o),(function(n,e){return ln(t)(n.taskID,e)}))}},kt=function(t){return function(n){var e=n||{},u=e.forwardToReplicas,o=y(r(e,["forwardToReplicas"]));return u&&(o.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:I,path:m("1/indexes/%s/synonyms/clear",t.indexName)},o),(function(n,e){return ln(t)(n.taskID,e)}))}},Nt=function(t){return function(n,e){return d(t.transporter.write({method:I,path:m("1/indexes/%s/deleteByQuery",t.indexName),data:n},e),(function(n,e){return ln(t)(n.taskID,e)}))}},Ut=function(t){return function(n){return d(t.transporter.write({method:x,path:m("1/indexes/%s",t.indexName)},n),(function(n,e){return ln(t)(n.taskID,e)}))}},Jt=function(t){return function(n,e){return d(zt(t)([n],e).then((function(t){return{taskID:t.taskIDs[0]}})),(function(n,e){return ln(t)(n.taskID,e)}))}},zt=function(t){return function(n,e){var r=n.map((function(t){return{objectID:t}}));return Et(t)(r,hn.DeleteObject,e)}},Ct=function(t){return function(n,e){var u=e||{},o=u.forwardToReplicas,i=y(r(u,["forwardToReplicas"]));return o&&(i.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:x,path:m("1/indexes/%s/rules/%s",t.indexName,n)},i),(function(n,e){return ln(t)(n.taskID,e)}))}},Ft=function(t){return function(n,e){var u=e||{},o=u.forwardToReplicas,i=y(r(u,["forwardToReplicas"]));return o&&(i.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:x,path:m("1/indexes/%s/synonyms/%s",t.indexName,n)},i),(function(n,e){return ln(t)(n.taskID,e)}))}},Bt=function(t){return function(n){return Vt(t)(n).then((function(){return!0})).catch((function(t){if(404!==t.status)throw t;return!1}))}},Mt=function(t){return function(n,e,r){return t.transporter.read({method:I,path:m("1/answers/%s/prediction",t.indexName),data:{query:n,queryLanguages:e},cacheable:!0},r)}},Kt=function(t){return function(n,o){var i=o||{},c=i.query,a=i.paginate,s=r(i,["query","paginate"]),f=0;return function r(){return cn(t)(c||"",e(e({},s),{},{page:f})).then((function(t){for(var e=0,o=Object.entries(t.hits);e<o.length;e++){var i=u(o[e],2),c=i[0],s=i[1];if(n(s))return{object:s,position:parseInt(c,10),page:f}}if(f++,!1===a||f>=t.nbPages)throw{name:"ObjectNotFoundError",message:"Object not found."};return r()}))}()}},Qt=function(t){return function(n,e){return t.transporter.read({method:S,path:m("1/indexes/%s/%s",t.indexName,n)},e)}},Gt=function(){return function(t,n){for(var e=0,r=Object.entries(t.hits);e<r.length;e++){var o=u(r[e],2),i=o[0];if(o[1].objectID===n)return parseInt(i,10)}return-1}},Ht=function(t){return function(n,u){var o=u||{},i=o.attributesToRetrieve,c=r(o,["attributesToRetrieve"]),a=n.map((function(n){return e({indexName:t.indexName,objectID:n},i?{attributesToRetrieve:i}:{})}));return t.transporter.read({method:I,path:"1/indexes/*/objects",data:{requests:a}},c)}},Lt=function(t){return function(n,e){return t.transporter.read({method:S,path:m("1/indexes/%s/rules/%s",t.indexName,n)},e)}},Vt=function(t){return function(n){return t.transporter.read({method:S,path:m("1/indexes/%s/settings",t.indexName),data:{getVersion:2}},n)}},Wt=function(t){return function(n,e){return t.transporter.read({method:S,path:m("1/indexes/%s/synonyms/%s",t.indexName,n)},e)}},_t=function(t){return function(n,e){return d(Xt(t)([n],e).then((function(t){return{objectID:t.objectIDs[0],taskID:t.taskIDs[0]}})),(function(n,e){return ln(t)(n.taskID,e)}))}},Xt=function(t){return function(n,e){var u=e||{},o=u.createIfNotExists,i=r(u,["createIfNotExists"]),c=o?hn.PartialUpdateObject:hn.PartialUpdateObjectNoCreate;return Et(t)(n,c,i)}},Yt=function(t){return function(n,i){var c=i||{},a=c.safe,s=c.autoGenerateObjectIDIfNotExist,f=c.batchSize,l=r(c,["safe","autoGenerateObjectIDIfNotExist","batchSize"]),h=function(n,e,r,u){return d(t.transporter.write({method:I,path:m("1/indexes/%s/operation",n),data:{operation:r,destination:e}},u),(function(n,e){return ln(t)(n.taskID,e)}))},p=Math.random().toString(36).substring(7),y="".concat(t.indexName,"_tmp_").concat(p),v=nn({appId:t.appId,transporter:t.transporter,indexName:y}),b=[],g=h(t.indexName,y,"copy",e(e({},l),{},{scope:["settings","synonyms","rules"]}));return b.push(g),d((a?g.wait(l):g).then((function(){var t=v(n,e(e({},l),{},{autoGenerateObjectIDIfNotExist:s,batchSize:f}));return b.push(t),a?t.wait(l):t})).then((function(){var n=h(y,t.indexName,"move",l);return b.push(n),a?n.wait(l):n})).then((function(){return Promise.all(b)})).then((function(t){var n=u(t,3),e=n[0],r=n[1],i=n[2];return{objectIDs:r.objectIDs,taskIDs:[e.taskID].concat(o(r.taskIDs),[i.taskID])}})),(function(t,n){return Promise.all(b.map((function(t){return t.wait(n)})))}))}},Zt=function(t){return function(n,r){return rn(t)(n,e(e({},r),{},{clearExistingRules:!0}))}},$t=function(t){return function(n,r){return on(t)(n,e(e({},r),{},{clearExistingSynonyms:!0}))}},tn=function(t){return function(n,e){return d(nn(t)([n],e).then((function(t){return{objectID:t.objectIDs[0],taskID:t.taskIDs[0]}})),(function(n,e){return ln(t)(n.taskID,e)}))}},nn=function(t){return function(n,e){var u=e||{},o=u.autoGenerateObjectIDIfNotExist,i=r(u,["autoGenerateObjectIDIfNotExist"]),c=o?hn.AddObject:hn.UpdateObject;if(c===hn.UpdateObject){var a=!0,s=!1,f=void 0;try{for(var l,h=n[Symbol.iterator]();!(a=(l=h.next()).done);a=!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){s=!0,f=t}finally{try{a||null==h.return||h.return()}finally{if(s)throw f}}}return Et(t)(n,c,i)}},en=function(t){return function(n,e){return rn(t)([n],e)}},rn=function(t){return function(n,e){var u=e||{},o=u.forwardToReplicas,i=u.clearExistingRules,c=y(r(u,["forwardToReplicas","clearExistingRules"]));return o&&(c.queryParameters.forwardToReplicas=1),i&&(c.queryParameters.clearExistingRules=1),d(t.transporter.write({method:I,path:m("1/indexes/%s/rules/batch",t.indexName),data:n},c),(function(n,e){return ln(t)(n.taskID,e)}))}},un=function(t){return function(n,e){return on(t)([n],e)}},on=function(t){return function(n,e){var u=e||{},o=u.forwardToReplicas,i=u.clearExistingSynonyms,c=u.replaceExistingSynonyms,a=y(r(u,["forwardToReplicas","clearExistingSynonyms","replaceExistingSynonyms"]));return o&&(a.queryParameters.forwardToReplicas=1),(c||i)&&(a.queryParameters.replaceExistingSynonyms=1),d(t.transporter.write({method:I,path:m("1/indexes/%s/synonyms/batch",t.indexName),data:n},a),(function(n,e){return ln(t)(n.taskID,e)}))}},cn=function(t){return function(n,e){return t.transporter.read({method:I,path:m("1/indexes/%s/query",t.indexName),data:{query:n},cacheable:!0},e)}},an=function(t){return function(n,e,r){return t.transporter.read({method:I,path:m("1/indexes/%s/facets/%s/query",t.indexName,n),data:{facetQuery:e},cacheable:!0},r)}},sn=function(t){return function(n,e){return t.transporter.read({method:I,path:m("1/indexes/%s/rules/search",t.indexName),data:{query:n}},e)}},fn=function(t){return function(n,e){return t.transporter.read({method:I,path:m("1/indexes/%s/synonyms/search",t.indexName),data:{query:n}},e)}},dn=function(t){return function(n,e){var u=e||{},o=u.forwardToReplicas,i=y(r(u,["forwardToReplicas"]));return o&&(i.queryParameters.forwardToReplicas=1),d(t.transporter.write({method:q,path:m("1/indexes/%s/settings",t.indexName),data:n},i),(function(n,e){return ln(t)(n.taskID,e)}))}},ln=function(t){return function(n,e){return f((function(r){return function(t){return function(n,e){return t.transporter.read({method:S,path:m("1/indexes/%s/task/%s",t.indexName,n.toString())},e)}}(t)(n,e).then((function(t){return"published"!==t.status?r():void 0}))}))}},hn={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},mn={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},pn=1,yn=2,vn=3;function bn(t,n,r){var u,o={appId:t,apiKey:n,timeouts:{connect:1,read:2,write:30},requester:{send:function(t){return new Promise((function(n){var e=new XMLHttpRequest;e.open(t.method,t.url,!0),Object.keys(t.headers).forEach((function(n){return e.setRequestHeader(n,t.headers[n])}));var r,u=function(t,r){return setTimeout((function(){e.abort(),n({status:0,content:r,isTimedOut:!0})}),1e3*t)},o=u(t.connectTimeout,"Connection timeout");e.onreadystatechange=function(){e.readyState>e.OPENED&&void 0===r&&(clearTimeout(o),r=u(t.responseTimeout,"Socket timeout"))},e.onerror=function(){0===e.status&&(clearTimeout(o),clearTimeout(r),n({content:e.responseText||"Network request failed",status:e.status,isTimedOut:!1}))},e.onload=function(){clearTimeout(o),clearTimeout(r),n({content:e.responseText,status:e.status,isTimedOut:!1})},e.send(t.data)}))}},logger:(u=vn,{debug:function(t,n){return pn>=u&&console.debug(t,n),Promise.resolve()},info:function(t,n){return yn>=u&&console.info(t,n),Promise.resolve()},error:function(t,n){return console.error(t,n),Promise.resolve()}}),responsesCache:a(),requestsCache:a({serializable:!1}),hostsCache:c({caches:[i({key:"".concat("4.12.1","-").concat(t)}),a()]}),userAgent:E("4.12.1").add({segment:"Browser"})},f=e(e({},o),r),d=function(){return function(t){return function(t){var n=t.region||"us",r=s(p.WithinHeaders,t.appId,t.apiKey),u=T(e(e({hosts:[{url:"personalization.".concat(n,".algolia.com")}]},t),{},{headers:e(e(e({},r.headers()),{"content-type":"application/json"}),t.headers),queryParameters:e(e({},r.queryParameters()),t.queryParameters)}));return h({appId:t.appId,transporter:u},t.methods)}(e(e(e({},o),t),{},{methods:{getPersonalizationStrategy:B,setPersonalizationStrategy:M}}))}};return function(t){var n=t.appId,r=s(void 0!==t.authMode?t.authMode:p.WithinHeaders,n,t.apiKey),u=T(e(e({hosts:[{url:"".concat(n,"-dsn.algolia.net"),accept:v.Read},{url:"".concat(n,".algolia.net"),accept:v.Write}].concat(l([{url:"".concat(n,"-1.algolianet.com")},{url:"".concat(n,"-2.algolianet.com")},{url:"".concat(n,"-3.algolianet.com")}]))},t),{},{headers:e(e(e({},r.headers()),{"content-type":"application/x-www-form-urlencoded"}),t.headers),queryParameters:e(e({},r.queryParameters()),t.queryParameters)}));return h({transporter:u,appId:n,addAlgoliaAgent:function(t,n){u.userAgent.add({segment:t,version:n})},clearCache:function(){return Promise.all([u.requestsCache.clear(),u.responsesCache.clear()]).then((function(){}))}},t.methods)}(e(e({},f),{},{methods:{search:pt,searchForFacetValues:yt,multipleBatch:ht,multipleGetObjects:mt,multipleQueries:pt,copyIndex:V,copySettings:_,copySynonyms:X,copyRules:W,moveIndex:lt,listIndices:ft,getLogs:rt,listClusters:st,multipleSearchForFacetValues:yt,getApiKey:tt,addApiKey:Q,listApiKeys:at,updateApiKey:St,deleteApiKey:Z,restoreApiKey:gt,assignUserID:G,assignUserIDs:H,getUserID:ot,searchUserIDs:Pt,listUserIDs:dt,getTopUserIDs:ut,removeUserID:vt,hasPendingMappings:it,clearDictionaryEntries:L,deleteDictionaryEntries:$,getDictionarySettings:et,getAppTask:nt,replaceDictionaryEntries:bt,saveDictionaryEntries:jt,searchDictionaryEntries:Ot,setDictionarySettings:xt,waitAppTask:It,customRequest:Y,initIndex:function(t){return function(n){return ct(t)(n,{methods:{batch:qt,delete:Ut,findAnswers:Mt,getObject:Qt,getObjects:Ht,saveObject:tn,saveObjects:nn,search:cn,searchForFacetValues:an,waitTask:ln,setSettings:dn,getSettings:Vt,partialUpdateObject:_t,partialUpdateObjects:Xt,deleteObject:Jt,deleteObjects:zt,deleteBy:Nt,clearObjects:At,browseObjects:wt,getObjectPosition:Gt,findObject:Kt,exists:Bt,saveSynonym:un,saveSynonyms:on,getSynonym:Wt,searchSynonyms:fn,browseSynonyms:Tt,deleteSynonym:Ft,clearSynonyms:kt,replaceAllObjects:Yt,replaceAllSynonyms:$t,searchRules:sn,getRule:Lt,deleteRule:Ct,saveRule:en,saveRules:rn,replaceAllRules:Zt,browseRules:Dt,clearRules:Rt}})}},initAnalytics:function(){return function(t){return function(t){var n=t.region||"us",r=s(p.WithinHeaders,t.appId,t.apiKey),u=T(e(e({hosts:[{url:"analytics.".concat(n,".algolia.com")}]},t),{},{headers:e(e(e({},r.headers()),{"content-type":"application/json"}),t.headers),queryParameters:e(e({},r.queryParameters()),t.queryParameters)}));return h({appId:t.appId,transporter:u},t.methods)}(e(e(e({},o),t),{},{methods:{addABTest:U,getABTest:z,getABTests:C,stopABTest:F,deleteABTest:J}}))}},initPersonalization:d,initRecommendation:function(){return function(t){return f.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),d()(t)}}}}))}return bn.version="4.12.1",bn}))}));export{e as a};
7
+ //# sourceMappingURL=p-305abcb0.js.map