@internetarchive/collection-browser 1.14.17-beta.5 → 1.14.18-alpha.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 (352) hide show
  1. package/.editorconfig +29 -29
  2. package/.husky/pre-commit +4 -4
  3. package/LICENSE +661 -661
  4. package/README.md +83 -83
  5. package/dist/index.d.ts +12 -11
  6. package/dist/index.js +12 -11
  7. package/dist/index.js.map +1 -1
  8. package/dist/src/app-root.d.ts +83 -83
  9. package/dist/src/app-root.js +438 -489
  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/login-required.d.ts +1 -1
  30. package/dist/src/assets/img/icons/login-required.js +2 -2
  31. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  32. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  33. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  34. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  35. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  36. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  37. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  38. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  39. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  40. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  41. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  42. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  43. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  44. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  45. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  46. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  47. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
  48. package/dist/src/assets/img/icons/mediatype/search.js +2 -2
  49. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  50. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  51. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  52. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  53. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  54. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  55. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  56. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  57. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  58. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  59. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  60. package/dist/src/assets/img/icons/null-result.js +2 -2
  61. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  62. package/dist/src/assets/img/icons/restricted.js +2 -2
  63. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  64. package/dist/src/assets/img/icons/reviews.js +2 -2
  65. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  66. package/dist/src/assets/img/icons/upload.js +2 -2
  67. package/dist/src/assets/img/icons/views.d.ts +1 -1
  68. package/dist/src/assets/img/icons/views.js +2 -2
  69. package/dist/src/circular-activity-indicator.d.ts +5 -5
  70. package/dist/src/circular-activity-indicator.js +17 -17
  71. package/dist/src/collection-browser.d.ts +384 -406
  72. package/dist/src/collection-browser.js +1342 -1363
  73. package/dist/src/collection-browser.js.map +1 -1
  74. package/dist/src/collection-facets/facet-row.d.ts +30 -30
  75. package/dist/src/collection-facets/facet-row.js +114 -114
  76. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  77. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  78. package/dist/src/collection-facets/facets-template.d.ts +17 -17
  79. package/dist/src/collection-facets/facets-template.js +114 -114
  80. package/dist/src/collection-facets/more-facets-content.d.ts +70 -70
  81. package/dist/src/collection-facets/more-facets-content.js +354 -369
  82. package/dist/src/collection-facets/more-facets-content.js.map +1 -1
  83. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  84. package/dist/src/collection-facets/more-facets-pagination.js +196 -196
  85. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  86. package/dist/src/collection-facets/toggle-switch.js +94 -94
  87. package/dist/src/collection-facets.d.ts +103 -103
  88. package/dist/src/collection-facets.js +513 -510
  89. package/dist/src/collection-facets.js.map +1 -1
  90. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +217 -0
  91. package/dist/src/data-source/collection-browser-data-source-interface.js +2 -0
  92. package/dist/src/data-source/collection-browser-data-source-interface.js.map +1 -0
  93. package/dist/src/data-source/collection-browser-data-source.d.ts +352 -434
  94. package/dist/src/data-source/collection-browser-data-source.js +911 -800
  95. package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
  96. package/dist/src/data-source/collection-browser-query-state.d.ts +43 -0
  97. package/dist/src/data-source/collection-browser-query-state.js +2 -0
  98. package/dist/src/data-source/collection-browser-query-state.js.map +1 -0
  99. package/dist/src/data-source/models.d.ts +28 -62
  100. package/dist/src/data-source/models.js +8 -1
  101. package/dist/src/data-source/models.js.map +1 -1
  102. package/dist/src/empty-placeholder.d.ts +23 -23
  103. package/dist/src/empty-placeholder.js +74 -74
  104. package/dist/src/expanded-date-picker.d.ts +43 -43
  105. package/dist/src/expanded-date-picker.js +109 -109
  106. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  107. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  108. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  109. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  110. package/dist/src/manage/manage-bar.d.ts +26 -26
  111. package/dist/src/manage/manage-bar.js +53 -53
  112. package/dist/src/manage/manage-bar.js.map +1 -1
  113. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  114. package/dist/src/mediatype/mediatype-config.js +91 -91
  115. package/dist/src/models.d.ts +197 -180
  116. package/dist/src/models.js +380 -269
  117. package/dist/src/models.js.map +1 -1
  118. package/dist/src/restoration-state-handler.d.ts +70 -70
  119. package/dist/src/restoration-state-handler.js +355 -355
  120. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  121. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  122. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  123. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  124. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  125. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  126. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  127. package/dist/src/sort-filter-bar/img/list.js +2 -2
  128. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  129. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  130. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  131. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  132. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  133. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  134. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  135. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  136. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  137. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  138. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +210 -210
  139. package/dist/src/sort-filter-bar/sort-filter-bar.js +653 -652
  140. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  141. package/dist/src/styles/item-image-styles.d.ts +8 -8
  142. package/dist/src/styles/item-image-styles.js +9 -9
  143. package/dist/src/styles/sr-only.d.ts +1 -1
  144. package/dist/src/styles/sr-only.js +2 -2
  145. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  146. package/dist/src/tiles/base-tile-component.js +63 -63
  147. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  148. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  149. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  150. package/dist/src/tiles/grid/account-tile.js +72 -72
  151. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  152. package/dist/src/tiles/grid/collection-tile.js +80 -80
  153. package/dist/src/tiles/grid/item-tile.d.ts +28 -27
  154. package/dist/src/tiles/grid/item-tile.js +162 -135
  155. package/dist/src/tiles/grid/item-tile.js.map +1 -1
  156. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  157. package/dist/src/tiles/grid/search-tile.js +51 -51
  158. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  159. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  160. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  161. package/dist/src/tiles/grid/tile-stats.js +58 -53
  162. package/dist/src/tiles/grid/tile-stats.js.map +1 -1
  163. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  164. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  165. package/dist/src/tiles/hover/tile-hover-pane.d.ts +15 -15
  166. package/dist/src/tiles/hover/tile-hover-pane.js +38 -38
  167. package/dist/src/tiles/image-block.d.ts +17 -17
  168. package/dist/src/tiles/image-block.js +73 -73
  169. package/dist/src/tiles/item-image.d.ts +39 -36
  170. package/dist/src/tiles/item-image.js +155 -127
  171. package/dist/src/tiles/item-image.js.map +1 -1
  172. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  173. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  174. package/dist/src/tiles/list/tile-list-compact.d.ts +15 -15
  175. package/dist/src/tiles/list/tile-list-compact.js +115 -115
  176. package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
  177. package/dist/src/tiles/list/tile-list.d.ts +47 -46
  178. package/dist/src/tiles/list/tile-list.js +327 -296
  179. package/dist/src/tiles/list/tile-list.js.map +1 -1
  180. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  181. package/dist/src/tiles/mediatype-icon.js +47 -47
  182. package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
  183. package/dist/src/tiles/overlay/icon-overlay.js +40 -40
  184. package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
  185. package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
  186. package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
  187. package/dist/src/tiles/overlay/text-overlay.js +42 -42
  188. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  189. package/dist/src/tiles/text-snippet-block.js +73 -73
  190. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  191. package/dist/src/tiles/tile-dispatcher.js +232 -231
  192. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  193. package/dist/src/tiles/tile-display-value-provider.d.ts +47 -43
  194. package/dist/src/tiles/tile-display-value-provider.js +94 -80
  195. package/dist/src/tiles/tile-display-value-provider.js.map +1 -1
  196. package/dist/src/utils/analytics-events.d.ts +25 -25
  197. package/dist/src/utils/analytics-events.js +27 -27
  198. package/dist/src/utils/array-equals.d.ts +4 -4
  199. package/dist/src/utils/array-equals.js +10 -10
  200. package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -0
  201. package/dist/src/utils/collapse-repeated-quotes.js +14 -0
  202. package/dist/src/utils/collapse-repeated-quotes.js.map +1 -0
  203. package/dist/src/utils/format-count.d.ts +7 -7
  204. package/dist/src/utils/format-count.js +76 -76
  205. package/dist/src/utils/format-date.d.ts +2 -2
  206. package/dist/src/utils/format-date.js +25 -25
  207. package/dist/src/utils/format-unit-size.d.ts +2 -2
  208. package/dist/src/utils/format-unit-size.js +33 -33
  209. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  210. package/dist/src/utils/local-date-from-utc.js +15 -15
  211. package/dist/src/utils/log.d.ts +7 -0
  212. package/dist/src/utils/log.js +16 -0
  213. package/dist/src/utils/log.js.map +1 -0
  214. package/dist/src/utils/resolve-mediatype.d.ts +8 -0
  215. package/dist/src/utils/resolve-mediatype.js +24 -0
  216. package/dist/src/utils/resolve-mediatype.js.map +1 -0
  217. package/dist/src/utils/sha1.d.ts +2 -2
  218. package/dist/src/utils/sha1.js +8 -8
  219. package/dist/test/collection-browser.test.d.ts +1 -1
  220. package/dist/test/collection-browser.test.js +1211 -1149
  221. package/dist/test/collection-browser.test.js.map +1 -1
  222. package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
  223. package/dist/test/collection-facets/facet-row.test.js +203 -203
  224. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  225. package/dist/test/collection-facets/facets-template.test.js +105 -105
  226. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  227. package/dist/test/collection-facets/more-facets-content.test.js +133 -133
  228. package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
  229. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  230. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  231. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  232. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  233. package/dist/test/collection-facets.test.d.ts +2 -2
  234. package/dist/test/collection-facets.test.js +653 -648
  235. package/dist/test/collection-facets.test.js.map +1 -1
  236. package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -0
  237. package/dist/test/data-source/collection-browser-data-source.test.js +80 -0
  238. package/dist/test/data-source/collection-browser-data-source.test.js.map +1 -0
  239. package/dist/test/empty-placeholder.test.d.ts +1 -1
  240. package/dist/test/empty-placeholder.test.js +63 -63
  241. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  242. package/dist/test/expanded-date-picker.test.js +95 -95
  243. package/dist/test/icon-overlay.test.d.ts +1 -1
  244. package/dist/test/icon-overlay.test.js +24 -24
  245. package/dist/test/image-block.test.d.ts +1 -1
  246. package/dist/test/image-block.test.js +48 -48
  247. package/dist/test/item-image.test.d.ts +1 -1
  248. package/dist/test/item-image.test.js +85 -86
  249. package/dist/test/item-image.test.js.map +1 -1
  250. package/dist/test/manage/manage-bar.test.d.ts +1 -1
  251. package/dist/test/manage/manage-bar.test.js +72 -72
  252. package/dist/test/mediatype-config.test.d.ts +1 -1
  253. package/dist/test/mediatype-config.test.js +16 -16
  254. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  255. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  256. package/dist/test/mocks/mock-search-responses.d.ts +24 -21
  257. package/dist/test/mocks/mock-search-responses.js +840 -709
  258. package/dist/test/mocks/mock-search-responses.js.map +1 -1
  259. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  260. package/dist/test/mocks/mock-search-service.js +53 -50
  261. package/dist/test/mocks/mock-search-service.js.map +1 -1
  262. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  263. package/dist/test/restoration-state-handler.test.js +270 -270
  264. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  265. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  266. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  267. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  268. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  269. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +418 -418
  270. package/dist/test/text-overlay.test.d.ts +1 -1
  271. package/dist/test/text-overlay.test.js +48 -48
  272. package/dist/test/text-snippet-block.test.d.ts +1 -1
  273. package/dist/test/text-snippet-block.test.js +57 -57
  274. package/dist/test/tile-stats.test.d.ts +1 -1
  275. package/dist/test/tile-stats.test.js +95 -33
  276. package/dist/test/tile-stats.test.js.map +1 -1
  277. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  278. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  279. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  280. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  281. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  282. package/dist/test/tiles/grid/item-tile.test.js +298 -254
  283. package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
  284. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  285. package/dist/test/tiles/grid/search-tile.test.js +51 -51
  286. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  287. package/dist/test/tiles/hover/hover-pane-controller.test.js +259 -258
  288. package/dist/test/tiles/hover/hover-pane-controller.test.js.map +1 -1
  289. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  290. package/dist/test/tiles/hover/tile-hover-pane.test.js +13 -13
  291. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  292. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  293. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  294. package/dist/test/tiles/list/tile-list.test.js +283 -239
  295. package/dist/test/tiles/list/tile-list.test.js.map +1 -1
  296. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  297. package/dist/test/tiles/tile-dispatcher.test.js +106 -94
  298. package/dist/test/tiles/tile-dispatcher.test.js.map +1 -1
  299. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  300. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  301. package/dist/test/utils/array-equals.test.d.ts +1 -1
  302. package/dist/test/utils/array-equals.test.js +26 -26
  303. package/dist/test/utils/format-count.test.d.ts +1 -1
  304. package/dist/test/utils/format-count.test.js +23 -23
  305. package/dist/test/utils/format-date.test.d.ts +1 -1
  306. package/dist/test/utils/format-date.test.js +17 -17
  307. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  308. package/dist/test/utils/format-unit-size.test.js +17 -17
  309. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  310. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  311. package/index.ts +3 -5
  312. package/local.archive.org.cert +86 -86
  313. package/local.archive.org.key +27 -27
  314. package/package.json +3 -4
  315. package/renovate.json +6 -6
  316. package/src/app-root.ts +30 -85
  317. package/src/collection-browser.ts +112 -139
  318. package/src/collection-facets/more-facets-content.ts +0 -19
  319. package/src/collection-facets.ts +6 -4
  320. package/src/data-source/collection-browser-data-source-interface.ts +272 -0
  321. package/src/data-source/collection-browser-data-source.ts +314 -379
  322. package/src/data-source/collection-browser-query-state.ts +54 -0
  323. package/src/data-source/models.ts +8 -45
  324. package/src/manage/manage-bar.ts +1 -1
  325. package/src/models.ts +164 -3
  326. package/src/sort-filter-bar/sort-filter-bar.ts +2 -1
  327. package/src/tiles/grid/item-tile.ts +36 -1
  328. package/src/tiles/grid/tile-stats.ts +12 -7
  329. package/src/tiles/item-image.ts +28 -0
  330. package/src/tiles/list/tile-list-compact.ts +1 -1
  331. package/src/tiles/list/tile-list.ts +43 -5
  332. package/src/tiles/tile-dispatcher.ts +2 -1
  333. package/src/tiles/tile-display-value-provider.ts +20 -2
  334. package/src/utils/collapse-repeated-quotes.ts +13 -0
  335. package/src/utils/log.ts +16 -0
  336. package/src/utils/resolve-mediatype.ts +26 -0
  337. package/test/collection-browser.test.ts +161 -50
  338. package/test/collection-facets/more-facets-content.test.ts +4 -2
  339. package/test/collection-facets.test.ts +5 -0
  340. package/test/data-source/collection-browser-data-source.test.ts +103 -0
  341. package/test/item-image.test.ts +34 -36
  342. package/test/mocks/mock-search-responses.ts +144 -0
  343. package/test/mocks/mock-search-service.ts +6 -0
  344. package/test/tile-stats.test.ts +104 -0
  345. package/test/tiles/grid/item-tile.test.ts +55 -0
  346. package/test/tiles/hover/hover-pane-controller.test.ts +19 -17
  347. package/test/tiles/list/tile-list.test.ts +55 -0
  348. package/test/tiles/tile-dispatcher.test.ts +13 -0
  349. package/tsconfig.json +21 -21
  350. package/web-dev-server.config.mjs +30 -30
  351. package/web-test-runner.config.mjs +41 -41
  352. package/types/sentry.d.ts +0 -1
@@ -1,454 +1,454 @@
1
- /* eslint-disable import/no-duplicates */
2
- import { expect, fixture } from '@open-wc/testing';
3
- import sinon from 'sinon';
4
- import { html } from 'lit';
5
- import { SharedResizeObserver } from '@internetarchive/shared-resize-observer';
6
- import '../../src/sort-filter-bar/sort-filter-bar';
7
- describe('Sort selector default buttons', async () => {
8
- var _a;
1
+ /* eslint-disable import/no-duplicates */
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import sinon from 'sinon';
4
+ import { html } from 'lit';
5
+ import { SharedResizeObserver } from '@internetarchive/shared-resize-observer';
6
+ import '../../src/sort-filter-bar/sort-filter-bar';
7
+ describe('Sort selector default buttons', async () => {
8
+ var _a;
9
9
  const el = await fixture(html `
10
10
  <sort-filter-bar> </sort-filter-bar>
11
- `);
12
- const sortSelectorContainer = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#sort-selector-container');
13
- const desktopSortSelector = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.querySelector('#desktop-sort-selector');
14
- beforeEach(async () => {
15
- el.resizeObserver = new SharedResizeObserver();
16
- await el.updateComplete;
17
- });
18
- afterEach(async () => {
19
- el.resizeObserver = undefined;
20
- await el.updateComplete;
21
- });
22
- it('should render basic component', async () => {
23
- expect(sortSelectorContainer).to.exist;
24
- expect(desktopSortSelector).to.exist;
25
- });
26
- it('should render sort-by label', async () => {
27
- var _a, _b;
28
- const sortByLabel = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.sort-by-text');
29
- expect(sortByLabel).to.exist;
30
- expect((_b = sortByLabel === null || sortByLabel === void 0 ? void 0 : sortByLabel.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Sort by:');
31
- });
32
- it('should render sort direction button', async () => {
33
- var _a;
34
- const sortDirections = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.sort-direction-container');
35
- expect(sortDirections).to.exist;
36
- expect(sortDirections === null || sortDirections === void 0 ? void 0 : sortDirections.querySelector('.sort-direction-icon')).to.exist;
37
- });
38
- it('should not render relevance-sort selector if showRelevance is false', async () => {
39
- var _a;
40
- el.showRelevance = false;
41
- await el.updateComplete;
42
- const defaultSortSelector = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelector('button.selected');
43
- expect((_a = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _a === void 0 ? void 0 : _a.trim()).not.to.equal('Relevance');
44
- });
45
- it('should render default relevance-sort selector', async () => {
46
- var _a;
47
- el.showRelevance = true;
48
- await el.updateComplete;
49
- const defaultSortSelector = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelector('button.selected');
50
- expect((_a = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _a === void 0 ? void 0 : _a.trim()).to.equal('Relevance');
51
- });
52
- it('should render default view-sort selector', async () => {
53
- var _a, _b;
54
- const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
55
- expect((_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Weekly views');
56
- });
57
- it('should render active view-sort selectors', async () => {
58
- var _a;
59
- el.selectedSort = 'alltimeview';
60
- await el.updateComplete;
61
- const defaultSortSelector = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelector('ia-dropdown.selected');
62
- expect((_a = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _a === void 0 ? void 0 : _a.trim()).to.equal('All-time views');
63
- });
64
- it('should render default title-sort selector', async () => {
65
- var _a, _b;
66
- const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(2)) === null || _a === void 0 ? void 0 : _a.querySelector('button');
67
- expect((_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Title');
68
- });
69
- it('should render default date-sort selector', async () => {
70
- var _a, _b;
71
- const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
72
- expect((_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Date published');
73
- });
74
- it('should render active date-sort selectors', async () => {
75
- var _a;
76
- el.selectedSort = 'datereviewed';
77
- await el.updateComplete;
78
- const defaultSortSelector = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelector('ia-dropdown.selected');
79
- expect((_a = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _a === void 0 ? void 0 : _a.trim()).to.equal('Date reviewed');
80
- });
81
- it('should render default creator-sort selector', async () => {
82
- var _a, _b;
83
- const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(4)) === null || _a === void 0 ? void 0 : _a.querySelector('button');
84
- expect((_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Creator');
85
- });
86
- it('handles click event on view-sort selector', async () => {
87
- var _a;
88
- const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('.dropdown-label');
89
- defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click();
90
- await el.updateComplete;
91
- expect(el.selectedSort).to.equal('weeklyview');
92
- });
93
- it('handles click event on title selector', async () => {
94
- var _a;
95
- const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(2)) === null || _a === void 0 ? void 0 : _a.querySelector('button');
96
- defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click();
97
- await el.updateComplete;
98
- expect(el.selectedSort).to.equal('title');
99
- });
100
- it('handles click event on date-sort selector', async () => {
101
- var _a;
102
- const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('.dropdown-label');
103
- defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click();
104
- await el.updateComplete;
105
- expect(el.selectedSort).to.equal('date');
106
- });
107
- it('handles click event on creator selector', async () => {
108
- var _a;
109
- const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(4)) === null || _a === void 0 ? void 0 : _a.querySelector('button');
110
- defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click();
111
- await el.updateComplete;
112
- expect(el.selectedSort).to.equal('creator');
113
- });
114
- it('handles click event on relevance selector', async () => {
115
- var _a;
116
- const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(0)) === null || _a === void 0 ? void 0 : _a.querySelector('button');
117
- defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click();
118
- await el.updateComplete;
119
- expect(el.selectedSort).to.equal('relevance');
120
- });
121
- it('handles return/space key event on view-sort selector', async () => {
122
- var _a;
123
- const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('.dropdown-label');
124
- el.selectedSort = 'relevance';
125
- const enterEvent = new KeyboardEvent('keydown', { key: 'Enter' });
126
- defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.dispatchEvent(enterEvent);
127
- await el.updateComplete;
128
- expect(el.selectedSort).to.equal('weeklyview');
129
- el.selectedSort = 'relevance';
130
- const spaceEvent = new KeyboardEvent('keydown', { key: ' ' });
131
- defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.dispatchEvent(spaceEvent);
132
- await el.updateComplete;
133
- expect(el.selectedSort).to.equal('weeklyview');
134
- });
135
- it('handles return/space key event on date-sort selector', async () => {
136
- var _a;
137
- const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('.dropdown-label');
138
- el.selectedSort = 'relevance';
139
- const enterEvent = new KeyboardEvent('keydown', { key: 'Enter' });
140
- defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.dispatchEvent(enterEvent);
141
- await el.updateComplete;
142
- expect(el.selectedSort).to.equal('date');
143
- el.selectedSort = 'relevance';
144
- const spaceEvent = new KeyboardEvent('keydown', { key: ' ' });
145
- defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.dispatchEvent(spaceEvent);
146
- await el.updateComplete;
147
- expect(el.selectedSort).to.equal('date');
148
- });
149
- it('handles click event on view-sort dropdown option', async () => {
150
- var _a, _b;
151
- const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
152
- const firstOption = (_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('li > button');
153
- expect(firstOption).to.exist;
154
- firstOption === null || firstOption === void 0 ? void 0 : firstOption.click();
155
- await el.updateComplete;
156
- expect(el.selectedSort).to.equal('weeklyview');
157
- });
158
- it('handles click event on date-sort dropdown option', async () => {
159
- var _a, _b;
160
- const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
161
- const firstOption = (_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('li > button');
162
- expect(firstOption).to.exist;
163
- firstOption === null || firstOption === void 0 ? void 0 : firstOption.click();
164
- await el.updateComplete;
165
- expect(el.selectedSort).to.equal('date');
166
- });
167
- it('shows view sort selector backdrop when view sort open', async () => {
168
- var _a, _b, _c, _d;
169
- const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
170
- const caret = (_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.caret');
171
- expect(caret).to.exist;
172
- caret === null || caret === void 0 ? void 0 : caret.click();
173
- await el.updateComplete;
174
- let backdrop = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#sort-selector-backdrop');
175
- expect(backdrop).to.exist;
176
- backdrop === null || backdrop === void 0 ? void 0 : backdrop.click();
177
- await el.updateComplete;
178
- backdrop = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#sort-selector-backdrop');
179
- expect(backdrop).not.to.exist;
180
- });
181
- it('shows date sort selector backdrop when date sort open', async () => {
182
- var _a, _b, _c, _d;
183
- const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
184
- const caret = (_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.caret');
185
- expect(caret).to.exist;
186
- caret === null || caret === void 0 ? void 0 : caret.click();
187
- await el.updateComplete;
188
- let backdrop = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#sort-selector-backdrop');
189
- expect(backdrop).to.exist;
190
- backdrop === null || backdrop === void 0 ? void 0 : backdrop.click();
191
- await el.updateComplete;
192
- backdrop = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#sort-selector-backdrop');
193
- expect(backdrop).not.to.exist;
194
- });
195
- it('closes dropdown by hitting escape key', async () => {
196
- var _a, _b, _c, _d;
197
- const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
198
- const caret = (_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.caret');
199
- expect(caret).to.exist;
200
- caret === null || caret === void 0 ? void 0 : caret.click();
201
- await el.updateComplete;
202
- let backdrop = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#sort-selector-backdrop');
203
- expect(backdrop).to.exist;
204
- document.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape' }));
205
- await el.updateComplete;
206
- backdrop = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#sort-selector-backdrop');
207
- expect(backdrop).not.to.exist;
208
- });
209
- });
210
- describe('Sort direction button behavior', () => {
211
- it('should disable sort direction button when sorting by relevance', async () => {
212
- var _a;
11
+ `);
12
+ const sortSelectorContainer = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#sort-selector-container');
13
+ const desktopSortSelector = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.querySelector('#desktop-sort-selector');
14
+ beforeEach(async () => {
15
+ el.resizeObserver = new SharedResizeObserver();
16
+ await el.updateComplete;
17
+ });
18
+ afterEach(async () => {
19
+ el.resizeObserver = undefined;
20
+ await el.updateComplete;
21
+ });
22
+ it('should render basic component', async () => {
23
+ expect(sortSelectorContainer).to.exist;
24
+ expect(desktopSortSelector).to.exist;
25
+ });
26
+ it('should render sort-by label', async () => {
27
+ var _a, _b;
28
+ const sortByLabel = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.sort-by-text');
29
+ expect(sortByLabel).to.exist;
30
+ expect((_b = sortByLabel === null || sortByLabel === void 0 ? void 0 : sortByLabel.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Sort by:');
31
+ });
32
+ it('should render sort direction button', async () => {
33
+ var _a;
34
+ const sortDirections = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.sort-direction-container');
35
+ expect(sortDirections).to.exist;
36
+ expect(sortDirections === null || sortDirections === void 0 ? void 0 : sortDirections.querySelector('.sort-direction-icon')).to.exist;
37
+ });
38
+ it('should not render relevance-sort selector if showRelevance is false', async () => {
39
+ var _a;
40
+ el.showRelevance = false;
41
+ await el.updateComplete;
42
+ const defaultSortSelector = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelector('button.selected');
43
+ expect((_a = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _a === void 0 ? void 0 : _a.trim()).not.to.equal('Relevance');
44
+ });
45
+ it('should render default relevance-sort selector', async () => {
46
+ var _a;
47
+ el.showRelevance = true;
48
+ await el.updateComplete;
49
+ const defaultSortSelector = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelector('button.selected');
50
+ expect((_a = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _a === void 0 ? void 0 : _a.trim()).to.equal('Relevance');
51
+ });
52
+ it('should render default view-sort selector', async () => {
53
+ var _a, _b;
54
+ const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
55
+ expect((_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Weekly views');
56
+ });
57
+ it('should render active view-sort selectors', async () => {
58
+ var _a;
59
+ el.selectedSort = 'alltimeview';
60
+ await el.updateComplete;
61
+ const defaultSortSelector = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelector('ia-dropdown.selected');
62
+ expect((_a = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _a === void 0 ? void 0 : _a.trim()).to.equal('All-time views');
63
+ });
64
+ it('should render default title-sort selector', async () => {
65
+ var _a, _b;
66
+ const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(2)) === null || _a === void 0 ? void 0 : _a.querySelector('button');
67
+ expect((_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Title');
68
+ });
69
+ it('should render default date-sort selector', async () => {
70
+ var _a, _b;
71
+ const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
72
+ expect((_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Date published');
73
+ });
74
+ it('should render active date-sort selectors', async () => {
75
+ var _a;
76
+ el.selectedSort = 'datereviewed';
77
+ await el.updateComplete;
78
+ const defaultSortSelector = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelector('ia-dropdown.selected');
79
+ expect((_a = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _a === void 0 ? void 0 : _a.trim()).to.equal('Date reviewed');
80
+ });
81
+ it('should render default creator-sort selector', async () => {
82
+ var _a, _b;
83
+ const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(4)) === null || _a === void 0 ? void 0 : _a.querySelector('button');
84
+ expect((_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Creator');
85
+ });
86
+ it('handles click event on view-sort selector', async () => {
87
+ var _a;
88
+ const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('.dropdown-label');
89
+ defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click();
90
+ await el.updateComplete;
91
+ expect(el.selectedSort).to.equal('weeklyview');
92
+ });
93
+ it('handles click event on title selector', async () => {
94
+ var _a;
95
+ const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(2)) === null || _a === void 0 ? void 0 : _a.querySelector('button');
96
+ defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click();
97
+ await el.updateComplete;
98
+ expect(el.selectedSort).to.equal('title');
99
+ });
100
+ it('handles click event on date-sort selector', async () => {
101
+ var _a;
102
+ const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('.dropdown-label');
103
+ defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click();
104
+ await el.updateComplete;
105
+ expect(el.selectedSort).to.equal('date');
106
+ });
107
+ it('handles click event on creator selector', async () => {
108
+ var _a;
109
+ const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(4)) === null || _a === void 0 ? void 0 : _a.querySelector('button');
110
+ defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click();
111
+ await el.updateComplete;
112
+ expect(el.selectedSort).to.equal('creator');
113
+ });
114
+ it('handles click event on relevance selector', async () => {
115
+ var _a;
116
+ const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(0)) === null || _a === void 0 ? void 0 : _a.querySelector('button');
117
+ defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click();
118
+ await el.updateComplete;
119
+ expect(el.selectedSort).to.equal('relevance');
120
+ });
121
+ it('handles return/space key event on view-sort selector', async () => {
122
+ var _a;
123
+ const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('.dropdown-label');
124
+ el.selectedSort = 'relevance';
125
+ const enterEvent = new KeyboardEvent('keydown', { key: 'Enter' });
126
+ defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.dispatchEvent(enterEvent);
127
+ await el.updateComplete;
128
+ expect(el.selectedSort).to.equal('weeklyview');
129
+ el.selectedSort = 'relevance';
130
+ const spaceEvent = new KeyboardEvent('keydown', { key: ' ' });
131
+ defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.dispatchEvent(spaceEvent);
132
+ await el.updateComplete;
133
+ expect(el.selectedSort).to.equal('weeklyview');
134
+ });
135
+ it('handles return/space key event on date-sort selector', async () => {
136
+ var _a;
137
+ const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('.dropdown-label');
138
+ el.selectedSort = 'relevance';
139
+ const enterEvent = new KeyboardEvent('keydown', { key: 'Enter' });
140
+ defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.dispatchEvent(enterEvent);
141
+ await el.updateComplete;
142
+ expect(el.selectedSort).to.equal('date');
143
+ el.selectedSort = 'relevance';
144
+ const spaceEvent = new KeyboardEvent('keydown', { key: ' ' });
145
+ defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.dispatchEvent(spaceEvent);
146
+ await el.updateComplete;
147
+ expect(el.selectedSort).to.equal('date');
148
+ });
149
+ it('handles click event on view-sort dropdown option', async () => {
150
+ var _a, _b;
151
+ const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
152
+ const firstOption = (_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('li > button');
153
+ expect(firstOption).to.exist;
154
+ firstOption === null || firstOption === void 0 ? void 0 : firstOption.click();
155
+ await el.updateComplete;
156
+ expect(el.selectedSort).to.equal('weeklyview');
157
+ });
158
+ it('handles click event on date-sort dropdown option', async () => {
159
+ var _a, _b;
160
+ const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
161
+ const firstOption = (_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('li > button');
162
+ expect(firstOption).to.exist;
163
+ firstOption === null || firstOption === void 0 ? void 0 : firstOption.click();
164
+ await el.updateComplete;
165
+ expect(el.selectedSort).to.equal('date');
166
+ });
167
+ it('shows view sort selector backdrop when view sort open', async () => {
168
+ var _a, _b, _c, _d;
169
+ const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
170
+ const caret = (_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.caret');
171
+ expect(caret).to.exist;
172
+ caret === null || caret === void 0 ? void 0 : caret.click();
173
+ await el.updateComplete;
174
+ let backdrop = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#sort-selector-backdrop');
175
+ expect(backdrop).to.exist;
176
+ backdrop === null || backdrop === void 0 ? void 0 : backdrop.click();
177
+ await el.updateComplete;
178
+ backdrop = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#sort-selector-backdrop');
179
+ expect(backdrop).not.to.exist;
180
+ });
181
+ it('shows date sort selector backdrop when date sort open', async () => {
182
+ var _a, _b, _c, _d;
183
+ const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
184
+ const caret = (_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.caret');
185
+ expect(caret).to.exist;
186
+ caret === null || caret === void 0 ? void 0 : caret.click();
187
+ await el.updateComplete;
188
+ let backdrop = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#sort-selector-backdrop');
189
+ expect(backdrop).to.exist;
190
+ backdrop === null || backdrop === void 0 ? void 0 : backdrop.click();
191
+ await el.updateComplete;
192
+ backdrop = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#sort-selector-backdrop');
193
+ expect(backdrop).not.to.exist;
194
+ });
195
+ it('closes dropdown by hitting escape key', async () => {
196
+ var _a, _b, _c, _d;
197
+ const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
198
+ const caret = (_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.caret');
199
+ expect(caret).to.exist;
200
+ caret === null || caret === void 0 ? void 0 : caret.click();
201
+ await el.updateComplete;
202
+ let backdrop = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#sort-selector-backdrop');
203
+ expect(backdrop).to.exist;
204
+ document.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape' }));
205
+ await el.updateComplete;
206
+ backdrop = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#sort-selector-backdrop');
207
+ expect(backdrop).not.to.exist;
208
+ });
209
+ });
210
+ describe('Sort direction button behavior', () => {
211
+ it('should disable sort direction button when sorting by relevance', async () => {
212
+ var _a;
213
213
  const el = await fixture(html `
214
214
  <sort-filter-bar> </sort-filter-bar>
215
- `);
216
- el.selectedSort = 'relevance';
217
- await el.updateComplete;
218
- const sortDirectionButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.sort-direction-selector');
219
- expect(sortDirectionButton).to.exist;
220
- expect(sortDirectionButton.disabled).to.be.true;
221
- });
222
- it('should enable sort direction button when not sorting by relevance', async () => {
223
- var _a;
215
+ `);
216
+ el.selectedSort = 'relevance';
217
+ await el.updateComplete;
218
+ const sortDirectionButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.sort-direction-selector');
219
+ expect(sortDirectionButton).to.exist;
220
+ expect(sortDirectionButton.disabled).to.be.true;
221
+ });
222
+ it('should enable sort direction button when not sorting by relevance', async () => {
223
+ var _a;
224
224
  const el = await fixture(html `
225
225
  <sort-filter-bar> </sort-filter-bar>
226
- `);
227
- el.selectedSort = 'title';
228
- await el.updateComplete;
229
- const sortDirectionButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.sort-direction-selector');
230
- expect(sortDirectionButton).to.exist;
231
- expect(sortDirectionButton.disabled).to.be.false;
232
- });
233
- it('should toggle sort direction when clicked', async () => {
234
- var _a;
226
+ `);
227
+ el.selectedSort = 'title';
228
+ await el.updateComplete;
229
+ const sortDirectionButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.sort-direction-selector');
230
+ expect(sortDirectionButton).to.exist;
231
+ expect(sortDirectionButton.disabled).to.be.false;
232
+ });
233
+ it('should toggle sort direction when clicked', async () => {
234
+ var _a;
235
235
  const el = await fixture(html `
236
236
  <sort-filter-bar> </sort-filter-bar>
237
- `);
238
- el.selectedSort = 'title';
239
- el.sortDirection = 'asc';
240
- await el.updateComplete;
241
- const sortDirectionButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.sort-direction-selector');
242
- sortDirectionButton.click();
243
- await el.updateComplete;
244
- expect(el.sortDirection).to.equal('desc');
245
- sortDirectionButton.click();
246
- await el.updateComplete;
247
- expect(el.sortDirection).to.equal('asc');
248
- });
249
- });
250
- describe('Display mode/style buttons', () => {
251
- it('should render all display mode buttons', async () => {
252
- var _a, _b, _c, _d, _e;
237
+ `);
238
+ el.selectedSort = 'title';
239
+ el.sortDirection = 'asc';
240
+ await el.updateComplete;
241
+ const sortDirectionButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.sort-direction-selector');
242
+ sortDirectionButton.click();
243
+ await el.updateComplete;
244
+ expect(el.sortDirection).to.equal('desc');
245
+ sortDirectionButton.click();
246
+ await el.updateComplete;
247
+ expect(el.sortDirection).to.equal('asc');
248
+ });
249
+ });
250
+ describe('Display mode/style buttons', () => {
251
+ it('should render all display mode buttons', async () => {
252
+ var _a, _b, _c, _d, _e;
253
253
  const el = await fixture(html `
254
254
  <sort-filter-bar> </sort-filter-bar>
255
- `);
256
- const displayModeButtonList = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#display-style-selector')) === null || _b === void 0 ? void 0 : _b.querySelector('ul');
257
- const gridButton = (_c = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(0)) === null || _c === void 0 ? void 0 : _c.querySelector('#grid-button');
258
- expect(gridButton).to.exist;
259
- const detailListButton = (_d = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(1)) === null || _d === void 0 ? void 0 : _d.querySelector('#list-detail-button');
260
- expect(detailListButton).to.exist;
261
- const compactListButton = (_e = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(2)) === null || _e === void 0 ? void 0 : _e.querySelector('#list-compact-button');
262
- expect(compactListButton).to.exist;
263
- });
264
- it('should active current display mode', async () => {
265
- var _a, _b, _c;
255
+ `);
256
+ const displayModeButtonList = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#display-style-selector')) === null || _b === void 0 ? void 0 : _b.querySelector('ul');
257
+ const gridButton = (_c = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(0)) === null || _c === void 0 ? void 0 : _c.querySelector('#grid-button');
258
+ expect(gridButton).to.exist;
259
+ const detailListButton = (_d = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(1)) === null || _d === void 0 ? void 0 : _d.querySelector('#list-detail-button');
260
+ expect(detailListButton).to.exist;
261
+ const compactListButton = (_e = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(2)) === null || _e === void 0 ? void 0 : _e.querySelector('#list-compact-button');
262
+ expect(compactListButton).to.exist;
263
+ });
264
+ it('should active current display mode', async () => {
265
+ var _a, _b, _c;
266
266
  const el = await fixture(html `
267
267
  <sort-filter-bar> </sort-filter-bar>
268
- `);
269
- el.displayMode = 'grid';
270
- await el.updateComplete;
271
- const displayModeTitle = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#display-style-selector')) === null || _b === void 0 ? void 0 : _b.querySelector('button.active')) === null || _c === void 0 ? void 0 : _c.getAttribute('title');
272
- expect(displayModeTitle).to.equal('Tile view');
273
- });
274
- it('should change displayMode prop to the one clicked', async () => {
275
- var _a, _b, _c;
268
+ `);
269
+ el.displayMode = 'grid';
270
+ await el.updateComplete;
271
+ const displayModeTitle = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#display-style-selector')) === null || _b === void 0 ? void 0 : _b.querySelector('button.active')) === null || _c === void 0 ? void 0 : _c.getAttribute('title');
272
+ expect(displayModeTitle).to.equal('Tile view');
273
+ });
274
+ it('should change displayMode prop to the one clicked', async () => {
275
+ var _a, _b, _c;
276
276
  const el = await fixture(html `
277
277
  <sort-filter-bar> </sort-filter-bar>
278
- `);
279
- el.displayMode = 'grid';
280
- await el.updateComplete;
281
- const extendedListButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#list-detail-button');
282
- extendedListButton.click();
283
- await el.updateComplete;
284
- expect(el.displayMode).to.equal('list-detail');
285
- const compactListButton = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#list-compact-button');
286
- compactListButton.click();
287
- await el.updateComplete;
288
- expect(el.displayMode).to.equal('list-compact');
289
- const gridModeButton = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#grid-button');
290
- gridModeButton.click();
291
- await el.updateComplete;
292
- expect(el.displayMode).to.equal('grid');
293
- });
294
- });
295
- describe('Sort/filter bar letter behavior', () => {
296
- it('sets the selected title letter when clicked', async () => {
297
- var _a, _b, _c;
278
+ `);
279
+ el.displayMode = 'grid';
280
+ await el.updateComplete;
281
+ const extendedListButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#list-detail-button');
282
+ extendedListButton.click();
283
+ await el.updateComplete;
284
+ expect(el.displayMode).to.equal('list-detail');
285
+ const compactListButton = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#list-compact-button');
286
+ compactListButton.click();
287
+ await el.updateComplete;
288
+ expect(el.displayMode).to.equal('list-compact');
289
+ const gridModeButton = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#grid-button');
290
+ gridModeButton.click();
291
+ await el.updateComplete;
292
+ expect(el.displayMode).to.equal('grid');
293
+ });
294
+ });
295
+ describe('Sort/filter bar letter behavior', () => {
296
+ it('sets the selected title letter when clicked', async () => {
297
+ var _a, _b, _c;
298
298
  const el = await fixture(html `
299
299
  <sort-filter-bar></sort-filter-bar>
300
- `);
301
- el.selectedSort = 'title';
302
- el.prefixFilterCountMap = { title: { T: 1 }, creator: {} };
303
- await el.updateComplete;
304
- const alphaBar = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('alpha-bar');
305
- const letterLink = (_b = alphaBar === null || alphaBar === void 0 ? void 0 : alphaBar.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('li > button:not(:disabled)');
306
- expect((_c = letterLink === null || letterLink === void 0 ? void 0 : letterLink.textContent) === null || _c === void 0 ? void 0 : _c.trim()).to.equal('T');
307
- letterLink === null || letterLink === void 0 ? void 0 : letterLink.click();
308
- await el.updateComplete;
309
- expect(el.selectedTitleFilter).to.equal('T');
310
- });
311
- it('sets the selected creator letter when clicked', async () => {
312
- var _a, _b, _c;
300
+ `);
301
+ el.selectedSort = 'title';
302
+ el.prefixFilterCountMap = { title: { T: 1 }, creator: {} };
303
+ await el.updateComplete;
304
+ const alphaBar = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('alpha-bar');
305
+ const letterLink = (_b = alphaBar === null || alphaBar === void 0 ? void 0 : alphaBar.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('li > button:not(:disabled)');
306
+ expect((_c = letterLink === null || letterLink === void 0 ? void 0 : letterLink.textContent) === null || _c === void 0 ? void 0 : _c.trim()).to.equal('T');
307
+ letterLink === null || letterLink === void 0 ? void 0 : letterLink.click();
308
+ await el.updateComplete;
309
+ expect(el.selectedTitleFilter).to.equal('T');
310
+ });
311
+ it('sets the selected creator letter when clicked', async () => {
312
+ var _a, _b, _c;
313
313
  const el = await fixture(html `
314
314
  <sort-filter-bar></sort-filter-bar>
315
- `);
316
- el.selectedSort = 'creator';
317
- el.prefixFilterCountMap = { title: {}, creator: { C: 1 } };
318
- await el.updateComplete;
319
- const alphaBar = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('alpha-bar');
320
- const letterLink = (_b = alphaBar === null || alphaBar === void 0 ? void 0 : alphaBar.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('li > button:not(:disabled)');
321
- expect((_c = letterLink === null || letterLink === void 0 ? void 0 : letterLink.textContent) === null || _c === void 0 ? void 0 : _c.trim()).to.equal('C');
322
- letterLink === null || letterLink === void 0 ? void 0 : letterLink.click();
323
- await el.updateComplete;
324
- expect(el.selectedCreatorFilter).to.equal('C');
325
- });
326
- });
327
- describe('Sort/filter bar mobile view', () => {
328
- let origWindowSize;
329
- before(() => {
330
- origWindowSize = { width: window.innerWidth, height: window.innerHeight };
331
- window.resizeTo(500, 600);
332
- });
333
- after(() => {
334
- window.resizeTo(origWindowSize.width, origWindowSize.height);
335
- });
336
- it('renders in mobile view', async () => {
337
- var _a, _b, _c, _d;
315
+ `);
316
+ el.selectedSort = 'creator';
317
+ el.prefixFilterCountMap = { title: {}, creator: { C: 1 } };
318
+ await el.updateComplete;
319
+ const alphaBar = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('alpha-bar');
320
+ const letterLink = (_b = alphaBar === null || alphaBar === void 0 ? void 0 : alphaBar.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('li > button:not(:disabled)');
321
+ expect((_c = letterLink === null || letterLink === void 0 ? void 0 : letterLink.textContent) === null || _c === void 0 ? void 0 : _c.trim()).to.equal('C');
322
+ letterLink === null || letterLink === void 0 ? void 0 : letterLink.click();
323
+ await el.updateComplete;
324
+ expect(el.selectedCreatorFilter).to.equal('C');
325
+ });
326
+ });
327
+ describe('Sort/filter bar mobile view', () => {
328
+ let origWindowSize;
329
+ before(() => {
330
+ origWindowSize = { width: window.innerWidth, height: window.innerHeight };
331
+ window.resizeTo(500, 600);
332
+ });
333
+ after(() => {
334
+ window.resizeTo(origWindowSize.width, origWindowSize.height);
335
+ });
336
+ it('renders in mobile view', async () => {
337
+ var _a, _b, _c, _d;
338
338
  const el = await fixture(html `
339
339
  <sort-filter-bar></sort-filter-bar>
340
- `);
341
- const mobileSortContainer = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#mobile-sort-container');
342
- const desktopSortContainer = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#desktop-sort-container');
343
- expect((_c = mobileSortContainer === null || mobileSortContainer === void 0 ? void 0 : mobileSortContainer.classList) === null || _c === void 0 ? void 0 : _c.contains('visible')).to.be.true;
344
- expect((_d = desktopSortContainer === null || desktopSortContainer === void 0 ? void 0 : desktopSortContainer.classList) === null || _d === void 0 ? void 0 : _d.contains('hidden')).to.be.true;
345
- });
346
- it('changes selected sort in mobile view', async () => {
347
- var _a;
340
+ `);
341
+ const mobileSortContainer = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#mobile-sort-container');
342
+ const desktopSortContainer = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#desktop-sort-container');
343
+ expect((_c = mobileSortContainer === null || mobileSortContainer === void 0 ? void 0 : mobileSortContainer.classList) === null || _c === void 0 ? void 0 : _c.contains('visible')).to.be.true;
344
+ expect((_d = desktopSortContainer === null || desktopSortContainer === void 0 ? void 0 : desktopSortContainer.classList) === null || _d === void 0 ? void 0 : _d.contains('hidden')).to.be.true;
345
+ });
346
+ it('changes selected sort in mobile view', async () => {
347
+ var _a;
348
348
  const el = await fixture(html `
349
349
  <sort-filter-bar></sort-filter-bar>
350
- `);
351
- const mobileDropdown = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#mobile-dropdown');
352
- expect(mobileDropdown).to.exist;
353
- mobileDropdown.selectedOption = 'title';
354
- const option = { id: 'title' };
355
- mobileDropdown.dispatchEvent(new CustomEvent('optionSelected', { detail: { option } }));
356
- await el.updateComplete;
357
- expect(el.selectedSort).to.equal('title');
358
- });
359
- it('clears title filter when sort changed from title in mobile view', async () => {
360
- var _a;
350
+ `);
351
+ const mobileDropdown = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#mobile-dropdown');
352
+ expect(mobileDropdown).to.exist;
353
+ mobileDropdown.selectedOption = 'title';
354
+ const option = { id: 'title' };
355
+ mobileDropdown.dispatchEvent(new CustomEvent('optionSelected', { detail: { option } }));
356
+ await el.updateComplete;
357
+ expect(el.selectedSort).to.equal('title');
358
+ });
359
+ it('clears title filter when sort changed from title in mobile view', async () => {
360
+ var _a;
361
361
  const el = await fixture(html `
362
362
  <sort-filter-bar></sort-filter-bar>
363
- `);
364
- el.selectedSort = 'title';
365
- el.selectedTitleFilter = 'A';
366
- await el.updateComplete;
367
- const mobileDropdown = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#mobile-dropdown');
368
- expect(mobileDropdown).to.exist;
369
- mobileDropdown.selectedOption = 'relevance';
370
- const option = { id: 'relevance' };
371
- mobileDropdown.dispatchEvent(new CustomEvent('optionSelected', { detail: { option } }));
372
- await el.updateComplete;
373
- expect(el.selectedSort).to.equal('relevance');
374
- expect(el.selectedTitleFilter).to.be.null;
375
- });
376
- it('clears creator filter when sort changed from creator in mobile view', async () => {
377
- var _a;
363
+ `);
364
+ el.selectedSort = 'title';
365
+ el.selectedTitleFilter = 'A';
366
+ await el.updateComplete;
367
+ const mobileDropdown = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#mobile-dropdown');
368
+ expect(mobileDropdown).to.exist;
369
+ mobileDropdown.selectedOption = 'relevance';
370
+ const option = { id: 'relevance' };
371
+ mobileDropdown.dispatchEvent(new CustomEvent('optionSelected', { detail: { option } }));
372
+ await el.updateComplete;
373
+ expect(el.selectedSort).to.equal('relevance');
374
+ expect(el.selectedTitleFilter).to.be.null;
375
+ });
376
+ it('clears creator filter when sort changed from creator in mobile view', async () => {
377
+ var _a;
378
378
  const el = await fixture(html `
379
379
  <sort-filter-bar></sort-filter-bar>
380
- `);
381
- el.selectedSort = 'creator';
382
- el.selectedCreatorFilter = 'A';
383
- await el.updateComplete;
384
- const mobileDropdown = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#mobile-dropdown');
385
- expect(mobileDropdown).to.exist;
386
- mobileDropdown.selectedOption = 'relevance';
387
- const option = { id: 'relevance' };
388
- mobileDropdown.dispatchEvent(new CustomEvent('optionSelected', { detail: { option } }));
389
- await el.updateComplete;
390
- expect(el.selectedSort).to.equal('relevance');
391
- expect(el.selectedCreatorFilter).to.be.null;
392
- });
393
- it('shows sort selector backdrop when mobile sort open', async () => {
394
- var _a, _b, _c, _d;
380
+ `);
381
+ el.selectedSort = 'creator';
382
+ el.selectedCreatorFilter = 'A';
383
+ await el.updateComplete;
384
+ const mobileDropdown = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#mobile-dropdown');
385
+ expect(mobileDropdown).to.exist;
386
+ mobileDropdown.selectedOption = 'relevance';
387
+ const option = { id: 'relevance' };
388
+ mobileDropdown.dispatchEvent(new CustomEvent('optionSelected', { detail: { option } }));
389
+ await el.updateComplete;
390
+ expect(el.selectedSort).to.equal('relevance');
391
+ expect(el.selectedCreatorFilter).to.be.null;
392
+ });
393
+ it('shows sort selector backdrop when mobile sort open', async () => {
394
+ var _a, _b, _c, _d;
395
395
  const el = await fixture(html `
396
396
  <sort-filter-bar></sort-filter-bar>
397
- `);
398
- const mobileDropdown = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#mobile-dropdown');
399
- expect(mobileDropdown).to.exist;
400
- const caret = (_b = mobileDropdown === null || mobileDropdown === void 0 ? void 0 : mobileDropdown.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.caret');
401
- expect(caret).to.exist;
402
- caret === null || caret === void 0 ? void 0 : caret.click();
403
- await el.updateComplete;
404
- let backdrop = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#sort-selector-backdrop');
405
- expect(backdrop).to.exist;
406
- backdrop === null || backdrop === void 0 ? void 0 : backdrop.click();
407
- await el.updateComplete;
408
- backdrop = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#sort-selector-backdrop');
409
- expect(backdrop).not.to.exist;
410
- });
411
- it('shows loansTab top-bar slot Default View', async () => {
412
- var _a;
413
- const resizeStub = new SharedResizeObserver();
414
- const addSpy = sinon.spy(resizeStub, 'addObserver');
415
- const removeSpy = sinon.spy(resizeStub, 'removeObserver');
397
+ `);
398
+ const mobileDropdown = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#mobile-dropdown');
399
+ expect(mobileDropdown).to.exist;
400
+ const caret = (_b = mobileDropdown === null || mobileDropdown === void 0 ? void 0 : mobileDropdown.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.caret');
401
+ expect(caret).to.exist;
402
+ caret === null || caret === void 0 ? void 0 : caret.click();
403
+ await el.updateComplete;
404
+ let backdrop = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#sort-selector-backdrop');
405
+ expect(backdrop).to.exist;
406
+ backdrop === null || backdrop === void 0 ? void 0 : backdrop.click();
407
+ await el.updateComplete;
408
+ backdrop = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#sort-selector-backdrop');
409
+ expect(backdrop).not.to.exist;
410
+ });
411
+ it('shows loansTab top-bar slot Default View', async () => {
412
+ var _a;
413
+ const resizeStub = new SharedResizeObserver();
414
+ const addSpy = sinon.spy(resizeStub, 'addObserver');
415
+ const removeSpy = sinon.spy(resizeStub, 'removeObserver');
416
416
  const el = await fixture(html `
417
417
  <sort-filter-bar .resizeObserver=${resizeStub}></sort-filter-bar>
418
- `);
419
- // this element exists
420
- expect((_a = el === null || el === void 0 ? void 0 : el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#sort-selector-container')).to.exist;
421
- // loads & unloads twice when [re]setting ResizeObserver
422
- expect(addSpy.callCount).to.equal(2);
423
- const resizeStub2 = new SharedResizeObserver();
424
- el.resizeObserver = resizeStub2;
425
- await el.updateComplete;
426
- expect(removeSpy.callCount).to.equal(2);
427
- });
428
- it('shows loansTab top-bar slot Custom Slotted View', async () => {
429
- var _a, _b;
430
- const resizeStub = new SharedResizeObserver();
431
- const addSpy = sinon.spy(resizeStub, 'addObserver');
432
- const removeSpy = sinon.spy(resizeStub, 'removeObserver');
418
+ `);
419
+ // this element exists
420
+ expect((_a = el === null || el === void 0 ? void 0 : el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#sort-selector-container')).to.exist;
421
+ // loads & unloads twice when [re]setting ResizeObserver
422
+ expect(addSpy.callCount).to.equal(2);
423
+ const resizeStub2 = new SharedResizeObserver();
424
+ el.resizeObserver = resizeStub2;
425
+ await el.updateComplete;
426
+ expect(removeSpy.callCount).to.equal(2);
427
+ });
428
+ it('shows loansTab top-bar slot Custom Slotted View', async () => {
429
+ var _a, _b;
430
+ const resizeStub = new SharedResizeObserver();
431
+ const addSpy = sinon.spy(resizeStub, 'addObserver');
432
+ const removeSpy = sinon.spy(resizeStub, 'removeObserver');
433
433
  const el = await fixture(html `
434
434
  <sort-filter-bar
435
435
  .resizeObserver=${resizeStub}
436
436
  .showLoansTopBar=${true}
437
437
  ></sort-filter-bar>
438
- `);
439
- await el.updateComplete;
440
- // slot exists
441
- const loansTabSlot = (_a = el === null || el === void 0 ? void 0 : el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot');
442
- expect(loansTabSlot).to.exist;
443
- // sort bar does not exist
444
- expect((_b = el === null || el === void 0 ? void 0 : el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#sort-selector-container')).to.not
445
- .exist;
446
- const resizeStub2 = new SharedResizeObserver();
447
- el.resizeObserver = resizeStub2;
448
- await el.updateComplete;
449
- // there's no need for resize observer
450
- expect(addSpy.callCount).to.equal(0);
451
- expect(removeSpy.callCount).to.equal(0);
452
- });
453
- });
438
+ `);
439
+ await el.updateComplete;
440
+ // slot exists
441
+ const loansTabSlot = (_a = el === null || el === void 0 ? void 0 : el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot');
442
+ expect(loansTabSlot).to.exist;
443
+ // sort bar does not exist
444
+ expect((_b = el === null || el === void 0 ? void 0 : el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#sort-selector-container')).to.not
445
+ .exist;
446
+ const resizeStub2 = new SharedResizeObserver();
447
+ el.resizeObserver = resizeStub2;
448
+ await el.updateComplete;
449
+ // there's no need for resize observer
450
+ expect(addSpy.callCount).to.equal(0);
451
+ expect(removeSpy.callCount).to.equal(0);
452
+ });
453
+ });
454
454
  //# sourceMappingURL=sort-filter-bar.test.js.map