@internetarchive/collection-browser 2.5.2 → 2.6.1

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