@internetarchive/collection-browser 2.7.7 → 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 (338) hide show
  1. package/.editorconfig +29 -29
  2. package/.husky/pre-commit +4 -4
  3. package/LICENSE +661 -661
  4. package/README.md +83 -83
  5. package/dist/index.d.ts +13 -13
  6. package/dist/index.js +13 -13
  7. package/dist/src/app-root.d.ts +107 -99
  8. package/dist/src/app-root.js +539 -505
  9. package/dist/src/app-root.js.map +1 -1
  10. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  11. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  12. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  13. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  14. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  15. package/dist/src/assets/img/icons/chevron.js +2 -2
  16. package/dist/src/assets/img/icons/contract.d.ts +2 -2
  17. package/dist/src/assets/img/icons/contract.js +2 -2
  18. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  19. package/dist/src/assets/img/icons/empty-query.js +2 -2
  20. package/dist/src/assets/img/icons/expand.d.ts +2 -2
  21. package/dist/src/assets/img/icons/expand.js +2 -2
  22. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  23. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  24. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  25. package/dist/src/assets/img/icons/eye.js +2 -2
  26. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  27. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  28. package/dist/src/assets/img/icons/favorite-unfilled.d.ts +1 -1
  29. package/dist/src/assets/img/icons/favorite-unfilled.js +2 -2
  30. package/dist/src/assets/img/icons/filter.d.ts +2 -2
  31. package/dist/src/assets/img/icons/filter.js +2 -2
  32. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  33. package/dist/src/assets/img/icons/login-required.js +2 -2
  34. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  35. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  36. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  37. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  38. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  39. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  40. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  41. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  42. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  43. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  44. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  45. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  46. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  47. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  48. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  49. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  50. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
  51. package/dist/src/assets/img/icons/mediatype/search.js +2 -2
  52. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  53. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  54. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  55. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  56. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  57. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  58. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  59. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  60. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  61. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  62. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  63. package/dist/src/assets/img/icons/null-result.js +2 -2
  64. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  65. package/dist/src/assets/img/icons/restricted.js +2 -2
  66. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  67. package/dist/src/assets/img/icons/reviews.js +2 -2
  68. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  69. package/dist/src/assets/img/icons/upload.js +2 -2
  70. package/dist/src/assets/img/icons/views.d.ts +1 -1
  71. package/dist/src/assets/img/icons/views.js +2 -2
  72. package/dist/src/circular-activity-indicator.d.ts +5 -5
  73. package/dist/src/circular-activity-indicator.js +17 -17
  74. package/dist/src/collection-browser.d.ts +602 -582
  75. package/dist/src/collection-browser.js +1671 -1629
  76. package/dist/src/collection-browser.js.map +1 -1
  77. package/dist/src/collection-facets/facet-row.d.ts +30 -30
  78. package/dist/src/collection-facets/facet-row.js +118 -118
  79. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  80. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  81. package/dist/src/collection-facets/facets-template.d.ts +13 -13
  82. package/dist/src/collection-facets/facets-template.js +44 -44
  83. package/dist/src/collection-facets/more-facets-content.d.ts +106 -106
  84. package/dist/src/collection-facets/more-facets-content.js +407 -407
  85. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  86. package/dist/src/collection-facets/more-facets-pagination.js +196 -196
  87. package/dist/src/collection-facets/smart-facets/dedupe.d.ts +10 -10
  88. package/dist/src/collection-facets/smart-facets/dedupe.js +33 -33
  89. package/dist/src/collection-facets/smart-facets/heuristics/browser-language-heuristic.d.ts +5 -5
  90. package/dist/src/collection-facets/smart-facets/heuristics/browser-language-heuristic.js +23 -23
  91. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.d.ts +5 -5
  92. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.js +44 -44
  93. package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.d.ts +5 -5
  94. package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js +172 -172
  95. package/dist/src/collection-facets/smart-facets/models.d.ts +26 -26
  96. package/dist/src/collection-facets/smart-facets/models.js +1 -1
  97. package/dist/src/collection-facets/smart-facets/smart-facet-bar.d.ts +31 -31
  98. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js +240 -240
  99. package/dist/src/collection-facets/smart-facets/smart-facet-button.d.ts +11 -11
  100. package/dist/src/collection-facets/smart-facets/smart-facet-button.js +86 -86
  101. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.d.ts +16 -16
  102. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js +100 -100
  103. package/dist/src/collection-facets/smart-facets/smart-facet-equals.d.ts +2 -2
  104. package/dist/src/collection-facets/smart-facets/smart-facet-equals.js +12 -12
  105. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.d.ts +5 -5
  106. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js +15 -15
  107. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  108. package/dist/src/collection-facets/toggle-switch.js +94 -94
  109. package/dist/src/collection-facets.d.ts +103 -103
  110. package/dist/src/collection-facets.js +522 -522
  111. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +245 -241
  112. package/dist/src/data-source/collection-browser-data-source-interface.js +1 -1
  113. package/dist/src/data-source/collection-browser-data-source-interface.js.map +1 -1
  114. package/dist/src/data-source/collection-browser-data-source.d.ts +377 -373
  115. package/dist/src/data-source/collection-browser-data-source.js +995 -982
  116. package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
  117. package/dist/src/data-source/collection-browser-query-state.d.ts +44 -43
  118. package/dist/src/data-source/collection-browser-query-state.js +1 -1
  119. package/dist/src/data-source/collection-browser-query-state.js.map +1 -1
  120. package/dist/src/data-source/models.d.ts +28 -28
  121. package/dist/src/data-source/models.js +8 -8
  122. package/dist/src/empty-placeholder.d.ts +23 -23
  123. package/dist/src/empty-placeholder.js +79 -79
  124. package/dist/src/expanded-date-picker.d.ts +43 -43
  125. package/dist/src/expanded-date-picker.js +109 -109
  126. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  127. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  128. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  129. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  130. package/dist/src/manage/manage-bar.d.ts +58 -35
  131. package/dist/src/manage/manage-bar.js +174 -80
  132. package/dist/src/manage/manage-bar.js.map +1 -1
  133. package/dist/src/manage/remove-items-modal-content.d.ts +9 -0
  134. package/dist/src/manage/remove-items-modal-content.js +104 -0
  135. package/dist/src/manage/remove-items-modal-content.js.map +1 -0
  136. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  137. package/dist/src/mediatype/mediatype-config.js +91 -91
  138. package/dist/src/models.d.ts +228 -219
  139. package/dist/src/models.js +401 -401
  140. package/dist/src/models.js.map +1 -1
  141. package/dist/src/restoration-state-handler.d.ts +70 -70
  142. package/dist/src/restoration-state-handler.js +363 -363
  143. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  144. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  145. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  146. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  147. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  148. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  149. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  150. package/dist/src/sort-filter-bar/img/list.js +2 -2
  151. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  152. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  153. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  154. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  155. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  156. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  157. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  158. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  159. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  160. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  161. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +223 -223
  162. package/dist/src/sort-filter-bar/sort-filter-bar.js +697 -697
  163. package/dist/src/styles/ia-button.d.ts +2 -2
  164. package/dist/src/styles/ia-button.js +17 -17
  165. package/dist/src/styles/item-image-styles.d.ts +8 -8
  166. package/dist/src/styles/item-image-styles.js +9 -9
  167. package/dist/src/styles/sr-only.d.ts +1 -1
  168. package/dist/src/styles/sr-only.js +2 -2
  169. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  170. package/dist/src/tiles/base-tile-component.js +64 -64
  171. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  172. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  173. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  174. package/dist/src/tiles/grid/account-tile.js +72 -72
  175. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  176. package/dist/src/tiles/grid/collection-tile.js +80 -80
  177. package/dist/src/tiles/grid/item-tile.d.ts +34 -34
  178. package/dist/src/tiles/grid/item-tile.js +158 -158
  179. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  180. package/dist/src/tiles/grid/search-tile.js +51 -51
  181. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  182. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  183. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  184. package/dist/src/tiles/grid/tile-stats.js +53 -53
  185. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  186. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  187. package/dist/src/tiles/hover/tile-hover-pane.d.ts +18 -18
  188. package/dist/src/tiles/hover/tile-hover-pane.js +69 -69
  189. package/dist/src/tiles/image-block.d.ts +18 -18
  190. package/dist/src/tiles/image-block.js +89 -89
  191. package/dist/src/tiles/item-image.d.ts +39 -39
  192. package/dist/src/tiles/item-image.js +154 -154
  193. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  194. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  195. package/dist/src/tiles/list/tile-list-compact.d.ts +19 -19
  196. package/dist/src/tiles/list/tile-list-compact.js +122 -122
  197. package/dist/src/tiles/list/tile-list.d.ts +54 -54
  198. package/dist/src/tiles/list/tile-list.js +323 -323
  199. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  200. package/dist/src/tiles/mediatype-icon.js +47 -47
  201. package/dist/src/tiles/overlay/icon-overlay.d.ts +8 -8
  202. package/dist/src/tiles/overlay/icon-overlay.js +25 -25
  203. package/dist/src/tiles/overlay/text-overlay.d.ts +9 -9
  204. package/dist/src/tiles/overlay/text-overlay.js +31 -31
  205. package/dist/src/tiles/review-block.d.ts +12 -12
  206. package/dist/src/tiles/review-block.js +56 -56
  207. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  208. package/dist/src/tiles/text-snippet-block.js +73 -73
  209. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  210. package/dist/src/tiles/tile-dispatcher.js +230 -230
  211. package/dist/src/tiles/tile-display-value-provider.d.ts +47 -47
  212. package/dist/src/tiles/tile-display-value-provider.js +94 -94
  213. package/dist/src/utils/analytics-events.d.ts +28 -28
  214. package/dist/src/utils/analytics-events.js +30 -30
  215. package/dist/src/utils/array-equals.d.ts +4 -4
  216. package/dist/src/utils/array-equals.js +10 -10
  217. package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -11
  218. package/dist/src/utils/collapse-repeated-quotes.js +13 -13
  219. package/dist/src/utils/facet-utils.d.ts +83 -83
  220. package/dist/src/utils/facet-utils.js +145 -145
  221. package/dist/src/utils/format-count.d.ts +7 -7
  222. package/dist/src/utils/format-count.js +76 -76
  223. package/dist/src/utils/format-date.d.ts +2 -2
  224. package/dist/src/utils/format-date.js +27 -27
  225. package/dist/src/utils/format-unit-size.d.ts +2 -2
  226. package/dist/src/utils/format-unit-size.js +33 -33
  227. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  228. package/dist/src/utils/local-date-from-utc.js +15 -15
  229. package/dist/src/utils/log.d.ts +7 -7
  230. package/dist/src/utils/log.js +15 -15
  231. package/dist/src/utils/resolve-mediatype.d.ts +8 -8
  232. package/dist/src/utils/resolve-mediatype.js +23 -23
  233. package/dist/src/utils/sha1.d.ts +2 -2
  234. package/dist/src/utils/sha1.js +8 -8
  235. package/dist/test/collection-browser.test.d.ts +1 -1
  236. package/dist/test/collection-browser.test.js +1309 -1293
  237. package/dist/test/collection-browser.test.js.map +1 -1
  238. package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
  239. package/dist/test/collection-facets/facet-row.test.js +227 -227
  240. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  241. package/dist/test/collection-facets/facets-template.test.js +91 -91
  242. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  243. package/dist/test/collection-facets/more-facets-content.test.js +141 -141
  244. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  245. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  246. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  247. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  248. package/dist/test/collection-facets.test.d.ts +2 -2
  249. package/dist/test/collection-facets.test.js +690 -690
  250. package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -1
  251. package/dist/test/data-source/collection-browser-data-source.test.js +89 -89
  252. package/dist/test/empty-placeholder.test.d.ts +1 -1
  253. package/dist/test/empty-placeholder.test.js +63 -63
  254. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  255. package/dist/test/expanded-date-picker.test.js +95 -95
  256. package/dist/test/icon-overlay.test.d.ts +1 -1
  257. package/dist/test/icon-overlay.test.js +24 -24
  258. package/dist/test/image-block.test.d.ts +1 -1
  259. package/dist/test/image-block.test.js +107 -107
  260. package/dist/test/item-image.test.d.ts +1 -1
  261. package/dist/test/item-image.test.js +85 -85
  262. package/dist/test/manage/manage-bar.test.d.ts +2 -1
  263. package/dist/test/manage/manage-bar.test.js +106 -91
  264. package/dist/test/manage/manage-bar.test.js.map +1 -1
  265. package/dist/test/manage/remove-items-modal-content.test.d.ts +1 -0
  266. package/dist/test/manage/remove-items-modal-content.test.js +66 -0
  267. package/dist/test/manage/remove-items-modal-content.test.js.map +1 -0
  268. package/dist/test/mediatype-config.test.d.ts +1 -1
  269. package/dist/test/mediatype-config.test.js +16 -16
  270. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  271. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  272. package/dist/test/mocks/mock-search-responses.d.ts +25 -25
  273. package/dist/test/mocks/mock-search-responses.js +942 -942
  274. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  275. package/dist/test/mocks/mock-search-service.js +54 -54
  276. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  277. package/dist/test/restoration-state-handler.test.js +270 -270
  278. package/dist/test/review-block.test.d.ts +1 -1
  279. package/dist/test/review-block.test.js +44 -44
  280. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  281. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  282. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  283. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  284. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  285. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +426 -426
  286. package/dist/test/text-overlay.test.d.ts +1 -1
  287. package/dist/test/text-overlay.test.js +38 -38
  288. package/dist/test/text-snippet-block.test.d.ts +1 -1
  289. package/dist/test/text-snippet-block.test.js +57 -57
  290. package/dist/test/tile-stats.test.d.ts +1 -1
  291. package/dist/test/tile-stats.test.js +81 -81
  292. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  293. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  294. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  295. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  296. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  297. package/dist/test/tiles/grid/item-tile.test.js +312 -312
  298. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  299. package/dist/test/tiles/grid/search-tile.test.js +51 -51
  300. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  301. package/dist/test/tiles/hover/hover-pane-controller.test.js +259 -259
  302. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  303. package/dist/test/tiles/hover/tile-hover-pane.test.js +56 -56
  304. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  305. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  306. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  307. package/dist/test/tiles/list/tile-list.test.js +297 -297
  308. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  309. package/dist/test/tiles/tile-dispatcher.test.js +100 -100
  310. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  311. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  312. package/dist/test/utils/array-equals.test.d.ts +1 -1
  313. package/dist/test/utils/array-equals.test.js +26 -26
  314. package/dist/test/utils/format-count.test.d.ts +1 -1
  315. package/dist/test/utils/format-count.test.js +23 -23
  316. package/dist/test/utils/format-date.test.d.ts +1 -1
  317. package/dist/test/utils/format-date.test.js +30 -30
  318. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  319. package/dist/test/utils/format-unit-size.test.js +17 -17
  320. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  321. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  322. package/local.archive.org.cert +86 -86
  323. package/local.archive.org.key +27 -27
  324. package/package.json +1 -1
  325. package/renovate.json +6 -6
  326. package/src/app-root.ts +38 -4
  327. package/src/collection-browser.ts +66 -17
  328. package/src/data-source/collection-browser-data-source-interface.ts +5 -0
  329. package/src/data-source/collection-browser-data-source.ts +14 -0
  330. package/src/data-source/collection-browser-query-state.ts +1 -0
  331. package/src/manage/manage-bar.ts +120 -24
  332. package/src/manage/remove-items-modal-content.ts +102 -0
  333. package/src/models.ts +10 -0
  334. package/test/collection-browser.test.ts +23 -0
  335. package/test/manage/manage-bar.test.ts +41 -18
  336. package/test/manage/remove-items-modal-content.test.ts +82 -0
  337. package/web-dev-server.config.mjs +30 -30
  338. package/web-test-runner.config.mjs +41 -41
@@ -1,74 +1,74 @@
1
- import { __decorate } from "tslib";
2
- import { css, html, LitElement, nothing, } from 'lit';
3
- import { customElement, property } from 'lit/decorators.js';
4
- import { join } from 'lit/directives/join.js';
5
- let TextSnippetBlock = class TextSnippetBlock extends LitElement {
6
- constructor() {
7
- super(...arguments);
8
- this.snippets = [];
9
- this.viewSize = 'desktop';
10
- }
11
- render() {
12
- var _a;
13
- if (!((_a = this.snippets) === null || _a === void 0 ? void 0 : _a.length))
14
- return html `${nothing}`;
1
+ import { __decorate } from "tslib";
2
+ import { css, html, LitElement, nothing, } from 'lit';
3
+ import { customElement, property } from 'lit/decorators.js';
4
+ import { join } from 'lit/directives/join.js';
5
+ let TextSnippetBlock = class TextSnippetBlock extends LitElement {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.snippets = [];
9
+ this.viewSize = 'desktop';
10
+ }
11
+ render() {
12
+ var _a;
13
+ if (!((_a = this.snippets) === null || _a === void 0 ? void 0 : _a.length))
14
+ return html `${nothing}`;
15
15
  return html `
16
16
  <div class="container">
17
17
  <div class="snippet-view ${this.viewSize}">
18
18
  ${this.ellipsisJoinedSnippets}
19
19
  </div>
20
20
  </div>
21
- `;
22
- }
23
- /**
24
- * An array of HTML templates derived from the snippets, with ellipses inserted
25
- * at the beginning, end, and between each pair of snippets.
26
- */
27
- get ellipsisJoinedSnippets() {
21
+ `;
22
+ }
23
+ /**
24
+ * An array of HTML templates derived from the snippets, with ellipses inserted
25
+ * at the beginning, end, and between each pair of snippets.
26
+ */
27
+ get ellipsisJoinedSnippets() {
28
28
  return html `
29
29
  &hellip; ${join(this.snippetTemplates, html ` &hellip; `)} &hellip;
30
- `;
31
- }
32
- /**
33
- * Returns an array of HTML span templates containing this item's snippets with all of
34
- * their `{{{triple-brace-delimited}}}` matches replaced by `<mark>HTML mark tags</mark>`.
35
- *
36
- * This approach safely avoids the use of `unsafeHTML` and leaves any existing HTML tags
37
- * in the snippets intact (as inert text), rather than stripping them away with DOMPurify.
38
- *
39
- * Note on `<em>` vs. `<mark>`:
40
- * The old search page snippets had search keywords demarcated with `<em>` tags.
41
- * The `<mark>` tag is semantically more accurate for this use case than `<em>`,
42
- * but screen-reader behavior may be different. `<em>` will likely be read in a
43
- * different tone, while `<mark>` is often read no differently than ordinary text
44
- * in many screen-readers (though there are ways to work around this if needed).
45
- */
46
- get snippetTemplates() {
47
- var _a;
48
- return (_a = this.snippets) === null || _a === void 0 ? void 0 : _a.map(s => {
49
- const matches = s.matchAll(/{{{(.+?)}}}/gs);
50
- const templates = [];
51
- // Convert each match into an HTML template that includes:
52
- // - Everything from the end of the previous match (or the beginning of the
53
- // string) up to the current match, as raw text.
54
- // - The current match (excluding the curly braces) wrapped in a `<mark>` tag.
55
- let index = 0;
56
- for (const match of matches) {
57
- if (match.index != null) {
30
+ `;
31
+ }
32
+ /**
33
+ * Returns an array of HTML span templates containing this item's snippets with all of
34
+ * their `{{{triple-brace-delimited}}}` matches replaced by `<mark>HTML mark tags</mark>`.
35
+ *
36
+ * This approach safely avoids the use of `unsafeHTML` and leaves any existing HTML tags
37
+ * in the snippets intact (as inert text), rather than stripping them away with DOMPurify.
38
+ *
39
+ * Note on `<em>` vs. `<mark>`:
40
+ * The old search page snippets had search keywords demarcated with `<em>` tags.
41
+ * The `<mark>` tag is semantically more accurate for this use case than `<em>`,
42
+ * but screen-reader behavior may be different. `<em>` will likely be read in a
43
+ * different tone, while `<mark>` is often read no differently than ordinary text
44
+ * in many screen-readers (though there are ways to work around this if needed).
45
+ */
46
+ get snippetTemplates() {
47
+ var _a;
48
+ return (_a = this.snippets) === null || _a === void 0 ? void 0 : _a.map(s => {
49
+ const matches = s.matchAll(/{{{(.+?)}}}/gs);
50
+ const templates = [];
51
+ // Convert each match into an HTML template that includes:
52
+ // - Everything from the end of the previous match (or the beginning of the
53
+ // string) up to the current match, as raw text.
54
+ // - The current match (excluding the curly braces) wrapped in a `<mark>` tag.
55
+ let index = 0;
56
+ for (const match of matches) {
57
+ if (match.index != null) {
58
58
  templates.push(html `
59
59
  ${s.slice(index, match.index)}
60
60
  <mark>${match[1]}</mark>
61
- `);
62
- index = match.index + match[0].length;
63
- }
64
- }
65
- // Include any text from the last match to the end
66
- templates.push(html `${s.slice(index)}`);
67
- // Squash everything into a single span template
68
- return html `<span>${templates}</span>`;
69
- });
70
- }
71
- static get styles() {
61
+ `);
62
+ index = match.index + match[0].length;
63
+ }
64
+ }
65
+ // Include any text from the last match to the end
66
+ templates.push(html `${s.slice(index)}`);
67
+ // Squash everything into a single span template
68
+ return html `<span>${templates}</span>`;
69
+ });
70
+ }
71
+ static get styles() {
72
72
  return css `
73
73
  .container {
74
74
  display: flex;
@@ -116,17 +116,17 @@ let TextSnippetBlock = class TextSnippetBlock extends LitElement {
116
116
  background-color: #0000ff33;
117
117
  color: inherit;
118
118
  }
119
- `;
120
- }
121
- };
122
- __decorate([
123
- property({ type: Array })
124
- ], TextSnippetBlock.prototype, "snippets", void 0);
125
- __decorate([
126
- property({ type: String })
127
- ], TextSnippetBlock.prototype, "viewSize", void 0);
128
- TextSnippetBlock = __decorate([
129
- customElement('text-snippet-block')
130
- ], TextSnippetBlock);
131
- export { TextSnippetBlock };
119
+ `;
120
+ }
121
+ };
122
+ __decorate([
123
+ property({ type: Array })
124
+ ], TextSnippetBlock.prototype, "snippets", void 0);
125
+ __decorate([
126
+ property({ type: String })
127
+ ], TextSnippetBlock.prototype, "viewSize", void 0);
128
+ TextSnippetBlock = __decorate([
129
+ customElement('text-snippet-block')
130
+ ], TextSnippetBlock);
131
+ export { TextSnippetBlock };
132
132
  //# sourceMappingURL=text-snippet-block.js.map
@@ -1,64 +1,64 @@
1
- import { PropertyValues } from 'lit';
2
- import type { SharedResizeObserverInterface, SharedResizeObserverResizeHandlerInterface } from '@internetarchive/shared-resize-observer';
3
- import type { TileDisplayMode } from '../models';
4
- import type { CollectionTitles } from '../data-source/models';
5
- import './grid/collection-tile';
6
- import './grid/item-tile';
7
- import './grid/account-tile';
8
- import './grid/search-tile';
9
- import './hover/tile-hover-pane';
10
- import './list/tile-list';
11
- import './list/tile-list-compact';
12
- import './list/tile-list-compact-header';
13
- import type { TileHoverPane } from './hover/tile-hover-pane';
14
- import { BaseTileComponent } from './base-tile-component';
15
- import { HoverPaneProperties, HoverPaneProviderInterface } from './hover/hover-pane-controller';
16
- export declare class TileDispatcher extends BaseTileComponent implements SharedResizeObserverResizeHandlerInterface, HoverPaneProviderInterface {
17
- tileDisplayMode?: TileDisplayMode;
18
- isManageView: boolean;
19
- resizeObserver?: SharedResizeObserverInterface;
20
- collectionTitles?: CollectionTitles;
21
- /** Whether this tile should include a hover pane at all (for applicable tile modes) */
22
- enableHoverPane: boolean;
23
- manageCheckTitle: string;
24
- private hoverPaneController?;
25
- private container;
26
- private hoverPane?;
27
- /** Maps each display mode to whether hover panes should appear in that mode */
28
- private static readonly HOVER_PANE_DISPLAY_MODES;
29
- render(): import("lit-html").TemplateResult<1>;
30
- protected firstUpdated(): void;
31
- private get headerTemplate();
32
- private get tileTemplate();
33
- private get linkTileTemplate();
34
- private get linkTileHref();
35
- private get manageCheckTemplate();
36
- /**
37
- * Whether hover pane behavior should be prepared for this tile
38
- * (e.g., whether mouse listeners should be attached, etc.)
39
- */
40
- private get shouldPrepareHoverPane();
41
- private get isHoverEnabled();
42
- /** @inheritdoc */
43
- getHoverPane(): TileHoverPane | undefined;
44
- /** @inheritdoc */
45
- getHoverPaneProps(): HoverPaneProperties;
46
- handleResize(entry: ResizeObserverEntry): void;
47
- disconnectedCallback(): void;
48
- private stopResizeObservation;
49
- private startResizeObservation;
50
- updated(props: PropertyValues): void;
51
- /**
52
- * Handler for when the tile link is left-clicked. Emits the `resultSelected` event.
53
- * In manage view, it also checks/unchecks the tile.
54
- */
55
- private handleLinkClicked;
56
- /**
57
- * Handler for when the tile link is right-clicked.
58
- * In manage view, it opens the item in a new tab. Otherwise, does nothing.
59
- */
60
- private handleLinkContextMenu;
61
- private tileInfoButtonPressed;
62
- private get tile();
63
- static get styles(): import("lit").CSSResult;
64
- }
1
+ import { PropertyValues } from 'lit';
2
+ import type { SharedResizeObserverInterface, SharedResizeObserverResizeHandlerInterface } from '@internetarchive/shared-resize-observer';
3
+ import type { TileDisplayMode } from '../models';
4
+ import type { CollectionTitles } from '../data-source/models';
5
+ import './grid/collection-tile';
6
+ import './grid/item-tile';
7
+ import './grid/account-tile';
8
+ import './grid/search-tile';
9
+ import './hover/tile-hover-pane';
10
+ import './list/tile-list';
11
+ import './list/tile-list-compact';
12
+ import './list/tile-list-compact-header';
13
+ import type { TileHoverPane } from './hover/tile-hover-pane';
14
+ import { BaseTileComponent } from './base-tile-component';
15
+ import { HoverPaneProperties, HoverPaneProviderInterface } from './hover/hover-pane-controller';
16
+ export declare class TileDispatcher extends BaseTileComponent implements SharedResizeObserverResizeHandlerInterface, HoverPaneProviderInterface {
17
+ tileDisplayMode?: TileDisplayMode;
18
+ isManageView: boolean;
19
+ resizeObserver?: SharedResizeObserverInterface;
20
+ collectionTitles?: CollectionTitles;
21
+ /** Whether this tile should include a hover pane at all (for applicable tile modes) */
22
+ enableHoverPane: boolean;
23
+ manageCheckTitle: string;
24
+ private hoverPaneController?;
25
+ private container;
26
+ private hoverPane?;
27
+ /** Maps each display mode to whether hover panes should appear in that mode */
28
+ private static readonly HOVER_PANE_DISPLAY_MODES;
29
+ render(): import("lit-html").TemplateResult<1>;
30
+ protected firstUpdated(): void;
31
+ private get headerTemplate();
32
+ private get tileTemplate();
33
+ private get linkTileTemplate();
34
+ private get linkTileHref();
35
+ private get manageCheckTemplate();
36
+ /**
37
+ * Whether hover pane behavior should be prepared for this tile
38
+ * (e.g., whether mouse listeners should be attached, etc.)
39
+ */
40
+ private get shouldPrepareHoverPane();
41
+ private get isHoverEnabled();
42
+ /** @inheritdoc */
43
+ getHoverPane(): TileHoverPane | undefined;
44
+ /** @inheritdoc */
45
+ getHoverPaneProps(): HoverPaneProperties;
46
+ handleResize(entry: ResizeObserverEntry): void;
47
+ disconnectedCallback(): void;
48
+ private stopResizeObservation;
49
+ private startResizeObservation;
50
+ updated(props: PropertyValues): void;
51
+ /**
52
+ * Handler for when the tile link is left-clicked. Emits the `resultSelected` event.
53
+ * In manage view, it also checks/unchecks the tile.
54
+ */
55
+ private handleLinkClicked;
56
+ /**
57
+ * Handler for when the tile link is right-clicked.
58
+ * In manage view, it opens the item in a new tab. Otherwise, does nothing.
59
+ */
60
+ private handleLinkContextMenu;
61
+ private tileInfoButtonPressed;
62
+ private get tile();
63
+ static get styles(): import("lit").CSSResult;
64
+ }