@internetarchive/collection-browser 2.7.12 → 2.7.13-alpha2

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 (498) hide show
  1. package/.editorconfig +29 -29
  2. package/.github/workflows/ci.yml +3 -3
  3. package/.github/workflows/gh-pages-main.yml +2 -2
  4. package/.github/workflows/pr-preview.yml +2 -2
  5. package/.husky/pre-commit +4 -4
  6. package/.prettierignore +1 -0
  7. package/LICENSE +661 -661
  8. package/README.md +83 -83
  9. package/dist/index.d.ts +13 -13
  10. package/dist/index.js +11 -13
  11. package/dist/index.js.map +1 -1
  12. package/dist/src/app-root.d.ts +109 -107
  13. package/dist/src/app-root.js +541 -531
  14. package/dist/src/app-root.js.map +1 -1
  15. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  16. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  17. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  18. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  19. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  20. package/dist/src/assets/img/icons/chevron.js +2 -2
  21. package/dist/src/assets/img/icons/contract.d.ts +2 -2
  22. package/dist/src/assets/img/icons/contract.js +2 -2
  23. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  24. package/dist/src/assets/img/icons/empty-query.js +2 -2
  25. package/dist/src/assets/img/icons/expand.d.ts +2 -2
  26. package/dist/src/assets/img/icons/expand.js +2 -2
  27. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  28. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  29. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  30. package/dist/src/assets/img/icons/eye.js +2 -2
  31. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  32. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  33. package/dist/src/assets/img/icons/favorite-unfilled.d.ts +1 -1
  34. package/dist/src/assets/img/icons/favorite-unfilled.js +2 -2
  35. package/dist/src/assets/img/icons/filter.d.ts +2 -2
  36. package/dist/src/assets/img/icons/filter.js +2 -2
  37. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  38. package/dist/src/assets/img/icons/login-required.js +2 -2
  39. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  40. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  41. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  42. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  43. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  44. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  45. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  46. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  47. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  48. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  49. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  50. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  51. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  52. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  53. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  54. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  55. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
  56. package/dist/src/assets/img/icons/mediatype/search.js +2 -2
  57. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  58. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  59. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  60. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  61. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  62. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  63. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  64. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  65. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  66. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  67. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  68. package/dist/src/assets/img/icons/null-result.js +2 -2
  69. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  70. package/dist/src/assets/img/icons/restricted.js +2 -2
  71. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  72. package/dist/src/assets/img/icons/reviews.js +2 -2
  73. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  74. package/dist/src/assets/img/icons/upload.js +2 -2
  75. package/dist/src/assets/img/icons/views.d.ts +1 -1
  76. package/dist/src/assets/img/icons/views.js +2 -2
  77. package/dist/src/circular-activity-indicator.d.ts +5 -5
  78. package/dist/src/circular-activity-indicator.js +17 -17
  79. package/dist/src/circular-activity-indicator.js.map +1 -1
  80. package/dist/src/collection-browser.d.ts +607 -606
  81. package/dist/src/collection-browser.js +1683 -1677
  82. package/dist/src/collection-browser.js.map +1 -1
  83. package/dist/src/collection-facets/facet-row.d.ts +30 -30
  84. package/dist/src/collection-facets/facet-row.js +118 -118
  85. package/dist/src/collection-facets/facet-row.js.map +1 -1
  86. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  87. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  88. package/dist/src/collection-facets/facet-tombstone-row.js.map +1 -1
  89. package/dist/src/collection-facets/facets-template.d.ts +13 -13
  90. package/dist/src/collection-facets/facets-template.js +49 -49
  91. package/dist/src/collection-facets/facets-template.js.map +1 -1
  92. package/dist/src/collection-facets/more-facets-content.d.ts +106 -106
  93. package/dist/src/collection-facets/more-facets-content.js +406 -408
  94. package/dist/src/collection-facets/more-facets-content.js.map +1 -1
  95. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  96. package/dist/src/collection-facets/more-facets-pagination.js +197 -196
  97. package/dist/src/collection-facets/more-facets-pagination.js.map +1 -1
  98. package/dist/src/collection-facets/smart-facets/dedupe.d.ts +10 -10
  99. package/dist/src/collection-facets/smart-facets/dedupe.js +33 -33
  100. package/dist/src/collection-facets/smart-facets/dedupe.js.map +1 -1
  101. package/dist/src/collection-facets/smart-facets/heuristics/browser-language-heuristic.d.ts +5 -5
  102. package/dist/src/collection-facets/smart-facets/heuristics/browser-language-heuristic.js +23 -23
  103. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.d.ts +5 -5
  104. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.js +44 -44
  105. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.js.map +1 -1
  106. package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.d.ts +5 -5
  107. package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js +172 -172
  108. package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js.map +1 -1
  109. package/dist/src/collection-facets/smart-facets/models.d.ts +26 -26
  110. package/dist/src/collection-facets/smart-facets/models.js +1 -1
  111. package/dist/src/collection-facets/smart-facets/smart-facet-bar.d.ts +31 -31
  112. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js +237 -240
  113. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js.map +1 -1
  114. package/dist/src/collection-facets/smart-facets/smart-facet-button.d.ts +11 -11
  115. package/dist/src/collection-facets/smart-facets/smart-facet-button.js +86 -86
  116. package/dist/src/collection-facets/smart-facets/smart-facet-button.js.map +1 -1
  117. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.d.ts +16 -16
  118. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js +100 -100
  119. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js.map +1 -1
  120. package/dist/src/collection-facets/smart-facets/smart-facet-equals.d.ts +2 -2
  121. package/dist/src/collection-facets/smart-facets/smart-facet-equals.js +12 -12
  122. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.d.ts +5 -5
  123. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js +15 -15
  124. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js.map +1 -1
  125. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  126. package/dist/src/collection-facets/toggle-switch.js +94 -94
  127. package/dist/src/collection-facets/toggle-switch.js.map +1 -1
  128. package/dist/src/collection-facets.d.ts +103 -103
  129. package/dist/src/collection-facets.js +521 -522
  130. package/dist/src/collection-facets.js.map +1 -1
  131. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +245 -245
  132. package/dist/src/data-source/collection-browser-data-source-interface.js +1 -1
  133. package/dist/src/data-source/collection-browser-data-source-interface.js.map +1 -1
  134. package/dist/src/data-source/collection-browser-data-source.d.ts +377 -377
  135. package/dist/src/data-source/collection-browser-data-source.js +1003 -1001
  136. package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
  137. package/dist/src/data-source/collection-browser-query-state.d.ts +44 -44
  138. package/dist/src/data-source/collection-browser-query-state.js +1 -1
  139. package/dist/src/data-source/models.d.ts +28 -28
  140. package/dist/src/data-source/models.js +8 -8
  141. package/dist/src/empty-placeholder.d.ts +23 -23
  142. package/dist/src/empty-placeholder.js +87 -88
  143. package/dist/src/empty-placeholder.js.map +1 -1
  144. package/dist/src/expanded-date-picker.d.ts +43 -43
  145. package/dist/src/expanded-date-picker.js +109 -109
  146. package/dist/src/expanded-date-picker.js.map +1 -1
  147. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  148. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  149. package/dist/src/language-code-handler/language-code-handler.js.map +1 -1
  150. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  151. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  152. package/dist/src/language-code-handler/language-code-mapping.js.map +1 -1
  153. package/dist/src/manage/manage-bar.d.ts +58 -58
  154. package/dist/src/manage/manage-bar.js +175 -175
  155. package/dist/src/manage/manage-bar.js.map +1 -1
  156. package/dist/src/manage/remove-items-modal-content.d.ts +9 -9
  157. package/dist/src/manage/remove-items-modal-content.js +34 -34
  158. package/dist/src/manage/remove-items-modal-content.js.map +1 -1
  159. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  160. package/dist/src/mediatype/mediatype-config.js +92 -91
  161. package/dist/src/mediatype/mediatype-config.js.map +1 -1
  162. package/dist/src/models.d.ts +228 -228
  163. package/dist/src/models.js +401 -401
  164. package/dist/src/models.js.map +1 -1
  165. package/dist/src/restoration-state-handler.d.ts +70 -70
  166. package/dist/src/restoration-state-handler.js +362 -363
  167. package/dist/src/restoration-state-handler.js.map +1 -1
  168. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  169. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  170. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js.map +1 -1
  171. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  172. package/dist/src/sort-filter-bar/alpha-bar.js +136 -136
  173. package/dist/src/sort-filter-bar/alpha-bar.js.map +1 -1
  174. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  175. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  176. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  177. package/dist/src/sort-filter-bar/img/list.js +2 -2
  178. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  179. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  180. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  181. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  182. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  183. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  184. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  185. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  186. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  187. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  188. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +223 -223
  189. package/dist/src/sort-filter-bar/sort-filter-bar.js +696 -697
  190. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  191. package/dist/src/styles/ia-button.d.ts +2 -2
  192. package/dist/src/styles/ia-button.js +17 -17
  193. package/dist/src/styles/item-image-styles.d.ts +8 -8
  194. package/dist/src/styles/item-image-styles.js +9 -9
  195. package/dist/src/styles/sr-only.d.ts +1 -1
  196. package/dist/src/styles/sr-only.js +2 -2
  197. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  198. package/dist/src/tiles/base-tile-component.js +64 -64
  199. package/dist/src/tiles/base-tile-component.js.map +1 -1
  200. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  201. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  202. package/dist/src/tiles/collection-browser-loading-tile.js.map +1 -1
  203. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  204. package/dist/src/tiles/grid/account-tile.js +72 -72
  205. package/dist/src/tiles/grid/account-tile.js.map +1 -1
  206. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  207. package/dist/src/tiles/grid/collection-tile.js +80 -80
  208. package/dist/src/tiles/grid/collection-tile.js.map +1 -1
  209. package/dist/src/tiles/grid/item-tile.d.ts +34 -34
  210. package/dist/src/tiles/grid/item-tile.js +159 -160
  211. package/dist/src/tiles/grid/item-tile.js.map +1 -1
  212. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  213. package/dist/src/tiles/grid/search-tile.js +51 -51
  214. package/dist/src/tiles/grid/search-tile.js.map +1 -1
  215. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  216. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  217. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  218. package/dist/src/tiles/grid/tile-stats.js +54 -54
  219. package/dist/src/tiles/grid/tile-stats.js.map +1 -1
  220. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  221. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  222. package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
  223. package/dist/src/tiles/hover/tile-hover-pane.d.ts +18 -18
  224. package/dist/src/tiles/hover/tile-hover-pane.js +72 -70
  225. package/dist/src/tiles/hover/tile-hover-pane.js.map +1 -1
  226. package/dist/src/tiles/image-block.d.ts +18 -18
  227. package/dist/src/tiles/image-block.js +89 -89
  228. package/dist/src/tiles/image-block.js.map +1 -1
  229. package/dist/src/tiles/item-image.d.ts +39 -39
  230. package/dist/src/tiles/item-image.js +154 -154
  231. package/dist/src/tiles/item-image.js.map +1 -1
  232. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  233. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  234. package/dist/src/tiles/list/tile-list-compact-header.js.map +1 -1
  235. package/dist/src/tiles/list/tile-list-compact.d.ts +19 -19
  236. package/dist/src/tiles/list/tile-list-compact.js +122 -122
  237. package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
  238. package/dist/src/tiles/list/tile-list.d.ts +54 -54
  239. package/dist/src/tiles/list/tile-list.js +324 -326
  240. package/dist/src/tiles/list/tile-list.js.map +1 -1
  241. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  242. package/dist/src/tiles/mediatype-icon.js +47 -47
  243. package/dist/src/tiles/mediatype-icon.js.map +1 -1
  244. package/dist/src/tiles/overlay/icon-overlay.d.ts +8 -8
  245. package/dist/src/tiles/overlay/icon-overlay.js +25 -25
  246. package/dist/src/tiles/overlay/icon-overlay.js.map +1 -1
  247. package/dist/src/tiles/overlay/text-overlay.d.ts +9 -9
  248. package/dist/src/tiles/overlay/text-overlay.js +31 -31
  249. package/dist/src/tiles/overlay/text-overlay.js.map +1 -1
  250. package/dist/src/tiles/review-block.d.ts +12 -12
  251. package/dist/src/tiles/review-block.js +56 -56
  252. package/dist/src/tiles/review-block.js.map +1 -1
  253. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  254. package/dist/src/tiles/text-snippet-block.js +73 -73
  255. package/dist/src/tiles/text-snippet-block.js.map +1 -1
  256. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  257. package/dist/src/tiles/tile-dispatcher.js +230 -230
  258. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  259. package/dist/src/tiles/tile-display-value-provider.d.ts +47 -47
  260. package/dist/src/tiles/tile-display-value-provider.js +94 -94
  261. package/dist/src/tiles/tile-display-value-provider.js.map +1 -1
  262. package/dist/src/utils/analytics-events.d.ts +28 -28
  263. package/dist/src/utils/analytics-events.js +30 -30
  264. package/dist/src/utils/array-equals.d.ts +4 -4
  265. package/dist/src/utils/array-equals.js +10 -10
  266. package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -11
  267. package/dist/src/utils/collapse-repeated-quotes.js +13 -13
  268. package/dist/src/utils/facet-utils.d.ts +83 -83
  269. package/dist/src/utils/facet-utils.js +145 -145
  270. package/dist/src/utils/facet-utils.js.map +1 -1
  271. package/dist/src/utils/format-count.d.ts +7 -7
  272. package/dist/src/utils/format-count.js +75 -76
  273. package/dist/src/utils/format-count.js.map +1 -1
  274. package/dist/src/utils/format-date.d.ts +2 -2
  275. package/dist/src/utils/format-date.js +27 -27
  276. package/dist/src/utils/format-date.js.map +1 -1
  277. package/dist/src/utils/format-unit-size.d.ts +2 -2
  278. package/dist/src/utils/format-unit-size.js +33 -33
  279. package/dist/src/utils/format-unit-size.js.map +1 -1
  280. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  281. package/dist/src/utils/local-date-from-utc.js +15 -15
  282. package/dist/src/utils/log.d.ts +7 -7
  283. package/dist/src/utils/log.js +13 -15
  284. package/dist/src/utils/log.js.map +1 -1
  285. package/dist/src/utils/resolve-mediatype.d.ts +8 -8
  286. package/dist/src/utils/resolve-mediatype.js +23 -23
  287. package/dist/src/utils/resolve-mediatype.js.map +1 -1
  288. package/dist/src/utils/sha1.d.ts +2 -2
  289. package/dist/src/utils/sha1.js +8 -8
  290. package/dist/test/collection-browser.test.d.ts +1 -1
  291. package/dist/test/collection-browser.test.js +1309 -1308
  292. package/dist/test/collection-browser.test.js.map +1 -1
  293. package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
  294. package/dist/test/collection-facets/facet-row.test.js +230 -227
  295. package/dist/test/collection-facets/facet-row.test.js.map +1 -1
  296. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  297. package/dist/test/collection-facets/facets-template.test.js +91 -91
  298. package/dist/test/collection-facets/facets-template.test.js.map +1 -1
  299. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  300. package/dist/test/collection-facets/more-facets-content.test.js +140 -141
  301. package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
  302. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  303. package/dist/test/collection-facets/more-facets-pagination.test.js +116 -117
  304. package/dist/test/collection-facets/more-facets-pagination.test.js.map +1 -1
  305. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  306. package/dist/test/collection-facets/toggle-switch.test.js +82 -73
  307. package/dist/test/collection-facets/toggle-switch.test.js.map +1 -1
  308. package/dist/test/collection-facets.test.d.ts +2 -2
  309. package/dist/test/collection-facets.test.js +692 -692
  310. package/dist/test/collection-facets.test.js.map +1 -1
  311. package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -1
  312. package/dist/test/data-source/collection-browser-data-source.test.js +89 -89
  313. package/dist/test/data-source/collection-browser-data-source.test.js.map +1 -1
  314. package/dist/test/empty-placeholder.test.d.ts +1 -1
  315. package/dist/test/empty-placeholder.test.js +62 -63
  316. package/dist/test/empty-placeholder.test.js.map +1 -1
  317. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  318. package/dist/test/expanded-date-picker.test.js +97 -96
  319. package/dist/test/expanded-date-picker.test.js.map +1 -1
  320. package/dist/test/icon-overlay.test.d.ts +1 -1
  321. package/dist/test/icon-overlay.test.js +23 -24
  322. package/dist/test/icon-overlay.test.js.map +1 -1
  323. package/dist/test/image-block.test.d.ts +1 -1
  324. package/dist/test/image-block.test.js +106 -107
  325. package/dist/test/image-block.test.js.map +1 -1
  326. package/dist/test/item-image.test.d.ts +1 -1
  327. package/dist/test/item-image.test.js +84 -85
  328. package/dist/test/item-image.test.js.map +1 -1
  329. package/dist/test/manage/manage-bar.test.d.ts +2 -2
  330. package/dist/test/manage/manage-bar.test.js +100 -101
  331. package/dist/test/manage/manage-bar.test.js.map +1 -1
  332. package/dist/test/manage/remove-items-modal-content.test.d.ts +1 -1
  333. package/dist/test/manage/remove-items-modal-content.test.js +44 -45
  334. package/dist/test/manage/remove-items-modal-content.test.js.map +1 -1
  335. package/dist/test/mediatype-config.test.d.ts +1 -1
  336. package/dist/test/mediatype-config.test.js +16 -16
  337. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  338. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  339. package/dist/test/mocks/mock-search-responses.d.ts +25 -25
  340. package/dist/test/mocks/mock-search-responses.js +942 -942
  341. package/dist/test/mocks/mock-search-responses.js.map +1 -1
  342. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  343. package/dist/test/mocks/mock-search-service.js +54 -54
  344. package/dist/test/mocks/mock-search-service.js.map +1 -1
  345. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  346. package/dist/test/restoration-state-handler.test.js +270 -270
  347. package/dist/test/restoration-state-handler.test.js.map +1 -1
  348. package/dist/test/review-block.test.d.ts +1 -1
  349. package/dist/test/review-block.test.js +43 -44
  350. package/dist/test/review-block.test.js.map +1 -1
  351. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  352. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  353. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js.map +1 -1
  354. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  355. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  356. package/dist/test/sort-filter-bar/alpha-bar.test.js.map +1 -1
  357. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  358. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +425 -426
  359. package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -1
  360. package/dist/test/text-overlay.test.d.ts +1 -1
  361. package/dist/test/text-overlay.test.js +37 -38
  362. package/dist/test/text-overlay.test.js.map +1 -1
  363. package/dist/test/text-snippet-block.test.d.ts +1 -1
  364. package/dist/test/text-snippet-block.test.js +56 -57
  365. package/dist/test/text-snippet-block.test.js.map +1 -1
  366. package/dist/test/tile-stats.test.d.ts +1 -1
  367. package/dist/test/tile-stats.test.js +98 -99
  368. package/dist/test/tile-stats.test.js.map +1 -1
  369. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  370. package/dist/test/tiles/grid/account-tile.test.js +75 -76
  371. package/dist/test/tiles/grid/account-tile.test.js.map +1 -1
  372. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  373. package/dist/test/tiles/grid/collection-tile.test.js +72 -73
  374. package/dist/test/tiles/grid/collection-tile.test.js.map +1 -1
  375. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  376. package/dist/test/tiles/grid/item-tile.test.js +311 -312
  377. package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
  378. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  379. package/dist/test/tiles/grid/search-tile.test.js +50 -51
  380. package/dist/test/tiles/grid/search-tile.test.js.map +1 -1
  381. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  382. package/dist/test/tiles/hover/hover-pane-controller.test.js +259 -259
  383. package/dist/test/tiles/hover/hover-pane-controller.test.js.map +1 -1
  384. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  385. package/dist/test/tiles/hover/tile-hover-pane.test.js +56 -56
  386. package/dist/test/tiles/hover/tile-hover-pane.test.js.map +1 -1
  387. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  388. package/dist/test/tiles/list/tile-list-compact.test.js +142 -143
  389. package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -1
  390. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  391. package/dist/test/tiles/list/tile-list.test.js +296 -297
  392. package/dist/test/tiles/list/tile-list.test.js.map +1 -1
  393. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  394. package/dist/test/tiles/tile-dispatcher.test.js +100 -100
  395. package/dist/test/tiles/tile-dispatcher.test.js.map +1 -1
  396. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  397. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  398. package/dist/test/utils/array-equals.test.d.ts +1 -1
  399. package/dist/test/utils/array-equals.test.js +26 -26
  400. package/dist/test/utils/format-count.test.d.ts +1 -1
  401. package/dist/test/utils/format-count.test.js +23 -23
  402. package/dist/test/utils/format-count.test.js.map +1 -1
  403. package/dist/test/utils/format-date.test.d.ts +1 -1
  404. package/dist/test/utils/format-date.test.js +30 -30
  405. package/dist/test/utils/format-date.test.js.map +1 -1
  406. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  407. package/dist/test/utils/format-unit-size.test.js +17 -17
  408. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  409. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  410. package/dist/test/utils/local-date-from-utc.test.js.map +1 -1
  411. package/eslint.config.mjs +53 -0
  412. package/index.html +0 -3
  413. package/local.archive.org.cert +86 -86
  414. package/local.archive.org.key +27 -27
  415. package/package.json +41 -39
  416. package/renovate.json +6 -6
  417. package/src/app-root.ts +33 -23
  418. package/src/collection-browser.ts +44 -42
  419. package/src/collection-facets/facets-template.ts +7 -6
  420. package/src/collection-facets/more-facets-content.ts +11 -13
  421. package/src/collection-facets/more-facets-pagination.ts +3 -2
  422. package/src/collection-facets/smart-facets/dedupe.ts +2 -2
  423. package/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.ts +1 -1
  424. package/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.ts +6 -6
  425. package/src/collection-facets/smart-facets/smart-facet-bar.ts +6 -8
  426. package/src/collection-facets/smart-facets/smart-facet-button.ts +5 -3
  427. package/src/collection-facets/smart-facets/smart-facet-dropdown.ts +4 -4
  428. package/src/collection-facets/smart-facets/smart-facet-heuristics.ts +1 -1
  429. package/src/collection-facets/toggle-switch.ts +2 -2
  430. package/src/collection-facets.ts +18 -19
  431. package/src/data-source/collection-browser-data-source-interface.ts +5 -1
  432. package/src/data-source/collection-browser-data-source.ts +42 -35
  433. package/src/empty-placeholder.ts +19 -16
  434. package/src/expanded-date-picker.ts +1 -1
  435. package/src/language-code-handler/language-code-handler.ts +1 -1
  436. package/src/manage/manage-bar.ts +23 -20
  437. package/src/manage/remove-items-modal-content.ts +2 -2
  438. package/src/mediatype/mediatype-config.ts +1 -0
  439. package/src/models.ts +3 -3
  440. package/src/restoration-state-handler.ts +14 -15
  441. package/src/sort-filter-bar/alpha-bar.ts +16 -17
  442. package/src/sort-filter-bar/sort-filter-bar.ts +14 -15
  443. package/src/tiles/grid/account-tile.ts +1 -1
  444. package/src/tiles/grid/collection-tile.ts +1 -1
  445. package/src/tiles/grid/item-tile.ts +9 -9
  446. package/src/tiles/grid/tile-stats.ts +4 -4
  447. package/src/tiles/hover/hover-pane-controller.ts +1 -1
  448. package/src/tiles/hover/tile-hover-pane.ts +4 -2
  449. package/src/tiles/item-image.ts +1 -1
  450. package/src/tiles/list/tile-list-compact.ts +2 -2
  451. package/src/tiles/list/tile-list.ts +22 -24
  452. package/src/tiles/tile-dispatcher.ts +5 -5
  453. package/src/tiles/tile-display-value-provider.ts +4 -4
  454. package/src/utils/facet-utils.ts +6 -6
  455. package/src/utils/format-count.ts +2 -3
  456. package/src/utils/format-date.ts +1 -1
  457. package/src/utils/format-unit-size.ts +1 -1
  458. package/src/utils/log.ts +1 -3
  459. package/test/collection-browser.test.ts +125 -124
  460. package/test/collection-facets/facet-row.test.ts +31 -28
  461. package/test/collection-facets/facets-template.test.ts +9 -9
  462. package/test/collection-facets/more-facets-content.test.ts +14 -15
  463. package/test/collection-facets/more-facets-pagination.test.ts +18 -19
  464. package/test/collection-facets/toggle-switch.test.ts +28 -18
  465. package/test/collection-facets.test.ts +46 -39
  466. package/test/data-source/collection-browser-data-source.test.ts +2 -2
  467. package/test/empty-placeholder.test.ts +6 -7
  468. package/test/expanded-date-picker.test.ts +25 -20
  469. package/test/icon-overlay.test.ts +0 -1
  470. package/test/image-block.test.ts +6 -7
  471. package/test/item-image.test.ts +0 -1
  472. package/test/manage/manage-bar.test.ts +19 -16
  473. package/test/manage/remove-items-modal-content.test.ts +4 -5
  474. package/test/mocks/mock-search-responses.ts +2 -1
  475. package/test/mocks/mock-search-service.ts +1 -1
  476. package/test/restoration-state-handler.test.ts +12 -12
  477. package/test/review-block.test.ts +1 -2
  478. package/test/sort-filter-bar/alpha-bar-tooltip.test.ts +1 -1
  479. package/test/sort-filter-bar/alpha-bar.test.ts +5 -5
  480. package/test/sort-filter-bar/sort-filter-bar.test.ts +38 -39
  481. package/test/text-overlay.test.ts +0 -1
  482. package/test/text-snippet-block.test.ts +5 -6
  483. package/test/tile-stats.test.ts +26 -35
  484. package/test/tiles/grid/account-tile.test.ts +2 -3
  485. package/test/tiles/grid/collection-tile.test.ts +3 -4
  486. package/test/tiles/grid/item-tile.test.ts +13 -14
  487. package/test/tiles/grid/search-tile.test.ts +1 -2
  488. package/test/tiles/hover/hover-pane-controller.test.ts +15 -15
  489. package/test/tiles/hover/tile-hover-pane.test.ts +5 -5
  490. package/test/tiles/list/tile-list-compact.test.ts +1 -2
  491. package/test/tiles/list/tile-list.test.ts +10 -11
  492. package/test/tiles/tile-dispatcher.test.ts +5 -5
  493. package/test/utils/format-count.test.ts +1 -1
  494. package/test/utils/format-date.test.ts +1 -1
  495. package/test/utils/local-date-from-utc.test.ts +1 -1
  496. package/tsconfig.json +0 -1
  497. package/web-dev-server.config.mjs +30 -30
  498. package/web-test-runner.config.mjs +41 -41
@@ -1,11 +1,11 @@
1
- import { CSSResultGroup, LitElement } from 'lit';
2
- export declare class TileStats extends LitElement {
3
- mediatype?: string;
4
- itemCount?: number;
5
- viewCount?: number;
6
- viewLabel?: string;
7
- favCount?: number;
8
- commentCount?: number;
9
- render(): import("lit-html").TemplateResult<1>;
10
- static get styles(): CSSResultGroup;
11
- }
1
+ import { CSSResultGroup, LitElement } from 'lit';
2
+ export declare class TileStats extends LitElement {
3
+ mediatype?: string;
4
+ itemCount?: number;
5
+ viewCount?: number;
6
+ viewLabel?: string;
7
+ favCount?: number;
8
+ commentCount?: number;
9
+ render(): import("lit").TemplateResult<1>;
10
+ static get styles(): CSSResultGroup;
11
+ }
@@ -1,21 +1,21 @@
1
- import { __decorate } from "tslib";
2
- import { css, html, LitElement } from 'lit';
3
- import { customElement, property } from 'lit/decorators.js';
4
- import { msg } from '@lit/localize';
5
- import { favoriteFilledIcon } from '../../assets/img/icons/favorite-filled';
6
- import { reviewsIcon } from '../../assets/img/icons/reviews';
7
- import { uploadIcon } from '../../assets/img/icons/upload';
8
- import { viewsIcon } from '../../assets/img/icons/views';
9
- import { srOnlyStyle } from '../../styles/sr-only';
10
- import { formatCount } from '../../utils/format-count';
11
- let TileStats = class TileStats extends LitElement {
12
- render() {
13
- var _a, _b, _c, _d, _e;
14
- const formattedFavCount = formatCount(this.favCount, 'short', 'short');
15
- const formattedReviewCount = formatCount(this.commentCount, 'short', 'short');
16
- const uploadsOrViewsTitle = this.mediatype === 'account'
17
- ? `${(_a = this.itemCount) !== null && _a !== void 0 ? _a : 0} uploads`
18
- : `${(_b = this.viewCount) !== null && _b !== void 0 ? _b : 0} ${(_c = this.viewLabel) !== null && _c !== void 0 ? _c : 'all-time views'}`;
1
+ import { __decorate } from "tslib";
2
+ import { css, html, LitElement } from 'lit';
3
+ import { customElement, property } from 'lit/decorators.js';
4
+ import { msg } from '@lit/localize';
5
+ import { favoriteFilledIcon } from '../../assets/img/icons/favorite-filled';
6
+ import { reviewsIcon } from '../../assets/img/icons/reviews';
7
+ import { uploadIcon } from '../../assets/img/icons/upload';
8
+ import { viewsIcon } from '../../assets/img/icons/views';
9
+ import { srOnlyStyle } from '../../styles/sr-only';
10
+ import { formatCount } from '../../utils/format-count';
11
+ let TileStats = class TileStats extends LitElement {
12
+ render() {
13
+ var _a, _b, _c, _d, _e;
14
+ const formattedFavCount = formatCount(this.favCount, 'short', 'short');
15
+ const formattedReviewCount = formatCount(this.commentCount, 'short', 'short');
16
+ const uploadsOrViewsTitle = this.mediatype === 'account'
17
+ ? `${(_a = this.itemCount) !== null && _a !== void 0 ? _a : 0} uploads`
18
+ : `${(_b = this.viewCount) !== null && _b !== void 0 ? _b : 0} ${(_c = this.viewLabel) !== null && _c !== void 0 ? _c : 'all-time views'}`;
19
19
  return html `
20
20
  <div class="item-stats">
21
21
  <p class="sr-only">
@@ -30,13 +30,13 @@ let TileStats = class TileStats extends LitElement {
30
30
  ${this.mediatype === 'account' ? uploadIcon : viewsIcon}
31
31
  <p class="status-text">
32
32
  <span class="sr-only">
33
- ${this.mediatype === 'account'
34
- ? msg('Uploads:')
33
+ ${this.mediatype === 'account'
34
+ ? msg('Uploads:')
35
35
  : msg('Views:')}
36
36
  </span>
37
- ${formatCount(this.mediatype === 'account'
38
- ? (_d = this.itemCount) !== null && _d !== void 0 ? _d : 0
39
- : (_e = this.viewCount) !== null && _e !== void 0 ? _e : 0, 'short', 'short')}
37
+ ${formatCount(this.mediatype === 'account'
38
+ ? ((_d = this.itemCount) !== null && _d !== void 0 ? _d : 0)
39
+ : ((_e = this.viewCount) !== null && _e !== void 0 ? _e : 0), 'short', 'short')}
40
40
  </p>
41
41
  </li>
42
42
  <li class="col" title="${formattedFavCount} favorites">
@@ -55,11 +55,11 @@ let TileStats = class TileStats extends LitElement {
55
55
  </li>
56
56
  </ul>
57
57
  </div>
58
- `;
59
- }
60
- static get styles() {
61
- return [
62
- srOnlyStyle,
58
+ `;
59
+ }
60
+ static get styles() {
61
+ return [
62
+ srOnlyStyle,
63
63
  css `
64
64
  mediatype-icon {
65
65
  --iconHeight: 25px;
@@ -121,30 +121,30 @@ let TileStats = class TileStats extends LitElement {
121
121
  display: block;
122
122
  text-align: center;
123
123
  }
124
- `,
125
- ];
126
- }
127
- };
128
- __decorate([
129
- property({ type: String })
130
- ], TileStats.prototype, "mediatype", void 0);
131
- __decorate([
132
- property({ type: Number })
133
- ], TileStats.prototype, "itemCount", void 0);
134
- __decorate([
135
- property({ type: Number })
136
- ], TileStats.prototype, "viewCount", void 0);
137
- __decorate([
138
- property({ type: String })
139
- ], TileStats.prototype, "viewLabel", void 0);
140
- __decorate([
141
- property({ type: Number })
142
- ], TileStats.prototype, "favCount", void 0);
143
- __decorate([
144
- property({ type: Number })
145
- ], TileStats.prototype, "commentCount", void 0);
146
- TileStats = __decorate([
147
- customElement('tile-stats')
148
- ], TileStats);
149
- export { TileStats };
124
+ `,
125
+ ];
126
+ }
127
+ };
128
+ __decorate([
129
+ property({ type: String })
130
+ ], TileStats.prototype, "mediatype", void 0);
131
+ __decorate([
132
+ property({ type: Number })
133
+ ], TileStats.prototype, "itemCount", void 0);
134
+ __decorate([
135
+ property({ type: Number })
136
+ ], TileStats.prototype, "viewCount", void 0);
137
+ __decorate([
138
+ property({ type: String })
139
+ ], TileStats.prototype, "viewLabel", void 0);
140
+ __decorate([
141
+ property({ type: Number })
142
+ ], TileStats.prototype, "favCount", void 0);
143
+ __decorate([
144
+ property({ type: Number })
145
+ ], TileStats.prototype, "commentCount", void 0);
146
+ TileStats = __decorate([
147
+ customElement('tile-stats')
148
+ ], TileStats);
149
+ export { TileStats };
150
150
  //# sourceMappingURL=tile-stats.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tile-stats.js","sourceRoot":"","sources":["../../../../src/tiles/grid/tile-stats.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, CSSResultGroup, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport { msg } from '@lit/localize';\nimport { favoriteFilledIcon } from '../../assets/img/icons/favorite-filled';\nimport { reviewsIcon } from '../../assets/img/icons/reviews';\nimport { uploadIcon } from '../../assets/img/icons/upload';\nimport { viewsIcon } from '../../assets/img/icons/views';\nimport { srOnlyStyle } from '../../styles/sr-only';\n\nimport { formatCount } from '../../utils/format-count';\n\n@customElement('tile-stats')\nexport class TileStats extends LitElement {\n @property({ type: String }) mediatype?: string;\n\n @property({ type: Number }) itemCount?: number;\n\n @property({ type: Number }) viewCount?: number;\n\n @property({ type: String }) viewLabel?: string;\n\n @property({ type: Number }) favCount?: number;\n\n @property({ type: Number }) commentCount?: number;\n\n render() {\n const formattedFavCount = formatCount(this.favCount, 'short', 'short');\n const formattedReviewCount = formatCount(\n this.commentCount,\n 'short',\n 'short'\n );\n\n const uploadsOrViewsTitle =\n this.mediatype === 'account'\n ? `${this.itemCount ?? 0} uploads`\n : `${this.viewCount ?? 0} ${this.viewLabel ?? 'all-time views'}`;\n\n return html`\n <div class=\"item-stats\">\n <p class=\"sr-only\">\n ${this.mediatype === 'account' ? 'Account Stats' : 'Item Stats'}\n </p>\n <ul id=\"stats-row\">\n <li class=\"col\">\n <p class=\"sr-only\">${msg('Mediatype:')}</p>\n <mediatype-icon .mediatype=${this.mediatype}></mediatype-icon>\n </li>\n <li class=\"col\" title=\"${uploadsOrViewsTitle}\">\n ${this.mediatype === 'account' ? uploadIcon : viewsIcon}\n <p class=\"status-text\">\n <span class=\"sr-only\">\n ${this.mediatype === 'account'\n ? msg('Uploads:')\n : msg('Views:')}\n </span>\n ${formatCount(\n this.mediatype === 'account'\n ? this.itemCount ?? 0\n : this.viewCount ?? 0,\n 'short',\n 'short'\n )}\n </p>\n </li>\n <li class=\"col\" title=\"${formattedFavCount} favorites\">\n ${favoriteFilledIcon}\n <p class=\"status-text\">\n <span class=\"sr-only\">${msg('Favorites:')}</span>\n ${formattedFavCount}\n </p>\n </li>\n <li class=\"col reviews\" title=\"${formattedReviewCount} reviews\">\n ${reviewsIcon}\n <p class=\"status-text\">\n <span class=\"sr-only\">${msg('Reviews:')}</span>\n ${formattedReviewCount}\n </p>\n </li>\n </ul>\n </div>\n `;\n }\n\n static get styles(): CSSResultGroup {\n return [\n srOnlyStyle,\n css`\n mediatype-icon {\n --iconHeight: 25px;\n --iconWidth: 25px;\n }\n\n ul {\n all: unset; // unset all property values\n list-style-type: none; // remove default list-style\n }\n\n li {\n list-style-type: none; // remove default list-style\n }\n\n svg {\n height: 13px;\n width: 13px;\n display: block;\n margin: auto;\n pointer-events: none;\n }\n\n /* Make the reviews icon slightly smaller/lower, for even visual weight */\n .reviews svg {\n height: 11px;\n width: 11px;\n margin-top: 2px;\n }\n\n .item-stats {\n height: 30px;\n padding-left: 5px;\n padding-right: 5px;\n font-family: 'Helvetica Neue', ui-sans-serif, system-ui, sans-serif;\n text-align: center;\n }\n\n #stats-row {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n width: 100%;\n padding-bottom: 5px;\n }\n\n .col {\n min-width: 15px;\n max-width: 25%;\n height: 25px;\n }\n\n .status-text {\n font-size: 14px;\n height: 15px;\n color: #2c2c2c;\n line-height: 17px;\n margin: auto;\n display: block;\n text-align: center;\n }\n `,\n ];\n }\n}\n"]}
1
+ {"version":3,"file":"tile-stats.js","sourceRoot":"","sources":["../../../../src/tiles/grid/tile-stats.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, CSSResultGroup, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport { msg } from '@lit/localize';\nimport { favoriteFilledIcon } from '../../assets/img/icons/favorite-filled';\nimport { reviewsIcon } from '../../assets/img/icons/reviews';\nimport { uploadIcon } from '../../assets/img/icons/upload';\nimport { viewsIcon } from '../../assets/img/icons/views';\nimport { srOnlyStyle } from '../../styles/sr-only';\n\nimport { formatCount } from '../../utils/format-count';\n\n@customElement('tile-stats')\nexport class TileStats extends LitElement {\n @property({ type: String }) mediatype?: string;\n\n @property({ type: Number }) itemCount?: number;\n\n @property({ type: Number }) viewCount?: number;\n\n @property({ type: String }) viewLabel?: string;\n\n @property({ type: Number }) favCount?: number;\n\n @property({ type: Number }) commentCount?: number;\n\n render() {\n const formattedFavCount = formatCount(this.favCount, 'short', 'short');\n const formattedReviewCount = formatCount(\n this.commentCount,\n 'short',\n 'short',\n );\n\n const uploadsOrViewsTitle =\n this.mediatype === 'account'\n ? `${this.itemCount ?? 0} uploads`\n : `${this.viewCount ?? 0} ${this.viewLabel ?? 'all-time views'}`;\n\n return html`\n <div class=\"item-stats\">\n <p class=\"sr-only\">\n ${this.mediatype === 'account' ? 'Account Stats' : 'Item Stats'}\n </p>\n <ul id=\"stats-row\">\n <li class=\"col\">\n <p class=\"sr-only\">${msg('Mediatype:')}</p>\n <mediatype-icon .mediatype=${this.mediatype}></mediatype-icon>\n </li>\n <li class=\"col\" title=\"${uploadsOrViewsTitle}\">\n ${this.mediatype === 'account' ? uploadIcon : viewsIcon}\n <p class=\"status-text\">\n <span class=\"sr-only\">\n ${this.mediatype === 'account'\n ? msg('Uploads:')\n : msg('Views:')}\n </span>\n ${formatCount(\n this.mediatype === 'account'\n ? (this.itemCount ?? 0)\n : (this.viewCount ?? 0),\n 'short',\n 'short',\n )}\n </p>\n </li>\n <li class=\"col\" title=\"${formattedFavCount} favorites\">\n ${favoriteFilledIcon}\n <p class=\"status-text\">\n <span class=\"sr-only\">${msg('Favorites:')}</span>\n ${formattedFavCount}\n </p>\n </li>\n <li class=\"col reviews\" title=\"${formattedReviewCount} reviews\">\n ${reviewsIcon}\n <p class=\"status-text\">\n <span class=\"sr-only\">${msg('Reviews:')}</span>\n ${formattedReviewCount}\n </p>\n </li>\n </ul>\n </div>\n `;\n }\n\n static get styles(): CSSResultGroup {\n return [\n srOnlyStyle,\n css`\n mediatype-icon {\n --iconHeight: 25px;\n --iconWidth: 25px;\n }\n\n ul {\n all: unset; // unset all property values\n list-style-type: none; // remove default list-style\n }\n\n li {\n list-style-type: none; // remove default list-style\n }\n\n svg {\n height: 13px;\n width: 13px;\n display: block;\n margin: auto;\n pointer-events: none;\n }\n\n /* Make the reviews icon slightly smaller/lower, for even visual weight */\n .reviews svg {\n height: 11px;\n width: 11px;\n margin-top: 2px;\n }\n\n .item-stats {\n height: 30px;\n padding-left: 5px;\n padding-right: 5px;\n font-family: 'Helvetica Neue', ui-sans-serif, system-ui, sans-serif;\n text-align: center;\n }\n\n #stats-row {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n width: 100%;\n padding-bottom: 5px;\n }\n\n .col {\n min-width: 15px;\n max-width: 25%;\n height: 25px;\n }\n\n .status-text {\n font-size: 14px;\n height: 15px;\n color: #2c2c2c;\n line-height: 17px;\n margin: auto;\n display: block;\n text-align: center;\n }\n `,\n ];\n }\n}\n"]}
@@ -1,219 +1,219 @@
1
- import type { SortParam } from '@internetarchive/search-service';
2
- import { HTMLTemplateResult, nothing, ReactiveController, ReactiveControllerHost } from 'lit';
3
- import type { TileModel } from '../../models';
4
- import type { CollectionTitles } from '../../data-source/models';
5
- export interface HoverPaneProperties {
6
- model?: TileModel;
7
- baseNavigationUrl?: string;
8
- baseImageUrl?: string;
9
- loggedIn: boolean;
10
- sortParam: SortParam | null;
11
- collectionTitles?: CollectionTitles;
12
- }
13
- export interface HoverPaneControllerOptions {
14
- offsetX?: number;
15
- offsetY?: number;
16
- enableLongPress?: boolean;
17
- showDelay?: number;
18
- hideDelay?: number;
19
- longPressDelay?: number;
20
- mobileBreakpoint?: number;
21
- }
22
- /** A common interface for providing a hover pane element. */
23
- export interface HoverPaneProviderInterface {
24
- /** Returns the provider's currently rendered hover pane element. */
25
- getHoverPane(): HTMLElement | undefined;
26
- /** Returns properties that should be passed to the hover pane. */
27
- getHoverPaneProps(): HoverPaneProperties;
28
- }
29
- export interface ToggleHoverPaneOptions {
30
- coords: {
31
- x: number;
32
- y: number;
33
- };
34
- enableTouchBackdrop?: boolean;
35
- }
36
- /**
37
- * An interface for interacting with hover pane controllers (e.g.,
38
- * to retrieve their current hover pane template).
39
- */
40
- export interface HoverPaneControllerInterface extends ReactiveController {
41
- /**
42
- * Returns the hover pane template to render based on this controller's
43
- * current state. The returned template may be `nothing` if the hover
44
- * pane should not currently be rendered.
45
- */
46
- getTemplate(): HTMLTemplateResult | typeof nothing;
47
- /**
48
- * Requests to manually toggle the state of the hover pane.
49
- * If the hover pane is already shown, it will begin fading out and then
50
- * subsequently be hidden and removed. If the hover pane is already fading
51
- * out or hidden, it will fade back in and be shown.
52
- */
53
- toggleHoverPane(options: ToggleHoverPaneOptions): void;
54
- }
55
- export declare class HoverPaneController implements HoverPaneControllerInterface {
56
- /** The host element to which this controller should attach listeners */
57
- private readonly host;
58
- /**
59
- * The hover pane element attached to this controller's host.
60
- */
61
- private hoverPane?;
62
- /**
63
- * The properties to be passed to the hover pane element
64
- */
65
- private hoverPaneProps?;
66
- /**
67
- * The breakpoint (in pixels) below which the mobile interface should be used.
68
- */
69
- private mobileBreakpoint?;
70
- /**
71
- * The number of horizontal pixels the hover pane should be offset from the
72
- * pointer position.
73
- */
74
- private offsetX;
75
- /**
76
- * The number of vertical pixels the hover pane should be offset from the
77
- * pointer position.
78
- */
79
- private offsetY;
80
- /**
81
- * The delay between the mouse idling within the host element and when the hover
82
- * pane should begin fading in (in milliseconds).
83
- */
84
- private showDelay;
85
- /**
86
- * The delay between when the mouse leaves the host element and when the hover
87
- * pane should begin fading out (in milliseconds).
88
- */
89
- private hideDelay;
90
- /**
91
- * The delay between when a touch event begins on the host element and when the
92
- * hover pane should begin fading in (in milliseconds).
93
- */
94
- private longPressDelay;
95
- /**
96
- * Whether long press interactions should cause the hover pane to appear (when
97
- * below the mobile breakpoint).
98
- */
99
- private enableLongPress;
100
- /**
101
- * Used to control the current state of this provider's hover pane.
102
- * - `'hidden'` => The hover pane is not present at all.
103
- * - `'shown'` => The hover pane is either fading in or fully visible.
104
- * - `'fading-out'` => The hover pane is fading out and about to be removed.
105
- */
106
- private hoverPaneState;
107
- /** The timer ID for showing the hover pane */
108
- private showTimer?;
109
- /** The timer ID for hiding the hover pane */
110
- private hideTimer?;
111
- /** The timer ID for recognizing a long press event */
112
- private longPressTimer?;
113
- /**
114
- * Whether the touch backdrop should currently be rendered irrespective of other touch
115
- * interactions being enabled.
116
- */
117
- private forceTouchBackdrop;
118
- /** A record of the last mouse position on the host element, for positioning the hover pane */
119
- private lastPointerClientPos;
120
- constructor(
121
- /** The host element to which this controller should attach listeners */
122
- host: ReactiveControllerHost & HoverPaneProviderInterface & HTMLElement,
123
- /** Options for adjusting the hover pane behavior (offsets, delays, etc.) */
124
- options?: HoverPaneControllerOptions);
125
- hostConnected(): void;
126
- hostDisconnected(): void;
127
- hostUpdated(): void;
128
- /** @inheritdoc */
129
- getTemplate(): HTMLTemplateResult | typeof nothing;
130
- /** @inheritdoc */
131
- toggleHoverPane(options: ToggleHoverPaneOptions): void;
132
- /**
133
- * Produces a template for the invisible touch capture backdrop that
134
- * is used to cancel the hover pane on touch devices. We want any
135
- * touch interaction on the backdrop to remove the hover pane, and
136
- * we don't want to bubble up mouse events that would otherwise
137
- * affect the state of the hover pane (e.g., fading it back in).
138
- */
139
- private get touchBackdropTemplate();
140
- private get showTouchBackdrop();
141
- /** Whether to use the mobile layout */
142
- private get isMobileView();
143
- private get isHoverEnabled();
144
- private get isTouchEnabled();
145
- /** Whether this controller should currently render its hover pane. */
146
- private get shouldRenderHoverPane();
147
- /**
148
- * Returns the desired top/left offsets (in pixels) for this tile's hover pane.
149
- * The desired offsets balance positioning the hover pane under the primary pointer
150
- * while preventing it from flowing outside the viewport. The returned offsets are
151
- * given relative to this tile's content box.
152
- *
153
- * These offsets are only valid if the hover pane is already rendered with its
154
- * correct width and height. If the hover pane is not present, the returned offsets
155
- * will simply represent the current pointer position.
156
- */
157
- private get hoverPaneDesiredOffsets();
158
- /**
159
- * Adds to the host element all the listeners necessary to make the
160
- * hover pane functional.
161
- */
162
- private attachListeners;
163
- /**
164
- * Removes all the hover pane listeners from the host element.
165
- */
166
- private detachListeners;
167
- /**
168
- * Handler for the mouseenter event on the host element.
169
- */
170
- private handleMouseEnter;
171
- /**
172
- * Handler for the mousemove event on the host element.
173
- * Aborts any pending hide/fade-out for the hover pane, and restarts the
174
- * timer to show it.
175
- */
176
- private handleMouseMove;
177
- /**
178
- * Handler for the mouseleave event on the host element.
179
- * Hides the hover pane if present, and aborts the timer for showing it.
180
- */
181
- private handleMouseLeave;
182
- /**
183
- * Handler for the touchstart event on the host element.
184
- * Begins the timer for recognizing a long press event.
185
- */
186
- private handleTouchStart;
187
- /**
188
- * Handler for events that should cancel a pending long press event
189
- * (touchmove, touchend, touchcancel). Aborts the timer for recognizing
190
- * a long press.
191
- */
192
- private handleLongPressCancel;
193
- /**
194
- * Handler for the contextmenu event, which should be suppressed during
195
- * mobile long-press events on the host element.
196
- */
197
- private handleContextMenu;
198
- /**
199
- * Immediately causes the hover pane to begin fading out, if it is present.
200
- */
201
- private handleBackdropInteraction;
202
- /**
203
- * Aborts and restarts the timer for showing the hover pane.
204
- */
205
- private restartShowHoverPaneTimer;
206
- /**
207
- * Causes this tile's hover pane to be rendered, positioned, and made visible.
208
- */
209
- private showHoverPane;
210
- /**
211
- * Causes this tile's hover pane to begin fading out and starts
212
- * the timer for it to be removed.
213
- */
214
- private fadeOutHoverPane;
215
- /**
216
- * Positions the hover pane with the correct offsets.
217
- */
218
- private repositionHoverPane;
219
- }
1
+ import type { SortParam } from '@internetarchive/search-service';
2
+ import { HTMLTemplateResult, nothing, ReactiveController, ReactiveControllerHost } from 'lit';
3
+ import type { TileModel } from '../../models';
4
+ import type { CollectionTitles } from '../../data-source/models';
5
+ export interface HoverPaneProperties {
6
+ model?: TileModel;
7
+ baseNavigationUrl?: string;
8
+ baseImageUrl?: string;
9
+ loggedIn: boolean;
10
+ sortParam: SortParam | null;
11
+ collectionTitles?: CollectionTitles;
12
+ }
13
+ export interface HoverPaneControllerOptions {
14
+ offsetX?: number;
15
+ offsetY?: number;
16
+ enableLongPress?: boolean;
17
+ showDelay?: number;
18
+ hideDelay?: number;
19
+ longPressDelay?: number;
20
+ mobileBreakpoint?: number;
21
+ }
22
+ /** A common interface for providing a hover pane element. */
23
+ export interface HoverPaneProviderInterface {
24
+ /** Returns the provider's currently rendered hover pane element. */
25
+ getHoverPane(): HTMLElement | undefined;
26
+ /** Returns properties that should be passed to the hover pane. */
27
+ getHoverPaneProps(): HoverPaneProperties;
28
+ }
29
+ export interface ToggleHoverPaneOptions {
30
+ coords: {
31
+ x: number;
32
+ y: number;
33
+ };
34
+ enableTouchBackdrop?: boolean;
35
+ }
36
+ /**
37
+ * An interface for interacting with hover pane controllers (e.g.,
38
+ * to retrieve their current hover pane template).
39
+ */
40
+ export interface HoverPaneControllerInterface extends ReactiveController {
41
+ /**
42
+ * Returns the hover pane template to render based on this controller's
43
+ * current state. The returned template may be `nothing` if the hover
44
+ * pane should not currently be rendered.
45
+ */
46
+ getTemplate(): HTMLTemplateResult | typeof nothing;
47
+ /**
48
+ * Requests to manually toggle the state of the hover pane.
49
+ * If the hover pane is already shown, it will begin fading out and then
50
+ * subsequently be hidden and removed. If the hover pane is already fading
51
+ * out or hidden, it will fade back in and be shown.
52
+ */
53
+ toggleHoverPane(options: ToggleHoverPaneOptions): void;
54
+ }
55
+ export declare class HoverPaneController implements HoverPaneControllerInterface {
56
+ /** The host element to which this controller should attach listeners */
57
+ private readonly host;
58
+ /**
59
+ * The hover pane element attached to this controller's host.
60
+ */
61
+ private hoverPane?;
62
+ /**
63
+ * The properties to be passed to the hover pane element
64
+ */
65
+ private hoverPaneProps?;
66
+ /**
67
+ * The breakpoint (in pixels) below which the mobile interface should be used.
68
+ */
69
+ private mobileBreakpoint?;
70
+ /**
71
+ * The number of horizontal pixels the hover pane should be offset from the
72
+ * pointer position.
73
+ */
74
+ private offsetX;
75
+ /**
76
+ * The number of vertical pixels the hover pane should be offset from the
77
+ * pointer position.
78
+ */
79
+ private offsetY;
80
+ /**
81
+ * The delay between the mouse idling within the host element and when the hover
82
+ * pane should begin fading in (in milliseconds).
83
+ */
84
+ private showDelay;
85
+ /**
86
+ * The delay between when the mouse leaves the host element and when the hover
87
+ * pane should begin fading out (in milliseconds).
88
+ */
89
+ private hideDelay;
90
+ /**
91
+ * The delay between when a touch event begins on the host element and when the
92
+ * hover pane should begin fading in (in milliseconds).
93
+ */
94
+ private longPressDelay;
95
+ /**
96
+ * Whether long press interactions should cause the hover pane to appear (when
97
+ * below the mobile breakpoint).
98
+ */
99
+ private enableLongPress;
100
+ /**
101
+ * Used to control the current state of this provider's hover pane.
102
+ * - `'hidden'` => The hover pane is not present at all.
103
+ * - `'shown'` => The hover pane is either fading in or fully visible.
104
+ * - `'fading-out'` => The hover pane is fading out and about to be removed.
105
+ */
106
+ private hoverPaneState;
107
+ /** The timer ID for showing the hover pane */
108
+ private showTimer?;
109
+ /** The timer ID for hiding the hover pane */
110
+ private hideTimer?;
111
+ /** The timer ID for recognizing a long press event */
112
+ private longPressTimer?;
113
+ /**
114
+ * Whether the touch backdrop should currently be rendered irrespective of other touch
115
+ * interactions being enabled.
116
+ */
117
+ private forceTouchBackdrop;
118
+ /** A record of the last mouse position on the host element, for positioning the hover pane */
119
+ private lastPointerClientPos;
120
+ constructor(
121
+ /** The host element to which this controller should attach listeners */
122
+ host: ReactiveControllerHost & HoverPaneProviderInterface & HTMLElement,
123
+ /** Options for adjusting the hover pane behavior (offsets, delays, etc.) */
124
+ options?: HoverPaneControllerOptions);
125
+ hostConnected(): void;
126
+ hostDisconnected(): void;
127
+ hostUpdated(): void;
128
+ /** @inheritdoc */
129
+ getTemplate(): HTMLTemplateResult | typeof nothing;
130
+ /** @inheritdoc */
131
+ toggleHoverPane(options: ToggleHoverPaneOptions): void;
132
+ /**
133
+ * Produces a template for the invisible touch capture backdrop that
134
+ * is used to cancel the hover pane on touch devices. We want any
135
+ * touch interaction on the backdrop to remove the hover pane, and
136
+ * we don't want to bubble up mouse events that would otherwise
137
+ * affect the state of the hover pane (e.g., fading it back in).
138
+ */
139
+ private get touchBackdropTemplate();
140
+ private get showTouchBackdrop();
141
+ /** Whether to use the mobile layout */
142
+ private get isMobileView();
143
+ private get isHoverEnabled();
144
+ private get isTouchEnabled();
145
+ /** Whether this controller should currently render its hover pane. */
146
+ private get shouldRenderHoverPane();
147
+ /**
148
+ * Returns the desired top/left offsets (in pixels) for this tile's hover pane.
149
+ * The desired offsets balance positioning the hover pane under the primary pointer
150
+ * while preventing it from flowing outside the viewport. The returned offsets are
151
+ * given relative to this tile's content box.
152
+ *
153
+ * These offsets are only valid if the hover pane is already rendered with its
154
+ * correct width and height. If the hover pane is not present, the returned offsets
155
+ * will simply represent the current pointer position.
156
+ */
157
+ private get hoverPaneDesiredOffsets();
158
+ /**
159
+ * Adds to the host element all the listeners necessary to make the
160
+ * hover pane functional.
161
+ */
162
+ private attachListeners;
163
+ /**
164
+ * Removes all the hover pane listeners from the host element.
165
+ */
166
+ private detachListeners;
167
+ /**
168
+ * Handler for the mouseenter event on the host element.
169
+ */
170
+ private handleMouseEnter;
171
+ /**
172
+ * Handler for the mousemove event on the host element.
173
+ * Aborts any pending hide/fade-out for the hover pane, and restarts the
174
+ * timer to show it.
175
+ */
176
+ private handleMouseMove;
177
+ /**
178
+ * Handler for the mouseleave event on the host element.
179
+ * Hides the hover pane if present, and aborts the timer for showing it.
180
+ */
181
+ private handleMouseLeave;
182
+ /**
183
+ * Handler for the touchstart event on the host element.
184
+ * Begins the timer for recognizing a long press event.
185
+ */
186
+ private handleTouchStart;
187
+ /**
188
+ * Handler for events that should cancel a pending long press event
189
+ * (touchmove, touchend, touchcancel). Aborts the timer for recognizing
190
+ * a long press.
191
+ */
192
+ private handleLongPressCancel;
193
+ /**
194
+ * Handler for the contextmenu event, which should be suppressed during
195
+ * mobile long-press events on the host element.
196
+ */
197
+ private handleContextMenu;
198
+ /**
199
+ * Immediately causes the hover pane to begin fading out, if it is present.
200
+ */
201
+ private handleBackdropInteraction;
202
+ /**
203
+ * Aborts and restarts the timer for showing the hover pane.
204
+ */
205
+ private restartShowHoverPaneTimer;
206
+ /**
207
+ * Causes this tile's hover pane to be rendered, positioned, and made visible.
208
+ */
209
+ private showHoverPane;
210
+ /**
211
+ * Causes this tile's hover pane to begin fading out and starts
212
+ * the timer for it to be removed.
213
+ */
214
+ private fadeOutHoverPane;
215
+ /**
216
+ * Positions the hover pane with the correct offsets.
217
+ */
218
+ private repositionHoverPane;
219
+ }