@nanoporetech-digital/components 5.10.0 → 5.11.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 (737) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/cjs/{algolia-data-6841724e.js → algolia-data-dba27b97.js} +2 -2
  3. package/dist/cjs/{algolia-data-6841724e.js.map → algolia-data-dba27b97.js.map} +1 -1
  4. package/dist/cjs/{algoliasearch-lite.esm.browser-992a2eff.js → algoliasearch-lite.esm.browser-b74ca774.js} +30 -5
  5. package/dist/cjs/algoliasearch-lite.esm.browser-b74ca774.js.map +1 -0
  6. package/dist/cjs/{component-store-6d7b8855.js → component-store-149aeffe.js} +2 -2
  7. package/dist/cjs/{component-store-6d7b8855.js.map → component-store-149aeffe.js.map} +1 -1
  8. package/dist/cjs/fade-dcabf3c1.js +211 -0
  9. package/dist/cjs/fade-dcabf3c1.js.map +1 -0
  10. package/dist/cjs/{form-control-8db579a2.js → form-control-f100407e.js} +2 -2
  11. package/dist/cjs/{form-control-8db579a2.js.map → form-control-f100407e.js.map} +1 -1
  12. package/dist/cjs/fullscreen-d24940a1.js +133 -0
  13. package/dist/cjs/fullscreen-d24940a1.js.map +1 -0
  14. package/dist/cjs/{global-3a6a7873.js → global-a5710651.js} +7 -7
  15. package/dist/cjs/{global-3a6a7873.js.map → global-a5710651.js.map} +1 -1
  16. package/dist/cjs/{index-1d3ebe1a.js → index-14451c95.js} +8 -6
  17. package/dist/cjs/index-14451c95.js.map +1 -0
  18. package/dist/cjs/{index-0f470227.js → index-f6f89d47.js} +2 -2
  19. package/dist/cjs/{index-0f470227.js.map → index-f6f89d47.js.map} +1 -1
  20. package/dist/cjs/lazyload-f6be7590.js +95 -0
  21. package/dist/cjs/lazyload-f6be7590.js.map +1 -0
  22. package/dist/cjs/loader.cjs.js +4 -4
  23. package/dist/cjs/loader.cjs.js.map +1 -1
  24. package/dist/cjs/nano-accordion.cjs.entry.js +1 -1
  25. package/dist/cjs/nano-alert.cjs.entry.js +3 -3
  26. package/dist/cjs/nano-alert.cjs.entry.js.map +1 -1
  27. package/dist/cjs/nano-algolia-filter.cjs.entry.js +3 -3
  28. package/dist/cjs/nano-algolia-filter.cjs.entry.js.map +1 -1
  29. package/dist/cjs/nano-algolia-pagination.cjs.entry.js +2 -7
  30. package/dist/cjs/nano-algolia-pagination.cjs.entry.js.map +1 -1
  31. package/dist/cjs/nano-algolia-results.cjs.entry.js +2 -2
  32. package/dist/cjs/nano-algolia-results.cjs.entry.js.map +1 -1
  33. package/dist/cjs/nano-algolia.cjs.entry.js +982 -26
  34. package/dist/cjs/nano-algolia.cjs.entry.js.map +1 -1
  35. package/dist/cjs/nano-aspect-ratio.cjs.entry.js +1 -1
  36. package/dist/cjs/nano-checkbox-group.cjs.entry.js +10 -4
  37. package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
  38. package/dist/cjs/nano-checkbox.cjs.entry.js +4 -2
  39. package/dist/cjs/nano-checkbox.cjs.entry.js.map +1 -1
  40. package/dist/cjs/nano-components.cjs.js +4 -4
  41. package/dist/cjs/nano-components.cjs.js.map +1 -1
  42. package/dist/cjs/nano-datalist_3.cjs.entry.js +4 -4
  43. package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -1
  44. package/dist/cjs/nano-date-input.cjs.entry.js +1 -1
  45. package/dist/cjs/nano-date-picker.cjs.entry.js +2 -2
  46. package/dist/cjs/nano-date-picker.cjs.entry.js.map +1 -1
  47. package/dist/cjs/nano-demo.cjs.entry.js +1 -1
  48. package/dist/cjs/nano-details.cjs.entry.js +2 -2
  49. package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
  50. package/dist/cjs/nano-dialog.cjs.entry.js +5 -5
  51. package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
  52. package/dist/cjs/nano-drawer.cjs.entry.js +5 -5
  53. package/dist/cjs/nano-drawer.cjs.entry.js.map +1 -1
  54. package/dist/cjs/nano-dropdown.cjs.entry.js +1 -1
  55. package/dist/cjs/nano-dropdown.cjs.entry.js.map +1 -1
  56. package/dist/cjs/nano-field-validator.cjs.entry.js +7 -5
  57. package/dist/cjs/nano-field-validator.cjs.entry.js.map +1 -1
  58. package/dist/cjs/nano-file-upload.cjs.entry.js +2 -2
  59. package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
  60. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js +4 -4
  61. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js.map +1 -1
  62. package/dist/cjs/nano-global-nav.cjs.entry.js +122 -153
  63. package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
  64. package/dist/cjs/nano-global-search-results.cjs.entry.js +3 -3
  65. package/dist/cjs/nano-global-search-results.cjs.entry.js.map +1 -1
  66. package/dist/cjs/nano-grid-item.cjs.entry.js +1 -1
  67. package/dist/cjs/nano-grid_2.cjs.entry.js +2 -2
  68. package/dist/cjs/nano-grid_2.cjs.entry.js.map +1 -1
  69. package/dist/cjs/nano-hero.cjs.entry.js +2 -2
  70. package/dist/cjs/nano-hero.cjs.entry.js.map +1 -1
  71. package/dist/cjs/nano-icon-button_2.cjs.entry.js +24 -4
  72. package/dist/cjs/nano-icon-button_2.cjs.entry.js.map +1 -1
  73. package/dist/cjs/nano-icon.cjs.entry.js +4 -4
  74. package/dist/cjs/nano-icon.cjs.entry.js.map +1 -1
  75. package/dist/cjs/nano-input.cjs.entry.js +3 -3
  76. package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
  77. package/dist/cjs/nano-menu-drawer.cjs.entry.js +2 -2
  78. package/dist/cjs/nano-menu-drawer.cjs.entry.js.map +1 -1
  79. package/dist/cjs/nano-overflow-nav.cjs.entry.js +2 -2
  80. package/dist/cjs/nano-overflow-nav.cjs.entry.js.map +1 -1
  81. package/dist/cjs/nano-progress-bar.cjs.entry.js +2 -2
  82. package/dist/cjs/nano-progress-bar.cjs.entry.js.map +1 -1
  83. package/dist/cjs/nano-range.cjs.entry.js +2 -2
  84. package/dist/cjs/nano-range.cjs.entry.js.map +1 -1
  85. package/dist/cjs/nano-rating.cjs.entry.js +2 -2
  86. package/dist/cjs/nano-rating.cjs.entry.js.map +1 -1
  87. package/dist/cjs/nano-resize-observe_2.cjs.entry.js +1 -1
  88. package/dist/cjs/nano-slide.cjs.entry.js +1 -1
  89. package/dist/cjs/nano-slides-2f3dcc02.js +2975 -0
  90. package/dist/cjs/nano-slides-2f3dcc02.js.map +1 -0
  91. package/dist/cjs/nano-slides.cjs.entry.js +3 -4292
  92. package/dist/cjs/nano-slides.cjs.entry.js.map +1 -1
  93. package/dist/cjs/nano-sortable.cjs.entry.js +1 -1
  94. package/dist/cjs/nano-spinner.cjs.entry.js +2 -2
  95. package/dist/cjs/nano-spinner.cjs.entry.js.map +1 -1
  96. package/dist/cjs/nano-split-pane.cjs.entry.js +1 -1
  97. package/dist/cjs/nano-sticker.cjs.entry.js +3 -2
  98. package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
  99. package/dist/cjs/nano-tab-content.cjs.entry.js +1 -1
  100. package/dist/cjs/nano-tab-group.cjs.entry.js +4 -4
  101. package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
  102. package/dist/cjs/nano-tab.cjs.entry.js +2 -2
  103. package/dist/cjs/nano-tab.cjs.entry.js.map +1 -1
  104. package/dist/cjs/{nano-table-72d5dc63.js → nano-table-26845696.js} +5 -5
  105. package/dist/cjs/{nano-table-72d5dc63.js.map → nano-table-26845696.js.map} +1 -1
  106. package/dist/cjs/nano-table.cjs.entry.js +3 -3
  107. package/dist/cjs/page-dots-ae2cefb4.js +140 -0
  108. package/dist/cjs/page-dots-ae2cefb4.js.map +1 -0
  109. package/dist/cjs/{scroll-fc1b8387.js → scroll-e8c21f80.js} +8 -4
  110. package/dist/cjs/scroll-e8c21f80.js.map +1 -0
  111. package/dist/cjs/{table.worker-3df34efe.js → table.worker-a5996745.js} +4 -4
  112. package/dist/cjs/table.worker-a5996745.js.map +1 -0
  113. package/dist/collection/collection-manifest.json +1 -1
  114. package/dist/collection/components/alert/alert.css +1 -2
  115. package/dist/collection/components/algolia/algolia-data.js.map +1 -1
  116. package/dist/collection/components/algolia/algolia-filter.js.map +1 -1
  117. package/dist/collection/components/algolia/algolia-pagination.js +0 -5
  118. package/dist/collection/components/algolia/algolia-pagination.js.map +1 -1
  119. package/dist/collection/components/algolia/algolia-results.js.map +1 -1
  120. package/dist/collection/components/algolia/algolia.js +4 -27
  121. package/dist/collection/components/algolia/algolia.js.map +1 -1
  122. package/dist/collection/components/algolia/lib/squirrelly/browser.js +10 -0
  123. package/dist/collection/components/algolia/lib/squirrelly/browser.js.map +1 -0
  124. package/dist/collection/components/algolia/lib/squirrelly/compile-string.js +151 -0
  125. package/dist/collection/components/algolia/lib/squirrelly/compile-string.js.map +1 -0
  126. package/dist/collection/components/algolia/lib/squirrelly/compile.js +44 -0
  127. package/dist/collection/components/algolia/lib/squirrelly/compile.js.map +1 -0
  128. package/dist/collection/components/algolia/lib/squirrelly/config.js +68 -0
  129. package/dist/collection/components/algolia/lib/squirrelly/config.js.map +1 -0
  130. package/dist/collection/components/algolia/lib/squirrelly/container-utils.js +57 -0
  131. package/dist/collection/components/algolia/lib/squirrelly/container-utils.js.map +1 -0
  132. package/dist/collection/components/algolia/lib/squirrelly/containers.js +128 -0
  133. package/dist/collection/components/algolia/lib/squirrelly/containers.js.map +1 -0
  134. package/dist/collection/components/algolia/lib/squirrelly/err.js +39 -0
  135. package/dist/collection/components/algolia/lib/squirrelly/err.js.map +1 -0
  136. package/dist/collection/components/algolia/lib/squirrelly/parse.js +327 -0
  137. package/dist/collection/components/algolia/lib/squirrelly/parse.js.map +1 -0
  138. package/dist/collection/components/algolia/lib/squirrelly/render.js +62 -0
  139. package/dist/collection/components/algolia/lib/squirrelly/render.js.map +1 -0
  140. package/dist/collection/components/algolia/lib/squirrelly/storage.js +32 -0
  141. package/dist/collection/components/algolia/lib/squirrelly/storage.js.map +1 -0
  142. package/dist/collection/components/algolia/lib/squirrelly/utils.js +102 -0
  143. package/dist/collection/components/algolia/lib/squirrelly/utils.js.map +1 -0
  144. package/dist/collection/{utils → components/algolia/lib}/template.js +1 -2
  145. package/dist/collection/components/algolia/lib/template.js.map +1 -0
  146. package/dist/collection/components/checkbox/checkbox-group.css +17 -15
  147. package/dist/collection/components/checkbox/checkbox-group.js +29 -2
  148. package/dist/collection/components/checkbox/checkbox-group.js.map +1 -1
  149. package/dist/collection/components/checkbox/checkbox.css +20 -22
  150. package/dist/collection/components/checkbox/checkbox.js +2 -0
  151. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  152. package/dist/collection/components/date-picker/date-picker.css +5 -10
  153. package/dist/collection/components/details/details.css +4 -4
  154. package/dist/collection/components/dialog/dialog.css +3 -6
  155. package/dist/collection/components/dialog/dialog.js +1 -1
  156. package/dist/collection/components/dialog/dialog.js.map +1 -1
  157. package/dist/collection/components/drawer/drawer.css +18 -24
  158. package/dist/collection/components/drawer/drawer.js +1 -1
  159. package/dist/collection/components/drawer/drawer.js.map +1 -1
  160. package/dist/collection/components/dropdown/dropdown.js +1 -1
  161. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  162. package/dist/collection/components/field-validator/field-validator.js +5 -3
  163. package/dist/collection/components/field-validator/field-validator.js.map +1 -1
  164. package/dist/collection/components/file-upload/file-upload.css +16 -30
  165. package/dist/collection/components/global-nav/global-nav.js +118 -157
  166. package/dist/collection/components/global-nav/global-nav.js.map +1 -1
  167. package/dist/collection/components/global-nav/style/global-nav.css +97 -138
  168. package/dist/collection/components/global-search-results/global-search-results.css +85 -127
  169. package/dist/collection/components/global-search-results/global-search-results.js +1 -1
  170. package/dist/collection/components/global-search-results/global-search-results.js.map +1 -1
  171. package/dist/collection/components/hero/hero.css +13 -26
  172. package/dist/collection/components/icon/icon.css +6 -6
  173. package/dist/collection/components/icon/icon.js +2 -2
  174. package/dist/collection/components/icon/icon.js.map +1 -1
  175. package/dist/collection/components/img/img.css +7 -17
  176. package/dist/collection/components/input/input.css +15 -36
  177. package/dist/collection/components/menu/menu.css +1 -1
  178. package/dist/collection/components/menu/menu.js +1 -1
  179. package/dist/collection/components/menu/menu.js.map +1 -1
  180. package/dist/collection/components/menu-drawer/menu-drawer.css +5 -14
  181. package/dist/collection/components/nav-item/nav-item.css +25 -46
  182. package/dist/collection/components/option/option.css +3 -5
  183. package/dist/collection/components/overflow-nav/overflow-nav.css +16 -27
  184. package/dist/collection/components/progress-bar/progress-bar.css +2 -2
  185. package/dist/collection/components/range/range.css +17 -19
  186. package/dist/collection/components/rating/rating.css +2 -8
  187. package/dist/collection/components/select/select.css +30 -53
  188. package/dist/collection/components/slides/lib/js/animate.js +29 -54
  189. package/dist/collection/components/slides/lib/js/animate.js.map +1 -0
  190. package/dist/collection/components/slides/lib/js/cell.js +12 -24
  191. package/dist/collection/components/slides/lib/js/cell.js.map +1 -0
  192. package/dist/collection/components/slides/lib/js/drag.js +65 -116
  193. package/dist/collection/components/slides/lib/js/drag.js.map +1 -0
  194. package/dist/collection/components/slides/lib/js/fade.js +52 -79
  195. package/dist/collection/components/slides/lib/js/fade.js.map +1 -0
  196. package/dist/collection/components/slides/lib/js/flickity.js +118 -206
  197. package/dist/collection/components/slides/lib/js/flickity.js.map +1 -0
  198. package/dist/collection/components/slides/lib/js/fullscreen.js +21 -40
  199. package/dist/collection/components/slides/lib/js/fullscreen.js.map +1 -0
  200. package/dist/collection/components/slides/lib/js/index.js +4 -6
  201. package/dist/collection/components/slides/lib/js/index.js.map +1 -0
  202. package/dist/collection/components/slides/lib/js/lazyload.js +21 -36
  203. package/dist/collection/components/slides/lib/js/lazyload.js.map +1 -0
  204. package/dist/collection/components/slides/lib/js/page-dots.js +21 -45
  205. package/dist/collection/components/slides/lib/js/page-dots.js.map +1 -0
  206. package/dist/collection/components/slides/lib/js/player.js +12 -40
  207. package/dist/collection/components/slides/lib/js/player.js.map +1 -0
  208. package/dist/collection/components/slides/lib/js/prev-next-button.js +24 -52
  209. package/dist/collection/components/slides/lib/js/prev-next-button.js.map +1 -0
  210. package/dist/collection/components/slides/lib/js/slide.js +10 -15
  211. package/dist/collection/components/slides/lib/js/slide.js.map +1 -0
  212. package/dist/collection/components/slides/lib/js/utils/event-emitter.js +75 -0
  213. package/dist/collection/components/slides/lib/js/utils/event-emitter.js.map +1 -0
  214. package/dist/collection/components/slides/lib/js/utils/gestures.js +436 -0
  215. package/dist/collection/components/slides/lib/js/utils/gestures.js.map +1 -0
  216. package/dist/collection/components/slides/lib/js/utils/get-size.js +160 -0
  217. package/dist/collection/components/slides/lib/js/utils/get-size.js.map +1 -0
  218. package/dist/collection/components/slides/lib/js/utils/utils.js +166 -0
  219. package/dist/collection/components/slides/lib/js/utils/utils.js.map +1 -0
  220. package/dist/collection/components/slides/slides.css +18 -19
  221. package/dist/collection/components/slides/slides.js +31 -5
  222. package/dist/collection/components/slides/slides.js.map +1 -1
  223. package/dist/collection/components/spinner/spinner.css +1 -2
  224. package/dist/collection/components/sticker/sticker.js +2 -1
  225. package/dist/collection/components/sticker/sticker.js.map +1 -1
  226. package/dist/collection/components/table/table.css +29 -48
  227. package/dist/collection/components/tabs/tab-group.css +10 -14
  228. package/dist/collection/components/tabs/tab.css +8 -18
  229. package/dist/collection/components/tooltip/tooltip.css +34 -31
  230. package/dist/collection/components/tooltip/tooltip.js +23 -3
  231. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  232. package/dist/collection/global/script/global.js +6 -6
  233. package/dist/collection/global/script/global.js.map +1 -1
  234. package/dist/collection/utils/scroll.js +7 -3
  235. package/dist/collection/utils/scroll.js.map +1 -1
  236. package/dist/components/algolia-data.js.map +1 -1
  237. package/dist/components/algolia.js +978 -23
  238. package/dist/components/algolia.js.map +1 -1
  239. package/dist/components/algoliasearch-lite.esm.browser.js +29 -4
  240. package/dist/components/algoliasearch-lite.esm.browser.js.map +1 -1
  241. package/dist/components/date-picker.js +1 -1
  242. package/dist/components/date-picker.js.map +1 -1
  243. package/dist/components/dropdown.js +1 -1
  244. package/dist/components/dropdown.js.map +1 -1
  245. package/dist/components/fade.js +208 -0
  246. package/dist/components/fade.js.map +1 -0
  247. package/dist/components/fullscreen.js +130 -0
  248. package/dist/components/fullscreen.js.map +1 -0
  249. package/dist/components/icon.js +3 -3
  250. package/dist/components/icon.js.map +1 -1
  251. package/dist/components/img.js +1 -1
  252. package/dist/components/img.js.map +1 -1
  253. package/dist/components/index.js +6 -6
  254. package/dist/components/index.js.map +1 -1
  255. package/dist/components/input.js +1 -1
  256. package/dist/components/input.js.map +1 -1
  257. package/dist/components/lazyload.js +92 -0
  258. package/dist/components/lazyload.js.map +1 -0
  259. package/dist/components/menu.js +2 -2
  260. package/dist/components/menu.js.map +1 -1
  261. package/dist/components/nano-alert.js +1 -1
  262. package/dist/components/nano-alert.js.map +1 -1
  263. package/dist/components/nano-algolia-filter.js.map +1 -1
  264. package/dist/components/nano-algolia-pagination.js +0 -5
  265. package/dist/components/nano-algolia-pagination.js.map +1 -1
  266. package/dist/components/nano-algolia-results.js.map +1 -1
  267. package/dist/components/nano-checkbox-group.js +10 -3
  268. package/dist/components/nano-checkbox-group.js.map +1 -1
  269. package/dist/components/nano-checkbox.js +3 -1
  270. package/dist/components/nano-checkbox.js.map +1 -1
  271. package/dist/components/nano-details.js +1 -1
  272. package/dist/components/nano-details.js.map +1 -1
  273. package/dist/components/nano-dialog.js +2 -2
  274. package/dist/components/nano-dialog.js.map +1 -1
  275. package/dist/components/nano-drawer.js +2 -2
  276. package/dist/components/nano-drawer.js.map +1 -1
  277. package/dist/components/nano-field-validator.js +5 -3
  278. package/dist/components/nano-field-validator.js.map +1 -1
  279. package/dist/components/nano-file-upload.js +1 -1
  280. package/dist/components/nano-file-upload.js.map +1 -1
  281. package/dist/components/nano-global-nav.js +119 -152
  282. package/dist/components/nano-global-nav.js.map +1 -1
  283. package/dist/components/nano-global-search-results.js +2 -2
  284. package/dist/components/nano-global-search-results.js.map +1 -1
  285. package/dist/components/nano-hero.js +1 -1
  286. package/dist/components/nano-hero.js.map +1 -1
  287. package/dist/components/nano-menu-drawer.js +1 -1
  288. package/dist/components/nano-menu-drawer.js.map +1 -1
  289. package/dist/components/nano-overflow-nav.js +1 -1
  290. package/dist/components/nano-overflow-nav.js.map +1 -1
  291. package/dist/components/nano-range.js +1 -1
  292. package/dist/components/nano-range.js.map +1 -1
  293. package/dist/components/nano-rating.js +1 -1
  294. package/dist/components/nano-rating.js.map +1 -1
  295. package/dist/components/nano-slides.js +760 -2090
  296. package/dist/components/nano-slides.js.map +1 -1
  297. package/dist/components/nano-tab-group.js +1 -1
  298. package/dist/components/nano-tab-group.js.map +1 -1
  299. package/dist/components/nano-tab.js +1 -1
  300. package/dist/components/nano-tab.js.map +1 -1
  301. package/dist/components/nav-item.js +1 -1
  302. package/dist/components/nav-item.js.map +1 -1
  303. package/dist/components/option.js +1 -1
  304. package/dist/components/option.js.map +1 -1
  305. package/dist/components/page-dots.js +137 -0
  306. package/dist/components/page-dots.js.map +1 -0
  307. package/dist/components/progress-bar.js +1 -1
  308. package/dist/components/progress-bar.js.map +1 -1
  309. package/dist/components/scroll.js +7 -3
  310. package/dist/components/scroll.js.map +1 -1
  311. package/dist/components/select.js +1 -1
  312. package/dist/components/select.js.map +1 -1
  313. package/dist/components/spinner.js +1 -1
  314. package/dist/components/spinner.js.map +1 -1
  315. package/dist/components/sticker.js +2 -1
  316. package/dist/components/sticker.js.map +1 -1
  317. package/dist/components/table.js +1 -1
  318. package/dist/components/table.js.map +1 -1
  319. package/dist/components/tooltip.js +24 -4
  320. package/dist/components/tooltip.js.map +1 -1
  321. package/dist/esm/{algolia-data-ebf2a439.js → algolia-data-1b42827c.js} +2 -2
  322. package/dist/esm/{algolia-data-ebf2a439.js.map → algolia-data-1b42827c.js.map} +1 -1
  323. package/dist/esm/{algoliasearch-lite.esm.browser-04891fdc.js → algoliasearch-lite.esm.browser-d71a28dc.js} +30 -5
  324. package/dist/esm/algoliasearch-lite.esm.browser-d71a28dc.js.map +1 -0
  325. package/dist/esm/{component-store-54df2005.js → component-store-f7eb0a56.js} +2 -2
  326. package/dist/esm/{component-store-54df2005.js.map → component-store-f7eb0a56.js.map} +1 -1
  327. package/dist/esm/fade-1aa7a6db.js +209 -0
  328. package/dist/esm/fade-1aa7a6db.js.map +1 -0
  329. package/dist/esm/{form-control-eb06e009.js → form-control-881fa3af.js} +2 -2
  330. package/dist/esm/{form-control-eb06e009.js.map → form-control-881fa3af.js.map} +1 -1
  331. package/dist/esm/fullscreen-86fa276a.js +131 -0
  332. package/dist/esm/fullscreen-86fa276a.js.map +1 -0
  333. package/dist/esm/{global-f6e05656.js → global-be484e8c.js} +7 -7
  334. package/dist/esm/{global-f6e05656.js.map → global-be484e8c.js.map} +1 -1
  335. package/dist/esm/{index-e8891229.js → index-3003356f.js} +2 -2
  336. package/dist/esm/{index-e8891229.js.map → index-3003356f.js.map} +1 -1
  337. package/dist/esm/{index-06666022.js → index-9695db0a.js} +8 -6
  338. package/dist/esm/index-9695db0a.js.map +1 -0
  339. package/dist/esm/lazyload-994232a6.js +93 -0
  340. package/dist/esm/lazyload-994232a6.js.map +1 -0
  341. package/dist/esm/loader.js +5 -5
  342. package/dist/esm/loader.js.map +1 -1
  343. package/dist/esm/nano-accordion.entry.js +1 -1
  344. package/dist/esm/nano-alert.entry.js +3 -3
  345. package/dist/esm/nano-alert.entry.js.map +1 -1
  346. package/dist/esm/nano-algolia-filter.entry.js +3 -3
  347. package/dist/esm/nano-algolia-filter.entry.js.map +1 -1
  348. package/dist/esm/nano-algolia-pagination.entry.js +2 -7
  349. package/dist/esm/nano-algolia-pagination.entry.js.map +1 -1
  350. package/dist/esm/nano-algolia-results.entry.js +2 -2
  351. package/dist/esm/nano-algolia-results.entry.js.map +1 -1
  352. package/dist/esm/nano-algolia.entry.js +982 -26
  353. package/dist/esm/nano-algolia.entry.js.map +1 -1
  354. package/dist/esm/nano-aspect-ratio.entry.js +1 -1
  355. package/dist/esm/nano-checkbox-group.entry.js +10 -4
  356. package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
  357. package/dist/esm/nano-checkbox.entry.js +4 -2
  358. package/dist/esm/nano-checkbox.entry.js.map +1 -1
  359. package/dist/esm/nano-components.js +5 -5
  360. package/dist/esm/nano-components.js.map +1 -1
  361. package/dist/esm/nano-datalist_3.entry.js +4 -4
  362. package/dist/esm/nano-datalist_3.entry.js.map +1 -1
  363. package/dist/esm/nano-date-input.entry.js +1 -1
  364. package/dist/esm/nano-date-picker.entry.js +2 -2
  365. package/dist/esm/nano-date-picker.entry.js.map +1 -1
  366. package/dist/esm/nano-demo.entry.js +1 -1
  367. package/dist/esm/nano-details.entry.js +2 -2
  368. package/dist/esm/nano-details.entry.js.map +1 -1
  369. package/dist/esm/nano-dialog.entry.js +5 -5
  370. package/dist/esm/nano-dialog.entry.js.map +1 -1
  371. package/dist/esm/nano-drawer.entry.js +5 -5
  372. package/dist/esm/nano-drawer.entry.js.map +1 -1
  373. package/dist/esm/nano-dropdown.entry.js +1 -1
  374. package/dist/esm/nano-dropdown.entry.js.map +1 -1
  375. package/dist/esm/nano-field-validator.entry.js +7 -5
  376. package/dist/esm/nano-field-validator.entry.js.map +1 -1
  377. package/dist/esm/nano-file-upload.entry.js +2 -2
  378. package/dist/esm/nano-file-upload.entry.js.map +1 -1
  379. package/dist/esm/nano-global-nav-user-profile_3.entry.js +4 -4
  380. package/dist/esm/nano-global-nav-user-profile_3.entry.js.map +1 -1
  381. package/dist/esm/nano-global-nav.entry.js +122 -153
  382. package/dist/esm/nano-global-nav.entry.js.map +1 -1
  383. package/dist/esm/nano-global-search-results.entry.js +3 -3
  384. package/dist/esm/nano-global-search-results.entry.js.map +1 -1
  385. package/dist/esm/nano-grid-item.entry.js +1 -1
  386. package/dist/esm/nano-grid_2.entry.js +2 -2
  387. package/dist/esm/nano-grid_2.entry.js.map +1 -1
  388. package/dist/esm/nano-hero.entry.js +2 -2
  389. package/dist/esm/nano-hero.entry.js.map +1 -1
  390. package/dist/esm/nano-icon-button_2.entry.js +24 -4
  391. package/dist/esm/nano-icon-button_2.entry.js.map +1 -1
  392. package/dist/esm/nano-icon.entry.js +4 -4
  393. package/dist/esm/nano-icon.entry.js.map +1 -1
  394. package/dist/esm/nano-input.entry.js +3 -3
  395. package/dist/esm/nano-input.entry.js.map +1 -1
  396. package/dist/esm/nano-menu-drawer.entry.js +2 -2
  397. package/dist/esm/nano-menu-drawer.entry.js.map +1 -1
  398. package/dist/esm/nano-overflow-nav.entry.js +2 -2
  399. package/dist/esm/nano-overflow-nav.entry.js.map +1 -1
  400. package/dist/esm/nano-progress-bar.entry.js +2 -2
  401. package/dist/esm/nano-progress-bar.entry.js.map +1 -1
  402. package/dist/esm/nano-range.entry.js +2 -2
  403. package/dist/esm/nano-range.entry.js.map +1 -1
  404. package/dist/esm/nano-rating.entry.js +2 -2
  405. package/dist/esm/nano-rating.entry.js.map +1 -1
  406. package/dist/esm/nano-resize-observe_2.entry.js +1 -1
  407. package/dist/esm/nano-slide.entry.js +1 -1
  408. package/dist/esm/nano-slides-9908c44d.js +2970 -0
  409. package/dist/esm/nano-slides-9908c44d.js.map +1 -0
  410. package/dist/esm/nano-slides.entry.js +2 -4295
  411. package/dist/esm/nano-slides.entry.js.map +1 -1
  412. package/dist/esm/nano-sortable.entry.js +1 -1
  413. package/dist/esm/nano-spinner.entry.js +2 -2
  414. package/dist/esm/nano-spinner.entry.js.map +1 -1
  415. package/dist/esm/nano-split-pane.entry.js +1 -1
  416. package/dist/esm/nano-sticker.entry.js +3 -2
  417. package/dist/esm/nano-sticker.entry.js.map +1 -1
  418. package/dist/esm/nano-tab-content.entry.js +1 -1
  419. package/dist/esm/nano-tab-group.entry.js +4 -4
  420. package/dist/esm/nano-tab-group.entry.js.map +1 -1
  421. package/dist/esm/nano-tab.entry.js +2 -2
  422. package/dist/esm/nano-tab.entry.js.map +1 -1
  423. package/dist/esm/{nano-table-5af42ba4.js → nano-table-55d753cb.js} +5 -5
  424. package/dist/esm/{nano-table-5af42ba4.js.map → nano-table-55d753cb.js.map} +1 -1
  425. package/dist/esm/nano-table.entry.js +3 -3
  426. package/dist/esm/page-dots-467ace2e.js +138 -0
  427. package/dist/esm/page-dots-467ace2e.js.map +1 -0
  428. package/dist/esm/{scroll-ec7ac257.js → scroll-ac332213.js} +8 -4
  429. package/dist/esm/scroll-ac332213.js.map +1 -0
  430. package/dist/esm/{table.worker-3cae908c.js → table.worker-34706ecc.js} +4 -4
  431. package/dist/esm/table.worker-34706ecc.js.map +1 -0
  432. package/dist/nano-components/{p-74a7fc4f.js → active-element-75b7c8a0.js} +1 -1
  433. package/dist/nano-components/algolia-data-1b42827c.js +5 -0
  434. package/dist/nano-components/{p-a26bdb65.js.map → algolia-data-1b42827c.js.map} +1 -1
  435. package/dist/nano-components/algoliasearch-lite.esm.browser-d71a28dc.js +5 -0
  436. package/dist/nano-components/algoliasearch-lite.esm.browser-d71a28dc.js.map +1 -0
  437. package/dist/nano-components/component-store-f7eb0a56.js +5 -0
  438. package/dist/nano-components/{p-dd5687db.js.map → component-store-f7eb0a56.js.map} +1 -1
  439. package/dist/nano-components/{p-cecb9af1.js → date-utils-6b7a6e1f.js} +1 -1
  440. package/dist/nano-components/{p-cdfc507e.js → dom-8599fac1.js} +1 -1
  441. package/dist/nano-components/{p-842cf127.js → drag-1723a4cc.js} +1 -1
  442. package/dist/nano-components/{p-9bfdee71.js → events-6a805b42.js} +1 -1
  443. package/dist/nano-components/fade-1aa7a6db.js +5 -0
  444. package/dist/nano-components/fade-1aa7a6db.js.map +1 -0
  445. package/dist/nano-components/{p-f8f89998.js → focus-visible-8b2c14da.js} +1 -1
  446. package/dist/nano-components/form-control-881fa3af.js +5 -0
  447. package/dist/nano-components/{p-dc805ecc.js.map → form-control-881fa3af.js.map} +1 -1
  448. package/dist/nano-components/fullscreen-86fa276a.js +5 -0
  449. package/dist/nano-components/fullscreen-86fa276a.js.map +1 -0
  450. package/dist/nano-components/{p-d4f6ec9f.js → global-be484e8c.js} +2 -2
  451. package/dist/nano-components/{p-d4f6ec9f.js.map → global-be484e8c.js.map} +1 -1
  452. package/dist/nano-components/index-3003356f.js +5 -0
  453. package/dist/nano-components/{p-70747f20.js.map → index-3003356f.js.map} +1 -1
  454. package/dist/nano-components/{p-d6a04b3a.js → index-9695db0a.js} +2 -2
  455. package/dist/nano-components/{p-d6a04b3a.js.map → index-9695db0a.js.map} +1 -1
  456. package/dist/nano-components/{p-bb07c3d0.js → index-f626f476.js} +1 -1
  457. package/dist/nano-components/index.esm.js +1 -1
  458. package/dist/nano-components/index.esm.js.map +1 -1
  459. package/dist/nano-components/lazyload-994232a6.js +5 -0
  460. package/dist/nano-components/lazyload-994232a6.js.map +1 -0
  461. package/dist/nano-components/{p-2155fc2c.js → local-my-account-6662da72.js} +1 -1
  462. package/dist/nano-components/{p-ee045579.js → math-c02ddfda.js} +1 -1
  463. package/dist/nano-components/modal-bd9638c0.js +5 -0
  464. package/dist/nano-components/{p-2234694a.js.map → modal-bd9638c0.js.map} +1 -1
  465. package/dist/nano-components/nano-accordion.entry.js +5 -0
  466. package/dist/nano-components/{p-9f60ff14.entry.js.map → nano-accordion.entry.js.map} +1 -1
  467. package/dist/nano-components/nano-alert.entry.js +5 -0
  468. package/dist/nano-components/{p-191352c4.entry.js.map → nano-alert.entry.js.map} +1 -1
  469. package/dist/nano-components/nano-algolia-filter.entry.js +5 -0
  470. package/dist/nano-components/nano-algolia-filter.entry.js.map +1 -0
  471. package/dist/nano-components/nano-algolia-pagination.entry.js +5 -0
  472. package/dist/nano-components/nano-algolia-pagination.entry.js.map +1 -0
  473. package/dist/nano-components/nano-algolia-results.entry.js +5 -0
  474. package/dist/nano-components/nano-algolia-results.entry.js.map +1 -0
  475. package/dist/nano-components/nano-algolia.entry.js +5 -0
  476. package/dist/nano-components/nano-algolia.entry.js.map +1 -0
  477. package/dist/nano-components/nano-aspect-ratio.entry.js +5 -0
  478. package/dist/nano-components/{p-87329424.entry.js.map → nano-aspect-ratio.entry.js.map} +1 -1
  479. package/dist/nano-components/nano-checkbox-group.entry.js +5 -0
  480. package/dist/nano-components/nano-checkbox-group.entry.js.map +1 -0
  481. package/dist/nano-components/nano-checkbox.entry.js +5 -0
  482. package/dist/nano-components/nano-checkbox.entry.js.map +1 -0
  483. package/dist/nano-components/nano-components.css +1 -1
  484. package/dist/nano-components/nano-components.esm.js +1 -1
  485. package/dist/nano-components/nano-components.esm.js.map +1 -1
  486. package/dist/nano-components/nano-datalist_3.entry.js +5 -0
  487. package/dist/nano-components/nano-datalist_3.entry.js.map +1 -0
  488. package/dist/nano-components/nano-date-input.entry.js +5 -0
  489. package/dist/nano-components/{p-d4e44f93.entry.js.map → nano-date-input.entry.js.map} +1 -1
  490. package/dist/nano-components/nano-date-picker.entry.js +5 -0
  491. package/dist/nano-components/{p-efd3e121.entry.js.map → nano-date-picker.entry.js.map} +1 -1
  492. package/dist/nano-components/nano-demo.entry.js +5 -0
  493. package/dist/nano-components/{p-e98835e2.entry.js.map → nano-demo.entry.js.map} +1 -1
  494. package/dist/nano-components/nano-details.entry.js +5 -0
  495. package/dist/nano-components/nano-details.entry.js.map +1 -0
  496. package/dist/nano-components/nano-dialog.entry.js +5 -0
  497. package/dist/nano-components/{p-79fff4fd.entry.js.map → nano-dialog.entry.js.map} +1 -1
  498. package/dist/nano-components/nano-drawer.entry.js +5 -0
  499. package/dist/nano-components/nano-drawer.entry.js.map +1 -0
  500. package/dist/nano-components/nano-dropdown.entry.js +5 -0
  501. package/dist/nano-components/nano-dropdown.entry.js.map +1 -0
  502. package/dist/nano-components/nano-field-validator.entry.js +5 -0
  503. package/dist/nano-components/nano-field-validator.entry.js.map +1 -0
  504. package/dist/nano-components/nano-file-upload.entry.js +5 -0
  505. package/dist/nano-components/nano-file-upload.entry.js.map +1 -0
  506. package/dist/nano-components/nano-global-nav-user-profile_3.entry.js +5 -0
  507. package/dist/nano-components/nano-global-nav-user-profile_3.entry.js.map +1 -0
  508. package/dist/nano-components/nano-global-nav.entry.js +5 -0
  509. package/dist/nano-components/nano-global-nav.entry.js.map +1 -0
  510. package/dist/nano-components/nano-global-search-results.entry.js +5 -0
  511. package/dist/nano-components/nano-global-search-results.entry.js.map +1 -0
  512. package/dist/nano-components/nano-grid-item.entry.js +5 -0
  513. package/dist/nano-components/{p-9c290055.entry.js.map → nano-grid-item.entry.js.map} +1 -1
  514. package/dist/nano-components/nano-grid_2.entry.js +5 -0
  515. package/dist/nano-components/{p-7c82af28.entry.js.map → nano-grid_2.entry.js.map} +1 -1
  516. package/dist/nano-components/nano-hero.entry.js +5 -0
  517. package/dist/nano-components/{p-328ef9d3.entry.js.map → nano-hero.entry.js.map} +1 -1
  518. package/dist/nano-components/nano-icon-button_2.entry.js +5 -0
  519. package/dist/nano-components/nano-icon-button_2.entry.js.map +1 -0
  520. package/dist/nano-components/nano-icon.entry.js +5 -0
  521. package/dist/nano-components/nano-icon.entry.js.map +1 -0
  522. package/dist/nano-components/nano-input.entry.js +5 -0
  523. package/dist/nano-components/nano-input.entry.js.map +1 -0
  524. package/dist/nano-components/nano-menu-drawer.entry.js +5 -0
  525. package/dist/nano-components/nano-menu-drawer.entry.js.map +1 -0
  526. package/dist/nano-components/nano-overflow-nav.entry.js +5 -0
  527. package/dist/nano-components/nano-overflow-nav.entry.js.map +1 -0
  528. package/dist/nano-components/nano-progress-bar.entry.js +5 -0
  529. package/dist/nano-components/nano-progress-bar.entry.js.map +1 -0
  530. package/dist/nano-components/nano-range.entry.js +5 -0
  531. package/dist/nano-components/nano-range.entry.js.map +1 -0
  532. package/dist/nano-components/nano-rating.entry.js +5 -0
  533. package/dist/nano-components/nano-rating.entry.js.map +1 -0
  534. package/dist/nano-components/nano-resize-observe_2.entry.js +5 -0
  535. package/dist/nano-components/{p-e6a0675e.entry.js.map → nano-resize-observe_2.entry.js.map} +1 -1
  536. package/dist/nano-components/nano-slide.entry.js +5 -0
  537. package/dist/nano-components/{p-3d8fb8a1.entry.js.map → nano-slide.entry.js.map} +1 -1
  538. package/dist/nano-components/nano-slides-9908c44d.js +20 -0
  539. package/dist/nano-components/nano-slides-9908c44d.js.map +1 -0
  540. package/dist/nano-components/nano-slides.entry.js +5 -0
  541. package/dist/nano-components/nano-sortable.entry.js +5 -0
  542. package/dist/nano-components/{p-3ae362ae.entry.js.map → nano-sortable.entry.js.map} +1 -1
  543. package/dist/nano-components/nano-spinner.entry.js +5 -0
  544. package/dist/nano-components/{p-9925e504.entry.js.map → nano-spinner.entry.js.map} +1 -1
  545. package/dist/nano-components/nano-split-pane.entry.js +5 -0
  546. package/dist/nano-components/{p-6c4171fa.entry.js.map → nano-split-pane.entry.js.map} +1 -1
  547. package/dist/nano-components/nano-sticker.entry.js +5 -0
  548. package/dist/nano-components/nano-sticker.entry.js.map +1 -0
  549. package/dist/nano-components/nano-tab-content.entry.js +5 -0
  550. package/dist/nano-components/{p-3f40e370.entry.js.map → nano-tab-content.entry.js.map} +1 -1
  551. package/dist/nano-components/nano-tab-group.entry.js +5 -0
  552. package/dist/nano-components/nano-tab-group.entry.js.map +1 -0
  553. package/dist/nano-components/nano-tab.entry.js +5 -0
  554. package/dist/nano-components/{p-3cac5f6d.entry.js.map → nano-tab.entry.js.map} +1 -1
  555. package/dist/nano-components/nano-table-55d753cb.js +5 -0
  556. package/dist/nano-components/nano-table-55d753cb.js.map +1 -0
  557. package/dist/nano-components/nano-table.entry.js +5 -0
  558. package/dist/nano-components/page-dots-467ace2e.js +5 -0
  559. package/dist/nano-components/page-dots-467ace2e.js.map +1 -0
  560. package/dist/nano-components/{p-cd1fd454.js → popover-e5e7a641.js} +1 -1
  561. package/dist/nano-components/scroll-ac332213.js +5 -0
  562. package/dist/nano-components/scroll-ac332213.js.map +1 -0
  563. package/dist/nano-components/{p-dc565459.js → slot-8126e238.js} +1 -1
  564. package/dist/nano-components/{p-f88fa15c.js → tabbable-26a66a22.js} +1 -1
  565. package/dist/nano-components/table.worker-34706ecc.js +5 -0
  566. package/dist/nano-components/{p-411bb8f1.js → theme-82feb8cf.js} +1 -1
  567. package/dist/nano-components/{p-7bff5224.js → throttle-ac4fcefa.js} +1 -1
  568. package/dist/nano-components/{p-c3e8e3f9.js → transitions-fb09eb32.js} +1 -1
  569. package/dist/themes/nanopore.cn.css +1 -1
  570. package/dist/themes/nanopore.cn.css.map +1 -1
  571. package/dist/themes/nanopore.css +1 -1
  572. package/dist/themes/nanopore.css.map +1 -1
  573. package/dist/types/components/algolia/algolia-data.d.ts +1 -1
  574. package/dist/types/components/algolia/algolia-filter.d.ts +1 -1
  575. package/dist/types/components/algolia/algolia-pagination.d.ts +1 -1
  576. package/dist/types/components/algolia/algolia-results.d.ts +1 -1
  577. package/dist/types/components/algolia/algolia.d.ts +1 -7
  578. package/dist/types/components/algolia/lib/squirrelly/browser.d.ts +6 -0
  579. package/dist/types/components/algolia/lib/squirrelly/compile-string.d.ts +5 -0
  580. package/dist/types/components/algolia/lib/squirrelly/compile.d.ts +3 -0
  581. package/dist/types/components/algolia/lib/squirrelly/config.d.ts +48 -0
  582. package/dist/types/components/algolia/lib/squirrelly/container-utils.d.ts +8 -0
  583. package/dist/types/components/algolia/lib/squirrelly/containers.d.ts +18 -0
  584. package/dist/types/components/algolia/lib/squirrelly/err.d.ts +6 -0
  585. package/dist/types/components/algolia/lib/squirrelly/parse.d.ts +23 -0
  586. package/dist/types/components/algolia/lib/squirrelly/render.d.ts +3 -0
  587. package/dist/types/components/algolia/lib/squirrelly/storage.d.ts +13 -0
  588. package/dist/types/components/algolia/lib/squirrelly/utils.d.ts +8 -0
  589. package/dist/types/components/algolia/lib/template.d.ts +2 -0
  590. package/dist/types/components/checkbox/checkbox-group.d.ts +5 -0
  591. package/dist/types/components/global-nav/global-nav.d.ts +15 -20
  592. package/dist/types/components/slides/lib/js/animate.d.ts +2 -0
  593. package/dist/types/components/slides/lib/js/cell.d.ts +1 -0
  594. package/dist/types/components/slides/lib/js/drag.d.ts +1 -0
  595. package/dist/types/components/slides/lib/js/fade.d.ts +1 -0
  596. package/dist/types/components/slides/lib/js/flickity.d.ts +23 -0
  597. package/dist/types/components/slides/lib/js/fullscreen.d.ts +1 -0
  598. package/dist/types/components/slides/lib/js/index.d.ts +5 -0
  599. package/dist/types/components/slides/lib/js/lazyload.d.ts +1 -0
  600. package/dist/types/components/slides/lib/js/page-dots.d.ts +1 -0
  601. package/dist/types/components/slides/lib/js/player.d.ts +1 -0
  602. package/dist/types/components/slides/lib/js/prev-next-button.d.ts +1 -0
  603. package/dist/types/components/slides/lib/js/slide.d.ts +1 -0
  604. package/dist/types/components/slides/lib/js/utils/event-emitter.d.ts +1 -0
  605. package/dist/types/components/slides/lib/js/utils/gestures.d.ts +26 -0
  606. package/dist/types/components/slides/lib/js/utils/get-size.d.ts +6 -0
  607. package/dist/types/components/slides/lib/js/utils/utils.d.ts +5 -0
  608. package/dist/types/components/slides/slides-interface.d.ts +17 -7
  609. package/dist/types/components/slides/slides.d.ts +5 -0
  610. package/dist/types/components.d.ts +10 -10
  611. package/dist/types/utils/scroll.d.ts +5 -1
  612. package/docs-json.json +33 -24
  613. package/docs-vscode.json +4 -0
  614. package/hydrate/index.js +4147 -3953
  615. package/package.json +5 -8
  616. package/dist/cjs/_commonjsHelpers-29614748.js +0 -30
  617. package/dist/cjs/_commonjsHelpers-29614748.js.map +0 -1
  618. package/dist/cjs/algoliasearch-lite.esm.browser-992a2eff.js.map +0 -1
  619. package/dist/cjs/index-1d3ebe1a.js.map +0 -1
  620. package/dist/cjs/scroll-fc1b8387.js.map +0 -1
  621. package/dist/cjs/table.worker-3df34efe.js.map +0 -1
  622. package/dist/collection/components/slides/lib/js/add-remove-cell.js +0 -128
  623. package/dist/collection/components/slides/lib/js/images-loaded.js +0 -24
  624. package/dist/collection/components/slides/slides-interface.js +0 -2
  625. package/dist/collection/components/slides/slides-interface.js.map +0 -1
  626. package/dist/collection/utils/template.js.map +0 -1
  627. package/dist/components/_commonjsHelpers.js +0 -26
  628. package/dist/components/_commonjsHelpers.js.map +0 -1
  629. package/dist/esm/_commonjsHelpers-04a0e019.js +0 -26
  630. package/dist/esm/_commonjsHelpers-04a0e019.js.map +0 -1
  631. package/dist/esm/algoliasearch-lite.esm.browser-04891fdc.js.map +0 -1
  632. package/dist/esm/index-06666022.js.map +0 -1
  633. package/dist/esm/scroll-ec7ac257.js.map +0 -1
  634. package/dist/esm/table.worker-3cae908c.js.map +0 -1
  635. package/dist/nano-components/p-0563e812.entry.js +0 -5
  636. package/dist/nano-components/p-0563e812.entry.js.map +0 -1
  637. package/dist/nano-components/p-0bc40dd1.entry.js +0 -5
  638. package/dist/nano-components/p-0bc40dd1.entry.js.map +0 -1
  639. package/dist/nano-components/p-0e0f07f0.entry.js +0 -5
  640. package/dist/nano-components/p-0e0f07f0.entry.js.map +0 -1
  641. package/dist/nano-components/p-0e4da739.entry.js +0 -5
  642. package/dist/nano-components/p-0e4da739.entry.js.map +0 -1
  643. package/dist/nano-components/p-16e75af9.entry.js +0 -5
  644. package/dist/nano-components/p-16e75af9.entry.js.map +0 -1
  645. package/dist/nano-components/p-17eb456c.entry.js +0 -5
  646. package/dist/nano-components/p-17eb456c.entry.js.map +0 -1
  647. package/dist/nano-components/p-191352c4.entry.js +0 -5
  648. package/dist/nano-components/p-1987f7a9.js +0 -5
  649. package/dist/nano-components/p-1a55e282.entry.js +0 -5
  650. package/dist/nano-components/p-1a55e282.entry.js.map +0 -1
  651. package/dist/nano-components/p-2234694a.js +0 -5
  652. package/dist/nano-components/p-2a105609.entry.js +0 -5
  653. package/dist/nano-components/p-2a105609.entry.js.map +0 -1
  654. package/dist/nano-components/p-2c0218e6.entry.js +0 -5
  655. package/dist/nano-components/p-2c0218e6.entry.js.map +0 -1
  656. package/dist/nano-components/p-328ef9d3.entry.js +0 -5
  657. package/dist/nano-components/p-359b7cd2.entry.js +0 -5
  658. package/dist/nano-components/p-359b7cd2.entry.js.map +0 -1
  659. package/dist/nano-components/p-36c3ded8.entry.js +0 -5
  660. package/dist/nano-components/p-36c3ded8.entry.js.map +0 -1
  661. package/dist/nano-components/p-3ae362ae.entry.js +0 -5
  662. package/dist/nano-components/p-3cac5f6d.entry.js +0 -5
  663. package/dist/nano-components/p-3d8fb8a1.entry.js +0 -5
  664. package/dist/nano-components/p-3eeaba47.entry.js +0 -5
  665. package/dist/nano-components/p-3eeaba47.entry.js.map +0 -1
  666. package/dist/nano-components/p-3f40e370.entry.js +0 -5
  667. package/dist/nano-components/p-51133e62.entry.js +0 -5
  668. package/dist/nano-components/p-51133e62.entry.js.map +0 -1
  669. package/dist/nano-components/p-54c4a2f5.entry.js +0 -5
  670. package/dist/nano-components/p-54c4a2f5.entry.js.map +0 -1
  671. package/dist/nano-components/p-5fc3035d.entry.js +0 -5
  672. package/dist/nano-components/p-5fc3035d.entry.js.map +0 -1
  673. package/dist/nano-components/p-650aa197.entry.js +0 -5
  674. package/dist/nano-components/p-650aa197.entry.js.map +0 -1
  675. package/dist/nano-components/p-67ab5a5f.entry.js +0 -5
  676. package/dist/nano-components/p-67ab5a5f.entry.js.map +0 -1
  677. package/dist/nano-components/p-688f1a55.entry.js +0 -5
  678. package/dist/nano-components/p-688f1a55.entry.js.map +0 -1
  679. package/dist/nano-components/p-6c4171fa.entry.js +0 -5
  680. package/dist/nano-components/p-70747f20.js +0 -5
  681. package/dist/nano-components/p-7670058b.entry.js +0 -5
  682. package/dist/nano-components/p-7670058b.entry.js.map +0 -1
  683. package/dist/nano-components/p-79fff4fd.entry.js +0 -5
  684. package/dist/nano-components/p-7c82af28.entry.js +0 -5
  685. package/dist/nano-components/p-87329424.entry.js +0 -5
  686. package/dist/nano-components/p-8fe51abf.js +0 -5
  687. package/dist/nano-components/p-935968b8.entry.js +0 -23
  688. package/dist/nano-components/p-935968b8.entry.js.map +0 -1
  689. package/dist/nano-components/p-9925e504.entry.js +0 -5
  690. package/dist/nano-components/p-9c290055.entry.js +0 -5
  691. package/dist/nano-components/p-9f60ff14.entry.js +0 -5
  692. package/dist/nano-components/p-a225e976.entry.js +0 -5
  693. package/dist/nano-components/p-a225e976.entry.js.map +0 -1
  694. package/dist/nano-components/p-a26bdb65.js +0 -5
  695. package/dist/nano-components/p-abd11243.entry.js +0 -5
  696. package/dist/nano-components/p-abd11243.entry.js.map +0 -1
  697. package/dist/nano-components/p-b27b56d3.js +0 -5
  698. package/dist/nano-components/p-b27b56d3.js.map +0 -1
  699. package/dist/nano-components/p-c80336b2.entry.js +0 -5
  700. package/dist/nano-components/p-c80336b2.entry.js.map +0 -1
  701. package/dist/nano-components/p-cad86fb8.js +0 -5
  702. package/dist/nano-components/p-cad86fb8.js.map +0 -1
  703. package/dist/nano-components/p-d4e44f93.entry.js +0 -5
  704. package/dist/nano-components/p-dc4020f8.js +0 -5
  705. package/dist/nano-components/p-dc4020f8.js.map +0 -1
  706. package/dist/nano-components/p-dc6cb252.entry.js +0 -5
  707. package/dist/nano-components/p-dc6cb252.entry.js.map +0 -1
  708. package/dist/nano-components/p-dc805ecc.js +0 -5
  709. package/dist/nano-components/p-dd5687db.js +0 -5
  710. package/dist/nano-components/p-e6a0675e.entry.js +0 -5
  711. package/dist/nano-components/p-e98835e2.entry.js +0 -5
  712. package/dist/nano-components/p-efd3e121.entry.js +0 -5
  713. package/dist/nano-components/p-f73f52ed.entry.js +0 -5
  714. package/dist/nano-components/p-f73f52ed.entry.js.map +0 -1
  715. package/dist/nano-components/p-fbde7010.entry.js +0 -5
  716. package/dist/nano-components/p-fcbc9122.entry.js +0 -5
  717. package/dist/nano-components/p-fcbc9122.entry.js.map +0 -1
  718. package/dist/types/utils/template.d.ts +0 -2
  719. /package/dist/nano-components/{p-74a7fc4f.js.map → active-element-75b7c8a0.js.map} +0 -0
  720. /package/dist/nano-components/{p-cecb9af1.js.map → date-utils-6b7a6e1f.js.map} +0 -0
  721. /package/dist/nano-components/{p-cdfc507e.js.map → dom-8599fac1.js.map} +0 -0
  722. /package/dist/nano-components/{p-842cf127.js.map → drag-1723a4cc.js.map} +0 -0
  723. /package/dist/nano-components/{p-9bfdee71.js.map → events-6a805b42.js.map} +0 -0
  724. /package/dist/nano-components/{p-f8f89998.js.map → focus-visible-8b2c14da.js.map} +0 -0
  725. /package/dist/nano-components/{p-bb07c3d0.js.map → index-f626f476.js.map} +0 -0
  726. /package/dist/nano-components/{p-1987f7a9.js.map → local-my-account-6662da72.js.map} +0 -0
  727. /package/dist/nano-components/{p-ee045579.js.map → math-c02ddfda.js.map} +0 -0
  728. /package/dist/nano-components/{p-2155fc2c.js.map → nano-slides.entry.js.map} +0 -0
  729. /package/dist/nano-components/{p-8fe51abf.js.map → nano-table.entry.js.map} +0 -0
  730. /package/dist/nano-components/{p-cd1fd454.js.map → popover-e5e7a641.js.map} +0 -0
  731. /package/dist/nano-components/{p-dc565459.js.map → slot-8126e238.js.map} +0 -0
  732. /package/dist/nano-components/{p-f88fa15c.js.map → tabbable-26a66a22.js.map} +0 -0
  733. /package/dist/nano-components/{p-fbde7010.entry.js.map → table.worker-34706ecc.js.map} +0 -0
  734. /package/dist/nano-components/{p-f258383d.js → table.worker-f258383d.js} +0 -0
  735. /package/dist/nano-components/{p-411bb8f1.js.map → theme-82feb8cf.js.map} +0 -0
  736. /package/dist/nano-components/{p-7bff5224.js.map → throttle-ac4fcefa.js.map} +0 -0
  737. /package/dist/nano-components/{p-c3e8e3f9.js.map → transitions-fb09eb32.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-utils.js","sourceRoot":"","sources":["../../../../../src/components/algolia/lib/squirrelly/container-utils.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,OAAO,CAAC;AAE5B,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,MAA0B,EAAE,0BAA0B;AACtD,OAA2B,EAC3B,MAAgB;EAEhB,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;IAC/B,MAAM,OAAO,CACX,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,IAAI,GAAG,yBAAyB,CACzE,CAAC;GACH;EACD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;IACjC,MAAM,OAAO,CACX,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,IAAI,GAAG,0BAA0B,CAC1E,CAAC;GACH;AACH,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,YAAY,CAC1B,GAAe,EACf,KAAa,EACb,EAAY,EACZ,GAAW,EACX,EAAY;EAEZ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,GAAW;IAC9C,GAAG,IAAI,GAAG,CAAC;IACX,IAAI,KAAK,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;MAC5B,EAAE,CAAC,GAAG,CAAC,CAAC;KACT;SAAM;MACL,YAAY,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;KAC3C;EACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,GAA6B,EAC7B,IAAmB,EACnB,KAAa,EACb,EAAY,EACZ,GAAW,EACX,EAAY;EAEZ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAW;IAC1D,GAAG,IAAI,GAAG,CAAC;IACX,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;MAC7B,EAAE,CAAC,GAAG,CAAC,CAAC;KACT;SAAM;MACL,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;KACjD;EACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,MAAM,GAAc;EACxB,GAAG,EAAE,OAAO;EACZ,GAAG,EAAE,MAAM;EACX,GAAG,EAAE,MAAM;EACX,GAAG,EAAE,QAAQ;EACb,GAAG,EAAE,OAAO;CACb,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,CAAS;EACnC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAY;EACpC,+FAA+F;EAC/F,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;EAC3B,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IAC1B,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;GAChD;OAAM;IACL,OAAO,MAAM,CAAC;GACf;AACH,CAAC","sourcesContent":["import SqrlErr from './err';\n\nexport function errWithBlocksOrFilters(\n name: string,\n blocks: Array<any> | false, // false means don't check\n filters: Array<any> | false,\n native?: boolean\n) {\n if (blocks && blocks.length > 0) {\n throw SqrlErr(\n (native ? 'Native' : '') + \"Helper '\" + name + \"' doesn't accept blocks\"\n );\n }\n if (filters && filters.length > 0) {\n throw SqrlErr(\n (native ? 'Native' : '') + \"Helper '\" + name + \"' doesn't accept filters\"\n );\n }\n}\n\n/* ASYNC LOOP FNs */\nexport function asyncArrLoop(\n arr: Array<any>,\n index: number,\n fn: Function,\n res: string,\n cb: Function\n) {\n fn(arr[index], index).then(function (val: string) {\n res += val;\n if (index === arr.length - 1) {\n cb(res);\n } else {\n asyncArrLoop(arr, index + 1, fn, res, cb);\n }\n });\n}\n\nexport function asyncObjLoop(\n obj: { [index: string]: any },\n keys: Array<string>,\n index: number,\n fn: Function,\n res: string,\n cb: Function\n) {\n fn(keys[index], obj[keys[index]]).then(function (val: string) {\n res += val;\n if (index === keys.length - 1) {\n cb(res);\n } else {\n asyncObjLoop(obj, keys, index + 1, fn, res, cb);\n }\n });\n}\n\nconst escMap: EscapeMap = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n};\n\nexport function replaceChar(s: string): string {\n return escMap[s];\n}\n\nexport function XMLEscape(str: unknown) {\n // To deal with XSS. Based on Escape implementations of Mustache.JS and Marko, then customized.\n const newStr = String(str);\n if (/[&<>\"']/.test(newStr)) {\n return newStr.replace(/[&<>\"']/g, replaceChar);\n } else {\n return newStr;\n }\n}\n\n/* INTERFACES */\ninterface EscapeMap {\n '&': '&amp;';\n '<': '&lt;';\n '>': '&gt;';\n '\"': '&quot;';\n \"'\": '&#39;';\n [index: string]: string;\n}\n"]}
@@ -0,0 +1,128 @@
1
+ /*!
2
+ * Web Components for Nanopore digital Web Apps
3
+ */
4
+ import { Cacher } from './storage';
5
+ import SqrlErr from './err';
6
+ import { compileScope, compileScopeIntoFunction } from './compile-string';
7
+ import { hasOwnProp } from './utils';
8
+ import { errWithBlocksOrFilters, asyncArrLoop, asyncObjLoop, XMLEscape, } from './container-utils';
9
+ /* END TYPES */
10
+ const templates = new Cacher({});
11
+ /* ASYNC LOOP FNs */
12
+ const helpers = new Cacher({
13
+ each: function (content, blocks) {
14
+ let res = '';
15
+ const arr = content.params[0];
16
+ errWithBlocksOrFilters('each', blocks, false);
17
+ if (content.async) {
18
+ return new Promise(function (resolve) {
19
+ asyncArrLoop(arr, 0, content.exec, res, resolve);
20
+ });
21
+ }
22
+ else {
23
+ for (let i = 0; i < arr.length; i++) {
24
+ res += content.exec(arr[i], i);
25
+ }
26
+ return res;
27
+ }
28
+ },
29
+ foreach: function (content, blocks) {
30
+ const obj = content.params[0];
31
+ errWithBlocksOrFilters('foreach', blocks, false);
32
+ if (content.async) {
33
+ return new Promise(function (resolve) {
34
+ asyncObjLoop(obj, Object.keys(obj), 0, content.exec, '', resolve);
35
+ });
36
+ }
37
+ else {
38
+ let res = '';
39
+ for (const key in obj) {
40
+ if (!hasOwnProp(obj, key))
41
+ continue;
42
+ res += content.exec(key, obj[key]); // todo: check on order
43
+ }
44
+ return res;
45
+ }
46
+ },
47
+ include: function (content, blocks, config) {
48
+ errWithBlocksOrFilters('include', blocks, false);
49
+ const template = config.storage.templates.get(content.params[0]);
50
+ if (!template) {
51
+ throw SqrlErr('Could not fetch template "' + content.params[0] + '"');
52
+ }
53
+ return template(content.params[1], config);
54
+ },
55
+ extends: function (content, blocks, config) {
56
+ const data = content.params[1] || {};
57
+ data.content = content.exec();
58
+ for (let i = 0; i < blocks.length; i++) {
59
+ const currentBlock = blocks[i];
60
+ data[currentBlock.name] = currentBlock.exec();
61
+ }
62
+ const template = config.storage.templates.get(content.params[0]);
63
+ if (!template) {
64
+ throw SqrlErr('Could not fetch template "' + content.params[0] + '"');
65
+ }
66
+ return template(data, config);
67
+ },
68
+ useScope: function (content, blocks) {
69
+ errWithBlocksOrFilters('useScope', blocks, false);
70
+ return content.exec(content.params[0]);
71
+ },
72
+ });
73
+ const nativeHelpers = new Cacher({
74
+ if: function (buffer, env) {
75
+ errWithBlocksOrFilters('if', false, buffer.f, true);
76
+ let returnStr = 'if(' + buffer.p + '){' + compileScope(buffer.d, env) + '}';
77
+ if (buffer.b) {
78
+ for (let i = 0; i < buffer.b.length; i++) {
79
+ const currentBlock = buffer.b[i];
80
+ if (currentBlock.n === 'else') {
81
+ returnStr += 'else{' + compileScope(currentBlock.d, env) + '}';
82
+ }
83
+ else if (currentBlock.n === 'elif') {
84
+ returnStr +=
85
+ 'else if(' +
86
+ currentBlock.p +
87
+ '){' +
88
+ compileScope(currentBlock.d, env) +
89
+ '}';
90
+ }
91
+ }
92
+ }
93
+ return returnStr;
94
+ },
95
+ try: function (buffer, env) {
96
+ errWithBlocksOrFilters('try', false, buffer.f, true);
97
+ if (!buffer.b || buffer.b.length !== 1 || buffer.b[0].n !== 'catch') {
98
+ throw SqrlErr("native helper 'try' only accepts 1 block, 'catch'");
99
+ }
100
+ let returnStr = 'try{' + compileScope(buffer.d, env) + '}';
101
+ const currentBlock = buffer.b[0];
102
+ returnStr +=
103
+ 'catch' +
104
+ (currentBlock.res ? '(' + currentBlock.res + ')' : '') +
105
+ '{' +
106
+ compileScope(currentBlock.d, env) +
107
+ '}';
108
+ return returnStr;
109
+ },
110
+ block: function (buffer, env) {
111
+ errWithBlocksOrFilters('block', buffer.b, buffer.f, true);
112
+ const returnStr = 'if(!' +
113
+ env.varName +
114
+ '[' +
115
+ buffer.p +
116
+ ']){tR+=(' +
117
+ compileScopeIntoFunction(buffer.d, '', env) +
118
+ ')()}else{tR+=' +
119
+ env.varName +
120
+ '[' +
121
+ buffer.p +
122
+ ']}';
123
+ return returnStr;
124
+ },
125
+ });
126
+ const filters = new Cacher({ e: XMLEscape });
127
+ export { templates, helpers, nativeHelpers, filters };
128
+ //# sourceMappingURL=containers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containers.js","sourceRoot":"","sources":["../../../../../src/components/algolia/lib/squirrelly/containers.ts"],"names":[],"mappings":"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","sourcesContent":["import { Cacher } from './storage';\nimport SqrlErr from './err';\nimport { compileScope, compileScopeIntoFunction } from './compile-string';\nimport { hasOwnProp } from './utils';\nimport {\n errWithBlocksOrFilters,\n asyncArrLoop,\n asyncObjLoop,\n XMLEscape,\n} from './container-utils';\n\n/* TYPES */\n\nimport { SqrlConfig } from './config';\nimport { TemplateFunction } from './compile';\nimport { ParentTemplateObject } from './parse';\n\nexport interface HelperContent {\n exec: Function;\n params: Array<any>;\n async?: boolean;\n}\n\nexport interface HelperBlock extends HelperContent {\n name: string;\n}\n\nexport type HelperFunction = (\n content: HelperContent,\n blocks: Array<HelperBlock>,\n config: SqrlConfig\n) => string | Promise<string>;\n\nexport type FilterFunction = (...args: any[]) => any | Promise<any>;\n\ninterface IncludeHelperContent extends HelperContent {\n params: [string, object];\n}\n\ninterface GenericData {\n [index: string]: any;\n}\n\n/* END TYPES */\n\nconst templates = new Cacher<TemplateFunction>({});\n\n/* ASYNC LOOP FNs */\n\nconst helpers = new Cacher<HelperFunction>({\n each: function (content: HelperContent, blocks: Array<HelperBlock>) {\n let res = '';\n const arr = content.params[0];\n errWithBlocksOrFilters('each', blocks, false);\n\n if (content.async) {\n return new Promise(function (resolve) {\n asyncArrLoop(arr, 0, content.exec, res, resolve);\n });\n } else {\n for (let i = 0; i < arr.length; i++) {\n res += content.exec(arr[i], i);\n }\n return res;\n }\n },\n foreach: function (content: HelperContent, blocks: Array<HelperBlock>) {\n const obj = content.params[0];\n errWithBlocksOrFilters('foreach', blocks, false);\n\n if (content.async) {\n return new Promise(function (resolve) {\n asyncObjLoop(obj, Object.keys(obj), 0, content.exec, '', resolve);\n });\n } else {\n let res = '';\n\n for (const key in obj) {\n if (!hasOwnProp(obj, key)) continue;\n res += content.exec(key, obj[key]); // todo: check on order\n }\n return res;\n }\n },\n include: function (\n content: IncludeHelperContent,\n blocks: Array<HelperBlock>,\n config: SqrlConfig\n ): string {\n errWithBlocksOrFilters('include', blocks, false);\n const template = config.storage.templates.get(content.params[0]);\n if (!template) {\n throw SqrlErr('Could not fetch template \"' + content.params[0] + '\"');\n }\n return template(content.params[1], config);\n } as HelperFunction,\n extends: function (\n content: IncludeHelperContent,\n blocks: Array<HelperBlock>,\n config: SqrlConfig\n ): string {\n const data: GenericData = content.params[1] || {};\n data.content = content.exec();\n\n for (let i = 0; i < blocks.length; i++) {\n const currentBlock = blocks[i];\n data[currentBlock.name] = currentBlock.exec();\n }\n\n const template = config.storage.templates.get(content.params[0]);\n if (!template) {\n throw SqrlErr('Could not fetch template \"' + content.params[0] + '\"');\n }\n return template(data, config);\n } as HelperFunction,\n useScope: function (\n content: HelperContent,\n blocks: Array<HelperBlock>\n ): string {\n errWithBlocksOrFilters('useScope', blocks, false);\n\n return content.exec(content.params[0]);\n } as HelperFunction,\n});\n\nconst nativeHelpers = new Cacher<Function>({\n if: function (buffer: ParentTemplateObject, env: SqrlConfig) {\n errWithBlocksOrFilters('if', false, buffer.f, true);\n\n let returnStr = 'if(' + buffer.p + '){' + compileScope(buffer.d, env) + '}';\n if (buffer.b) {\n for (let i = 0; i < buffer.b.length; i++) {\n const currentBlock = buffer.b[i];\n if (currentBlock.n === 'else') {\n returnStr += 'else{' + compileScope(currentBlock.d, env) + '}';\n } else if (currentBlock.n === 'elif') {\n returnStr +=\n 'else if(' +\n currentBlock.p +\n '){' +\n compileScope(currentBlock.d, env) +\n '}';\n }\n }\n }\n return returnStr;\n },\n try: function (buffer: ParentTemplateObject, env: SqrlConfig) {\n errWithBlocksOrFilters('try', false, buffer.f, true);\n\n if (!buffer.b || buffer.b.length !== 1 || buffer.b[0].n !== 'catch') {\n throw SqrlErr(\"native helper 'try' only accepts 1 block, 'catch'\");\n }\n let returnStr = 'try{' + compileScope(buffer.d, env) + '}';\n\n const currentBlock = buffer.b[0];\n returnStr +=\n 'catch' +\n (currentBlock.res ? '(' + currentBlock.res + ')' : '') +\n '{' +\n compileScope(currentBlock.d, env) +\n '}';\n\n return returnStr;\n },\n block: function (buffer: ParentTemplateObject, env: SqrlConfig) {\n errWithBlocksOrFilters('block', buffer.b, buffer.f, true);\n\n const returnStr =\n 'if(!' +\n env.varName +\n '[' +\n buffer.p +\n ']){tR+=(' +\n compileScopeIntoFunction(buffer.d, '', env) +\n ')()}else{tR+=' +\n env.varName +\n '[' +\n buffer.p +\n ']}';\n\n return returnStr;\n },\n});\n\nconst filters = new Cacher<FilterFunction>({ e: XMLEscape });\n\nexport { templates, helpers, nativeHelpers, filters };\n"]}
@@ -0,0 +1,39 @@
1
+ /*!
2
+ * Web Components for Nanopore digital Web Apps
3
+ */
4
+ function setPrototypeOf(obj, proto) {
5
+ if (Object.setPrototypeOf) {
6
+ Object.setPrototypeOf(obj, proto);
7
+ }
8
+ else {
9
+ obj.__proto__ = proto;
10
+ }
11
+ }
12
+ export default function SqrlErr(message) {
13
+ const err = new Error(message);
14
+ setPrototypeOf(err, SqrlErr.prototype);
15
+ return err;
16
+ }
17
+ SqrlErr.prototype = Object.create(Error.prototype, {
18
+ name: { value: 'Squirrelly Error', enumerable: false },
19
+ });
20
+ // TODO: Class transpilation adds a lot to the bundle size
21
+ export function ParseErr(message, str, indx) {
22
+ const whitespace = str.slice(0, indx).split(/\n/);
23
+ const lineNo = whitespace.length;
24
+ const colNo = whitespace[lineNo - 1].length + 1;
25
+ message +=
26
+ ' at line ' +
27
+ lineNo +
28
+ ' col ' +
29
+ colNo +
30
+ ':\n\n' +
31
+ ' ' +
32
+ str.split(/\n/)[lineNo - 1] +
33
+ '\n' +
34
+ ' ' +
35
+ Array(colNo).join(' ') +
36
+ '^';
37
+ throw SqrlErr(message);
38
+ }
39
+ //# sourceMappingURL=err.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"err.js","sourceRoot":"","sources":["../../../../../src/components/algolia/lib/squirrelly/err.ts"],"names":[],"mappings":"AAAA,SAAS,cAAc,CAAC,GAAQ,EAAE,KAAU;EAC1C,IAAI,MAAM,CAAC,cAAc,EAAE;IACzB,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;GACnC;OAAM;IACL,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;GACvB;AACH,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,OAAe;EAC7C,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;EAC/B,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;EACvC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE;EACjD,IAAI,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,KAAK,EAAE;CACvD,CAAC,CAAC;AAEH,0DAA0D;AAE1D,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,GAAW,EAAE,IAAY;EACjE,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;EAElD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;EACjC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;EAChD,OAAO;IACL,WAAW;MACX,MAAM;MACN,OAAO;MACP,KAAK;MACL,OAAO;MACP,IAAI;MACJ,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;MAC3B,IAAI;MACJ,IAAI;MACJ,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;MACtB,GAAG,CAAC;EACN,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC","sourcesContent":["function setPrototypeOf(obj: any, proto: any) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(obj, proto);\n } else {\n obj.__proto__ = proto;\n }\n}\n\nexport default function SqrlErr(message: string): Error {\n const err = new Error(message);\n setPrototypeOf(err, SqrlErr.prototype);\n return err;\n}\n\nSqrlErr.prototype = Object.create(Error.prototype, {\n name: { value: 'Squirrelly Error', enumerable: false },\n});\n\n// TODO: Class transpilation adds a lot to the bundle size\n\nexport function ParseErr(message: string, str: string, indx: number) {\n const whitespace = str.slice(0, indx).split(/\\n/);\n\n const lineNo = whitespace.length;\n const colNo = whitespace[lineNo - 1].length + 1;\n message +=\n ' at line ' +\n lineNo +\n ' col ' +\n colNo +\n ':\\n\\n' +\n ' ' +\n str.split(/\\n/)[lineNo - 1] +\n '\\n' +\n ' ' +\n Array(colNo).join(' ') +\n '^';\n throw SqrlErr(message);\n}\n"]}
@@ -0,0 +1,327 @@
1
+ /*!
2
+ * Web Components for Nanopore digital Web Apps
3
+ */
4
+ import SqrlErr, { ParseErr } from './err';
5
+ import { trimWS } from './utils';
6
+ /* END TYPES */
7
+ const asyncRegExp = /^async +/;
8
+ const templateLitReg = /`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g;
9
+ const singleQuoteReg = /'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g;
10
+ const doubleQuoteReg = /"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;
11
+ const specialCharsReg = /[.*+\-?^${}()|[\]\\]/g;
12
+ function escapeRegExp(string) {
13
+ // From MDN
14
+ return specialCharsReg.test(string)
15
+ ? string.replace(specialCharsReg, '\\$&') // $& means the whole matched string
16
+ : string;
17
+ }
18
+ export default function parse(str, env) {
19
+ /* Adding for EJS compatibility */
20
+ if (env.rmWhitespace) {
21
+ // Code taken directly from EJS
22
+ // Have to use two separate replaces here as `^` and `$` operators don't
23
+ // work well with `\r` and empty lines don't work well with the `m` flag.
24
+ // Essentially, this replaces the whitespace at the beginning and end of
25
+ // each line and removes multiple newlines.
26
+ str = str.replace(/[\r\n]+/g, '\n').replace(/^\s+|\s+$/gm, '');
27
+ }
28
+ /* End rmWhitespace option */
29
+ templateLitReg.lastIndex = 0;
30
+ singleQuoteReg.lastIndex = 0;
31
+ doubleQuoteReg.lastIndex = 0;
32
+ const envPrefixes = env.prefixes;
33
+ const prefixes = [
34
+ envPrefixes.h,
35
+ envPrefixes.b,
36
+ envPrefixes.i,
37
+ envPrefixes.r,
38
+ envPrefixes.c,
39
+ envPrefixes.e,
40
+ ].reduce(function (accumulator, prefix) {
41
+ if (accumulator && prefix) {
42
+ return accumulator + '|' + escapeRegExp(prefix);
43
+ }
44
+ else if (prefix) {
45
+ // accumulator is empty
46
+ return escapeRegExp(prefix);
47
+ }
48
+ else {
49
+ // prefix and accumulator are both empty strings
50
+ return accumulator;
51
+ }
52
+ }, '');
53
+ const parseCloseReg = new RegExp('([|()]|=>)|' + // powerchars
54
+ '(\'|"|`|\\/\\*)|\\s*((\\/)?(-|_)?' + // comments, strings
55
+ escapeRegExp(env.tags[1]) +
56
+ ')', 'g');
57
+ const tagOpenReg = new RegExp('([^]*?)' + escapeRegExp(env.tags[0]) + '(-|_)?\\s*(' + prefixes + ')?\\s*', 'g');
58
+ let startInd = 0;
59
+ let trimNextLeftWs = false;
60
+ function parseTag(tagOpenIndex, currentType) {
61
+ const currentObj = { f: [] };
62
+ let numParens = 0;
63
+ let currentAttribute = 'c'; // default - Valid values: 'c'=content, 'f'=filter, 'fp'=filter params, 'p'=param, 'n'=name
64
+ if (currentType === 'h' || currentType === 'b' || currentType === 'c') {
65
+ currentAttribute = 'n';
66
+ }
67
+ else if (currentType === 'r') {
68
+ currentObj.raw = true;
69
+ currentType = 'i';
70
+ }
71
+ function addAttrValue(indx) {
72
+ const valUnprocessed = str.slice(startInd, indx);
73
+ // console.log(valUnprocessed)
74
+ let val = valUnprocessed.trim();
75
+ if (currentAttribute === 'f') {
76
+ if (val === 'safe') {
77
+ currentObj.raw = true;
78
+ }
79
+ else {
80
+ if (env.async && asyncRegExp.test(val)) {
81
+ val = val.replace(asyncRegExp, '');
82
+ currentObj.f.push([val, '', true]);
83
+ }
84
+ else {
85
+ currentObj.f.push([val, '']);
86
+ }
87
+ }
88
+ }
89
+ else if (currentAttribute === 'fp') {
90
+ currentObj.f[currentObj.f.length - 1][1] += val;
91
+ }
92
+ else if (currentAttribute === 'err') {
93
+ if (val) {
94
+ const found = valUnprocessed.search(/\S/);
95
+ ParseErr('invalid syntax', str, startInd + found);
96
+ }
97
+ }
98
+ else {
99
+ // if (currentObj[currentAttribute]) { // TODO make sure no errs
100
+ // currentObj[currentAttribute] += val
101
+ // } else {
102
+ currentObj[currentAttribute] = val;
103
+ // }
104
+ }
105
+ startInd = indx + 1;
106
+ }
107
+ parseCloseReg.lastIndex = startInd;
108
+ let m;
109
+ // tslint:disable-next-line:no-conditional-assignment
110
+ while ((m = parseCloseReg.exec(str)) !== null) {
111
+ const char = m[1];
112
+ const punctuator = m[2];
113
+ const tagClose = m[3];
114
+ const slash = m[4];
115
+ const wsControl = m[5];
116
+ const i = m.index;
117
+ if (char) {
118
+ // Power character
119
+ if (char === '(') {
120
+ if (numParens === 0) {
121
+ if (currentAttribute === 'n') {
122
+ addAttrValue(i);
123
+ currentAttribute = 'p';
124
+ }
125
+ else if (currentAttribute === 'f') {
126
+ addAttrValue(i);
127
+ currentAttribute = 'fp';
128
+ }
129
+ }
130
+ numParens++;
131
+ }
132
+ else if (char === ')') {
133
+ numParens--;
134
+ if (numParens === 0 && currentAttribute !== 'c') {
135
+ // Then it's closing a filter, block, or helper
136
+ addAttrValue(i);
137
+ currentAttribute = 'err'; // Reset the current attribute
138
+ }
139
+ }
140
+ else if (numParens === 0 && char === '|') {
141
+ addAttrValue(i); // this should actually always be whitespace or empty
142
+ currentAttribute = 'f';
143
+ }
144
+ else if (char === '=>') {
145
+ addAttrValue(i);
146
+ startInd += 1; // this is 2 chars
147
+ currentAttribute = 'res';
148
+ }
149
+ }
150
+ else if (punctuator) {
151
+ if (punctuator === '/*') {
152
+ const commentCloseInd = str.indexOf('*/', parseCloseReg.lastIndex);
153
+ if (commentCloseInd === -1) {
154
+ ParseErr('unclosed comment', str, m.index);
155
+ }
156
+ parseCloseReg.lastIndex = commentCloseInd + 2; // since */ is 2 characters, and we're using indexOf rather than a RegExp
157
+ }
158
+ else if (punctuator === "'") {
159
+ singleQuoteReg.lastIndex = m.index;
160
+ const singleQuoteMatch = singleQuoteReg.exec(str);
161
+ if (singleQuoteMatch) {
162
+ parseCloseReg.lastIndex = singleQuoteReg.lastIndex;
163
+ }
164
+ else {
165
+ ParseErr('unclosed string', str, m.index);
166
+ }
167
+ }
168
+ else if (punctuator === '"') {
169
+ doubleQuoteReg.lastIndex = m.index;
170
+ const doubleQuoteMatch = doubleQuoteReg.exec(str);
171
+ if (doubleQuoteMatch) {
172
+ parseCloseReg.lastIndex = doubleQuoteReg.lastIndex;
173
+ }
174
+ else {
175
+ ParseErr('unclosed string', str, m.index);
176
+ }
177
+ }
178
+ else if (punctuator === '`') {
179
+ templateLitReg.lastIndex = m.index;
180
+ const templateLitMatch = templateLitReg.exec(str);
181
+ if (templateLitMatch) {
182
+ parseCloseReg.lastIndex = templateLitReg.lastIndex;
183
+ }
184
+ else {
185
+ ParseErr('unclosed string', str, m.index);
186
+ }
187
+ }
188
+ }
189
+ else if (tagClose) {
190
+ addAttrValue(i);
191
+ startInd = i + m[0].length;
192
+ tagOpenReg.lastIndex = startInd;
193
+ // console.log('tagClose: ' + startInd)
194
+ trimNextLeftWs = wsControl;
195
+ if (slash && currentType === 'h') {
196
+ currentType = 's';
197
+ } // TODO throw err
198
+ currentObj.t = currentType;
199
+ return currentObj;
200
+ }
201
+ }
202
+ ParseErr('unclosed tag', str, tagOpenIndex);
203
+ return currentObj; // To prevent TypeScript from erroring
204
+ }
205
+ function parseContext(parentObj, firstParse) {
206
+ parentObj.b = []; // assume there will be blocks // TODO: perf optimize this
207
+ parentObj.d = [];
208
+ let lastBlock = false;
209
+ let buffer = [];
210
+ function pushString(strng, shouldTrimRightOfString) {
211
+ if (strng) {
212
+ // if string is truthy it must be of type 'string'
213
+ // TODO: benchmark replace( /(\\|')/g, '\\$1')
214
+ strng = trimWS(strng, env, trimNextLeftWs, // this will only be false on the first str, the next ones will be null or undefined
215
+ shouldTrimRightOfString);
216
+ if (strng) {
217
+ // replace \ with \\, ' with \'
218
+ strng = strng.replace(/\\|'/g, '\\$&').replace(/\r\n|\n|\r/g, '\\n');
219
+ // we're going to convert all CRLF to LF so it doesn't take more than one replace
220
+ buffer.push(strng);
221
+ }
222
+ }
223
+ }
224
+ // Random TODO: parentObj.b doesn't need to have t: #
225
+ let tagOpenMatch;
226
+ // tslint:disable-next-line:no-conditional-assignment
227
+ while ((tagOpenMatch = tagOpenReg.exec(str)) !== null) {
228
+ const precedingString = tagOpenMatch[1];
229
+ const shouldTrimRightPrecedingString = tagOpenMatch[2];
230
+ const prefix = tagOpenMatch[3] || '';
231
+ let prefixType;
232
+ for (const key in envPrefixes) {
233
+ if (envPrefixes[key] === prefix) {
234
+ prefixType = key;
235
+ break;
236
+ }
237
+ }
238
+ pushString(precedingString, shouldTrimRightPrecedingString);
239
+ startInd = tagOpenMatch.index + tagOpenMatch[0].length;
240
+ if (!prefixType) {
241
+ ParseErr('unrecognized tag type: ' + prefix, str, startInd);
242
+ }
243
+ let currentObj = parseTag(tagOpenMatch.index, prefixType);
244
+ // ===== NOW ADD THE OBJECT TO OUR BUFFER =====
245
+ const currentType = currentObj.t;
246
+ if (currentType === 'h') {
247
+ const hName = currentObj.n || '';
248
+ if (env.async && asyncRegExp.test(hName)) {
249
+ currentObj.a = true;
250
+ currentObj.n = hName.replace(asyncRegExp, '');
251
+ }
252
+ currentObj = parseContext(currentObj); // currentObj is the parent object
253
+ buffer.push(currentObj);
254
+ }
255
+ else if (currentType === 'c') {
256
+ // tag close
257
+ if (parentObj.n === currentObj.n) {
258
+ if (lastBlock) {
259
+ // If there's a previous block
260
+ lastBlock.d = buffer;
261
+ parentObj.b.push(lastBlock);
262
+ }
263
+ else {
264
+ parentObj.d = buffer;
265
+ }
266
+ // console.log('parentObj: ' + JSON.stringify(parentObj))
267
+ return parentObj;
268
+ }
269
+ else {
270
+ ParseErr("Helper start and end don't match", str, tagOpenMatch.index + tagOpenMatch[0].length);
271
+ }
272
+ }
273
+ else if (currentType === 'b') {
274
+ // block
275
+ // TODO: make sure async stuff inside blocks are recognized
276
+ if (lastBlock) {
277
+ // If there's a previous block
278
+ lastBlock.d = buffer;
279
+ parentObj.b.push(lastBlock);
280
+ }
281
+ else {
282
+ parentObj.d = buffer;
283
+ }
284
+ const blockName = currentObj.n || '';
285
+ if (env.async && asyncRegExp.test(blockName)) {
286
+ currentObj.a = true;
287
+ currentObj.n = blockName.replace(asyncRegExp, '');
288
+ }
289
+ lastBlock = currentObj; // Set the 'lastBlock' object to the value of the current block
290
+ buffer = [];
291
+ }
292
+ else if (currentType === 's') {
293
+ const selfClosingHName = currentObj.n || '';
294
+ if (env.async && asyncRegExp.test(selfClosingHName)) {
295
+ currentObj.a = true;
296
+ currentObj.n = selfClosingHName.replace(asyncRegExp, '');
297
+ }
298
+ buffer.push(currentObj);
299
+ }
300
+ else {
301
+ buffer.push(currentObj);
302
+ }
303
+ // ===== DONE ADDING OBJECT TO BUFFER =====
304
+ }
305
+ if (firstParse) {
306
+ pushString(str.slice(startInd, str.length), false);
307
+ parentObj.d = buffer;
308
+ }
309
+ else {
310
+ throw SqrlErr('unclosed helper "' + parentObj.n + '"');
311
+ // It should have returned by now
312
+ }
313
+ return parentObj;
314
+ }
315
+ const parseResult = parseContext({ f: [] }, true);
316
+ // console.log(JSON.stringify(parseResult))
317
+ if (env.plugins) {
318
+ for (let i = 0; i < env.plugins.length; i++) {
319
+ const plugin = env.plugins[i];
320
+ if (plugin.processAST) {
321
+ parseResult.d = plugin.processAST(parseResult.d, env);
322
+ }
323
+ }
324
+ }
325
+ return parseResult.d; // Parse the very outside context
326
+ }
327
+ //# sourceMappingURL=parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../../../src/components/algolia/lib/squirrelly/parse.ts"],"names":[],"mappings":"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","sourcesContent":["import SqrlErr, { ParseErr } from './err';\nimport { trimWS } from './utils';\n\n/* TYPES */\n\nimport { SqrlConfig } from './config';\n\nexport type TagType = 'h' | 'b' | 'i' | 'r' | 'c' | 'e' | 'q' | 's';\n// TODO: change to anagram \"QBIRCHES\"\nexport type TemplateAttribute = 'c' | 'f' | 'fp' | 'p' | 'n' | 'res' | 'err';\nexport type TemplateObjectAttribute = 'c' | 'p' | 'n' | 'res';\n\nexport type AstObject = string | TemplateObject;\n\nexport type Filter = [string, string] | [string, string, true];\n// [name, params, async]\nexport interface TemplateObject {\n n?: string;\n t?: 'h' | 'b' | 'i' | 'c' | 'q' | 'e' | 's';\n f: Array<Filter>;\n c?: string;\n p?: string;\n res?: string;\n d?: Array<AstObject>;\n raw?: boolean;\n a?: boolean; // async\n b?: Array<ParentTemplateObject>;\n}\n\nexport interface ParentTemplateObject extends TemplateObject {\n d: Array<AstObject>;\n b: Array<ParentTemplateObject>;\n}\n\n/* END TYPES */\n\nconst asyncRegExp = /^async +/;\n\nconst templateLitReg =\n /`(?:\\\\[\\s\\S]|\\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\\${)[^\\\\`])*`/g;\n\nconst singleQuoteReg = /'(?:\\\\[\\s\\w\"'\\\\`]|[^\\n\\r'\\\\])*?'/g;\n\nconst doubleQuoteReg = /\"(?:\\\\[\\s\\w\"'\\\\`]|[^\\n\\r\"\\\\])*?\"/g;\n\nconst specialCharsReg = /[.*+\\-?^${}()|[\\]\\\\]/g;\n\nfunction escapeRegExp(string: string) {\n // From MDN\n return specialCharsReg.test(string)\n ? string.replace(specialCharsReg, '\\\\$&') // $& means the whole matched string\n : string;\n}\n\nexport default function parse(str: string, env: SqrlConfig): Array<AstObject> {\n /* Adding for EJS compatibility */\n if (env.rmWhitespace) {\n // Code taken directly from EJS\n // Have to use two separate replaces here as `^` and `$` operators don't\n // work well with `\\r` and empty lines don't work well with the `m` flag.\n // Essentially, this replaces the whitespace at the beginning and end of\n // each line and removes multiple newlines.\n str = str.replace(/[\\r\\n]+/g, '\\n').replace(/^\\s+|\\s+$/gm, '');\n }\n /* End rmWhitespace option */\n\n templateLitReg.lastIndex = 0;\n singleQuoteReg.lastIndex = 0;\n doubleQuoteReg.lastIndex = 0;\n\n const envPrefixes = env.prefixes;\n\n const prefixes = [\n envPrefixes.h,\n envPrefixes.b,\n envPrefixes.i,\n envPrefixes.r,\n envPrefixes.c,\n envPrefixes.e,\n ].reduce(function (accumulator, prefix) {\n if (accumulator && prefix) {\n return accumulator + '|' + escapeRegExp(prefix);\n } else if (prefix) {\n // accumulator is empty\n return escapeRegExp(prefix);\n } else {\n // prefix and accumulator are both empty strings\n return accumulator;\n }\n }, '');\n\n const parseCloseReg = new RegExp(\n '([|()]|=>)|' + // powerchars\n '(\\'|\"|`|\\\\/\\\\*)|\\\\s*((\\\\/)?(-|_)?' + // comments, strings\n escapeRegExp(env.tags[1]) +\n ')',\n 'g'\n );\n\n const tagOpenReg = new RegExp(\n '([^]*?)' + escapeRegExp(env.tags[0]) + '(-|_)?\\\\s*(' + prefixes + ')?\\\\s*',\n 'g'\n );\n\n let startInd = 0;\n let trimNextLeftWs: string | false = false;\n\n function parseTag(\n tagOpenIndex: number,\n currentType: TagType\n ): TemplateObject {\n const currentObj: TemplateObject = { f: [] };\n let numParens = 0;\n let currentAttribute: TemplateAttribute = 'c'; // default - Valid values: 'c'=content, 'f'=filter, 'fp'=filter params, 'p'=param, 'n'=name\n\n if (currentType === 'h' || currentType === 'b' || currentType === 'c') {\n currentAttribute = 'n';\n } else if (currentType === 'r') {\n currentObj.raw = true;\n currentType = 'i';\n }\n\n function addAttrValue(indx: number) {\n const valUnprocessed = str.slice(startInd, indx);\n // console.log(valUnprocessed)\n let val = valUnprocessed.trim();\n if (currentAttribute === 'f') {\n if (val === 'safe') {\n currentObj.raw = true;\n } else {\n if (env.async && asyncRegExp.test(val)) {\n val = val.replace(asyncRegExp, '');\n currentObj.f.push([val, '', true]);\n } else {\n currentObj.f.push([val, '']);\n }\n }\n } else if (currentAttribute === 'fp') {\n currentObj.f[currentObj.f.length - 1][1] += val;\n } else if (currentAttribute === 'err') {\n if (val) {\n const found = valUnprocessed.search(/\\S/);\n ParseErr('invalid syntax', str, startInd + found);\n }\n } else {\n // if (currentObj[currentAttribute]) { // TODO make sure no errs\n // currentObj[currentAttribute] += val\n // } else {\n currentObj[currentAttribute] = val;\n // }\n }\n startInd = indx + 1;\n }\n\n parseCloseReg.lastIndex = startInd;\n\n let m;\n // tslint:disable-next-line:no-conditional-assignment\n while ((m = parseCloseReg.exec(str)) !== null) {\n const char = m[1];\n const punctuator = m[2];\n const tagClose = m[3];\n const slash = m[4];\n const wsControl = m[5];\n const i = m.index;\n\n if (char) {\n // Power character\n if (char === '(') {\n if (numParens === 0) {\n if (currentAttribute === 'n') {\n addAttrValue(i);\n currentAttribute = 'p';\n } else if (currentAttribute === 'f') {\n addAttrValue(i);\n currentAttribute = 'fp';\n }\n }\n numParens++;\n } else if (char === ')') {\n numParens--;\n if (numParens === 0 && currentAttribute !== 'c') {\n // Then it's closing a filter, block, or helper\n addAttrValue(i);\n\n currentAttribute = 'err'; // Reset the current attribute\n }\n } else if (numParens === 0 && char === '|') {\n addAttrValue(i); // this should actually always be whitespace or empty\n currentAttribute = 'f';\n } else if (char === '=>') {\n addAttrValue(i);\n startInd += 1; // this is 2 chars\n currentAttribute = 'res';\n }\n } else if (punctuator) {\n if (punctuator === '/*') {\n const commentCloseInd = str.indexOf('*/', parseCloseReg.lastIndex);\n if (commentCloseInd === -1) {\n ParseErr('unclosed comment', str, m.index);\n }\n parseCloseReg.lastIndex = commentCloseInd + 2; // since */ is 2 characters, and we're using indexOf rather than a RegExp\n } else if (punctuator === \"'\") {\n singleQuoteReg.lastIndex = m.index;\n\n const singleQuoteMatch = singleQuoteReg.exec(str);\n if (singleQuoteMatch) {\n parseCloseReg.lastIndex = singleQuoteReg.lastIndex;\n } else {\n ParseErr('unclosed string', str, m.index);\n }\n } else if (punctuator === '\"') {\n doubleQuoteReg.lastIndex = m.index;\n const doubleQuoteMatch = doubleQuoteReg.exec(str);\n\n if (doubleQuoteMatch) {\n parseCloseReg.lastIndex = doubleQuoteReg.lastIndex;\n } else {\n ParseErr('unclosed string', str, m.index);\n }\n } else if (punctuator === '`') {\n templateLitReg.lastIndex = m.index;\n const templateLitMatch = templateLitReg.exec(str);\n if (templateLitMatch) {\n parseCloseReg.lastIndex = templateLitReg.lastIndex;\n } else {\n ParseErr('unclosed string', str, m.index);\n }\n }\n } else if (tagClose) {\n addAttrValue(i);\n startInd = i + m[0].length;\n tagOpenReg.lastIndex = startInd;\n // console.log('tagClose: ' + startInd)\n trimNextLeftWs = wsControl;\n if (slash && currentType === 'h') {\n currentType = 's';\n } // TODO throw err\n currentObj.t = currentType;\n return currentObj;\n }\n }\n ParseErr('unclosed tag', str, tagOpenIndex);\n return currentObj; // To prevent TypeScript from erroring\n }\n\n function parseContext(\n parentObj: TemplateObject,\n firstParse?: boolean\n ): ParentTemplateObject {\n parentObj.b = []; // assume there will be blocks // TODO: perf optimize this\n parentObj.d = [];\n let lastBlock: ParentTemplateObject | false = false;\n let buffer: Array<AstObject> = [];\n\n function pushString(\n strng: string,\n shouldTrimRightOfString?: string | false\n ) {\n if (strng) {\n // if string is truthy it must be of type 'string'\n\n // TODO: benchmark replace( /(\\\\|')/g, '\\\\$1')\n strng = trimWS(\n strng,\n env,\n trimNextLeftWs, // this will only be false on the first str, the next ones will be null or undefined\n shouldTrimRightOfString\n );\n\n if (strng) {\n // replace \\ with \\\\, ' with \\'\n\n strng = strng.replace(/\\\\|'/g, '\\\\$&').replace(/\\r\\n|\\n|\\r/g, '\\\\n');\n // we're going to convert all CRLF to LF so it doesn't take more than one replace\n\n buffer.push(strng);\n }\n }\n }\n\n // Random TODO: parentObj.b doesn't need to have t: #\n let tagOpenMatch;\n // tslint:disable-next-line:no-conditional-assignment\n while ((tagOpenMatch = tagOpenReg.exec(str)) !== null) {\n const precedingString = tagOpenMatch[1];\n const shouldTrimRightPrecedingString = tagOpenMatch[2];\n const prefix = tagOpenMatch[3] || '';\n let prefixType: TagType | undefined;\n\n for (const key in envPrefixes) {\n if (envPrefixes[key] === prefix) {\n prefixType = key as TagType;\n break;\n }\n }\n\n pushString(precedingString, shouldTrimRightPrecedingString);\n startInd = tagOpenMatch.index + tagOpenMatch[0].length;\n\n if (!prefixType) {\n ParseErr('unrecognized tag type: ' + prefix, str, startInd);\n }\n\n let currentObj = parseTag(tagOpenMatch.index, prefixType as TagType);\n // ===== NOW ADD THE OBJECT TO OUR BUFFER =====\n\n const currentType = currentObj.t;\n if (currentType === 'h') {\n const hName = currentObj.n || '';\n if (env.async && asyncRegExp.test(hName)) {\n currentObj.a = true;\n currentObj.n = hName.replace(asyncRegExp, '');\n }\n currentObj = parseContext(currentObj); // currentObj is the parent object\n buffer.push(currentObj);\n } else if (currentType === 'c') {\n // tag close\n if (parentObj.n === currentObj.n) {\n if (lastBlock) {\n // If there's a previous block\n lastBlock.d = buffer;\n parentObj.b.push(lastBlock);\n } else {\n parentObj.d = buffer;\n }\n // console.log('parentObj: ' + JSON.stringify(parentObj))\n return parentObj as ParentTemplateObject;\n } else {\n ParseErr(\n \"Helper start and end don't match\",\n str,\n tagOpenMatch.index + tagOpenMatch[0].length\n );\n }\n } else if (currentType === 'b') {\n // block\n // TODO: make sure async stuff inside blocks are recognized\n if (lastBlock) {\n // If there's a previous block\n lastBlock.d = buffer;\n parentObj.b.push(lastBlock);\n } else {\n parentObj.d = buffer;\n }\n\n const blockName = currentObj.n || '';\n if (env.async && asyncRegExp.test(blockName)) {\n currentObj.a = true;\n currentObj.n = blockName.replace(asyncRegExp, '');\n }\n\n lastBlock = currentObj as ParentTemplateObject; // Set the 'lastBlock' object to the value of the current block\n\n buffer = [];\n } else if (currentType === 's') {\n const selfClosingHName = currentObj.n || '';\n if (env.async && asyncRegExp.test(selfClosingHName)) {\n currentObj.a = true;\n currentObj.n = selfClosingHName.replace(asyncRegExp, '');\n }\n buffer.push(currentObj);\n } else {\n buffer.push(currentObj);\n }\n // ===== DONE ADDING OBJECT TO BUFFER =====\n }\n\n if (firstParse) {\n pushString(str.slice(startInd, str.length), false);\n parentObj.d = buffer;\n } else {\n throw SqrlErr('unclosed helper \"' + parentObj.n + '\"');\n // It should have returned by now\n }\n\n return parentObj as ParentTemplateObject;\n }\n\n const parseResult = parseContext({ f: [] }, true);\n // console.log(JSON.stringify(parseResult))\n if (env.plugins) {\n for (let i = 0; i < env.plugins.length; i++) {\n const plugin = env.plugins[i];\n if (plugin.processAST) {\n parseResult.d = plugin.processAST(parseResult.d, env);\n }\n }\n }\n return parseResult.d; // Parse the very outside context\n}\n"]}
@@ -0,0 +1,62 @@
1
+ /*!
2
+ * Web Components for Nanopore digital Web Apps
3
+ */
4
+ import compile from './compile';
5
+ import { getConfig } from './config';
6
+ import { promiseImpl } from './utils';
7
+ import SqrlErr from './err';
8
+ /* TYPES */
9
+ /* END TYPES */
10
+ function handleCache(template, options) {
11
+ let templateFunc;
12
+ if (options.cache &&
13
+ options.name &&
14
+ options.storage.templates.get(options.name)) {
15
+ return options.storage.templates.get(options.name);
16
+ }
17
+ if (typeof template === 'function') {
18
+ templateFunc = template;
19
+ }
20
+ else {
21
+ templateFunc = compile(template, options);
22
+ }
23
+ if (options.cache && options.name) {
24
+ options.storage.templates.define(options.name, templateFunc);
25
+ }
26
+ return templateFunc;
27
+ }
28
+ export default function render(template, data, env, cb) {
29
+ const options = getConfig(env || {});
30
+ if (options.async) {
31
+ let result;
32
+ if (!cb) {
33
+ // No callback, try returning a promise
34
+ if (typeof promiseImpl === 'function') {
35
+ return new promiseImpl(function (resolve, reject) {
36
+ try {
37
+ result = handleCache(template, options)(data, options);
38
+ resolve(result);
39
+ }
40
+ catch (err) {
41
+ reject(err);
42
+ }
43
+ });
44
+ }
45
+ else {
46
+ throw SqrlErr("Please provide a callback function, this env doesn't support Promises");
47
+ }
48
+ }
49
+ else {
50
+ try {
51
+ handleCache(template, options)(data, options, cb);
52
+ }
53
+ catch (err) {
54
+ return cb(err);
55
+ }
56
+ }
57
+ }
58
+ else {
59
+ return handleCache(template, options)(data, options);
60
+ }
61
+ }
62
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../../../src/components/algolia/lib/squirrelly/render.ts"],"names":[],"mappings":"AAAA,OAAO,OAA6B,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,SAAS,EAA6B,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,OAAO,MAAM,OAAO,CAAC;AAE5B,WAAW;AAEX,eAAe;AAEf,SAAS,WAAW,CAClB,QAAmC,EACnC,OAAmB;EAEnB,IAAI,YAAY,CAAC;EAEjB,IACE,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAC3C;IACA,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;GACpD;EAED,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;IAClC,YAAY,GAAG,QAAQ,CAAC;GACzB;OAAM;IACL,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;GAC3C;EAED,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE;IACjC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;GAC9D;EAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAC5B,QAAmC,EACnC,IAAY,EACZ,GAAmB,EACnB,EAAQ;EAER,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;EAErC,IAAI,OAAO,CAAC,KAAK,EAAE;IACjB,IAAI,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,EAAE;MACP,uCAAuC;MACvC,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;QACrC,OAAO,IAAI,WAAW,CAAC,UAAU,OAAiB,EAAE,MAAgB;UAClE,IAAI;YACF,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACvD,OAAO,CAAC,MAAM,CAAC,CAAC;WACjB;UAAC,OAAO,GAAG,EAAE;YACZ,MAAM,CAAC,GAAG,CAAC,CAAC;WACb;QACH,CAAC,CAAC,CAAC;OACJ;WAAM;QACL,MAAM,OAAO,CACX,uEAAuE,CACxE,CAAC;OACH;KACF;SAAM;MACL,IAAI;QACF,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;OACnD;MAAC,OAAO,GAAG,EAAE;QACZ,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;OAChB;KACF;GACF;OAAM;IACL,OAAO,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;GACtD;AACH,CAAC","sourcesContent":["import compile, { TemplateFunction } from './compile';\nimport { getConfig, SqrlConfig, PartialConfig } from './config';\nimport { promiseImpl } from './utils';\nimport SqrlErr from './err';\n\n/* TYPES */\n\n/* END TYPES */\n\nfunction handleCache(\n template: string | TemplateFunction,\n options: SqrlConfig\n): TemplateFunction {\n let templateFunc;\n\n if (\n options.cache &&\n options.name &&\n options.storage.templates.get(options.name)\n ) {\n return options.storage.templates.get(options.name);\n }\n\n if (typeof template === 'function') {\n templateFunc = template;\n } else {\n templateFunc = compile(template, options);\n }\n\n if (options.cache && options.name) {\n options.storage.templates.define(options.name, templateFunc);\n }\n\n return templateFunc;\n}\n\nexport default function render(\n template: string | TemplateFunction,\n data: object,\n env?: PartialConfig,\n cb?: any\n) {\n const options = getConfig(env || {});\n\n if (options.async) {\n let result;\n if (!cb) {\n // No callback, try returning a promise\n if (typeof promiseImpl === 'function') {\n return new promiseImpl(function (resolve: Function, reject: Function) {\n try {\n result = handleCache(template, options)(data, options);\n resolve(result);\n } catch (err) {\n reject(err);\n }\n });\n } else {\n throw SqrlErr(\n \"Please provide a callback function, this env doesn't support Promises\"\n );\n }\n } else {\n try {\n handleCache(template, options)(data, options, cb);\n } catch (err) {\n return cb(err);\n }\n }\n } else {\n return handleCache(template, options)(data, options);\n }\n}\n"]}