@internetarchive/collection-browser 2.7.12 → 2.7.13

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 (318) hide show
  1. package/.editorconfig +29 -29
  2. package/.husky/pre-commit +4 -4
  3. package/LICENSE +661 -661
  4. package/README.md +83 -83
  5. package/dist/index.d.ts +13 -13
  6. package/dist/index.js +13 -13
  7. package/dist/src/app-root.d.ts +107 -107
  8. package/dist/src/app-root.js +531 -531
  9. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  10. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  11. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  12. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  13. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  14. package/dist/src/assets/img/icons/chevron.js +2 -2
  15. package/dist/src/assets/img/icons/contract.d.ts +2 -2
  16. package/dist/src/assets/img/icons/contract.js +2 -2
  17. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  18. package/dist/src/assets/img/icons/empty-query.js +2 -2
  19. package/dist/src/assets/img/icons/expand.d.ts +2 -2
  20. package/dist/src/assets/img/icons/expand.js +2 -2
  21. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  22. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  23. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  24. package/dist/src/assets/img/icons/eye.js +2 -2
  25. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  26. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  27. package/dist/src/assets/img/icons/favorite-unfilled.d.ts +1 -1
  28. package/dist/src/assets/img/icons/favorite-unfilled.js +2 -2
  29. package/dist/src/assets/img/icons/filter.d.ts +2 -2
  30. package/dist/src/assets/img/icons/filter.js +2 -2
  31. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  32. package/dist/src/assets/img/icons/login-required.js +2 -2
  33. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  34. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  35. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  36. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  37. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  38. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  39. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  40. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  41. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  42. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  43. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  44. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  45. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  46. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  47. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  48. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  49. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
  50. package/dist/src/assets/img/icons/mediatype/search.js +2 -2
  51. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  52. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  53. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  54. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  55. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  56. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  57. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  58. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  59. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  60. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  61. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  62. package/dist/src/assets/img/icons/null-result.js +2 -2
  63. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  64. package/dist/src/assets/img/icons/restricted.js +2 -2
  65. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  66. package/dist/src/assets/img/icons/reviews.js +2 -2
  67. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  68. package/dist/src/assets/img/icons/upload.js +2 -2
  69. package/dist/src/assets/img/icons/views.d.ts +1 -1
  70. package/dist/src/assets/img/icons/views.js +2 -2
  71. package/dist/src/circular-activity-indicator.d.ts +5 -5
  72. package/dist/src/circular-activity-indicator.js +17 -17
  73. package/dist/src/collection-browser.d.ts +606 -606
  74. package/dist/src/collection-browser.js +1677 -1677
  75. package/dist/src/collection-facets/facet-row.d.ts +30 -30
  76. package/dist/src/collection-facets/facet-row.js +118 -118
  77. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  78. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  79. package/dist/src/collection-facets/facets-template.d.ts +13 -13
  80. package/dist/src/collection-facets/facets-template.js +44 -44
  81. package/dist/src/collection-facets/more-facets-content.d.ts +106 -106
  82. package/dist/src/collection-facets/more-facets-content.js +407 -407
  83. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  84. package/dist/src/collection-facets/more-facets-pagination.js +196 -196
  85. package/dist/src/collection-facets/smart-facets/dedupe.d.ts +10 -10
  86. package/dist/src/collection-facets/smart-facets/dedupe.js +33 -33
  87. package/dist/src/collection-facets/smart-facets/heuristics/browser-language-heuristic.d.ts +5 -5
  88. package/dist/src/collection-facets/smart-facets/heuristics/browser-language-heuristic.js +23 -23
  89. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.d.ts +5 -5
  90. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.js +44 -44
  91. package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.d.ts +5 -5
  92. package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js +172 -172
  93. package/dist/src/collection-facets/smart-facets/models.d.ts +26 -26
  94. package/dist/src/collection-facets/smart-facets/models.js +1 -1
  95. package/dist/src/collection-facets/smart-facets/smart-facet-bar.d.ts +31 -31
  96. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js +240 -240
  97. package/dist/src/collection-facets/smart-facets/smart-facet-button.d.ts +11 -11
  98. package/dist/src/collection-facets/smart-facets/smart-facet-button.js +86 -86
  99. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.d.ts +16 -16
  100. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js +100 -100
  101. package/dist/src/collection-facets/smart-facets/smart-facet-equals.d.ts +2 -2
  102. package/dist/src/collection-facets/smart-facets/smart-facet-equals.js +12 -12
  103. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.d.ts +5 -5
  104. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js +15 -15
  105. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  106. package/dist/src/collection-facets/toggle-switch.js +94 -94
  107. package/dist/src/collection-facets.d.ts +103 -103
  108. package/dist/src/collection-facets.js +522 -522
  109. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +245 -245
  110. package/dist/src/data-source/collection-browser-data-source-interface.js +1 -1
  111. package/dist/src/data-source/collection-browser-data-source.d.ts +377 -377
  112. package/dist/src/data-source/collection-browser-data-source.js +1004 -1001
  113. package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
  114. package/dist/src/data-source/collection-browser-query-state.d.ts +44 -44
  115. package/dist/src/data-source/collection-browser-query-state.js +1 -1
  116. package/dist/src/data-source/models.d.ts +28 -28
  117. package/dist/src/data-source/models.js +8 -8
  118. package/dist/src/empty-placeholder.d.ts +23 -23
  119. package/dist/src/empty-placeholder.js +79 -79
  120. package/dist/src/expanded-date-picker.d.ts +43 -43
  121. package/dist/src/expanded-date-picker.js +109 -109
  122. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  123. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  124. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  125. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  126. package/dist/src/manage/manage-bar.d.ts +58 -58
  127. package/dist/src/manage/manage-bar.js +159 -159
  128. package/dist/src/manage/remove-items-modal-content.d.ts +9 -9
  129. package/dist/src/manage/remove-items-modal-content.js +34 -34
  130. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  131. package/dist/src/mediatype/mediatype-config.js +91 -91
  132. package/dist/src/models.d.ts +228 -228
  133. package/dist/src/models.js +401 -401
  134. package/dist/src/restoration-state-handler.d.ts +70 -70
  135. package/dist/src/restoration-state-handler.js +363 -363
  136. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  137. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  138. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  139. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  140. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  141. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  142. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  143. package/dist/src/sort-filter-bar/img/list.js +2 -2
  144. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  145. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  146. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  147. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  148. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  149. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  150. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  151. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  152. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  153. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  154. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +223 -223
  155. package/dist/src/sort-filter-bar/sort-filter-bar.js +697 -697
  156. package/dist/src/styles/ia-button.d.ts +2 -2
  157. package/dist/src/styles/ia-button.js +17 -17
  158. package/dist/src/styles/item-image-styles.d.ts +8 -8
  159. package/dist/src/styles/item-image-styles.js +9 -9
  160. package/dist/src/styles/sr-only.d.ts +1 -1
  161. package/dist/src/styles/sr-only.js +2 -2
  162. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  163. package/dist/src/tiles/base-tile-component.js +64 -64
  164. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  165. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  166. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  167. package/dist/src/tiles/grid/account-tile.js +72 -72
  168. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  169. package/dist/src/tiles/grid/collection-tile.js +80 -80
  170. package/dist/src/tiles/grid/item-tile.d.ts +34 -34
  171. package/dist/src/tiles/grid/item-tile.js +158 -158
  172. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  173. package/dist/src/tiles/grid/search-tile.js +51 -51
  174. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  175. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  176. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  177. package/dist/src/tiles/grid/tile-stats.js +53 -53
  178. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  179. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  180. package/dist/src/tiles/hover/tile-hover-pane.d.ts +18 -18
  181. package/dist/src/tiles/hover/tile-hover-pane.js +69 -69
  182. package/dist/src/tiles/image-block.d.ts +18 -18
  183. package/dist/src/tiles/image-block.js +89 -89
  184. package/dist/src/tiles/item-image.d.ts +39 -39
  185. package/dist/src/tiles/item-image.js +154 -154
  186. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  187. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  188. package/dist/src/tiles/list/tile-list-compact.d.ts +19 -19
  189. package/dist/src/tiles/list/tile-list-compact.js +122 -122
  190. package/dist/src/tiles/list/tile-list.d.ts +54 -54
  191. package/dist/src/tiles/list/tile-list.js +323 -323
  192. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  193. package/dist/src/tiles/mediatype-icon.js +47 -47
  194. package/dist/src/tiles/overlay/icon-overlay.d.ts +8 -8
  195. package/dist/src/tiles/overlay/icon-overlay.js +25 -25
  196. package/dist/src/tiles/overlay/text-overlay.d.ts +9 -9
  197. package/dist/src/tiles/overlay/text-overlay.js +31 -31
  198. package/dist/src/tiles/review-block.d.ts +12 -12
  199. package/dist/src/tiles/review-block.js +56 -56
  200. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  201. package/dist/src/tiles/text-snippet-block.js +73 -73
  202. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  203. package/dist/src/tiles/tile-dispatcher.js +230 -230
  204. package/dist/src/tiles/tile-display-value-provider.d.ts +47 -47
  205. package/dist/src/tiles/tile-display-value-provider.js +94 -94
  206. package/dist/src/utils/analytics-events.d.ts +28 -28
  207. package/dist/src/utils/analytics-events.js +30 -30
  208. package/dist/src/utils/array-equals.d.ts +4 -4
  209. package/dist/src/utils/array-equals.js +10 -10
  210. package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -11
  211. package/dist/src/utils/collapse-repeated-quotes.js +13 -13
  212. package/dist/src/utils/facet-utils.d.ts +83 -83
  213. package/dist/src/utils/facet-utils.js +145 -145
  214. package/dist/src/utils/format-count.d.ts +7 -7
  215. package/dist/src/utils/format-count.js +76 -76
  216. package/dist/src/utils/format-date.d.ts +2 -2
  217. package/dist/src/utils/format-date.js +27 -27
  218. package/dist/src/utils/format-unit-size.d.ts +2 -2
  219. package/dist/src/utils/format-unit-size.js +33 -33
  220. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  221. package/dist/src/utils/local-date-from-utc.js +15 -15
  222. package/dist/src/utils/log.d.ts +7 -7
  223. package/dist/src/utils/log.js +15 -15
  224. package/dist/src/utils/resolve-mediatype.d.ts +8 -8
  225. package/dist/src/utils/resolve-mediatype.js +23 -23
  226. package/dist/src/utils/sha1.d.ts +2 -2
  227. package/dist/src/utils/sha1.js +8 -8
  228. package/dist/test/collection-browser.test.d.ts +1 -1
  229. package/dist/test/collection-browser.test.js +1308 -1308
  230. package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
  231. package/dist/test/collection-facets/facet-row.test.js +227 -227
  232. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  233. package/dist/test/collection-facets/facets-template.test.js +91 -91
  234. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  235. package/dist/test/collection-facets/more-facets-content.test.js +141 -141
  236. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  237. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  238. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  239. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  240. package/dist/test/collection-facets.test.d.ts +2 -2
  241. package/dist/test/collection-facets.test.js +690 -690
  242. package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -1
  243. package/dist/test/data-source/collection-browser-data-source.test.js +89 -89
  244. package/dist/test/empty-placeholder.test.d.ts +1 -1
  245. package/dist/test/empty-placeholder.test.js +63 -63
  246. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  247. package/dist/test/expanded-date-picker.test.js +95 -95
  248. package/dist/test/icon-overlay.test.d.ts +1 -1
  249. package/dist/test/icon-overlay.test.js +24 -24
  250. package/dist/test/image-block.test.d.ts +1 -1
  251. package/dist/test/image-block.test.js +107 -107
  252. package/dist/test/item-image.test.d.ts +1 -1
  253. package/dist/test/item-image.test.js +85 -85
  254. package/dist/test/manage/manage-bar.test.d.ts +2 -2
  255. package/dist/test/manage/manage-bar.test.js +100 -100
  256. package/dist/test/manage/remove-items-modal-content.test.d.ts +1 -1
  257. package/dist/test/manage/remove-items-modal-content.test.js +45 -45
  258. package/dist/test/mediatype-config.test.d.ts +1 -1
  259. package/dist/test/mediatype-config.test.js +16 -16
  260. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  261. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  262. package/dist/test/mocks/mock-search-responses.d.ts +25 -25
  263. package/dist/test/mocks/mock-search-responses.js +942 -942
  264. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  265. package/dist/test/mocks/mock-search-service.js +54 -54
  266. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  267. package/dist/test/restoration-state-handler.test.js +270 -270
  268. package/dist/test/review-block.test.d.ts +1 -1
  269. package/dist/test/review-block.test.js +44 -44
  270. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  271. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  272. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  273. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  274. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  275. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +426 -426
  276. package/dist/test/text-overlay.test.d.ts +1 -1
  277. package/dist/test/text-overlay.test.js +38 -38
  278. package/dist/test/text-snippet-block.test.d.ts +1 -1
  279. package/dist/test/text-snippet-block.test.js +57 -57
  280. package/dist/test/tile-stats.test.d.ts +1 -1
  281. package/dist/test/tile-stats.test.js +81 -81
  282. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  283. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  284. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  285. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  286. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  287. package/dist/test/tiles/grid/item-tile.test.js +312 -312
  288. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  289. package/dist/test/tiles/grid/search-tile.test.js +51 -51
  290. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  291. package/dist/test/tiles/hover/hover-pane-controller.test.js +259 -259
  292. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  293. package/dist/test/tiles/hover/tile-hover-pane.test.js +56 -56
  294. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  295. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  296. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  297. package/dist/test/tiles/list/tile-list.test.js +297 -297
  298. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  299. package/dist/test/tiles/tile-dispatcher.test.js +100 -100
  300. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  301. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  302. package/dist/test/utils/array-equals.test.d.ts +1 -1
  303. package/dist/test/utils/array-equals.test.js +26 -26
  304. package/dist/test/utils/format-count.test.d.ts +1 -1
  305. package/dist/test/utils/format-count.test.js +23 -23
  306. package/dist/test/utils/format-date.test.d.ts +1 -1
  307. package/dist/test/utils/format-date.test.js +30 -30
  308. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  309. package/dist/test/utils/format-unit-size.test.js +17 -17
  310. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  311. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  312. package/local.archive.org.cert +86 -86
  313. package/local.archive.org.key +27 -27
  314. package/package.json +1 -1
  315. package/renovate.json +6 -6
  316. package/src/data-source/collection-browser-data-source.ts +5 -1
  317. package/web-dev-server.config.mjs +30 -30
  318. package/web-test-runner.config.mjs +41 -41
@@ -1,86 +1,86 @@
1
- /* eslint-disable no-continue */
2
- import { __decorate } from "tslib";
3
- import { css, html, LitElement, nothing, } from 'lit';
4
- import { repeat } from 'lit/directives/repeat.js';
5
- import { customElement, property, state } from 'lit/decorators.js';
6
- import { updateSelectedFacetBucket } from '../../utils/facet-utils';
7
- import { SmartQueryHeuristicGroup } from './smart-facet-heuristics';
8
- import { smartFacetEquals } from './smart-facet-equals';
9
- import { dedupe } from './dedupe';
10
- import filterIcon from '../../assets/img/icons/filter';
11
- import './smart-facet-button';
12
- import './smart-facet-dropdown';
13
- import { log } from '../../utils/log';
14
- const fieldPrefixes = {
15
- collection: 'Collection: ',
16
- creator: 'By: ',
17
- subject: 'About: ',
18
- };
19
- function capitalize(str) {
20
- return str.charAt(0).toUpperCase() + str.slice(1);
21
- }
22
- let SmartFacetBar = class SmartFacetBar extends LitElement {
23
- constructor() {
24
- super(...arguments);
25
- this.filterToggleActive = false;
26
- this.heuristicRecs = [];
27
- this.smartFacets = [];
28
- }
29
- //
30
- // COMPONENT LIFECYCLE METHODS
31
- //
32
- render() {
1
+ /* eslint-disable no-continue */
2
+ import { __decorate } from "tslib";
3
+ import { css, html, LitElement, nothing, } from 'lit';
4
+ import { repeat } from 'lit/directives/repeat.js';
5
+ import { customElement, property, state } from 'lit/decorators.js';
6
+ import { updateSelectedFacetBucket } from '../../utils/facet-utils';
7
+ import { SmartQueryHeuristicGroup } from './smart-facet-heuristics';
8
+ import { smartFacetEquals } from './smart-facet-equals';
9
+ import { dedupe } from './dedupe';
10
+ import filterIcon from '../../assets/img/icons/filter';
11
+ import './smart-facet-button';
12
+ import './smart-facet-dropdown';
13
+ import { log } from '../../utils/log';
14
+ const fieldPrefixes = {
15
+ collection: 'Collection: ',
16
+ creator: 'By: ',
17
+ subject: 'About: ',
18
+ };
19
+ function capitalize(str) {
20
+ return str.charAt(0).toUpperCase() + str.slice(1);
21
+ }
22
+ let SmartFacetBar = class SmartFacetBar extends LitElement {
23
+ constructor() {
24
+ super(...arguments);
25
+ this.filterToggleActive = false;
26
+ this.heuristicRecs = [];
27
+ this.smartFacets = [];
28
+ }
29
+ //
30
+ // COMPONENT LIFECYCLE METHODS
31
+ //
32
+ render() {
33
33
  return html `
34
34
  <div id="smart-facets-container">
35
35
  ${this.filtersToggleTemplate}
36
36
  ${repeat(this.smartFacets, f => `${f[0].label}|${f[0].facets[0].facetType}|${f[0].facets[0].bucketKey}`, facet => this.makeSmartFacet(facet))}
37
37
  </div>
38
- `;
39
- }
40
- willUpdate(changed) {
41
- let shouldUpdateSmartFacets = false;
42
- if (changed.has('query')) {
43
- log('query change', changed.get('query'), this.query);
44
- this.lastAggregations = undefined;
45
- shouldUpdateSmartFacets = true;
46
- }
47
- if (changed.has('aggregations') &&
48
- !this.lastAggregations &&
49
- this.aggregations &&
50
- Object.keys(this.aggregations).length > 0) {
51
- log('aggs change', changed.get('aggregations'), this.aggregations);
52
- this.lastAggregations = this.aggregations;
53
- shouldUpdateSmartFacets = true;
54
- }
55
- if (shouldUpdateSmartFacets) {
56
- log('should update smart facets, doing so...');
57
- this.updateSmartFacets();
58
- }
59
- }
60
- async updateSmartFacets() {
61
- log('updating smart facets');
62
- if (this.query) {
63
- this.heuristicRecs =
64
- await new SmartQueryHeuristicGroup().getRecommendedFacets(this.query);
65
- log('heuristic recs are', this.heuristicRecs);
66
- this.smartFacets = dedupe(this.facetsToDisplay);
67
- log('smart facets are', this.smartFacets);
68
- }
69
- }
70
- //
71
- // OTHER METHODS
72
- //
73
- makeSmartFacet(facets) {
74
- if (facets.length === 0) {
75
- return nothing;
76
- }
77
- if (facets.length === 1) {
78
- return this.smartFacetButton(facets[0]);
79
- }
80
- return this.smartFacetDropdown(facets);
81
- }
82
- smartFacetButton(facet) {
83
- var _a;
38
+ `;
39
+ }
40
+ willUpdate(changed) {
41
+ let shouldUpdateSmartFacets = false;
42
+ if (changed.has('query')) {
43
+ log('query change', changed.get('query'), this.query);
44
+ this.lastAggregations = undefined;
45
+ shouldUpdateSmartFacets = true;
46
+ }
47
+ if (changed.has('aggregations') &&
48
+ !this.lastAggregations &&
49
+ this.aggregations &&
50
+ Object.keys(this.aggregations).length > 0) {
51
+ log('aggs change', changed.get('aggregations'), this.aggregations);
52
+ this.lastAggregations = this.aggregations;
53
+ shouldUpdateSmartFacets = true;
54
+ }
55
+ if (shouldUpdateSmartFacets) {
56
+ log('should update smart facets, doing so...');
57
+ this.updateSmartFacets();
58
+ }
59
+ }
60
+ async updateSmartFacets() {
61
+ log('updating smart facets');
62
+ if (this.query) {
63
+ this.heuristicRecs =
64
+ await new SmartQueryHeuristicGroup().getRecommendedFacets(this.query);
65
+ log('heuristic recs are', this.heuristicRecs);
66
+ this.smartFacets = dedupe(this.facetsToDisplay);
67
+ log('smart facets are', this.smartFacets);
68
+ }
69
+ }
70
+ //
71
+ // OTHER METHODS
72
+ //
73
+ makeSmartFacet(facets) {
74
+ if (facets.length === 0) {
75
+ return nothing;
76
+ }
77
+ if (facets.length === 1) {
78
+ return this.smartFacetButton(facets[0]);
79
+ }
80
+ return this.smartFacetDropdown(facets);
81
+ }
82
+ smartFacetButton(facet) {
83
+ var _a;
84
84
  return html `
85
85
  <smart-facet-button
86
86
  .facetInfo=${facet}
@@ -88,9 +88,9 @@ let SmartFacetBar = class SmartFacetBar extends LitElement {
88
88
  .selected=${(_a = facet.selected) !== null && _a !== void 0 ? _a : false}
89
89
  @facetClick=${this.facetClicked}
90
90
  ></smart-facet-button>
91
- `;
92
- }
93
- smartFacetDropdown(facets) {
91
+ `;
92
+ }
93
+ smartFacetDropdown(facets) {
94
94
  return html `
95
95
  <smart-facet-dropdown
96
96
  .facetInfo=${facets}
@@ -99,9 +99,9 @@ let SmartFacetBar = class SmartFacetBar extends LitElement {
99
99
  @facetClick=${this.facetDropdownClicked}
100
100
  @dropdownClick=${this.onDropdownClick}
101
101
  ></smart-facet-dropdown>
102
- `;
103
- }
104
- get filtersToggleTemplate() {
102
+ `;
103
+ }
104
+ get filtersToggleTemplate() {
105
105
  return html `
106
106
  <button
107
107
  id="filters-toggle"
@@ -111,131 +111,131 @@ let SmartFacetBar = class SmartFacetBar extends LitElement {
111
111
  >
112
112
  ${filterIcon}
113
113
  </button>
114
- `;
115
- }
116
- get facetsToDisplay() {
117
- const facets = [];
118
- if (this.heuristicRecs.length > 0) {
119
- for (const rec of this.heuristicRecs) {
120
- facets.push([rec]);
121
- }
122
- }
123
- if (this.lastAggregations) {
124
- const keys = [
125
- 'mediatype',
126
- 'year',
127
- 'language',
128
- 'creator',
129
- 'subject',
130
- 'collection',
131
- ];
132
- for (const key of keys) {
133
- const agg = this.lastAggregations[key];
134
- if (!agg)
135
- continue;
136
- if (agg.buckets.length === 0)
137
- continue;
138
- if (['lending', 'year_histogram'].includes(key))
139
- continue;
140
- if (typeof agg.buckets[0] === 'number')
141
- continue;
142
- if (key === 'mediatype' &&
143
- this.selectedFacets &&
144
- Object.values(this.selectedFacets.mediatype).some(bucket => bucket.state !== 'none')) {
145
- continue;
146
- }
147
- const facetType = key;
148
- const buckets = agg.buckets;
149
- const unusedBuckets = buckets.filter(b => {
150
- var _a;
151
- const selectedFacetBucket = (_a = this.selectedFacets) === null || _a === void 0 ? void 0 : _a[facetType][b.key];
152
- if (selectedFacetBucket && selectedFacetBucket.state !== 'none') {
153
- return false;
154
- }
155
- return true;
156
- });
157
- if (facetType === 'mediatype') {
158
- facets.push([this.toSmartFacet(facetType, [unusedBuckets[0]])], [this.toSmartFacet(facetType, [unusedBuckets[1]])]);
159
- }
160
- else if (facetType === 'collection' || facetType === 'subject') {
161
- const topBuckets = unusedBuckets.slice(0, 5);
162
- facets.push(topBuckets.map(b => this.toSmartFacet(facetType, [b])));
163
- }
164
- else {
165
- facets.push([this.toSmartFacet(facetType, [unusedBuckets[0]])]);
166
- }
167
- }
168
- }
169
- return facets;
170
- }
171
- toSmartFacet(facetType, buckets
172
- // prefix = true
173
- ) {
174
- return {
175
- facets: buckets.map(bucket => {
176
- var _a;
177
- let displayText = capitalize(bucket.key.toString());
178
- if (facetType === 'collection') {
179
- const title = (_a = this.collectionTitles) === null || _a === void 0 ? void 0 : _a.get(bucket.key.toString());
180
- if (title)
181
- displayText = title;
182
- }
183
- return {
184
- facetType,
185
- bucketKey: bucket.key.toString(),
186
- displayText,
187
- };
188
- }),
189
- };
190
- }
191
- facetClicked(e) {
192
- if (!e.detail.smartFacet.selected) {
193
- this.smartFacets = [
194
- [{ ...e.detail.smartFacet, selected: true }],
195
- ...this.smartFacets.filter(f => f[0] !== e.detail.smartFacet),
196
- ];
197
- }
198
- for (const facet of e.detail.details) {
199
- this.selectedFacets = updateSelectedFacetBucket(this.selectedFacets, facet.facetType, facet.bucket, true);
200
- }
201
- const event = new CustomEvent('facetsChanged', {
202
- detail: this.selectedFacets,
203
- });
204
- this.dispatchEvent(event);
205
- }
206
- facetDropdownClicked(e) {
207
- if (this.smartFacets.find(sf => smartFacetEquals(sf[0], e.detail.smartFacet))) {
208
- return;
209
- }
210
- this.smartFacets = [
211
- [{ ...e.detail.smartFacet, selected: true }],
212
- ...this.smartFacets,
213
- ];
214
- for (const facet of e.detail.details) {
215
- this.selectedFacets = updateSelectedFacetBucket(this.selectedFacets, facet.facetType, facet.bucket, true);
216
- }
217
- const event = new CustomEvent('facetsChanged', {
218
- detail: this.selectedFacets,
219
- });
220
- this.dispatchEvent(event);
221
- }
222
- onDropdownClick(e) {
223
- var _a;
224
- log('smart bar: onDropdownClick', e.detail);
225
- (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('smart-facet-dropdown').forEach(dropdown => {
226
- if (dropdown !== e.detail) {
227
- log('closing', dropdown);
228
- dropdown.close();
229
- }
230
- });
231
- }
232
- filterToggleClicked() {
233
- this.dispatchEvent(new CustomEvent('filtersToggled'));
234
- }
235
- //
236
- // STYLES
237
- //
238
- static get styles() {
114
+ `;
115
+ }
116
+ get facetsToDisplay() {
117
+ const facets = [];
118
+ if (this.heuristicRecs.length > 0) {
119
+ for (const rec of this.heuristicRecs) {
120
+ facets.push([rec]);
121
+ }
122
+ }
123
+ if (this.lastAggregations) {
124
+ const keys = [
125
+ 'mediatype',
126
+ 'year',
127
+ 'language',
128
+ 'creator',
129
+ 'subject',
130
+ 'collection',
131
+ ];
132
+ for (const key of keys) {
133
+ const agg = this.lastAggregations[key];
134
+ if (!agg)
135
+ continue;
136
+ if (agg.buckets.length === 0)
137
+ continue;
138
+ if (['lending', 'year_histogram'].includes(key))
139
+ continue;
140
+ if (typeof agg.buckets[0] === 'number')
141
+ continue;
142
+ if (key === 'mediatype' &&
143
+ this.selectedFacets &&
144
+ Object.values(this.selectedFacets.mediatype).some(bucket => bucket.state !== 'none')) {
145
+ continue;
146
+ }
147
+ const facetType = key;
148
+ const buckets = agg.buckets;
149
+ const unusedBuckets = buckets.filter(b => {
150
+ var _a;
151
+ const selectedFacetBucket = (_a = this.selectedFacets) === null || _a === void 0 ? void 0 : _a[facetType][b.key];
152
+ if (selectedFacetBucket && selectedFacetBucket.state !== 'none') {
153
+ return false;
154
+ }
155
+ return true;
156
+ });
157
+ if (facetType === 'mediatype') {
158
+ facets.push([this.toSmartFacet(facetType, [unusedBuckets[0]])], [this.toSmartFacet(facetType, [unusedBuckets[1]])]);
159
+ }
160
+ else if (facetType === 'collection' || facetType === 'subject') {
161
+ const topBuckets = unusedBuckets.slice(0, 5);
162
+ facets.push(topBuckets.map(b => this.toSmartFacet(facetType, [b])));
163
+ }
164
+ else {
165
+ facets.push([this.toSmartFacet(facetType, [unusedBuckets[0]])]);
166
+ }
167
+ }
168
+ }
169
+ return facets;
170
+ }
171
+ toSmartFacet(facetType, buckets
172
+ // prefix = true
173
+ ) {
174
+ return {
175
+ facets: buckets.map(bucket => {
176
+ var _a;
177
+ let displayText = capitalize(bucket.key.toString());
178
+ if (facetType === 'collection') {
179
+ const title = (_a = this.collectionTitles) === null || _a === void 0 ? void 0 : _a.get(bucket.key.toString());
180
+ if (title)
181
+ displayText = title;
182
+ }
183
+ return {
184
+ facetType,
185
+ bucketKey: bucket.key.toString(),
186
+ displayText,
187
+ };
188
+ }),
189
+ };
190
+ }
191
+ facetClicked(e) {
192
+ if (!e.detail.smartFacet.selected) {
193
+ this.smartFacets = [
194
+ [{ ...e.detail.smartFacet, selected: true }],
195
+ ...this.smartFacets.filter(f => f[0] !== e.detail.smartFacet),
196
+ ];
197
+ }
198
+ for (const facet of e.detail.details) {
199
+ this.selectedFacets = updateSelectedFacetBucket(this.selectedFacets, facet.facetType, facet.bucket, true);
200
+ }
201
+ const event = new CustomEvent('facetsChanged', {
202
+ detail: this.selectedFacets,
203
+ });
204
+ this.dispatchEvent(event);
205
+ }
206
+ facetDropdownClicked(e) {
207
+ if (this.smartFacets.find(sf => smartFacetEquals(sf[0], e.detail.smartFacet))) {
208
+ return;
209
+ }
210
+ this.smartFacets = [
211
+ [{ ...e.detail.smartFacet, selected: true }],
212
+ ...this.smartFacets,
213
+ ];
214
+ for (const facet of e.detail.details) {
215
+ this.selectedFacets = updateSelectedFacetBucket(this.selectedFacets, facet.facetType, facet.bucket, true);
216
+ }
217
+ const event = new CustomEvent('facetsChanged', {
218
+ detail: this.selectedFacets,
219
+ });
220
+ this.dispatchEvent(event);
221
+ }
222
+ onDropdownClick(e) {
223
+ var _a;
224
+ log('smart bar: onDropdownClick', e.detail);
225
+ (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('smart-facet-dropdown').forEach(dropdown => {
226
+ if (dropdown !== e.detail) {
227
+ log('closing', dropdown);
228
+ dropdown.close();
229
+ }
230
+ });
231
+ }
232
+ filterToggleClicked() {
233
+ this.dispatchEvent(new CustomEvent('filtersToggled'));
234
+ }
235
+ //
236
+ // STYLES
237
+ //
238
+ static get styles() {
239
239
  return css `
240
240
  #smart-facets-container {
241
241
  display: flex;
@@ -269,35 +269,35 @@ let SmartFacetBar = class SmartFacetBar extends LitElement {
269
269
  filter: invert(1);
270
270
  vertical-align: text-bottom;
271
271
  }
272
- `;
273
- }
274
- };
275
- __decorate([
276
- property({ type: String })
277
- ], SmartFacetBar.prototype, "query", void 0);
278
- __decorate([
279
- property({ type: Object })
280
- ], SmartFacetBar.prototype, "aggregations", void 0);
281
- __decorate([
282
- property({ type: Object })
283
- ], SmartFacetBar.prototype, "selectedFacets", void 0);
284
- __decorate([
285
- property({ type: Object })
286
- ], SmartFacetBar.prototype, "collectionTitles", void 0);
287
- __decorate([
288
- property({ type: Boolean })
289
- ], SmartFacetBar.prototype, "filterToggleActive", void 0);
290
- __decorate([
291
- state()
292
- ], SmartFacetBar.prototype, "heuristicRecs", void 0);
293
- __decorate([
294
- state()
295
- ], SmartFacetBar.prototype, "smartFacets", void 0);
296
- __decorate([
297
- state()
298
- ], SmartFacetBar.prototype, "lastAggregations", void 0);
299
- SmartFacetBar = __decorate([
300
- customElement('smart-facet-bar')
301
- ], SmartFacetBar);
302
- export { SmartFacetBar };
272
+ `;
273
+ }
274
+ };
275
+ __decorate([
276
+ property({ type: String })
277
+ ], SmartFacetBar.prototype, "query", void 0);
278
+ __decorate([
279
+ property({ type: Object })
280
+ ], SmartFacetBar.prototype, "aggregations", void 0);
281
+ __decorate([
282
+ property({ type: Object })
283
+ ], SmartFacetBar.prototype, "selectedFacets", void 0);
284
+ __decorate([
285
+ property({ type: Object })
286
+ ], SmartFacetBar.prototype, "collectionTitles", void 0);
287
+ __decorate([
288
+ property({ type: Boolean })
289
+ ], SmartFacetBar.prototype, "filterToggleActive", void 0);
290
+ __decorate([
291
+ state()
292
+ ], SmartFacetBar.prototype, "heuristicRecs", void 0);
293
+ __decorate([
294
+ state()
295
+ ], SmartFacetBar.prototype, "smartFacets", void 0);
296
+ __decorate([
297
+ state()
298
+ ], SmartFacetBar.prototype, "lastAggregations", void 0);
299
+ SmartFacetBar = __decorate([
300
+ customElement('smart-facet-bar')
301
+ ], SmartFacetBar);
302
+ export { SmartFacetBar };
303
303
  //# sourceMappingURL=smart-facet-bar.js.map
@@ -1,11 +1,11 @@
1
- import { LitElement, CSSResultGroup, nothing } from 'lit';
2
- import type { SmartFacet } from './models';
3
- export declare class SmartFacetButton extends LitElement {
4
- facetInfo?: SmartFacet;
5
- labelPrefix?: string;
6
- selected: boolean;
7
- render(): import("lit-html").TemplateResult<1> | typeof nothing;
8
- private get href();
9
- private facetClicked;
10
- static get styles(): CSSResultGroup;
11
- }
1
+ import { LitElement, CSSResultGroup, nothing } from 'lit';
2
+ import type { SmartFacet } from './models';
3
+ export declare class SmartFacetButton extends LitElement {
4
+ facetInfo?: SmartFacet;
5
+ labelPrefix?: string;
6
+ selected: boolean;
7
+ render(): import("lit-html").TemplateResult<1> | typeof nothing;
8
+ private get href();
9
+ private facetClicked;
10
+ static get styles(): CSSResultGroup;
11
+ }