@internetarchive/collection-browser 2.7.7-alpha.2 → 2.7.8-alpha1

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 (304) hide show
  1. package/.github/workflows/ci.yml +3 -3
  2. package/dist/index.js +2 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/app-root.d.ts +9 -1
  5. package/dist/src/app-root.js +40 -6
  6. package/dist/src/app-root.js.map +1 -1
  7. package/dist/src/assets/img/icons/arrow-left.d.ts +1 -1
  8. package/dist/src/assets/img/icons/arrow-right.d.ts +1 -1
  9. package/dist/src/assets/img/icons/chevron.d.ts +1 -1
  10. package/dist/src/assets/img/icons/contract.d.ts +1 -1
  11. package/dist/src/assets/img/icons/empty-query.d.ts +1 -1
  12. package/dist/src/assets/img/icons/expand.d.ts +1 -1
  13. package/dist/src/assets/img/icons/eye-closed.d.ts +1 -1
  14. package/dist/src/assets/img/icons/eye.d.ts +1 -1
  15. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  16. package/dist/src/assets/img/icons/favorite-unfilled.d.ts +1 -1
  17. package/dist/src/assets/img/icons/filter.d.ts +1 -1
  18. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  19. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  20. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  21. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  22. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  23. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  24. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  25. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  26. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  27. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
  28. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  29. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  30. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  31. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  32. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  33. package/dist/src/assets/img/icons/null-result.d.ts +1 -1
  34. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  35. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  36. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  37. package/dist/src/assets/img/icons/views.d.ts +1 -1
  38. package/dist/src/circular-activity-indicator.d.ts +1 -1
  39. package/dist/src/circular-activity-indicator.js.map +1 -1
  40. package/dist/src/collection-browser.d.ts +21 -1
  41. package/dist/src/collection-browser.js +60 -17
  42. package/dist/src/collection-browser.js.map +1 -1
  43. package/dist/src/collection-facets/facet-row.js.map +1 -1
  44. package/dist/src/collection-facets/facet-tombstone-row.d.ts +1 -1
  45. package/dist/src/collection-facets/facet-tombstone-row.js.map +1 -1
  46. package/dist/src/collection-facets/facets-template.js +5 -5
  47. package/dist/src/collection-facets/facets-template.js.map +1 -1
  48. package/dist/src/collection-facets/more-facets-content.d.ts +1 -1
  49. package/dist/src/collection-facets/more-facets-content.js +4 -2
  50. package/dist/src/collection-facets/more-facets-content.js.map +1 -1
  51. package/dist/src/collection-facets/more-facets-pagination.js +0 -1
  52. package/dist/src/collection-facets/more-facets-pagination.js.map +1 -1
  53. package/dist/src/collection-facets/smart-facets/dedupe.js.map +1 -1
  54. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.js.map +1 -1
  55. package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js +1 -1
  56. package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js.map +1 -1
  57. package/dist/src/collection-facets/smart-facets/models.d.ts +2 -2
  58. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js +4 -1
  59. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js.map +1 -1
  60. package/dist/src/collection-facets/smart-facets/smart-facet-button.d.ts +1 -1
  61. package/dist/src/collection-facets/smart-facets/smart-facet-button.js.map +1 -1
  62. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.d.ts +1 -1
  63. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js.map +1 -1
  64. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js.map +1 -1
  65. package/dist/src/collection-facets/toggle-switch.d.ts +2 -2
  66. package/dist/src/collection-facets/toggle-switch.js +2 -2
  67. package/dist/src/collection-facets/toggle-switch.js.map +1 -1
  68. package/dist/src/collection-facets.js +3 -2
  69. package/dist/src/collection-facets.js.map +1 -1
  70. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +4 -0
  71. package/dist/src/data-source/collection-browser-data-source-interface.js.map +1 -1
  72. package/dist/src/data-source/collection-browser-data-source.d.ts +4 -0
  73. package/dist/src/data-source/collection-browser-data-source.js +22 -8
  74. package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
  75. package/dist/src/data-source/collection-browser-query-state.d.ts +1 -0
  76. package/dist/src/data-source/collection-browser-query-state.js.map +1 -1
  77. package/dist/src/data-source/models.d.ts +2 -2
  78. package/dist/src/empty-placeholder.d.ts +1 -1
  79. package/dist/src/empty-placeholder.js +11 -10
  80. package/dist/src/empty-placeholder.js.map +1 -1
  81. package/dist/src/expanded-date-picker.js.map +1 -1
  82. package/dist/src/language-code-handler/language-code-handler.js.map +1 -1
  83. package/dist/src/language-code-handler/language-code-mapping.js +86 -86
  84. package/dist/src/language-code-handler/language-code-mapping.js.map +1 -1
  85. package/dist/src/manage/manage-bar.d.ts +32 -9
  86. package/dist/src/manage/manage-bar.js +121 -27
  87. package/dist/src/manage/manage-bar.js.map +1 -1
  88. package/dist/src/manage/remove-items-modal-content.d.ts +9 -0
  89. package/dist/src/manage/remove-items-modal-content.js +104 -0
  90. package/dist/src/manage/remove-items-modal-content.js.map +1 -0
  91. package/dist/src/mediatype/mediatype-config.js +0 -1
  92. package/dist/src/mediatype/mediatype-config.js.map +1 -1
  93. package/dist/src/models.d.ts +24 -15
  94. package/dist/src/models.js +3 -3
  95. package/dist/src/models.js.map +1 -1
  96. package/dist/src/restoration-state-handler.js +1 -0
  97. package/dist/src/restoration-state-handler.js.map +1 -1
  98. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +1 -1
  99. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js.map +1 -1
  100. package/dist/src/sort-filter-bar/alpha-bar.js +9 -9
  101. package/dist/src/sort-filter-bar/alpha-bar.js.map +1 -1
  102. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  103. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  104. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  105. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  106. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  107. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  108. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  109. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +1 -1
  110. package/dist/src/sort-filter-bar/sort-filter-bar.js +2 -1
  111. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  112. package/dist/src/tiles/base-tile-component.js.map +1 -1
  113. package/dist/src/tiles/collection-browser-loading-tile.d.ts +1 -1
  114. package/dist/src/tiles/collection-browser-loading-tile.js.map +1 -1
  115. package/dist/src/tiles/grid/account-tile.js.map +1 -1
  116. package/dist/src/tiles/grid/collection-tile.js.map +1 -1
  117. package/dist/src/tiles/grid/item-tile.js +3 -2
  118. package/dist/src/tiles/grid/item-tile.js.map +1 -1
  119. package/dist/src/tiles/grid/search-tile.js.map +1 -1
  120. package/dist/src/tiles/grid/tile-stats.d.ts +1 -1
  121. package/dist/src/tiles/grid/tile-stats.js +2 -2
  122. package/dist/src/tiles/grid/tile-stats.js.map +1 -1
  123. package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
  124. package/dist/src/tiles/hover/tile-hover-pane.d.ts +1 -1
  125. package/dist/src/tiles/hover/tile-hover-pane.js +1 -3
  126. package/dist/src/tiles/hover/tile-hover-pane.js.map +1 -1
  127. package/dist/src/tiles/image-block.d.ts +1 -1
  128. package/dist/src/tiles/image-block.js +1 -1
  129. package/dist/src/tiles/image-block.js.map +1 -1
  130. package/dist/src/tiles/item-image.d.ts +1 -1
  131. package/dist/src/tiles/item-image.js +2 -2
  132. package/dist/src/tiles/item-image.js.map +1 -1
  133. package/dist/src/tiles/list/tile-list-compact-header.d.ts +1 -1
  134. package/dist/src/tiles/list/tile-list-compact-header.js.map +1 -1
  135. package/dist/src/tiles/list/tile-list-compact.d.ts +1 -1
  136. package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
  137. package/dist/src/tiles/list/tile-list.js +6 -4
  138. package/dist/src/tiles/list/tile-list.js.map +1 -1
  139. package/dist/src/tiles/mediatype-icon.d.ts +1 -1
  140. package/dist/src/tiles/mediatype-icon.js.map +1 -1
  141. package/dist/src/tiles/overlay/icon-overlay.js.map +1 -1
  142. package/dist/src/tiles/overlay/text-overlay.js.map +1 -1
  143. package/dist/src/tiles/review-block.js.map +1 -1
  144. package/dist/src/tiles/text-snippet-block.js.map +1 -1
  145. package/dist/src/tiles/tile-dispatcher.d.ts +1 -1
  146. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  147. package/dist/src/tiles/tile-display-value-provider.js.map +1 -1
  148. package/dist/src/utils/facet-utils.js.map +1 -1
  149. package/dist/src/utils/format-count.d.ts +2 -2
  150. package/dist/src/utils/format-count.js +1 -0
  151. package/dist/src/utils/format-count.js.map +1 -1
  152. package/dist/src/utils/format-date.d.ts +1 -1
  153. package/dist/src/utils/format-date.js.map +1 -1
  154. package/dist/src/utils/format-unit-size.js.map +1 -1
  155. package/dist/src/utils/log.js +3 -1
  156. package/dist/src/utils/log.js.map +1 -1
  157. package/dist/src/utils/resolve-mediatype.js.map +1 -1
  158. package/dist/test/collection-browser.test.js +17 -2
  159. package/dist/test/collection-browser.test.js.map +1 -1
  160. package/dist/test/collection-facets/facet-row.test.js +1 -4
  161. package/dist/test/collection-facets/facet-row.test.js.map +1 -1
  162. package/dist/test/collection-facets/facets-template.test.js.map +1 -1
  163. package/dist/test/collection-facets/more-facets-content.test.js +1 -0
  164. package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
  165. package/dist/test/collection-facets/more-facets-pagination.test.js +1 -0
  166. package/dist/test/collection-facets/more-facets-pagination.test.js.map +1 -1
  167. package/dist/test/collection-facets/toggle-switch.test.js +3 -12
  168. package/dist/test/collection-facets/toggle-switch.test.js.map +1 -1
  169. package/dist/test/collection-facets.test.js +1 -0
  170. package/dist/test/collection-facets.test.js.map +1 -1
  171. package/dist/test/data-source/collection-browser-data-source.test.js.map +1 -1
  172. package/dist/test/empty-placeholder.test.js +1 -0
  173. package/dist/test/empty-placeholder.test.js.map +1 -1
  174. package/dist/test/expanded-date-picker.test.js.map +1 -1
  175. package/dist/test/icon-overlay.test.js +1 -0
  176. package/dist/test/icon-overlay.test.js.map +1 -1
  177. package/dist/test/image-block.test.js +1 -0
  178. package/dist/test/image-block.test.js.map +1 -1
  179. package/dist/test/item-image.test.js +1 -0
  180. package/dist/test/item-image.test.js.map +1 -1
  181. package/dist/test/manage/manage-bar.test.d.ts +1 -0
  182. package/dist/test/manage/manage-bar.test.js +26 -10
  183. package/dist/test/manage/manage-bar.test.js.map +1 -1
  184. package/dist/test/manage/remove-items-modal-content.test.d.ts +1 -0
  185. package/dist/test/manage/remove-items-modal-content.test.js +66 -0
  186. package/dist/test/manage/remove-items-modal-content.test.js.map +1 -0
  187. package/dist/test/mocks/mock-search-responses.js.map +1 -1
  188. package/dist/test/mocks/mock-search-service.js.map +1 -1
  189. package/dist/test/restoration-state-handler.test.js.map +1 -1
  190. package/dist/test/review-block.test.js +1 -0
  191. package/dist/test/review-block.test.js.map +1 -1
  192. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js.map +1 -1
  193. package/dist/test/sort-filter-bar/alpha-bar.test.js.map +1 -1
  194. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +1 -0
  195. package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -1
  196. package/dist/test/text-overlay.test.js +1 -0
  197. package/dist/test/text-overlay.test.js.map +1 -1
  198. package/dist/test/text-snippet-block.test.js +1 -0
  199. package/dist/test/text-snippet-block.test.js.map +1 -1
  200. package/dist/test/tile-stats.test.js +23 -22
  201. package/dist/test/tile-stats.test.js.map +1 -1
  202. package/dist/test/tiles/grid/account-tile.test.js +1 -0
  203. package/dist/test/tiles/grid/account-tile.test.js.map +1 -1
  204. package/dist/test/tiles/grid/collection-tile.test.js +1 -0
  205. package/dist/test/tiles/grid/collection-tile.test.js.map +1 -1
  206. package/dist/test/tiles/grid/item-tile.test.js +1 -0
  207. package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
  208. package/dist/test/tiles/grid/search-tile.test.js +1 -0
  209. package/dist/test/tiles/grid/search-tile.test.js.map +1 -1
  210. package/dist/test/tiles/hover/hover-pane-controller.test.js.map +1 -1
  211. package/dist/test/tiles/hover/tile-hover-pane.test.js.map +1 -1
  212. package/dist/test/tiles/list/tile-list-compact.test.js +1 -0
  213. package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -1
  214. package/dist/test/tiles/list/tile-list.test.js +1 -0
  215. package/dist/test/tiles/list/tile-list.test.js.map +1 -1
  216. package/dist/test/tiles/tile-dispatcher.test.js.map +1 -1
  217. package/dist/test/utils/format-count.test.js.map +1 -1
  218. package/dist/test/utils/format-date.test.js.map +1 -1
  219. package/dist/test/utils/local-date-from-utc.test.js.map +1 -1
  220. package/index.html +3 -0
  221. package/package.json +38 -40
  222. package/src/app-root.ts +60 -25
  223. package/src/collection-browser.ts +101 -50
  224. package/src/collection-facets/facets-template.ts +6 -7
  225. package/src/collection-facets/more-facets-content.ts +13 -11
  226. package/src/collection-facets/more-facets-pagination.ts +2 -3
  227. package/src/collection-facets/smart-facets/dedupe.ts +2 -2
  228. package/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.ts +1 -1
  229. package/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.ts +6 -6
  230. package/src/collection-facets/smart-facets/smart-facet-bar.ts +8 -6
  231. package/src/collection-facets/smart-facets/smart-facet-button.ts +3 -5
  232. package/src/collection-facets/smart-facets/smart-facet-dropdown.ts +4 -4
  233. package/src/collection-facets/smart-facets/smart-facet-heuristics.ts +1 -1
  234. package/src/collection-facets/toggle-switch.ts +2 -2
  235. package/src/collection-facets.ts +19 -18
  236. package/src/data-source/collection-browser-data-source-interface.ts +6 -5
  237. package/src/data-source/collection-browser-data-source.ts +48 -37
  238. package/src/data-source/collection-browser-query-state.ts +1 -0
  239. package/src/empty-placeholder.ts +16 -19
  240. package/src/expanded-date-picker.ts +1 -1
  241. package/src/language-code-handler/language-code-handler.ts +1 -1
  242. package/src/manage/manage-bar.ts +132 -38
  243. package/src/manage/remove-items-modal-content.ts +102 -0
  244. package/src/mediatype/mediatype-config.ts +0 -1
  245. package/src/models.ts +13 -3
  246. package/src/restoration-state-handler.ts +15 -14
  247. package/src/sort-filter-bar/alpha-bar.ts +17 -16
  248. package/src/sort-filter-bar/sort-filter-bar.ts +15 -14
  249. package/src/tiles/grid/account-tile.ts +1 -1
  250. package/src/tiles/grid/collection-tile.ts +1 -1
  251. package/src/tiles/grid/item-tile.ts +9 -9
  252. package/src/tiles/grid/tile-stats.ts +4 -4
  253. package/src/tiles/hover/hover-pane-controller.ts +1 -1
  254. package/src/tiles/hover/tile-hover-pane.ts +2 -4
  255. package/src/tiles/item-image.ts +1 -1
  256. package/src/tiles/list/tile-list-compact.ts +2 -2
  257. package/src/tiles/list/tile-list.ts +24 -22
  258. package/src/tiles/tile-dispatcher.ts +5 -5
  259. package/src/tiles/tile-display-value-provider.ts +4 -4
  260. package/src/utils/facet-utils.ts +6 -6
  261. package/src/utils/format-count.ts +3 -2
  262. package/src/utils/format-date.ts +1 -1
  263. package/src/utils/format-unit-size.ts +1 -1
  264. package/src/utils/log.ts +3 -1
  265. package/test/collection-browser.test.ts +145 -123
  266. package/test/collection-facets/facet-row.test.ts +28 -31
  267. package/test/collection-facets/facets-template.test.ts +9 -9
  268. package/test/collection-facets/more-facets-content.test.ts +15 -14
  269. package/test/collection-facets/more-facets-pagination.test.ts +19 -18
  270. package/test/collection-facets/toggle-switch.test.ts +18 -28
  271. package/test/collection-facets.test.ts +37 -36
  272. package/test/data-source/collection-browser-data-source.test.ts +2 -2
  273. package/test/empty-placeholder.test.ts +7 -6
  274. package/test/expanded-date-picker.test.ts +18 -17
  275. package/test/icon-overlay.test.ts +1 -0
  276. package/test/image-block.test.ts +7 -6
  277. package/test/item-image.test.ts +1 -0
  278. package/test/manage/manage-bar.test.ts +52 -28
  279. package/test/manage/remove-items-modal-content.test.ts +82 -0
  280. package/test/mocks/mock-search-responses.ts +1 -2
  281. package/test/mocks/mock-search-service.ts +1 -1
  282. package/test/restoration-state-handler.test.ts +12 -12
  283. package/test/review-block.test.ts +2 -1
  284. package/test/sort-filter-bar/alpha-bar-tooltip.test.ts +1 -1
  285. package/test/sort-filter-bar/alpha-bar.test.ts +5 -5
  286. package/test/sort-filter-bar/sort-filter-bar.test.ts +39 -38
  287. package/test/text-overlay.test.ts +1 -0
  288. package/test/text-snippet-block.test.ts +6 -5
  289. package/test/tile-stats.test.ts +35 -26
  290. package/test/tiles/grid/account-tile.test.ts +3 -2
  291. package/test/tiles/grid/collection-tile.test.ts +4 -3
  292. package/test/tiles/grid/item-tile.test.ts +14 -13
  293. package/test/tiles/grid/search-tile.test.ts +2 -1
  294. package/test/tiles/hover/hover-pane-controller.test.ts +15 -15
  295. package/test/tiles/hover/tile-hover-pane.test.ts +5 -5
  296. package/test/tiles/list/tile-list-compact.test.ts +2 -1
  297. package/test/tiles/list/tile-list.test.ts +11 -10
  298. package/test/tiles/tile-dispatcher.test.ts +5 -5
  299. package/test/utils/format-count.test.ts +1 -1
  300. package/test/utils/format-date.test.ts +1 -1
  301. package/test/utils/local-date-from-utc.test.ts +1 -1
  302. package/tsconfig.json +1 -0
  303. package/.prettierignore +0 -1
  304. package/eslint.config.mjs +0 -53
@@ -1,9 +1,15 @@
1
+ /* eslint-disable import/no-duplicates */
1
2
  import { expect, fixture } from '@open-wc/testing';
2
3
  import { html } from 'lit';
3
4
  import Sinon from 'sinon';
4
- import type { ManageBar } from '../../src/manage/manage-bar';
5
-
6
5
  import '../../src/manage/manage-bar';
6
+ import {
7
+ ModalManager,
8
+ ModalManagerInterface,
9
+ } from '@internetarchive/modal-manager';
10
+ import '@internetarchive/modal-manager';
11
+ import { msg } from '@lit/localize';
12
+ import type { ManageBar } from '../../src/manage/manage-bar';
7
13
 
8
14
  describe('Manage bar', () => {
9
15
  it('renders basic component', async () => {
@@ -17,10 +23,10 @@ describe('Manage bar', () => {
17
23
 
18
24
  it('can set the label', async () => {
19
25
  const el = await fixture<ManageBar>(
20
- html`<manage-bar label="foo bar"></manage-bar>`,
26
+ html`<manage-bar label="foo bar"></manage-bar>`
21
27
  );
22
28
  expect(el.shadowRoot?.querySelector('.manage-label')?.textContent).to.equal(
23
- 'foo bar',
29
+ 'foo bar'
24
30
  );
25
31
  });
26
32
 
@@ -37,21 +43,21 @@ describe('Manage bar', () => {
37
43
 
38
44
  it('render item manager button for /search/ page', async () => {
39
45
  const el = await fixture<ManageBar>(
40
- html`<manage-bar .pageContext=${'search'}></manage-bar>`,
46
+ html`<manage-bar showItemManageButton></manage-bar>`
41
47
  );
42
48
  expect(el.shadowRoot?.querySelector('.ia-button.warning')).to.exist;
43
49
  });
44
50
 
45
51
  it('includes Select All button when requested', async () => {
46
52
  const el = await fixture<ManageBar>(
47
- html`<manage-bar showSelectAll></manage-bar>`,
53
+ html`<manage-bar showSelectAll></manage-bar>`
48
54
  );
49
55
  expect(el.shadowRoot?.querySelector('.select-all-btn')).to.exist;
50
56
  });
51
57
 
52
58
  it('includes Unselect All button when requested', async () => {
53
59
  const el = await fixture<ManageBar>(
54
- html`<manage-bar showUnselectAll></manage-bar>`,
60
+ html`<manage-bar showUnselectAll></manage-bar>`
55
61
  );
56
62
  expect(el.shadowRoot?.querySelector('.unselect-all-btn')).to.exist;
57
63
  });
@@ -71,11 +77,11 @@ describe('Manage bar', () => {
71
77
  it('emits event when Cancel button clicked', async () => {
72
78
  const spy = Sinon.spy();
73
79
  const el = await fixture<ManageBar>(
74
- html`<manage-bar @cancel=${spy}></manage-bar>`,
80
+ html`<manage-bar @cancel=${spy}></manage-bar>`
75
81
  );
76
82
 
77
83
  const cancelBtn = el.shadowRoot?.querySelector(
78
- '.ia-button.dark',
84
+ '.ia-button.dark'
79
85
  ) as HTMLButtonElement;
80
86
  expect(cancelBtn).to.exist;
81
87
 
@@ -83,29 +89,14 @@ describe('Manage bar', () => {
83
89
  expect(spy.callCount).to.equal(1);
84
90
  });
85
91
 
86
- it('emits event when Remove Items button clicked', async () => {
87
- const spy = Sinon.spy();
88
- const el = await fixture<ManageBar>(
89
- html`<manage-bar @removeItems=${spy} removeAllowed></manage-bar>`,
90
- );
91
-
92
- const removeItemsBtn = el.shadowRoot?.querySelector(
93
- '.ia-button.danger',
94
- ) as HTMLButtonElement;
95
- expect(removeItemsBtn).to.exist;
96
-
97
- removeItemsBtn.click();
98
- expect(spy.callCount).to.equal(1);
99
- });
100
-
101
92
  it('emits event when Select All button clicked', async () => {
102
93
  const spy = Sinon.spy();
103
94
  const el = await fixture<ManageBar>(
104
- html`<manage-bar showSelectAll @selectAll=${spy}></manage-bar>`,
95
+ html`<manage-bar showSelectAll @selectAll=${spy}></manage-bar>`
105
96
  );
106
97
 
107
98
  const selectAllBtn = el.shadowRoot?.querySelector(
108
- '.select-all-btn',
99
+ '.select-all-btn'
109
100
  ) as HTMLButtonElement;
110
101
  expect(selectAllBtn).to.exist;
111
102
 
@@ -116,15 +107,48 @@ describe('Manage bar', () => {
116
107
  it('emits event when Unselect All button clicked', async () => {
117
108
  const spy = Sinon.spy();
118
109
  const el = await fixture<ManageBar>(
119
- html`<manage-bar showUnselectAll @unselectAll=${spy}></manage-bar>`,
110
+ html`<manage-bar showUnselectAll @unselectAll=${spy}></manage-bar>`
120
111
  );
121
112
 
122
113
  const unselectAllBtn = el.shadowRoot?.querySelector(
123
- '.unselect-all-btn',
114
+ '.unselect-all-btn'
124
115
  ) as HTMLButtonElement;
125
116
  expect(unselectAllBtn).to.exist;
126
117
 
127
118
  unselectAllBtn.click();
128
119
  expect(spy.callCount).to.equal(1);
129
120
  });
121
+
122
+ it('opens the remove items modal when showRemoveItemsModal is clicked', async () => {
123
+ const el = await fixture<ManageBar>(html`
124
+ <manage-bar
125
+ .modalManager=${new ModalManager()}
126
+ .selectedItems=${[{ identifier: '1', title: 'Item 1' }]}
127
+ removeAllowed
128
+ ></manage-bar>
129
+ `);
130
+ await el.updateComplete;
131
+
132
+ const removeButton = el.shadowRoot?.querySelector(
133
+ '.ia-button.danger'
134
+ ) as HTMLButtonElement;
135
+ expect(removeButton).to.exist;
136
+
137
+ const showModalSpy = Sinon.spy(
138
+ el.modalManager as ModalManagerInterface,
139
+ 'showModal'
140
+ );
141
+
142
+ await el.updateComplete;
143
+ removeButton?.click();
144
+
145
+ console.log(showModalSpy.args[0][0].config.title?.values[0]);
146
+
147
+ expect(showModalSpy.callCount).to.equal(1);
148
+ expect(el.modalManager?.classList.contains('remove-items')).to.be;
149
+ expect(showModalSpy.args[0][0].config.title?.values[0]).to.equal(
150
+ msg('Are you sure you want to remove these items?')
151
+ );
152
+ expect(showModalSpy.args[0][0].customModalContent).to.exist;
153
+ });
130
154
  });
@@ -0,0 +1,82 @@
1
+ /* eslint-disable import/no-duplicates */
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import { html } from 'lit';
4
+ import Sinon from 'sinon';
5
+ import type { ManageableItem } from '../../src/models';
6
+ import type { RemoveItemsModalContent } from '../../src/manage/remove-items-modal-content';
7
+ import '../../src/manage/remove-items-modal-content';
8
+
9
+ describe('RemoveItemsModalContent', () => {
10
+ const items: ManageableItem[] = [
11
+ { identifier: '1', title: 'Item 1', date: '2022-01-01' },
12
+ { identifier: '2', title: 'Item 2', date: '2022-01-02' },
13
+ ];
14
+
15
+ it('renders basic component', async () => {
16
+ const el = await fixture<RemoveItemsModalContent>(html`
17
+ <remove-items-modal-content
18
+ .items=${items}
19
+ .message=${''}
20
+ ></remove-items-modal-content>
21
+ `);
22
+
23
+ expect(el.shadowRoot?.querySelector('ul')).to.exist;
24
+ expect(el.shadowRoot?.querySelector('.button-bar')).to.exist;
25
+ expect(el.shadowRoot?.querySelector('.remove-items-btn')).to.exist;
26
+ });
27
+
28
+ it('renders list of items', async () => {
29
+ const el = await fixture<RemoveItemsModalContent>(html`
30
+ <remove-items-modal-content
31
+ .items=${items}
32
+ .message=${''}
33
+ ></remove-items-modal-content>
34
+ `);
35
+
36
+ const listItems = el.shadowRoot?.querySelectorAll('li');
37
+ expect(listItems).to.have.lengthOf(2);
38
+
39
+ listItems?.forEach((item, index) => {
40
+ expect(item.querySelector('.item-title')?.textContent).to.equal(
41
+ items[index].title
42
+ );
43
+ expect(item.querySelector('.item-date')?.textContent).to.equal(
44
+ items[index].date
45
+ );
46
+ });
47
+ });
48
+
49
+ it('renders message', async () => {
50
+ const message = 'This is a test message';
51
+ const el = await fixture<RemoveItemsModalContent>(html`
52
+ <remove-items-modal-content
53
+ .items=${[]}
54
+ .message=${message}
55
+ ></remove-items-modal-content>
56
+ `);
57
+
58
+ expect(el.shadowRoot?.querySelector('.message')?.textContent).to.equal(
59
+ message
60
+ );
61
+ });
62
+
63
+ it('dispatches confirm event when remove items button is clicked', async () => {
64
+ const el = await fixture<RemoveItemsModalContent>(html`
65
+ <remove-items-modal-content
66
+ .items=${items}
67
+ .message=${''}
68
+ ></remove-items-modal-content>
69
+ `);
70
+
71
+ const spy = Sinon.spy();
72
+ el.addEventListener('confirm', spy);
73
+
74
+ const button = el.shadowRoot?.querySelector(
75
+ '.remove-items-btn'
76
+ ) as HTMLInputElement;
77
+ button?.click();
78
+
79
+ expect(spy.calledOnce).to.be.true;
80
+ expect(spy.args[0][0].detail.items).to.deep.equal(items);
81
+ });
82
+ });
@@ -1,4 +1,3 @@
1
- // eslint-disable @typescript-eslint/no-unsafe-function-type
2
1
  import type { Result } from '@internetarchive/result-type';
3
2
  import {
4
3
  Aggregation,
@@ -495,7 +494,7 @@ export const getMockSuccessWithCollectionAggregations: () => Result<
495
494
  });
496
495
 
497
496
  export const getMockSuccessSingleResultWithSort: (
498
- resultsSpy: Function,
497
+ resultsSpy: Function
499
498
  ) => Result<SearchResponse, SearchServiceError> = (resultsSpy: Function) => ({
500
499
  success: {
501
500
  request: {
@@ -82,7 +82,7 @@ export class MockSearchService implements SearchServiceInterface {
82
82
 
83
83
  async search(
84
84
  params: SearchParams,
85
- searchType: SearchType,
85
+ searchType: SearchType
86
86
  ): Promise<Result<SearchResponse, SearchServiceError>> {
87
87
  this.searchParams = params;
88
88
  this.searchType = searchType;
@@ -68,7 +68,7 @@ describe('Restoration state handler', () => {
68
68
 
69
69
  const restorationState = handler.getRestorationState();
70
70
  expect(restorationState.selectedFacets.year['2018'].state).to.equal(
71
- 'selected',
71
+ 'selected'
72
72
  );
73
73
  });
74
74
 
@@ -81,7 +81,7 @@ describe('Restoration state handler', () => {
81
81
 
82
82
  const restorationState = handler.getRestorationState();
83
83
  expect(restorationState.selectedFacets).to.deep.equal(
84
- getDefaultSelectedFacets(),
84
+ getDefaultSelectedFacets()
85
85
  );
86
86
  });
87
87
 
@@ -128,7 +128,7 @@ describe('Restoration state handler', () => {
128
128
 
129
129
  const restorationState = handler.getRestorationState();
130
130
  expect(restorationState.selectedFacets.subject.foo.state).to.equal(
131
- 'selected',
131
+ 'selected'
132
132
  );
133
133
  });
134
134
 
@@ -141,7 +141,7 @@ describe('Restoration state handler', () => {
141
141
 
142
142
  const restorationState = handler.getRestorationState();
143
143
  expect(restorationState.selectedFacets.year['2018'].state).to.equal(
144
- 'hidden',
144
+ 'hidden'
145
145
  );
146
146
  });
147
147
 
@@ -156,17 +156,17 @@ describe('Restoration state handler', () => {
156
156
  const restorationState = handler.getRestorationState();
157
157
 
158
158
  expect(restorationState.selectedFacets.collection.foo.state).to.equal(
159
- 'selected',
159
+ 'selected'
160
160
  );
161
161
  expect(restorationState.selectedFacets.collection.bar.state).to.equal(
162
- 'selected',
162
+ 'selected'
163
163
  );
164
164
 
165
165
  expect(restorationState.selectedFacets.collection.baz.state).to.equal(
166
- 'hidden',
166
+ 'hidden'
167
167
  );
168
168
  expect(restorationState.selectedFacets.collection.boop.state).to.equal(
169
- 'hidden',
169
+ 'hidden'
170
170
  );
171
171
  });
172
172
 
@@ -179,7 +179,7 @@ describe('Restoration state handler', () => {
179
179
 
180
180
  const restorationState = handler.getRestorationState();
181
181
  expect(restorationState.selectedFacets.collection.foo.state).to.equal(
182
- 'hidden',
182
+ 'hidden'
183
183
  );
184
184
  });
185
185
 
@@ -192,7 +192,7 @@ describe('Restoration state handler', () => {
192
192
 
193
193
  const restorationState = handler.getRestorationState();
194
194
  expect(restorationState.selectedFacets.subject.foo.state).to.equal(
195
- 'selected',
195
+ 'selected'
196
196
  );
197
197
  });
198
198
 
@@ -205,7 +205,7 @@ describe('Restoration state handler', () => {
205
205
 
206
206
  const restorationState = handler.getRestorationState();
207
207
  expect(restorationState.selectedFacets.year['2018'].state).to.equal(
208
- 'hidden',
208
+ 'hidden'
209
209
  );
210
210
  });
211
211
 
@@ -377,7 +377,7 @@ describe('Restoration state handler', () => {
377
377
 
378
378
  // Ensure the new URL includes the "normalized" facet parameter and not the numbered one
379
379
  expect(decodeURIComponent(window.location.search)).to.include(
380
- 'and[]=subject:"foo"',
380
+ 'and[]=subject:"foo"'
381
381
  );
382
382
  expect(new URL(window.location.href).searchParams.get('and[0]')).to.be.null;
383
383
  });
@@ -1,3 +1,4 @@
1
+ /* eslint-disable import/no-duplicates */
1
2
  import { expect, fixture } from '@open-wc/testing';
2
3
  import { html } from 'lit';
3
4
  import type { ReviewBlock } from '../src/tiles/review-block';
@@ -10,7 +11,7 @@ describe('ReviewBlock component', () => {
10
11
  title="Foo"
11
12
  body="foo bar baz"
12
13
  starRating="3"
13
- ></review-block>`,
14
+ ></review-block>`
14
15
  );
15
16
 
16
17
  el.title = 'Foo';
@@ -7,7 +7,7 @@ import '../../src/sort-filter-bar/alpha-bar-tooltip';
7
7
  describe('Alphabet Filter Bar Tooltips', () => {
8
8
  it('renders component', async () => {
9
9
  const el = await fixture<AlphaBarTooltip>(
10
- html`<alpha-bar-tooltip .numResults=${42}></alpha-bar-tooltip>`,
10
+ html`<alpha-bar-tooltip .numResults=${42}></alpha-bar-tooltip>`
11
11
  );
12
12
 
13
13
  // Should render the number of results
@@ -22,7 +22,7 @@ describe('Alphabetical Filter Bar', () => {
22
22
 
23
23
  // Should have exactly two letter buttons
24
24
  const letterButtons = el.shadowRoot?.querySelectorAll(
25
- 'li > button:not(:disabled)',
25
+ 'li > button:not(:disabled)'
26
26
  );
27
27
  expect(letterButtons?.length).to.equal(2);
28
28
  expect(letterButtons?.item(0).textContent?.trim()).to.equal('U');
@@ -37,7 +37,7 @@ describe('Alphabetical Filter Bar', () => {
37
37
 
38
38
  // All but the two letters above should be disabled
39
39
  const letterButtons = el.shadowRoot?.querySelectorAll(
40
- 'li > button:disabled',
40
+ 'li > button:disabled'
41
41
  );
42
42
  expect(letterButtons?.length).to.equal(24);
43
43
  expect(letterButtons?.item(0).textContent?.trim()).to.equal('A');
@@ -64,7 +64,7 @@ describe('Alphabetical Filter Bar', () => {
64
64
  await el.updateComplete;
65
65
 
66
66
  const tooltip = el.shadowRoot?.querySelector(
67
- 'alpha-bar-tooltip',
67
+ 'alpha-bar-tooltip'
68
68
  ) as AlphaBarTooltip;
69
69
  expect(tooltip).to.exist;
70
70
 
@@ -88,14 +88,14 @@ describe('Alphabetical Filter Bar', () => {
88
88
  await el.updateComplete;
89
89
 
90
90
  const tooltip = el.shadowRoot?.querySelector(
91
- 'alpha-bar-tooltip',
91
+ 'alpha-bar-tooltip'
92
92
  ) as AlphaBarTooltip;
93
93
  expect(tooltip).to.exist;
94
94
 
95
95
  // Should be positioned after next tick, but not off-screen
96
96
  await aTimeout(0);
97
97
  expect(tooltip.getBoundingClientRect().right).to.be.lessThan(
98
- window.innerWidth,
98
+ window.innerWidth
99
99
  );
100
100
  });
101
101
  });