@internetarchive/collection-browser 2.7.14-alpha-webdev7002.4 → 2.7.14-alpha-webdev7397.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 (509) hide show
  1. package/.github/workflows/ci.yml +3 -3
  2. package/.github/workflows/gh-pages-main.yml +2 -2
  3. package/.github/workflows/pr-preview.yml +2 -2
  4. package/.prettierignore +1 -0
  5. package/dist/index.d.ts +13 -16
  6. package/dist/index.js +11 -16
  7. package/dist/index.js.map +1 -1
  8. package/dist/src/app-root.d.ts +107 -107
  9. package/dist/src/app-root.js +531 -531
  10. package/dist/src/app-root.js.map +1 -1
  11. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  12. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  13. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  14. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  15. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  16. package/dist/src/assets/img/icons/chevron.js +2 -2
  17. package/dist/src/assets/img/icons/contract.d.ts +2 -2
  18. package/dist/src/assets/img/icons/contract.js +2 -2
  19. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  20. package/dist/src/assets/img/icons/empty-query.js +2 -2
  21. package/dist/src/assets/img/icons/expand.d.ts +2 -2
  22. package/dist/src/assets/img/icons/expand.js +2 -2
  23. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  24. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  25. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  26. package/dist/src/assets/img/icons/eye.js +2 -2
  27. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  28. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  29. package/dist/src/assets/img/icons/favorite-unfilled.d.ts +1 -1
  30. package/dist/src/assets/img/icons/favorite-unfilled.js +2 -2
  31. package/dist/src/assets/img/icons/filter.d.ts +2 -2
  32. package/dist/src/assets/img/icons/filter.js +2 -2
  33. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  34. package/dist/src/assets/img/icons/login-required.js +2 -2
  35. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  36. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  37. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  38. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  39. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  40. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  41. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  42. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  43. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  44. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  45. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  46. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  47. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  48. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  49. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  50. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  51. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
  52. package/dist/src/assets/img/icons/mediatype/search.js +2 -2
  53. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  54. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  55. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  56. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  57. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  58. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  59. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  60. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  61. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  62. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  63. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  64. package/dist/src/assets/img/icons/null-result.js +2 -2
  65. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  66. package/dist/src/assets/img/icons/restricted.js +2 -2
  67. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  68. package/dist/src/assets/img/icons/reviews.js +2 -2
  69. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  70. package/dist/src/assets/img/icons/upload.js +2 -2
  71. package/dist/src/assets/img/icons/views.d.ts +1 -1
  72. package/dist/src/assets/img/icons/views.js +2 -2
  73. package/dist/src/circular-activity-indicator.d.ts +5 -5
  74. package/dist/src/circular-activity-indicator.js +17 -17
  75. package/dist/src/circular-activity-indicator.js.map +1 -1
  76. package/dist/src/collection-browser.d.ts +606 -606
  77. package/dist/src/collection-browser.js +1679 -1677
  78. package/dist/src/collection-browser.js.map +1 -1
  79. package/dist/src/collection-facets/facet-row.d.ts +30 -30
  80. package/dist/src/collection-facets/facet-row.js +118 -118
  81. package/dist/src/collection-facets/facet-row.js.map +1 -1
  82. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  83. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  84. package/dist/src/collection-facets/facet-tombstone-row.js.map +1 -1
  85. package/dist/src/collection-facets/facets-template.d.ts +13 -13
  86. package/dist/src/collection-facets/facets-template.js +49 -49
  87. package/dist/src/collection-facets/facets-template.js.map +1 -1
  88. package/dist/src/collection-facets/more-facets-content.d.ts +106 -106
  89. package/dist/src/collection-facets/more-facets-content.js +406 -408
  90. package/dist/src/collection-facets/more-facets-content.js.map +1 -1
  91. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  92. package/dist/src/collection-facets/more-facets-pagination.js +197 -196
  93. package/dist/src/collection-facets/more-facets-pagination.js.map +1 -1
  94. package/dist/src/collection-facets/smart-facets/dedupe.d.ts +10 -10
  95. package/dist/src/collection-facets/smart-facets/dedupe.js +33 -33
  96. package/dist/src/collection-facets/smart-facets/dedupe.js.map +1 -1
  97. package/dist/src/collection-facets/smart-facets/heuristics/{browser-language/browser-language-heuristic.d.ts → browser-language-heuristic.d.ts} +5 -5
  98. package/dist/src/collection-facets/smart-facets/heuristics/{browser-language/browser-language-heuristic.js → browser-language-heuristic.js} +23 -23
  99. package/dist/src/collection-facets/smart-facets/heuristics/browser-language-heuristic.js.map +1 -0
  100. package/dist/src/collection-facets/smart-facets/heuristics/{query-keywords/query-keywords-heuristic.d.ts → query-keywords-heuristic.d.ts} +5 -4
  101. package/dist/src/collection-facets/smart-facets/heuristics/{query-keywords/query-keywords-map.js → query-keywords-heuristic.js} +45 -35
  102. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.js.map +1 -0
  103. package/dist/src/collection-facets/smart-facets/heuristics/{wikidata/wikidata-heuristic.d.ts → wikidata-heuristic.d.ts} +5 -4
  104. package/dist/src/collection-facets/smart-facets/heuristics/{wikidata/wikidata-entity-map.js → wikidata-heuristic.js} +173 -133
  105. package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js.map +1 -0
  106. package/dist/src/collection-facets/smart-facets/models.d.ts +26 -26
  107. package/dist/src/collection-facets/smart-facets/models.js +1 -1
  108. package/dist/src/collection-facets/smart-facets/smart-facet-bar.d.ts +31 -31
  109. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js +237 -240
  110. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js.map +1 -1
  111. package/dist/src/collection-facets/smart-facets/smart-facet-button.d.ts +11 -11
  112. package/dist/src/collection-facets/smart-facets/smart-facet-button.js +86 -86
  113. package/dist/src/collection-facets/smart-facets/smart-facet-button.js.map +1 -1
  114. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.d.ts +16 -16
  115. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js +100 -100
  116. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js.map +1 -1
  117. package/dist/src/collection-facets/smart-facets/smart-facet-equals.d.ts +2 -2
  118. package/dist/src/collection-facets/smart-facets/smart-facet-equals.js +12 -12
  119. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.d.ts +5 -5
  120. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js +15 -17
  121. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js.map +1 -1
  122. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  123. package/dist/src/collection-facets/toggle-switch.js +94 -94
  124. package/dist/src/collection-facets/toggle-switch.js.map +1 -1
  125. package/dist/src/collection-facets.d.ts +103 -103
  126. package/dist/src/collection-facets.js +521 -522
  127. package/dist/src/collection-facets.js.map +1 -1
  128. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +245 -245
  129. package/dist/src/data-source/collection-browser-data-source-interface.js +1 -1
  130. package/dist/src/data-source/collection-browser-data-source-interface.js.map +1 -1
  131. package/dist/src/data-source/collection-browser-data-source.d.ts +377 -377
  132. package/dist/src/data-source/collection-browser-data-source.js +1003 -1004
  133. package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
  134. package/dist/src/data-source/collection-browser-query-state.d.ts +44 -44
  135. package/dist/src/data-source/collection-browser-query-state.js +1 -1
  136. package/dist/src/data-source/models.d.ts +28 -28
  137. package/dist/src/data-source/models.js +8 -8
  138. package/dist/src/empty-placeholder.d.ts +23 -23
  139. package/dist/src/empty-placeholder.js +87 -88
  140. package/dist/src/empty-placeholder.js.map +1 -1
  141. package/dist/src/expanded-date-picker.d.ts +43 -43
  142. package/dist/src/expanded-date-picker.js +109 -109
  143. package/dist/src/expanded-date-picker.js.map +1 -1
  144. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  145. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  146. package/dist/src/language-code-handler/language-code-handler.js.map +1 -1
  147. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  148. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  149. package/dist/src/language-code-handler/language-code-mapping.js.map +1 -1
  150. package/dist/src/manage/manage-bar.d.ts +58 -58
  151. package/dist/src/manage/manage-bar.js +175 -175
  152. package/dist/src/manage/manage-bar.js.map +1 -1
  153. package/dist/src/manage/remove-items-modal-content.d.ts +9 -9
  154. package/dist/src/manage/remove-items-modal-content.js +34 -34
  155. package/dist/src/manage/remove-items-modal-content.js.map +1 -1
  156. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  157. package/dist/src/mediatype/mediatype-config.js +92 -91
  158. package/dist/src/mediatype/mediatype-config.js.map +1 -1
  159. package/dist/src/models.d.ts +228 -228
  160. package/dist/src/models.js +401 -401
  161. package/dist/src/models.js.map +1 -1
  162. package/dist/src/restoration-state-handler.d.ts +70 -70
  163. package/dist/src/restoration-state-handler.js +362 -363
  164. package/dist/src/restoration-state-handler.js.map +1 -1
  165. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  166. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  167. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js.map +1 -1
  168. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  169. package/dist/src/sort-filter-bar/alpha-bar.js +136 -136
  170. package/dist/src/sort-filter-bar/alpha-bar.js.map +1 -1
  171. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  172. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  173. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  174. package/dist/src/sort-filter-bar/img/list.js +2 -2
  175. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  176. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  177. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  178. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  179. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  180. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  181. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  182. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  183. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  184. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  185. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +223 -223
  186. package/dist/src/sort-filter-bar/sort-filter-bar.js +696 -697
  187. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  188. package/dist/src/styles/ia-button.d.ts +2 -2
  189. package/dist/src/styles/ia-button.js +17 -17
  190. package/dist/src/styles/item-image-styles.d.ts +8 -8
  191. package/dist/src/styles/item-image-styles.js +9 -9
  192. package/dist/src/styles/sr-only.d.ts +1 -1
  193. package/dist/src/styles/sr-only.js +2 -2
  194. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  195. package/dist/src/tiles/base-tile-component.js +64 -64
  196. package/dist/src/tiles/base-tile-component.js.map +1 -1
  197. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  198. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  199. package/dist/src/tiles/collection-browser-loading-tile.js.map +1 -1
  200. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  201. package/dist/src/tiles/grid/account-tile.js +72 -72
  202. package/dist/src/tiles/grid/account-tile.js.map +1 -1
  203. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  204. package/dist/src/tiles/grid/collection-tile.js +80 -80
  205. package/dist/src/tiles/grid/collection-tile.js.map +1 -1
  206. package/dist/src/tiles/grid/item-tile.d.ts +34 -34
  207. package/dist/src/tiles/grid/item-tile.js +159 -160
  208. package/dist/src/tiles/grid/item-tile.js.map +1 -1
  209. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  210. package/dist/src/tiles/grid/search-tile.js +51 -51
  211. package/dist/src/tiles/grid/search-tile.js.map +1 -1
  212. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  213. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  214. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  215. package/dist/src/tiles/grid/tile-stats.js +54 -54
  216. package/dist/src/tiles/grid/tile-stats.js.map +1 -1
  217. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  218. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  219. package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
  220. package/dist/src/tiles/hover/tile-hover-pane.d.ts +18 -18
  221. package/dist/src/tiles/hover/tile-hover-pane.js +72 -70
  222. package/dist/src/tiles/hover/tile-hover-pane.js.map +1 -1
  223. package/dist/src/tiles/image-block.d.ts +18 -18
  224. package/dist/src/tiles/image-block.js +89 -89
  225. package/dist/src/tiles/image-block.js.map +1 -1
  226. package/dist/src/tiles/item-image.d.ts +39 -39
  227. package/dist/src/tiles/item-image.js +154 -154
  228. package/dist/src/tiles/item-image.js.map +1 -1
  229. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  230. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  231. package/dist/src/tiles/list/tile-list-compact-header.js.map +1 -1
  232. package/dist/src/tiles/list/tile-list-compact.d.ts +19 -19
  233. package/dist/src/tiles/list/tile-list-compact.js +122 -122
  234. package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
  235. package/dist/src/tiles/list/tile-list.d.ts +54 -54
  236. package/dist/src/tiles/list/tile-list.js +324 -326
  237. package/dist/src/tiles/list/tile-list.js.map +1 -1
  238. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  239. package/dist/src/tiles/mediatype-icon.js +47 -47
  240. package/dist/src/tiles/mediatype-icon.js.map +1 -1
  241. package/dist/src/tiles/overlay/icon-overlay.d.ts +8 -8
  242. package/dist/src/tiles/overlay/icon-overlay.js +25 -25
  243. package/dist/src/tiles/overlay/icon-overlay.js.map +1 -1
  244. package/dist/src/tiles/overlay/text-overlay.d.ts +9 -9
  245. package/dist/src/tiles/overlay/text-overlay.js +31 -31
  246. package/dist/src/tiles/overlay/text-overlay.js.map +1 -1
  247. package/dist/src/tiles/review-block.d.ts +12 -12
  248. package/dist/src/tiles/review-block.js +56 -56
  249. package/dist/src/tiles/review-block.js.map +1 -1
  250. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  251. package/dist/src/tiles/text-snippet-block.js +73 -73
  252. package/dist/src/tiles/text-snippet-block.js.map +1 -1
  253. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  254. package/dist/src/tiles/tile-dispatcher.js +230 -230
  255. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  256. package/dist/src/tiles/tile-display-value-provider.d.ts +47 -47
  257. package/dist/src/tiles/tile-display-value-provider.js +94 -94
  258. package/dist/src/tiles/tile-display-value-provider.js.map +1 -1
  259. package/dist/src/utils/analytics-events.d.ts +28 -28
  260. package/dist/src/utils/analytics-events.js +30 -30
  261. package/dist/src/utils/array-equals.d.ts +4 -4
  262. package/dist/src/utils/array-equals.js +10 -10
  263. package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -11
  264. package/dist/src/utils/collapse-repeated-quotes.js +13 -13
  265. package/dist/src/utils/facet-utils.d.ts +83 -83
  266. package/dist/src/utils/facet-utils.js +145 -145
  267. package/dist/src/utils/facet-utils.js.map +1 -1
  268. package/dist/src/utils/format-count.d.ts +7 -7
  269. package/dist/src/utils/format-count.js +75 -76
  270. package/dist/src/utils/format-count.js.map +1 -1
  271. package/dist/src/utils/format-date.d.ts +2 -2
  272. package/dist/src/utils/format-date.js +27 -27
  273. package/dist/src/utils/format-date.js.map +1 -1
  274. package/dist/src/utils/format-unit-size.d.ts +2 -2
  275. package/dist/src/utils/format-unit-size.js +33 -33
  276. package/dist/src/utils/format-unit-size.js.map +1 -1
  277. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  278. package/dist/src/utils/local-date-from-utc.js +15 -15
  279. package/dist/src/utils/log.d.ts +7 -7
  280. package/dist/src/utils/log.js +13 -15
  281. package/dist/src/utils/log.js.map +1 -1
  282. package/dist/src/utils/resolve-mediatype.d.ts +8 -8
  283. package/dist/src/utils/resolve-mediatype.js +23 -23
  284. package/dist/src/utils/resolve-mediatype.js.map +1 -1
  285. package/dist/src/utils/sha1.d.ts +2 -2
  286. package/dist/src/utils/sha1.js +8 -8
  287. package/dist/test/collection-browser.test.d.ts +1 -1
  288. package/dist/test/collection-browser.test.js +1309 -1308
  289. package/dist/test/collection-browser.test.js.map +1 -1
  290. package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
  291. package/dist/test/collection-facets/facet-row.test.js +230 -227
  292. package/dist/test/collection-facets/facet-row.test.js.map +1 -1
  293. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  294. package/dist/test/collection-facets/facets-template.test.js +91 -91
  295. package/dist/test/collection-facets/facets-template.test.js.map +1 -1
  296. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  297. package/dist/test/collection-facets/more-facets-content.test.js +140 -141
  298. package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
  299. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  300. package/dist/test/collection-facets/more-facets-pagination.test.js +116 -117
  301. package/dist/test/collection-facets/more-facets-pagination.test.js.map +1 -1
  302. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  303. package/dist/test/collection-facets/toggle-switch.test.js +82 -73
  304. package/dist/test/collection-facets/toggle-switch.test.js.map +1 -1
  305. package/dist/test/collection-facets.test.d.ts +2 -2
  306. package/dist/test/collection-facets.test.js +692 -692
  307. package/dist/test/collection-facets.test.js.map +1 -1
  308. package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -1
  309. package/dist/test/data-source/collection-browser-data-source.test.js +89 -89
  310. package/dist/test/data-source/collection-browser-data-source.test.js.map +1 -1
  311. package/dist/test/empty-placeholder.test.d.ts +1 -1
  312. package/dist/test/empty-placeholder.test.js +62 -63
  313. package/dist/test/empty-placeholder.test.js.map +1 -1
  314. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  315. package/dist/test/expanded-date-picker.test.js +97 -96
  316. package/dist/test/expanded-date-picker.test.js.map +1 -1
  317. package/dist/test/icon-overlay.test.d.ts +1 -1
  318. package/dist/test/icon-overlay.test.js +23 -24
  319. package/dist/test/icon-overlay.test.js.map +1 -1
  320. package/dist/test/image-block.test.d.ts +1 -1
  321. package/dist/test/image-block.test.js +106 -107
  322. package/dist/test/image-block.test.js.map +1 -1
  323. package/dist/test/item-image.test.d.ts +1 -1
  324. package/dist/test/item-image.test.js +84 -85
  325. package/dist/test/item-image.test.js.map +1 -1
  326. package/dist/test/manage/manage-bar.test.d.ts +2 -2
  327. package/dist/test/manage/manage-bar.test.js +100 -101
  328. package/dist/test/manage/manage-bar.test.js.map +1 -1
  329. package/dist/test/manage/remove-items-modal-content.test.d.ts +1 -1
  330. package/dist/test/manage/remove-items-modal-content.test.js +44 -45
  331. package/dist/test/manage/remove-items-modal-content.test.js.map +1 -1
  332. package/dist/test/mediatype-config.test.d.ts +1 -1
  333. package/dist/test/mediatype-config.test.js +16 -16
  334. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  335. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  336. package/dist/test/mocks/mock-search-responses.d.ts +25 -25
  337. package/dist/test/mocks/mock-search-responses.js +942 -942
  338. package/dist/test/mocks/mock-search-responses.js.map +1 -1
  339. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  340. package/dist/test/mocks/mock-search-service.js +54 -54
  341. package/dist/test/mocks/mock-search-service.js.map +1 -1
  342. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  343. package/dist/test/restoration-state-handler.test.js +270 -270
  344. package/dist/test/restoration-state-handler.test.js.map +1 -1
  345. package/dist/test/review-block.test.d.ts +1 -1
  346. package/dist/test/review-block.test.js +43 -44
  347. package/dist/test/review-block.test.js.map +1 -1
  348. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  349. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  350. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js.map +1 -1
  351. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  352. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  353. package/dist/test/sort-filter-bar/alpha-bar.test.js.map +1 -1
  354. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  355. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +425 -426
  356. package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -1
  357. package/dist/test/text-overlay.test.d.ts +1 -1
  358. package/dist/test/text-overlay.test.js +37 -38
  359. package/dist/test/text-overlay.test.js.map +1 -1
  360. package/dist/test/text-snippet-block.test.d.ts +1 -1
  361. package/dist/test/text-snippet-block.test.js +56 -57
  362. package/dist/test/text-snippet-block.test.js.map +1 -1
  363. package/dist/test/tile-stats.test.d.ts +1 -1
  364. package/dist/test/tile-stats.test.js +98 -99
  365. package/dist/test/tile-stats.test.js.map +1 -1
  366. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  367. package/dist/test/tiles/grid/account-tile.test.js +75 -76
  368. package/dist/test/tiles/grid/account-tile.test.js.map +1 -1
  369. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  370. package/dist/test/tiles/grid/collection-tile.test.js +72 -73
  371. package/dist/test/tiles/grid/collection-tile.test.js.map +1 -1
  372. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  373. package/dist/test/tiles/grid/item-tile.test.js +311 -312
  374. package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
  375. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  376. package/dist/test/tiles/grid/search-tile.test.js +50 -51
  377. package/dist/test/tiles/grid/search-tile.test.js.map +1 -1
  378. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  379. package/dist/test/tiles/hover/hover-pane-controller.test.js +259 -259
  380. package/dist/test/tiles/hover/hover-pane-controller.test.js.map +1 -1
  381. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  382. package/dist/test/tiles/hover/tile-hover-pane.test.js +56 -56
  383. package/dist/test/tiles/hover/tile-hover-pane.test.js.map +1 -1
  384. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  385. package/dist/test/tiles/list/tile-list-compact.test.js +142 -143
  386. package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -1
  387. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  388. package/dist/test/tiles/list/tile-list.test.js +296 -297
  389. package/dist/test/tiles/list/tile-list.test.js.map +1 -1
  390. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  391. package/dist/test/tiles/tile-dispatcher.test.js +100 -100
  392. package/dist/test/tiles/tile-dispatcher.test.js.map +1 -1
  393. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  394. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  395. package/dist/test/utils/array-equals.test.d.ts +1 -1
  396. package/dist/test/utils/array-equals.test.js +26 -26
  397. package/dist/test/utils/format-count.test.d.ts +1 -1
  398. package/dist/test/utils/format-count.test.js +23 -23
  399. package/dist/test/utils/format-count.test.js.map +1 -1
  400. package/dist/test/utils/format-date.test.d.ts +1 -1
  401. package/dist/test/utils/format-date.test.js +30 -30
  402. package/dist/test/utils/format-date.test.js.map +1 -1
  403. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  404. package/dist/test/utils/format-unit-size.test.js +17 -17
  405. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  406. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  407. package/dist/test/utils/local-date-from-utc.test.js.map +1 -1
  408. package/eslint.config.mjs +53 -0
  409. package/index.html +0 -3
  410. package/index.ts +1 -15
  411. package/package.json +41 -39
  412. package/src/app-root.ts +21 -22
  413. package/src/collection-browser.ts +44 -40
  414. package/src/collection-facets/facets-template.ts +7 -6
  415. package/src/collection-facets/more-facets-content.ts +11 -13
  416. package/src/collection-facets/more-facets-pagination.ts +3 -2
  417. package/src/collection-facets/smart-facets/dedupe.ts +2 -2
  418. package/src/collection-facets/smart-facets/heuristics/{browser-language/browser-language-heuristic.ts → browser-language-heuristic.ts} +1 -1
  419. package/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.ts +55 -0
  420. package/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.ts +191 -0
  421. package/src/collection-facets/smart-facets/smart-facet-bar.ts +6 -8
  422. package/src/collection-facets/smart-facets/smart-facet-button.ts +5 -3
  423. package/src/collection-facets/smart-facets/smart-facet-dropdown.ts +4 -4
  424. package/src/collection-facets/smart-facets/smart-facet-heuristics.ts +8 -13
  425. package/src/collection-facets/toggle-switch.ts +2 -2
  426. package/src/collection-facets.ts +18 -19
  427. package/src/data-source/collection-browser-data-source-interface.ts +5 -1
  428. package/src/data-source/collection-browser-data-source.ts +37 -34
  429. package/src/empty-placeholder.ts +19 -16
  430. package/src/expanded-date-picker.ts +1 -1
  431. package/src/language-code-handler/language-code-handler.ts +1 -1
  432. package/src/manage/manage-bar.ts +23 -20
  433. package/src/manage/remove-items-modal-content.ts +2 -2
  434. package/src/mediatype/mediatype-config.ts +1 -0
  435. package/src/models.ts +3 -3
  436. package/src/restoration-state-handler.ts +14 -15
  437. package/src/sort-filter-bar/alpha-bar.ts +16 -17
  438. package/src/sort-filter-bar/sort-filter-bar.ts +14 -15
  439. package/src/tiles/grid/account-tile.ts +1 -1
  440. package/src/tiles/grid/collection-tile.ts +1 -1
  441. package/src/tiles/grid/item-tile.ts +9 -9
  442. package/src/tiles/grid/tile-stats.ts +4 -4
  443. package/src/tiles/hover/hover-pane-controller.ts +1 -1
  444. package/src/tiles/hover/tile-hover-pane.ts +4 -2
  445. package/src/tiles/item-image.ts +1 -1
  446. package/src/tiles/list/tile-list-compact.ts +2 -2
  447. package/src/tiles/list/tile-list.ts +22 -24
  448. package/src/tiles/tile-dispatcher.ts +5 -5
  449. package/src/tiles/tile-display-value-provider.ts +4 -4
  450. package/src/utils/facet-utils.ts +6 -6
  451. package/src/utils/format-count.ts +2 -3
  452. package/src/utils/format-date.ts +1 -1
  453. package/src/utils/format-unit-size.ts +1 -1
  454. package/src/utils/log.ts +1 -3
  455. package/test/collection-browser.test.ts +125 -124
  456. package/test/collection-facets/facet-row.test.ts +31 -28
  457. package/test/collection-facets/facets-template.test.ts +9 -9
  458. package/test/collection-facets/more-facets-content.test.ts +14 -15
  459. package/test/collection-facets/more-facets-pagination.test.ts +18 -19
  460. package/test/collection-facets/toggle-switch.test.ts +28 -18
  461. package/test/collection-facets.test.ts +46 -39
  462. package/test/data-source/collection-browser-data-source.test.ts +2 -2
  463. package/test/empty-placeholder.test.ts +6 -7
  464. package/test/expanded-date-picker.test.ts +25 -20
  465. package/test/icon-overlay.test.ts +0 -1
  466. package/test/image-block.test.ts +6 -7
  467. package/test/item-image.test.ts +0 -1
  468. package/test/manage/manage-bar.test.ts +19 -16
  469. package/test/manage/remove-items-modal-content.test.ts +4 -5
  470. package/test/mocks/mock-search-responses.ts +2 -1
  471. package/test/mocks/mock-search-service.ts +1 -1
  472. package/test/restoration-state-handler.test.ts +12 -12
  473. package/test/review-block.test.ts +1 -2
  474. package/test/sort-filter-bar/alpha-bar-tooltip.test.ts +1 -1
  475. package/test/sort-filter-bar/alpha-bar.test.ts +5 -5
  476. package/test/sort-filter-bar/sort-filter-bar.test.ts +38 -39
  477. package/test/text-overlay.test.ts +0 -1
  478. package/test/text-snippet-block.test.ts +5 -6
  479. package/test/tile-stats.test.ts +26 -35
  480. package/test/tiles/grid/account-tile.test.ts +2 -3
  481. package/test/tiles/grid/collection-tile.test.ts +3 -4
  482. package/test/tiles/grid/item-tile.test.ts +13 -14
  483. package/test/tiles/grid/search-tile.test.ts +1 -2
  484. package/test/tiles/hover/hover-pane-controller.test.ts +15 -15
  485. package/test/tiles/hover/tile-hover-pane.test.ts +5 -5
  486. package/test/tiles/list/tile-list-compact.test.ts +1 -2
  487. package/test/tiles/list/tile-list.test.ts +10 -11
  488. package/test/tiles/tile-dispatcher.test.ts +5 -5
  489. package/test/utils/format-count.test.ts +1 -1
  490. package/test/utils/format-date.test.ts +1 -1
  491. package/test/utils/local-date-from-utc.test.ts +1 -1
  492. package/tsconfig.json +0 -1
  493. package/dist/src/collection-facets/smart-facets/heuristics/browser-language/browser-language-heuristic.js.map +0 -1
  494. package/dist/src/collection-facets/smart-facets/heuristics/index.d.ts +0 -3
  495. package/dist/src/collection-facets/smart-facets/heuristics/index.js +0 -4
  496. package/dist/src/collection-facets/smart-facets/heuristics/index.js.map +0 -1
  497. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-heuristic.js +0 -14
  498. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-heuristic.js.map +0 -1
  499. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-map.d.ts +0 -6
  500. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-map.js.map +0 -1
  501. package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-entity-map.d.ts +0 -9
  502. package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-entity-map.js.map +0 -1
  503. package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.js +0 -49
  504. package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.js.map +0 -1
  505. package/src/collection-facets/smart-facets/heuristics/index.ts +0 -3
  506. package/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-heuristic.ts +0 -17
  507. package/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-map.ts +0 -36
  508. package/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-entity-map.ts +0 -134
  509. package/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.ts +0 -60
@@ -1 +1 @@
1
- {"version":3,"file":"restoration-state-handler.test.js","sourceRoot":"","sources":["../../test/restoration-state-handler.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { SearchType } from '@internetarchive/search-service';\nimport { expect } from '@open-wc/testing';\nimport { SortField, getDefaultSelectedFacets } from '../src/models';\nimport { RestorationStateHandler } from '../src/restoration-state-handler';\n\ndescribe('Restoration state handler', () => {\n it('should restore query from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?query=boop';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.baseQuery).to.equal('boop');\n });\n\n it('should restore metadata search type from URL without valid sin', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?sin=foo';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.searchType).to.equal(SearchType.METADATA);\n });\n\n it('should restore metadata search type if sin explicitly empty in URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?sin=';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.searchType).to.equal(SearchType.METADATA);\n });\n\n it('should restore full text search type from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?sin=TXT';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.searchType).to.equal(SearchType.FULLTEXT);\n });\n\n it('should restore page number from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?page=42';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.currentPage).to.equal(42);\n });\n\n it('should restore selected year facets from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?and[]=year:\"2018\"';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedFacets.year['2018'].state).to.equal(\n 'selected'\n );\n });\n\n it('should ignore unrecognized facet types in URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?and[]=foo:\"bar\"';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedFacets).to.deep.equal(\n getDefaultSelectedFacets()\n );\n });\n\n it('should restore selected date range facets from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?and[]=year:\"2018+TO+2021\"';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.minSelectedDate).to.equal('2018');\n expect(restorationState.maxSelectedDate).to.equal('2021');\n });\n\n it('should restore creator filter from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?and[]=firstCreator:F';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedCreatorFilter).to.equal('F');\n });\n\n it('should restore title filter from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?and[]=firstTitle:F';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedTitleFilter).to.equal('F');\n });\n\n it('should restore other selected facets from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?and[]=subject:\"foo\"';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedFacets.subject.foo.state).to.equal(\n 'selected'\n );\n });\n\n it('should restore negative facets from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?not[]=year:2018';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedFacets.year['2018'].state).to.equal(\n 'hidden'\n );\n });\n\n it('should restore multiple selected/negative facets from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search =\n '?and[]=collection:\"foo\"&and[]=collection:\"bar\"&not[]=collection:\"baz\"&not[]=collection:\"boop\"';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n\n expect(restorationState.selectedFacets.collection.foo.state).to.equal(\n 'selected'\n );\n expect(restorationState.selectedFacets.collection.bar.state).to.equal(\n 'selected'\n );\n\n expect(restorationState.selectedFacets.collection.baz.state).to.equal(\n 'hidden'\n );\n expect(restorationState.selectedFacets.collection.boop.state).to.equal(\n 'hidden'\n );\n });\n\n it('negative facets take precedence if both present in URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?and[]=collection:\"foo\"&not[]=collection:\"foo\"';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedFacets.collection.foo.state).to.equal(\n 'hidden'\n );\n });\n\n it('should restore selected facets with numbers in the square brackets', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?and[12]=subject:\"foo\"';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedFacets.subject.foo.state).to.equal(\n 'selected'\n );\n });\n\n it('should restore negative facets with numbers in the square brackets', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?not[12]=year:2018';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedFacets.year['2018'].state).to.equal(\n 'hidden'\n );\n });\n\n it('should restore sort from URL (space format)', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?sort=date+desc';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedSort).to.equal('date');\n expect(restorationState.sortDirection).to.equal('desc');\n });\n\n it('should restore sort from URL (prefix format, desc)', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?sort=-date';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedSort).to.equal('date');\n expect(restorationState.sortDirection).to.equal('desc');\n });\n\n it('should restore sort from URL (prefix format, asc)', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?sort=date';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedSort).to.equal('date');\n expect(restorationState.sortDirection).to.equal('asc');\n });\n\n it('should restore sort from URL (space format)', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?sort=foo+desc';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedSort).to.equal('unrecognized');\n expect(restorationState.sortDirection).to.equal('desc');\n });\n\n it('should restore unrecognized sort from URL (prefix format)', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?sort=-foo';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedSort).to.equal('unrecognized');\n expect(restorationState.sortDirection).to.equal('desc');\n });\n\n it('should save direction to URL even for unrecognized sort fields', async () => {\n const url = new URL(window.location.href);\n url.search = '?sort=foo';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const handler = new RestorationStateHandler({ context: 'search' });\n handler.persistState({\n selectedSort: SortField.unrecognized,\n sortDirection: 'desc',\n selectedFacets: getDefaultSelectedFacets(),\n });\n\n expect(window.location.search).to.equal('?sort=-foo');\n });\n\n it('should keep existing direction for unrecognized sort fields when unspecified in state', async () => {\n const url = new URL(window.location.href);\n url.search = '?sort=foo+desc';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const handler = new RestorationStateHandler({ context: 'search' });\n handler.persistState({\n selectedSort: SortField.unrecognized,\n selectedFacets: getDefaultSelectedFacets(),\n });\n\n expect(window.location.search).to.equal('?sort=-foo');\n });\n\n it('should just ignore unrecognized sort fields w/ unknown formats', async () => {\n const url = new URL(window.location.href);\n url.search = '?sort=+foo';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const handler = new RestorationStateHandler({ context: 'search' });\n handler.persistState({\n selectedSort: SortField.unrecognized,\n selectedFacets: getDefaultSelectedFacets(),\n });\n\n expect(window.location.search).to.equal('?sort=+foo');\n });\n\n it('should not save current page state to the URL for page 1', async () => {\n const url = new URL(window.location.href);\n url.search = '';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const handler = new RestorationStateHandler({ context: 'search' });\n handler.persistState({\n currentPage: 1,\n selectedFacets: getDefaultSelectedFacets(),\n });\n\n expect(window.location.search).to.be.empty;\n });\n\n it('should save current page state to the URL when page > 1', async () => {\n const url = new URL(window.location.href);\n url.search = '';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const handler = new RestorationStateHandler({ context: 'search' });\n handler.persistState({\n currentPage: 2,\n selectedFacets: getDefaultSelectedFacets(),\n });\n\n expect(window.location.search).to.equal('?page=2');\n });\n\n it('should upgrade legacy search params to new ones', async () => {\n const url = new URL(window.location.href);\n url.search = '?q=foo';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const handler = new RestorationStateHandler({ context: 'search' });\n const restorationState = handler.getRestorationState();\n expect(restorationState.baseQuery).to.equal('foo');\n\n handler.persistState(restorationState);\n expect(window.location.search).to.equal('?query=foo');\n });\n\n it('should remove empty sin param', async () => {\n const url = new URL(window.location.href);\n url.search = '?sin=';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const handler = new RestorationStateHandler({ context: 'search' });\n\n handler.persistState({ selectedFacets: getDefaultSelectedFacets() });\n expect(window.location.search).to.equal('');\n });\n\n it('round trip load/persist should erase numbers in square brackets', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?and[0]=subject:\"foo\"';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n // Load state from the URL and immediately persist it back to the URL\n const restorationState = handler.getRestorationState();\n handler.persistState(restorationState);\n\n // Ensure the new URL includes the \"normalized\" facet parameter and not the numbered one\n expect(decodeURIComponent(window.location.search)).to.include(\n 'and[]=subject:\"foo\"'\n );\n expect(new URL(window.location.href).searchParams.get('and[0]')).to.be.null;\n });\n});\n"]}
1
+ {"version":3,"file":"restoration-state-handler.test.js","sourceRoot":"","sources":["../../test/restoration-state-handler.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { SearchType } from '@internetarchive/search-service';\nimport { expect } from '@open-wc/testing';\nimport { SortField, getDefaultSelectedFacets } from '../src/models';\nimport { RestorationStateHandler } from '../src/restoration-state-handler';\n\ndescribe('Restoration state handler', () => {\n it('should restore query from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?query=boop';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.baseQuery).to.equal('boop');\n });\n\n it('should restore metadata search type from URL without valid sin', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?sin=foo';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.searchType).to.equal(SearchType.METADATA);\n });\n\n it('should restore metadata search type if sin explicitly empty in URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?sin=';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.searchType).to.equal(SearchType.METADATA);\n });\n\n it('should restore full text search type from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?sin=TXT';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.searchType).to.equal(SearchType.FULLTEXT);\n });\n\n it('should restore page number from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?page=42';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.currentPage).to.equal(42);\n });\n\n it('should restore selected year facets from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?and[]=year:\"2018\"';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedFacets.year['2018'].state).to.equal(\n 'selected',\n );\n });\n\n it('should ignore unrecognized facet types in URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?and[]=foo:\"bar\"';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedFacets).to.deep.equal(\n getDefaultSelectedFacets(),\n );\n });\n\n it('should restore selected date range facets from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?and[]=year:\"2018+TO+2021\"';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.minSelectedDate).to.equal('2018');\n expect(restorationState.maxSelectedDate).to.equal('2021');\n });\n\n it('should restore creator filter from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?and[]=firstCreator:F';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedCreatorFilter).to.equal('F');\n });\n\n it('should restore title filter from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?and[]=firstTitle:F';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedTitleFilter).to.equal('F');\n });\n\n it('should restore other selected facets from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?and[]=subject:\"foo\"';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedFacets.subject.foo.state).to.equal(\n 'selected',\n );\n });\n\n it('should restore negative facets from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?not[]=year:2018';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedFacets.year['2018'].state).to.equal(\n 'hidden',\n );\n });\n\n it('should restore multiple selected/negative facets from URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search =\n '?and[]=collection:\"foo\"&and[]=collection:\"bar\"&not[]=collection:\"baz\"&not[]=collection:\"boop\"';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n\n expect(restorationState.selectedFacets.collection.foo.state).to.equal(\n 'selected',\n );\n expect(restorationState.selectedFacets.collection.bar.state).to.equal(\n 'selected',\n );\n\n expect(restorationState.selectedFacets.collection.baz.state).to.equal(\n 'hidden',\n );\n expect(restorationState.selectedFacets.collection.boop.state).to.equal(\n 'hidden',\n );\n });\n\n it('negative facets take precedence if both present in URL', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?and[]=collection:\"foo\"&not[]=collection:\"foo\"';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedFacets.collection.foo.state).to.equal(\n 'hidden',\n );\n });\n\n it('should restore selected facets with numbers in the square brackets', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?and[12]=subject:\"foo\"';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedFacets.subject.foo.state).to.equal(\n 'selected',\n );\n });\n\n it('should restore negative facets with numbers in the square brackets', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?not[12]=year:2018';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedFacets.year['2018'].state).to.equal(\n 'hidden',\n );\n });\n\n it('should restore sort from URL (space format)', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?sort=date+desc';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedSort).to.equal('date');\n expect(restorationState.sortDirection).to.equal('desc');\n });\n\n it('should restore sort from URL (prefix format, desc)', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?sort=-date';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedSort).to.equal('date');\n expect(restorationState.sortDirection).to.equal('desc');\n });\n\n it('should restore sort from URL (prefix format, asc)', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?sort=date';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedSort).to.equal('date');\n expect(restorationState.sortDirection).to.equal('asc');\n });\n\n it('should restore sort from URL (space format)', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?sort=foo+desc';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedSort).to.equal('unrecognized');\n expect(restorationState.sortDirection).to.equal('desc');\n });\n\n it('should restore unrecognized sort from URL (prefix format)', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?sort=-foo';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const restorationState = handler.getRestorationState();\n expect(restorationState.selectedSort).to.equal('unrecognized');\n expect(restorationState.sortDirection).to.equal('desc');\n });\n\n it('should save direction to URL even for unrecognized sort fields', async () => {\n const url = new URL(window.location.href);\n url.search = '?sort=foo';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const handler = new RestorationStateHandler({ context: 'search' });\n handler.persistState({\n selectedSort: SortField.unrecognized,\n sortDirection: 'desc',\n selectedFacets: getDefaultSelectedFacets(),\n });\n\n expect(window.location.search).to.equal('?sort=-foo');\n });\n\n it('should keep existing direction for unrecognized sort fields when unspecified in state', async () => {\n const url = new URL(window.location.href);\n url.search = '?sort=foo+desc';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const handler = new RestorationStateHandler({ context: 'search' });\n handler.persistState({\n selectedSort: SortField.unrecognized,\n selectedFacets: getDefaultSelectedFacets(),\n });\n\n expect(window.location.search).to.equal('?sort=-foo');\n });\n\n it('should just ignore unrecognized sort fields w/ unknown formats', async () => {\n const url = new URL(window.location.href);\n url.search = '?sort=+foo';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const handler = new RestorationStateHandler({ context: 'search' });\n handler.persistState({\n selectedSort: SortField.unrecognized,\n selectedFacets: getDefaultSelectedFacets(),\n });\n\n expect(window.location.search).to.equal('?sort=+foo');\n });\n\n it('should not save current page state to the URL for page 1', async () => {\n const url = new URL(window.location.href);\n url.search = '';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const handler = new RestorationStateHandler({ context: 'search' });\n handler.persistState({\n currentPage: 1,\n selectedFacets: getDefaultSelectedFacets(),\n });\n\n expect(window.location.search).to.be.empty;\n });\n\n it('should save current page state to the URL when page > 1', async () => {\n const url = new URL(window.location.href);\n url.search = '';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const handler = new RestorationStateHandler({ context: 'search' });\n handler.persistState({\n currentPage: 2,\n selectedFacets: getDefaultSelectedFacets(),\n });\n\n expect(window.location.search).to.equal('?page=2');\n });\n\n it('should upgrade legacy search params to new ones', async () => {\n const url = new URL(window.location.href);\n url.search = '?q=foo';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const handler = new RestorationStateHandler({ context: 'search' });\n const restorationState = handler.getRestorationState();\n expect(restorationState.baseQuery).to.equal('foo');\n\n handler.persistState(restorationState);\n expect(window.location.search).to.equal('?query=foo');\n });\n\n it('should remove empty sin param', async () => {\n const url = new URL(window.location.href);\n url.search = '?sin=';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n const handler = new RestorationStateHandler({ context: 'search' });\n\n handler.persistState({ selectedFacets: getDefaultSelectedFacets() });\n expect(window.location.search).to.equal('');\n });\n\n it('round trip load/persist should erase numbers in square brackets', async () => {\n const handler = new RestorationStateHandler({ context: 'search' });\n\n const url = new URL(window.location.href);\n url.search = '?and[0]=subject:\"foo\"';\n window.history.replaceState({ path: url.href }, '', url.href);\n\n // Load state from the URL and immediately persist it back to the URL\n const restorationState = handler.getRestorationState();\n handler.persistState(restorationState);\n\n // Ensure the new URL includes the \"normalized\" facet parameter and not the numbered one\n expect(decodeURIComponent(window.location.search)).to.include(\n 'and[]=subject:\"foo\"',\n );\n expect(new URL(window.location.href).searchParams.get('and[0]')).to.be.null;\n });\n});\n"]}
@@ -1 +1 @@
1
- import '../src/tiles/review-block';
1
+ import '../src/tiles/review-block';
@@ -1,49 +1,48 @@
1
- /* eslint-disable import/no-duplicates */
2
- import { expect, fixture } from '@open-wc/testing';
3
- import { html } from 'lit';
4
- import '../src/tiles/review-block';
5
- describe('ReviewBlock component', () => {
6
- it('renders basic component', async () => {
7
- var _a, _b, _c, _d, _e, _f;
1
+ import { expect, fixture } from '@open-wc/testing';
2
+ import { html } from 'lit';
3
+ import '../src/tiles/review-block';
4
+ describe('ReviewBlock component', () => {
5
+ it('renders basic component', async () => {
6
+ var _a, _b, _c, _d, _e, _f;
8
7
  const el = await fixture(html `<review-block
9
8
  title="Foo"
10
9
  body="foo bar baz"
11
10
  starRating="3"
12
- ></review-block>`);
13
- el.title = 'Foo';
14
- await el.updateComplete;
15
- const container = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.review-container');
16
- expect(container).to.exist;
17
- const title = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.review-title');
18
- expect((_c = title === null || title === void 0 ? void 0 : title.textContent) === null || _c === void 0 ? void 0 : _c.trim()).to.equal('Foo');
19
- const body = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('.review-body');
20
- expect((_e = body === null || body === void 0 ? void 0 : body.textContent) === null || _e === void 0 ? void 0 : _e.trim()).to.equal('foo bar baz');
21
- const stars = (_f = el.shadowRoot) === null || _f === void 0 ? void 0 : _f.querySelector('.star-rating');
22
- expect(stars).to.exist;
23
- expect(stars === null || stars === void 0 ? void 0 : stars.querySelectorAll('svg').length).to.equal(5);
24
- expect(stars === null || stars === void 0 ? void 0 : stars.querySelectorAll('.unfilled-star').length).to.equal(2);
25
- });
26
- it('renders with any of title/body/stars', async () => {
27
- var _a, _b, _c, _d, _e, _f;
28
- const el = await fixture(html `<review-block></review-block>`);
29
- // No content if no title/body/stars
30
- expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.children.length).to.equal(0);
31
- el.title = 'Foo';
32
- await el.updateComplete;
33
- const title = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.review-title');
34
- expect((_c = title === null || title === void 0 ? void 0 : title.textContent) === null || _c === void 0 ? void 0 : _c.trim()).to.equal('Foo');
35
- el.title = '';
36
- el.body = 'foo bar baz';
37
- await el.updateComplete;
38
- const body = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('.review-body');
39
- expect((_e = body === null || body === void 0 ? void 0 : body.textContent) === null || _e === void 0 ? void 0 : _e.trim()).to.equal('foo bar baz');
40
- el.body = '';
41
- el.starRating = 4;
42
- await el.updateComplete;
43
- const stars = (_f = el.shadowRoot) === null || _f === void 0 ? void 0 : _f.querySelector('.star-rating');
44
- expect(stars).to.exist;
45
- expect(stars === null || stars === void 0 ? void 0 : stars.querySelectorAll('svg').length).to.equal(5);
46
- expect(stars === null || stars === void 0 ? void 0 : stars.querySelectorAll('.unfilled-star').length).to.equal(1);
47
- });
48
- });
11
+ ></review-block>`);
12
+ el.title = 'Foo';
13
+ await el.updateComplete;
14
+ const container = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.review-container');
15
+ expect(container).to.exist;
16
+ const title = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.review-title');
17
+ expect((_c = title === null || title === void 0 ? void 0 : title.textContent) === null || _c === void 0 ? void 0 : _c.trim()).to.equal('Foo');
18
+ const body = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('.review-body');
19
+ expect((_e = body === null || body === void 0 ? void 0 : body.textContent) === null || _e === void 0 ? void 0 : _e.trim()).to.equal('foo bar baz');
20
+ const stars = (_f = el.shadowRoot) === null || _f === void 0 ? void 0 : _f.querySelector('.star-rating');
21
+ expect(stars).to.exist;
22
+ expect(stars === null || stars === void 0 ? void 0 : stars.querySelectorAll('svg').length).to.equal(5);
23
+ expect(stars === null || stars === void 0 ? void 0 : stars.querySelectorAll('.unfilled-star').length).to.equal(2);
24
+ });
25
+ it('renders with any of title/body/stars', async () => {
26
+ var _a, _b, _c, _d, _e, _f;
27
+ const el = await fixture(html `<review-block></review-block>`);
28
+ // No content if no title/body/stars
29
+ expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.children.length).to.equal(0);
30
+ el.title = 'Foo';
31
+ await el.updateComplete;
32
+ const title = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.review-title');
33
+ expect((_c = title === null || title === void 0 ? void 0 : title.textContent) === null || _c === void 0 ? void 0 : _c.trim()).to.equal('Foo');
34
+ el.title = '';
35
+ el.body = 'foo bar baz';
36
+ await el.updateComplete;
37
+ const body = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('.review-body');
38
+ expect((_e = body === null || body === void 0 ? void 0 : body.textContent) === null || _e === void 0 ? void 0 : _e.trim()).to.equal('foo bar baz');
39
+ el.body = '';
40
+ el.starRating = 4;
41
+ await el.updateComplete;
42
+ const stars = (_f = el.shadowRoot) === null || _f === void 0 ? void 0 : _f.querySelector('.star-rating');
43
+ expect(stars).to.exist;
44
+ expect(stars === null || stars === void 0 ? void 0 : stars.querySelectorAll('svg').length).to.equal(5);
45
+ expect(stars === null || stars === void 0 ? void 0 : stars.querySelectorAll('.unfilled-star').length).to.equal(1);
46
+ });
47
+ });
49
48
  //# sourceMappingURL=review-block.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"review-block.test.js","sourceRoot":"","sources":["../../test/review-block.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-duplicates */\nimport { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport type { ReviewBlock } from '../src/tiles/review-block';\nimport '../src/tiles/review-block';\n\ndescribe('ReviewBlock component', () => {\n it('renders basic component', async () => {\n const el = await fixture<ReviewBlock>(\n html`<review-block\n title=\"Foo\"\n body=\"foo bar baz\"\n starRating=\"3\"\n ></review-block>`\n );\n\n el.title = 'Foo';\n await el.updateComplete;\n\n const container = el.shadowRoot?.querySelector('.review-container');\n expect(container).to.exist;\n\n const title = el.shadowRoot?.querySelector('.review-title');\n expect(title?.textContent?.trim()).to.equal('Foo');\n\n const body = el.shadowRoot?.querySelector('.review-body');\n expect(body?.textContent?.trim()).to.equal('foo bar baz');\n\n const stars = el.shadowRoot?.querySelector('.star-rating');\n expect(stars).to.exist;\n expect(stars?.querySelectorAll('svg').length).to.equal(5);\n expect(stars?.querySelectorAll('.unfilled-star').length).to.equal(2);\n });\n\n it('renders with any of title/body/stars', async () => {\n const el = await fixture<ReviewBlock>(html`<review-block></review-block>`);\n\n // No content if no title/body/stars\n expect(el.shadowRoot?.children.length).to.equal(0);\n\n el.title = 'Foo';\n await el.updateComplete;\n\n const title = el.shadowRoot?.querySelector('.review-title');\n expect(title?.textContent?.trim()).to.equal('Foo');\n\n el.title = '';\n el.body = 'foo bar baz';\n await el.updateComplete;\n\n const body = el.shadowRoot?.querySelector('.review-body');\n expect(body?.textContent?.trim()).to.equal('foo bar baz');\n\n el.body = '';\n el.starRating = 4;\n await el.updateComplete;\n\n const stars = el.shadowRoot?.querySelector('.star-rating');\n expect(stars).to.exist;\n expect(stars?.querySelectorAll('svg').length).to.equal(5);\n expect(stars?.querySelectorAll('.unfilled-star').length).to.equal(1);\n });\n});\n"]}
1
+ {"version":3,"file":"review-block.test.js","sourceRoot":"","sources":["../../test/review-block.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport type { ReviewBlock } from '../src/tiles/review-block';\nimport '../src/tiles/review-block';\n\ndescribe('ReviewBlock component', () => {\n it('renders basic component', async () => {\n const el = await fixture<ReviewBlock>(\n html`<review-block\n title=\"Foo\"\n body=\"foo bar baz\"\n starRating=\"3\"\n ></review-block>`,\n );\n\n el.title = 'Foo';\n await el.updateComplete;\n\n const container = el.shadowRoot?.querySelector('.review-container');\n expect(container).to.exist;\n\n const title = el.shadowRoot?.querySelector('.review-title');\n expect(title?.textContent?.trim()).to.equal('Foo');\n\n const body = el.shadowRoot?.querySelector('.review-body');\n expect(body?.textContent?.trim()).to.equal('foo bar baz');\n\n const stars = el.shadowRoot?.querySelector('.star-rating');\n expect(stars).to.exist;\n expect(stars?.querySelectorAll('svg').length).to.equal(5);\n expect(stars?.querySelectorAll('.unfilled-star').length).to.equal(2);\n });\n\n it('renders with any of title/body/stars', async () => {\n const el = await fixture<ReviewBlock>(html`<review-block></review-block>`);\n\n // No content if no title/body/stars\n expect(el.shadowRoot?.children.length).to.equal(0);\n\n el.title = 'Foo';\n await el.updateComplete;\n\n const title = el.shadowRoot?.querySelector('.review-title');\n expect(title?.textContent?.trim()).to.equal('Foo');\n\n el.title = '';\n el.body = 'foo bar baz';\n await el.updateComplete;\n\n const body = el.shadowRoot?.querySelector('.review-body');\n expect(body?.textContent?.trim()).to.equal('foo bar baz');\n\n el.body = '';\n el.starRating = 4;\n await el.updateComplete;\n\n const stars = el.shadowRoot?.querySelector('.star-rating');\n expect(stars).to.exist;\n expect(stars?.querySelectorAll('svg').length).to.equal(5);\n expect(stars?.querySelectorAll('.unfilled-star').length).to.equal(1);\n });\n});\n"]}
@@ -1 +1 @@
1
- import '../../src/sort-filter-bar/alpha-bar-tooltip';
1
+ import '../../src/sort-filter-bar/alpha-bar-tooltip';
@@ -1,13 +1,13 @@
1
- import { expect, fixture } from '@open-wc/testing';
2
- import { html } from 'lit';
3
- import '../../src/sort-filter-bar/alpha-bar-tooltip';
4
- describe('Alphabet Filter Bar Tooltips', () => {
5
- it('renders component', async () => {
6
- var _a, _b;
7
- const el = await fixture(html `<alpha-bar-tooltip .numResults=${42}></alpha-bar-tooltip>`);
8
- // Should render the number of results
9
- const tooltipText = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#tooltip-text');
10
- expect((_b = tooltipText === null || tooltipText === void 0 ? void 0 : tooltipText.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('42 results');
11
- });
12
- });
1
+ import { expect, fixture } from '@open-wc/testing';
2
+ import { html } from 'lit';
3
+ import '../../src/sort-filter-bar/alpha-bar-tooltip';
4
+ describe('Alphabet Filter Bar Tooltips', () => {
5
+ it('renders component', async () => {
6
+ var _a, _b;
7
+ const el = await fixture(html `<alpha-bar-tooltip .numResults=${42}></alpha-bar-tooltip>`);
8
+ // Should render the number of results
9
+ const tooltipText = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#tooltip-text');
10
+ expect((_b = tooltipText === null || tooltipText === void 0 ? void 0 : tooltipText.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('42 results');
11
+ });
12
+ });
13
13
  //# sourceMappingURL=alpha-bar-tooltip.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alpha-bar-tooltip.test.js","sourceRoot":"","sources":["../../../test/sort-filter-bar/alpha-bar-tooltip.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,6CAA6C,CAAC;AAErD,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;;QACjC,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,kCAAkC,EAAE,uBAAuB,CAChE,CAAC;QAEF,sCAAsC;QACtC,MAAM,WAAW,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QAClE,MAAM,CAAC,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport type { AlphaBarTooltip } from '../../src/sort-filter-bar/alpha-bar-tooltip';\n\nimport '../../src/sort-filter-bar/alpha-bar-tooltip';\n\ndescribe('Alphabet Filter Bar Tooltips', () => {\n it('renders component', async () => {\n const el = await fixture<AlphaBarTooltip>(\n html`<alpha-bar-tooltip .numResults=${42}></alpha-bar-tooltip>`\n );\n\n // Should render the number of results\n const tooltipText = el.shadowRoot?.querySelector('#tooltip-text');\n expect(tooltipText?.textContent?.trim()).to.equal('42 results');\n });\n});\n"]}
1
+ {"version":3,"file":"alpha-bar-tooltip.test.js","sourceRoot":"","sources":["../../../test/sort-filter-bar/alpha-bar-tooltip.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,6CAA6C,CAAC;AAErD,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;;QACjC,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,kCAAkC,EAAE,uBAAuB,CAChE,CAAC;QAEF,sCAAsC;QACtC,MAAM,WAAW,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QAClE,MAAM,CAAC,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport type { AlphaBarTooltip } from '../../src/sort-filter-bar/alpha-bar-tooltip';\n\nimport '../../src/sort-filter-bar/alpha-bar-tooltip';\n\ndescribe('Alphabet Filter Bar Tooltips', () => {\n it('renders component', async () => {\n const el = await fixture<AlphaBarTooltip>(\n html`<alpha-bar-tooltip .numResults=${42}></alpha-bar-tooltip>`,\n );\n\n // Should render the number of results\n const tooltipText = el.shadowRoot?.querySelector('#tooltip-text');\n expect(tooltipText?.textContent?.trim()).to.equal('42 results');\n });\n});\n"]}
@@ -1 +1 @@
1
- import '../../src/sort-filter-bar/alpha-bar';
1
+ import '../../src/sort-filter-bar/alpha-bar';
@@ -1,74 +1,74 @@
1
- import { aTimeout, expect, fixture } from '@open-wc/testing';
2
- import { html } from 'lit';
3
- import '../../src/sort-filter-bar/alpha-bar';
4
- describe('Alphabetical Filter Bar', () => {
5
- it('renders component', async () => {
6
- var _a;
7
- const el = await fixture(html `<alpha-bar></alpha-bar>`);
8
- // Should have all the letters
9
- const letters = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('li');
10
- expect(letters === null || letters === void 0 ? void 0 : letters.length).to.equal(26);
11
- });
12
- it('renders letters with items as buttons', async () => {
13
- var _a, _b, _c;
14
- const el = await fixture(html `<alpha-bar></alpha-bar>`);
15
- el.letterCounts = { U: 10, X: 10 };
16
- await el.updateComplete;
17
- // Should have exactly two letter buttons
18
- const letterButtons = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('li > button:not(:disabled)');
19
- expect(letterButtons === null || letterButtons === void 0 ? void 0 : letterButtons.length).to.equal(2);
20
- expect((_b = letterButtons === null || letterButtons === void 0 ? void 0 : letterButtons.item(0).textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('U');
21
- expect((_c = letterButtons === null || letterButtons === void 0 ? void 0 : letterButtons.item(1).textContent) === null || _c === void 0 ? void 0 : _c.trim()).to.equal('X');
22
- });
23
- it('renders letters without items as disabled buttons', async () => {
24
- var _a, _b, _c;
25
- const el = await fixture(html `<alpha-bar></alpha-bar>`);
26
- el.letterCounts = { U: 10, X: 10 };
27
- await el.updateComplete;
28
- // All but the two letters above should be disabled
29
- const letterButtons = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('li > button:disabled');
30
- expect(letterButtons === null || letterButtons === void 0 ? void 0 : letterButtons.length).to.equal(24);
31
- expect((_b = letterButtons === null || letterButtons === void 0 ? void 0 : letterButtons.item(0).textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('A');
32
- expect((_c = letterButtons === null || letterButtons === void 0 ? void 0 : letterButtons.item(23).textContent) === null || _c === void 0 ? void 0 : _c.trim()).to.equal('Z');
33
- });
34
- it('renders the selected letter with the "selected" class', async () => {
35
- var _a, _b;
36
- const el = await fixture(html `<alpha-bar></alpha-bar>`);
37
- el.selectedLetter = 'B';
38
- await el.updateComplete;
39
- const selectedLetter = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('li.selected');
40
- expect(selectedLetter).to.exist;
41
- expect((_b = selectedLetter === null || selectedLetter === void 0 ? void 0 : selectedLetter.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('B');
42
- });
43
- it('renders a tooltip when hovered and removes it when un-hovered', async () => {
44
- var _a, _b, _c;
45
- const el = await fixture(html `<alpha-bar></alpha-bar>`);
46
- const firstLetter = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('li');
47
- expect(firstLetter).to.exist;
48
- firstLetter.dispatchEvent(new MouseEvent('mousemove'));
49
- await el.updateComplete;
50
- const tooltip = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('alpha-bar-tooltip');
51
- expect(tooltip).to.exist;
52
- // Should be positioned after next tick
53
- await aTimeout(0);
54
- expect(tooltip.style.left).to.exist;
55
- firstLetter.dispatchEvent(new MouseEvent('mouseleave'));
56
- await el.updateComplete;
57
- expect((_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('alpha-bar-tooltip')).not.to.exist;
58
- });
59
- it('positions tooltip correctly when it would overflow viewport', async () => {
60
- var _a, _b;
61
- const el = await fixture(html `<alpha-bar></alpha-bar>`);
62
- const letters = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('li');
63
- const lastLetter = letters === null || letters === void 0 ? void 0 : letters.item(letters.length - 1);
64
- expect(lastLetter).to.exist;
65
- lastLetter.dispatchEvent(new MouseEvent('mousemove'));
66
- await el.updateComplete;
67
- const tooltip = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('alpha-bar-tooltip');
68
- expect(tooltip).to.exist;
69
- // Should be positioned after next tick, but not off-screen
70
- await aTimeout(0);
71
- expect(tooltip.getBoundingClientRect().right).to.be.lessThan(window.innerWidth);
72
- });
73
- });
1
+ import { aTimeout, expect, fixture } from '@open-wc/testing';
2
+ import { html } from 'lit';
3
+ import '../../src/sort-filter-bar/alpha-bar';
4
+ describe('Alphabetical Filter Bar', () => {
5
+ it('renders component', async () => {
6
+ var _a;
7
+ const el = await fixture(html `<alpha-bar></alpha-bar>`);
8
+ // Should have all the letters
9
+ const letters = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('li');
10
+ expect(letters === null || letters === void 0 ? void 0 : letters.length).to.equal(26);
11
+ });
12
+ it('renders letters with items as buttons', async () => {
13
+ var _a, _b, _c;
14
+ const el = await fixture(html `<alpha-bar></alpha-bar>`);
15
+ el.letterCounts = { U: 10, X: 10 };
16
+ await el.updateComplete;
17
+ // Should have exactly two letter buttons
18
+ const letterButtons = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('li > button:not(:disabled)');
19
+ expect(letterButtons === null || letterButtons === void 0 ? void 0 : letterButtons.length).to.equal(2);
20
+ expect((_b = letterButtons === null || letterButtons === void 0 ? void 0 : letterButtons.item(0).textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('U');
21
+ expect((_c = letterButtons === null || letterButtons === void 0 ? void 0 : letterButtons.item(1).textContent) === null || _c === void 0 ? void 0 : _c.trim()).to.equal('X');
22
+ });
23
+ it('renders letters without items as disabled buttons', async () => {
24
+ var _a, _b, _c;
25
+ const el = await fixture(html `<alpha-bar></alpha-bar>`);
26
+ el.letterCounts = { U: 10, X: 10 };
27
+ await el.updateComplete;
28
+ // All but the two letters above should be disabled
29
+ const letterButtons = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('li > button:disabled');
30
+ expect(letterButtons === null || letterButtons === void 0 ? void 0 : letterButtons.length).to.equal(24);
31
+ expect((_b = letterButtons === null || letterButtons === void 0 ? void 0 : letterButtons.item(0).textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('A');
32
+ expect((_c = letterButtons === null || letterButtons === void 0 ? void 0 : letterButtons.item(23).textContent) === null || _c === void 0 ? void 0 : _c.trim()).to.equal('Z');
33
+ });
34
+ it('renders the selected letter with the "selected" class', async () => {
35
+ var _a, _b;
36
+ const el = await fixture(html `<alpha-bar></alpha-bar>`);
37
+ el.selectedLetter = 'B';
38
+ await el.updateComplete;
39
+ const selectedLetter = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('li.selected');
40
+ expect(selectedLetter).to.exist;
41
+ expect((_b = selectedLetter === null || selectedLetter === void 0 ? void 0 : selectedLetter.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('B');
42
+ });
43
+ it('renders a tooltip when hovered and removes it when un-hovered', async () => {
44
+ var _a, _b, _c;
45
+ const el = await fixture(html `<alpha-bar></alpha-bar>`);
46
+ const firstLetter = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('li');
47
+ expect(firstLetter).to.exist;
48
+ firstLetter.dispatchEvent(new MouseEvent('mousemove'));
49
+ await el.updateComplete;
50
+ const tooltip = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('alpha-bar-tooltip');
51
+ expect(tooltip).to.exist;
52
+ // Should be positioned after next tick
53
+ await aTimeout(0);
54
+ expect(tooltip.style.left).to.exist;
55
+ firstLetter.dispatchEvent(new MouseEvent('mouseleave'));
56
+ await el.updateComplete;
57
+ expect((_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('alpha-bar-tooltip')).not.to.exist;
58
+ });
59
+ it('positions tooltip correctly when it would overflow viewport', async () => {
60
+ var _a, _b;
61
+ const el = await fixture(html `<alpha-bar></alpha-bar>`);
62
+ const letters = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('li');
63
+ const lastLetter = letters === null || letters === void 0 ? void 0 : letters.item(letters.length - 1);
64
+ expect(lastLetter).to.exist;
65
+ lastLetter.dispatchEvent(new MouseEvent('mousemove'));
66
+ await el.updateComplete;
67
+ const tooltip = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('alpha-bar-tooltip');
68
+ expect(tooltip).to.exist;
69
+ // Should be positioned after next tick, but not off-screen
70
+ await aTimeout(0);
71
+ expect(tooltip.getBoundingClientRect().right).to.be.lessThan(window.innerWidth);
72
+ });
73
+ });
74
74
  //# sourceMappingURL=alpha-bar.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alpha-bar.test.js","sourceRoot":"","sources":["../../../test/sort-filter-bar/alpha-bar.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,qCAAqC,CAAC;AAG7C,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;;QACjC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAW,IAAI,CAAA,yBAAyB,CAAC,CAAC;QAElE,8BAA8B;QAC9B,MAAM,OAAO,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAW,IAAI,CAAA,yBAAyB,CAAC,CAAC;QAElE,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QACnC,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,yCAAyC;QACzC,MAAM,aAAa,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,gBAAgB,CACnD,4BAA4B,CAC7B,CAAC;QACF,MAAM,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,CAAC,EAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,CAAC,EAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;;QACjE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAW,IAAI,CAAA,yBAAyB,CAAC,CAAC;QAElE,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QACnC,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,mDAAmD;QACnD,MAAM,aAAa,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,gBAAgB,CACnD,sBAAsB,CACvB,CAAC;QACF,MAAM,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,CAAC,EAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,EAAE,EAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;;QACrE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAW,IAAI,CAAA,yBAAyB,CAAC,CAAC;QAElE,EAAE,CAAC,cAAc,GAAG,GAAG,CAAC;QACxB,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,cAAc,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,aAAa,CAAC,CAAC;QACnE,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAChC,MAAM,CAAC,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;;QAC7E,MAAM,EAAE,GAAG,MAAM,OAAO,CAAW,IAAI,CAAA,yBAAyB,CAAC,CAAC;QAClE,MAAM,WAAW,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,IAAI,CAAkB,CAAC;QACxE,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAE7B,WAAW,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;QACvD,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,OAAO,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAC1C,mBAAmB,CACD,CAAC;QACrB,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAEzB,uCAAuC;QACvC,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAEpC,WAAW,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;QACxD,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,CAAC,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;;QAC3E,MAAM,EAAE,GAAG,MAAM,OAAO,CAAW,IAAI,CAAA,yBAAyB,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAkB,CAAC;QACtE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAE5B,UAAU,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;QACtD,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,OAAO,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAC1C,mBAAmB,CACD,CAAC;QACrB,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAEzB,2DAA2D;QAC3D,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClB,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAC1D,MAAM,CAAC,UAAU,CAClB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { aTimeout, expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport type { AlphaBar } from '../../src/sort-filter-bar/alpha-bar';\n\nimport '../../src/sort-filter-bar/alpha-bar';\nimport type { AlphaBarTooltip } from '../../src/sort-filter-bar/alpha-bar-tooltip';\n\ndescribe('Alphabetical Filter Bar', () => {\n it('renders component', async () => {\n const el = await fixture<AlphaBar>(html`<alpha-bar></alpha-bar>`);\n\n // Should have all the letters\n const letters = el.shadowRoot?.querySelectorAll('li');\n expect(letters?.length).to.equal(26);\n });\n\n it('renders letters with items as buttons', async () => {\n const el = await fixture<AlphaBar>(html`<alpha-bar></alpha-bar>`);\n\n el.letterCounts = { U: 10, X: 10 };\n await el.updateComplete;\n\n // Should have exactly two letter buttons\n const letterButtons = el.shadowRoot?.querySelectorAll(\n 'li > button:not(:disabled)'\n );\n expect(letterButtons?.length).to.equal(2);\n expect(letterButtons?.item(0).textContent?.trim()).to.equal('U');\n expect(letterButtons?.item(1).textContent?.trim()).to.equal('X');\n });\n\n it('renders letters without items as disabled buttons', async () => {\n const el = await fixture<AlphaBar>(html`<alpha-bar></alpha-bar>`);\n\n el.letterCounts = { U: 10, X: 10 };\n await el.updateComplete;\n\n // All but the two letters above should be disabled\n const letterButtons = el.shadowRoot?.querySelectorAll(\n 'li > button:disabled'\n );\n expect(letterButtons?.length).to.equal(24);\n expect(letterButtons?.item(0).textContent?.trim()).to.equal('A');\n expect(letterButtons?.item(23).textContent?.trim()).to.equal('Z');\n });\n\n it('renders the selected letter with the \"selected\" class', async () => {\n const el = await fixture<AlphaBar>(html`<alpha-bar></alpha-bar>`);\n\n el.selectedLetter = 'B';\n await el.updateComplete;\n\n const selectedLetter = el.shadowRoot?.querySelector('li.selected');\n expect(selectedLetter).to.exist;\n expect(selectedLetter?.textContent?.trim()).to.equal('B');\n });\n\n it('renders a tooltip when hovered and removes it when un-hovered', async () => {\n const el = await fixture<AlphaBar>(html`<alpha-bar></alpha-bar>`);\n const firstLetter = el.shadowRoot?.querySelector('li') as HTMLLIElement;\n expect(firstLetter).to.exist;\n\n firstLetter.dispatchEvent(new MouseEvent('mousemove'));\n await el.updateComplete;\n\n const tooltip = el.shadowRoot?.querySelector(\n 'alpha-bar-tooltip'\n ) as AlphaBarTooltip;\n expect(tooltip).to.exist;\n\n // Should be positioned after next tick\n await aTimeout(0);\n expect(tooltip.style.left).to.exist;\n\n firstLetter.dispatchEvent(new MouseEvent('mouseleave'));\n await el.updateComplete;\n\n expect(el.shadowRoot?.querySelector('alpha-bar-tooltip')).not.to.exist;\n });\n\n it('positions tooltip correctly when it would overflow viewport', async () => {\n const el = await fixture<AlphaBar>(html`<alpha-bar></alpha-bar>`);\n const letters = el.shadowRoot?.querySelectorAll('li');\n const lastLetter = letters?.item(letters.length - 1) as HTMLLIElement;\n expect(lastLetter).to.exist;\n\n lastLetter.dispatchEvent(new MouseEvent('mousemove'));\n await el.updateComplete;\n\n const tooltip = el.shadowRoot?.querySelector(\n 'alpha-bar-tooltip'\n ) as AlphaBarTooltip;\n expect(tooltip).to.exist;\n\n // Should be positioned after next tick, but not off-screen\n await aTimeout(0);\n expect(tooltip.getBoundingClientRect().right).to.be.lessThan(\n window.innerWidth\n );\n });\n});\n"]}
1
+ {"version":3,"file":"alpha-bar.test.js","sourceRoot":"","sources":["../../../test/sort-filter-bar/alpha-bar.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { aTimeout, expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport type { AlphaBar } from '../../src/sort-filter-bar/alpha-bar';\n\nimport '../../src/sort-filter-bar/alpha-bar';\nimport type { AlphaBarTooltip } from '../../src/sort-filter-bar/alpha-bar-tooltip';\n\ndescribe('Alphabetical Filter Bar', () => {\n it('renders component', async () => {\n const el = await fixture<AlphaBar>(html`<alpha-bar></alpha-bar>`);\n\n // Should have all the letters\n const letters = el.shadowRoot?.querySelectorAll('li');\n expect(letters?.length).to.equal(26);\n });\n\n it('renders letters with items as buttons', async () => {\n const el = await fixture<AlphaBar>(html`<alpha-bar></alpha-bar>`);\n\n el.letterCounts = { U: 10, X: 10 };\n await el.updateComplete;\n\n // Should have exactly two letter buttons\n const letterButtons = el.shadowRoot?.querySelectorAll(\n 'li > button:not(:disabled)',\n );\n expect(letterButtons?.length).to.equal(2);\n expect(letterButtons?.item(0).textContent?.trim()).to.equal('U');\n expect(letterButtons?.item(1).textContent?.trim()).to.equal('X');\n });\n\n it('renders letters without items as disabled buttons', async () => {\n const el = await fixture<AlphaBar>(html`<alpha-bar></alpha-bar>`);\n\n el.letterCounts = { U: 10, X: 10 };\n await el.updateComplete;\n\n // All but the two letters above should be disabled\n const letterButtons = el.shadowRoot?.querySelectorAll(\n 'li > button:disabled',\n );\n expect(letterButtons?.length).to.equal(24);\n expect(letterButtons?.item(0).textContent?.trim()).to.equal('A');\n expect(letterButtons?.item(23).textContent?.trim()).to.equal('Z');\n });\n\n it('renders the selected letter with the \"selected\" class', async () => {\n const el = await fixture<AlphaBar>(html`<alpha-bar></alpha-bar>`);\n\n el.selectedLetter = 'B';\n await el.updateComplete;\n\n const selectedLetter = el.shadowRoot?.querySelector('li.selected');\n expect(selectedLetter).to.exist;\n expect(selectedLetter?.textContent?.trim()).to.equal('B');\n });\n\n it('renders a tooltip when hovered and removes it when un-hovered', async () => {\n const el = await fixture<AlphaBar>(html`<alpha-bar></alpha-bar>`);\n const firstLetter = el.shadowRoot?.querySelector('li') as HTMLLIElement;\n expect(firstLetter).to.exist;\n\n firstLetter.dispatchEvent(new MouseEvent('mousemove'));\n await el.updateComplete;\n\n const tooltip = el.shadowRoot?.querySelector(\n 'alpha-bar-tooltip',\n ) as AlphaBarTooltip;\n expect(tooltip).to.exist;\n\n // Should be positioned after next tick\n await aTimeout(0);\n expect(tooltip.style.left).to.exist;\n\n firstLetter.dispatchEvent(new MouseEvent('mouseleave'));\n await el.updateComplete;\n\n expect(el.shadowRoot?.querySelector('alpha-bar-tooltip')).not.to.exist;\n });\n\n it('positions tooltip correctly when it would overflow viewport', async () => {\n const el = await fixture<AlphaBar>(html`<alpha-bar></alpha-bar>`);\n const letters = el.shadowRoot?.querySelectorAll('li');\n const lastLetter = letters?.item(letters.length - 1) as HTMLLIElement;\n expect(lastLetter).to.exist;\n\n lastLetter.dispatchEvent(new MouseEvent('mousemove'));\n await el.updateComplete;\n\n const tooltip = el.shadowRoot?.querySelector(\n 'alpha-bar-tooltip',\n ) as AlphaBarTooltip;\n expect(tooltip).to.exist;\n\n // Should be positioned after next tick, but not off-screen\n await aTimeout(0);\n expect(tooltip.getBoundingClientRect().right).to.be.lessThan(\n window.innerWidth,\n );\n });\n});\n"]}
@@ -1 +1 @@
1
- import '../../src/sort-filter-bar/sort-filter-bar';
1
+ import '../../src/sort-filter-bar/sort-filter-bar';