@internetarchive/collection-browser 2.7.7 → 2.7.8

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 (330) 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 +591 -582
  75. package/dist/src/collection-browser.js +1644 -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 +241 -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.d.ts +373 -373
  114. package/dist/src/data-source/collection-browser-data-source.js +982 -982
  115. package/dist/src/data-source/collection-browser-query-state.d.ts +43 -43
  116. package/dist/src/data-source/collection-browser-query-state.js +1 -1
  117. package/dist/src/data-source/models.d.ts +28 -28
  118. package/dist/src/data-source/models.js +8 -8
  119. package/dist/src/empty-placeholder.d.ts +23 -23
  120. package/dist/src/empty-placeholder.js +79 -79
  121. package/dist/src/expanded-date-picker.d.ts +43 -43
  122. package/dist/src/expanded-date-picker.js +109 -109
  123. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  124. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  125. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  126. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  127. package/dist/src/manage/manage-bar.d.ts +58 -35
  128. package/dist/src/manage/manage-bar.js +173 -79
  129. package/dist/src/manage/manage-bar.js.map +1 -1
  130. package/dist/src/manage/remove-items-modal-content.d.ts +9 -0
  131. package/dist/src/manage/remove-items-modal-content.js +104 -0
  132. package/dist/src/manage/remove-items-modal-content.js.map +1 -0
  133. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  134. package/dist/src/mediatype/mediatype-config.js +91 -91
  135. package/dist/src/models.d.ts +228 -219
  136. package/dist/src/models.js +401 -401
  137. package/dist/src/models.js.map +1 -1
  138. package/dist/src/restoration-state-handler.d.ts +70 -70
  139. package/dist/src/restoration-state-handler.js +363 -363
  140. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  141. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  142. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  143. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  144. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  145. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  146. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  147. package/dist/src/sort-filter-bar/img/list.js +2 -2
  148. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  149. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  150. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  151. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  152. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  153. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  154. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  155. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  156. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  157. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  158. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +223 -223
  159. package/dist/src/sort-filter-bar/sort-filter-bar.js +697 -697
  160. package/dist/src/styles/ia-button.d.ts +2 -2
  161. package/dist/src/styles/ia-button.js +17 -17
  162. package/dist/src/styles/item-image-styles.d.ts +8 -8
  163. package/dist/src/styles/item-image-styles.js +9 -9
  164. package/dist/src/styles/sr-only.d.ts +1 -1
  165. package/dist/src/styles/sr-only.js +2 -2
  166. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  167. package/dist/src/tiles/base-tile-component.js +64 -64
  168. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  169. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  170. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  171. package/dist/src/tiles/grid/account-tile.js +72 -72
  172. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  173. package/dist/src/tiles/grid/collection-tile.js +80 -80
  174. package/dist/src/tiles/grid/item-tile.d.ts +34 -34
  175. package/dist/src/tiles/grid/item-tile.js +158 -158
  176. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  177. package/dist/src/tiles/grid/search-tile.js +51 -51
  178. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  179. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  180. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  181. package/dist/src/tiles/grid/tile-stats.js +53 -53
  182. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  183. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  184. package/dist/src/tiles/hover/tile-hover-pane.d.ts +18 -18
  185. package/dist/src/tiles/hover/tile-hover-pane.js +69 -69
  186. package/dist/src/tiles/image-block.d.ts +18 -18
  187. package/dist/src/tiles/image-block.js +89 -89
  188. package/dist/src/tiles/item-image.d.ts +39 -39
  189. package/dist/src/tiles/item-image.js +154 -154
  190. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  191. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  192. package/dist/src/tiles/list/tile-list-compact.d.ts +19 -19
  193. package/dist/src/tiles/list/tile-list-compact.js +122 -122
  194. package/dist/src/tiles/list/tile-list.d.ts +54 -54
  195. package/dist/src/tiles/list/tile-list.js +323 -323
  196. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  197. package/dist/src/tiles/mediatype-icon.js +47 -47
  198. package/dist/src/tiles/overlay/icon-overlay.d.ts +8 -8
  199. package/dist/src/tiles/overlay/icon-overlay.js +25 -25
  200. package/dist/src/tiles/overlay/text-overlay.d.ts +9 -9
  201. package/dist/src/tiles/overlay/text-overlay.js +31 -31
  202. package/dist/src/tiles/review-block.d.ts +12 -12
  203. package/dist/src/tiles/review-block.js +56 -56
  204. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  205. package/dist/src/tiles/text-snippet-block.js +73 -73
  206. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  207. package/dist/src/tiles/tile-dispatcher.js +230 -230
  208. package/dist/src/tiles/tile-display-value-provider.d.ts +47 -47
  209. package/dist/src/tiles/tile-display-value-provider.js +94 -94
  210. package/dist/src/utils/analytics-events.d.ts +28 -28
  211. package/dist/src/utils/analytics-events.js +30 -30
  212. package/dist/src/utils/array-equals.d.ts +4 -4
  213. package/dist/src/utils/array-equals.js +10 -10
  214. package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -11
  215. package/dist/src/utils/collapse-repeated-quotes.js +13 -13
  216. package/dist/src/utils/facet-utils.d.ts +83 -83
  217. package/dist/src/utils/facet-utils.js +145 -145
  218. package/dist/src/utils/format-count.d.ts +7 -7
  219. package/dist/src/utils/format-count.js +76 -76
  220. package/dist/src/utils/format-date.d.ts +2 -2
  221. package/dist/src/utils/format-date.js +27 -27
  222. package/dist/src/utils/format-unit-size.d.ts +2 -2
  223. package/dist/src/utils/format-unit-size.js +33 -33
  224. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  225. package/dist/src/utils/local-date-from-utc.js +15 -15
  226. package/dist/src/utils/log.d.ts +7 -7
  227. package/dist/src/utils/log.js +15 -15
  228. package/dist/src/utils/resolve-mediatype.d.ts +8 -8
  229. package/dist/src/utils/resolve-mediatype.js +23 -23
  230. package/dist/src/utils/sha1.d.ts +2 -2
  231. package/dist/src/utils/sha1.js +8 -8
  232. package/dist/test/collection-browser.test.d.ts +1 -1
  233. package/dist/test/collection-browser.test.js +1293 -1293
  234. package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
  235. package/dist/test/collection-facets/facet-row.test.js +227 -227
  236. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  237. package/dist/test/collection-facets/facets-template.test.js +91 -91
  238. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  239. package/dist/test/collection-facets/more-facets-content.test.js +141 -141
  240. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  241. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  242. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  243. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  244. package/dist/test/collection-facets.test.d.ts +2 -2
  245. package/dist/test/collection-facets.test.js +690 -690
  246. package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -1
  247. package/dist/test/data-source/collection-browser-data-source.test.js +89 -89
  248. package/dist/test/empty-placeholder.test.d.ts +1 -1
  249. package/dist/test/empty-placeholder.test.js +63 -63
  250. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  251. package/dist/test/expanded-date-picker.test.js +95 -95
  252. package/dist/test/icon-overlay.test.d.ts +1 -1
  253. package/dist/test/icon-overlay.test.js +24 -24
  254. package/dist/test/image-block.test.d.ts +1 -1
  255. package/dist/test/image-block.test.js +107 -107
  256. package/dist/test/item-image.test.d.ts +1 -1
  257. package/dist/test/item-image.test.js +85 -85
  258. package/dist/test/manage/manage-bar.test.d.ts +2 -1
  259. package/dist/test/manage/manage-bar.test.js +106 -91
  260. package/dist/test/manage/manage-bar.test.js.map +1 -1
  261. package/dist/test/manage/remove-items-modal-content.test.d.ts +1 -0
  262. package/dist/test/manage/remove-items-modal-content.test.js +66 -0
  263. package/dist/test/manage/remove-items-modal-content.test.js.map +1 -0
  264. package/dist/test/mediatype-config.test.d.ts +1 -1
  265. package/dist/test/mediatype-config.test.js +16 -16
  266. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  267. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  268. package/dist/test/mocks/mock-search-responses.d.ts +25 -25
  269. package/dist/test/mocks/mock-search-responses.js +942 -942
  270. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  271. package/dist/test/mocks/mock-search-service.js +54 -54
  272. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  273. package/dist/test/restoration-state-handler.test.js +270 -270
  274. package/dist/test/review-block.test.d.ts +1 -1
  275. package/dist/test/review-block.test.js +44 -44
  276. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  277. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  278. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  279. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  280. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  281. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +426 -426
  282. package/dist/test/text-overlay.test.d.ts +1 -1
  283. package/dist/test/text-overlay.test.js +38 -38
  284. package/dist/test/text-snippet-block.test.d.ts +1 -1
  285. package/dist/test/text-snippet-block.test.js +57 -57
  286. package/dist/test/tile-stats.test.d.ts +1 -1
  287. package/dist/test/tile-stats.test.js +81 -81
  288. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  289. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  290. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  291. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  292. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  293. package/dist/test/tiles/grid/item-tile.test.js +312 -312
  294. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  295. package/dist/test/tiles/grid/search-tile.test.js +51 -51
  296. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  297. package/dist/test/tiles/hover/hover-pane-controller.test.js +259 -259
  298. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  299. package/dist/test/tiles/hover/tile-hover-pane.test.js +56 -56
  300. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  301. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  302. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  303. package/dist/test/tiles/list/tile-list.test.js +297 -297
  304. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  305. package/dist/test/tiles/tile-dispatcher.test.js +100 -100
  306. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  307. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  308. package/dist/test/utils/array-equals.test.d.ts +1 -1
  309. package/dist/test/utils/array-equals.test.js +26 -26
  310. package/dist/test/utils/format-count.test.d.ts +1 -1
  311. package/dist/test/utils/format-count.test.js +23 -23
  312. package/dist/test/utils/format-date.test.d.ts +1 -1
  313. package/dist/test/utils/format-date.test.js +30 -30
  314. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  315. package/dist/test/utils/format-unit-size.test.js +17 -17
  316. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  317. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  318. package/local.archive.org.cert +86 -86
  319. package/local.archive.org.key +27 -27
  320. package/package.json +1 -1
  321. package/renovate.json +6 -6
  322. package/src/app-root.ts +38 -4
  323. package/src/collection-browser.ts +36 -16
  324. package/src/manage/manage-bar.ts +119 -23
  325. package/src/manage/remove-items-modal-content.ts +102 -0
  326. package/src/models.ts +10 -0
  327. package/test/manage/manage-bar.test.ts +41 -18
  328. package/test/manage/remove-items-modal-content.test.ts +82 -0
  329. package/web-dev-server.config.mjs +30 -30
  330. package/web-test-runner.config.mjs +41 -41
@@ -1,308 +1,308 @@
1
- import { __decorate } from "tslib";
2
- /* eslint-disable dot-notation */
3
- /* eslint-disable lit-a11y/click-events-have-key-events */
4
- import { css, html, LitElement, nothing, } from 'lit';
5
- import { customElement, property, state } from 'lit/decorators.js';
6
- import { AggregationSortType, } from '@internetarchive/search-service';
7
- import { msg } from '@lit/localize';
8
- import { facetTitles, suppressedCollections, valueFacetSort, defaultFacetSort, getDefaultSelectedFacets, } from '../models';
9
- import '@internetarchive/ia-activity-indicator/ia-activity-indicator';
10
- import './more-facets-pagination';
11
- import './facets-template';
12
- import { analyticsActions, analyticsCategories, } from '../utils/analytics-events';
13
- import './toggle-switch';
14
- import { srOnlyStyle } from '../styles/sr-only';
15
- import { mergeSelectedFacets, sortBucketsBySelectionState, updateSelectedFacetBucket, } from '../utils/facet-utils';
16
- let MoreFacetsContent = class MoreFacetsContent extends LitElement {
17
- constructor() {
18
- super(...arguments);
19
- /**
20
- * Maximum number of facets to show per page within the modal.
21
- */
22
- this.facetsPerPage = 35;
23
- /**
24
- * Whether we are waiting for facet data to load.
25
- * We begin with this set to true so that we show an initial loading indicator.
26
- */
27
- this.facetsLoading = true;
28
- this.sortedBy = AggregationSortType.COUNT;
29
- /**
30
- * An object holding any changes the patron has made to their facet selections
31
- * within the modal dialog but which they have not yet applied. These are
32
- * eventually merged into the existing `selectedFacets` when the patron applies
33
- * their changes, or discarded if they cancel/close the dialog.
34
- */
35
- this.unappliedFacetChanges = getDefaultSelectedFacets();
36
- /**
37
- * Which page of facets we are showing.
38
- */
39
- this.pageNumber = 1;
40
- }
41
- willUpdate(changed) {
42
- if (changed.has('aggregations') ||
43
- changed.has('facetsPerPage') ||
44
- changed.has('sortedBy') ||
45
- changed.has('selectedFacets') ||
46
- changed.has('unappliedFacetChanges')) {
47
- // Convert the merged selected facets & aggregations into a facet group, and
48
- // store it for reuse across pages.
49
- this.facetGroup = this.mergedFacets;
50
- }
51
- }
52
- updated(changed) {
53
- // If any of the search properties change, it triggers a facet fetch
54
- if (changed.has('facetKey') ||
55
- changed.has('query') ||
56
- changed.has('searchType') ||
57
- changed.has('filterMap')) {
58
- this.facetsLoading = true;
59
- this.pageNumber = 1;
60
- this.sortedBy = defaultFacetSort[this.facetKey];
61
- this.updateSpecificFacets();
62
- }
63
- }
64
- firstUpdated() {
65
- this.setupEscapeListeners();
66
- }
67
- /**
68
- * Close more facets modal on Escape click
69
- */
70
- setupEscapeListeners() {
71
- if (this.modalManager) {
72
- document.addEventListener('keydown', (e) => {
73
- var _a;
74
- if (e.key === 'Escape') {
75
- (_a = this.modalManager) === null || _a === void 0 ? void 0 : _a.closeModal();
76
- }
77
- });
78
- }
79
- else {
80
- document.removeEventListener('keydown', () => { });
81
- }
82
- }
83
- /**
84
- * Whether facet requests are for the search_results page type (either defaulted or explicitly).
85
- */
86
- get isSearchResultsPage() {
87
- var _a;
88
- // Default page type is search_results when none is specified, so we check
89
- // for undefined as well.
90
- const pageType = (_a = this.pageSpecifierParams) === null || _a === void 0 ? void 0 : _a.pageType;
91
- return pageType === undefined || pageType === 'search_results';
92
- }
93
- /**
94
- * Get specific facets data from search-service API based of currently query params
95
- * - this.aggregations - hold result of search service and being used for further processing.
96
- */
97
- async updateSpecificFacets() {
98
- var _a, _b, _c, _d, _e, _f;
99
- if (!this.facetKey)
100
- return; // Can't fetch facets if we don't know what type of facets we need!
101
- const trimmedQuery = (_a = this.query) === null || _a === void 0 ? void 0 : _a.trim();
102
- if (!trimmedQuery && this.isSearchResultsPage)
103
- return; // The search page _requires_ a query
104
- const aggregations = {
105
- simpleParams: [this.facetKey],
106
- };
107
- const aggregationsSize = 65535; // todo - do we want to have all the records at once?
108
- const params = {
109
- ...this.pageSpecifierParams,
110
- query: trimmedQuery || '',
111
- filters: this.filterMap,
112
- aggregations,
113
- aggregationsSize,
114
- rows: 0, // todo - do we want server-side pagination with offset/page/limit flag?
115
- };
116
- const results = await ((_b = this.searchService) === null || _b === void 0 ? void 0 : _b.search(params, this.searchType));
117
- this.aggregations = (_c = results === null || results === void 0 ? void 0 : results.success) === null || _c === void 0 ? void 0 : _c.response.aggregations;
118
- this.facetsLoading = false;
119
- const collectionTitles = (_e = (_d = results === null || results === void 0 ? void 0 : results.success) === null || _d === void 0 ? void 0 : _d.response) === null || _e === void 0 ? void 0 : _e.collectionTitles;
120
- if (collectionTitles) {
121
- for (const [id, title] of Object.entries(collectionTitles)) {
122
- (_f = this.collectionTitles) === null || _f === void 0 ? void 0 : _f.set(id, title);
123
- }
124
- }
125
- }
126
- /**
127
- * Handler for page number changes from the pagination widget.
128
- */
129
- pageNumberClicked(e) {
130
- var _a, _b;
131
- const page = (_a = e === null || e === void 0 ? void 0 : e.detail) === null || _a === void 0 ? void 0 : _a.page;
132
- if (page) {
133
- this.pageNumber = Number(page);
134
- }
135
- (_b = this.analyticsHandler) === null || _b === void 0 ? void 0 : _b.sendEvent({
136
- category: analyticsCategories.default,
137
- action: analyticsActions.moreFacetsPageChange,
138
- label: `${this.pageNumber}`,
139
- });
140
- }
141
- /**
142
- * Combines the selected facets with the aggregations to create a single list of facets
143
- */
144
- get mergedFacets() {
145
- var _a;
146
- if (!this.facetKey || !this.selectedFacets)
147
- return undefined;
148
- const { selectedFacetGroup, aggregationFacetGroup } = this;
149
- // If we don't have any aggregations, then there is nothing to show yet
150
- if (!aggregationFacetGroup)
151
- return undefined;
152
- // Start with either the selected group if we have one, or the aggregate group otherwise
153
- const facetGroup = { ...(selectedFacetGroup !== null && selectedFacetGroup !== void 0 ? selectedFacetGroup : aggregationFacetGroup) };
154
- // Attach the counts to the selected buckets
155
- const bucketsWithCount = (_a = selectedFacetGroup === null || selectedFacetGroup === void 0 ? void 0 : selectedFacetGroup.buckets.map(bucket => {
156
- const selectedBucket = aggregationFacetGroup.buckets.find(b => b.key === bucket.key);
157
- return selectedBucket
158
- ? {
159
- ...bucket,
160
- count: selectedBucket.count,
161
- }
162
- : bucket;
163
- })) !== null && _a !== void 0 ? _a : [];
164
- // Sort the buckets by selection state
165
- // We do this *prior* to considering unapplied selections, because we want the facets
166
- // to remain in position when they are selected/unselected, rather than re-sort themselves.
167
- sortBucketsBySelectionState(bucketsWithCount, this.sortedBy);
168
- // Append any additional buckets that were not selected
169
- aggregationFacetGroup.buckets.forEach(bucket => {
170
- const existingBucket = selectedFacetGroup === null || selectedFacetGroup === void 0 ? void 0 : selectedFacetGroup.buckets.find(b => b.key === bucket.key);
171
- if (existingBucket)
172
- return;
173
- bucketsWithCount.push(bucket);
174
- });
175
- // Apply any unapplied selections that appear on this page
176
- const unappliedBuckets = this.unappliedFacetChanges[this.facetKey];
177
- for (const [index, bucket] of bucketsWithCount.entries()) {
178
- const unappliedBucket = unappliedBuckets[bucket.key];
179
- if (unappliedBucket) {
180
- bucketsWithCount[index] = { ...unappliedBucket };
181
- }
182
- }
183
- facetGroup.buckets = bucketsWithCount;
184
- return facetGroup;
185
- }
186
- /**
187
- * Converts the selected facets for the current facet key to a `FacetGroup`,
188
- * which is easier to work with.
189
- */
190
- get selectedFacetGroup() {
191
- if (!this.selectedFacets || !this.facetKey)
192
- return undefined;
193
- const selectedFacetsForKey = this.selectedFacets[this.facetKey];
194
- if (!selectedFacetsForKey)
195
- return undefined;
196
- const facetGroupTitle = facetTitles[this.facetKey];
197
- const buckets = Object.entries(selectedFacetsForKey).map(([value, data]) => {
198
- const displayText = value;
199
- return {
200
- displayText,
201
- key: value,
202
- count: data === null || data === void 0 ? void 0 : data.count,
203
- state: data === null || data === void 0 ? void 0 : data.state,
204
- };
205
- });
206
- return {
207
- title: facetGroupTitle,
208
- key: this.facetKey,
209
- buckets,
210
- };
211
- }
212
- /**
213
- * Converts the raw `aggregations` for the current facet key to a `FacetGroup`,
214
- * which is easier to work with.
215
- */
216
- get aggregationFacetGroup() {
217
- if (!this.aggregations || !this.facetKey)
218
- return undefined;
219
- const currentAggregation = this.aggregations[this.facetKey];
220
- if (!currentAggregation)
221
- return undefined;
222
- const facetGroupTitle = facetTitles[this.facetKey];
223
- // Order the facets according to the current sort option
224
- let sortedBuckets = currentAggregation.getSortedBuckets(this.sortedBy);
225
- if (this.facetKey === 'collection') {
226
- // we are not showing fav- collections or certain deemphasized collections in facets
227
- sortedBuckets = sortedBuckets === null || sortedBuckets === void 0 ? void 0 : sortedBuckets.filter(bucket => {
228
- var _a;
229
- const bucketKey = (_a = bucket === null || bucket === void 0 ? void 0 : bucket.key) === null || _a === void 0 ? void 0 : _a.toString();
230
- return (!suppressedCollections[bucketKey] && !(bucketKey === null || bucketKey === void 0 ? void 0 : bucketKey.startsWith('fav-')));
231
- });
232
- }
233
- // Construct the array of facet buckets from the aggregation buckets
234
- const facetBuckets = sortedBuckets.map(bucket => {
235
- const bucketKeyStr = `${bucket.key}`;
236
- return {
237
- displayText: `${bucketKeyStr}`,
238
- key: `${bucketKeyStr}`,
239
- count: bucket.doc_count,
240
- state: 'none',
241
- };
242
- });
243
- return {
244
- title: facetGroupTitle,
245
- key: this.facetKey,
246
- buckets: facetBuckets,
247
- };
248
- }
249
- /**
250
- * Returns a FacetGroup representing only the current page of facet buckets to show.
251
- */
252
- get facetGroupForCurrentPage() {
253
- const { facetGroup } = this;
254
- if (!facetGroup)
255
- return undefined;
256
- // Slice out only the current page of facet buckets
257
- const firstBucketIndexOnPage = (this.pageNumber - 1) * this.facetsPerPage;
258
- const truncatedBuckets = facetGroup.buckets.slice(firstBucketIndexOnPage, firstBucketIndexOnPage + this.facetsPerPage);
259
- return {
260
- ...facetGroup,
261
- buckets: truncatedBuckets,
262
- };
263
- }
264
- get moreFacetsTemplate() {
1
+ import { __decorate } from "tslib";
2
+ /* eslint-disable dot-notation */
3
+ /* eslint-disable lit-a11y/click-events-have-key-events */
4
+ import { css, html, LitElement, nothing, } from 'lit';
5
+ import { customElement, property, state } from 'lit/decorators.js';
6
+ import { AggregationSortType, } from '@internetarchive/search-service';
7
+ import { msg } from '@lit/localize';
8
+ import { facetTitles, suppressedCollections, valueFacetSort, defaultFacetSort, getDefaultSelectedFacets, } from '../models';
9
+ import '@internetarchive/ia-activity-indicator/ia-activity-indicator';
10
+ import './more-facets-pagination';
11
+ import './facets-template';
12
+ import { analyticsActions, analyticsCategories, } from '../utils/analytics-events';
13
+ import './toggle-switch';
14
+ import { srOnlyStyle } from '../styles/sr-only';
15
+ import { mergeSelectedFacets, sortBucketsBySelectionState, updateSelectedFacetBucket, } from '../utils/facet-utils';
16
+ let MoreFacetsContent = class MoreFacetsContent extends LitElement {
17
+ constructor() {
18
+ super(...arguments);
19
+ /**
20
+ * Maximum number of facets to show per page within the modal.
21
+ */
22
+ this.facetsPerPage = 35;
23
+ /**
24
+ * Whether we are waiting for facet data to load.
25
+ * We begin with this set to true so that we show an initial loading indicator.
26
+ */
27
+ this.facetsLoading = true;
28
+ this.sortedBy = AggregationSortType.COUNT;
29
+ /**
30
+ * An object holding any changes the patron has made to their facet selections
31
+ * within the modal dialog but which they have not yet applied. These are
32
+ * eventually merged into the existing `selectedFacets` when the patron applies
33
+ * their changes, or discarded if they cancel/close the dialog.
34
+ */
35
+ this.unappliedFacetChanges = getDefaultSelectedFacets();
36
+ /**
37
+ * Which page of facets we are showing.
38
+ */
39
+ this.pageNumber = 1;
40
+ }
41
+ willUpdate(changed) {
42
+ if (changed.has('aggregations') ||
43
+ changed.has('facetsPerPage') ||
44
+ changed.has('sortedBy') ||
45
+ changed.has('selectedFacets') ||
46
+ changed.has('unappliedFacetChanges')) {
47
+ // Convert the merged selected facets & aggregations into a facet group, and
48
+ // store it for reuse across pages.
49
+ this.facetGroup = this.mergedFacets;
50
+ }
51
+ }
52
+ updated(changed) {
53
+ // If any of the search properties change, it triggers a facet fetch
54
+ if (changed.has('facetKey') ||
55
+ changed.has('query') ||
56
+ changed.has('searchType') ||
57
+ changed.has('filterMap')) {
58
+ this.facetsLoading = true;
59
+ this.pageNumber = 1;
60
+ this.sortedBy = defaultFacetSort[this.facetKey];
61
+ this.updateSpecificFacets();
62
+ }
63
+ }
64
+ firstUpdated() {
65
+ this.setupEscapeListeners();
66
+ }
67
+ /**
68
+ * Close more facets modal on Escape click
69
+ */
70
+ setupEscapeListeners() {
71
+ if (this.modalManager) {
72
+ document.addEventListener('keydown', (e) => {
73
+ var _a;
74
+ if (e.key === 'Escape') {
75
+ (_a = this.modalManager) === null || _a === void 0 ? void 0 : _a.closeModal();
76
+ }
77
+ });
78
+ }
79
+ else {
80
+ document.removeEventListener('keydown', () => { });
81
+ }
82
+ }
83
+ /**
84
+ * Whether facet requests are for the search_results page type (either defaulted or explicitly).
85
+ */
86
+ get isSearchResultsPage() {
87
+ var _a;
88
+ // Default page type is search_results when none is specified, so we check
89
+ // for undefined as well.
90
+ const pageType = (_a = this.pageSpecifierParams) === null || _a === void 0 ? void 0 : _a.pageType;
91
+ return pageType === undefined || pageType === 'search_results';
92
+ }
93
+ /**
94
+ * Get specific facets data from search-service API based of currently query params
95
+ * - this.aggregations - hold result of search service and being used for further processing.
96
+ */
97
+ async updateSpecificFacets() {
98
+ var _a, _b, _c, _d, _e, _f;
99
+ if (!this.facetKey)
100
+ return; // Can't fetch facets if we don't know what type of facets we need!
101
+ const trimmedQuery = (_a = this.query) === null || _a === void 0 ? void 0 : _a.trim();
102
+ if (!trimmedQuery && this.isSearchResultsPage)
103
+ return; // The search page _requires_ a query
104
+ const aggregations = {
105
+ simpleParams: [this.facetKey],
106
+ };
107
+ const aggregationsSize = 65535; // todo - do we want to have all the records at once?
108
+ const params = {
109
+ ...this.pageSpecifierParams,
110
+ query: trimmedQuery || '',
111
+ filters: this.filterMap,
112
+ aggregations,
113
+ aggregationsSize,
114
+ rows: 0, // todo - do we want server-side pagination with offset/page/limit flag?
115
+ };
116
+ const results = await ((_b = this.searchService) === null || _b === void 0 ? void 0 : _b.search(params, this.searchType));
117
+ this.aggregations = (_c = results === null || results === void 0 ? void 0 : results.success) === null || _c === void 0 ? void 0 : _c.response.aggregations;
118
+ this.facetsLoading = false;
119
+ const collectionTitles = (_e = (_d = results === null || results === void 0 ? void 0 : results.success) === null || _d === void 0 ? void 0 : _d.response) === null || _e === void 0 ? void 0 : _e.collectionTitles;
120
+ if (collectionTitles) {
121
+ for (const [id, title] of Object.entries(collectionTitles)) {
122
+ (_f = this.collectionTitles) === null || _f === void 0 ? void 0 : _f.set(id, title);
123
+ }
124
+ }
125
+ }
126
+ /**
127
+ * Handler for page number changes from the pagination widget.
128
+ */
129
+ pageNumberClicked(e) {
130
+ var _a, _b;
131
+ const page = (_a = e === null || e === void 0 ? void 0 : e.detail) === null || _a === void 0 ? void 0 : _a.page;
132
+ if (page) {
133
+ this.pageNumber = Number(page);
134
+ }
135
+ (_b = this.analyticsHandler) === null || _b === void 0 ? void 0 : _b.sendEvent({
136
+ category: analyticsCategories.default,
137
+ action: analyticsActions.moreFacetsPageChange,
138
+ label: `${this.pageNumber}`,
139
+ });
140
+ }
141
+ /**
142
+ * Combines the selected facets with the aggregations to create a single list of facets
143
+ */
144
+ get mergedFacets() {
145
+ var _a;
146
+ if (!this.facetKey || !this.selectedFacets)
147
+ return undefined;
148
+ const { selectedFacetGroup, aggregationFacetGroup } = this;
149
+ // If we don't have any aggregations, then there is nothing to show yet
150
+ if (!aggregationFacetGroup)
151
+ return undefined;
152
+ // Start with either the selected group if we have one, or the aggregate group otherwise
153
+ const facetGroup = { ...(selectedFacetGroup !== null && selectedFacetGroup !== void 0 ? selectedFacetGroup : aggregationFacetGroup) };
154
+ // Attach the counts to the selected buckets
155
+ const bucketsWithCount = (_a = selectedFacetGroup === null || selectedFacetGroup === void 0 ? void 0 : selectedFacetGroup.buckets.map(bucket => {
156
+ const selectedBucket = aggregationFacetGroup.buckets.find(b => b.key === bucket.key);
157
+ return selectedBucket
158
+ ? {
159
+ ...bucket,
160
+ count: selectedBucket.count,
161
+ }
162
+ : bucket;
163
+ })) !== null && _a !== void 0 ? _a : [];
164
+ // Sort the buckets by selection state
165
+ // We do this *prior* to considering unapplied selections, because we want the facets
166
+ // to remain in position when they are selected/unselected, rather than re-sort themselves.
167
+ sortBucketsBySelectionState(bucketsWithCount, this.sortedBy);
168
+ // Append any additional buckets that were not selected
169
+ aggregationFacetGroup.buckets.forEach(bucket => {
170
+ const existingBucket = selectedFacetGroup === null || selectedFacetGroup === void 0 ? void 0 : selectedFacetGroup.buckets.find(b => b.key === bucket.key);
171
+ if (existingBucket)
172
+ return;
173
+ bucketsWithCount.push(bucket);
174
+ });
175
+ // Apply any unapplied selections that appear on this page
176
+ const unappliedBuckets = this.unappliedFacetChanges[this.facetKey];
177
+ for (const [index, bucket] of bucketsWithCount.entries()) {
178
+ const unappliedBucket = unappliedBuckets[bucket.key];
179
+ if (unappliedBucket) {
180
+ bucketsWithCount[index] = { ...unappliedBucket };
181
+ }
182
+ }
183
+ facetGroup.buckets = bucketsWithCount;
184
+ return facetGroup;
185
+ }
186
+ /**
187
+ * Converts the selected facets for the current facet key to a `FacetGroup`,
188
+ * which is easier to work with.
189
+ */
190
+ get selectedFacetGroup() {
191
+ if (!this.selectedFacets || !this.facetKey)
192
+ return undefined;
193
+ const selectedFacetsForKey = this.selectedFacets[this.facetKey];
194
+ if (!selectedFacetsForKey)
195
+ return undefined;
196
+ const facetGroupTitle = facetTitles[this.facetKey];
197
+ const buckets = Object.entries(selectedFacetsForKey).map(([value, data]) => {
198
+ const displayText = value;
199
+ return {
200
+ displayText,
201
+ key: value,
202
+ count: data === null || data === void 0 ? void 0 : data.count,
203
+ state: data === null || data === void 0 ? void 0 : data.state,
204
+ };
205
+ });
206
+ return {
207
+ title: facetGroupTitle,
208
+ key: this.facetKey,
209
+ buckets,
210
+ };
211
+ }
212
+ /**
213
+ * Converts the raw `aggregations` for the current facet key to a `FacetGroup`,
214
+ * which is easier to work with.
215
+ */
216
+ get aggregationFacetGroup() {
217
+ if (!this.aggregations || !this.facetKey)
218
+ return undefined;
219
+ const currentAggregation = this.aggregations[this.facetKey];
220
+ if (!currentAggregation)
221
+ return undefined;
222
+ const facetGroupTitle = facetTitles[this.facetKey];
223
+ // Order the facets according to the current sort option
224
+ let sortedBuckets = currentAggregation.getSortedBuckets(this.sortedBy);
225
+ if (this.facetKey === 'collection') {
226
+ // we are not showing fav- collections or certain deemphasized collections in facets
227
+ sortedBuckets = sortedBuckets === null || sortedBuckets === void 0 ? void 0 : sortedBuckets.filter(bucket => {
228
+ var _a;
229
+ const bucketKey = (_a = bucket === null || bucket === void 0 ? void 0 : bucket.key) === null || _a === void 0 ? void 0 : _a.toString();
230
+ return (!suppressedCollections[bucketKey] && !(bucketKey === null || bucketKey === void 0 ? void 0 : bucketKey.startsWith('fav-')));
231
+ });
232
+ }
233
+ // Construct the array of facet buckets from the aggregation buckets
234
+ const facetBuckets = sortedBuckets.map(bucket => {
235
+ const bucketKeyStr = `${bucket.key}`;
236
+ return {
237
+ displayText: `${bucketKeyStr}`,
238
+ key: `${bucketKeyStr}`,
239
+ count: bucket.doc_count,
240
+ state: 'none',
241
+ };
242
+ });
243
+ return {
244
+ title: facetGroupTitle,
245
+ key: this.facetKey,
246
+ buckets: facetBuckets,
247
+ };
248
+ }
249
+ /**
250
+ * Returns a FacetGroup representing only the current page of facet buckets to show.
251
+ */
252
+ get facetGroupForCurrentPage() {
253
+ const { facetGroup } = this;
254
+ if (!facetGroup)
255
+ return undefined;
256
+ // Slice out only the current page of facet buckets
257
+ const firstBucketIndexOnPage = (this.pageNumber - 1) * this.facetsPerPage;
258
+ const truncatedBuckets = facetGroup.buckets.slice(firstBucketIndexOnPage, firstBucketIndexOnPage + this.facetsPerPage);
259
+ return {
260
+ ...facetGroup,
261
+ buckets: truncatedBuckets,
262
+ };
263
+ }
264
+ get moreFacetsTemplate() {
265
265
  return html `
266
266
  <facets-template
267
267
  .facetGroup=${this.facetGroupForCurrentPage}
268
268
  .selectedFacets=${this.selectedFacets}
269
269
  .collectionTitles=${this.collectionTitles}
270
- @facetClick=${(e) => {
271
- if (this.facetKey) {
272
- this.unappliedFacetChanges = updateSelectedFacetBucket(this.unappliedFacetChanges, this.facetKey, e.detail.bucket);
273
- }
270
+ @facetClick=${(e) => {
271
+ if (this.facetKey) {
272
+ this.unappliedFacetChanges = updateSelectedFacetBucket(this.unappliedFacetChanges, this.facetKey, e.detail.bucket);
273
+ }
274
274
  }}
275
275
  ></facets-template>
276
- `;
277
- }
278
- get loaderTemplate() {
276
+ `;
277
+ }
278
+ get loaderTemplate() {
279
279
  return html `<div class="facets-loader">
280
280
  <ia-activity-indicator .mode=${'processing'}></ia-activity-indicator>
281
- </div> `;
282
- }
283
- /**
284
- * How many pages of facets to show in the modal pagination widget
285
- */
286
- get paginationSize() {
287
- var _a;
288
- if (!this.aggregations || !this.facetKey)
289
- return 0;
290
- // Calculate the appropriate number of pages to show in the modal pagination widget
291
- const length = (_a = this.aggregations[this.facetKey]) === null || _a === void 0 ? void 0 : _a.buckets.length;
292
- return Math.ceil(length / this.facetsPerPage);
293
- }
294
- // render pagination if more then 1 page
295
- get facetsPaginationTemplate() {
296
- return this.paginationSize > 1
281
+ </div> `;
282
+ }
283
+ /**
284
+ * How many pages of facets to show in the modal pagination widget
285
+ */
286
+ get paginationSize() {
287
+ var _a;
288
+ if (!this.aggregations || !this.facetKey)
289
+ return 0;
290
+ // Calculate the appropriate number of pages to show in the modal pagination widget
291
+ const length = (_a = this.aggregations[this.facetKey]) === null || _a === void 0 ? void 0 : _a.buckets.length;
292
+ return Math.ceil(length / this.facetsPerPage);
293
+ }
294
+ // render pagination if more then 1 page
295
+ get facetsPaginationTemplate() {
296
+ return this.paginationSize > 1
297
297
  ? html `<more-facets-pagination
298
298
  .size=${this.paginationSize}
299
299
  .currentPage=${1}
300
300
  @pageNumberClicked=${this.pageNumberClicked}
301
- ></more-facets-pagination>`
302
- : nothing;
303
- }
304
- get footerTemplate() {
305
- if (this.paginationSize > 0) {
301
+ ></more-facets-pagination>`
302
+ : nothing;
303
+ }
304
+ get footerTemplate() {
305
+ if (this.paginationSize > 0) {
306
306
  return html `${this.facetsPaginationTemplate}
307
307
  <div class="footer">
308
308
  <button
@@ -319,24 +319,24 @@ let MoreFacetsContent = class MoreFacetsContent extends LitElement {
319
319
  >
320
320
  Apply filters
321
321
  </button>
322
- </div> `;
323
- }
324
- return nothing;
325
- }
326
- sortFacetAggregation(facetSortType) {
327
- this.sortedBy = facetSortType;
328
- this.dispatchEvent(new CustomEvent('sortedFacets', { detail: this.sortedBy }));
329
- }
330
- get modalHeaderTemplate() {
331
- var _a, _b, _c;
332
- const facetSort = (_a = this.sortedBy) !== null && _a !== void 0 ? _a : defaultFacetSort[this.facetKey];
333
- const defaultSwitchSide = facetSort === AggregationSortType.COUNT ? 'left' : 'right';
322
+ </div> `;
323
+ }
324
+ return nothing;
325
+ }
326
+ sortFacetAggregation(facetSortType) {
327
+ this.sortedBy = facetSortType;
328
+ this.dispatchEvent(new CustomEvent('sortedFacets', { detail: this.sortedBy }));
329
+ }
330
+ get modalHeaderTemplate() {
331
+ var _a, _b, _c;
332
+ const facetSort = (_a = this.sortedBy) !== null && _a !== void 0 ? _a : defaultFacetSort[this.facetKey];
333
+ const defaultSwitchSide = facetSort === AggregationSortType.COUNT ? 'left' : 'right';
334
334
  return html `<span class="sr-only">${msg('More facets for:')}</span>
335
335
  <span class="title">
336
336
  ${(_b = this.facetGroup) === null || _b === void 0 ? void 0 : _b.title}
337
337
 
338
338
  <label class="sort-label">${msg('Sort by:')}</label>
339
- ${this.facetKey
339
+ ${this.facetKey
340
340
  ? html `<toggle-switch
341
341
  class="sort-toggle"
342
342
  leftValue=${AggregationSortType.COUNT}
@@ -344,17 +344,17 @@ let MoreFacetsContent = class MoreFacetsContent extends LitElement {
344
344
  rightValue=${valueFacetSort[this.facetKey]}
345
345
  rightLabel=${(_c = this.facetGroup) === null || _c === void 0 ? void 0 : _c.title}
346
346
  side=${defaultSwitchSide}
347
- @change=${(e) => {
348
- this.sortFacetAggregation(Number(e.detail));
347
+ @change=${(e) => {
348
+ this.sortFacetAggregation(Number(e.detail));
349
349
  }}
350
- ></toggle-switch>`
350
+ ></toggle-switch>`
351
351
  : nothing}
352
- </span>`;
353
- }
354
- render() {
352
+ </span>`;
353
+ }
354
+ render() {
355
355
  return html `
356
- ${this.facetsLoading
357
- ? this.loaderTemplate
356
+ ${this.facetsLoading
357
+ ? this.loaderTemplate
358
358
  : html `
359
359
  <section id="more-facets">
360
360
  <div class="header-content">${this.modalHeaderTemplate}</div>
@@ -362,41 +362,41 @@ let MoreFacetsContent = class MoreFacetsContent extends LitElement {
362
362
  ${this.footerTemplate}
363
363
  </section>
364
364
  `}
365
- `;
366
- }
367
- applySearchFacetsClicked() {
368
- var _a, _b;
369
- const mergedSelections = mergeSelectedFacets(this.selectedFacets, this.unappliedFacetChanges);
370
- const event = new CustomEvent('facetsChanged', {
371
- detail: mergedSelections,
372
- bubbles: true,
373
- composed: true,
374
- });
375
- this.dispatchEvent(event);
376
- // Reset the unapplied changes back to default, now that they have been applied
377
- this.unappliedFacetChanges = getDefaultSelectedFacets();
378
- (_a = this.modalManager) === null || _a === void 0 ? void 0 : _a.closeModal();
379
- (_b = this.analyticsHandler) === null || _b === void 0 ? void 0 : _b.sendEvent({
380
- category: analyticsCategories.default,
381
- action: `${analyticsActions.applyMoreFacetsModal}`,
382
- label: `${this.facetKey}`,
383
- });
384
- }
385
- cancelClick() {
386
- var _a, _b;
387
- // Reset the unapplied changes back to default
388
- this.unappliedFacetChanges = getDefaultSelectedFacets();
389
- (_a = this.modalManager) === null || _a === void 0 ? void 0 : _a.closeModal();
390
- (_b = this.analyticsHandler) === null || _b === void 0 ? void 0 : _b.sendEvent({
391
- category: analyticsCategories.default,
392
- action: analyticsActions.closeMoreFacetsModal,
393
- label: `${this.facetKey}`,
394
- });
395
- }
396
- static get styles() {
397
- const modalSubmitButton = css `var(--primaryButtonBGColor, #194880)`;
398
- return [
399
- srOnlyStyle,
365
+ `;
366
+ }
367
+ applySearchFacetsClicked() {
368
+ var _a, _b;
369
+ const mergedSelections = mergeSelectedFacets(this.selectedFacets, this.unappliedFacetChanges);
370
+ const event = new CustomEvent('facetsChanged', {
371
+ detail: mergedSelections,
372
+ bubbles: true,
373
+ composed: true,
374
+ });
375
+ this.dispatchEvent(event);
376
+ // Reset the unapplied changes back to default, now that they have been applied
377
+ this.unappliedFacetChanges = getDefaultSelectedFacets();
378
+ (_a = this.modalManager) === null || _a === void 0 ? void 0 : _a.closeModal();
379
+ (_b = this.analyticsHandler) === null || _b === void 0 ? void 0 : _b.sendEvent({
380
+ category: analyticsCategories.default,
381
+ action: `${analyticsActions.applyMoreFacetsModal}`,
382
+ label: `${this.facetKey}`,
383
+ });
384
+ }
385
+ cancelClick() {
386
+ var _a, _b;
387
+ // Reset the unapplied changes back to default
388
+ this.unappliedFacetChanges = getDefaultSelectedFacets();
389
+ (_a = this.modalManager) === null || _a === void 0 ? void 0 : _a.closeModal();
390
+ (_b = this.analyticsHandler) === null || _b === void 0 ? void 0 : _b.sendEvent({
391
+ category: analyticsCategories.default,
392
+ action: analyticsActions.closeMoreFacetsModal,
393
+ label: `${this.facetKey}`,
394
+ });
395
+ }
396
+ static get styles() {
397
+ const modalSubmitButton = css `var(--primaryButtonBGColor, #194880)`;
398
+ return [
399
+ srOnlyStyle,
400
400
  css `
401
401
  section#more-facets {
402
402
  overflow: auto;
@@ -464,63 +464,63 @@ let MoreFacetsContent = class MoreFacetsContent extends LitElement {
464
464
  height: 300px;
465
465
  }
466
466
  }
467
- `,
468
- ];
469
- }
470
- };
471
- __decorate([
472
- property({ type: String })
473
- ], MoreFacetsContent.prototype, "facetKey", void 0);
474
- __decorate([
475
- property({ type: String })
476
- ], MoreFacetsContent.prototype, "query", void 0);
477
- __decorate([
478
- property({ type: Object })
479
- ], MoreFacetsContent.prototype, "filterMap", void 0);
480
- __decorate([
481
- property({ type: String })
482
- ], MoreFacetsContent.prototype, "searchType", void 0);
483
- __decorate([
484
- property({ type: Object })
485
- ], MoreFacetsContent.prototype, "pageSpecifierParams", void 0);
486
- __decorate([
487
- property({ type: Object })
488
- ], MoreFacetsContent.prototype, "collectionTitles", void 0);
489
- __decorate([
490
- property({ type: Number })
491
- ], MoreFacetsContent.prototype, "facetsPerPage", void 0);
492
- __decorate([
493
- property({ type: Boolean })
494
- ], MoreFacetsContent.prototype, "facetsLoading", void 0);
495
- __decorate([
496
- property({ type: Object })
497
- ], MoreFacetsContent.prototype, "selectedFacets", void 0);
498
- __decorate([
499
- property({ type: String })
500
- ], MoreFacetsContent.prototype, "sortedBy", void 0);
501
- __decorate([
502
- property({ type: Object })
503
- ], MoreFacetsContent.prototype, "modalManager", void 0);
504
- __decorate([
505
- property({ type: Object })
506
- ], MoreFacetsContent.prototype, "searchService", void 0);
507
- __decorate([
508
- property({ type: Object, attribute: false })
509
- ], MoreFacetsContent.prototype, "analyticsHandler", void 0);
510
- __decorate([
511
- state()
512
- ], MoreFacetsContent.prototype, "aggregations", void 0);
513
- __decorate([
514
- state()
515
- ], MoreFacetsContent.prototype, "facetGroup", void 0);
516
- __decorate([
517
- state()
518
- ], MoreFacetsContent.prototype, "unappliedFacetChanges", void 0);
519
- __decorate([
520
- state()
521
- ], MoreFacetsContent.prototype, "pageNumber", void 0);
522
- MoreFacetsContent = __decorate([
523
- customElement('more-facets-content')
524
- ], MoreFacetsContent);
525
- export { MoreFacetsContent };
467
+ `,
468
+ ];
469
+ }
470
+ };
471
+ __decorate([
472
+ property({ type: String })
473
+ ], MoreFacetsContent.prototype, "facetKey", void 0);
474
+ __decorate([
475
+ property({ type: String })
476
+ ], MoreFacetsContent.prototype, "query", void 0);
477
+ __decorate([
478
+ property({ type: Object })
479
+ ], MoreFacetsContent.prototype, "filterMap", void 0);
480
+ __decorate([
481
+ property({ type: String })
482
+ ], MoreFacetsContent.prototype, "searchType", void 0);
483
+ __decorate([
484
+ property({ type: Object })
485
+ ], MoreFacetsContent.prototype, "pageSpecifierParams", void 0);
486
+ __decorate([
487
+ property({ type: Object })
488
+ ], MoreFacetsContent.prototype, "collectionTitles", void 0);
489
+ __decorate([
490
+ property({ type: Number })
491
+ ], MoreFacetsContent.prototype, "facetsPerPage", void 0);
492
+ __decorate([
493
+ property({ type: Boolean })
494
+ ], MoreFacetsContent.prototype, "facetsLoading", void 0);
495
+ __decorate([
496
+ property({ type: Object })
497
+ ], MoreFacetsContent.prototype, "selectedFacets", void 0);
498
+ __decorate([
499
+ property({ type: String })
500
+ ], MoreFacetsContent.prototype, "sortedBy", void 0);
501
+ __decorate([
502
+ property({ type: Object })
503
+ ], MoreFacetsContent.prototype, "modalManager", void 0);
504
+ __decorate([
505
+ property({ type: Object })
506
+ ], MoreFacetsContent.prototype, "searchService", void 0);
507
+ __decorate([
508
+ property({ type: Object, attribute: false })
509
+ ], MoreFacetsContent.prototype, "analyticsHandler", void 0);
510
+ __decorate([
511
+ state()
512
+ ], MoreFacetsContent.prototype, "aggregations", void 0);
513
+ __decorate([
514
+ state()
515
+ ], MoreFacetsContent.prototype, "facetGroup", void 0);
516
+ __decorate([
517
+ state()
518
+ ], MoreFacetsContent.prototype, "unappliedFacetChanges", void 0);
519
+ __decorate([
520
+ state()
521
+ ], MoreFacetsContent.prototype, "pageNumber", void 0);
522
+ MoreFacetsContent = __decorate([
523
+ customElement('more-facets-content')
524
+ ], MoreFacetsContent);
525
+ export { MoreFacetsContent };
526
526
  //# sourceMappingURL=more-facets-content.js.map