@internetarchive/collection-browser 2.7.7-alpha.1 → 2.7.7

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