@internetarchive/collection-browser 3.3.2 → 3.3.3

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 (532) hide show
  1. package/.editorconfig +29 -29
  2. package/.github/workflows/ci.yml +27 -27
  3. package/.github/workflows/gh-pages-main.yml +39 -39
  4. package/.github/workflows/npm-publish.yml +39 -39
  5. package/.github/workflows/pr-preview.yml +38 -38
  6. package/.husky/pre-commit +4 -4
  7. package/.prettierignore +1 -1
  8. package/LICENSE +661 -661
  9. package/README.md +83 -83
  10. package/dist/index.d.ts +16 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/src/app-root.d.ts +105 -0
  13. package/dist/src/app-root.js +1076 -0
  14. package/dist/src/app-root.js.map +1 -0
  15. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -0
  16. package/dist/src/assets/img/icons/arrow-left.js +10 -0
  17. package/dist/src/assets/img/icons/arrow-left.js.map +1 -0
  18. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -0
  19. package/dist/src/assets/img/icons/arrow-right.js +10 -0
  20. package/dist/src/assets/img/icons/arrow-right.js.map +1 -0
  21. package/dist/src/assets/img/icons/chevron.d.ts +2 -0
  22. package/dist/src/assets/img/icons/chevron.js +4 -0
  23. package/dist/src/assets/img/icons/chevron.js.map +1 -0
  24. package/dist/src/assets/img/icons/close-circle-dark.d.ts +2 -0
  25. package/dist/src/assets/img/icons/close-circle-dark.js +5 -0
  26. package/dist/src/assets/img/icons/close-circle-dark.js.map +1 -0
  27. package/dist/src/assets/img/icons/contract.d.ts +2 -0
  28. package/dist/src/assets/img/icons/contract.js +9 -0
  29. package/dist/src/assets/img/icons/contract.js.map +1 -0
  30. package/dist/src/assets/img/icons/empty-query.d.ts +2 -0
  31. package/dist/src/assets/img/icons/empty-query.js +5 -0
  32. package/dist/src/assets/img/icons/empty-query.js.map +1 -0
  33. package/dist/src/assets/img/icons/expand.d.ts +2 -0
  34. package/dist/src/assets/img/icons/expand.js +9 -0
  35. package/dist/src/assets/img/icons/expand.js.map +1 -0
  36. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -0
  37. package/dist/src/assets/img/icons/eye-closed.js +5 -0
  38. package/dist/src/assets/img/icons/eye-closed.js.map +1 -0
  39. package/dist/src/assets/img/icons/eye.d.ts +2 -0
  40. package/dist/src/assets/img/icons/eye.js +5 -0
  41. package/dist/src/assets/img/icons/eye.js.map +1 -0
  42. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -0
  43. package/dist/src/assets/img/icons/favorite-filled.js +10 -0
  44. package/dist/src/assets/img/icons/favorite-filled.js.map +1 -0
  45. package/dist/src/assets/img/icons/favorite-unfilled.d.ts +1 -0
  46. package/dist/src/assets/img/icons/favorite-unfilled.js +9 -0
  47. package/dist/src/assets/img/icons/favorite-unfilled.js.map +1 -0
  48. package/dist/src/assets/img/icons/filter.d.ts +2 -0
  49. package/dist/src/assets/img/icons/filter.js +10 -0
  50. package/dist/src/assets/img/icons/filter.js.map +1 -0
  51. package/dist/src/assets/img/icons/login-required.d.ts +1 -0
  52. package/dist/src/assets/img/icons/login-required.js +18 -0
  53. package/dist/src/assets/img/icons/login-required.js.map +1 -0
  54. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -0
  55. package/dist/src/assets/img/icons/mediatype/account.js +14 -0
  56. package/dist/src/assets/img/icons/mediatype/account.js.map +1 -0
  57. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -0
  58. package/dist/src/assets/img/icons/mediatype/audio.js +14 -0
  59. package/dist/src/assets/img/icons/mediatype/audio.js.map +1 -0
  60. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -0
  61. package/dist/src/assets/img/icons/mediatype/collection.js +12 -0
  62. package/dist/src/assets/img/icons/mediatype/collection.js.map +1 -0
  63. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -0
  64. package/dist/src/assets/img/icons/mediatype/data.js +15 -0
  65. package/dist/src/assets/img/icons/mediatype/data.js.map +1 -0
  66. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -0
  67. package/dist/src/assets/img/icons/mediatype/etree.js +14 -0
  68. package/dist/src/assets/img/icons/mediatype/etree.js.map +1 -0
  69. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -0
  70. package/dist/src/assets/img/icons/mediatype/film.js +14 -0
  71. package/dist/src/assets/img/icons/mediatype/film.js.map +1 -0
  72. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -0
  73. package/dist/src/assets/img/icons/mediatype/images.js +13 -0
  74. package/dist/src/assets/img/icons/mediatype/images.js.map +1 -0
  75. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -0
  76. package/dist/src/assets/img/icons/mediatype/radio.js +15 -0
  77. package/dist/src/assets/img/icons/mediatype/radio.js.map +1 -0
  78. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -0
  79. package/dist/src/assets/img/icons/mediatype/search.js +14 -0
  80. package/dist/src/assets/img/icons/mediatype/search.js.map +1 -0
  81. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -0
  82. package/dist/src/assets/img/icons/mediatype/software.js +13 -0
  83. package/dist/src/assets/img/icons/mediatype/software.js.map +1 -0
  84. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -0
  85. package/dist/src/assets/img/icons/mediatype/texts.js +13 -0
  86. package/dist/src/assets/img/icons/mediatype/texts.js.map +1 -0
  87. package/dist/src/assets/img/icons/mediatype/tv-commercial.d.ts +1 -0
  88. package/dist/src/assets/img/icons/mediatype/tv-commercial.js +12 -0
  89. package/dist/src/assets/img/icons/mediatype/tv-commercial.js.map +1 -0
  90. package/dist/src/assets/img/icons/mediatype/tv-fact-check.d.ts +1 -0
  91. package/dist/src/assets/img/icons/mediatype/tv-fact-check.js +12 -0
  92. package/dist/src/assets/img/icons/mediatype/tv-fact-check.js.map +1 -0
  93. package/dist/src/assets/img/icons/mediatype/tv-quote.d.ts +1 -0
  94. package/dist/src/assets/img/icons/mediatype/tv-quote.js +12 -0
  95. package/dist/src/assets/img/icons/mediatype/tv-quote.js.map +1 -0
  96. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -0
  97. package/dist/src/assets/img/icons/mediatype/tv.js +14 -0
  98. package/dist/src/assets/img/icons/mediatype/tv.js.map +1 -0
  99. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -0
  100. package/dist/src/assets/img/icons/mediatype/video.js +14 -0
  101. package/dist/src/assets/img/icons/mediatype/video.js.map +1 -0
  102. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -0
  103. package/dist/src/assets/img/icons/mediatype/web.js +13 -0
  104. package/dist/src/assets/img/icons/mediatype/web.js.map +1 -0
  105. package/dist/src/assets/img/icons/null-result.d.ts +2 -0
  106. package/dist/src/assets/img/icons/null-result.js +5 -0
  107. package/dist/src/assets/img/icons/null-result.js.map +1 -0
  108. package/dist/src/assets/img/icons/quote.d.ts +1 -0
  109. package/dist/src/assets/img/icons/quote.js +7 -0
  110. package/dist/src/assets/img/icons/quote.js.map +1 -0
  111. package/dist/src/assets/img/icons/restricted.d.ts +1 -0
  112. package/dist/src/assets/img/icons/restricted.js +13 -0
  113. package/dist/src/assets/img/icons/restricted.js.map +1 -0
  114. package/dist/src/assets/img/icons/reviews.d.ts +1 -0
  115. package/dist/src/assets/img/icons/reviews.js +11 -0
  116. package/dist/src/assets/img/icons/reviews.js.map +1 -0
  117. package/dist/src/assets/img/icons/upload.d.ts +1 -0
  118. package/dist/src/assets/img/icons/upload.js +12 -0
  119. package/dist/src/assets/img/icons/upload.js.map +1 -0
  120. package/dist/src/assets/img/icons/views.d.ts +1 -0
  121. package/dist/src/assets/img/icons/views.js +11 -0
  122. package/dist/src/assets/img/icons/views.js.map +1 -0
  123. package/dist/src/circular-activity-indicator.d.ts +5 -0
  124. package/dist/src/circular-activity-indicator.js +66 -0
  125. package/dist/src/circular-activity-indicator.js.map +1 -0
  126. package/dist/src/collection-browser.d.ts +684 -0
  127. package/dist/src/collection-browser.js +2567 -0
  128. package/dist/src/collection-browser.js.map +1 -0
  129. package/dist/src/collection-facets/facet-row.d.ts +30 -0
  130. package/dist/src/collection-facets/facet-row.js +265 -0
  131. package/dist/src/collection-facets/facet-row.js.map +1 -0
  132. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -0
  133. package/dist/src/collection-facets/facet-tombstone-row.js +43 -0
  134. package/dist/src/collection-facets/facet-tombstone-row.js.map +1 -0
  135. package/dist/src/collection-facets/facets-template.d.ts +13 -0
  136. package/dist/src/collection-facets/facets-template.js +68 -0
  137. package/dist/src/collection-facets/facets-template.js.map +1 -0
  138. package/dist/src/collection-facets/models.d.ts +9 -0
  139. package/dist/src/collection-facets/models.js +10 -0
  140. package/dist/src/collection-facets/models.js.map +1 -0
  141. package/dist/src/collection-facets/more-facets-content.d.ts +109 -0
  142. package/dist/src/collection-facets/more-facets-content.js +547 -0
  143. package/dist/src/collection-facets/more-facets-content.js.map +1 -0
  144. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -0
  145. package/dist/src/collection-facets/more-facets-pagination.js +264 -0
  146. package/dist/src/collection-facets/more-facets-pagination.js.map +1 -0
  147. package/dist/src/collection-facets/smart-facets/dedupe.d.ts +10 -0
  148. package/dist/src/collection-facets/smart-facets/dedupe.js +35 -0
  149. package/dist/src/collection-facets/smart-facets/dedupe.js.map +1 -0
  150. package/dist/src/collection-facets/smart-facets/heuristics/browser-language/browser-language-heuristic.d.ts +5 -0
  151. package/dist/src/collection-facets/smart-facets/heuristics/browser-language/browser-language-heuristic.js +24 -0
  152. package/dist/src/collection-facets/smart-facets/heuristics/browser-language/browser-language-heuristic.js.map +1 -0
  153. package/dist/src/collection-facets/smart-facets/heuristics/index.d.ts +3 -0
  154. package/dist/src/collection-facets/smart-facets/heuristics/index.js +4 -0
  155. package/dist/src/collection-facets/smart-facets/heuristics/index.js.map +1 -0
  156. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-heuristic.d.ts +4 -0
  157. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-heuristic.js +14 -0
  158. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-heuristic.js.map +1 -0
  159. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-map.d.ts +6 -0
  160. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-map.js +68 -0
  161. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-map.js.map +1 -0
  162. package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-entity-map.d.ts +9 -0
  163. package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-entity-map.js +69 -0
  164. package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-entity-map.js.map +1 -0
  165. package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.d.ts +21 -0
  166. package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.js +76 -0
  167. package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.js.map +1 -0
  168. package/dist/src/collection-facets/smart-facets/models.d.ts +30 -0
  169. package/dist/src/collection-facets/smart-facets/models.js +2 -0
  170. package/dist/src/collection-facets/smart-facets/models.js.map +1 -0
  171. package/dist/src/collection-facets/smart-facets/smart-facet-bar.d.ts +54 -0
  172. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js +383 -0
  173. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js.map +1 -0
  174. package/dist/src/collection-facets/smart-facets/smart-facet-button.d.ts +11 -0
  175. package/dist/src/collection-facets/smart-facets/smart-facet-button.js +133 -0
  176. package/dist/src/collection-facets/smart-facets/smart-facet-button.js.map +1 -0
  177. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.d.ts +28 -0
  178. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js +172 -0
  179. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js.map +1 -0
  180. package/dist/src/collection-facets/smart-facets/smart-facet-equals.d.ts +2 -0
  181. package/dist/src/collection-facets/smart-facets/smart-facet-equals.js +13 -0
  182. package/dist/src/collection-facets/smart-facets/smart-facet-equals.js.map +1 -0
  183. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.d.ts +5 -0
  184. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js +18 -0
  185. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js.map +1 -0
  186. package/dist/src/collection-facets/toggle-switch.d.ts +41 -0
  187. package/dist/src/collection-facets/toggle-switch.js +174 -0
  188. package/dist/src/collection-facets/toggle-switch.js.map +1 -0
  189. package/dist/src/collection-facets.d.ts +113 -0
  190. package/dist/src/collection-facets.js +872 -0
  191. package/dist/src/collection-facets.js.map +1 -0
  192. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +261 -0
  193. package/dist/src/data-source/collection-browser-data-source-interface.js +2 -0
  194. package/dist/src/data-source/collection-browser-data-source-interface.js.map +1 -0
  195. package/dist/src/data-source/collection-browser-data-source.d.ts +400 -0
  196. package/dist/src/data-source/collection-browser-data-source.js +1103 -0
  197. package/dist/src/data-source/collection-browser-data-source.js.map +1 -0
  198. package/dist/src/data-source/collection-browser-query-state.d.ts +49 -0
  199. package/dist/src/data-source/collection-browser-query-state.js +2 -0
  200. package/dist/src/data-source/collection-browser-query-state.js.map +1 -0
  201. package/dist/src/data-source/models.d.ts +32 -0
  202. package/dist/src/data-source/models.js +9 -0
  203. package/dist/src/data-source/models.js.map +1 -0
  204. package/dist/src/empty-placeholder.d.ts +23 -0
  205. package/dist/src/empty-placeholder.js +165 -0
  206. package/dist/src/empty-placeholder.js.map +1 -0
  207. package/dist/src/expanded-date-picker.d.ts +50 -0
  208. package/dist/src/expanded-date-picker.js +182 -0
  209. package/dist/src/expanded-date-picker.js.map +1 -0
  210. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -0
  211. package/dist/src/language-code-handler/language-code-handler.js +27 -0
  212. package/dist/src/language-code-handler/language-code-handler.js.map +1 -0
  213. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -0
  214. package/dist/src/language-code-handler/language-code-mapping.js +563 -0
  215. package/dist/src/language-code-handler/language-code-mapping.js.map +1 -0
  216. package/dist/src/manage/manage-bar.d.ts +58 -0
  217. package/dist/src/manage/manage-bar.js +237 -0
  218. package/dist/src/manage/manage-bar.js.map +1 -0
  219. package/dist/src/manage/remove-items-modal-content.d.ts +9 -0
  220. package/dist/src/manage/remove-items-modal-content.js +104 -0
  221. package/dist/src/manage/remove-items-modal-content.js.map +1 -0
  222. package/dist/src/mediatype/mediatype-config.d.ts +11 -0
  223. package/dist/src/mediatype/mediatype-config.js +116 -0
  224. package/dist/src/mediatype/mediatype-config.js.map +1 -0
  225. package/dist/src/models.d.ts +302 -0
  226. package/dist/src/models.js +511 -0
  227. package/dist/src/models.js.map +1 -0
  228. package/dist/src/restoration-state-handler.d.ts +75 -0
  229. package/dist/src/restoration-state-handler.js +403 -0
  230. package/dist/src/restoration-state-handler.js.map +1 -0
  231. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -0
  232. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +60 -0
  233. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js.map +1 -0
  234. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -0
  235. package/dist/src/sort-filter-bar/alpha-bar.js +241 -0
  236. package/dist/src/sort-filter-bar/alpha-bar.js.map +1 -0
  237. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -0
  238. package/dist/src/sort-filter-bar/img/compact.js +5 -0
  239. package/dist/src/sort-filter-bar/img/compact.js.map +1 -0
  240. package/dist/src/sort-filter-bar/img/list.d.ts +1 -0
  241. package/dist/src/sort-filter-bar/img/list.js +5 -0
  242. package/dist/src/sort-filter-bar/img/list.js.map +1 -0
  243. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -0
  244. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +15 -0
  245. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js.map +1 -0
  246. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -0
  247. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +17 -0
  248. package/dist/src/sort-filter-bar/img/sort-toggle-down.js.map +1 -0
  249. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -0
  250. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +17 -0
  251. package/dist/src/sort-filter-bar/img/sort-toggle-up.js.map +1 -0
  252. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -0
  253. package/dist/src/sort-filter-bar/img/sort-triangle.js +5 -0
  254. package/dist/src/sort-filter-bar/img/sort-triangle.js.map +1 -0
  255. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -0
  256. package/dist/src/sort-filter-bar/img/tile.js +5 -0
  257. package/dist/src/sort-filter-bar/img/tile.js.map +1 -0
  258. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +278 -0
  259. package/dist/src/sort-filter-bar/sort-filter-bar.js +1161 -0
  260. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -0
  261. package/dist/src/styles/ia-button.d.ts +2 -0
  262. package/dist/src/styles/ia-button.js +134 -0
  263. package/dist/src/styles/ia-button.js.map +1 -0
  264. package/dist/src/styles/item-image-styles.d.ts +8 -0
  265. package/dist/src/styles/item-image-styles.js +123 -0
  266. package/dist/src/styles/item-image-styles.js.map +1 -0
  267. package/dist/src/styles/sr-only.d.ts +1 -0
  268. package/dist/src/styles/sr-only.js +18 -0
  269. package/dist/src/styles/sr-only.js.map +1 -0
  270. package/dist/src/tiles/base-tile-component.d.ts +27 -0
  271. package/dist/src/tiles/base-tile-component.js +82 -0
  272. package/dist/src/tiles/base-tile-component.js.map +1 -0
  273. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -0
  274. package/dist/src/tiles/collection-browser-loading-tile.js +29 -0
  275. package/dist/src/tiles/collection-browser-loading-tile.js.map +1 -0
  276. package/dist/src/tiles/grid/account-tile.d.ts +18 -0
  277. package/dist/src/tiles/grid/account-tile.js +111 -0
  278. package/dist/src/tiles/grid/account-tile.js.map +1 -0
  279. package/dist/src/tiles/grid/collection-tile.d.ts +15 -0
  280. package/dist/src/tiles/grid/collection-tile.js +160 -0
  281. package/dist/src/tiles/grid/collection-tile.js.map +1 -0
  282. package/dist/src/tiles/grid/item-tile.d.ts +41 -0
  283. package/dist/src/tiles/grid/item-tile.js +321 -0
  284. package/dist/src/tiles/grid/item-tile.js.map +1 -0
  285. package/dist/src/tiles/grid/search-tile.d.ts +10 -0
  286. package/dist/src/tiles/grid/search-tile.js +95 -0
  287. package/dist/src/tiles/grid/search-tile.js.map +1 -0
  288. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -0
  289. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +128 -0
  290. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js.map +1 -0
  291. package/dist/src/tiles/grid/tile-stats.d.ts +58 -0
  292. package/dist/src/tiles/grid/tile-stats.js +204 -0
  293. package/dist/src/tiles/grid/tile-stats.js.map +1 -0
  294. package/dist/src/tiles/hover/hover-pane-controller.d.ts +228 -0
  295. package/dist/src/tiles/hover/hover-pane-controller.js +446 -0
  296. package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -0
  297. package/dist/src/tiles/hover/tile-hover-pane.d.ts +20 -0
  298. package/dist/src/tiles/hover/tile-hover-pane.js +185 -0
  299. package/dist/src/tiles/hover/tile-hover-pane.js.map +1 -0
  300. package/dist/src/tiles/image-block.d.ts +19 -0
  301. package/dist/src/tiles/image-block.js +175 -0
  302. package/dist/src/tiles/image-block.js.map +1 -0
  303. package/dist/src/tiles/item-image.d.ts +40 -0
  304. package/dist/src/tiles/item-image.js +191 -0
  305. package/dist/src/tiles/item-image.js.map +1 -0
  306. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -0
  307. package/dist/src/tiles/list/tile-list-compact-header.js +85 -0
  308. package/dist/src/tiles/list/tile-list-compact-header.js.map +1 -0
  309. package/dist/src/tiles/list/tile-list-compact.d.ts +19 -0
  310. package/dist/src/tiles/list/tile-list-compact.js +223 -0
  311. package/dist/src/tiles/list/tile-list-compact.js.map +1 -0
  312. package/dist/src/tiles/list/tile-list.d.ts +54 -0
  313. package/dist/src/tiles/list/tile-list.js +621 -0
  314. package/dist/src/tiles/list/tile-list.js.map +1 -0
  315. package/dist/src/tiles/models.d.ts +1 -0
  316. package/dist/src/tiles/models.js +2 -0
  317. package/dist/src/tiles/models.js.map +1 -0
  318. package/dist/src/tiles/overlay/icon-overlay.d.ts +8 -0
  319. package/dist/src/tiles/overlay/icon-overlay.js +55 -0
  320. package/dist/src/tiles/overlay/icon-overlay.js.map +1 -0
  321. package/dist/src/tiles/overlay/text-overlay.d.ts +9 -0
  322. package/dist/src/tiles/overlay/text-overlay.js +74 -0
  323. package/dist/src/tiles/overlay/text-overlay.js.map +1 -0
  324. package/dist/src/tiles/review-block.d.ts +12 -0
  325. package/dist/src/tiles/review-block.js +134 -0
  326. package/dist/src/tiles/review-block.js.map +1 -0
  327. package/dist/src/tiles/text-snippet-block.d.ts +27 -0
  328. package/dist/src/tiles/text-snippet-block.js +132 -0
  329. package/dist/src/tiles/text-snippet-block.js.map +1 -0
  330. package/dist/src/tiles/tile-dispatcher.d.ts +71 -0
  331. package/dist/src/tiles/tile-dispatcher.js +472 -0
  332. package/dist/src/tiles/tile-dispatcher.js.map +1 -0
  333. package/dist/src/tiles/tile-display-value-provider.d.ts +47 -0
  334. package/dist/src/tiles/tile-display-value-provider.js +95 -0
  335. package/dist/src/tiles/tile-display-value-provider.js.map +1 -0
  336. package/dist/src/tiles/tile-mediatype-icon.d.ts +27 -0
  337. package/dist/src/tiles/tile-mediatype-icon.js +130 -0
  338. package/dist/src/tiles/tile-mediatype-icon.js.map +1 -0
  339. package/dist/src/utils/analytics-events.d.ts +28 -0
  340. package/dist/src/utils/analytics-events.js +31 -0
  341. package/dist/src/utils/analytics-events.js.map +1 -0
  342. package/dist/src/utils/array-equals.d.ts +4 -0
  343. package/dist/src/utils/array-equals.js +11 -0
  344. package/dist/src/utils/array-equals.js.map +1 -0
  345. package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -0
  346. package/dist/src/utils/collapse-repeated-quotes.js +14 -0
  347. package/dist/src/utils/collapse-repeated-quotes.js.map +1 -0
  348. package/dist/src/utils/facet-utils.d.ts +83 -0
  349. package/dist/src/utils/facet-utils.js +152 -0
  350. package/dist/src/utils/facet-utils.js.map +1 -0
  351. package/dist/src/utils/format-count.d.ts +7 -0
  352. package/dist/src/utils/format-count.js +76 -0
  353. package/dist/src/utils/format-count.js.map +1 -0
  354. package/dist/src/utils/format-date.d.ts +16 -0
  355. package/dist/src/utils/format-date.js +33 -0
  356. package/dist/src/utils/format-date.js.map +1 -0
  357. package/dist/src/utils/format-unit-size.d.ts +2 -0
  358. package/dist/src/utils/format-unit-size.js +34 -0
  359. package/dist/src/utils/format-unit-size.js.map +1 -0
  360. package/dist/src/utils/local-date-from-utc.d.ts +9 -0
  361. package/dist/src/utils/local-date-from-utc.js +16 -0
  362. package/dist/src/utils/local-date-from-utc.js.map +1 -0
  363. package/dist/src/utils/log.d.ts +7 -0
  364. package/dist/src/utils/log.js +14 -0
  365. package/dist/src/utils/log.js.map +1 -0
  366. package/dist/src/utils/resolve-mediatype.d.ts +8 -0
  367. package/dist/src/utils/resolve-mediatype.js +24 -0
  368. package/dist/src/utils/resolve-mediatype.js.map +1 -0
  369. package/dist/src/utils/sha1.d.ts +2 -0
  370. package/dist/src/utils/sha1.js +9 -0
  371. package/dist/src/utils/sha1.js.map +1 -0
  372. package/dist/test/collection-browser.test.d.ts +1 -0
  373. package/dist/test/collection-browser.test.js +1711 -0
  374. package/dist/test/collection-browser.test.js.map +1 -0
  375. package/dist/test/collection-facets/facet-row.test.d.ts +1 -0
  376. package/dist/test/collection-facets/facet-row.test.js +274 -0
  377. package/dist/test/collection-facets/facet-row.test.js.map +1 -0
  378. package/dist/test/collection-facets/facets-template.test.d.ts +1 -0
  379. package/dist/test/collection-facets/facets-template.test.js +101 -0
  380. package/dist/test/collection-facets/facets-template.test.js.map +1 -0
  381. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -0
  382. package/dist/test/collection-facets/more-facets-content.test.js +169 -0
  383. package/dist/test/collection-facets/more-facets-content.test.js.map +1 -0
  384. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -0
  385. package/dist/test/collection-facets/more-facets-pagination.test.js +132 -0
  386. package/dist/test/collection-facets/more-facets-pagination.test.js.map +1 -0
  387. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -0
  388. package/dist/test/collection-facets/toggle-switch.test.js +96 -0
  389. package/dist/test/collection-facets/toggle-switch.test.js.map +1 -0
  390. package/dist/test/collection-facets.test.d.ts +2 -0
  391. package/dist/test/collection-facets.test.js +745 -0
  392. package/dist/test/collection-facets.test.js.map +1 -0
  393. package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -0
  394. package/dist/test/data-source/collection-browser-data-source.test.js +102 -0
  395. package/dist/test/data-source/collection-browser-data-source.test.js.map +1 -0
  396. package/dist/test/empty-placeholder.test.d.ts +1 -0
  397. package/dist/test/empty-placeholder.test.js +63 -0
  398. package/dist/test/empty-placeholder.test.js.map +1 -0
  399. package/dist/test/expanded-date-picker.test.d.ts +1 -0
  400. package/dist/test/expanded-date-picker.test.js +130 -0
  401. package/dist/test/expanded-date-picker.test.js.map +1 -0
  402. package/dist/test/icon-overlay.test.d.ts +1 -0
  403. package/dist/test/icon-overlay.test.js +30 -0
  404. package/dist/test/icon-overlay.test.js.map +1 -0
  405. package/dist/test/image-block.test.d.ts +1 -0
  406. package/dist/test/image-block.test.js +218 -0
  407. package/dist/test/image-block.test.js.map +1 -0
  408. package/dist/test/item-image.test.d.ts +1 -0
  409. package/dist/test/item-image.test.js +196 -0
  410. package/dist/test/item-image.test.js.map +1 -0
  411. package/dist/test/manage/manage-bar.test.d.ts +2 -0
  412. package/dist/test/manage/manage-bar.test.js +106 -0
  413. package/dist/test/manage/manage-bar.test.js.map +1 -0
  414. package/dist/test/manage/remove-items-modal-content.test.d.ts +1 -0
  415. package/dist/test/manage/remove-items-modal-content.test.js +65 -0
  416. package/dist/test/manage/remove-items-modal-content.test.js.map +1 -0
  417. package/dist/test/mediatype-config.test.d.ts +1 -0
  418. package/dist/test/mediatype-config.test.js +11 -0
  419. package/dist/test/mediatype-config.test.js.map +1 -0
  420. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -0
  421. package/dist/test/mocks/mock-analytics-handler.js +16 -0
  422. package/dist/test/mocks/mock-analytics-handler.js.map +1 -0
  423. package/dist/test/mocks/mock-search-responses.d.ts +31 -0
  424. package/dist/test/mocks/mock-search-responses.js +1241 -0
  425. package/dist/test/mocks/mock-search-responses.js.map +1 -0
  426. package/dist/test/mocks/mock-search-service.d.ts +16 -0
  427. package/dist/test/mocks/mock-search-service.js +65 -0
  428. package/dist/test/mocks/mock-search-service.js.map +1 -0
  429. package/dist/test/restoration-state-handler.test.d.ts +1 -0
  430. package/dist/test/restoration-state-handler.test.js +375 -0
  431. package/dist/test/restoration-state-handler.test.js.map +1 -0
  432. package/dist/test/review-block.test.d.ts +1 -0
  433. package/dist/test/review-block.test.js +48 -0
  434. package/dist/test/review-block.test.js.map +1 -0
  435. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -0
  436. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +13 -0
  437. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js.map +1 -0
  438. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -0
  439. package/dist/test/sort-filter-bar/alpha-bar.test.js +74 -0
  440. package/dist/test/sort-filter-bar/alpha-bar.test.js.map +1 -0
  441. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -0
  442. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +609 -0
  443. package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -0
  444. package/dist/test/text-overlay.test.d.ts +1 -0
  445. package/dist/test/text-overlay.test.js +42 -0
  446. package/dist/test/text-overlay.test.js.map +1 -0
  447. package/dist/test/text-snippet-block.test.d.ts +1 -0
  448. package/dist/test/text-snippet-block.test.js +63 -0
  449. package/dist/test/text-snippet-block.test.js.map +1 -0
  450. package/dist/test/tile-stats.test.d.ts +1 -0
  451. package/dist/test/tile-stats.test.js +128 -0
  452. package/dist/test/tile-stats.test.js.map +1 -0
  453. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -0
  454. package/dist/test/tiles/grid/account-tile.test.js +96 -0
  455. package/dist/test/tiles/grid/account-tile.test.js.map +1 -0
  456. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -0
  457. package/dist/test/tiles/grid/collection-tile.test.js +96 -0
  458. package/dist/test/tiles/grid/collection-tile.test.js.map +1 -0
  459. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -0
  460. package/dist/test/tiles/grid/item-tile.test.js +427 -0
  461. package/dist/test/tiles/grid/item-tile.test.js.map +1 -0
  462. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -0
  463. package/dist/test/tiles/grid/search-tile.test.js +66 -0
  464. package/dist/test/tiles/grid/search-tile.test.js.map +1 -0
  465. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -0
  466. package/dist/test/tiles/hover/hover-pane-controller.test.js +329 -0
  467. package/dist/test/tiles/hover/hover-pane-controller.test.js.map +1 -0
  468. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -0
  469. package/dist/test/tiles/hover/tile-hover-pane.test.js +57 -0
  470. package/dist/test/tiles/hover/tile-hover-pane.test.js.map +1 -0
  471. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -0
  472. package/dist/test/tiles/list/tile-list-compact.test.js +251 -0
  473. package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -0
  474. package/dist/test/tiles/list/tile-list.test.d.ts +1 -0
  475. package/dist/test/tiles/list/tile-list.test.js +469 -0
  476. package/dist/test/tiles/list/tile-list.test.js.map +1 -0
  477. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -0
  478. package/dist/test/tiles/tile-dispatcher.test.js +231 -0
  479. package/dist/test/tiles/tile-dispatcher.test.js.map +1 -0
  480. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -0
  481. package/dist/test/tiles/tile-display-value-provider.test.js +142 -0
  482. package/dist/test/tiles/tile-display-value-provider.test.js.map +1 -0
  483. package/dist/test/tiles/tile-mediatype-icon.test.d.ts +1 -0
  484. package/dist/test/tiles/tile-mediatype-icon.test.js +145 -0
  485. package/dist/test/tiles/tile-mediatype-icon.test.js.map +1 -0
  486. package/dist/test/utils/array-equals.test.d.ts +1 -0
  487. package/dist/test/utils/array-equals.test.js +27 -0
  488. package/dist/test/utils/array-equals.test.js.map +1 -0
  489. package/dist/test/utils/format-count.test.d.ts +1 -0
  490. package/dist/test/utils/format-count.test.js +24 -0
  491. package/dist/test/utils/format-count.test.js.map +1 -0
  492. package/dist/test/utils/format-date.test.d.ts +1 -0
  493. package/dist/test/utils/format-date.test.js +61 -0
  494. package/dist/test/utils/format-date.test.js.map +1 -0
  495. package/dist/test/utils/format-unit-size.test.d.ts +1 -0
  496. package/dist/test/utils/format-unit-size.test.js +18 -0
  497. package/dist/test/utils/format-unit-size.test.js.map +1 -0
  498. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -0
  499. package/dist/test/utils/local-date-from-utc.test.js +27 -0
  500. package/dist/test/utils/local-date-from-utc.test.js.map +1 -0
  501. package/eslint.config.mjs +53 -53
  502. package/index.html +24 -24
  503. package/local.archive.org.cert +86 -86
  504. package/local.archive.org.key +27 -27
  505. package/package.json +118 -117
  506. package/renovate.json +6 -6
  507. package/src/collection-browser.ts +2829 -2829
  508. package/src/collection-facets/more-facets-content.ts +639 -639
  509. package/src/collection-facets.ts +994 -995
  510. package/src/data-source/collection-browser-data-source.ts +1401 -1401
  511. package/src/data-source/collection-browser-query-state.ts +65 -65
  512. package/src/data-source/models.ts +43 -43
  513. package/src/tiles/base-tile-component.ts +65 -65
  514. package/src/tiles/grid/account-tile.ts +113 -113
  515. package/src/tiles/grid/collection-tile.ts +163 -163
  516. package/src/tiles/grid/item-tile.ts +340 -340
  517. package/src/tiles/hover/hover-pane-controller.ts +613 -517
  518. package/src/tiles/hover/tile-hover-pane.ts +184 -180
  519. package/src/tiles/list/tile-list-compact.ts +239 -239
  520. package/src/tiles/list/tile-list.ts +700 -700
  521. package/src/tiles/tile-dispatcher.ts +517 -490
  522. package/src/utils/format-date.ts +62 -62
  523. package/test/collection-browser.test.ts +2403 -2403
  524. package/test/tiles/grid/item-tile.test.ts +520 -520
  525. package/test/tiles/hover/hover-pane-controller.test.ts +418 -353
  526. package/test/tiles/list/tile-list-compact.test.ts +282 -282
  527. package/test/tiles/list/tile-list.test.ts +552 -552
  528. package/test/tiles/tile-dispatcher.test.ts +283 -187
  529. package/test/utils/format-date.test.ts +89 -89
  530. package/tsconfig.json +20 -20
  531. package/web-dev-server.config.mjs +30 -30
  532. package/web-test-runner.config.mjs +41 -41
@@ -0,0 +1,872 @@
1
+ import { __decorate } from "tslib";
2
+ import { css, html, LitElement, nothing, } from 'lit';
3
+ import { customElement, property, state } from 'lit/decorators.js';
4
+ import { map } from 'lit/directives/map.js';
5
+ import { ref } from 'lit/directives/ref.js';
6
+ import { msg } from '@lit/localize';
7
+ import { classMap } from 'lit/directives/class-map.js';
8
+ import '@internetarchive/histogram-date-range';
9
+ import '@internetarchive/feature-feedback';
10
+ import { ModalConfig, } from '@internetarchive/modal-manager';
11
+ import chevronIcon from './assets/img/icons/chevron';
12
+ import expandIcon from './assets/img/icons/expand';
13
+ import { defaultFacetDisplayOrder, facetTitles, lendingFacetDisplayNames, lendingFacetKeysVisibility, suppressedCollections, defaultFacetSort, } from './models';
14
+ import { analyticsActions, analyticsCategories, } from './utils/analytics-events';
15
+ import { srOnlyStyle } from './styles/sr-only';
16
+ import { ExpandedDatePicker } from './expanded-date-picker';
17
+ import { sortBucketsBySelectionState, updateSelectedFacetBucket, } from './utils/facet-utils';
18
+ import '@internetarchive/histogram-date-range';
19
+ import './collection-facets/more-facets-content';
20
+ import './collection-facets/facets-template';
21
+ import './collection-facets/facet-tombstone-row';
22
+ import './expanded-date-picker';
23
+ let CollectionFacets = class CollectionFacets extends LitElement {
24
+ constructor() {
25
+ super(...arguments);
26
+ this.moreLinksVisible = true;
27
+ this.facetsLoading = false;
28
+ this.histogramAggregationLoading = false;
29
+ this.collapsableFacets = false;
30
+ this.showHistogramDatePicker = false;
31
+ this.allowExpandingDatePicker = false;
32
+ this.suppressMediatypeFacets = false;
33
+ this.parentCollections = [];
34
+ this.collectionPagePath = '/details/';
35
+ this.isManageView = false;
36
+ this.isTvSearch = false;
37
+ this.facetDisplayOrder = defaultFacetDisplayOrder;
38
+ this.openFacets = {
39
+ subject: false,
40
+ lending: false,
41
+ mediatype: false,
42
+ language: false,
43
+ creator: false,
44
+ collection: false,
45
+ year: false,
46
+ program: false,
47
+ person: false,
48
+ sponsor: false,
49
+ };
50
+ /**
51
+ * Maximum # of facet buckets to render per facet group
52
+ */
53
+ this.allowedFacetCount = 6;
54
+ this.handleExpandedDatePickerClosed = () => {
55
+ var _a;
56
+ (_a = this.modalManager) === null || _a === void 0 ? void 0 : _a.classList.remove('expanded-date-picker');
57
+ };
58
+ /**
59
+ * Dispatches a `histogramDateRangeUpdated` event with the date range copied from the
60
+ * input event.
61
+ *
62
+ * Arrow function to ensure `this` is always bound to the current component.
63
+ */
64
+ this.histogramDateRangeUpdated = (e) => {
65
+ const { minDate, maxDate } = e.detail;
66
+ const event = new CustomEvent('histogramDateRangeUpdated', {
67
+ detail: { minDate, maxDate },
68
+ });
69
+ this.dispatchEvent(event);
70
+ };
71
+ }
72
+ render() {
73
+ const containerClasses = classMap({
74
+ loading: this.facetsLoading,
75
+ managing: this.isManageView,
76
+ });
77
+ // Added data-testid for Playwright testing
78
+ // Using facet-group class and aria-labels is not ideal for Playwright locator
79
+ const datePickerLabelId = 'date-picker-label';
80
+ return html `
81
+ <div id="container" class=${containerClasses}>
82
+ ${this.showHistogramDatePicker &&
83
+ (this.histogramAggregation || this.histogramAggregationLoading)
84
+ ? html `
85
+ <section
86
+ class="facet-group"
87
+ aria-labelledby=${datePickerLabelId}
88
+ data-testid="facet-group-header-label-date-picker"
89
+ >
90
+ <h3 id=${datePickerLabelId}>
91
+ Year Published <span class="sr-only">range filter</span>
92
+ ${this.expandDatePickerBtnTemplate}
93
+ </h3>
94
+ ${this.histogramTemplate}
95
+ </section>
96
+ `
97
+ : nothing}
98
+ ${this.collectionPartOfTemplate}
99
+ ${this.mergedFacets.map(facetGroup => this.getFacetGroupTemplate(facetGroup))}
100
+ </div>
101
+ `;
102
+ }
103
+ get collectionPartOfTemplate() {
104
+ var _a;
105
+ // We only display the "Part Of" section on collection pages
106
+ if (!((_a = this.parentCollections) === null || _a === void 0 ? void 0 : _a.length))
107
+ return nothing;
108
+ // Added data-testid for Playwright testing
109
+ // Using className and aria-labels is not ideal for Playwright locator
110
+ const headingId = 'partof-heading';
111
+ return html `
112
+ <section
113
+ class="facet-group partof-collections"
114
+ aria-labelledby=${headingId}
115
+ data-testid="facet-group-partof-collections"
116
+ >
117
+ <div class="facet-group-header">
118
+ <h3 id=${headingId}>${msg('Part Of')}</h3>
119
+ </div>
120
+ <ul>
121
+ ${map(this.parentCollections, collxn => {
122
+ var _a, _b;
123
+ const collectionURL = `${this.baseNavigationUrl}${this.collectionPagePath}${collxn}`;
124
+ return html ` <li>
125
+ <a
126
+ href=${collectionURL}
127
+ data-id=${collxn}
128
+ @click=${this.partOfCollectionClicked}
129
+ >
130
+ ${(_b = (_a = this.collectionTitles) === null || _a === void 0 ? void 0 : _a.get(collxn)) !== null && _b !== void 0 ? _b : collxn}
131
+ </a>
132
+ </li>`;
133
+ })}
134
+ </ul>
135
+ </section>
136
+ `;
137
+ }
138
+ partOfCollectionClicked(e) {
139
+ var _a;
140
+ (_a = this.analyticsHandler) === null || _a === void 0 ? void 0 : _a.sendEvent({
141
+ category: analyticsCategories.default,
142
+ action: analyticsActions.partOfCollectionClicked,
143
+ label: e.target.dataset.id,
144
+ });
145
+ }
146
+ /**
147
+ * Properties to pass into the date-picker histogram component
148
+ */
149
+ get histogramProps() {
150
+ var _a, _b, _c, _d, _e, _f;
151
+ const { histogramAggregation: aggregation } = this;
152
+ if (!aggregation)
153
+ return undefined;
154
+ // Normalize some properties from the raw aggregation
155
+ const firstYear = (_a = aggregation.first_bucket_year) !== null && _a !== void 0 ? _a : aggregation.first_bucket_key;
156
+ const lastYear = (_b = aggregation.last_bucket_year) !== null && _b !== void 0 ? _b : aggregation.last_bucket_key;
157
+ if (firstYear == null || lastYear == null)
158
+ return undefined; // We at least need a start/end year defined
159
+ const firstMonth = (_c = aggregation.first_bucket_month) !== null && _c !== void 0 ? _c : 1;
160
+ const lastMonth = (_d = aggregation.last_bucket_month) !== null && _d !== void 0 ? _d : 12;
161
+ const yearInterval = (_e = aggregation.interval) !== null && _e !== void 0 ? _e : 1;
162
+ const monthInterval = (_f = aggregation.interval_in_months) !== null && _f !== void 0 ? _f : 12;
163
+ const zeroPadMonth = (month) => month.toString().padStart(2, '0');
164
+ // The date picker is configured differently for TV search, allowing month-level resolution
165
+ if (this.isTvSearch) {
166
+ // Whether the bucket interval is less than a year
167
+ // (i.e., requires individual months to be handled & labeled)
168
+ const mustHandleMonths = monthInterval < 12;
169
+ return {
170
+ buckets: aggregation.buckets,
171
+ dateFormat: 'YYYY-MM',
172
+ tooltipDateFormat: mustHandleMonths ? 'MMM YYYY' : 'YYYY',
173
+ tooltipLabel: 'broadcast',
174
+ binSnapping: (mustHandleMonths
175
+ ? 'month'
176
+ : 'year'),
177
+ barScaling: 'linear',
178
+ minDate: `${firstYear}-${zeroPadMonth(firstMonth)}`,
179
+ maxDate: `${lastYear}-${zeroPadMonth(lastMonth + monthInterval - 1)}`,
180
+ };
181
+ }
182
+ // All other search types use the same configuration
183
+ return {
184
+ buckets: aggregation.buckets,
185
+ dateFormat: 'YYYY',
186
+ tooltipDateFormat: 'YYYY',
187
+ tooltipLabel: 'item',
188
+ binSnapping: 'year',
189
+ barScaling: 'logarithmic',
190
+ minDate: `${firstYear}`,
191
+ maxDate: `${lastYear + yearInterval - 1}`,
192
+ };
193
+ }
194
+ /**
195
+ * Opens a modal dialog containing an enlarged version of the date picker.
196
+ */
197
+ showDatePickerModal() {
198
+ var _a, _b, _c;
199
+ const { histogramProps } = this;
200
+ if (!histogramProps)
201
+ return;
202
+ const { buckets, dateFormat, tooltipDateFormat, tooltipLabel, binSnapping, barScaling, minDate, maxDate, } = histogramProps;
203
+ // Because the modal manager does not clear its DOM content after being closed,
204
+ // it may try to render the exact same date picker template when it is reopened.
205
+ // And because it isn't actually a descendent of this collection-facets component,
206
+ // changes to the template defined here may not trigger a reactive update to the date
207
+ // picker, resulting in it displaying a stale date range.
208
+ // This ref callback ensures that every time the date picker modal is opened, it will
209
+ // always propagate the most recent date range into the date picker regardless of
210
+ // whether Lit thinks the update is necessary.
211
+ const expandedDatePickerChanged = (elmt) => {
212
+ if (elmt && elmt instanceof ExpandedDatePicker) {
213
+ const expandedDatePicker = elmt;
214
+ expandedDatePicker.minSelectedDate = this.minSelectedDate;
215
+ expandedDatePicker.maxSelectedDate = this.maxSelectedDate;
216
+ }
217
+ };
218
+ const customModalContent = html `
219
+ <expanded-date-picker
220
+ ${ref(expandedDatePickerChanged)}
221
+ .minDate=${minDate}
222
+ .maxDate=${maxDate}
223
+ .minSelectedDate=${this.minSelectedDate}
224
+ .maxSelectedDate=${this.maxSelectedDate}
225
+ .customDateFormat=${dateFormat}
226
+ .customTooltipDateFormat=${tooltipDateFormat}
227
+ .customTooltipLabel=${tooltipLabel}
228
+ .binSnapping=${binSnapping}
229
+ .barScaling=${barScaling}
230
+ .buckets=${buckets}
231
+ .modalManager=${this.modalManager}
232
+ .analyticsHandler=${this.analyticsHandler}
233
+ @histogramDateRangeApplied=${this.histogramDateRangeUpdated}
234
+ @modalClosed=${this.handleExpandedDatePickerClosed}
235
+ ></expanded-date-picker>
236
+ `;
237
+ const config = new ModalConfig({
238
+ bodyColor: '#fff',
239
+ headerColor: '#194880',
240
+ showHeaderLogo: false,
241
+ closeOnBackdropClick: true, // TODO: want to fire analytics
242
+ title: html `${msg('Select a date range')}`,
243
+ });
244
+ (_a = this.modalManager) === null || _a === void 0 ? void 0 : _a.classList.add('expanded-date-picker');
245
+ (_b = this.modalManager) === null || _b === void 0 ? void 0 : _b.showModal({
246
+ config,
247
+ customModalContent,
248
+ userClosedModalCallback: this.handleExpandedDatePickerClosed,
249
+ });
250
+ (_c = this.analyticsHandler) === null || _c === void 0 ? void 0 : _c.sendEvent({
251
+ category: analyticsCategories.default,
252
+ action: analyticsActions.histogramExpanded,
253
+ label: window.location.href,
254
+ });
255
+ }
256
+ updated(changed) {
257
+ if (changed.has('selectedFacets')) {
258
+ this.dispatchFacetsChangedEvent();
259
+ }
260
+ }
261
+ // TODO: want to fire analytics?
262
+ dispatchFacetsChangedEvent() {
263
+ const event = new CustomEvent('facetsChanged', {
264
+ detail: this.selectedFacets,
265
+ });
266
+ this.dispatchEvent(event);
267
+ }
268
+ /**
269
+ * Template for the "Expand" button to show the date picker modal, or
270
+ * `nothing` if that button should currently not be shown.
271
+ */
272
+ get expandDatePickerBtnTemplate() {
273
+ return this.allowExpandingDatePicker && !this.facetsLoading
274
+ ? html `<button
275
+ class="expand-date-picker-btn"
276
+ aria-haspopup="dialog"
277
+ @click=${this.showDatePickerModal}
278
+ >
279
+ ${expandIcon}
280
+ </button>`
281
+ : nothing;
282
+ }
283
+ get histogramTemplate() {
284
+ var _a, _b;
285
+ if (this.histogramAggregationLoading) {
286
+ return html ` <div class="histogram-loading-indicator">&hellip;</div> `;
287
+ }
288
+ const { histogramProps } = this;
289
+ if (!histogramProps)
290
+ return nothing;
291
+ const { buckets, dateFormat, tooltipDateFormat, tooltipLabel, binSnapping, barScaling, minDate, maxDate, } = histogramProps;
292
+ return html `
293
+ <histogram-date-range
294
+ class=${this.isTvSearch ? 'wide-inputs' : ''}
295
+ .minDate=${minDate}
296
+ .maxDate=${maxDate}
297
+ .minSelectedDate=${(_a = this.minSelectedDate) !== null && _a !== void 0 ? _a : minDate}
298
+ .maxSelectedDate=${(_b = this.maxSelectedDate) !== null && _b !== void 0 ? _b : maxDate}
299
+ .updateDelay=${100}
300
+ .dateFormat=${dateFormat}
301
+ .tooltipDateFormat=${tooltipDateFormat}
302
+ .tooltipLabel=${tooltipLabel}
303
+ .binSnapping=${binSnapping}
304
+ .barScaling=${barScaling}
305
+ .bins=${buckets}
306
+ missingDataMessage="..."
307
+ .width=${this.collapsableFacets && this.contentWidth
308
+ ? this.contentWidth
309
+ : 180}
310
+ @histogramDateRangeUpdated=${this.histogramDateRangeUpdated}
311
+ ></histogram-date-range>
312
+ `;
313
+ }
314
+ /**
315
+ * Combines the selected facets with the aggregations to create a single list of facets
316
+ */
317
+ get mergedFacets() {
318
+ const facetGroups = [];
319
+ this.facetDisplayOrder.forEach(facetKey => {
320
+ var _a, _b;
321
+ if (facetKey === 'mediatype' && this.suppressMediatypeFacets)
322
+ return;
323
+ const selectedFacetGroup = this.selectedFacetGroups.find(group => group.key === facetKey);
324
+ const aggregateFacetGroup = this.aggregationFacetGroups.find(group => group.key === facetKey);
325
+ // if the user selected a facet, but it's not in the aggregation, we add it as-is
326
+ if (selectedFacetGroup && !aggregateFacetGroup) {
327
+ facetGroups.push(selectedFacetGroup);
328
+ return;
329
+ }
330
+ // if we don't have an aggregate facet group, don't add this to the list
331
+ if (!aggregateFacetGroup)
332
+ return;
333
+ // start with either the selected group if we have one, or the aggregate group
334
+ const facetGroup = selectedFacetGroup !== null && selectedFacetGroup !== void 0 ? selectedFacetGroup : aggregateFacetGroup;
335
+ // attach the counts to the selected buckets
336
+ let bucketsWithCount = (_a = selectedFacetGroup === null || selectedFacetGroup === void 0 ? void 0 : selectedFacetGroup.buckets.map(bucket => {
337
+ const selectedBucket = aggregateFacetGroup.buckets.find(b => b.key === bucket.key);
338
+ return selectedBucket
339
+ ? {
340
+ ...bucket,
341
+ count: selectedBucket.count,
342
+ }
343
+ : bucket;
344
+ })) !== null && _a !== void 0 ? _a : [];
345
+ // append any additional buckets that were not selected
346
+ aggregateFacetGroup.buckets.forEach(bucket => {
347
+ const existingBucket = bucketsWithCount.find(b => b.key === bucket.key);
348
+ if (existingBucket)
349
+ return;
350
+ bucketsWithCount.push(bucket);
351
+ });
352
+ /**
353
+ * render limited facet items on page facet area
354
+ *
355
+ * - by-default we are showing 6 items
356
+ * - additionally want to show all items (selected/suppressed) in page facet area
357
+ */
358
+ let allowedFacetCount = (_b = Object.keys((selectedFacetGroup === null || selectedFacetGroup === void 0 ? void 0 : selectedFacetGroup.buckets) || [])) === null || _b === void 0 ? void 0 : _b.length;
359
+ if (allowedFacetCount < this.allowedFacetCount) {
360
+ allowedFacetCount = this.allowedFacetCount; // splice start index from 0th
361
+ }
362
+ // For lending facets, only include a specific subset of buckets
363
+ if (facetKey === 'lending') {
364
+ bucketsWithCount = bucketsWithCount.filter(bucket => lendingFacetKeysVisibility[bucket.key]);
365
+ }
366
+ // Sort the FacetBuckets so that selected and hidden buckets come before the rest
367
+ sortBucketsBySelectionState(bucketsWithCount, defaultFacetSort[facetKey]);
368
+ // For mediatype facets, ensure the collection bucket is always shown if present
369
+ if (facetKey === 'mediatype') {
370
+ const collectionIndex = bucketsWithCount.findIndex(bucket => bucket.key === 'collection');
371
+ if (collectionIndex >= allowedFacetCount) {
372
+ const [collectionBucket] = bucketsWithCount.splice(collectionIndex, 1);
373
+ // If we're showing lots of selected facets, ensure we're not cutting off the last one
374
+ if (allowedFacetCount > this.allowedFacetCount) {
375
+ allowedFacetCount += 1;
376
+ }
377
+ bucketsWithCount.splice(allowedFacetCount - 1, 0, collectionBucket);
378
+ }
379
+ }
380
+ // For TV creator facets, uppercase the display text
381
+ if (facetKey === 'creator' && this.isTvSearch) {
382
+ bucketsWithCount.forEach(b => {
383
+ var _a, _b, _c;
384
+ b.displayText = (_b = ((_a = b.displayText) !== null && _a !== void 0 ? _a : b.key)) === null || _b === void 0 ? void 0 : _b.toLocaleUpperCase();
385
+ const channelLabel = (_c = this.tvChannelAliases) === null || _c === void 0 ? void 0 : _c.get(b.displayText);
386
+ if (channelLabel && channelLabel !== b.displayText) {
387
+ b.extraNote = `(${channelLabel})`;
388
+ }
389
+ });
390
+ }
391
+ // slice off how many items we want to show in page facet area
392
+ facetGroup.buckets = bucketsWithCount.slice(0, allowedFacetCount);
393
+ facetGroups.push(facetGroup);
394
+ });
395
+ return facetGroups;
396
+ }
397
+ /**
398
+ * Converts the selected facets to a `FacetGroup` array,
399
+ * which is easier to work with
400
+ */
401
+ get selectedFacetGroups() {
402
+ if (!this.selectedFacets)
403
+ return [];
404
+ const facetGroups = Object.entries(this.selectedFacets).map(([key, selectedFacets]) => {
405
+ const option = key;
406
+ const title = facetTitles[option];
407
+ const buckets = Object.entries(selectedFacets).map(([value, facetData]) => {
408
+ var _a;
409
+ let displayText = value;
410
+ // for lending facets, convert the key to a readable format
411
+ if (option === 'lending') {
412
+ displayText =
413
+ (_a = lendingFacetDisplayNames[value]) !== null && _a !== void 0 ? _a : value;
414
+ }
415
+ return {
416
+ displayText,
417
+ key: value,
418
+ count: facetData.count,
419
+ state: facetData.state,
420
+ };
421
+ });
422
+ return {
423
+ title,
424
+ key: option,
425
+ buckets,
426
+ };
427
+ });
428
+ return facetGroups;
429
+ }
430
+ /**
431
+ * Converts the raw `aggregations` to `FacetGroups`, which are easier to use
432
+ */
433
+ get aggregationFacetGroups() {
434
+ var _a;
435
+ const facetGroups = [];
436
+ Object.entries((_a = this.aggregations) !== null && _a !== void 0 ? _a : []).forEach(([key, aggregation]) => {
437
+ // the year_histogram and date_histogram data is in a different format so can't be handled here
438
+ if (['year_histogram', 'date_histogram'].includes(key))
439
+ return;
440
+ const option = key;
441
+ const title = facetTitles[option];
442
+ if (!title)
443
+ return;
444
+ let castedBuckets = aggregation.getSortedBuckets(defaultFacetSort[option]);
445
+ if (option === 'collection') {
446
+ // we are not showing fav- collections or certain deemphasized collections in facets
447
+ castedBuckets = castedBuckets === null || castedBuckets === void 0 ? void 0 : castedBuckets.filter(bucket => {
448
+ var _a;
449
+ const bucketKey = (_a = bucket === null || bucket === void 0 ? void 0 : bucket.key) === null || _a === void 0 ? void 0 : _a.toString();
450
+ return (!suppressedCollections[bucketKey] && !(bucketKey === null || bucketKey === void 0 ? void 0 : bucketKey.startsWith('fav-')));
451
+ });
452
+ }
453
+ const facetBuckets = castedBuckets.map(bucket => {
454
+ var _a;
455
+ const bucketKey = bucket.key;
456
+ let displayText = `${bucket.key}`;
457
+ // for lending facets, convert the bucket key to a readable format
458
+ if (option === 'lending') {
459
+ displayText =
460
+ (_a = lendingFacetDisplayNames[bucket.key]) !== null && _a !== void 0 ? _a : `${bucket.key}`;
461
+ }
462
+ return {
463
+ displayText,
464
+ key: `${bucketKey}`,
465
+ count: bucket.doc_count,
466
+ state: 'none',
467
+ };
468
+ });
469
+ const group = {
470
+ title,
471
+ key: option,
472
+ buckets: facetBuckets,
473
+ };
474
+ facetGroups.push(group);
475
+ });
476
+ return facetGroups;
477
+ }
478
+ /**
479
+ * Generate the template for a facet group with a header and the collapsible
480
+ * chevron for the mobile view
481
+ */
482
+ getFacetGroupTemplate(facetGroup) {
483
+ if (!this.facetsLoading && facetGroup.buckets.length === 0)
484
+ return nothing;
485
+ const { key } = facetGroup;
486
+ const isOpen = this.openFacets[key];
487
+ const collapser = html `
488
+ <span class="collapser ${isOpen ? 'open' : ''}"> ${chevronIcon} </span>
489
+ `;
490
+ const toggleCollapsed = () => {
491
+ const newOpenFacets = { ...this.openFacets };
492
+ newOpenFacets[key] = !isOpen;
493
+ this.openFacets = newOpenFacets;
494
+ };
495
+ // Added data-testid for Playwright testing
496
+ // Using className and aria-labels is not ideal for Playwright locator
497
+ const headerId = `facet-group-header-label-${facetGroup.key}`;
498
+ return html `
499
+ <section
500
+ class="facet-group ${this.collapsableFacets ? 'mobile' : ''}"
501
+ aria-labelledby=${headerId}
502
+ data-testid=${headerId}
503
+ >
504
+ <div class="facet-group-header">
505
+ <h3
506
+ id=${headerId}
507
+ @click=${toggleCollapsed}
508
+ @keyup=${toggleCollapsed}
509
+ >
510
+ ${this.collapsableFacets ? collapser : nothing} ${facetGroup.title}
511
+ <span class="sr-only">filters</span>
512
+ </h3>
513
+ </div>
514
+ <div
515
+ class="facet-group-content ${isOpen ? 'open' : ''}"
516
+ data-testid="facet-group-content-${facetGroup.key}"
517
+ >
518
+ ${this.facetsLoading
519
+ ? this.getTombstoneFacetGroupTemplate()
520
+ : html `
521
+ ${this.getFacetTemplate(facetGroup)}
522
+ ${this.searchMoreFacetsLink(facetGroup)}
523
+ `}
524
+ </div>
525
+ </section>
526
+ `;
527
+ }
528
+ getTombstoneFacetGroupTemplate() {
529
+ // Render five tombstone rows
530
+ return html `
531
+ ${map(Array(5).fill(null), () => html `<facet-tombstone-row></facet-tombstone-row>`)}
532
+ `;
533
+ }
534
+ /**
535
+ * Generate the More... link button just below the facets group
536
+ *
537
+ * TODO: want to fire analytics?
538
+ */
539
+ searchMoreFacetsLink(facetGroup) {
540
+ // Don't render More... links for FTS searches
541
+ if (!this.moreLinksVisible) {
542
+ return nothing;
543
+ }
544
+ // Don't render More... links for lending facets
545
+ if (facetGroup.key === 'lending') {
546
+ return nothing;
547
+ }
548
+ // Don't render More... link if the number of facets < this.allowedFacetCount
549
+ if (Object.keys(facetGroup.buckets).length < this.allowedFacetCount) {
550
+ return nothing;
551
+ }
552
+ // We sort years in numeric order by default, rather than bucket count
553
+ const facetSort = defaultFacetSort[facetGroup.key];
554
+ // Added data-testid for Playwright testing
555
+ // Using the className is not ideal for Playwright locator
556
+ return html `<button
557
+ class="more-link"
558
+ @click=${() => {
559
+ var _a;
560
+ this.showMoreFacetsModal(facetGroup, facetSort);
561
+ (_a = this.analyticsHandler) === null || _a === void 0 ? void 0 : _a.sendEvent({
562
+ category: analyticsCategories.default,
563
+ action: analyticsActions.showMoreFacetsModal,
564
+ label: facetGroup.key,
565
+ });
566
+ this.dispatchEvent(new CustomEvent('showMoreFacets', { detail: facetGroup.key }));
567
+ }}
568
+ data-testid="more-link-btn"
569
+ >
570
+ More...
571
+ </button>`;
572
+ }
573
+ async showMoreFacetsModal(facetGroup, sortedBy) {
574
+ var _a, _b;
575
+ const customModalContent = html `
576
+ <more-facets-content
577
+ .analyticsHandler=${this.analyticsHandler}
578
+ .facetKey=${facetGroup.key}
579
+ .query=${this.query}
580
+ .identifiers=${this.identifiers}
581
+ .filterMap=${this.filterMap}
582
+ .pageSpecifierParams=${this.pageSpecifierParams}
583
+ .modalManager=${this.modalManager}
584
+ .searchService=${this.searchService}
585
+ .searchType=${this.searchType}
586
+ .collectionTitles=${this.collectionTitles}
587
+ .tvChannelAliases=${this.tvChannelAliases}
588
+ .selectedFacets=${this.selectedFacets}
589
+ .sortedBy=${sortedBy}
590
+ .isTvSearch=${this.isTvSearch}
591
+ @facetsChanged=${(e) => {
592
+ const event = new CustomEvent('facetsChanged', {
593
+ detail: e.detail,
594
+ bubbles: true,
595
+ composed: true,
596
+ });
597
+ this.dispatchEvent(event);
598
+ }}
599
+ >
600
+ </more-facets-content>
601
+ `;
602
+ const config = new ModalConfig({
603
+ bodyColor: '#fff',
604
+ headerColor: '#194880',
605
+ showHeaderLogo: false,
606
+ closeOnBackdropClick: true, // TODO: want to fire analytics
607
+ title: html `Select filters`,
608
+ });
609
+ (_a = this.modalManager) === null || _a === void 0 ? void 0 : _a.classList.add('more-search-facets');
610
+ (_b = this.modalManager) === null || _b === void 0 ? void 0 : _b.showModal({
611
+ config,
612
+ customModalContent,
613
+ userClosedModalCallback: () => {
614
+ var _a;
615
+ (_a = this.modalManager) === null || _a === void 0 ? void 0 : _a.classList.remove('more-search-facets');
616
+ },
617
+ });
618
+ }
619
+ /**
620
+ * Generate the list template for each bucket in a facet group
621
+ */
622
+ getFacetTemplate(facetGroup) {
623
+ return html `
624
+ <facets-template
625
+ .collectionPagePath=${this.collectionPagePath}
626
+ .facetGroup=${facetGroup}
627
+ .selectedFacets=${this.selectedFacets}
628
+ .collectionTitles=${this.collectionTitles}
629
+ @facetClick=${(e) => {
630
+ this.selectedFacets = updateSelectedFacetBucket(this.selectedFacets, facetGroup.key, e.detail.bucket, true);
631
+ const event = new CustomEvent('facetsChanged', {
632
+ detail: this.selectedFacets,
633
+ bubbles: true,
634
+ composed: true,
635
+ });
636
+ this.dispatchEvent(event);
637
+ }}
638
+ ></facets-template>
639
+ `;
640
+ }
641
+ static get styles() {
642
+ return [
643
+ srOnlyStyle,
644
+ css `
645
+ a:link {
646
+ text-decoration: none;
647
+ color: var(--ia-theme-link-color, #4b64ff);
648
+ }
649
+ a:link:hover {
650
+ text-decoration: underline;
651
+ }
652
+
653
+ #container.loading {
654
+ opacity: 0.5;
655
+ }
656
+
657
+ #container.managing {
658
+ opacity: 0.3;
659
+ }
660
+
661
+ .histogram-loading-indicator {
662
+ width: 100%;
663
+ height: 2.25rem;
664
+ margin-top: 1.75rem;
665
+ font-size: 1.4rem;
666
+ text-align: center;
667
+ }
668
+
669
+ .collapser {
670
+ display: inline-block;
671
+ cursor: pointer;
672
+ width: 10px;
673
+ height: 10px;
674
+ }
675
+
676
+ .collapser svg {
677
+ transition: transform 0.2s ease-in-out;
678
+ }
679
+
680
+ .collapser.open svg {
681
+ transform: rotate(90deg);
682
+ }
683
+
684
+ .facet-group:not(:last-child) {
685
+ margin-bottom: 2rem;
686
+ }
687
+
688
+ .facet-group h3 {
689
+ margin-bottom: 0.7rem;
690
+ }
691
+
692
+ .facet-group.mobile h3 {
693
+ cursor: pointer;
694
+ }
695
+
696
+ .facet-group-header {
697
+ display: flex;
698
+ margin-bottom: 0.7rem;
699
+ justify-content: space-between;
700
+ border-bottom: 1px solid rgb(232, 232, 232);
701
+ }
702
+
703
+ .facet-group-content {
704
+ transition: max-height 0.2s ease-in-out;
705
+ }
706
+
707
+ .facet-group.mobile .facet-group-content {
708
+ max-height: 0;
709
+ overflow: hidden;
710
+ }
711
+
712
+ .facet-group.mobile .facet-group-content.open {
713
+ max-height: 2000px;
714
+ }
715
+
716
+ .partof-collections ul {
717
+ list-style-type: none;
718
+ padding: 0;
719
+ font-size: 1.2rem;
720
+ }
721
+
722
+ h3 {
723
+ font-size: 1.4rem;
724
+ margin: 0;
725
+ }
726
+
727
+ .more-link {
728
+ font-size: 1.2rem;
729
+ text-decoration: none;
730
+ padding: 0;
731
+ margin-top: 0.25rem;
732
+ background: inherit;
733
+ border: 0;
734
+ color: var(--ia-theme-link-color, #4b64ff);
735
+ cursor: pointer;
736
+ }
737
+
738
+ #date-picker-label {
739
+ display: flex;
740
+ justify-content: space-between;
741
+ }
742
+
743
+ .expand-date-picker-btn {
744
+ margin: 0;
745
+ padding: 0;
746
+ border: 0;
747
+ appearance: none;
748
+ background: none;
749
+ cursor: pointer;
750
+ }
751
+
752
+ .expand-date-picker-btn > svg {
753
+ width: 14px;
754
+ height: 14px;
755
+ }
756
+
757
+ .sorting-icon {
758
+ height: 15px;
759
+ cursor: pointer;
760
+ }
761
+
762
+ histogram-date-range.wide-inputs {
763
+ --histogramDateRangeInputWidth: 4.8rem;
764
+ }
765
+ `,
766
+ ];
767
+ }
768
+ };
769
+ __decorate([
770
+ property({ type: Object })
771
+ ], CollectionFacets.prototype, "searchService", void 0);
772
+ __decorate([
773
+ property({ type: Number })
774
+ ], CollectionFacets.prototype, "searchType", void 0);
775
+ __decorate([
776
+ property({ type: Object })
777
+ ], CollectionFacets.prototype, "aggregations", void 0);
778
+ __decorate([
779
+ property({ type: Object })
780
+ ], CollectionFacets.prototype, "histogramAggregation", void 0);
781
+ __decorate([
782
+ property({ type: String })
783
+ ], CollectionFacets.prototype, "minSelectedDate", void 0);
784
+ __decorate([
785
+ property({ type: String })
786
+ ], CollectionFacets.prototype, "maxSelectedDate", void 0);
787
+ __decorate([
788
+ property({ type: Boolean })
789
+ ], CollectionFacets.prototype, "moreLinksVisible", void 0);
790
+ __decorate([
791
+ property({ type: Boolean })
792
+ ], CollectionFacets.prototype, "facetsLoading", void 0);
793
+ __decorate([
794
+ property({ type: Boolean })
795
+ ], CollectionFacets.prototype, "histogramAggregationLoading", void 0);
796
+ __decorate([
797
+ property({ type: Object })
798
+ ], CollectionFacets.prototype, "selectedFacets", void 0);
799
+ __decorate([
800
+ property({ type: Boolean })
801
+ ], CollectionFacets.prototype, "collapsableFacets", void 0);
802
+ __decorate([
803
+ property({ type: Number })
804
+ ], CollectionFacets.prototype, "contentWidth", void 0);
805
+ __decorate([
806
+ property({ type: Boolean })
807
+ ], CollectionFacets.prototype, "showHistogramDatePicker", void 0);
808
+ __decorate([
809
+ property({ type: Boolean })
810
+ ], CollectionFacets.prototype, "allowExpandingDatePicker", void 0);
811
+ __decorate([
812
+ property({ type: Boolean })
813
+ ], CollectionFacets.prototype, "suppressMediatypeFacets", void 0);
814
+ __decorate([
815
+ property({ type: String })
816
+ ], CollectionFacets.prototype, "query", void 0);
817
+ __decorate([
818
+ property({ type: Array })
819
+ ], CollectionFacets.prototype, "identifiers", void 0);
820
+ __decorate([
821
+ property({ type: Object })
822
+ ], CollectionFacets.prototype, "pageSpecifierParams", void 0);
823
+ __decorate([
824
+ property({ type: Array })
825
+ ], CollectionFacets.prototype, "parentCollections", void 0);
826
+ __decorate([
827
+ property({ type: Object })
828
+ ], CollectionFacets.prototype, "filterMap", void 0);
829
+ __decorate([
830
+ property({ type: String })
831
+ ], CollectionFacets.prototype, "baseNavigationUrl", void 0);
832
+ __decorate([
833
+ property({ type: String })
834
+ ], CollectionFacets.prototype, "collectionPagePath", void 0);
835
+ __decorate([
836
+ property({ type: Boolean })
837
+ ], CollectionFacets.prototype, "isManageView", void 0);
838
+ __decorate([
839
+ property({ type: Boolean })
840
+ ], CollectionFacets.prototype, "isTvSearch", void 0);
841
+ __decorate([
842
+ property({ type: Array })
843
+ ], CollectionFacets.prototype, "facetDisplayOrder", void 0);
844
+ __decorate([
845
+ property({ type: Object, attribute: false })
846
+ ], CollectionFacets.prototype, "modalManager", void 0);
847
+ __decorate([
848
+ property({ type: Object, attribute: false })
849
+ ], CollectionFacets.prototype, "resizeObserver", void 0);
850
+ __decorate([
851
+ property({ type: Object, attribute: false })
852
+ ], CollectionFacets.prototype, "featureFeedbackService", void 0);
853
+ __decorate([
854
+ property({ type: Object, attribute: false })
855
+ ], CollectionFacets.prototype, "recaptchaManager", void 0);
856
+ __decorate([
857
+ property({ type: Object, attribute: false })
858
+ ], CollectionFacets.prototype, "analyticsHandler", void 0);
859
+ __decorate([
860
+ property({ type: Object, attribute: false })
861
+ ], CollectionFacets.prototype, "collectionTitles", void 0);
862
+ __decorate([
863
+ property({ type: Object, attribute: false })
864
+ ], CollectionFacets.prototype, "tvChannelAliases", void 0);
865
+ __decorate([
866
+ state()
867
+ ], CollectionFacets.prototype, "openFacets", void 0);
868
+ CollectionFacets = __decorate([
869
+ customElement('collection-facets')
870
+ ], CollectionFacets);
871
+ export { CollectionFacets };
872
+ //# sourceMappingURL=collection-facets.js.map