@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":"hover-pane-controller.test.js","sourceRoot":"","sources":["../../../../test/tiles/hover/hover-pane-controller.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture } from '@open-wc/testing';\nimport { html, LitElement, nothing, TemplateResult } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport {\n HoverPaneController,\n HoverPaneControllerInterface,\n HoverPaneControllerOptions,\n HoverPaneProperties,\n HoverPaneProviderInterface,\n} from '../../../src/tiles/hover/hover-pane-controller';\nimport type { TileHoverPane } from '../../../src/tiles/hover/tile-hover-pane';\nimport { TileModel } from '../../../src/models';\n\n@customElement('host-element')\nclass HostElement extends LitElement implements HoverPaneProviderInterface {\n @property({ type: Object }) controllerOptions?: HoverPaneControllerOptions;\n\n @property({ type: Boolean }) suppressHoverPane: boolean = false;\n\n @query('tile-hover-pane') hoverPane?: TileHoverPane;\n\n controller?: HoverPaneControllerInterface;\n\n render(): TemplateResult {\n return html` ${this.controller?.getTemplate()} `;\n }\n\n protected firstUpdated(): void {\n this.controller = new HoverPaneController(this, this.controllerOptions);\n }\n\n getHoverPane(): HTMLElement | undefined {\n return this.suppressHoverPane ? undefined : this.hoverPane;\n }\n\n getHoverPaneProps(): HoverPaneProperties {\n const tileModel = new TileModel({});\n tileModel.checked = false;\n tileModel.collectionFilesCount = 1;\n tileModel.collections = ['foo', 'bar'];\n tileModel.collectionSize = 1;\n tileModel.commentCount = 1;\n tileModel.contentWarning = false;\n tileModel.creators = ['foo', 'bar'];\n tileModel.favCount = 1;\n tileModel.identifier = 'foo';\n tileModel.itemCount = 1;\n tileModel.loginRequired = false;\n tileModel.mediatype = 'data';\n tileModel.subjects = ['foo', 'bar'];\n tileModel.title = 'foo';\n tileModel.viewCount = 1;\n\n return {\n model: tileModel,\n loggedIn: false,\n sortParam: null,\n };\n }\n}\n\ndescribe('Hover Pane Controller', () => {\n let oldMatchMedia: typeof window.matchMedia;\n let oldOnTouchStart: typeof window.ontouchstart;\n\n before(() => {\n oldMatchMedia = window.matchMedia;\n oldOnTouchStart = window.ontouchstart;\n window.matchMedia = () => ({ matches: true } as MediaQueryList);\n window.ontouchstart = () => {};\n });\n\n after(() => {\n window.matchMedia = oldMatchMedia;\n window.ontouchstart = oldOnTouchStart;\n });\n\n it('should initially provide empty template', async () => {\n const host = await fixture<HostElement>(\n html`<host-element></host-element>`\n );\n expect(host.controller?.getTemplate()).to.equal(nothing);\n });\n\n it('should produce a hover pane template after mousemove, and hide it after mouseleave', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{ showDelay: 0, hideDelay: 0 }}\n ></host-element>`\n );\n\n host.dispatchEvent(new MouseEvent('mousemove'));\n // Need to wait a tick for the event handlers to run\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n expect(host.controller?.getTemplate()).not.to.equal(nothing); // Is a TemplateResult\n\n host.dispatchEvent(new MouseEvent('mouseleave'));\n // Need to wait for the fade out transition\n await new Promise(resolve => {\n setTimeout(resolve, 150);\n });\n\n expect(host.controller?.getTemplate()).to.equal(nothing);\n });\n\n it('should produce a hover pane template after mouseenter, even without mousemove', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{ showDelay: 0, hideDelay: 0 }}\n ></host-element>`\n );\n\n host.dispatchEvent(new MouseEvent('mouseenter'));\n // Need to wait a tick for the event handlers to run\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n expect(host.controller?.getTemplate()).not.to.equal(nothing); // Is a TemplateResult\n });\n\n it('should immediately fade back in if mouse enters while fading out', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{ showDelay: 0, hideDelay: 0 }}\n ></host-element>`\n );\n\n // Enter the host element and wait for the show handlers to run\n host.dispatchEvent(new MouseEvent('mousemove'));\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n // Leave the host element so it begins fading out, but not all the way\n host.dispatchEvent(new MouseEvent('mouseleave'));\n await new Promise(resolve => {\n setTimeout(resolve, 20);\n });\n\n // Re-enter the host element and wait long enough that it would disappear\n // if the hide were not cancelled\n host.dispatchEvent(new MouseEvent('mousemove'));\n await new Promise(resolve => {\n setTimeout(resolve, 150);\n });\n\n expect(host.controller?.getTemplate()).not.to.equal(nothing);\n });\n\n it('should flip hover pane if it would overflow the viewport', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{ showDelay: 0, hideDelay: 0 }}\n ></host-element>`\n );\n\n host.dispatchEvent(\n new MouseEvent('mousemove', { clientX: 800, clientY: 600 })\n );\n // Need to wait a tick for the event handlers to run\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n await host.updateComplete;\n\n expect(host.controller?.getTemplate()).not.to.equal(nothing);\n expect(host.getHoverPane()?.getBoundingClientRect()?.right).to.be.lessThan(\n window.innerWidth\n );\n expect(host.getHoverPane()?.getBoundingClientRect()?.bottom).to.be.lessThan(\n window.innerHeight\n );\n });\n\n it('should gracefully handle undefined hover pane from host element', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{ showDelay: 0, hideDelay: 0 }}\n ?suppressHoverPane=${true}\n ></host-element>`\n );\n\n host.dispatchEvent(new MouseEvent('mousemove'));\n // Need to wait a tick for the event handlers to run\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n expect(host.controller?.getTemplate()).not.to.equal(nothing);\n\n host.dispatchEvent(new MouseEvent('mouseleave'));\n await new Promise(resolve => {\n setTimeout(resolve, 20);\n });\n\n host.dispatchEvent(new MouseEvent('mousemove'));\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n host.dispatchEvent(new MouseEvent('mouseleave'));\n // Need to wait for the fade out transition\n await new Promise(resolve => {\n setTimeout(resolve, 150);\n });\n\n expect(host.controller?.getTemplate()).to.equal(nothing);\n });\n\n describe('Touch & long-press', () => {\n const getTouchStartEvent = (host: EventTarget) =>\n new TouchEvent('touchstart', {\n touches: [new Touch({ identifier: 0, target: host })],\n });\n\n it('should produce a hover pane after long press', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{\n showDelay: 0,\n longPressDelay: 0,\n enableLongPress: true,\n }}\n ></host-element>`\n );\n\n // Touch the host element and wait for the long press handlers to run\n host.dispatchEvent(getTouchStartEvent(host));\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n expect(host.controller?.getTemplate()).not.to.equal(nothing); // Is a TemplateResult\n });\n\n it('should cancel a long press by moving', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{\n showDelay: 0,\n longPressDelay: 100,\n enableLongPress: true,\n }}\n ></host-element>`\n );\n\n // Touch the host element\n host.dispatchEvent(getTouchStartEvent(host));\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n // Move the touch point, cancelling the long press\n host.dispatchEvent(new TouchEvent('touchmove'));\n await new Promise(resolve => {\n setTimeout(resolve, 150);\n });\n\n expect(host.controller?.getTemplate()).to.equal(nothing);\n });\n\n it('should cancel a long press by ending touch', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{\n showDelay: 0,\n longPressDelay: 100,\n enableLongPress: true,\n }}\n ></host-element>`\n );\n\n // Touch the host element\n host.dispatchEvent(getTouchStartEvent(host));\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n // Lift the touch point, cancelling the long press\n host.dispatchEvent(new TouchEvent('touchend'));\n await new Promise(resolve => {\n setTimeout(resolve, 150);\n });\n\n expect(host.controller?.getTemplate()).to.equal(nothing);\n });\n\n it('should cancel a long press by cancelling touch (e.g., too many touch points)', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{\n showDelay: 0,\n longPressDelay: 100,\n enableLongPress: true,\n }}\n ></host-element>`\n );\n\n // Touch the host element\n host.dispatchEvent(getTouchStartEvent(host));\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n // Cancel the touch point, also cancelling the long press\n host.dispatchEvent(new TouchEvent('touchcancel'));\n await new Promise(resolve => {\n setTimeout(resolve, 150);\n });\n\n expect(host.controller?.getTemplate()).to.equal(nothing);\n });\n\n it('should close the hover pane on mobile when touching the backdrop', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{\n showDelay: 0,\n hideDelay: 0,\n longPressDelay: 0,\n enableLongPress: true,\n mobileBreakpoint: 9999, // Ensure we get the mobile view\n }}\n ></host-element>`\n );\n\n // Touch the host element\n host.dispatchEvent(getTouchStartEvent(host));\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n expect(host.controller?.getTemplate()).not.to.equal(nothing);\n\n await host.updateComplete;\n\n // Touch the backdrop\n host.shadowRoot\n ?.querySelector('#touch-backdrop')\n ?.dispatchEvent(new TouchEvent('touchstart'));\n await new Promise(resolve => {\n setTimeout(resolve, 150);\n });\n\n expect(host.controller?.getTemplate()).to.equal(nothing);\n });\n });\n});\n"]}
1
+ {"version":3,"file":"hover-pane-controller.test.js","sourceRoot":"","sources":["../../../../test/tiles/hover/hover-pane-controller.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture } from '@open-wc/testing';\nimport { html, LitElement, nothing, TemplateResult } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport {\n HoverPaneController,\n HoverPaneControllerInterface,\n HoverPaneControllerOptions,\n HoverPaneProperties,\n HoverPaneProviderInterface,\n} from '../../../src/tiles/hover/hover-pane-controller';\nimport type { TileHoverPane } from '../../../src/tiles/hover/tile-hover-pane';\nimport { TileModel } from '../../../src/models';\n\n@customElement('host-element')\nclass HostElement extends LitElement implements HoverPaneProviderInterface {\n @property({ type: Object }) controllerOptions?: HoverPaneControllerOptions;\n\n @property({ type: Boolean }) suppressHoverPane: boolean = false;\n\n @query('tile-hover-pane') hoverPane?: TileHoverPane;\n\n controller?: HoverPaneControllerInterface;\n\n render(): TemplateResult {\n return html` ${this.controller?.getTemplate()} `;\n }\n\n protected firstUpdated(): void {\n this.controller = new HoverPaneController(this, this.controllerOptions);\n }\n\n getHoverPane(): HTMLElement | undefined {\n return this.suppressHoverPane ? undefined : this.hoverPane;\n }\n\n getHoverPaneProps(): HoverPaneProperties {\n const tileModel = new TileModel({});\n tileModel.checked = false;\n tileModel.collectionFilesCount = 1;\n tileModel.collections = ['foo', 'bar'];\n tileModel.collectionSize = 1;\n tileModel.commentCount = 1;\n tileModel.contentWarning = false;\n tileModel.creators = ['foo', 'bar'];\n tileModel.favCount = 1;\n tileModel.identifier = 'foo';\n tileModel.itemCount = 1;\n tileModel.loginRequired = false;\n tileModel.mediatype = 'data';\n tileModel.subjects = ['foo', 'bar'];\n tileModel.title = 'foo';\n tileModel.viewCount = 1;\n\n return {\n model: tileModel,\n loggedIn: false,\n sortParam: null,\n };\n }\n}\n\ndescribe('Hover Pane Controller', () => {\n let oldMatchMedia: typeof window.matchMedia;\n let oldOnTouchStart: typeof window.ontouchstart;\n\n before(() => {\n oldMatchMedia = window.matchMedia;\n oldOnTouchStart = window.ontouchstart;\n window.matchMedia = () => ({ matches: true }) as MediaQueryList;\n window.ontouchstart = () => {};\n });\n\n after(() => {\n window.matchMedia = oldMatchMedia;\n window.ontouchstart = oldOnTouchStart;\n });\n\n it('should initially provide empty template', async () => {\n const host = await fixture<HostElement>(\n html`<host-element></host-element>`,\n );\n expect(host.controller?.getTemplate()).to.equal(nothing);\n });\n\n it('should produce a hover pane template after mousemove, and hide it after mouseleave', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{ showDelay: 0, hideDelay: 0 }}\n ></host-element>`,\n );\n\n host.dispatchEvent(new MouseEvent('mousemove'));\n // Need to wait a tick for the event handlers to run\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n expect(host.controller?.getTemplate()).not.to.equal(nothing); // Is a TemplateResult\n\n host.dispatchEvent(new MouseEvent('mouseleave'));\n // Need to wait for the fade out transition\n await new Promise(resolve => {\n setTimeout(resolve, 150);\n });\n\n expect(host.controller?.getTemplate()).to.equal(nothing);\n });\n\n it('should produce a hover pane template after mouseenter, even without mousemove', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{ showDelay: 0, hideDelay: 0 }}\n ></host-element>`,\n );\n\n host.dispatchEvent(new MouseEvent('mouseenter'));\n // Need to wait a tick for the event handlers to run\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n expect(host.controller?.getTemplate()).not.to.equal(nothing); // Is a TemplateResult\n });\n\n it('should immediately fade back in if mouse enters while fading out', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{ showDelay: 0, hideDelay: 0 }}\n ></host-element>`,\n );\n\n // Enter the host element and wait for the show handlers to run\n host.dispatchEvent(new MouseEvent('mousemove'));\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n // Leave the host element so it begins fading out, but not all the way\n host.dispatchEvent(new MouseEvent('mouseleave'));\n await new Promise(resolve => {\n setTimeout(resolve, 20);\n });\n\n // Re-enter the host element and wait long enough that it would disappear\n // if the hide were not cancelled\n host.dispatchEvent(new MouseEvent('mousemove'));\n await new Promise(resolve => {\n setTimeout(resolve, 150);\n });\n\n expect(host.controller?.getTemplate()).not.to.equal(nothing);\n });\n\n it('should flip hover pane if it would overflow the viewport', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{ showDelay: 0, hideDelay: 0 }}\n ></host-element>`,\n );\n\n host.dispatchEvent(\n new MouseEvent('mousemove', { clientX: 800, clientY: 600 }),\n );\n // Need to wait a tick for the event handlers to run\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n await host.updateComplete;\n\n expect(host.controller?.getTemplate()).not.to.equal(nothing);\n expect(host.getHoverPane()?.getBoundingClientRect()?.right).to.be.lessThan(\n window.innerWidth,\n );\n expect(host.getHoverPane()?.getBoundingClientRect()?.bottom).to.be.lessThan(\n window.innerHeight,\n );\n });\n\n it('should gracefully handle undefined hover pane from host element', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{ showDelay: 0, hideDelay: 0 }}\n ?suppressHoverPane=${true}\n ></host-element>`,\n );\n\n host.dispatchEvent(new MouseEvent('mousemove'));\n // Need to wait a tick for the event handlers to run\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n expect(host.controller?.getTemplate()).not.to.equal(nothing);\n\n host.dispatchEvent(new MouseEvent('mouseleave'));\n await new Promise(resolve => {\n setTimeout(resolve, 20);\n });\n\n host.dispatchEvent(new MouseEvent('mousemove'));\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n host.dispatchEvent(new MouseEvent('mouseleave'));\n // Need to wait for the fade out transition\n await new Promise(resolve => {\n setTimeout(resolve, 150);\n });\n\n expect(host.controller?.getTemplate()).to.equal(nothing);\n });\n\n describe('Touch & long-press', () => {\n const getTouchStartEvent = (host: EventTarget) =>\n new TouchEvent('touchstart', {\n touches: [new Touch({ identifier: 0, target: host })],\n });\n\n it('should produce a hover pane after long press', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{\n showDelay: 0,\n longPressDelay: 0,\n enableLongPress: true,\n }}\n ></host-element>`,\n );\n\n // Touch the host element and wait for the long press handlers to run\n host.dispatchEvent(getTouchStartEvent(host));\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n expect(host.controller?.getTemplate()).not.to.equal(nothing); // Is a TemplateResult\n });\n\n it('should cancel a long press by moving', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{\n showDelay: 0,\n longPressDelay: 100,\n enableLongPress: true,\n }}\n ></host-element>`,\n );\n\n // Touch the host element\n host.dispatchEvent(getTouchStartEvent(host));\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n // Move the touch point, cancelling the long press\n host.dispatchEvent(new TouchEvent('touchmove'));\n await new Promise(resolve => {\n setTimeout(resolve, 150);\n });\n\n expect(host.controller?.getTemplate()).to.equal(nothing);\n });\n\n it('should cancel a long press by ending touch', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{\n showDelay: 0,\n longPressDelay: 100,\n enableLongPress: true,\n }}\n ></host-element>`,\n );\n\n // Touch the host element\n host.dispatchEvent(getTouchStartEvent(host));\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n // Lift the touch point, cancelling the long press\n host.dispatchEvent(new TouchEvent('touchend'));\n await new Promise(resolve => {\n setTimeout(resolve, 150);\n });\n\n expect(host.controller?.getTemplate()).to.equal(nothing);\n });\n\n it('should cancel a long press by cancelling touch (e.g., too many touch points)', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{\n showDelay: 0,\n longPressDelay: 100,\n enableLongPress: true,\n }}\n ></host-element>`,\n );\n\n // Touch the host element\n host.dispatchEvent(getTouchStartEvent(host));\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n // Cancel the touch point, also cancelling the long press\n host.dispatchEvent(new TouchEvent('touchcancel'));\n await new Promise(resolve => {\n setTimeout(resolve, 150);\n });\n\n expect(host.controller?.getTemplate()).to.equal(nothing);\n });\n\n it('should close the hover pane on mobile when touching the backdrop', async () => {\n const host = await fixture<HostElement>(\n html`<host-element\n .controllerOptions=${{\n showDelay: 0,\n hideDelay: 0,\n longPressDelay: 0,\n enableLongPress: true,\n mobileBreakpoint: 9999, // Ensure we get the mobile view\n }}\n ></host-element>`,\n );\n\n // Touch the host element\n host.dispatchEvent(getTouchStartEvent(host));\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n expect(host.controller?.getTemplate()).not.to.equal(nothing);\n\n await host.updateComplete;\n\n // Touch the backdrop\n host.shadowRoot\n ?.querySelector('#touch-backdrop')\n ?.dispatchEvent(new TouchEvent('touchstart'));\n await new Promise(resolve => {\n setTimeout(resolve, 150);\n });\n\n expect(host.controller?.getTemplate()).to.equal(nothing);\n });\n });\n});\n"]}
@@ -1 +1 @@
1
- import '../../../src/tiles/hover/tile-hover-pane';
1
+ import '../../../src/tiles/hover/tile-hover-pane';
@@ -1,57 +1,57 @@
1
- import { expect, fixture } from '@open-wc/testing';
2
- import { html } from 'lit';
3
- import '../../../src/tiles/hover/tile-hover-pane';
4
- describe('Tile Hover Pane', () => {
5
- it('should render initial component', async () => {
6
- var _a, _b;
7
- const el = await fixture(html `<tile-hover-pane></tile-hover-pane>`);
8
- const container = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#container');
9
- const listView = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('tile-list');
10
- expect(container).to.exist;
11
- expect(listView).to.exist;
12
- });
13
- it('should render component with header element', async () => {
14
- var _a, _b;
15
- const model = {
16
- mediatype: 'texts',
17
- collections: ['collection1', 'fav-jack-sparrow'],
18
- };
19
- const el = await fixture(html `<tile-hover-pane .model=${model}></tile-hover-pane>`);
20
- const container = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#container');
21
- const listView = container === null || container === void 0 ? void 0 : container.querySelector('tile-list');
22
- const headerElement = container === null || container === void 0 ? void 0 : container.querySelector('#list-line-header');
23
- expect(container).to.exist;
24
- expect(listView).to.exist;
25
- expect(headerElement).to.exist;
26
- expect((_b = headerElement === null || headerElement === void 0 ? void 0 : headerElement.querySelector('a')) === null || _b === void 0 ? void 0 : _b.getAttribute('href')).contains('/details/collection1');
27
- });
28
- it('should NOT render header element when fav- collection', async () => {
29
- var _a;
30
- const model = {
31
- mediatype: 'texts',
32
- collections: ['fav-jack-sparrow'],
33
- };
34
- const el = await fixture(html `<tile-hover-pane .model=${model}></tile-hover-pane>`);
35
- const container = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#container');
36
- const listView = container === null || container === void 0 ? void 0 : container.querySelector('tile-list');
37
- const headerElement = container === null || container === void 0 ? void 0 : container.querySelector('#list-line-header');
38
- expect(container).to.exist;
39
- expect(listView).to.exist;
40
- expect(headerElement).not.exist;
41
- });
42
- it('should NOT render header element when no collections', async () => {
43
- var _a;
44
- const model = {
45
- mediatype: 'texts',
46
- collections: [],
47
- };
48
- const el = await fixture(html `<tile-hover-pane .model=${model}></tile-hover-pane>`);
49
- const container = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#container');
50
- const listView = container === null || container === void 0 ? void 0 : container.querySelector('tile-list');
51
- const headerElement = container === null || container === void 0 ? void 0 : container.querySelector('#list-line-header');
52
- expect(container).to.exist;
53
- expect(listView).to.exist;
54
- expect(headerElement).not.exist;
55
- });
56
- });
1
+ import { expect, fixture } from '@open-wc/testing';
2
+ import { html } from 'lit';
3
+ import '../../../src/tiles/hover/tile-hover-pane';
4
+ describe('Tile Hover Pane', () => {
5
+ it('should render initial component', async () => {
6
+ var _a, _b;
7
+ const el = await fixture(html `<tile-hover-pane></tile-hover-pane>`);
8
+ const container = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#container');
9
+ const listView = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('tile-list');
10
+ expect(container).to.exist;
11
+ expect(listView).to.exist;
12
+ });
13
+ it('should render component with header element', async () => {
14
+ var _a, _b;
15
+ const model = {
16
+ mediatype: 'texts',
17
+ collections: ['collection1', 'fav-jack-sparrow'],
18
+ };
19
+ const el = await fixture(html `<tile-hover-pane .model=${model}></tile-hover-pane>`);
20
+ const container = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#container');
21
+ const listView = container === null || container === void 0 ? void 0 : container.querySelector('tile-list');
22
+ const headerElement = container === null || container === void 0 ? void 0 : container.querySelector('#list-line-header');
23
+ expect(container).to.exist;
24
+ expect(listView).to.exist;
25
+ expect(headerElement).to.exist;
26
+ expect((_b = headerElement === null || headerElement === void 0 ? void 0 : headerElement.querySelector('a')) === null || _b === void 0 ? void 0 : _b.getAttribute('href')).contains('/details/collection1');
27
+ });
28
+ it('should NOT render header element when fav- collection', async () => {
29
+ var _a;
30
+ const model = {
31
+ mediatype: 'texts',
32
+ collections: ['fav-jack-sparrow'],
33
+ };
34
+ const el = await fixture(html `<tile-hover-pane .model=${model}></tile-hover-pane>`);
35
+ const container = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#container');
36
+ const listView = container === null || container === void 0 ? void 0 : container.querySelector('tile-list');
37
+ const headerElement = container === null || container === void 0 ? void 0 : container.querySelector('#list-line-header');
38
+ expect(container).to.exist;
39
+ expect(listView).to.exist;
40
+ expect(headerElement).not.exist;
41
+ });
42
+ it('should NOT render header element when no collections', async () => {
43
+ var _a;
44
+ const model = {
45
+ mediatype: 'texts',
46
+ collections: [],
47
+ };
48
+ const el = await fixture(html `<tile-hover-pane .model=${model}></tile-hover-pane>`);
49
+ const container = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#container');
50
+ const listView = container === null || container === void 0 ? void 0 : container.querySelector('tile-list');
51
+ const headerElement = container === null || container === void 0 ? void 0 : container.querySelector('#list-line-header');
52
+ expect(container).to.exist;
53
+ expect(listView).to.exist;
54
+ expect(headerElement).not.exist;
55
+ });
56
+ });
57
57
  //# sourceMappingURL=tile-hover-pane.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tile-hover-pane.test.js","sourceRoot":"","sources":["../../../../test/tiles/hover/tile-hover-pane.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport type { TileModel } from '../../../src/models';\nimport type { TileHoverPane } from '../../../src/tiles/hover/tile-hover-pane';\n\nimport '../../../src/tiles/hover/tile-hover-pane';\n\ndescribe('Tile Hover Pane', () => {\n it('should render initial component', async () => {\n const el = await fixture<TileHoverPane>(\n html`<tile-hover-pane></tile-hover-pane>`\n );\n\n const container = el.shadowRoot?.querySelector('#container');\n const listView = el.shadowRoot?.querySelector('tile-list');\n\n expect(container).to.exist;\n expect(listView).to.exist;\n });\n\n it('should render component with header element', async () => {\n const model: Partial<TileModel> = {\n mediatype: 'texts',\n collections: ['collection1', 'fav-jack-sparrow'],\n };\n\n const el = await fixture<TileHoverPane>(\n html`<tile-hover-pane .model=${model}></tile-hover-pane>`\n );\n\n const container = el.shadowRoot?.querySelector('#container');\n const listView = container?.querySelector('tile-list');\n const headerElement = container?.querySelector('#list-line-header');\n\n expect(container).to.exist;\n expect(listView).to.exist;\n expect(headerElement).to.exist;\n expect(headerElement?.querySelector('a')?.getAttribute('href')).contains(\n '/details/collection1'\n );\n });\n\n it('should NOT render header element when fav- collection', async () => {\n const model: Partial<TileModel> = {\n mediatype: 'texts',\n collections: ['fav-jack-sparrow'],\n };\n\n const el = await fixture<TileHoverPane>(\n html`<tile-hover-pane .model=${model}></tile-hover-pane>`\n );\n\n const container = el.shadowRoot?.querySelector('#container');\n const listView = container?.querySelector('tile-list');\n const headerElement = container?.querySelector('#list-line-header');\n\n expect(container).to.exist;\n expect(listView).to.exist;\n expect(headerElement).not.exist;\n });\n\n it('should NOT render header element when no collections', async () => {\n const model: Partial<TileModel> = {\n mediatype: 'texts',\n collections: [],\n };\n\n const el = await fixture<TileHoverPane>(\n html`<tile-hover-pane .model=${model}></tile-hover-pane>`\n );\n\n const container = el.shadowRoot?.querySelector('#container');\n const listView = container?.querySelector('tile-list');\n const headerElement = container?.querySelector('#list-line-header');\n\n expect(container).to.exist;\n expect(listView).to.exist;\n expect(headerElement).not.exist;\n });\n});\n"]}
1
+ {"version":3,"file":"tile-hover-pane.test.js","sourceRoot":"","sources":["../../../../test/tiles/hover/tile-hover-pane.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport type { TileModel } from '../../../src/models';\nimport type { TileHoverPane } from '../../../src/tiles/hover/tile-hover-pane';\n\nimport '../../../src/tiles/hover/tile-hover-pane';\n\ndescribe('Tile Hover Pane', () => {\n it('should render initial component', async () => {\n const el = await fixture<TileHoverPane>(\n html`<tile-hover-pane></tile-hover-pane>`,\n );\n\n const container = el.shadowRoot?.querySelector('#container');\n const listView = el.shadowRoot?.querySelector('tile-list');\n\n expect(container).to.exist;\n expect(listView).to.exist;\n });\n\n it('should render component with header element', async () => {\n const model: Partial<TileModel> = {\n mediatype: 'texts',\n collections: ['collection1', 'fav-jack-sparrow'],\n };\n\n const el = await fixture<TileHoverPane>(\n html`<tile-hover-pane .model=${model}></tile-hover-pane>`,\n );\n\n const container = el.shadowRoot?.querySelector('#container');\n const listView = container?.querySelector('tile-list');\n const headerElement = container?.querySelector('#list-line-header');\n\n expect(container).to.exist;\n expect(listView).to.exist;\n expect(headerElement).to.exist;\n expect(headerElement?.querySelector('a')?.getAttribute('href')).contains(\n '/details/collection1',\n );\n });\n\n it('should NOT render header element when fav- collection', async () => {\n const model: Partial<TileModel> = {\n mediatype: 'texts',\n collections: ['fav-jack-sparrow'],\n };\n\n const el = await fixture<TileHoverPane>(\n html`<tile-hover-pane .model=${model}></tile-hover-pane>`,\n );\n\n const container = el.shadowRoot?.querySelector('#container');\n const listView = container?.querySelector('tile-list');\n const headerElement = container?.querySelector('#list-line-header');\n\n expect(container).to.exist;\n expect(listView).to.exist;\n expect(headerElement).not.exist;\n });\n\n it('should NOT render header element when no collections', async () => {\n const model: Partial<TileModel> = {\n mediatype: 'texts',\n collections: [],\n };\n\n const el = await fixture<TileHoverPane>(\n html`<tile-hover-pane .model=${model}></tile-hover-pane>`,\n );\n\n const container = el.shadowRoot?.querySelector('#container');\n const listView = container?.querySelector('tile-list');\n const headerElement = container?.querySelector('#list-line-header');\n\n expect(container).to.exist;\n expect(listView).to.exist;\n expect(headerElement).not.exist;\n });\n});\n"]}
@@ -1 +1 @@
1
- import '../../../src/tiles/list/tile-list-compact';
1
+ import '../../../src/tiles/list/tile-list-compact';
@@ -1,201 +1,200 @@
1
- /* eslint-disable import/no-duplicates */
2
- import { expect, fixture } from '@open-wc/testing';
3
- import { html } from 'lit';
4
- import '../../../src/tiles/list/tile-list-compact';
5
- describe('List Tile Compact', () => {
6
- it('should render initial component', async () => {
7
- var _a, _b, _c, _d, _e;
8
- const el = await fixture(html `<tile-list-compact></tile-list-compact>`);
9
- const listContainer = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#list-line');
10
- const itemTitle = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#title');
11
- const imageBlock = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('image-block');
12
- const itemIcon = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#icon');
13
- const itemViews = (_e = el.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector('#views');
14
- expect(listContainer).to.exist;
15
- expect(itemTitle).to.exist;
16
- expect(imageBlock).to.exist;
17
- expect(itemIcon).to.exist;
18
- expect(itemViews).to.exist;
19
- });
20
- it('should render with creator element with title', async () => {
21
- var _a;
1
+ import { expect, fixture } from '@open-wc/testing';
2
+ import { html } from 'lit';
3
+ import '../../../src/tiles/list/tile-list-compact';
4
+ describe('List Tile Compact', () => {
5
+ it('should render initial component', async () => {
6
+ var _a, _b, _c, _d, _e;
7
+ const el = await fixture(html `<tile-list-compact></tile-list-compact>`);
8
+ const listContainer = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#list-line');
9
+ const itemTitle = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#title');
10
+ const imageBlock = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('image-block');
11
+ const itemIcon = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#icon');
12
+ const itemViews = (_e = el.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector('#views');
13
+ expect(listContainer).to.exist;
14
+ expect(itemTitle).to.exist;
15
+ expect(imageBlock).to.exist;
16
+ expect(itemIcon).to.exist;
17
+ expect(itemViews).to.exist;
18
+ });
19
+ it('should render with creator element with title', async () => {
20
+ var _a;
22
21
  const el = await fixture(html `
23
22
  <tile-list-compact
24
23
  .model=${{ creators: ['someone'] }}
25
24
  ></tile-list-compact>
26
- `);
27
- const creator = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#creator');
28
- expect(creator).to.exist;
29
- });
30
- it('should render title link with model href if provided', async () => {
31
- var _a;
25
+ `);
26
+ const creator = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#creator');
27
+ expect(creator).to.exist;
28
+ });
29
+ it('should render title link with model href if provided', async () => {
30
+ var _a;
32
31
  const el = await fixture(html `
33
32
  <tile-list-compact
34
33
  .baseNavigationUrl=${''}
35
34
  .model=${{ identifier: 'id', title: 'foo', href: '/foo/bar' }}
36
35
  ></tile-list-compact>
37
- `);
38
- const title = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#title');
39
- expect(title).to.exist;
40
- expect(title === null || title === void 0 ? void 0 : title.getAttribute('href')).to.equal('/foo/bar');
41
- });
42
- it('should render weekly views when sorting by week', async () => {
43
- var _a, _b;
36
+ `);
37
+ const title = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#title');
38
+ expect(title).to.exist;
39
+ expect(title === null || title === void 0 ? void 0 : title.getAttribute('href')).to.equal('/foo/bar');
40
+ });
41
+ it('should render weekly views when sorting by week', async () => {
42
+ var _a, _b;
44
43
  const el = await fixture(html `
45
44
  <tile-list-compact
46
45
  .model=${{ viewCount: 50, weeklyViewCount: 10 }}
47
46
  .sortParam=${{ field: 'week', direction: 'desc' }}
48
47
  >
49
48
  </tile-list-compact>
50
- `);
51
- const viewsColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('views');
52
- expect(viewsColumn).to.exist;
53
- expect((_b = viewsColumn === null || viewsColumn === void 0 ? void 0 : viewsColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('10');
54
- });
55
- it('should render 0 for views if missing model', async () => {
56
- var _a, _b;
49
+ `);
50
+ const viewsColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('views');
51
+ expect(viewsColumn).to.exist;
52
+ expect((_b = viewsColumn === null || viewsColumn === void 0 ? void 0 : viewsColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('10');
53
+ });
54
+ it('should render 0 for views if missing model', async () => {
55
+ var _a, _b;
57
56
  const el = await fixture(html `
58
57
  <tile-list-compact .sortParam=${{ field: 'week', direction: 'desc' }}>
59
58
  </tile-list-compact>
60
- `);
61
- const viewsColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('views');
62
- expect(viewsColumn).to.exist;
63
- expect((_b = viewsColumn === null || viewsColumn === void 0 ? void 0 : viewsColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('0');
64
- });
65
- it('should render published date when sorting by it', async () => {
66
- var _a, _b;
67
- const model = {
68
- dateAdded: new Date(2010, 0, 2),
69
- dateArchived: new Date(2011, 0, 2),
70
- datePublished: new Date(2012, 0, 2),
71
- dateReviewed: new Date(2013, 0, 2),
72
- };
59
+ `);
60
+ const viewsColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('views');
61
+ expect(viewsColumn).to.exist;
62
+ expect((_b = viewsColumn === null || viewsColumn === void 0 ? void 0 : viewsColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('0');
63
+ });
64
+ it('should render published date when sorting by it', async () => {
65
+ var _a, _b;
66
+ const model = {
67
+ dateAdded: new Date(2010, 0, 2),
68
+ dateArchived: new Date(2011, 0, 2),
69
+ datePublished: new Date(2012, 0, 2),
70
+ dateReviewed: new Date(2013, 0, 2),
71
+ };
73
72
  const el = await fixture(html `
74
73
  <tile-list-compact
75
74
  .model=${model}
76
75
  .sortParam=${{ field: 'date', direction: 'desc' }}
77
76
  >
78
77
  </tile-list-compact>
79
- `);
80
- const dateColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('date');
81
- expect(dateColumn).to.exist;
82
- expect((_b = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Jan 02, 2012');
83
- });
84
- it('should render added date when sorting by it', async () => {
85
- var _a, _b;
86
- const model = {
87
- dateAdded: new Date(2010, 0, 2),
88
- dateArchived: new Date(2011, 0, 2),
89
- datePublished: new Date(2012, 0, 2),
90
- dateReviewed: new Date(2013, 0, 2),
91
- };
78
+ `);
79
+ const dateColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('date');
80
+ expect(dateColumn).to.exist;
81
+ expect((_b = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Jan 02, 2012');
82
+ });
83
+ it('should render added date when sorting by it', async () => {
84
+ var _a, _b;
85
+ const model = {
86
+ dateAdded: new Date(2010, 0, 2),
87
+ dateArchived: new Date(2011, 0, 2),
88
+ datePublished: new Date(2012, 0, 2),
89
+ dateReviewed: new Date(2013, 0, 2),
90
+ };
92
91
  const el = await fixture(html `
93
92
  <tile-list-compact
94
93
  .model=${model}
95
94
  .sortParam=${{ field: 'addeddate', direction: 'desc' }}
96
95
  >
97
96
  </tile-list-compact>
98
- `);
99
- const dateColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('date');
100
- expect(dateColumn).to.exist;
101
- expect((_b = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Jan 02, 2010');
102
- });
103
- it('should render archived date when sorting by it', async () => {
104
- var _a, _b;
105
- const model = {
106
- dateAdded: new Date(2010, 0, 2),
107
- dateArchived: new Date(2011, 0, 2),
108
- datePublished: new Date(2012, 0, 2),
109
- dateReviewed: new Date(2013, 0, 2),
110
- };
97
+ `);
98
+ const dateColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('date');
99
+ expect(dateColumn).to.exist;
100
+ expect((_b = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Jan 02, 2010');
101
+ });
102
+ it('should render archived date when sorting by it', async () => {
103
+ var _a, _b;
104
+ const model = {
105
+ dateAdded: new Date(2010, 0, 2),
106
+ dateArchived: new Date(2011, 0, 2),
107
+ datePublished: new Date(2012, 0, 2),
108
+ dateReviewed: new Date(2013, 0, 2),
109
+ };
111
110
  const el = await fixture(html `
112
111
  <tile-list-compact
113
112
  .model=${model}
114
113
  .sortParam=${{ field: 'publicdate', direction: 'desc' }}
115
114
  >
116
115
  </tile-list-compact>
117
- `);
118
- const dateColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('date');
119
- expect(dateColumn).to.exist;
120
- expect((_b = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Jan 02, 2011');
121
- });
122
- it('should render reviewed date when sorting by it', async () => {
123
- var _a, _b;
124
- const model = {
125
- dateAdded: new Date(2010, 0, 2),
126
- dateArchived: new Date(2011, 0, 2),
127
- datePublished: new Date(2012, 0, 2),
128
- dateReviewed: new Date(2013, 0, 2),
129
- };
116
+ `);
117
+ const dateColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('date');
118
+ expect(dateColumn).to.exist;
119
+ expect((_b = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Jan 02, 2011');
120
+ });
121
+ it('should render reviewed date when sorting by it', async () => {
122
+ var _a, _b;
123
+ const model = {
124
+ dateAdded: new Date(2010, 0, 2),
125
+ dateArchived: new Date(2011, 0, 2),
126
+ datePublished: new Date(2012, 0, 2),
127
+ dateReviewed: new Date(2013, 0, 2),
128
+ };
130
129
  const el = await fixture(html `
131
130
  <tile-list-compact
132
131
  .model=${model}
133
132
  .sortParam=${{ field: 'reviewdate', direction: 'desc' }}
134
133
  >
135
134
  </tile-list-compact>
136
- `);
137
- const dateColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('date');
138
- expect(dateColumn).to.exist;
139
- expect((_b = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Jan 02, 2013');
140
- });
141
- it('should only show the year for a date published of Jan 1 at midnight UTC', async () => {
142
- var _a, _b;
143
- const model = {
144
- datePublished: new Date(2012, 0, 1, 0, 0, 0, 0),
145
- };
135
+ `);
136
+ const dateColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('date');
137
+ expect(dateColumn).to.exist;
138
+ expect((_b = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Jan 02, 2013');
139
+ });
140
+ it('should only show the year for a date published of Jan 1 at midnight UTC', async () => {
141
+ var _a, _b;
142
+ const model = {
143
+ datePublished: new Date(2012, 0, 1, 0, 0, 0, 0),
144
+ };
146
145
  const el = await fixture(html `
147
146
  <tile-list-compact
148
147
  .model=${model}
149
148
  .sortParam=${{ field: 'date', direction: 'desc' }}
150
149
  >
151
150
  </tile-list-compact>
152
- `);
153
- const dateColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('date');
154
- expect(dateColumn).to.exist;
155
- expect((_b = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('2012');
156
- });
157
- it('should show full date added/archived/reviewed, even on Jan 1 at midnight UTC', async () => {
158
- var _a, _b, _c, _d, _e, _f;
159
- const model = {
160
- dateAdded: new Date(2010, 0, 1, 0, 0, 0, 0),
161
- dateArchived: new Date(2011, 0, 1, 0, 0, 0, 0),
162
- datePublished: new Date(2012, 0, 1, 0, 0, 0, 0),
163
- dateReviewed: new Date(2013, 0, 1, 0, 0, 0, 0),
164
- };
151
+ `);
152
+ const dateColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('date');
153
+ expect(dateColumn).to.exist;
154
+ expect((_b = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('2012');
155
+ });
156
+ it('should show full date added/archived/reviewed, even on Jan 1 at midnight UTC', async () => {
157
+ var _a, _b, _c, _d, _e, _f;
158
+ const model = {
159
+ dateAdded: new Date(2010, 0, 1, 0, 0, 0, 0),
160
+ dateArchived: new Date(2011, 0, 1, 0, 0, 0, 0),
161
+ datePublished: new Date(2012, 0, 1, 0, 0, 0, 0),
162
+ dateReviewed: new Date(2013, 0, 1, 0, 0, 0, 0),
163
+ };
165
164
  const el = await fixture(html `
166
165
  <tile-list-compact
167
166
  .model=${model}
168
167
  .sortParam=${{ field: 'addeddate', direction: 'desc' }}
169
168
  >
170
169
  </tile-list-compact>
171
- `);
172
- let dateColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('date');
173
- expect(dateColumn).to.exist;
174
- expect((_b = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Jan 01, 2010');
175
- el.sortParam = { field: 'publicdate', direction: 'desc' };
176
- await el.updateComplete;
177
- dateColumn = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.getElementById('date');
178
- expect(dateColumn).to.exist;
179
- expect((_d = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _d === void 0 ? void 0 : _d.trim()).to.equal('Jan 01, 2011');
180
- el.sortParam = { field: 'reviewdate', direction: 'desc' };
181
- await el.updateComplete;
182
- dateColumn = (_e = el.shadowRoot) === null || _e === void 0 ? void 0 : _e.getElementById('date');
183
- expect(dateColumn).to.exist;
184
- expect((_f = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _f === void 0 ? void 0 : _f.trim()).to.equal('Jan 01, 2013');
185
- });
186
- it('should show the first creator matching the letter filter, if defined', async () => {
187
- var _a, _b;
188
- const model = {
189
- creator: 'foo',
190
- creators: ['foo', 'bar', 'baz'],
191
- };
170
+ `);
171
+ let dateColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('date');
172
+ expect(dateColumn).to.exist;
173
+ expect((_b = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Jan 01, 2010');
174
+ el.sortParam = { field: 'publicdate', direction: 'desc' };
175
+ await el.updateComplete;
176
+ dateColumn = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.getElementById('date');
177
+ expect(dateColumn).to.exist;
178
+ expect((_d = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _d === void 0 ? void 0 : _d.trim()).to.equal('Jan 01, 2011');
179
+ el.sortParam = { field: 'reviewdate', direction: 'desc' };
180
+ await el.updateComplete;
181
+ dateColumn = (_e = el.shadowRoot) === null || _e === void 0 ? void 0 : _e.getElementById('date');
182
+ expect(dateColumn).to.exist;
183
+ expect((_f = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _f === void 0 ? void 0 : _f.trim()).to.equal('Jan 01, 2013');
184
+ });
185
+ it('should show the first creator matching the letter filter, if defined', async () => {
186
+ var _a, _b;
187
+ const model = {
188
+ creator: 'foo',
189
+ creators: ['foo', 'bar', 'baz'],
190
+ };
192
191
  const el = await fixture(html `
193
192
  <tile-list-compact .model=${model} .creatorFilter=${'B'}>
194
193
  </tile-list-compact>
195
- `);
196
- const creator = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('creator');
197
- expect(creator).to.exist;
198
- expect((_b = creator === null || creator === void 0 ? void 0 : creator.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('bar');
199
- });
200
- });
194
+ `);
195
+ const creator = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('creator');
196
+ expect(creator).to.exist;
197
+ expect((_b = creator === null || creator === void 0 ? void 0 : creator.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('bar');
198
+ });
199
+ });
201
200
  //# sourceMappingURL=tile-list-compact.test.js.map