@internetarchive/collection-browser 2.7.6-alpha.0 → 2.7.6-alpha2

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 -15
  6. package/dist/index.js +13 -15
  7. package/dist/index.js.map +1 -1
  8. package/dist/src/app-root.d.ts +99 -95
  9. package/dist/src/app-root.js +528 -494
  10. package/dist/src/app-root.js.map +1 -1
  11. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  12. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  13. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  14. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  15. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  16. package/dist/src/assets/img/icons/chevron.js +2 -2
  17. package/dist/src/assets/img/icons/contract.d.ts +2 -2
  18. package/dist/src/assets/img/icons/contract.js +2 -2
  19. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  20. package/dist/src/assets/img/icons/empty-query.js +2 -2
  21. package/dist/src/assets/img/icons/expand.d.ts +2 -2
  22. package/dist/src/assets/img/icons/expand.js +2 -2
  23. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  24. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  25. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  26. package/dist/src/assets/img/icons/eye.js +2 -2
  27. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  28. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  29. package/dist/src/assets/img/icons/favorite-unfilled.d.ts +1 -1
  30. package/dist/src/assets/img/icons/favorite-unfilled.js +2 -2
  31. package/dist/src/assets/img/icons/filter.d.ts +2 -2
  32. package/dist/src/assets/img/icons/filter.js +2 -2
  33. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  34. package/dist/src/assets/img/icons/login-required.js +2 -2
  35. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  36. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  37. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  38. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  39. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  40. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  41. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  42. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  43. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  44. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  45. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  46. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  47. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  48. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  49. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  50. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  51. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
  52. package/dist/src/assets/img/icons/mediatype/search.js +2 -2
  53. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  54. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  55. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  56. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  57. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  58. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  59. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  60. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  61. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  62. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  63. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  64. package/dist/src/assets/img/icons/null-result.js +2 -2
  65. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  66. package/dist/src/assets/img/icons/restricted.js +2 -2
  67. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  68. package/dist/src/assets/img/icons/reviews.js +2 -2
  69. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  70. package/dist/src/assets/img/icons/upload.js +2 -2
  71. package/dist/src/assets/img/icons/views.d.ts +1 -1
  72. package/dist/src/assets/img/icons/views.js +2 -2
  73. package/dist/src/circular-activity-indicator.d.ts +5 -5
  74. package/dist/src/circular-activity-indicator.js +17 -17
  75. package/dist/src/collection-browser.d.ts +584 -578
  76. package/dist/src/collection-browser.js +1640 -1614
  77. package/dist/src/collection-browser.js.map +1 -1
  78. package/dist/src/collection-facets/facet-row.d.ts +30 -30
  79. package/dist/src/collection-facets/facet-row.js +118 -118
  80. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  81. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  82. package/dist/src/collection-facets/facets-template.d.ts +13 -13
  83. package/dist/src/collection-facets/facets-template.js +44 -44
  84. package/dist/src/collection-facets/more-facets-content.d.ts +106 -106
  85. package/dist/src/collection-facets/more-facets-content.js +407 -407
  86. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  87. package/dist/src/collection-facets/more-facets-pagination.js +196 -196
  88. package/dist/src/collection-facets/smart-facets/dedupe.d.ts +10 -10
  89. package/dist/src/collection-facets/smart-facets/dedupe.js +33 -33
  90. package/dist/src/collection-facets/smart-facets/heuristics/browser-language-heuristic.d.ts +5 -5
  91. package/dist/src/collection-facets/smart-facets/heuristics/browser-language-heuristic.js +23 -23
  92. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.d.ts +5 -5
  93. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.js +44 -44
  94. package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.d.ts +5 -5
  95. package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js +172 -172
  96. package/dist/src/collection-facets/smart-facets/models.d.ts +26 -26
  97. package/dist/src/collection-facets/smart-facets/models.js +1 -1
  98. package/dist/src/collection-facets/smart-facets/smart-facet-bar.d.ts +31 -31
  99. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js +240 -240
  100. package/dist/src/collection-facets/smart-facets/smart-facet-button.d.ts +11 -11
  101. package/dist/src/collection-facets/smart-facets/smart-facet-button.js +86 -86
  102. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.d.ts +16 -16
  103. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js +100 -100
  104. package/dist/src/collection-facets/smart-facets/smart-facet-equals.d.ts +2 -2
  105. package/dist/src/collection-facets/smart-facets/smart-facet-equals.js +12 -12
  106. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.d.ts +5 -5
  107. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js +15 -15
  108. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  109. package/dist/src/collection-facets/toggle-switch.js +94 -94
  110. package/dist/src/collection-facets.d.ts +103 -103
  111. package/dist/src/collection-facets.js +522 -522
  112. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +241 -241
  113. package/dist/src/data-source/collection-browser-data-source-interface.js +1 -1
  114. package/dist/src/data-source/collection-browser-data-source.d.ts +373 -373
  115. package/dist/src/data-source/collection-browser-data-source.js +982 -982
  116. package/dist/src/data-source/collection-browser-query-state.d.ts +43 -43
  117. package/dist/src/data-source/collection-browser-query-state.js +1 -1
  118. package/dist/src/data-source/models.d.ts +28 -28
  119. package/dist/src/data-source/models.js +8 -8
  120. package/dist/src/empty-placeholder.d.ts +23 -23
  121. package/dist/src/empty-placeholder.js +79 -79
  122. package/dist/src/expanded-date-picker.d.ts +43 -43
  123. package/dist/src/expanded-date-picker.js +109 -109
  124. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  125. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  126. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  127. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  128. package/dist/src/manage/manage-bar.d.ts +71 -30
  129. package/dist/src/manage/manage-bar.js +209 -83
  130. package/dist/src/manage/manage-bar.js.map +1 -1
  131. package/dist/src/manage/remove-items-modal-content.d.ts +13 -0
  132. package/dist/src/manage/remove-items-modal-content.js +104 -0
  133. package/dist/src/manage/remove-items-modal-content.js.map +1 -0
  134. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  135. package/dist/src/mediatype/mediatype-config.js +91 -91
  136. package/dist/src/models.d.ts +219 -219
  137. package/dist/src/models.js +401 -401
  138. package/dist/src/models.js.map +1 -1
  139. package/dist/src/restoration-state-handler.d.ts +70 -70
  140. package/dist/src/restoration-state-handler.js +363 -363
  141. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  142. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  143. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  144. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  145. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  146. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  147. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  148. package/dist/src/sort-filter-bar/img/list.js +2 -2
  149. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  150. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  151. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  152. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  153. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  154. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  155. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  156. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  157. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  158. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  159. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +223 -223
  160. package/dist/src/sort-filter-bar/sort-filter-bar.js +697 -697
  161. package/dist/src/styles/ia-button.d.ts +2 -2
  162. package/dist/src/styles/ia-button.js +51 -19
  163. package/dist/src/styles/ia-button.js.map +1 -1
  164. package/dist/src/styles/item-image-styles.d.ts +8 -8
  165. package/dist/src/styles/item-image-styles.js +9 -9
  166. package/dist/src/styles/sr-only.d.ts +1 -1
  167. package/dist/src/styles/sr-only.js +2 -2
  168. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  169. package/dist/src/tiles/base-tile-component.js +64 -64
  170. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  171. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  172. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  173. package/dist/src/tiles/grid/account-tile.js +72 -72
  174. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  175. package/dist/src/tiles/grid/collection-tile.js +80 -80
  176. package/dist/src/tiles/grid/item-tile.d.ts +34 -34
  177. package/dist/src/tiles/grid/item-tile.js +158 -158
  178. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  179. package/dist/src/tiles/grid/search-tile.js +51 -51
  180. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  181. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  182. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  183. package/dist/src/tiles/grid/tile-stats.js +53 -53
  184. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  185. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  186. package/dist/src/tiles/hover/tile-hover-pane.d.ts +18 -18
  187. package/dist/src/tiles/hover/tile-hover-pane.js +69 -69
  188. package/dist/src/tiles/image-block.d.ts +18 -18
  189. package/dist/src/tiles/image-block.js +89 -89
  190. package/dist/src/tiles/item-image.d.ts +39 -39
  191. package/dist/src/tiles/item-image.js +154 -154
  192. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  193. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  194. package/dist/src/tiles/list/tile-list-compact.d.ts +19 -19
  195. package/dist/src/tiles/list/tile-list-compact.js +122 -122
  196. package/dist/src/tiles/list/tile-list.d.ts +54 -54
  197. package/dist/src/tiles/list/tile-list.js +323 -323
  198. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  199. package/dist/src/tiles/mediatype-icon.js +47 -47
  200. package/dist/src/tiles/overlay/icon-overlay.d.ts +8 -8
  201. package/dist/src/tiles/overlay/icon-overlay.js +25 -25
  202. package/dist/src/tiles/overlay/text-overlay.d.ts +9 -9
  203. package/dist/src/tiles/overlay/text-overlay.js +31 -31
  204. package/dist/src/tiles/review-block.d.ts +12 -12
  205. package/dist/src/tiles/review-block.js +56 -56
  206. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  207. package/dist/src/tiles/text-snippet-block.js +73 -73
  208. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  209. package/dist/src/tiles/tile-dispatcher.js +230 -230
  210. package/dist/src/tiles/tile-display-value-provider.d.ts +47 -47
  211. package/dist/src/tiles/tile-display-value-provider.js +94 -94
  212. package/dist/src/utils/analytics-events.d.ts +28 -28
  213. package/dist/src/utils/analytics-events.js +30 -30
  214. package/dist/src/utils/array-equals.d.ts +4 -4
  215. package/dist/src/utils/array-equals.js +10 -10
  216. package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -11
  217. package/dist/src/utils/collapse-repeated-quotes.js +13 -13
  218. package/dist/src/utils/facet-utils.d.ts +83 -83
  219. package/dist/src/utils/facet-utils.js +145 -145
  220. package/dist/src/utils/format-count.d.ts +7 -7
  221. package/dist/src/utils/format-count.js +76 -76
  222. package/dist/src/utils/format-date.d.ts +2 -2
  223. package/dist/src/utils/format-date.js +25 -25
  224. package/dist/src/utils/format-unit-size.d.ts +2 -2
  225. package/dist/src/utils/format-unit-size.js +33 -33
  226. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  227. package/dist/src/utils/local-date-from-utc.js +15 -15
  228. package/dist/src/utils/log.d.ts +7 -7
  229. package/dist/src/utils/log.js +15 -15
  230. package/dist/src/utils/resolve-mediatype.d.ts +8 -8
  231. package/dist/src/utils/resolve-mediatype.js +23 -23
  232. package/dist/src/utils/sha1.d.ts +2 -2
  233. package/dist/src/utils/sha1.js +8 -8
  234. package/dist/test/collection-browser.test.d.ts +1 -1
  235. package/dist/test/collection-browser.test.js +1293 -1293
  236. package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
  237. package/dist/test/collection-facets/facet-row.test.js +227 -227
  238. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  239. package/dist/test/collection-facets/facets-template.test.js +91 -91
  240. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  241. package/dist/test/collection-facets/more-facets-content.test.js +141 -141
  242. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  243. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  244. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  245. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  246. package/dist/test/collection-facets.test.d.ts +2 -2
  247. package/dist/test/collection-facets.test.js +690 -690
  248. package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -1
  249. package/dist/test/data-source/collection-browser-data-source.test.js +89 -89
  250. package/dist/test/empty-placeholder.test.d.ts +1 -1
  251. package/dist/test/empty-placeholder.test.js +63 -63
  252. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  253. package/dist/test/expanded-date-picker.test.js +95 -95
  254. package/dist/test/icon-overlay.test.d.ts +1 -1
  255. package/dist/test/icon-overlay.test.js +24 -24
  256. package/dist/test/image-block.test.d.ts +1 -1
  257. package/dist/test/image-block.test.js +107 -107
  258. package/dist/test/item-image.test.d.ts +1 -1
  259. package/dist/test/item-image.test.js +85 -85
  260. package/dist/test/manage/manage-bar.test.d.ts +1 -1
  261. package/dist/test/manage/manage-bar.test.js +91 -81
  262. package/dist/test/manage/manage-bar.test.js.map +1 -1
  263. package/dist/test/mediatype-config.test.d.ts +1 -1
  264. package/dist/test/mediatype-config.test.js +16 -16
  265. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  266. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  267. package/dist/test/mocks/mock-search-responses.d.ts +25 -25
  268. package/dist/test/mocks/mock-search-responses.js +942 -942
  269. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  270. package/dist/test/mocks/mock-search-service.js +54 -54
  271. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  272. package/dist/test/restoration-state-handler.test.js +270 -270
  273. package/dist/test/review-block.test.d.ts +1 -1
  274. package/dist/test/review-block.test.js +44 -44
  275. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  276. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  277. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  278. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  279. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  280. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +426 -426
  281. package/dist/test/text-overlay.test.d.ts +1 -1
  282. package/dist/test/text-overlay.test.js +38 -38
  283. package/dist/test/text-snippet-block.test.d.ts +1 -1
  284. package/dist/test/text-snippet-block.test.js +57 -57
  285. package/dist/test/tile-stats.test.d.ts +1 -1
  286. package/dist/test/tile-stats.test.js +81 -81
  287. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  288. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  289. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  290. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  291. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  292. package/dist/test/tiles/grid/item-tile.test.js +312 -312
  293. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  294. package/dist/test/tiles/grid/search-tile.test.js +51 -51
  295. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  296. package/dist/test/tiles/hover/hover-pane-controller.test.js +259 -259
  297. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  298. package/dist/test/tiles/hover/tile-hover-pane.test.js +56 -56
  299. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  300. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  301. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  302. package/dist/test/tiles/list/tile-list.test.js +297 -297
  303. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  304. package/dist/test/tiles/tile-dispatcher.test.js +100 -100
  305. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  306. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  307. package/dist/test/utils/array-equals.test.d.ts +1 -1
  308. package/dist/test/utils/array-equals.test.js +26 -26
  309. package/dist/test/utils/format-count.test.d.ts +1 -1
  310. package/dist/test/utils/format-count.test.js +23 -23
  311. package/dist/test/utils/format-date.test.d.ts +1 -1
  312. package/dist/test/utils/format-date.test.js +17 -17
  313. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  314. package/dist/test/utils/format-unit-size.test.js +17 -17
  315. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  316. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  317. package/index.ts +0 -2
  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 +36 -0
  323. package/src/collection-browser.ts +29 -5
  324. package/src/manage/manage-bar.ts +168 -24
  325. package/src/manage/remove-items-modal-content.ts +107 -0
  326. package/src/models.ts +2 -2
  327. package/src/styles/ia-button.ts +37 -5
  328. package/test/manage/manage-bar.test.ts +12 -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