@internetarchive/collection-browser 2.3.0 → 2.4.0

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 (299) 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 +466 -466
  72. package/dist/src/collection-browser.js +1475 -1475
  73. package/dist/src/collection-facets/facet-row.d.ts +30 -30
  74. package/dist/src/collection-facets/facet-row.js +114 -114
  75. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  76. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  77. package/dist/src/collection-facets/facets-template.d.ts +17 -17
  78. package/dist/src/collection-facets/facets-template.js +114 -114
  79. package/dist/src/collection-facets/more-facets-content.d.ts +74 -74
  80. package/dist/src/collection-facets/more-facets-content.js +360 -360
  81. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  82. package/dist/src/collection-facets/more-facets-pagination.js +196 -196
  83. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  84. package/dist/src/collection-facets/toggle-switch.js +94 -94
  85. package/dist/src/collection-facets.d.ts +103 -103
  86. package/dist/src/collection-facets.js +510 -510
  87. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +241 -241
  88. package/dist/src/data-source/collection-browser-data-source-interface.js +1 -1
  89. package/dist/src/data-source/collection-browser-data-source.d.ts +378 -378
  90. package/dist/src/data-source/collection-browser-data-source.js +985 -985
  91. package/dist/src/data-source/collection-browser-query-state.d.ts +43 -43
  92. package/dist/src/data-source/collection-browser-query-state.js +1 -1
  93. package/dist/src/data-source/models.d.ts +28 -28
  94. package/dist/src/data-source/models.js +8 -8
  95. package/dist/src/empty-placeholder.d.ts +23 -23
  96. package/dist/src/empty-placeholder.js +74 -74
  97. package/dist/src/expanded-date-picker.d.ts +43 -43
  98. package/dist/src/expanded-date-picker.js +109 -109
  99. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  100. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  101. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  102. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  103. package/dist/src/manage/manage-bar.d.ts +30 -30
  104. package/dist/src/manage/manage-bar.js +61 -61
  105. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  106. package/dist/src/mediatype/mediatype-config.js +91 -91
  107. package/dist/src/models.d.ts +209 -209
  108. package/dist/src/models.js +381 -381
  109. package/dist/src/restoration-state-handler.d.ts +70 -70
  110. package/dist/src/restoration-state-handler.js +357 -357
  111. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  112. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  113. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  114. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  115. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  116. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  117. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  118. package/dist/src/sort-filter-bar/img/list.js +2 -2
  119. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  120. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  121. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  122. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  123. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  124. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  125. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  126. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  127. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  128. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  129. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +222 -222
  130. package/dist/src/sort-filter-bar/sort-filter-bar.js +696 -696
  131. package/dist/src/styles/ia-button.d.ts +2 -2
  132. package/dist/src/styles/ia-button.js +16 -16
  133. package/dist/src/styles/item-image-styles.d.ts +8 -8
  134. package/dist/src/styles/item-image-styles.js +9 -9
  135. package/dist/src/styles/sr-only.d.ts +1 -1
  136. package/dist/src/styles/sr-only.js +2 -2
  137. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  138. package/dist/src/tiles/base-tile-component.js +63 -63
  139. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  140. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  141. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  142. package/dist/src/tiles/grid/account-tile.js +72 -72
  143. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  144. package/dist/src/tiles/grid/collection-tile.js +80 -80
  145. package/dist/src/tiles/grid/item-tile.d.ts +30 -30
  146. package/dist/src/tiles/grid/item-tile.js +149 -149
  147. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  148. package/dist/src/tiles/grid/search-tile.js +51 -51
  149. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  150. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  151. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  152. package/dist/src/tiles/grid/tile-stats.js +53 -53
  153. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  154. package/dist/src/tiles/hover/hover-pane-controller.js +354 -352
  155. package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
  156. package/dist/src/tiles/hover/tile-hover-pane.d.ts +18 -15
  157. package/dist/src/tiles/hover/tile-hover-pane.js +127 -47
  158. package/dist/src/tiles/hover/tile-hover-pane.js.map +1 -1
  159. package/dist/src/tiles/image-block.d.ts +17 -17
  160. package/dist/src/tiles/image-block.js +74 -74
  161. package/dist/src/tiles/image-block.js.map +1 -1
  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 +28 -28
  187. package/dist/src/utils/analytics-events.js +30 -30
  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 +1293 -1293
  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 +139 -139
  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 +56 -13
  270. package/dist/test/tiles/hover/tile-hover-pane.test.js.map +1 -1
  271. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  272. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  273. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  274. package/dist/test/tiles/list/tile-list.test.js +297 -297
  275. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  276. package/dist/test/tiles/tile-dispatcher.test.js +100 -100
  277. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  278. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  279. package/dist/test/utils/array-equals.test.d.ts +1 -1
  280. package/dist/test/utils/array-equals.test.js +26 -26
  281. package/dist/test/utils/format-count.test.d.ts +1 -1
  282. package/dist/test/utils/format-count.test.js +23 -23
  283. package/dist/test/utils/format-date.test.d.ts +1 -1
  284. package/dist/test/utils/format-date.test.js +17 -17
  285. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  286. package/dist/test/utils/format-unit-size.test.js +17 -17
  287. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  288. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  289. package/local.archive.org.cert +86 -86
  290. package/local.archive.org.key +27 -27
  291. package/package.json +1 -1
  292. package/renovate.json +6 -6
  293. package/src/tiles/hover/hover-pane-controller.ts +2 -0
  294. package/src/tiles/hover/tile-hover-pane.ts +100 -11
  295. package/src/tiles/image-block.ts +1 -1
  296. package/test/tiles/hover/tile-hover-pane.test.ts +61 -0
  297. package/tsconfig.json +21 -21
  298. package/web-dev-server.config.mjs +30 -30
  299. package/web-test-runner.config.mjs +41 -41
@@ -1,377 +1,377 @@
1
- /* eslint-disable import/no-duplicates */
2
- import { expect, fixture } from '@open-wc/testing';
3
- import sinon from 'sinon';
4
- import { html } from 'lit';
5
- import '../../../src/tiles/grid/item-tile';
6
- describe('Item Tile', () => {
7
- it('should render initial component', async () => {
8
- var _a, _b, _c, _d, _e;
9
- const el = await fixture(html `<item-tile></item-tile>`);
10
- const container = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.container');
11
- const tileDetails = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.tile-details');
12
- const itemInfo = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.item-info');
13
- const itemTitle = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#title');
14
- const imageBlock = (_e = el.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector('image-block');
15
- expect(container).to.exist;
16
- expect(tileDetails).to.exist;
17
- expect(itemInfo).to.exist;
18
- expect(imageBlock).to.exist;
19
- expect(itemTitle).to.exist;
20
- });
21
- it('should render with created-by element', async () => {
22
- var _a, _b, _c, _d, _e;
23
- const el = await fixture(html `<item-tile .model=${{ creator: 'someone' }}></item-tile>`);
24
- const container = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.container');
25
- const tileDetails = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.tile-details');
26
- const itemInfo = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.item-info');
27
- const createdBy = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('.created-by');
28
- const truncatedCreatorText = createdBy === null || createdBy === void 0 ? void 0 : createdBy.querySelector('.truncated');
29
- const dateSortedBy = (_e = el.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector('.date-sorted-by');
30
- expect(container).to.exist;
31
- expect(tileDetails).to.exist;
32
- expect(itemInfo).to.exist;
33
- expect(createdBy).to.exist;
34
- expect(truncatedCreatorText).to.exist;
35
- expect(dateSortedBy).to.not.exist;
36
- });
37
- it('should not render with created-by but date element', async () => {
38
- var _a, _b;
39
- const el = await fixture(html `<item-tile .model=${{ datePublished: new Date() }}></item-tile>`);
40
- el.sortParam = {
41
- field: 'date',
42
- direction: 'desc',
43
- };
44
- await el.updateComplete;
45
- const createdBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.created-by');
46
- const dateSortedBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.date-sorted-by');
47
- expect(createdBy).to.not.exist;
48
- expect(dateSortedBy).to.exist;
49
- });
50
- it('should not render with created-by but reviewdate element', async () => {
51
- var _a, _b;
52
- const el = await fixture(html `<item-tile .model=${{ dateReviewed: new Date() }}></item-tile>`);
53
- el.sortParam = {
54
- field: 'reviewdate',
55
- direction: 'desc',
56
- };
57
- await el.updateComplete;
58
- const createdBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.created-by');
59
- const dateSortedBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.date-sorted-by');
60
- expect(createdBy).to.not.exist;
61
- expect(dateSortedBy).to.exist;
62
- });
63
- it('should not render with created-by but publicdate element', async () => {
64
- var _a, _b;
65
- const el = await fixture(html `<item-tile .model=${{ dateArchived: new Date() }}></item-tile>`);
66
- el.sortParam = {
67
- field: 'publicdate',
68
- direction: 'desc',
69
- };
70
- await el.updateComplete;
71
- const createdBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.created-by');
72
- const dateSortedBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.date-sorted-by');
73
- expect(createdBy).to.not.exist;
74
- expect(dateSortedBy).to.exist;
75
- });
76
- it('should not render date-sorted-by element if date is not provided', async () => {
77
- var _a, _b;
78
- const el = await fixture(html `<item-tile .model=${{ dateArchived: undefined }}></item-tile>`);
79
- el.sortParam = {
80
- field: 'publicdate',
81
- direction: 'desc',
82
- };
83
- await el.updateComplete;
84
- const createdBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.created-by');
85
- const dateSortedBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.date-sorted-by');
86
- expect(createdBy).to.not.exist;
87
- expect(dateSortedBy).to.not.exist;
88
- });
89
- it('should render without created-by when sorting by a date field', async () => {
90
- var _a, _b, _c;
91
- const el = await fixture(html `<item-tile .model=${{ dateAdded: new Date() }}></item-tile>`);
92
- el.sortParam = {
93
- field: 'addeddate',
94
- direction: 'asc',
95
- };
96
- await el.updateComplete;
97
- const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
98
- const createdBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.created-by');
99
- const dateSortedBy = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.date-sorted-by');
100
- expect(itemInfo).to.exist;
101
- expect(createdBy).to.not.exist;
102
- expect(dateSortedBy).to.exist;
103
- });
104
- it('should render with created-by when sort field is not a date', async () => {
105
- var _a, _b, _c;
106
- const el = await fixture(html `<item-tile .model=${{ creator: 'someone' }}></item-tile>`);
107
- el.sortParam = {
108
- field: 'week',
109
- direction: 'asc',
110
- };
111
- await el.updateComplete;
112
- const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
113
- const createdBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.created-by');
114
- const dateSortedBy = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.date-sorted-by');
115
- expect(itemInfo).to.exist;
116
- expect(dateSortedBy).to.not.exist; // it should not exist because this is not a date sort
117
- expect(createdBy).to.exist;
118
- });
119
- it('should render published date when sorting by it', async () => {
120
- var _a, _b;
121
- const model = {
122
- dateAdded: new Date(2010, 0, 2),
123
- dateArchived: new Date(2011, 0, 2),
124
- datePublished: new Date(2012, 0, 2),
125
- dateReviewed: new Date(2013, 0, 2),
126
- };
1
+ /* eslint-disable import/no-duplicates */
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import sinon from 'sinon';
4
+ import { html } from 'lit';
5
+ import '../../../src/tiles/grid/item-tile';
6
+ describe('Item Tile', () => {
7
+ it('should render initial component', async () => {
8
+ var _a, _b, _c, _d, _e;
9
+ const el = await fixture(html `<item-tile></item-tile>`);
10
+ const container = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.container');
11
+ const tileDetails = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.tile-details');
12
+ const itemInfo = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.item-info');
13
+ const itemTitle = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#title');
14
+ const imageBlock = (_e = el.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector('image-block');
15
+ expect(container).to.exist;
16
+ expect(tileDetails).to.exist;
17
+ expect(itemInfo).to.exist;
18
+ expect(imageBlock).to.exist;
19
+ expect(itemTitle).to.exist;
20
+ });
21
+ it('should render with created-by element', async () => {
22
+ var _a, _b, _c, _d, _e;
23
+ const el = await fixture(html `<item-tile .model=${{ creator: 'someone' }}></item-tile>`);
24
+ const container = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.container');
25
+ const tileDetails = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.tile-details');
26
+ const itemInfo = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.item-info');
27
+ const createdBy = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('.created-by');
28
+ const truncatedCreatorText = createdBy === null || createdBy === void 0 ? void 0 : createdBy.querySelector('.truncated');
29
+ const dateSortedBy = (_e = el.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector('.date-sorted-by');
30
+ expect(container).to.exist;
31
+ expect(tileDetails).to.exist;
32
+ expect(itemInfo).to.exist;
33
+ expect(createdBy).to.exist;
34
+ expect(truncatedCreatorText).to.exist;
35
+ expect(dateSortedBy).to.not.exist;
36
+ });
37
+ it('should not render with created-by but date element', async () => {
38
+ var _a, _b;
39
+ const el = await fixture(html `<item-tile .model=${{ datePublished: new Date() }}></item-tile>`);
40
+ el.sortParam = {
41
+ field: 'date',
42
+ direction: 'desc',
43
+ };
44
+ await el.updateComplete;
45
+ const createdBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.created-by');
46
+ const dateSortedBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.date-sorted-by');
47
+ expect(createdBy).to.not.exist;
48
+ expect(dateSortedBy).to.exist;
49
+ });
50
+ it('should not render with created-by but reviewdate element', async () => {
51
+ var _a, _b;
52
+ const el = await fixture(html `<item-tile .model=${{ dateReviewed: new Date() }}></item-tile>`);
53
+ el.sortParam = {
54
+ field: 'reviewdate',
55
+ direction: 'desc',
56
+ };
57
+ await el.updateComplete;
58
+ const createdBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.created-by');
59
+ const dateSortedBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.date-sorted-by');
60
+ expect(createdBy).to.not.exist;
61
+ expect(dateSortedBy).to.exist;
62
+ });
63
+ it('should not render with created-by but publicdate element', async () => {
64
+ var _a, _b;
65
+ const el = await fixture(html `<item-tile .model=${{ dateArchived: new Date() }}></item-tile>`);
66
+ el.sortParam = {
67
+ field: 'publicdate',
68
+ direction: 'desc',
69
+ };
70
+ await el.updateComplete;
71
+ const createdBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.created-by');
72
+ const dateSortedBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.date-sorted-by');
73
+ expect(createdBy).to.not.exist;
74
+ expect(dateSortedBy).to.exist;
75
+ });
76
+ it('should not render date-sorted-by element if date is not provided', async () => {
77
+ var _a, _b;
78
+ const el = await fixture(html `<item-tile .model=${{ dateArchived: undefined }}></item-tile>`);
79
+ el.sortParam = {
80
+ field: 'publicdate',
81
+ direction: 'desc',
82
+ };
83
+ await el.updateComplete;
84
+ const createdBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.created-by');
85
+ const dateSortedBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.date-sorted-by');
86
+ expect(createdBy).to.not.exist;
87
+ expect(dateSortedBy).to.not.exist;
88
+ });
89
+ it('should render without created-by when sorting by a date field', async () => {
90
+ var _a, _b, _c;
91
+ const el = await fixture(html `<item-tile .model=${{ dateAdded: new Date() }}></item-tile>`);
92
+ el.sortParam = {
93
+ field: 'addeddate',
94
+ direction: 'asc',
95
+ };
96
+ await el.updateComplete;
97
+ const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
98
+ const createdBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.created-by');
99
+ const dateSortedBy = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.date-sorted-by');
100
+ expect(itemInfo).to.exist;
101
+ expect(createdBy).to.not.exist;
102
+ expect(dateSortedBy).to.exist;
103
+ });
104
+ it('should render with created-by when sort field is not a date', async () => {
105
+ var _a, _b, _c;
106
+ const el = await fixture(html `<item-tile .model=${{ creator: 'someone' }}></item-tile>`);
107
+ el.sortParam = {
108
+ field: 'week',
109
+ direction: 'asc',
110
+ };
111
+ await el.updateComplete;
112
+ const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
113
+ const createdBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.created-by');
114
+ const dateSortedBy = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.date-sorted-by');
115
+ expect(itemInfo).to.exist;
116
+ expect(dateSortedBy).to.not.exist; // it should not exist because this is not a date sort
117
+ expect(createdBy).to.exist;
118
+ });
119
+ it('should render published date when sorting by it', async () => {
120
+ var _a, _b;
121
+ const model = {
122
+ dateAdded: new Date(2010, 0, 2),
123
+ dateArchived: new Date(2011, 0, 2),
124
+ datePublished: new Date(2012, 0, 2),
125
+ dateReviewed: new Date(2013, 0, 2),
126
+ };
127
127
  const el = await fixture(html `
128
128
  <item-tile
129
129
  .model=${model}
130
130
  .sortParam=${{ field: 'date', direction: 'desc' }}
131
131
  >
132
132
  </item-tile>
133
- `);
134
- const dateSortedBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.date-sorted-by');
135
- expect(dateSortedBy).to.exist;
136
- expect((_b = dateSortedBy === null || dateSortedBy === void 0 ? void 0 : dateSortedBy.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.contain('published Jan 02, 2012');
137
- });
138
- it('should render added date when sorting by it', async () => {
139
- var _a, _b;
140
- const model = {
141
- dateAdded: new Date(2010, 0, 2),
142
- dateArchived: new Date(2011, 0, 2),
143
- datePublished: new Date(2012, 0, 2),
144
- dateReviewed: new Date(2013, 0, 2),
145
- };
133
+ `);
134
+ const dateSortedBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.date-sorted-by');
135
+ expect(dateSortedBy).to.exist;
136
+ expect((_b = dateSortedBy === null || dateSortedBy === void 0 ? void 0 : dateSortedBy.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.contain('published Jan 02, 2012');
137
+ });
138
+ it('should render added date when sorting by it', async () => {
139
+ var _a, _b;
140
+ const model = {
141
+ dateAdded: new Date(2010, 0, 2),
142
+ dateArchived: new Date(2011, 0, 2),
143
+ datePublished: new Date(2012, 0, 2),
144
+ dateReviewed: new Date(2013, 0, 2),
145
+ };
146
146
  const el = await fixture(html `
147
147
  <item-tile
148
148
  .model=${model}
149
149
  .sortParam=${{ field: 'addeddate', direction: 'desc' }}
150
150
  >
151
151
  </item-tile>
152
- `);
153
- const dateSortedBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.date-sorted-by');
154
- expect(dateSortedBy).to.exist;
155
- expect((_b = dateSortedBy === null || dateSortedBy === void 0 ? void 0 : dateSortedBy.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.contain('added Jan 02, 2010');
156
- });
157
- it('should render archived date when sorting by it', async () => {
158
- var _a, _b;
159
- const model = {
160
- dateAdded: new Date(2010, 0, 2),
161
- dateArchived: new Date(2011, 0, 2),
162
- datePublished: new Date(2012, 0, 2),
163
- dateReviewed: new Date(2013, 0, 2),
164
- };
152
+ `);
153
+ const dateSortedBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.date-sorted-by');
154
+ expect(dateSortedBy).to.exist;
155
+ expect((_b = dateSortedBy === null || dateSortedBy === void 0 ? void 0 : dateSortedBy.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.contain('added Jan 02, 2010');
156
+ });
157
+ it('should render archived date when sorting by it', async () => {
158
+ var _a, _b;
159
+ const model = {
160
+ dateAdded: new Date(2010, 0, 2),
161
+ dateArchived: new Date(2011, 0, 2),
162
+ datePublished: new Date(2012, 0, 2),
163
+ dateReviewed: new Date(2013, 0, 2),
164
+ };
165
165
  const el = await fixture(html `
166
166
  <item-tile
167
167
  .model=${model}
168
168
  .sortParam=${{ field: 'publicdate', direction: 'desc' }}
169
169
  >
170
170
  </item-tile>
171
- `);
172
- const dateSortedBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.date-sorted-by');
173
- expect(dateSortedBy).to.exist;
174
- expect((_b = dateSortedBy === null || dateSortedBy === void 0 ? void 0 : dateSortedBy.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.contain('archived Jan 02, 2011');
175
- });
176
- it('should render reviewed date when sorting by it', async () => {
177
- var _a, _b;
178
- const model = {
179
- dateAdded: new Date(2010, 0, 2),
180
- dateArchived: new Date(2011, 0, 2),
181
- datePublished: new Date(2012, 0, 2),
182
- dateReviewed: new Date(2013, 0, 2),
183
- };
171
+ `);
172
+ const dateSortedBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.date-sorted-by');
173
+ expect(dateSortedBy).to.exist;
174
+ expect((_b = dateSortedBy === null || dateSortedBy === void 0 ? void 0 : dateSortedBy.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.contain('archived Jan 02, 2011');
175
+ });
176
+ it('should render reviewed date when sorting by it', async () => {
177
+ var _a, _b;
178
+ const model = {
179
+ dateAdded: new Date(2010, 0, 2),
180
+ dateArchived: new Date(2011, 0, 2),
181
+ datePublished: new Date(2012, 0, 2),
182
+ dateReviewed: new Date(2013, 0, 2),
183
+ };
184
184
  const el = await fixture(html `
185
185
  <item-tile
186
186
  .model=${model}
187
187
  .sortParam=${{ field: 'reviewdate', direction: 'desc' }}
188
188
  >
189
189
  </item-tile>
190
- `);
191
- const dateSortedBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.date-sorted-by');
192
- expect(dateSortedBy).to.exist;
193
- expect((_b = dateSortedBy === null || dateSortedBy === void 0 ? void 0 : dateSortedBy.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.contain('reviewed Jan 02, 2013');
194
- });
195
- it('should only show the year for a date published of Jan 1 at midnight UTC', async () => {
196
- var _a, _b;
197
- const model = {
198
- datePublished: new Date(2012, 0, 1, 0, 0, 0, 0),
199
- };
190
+ `);
191
+ const dateSortedBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.date-sorted-by');
192
+ expect(dateSortedBy).to.exist;
193
+ expect((_b = dateSortedBy === null || dateSortedBy === void 0 ? void 0 : dateSortedBy.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.contain('reviewed Jan 02, 2013');
194
+ });
195
+ it('should only show the year for a date published of Jan 1 at midnight UTC', async () => {
196
+ var _a, _b;
197
+ const model = {
198
+ datePublished: new Date(2012, 0, 1, 0, 0, 0, 0),
199
+ };
200
200
  const el = await fixture(html `
201
201
  <item-tile
202
202
  .model=${model}
203
203
  .sortParam=${{ field: 'date', direction: 'desc' }}
204
204
  >
205
205
  </item-tile>
206
- `);
207
- const dateSortedBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.date-sorted-by');
208
- expect(dateSortedBy).to.exist;
209
- expect((_b = dateSortedBy === null || dateSortedBy === void 0 ? void 0 : dateSortedBy.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('published 2012');
210
- });
211
- it('should show full date added/archived/reviewed, even on Jan 1 at midnight UTC', async () => {
212
- var _a, _b, _c, _d, _e, _f;
213
- const model = {
214
- dateAdded: new Date(2010, 0, 1, 0, 0, 0, 0),
215
- dateArchived: new Date(2011, 0, 1, 0, 0, 0, 0),
216
- datePublished: new Date(2012, 0, 1, 0, 0, 0, 0),
217
- dateReviewed: new Date(2013, 0, 1, 0, 0, 0, 0),
218
- };
206
+ `);
207
+ const dateSortedBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.date-sorted-by');
208
+ expect(dateSortedBy).to.exist;
209
+ expect((_b = dateSortedBy === null || dateSortedBy === void 0 ? void 0 : dateSortedBy.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('published 2012');
210
+ });
211
+ it('should show full date added/archived/reviewed, even on Jan 1 at midnight UTC', async () => {
212
+ var _a, _b, _c, _d, _e, _f;
213
+ const model = {
214
+ dateAdded: new Date(2010, 0, 1, 0, 0, 0, 0),
215
+ dateArchived: new Date(2011, 0, 1, 0, 0, 0, 0),
216
+ datePublished: new Date(2012, 0, 1, 0, 0, 0, 0),
217
+ dateReviewed: new Date(2013, 0, 1, 0, 0, 0, 0),
218
+ };
219
219
  const el = await fixture(html `
220
220
  <item-tile
221
221
  .model=${model}
222
222
  .sortParam=${{ field: 'addeddate', direction: 'desc' }}
223
223
  >
224
224
  </item-tile>
225
- `);
226
- let dateSortedBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.date-sorted-by');
227
- expect(dateSortedBy).to.exist;
228
- expect((_b = dateSortedBy === null || dateSortedBy === void 0 ? void 0 : dateSortedBy.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('added Jan 01, 2010');
229
- el.sortParam = { field: 'publicdate', direction: 'desc' };
230
- await el.updateComplete;
231
- dateSortedBy = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.date-sorted-by');
232
- expect(dateSortedBy).to.exist;
233
- expect((_d = dateSortedBy === null || dateSortedBy === void 0 ? void 0 : dateSortedBy.textContent) === null || _d === void 0 ? void 0 : _d.trim()).to.equal('archived Jan 01, 2011');
234
- el.sortParam = { field: 'reviewdate', direction: 'desc' };
235
- await el.updateComplete;
236
- dateSortedBy = (_e = el.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector('.date-sorted-by');
237
- expect(dateSortedBy).to.exist;
238
- expect((_f = dateSortedBy === null || dateSortedBy === void 0 ? void 0 : dateSortedBy.textContent) === null || _f === void 0 ? void 0 : _f.trim()).to.equal('reviewed Jan 01, 2013');
239
- });
240
- it('should show the first creator matching the letter filter, if defined', async () => {
241
- var _a, _b;
242
- const model = {
243
- creator: 'foo',
244
- creators: ['foo', 'bar', 'baz'],
245
- };
225
+ `);
226
+ let dateSortedBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.date-sorted-by');
227
+ expect(dateSortedBy).to.exist;
228
+ expect((_b = dateSortedBy === null || dateSortedBy === void 0 ? void 0 : dateSortedBy.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('added Jan 01, 2010');
229
+ el.sortParam = { field: 'publicdate', direction: 'desc' };
230
+ await el.updateComplete;
231
+ dateSortedBy = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.date-sorted-by');
232
+ expect(dateSortedBy).to.exist;
233
+ expect((_d = dateSortedBy === null || dateSortedBy === void 0 ? void 0 : dateSortedBy.textContent) === null || _d === void 0 ? void 0 : _d.trim()).to.equal('archived Jan 01, 2011');
234
+ el.sortParam = { field: 'reviewdate', direction: 'desc' };
235
+ await el.updateComplete;
236
+ dateSortedBy = (_e = el.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector('.date-sorted-by');
237
+ expect(dateSortedBy).to.exist;
238
+ expect((_f = dateSortedBy === null || dateSortedBy === void 0 ? void 0 : dateSortedBy.textContent) === null || _f === void 0 ? void 0 : _f.trim()).to.equal('reviewed Jan 01, 2013');
239
+ });
240
+ it('should show the first creator matching the letter filter, if defined', async () => {
241
+ var _a, _b;
242
+ const model = {
243
+ creator: 'foo',
244
+ creators: ['foo', 'bar', 'baz'],
245
+ };
246
246
  const el = await fixture(html `
247
247
  <item-tile .model=${model} .creatorFilter=${'B'}> </item-tile>
248
- `);
249
- const creator = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.created-by');
250
- expect(creator).to.exist;
251
- expect((_b = creator === null || creator === void 0 ? void 0 : creator.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.match(/by\s+bar/);
252
- });
253
- it('should render with snippet block when it has snippets', async () => {
254
- var _a;
248
+ `);
249
+ const creator = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.created-by');
250
+ expect(creator).to.exist;
251
+ expect((_b = creator === null || creator === void 0 ? void 0 : creator.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.match(/by\s+bar/);
252
+ });
253
+ it('should render with snippet block when it has snippets', async () => {
254
+ var _a;
255
255
  const el = await fixture(html `
256
256
  <item-tile .model=${{ snippets: ['some {{{snippet}}} text'] }}>
257
257
  </item-tile>
258
- `);
259
- const snippetBlock = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('text-snippet-block');
260
- expect(snippetBlock).to.exist;
261
- });
262
- it('should not render snippet block when no snippets are present', async () => {
263
- var _a;
264
- const el = await fixture(html `<item-tile></item-tile>`);
265
- const snippetBlock = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('text-snippet-block');
266
- expect(snippetBlock).to.not.exist;
267
- });
268
- it('should render info button when showInfoButton flag is set', async () => {
269
- var _a;
258
+ `);
259
+ const snippetBlock = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('text-snippet-block');
260
+ expect(snippetBlock).to.exist;
261
+ });
262
+ it('should not render snippet block when no snippets are present', async () => {
263
+ var _a;
264
+ const el = await fixture(html `<item-tile></item-tile>`);
265
+ const snippetBlock = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('text-snippet-block');
266
+ expect(snippetBlock).to.not.exist;
267
+ });
268
+ it('should render info button when showInfoButton flag is set', async () => {
269
+ var _a;
270
270
  const el = await fixture(html `
271
271
  <item-tile ?showInfoButton=${true}> </item-tile>
272
- `);
273
- const infoButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.info-button');
274
- expect(infoButton).to.exist;
275
- });
276
- it('should dispatch event when info button tapped', async () => {
277
- var _a;
278
- const infoButtonSpy = sinon.spy();
272
+ `);
273
+ const infoButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.info-button');
274
+ expect(infoButton).to.exist;
275
+ });
276
+ it('should dispatch event when info button tapped', async () => {
277
+ var _a;
278
+ const infoButtonSpy = sinon.spy();
279
279
  const el = await fixture(html `
280
280
  <item-tile ?showInfoButton=${true} @infoButtonPressed=${infoButtonSpy}>
281
281
  </item-tile>
282
- `);
283
- const infoButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.info-button');
284
- infoButton.click();
285
- await el.updateComplete;
286
- expect(infoButtonSpy.callCount).to.equal(1);
287
- });
288
- it('should render with volume/issue view', async () => {
289
- var _a;
282
+ `);
283
+ const infoButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.info-button');
284
+ infoButton.click();
285
+ await el.updateComplete;
286
+ expect(infoButtonSpy.callCount).to.equal(1);
287
+ });
288
+ it('should render with volume/issue view', async () => {
289
+ var _a;
290
290
  const el = await fixture(html `
291
291
  <item-tile .model=${{ volume: '1', issue: 'Index' }}></item-tile>
292
- `);
293
- const volumeIssueBlock = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.volume-issue');
294
- expect(volumeIssueBlock).to.exist;
295
- });
296
- it('should render with volume/issue view to not render', async () => {
297
- var _a;
298
- const el = await fixture(html `<item-tile></item-tile>`);
299
- const volumeIssueBlock = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.volume-issue');
300
- expect(volumeIssueBlock).to.not.exist;
301
- });
302
- it('should render web capture date links if present', async () => {
303
- var _a, _b, _c, _d, _e;
304
- const captureDates = [
305
- new Date('2010-01-02T12:34:56Z'),
306
- new Date('2011-02-03T12:43:21Z'),
307
- ];
292
+ `);
293
+ const volumeIssueBlock = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.volume-issue');
294
+ expect(volumeIssueBlock).to.exist;
295
+ });
296
+ it('should render with volume/issue view to not render', async () => {
297
+ var _a;
298
+ const el = await fixture(html `<item-tile></item-tile>`);
299
+ const volumeIssueBlock = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.volume-issue');
300
+ expect(volumeIssueBlock).to.not.exist;
301
+ });
302
+ it('should render web capture date links if present', async () => {
303
+ var _a, _b, _c, _d, _e;
304
+ const captureDates = [
305
+ new Date('2010-01-02T12:34:56Z'),
306
+ new Date('2011-02-03T12:43:21Z'),
307
+ ];
308
308
  const el = await fixture(html `
309
309
  <item-tile
310
- .model=${{
311
- identifier: 'foo',
312
- title: 'https://example.com/',
313
- captureDates,
310
+ .model=${{
311
+ identifier: 'foo',
312
+ title: 'https://example.com/',
313
+ captureDates,
314
314
  }}
315
315
  ></item-tile>
316
- `);
317
- const captureDatesUl = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.capture-dates');
318
- expect(captureDatesUl, 'capture dates container').to.exist;
319
- expect(captureDatesUl === null || captureDatesUl === void 0 ? void 0 : captureDatesUl.children.length).to.equal(2);
320
- const firstDateLink = (_b = captureDatesUl === null || captureDatesUl === void 0 ? void 0 : captureDatesUl.children[0]) === null || _b === void 0 ? void 0 : _b.querySelector('a[href]');
321
- expect(firstDateLink, 'first date link').to.exist;
322
- expect(firstDateLink === null || firstDateLink === void 0 ? void 0 : firstDateLink.getAttribute('href')).to.equal('https://web.archive.org/web/20100102123456/https%3A%2F%2Fexample.com%2F');
323
- expect((_c = firstDateLink === null || firstDateLink === void 0 ? void 0 : firstDateLink.textContent) === null || _c === void 0 ? void 0 : _c.trim()).to.equal('Jan 02, 2010');
324
- const secondDateLink = (_d = captureDatesUl === null || captureDatesUl === void 0 ? void 0 : captureDatesUl.children[1]) === null || _d === void 0 ? void 0 : _d.querySelector('a[href]');
325
- expect(secondDateLink, 'second date link').to.exist;
326
- expect(secondDateLink === null || secondDateLink === void 0 ? void 0 : secondDateLink.getAttribute('href')).to.equal('https://web.archive.org/web/20110203124321/https%3A%2F%2Fexample.com%2F');
327
- expect((_e = secondDateLink === null || secondDateLink === void 0 ? void 0 : secondDateLink.textContent) === null || _e === void 0 ? void 0 : _e.trim()).to.equal('Feb 03, 2011');
328
- });
329
- it('should not render web captures if no title is present', async () => {
330
- var _a;
331
- const captureDates = [
332
- new Date('2010-01-02T12:34:56Z'),
333
- new Date('2011-02-03T12:43:21Z'),
334
- ];
316
+ `);
317
+ const captureDatesUl = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.capture-dates');
318
+ expect(captureDatesUl, 'capture dates container').to.exist;
319
+ expect(captureDatesUl === null || captureDatesUl === void 0 ? void 0 : captureDatesUl.children.length).to.equal(2);
320
+ const firstDateLink = (_b = captureDatesUl === null || captureDatesUl === void 0 ? void 0 : captureDatesUl.children[0]) === null || _b === void 0 ? void 0 : _b.querySelector('a[href]');
321
+ expect(firstDateLink, 'first date link').to.exist;
322
+ expect(firstDateLink === null || firstDateLink === void 0 ? void 0 : firstDateLink.getAttribute('href')).to.equal('https://web.archive.org/web/20100102123456/https%3A%2F%2Fexample.com%2F');
323
+ expect((_c = firstDateLink === null || firstDateLink === void 0 ? void 0 : firstDateLink.textContent) === null || _c === void 0 ? void 0 : _c.trim()).to.equal('Jan 02, 2010');
324
+ const secondDateLink = (_d = captureDatesUl === null || captureDatesUl === void 0 ? void 0 : captureDatesUl.children[1]) === null || _d === void 0 ? void 0 : _d.querySelector('a[href]');
325
+ expect(secondDateLink, 'second date link').to.exist;
326
+ expect(secondDateLink === null || secondDateLink === void 0 ? void 0 : secondDateLink.getAttribute('href')).to.equal('https://web.archive.org/web/20110203124321/https%3A%2F%2Fexample.com%2F');
327
+ expect((_e = secondDateLink === null || secondDateLink === void 0 ? void 0 : secondDateLink.textContent) === null || _e === void 0 ? void 0 : _e.trim()).to.equal('Feb 03, 2011');
328
+ });
329
+ it('should not render web captures if no title is present', async () => {
330
+ var _a;
331
+ const captureDates = [
332
+ new Date('2010-01-02T12:34:56Z'),
333
+ new Date('2011-02-03T12:43:21Z'),
334
+ ];
335
335
  const el = await fixture(html `
336
336
  <item-tile
337
- .model=${{
338
- identifier: 'foo',
339
- captureDates,
337
+ .model=${{
338
+ identifier: 'foo',
339
+ captureDates,
340
340
  }}
341
341
  ></item-tile>
342
- `);
343
- const captureDatesUl = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.capture-dates');
344
- expect(captureDatesUl).not.to.exist;
345
- });
346
- it('should render review snippet if present', async () => {
347
- var _a;
348
- const review = {
349
- title: 'Foo',
350
- body: 'foo bar baz',
351
- stars: 3,
352
- };
342
+ `);
343
+ const captureDatesUl = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.capture-dates');
344
+ expect(captureDatesUl).not.to.exist;
345
+ });
346
+ it('should render review snippet if present', async () => {
347
+ var _a;
348
+ const review = {
349
+ title: 'Foo',
350
+ body: 'foo bar baz',
351
+ stars: 3,
352
+ };
353
353
  const el = await fixture(html `
354
354
  <item-tile
355
- .model=${{
356
- identifier: 'foo',
357
- review,
355
+ .model=${{
356
+ identifier: 'foo',
357
+ review,
358
358
  }}
359
359
  ></item-tile>
360
- `);
361
- const reviewBlock = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('review-block');
362
- expect(reviewBlock).to.exist;
363
- });
364
- it('should not render review snippet block when no review is present', async () => {
365
- var _a;
360
+ `);
361
+ const reviewBlock = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('review-block');
362
+ expect(reviewBlock).to.exist;
363
+ });
364
+ it('should not render review snippet block when no review is present', async () => {
365
+ var _a;
366
366
  const el = await fixture(html `
367
367
  <item-tile
368
- .model=${{
369
- identifier: 'foo',
368
+ .model=${{
369
+ identifier: 'foo',
370
370
  }}
371
371
  ></item-tile>
372
- `);
373
- const reviewBlock = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('review-block');
374
- expect(reviewBlock).not.to.exist;
375
- });
376
- });
372
+ `);
373
+ const reviewBlock = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('review-block');
374
+ expect(reviewBlock).not.to.exist;
375
+ });
376
+ });
377
377
  //# sourceMappingURL=item-tile.test.js.map