@internetarchive/collection-browser 2.7.14-alpha-webdev7002.4 → 2.7.14-alpha-webdev7397.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (509) hide show
  1. package/.github/workflows/ci.yml +3 -3
  2. package/.github/workflows/gh-pages-main.yml +2 -2
  3. package/.github/workflows/pr-preview.yml +2 -2
  4. package/.prettierignore +1 -0
  5. package/dist/index.d.ts +13 -16
  6. package/dist/index.js +11 -16
  7. package/dist/index.js.map +1 -1
  8. package/dist/src/app-root.d.ts +107 -107
  9. package/dist/src/app-root.js +531 -531
  10. package/dist/src/app-root.js.map +1 -1
  11. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  12. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  13. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  14. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  15. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  16. package/dist/src/assets/img/icons/chevron.js +2 -2
  17. package/dist/src/assets/img/icons/contract.d.ts +2 -2
  18. package/dist/src/assets/img/icons/contract.js +2 -2
  19. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  20. package/dist/src/assets/img/icons/empty-query.js +2 -2
  21. package/dist/src/assets/img/icons/expand.d.ts +2 -2
  22. package/dist/src/assets/img/icons/expand.js +2 -2
  23. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  24. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  25. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  26. package/dist/src/assets/img/icons/eye.js +2 -2
  27. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  28. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  29. package/dist/src/assets/img/icons/favorite-unfilled.d.ts +1 -1
  30. package/dist/src/assets/img/icons/favorite-unfilled.js +2 -2
  31. package/dist/src/assets/img/icons/filter.d.ts +2 -2
  32. package/dist/src/assets/img/icons/filter.js +2 -2
  33. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  34. package/dist/src/assets/img/icons/login-required.js +2 -2
  35. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  36. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  37. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  38. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  39. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  40. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  41. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  42. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  43. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  44. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  45. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  46. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  47. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  48. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  49. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  50. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  51. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
  52. package/dist/src/assets/img/icons/mediatype/search.js +2 -2
  53. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  54. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  55. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  56. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  57. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  58. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  59. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  60. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  61. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  62. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  63. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  64. package/dist/src/assets/img/icons/null-result.js +2 -2
  65. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  66. package/dist/src/assets/img/icons/restricted.js +2 -2
  67. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  68. package/dist/src/assets/img/icons/reviews.js +2 -2
  69. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  70. package/dist/src/assets/img/icons/upload.js +2 -2
  71. package/dist/src/assets/img/icons/views.d.ts +1 -1
  72. package/dist/src/assets/img/icons/views.js +2 -2
  73. package/dist/src/circular-activity-indicator.d.ts +5 -5
  74. package/dist/src/circular-activity-indicator.js +17 -17
  75. package/dist/src/circular-activity-indicator.js.map +1 -1
  76. package/dist/src/collection-browser.d.ts +606 -606
  77. package/dist/src/collection-browser.js +1684 -1677
  78. package/dist/src/collection-browser.js.map +1 -1
  79. package/dist/src/collection-facets/facet-row.d.ts +30 -30
  80. package/dist/src/collection-facets/facet-row.js +118 -118
  81. package/dist/src/collection-facets/facet-row.js.map +1 -1
  82. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  83. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  84. package/dist/src/collection-facets/facet-tombstone-row.js.map +1 -1
  85. package/dist/src/collection-facets/facets-template.d.ts +13 -13
  86. package/dist/src/collection-facets/facets-template.js +49 -49
  87. package/dist/src/collection-facets/facets-template.js.map +1 -1
  88. package/dist/src/collection-facets/more-facets-content.d.ts +106 -106
  89. package/dist/src/collection-facets/more-facets-content.js +406 -408
  90. package/dist/src/collection-facets/more-facets-content.js.map +1 -1
  91. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  92. package/dist/src/collection-facets/more-facets-pagination.js +197 -196
  93. package/dist/src/collection-facets/more-facets-pagination.js.map +1 -1
  94. package/dist/src/collection-facets/smart-facets/dedupe.d.ts +10 -10
  95. package/dist/src/collection-facets/smart-facets/dedupe.js +33 -33
  96. package/dist/src/collection-facets/smart-facets/dedupe.js.map +1 -1
  97. package/dist/src/collection-facets/smart-facets/heuristics/{browser-language/browser-language-heuristic.d.ts → browser-language-heuristic.d.ts} +5 -5
  98. package/dist/src/collection-facets/smart-facets/heuristics/{browser-language/browser-language-heuristic.js → browser-language-heuristic.js} +23 -23
  99. package/dist/src/collection-facets/smart-facets/heuristics/browser-language-heuristic.js.map +1 -0
  100. package/dist/src/collection-facets/smart-facets/heuristics/{query-keywords/query-keywords-heuristic.d.ts → query-keywords-heuristic.d.ts} +5 -4
  101. package/dist/src/collection-facets/smart-facets/heuristics/{query-keywords/query-keywords-map.js → query-keywords-heuristic.js} +45 -35
  102. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.js.map +1 -0
  103. package/dist/src/collection-facets/smart-facets/heuristics/{wikidata/wikidata-heuristic.d.ts → wikidata-heuristic.d.ts} +5 -4
  104. package/dist/src/collection-facets/smart-facets/heuristics/{wikidata/wikidata-entity-map.js → wikidata-heuristic.js} +173 -133
  105. package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js.map +1 -0
  106. package/dist/src/collection-facets/smart-facets/models.d.ts +26 -26
  107. package/dist/src/collection-facets/smart-facets/models.js +1 -1
  108. package/dist/src/collection-facets/smart-facets/smart-facet-bar.d.ts +31 -31
  109. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js +237 -240
  110. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js.map +1 -1
  111. package/dist/src/collection-facets/smart-facets/smart-facet-button.d.ts +11 -11
  112. package/dist/src/collection-facets/smart-facets/smart-facet-button.js +86 -86
  113. package/dist/src/collection-facets/smart-facets/smart-facet-button.js.map +1 -1
  114. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.d.ts +16 -16
  115. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js +100 -100
  116. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js.map +1 -1
  117. package/dist/src/collection-facets/smart-facets/smart-facet-equals.d.ts +2 -2
  118. package/dist/src/collection-facets/smart-facets/smart-facet-equals.js +12 -12
  119. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.d.ts +5 -5
  120. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js +15 -17
  121. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js.map +1 -1
  122. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  123. package/dist/src/collection-facets/toggle-switch.js +94 -94
  124. package/dist/src/collection-facets/toggle-switch.js.map +1 -1
  125. package/dist/src/collection-facets.d.ts +103 -103
  126. package/dist/src/collection-facets.js +521 -522
  127. package/dist/src/collection-facets.js.map +1 -1
  128. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +245 -245
  129. package/dist/src/data-source/collection-browser-data-source-interface.js +1 -1
  130. package/dist/src/data-source/collection-browser-data-source-interface.js.map +1 -1
  131. package/dist/src/data-source/collection-browser-data-source.d.ts +377 -377
  132. package/dist/src/data-source/collection-browser-data-source.js +1003 -1004
  133. package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
  134. package/dist/src/data-source/collection-browser-query-state.d.ts +44 -44
  135. package/dist/src/data-source/collection-browser-query-state.js +1 -1
  136. package/dist/src/data-source/models.d.ts +28 -28
  137. package/dist/src/data-source/models.js +8 -8
  138. package/dist/src/empty-placeholder.d.ts +23 -23
  139. package/dist/src/empty-placeholder.js +87 -88
  140. package/dist/src/empty-placeholder.js.map +1 -1
  141. package/dist/src/expanded-date-picker.d.ts +43 -43
  142. package/dist/src/expanded-date-picker.js +109 -109
  143. package/dist/src/expanded-date-picker.js.map +1 -1
  144. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  145. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  146. package/dist/src/language-code-handler/language-code-handler.js.map +1 -1
  147. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  148. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  149. package/dist/src/language-code-handler/language-code-mapping.js.map +1 -1
  150. package/dist/src/manage/manage-bar.d.ts +58 -58
  151. package/dist/src/manage/manage-bar.js +175 -175
  152. package/dist/src/manage/manage-bar.js.map +1 -1
  153. package/dist/src/manage/remove-items-modal-content.d.ts +9 -9
  154. package/dist/src/manage/remove-items-modal-content.js +34 -34
  155. package/dist/src/manage/remove-items-modal-content.js.map +1 -1
  156. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  157. package/dist/src/mediatype/mediatype-config.js +92 -91
  158. package/dist/src/mediatype/mediatype-config.js.map +1 -1
  159. package/dist/src/models.d.ts +228 -228
  160. package/dist/src/models.js +401 -401
  161. package/dist/src/models.js.map +1 -1
  162. package/dist/src/restoration-state-handler.d.ts +70 -70
  163. package/dist/src/restoration-state-handler.js +362 -363
  164. package/dist/src/restoration-state-handler.js.map +1 -1
  165. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  166. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  167. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js.map +1 -1
  168. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  169. package/dist/src/sort-filter-bar/alpha-bar.js +136 -136
  170. package/dist/src/sort-filter-bar/alpha-bar.js.map +1 -1
  171. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  172. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  173. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  174. package/dist/src/sort-filter-bar/img/list.js +2 -2
  175. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  176. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  177. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  178. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  179. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  180. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  181. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  182. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  183. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  184. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  185. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +223 -223
  186. package/dist/src/sort-filter-bar/sort-filter-bar.js +696 -697
  187. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  188. package/dist/src/styles/ia-button.d.ts +2 -2
  189. package/dist/src/styles/ia-button.js +17 -17
  190. package/dist/src/styles/item-image-styles.d.ts +8 -8
  191. package/dist/src/styles/item-image-styles.js +9 -9
  192. package/dist/src/styles/sr-only.d.ts +1 -1
  193. package/dist/src/styles/sr-only.js +2 -2
  194. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  195. package/dist/src/tiles/base-tile-component.js +64 -64
  196. package/dist/src/tiles/base-tile-component.js.map +1 -1
  197. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  198. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  199. package/dist/src/tiles/collection-browser-loading-tile.js.map +1 -1
  200. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  201. package/dist/src/tiles/grid/account-tile.js +72 -72
  202. package/dist/src/tiles/grid/account-tile.js.map +1 -1
  203. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  204. package/dist/src/tiles/grid/collection-tile.js +80 -80
  205. package/dist/src/tiles/grid/collection-tile.js.map +1 -1
  206. package/dist/src/tiles/grid/item-tile.d.ts +34 -34
  207. package/dist/src/tiles/grid/item-tile.js +159 -160
  208. package/dist/src/tiles/grid/item-tile.js.map +1 -1
  209. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  210. package/dist/src/tiles/grid/search-tile.js +51 -51
  211. package/dist/src/tiles/grid/search-tile.js.map +1 -1
  212. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  213. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  214. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  215. package/dist/src/tiles/grid/tile-stats.js +54 -54
  216. package/dist/src/tiles/grid/tile-stats.js.map +1 -1
  217. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  218. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  219. package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
  220. package/dist/src/tiles/hover/tile-hover-pane.d.ts +18 -18
  221. package/dist/src/tiles/hover/tile-hover-pane.js +72 -70
  222. package/dist/src/tiles/hover/tile-hover-pane.js.map +1 -1
  223. package/dist/src/tiles/image-block.d.ts +18 -18
  224. package/dist/src/tiles/image-block.js +89 -89
  225. package/dist/src/tiles/image-block.js.map +1 -1
  226. package/dist/src/tiles/item-image.d.ts +39 -39
  227. package/dist/src/tiles/item-image.js +154 -154
  228. package/dist/src/tiles/item-image.js.map +1 -1
  229. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  230. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  231. package/dist/src/tiles/list/tile-list-compact-header.js.map +1 -1
  232. package/dist/src/tiles/list/tile-list-compact.d.ts +19 -19
  233. package/dist/src/tiles/list/tile-list-compact.js +122 -122
  234. package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
  235. package/dist/src/tiles/list/tile-list.d.ts +54 -54
  236. package/dist/src/tiles/list/tile-list.js +324 -326
  237. package/dist/src/tiles/list/tile-list.js.map +1 -1
  238. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  239. package/dist/src/tiles/mediatype-icon.js +47 -47
  240. package/dist/src/tiles/mediatype-icon.js.map +1 -1
  241. package/dist/src/tiles/overlay/icon-overlay.d.ts +8 -8
  242. package/dist/src/tiles/overlay/icon-overlay.js +25 -25
  243. package/dist/src/tiles/overlay/icon-overlay.js.map +1 -1
  244. package/dist/src/tiles/overlay/text-overlay.d.ts +9 -9
  245. package/dist/src/tiles/overlay/text-overlay.js +31 -31
  246. package/dist/src/tiles/overlay/text-overlay.js.map +1 -1
  247. package/dist/src/tiles/review-block.d.ts +12 -12
  248. package/dist/src/tiles/review-block.js +56 -56
  249. package/dist/src/tiles/review-block.js.map +1 -1
  250. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  251. package/dist/src/tiles/text-snippet-block.js +73 -73
  252. package/dist/src/tiles/text-snippet-block.js.map +1 -1
  253. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  254. package/dist/src/tiles/tile-dispatcher.js +230 -230
  255. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  256. package/dist/src/tiles/tile-display-value-provider.d.ts +47 -47
  257. package/dist/src/tiles/tile-display-value-provider.js +94 -94
  258. package/dist/src/tiles/tile-display-value-provider.js.map +1 -1
  259. package/dist/src/utils/analytics-events.d.ts +28 -28
  260. package/dist/src/utils/analytics-events.js +30 -30
  261. package/dist/src/utils/array-equals.d.ts +4 -4
  262. package/dist/src/utils/array-equals.js +10 -10
  263. package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -11
  264. package/dist/src/utils/collapse-repeated-quotes.js +13 -13
  265. package/dist/src/utils/facet-utils.d.ts +83 -83
  266. package/dist/src/utils/facet-utils.js +145 -145
  267. package/dist/src/utils/facet-utils.js.map +1 -1
  268. package/dist/src/utils/format-count.d.ts +7 -7
  269. package/dist/src/utils/format-count.js +75 -76
  270. package/dist/src/utils/format-count.js.map +1 -1
  271. package/dist/src/utils/format-date.d.ts +2 -2
  272. package/dist/src/utils/format-date.js +27 -27
  273. package/dist/src/utils/format-date.js.map +1 -1
  274. package/dist/src/utils/format-unit-size.d.ts +2 -2
  275. package/dist/src/utils/format-unit-size.js +33 -33
  276. package/dist/src/utils/format-unit-size.js.map +1 -1
  277. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  278. package/dist/src/utils/local-date-from-utc.js +15 -15
  279. package/dist/src/utils/log.d.ts +7 -7
  280. package/dist/src/utils/log.js +13 -15
  281. package/dist/src/utils/log.js.map +1 -1
  282. package/dist/src/utils/resolve-mediatype.d.ts +8 -8
  283. package/dist/src/utils/resolve-mediatype.js +23 -23
  284. package/dist/src/utils/resolve-mediatype.js.map +1 -1
  285. package/dist/src/utils/sha1.d.ts +2 -2
  286. package/dist/src/utils/sha1.js +8 -8
  287. package/dist/test/collection-browser.test.d.ts +1 -1
  288. package/dist/test/collection-browser.test.js +1309 -1308
  289. package/dist/test/collection-browser.test.js.map +1 -1
  290. package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
  291. package/dist/test/collection-facets/facet-row.test.js +230 -227
  292. package/dist/test/collection-facets/facet-row.test.js.map +1 -1
  293. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  294. package/dist/test/collection-facets/facets-template.test.js +91 -91
  295. package/dist/test/collection-facets/facets-template.test.js.map +1 -1
  296. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  297. package/dist/test/collection-facets/more-facets-content.test.js +140 -141
  298. package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
  299. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  300. package/dist/test/collection-facets/more-facets-pagination.test.js +116 -117
  301. package/dist/test/collection-facets/more-facets-pagination.test.js.map +1 -1
  302. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  303. package/dist/test/collection-facets/toggle-switch.test.js +82 -73
  304. package/dist/test/collection-facets/toggle-switch.test.js.map +1 -1
  305. package/dist/test/collection-facets.test.d.ts +2 -2
  306. package/dist/test/collection-facets.test.js +692 -692
  307. package/dist/test/collection-facets.test.js.map +1 -1
  308. package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -1
  309. package/dist/test/data-source/collection-browser-data-source.test.js +89 -89
  310. package/dist/test/data-source/collection-browser-data-source.test.js.map +1 -1
  311. package/dist/test/empty-placeholder.test.d.ts +1 -1
  312. package/dist/test/empty-placeholder.test.js +62 -63
  313. package/dist/test/empty-placeholder.test.js.map +1 -1
  314. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  315. package/dist/test/expanded-date-picker.test.js +97 -96
  316. package/dist/test/expanded-date-picker.test.js.map +1 -1
  317. package/dist/test/icon-overlay.test.d.ts +1 -1
  318. package/dist/test/icon-overlay.test.js +23 -24
  319. package/dist/test/icon-overlay.test.js.map +1 -1
  320. package/dist/test/image-block.test.d.ts +1 -1
  321. package/dist/test/image-block.test.js +106 -107
  322. package/dist/test/image-block.test.js.map +1 -1
  323. package/dist/test/item-image.test.d.ts +1 -1
  324. package/dist/test/item-image.test.js +84 -85
  325. package/dist/test/item-image.test.js.map +1 -1
  326. package/dist/test/manage/manage-bar.test.d.ts +2 -2
  327. package/dist/test/manage/manage-bar.test.js +100 -101
  328. package/dist/test/manage/manage-bar.test.js.map +1 -1
  329. package/dist/test/manage/remove-items-modal-content.test.d.ts +1 -1
  330. package/dist/test/manage/remove-items-modal-content.test.js +44 -45
  331. package/dist/test/manage/remove-items-modal-content.test.js.map +1 -1
  332. package/dist/test/mediatype-config.test.d.ts +1 -1
  333. package/dist/test/mediatype-config.test.js +16 -16
  334. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  335. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  336. package/dist/test/mocks/mock-search-responses.d.ts +25 -25
  337. package/dist/test/mocks/mock-search-responses.js +942 -942
  338. package/dist/test/mocks/mock-search-responses.js.map +1 -1
  339. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  340. package/dist/test/mocks/mock-search-service.js +54 -54
  341. package/dist/test/mocks/mock-search-service.js.map +1 -1
  342. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  343. package/dist/test/restoration-state-handler.test.js +270 -270
  344. package/dist/test/restoration-state-handler.test.js.map +1 -1
  345. package/dist/test/review-block.test.d.ts +1 -1
  346. package/dist/test/review-block.test.js +43 -44
  347. package/dist/test/review-block.test.js.map +1 -1
  348. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  349. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  350. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js.map +1 -1
  351. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  352. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  353. package/dist/test/sort-filter-bar/alpha-bar.test.js.map +1 -1
  354. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  355. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +425 -426
  356. package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -1
  357. package/dist/test/text-overlay.test.d.ts +1 -1
  358. package/dist/test/text-overlay.test.js +37 -38
  359. package/dist/test/text-overlay.test.js.map +1 -1
  360. package/dist/test/text-snippet-block.test.d.ts +1 -1
  361. package/dist/test/text-snippet-block.test.js +56 -57
  362. package/dist/test/text-snippet-block.test.js.map +1 -1
  363. package/dist/test/tile-stats.test.d.ts +1 -1
  364. package/dist/test/tile-stats.test.js +98 -99
  365. package/dist/test/tile-stats.test.js.map +1 -1
  366. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  367. package/dist/test/tiles/grid/account-tile.test.js +75 -76
  368. package/dist/test/tiles/grid/account-tile.test.js.map +1 -1
  369. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  370. package/dist/test/tiles/grid/collection-tile.test.js +72 -73
  371. package/dist/test/tiles/grid/collection-tile.test.js.map +1 -1
  372. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  373. package/dist/test/tiles/grid/item-tile.test.js +311 -312
  374. package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
  375. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  376. package/dist/test/tiles/grid/search-tile.test.js +50 -51
  377. package/dist/test/tiles/grid/search-tile.test.js.map +1 -1
  378. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  379. package/dist/test/tiles/hover/hover-pane-controller.test.js +259 -259
  380. package/dist/test/tiles/hover/hover-pane-controller.test.js.map +1 -1
  381. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  382. package/dist/test/tiles/hover/tile-hover-pane.test.js +56 -56
  383. package/dist/test/tiles/hover/tile-hover-pane.test.js.map +1 -1
  384. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  385. package/dist/test/tiles/list/tile-list-compact.test.js +142 -143
  386. package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -1
  387. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  388. package/dist/test/tiles/list/tile-list.test.js +296 -297
  389. package/dist/test/tiles/list/tile-list.test.js.map +1 -1
  390. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  391. package/dist/test/tiles/tile-dispatcher.test.js +100 -100
  392. package/dist/test/tiles/tile-dispatcher.test.js.map +1 -1
  393. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  394. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  395. package/dist/test/utils/array-equals.test.d.ts +1 -1
  396. package/dist/test/utils/array-equals.test.js +26 -26
  397. package/dist/test/utils/format-count.test.d.ts +1 -1
  398. package/dist/test/utils/format-count.test.js +23 -23
  399. package/dist/test/utils/format-count.test.js.map +1 -1
  400. package/dist/test/utils/format-date.test.d.ts +1 -1
  401. package/dist/test/utils/format-date.test.js +30 -30
  402. package/dist/test/utils/format-date.test.js.map +1 -1
  403. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  404. package/dist/test/utils/format-unit-size.test.js +17 -17
  405. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  406. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  407. package/dist/test/utils/local-date-from-utc.test.js.map +1 -1
  408. package/eslint.config.mjs +53 -0
  409. package/index.html +0 -3
  410. package/index.ts +1 -15
  411. package/package.json +41 -39
  412. package/src/app-root.ts +21 -22
  413. package/src/collection-browser.ts +50 -42
  414. package/src/collection-facets/facets-template.ts +7 -6
  415. package/src/collection-facets/more-facets-content.ts +11 -13
  416. package/src/collection-facets/more-facets-pagination.ts +3 -2
  417. package/src/collection-facets/smart-facets/dedupe.ts +2 -2
  418. package/src/collection-facets/smart-facets/heuristics/{browser-language/browser-language-heuristic.ts → browser-language-heuristic.ts} +1 -1
  419. package/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.ts +55 -0
  420. package/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.ts +191 -0
  421. package/src/collection-facets/smart-facets/smart-facet-bar.ts +6 -8
  422. package/src/collection-facets/smart-facets/smart-facet-button.ts +5 -3
  423. package/src/collection-facets/smart-facets/smart-facet-dropdown.ts +4 -4
  424. package/src/collection-facets/smart-facets/smart-facet-heuristics.ts +8 -13
  425. package/src/collection-facets/toggle-switch.ts +2 -2
  426. package/src/collection-facets.ts +18 -19
  427. package/src/data-source/collection-browser-data-source-interface.ts +5 -1
  428. package/src/data-source/collection-browser-data-source.ts +37 -34
  429. package/src/empty-placeholder.ts +19 -16
  430. package/src/expanded-date-picker.ts +1 -1
  431. package/src/language-code-handler/language-code-handler.ts +1 -1
  432. package/src/manage/manage-bar.ts +23 -20
  433. package/src/manage/remove-items-modal-content.ts +2 -2
  434. package/src/mediatype/mediatype-config.ts +1 -0
  435. package/src/models.ts +3 -3
  436. package/src/restoration-state-handler.ts +14 -15
  437. package/src/sort-filter-bar/alpha-bar.ts +16 -17
  438. package/src/sort-filter-bar/sort-filter-bar.ts +14 -15
  439. package/src/tiles/grid/account-tile.ts +1 -1
  440. package/src/tiles/grid/collection-tile.ts +1 -1
  441. package/src/tiles/grid/item-tile.ts +9 -9
  442. package/src/tiles/grid/tile-stats.ts +4 -4
  443. package/src/tiles/hover/hover-pane-controller.ts +1 -1
  444. package/src/tiles/hover/tile-hover-pane.ts +4 -2
  445. package/src/tiles/item-image.ts +1 -1
  446. package/src/tiles/list/tile-list-compact.ts +2 -2
  447. package/src/tiles/list/tile-list.ts +22 -24
  448. package/src/tiles/tile-dispatcher.ts +5 -5
  449. package/src/tiles/tile-display-value-provider.ts +4 -4
  450. package/src/utils/facet-utils.ts +6 -6
  451. package/src/utils/format-count.ts +2 -3
  452. package/src/utils/format-date.ts +1 -1
  453. package/src/utils/format-unit-size.ts +1 -1
  454. package/src/utils/log.ts +1 -3
  455. package/test/collection-browser.test.ts +125 -124
  456. package/test/collection-facets/facet-row.test.ts +31 -28
  457. package/test/collection-facets/facets-template.test.ts +9 -9
  458. package/test/collection-facets/more-facets-content.test.ts +14 -15
  459. package/test/collection-facets/more-facets-pagination.test.ts +18 -19
  460. package/test/collection-facets/toggle-switch.test.ts +28 -18
  461. package/test/collection-facets.test.ts +46 -39
  462. package/test/data-source/collection-browser-data-source.test.ts +2 -2
  463. package/test/empty-placeholder.test.ts +6 -7
  464. package/test/expanded-date-picker.test.ts +25 -20
  465. package/test/icon-overlay.test.ts +0 -1
  466. package/test/image-block.test.ts +6 -7
  467. package/test/item-image.test.ts +0 -1
  468. package/test/manage/manage-bar.test.ts +19 -16
  469. package/test/manage/remove-items-modal-content.test.ts +4 -5
  470. package/test/mocks/mock-search-responses.ts +2 -1
  471. package/test/mocks/mock-search-service.ts +1 -1
  472. package/test/restoration-state-handler.test.ts +12 -12
  473. package/test/review-block.test.ts +1 -2
  474. package/test/sort-filter-bar/alpha-bar-tooltip.test.ts +1 -1
  475. package/test/sort-filter-bar/alpha-bar.test.ts +5 -5
  476. package/test/sort-filter-bar/sort-filter-bar.test.ts +38 -39
  477. package/test/text-overlay.test.ts +0 -1
  478. package/test/text-snippet-block.test.ts +5 -6
  479. package/test/tile-stats.test.ts +26 -35
  480. package/test/tiles/grid/account-tile.test.ts +2 -3
  481. package/test/tiles/grid/collection-tile.test.ts +3 -4
  482. package/test/tiles/grid/item-tile.test.ts +13 -14
  483. package/test/tiles/grid/search-tile.test.ts +1 -2
  484. package/test/tiles/hover/hover-pane-controller.test.ts +15 -15
  485. package/test/tiles/hover/tile-hover-pane.test.ts +5 -5
  486. package/test/tiles/list/tile-list-compact.test.ts +1 -2
  487. package/test/tiles/list/tile-list.test.ts +10 -11
  488. package/test/tiles/tile-dispatcher.test.ts +5 -5
  489. package/test/utils/format-count.test.ts +1 -1
  490. package/test/utils/format-date.test.ts +1 -1
  491. package/test/utils/local-date-from-utc.test.ts +1 -1
  492. package/tsconfig.json +0 -1
  493. package/dist/src/collection-facets/smart-facets/heuristics/browser-language/browser-language-heuristic.js.map +0 -1
  494. package/dist/src/collection-facets/smart-facets/heuristics/index.d.ts +0 -3
  495. package/dist/src/collection-facets/smart-facets/heuristics/index.js +0 -4
  496. package/dist/src/collection-facets/smart-facets/heuristics/index.js.map +0 -1
  497. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-heuristic.js +0 -14
  498. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-heuristic.js.map +0 -1
  499. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-map.d.ts +0 -6
  500. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-map.js.map +0 -1
  501. package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-entity-map.d.ts +0 -9
  502. package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-entity-map.js.map +0 -1
  503. package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.js +0 -49
  504. package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.js.map +0 -1
  505. package/src/collection-facets/smart-facets/heuristics/index.ts +0 -3
  506. package/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-heuristic.ts +0 -17
  507. package/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-map.ts +0 -36
  508. package/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-entity-map.ts +0 -134
  509. package/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.ts +0 -60
@@ -0,0 +1,191 @@
1
+ import type {
2
+ SmartQueryHeuristic,
3
+ KeywordFacetMap,
4
+ SmartFacet,
5
+ } from '../models';
6
+
7
+ // If wikidata describes the top query result as X, recommend facet Y, e.g.:
8
+ // X Y
9
+ // written work mt:texts
10
+ // film mt:movies
11
+ // author mt:texts and creator:<query>
12
+ // filmmaker mt:movies and creator:<query>
13
+ // photographer mt:image and creator:<query>
14
+ // visual artist mt:image and creator:<query>
15
+ // etc.
16
+ export class WikidataHeuristic implements SmartQueryHeuristic {
17
+ private static readonly ENTITIES: KeywordFacetMap = {
18
+ 'written work': [
19
+ { facets: [{ facetType: 'mediatype', bucketKey: 'texts' }] },
20
+ ],
21
+ literature: [{ facets: [{ facetType: 'mediatype', bucketKey: 'texts' }] }],
22
+ book: [{ facets: [{ facetType: 'mediatype', bucketKey: 'texts' }] }],
23
+ novel: [{ facets: [{ facetType: 'mediatype', bucketKey: 'texts' }] }],
24
+ filmmaker: [
25
+ {
26
+ label: 'Films by __QUERY',
27
+ facets: [
28
+ { facetType: 'mediatype', bucketKey: 'movies' },
29
+ { facetType: 'creator', bucketKey: '__QUERY' },
30
+ ],
31
+ },
32
+ ],
33
+ author: [
34
+ {
35
+ label: 'Writing by __QUERY',
36
+ facets: [
37
+ { facetType: 'mediatype', bucketKey: 'texts' },
38
+ { facetType: 'creator', bucketKey: '__QUERY' },
39
+ ],
40
+ },
41
+ ],
42
+ writer: [
43
+ {
44
+ label: 'Writing by __QUERY',
45
+ facets: [
46
+ { facetType: 'mediatype', bucketKey: 'texts' },
47
+ { facetType: 'creator', bucketKey: '__QUERY' },
48
+ ],
49
+ },
50
+ ],
51
+ poet: [
52
+ {
53
+ label: 'Writing by __QUERY',
54
+ facets: [
55
+ { facetType: 'mediatype', bucketKey: 'texts' },
56
+ { facetType: 'creator', bucketKey: '__QUERY' },
57
+ ],
58
+ },
59
+ ],
60
+ photographer: [
61
+ {
62
+ label: 'Images by __QUERY',
63
+ facets: [
64
+ { facetType: 'mediatype', bucketKey: 'image' },
65
+ { facetType: 'creator', bucketKey: '__QUERY' },
66
+ ],
67
+ },
68
+ ],
69
+ painter: [
70
+ {
71
+ label: 'Images by __QUERY',
72
+ facets: [
73
+ { facetType: 'mediatype', bucketKey: 'image' },
74
+ { facetType: 'creator', bucketKey: '__QUERY' },
75
+ ],
76
+ },
77
+ ],
78
+ 'visual artist': [
79
+ {
80
+ label: 'Images by __QUERY',
81
+ facets: [
82
+ { facetType: 'mediatype', bucketKey: 'image' },
83
+ { facetType: 'creator', bucketKey: '__QUERY' },
84
+ ],
85
+ },
86
+ ],
87
+ 'graphic artist': [
88
+ {
89
+ label: 'Images by __QUERY',
90
+ facets: [
91
+ { facetType: 'mediatype', bucketKey: 'image' },
92
+ { facetType: 'creator', bucketKey: '__QUERY' },
93
+ ],
94
+ },
95
+ ],
96
+ singer: [
97
+ {
98
+ label: 'Music by __QUERY',
99
+ facets: [
100
+ { facetType: 'mediatype', bucketKey: 'audio' },
101
+ { facetType: 'creator', bucketKey: '__QUERY' },
102
+ ],
103
+ },
104
+ ],
105
+ songwriter: [
106
+ {
107
+ label: 'Music by __QUERY',
108
+ facets: [
109
+ { facetType: 'mediatype', bucketKey: 'audio' },
110
+ { facetType: 'creator', bucketKey: '__QUERY' },
111
+ ],
112
+ },
113
+ ],
114
+ musician: [
115
+ {
116
+ label: 'Music by __QUERY',
117
+ facets: [
118
+ { facetType: 'mediatype', bucketKey: 'audio' },
119
+ { facetType: 'creator', bucketKey: '__QUERY' },
120
+ ],
121
+ },
122
+ ],
123
+ composer: [
124
+ {
125
+ label: 'Music by __QUERY',
126
+ facets: [
127
+ { facetType: 'mediatype', bucketKey: 'audio' },
128
+ { facetType: 'creator', bucketKey: '__QUERY' },
129
+ ],
130
+ },
131
+ ],
132
+ pianist: [
133
+ {
134
+ label: 'Music by __QUERY',
135
+ facets: [
136
+ { facetType: 'mediatype', bucketKey: 'audio' },
137
+ { facetType: 'creator', bucketKey: '__QUERY' },
138
+ ],
139
+ },
140
+ ],
141
+ };
142
+
143
+ async getRecommendedFacets(query: string): Promise<SmartFacet[]> {
144
+ const recommendations: SmartFacet[] = [];
145
+
146
+ try {
147
+ const urlQuery = encodeURIComponent(query);
148
+
149
+ const wikidataResponse = await fetch(
150
+ `https://www.wikidata.org/w/api.php?action=wbsearchentities&search=${urlQuery}&format=json&language=en&uselang=en&origin=*&type=item&limit=5`,
151
+ );
152
+ const searchResults = await wikidataResponse.json();
153
+
154
+ for (const [keyword, facets] of Object.entries(
155
+ WikidataHeuristic.ENTITIES,
156
+ )) {
157
+ const keywordRegex = new RegExp(`\\b${keyword}\\b`);
158
+ if (keywordRegex.test(searchResults.search[0]?.description)) {
159
+ const entityName = searchResults.search[0].label;
160
+ recommendations.push(
161
+ ...facets.map(
162
+ sf =>
163
+ ({
164
+ label: sf.label?.replace('__QUERY', entityName),
165
+ facets: sf.facets.map(f => {
166
+ const replaced = {
167
+ ...f,
168
+ bucketKey: f.bucketKey.replace('__QUERY', query),
169
+ };
170
+
171
+ if (f.displayText) {
172
+ replaced.displayText = replaced.displayText?.replace(
173
+ '__QUERY',
174
+ entityName,
175
+ );
176
+ }
177
+
178
+ return replaced;
179
+ }),
180
+ }) as SmartFacet,
181
+ ),
182
+ );
183
+ }
184
+ }
185
+
186
+ return recommendations;
187
+ } catch {
188
+ return [];
189
+ }
190
+ }
191
+ }
@@ -1,5 +1,3 @@
1
- /* eslint-disable no-continue */
2
-
3
1
  import {
4
2
  css,
5
3
  html,
@@ -68,7 +66,7 @@ export class SmartFacetBar extends LitElement {
68
66
  this.smartFacets,
69
67
  f =>
70
68
  `${f[0].label}|${f[0].facets[0].facetType}|${f[0].facets[0].bucketKey}`,
71
- facet => this.makeSmartFacet(facet)
69
+ facet => this.makeSmartFacet(facet),
72
70
  )}
73
71
  </div>
74
72
  `;
@@ -190,7 +188,7 @@ export class SmartFacetBar extends LitElement {
190
188
  key === 'mediatype' &&
191
189
  this.selectedFacets &&
192
190
  Object.values(this.selectedFacets.mediatype).some(
193
- bucket => bucket.state !== 'none'
191
+ bucket => bucket.state !== 'none',
194
192
  )
195
193
  ) {
196
194
  continue;
@@ -210,7 +208,7 @@ export class SmartFacetBar extends LitElement {
210
208
  if (facetType === 'mediatype') {
211
209
  facets.push(
212
210
  [this.toSmartFacet(facetType, [unusedBuckets[0]])],
213
- [this.toSmartFacet(facetType, [unusedBuckets[1]])]
211
+ [this.toSmartFacet(facetType, [unusedBuckets[1]])],
214
212
  );
215
213
  } else if (facetType === 'collection' || facetType === 'subject') {
216
214
  const topBuckets = unusedBuckets.slice(0, 5);
@@ -226,7 +224,7 @@ export class SmartFacetBar extends LitElement {
226
224
 
227
225
  private toSmartFacet(
228
226
  facetType: FacetOption,
229
- buckets: Bucket[]
227
+ buckets: Bucket[],
230
228
  // prefix = true
231
229
  ): SmartFacet {
232
230
  return {
@@ -259,7 +257,7 @@ export class SmartFacetBar extends LitElement {
259
257
  this.selectedFacets,
260
258
  facet.facetType,
261
259
  facet.bucket,
262
- true
260
+ true,
263
261
  );
264
262
  }
265
263
 
@@ -286,7 +284,7 @@ export class SmartFacetBar extends LitElement {
286
284
  this.selectedFacets,
287
285
  facet.facetType,
288
286
  facet.bucket,
289
- true
287
+ true,
290
288
  );
291
289
  }
292
290
 
@@ -28,7 +28,9 @@ export class SmartFacetButton extends LitElement {
28
28
 
29
29
  const displayText = capitalize(
30
30
  (this.labelPrefix ? `${this.labelPrefix} ` : '') +
31
- (this.facetInfo.label ?? firstFacet.displayText ?? firstFacet.bucketKey)
31
+ (this.facetInfo.label ??
32
+ firstFacet.displayText ??
33
+ firstFacet.bucketKey),
32
34
  );
33
35
  if (!displayText) return nothing;
34
36
 
@@ -61,7 +63,7 @@ export class SmartFacetButton extends LitElement {
61
63
  for (const facet of this.facetInfo.facets) {
62
64
  url.searchParams.append(
63
65
  'and[]',
64
- encodeURIComponent(`${facet.facetType}:"${facet.bucketKey}"`)
66
+ encodeURIComponent(`${facet.facetType}:"${facet.bucketKey}"`),
65
67
  );
66
68
  }
67
69
  }
@@ -88,7 +90,7 @@ export class SmartFacetButton extends LitElement {
88
90
  negative: false,
89
91
  })),
90
92
  },
91
- })
93
+ }),
92
94
  );
93
95
  }
94
96
 
@@ -67,7 +67,7 @@ export class SmartFacetDropdown extends LitElement {
67
67
  private get activeDropdownOption(): optionInterface | undefined {
68
68
  if (!this.activeFacetRef) return undefined;
69
69
  return this.dropdownOptions.find(
70
- opt => opt.id === this.activeFacetRef?.bucketKey
70
+ opt => opt.id === this.activeFacetRef?.bucketKey,
71
71
  );
72
72
  }
73
73
 
@@ -77,7 +77,7 @@ export class SmartFacetDropdown extends LitElement {
77
77
  let selectedSmartFacet;
78
78
  for (const smartFacet of this.facetInfo) {
79
79
  const selectedRef = smartFacet.facets.find(
80
- b => b.bucketKey === e.detail.option.id
80
+ b => b.bucketKey === e.detail.option.id,
81
81
  );
82
82
  if (selectedRef) {
83
83
  this.activeFacetRef = selectedRef;
@@ -103,14 +103,14 @@ export class SmartFacetDropdown extends LitElement {
103
103
  },
104
104
  ],
105
105
  },
106
- })
106
+ }),
107
107
  );
108
108
  }
109
109
 
110
110
  private onDropdownClick(): void {
111
111
  log('smart dropdown: onDropdownClick', this);
112
112
  this.dispatchEvent(
113
- new CustomEvent<SmartFacetDropdown>('dropdownClick', { detail: this })
113
+ new CustomEvent<SmartFacetDropdown>('dropdownClick', { detail: this }),
114
114
  );
115
115
  }
116
116
 
@@ -1,24 +1,19 @@
1
1
  import { dedupe } from './dedupe';
2
- import { BrowserLanguageHeuristic } from './heuristics/browser-language/browser-language-heuristic';
3
- import { QueryKeywordsHeuristic } from './heuristics/query-keywords/query-keywords-heuristic';
4
- import { WikidataHeuristic } from './heuristics/wikidata/wikidata-heuristic';
2
+ import { BrowserLanguageHeuristic } from './heuristics/browser-language-heuristic';
3
+ import { QueryKeywordsHeuristic } from './heuristics/query-keywords-heuristic';
4
+ import { WikidataHeuristic } from './heuristics/wikidata-heuristic';
5
5
  import type { SmartFacet, SmartQueryHeuristic } from './models';
6
6
 
7
7
  export class SmartQueryHeuristicGroup implements SmartQueryHeuristic {
8
- // Avoid collapsing the array onto one line
9
- // prettier-ignore
10
- private static readonly DEFAULT_HEURISTICS: (new () => SmartQueryHeuristic)[] = [
8
+ private static readonly HEURISTICS = [
11
9
  QueryKeywordsHeuristic,
12
10
  WikidataHeuristic,
13
- BrowserLanguageHeuristic
11
+ BrowserLanguageHeuristic,
14
12
  ];
15
13
 
16
- async getRecommendedFacets(
17
- query: string,
18
- heuristics = SmartQueryHeuristicGroup.DEFAULT_HEURISTICS
19
- ): Promise<SmartFacet[]> {
20
- const promises = heuristics.map(HeuristicCtor =>
21
- new HeuristicCtor().getRecommendedFacets(query)
14
+ async getRecommendedFacets(query: string): Promise<SmartFacet[]> {
15
+ const promises = SmartQueryHeuristicGroup.HEURISTICS.map(HeuristicCtor =>
16
+ new HeuristicCtor().getRecommendedFacets(query),
22
17
  );
23
18
 
24
19
  return dedupe((await Promise.all(promises)).flat());
@@ -84,8 +84,8 @@ export class ToggleSwitch extends LitElement {
84
84
  */
85
85
  get selectedLabel(): string {
86
86
  return this.side === 'left'
87
- ? this.leftLabel ?? this.leftValue
88
- : this.rightLabel ?? this.rightValue;
87
+ ? (this.leftLabel ?? this.leftValue)
88
+ : (this.rightLabel ?? this.rightValue);
89
89
  }
90
90
 
91
91
  private handleClick(): void {
@@ -1,4 +1,3 @@
1
- /* eslint-disable import/no-duplicates */
2
1
  import {
3
2
  css,
4
3
  html,
@@ -171,7 +170,7 @@ export class CollectionFacets extends LitElement {
171
170
  : nothing}
172
171
  ${this.collectionPartOfTemplate}
173
172
  ${this.mergedFacets.map(facetGroup =>
174
- this.getFacetGroupTemplate(facetGroup)
173
+ this.getFacetGroupTemplate(facetGroup),
175
174
  )}
176
175
  </div>
177
176
  `;
@@ -349,7 +348,7 @@ export class CollectionFacets extends LitElement {
349
348
  e: CustomEvent<{
350
349
  minDate: string;
351
350
  maxDate: string;
352
- }>
351
+ }>,
353
352
  ): void => {
354
353
  const { minDate, maxDate } = e.detail;
355
354
  const event = new CustomEvent('histogramDateRangeUpdated', {
@@ -366,10 +365,10 @@ export class CollectionFacets extends LitElement {
366
365
 
367
366
  facetDisplayOrder.forEach(facetKey => {
368
367
  const selectedFacetGroup = this.selectedFacetGroups.find(
369
- group => group.key === facetKey
368
+ group => group.key === facetKey,
370
369
  );
371
370
  const aggregateFacetGroup = this.aggregationFacetGroups.find(
372
- group => group.key === facetKey
371
+ group => group.key === facetKey,
373
372
  );
374
373
 
375
374
  // if the user selected a facet, but it's not in the aggregation, we add it as-is
@@ -388,7 +387,7 @@ export class CollectionFacets extends LitElement {
388
387
  let bucketsWithCount =
389
388
  selectedFacetGroup?.buckets.map(bucket => {
390
389
  const selectedBucket = aggregateFacetGroup.buckets.find(
391
- b => b.key === bucket.key
390
+ b => b.key === bucket.key,
392
391
  );
393
392
  return selectedBucket
394
393
  ? {
@@ -412,7 +411,7 @@ export class CollectionFacets extends LitElement {
412
411
  * - additionally want to show all items (selected/suppressed) in page facet area
413
412
  */
414
413
  let allowedFacetCount = Object.keys(
415
- (selectedFacetGroup?.buckets as []) || []
414
+ (selectedFacetGroup?.buckets as []) || [],
416
415
  )?.length;
417
416
  if (allowedFacetCount < this.allowedFacetCount) {
418
417
  allowedFacetCount = this.allowedFacetCount; // splice start index from 0th
@@ -421,7 +420,7 @@ export class CollectionFacets extends LitElement {
421
420
  // For lending facets, only include a specific subset of buckets
422
421
  if (facetKey === 'lending') {
423
422
  bucketsWithCount = bucketsWithCount.filter(
424
- bucket => lendingFacetKeysVisibility[bucket.key as LendingFacetKey]
423
+ bucket => lendingFacetKeysVisibility[bucket.key as LendingFacetKey],
425
424
  );
426
425
  }
427
426
 
@@ -431,13 +430,13 @@ export class CollectionFacets extends LitElement {
431
430
  // For mediatype facets, ensure the collection bucket is always shown if present
432
431
  if (facetKey === 'mediatype') {
433
432
  const collectionIndex = bucketsWithCount.findIndex(
434
- bucket => bucket.key === 'collection'
433
+ bucket => bucket.key === 'collection',
435
434
  );
436
435
 
437
436
  if (collectionIndex >= allowedFacetCount) {
438
437
  const [collectionBucket] = bucketsWithCount.splice(
439
438
  collectionIndex,
440
- 1
439
+ 1,
441
440
  );
442
441
 
443
442
  // If we're showing lots of selected facets, ensure we're not cutting off the last one
@@ -484,7 +483,7 @@ export class CollectionFacets extends LitElement {
484
483
  count: facetData.count,
485
484
  state: facetData.state,
486
485
  };
487
- }
486
+ },
488
487
  );
489
488
 
490
489
  return {
@@ -492,7 +491,7 @@ export class CollectionFacets extends LitElement {
492
491
  key: option,
493
492
  buckets,
494
493
  };
495
- }
494
+ },
496
495
  );
497
496
 
498
497
  return facetGroups;
@@ -512,7 +511,7 @@ export class CollectionFacets extends LitElement {
512
511
  if (!title) return;
513
512
 
514
513
  let castedBuckets = aggregation.getSortedBuckets(
515
- defaultFacetSort[option]
514
+ defaultFacetSort[option],
516
515
  ) as Bucket[];
517
516
 
518
517
  if (option === 'collection') {
@@ -556,7 +555,7 @@ export class CollectionFacets extends LitElement {
556
555
  * chevron for the mobile view
557
556
  */
558
557
  private getFacetGroupTemplate(
559
- facetGroup: FacetGroup
558
+ facetGroup: FacetGroup,
560
559
  ): TemplateResult | typeof nothing {
561
560
  if (!this.facetsLoading && facetGroup.buckets.length === 0) return nothing;
562
561
 
@@ -611,7 +610,7 @@ export class CollectionFacets extends LitElement {
611
610
  return html`
612
611
  ${map(
613
612
  Array(5).fill(null),
614
- () => html`<facet-tombstone-row></facet-tombstone-row>`
613
+ () => html`<facet-tombstone-row></facet-tombstone-row>`,
615
614
  )}
616
615
  `;
617
616
  }
@@ -622,7 +621,7 @@ export class CollectionFacets extends LitElement {
622
621
  * TODO: want to fire analytics?
623
622
  */
624
623
  private searchMoreFacetsLink(
625
- facetGroup: FacetGroup
624
+ facetGroup: FacetGroup,
626
625
  ): TemplateResult | typeof nothing {
627
626
  // Don't render More... links for FTS searches
628
627
  if (!this.moreLinksVisible) {
@@ -654,7 +653,7 @@ export class CollectionFacets extends LitElement {
654
653
  label: facetGroup.key,
655
654
  });
656
655
  this.dispatchEvent(
657
- new CustomEvent('showMoreFacets', { detail: facetGroup.key })
656
+ new CustomEvent('showMoreFacets', { detail: facetGroup.key }),
658
657
  );
659
658
  }}
660
659
  data-testid="more-link-btn"
@@ -665,7 +664,7 @@ export class CollectionFacets extends LitElement {
665
664
 
666
665
  async showMoreFacetsModal(
667
666
  facetGroup: FacetGroup,
668
- sortedBy: AggregationSortType
667
+ sortedBy: AggregationSortType,
669
668
  ): Promise<void> {
670
669
  const customModalContent = html`
671
670
  <more-facets-content
@@ -724,7 +723,7 @@ export class CollectionFacets extends LitElement {
724
723
  this.selectedFacets,
725
724
  facetGroup.key,
726
725
  e.detail.bucket,
727
- true
726
+ true,
728
727
  );
729
728
 
730
729
  const event = new CustomEvent<SelectedFacets>('facetsChanged', {
@@ -285,7 +285,11 @@ export interface CollectionBrowserDataSourceInterface
285
285
  * @param callback A callback function to apply on each tile model, as with Array.map
286
286
  */
287
287
  map(
288
- callback: (model: TileModel, index: number, array: TileModel[]) => TileModel
288
+ callback: (
289
+ model: TileModel,
290
+ index: number,
291
+ array: TileModel[],
292
+ ) => TileModel,
289
293
  ): void;
290
294
 
291
295
  /**