@internetarchive/collection-browser 2.1.8-alpha.5 → 2.1.8-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 (297) 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 +88 -88
  8. package/dist/src/app-root.js +475 -475
  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 +446 -446
  72. package/dist/src/collection-browser.js +1411 -1409
  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 +114 -114
  76. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  77. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  78. package/dist/src/collection-facets/facets-template.d.ts +17 -17
  79. package/dist/src/collection-facets/facets-template.js +114 -114
  80. package/dist/src/collection-facets/more-facets-content.d.ts +70 -74
  81. package/dist/src/collection-facets/more-facets-content.js +354 -357
  82. package/dist/src/collection-facets/more-facets-content.js.map +1 -1
  83. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  84. package/dist/src/collection-facets/more-facets-pagination.js +196 -196
  85. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  86. package/dist/src/collection-facets/toggle-switch.js +94 -94
  87. package/dist/src/collection-facets.d.ts +103 -103
  88. package/dist/src/collection-facets.js +510 -511
  89. package/dist/src/collection-facets.js.map +1 -1
  90. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +236 -236
  91. package/dist/src/data-source/collection-browser-data-source-interface.js +1 -1
  92. package/dist/src/data-source/collection-browser-data-source.d.ts +364 -364
  93. package/dist/src/data-source/collection-browser-data-source.js +946 -946
  94. package/dist/src/data-source/collection-browser-query-state.d.ts +43 -43
  95. package/dist/src/data-source/collection-browser-query-state.js +1 -1
  96. package/dist/src/data-source/models.d.ts +28 -28
  97. package/dist/src/data-source/models.js +8 -8
  98. package/dist/src/empty-placeholder.d.ts +23 -23
  99. package/dist/src/empty-placeholder.js +74 -74
  100. package/dist/src/expanded-date-picker.d.ts +43 -43
  101. package/dist/src/expanded-date-picker.js +109 -109
  102. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  103. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  104. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  105. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  106. package/dist/src/manage/manage-bar.d.ts +30 -30
  107. package/dist/src/manage/manage-bar.js +61 -61
  108. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  109. package/dist/src/mediatype/mediatype-config.js +91 -91
  110. package/dist/src/models.d.ts +198 -198
  111. package/dist/src/models.js +381 -381
  112. package/dist/src/restoration-state-handler.d.ts +70 -70
  113. package/dist/src/restoration-state-handler.js +357 -357
  114. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  115. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  116. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  117. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  118. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  119. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  120. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  121. package/dist/src/sort-filter-bar/img/list.js +2 -2
  122. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  123. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  124. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  125. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  126. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  127. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  128. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  129. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  130. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  131. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  132. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +221 -221
  133. package/dist/src/sort-filter-bar/sort-filter-bar.js +691 -691
  134. package/dist/src/styles/ia-button.d.ts +2 -2
  135. package/dist/src/styles/ia-button.js +16 -16
  136. package/dist/src/styles/item-image-styles.d.ts +8 -8
  137. package/dist/src/styles/item-image-styles.js +9 -9
  138. package/dist/src/styles/sr-only.d.ts +1 -1
  139. package/dist/src/styles/sr-only.js +2 -2
  140. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  141. package/dist/src/tiles/base-tile-component.js +63 -63
  142. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  143. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  144. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  145. package/dist/src/tiles/grid/account-tile.js +72 -72
  146. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  147. package/dist/src/tiles/grid/collection-tile.js +80 -80
  148. package/dist/src/tiles/grid/item-tile.d.ts +30 -30
  149. package/dist/src/tiles/grid/item-tile.js +149 -149
  150. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  151. package/dist/src/tiles/grid/search-tile.js +51 -51
  152. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  153. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  154. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  155. package/dist/src/tiles/grid/tile-stats.js +53 -53
  156. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  157. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  158. package/dist/src/tiles/hover/tile-hover-pane.d.ts +15 -15
  159. package/dist/src/tiles/hover/tile-hover-pane.js +38 -38
  160. package/dist/src/tiles/image-block.d.ts +17 -17
  161. package/dist/src/tiles/image-block.js +73 -73
  162. package/dist/src/tiles/item-image.d.ts +39 -39
  163. package/dist/src/tiles/item-image.js +154 -154
  164. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  165. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  166. package/dist/src/tiles/list/tile-list-compact.d.ts +15 -15
  167. package/dist/src/tiles/list/tile-list-compact.js +114 -114
  168. package/dist/src/tiles/list/tile-list.d.ts +50 -50
  169. package/dist/src/tiles/list/tile-list.js +315 -315
  170. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  171. package/dist/src/tiles/mediatype-icon.js +47 -47
  172. package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
  173. package/dist/src/tiles/overlay/icon-overlay.js +40 -40
  174. package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
  175. package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
  176. package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
  177. package/dist/src/tiles/overlay/text-overlay.js +42 -42
  178. package/dist/src/tiles/review-block.d.ts +12 -12
  179. package/dist/src/tiles/review-block.js +56 -56
  180. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  181. package/dist/src/tiles/text-snippet-block.js +73 -73
  182. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  183. package/dist/src/tiles/tile-dispatcher.js +229 -229
  184. package/dist/src/tiles/tile-display-value-provider.d.ts +47 -47
  185. package/dist/src/tiles/tile-display-value-provider.js +94 -94
  186. package/dist/src/utils/analytics-events.d.ts +26 -26
  187. package/dist/src/utils/analytics-events.js +28 -28
  188. package/dist/src/utils/array-equals.d.ts +4 -4
  189. package/dist/src/utils/array-equals.js +10 -10
  190. package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -11
  191. package/dist/src/utils/collapse-repeated-quotes.js +13 -13
  192. package/dist/src/utils/format-count.d.ts +7 -7
  193. package/dist/src/utils/format-count.js +76 -76
  194. package/dist/src/utils/format-date.d.ts +2 -2
  195. package/dist/src/utils/format-date.js +25 -25
  196. package/dist/src/utils/format-unit-size.d.ts +2 -2
  197. package/dist/src/utils/format-unit-size.js +33 -33
  198. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  199. package/dist/src/utils/local-date-from-utc.js +15 -15
  200. package/dist/src/utils/log.d.ts +7 -7
  201. package/dist/src/utils/log.js +15 -15
  202. package/dist/src/utils/resolve-mediatype.d.ts +8 -8
  203. package/dist/src/utils/resolve-mediatype.js +23 -23
  204. package/dist/src/utils/sha1.d.ts +2 -2
  205. package/dist/src/utils/sha1.js +8 -8
  206. package/dist/test/collection-browser.test.d.ts +1 -1
  207. package/dist/test/collection-browser.test.js +1283 -1283
  208. package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
  209. package/dist/test/collection-facets/facet-row.test.js +203 -203
  210. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  211. package/dist/test/collection-facets/facets-template.test.js +105 -105
  212. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  213. package/dist/test/collection-facets/more-facets-content.test.js +133 -133
  214. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  215. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  216. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  217. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  218. package/dist/test/collection-facets.test.d.ts +2 -2
  219. package/dist/test/collection-facets.test.js +652 -652
  220. package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -1
  221. package/dist/test/data-source/collection-browser-data-source.test.js +89 -89
  222. package/dist/test/empty-placeholder.test.d.ts +1 -1
  223. package/dist/test/empty-placeholder.test.js +63 -63
  224. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  225. package/dist/test/expanded-date-picker.test.js +95 -95
  226. package/dist/test/icon-overlay.test.d.ts +1 -1
  227. package/dist/test/icon-overlay.test.js +24 -24
  228. package/dist/test/image-block.test.d.ts +1 -1
  229. package/dist/test/image-block.test.js +48 -48
  230. package/dist/test/item-image.test.d.ts +1 -1
  231. package/dist/test/item-image.test.js +85 -85
  232. package/dist/test/manage/manage-bar.test.d.ts +1 -1
  233. package/dist/test/manage/manage-bar.test.js +81 -81
  234. package/dist/test/mediatype-config.test.d.ts +1 -1
  235. package/dist/test/mediatype-config.test.js +16 -16
  236. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  237. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  238. package/dist/test/mocks/mock-search-responses.d.ts +24 -24
  239. package/dist/test/mocks/mock-search-responses.js +860 -860
  240. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  241. package/dist/test/mocks/mock-search-service.js +53 -53
  242. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  243. package/dist/test/restoration-state-handler.test.js +270 -270
  244. package/dist/test/review-block.test.d.ts +1 -1
  245. package/dist/test/review-block.test.js +44 -44
  246. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  247. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  248. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  249. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  250. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  251. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +426 -426
  252. package/dist/test/text-overlay.test.d.ts +1 -1
  253. package/dist/test/text-overlay.test.js +48 -48
  254. package/dist/test/text-snippet-block.test.d.ts +1 -1
  255. package/dist/test/text-snippet-block.test.js +57 -57
  256. package/dist/test/tile-stats.test.d.ts +1 -1
  257. package/dist/test/tile-stats.test.js +81 -81
  258. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  259. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  260. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  261. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  262. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  263. package/dist/test/tiles/grid/item-tile.test.js +312 -312
  264. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  265. package/dist/test/tiles/grid/search-tile.test.js +51 -51
  266. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  267. package/dist/test/tiles/hover/hover-pane-controller.test.js +259 -259
  268. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  269. package/dist/test/tiles/hover/tile-hover-pane.test.js +13 -13
  270. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  271. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  272. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  273. package/dist/test/tiles/list/tile-list.test.js +297 -297
  274. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  275. package/dist/test/tiles/tile-dispatcher.test.js +100 -100
  276. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  277. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  278. package/dist/test/utils/array-equals.test.d.ts +1 -1
  279. package/dist/test/utils/array-equals.test.js +26 -26
  280. package/dist/test/utils/format-count.test.d.ts +1 -1
  281. package/dist/test/utils/format-count.test.js +23 -23
  282. package/dist/test/utils/format-date.test.d.ts +1 -1
  283. package/dist/test/utils/format-date.test.js +17 -17
  284. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  285. package/dist/test/utils/format-unit-size.test.js +17 -17
  286. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  287. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  288. package/local.archive.org.cert +86 -86
  289. package/local.archive.org.key +27 -27
  290. package/package.json +1 -1
  291. package/renovate.json +6 -6
  292. package/src/collection-browser.ts +3 -2
  293. package/src/collection-facets/more-facets-content.ts +13 -18
  294. package/src/collection-facets.ts +5 -7
  295. package/tsconfig.json +21 -21
  296. package/web-dev-server.config.mjs +30 -30
  297. 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';
@@ -1,14 +1,14 @@
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
- });
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
+ });
14
14
  //# sourceMappingURL=tile-hover-pane.test.js.map
@@ -1 +1 @@
1
- import '../../../src/tiles/list/tile-list-compact';
1
+ import '../../../src/tiles/list/tile-list-compact';