@internetarchive/collection-browser 3.3.2 → 3.3.4-alpha-webdev7761.0

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