@internetarchive/collection-browser 2.5.2 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (308) hide show
  1. package/.editorconfig +29 -29
  2. package/.husky/pre-commit +4 -4
  3. package/LICENSE +661 -661
  4. package/README.md +83 -83
  5. package/dist/index.d.ts +12 -12
  6. package/dist/index.js +12 -12
  7. package/dist/src/app-root.d.ts +91 -91
  8. package/dist/src/app-root.js +487 -487
  9. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  10. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  11. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  12. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  13. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  14. package/dist/src/assets/img/icons/chevron.js +2 -2
  15. package/dist/src/assets/img/icons/contract.d.ts +2 -2
  16. package/dist/src/assets/img/icons/contract.js +2 -2
  17. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  18. package/dist/src/assets/img/icons/empty-query.js +2 -2
  19. package/dist/src/assets/img/icons/expand.d.ts +2 -2
  20. package/dist/src/assets/img/icons/expand.js +2 -2
  21. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  22. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  23. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  24. package/dist/src/assets/img/icons/eye.js +2 -2
  25. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  26. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  27. package/dist/src/assets/img/icons/favorite-unfilled.d.ts +1 -1
  28. package/dist/src/assets/img/icons/favorite-unfilled.js +2 -2
  29. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  30. package/dist/src/assets/img/icons/login-required.js +2 -2
  31. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  32. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  33. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  34. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  35. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  36. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  37. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  38. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  39. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  40. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  41. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  42. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  43. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  44. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  45. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  46. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  47. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
  48. package/dist/src/assets/img/icons/mediatype/search.js +2 -2
  49. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  50. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  51. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  52. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  53. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  54. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  55. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  56. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  57. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  58. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  59. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  60. package/dist/src/assets/img/icons/null-result.js +2 -2
  61. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  62. package/dist/src/assets/img/icons/restricted.js +2 -2
  63. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  64. package/dist/src/assets/img/icons/reviews.js +2 -2
  65. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  66. package/dist/src/assets/img/icons/upload.js +2 -2
  67. package/dist/src/assets/img/icons/views.d.ts +1 -1
  68. package/dist/src/assets/img/icons/views.js +2 -2
  69. package/dist/src/circular-activity-indicator.d.ts +5 -5
  70. package/dist/src/circular-activity-indicator.js +17 -17
  71. package/dist/src/collection-browser.d.ts +564 -564
  72. package/dist/src/collection-browser.js +1579 -1569
  73. package/dist/src/collection-browser.js.map +1 -1
  74. package/dist/src/collection-facets/facet-row.d.ts +30 -30
  75. package/dist/src/collection-facets/facet-row.js +120 -117
  76. package/dist/src/collection-facets/facet-row.js.map +1 -1
  77. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  78. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  79. package/dist/src/collection-facets/facets-template.d.ts +13 -13
  80. package/dist/src/collection-facets/facets-template.js +45 -43
  81. package/dist/src/collection-facets/facets-template.js.map +1 -1
  82. package/dist/src/collection-facets/more-facets-content.d.ts +106 -106
  83. package/dist/src/collection-facets/more-facets-content.js +407 -407
  84. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  85. package/dist/src/collection-facets/more-facets-pagination.js +196 -196
  86. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  87. package/dist/src/collection-facets/toggle-switch.js +94 -94
  88. package/dist/src/collection-facets.d.ts +103 -103
  89. package/dist/src/collection-facets.js +534 -516
  90. package/dist/src/collection-facets.js.map +1 -1
  91. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +241 -241
  92. package/dist/src/data-source/collection-browser-data-source-interface.js +1 -1
  93. package/dist/src/data-source/collection-browser-data-source.d.ts +378 -378
  94. package/dist/src/data-source/collection-browser-data-source.js +984 -985
  95. package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
  96. package/dist/src/data-source/collection-browser-query-state.d.ts +43 -43
  97. package/dist/src/data-source/collection-browser-query-state.js +1 -1
  98. package/dist/src/data-source/models.d.ts +28 -28
  99. package/dist/src/data-source/models.js +8 -8
  100. package/dist/src/empty-placeholder.d.ts +23 -23
  101. package/dist/src/empty-placeholder.js +92 -79
  102. package/dist/src/empty-placeholder.js.map +1 -1
  103. package/dist/src/expanded-date-picker.d.ts +43 -43
  104. package/dist/src/expanded-date-picker.js +109 -109
  105. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  106. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  107. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  108. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  109. package/dist/src/manage/manage-bar.d.ts +30 -30
  110. package/dist/src/manage/manage-bar.js +61 -61
  111. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  112. package/dist/src/mediatype/mediatype-config.js +91 -91
  113. package/dist/src/models.d.ts +211 -209
  114. package/dist/src/models.js +381 -381
  115. package/dist/src/models.js.map +1 -1
  116. package/dist/src/restoration-state-handler.d.ts +70 -70
  117. package/dist/src/restoration-state-handler.js +357 -357
  118. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  119. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  120. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  121. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  122. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  123. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  124. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  125. package/dist/src/sort-filter-bar/img/list.js +2 -2
  126. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  127. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  128. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  129. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  130. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  131. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  132. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  133. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  134. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  135. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  136. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +223 -222
  137. package/dist/src/sort-filter-bar/sort-filter-bar.js +700 -696
  138. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  139. package/dist/src/styles/ia-button.d.ts +2 -2
  140. package/dist/src/styles/ia-button.js +16 -16
  141. package/dist/src/styles/item-image-styles.d.ts +8 -8
  142. package/dist/src/styles/item-image-styles.js +9 -9
  143. package/dist/src/styles/sr-only.d.ts +1 -1
  144. package/dist/src/styles/sr-only.js +2 -2
  145. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  146. package/dist/src/tiles/base-tile-component.js +63 -63
  147. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  148. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  149. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  150. package/dist/src/tiles/grid/account-tile.js +72 -72
  151. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  152. package/dist/src/tiles/grid/collection-tile.js +80 -80
  153. package/dist/src/tiles/grid/item-tile.d.ts +30 -30
  154. package/dist/src/tiles/grid/item-tile.js +149 -149
  155. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  156. package/dist/src/tiles/grid/search-tile.js +51 -51
  157. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  158. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  159. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  160. package/dist/src/tiles/grid/tile-stats.js +53 -53
  161. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  162. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  163. package/dist/src/tiles/hover/tile-hover-pane.d.ts +18 -18
  164. package/dist/src/tiles/hover/tile-hover-pane.js +69 -69
  165. package/dist/src/tiles/image-block.d.ts +17 -17
  166. package/dist/src/tiles/image-block.js +73 -73
  167. package/dist/src/tiles/item-image.d.ts +39 -39
  168. package/dist/src/tiles/item-image.js +154 -154
  169. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  170. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  171. package/dist/src/tiles/list/tile-list-compact.d.ts +15 -15
  172. package/dist/src/tiles/list/tile-list-compact.js +114 -114
  173. package/dist/src/tiles/list/tile-list.d.ts +50 -50
  174. package/dist/src/tiles/list/tile-list.js +315 -315
  175. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  176. package/dist/src/tiles/mediatype-icon.js +47 -47
  177. package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
  178. package/dist/src/tiles/overlay/icon-overlay.js +40 -40
  179. package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
  180. package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
  181. package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
  182. package/dist/src/tiles/overlay/text-overlay.js +42 -42
  183. package/dist/src/tiles/review-block.d.ts +12 -12
  184. package/dist/src/tiles/review-block.js +56 -56
  185. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  186. package/dist/src/tiles/text-snippet-block.js +73 -73
  187. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  188. package/dist/src/tiles/tile-dispatcher.js +229 -229
  189. package/dist/src/tiles/tile-display-value-provider.d.ts +47 -47
  190. package/dist/src/tiles/tile-display-value-provider.js +94 -94
  191. package/dist/src/utils/analytics-events.d.ts +28 -28
  192. package/dist/src/utils/analytics-events.js +30 -30
  193. package/dist/src/utils/array-equals.d.ts +4 -4
  194. package/dist/src/utils/array-equals.js +10 -10
  195. package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -11
  196. package/dist/src/utils/collapse-repeated-quotes.js +13 -13
  197. package/dist/src/utils/facet-utils.d.ts +83 -83
  198. package/dist/src/utils/facet-utils.js +145 -145
  199. package/dist/src/utils/format-count.d.ts +7 -7
  200. package/dist/src/utils/format-count.js +76 -76
  201. package/dist/src/utils/format-date.d.ts +2 -2
  202. package/dist/src/utils/format-date.js +25 -25
  203. package/dist/src/utils/format-unit-size.d.ts +2 -2
  204. package/dist/src/utils/format-unit-size.js +33 -33
  205. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  206. package/dist/src/utils/local-date-from-utc.js +15 -15
  207. package/dist/src/utils/log.d.ts +7 -7
  208. package/dist/src/utils/log.js +15 -15
  209. package/dist/src/utils/resolve-mediatype.d.ts +8 -8
  210. package/dist/src/utils/resolve-mediatype.js +23 -23
  211. package/dist/src/utils/sha1.d.ts +2 -2
  212. package/dist/src/utils/sha1.js +8 -8
  213. package/dist/test/collection-browser.test.d.ts +1 -1
  214. package/dist/test/collection-browser.test.js +1294 -1294
  215. package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
  216. package/dist/test/collection-facets/facet-row.test.js +227 -227
  217. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  218. package/dist/test/collection-facets/facets-template.test.js +91 -91
  219. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  220. package/dist/test/collection-facets/more-facets-content.test.js +141 -141
  221. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  222. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  223. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  224. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  225. package/dist/test/collection-facets.test.d.ts +2 -2
  226. package/dist/test/collection-facets.test.js +652 -652
  227. package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -1
  228. package/dist/test/data-source/collection-browser-data-source.test.js +89 -89
  229. package/dist/test/empty-placeholder.test.d.ts +1 -1
  230. package/dist/test/empty-placeholder.test.js +63 -63
  231. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  232. package/dist/test/expanded-date-picker.test.js +95 -95
  233. package/dist/test/icon-overlay.test.d.ts +1 -1
  234. package/dist/test/icon-overlay.test.js +24 -24
  235. package/dist/test/image-block.test.d.ts +1 -1
  236. package/dist/test/image-block.test.js +48 -48
  237. package/dist/test/item-image.test.d.ts +1 -1
  238. package/dist/test/item-image.test.js +85 -85
  239. package/dist/test/manage/manage-bar.test.d.ts +1 -1
  240. package/dist/test/manage/manage-bar.test.js +81 -81
  241. package/dist/test/mediatype-config.test.d.ts +1 -1
  242. package/dist/test/mediatype-config.test.js +16 -16
  243. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  244. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  245. package/dist/test/mocks/mock-search-responses.d.ts +25 -25
  246. package/dist/test/mocks/mock-search-responses.js +942 -942
  247. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  248. package/dist/test/mocks/mock-search-service.js +54 -54
  249. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  250. package/dist/test/restoration-state-handler.test.js +270 -270
  251. package/dist/test/review-block.test.d.ts +1 -1
  252. package/dist/test/review-block.test.js +44 -44
  253. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  254. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  255. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  256. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  257. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  258. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +426 -426
  259. package/dist/test/text-overlay.test.d.ts +1 -1
  260. package/dist/test/text-overlay.test.js +48 -48
  261. package/dist/test/text-snippet-block.test.d.ts +1 -1
  262. package/dist/test/text-snippet-block.test.js +57 -57
  263. package/dist/test/tile-stats.test.d.ts +1 -1
  264. package/dist/test/tile-stats.test.js +81 -81
  265. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  266. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  267. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  268. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  269. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  270. package/dist/test/tiles/grid/item-tile.test.js +312 -312
  271. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  272. package/dist/test/tiles/grid/search-tile.test.js +51 -51
  273. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  274. package/dist/test/tiles/hover/hover-pane-controller.test.js +259 -259
  275. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  276. package/dist/test/tiles/hover/tile-hover-pane.test.js +56 -56
  277. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  278. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  279. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  280. package/dist/test/tiles/list/tile-list.test.js +297 -297
  281. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  282. package/dist/test/tiles/tile-dispatcher.test.js +100 -100
  283. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  284. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  285. package/dist/test/utils/array-equals.test.d.ts +1 -1
  286. package/dist/test/utils/array-equals.test.js +26 -26
  287. package/dist/test/utils/format-count.test.d.ts +1 -1
  288. package/dist/test/utils/format-count.test.js +23 -23
  289. package/dist/test/utils/format-date.test.d.ts +1 -1
  290. package/dist/test/utils/format-date.test.js +17 -17
  291. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  292. package/dist/test/utils/format-unit-size.test.js +17 -17
  293. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  294. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  295. package/local.archive.org.cert +86 -86
  296. package/local.archive.org.key +27 -27
  297. package/package.json +1 -1
  298. package/renovate.json +6 -6
  299. package/src/collection-browser.ts +26 -10
  300. package/src/collection-facets/facet-row.ts +3 -0
  301. package/src/collection-facets/facets-template.ts +3 -1
  302. package/src/collection-facets.ts +20 -2
  303. package/src/data-source/collection-browser-data-source.ts +1 -5
  304. package/src/empty-placeholder.ts +18 -5
  305. package/src/models.ts +8 -1
  306. package/src/sort-filter-bar/sort-filter-bar.ts +4 -0
  307. package/web-dev-server.config.mjs +30 -30
  308. package/web-test-runner.config.mjs +41 -41
@@ -1,281 +1,281 @@
1
- import { __decorate } from "tslib";
2
- import { expect, fixture } from '@open-wc/testing';
3
- import { html, LitElement, nothing } from 'lit';
4
- import { customElement, property, query } from 'lit/decorators.js';
5
- import { HoverPaneController, } from '../../../src/tiles/hover/hover-pane-controller';
6
- import { TileModel } from '../../../src/models';
7
- let HostElement = class HostElement extends LitElement {
8
- constructor() {
9
- super(...arguments);
10
- this.suppressHoverPane = false;
11
- }
12
- render() {
13
- var _a;
14
- return html ` ${(_a = this.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()} `;
15
- }
16
- firstUpdated() {
17
- this.controller = new HoverPaneController(this, this.controllerOptions);
18
- }
19
- getHoverPane() {
20
- return this.suppressHoverPane ? undefined : this.hoverPane;
21
- }
22
- getHoverPaneProps() {
23
- const tileModel = new TileModel({});
24
- tileModel.checked = false;
25
- tileModel.collectionFilesCount = 1;
26
- tileModel.collections = ['foo', 'bar'];
27
- tileModel.collectionSize = 1;
28
- tileModel.commentCount = 1;
29
- tileModel.contentWarning = false;
30
- tileModel.creators = ['foo', 'bar'];
31
- tileModel.favCount = 1;
32
- tileModel.identifier = 'foo';
33
- tileModel.itemCount = 1;
34
- tileModel.loginRequired = false;
35
- tileModel.mediatype = 'data';
36
- tileModel.subjects = ['foo', 'bar'];
37
- tileModel.title = 'foo';
38
- tileModel.viewCount = 1;
39
- return {
40
- model: tileModel,
41
- loggedIn: false,
42
- sortParam: null,
43
- };
44
- }
45
- };
46
- __decorate([
47
- property({ type: Object })
48
- ], HostElement.prototype, "controllerOptions", void 0);
49
- __decorate([
50
- property({ type: Boolean })
51
- ], HostElement.prototype, "suppressHoverPane", void 0);
52
- __decorate([
53
- query('tile-hover-pane')
54
- ], HostElement.prototype, "hoverPane", void 0);
55
- HostElement = __decorate([
56
- customElement('host-element')
57
- ], HostElement);
58
- describe('Hover Pane Controller', () => {
59
- let oldMatchMedia;
60
- let oldOnTouchStart;
61
- before(() => {
62
- oldMatchMedia = window.matchMedia;
63
- oldOnTouchStart = window.ontouchstart;
64
- window.matchMedia = () => ({ matches: true });
65
- window.ontouchstart = () => { };
66
- });
67
- after(() => {
68
- window.matchMedia = oldMatchMedia;
69
- window.ontouchstart = oldOnTouchStart;
70
- });
71
- it('should initially provide empty template', async () => {
72
- var _a;
73
- const host = await fixture(html `<host-element></host-element>`);
74
- expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).to.equal(nothing);
75
- });
76
- it('should produce a hover pane template after mousemove, and hide it after mouseleave', async () => {
77
- var _a, _b;
1
+ import { __decorate } from "tslib";
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import { html, LitElement, nothing } from 'lit';
4
+ import { customElement, property, query } from 'lit/decorators.js';
5
+ import { HoverPaneController, } from '../../../src/tiles/hover/hover-pane-controller';
6
+ import { TileModel } from '../../../src/models';
7
+ let HostElement = class HostElement extends LitElement {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.suppressHoverPane = false;
11
+ }
12
+ render() {
13
+ var _a;
14
+ return html ` ${(_a = this.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()} `;
15
+ }
16
+ firstUpdated() {
17
+ this.controller = new HoverPaneController(this, this.controllerOptions);
18
+ }
19
+ getHoverPane() {
20
+ return this.suppressHoverPane ? undefined : this.hoverPane;
21
+ }
22
+ getHoverPaneProps() {
23
+ const tileModel = new TileModel({});
24
+ tileModel.checked = false;
25
+ tileModel.collectionFilesCount = 1;
26
+ tileModel.collections = ['foo', 'bar'];
27
+ tileModel.collectionSize = 1;
28
+ tileModel.commentCount = 1;
29
+ tileModel.contentWarning = false;
30
+ tileModel.creators = ['foo', 'bar'];
31
+ tileModel.favCount = 1;
32
+ tileModel.identifier = 'foo';
33
+ tileModel.itemCount = 1;
34
+ tileModel.loginRequired = false;
35
+ tileModel.mediatype = 'data';
36
+ tileModel.subjects = ['foo', 'bar'];
37
+ tileModel.title = 'foo';
38
+ tileModel.viewCount = 1;
39
+ return {
40
+ model: tileModel,
41
+ loggedIn: false,
42
+ sortParam: null,
43
+ };
44
+ }
45
+ };
46
+ __decorate([
47
+ property({ type: Object })
48
+ ], HostElement.prototype, "controllerOptions", void 0);
49
+ __decorate([
50
+ property({ type: Boolean })
51
+ ], HostElement.prototype, "suppressHoverPane", void 0);
52
+ __decorate([
53
+ query('tile-hover-pane')
54
+ ], HostElement.prototype, "hoverPane", void 0);
55
+ HostElement = __decorate([
56
+ customElement('host-element')
57
+ ], HostElement);
58
+ describe('Hover Pane Controller', () => {
59
+ let oldMatchMedia;
60
+ let oldOnTouchStart;
61
+ before(() => {
62
+ oldMatchMedia = window.matchMedia;
63
+ oldOnTouchStart = window.ontouchstart;
64
+ window.matchMedia = () => ({ matches: true });
65
+ window.ontouchstart = () => { };
66
+ });
67
+ after(() => {
68
+ window.matchMedia = oldMatchMedia;
69
+ window.ontouchstart = oldOnTouchStart;
70
+ });
71
+ it('should initially provide empty template', async () => {
72
+ var _a;
73
+ const host = await fixture(html `<host-element></host-element>`);
74
+ expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).to.equal(nothing);
75
+ });
76
+ it('should produce a hover pane template after mousemove, and hide it after mouseleave', async () => {
77
+ var _a, _b;
78
78
  const host = await fixture(html `<host-element
79
79
  .controllerOptions=${{ showDelay: 0, hideDelay: 0 }}
80
- ></host-element>`);
81
- host.dispatchEvent(new MouseEvent('mousemove'));
82
- // Need to wait a tick for the event handlers to run
83
- await new Promise(resolve => {
84
- setTimeout(resolve, 0);
85
- });
86
- expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).not.to.equal(nothing); // Is a TemplateResult
87
- host.dispatchEvent(new MouseEvent('mouseleave'));
88
- // Need to wait for the fade out transition
89
- await new Promise(resolve => {
90
- setTimeout(resolve, 150);
91
- });
92
- expect((_b = host.controller) === null || _b === void 0 ? void 0 : _b.getTemplate()).to.equal(nothing);
93
- });
94
- it('should produce a hover pane template after mouseenter, even without mousemove', async () => {
95
- var _a;
80
+ ></host-element>`);
81
+ host.dispatchEvent(new MouseEvent('mousemove'));
82
+ // Need to wait a tick for the event handlers to run
83
+ await new Promise(resolve => {
84
+ setTimeout(resolve, 0);
85
+ });
86
+ expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).not.to.equal(nothing); // Is a TemplateResult
87
+ host.dispatchEvent(new MouseEvent('mouseleave'));
88
+ // Need to wait for the fade out transition
89
+ await new Promise(resolve => {
90
+ setTimeout(resolve, 150);
91
+ });
92
+ expect((_b = host.controller) === null || _b === void 0 ? void 0 : _b.getTemplate()).to.equal(nothing);
93
+ });
94
+ it('should produce a hover pane template after mouseenter, even without mousemove', async () => {
95
+ var _a;
96
96
  const host = await fixture(html `<host-element
97
97
  .controllerOptions=${{ showDelay: 0, hideDelay: 0 }}
98
- ></host-element>`);
99
- host.dispatchEvent(new MouseEvent('mouseenter'));
100
- // Need to wait a tick for the event handlers to run
101
- await new Promise(resolve => {
102
- setTimeout(resolve, 0);
103
- });
104
- expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).not.to.equal(nothing); // Is a TemplateResult
105
- });
106
- it('should immediately fade back in if mouse enters while fading out', async () => {
107
- var _a;
98
+ ></host-element>`);
99
+ host.dispatchEvent(new MouseEvent('mouseenter'));
100
+ // Need to wait a tick for the event handlers to run
101
+ await new Promise(resolve => {
102
+ setTimeout(resolve, 0);
103
+ });
104
+ expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).not.to.equal(nothing); // Is a TemplateResult
105
+ });
106
+ it('should immediately fade back in if mouse enters while fading out', async () => {
107
+ var _a;
108
108
  const host = await fixture(html `<host-element
109
109
  .controllerOptions=${{ showDelay: 0, hideDelay: 0 }}
110
- ></host-element>`);
111
- // Enter the host element and wait for the show handlers to run
112
- host.dispatchEvent(new MouseEvent('mousemove'));
113
- await new Promise(resolve => {
114
- setTimeout(resolve, 0);
115
- });
116
- // Leave the host element so it begins fading out, but not all the way
117
- host.dispatchEvent(new MouseEvent('mouseleave'));
118
- await new Promise(resolve => {
119
- setTimeout(resolve, 20);
120
- });
121
- // Re-enter the host element and wait long enough that it would disappear
122
- // if the hide were not cancelled
123
- host.dispatchEvent(new MouseEvent('mousemove'));
124
- await new Promise(resolve => {
125
- setTimeout(resolve, 150);
126
- });
127
- expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).not.to.equal(nothing);
128
- });
129
- it('should flip hover pane if it would overflow the viewport', async () => {
130
- var _a, _b, _c, _d, _e;
110
+ ></host-element>`);
111
+ // Enter the host element and wait for the show handlers to run
112
+ host.dispatchEvent(new MouseEvent('mousemove'));
113
+ await new Promise(resolve => {
114
+ setTimeout(resolve, 0);
115
+ });
116
+ // Leave the host element so it begins fading out, but not all the way
117
+ host.dispatchEvent(new MouseEvent('mouseleave'));
118
+ await new Promise(resolve => {
119
+ setTimeout(resolve, 20);
120
+ });
121
+ // Re-enter the host element and wait long enough that it would disappear
122
+ // if the hide were not cancelled
123
+ host.dispatchEvent(new MouseEvent('mousemove'));
124
+ await new Promise(resolve => {
125
+ setTimeout(resolve, 150);
126
+ });
127
+ expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).not.to.equal(nothing);
128
+ });
129
+ it('should flip hover pane if it would overflow the viewport', async () => {
130
+ var _a, _b, _c, _d, _e;
131
131
  const host = await fixture(html `<host-element
132
132
  .controllerOptions=${{ showDelay: 0, hideDelay: 0 }}
133
- ></host-element>`);
134
- host.dispatchEvent(new MouseEvent('mousemove', { clientX: 800, clientY: 600 }));
135
- // Need to wait a tick for the event handlers to run
136
- await new Promise(resolve => {
137
- setTimeout(resolve, 0);
138
- });
139
- await host.updateComplete;
140
- expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).not.to.equal(nothing);
141
- expect((_c = (_b = host.getHoverPane()) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect()) === null || _c === void 0 ? void 0 : _c.right).to.be.lessThan(window.innerWidth);
142
- expect((_e = (_d = host.getHoverPane()) === null || _d === void 0 ? void 0 : _d.getBoundingClientRect()) === null || _e === void 0 ? void 0 : _e.bottom).to.be.lessThan(window.innerHeight);
143
- });
144
- it('should gracefully handle undefined hover pane from host element', async () => {
145
- var _a, _b;
133
+ ></host-element>`);
134
+ host.dispatchEvent(new MouseEvent('mousemove', { clientX: 800, clientY: 600 }));
135
+ // Need to wait a tick for the event handlers to run
136
+ await new Promise(resolve => {
137
+ setTimeout(resolve, 0);
138
+ });
139
+ await host.updateComplete;
140
+ expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).not.to.equal(nothing);
141
+ expect((_c = (_b = host.getHoverPane()) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect()) === null || _c === void 0 ? void 0 : _c.right).to.be.lessThan(window.innerWidth);
142
+ expect((_e = (_d = host.getHoverPane()) === null || _d === void 0 ? void 0 : _d.getBoundingClientRect()) === null || _e === void 0 ? void 0 : _e.bottom).to.be.lessThan(window.innerHeight);
143
+ });
144
+ it('should gracefully handle undefined hover pane from host element', async () => {
145
+ var _a, _b;
146
146
  const host = await fixture(html `<host-element
147
147
  .controllerOptions=${{ showDelay: 0, hideDelay: 0 }}
148
148
  ?suppressHoverPane=${true}
149
- ></host-element>`);
150
- host.dispatchEvent(new MouseEvent('mousemove'));
151
- // Need to wait a tick for the event handlers to run
152
- await new Promise(resolve => {
153
- setTimeout(resolve, 0);
154
- });
155
- expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).not.to.equal(nothing);
156
- host.dispatchEvent(new MouseEvent('mouseleave'));
157
- await new Promise(resolve => {
158
- setTimeout(resolve, 20);
159
- });
160
- host.dispatchEvent(new MouseEvent('mousemove'));
161
- await new Promise(resolve => {
162
- setTimeout(resolve, 0);
163
- });
164
- host.dispatchEvent(new MouseEvent('mouseleave'));
165
- // Need to wait for the fade out transition
166
- await new Promise(resolve => {
167
- setTimeout(resolve, 150);
168
- });
169
- expect((_b = host.controller) === null || _b === void 0 ? void 0 : _b.getTemplate()).to.equal(nothing);
170
- });
171
- describe('Touch & long-press', () => {
172
- const getTouchStartEvent = (host) => new TouchEvent('touchstart', {
173
- touches: [new Touch({ identifier: 0, target: host })],
174
- });
175
- it('should produce a hover pane after long press', async () => {
176
- var _a;
149
+ ></host-element>`);
150
+ host.dispatchEvent(new MouseEvent('mousemove'));
151
+ // Need to wait a tick for the event handlers to run
152
+ await new Promise(resolve => {
153
+ setTimeout(resolve, 0);
154
+ });
155
+ expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).not.to.equal(nothing);
156
+ host.dispatchEvent(new MouseEvent('mouseleave'));
157
+ await new Promise(resolve => {
158
+ setTimeout(resolve, 20);
159
+ });
160
+ host.dispatchEvent(new MouseEvent('mousemove'));
161
+ await new Promise(resolve => {
162
+ setTimeout(resolve, 0);
163
+ });
164
+ host.dispatchEvent(new MouseEvent('mouseleave'));
165
+ // Need to wait for the fade out transition
166
+ await new Promise(resolve => {
167
+ setTimeout(resolve, 150);
168
+ });
169
+ expect((_b = host.controller) === null || _b === void 0 ? void 0 : _b.getTemplate()).to.equal(nothing);
170
+ });
171
+ describe('Touch & long-press', () => {
172
+ const getTouchStartEvent = (host) => new TouchEvent('touchstart', {
173
+ touches: [new Touch({ identifier: 0, target: host })],
174
+ });
175
+ it('should produce a hover pane after long press', async () => {
176
+ var _a;
177
177
  const host = await fixture(html `<host-element
178
- .controllerOptions=${{
179
- showDelay: 0,
180
- longPressDelay: 0,
181
- enableLongPress: true,
178
+ .controllerOptions=${{
179
+ showDelay: 0,
180
+ longPressDelay: 0,
181
+ enableLongPress: true,
182
182
  }}
183
- ></host-element>`);
184
- // Touch the host element and wait for the long press handlers to run
185
- host.dispatchEvent(getTouchStartEvent(host));
186
- await new Promise(resolve => {
187
- setTimeout(resolve, 0);
188
- });
189
- expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).not.to.equal(nothing); // Is a TemplateResult
190
- });
191
- it('should cancel a long press by moving', async () => {
192
- var _a;
183
+ ></host-element>`);
184
+ // Touch the host element and wait for the long press handlers to run
185
+ host.dispatchEvent(getTouchStartEvent(host));
186
+ await new Promise(resolve => {
187
+ setTimeout(resolve, 0);
188
+ });
189
+ expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).not.to.equal(nothing); // Is a TemplateResult
190
+ });
191
+ it('should cancel a long press by moving', async () => {
192
+ var _a;
193
193
  const host = await fixture(html `<host-element
194
- .controllerOptions=${{
195
- showDelay: 0,
196
- longPressDelay: 100,
197
- enableLongPress: true,
194
+ .controllerOptions=${{
195
+ showDelay: 0,
196
+ longPressDelay: 100,
197
+ enableLongPress: true,
198
198
  }}
199
- ></host-element>`);
200
- // Touch the host element
201
- host.dispatchEvent(getTouchStartEvent(host));
202
- await new Promise(resolve => {
203
- setTimeout(resolve, 0);
204
- });
205
- // Move the touch point, cancelling the long press
206
- host.dispatchEvent(new TouchEvent('touchmove'));
207
- await new Promise(resolve => {
208
- setTimeout(resolve, 150);
209
- });
210
- expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).to.equal(nothing);
211
- });
212
- it('should cancel a long press by ending touch', async () => {
213
- var _a;
199
+ ></host-element>`);
200
+ // Touch the host element
201
+ host.dispatchEvent(getTouchStartEvent(host));
202
+ await new Promise(resolve => {
203
+ setTimeout(resolve, 0);
204
+ });
205
+ // Move the touch point, cancelling the long press
206
+ host.dispatchEvent(new TouchEvent('touchmove'));
207
+ await new Promise(resolve => {
208
+ setTimeout(resolve, 150);
209
+ });
210
+ expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).to.equal(nothing);
211
+ });
212
+ it('should cancel a long press by ending touch', async () => {
213
+ var _a;
214
214
  const host = await fixture(html `<host-element
215
- .controllerOptions=${{
216
- showDelay: 0,
217
- longPressDelay: 100,
218
- enableLongPress: true,
215
+ .controllerOptions=${{
216
+ showDelay: 0,
217
+ longPressDelay: 100,
218
+ enableLongPress: true,
219
219
  }}
220
- ></host-element>`);
221
- // Touch the host element
222
- host.dispatchEvent(getTouchStartEvent(host));
223
- await new Promise(resolve => {
224
- setTimeout(resolve, 0);
225
- });
226
- // Lift the touch point, cancelling the long press
227
- host.dispatchEvent(new TouchEvent('touchend'));
228
- await new Promise(resolve => {
229
- setTimeout(resolve, 150);
230
- });
231
- expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).to.equal(nothing);
232
- });
233
- it('should cancel a long press by cancelling touch (e.g., too many touch points)', async () => {
234
- var _a;
220
+ ></host-element>`);
221
+ // Touch the host element
222
+ host.dispatchEvent(getTouchStartEvent(host));
223
+ await new Promise(resolve => {
224
+ setTimeout(resolve, 0);
225
+ });
226
+ // Lift the touch point, cancelling the long press
227
+ host.dispatchEvent(new TouchEvent('touchend'));
228
+ await new Promise(resolve => {
229
+ setTimeout(resolve, 150);
230
+ });
231
+ expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).to.equal(nothing);
232
+ });
233
+ it('should cancel a long press by cancelling touch (e.g., too many touch points)', async () => {
234
+ var _a;
235
235
  const host = await fixture(html `<host-element
236
- .controllerOptions=${{
237
- showDelay: 0,
238
- longPressDelay: 100,
239
- enableLongPress: true,
236
+ .controllerOptions=${{
237
+ showDelay: 0,
238
+ longPressDelay: 100,
239
+ enableLongPress: true,
240
240
  }}
241
- ></host-element>`);
242
- // Touch the host element
243
- host.dispatchEvent(getTouchStartEvent(host));
244
- await new Promise(resolve => {
245
- setTimeout(resolve, 0);
246
- });
247
- // Cancel the touch point, also cancelling the long press
248
- host.dispatchEvent(new TouchEvent('touchcancel'));
249
- await new Promise(resolve => {
250
- setTimeout(resolve, 150);
251
- });
252
- expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).to.equal(nothing);
253
- });
254
- it('should close the hover pane on mobile when touching the backdrop', async () => {
255
- var _a, _b, _c, _d;
241
+ ></host-element>`);
242
+ // Touch the host element
243
+ host.dispatchEvent(getTouchStartEvent(host));
244
+ await new Promise(resolve => {
245
+ setTimeout(resolve, 0);
246
+ });
247
+ // Cancel the touch point, also cancelling the long press
248
+ host.dispatchEvent(new TouchEvent('touchcancel'));
249
+ await new Promise(resolve => {
250
+ setTimeout(resolve, 150);
251
+ });
252
+ expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).to.equal(nothing);
253
+ });
254
+ it('should close the hover pane on mobile when touching the backdrop', async () => {
255
+ var _a, _b, _c, _d;
256
256
  const host = await fixture(html `<host-element
257
- .controllerOptions=${{
258
- showDelay: 0,
259
- hideDelay: 0,
260
- longPressDelay: 0,
261
- enableLongPress: true,
262
- mobileBreakpoint: 9999, // Ensure we get the mobile view
257
+ .controllerOptions=${{
258
+ showDelay: 0,
259
+ hideDelay: 0,
260
+ longPressDelay: 0,
261
+ enableLongPress: true,
262
+ mobileBreakpoint: 9999, // Ensure we get the mobile view
263
263
  }}
264
- ></host-element>`);
265
- // Touch the host element
266
- host.dispatchEvent(getTouchStartEvent(host));
267
- await new Promise(resolve => {
268
- setTimeout(resolve, 0);
269
- });
270
- expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).not.to.equal(nothing);
271
- await host.updateComplete;
272
- // Touch the backdrop
273
- (_c = (_b = host.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#touch-backdrop')) === null || _c === void 0 ? void 0 : _c.dispatchEvent(new TouchEvent('touchstart'));
274
- await new Promise(resolve => {
275
- setTimeout(resolve, 150);
276
- });
277
- expect((_d = host.controller) === null || _d === void 0 ? void 0 : _d.getTemplate()).to.equal(nothing);
278
- });
279
- });
280
- });
264
+ ></host-element>`);
265
+ // Touch the host element
266
+ host.dispatchEvent(getTouchStartEvent(host));
267
+ await new Promise(resolve => {
268
+ setTimeout(resolve, 0);
269
+ });
270
+ expect((_a = host.controller) === null || _a === void 0 ? void 0 : _a.getTemplate()).not.to.equal(nothing);
271
+ await host.updateComplete;
272
+ // Touch the backdrop
273
+ (_c = (_b = host.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#touch-backdrop')) === null || _c === void 0 ? void 0 : _c.dispatchEvent(new TouchEvent('touchstart'));
274
+ await new Promise(resolve => {
275
+ setTimeout(resolve, 150);
276
+ });
277
+ expect((_d = host.controller) === null || _d === void 0 ? void 0 : _d.getTemplate()).to.equal(nothing);
278
+ });
279
+ });
280
+ });
281
281
  //# sourceMappingURL=hover-pane-controller.test.js.map
@@ -1 +1 @@
1
- import '../../../src/tiles/hover/tile-hover-pane';
1
+ import '../../../src/tiles/hover/tile-hover-pane';