@internetarchive/collection-browser 1.14.2 → 1.14.4

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 (289) hide show
  1. package/.editorconfig +29 -29
  2. package/.github/workflows/ci.yml +26 -26
  3. package/.github/workflows/gh-pages-main.yml +39 -39
  4. package/.github/workflows/npm-publish.yml +39 -39
  5. package/.github/workflows/pr-preview.yml +38 -38
  6. package/.husky/pre-commit +4 -4
  7. package/LICENSE +661 -661
  8. package/README.md +83 -83
  9. package/dist/index.d.ts +9 -9
  10. package/dist/index.js +9 -9
  11. package/dist/src/app-root.d.ts +64 -64
  12. package/dist/src/app-root.js +311 -311
  13. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  14. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  15. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  16. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  17. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  18. package/dist/src/assets/img/icons/chevron.js +2 -2
  19. package/dist/src/assets/img/icons/contract.d.ts +2 -2
  20. package/dist/src/assets/img/icons/contract.js +2 -2
  21. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  22. package/dist/src/assets/img/icons/empty-query.js +2 -2
  23. package/dist/src/assets/img/icons/expand.d.ts +2 -2
  24. package/dist/src/assets/img/icons/expand.js +2 -2
  25. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  26. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  27. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  28. package/dist/src/assets/img/icons/eye.js +2 -2
  29. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  30. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  31. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  32. package/dist/src/assets/img/icons/login-required.js +2 -2
  33. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  34. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  35. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  36. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  37. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  38. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  39. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  40. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  41. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  42. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  43. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  44. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  45. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  46. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  47. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  48. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  49. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -0
  50. package/dist/src/assets/img/icons/mediatype/search.js +14 -0
  51. package/dist/src/assets/img/icons/mediatype/search.js.map +1 -0
  52. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  53. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  54. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  55. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  56. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  57. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  58. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  59. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  60. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  61. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  62. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  63. package/dist/src/assets/img/icons/null-result.js +2 -2
  64. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  65. package/dist/src/assets/img/icons/restricted.js +2 -2
  66. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  67. package/dist/src/assets/img/icons/reviews.js +2 -2
  68. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  69. package/dist/src/assets/img/icons/upload.js +2 -2
  70. package/dist/src/assets/img/icons/views.d.ts +1 -1
  71. package/dist/src/assets/img/icons/views.js +2 -2
  72. package/dist/src/circular-activity-indicator.d.ts +5 -5
  73. package/dist/src/circular-activity-indicator.js +17 -17
  74. package/dist/src/collection-browser.d.ts +524 -523
  75. package/dist/src/collection-browser.js +1859 -1841
  76. package/dist/src/collection-browser.js.map +1 -1
  77. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  78. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  79. package/dist/src/collection-facets/facets-template.d.ts +20 -20
  80. package/dist/src/collection-facets/facets-template.js +152 -152
  81. package/dist/src/collection-facets/more-facets-content.d.ts +77 -77
  82. package/dist/src/collection-facets/more-facets-content.js +359 -359
  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 +104 -104
  88. package/dist/src/collection-facets.js +506 -506
  89. package/dist/src/empty-placeholder.d.ts +23 -23
  90. package/dist/src/empty-placeholder.js +74 -74
  91. package/dist/src/expanded-date-picker.d.ts +43 -43
  92. package/dist/src/expanded-date-picker.js +109 -109
  93. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  94. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  95. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  96. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  97. package/dist/src/manage/manage-bar.d.ts +26 -26
  98. package/dist/src/manage/manage-bar.js +53 -53
  99. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  100. package/dist/src/mediatype/mediatype-config.js +91 -85
  101. package/dist/src/mediatype/mediatype-config.js.map +1 -1
  102. package/dist/src/models.d.ts +164 -164
  103. package/dist/src/models.js +269 -269
  104. package/dist/src/restoration-state-handler.d.ts +70 -70
  105. package/dist/src/restoration-state-handler.js +355 -355
  106. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  107. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  108. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  109. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  110. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  111. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  112. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  113. package/dist/src/sort-filter-bar/img/list.js +2 -2
  114. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  115. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  116. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  117. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  118. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  119. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  120. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  121. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  122. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  123. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  124. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +208 -208
  125. package/dist/src/sort-filter-bar/sort-filter-bar.js +637 -637
  126. package/dist/src/styles/item-image-styles.d.ts +8 -8
  127. package/dist/src/styles/item-image-styles.js +13 -9
  128. package/dist/src/styles/item-image-styles.js.map +1 -1
  129. package/dist/src/styles/sr-only.d.ts +1 -1
  130. package/dist/src/styles/sr-only.js +2 -2
  131. package/dist/src/tiles/base-tile-component.d.ts +18 -18
  132. package/dist/src/tiles/base-tile-component.js +59 -59
  133. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  134. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  135. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  136. package/dist/src/tiles/grid/account-tile.js +72 -72
  137. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  138. package/dist/src/tiles/grid/collection-tile.js +80 -80
  139. package/dist/src/tiles/grid/item-tile.d.ts +27 -27
  140. package/dist/src/tiles/grid/item-tile.js +134 -134
  141. package/dist/src/tiles/grid/search-tile.d.ts +10 -0
  142. package/dist/src/tiles/grid/search-tile.js +92 -0
  143. package/dist/src/tiles/grid/search-tile.js.map +1 -0
  144. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  145. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  146. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  147. package/dist/src/tiles/grid/tile-stats.js +48 -48
  148. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  149. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  150. package/dist/src/tiles/hover/tile-hover-pane.d.ts +15 -15
  151. package/dist/src/tiles/hover/tile-hover-pane.js +38 -38
  152. package/dist/src/tiles/image-block.d.ts +17 -17
  153. package/dist/src/tiles/image-block.js +75 -73
  154. package/dist/src/tiles/image-block.js.map +1 -1
  155. package/dist/src/tiles/item-image.d.ts +36 -35
  156. package/dist/src/tiles/item-image.js +148 -125
  157. package/dist/src/tiles/item-image.js.map +1 -1
  158. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  159. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  160. package/dist/src/tiles/list/tile-list-compact.d.ts +15 -15
  161. package/dist/src/tiles/list/tile-list-compact.js +114 -114
  162. package/dist/src/tiles/list/tile-list.d.ts +46 -46
  163. package/dist/src/tiles/list/tile-list.js +302 -298
  164. package/dist/src/tiles/list/tile-list.js.map +1 -1
  165. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  166. package/dist/src/tiles/mediatype-icon.js +47 -47
  167. package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
  168. package/dist/src/tiles/overlay/icon-overlay.js +40 -40
  169. package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
  170. package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
  171. package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
  172. package/dist/src/tiles/overlay/text-overlay.js +42 -42
  173. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  174. package/dist/src/tiles/text-snippet-block.js +73 -73
  175. package/dist/src/tiles/tile-dispatcher.d.ts +64 -63
  176. package/dist/src/tiles/tile-dispatcher.js +249 -225
  177. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  178. package/dist/src/tiles/tile-display-value-provider.d.ts +43 -43
  179. package/dist/src/tiles/tile-display-value-provider.js +80 -80
  180. package/dist/src/utils/analytics-events.d.ts +25 -25
  181. package/dist/src/utils/analytics-events.js +27 -27
  182. package/dist/src/utils/array-equals.d.ts +4 -4
  183. package/dist/src/utils/array-equals.js +10 -10
  184. package/dist/src/utils/format-count.d.ts +7 -7
  185. package/dist/src/utils/format-count.js +76 -76
  186. package/dist/src/utils/format-date.d.ts +2 -2
  187. package/dist/src/utils/format-date.js +25 -25
  188. package/dist/src/utils/format-unit-size.d.ts +2 -2
  189. package/dist/src/utils/format-unit-size.js +33 -33
  190. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  191. package/dist/src/utils/local-date-from-utc.js +15 -15
  192. package/dist/src/utils/sha1.d.ts +2 -2
  193. package/dist/src/utils/sha1.js +8 -8
  194. package/dist/test/collection-browser.test.d.ts +1 -1
  195. package/dist/test/collection-browser.test.js +1098 -1098
  196. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  197. package/dist/test/collection-facets/facets-template.test.js +134 -134
  198. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  199. package/dist/test/collection-facets/more-facets-content.test.js +133 -133
  200. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  201. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  202. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  203. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  204. package/dist/test/collection-facets.test.d.ts +2 -2
  205. package/dist/test/collection-facets.test.js +682 -682
  206. package/dist/test/empty-placeholder.test.d.ts +1 -1
  207. package/dist/test/empty-placeholder.test.js +63 -63
  208. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  209. package/dist/test/expanded-date-picker.test.js +95 -95
  210. package/dist/test/icon-overlay.test.d.ts +1 -1
  211. package/dist/test/icon-overlay.test.js +24 -24
  212. package/dist/test/image-block.test.d.ts +1 -1
  213. package/dist/test/image-block.test.js +48 -48
  214. package/dist/test/item-image.test.d.ts +1 -1
  215. package/dist/test/item-image.test.js +86 -86
  216. package/dist/test/manage/manage-bar.test.d.ts +1 -1
  217. package/dist/test/manage/manage-bar.test.js +72 -72
  218. package/dist/test/mediatype-config.test.d.ts +1 -1
  219. package/dist/test/mediatype-config.test.js +16 -16
  220. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  221. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  222. package/dist/test/mocks/mock-collection-name-cache.d.ts +9 -9
  223. package/dist/test/mocks/mock-collection-name-cache.js +17 -17
  224. package/dist/test/mocks/mock-search-responses.d.ts +21 -21
  225. package/dist/test/mocks/mock-search-responses.js +709 -709
  226. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  227. package/dist/test/mocks/mock-search-service.js +50 -50
  228. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  229. package/dist/test/restoration-state-handler.test.js +270 -270
  230. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  231. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  232. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  233. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  234. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  235. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +378 -378
  236. package/dist/test/text-overlay.test.d.ts +1 -1
  237. package/dist/test/text-overlay.test.js +48 -48
  238. package/dist/test/text-snippet-block.test.d.ts +1 -1
  239. package/dist/test/text-snippet-block.test.js +57 -57
  240. package/dist/test/tile-stats.test.d.ts +1 -1
  241. package/dist/test/tile-stats.test.js +33 -33
  242. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  243. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  244. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  245. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  246. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  247. package/dist/test/tiles/grid/item-tile.test.js +254 -254
  248. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -0
  249. package/dist/test/tiles/grid/search-tile.test.js +67 -0
  250. package/dist/test/tiles/grid/search-tile.test.js.map +1 -0
  251. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  252. package/dist/test/tiles/hover/hover-pane-controller.test.js +258 -258
  253. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  254. package/dist/test/tiles/hover/tile-hover-pane.test.js +13 -13
  255. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  256. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  257. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  258. package/dist/test/tiles/list/tile-list.test.js +242 -242
  259. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  260. package/dist/test/tiles/tile-dispatcher.test.js +94 -94
  261. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  262. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  263. package/dist/test/utils/array-equals.test.d.ts +1 -1
  264. package/dist/test/utils/array-equals.test.js +26 -26
  265. package/dist/test/utils/format-count.test.d.ts +1 -1
  266. package/dist/test/utils/format-count.test.js +23 -23
  267. package/dist/test/utils/format-date.test.d.ts +1 -1
  268. package/dist/test/utils/format-date.test.js +17 -17
  269. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  270. package/dist/test/utils/format-unit-size.test.js +17 -17
  271. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  272. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  273. package/local.archive.org.cert +86 -86
  274. package/local.archive.org.key +27 -27
  275. package/package.json +4 -4
  276. package/renovate.json +6 -6
  277. package/src/assets/img/icons/mediatype/search.ts +14 -0
  278. package/src/collection-browser.ts +20 -1
  279. package/src/mediatype/mediatype-config.ts +6 -0
  280. package/src/styles/item-image-styles.ts +4 -0
  281. package/src/tiles/grid/search-tile.ts +87 -0
  282. package/src/tiles/image-block.ts +3 -1
  283. package/src/tiles/item-image.ts +31 -8
  284. package/src/tiles/list/tile-list.ts +5 -0
  285. package/src/tiles/tile-dispatcher.ts +23 -1
  286. package/test/tiles/grid/search-tile.test.ts +76 -0
  287. package/tsconfig.json +21 -21
  288. package/web-dev-server.config.mjs +30 -30
  289. package/web-test-runner.config.mjs +41 -41
@@ -1,303 +1,303 @@
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
- });
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
+ });
303
303
  //# sourceMappingURL=item-tile.test.js.map
@@ -0,0 +1 @@
1
+ import '../../../src/tiles/grid/search-tile';
@@ -0,0 +1,67 @@
1
+ /* eslint-disable import/no-duplicates */
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import { html } from 'lit';
4
+ import '../../../src/tiles/grid/search-tile';
5
+ describe('Search Tile', () => {
6
+ it('should render initial component', async () => {
7
+ var _a, _b, _c, _d;
8
+ const el = await fixture(html `<search-tile></search-tile>`);
9
+ const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
10
+ const itemImage = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('image-block');
11
+ const title = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#title');
12
+ const itemStats = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#item-stats');
13
+ expect(itemInfo).to.exist;
14
+ expect(itemImage).to.exist;
15
+ expect(title).to.exist;
16
+ expect(itemStats).not.exist; // search tiles doesn't have stats bar
17
+ });
18
+ it('should render with title element', async () => {
19
+ var _a, _b, _c;
20
+ const el = await fixture(html `
21
+ <search-tile
22
+ .model=${{
23
+ identifier: 'searched query',
24
+ title: 'searched query',
25
+ }}
26
+ >
27
+ </search-tile>
28
+ `);
29
+ await el.updateComplete;
30
+ const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
31
+ const itemTitle = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#title');
32
+ expect(itemInfo).to.exist;
33
+ expect(itemTitle).to.exist;
34
+ expect((_c = itemTitle === null || itemTitle === void 0 ? void 0 : itemTitle.querySelector('.truncated')) === null || _c === void 0 ? void 0 : _c.textContent).to.equal('searched query');
35
+ });
36
+ it('should render with image-block element', async () => {
37
+ var _a;
38
+ const el = await fixture(html `
39
+ <search-tile
40
+ .model=${{
41
+ identifier: 'title:hello-world',
42
+ }}
43
+ >
44
+ </search-tile>
45
+ `);
46
+ await el.updateComplete;
47
+ const itemImageBlock = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('image-block');
48
+ expect(itemImageBlock).to.exist;
49
+ });
50
+ it('should not render with item stats element', async () => {
51
+ var _a;
52
+ const el = await fixture(html `
53
+ <search-tile
54
+ .model=${{
55
+ identifier: '@jack-sparrow',
56
+ itemCount: 14521,
57
+ collectionSize: 23222543,
58
+ }}
59
+ >
60
+ </search-tile>
61
+ `);
62
+ await el.updateComplete;
63
+ const itemStats = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#item-stats');
64
+ expect(itemStats).not.exist;
65
+ });
66
+ });
67
+ //# sourceMappingURL=search-tile.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-tile.test.js","sourceRoot":"","sources":["../../../../test/tiles/grid/search-tile.test.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,qCAAqC,CAAC;AAE7C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;;QAC/C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,6BAA6B,CAAC,CAAC;QAExE,MAAM,QAAQ,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,aAAa,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,aAAa,CAAC,CAAC;QAE9D,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC1B,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACvB,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,sCAAsC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;;QAChD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA;;iBAE5B;YACP,UAAU,EAAE,gBAAgB;YAC5B,KAAK,EAAE,gBAAgB;SACxB;;;KAGJ,CAAC,CAAC;QACH,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,QAAQ,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEzD,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC1B,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC3B,MAAM,CAAC,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,aAAa,CAAC,YAAY,CAAC,0CAAE,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAClE,gBAAgB,CACjB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;;QACtD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA;;iBAE5B;YACP,UAAU,EAAE,mBAAmB;SAChC;;;KAGJ,CAAC,CAAC;QACH,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,cAAc,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,aAAa,CAAC,CAAC;QACnE,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;;QACzD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA;;iBAE5B;YACP,UAAU,EAAE,eAAe;YAC3B,SAAS,EAAE,KAAK;YAChB,cAAc,EAAE,QAAQ;SACzB;;;KAGJ,CAAC,CAAC;QACH,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,SAAS,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,aAAa,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/* eslint-disable import/no-duplicates */\nimport { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport type { SearchTile } from '../../../src/tiles/grid/search-tile';\n\nimport '../../../src/tiles/grid/search-tile';\n\ndescribe('Search Tile', () => {\n it('should render initial component', async () => {\n const el = await fixture<SearchTile>(html`<search-tile></search-tile>`);\n\n const itemInfo = el.shadowRoot?.querySelector('.item-info');\n const itemImage = el.shadowRoot?.querySelector('image-block');\n const title = el.shadowRoot?.querySelector('#title');\n const itemStats = el.shadowRoot?.querySelector('#item-stats');\n\n expect(itemInfo).to.exist;\n expect(itemImage).to.exist;\n expect(title).to.exist;\n expect(itemStats).not.exist; // search tiles doesn't have stats bar\n });\n\n it('should render with title element', async () => {\n const el = await fixture<SearchTile>(html`\n <search-tile\n .model=${{\n identifier: 'searched query',\n title: 'searched query',\n }}\n >\n </search-tile>\n `);\n await el.updateComplete;\n\n const itemInfo = el.shadowRoot?.querySelector('.item-info');\n const itemTitle = el.shadowRoot?.querySelector('#title');\n\n expect(itemInfo).to.exist;\n expect(itemTitle).to.exist;\n expect(itemTitle?.querySelector('.truncated')?.textContent).to.equal(\n 'searched query'\n );\n });\n\n it('should render with image-block element', async () => {\n const el = await fixture<SearchTile>(html`\n <search-tile\n .model=${{\n identifier: 'title:hello-world',\n }}\n >\n </search-tile>\n `);\n await el.updateComplete;\n\n const itemImageBlock = el.shadowRoot?.querySelector('image-block');\n expect(itemImageBlock).to.exist;\n });\n\n it('should not render with item stats element', async () => {\n const el = await fixture<SearchTile>(html`\n <search-tile\n .model=${{\n identifier: '@jack-sparrow',\n itemCount: 14521,\n collectionSize: 23222543,\n }}\n >\n </search-tile>\n `);\n await el.updateComplete;\n\n const itemStats = el.shadowRoot?.querySelector('#item-stats');\n expect(itemStats).not.exist;\n });\n});\n"]}