@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 +1 @@
1
- {"version":3,"file":"image-block.js","sourceRoot":"","sources":["../../../src/tiles/image-block.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAkB,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAa,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAIlE,OAAO,wBAAwB,CAAC;AAChC,OAAO,wBAAwB,CAAC;AAGhC,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,UAAU;IAA1C;;QAG+B,kBAAa,GAAG,KAAK,CAAC;QAEtB,eAAU,GAAG,KAAK,CAAC;QAEnB,aAAQ,GAAG,KAAK,CAAC;QAIlB,aAAQ,GAAW,SAAS,CAAC;IAuI3D,CAAC;IArIC,MAAM;;QACJ,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,UAAU,CAAA;YAAE,OAAO,OAAO,CAAC;QAE5C,OAAO,IAAI,CAAA;mBACI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;;mBAExB,IAAI,CAAC,KAAK;0BACH,IAAI,CAAC,YAAY;wBACnB,IAAI,CAAC,UAAU;2BACZ,IAAI,CAAC,aAAa;sBACvB,IAAI,CAAC,QAAQ;;;;UAIzB,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB;;KAEzD,CAAC;IACJ,CAAC;IAED,IAAY,SAAS;;QACnB,OAAO;YACL,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa;YAC5C,cAAc,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa;YACrD,UAAU,EAAE,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS,MAAK,YAAY;YAClD,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI;YACrB,cAAc,EAAE,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS,MAAK,QAAQ;SACnD,CAAC;IACJ,CAAC;IAED,IAAY,mBAAmB;QAC7B,uCAAuC;QACvC,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,OAAO,CAAC;QAErC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,WAAW;YAAE,OAAO,OAAO,CAAC;QAEjC,OAAO,IAAI,CAAA;;gBAEC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa;gBACnD,IAAI,CAAC,WAAW;;;KAG3B,CAAC;IACJ,CAAC;IAED,IAAY,mBAAmB;QAC7B,6CAA6C;QAC7C,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,OAAO,CAAC;QAEpC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,WAAW;YAAE,OAAO,OAAO,CAAC;QAEjC,OAAO,IAAI,CAAA,wBAAwB,IAAI,CAAC,WAAW,mBAAmB,CAAC;IACzE,CAAC;IAED,IAAY,WAAW;;QACrB,2DAA2D;QAC3D,0EAA0E;QAC1E,0DAA0D;QAC1D,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,aAAa,KAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC/C,OAAO,gBAAgB,CAAC;SACzB;QACD,IAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,cAAc,EAAE;YAC9B,OAAO,iBAAiB,CAAC;SAC1B;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,MAAM;QACf,MAAM,yBAAyB,GAAG,GAAG,CAAA,2CAA2C,CAAC;QAEjF,OAAO,GAAG,CAAA;;;;;4BAKc,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsDhD,CAAC;IACJ,CAAC;CACF,CAAA;AAjJ6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDAAuB;AAErB;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDAAuB;AAEtB;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8CAAoB;AAEnB;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CAAkB;AAElB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yCAAmB;AAElB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CAA8B;AAX9C,UAAU;IADtB,aAAa,CAAC,aAAa,CAAC;GAChB,UAAU,CAkJtB;SAlJY,UAAU","sourcesContent":["import { css, CSSResultGroup, html, LitElement, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { ClassInfo, classMap } from 'lit/directives/class-map.js';\n\nimport type { TileModel, TileOverlayType } from '../models';\n\nimport './overlay/icon-overlay';\nimport './overlay/text-overlay';\n\n@customElement('image-block')\nexport class ImageBlock extends LitElement {\n @property({ type: String }) baseImageUrl?: string;\n\n @property({ type: Boolean }) isCompactTile = false;\n\n @property({ type: Boolean }) isListTile = false;\n\n @property({ type: Boolean }) loggedIn = false;\n\n @property({ type: Object }) model?: TileModel;\n\n @property({ type: String }) viewSize: string = 'desktop';\n\n render() {\n if (!this.model?.identifier) return nothing;\n\n return html`\n <div class=${classMap(this.baseClass)}>\n <item-image\n .model=${this.model}\n .baseImageUrl=${this.baseImageUrl}\n .isListTile=${this.isListTile}\n .isCompactTile=${this.isCompactTile}\n .loggedIn=${this.loggedIn}\n style=\"--imgHeight: 100%; --imgWidth: 100%\"\n >\n </item-image>\n ${this.textOverlayTemplate} ${this.iconOverlayTemplate}\n </div>\n `;\n }\n\n private get baseClass(): ClassInfo {\n return {\n container: true,\n list: this.isListTile && !this.isCompactTile,\n 'list-compact': this.isListTile && this.isCompactTile,\n collection: this.model?.mediatype === 'collection', // fill the image in container\n [this.viewSize]: true,\n 'search-image': this.model?.mediatype === 'search',\n };\n }\n\n private get iconOverlayTemplate() {\n // Only list tiles use the icon overlay\n if (!this.isListTile) return nothing;\n\n const { overlayType } = this;\n if (!overlayType) return nothing;\n\n return html`\n <icon-overlay\n class=${this.isCompactTile ? 'list-compact' : 'list-detail'}\n .type=${this.overlayType}\n >\n </icon-overlay>\n `;\n }\n\n private get textOverlayTemplate() {\n // List tiles do not require the text overlay\n if (this.isListTile) return nothing;\n\n const { overlayType } = this;\n if (!overlayType) return nothing;\n\n return html` <text-overlay .type=${this.overlayType}></text-overlay> `;\n }\n\n private get overlayType(): TileOverlayType | undefined {\n // Prioritize showing the login-required overlay if needed.\n // Otherwise, if a content warning is required, show that overlay instead.\n // If neither flag is present, no overlay should be shown.\n if (this.model?.loginRequired && !this.loggedIn) {\n return 'login-required';\n }\n if (this.model?.contentWarning) {\n return 'content-warning';\n }\n return undefined;\n }\n\n static get styles(): CSSResultGroup {\n const imageBlockBackgroundColor = css`var(--imageBlockBackgroundColor, #f1f1f4)`;\n\n return css`\n div {\n display: flex;\n justify-content: center;\n position: relative;\n background-color: ${imageBlockBackgroundColor};\n border-radius: 4px;\n }\n\n .grid {\n height: var(--imgBlockHeight, 16rem);\n flex: 1;\n position: initial;\n padding: 5px;\n border-radius: 4px 4px 0 0;\n }\n\n .collection.grid,\n .grid.search-image {\n display: block;\n }\n\n /** tile-list view */\n .list {\n border-radius: 0;\n background-color: var(--imageBlockListBackgroundColor, #ebebee);\n box-shadow: 1px 1px 2px rgb(0, 0, 0, 0.2);\n }\n\n .list.desktop {\n width: 100px;\n max-width: 100%;\n height: 100px;\n max-width: 100%;\n display: inline-block;\n position: relative;\n text-align: center;\n }\n\n .list.mobile {\n width: var(--image-width, 90px);\n height: 90px;\n }\n\n /** tile-list-compact view */\n .container.list-compact {\n display: block;\n text-align: center;\n }\n\n .list-compact.desktop {\n width: 45px;\n height: 45px;\n }\n\n .list-compact.mobile {\n width: 30px;\n height: 30px;\n }\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"image-block.js","sourceRoot":"","sources":["../../../src/tiles/image-block.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, CSSResultGroup, html, LitElement, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { ClassInfo, classMap } from 'lit/directives/class-map.js';\n\nimport type { TileModel, TileOverlayType } from '../models';\n\nimport './overlay/icon-overlay';\nimport './overlay/text-overlay';\n\n@customElement('image-block')\nexport class ImageBlock extends LitElement {\n @property({ type: String }) baseImageUrl?: string;\n\n @property({ type: Boolean }) isCompactTile = false;\n\n @property({ type: Boolean }) isListTile = false;\n\n @property({ type: Boolean }) loggedIn = false;\n\n @property({ type: Object }) model?: TileModel;\n\n @property({ type: String }) viewSize: string = 'desktop';\n\n render() {\n if (!this.model?.identifier) return nothing;\n\n return html`\n <div class=${classMap(this.baseClass)}>\n <item-image\n .model=${this.model}\n .baseImageUrl=${this.baseImageUrl}\n .isListTile=${this.isListTile}\n .isCompactTile=${this.isCompactTile}\n .loggedIn=${this.loggedIn}\n style=\"--imgHeight: 100%; --imgWidth: 100%\"\n >\n </item-image>\n ${this.textOverlayTemplate} ${this.iconOverlayTemplate}\n </div>\n `;\n }\n\n private get baseClass(): ClassInfo {\n return {\n container: true,\n list: this.isListTile && !this.isCompactTile,\n 'list-compact': this.isListTile && this.isCompactTile,\n collection: this.model?.mediatype === 'collection', // fill the image in container\n [this.viewSize]: true,\n 'search-image': this.model?.mediatype === 'search',\n };\n }\n\n private get iconOverlayTemplate() {\n // Only list tiles use the icon overlay\n if (!this.isListTile) return nothing;\n\n const { overlayType } = this;\n if (!overlayType) return nothing;\n\n return html`\n <icon-overlay\n class=${this.isCompactTile ? 'list-compact' : 'list-detail'}\n .type=${this.overlayType}\n >\n </icon-overlay>\n `;\n }\n\n private get textOverlayTemplate() {\n // List tiles do not require the text overlay\n if (this.isListTile) return nothing;\n\n const { overlayType } = this;\n if (!overlayType) return nothing;\n\n return html` <text-overlay .type=${this.overlayType}></text-overlay> `;\n }\n\n private get overlayType(): TileOverlayType | undefined {\n // Prioritize showing the login-required overlay if needed.\n // Otherwise, if a content warning is required, show that overlay instead.\n // If neither flag is present, no overlay should be shown.\n if (this.model?.loginRequired && !this.loggedIn) {\n return 'login-required';\n }\n if (this.model?.contentWarning) {\n return 'content-warning';\n }\n return undefined;\n }\n\n static get styles(): CSSResultGroup {\n const imageBlockBackgroundColor = css`var(--imageBlockBackgroundColor, #f1f1f4)`;\n\n return css`\n div {\n display: flex;\n justify-content: center;\n position: relative;\n background-color: ${imageBlockBackgroundColor};\n border-radius: 4px;\n }\n\n .grid {\n height: var(--imgBlockHeight, 16rem);\n flex: 1;\n position: initial;\n padding: 5px;\n border-radius: 4px 4px 0 0;\n }\n\n .collection.grid,\n .grid.search-image {\n display: block;\n }\n\n /** tile-list view */\n .list {\n border-radius: 0;\n background-color: var(--imageBlockListBackgroundColor, #ebebee);\n box-shadow: 1px 1px 2px rgb(0, 0, 0, 0.2);\n }\n\n .list.desktop {\n width: 100px;\n max-width: 100%;\n height: 100px;\n max-width: 100%;\n display: inline-block;\n position: relative;\n text-align: center;\n }\n\n .list.mobile {\n width: var(--image-width, 90px);\n height: 90px;\n }\n\n /** tile-list-compact view */\n .container.list-compact {\n display: block;\n text-align: center;\n }\n\n .list-compact.desktop {\n width: 45px;\n height: 45px;\n }\n\n .list-compact.mobile {\n width: 30px;\n height: 30px;\n }\n `;\n }\n}\n"]}
@@ -1,39 +1,39 @@
1
- import { CSSResultGroup, LitElement } from 'lit';
2
- import type { TileModel } from '../models';
3
- export declare class ItemImage extends LitElement {
4
- model?: TileModel;
5
- baseImageUrl?: string;
6
- isListTile: boolean;
7
- isCompactTile: boolean;
8
- loggedIn: boolean;
9
- private isWaveform;
10
- private isNotFound;
11
- private baseImage;
12
- render(): import("lit-html").TemplateResult<1>;
13
- private get imageTemplate();
14
- /**
15
- * Helpers
16
- */
17
- private get imageSrc();
18
- private get notFoundSrc();
19
- private get hashBasedGradient();
20
- private hashStrToInt;
21
- /**
22
- * Classes
23
- */
24
- private get itemBaseClass();
25
- private get itemImageClass();
26
- /**
27
- * Helper function to determine if account tile image
28
- */
29
- private get isAccountImage();
30
- /**
31
- * Event listener sets isWaveform true if image is waveform
32
- */
33
- private onLoad;
34
- private onError;
35
- /**
36
- * CSS
37
- */
38
- static get styles(): CSSResultGroup;
39
- }
1
+ import { CSSResultGroup, LitElement } from 'lit';
2
+ import type { TileModel } from '../models';
3
+ export declare class ItemImage extends LitElement {
4
+ model?: TileModel;
5
+ baseImageUrl?: string;
6
+ isListTile: boolean;
7
+ isCompactTile: boolean;
8
+ loggedIn: boolean;
9
+ private isWaveform;
10
+ private isNotFound;
11
+ private baseImage;
12
+ render(): import("lit").TemplateResult<1>;
13
+ private get imageTemplate();
14
+ /**
15
+ * Helpers
16
+ */
17
+ private get imageSrc();
18
+ private get notFoundSrc();
19
+ private get hashBasedGradient();
20
+ private hashStrToInt;
21
+ /**
22
+ * Classes
23
+ */
24
+ private get itemBaseClass();
25
+ private get itemImageClass();
26
+ /**
27
+ * Helper function to determine if account tile image
28
+ */
29
+ private get isAccountImage();
30
+ /**
31
+ * Event listener sets isWaveform true if image is waveform
32
+ */
33
+ private onLoad;
34
+ private onError;
35
+ /**
36
+ * CSS
37
+ */
38
+ static get styles(): CSSResultGroup;
39
+ }
@@ -1,28 +1,28 @@
1
- import { __decorate } from "tslib";
2
- import { css, html, LitElement, nothing } from 'lit';
3
- import { customElement, property, query, state } from 'lit/decorators.js';
4
- import { classMap } from 'lit/directives/class-map.js';
5
- import { baseItemImageStyles, waveformGradientStyles, } from '../styles/item-image-styles';
6
- import { searchIcon } from '../assets/img/icons/mediatype/search';
7
- let ItemImage = class ItemImage extends LitElement {
8
- constructor() {
9
- super(...arguments);
10
- this.isListTile = false;
11
- this.isCompactTile = false;
12
- this.loggedIn = false;
13
- this.isWaveform = false;
14
- this.isNotFound = false;
15
- }
16
- render() {
1
+ import { __decorate } from "tslib";
2
+ import { css, html, LitElement, nothing } from 'lit';
3
+ import { customElement, property, query, state } from 'lit/decorators.js';
4
+ import { classMap } from 'lit/directives/class-map.js';
5
+ import { baseItemImageStyles, waveformGradientStyles, } from '../styles/item-image-styles';
6
+ import { searchIcon } from '../assets/img/icons/mediatype/search';
7
+ let ItemImage = class ItemImage extends LitElement {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.isListTile = false;
11
+ this.isCompactTile = false;
12
+ this.loggedIn = false;
13
+ this.isWaveform = false;
14
+ this.isNotFound = false;
15
+ }
16
+ render() {
17
17
  return html `
18
18
  <div class=${classMap(this.itemBaseClass)}>${this.imageTemplate}</div>
19
- `;
20
- }
21
- get imageTemplate() {
22
- var _a;
23
- if (((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'search') {
24
- return html `${searchIcon}`;
25
- }
19
+ `;
20
+ }
21
+ get imageTemplate() {
22
+ var _a;
23
+ if (((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'search') {
24
+ return html `${searchIcon}`;
25
+ }
26
26
  return html `
27
27
  <img
28
28
  class=${classMap(this.itemImageClass)}
@@ -31,105 +31,105 @@ let ItemImage = class ItemImage extends LitElement {
31
31
  @load=${this.onLoad}
32
32
  @error=${this.onError}
33
33
  />
34
- `;
35
- }
36
- /**
37
- * Helpers
38
- */
39
- get imageSrc() {
40
- var _a, _b;
41
- if (this.isNotFound)
42
- return this.notFoundSrc;
43
- // Use the correct image for web capture tiles, if possible
44
- if (((_a = this.model) === null || _a === void 0 ? void 0 : _a.captureDates) && this.model.identifier) {
45
- try {
46
- const url = new URL(this.model.identifier);
47
- const domain = encodeURIComponent(url.hostname);
48
- return this.baseImageUrl
49
- ? `https://web.archive.org/thumb/${domain}?generate=1`
50
- : nothing;
51
- }
52
- catch (err) {
53
- return `${this.baseImageUrl}/images/notfound.png`;
54
- }
55
- }
56
- // Don't try to load invalid image URLs
57
- return this.baseImageUrl && ((_b = this.model) === null || _b === void 0 ? void 0 : _b.identifier)
58
- ? `${this.baseImageUrl}/services/img/${this.model.identifier}`
59
- : nothing;
60
- }
61
- get notFoundSrc() {
62
- return this.baseImageUrl
63
- ? `${this.baseImageUrl}/images/notfound.png`
64
- : nothing;
65
- }
66
- get hashBasedGradient() {
67
- var _a;
68
- if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.identifier)) {
69
- return 'waveform-grad0';
70
- }
71
- const gradient = this.hashStrToInt(this.model.identifier) % 6; // returns 0-5
72
- return `waveform-grad${gradient}`;
73
- }
74
- hashStrToInt(str) {
75
- return str
76
- .split('')
77
- .reduce((acc, char) => acc + char.charCodeAt(0), 0);
78
- }
79
- /**
80
- * Classes
81
- */
82
- get itemBaseClass() {
83
- var _a;
84
- return {
85
- 'drop-shadow': true,
86
- 'list-box': this.isListTile,
87
- 'search-image': ((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'search',
88
- [this.hashBasedGradient]: this.isWaveform,
89
- };
90
- }
91
- get itemImageClass() {
92
- var _a, _b, _c;
93
- const toBlur = ((_a = this.model) === null || _a === void 0 ? void 0 : _a.contentWarning) || ((_b = this.model) === null || _b === void 0 ? void 0 : _b.loginRequired);
94
- return {
95
- contain: !this.isCompactTile && !this.isWaveform,
96
- cover: this.isCompactTile,
97
- blur: toBlur || false,
98
- waveform: this.isWaveform,
99
- 'account-image': this.isAccountImage,
100
- 'collection-image': ((_c = this.model) === null || _c === void 0 ? void 0 : _c.mediatype) === 'collection', // for collection tile image
101
- };
102
- }
103
- /**
104
- * Helper function to determine if account tile image
105
- */
106
- get isAccountImage() {
107
- var _a;
108
- return (((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'account' &&
109
- !this.isCompactTile &&
110
- !this.isListTile);
111
- }
112
- /**
113
- * Event listener sets isWaveform true if image is waveform
114
- */
115
- onLoad() {
116
- var _a, _b;
117
- if ((((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'audio' ||
118
- ((_b = this.model) === null || _b === void 0 ? void 0 : _b.mediatype) === 'etree') &&
119
- this.baseImage.naturalWidth / this.baseImage.naturalHeight === 4) {
120
- this.isWaveform = true;
121
- }
122
- }
123
- onError() {
124
- this.isNotFound = true;
125
- }
126
- /**
127
- * CSS
128
- */
129
- static get styles() {
130
- return [
131
- baseItemImageStyles,
132
- waveformGradientStyles,
34
+ `;
35
+ }
36
+ /**
37
+ * Helpers
38
+ */
39
+ get imageSrc() {
40
+ var _a, _b;
41
+ if (this.isNotFound)
42
+ return this.notFoundSrc;
43
+ // Use the correct image for web capture tiles, if possible
44
+ if (((_a = this.model) === null || _a === void 0 ? void 0 : _a.captureDates) && this.model.identifier) {
45
+ try {
46
+ const url = new URL(this.model.identifier);
47
+ const domain = encodeURIComponent(url.hostname);
48
+ return this.baseImageUrl
49
+ ? `https://web.archive.org/thumb/${domain}?generate=1`
50
+ : nothing;
51
+ }
52
+ catch (_c) {
53
+ return `${this.baseImageUrl}/images/notfound.png`;
54
+ }
55
+ }
56
+ // Don't try to load invalid image URLs
57
+ return this.baseImageUrl && ((_b = this.model) === null || _b === void 0 ? void 0 : _b.identifier)
58
+ ? `${this.baseImageUrl}/services/img/${this.model.identifier}`
59
+ : nothing;
60
+ }
61
+ get notFoundSrc() {
62
+ return this.baseImageUrl
63
+ ? `${this.baseImageUrl}/images/notfound.png`
64
+ : nothing;
65
+ }
66
+ get hashBasedGradient() {
67
+ var _a;
68
+ if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.identifier)) {
69
+ return 'waveform-grad0';
70
+ }
71
+ const gradient = this.hashStrToInt(this.model.identifier) % 6; // returns 0-5
72
+ return `waveform-grad${gradient}`;
73
+ }
74
+ hashStrToInt(str) {
75
+ return str
76
+ .split('')
77
+ .reduce((acc, char) => acc + char.charCodeAt(0), 0);
78
+ }
79
+ /**
80
+ * Classes
81
+ */
82
+ get itemBaseClass() {
83
+ var _a;
84
+ return {
85
+ 'drop-shadow': true,
86
+ 'list-box': this.isListTile,
87
+ 'search-image': ((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'search',
88
+ [this.hashBasedGradient]: this.isWaveform,
89
+ };
90
+ }
91
+ get itemImageClass() {
92
+ var _a, _b, _c;
93
+ const toBlur = ((_a = this.model) === null || _a === void 0 ? void 0 : _a.contentWarning) || ((_b = this.model) === null || _b === void 0 ? void 0 : _b.loginRequired);
94
+ return {
95
+ contain: !this.isCompactTile && !this.isWaveform,
96
+ cover: this.isCompactTile,
97
+ blur: toBlur || false,
98
+ waveform: this.isWaveform,
99
+ 'account-image': this.isAccountImage, // for account tile image
100
+ 'collection-image': ((_c = this.model) === null || _c === void 0 ? void 0 : _c.mediatype) === 'collection', // for collection tile image
101
+ };
102
+ }
103
+ /**
104
+ * Helper function to determine if account tile image
105
+ */
106
+ get isAccountImage() {
107
+ var _a;
108
+ return (((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'account' &&
109
+ !this.isCompactTile &&
110
+ !this.isListTile);
111
+ }
112
+ /**
113
+ * Event listener sets isWaveform true if image is waveform
114
+ */
115
+ onLoad() {
116
+ var _a, _b;
117
+ if ((((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'audio' ||
118
+ ((_b = this.model) === null || _b === void 0 ? void 0 : _b.mediatype) === 'etree') &&
119
+ this.baseImage.naturalWidth / this.baseImage.naturalHeight === 4) {
120
+ this.isWaveform = true;
121
+ }
122
+ }
123
+ onError() {
124
+ this.isNotFound = true;
125
+ }
126
+ /**
127
+ * CSS
128
+ */
129
+ static get styles() {
130
+ return [
131
+ baseItemImageStyles,
132
+ waveformGradientStyles,
133
133
  css `
134
134
  img {
135
135
  height: var(--imgHeight, 16rem);
@@ -148,36 +148,36 @@ let ItemImage = class ItemImage extends LitElement {
148
148
  height: 10rem;
149
149
  width: 10rem;
150
150
  }
151
- `,
152
- ];
153
- }
154
- };
155
- __decorate([
156
- property({ type: Object })
157
- ], ItemImage.prototype, "model", void 0);
158
- __decorate([
159
- property({ type: String })
160
- ], ItemImage.prototype, "baseImageUrl", void 0);
161
- __decorate([
162
- property({ type: Boolean })
163
- ], ItemImage.prototype, "isListTile", void 0);
164
- __decorate([
165
- property({ type: Boolean })
166
- ], ItemImage.prototype, "isCompactTile", void 0);
167
- __decorate([
168
- property({ type: Boolean })
169
- ], ItemImage.prototype, "loggedIn", void 0);
170
- __decorate([
171
- state()
172
- ], ItemImage.prototype, "isWaveform", void 0);
173
- __decorate([
174
- state()
175
- ], ItemImage.prototype, "isNotFound", void 0);
176
- __decorate([
177
- query('img')
178
- ], ItemImage.prototype, "baseImage", void 0);
179
- ItemImage = __decorate([
180
- customElement('item-image')
181
- ], ItemImage);
182
- export { ItemImage };
151
+ `,
152
+ ];
153
+ }
154
+ };
155
+ __decorate([
156
+ property({ type: Object })
157
+ ], ItemImage.prototype, "model", void 0);
158
+ __decorate([
159
+ property({ type: String })
160
+ ], ItemImage.prototype, "baseImageUrl", void 0);
161
+ __decorate([
162
+ property({ type: Boolean })
163
+ ], ItemImage.prototype, "isListTile", void 0);
164
+ __decorate([
165
+ property({ type: Boolean })
166
+ ], ItemImage.prototype, "isCompactTile", void 0);
167
+ __decorate([
168
+ property({ type: Boolean })
169
+ ], ItemImage.prototype, "loggedIn", void 0);
170
+ __decorate([
171
+ state()
172
+ ], ItemImage.prototype, "isWaveform", void 0);
173
+ __decorate([
174
+ state()
175
+ ], ItemImage.prototype, "isNotFound", void 0);
176
+ __decorate([
177
+ query('img')
178
+ ], ItemImage.prototype, "baseImage", void 0);
179
+ ItemImage = __decorate([
180
+ customElement('item-image')
181
+ ], ItemImage);
182
+ export { ItemImage };
183
183
  //# sourceMappingURL=item-image.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"item-image.js","sourceRoot":"","sources":["../../../src/tiles/item-image.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, CSSResultGroup, html, LitElement, nothing } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { ClassInfo, classMap } from 'lit/directives/class-map.js';\n\nimport type { TileModel } from '../models';\n\nimport {\n baseItemImageStyles,\n waveformGradientStyles,\n} from '../styles/item-image-styles';\nimport { searchIcon } from '../assets/img/icons/mediatype/search';\n\n@customElement('item-image')\nexport class ItemImage extends LitElement {\n @property({ type: Object }) model?: TileModel;\n\n @property({ type: String }) baseImageUrl?: string;\n\n @property({ type: Boolean }) isListTile = false;\n\n @property({ type: Boolean }) isCompactTile = false;\n\n @property({ type: Boolean }) loggedIn = false;\n\n @state() private isWaveform = false;\n\n @state() private isNotFound = false;\n\n @query('img') private baseImage!: HTMLImageElement;\n\n render() {\n return html`\n <div class=${classMap(this.itemBaseClass)}>${this.imageTemplate}</div>\n `;\n }\n\n private get imageTemplate() {\n if (this.model?.mediatype === 'search') {\n return html`${searchIcon}`;\n }\n\n return html`\n <img\n class=${classMap(this.itemImageClass)}\n src=\"${this.imageSrc}\"\n alt=\"\"\n @load=${this.onLoad}\n @error=${this.onError}\n />\n `;\n }\n\n /**\n * Helpers\n */\n private get imageSrc() {\n if (this.isNotFound) return this.notFoundSrc;\n\n // Use the correct image for web capture tiles, if possible\n if (this.model?.captureDates && this.model.identifier) {\n try {\n const url = new URL(this.model.identifier);\n const domain = encodeURIComponent(url.hostname);\n return this.baseImageUrl\n ? `https://web.archive.org/thumb/${domain}?generate=1`\n : nothing;\n } catch (err) {\n return `${this.baseImageUrl}/images/notfound.png`;\n }\n }\n\n // Don't try to load invalid image URLs\n return this.baseImageUrl && this.model?.identifier\n ? `${this.baseImageUrl}/services/img/${this.model.identifier}`\n : nothing;\n }\n\n private get notFoundSrc() {\n return this.baseImageUrl\n ? `${this.baseImageUrl}/images/notfound.png`\n : nothing;\n }\n\n private get hashBasedGradient() {\n if (!this.model?.identifier) {\n return 'waveform-grad0';\n }\n const gradient = this.hashStrToInt(this.model.identifier) % 6; // returns 0-5\n return `waveform-grad${gradient}`;\n }\n\n private hashStrToInt(str: string): number {\n return str\n .split('')\n .reduce((acc: number, char: string) => acc + char.charCodeAt(0), 0);\n }\n\n /**\n * Classes\n */\n private get itemBaseClass(): ClassInfo {\n return {\n 'drop-shadow': true,\n 'list-box': this.isListTile,\n 'search-image': this.model?.mediatype === 'search',\n [this.hashBasedGradient]: this.isWaveform,\n };\n }\n\n private get itemImageClass(): ClassInfo {\n const toBlur = this.model?.contentWarning || this.model?.loginRequired;\n\n return {\n contain: !this.isCompactTile && !this.isWaveform,\n cover: this.isCompactTile,\n blur: toBlur || false,\n waveform: this.isWaveform,\n 'account-image': this.isAccountImage, // for account tile image\n 'collection-image': this.model?.mediatype === 'collection', // for collection tile image\n };\n }\n\n /**\n * Helper function to determine if account tile image\n */\n private get isAccountImage() {\n return (\n this.model?.mediatype === 'account' &&\n !this.isCompactTile &&\n !this.isListTile\n );\n }\n\n /**\n * Event listener sets isWaveform true if image is waveform\n */\n private onLoad() {\n if (\n (this.model?.mediatype === 'audio' ||\n this.model?.mediatype === 'etree') &&\n this.baseImage.naturalWidth / this.baseImage.naturalHeight === 4\n ) {\n this.isWaveform = true;\n }\n }\n\n private onError() {\n this.isNotFound = true;\n }\n\n /**\n * CSS\n */\n static get styles(): CSSResultGroup {\n return [\n baseItemImageStyles,\n waveformGradientStyles,\n css`\n img {\n height: var(--imgHeight, 16rem);\n width: var(--imgWidth, 16rem);\n }\n\n .search-image {\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgb(245, 245, 247);\n border-radius: 4px;\n }\n\n svg {\n height: 10rem;\n width: 10rem;\n }\n `,\n ];\n }\n}\n"]}
1
+ {"version":3,"file":"item-image.js","sourceRoot":"","sources":["../../../src/tiles/item-image.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAkB,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAa,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAIlE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAG3D,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,UAAU;IAAlC;;QAKwB,eAAU,GAAG,KAAK,CAAC;QAEnB,kBAAa,GAAG,KAAK,CAAC;QAEtB,aAAQ,GAAG,KAAK,CAAC;QAE7B,eAAU,GAAG,KAAK,CAAC;QAEnB,eAAU,GAAG,KAAK,CAAC;IAwJtC,CAAC;IApJC,MAAM;QACJ,OAAO,IAAI,CAAA;mBACI,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,aAAa;KAChE,CAAC;IACJ,CAAC;IAED,IAAY,aAAa;;QACvB,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS,MAAK,QAAQ,EAAE,CAAC;YACvC,OAAO,IAAI,CAAA,GAAG,UAAU,EAAE,CAAC;QAC7B,CAAC;QAED,OAAO,IAAI,CAAA;;gBAEC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;eAC9B,IAAI,CAAC,QAAQ;;gBAEZ,IAAI,CAAC,MAAM;iBACV,IAAI,CAAC,OAAO;;KAExB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAY,QAAQ;;QAClB,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAE7C,2DAA2D;QAC3D,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,YAAY,KAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACtD,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAChD,OAAO,IAAI,CAAC,YAAY;oBACtB,CAAC,CAAC,iCAAiC,MAAM,aAAa;oBACtD,CAAC,CAAC,OAAO,CAAC;YACd,CAAC;YAAC,WAAM,CAAC;gBACP,OAAO,GAAG,IAAI,CAAC,YAAY,sBAAsB,CAAC;YACpD,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,OAAO,IAAI,CAAC,YAAY,KAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,UAAU,CAAA;YAChD,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,iBAAiB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YAC9D,CAAC,CAAC,OAAO,CAAC;IACd,CAAC;IAED,IAAY,WAAW;QACrB,OAAO,IAAI,CAAC,YAAY;YACtB,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,sBAAsB;YAC5C,CAAC,CAAC,OAAO,CAAC;IACd,CAAC;IAED,IAAY,iBAAiB;;QAC3B,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,UAAU,CAAA,EAAE,CAAC;YAC5B,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc;QAC7E,OAAO,gBAAgB,QAAQ,EAAE,CAAC;IACpC,CAAC;IAEO,YAAY,CAAC,GAAW;QAC9B,OAAO,GAAG;aACP,KAAK,CAAC,EAAE,CAAC;aACT,MAAM,CAAC,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,IAAY,aAAa;;QACvB,OAAO;YACL,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS,MAAK,QAAQ;YAClD,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,UAAU;SAC1C,CAAC;IACJ,CAAC;IAED,IAAY,cAAc;;QACxB,MAAM,MAAM,GAAG,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,cAAc,MAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,aAAa,CAAA,CAAC;QAEvE,OAAO;YACL,OAAO,EAAE,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU;YAChD,KAAK,EAAE,IAAI,CAAC,aAAa;YACzB,IAAI,EAAE,MAAM,IAAI,KAAK;YACrB,QAAQ,EAAE,IAAI,CAAC,UAAU;YACzB,eAAe,EAAE,IAAI,CAAC,cAAc,EAAE,yBAAyB;YAC/D,kBAAkB,EAAE,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS,MAAK,YAAY,EAAE,4BAA4B;SACzF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAY,cAAc;;QACxB,OAAO,CACL,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS,MAAK,SAAS;YACnC,CAAC,IAAI,CAAC,aAAa;YACnB,CAAC,IAAI,CAAC,UAAU,CACjB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,MAAM;;QACZ,IACE,CAAC,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS,MAAK,OAAO;YAChC,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS,MAAK,OAAO,CAAC;YACpC,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,KAAK,CAAC,EAChE,CAAC;YACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,MAAM,KAAK,MAAM;QACf,OAAO;YACL,mBAAmB;YACnB,sBAAsB;YACtB,GAAG,CAAA;;;;;;;;;;;;;;;;;;OAkBF;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AApK6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCAAmB;AAElB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CAAuB;AAErB;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6CAAoB;AAEnB;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gDAAuB;AAEtB;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;2CAAkB;AAE7B;IAAhB,KAAK,EAAE;6CAA4B;AAEnB;IAAhB,KAAK,EAAE;6CAA4B;AAEd;IAArB,KAAK,CAAC,KAAK,CAAC;4CAAsC;AAfxC,SAAS;IADrB,aAAa,CAAC,YAAY,CAAC;GACf,SAAS,CAqKrB","sourcesContent":["import { css, CSSResultGroup, html, LitElement, nothing } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { ClassInfo, classMap } from 'lit/directives/class-map.js';\n\nimport type { TileModel } from '../models';\n\nimport {\n baseItemImageStyles,\n waveformGradientStyles,\n} from '../styles/item-image-styles';\nimport { searchIcon } from '../assets/img/icons/mediatype/search';\n\n@customElement('item-image')\nexport class ItemImage extends LitElement {\n @property({ type: Object }) model?: TileModel;\n\n @property({ type: String }) baseImageUrl?: string;\n\n @property({ type: Boolean }) isListTile = false;\n\n @property({ type: Boolean }) isCompactTile = false;\n\n @property({ type: Boolean }) loggedIn = false;\n\n @state() private isWaveform = false;\n\n @state() private isNotFound = false;\n\n @query('img') private baseImage!: HTMLImageElement;\n\n render() {\n return html`\n <div class=${classMap(this.itemBaseClass)}>${this.imageTemplate}</div>\n `;\n }\n\n private get imageTemplate() {\n if (this.model?.mediatype === 'search') {\n return html`${searchIcon}`;\n }\n\n return html`\n <img\n class=${classMap(this.itemImageClass)}\n src=\"${this.imageSrc}\"\n alt=\"\"\n @load=${this.onLoad}\n @error=${this.onError}\n />\n `;\n }\n\n /**\n * Helpers\n */\n private get imageSrc() {\n if (this.isNotFound) return this.notFoundSrc;\n\n // Use the correct image for web capture tiles, if possible\n if (this.model?.captureDates && this.model.identifier) {\n try {\n const url = new URL(this.model.identifier);\n const domain = encodeURIComponent(url.hostname);\n return this.baseImageUrl\n ? `https://web.archive.org/thumb/${domain}?generate=1`\n : nothing;\n } catch {\n return `${this.baseImageUrl}/images/notfound.png`;\n }\n }\n\n // Don't try to load invalid image URLs\n return this.baseImageUrl && this.model?.identifier\n ? `${this.baseImageUrl}/services/img/${this.model.identifier}`\n : nothing;\n }\n\n private get notFoundSrc() {\n return this.baseImageUrl\n ? `${this.baseImageUrl}/images/notfound.png`\n : nothing;\n }\n\n private get hashBasedGradient() {\n if (!this.model?.identifier) {\n return 'waveform-grad0';\n }\n const gradient = this.hashStrToInt(this.model.identifier) % 6; // returns 0-5\n return `waveform-grad${gradient}`;\n }\n\n private hashStrToInt(str: string): number {\n return str\n .split('')\n .reduce((acc: number, char: string) => acc + char.charCodeAt(0), 0);\n }\n\n /**\n * Classes\n */\n private get itemBaseClass(): ClassInfo {\n return {\n 'drop-shadow': true,\n 'list-box': this.isListTile,\n 'search-image': this.model?.mediatype === 'search',\n [this.hashBasedGradient]: this.isWaveform,\n };\n }\n\n private get itemImageClass(): ClassInfo {\n const toBlur = this.model?.contentWarning || this.model?.loginRequired;\n\n return {\n contain: !this.isCompactTile && !this.isWaveform,\n cover: this.isCompactTile,\n blur: toBlur || false,\n waveform: this.isWaveform,\n 'account-image': this.isAccountImage, // for account tile image\n 'collection-image': this.model?.mediatype === 'collection', // for collection tile image\n };\n }\n\n /**\n * Helper function to determine if account tile image\n */\n private get isAccountImage() {\n return (\n this.model?.mediatype === 'account' &&\n !this.isCompactTile &&\n !this.isListTile\n );\n }\n\n /**\n * Event listener sets isWaveform true if image is waveform\n */\n private onLoad() {\n if (\n (this.model?.mediatype === 'audio' ||\n this.model?.mediatype === 'etree') &&\n this.baseImage.naturalWidth / this.baseImage.naturalHeight === 4\n ) {\n this.isWaveform = true;\n }\n }\n\n private onError() {\n this.isNotFound = true;\n }\n\n /**\n * CSS\n */\n static get styles(): CSSResultGroup {\n return [\n baseItemImageStyles,\n waveformGradientStyles,\n css`\n img {\n height: var(--imgHeight, 16rem);\n width: var(--imgWidth, 16rem);\n }\n\n .search-image {\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgb(245, 245, 247);\n border-radius: 4px;\n }\n\n svg {\n height: 10rem;\n width: 10rem;\n }\n `,\n ];\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
- import { BaseTileComponent } from '../base-tile-component';
2
- export declare class TileListCompactHeader extends BaseTileComponent {
3
- render(): import("lit-html").TemplateResult<1>;
4
- private get classSize();
5
- static get styles(): import("lit").CSSResult;
6
- }
1
+ import { BaseTileComponent } from '../base-tile-component';
2
+ export declare class TileListCompactHeader extends BaseTileComponent {
3
+ render(): import("lit").TemplateResult<1>;
4
+ private get classSize();
5
+ static get styles(): import("lit").CSSResult;
6
+ }
@@ -1,23 +1,23 @@
1
- import { __decorate } from "tslib";
2
- import { css, html } from 'lit';
3
- import { customElement } from 'lit/decorators.js';
4
- import { msg } from '@lit/localize';
5
- import { BaseTileComponent } from '../base-tile-component';
6
- let TileListCompactHeader = class TileListCompactHeader extends BaseTileComponent {
7
- /*
8
- * Reactive properties inherited from BaseTileComponent:
9
- * - model?: TileModel;
10
- * - currentWidth?: number;
11
- * - currentHeight?: number;
12
- * - baseNavigationUrl?: string;
13
- * - baseImageUrl?: string;
14
- * - collectionPagePath?: string;
15
- * - sortParam: SortParam | null = null;
16
- * - creatorFilter?: string;
17
- * - mobileBreakpoint?: number;
18
- * - loggedIn = false;
19
- */
20
- render() {
1
+ import { __decorate } from "tslib";
2
+ import { css, html } from 'lit';
3
+ import { customElement } from 'lit/decorators.js';
4
+ import { msg } from '@lit/localize';
5
+ import { BaseTileComponent } from '../base-tile-component';
6
+ let TileListCompactHeader = class TileListCompactHeader extends BaseTileComponent {
7
+ /*
8
+ * Reactive properties inherited from BaseTileComponent:
9
+ * - model?: TileModel;
10
+ * - currentWidth?: number;
11
+ * - currentHeight?: number;
12
+ * - baseNavigationUrl?: string;
13
+ * - baseImageUrl?: string;
14
+ * - collectionPagePath?: string;
15
+ * - sortParam: SortParam | null = null;
16
+ * - creatorFilter?: string;
17
+ * - mobileBreakpoint?: number;
18
+ * - loggedIn = false;
19
+ */
20
+ render() {
21
21
  return html `
22
22
  <div id="list-line-header" class="${this.classSize}">
23
23
  <div id="thumb"></div>
@@ -29,17 +29,17 @@ let TileListCompactHeader = class TileListCompactHeader extends BaseTileComponen
29
29
  <div id="icon">${msg('Type')}</div>
30
30
  <div id="views">${msg('Views')}</div>
31
31
  </div>
32
- `;
33
- }
34
- get classSize() {
35
- if (this.mobileBreakpoint &&
36
- this.currentWidth &&
37
- this.currentWidth < this.mobileBreakpoint) {
38
- return 'mobile';
39
- }
40
- return 'desktop';
41
- }
42
- static get styles() {
32
+ `;
33
+ }
34
+ get classSize() {
35
+ if (this.mobileBreakpoint &&
36
+ this.currentWidth &&
37
+ this.currentWidth < this.mobileBreakpoint) {
38
+ return 'mobile';
39
+ }
40
+ return 'desktop';
41
+ }
42
+ static get styles() {
43
43
  return css `
44
44
  html {
45
45
  font-size: unset;
@@ -74,11 +74,11 @@ let TileListCompactHeader = class TileListCompactHeader extends BaseTileComponen
74
74
  #list-line-header.desktop {
75
75
  grid-template-columns: 51px 3fr 2fr 95px 30px 60px;
76
76
  }
77
- `;
78
- }
79
- };
80
- TileListCompactHeader = __decorate([
81
- customElement('tile-list-compact-header')
82
- ], TileListCompactHeader);
83
- export { TileListCompactHeader };
77
+ `;
78
+ }
79
+ };
80
+ TileListCompactHeader = __decorate([
81
+ customElement('tile-list-compact-header')
82
+ ], TileListCompactHeader);
83
+ export { TileListCompactHeader };
84
84
  //# sourceMappingURL=tile-list-compact-header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tile-list-compact-header.js","sourceRoot":"","sources":["../../../../src/tiles/list/tile-list-compact-header.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,IAAa,qBAAqB,GAAlC,MAAa,qBAAsB,SAAQ,iBAAiB;IAC1D;;;;;;;;;;;;OAYG;IAEH,MAAM;QACJ,OAAO,IAAI,CAAA;0CAC2B,IAAI,CAAC,SAAS;;0BAE9B,GAAG,CAAC,OAAO,CAAC;4BACV,GAAG,CAAC,SAAS,CAAC;;YAE9B,IAAI,CAAC,oBAAoB,CAAC,SAAS,IAAI,GAAG,CAAC,WAAW,CAAC;;yBAE1C,GAAG,CAAC,MAAM,CAAC;0BACV,GAAG,CAAC,OAAO,CAAC;;KAEjC,CAAC;IACJ,CAAC;IAED,IAAY,SAAS;QACnB,IACE,IAAI,CAAC,gBAAgB;YACrB,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,EACzC;YACA,OAAO,QAAQ,CAAC;SACjB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkCT,CAAC;IACJ,CAAC;CACF,CAAA;AA9EY,qBAAqB;IADjC,aAAa,CAAC,0BAA0B,CAAC;GAC7B,qBAAqB,CA8EjC;SA9EY,qBAAqB","sourcesContent":["import { css, html } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nimport { msg } from '@lit/localize';\nimport { BaseTileComponent } from '../base-tile-component';\n\n@customElement('tile-list-compact-header')\nexport class TileListCompactHeader extends BaseTileComponent {\n /*\n * Reactive properties inherited from BaseTileComponent:\n * - model?: TileModel;\n * - currentWidth?: number;\n * - currentHeight?: number;\n * - baseNavigationUrl?: string;\n * - baseImageUrl?: string;\n * - collectionPagePath?: string;\n * - sortParam: SortParam | null = null;\n * - creatorFilter?: string;\n * - mobileBreakpoint?: number;\n * - loggedIn = false;\n */\n\n render() {\n return html`\n <div id=\"list-line-header\" class=\"${this.classSize}\">\n <div id=\"thumb\"></div>\n <div id=\"title\">${msg('Title')}</div>\n <div id=\"creator\">${msg('Creator')}</div>\n <div id=\"date\">\n ${this.displayValueProvider.dateLabel || msg('Published')}\n </div>\n <div id=\"icon\">${msg('Type')}</div>\n <div id=\"views\">${msg('Views')}</div>\n </div>\n `;\n }\n\n private get classSize(): string {\n if (\n this.mobileBreakpoint &&\n this.currentWidth &&\n this.currentWidth < this.mobileBreakpoint\n ) {\n return 'mobile';\n }\n return 'desktop';\n }\n\n static get styles() {\n return css`\n html {\n font-size: unset;\n }\n\n div {\n font-size: 14px;\n font-weight: bold;\n line-height: 20px;\n }\n\n .mobile #views {\n display: none;\n }\n\n #views {\n text-align: right;\n padding-right: 8px;\n }\n\n #list-line-header {\n display: grid;\n column-gap: 10px;\n align-items: flex-end;\n padding-bottom: 2px;\n }\n\n #list-line-header.mobile {\n grid-template-columns: 36px 3fr 2fr 68px 35px;\n }\n\n #list-line-header.desktop {\n grid-template-columns: 51px 3fr 2fr 95px 30px 60px;\n }\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"tile-list-compact-header.js","sourceRoot":"","sources":["../../../../src/tiles/list/tile-list-compact-header.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGpD,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,iBAAiB;IAC1D;;;;;;;;;;;;OAYG;IAEH,MAAM;QACJ,OAAO,IAAI,CAAA;0CAC2B,IAAI,CAAC,SAAS;;0BAE9B,GAAG,CAAC,OAAO,CAAC;4BACV,GAAG,CAAC,SAAS,CAAC;;YAE9B,IAAI,CAAC,oBAAoB,CAAC,SAAS,IAAI,GAAG,CAAC,WAAW,CAAC;;yBAE1C,GAAG,CAAC,MAAM,CAAC;0BACV,GAAG,CAAC,OAAO,CAAC;;KAEjC,CAAC;IACJ,CAAC;IAED,IAAY,SAAS;QACnB,IACE,IAAI,CAAC,gBAAgB;YACrB,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,EACzC,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkCT,CAAC;IACJ,CAAC;CACF,CAAA;AA9EY,qBAAqB;IADjC,aAAa,CAAC,0BAA0B,CAAC;GAC7B,qBAAqB,CA8EjC","sourcesContent":["import { css, html } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nimport { msg } from '@lit/localize';\nimport { BaseTileComponent } from '../base-tile-component';\n\n@customElement('tile-list-compact-header')\nexport class TileListCompactHeader extends BaseTileComponent {\n /*\n * Reactive properties inherited from BaseTileComponent:\n * - model?: TileModel;\n * - currentWidth?: number;\n * - currentHeight?: number;\n * - baseNavigationUrl?: string;\n * - baseImageUrl?: string;\n * - collectionPagePath?: string;\n * - sortParam: SortParam | null = null;\n * - creatorFilter?: string;\n * - mobileBreakpoint?: number;\n * - loggedIn = false;\n */\n\n render() {\n return html`\n <div id=\"list-line-header\" class=\"${this.classSize}\">\n <div id=\"thumb\"></div>\n <div id=\"title\">${msg('Title')}</div>\n <div id=\"creator\">${msg('Creator')}</div>\n <div id=\"date\">\n ${this.displayValueProvider.dateLabel || msg('Published')}\n </div>\n <div id=\"icon\">${msg('Type')}</div>\n <div id=\"views\">${msg('Views')}</div>\n </div>\n `;\n }\n\n private get classSize(): string {\n if (\n this.mobileBreakpoint &&\n this.currentWidth &&\n this.currentWidth < this.mobileBreakpoint\n ) {\n return 'mobile';\n }\n return 'desktop';\n }\n\n static get styles() {\n return css`\n html {\n font-size: unset;\n }\n\n div {\n font-size: 14px;\n font-weight: bold;\n line-height: 20px;\n }\n\n .mobile #views {\n display: none;\n }\n\n #views {\n text-align: right;\n padding-right: 8px;\n }\n\n #list-line-header {\n display: grid;\n column-gap: 10px;\n align-items: flex-end;\n padding-bottom: 2px;\n }\n\n #list-line-header.mobile {\n grid-template-columns: 36px 3fr 2fr 68px 35px;\n }\n\n #list-line-header.desktop {\n grid-template-columns: 51px 3fr 2fr 95px 30px 60px;\n }\n `;\n }\n}\n"]}
@@ -1,19 +1,19 @@
1
- import { BaseTileComponent } from '../base-tile-component';
2
- import '../image-block';
3
- import '../mediatype-icon';
4
- export declare class TileListCompact extends BaseTileComponent {
5
- render(): import("lit-html").TemplateResult<1>;
6
- private get href();
7
- private get creator();
8
- private get date();
9
- private get views();
10
- /**
11
- * Returns the active sort param if one is set, or the default sort param otherwise.
12
- */
13
- private get effectiveSort();
14
- private get classSize();
15
- private get dateFormatSize();
16
- private get formatSize();
17
- private get isSortedByDate();
18
- static get styles(): import("lit").CSSResult;
19
- }
1
+ import { BaseTileComponent } from '../base-tile-component';
2
+ import '../image-block';
3
+ import '../mediatype-icon';
4
+ export declare class TileListCompact extends BaseTileComponent {
5
+ render(): import("lit").TemplateResult<1>;
6
+ private get href();
7
+ private get creator();
8
+ private get date();
9
+ private get views();
10
+ /**
11
+ * Returns the active sort param if one is set, or the default sort param otherwise.
12
+ */
13
+ private get effectiveSort();
14
+ private get classSize();
15
+ private get dateFormatSize();
16
+ private get formatSize();
17
+ private get isSortedByDate();
18
+ static get styles(): import("lit").CSSResult;
19
+ }