@internetarchive/collection-browser 1.7.1-alpha.0 → 1.9.0-alpha1

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 (275) 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 +54 -54
  12. package/dist/src/app-root.js +293 -293
  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/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 +469 -469
  72. package/dist/src/collection-browser.js +1667 -1653
  73. package/dist/src/collection-browser.js.map +1 -1
  74. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  75. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  76. package/dist/src/collection-facets/facets-template.d.ts +20 -20
  77. package/dist/src/collection-facets/facets-template.js +152 -152
  78. package/dist/src/collection-facets/more-facets-content.d.ts +77 -76
  79. package/dist/src/collection-facets/more-facets-content.js +359 -352
  80. package/dist/src/collection-facets/more-facets-content.js.map +1 -1
  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 +99 -98
  86. package/dist/src/collection-facets.js +472 -468
  87. package/dist/src/collection-facets.js.map +1 -1
  88. package/dist/src/empty-placeholder.d.ts +21 -21
  89. package/dist/src/empty-placeholder.js +69 -69
  90. package/dist/src/expanded-date-picker.d.ts +43 -43
  91. package/dist/src/expanded-date-picker.js +109 -109
  92. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  93. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  94. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  95. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  96. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  97. package/dist/src/mediatype/mediatype-config.js +85 -85
  98. package/dist/src/models.d.ts +162 -149
  99. package/dist/src/models.js +256 -195
  100. package/dist/src/models.js.map +1 -1
  101. package/dist/src/restoration-state-handler.d.ts +70 -63
  102. package/dist/src/restoration-state-handler.js +355 -326
  103. package/dist/src/restoration-state-handler.js.map +1 -1
  104. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  105. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  106. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  107. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  108. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  109. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  110. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  111. package/dist/src/sort-filter-bar/img/list.js +2 -2
  112. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  113. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  114. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  115. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  116. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  117. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  118. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  119. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  120. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  121. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  122. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +201 -199
  123. package/dist/src/sort-filter-bar/sort-filter-bar.js +622 -617
  124. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  125. package/dist/src/styles/item-image-styles.d.ts +8 -8
  126. package/dist/src/styles/item-image-styles.js +9 -9
  127. package/dist/src/styles/sr-only.d.ts +1 -1
  128. package/dist/src/styles/sr-only.js +2 -2
  129. package/dist/src/tiles/base-tile-component.d.ts +18 -18
  130. package/dist/src/tiles/base-tile-component.js +59 -59
  131. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  132. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  133. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  134. package/dist/src/tiles/grid/account-tile.js +72 -72
  135. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  136. package/dist/src/tiles/grid/collection-tile.js +80 -80
  137. package/dist/src/tiles/grid/item-tile.d.ts +27 -27
  138. package/dist/src/tiles/grid/item-tile.js +134 -134
  139. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  140. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  141. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  142. package/dist/src/tiles/grid/tile-stats.js +48 -48
  143. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  144. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  145. package/dist/src/tiles/hover/tile-hover-pane.d.ts +15 -15
  146. package/dist/src/tiles/hover/tile-hover-pane.js +38 -38
  147. package/dist/src/tiles/image-block.d.ts +17 -17
  148. package/dist/src/tiles/image-block.js +72 -72
  149. package/dist/src/tiles/item-image.d.ts +35 -35
  150. package/dist/src/tiles/item-image.js +117 -117
  151. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  152. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  153. package/dist/src/tiles/list/tile-list-compact.d.ts +15 -15
  154. package/dist/src/tiles/list/tile-list-compact.js +114 -114
  155. package/dist/src/tiles/list/tile-list.d.ts +46 -46
  156. package/dist/src/tiles/list/tile-list.js +298 -298
  157. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  158. package/dist/src/tiles/mediatype-icon.js +47 -47
  159. package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
  160. package/dist/src/tiles/overlay/icon-overlay.js +40 -40
  161. package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
  162. package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
  163. package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
  164. package/dist/src/tiles/overlay/text-overlay.js +42 -42
  165. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  166. package/dist/src/tiles/text-snippet-block.js +73 -73
  167. package/dist/src/tiles/tile-dispatcher.d.ts +50 -50
  168. package/dist/src/tiles/tile-dispatcher.js +185 -185
  169. package/dist/src/tiles/tile-display-value-provider.d.ts +43 -43
  170. package/dist/src/tiles/tile-display-value-provider.js +80 -80
  171. package/dist/src/utils/analytics-events.d.ts +24 -24
  172. package/dist/src/utils/analytics-events.js +26 -26
  173. package/dist/src/utils/array-equals.d.ts +4 -4
  174. package/dist/src/utils/array-equals.js +10 -10
  175. package/dist/src/utils/format-count.d.ts +7 -7
  176. package/dist/src/utils/format-count.js +76 -76
  177. package/dist/src/utils/format-date.d.ts +2 -2
  178. package/dist/src/utils/format-date.js +25 -25
  179. package/dist/src/utils/format-unit-size.d.ts +2 -2
  180. package/dist/src/utils/format-unit-size.js +33 -33
  181. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  182. package/dist/src/utils/local-date-from-utc.js +15 -15
  183. package/dist/src/utils/sha1.d.ts +2 -2
  184. package/dist/src/utils/sha1.js +8 -8
  185. package/dist/test/collection-browser.test.d.ts +1 -1
  186. package/dist/test/collection-browser.test.js +808 -808
  187. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  188. package/dist/test/collection-facets/facets-template.test.js +134 -134
  189. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  190. package/dist/test/collection-facets/more-facets-content.test.js +139 -114
  191. package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
  192. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  193. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  194. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  195. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  196. package/dist/test/collection-facets.test.d.ts +2 -2
  197. package/dist/test/collection-facets.test.js +645 -645
  198. package/dist/test/empty-placeholder.test.d.ts +1 -1
  199. package/dist/test/empty-placeholder.test.js +56 -56
  200. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  201. package/dist/test/expanded-date-picker.test.js +95 -95
  202. package/dist/test/icon-overlay.test.d.ts +1 -1
  203. package/dist/test/icon-overlay.test.js +24 -24
  204. package/dist/test/image-block.test.d.ts +1 -1
  205. package/dist/test/image-block.test.js +48 -48
  206. package/dist/test/item-image.test.d.ts +1 -1
  207. package/dist/test/item-image.test.js +84 -84
  208. package/dist/test/mediatype-config.test.d.ts +1 -1
  209. package/dist/test/mediatype-config.test.js +16 -16
  210. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  211. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  212. package/dist/test/mocks/mock-collection-name-cache.d.ts +9 -9
  213. package/dist/test/mocks/mock-collection-name-cache.js +17 -17
  214. package/dist/test/mocks/mock-search-responses.d.ts +19 -19
  215. package/dist/test/mocks/mock-search-responses.js +623 -623
  216. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  217. package/dist/test/mocks/mock-search-service.js +48 -48
  218. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  219. package/dist/test/restoration-state-handler.test.js +270 -218
  220. package/dist/test/restoration-state-handler.test.js.map +1 -1
  221. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  222. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  223. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  224. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  225. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  226. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +378 -378
  227. package/dist/test/text-overlay.test.d.ts +1 -1
  228. package/dist/test/text-overlay.test.js +48 -48
  229. package/dist/test/text-snippet-block.test.d.ts +1 -1
  230. package/dist/test/text-snippet-block.test.js +57 -57
  231. package/dist/test/tile-stats.test.d.ts +1 -1
  232. package/dist/test/tile-stats.test.js +33 -33
  233. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  234. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  235. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  236. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  237. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  238. package/dist/test/tiles/grid/item-tile.test.js +254 -254
  239. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  240. package/dist/test/tiles/hover/hover-pane-controller.test.js +257 -257
  241. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  242. package/dist/test/tiles/hover/tile-hover-pane.test.js +13 -13
  243. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  244. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  245. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  246. package/dist/test/tiles/list/tile-list.test.js +242 -242
  247. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  248. package/dist/test/tiles/tile-dispatcher.test.js +67 -67
  249. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  250. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  251. package/dist/test/utils/array-equals.test.d.ts +1 -1
  252. package/dist/test/utils/array-equals.test.js +26 -26
  253. package/dist/test/utils/format-count.test.d.ts +1 -1
  254. package/dist/test/utils/format-count.test.js +23 -23
  255. package/dist/test/utils/format-date.test.d.ts +1 -1
  256. package/dist/test/utils/format-date.test.js +17 -17
  257. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  258. package/dist/test/utils/format-unit-size.test.js +17 -17
  259. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  260. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  261. package/local.archive.org.cert +86 -86
  262. package/local.archive.org.key +27 -27
  263. package/package.json +3 -3
  264. package/renovate.json +6 -6
  265. package/src/collection-browser.ts +25 -8
  266. package/src/collection-facets/more-facets-content.ts +9 -2
  267. package/src/collection-facets.ts +3 -0
  268. package/src/models.ts +193 -109
  269. package/src/restoration-state-handler.ts +66 -40
  270. package/src/sort-filter-bar/sort-filter-bar.ts +34 -27
  271. package/test/collection-facets/more-facets-content.test.ts +35 -0
  272. package/test/restoration-state-handler.test.ts +68 -1
  273. package/tsconfig.json +21 -21
  274. package/web-dev-server.config.mjs +30 -30
  275. package/web-test-runner.config.mjs +41 -41
@@ -1,59 +1,59 @@
1
- var TileDispatcher_1;
2
- import { __decorate } from "tslib";
3
- import { css, html, nothing } from 'lit';
4
- import { customElement, property, query } from 'lit/decorators.js';
5
- import { ifDefined } from 'lit/directives/if-defined.js';
6
- import './grid/collection-tile';
7
- import './grid/item-tile';
8
- import './grid/account-tile';
9
- import './hover/tile-hover-pane';
10
- import './list/tile-list';
11
- import './list/tile-list-compact';
12
- import './list/tile-list-compact-header';
13
- import { BaseTileComponent } from './base-tile-component';
14
- import { HoverPaneController, } from './hover/hover-pane-controller';
15
- let TileDispatcher = TileDispatcher_1 = class TileDispatcher extends BaseTileComponent {
16
- constructor() {
17
- /*
18
- * Reactive properties inherited from BaseTileComponent:
19
- * - model?: TileModel;
20
- * - currentWidth?: number;
21
- * - currentHeight?: number;
22
- * - baseNavigationUrl?: string;
23
- * - baseImageUrl?: string;
24
- * - collectionPagePath?: string;
25
- * - sortParam: SortParam | null = null;
26
- * - creatorFilter?: string;
27
- * - mobileBreakpoint?: number;
28
- * - loggedIn = false;
29
- */
30
- super(...arguments);
31
- /** Whether this tile should include a hover pane at all (for applicable tile modes) */
32
- this.enableHoverPane = false;
33
- }
34
- render() {
35
- var _a, _b;
36
- const isGridMode = this.tileDisplayMode === 'grid';
37
- const hoverPaneTemplate = (_b = (_a = this.hoverPaneController) === null || _a === void 0 ? void 0 : _a.getTemplate()) !== null && _b !== void 0 ? _b : nothing;
1
+ var TileDispatcher_1;
2
+ import { __decorate } from "tslib";
3
+ import { css, html, nothing } from 'lit';
4
+ import { customElement, property, query } from 'lit/decorators.js';
5
+ import { ifDefined } from 'lit/directives/if-defined.js';
6
+ import './grid/collection-tile';
7
+ import './grid/item-tile';
8
+ import './grid/account-tile';
9
+ import './hover/tile-hover-pane';
10
+ import './list/tile-list';
11
+ import './list/tile-list-compact';
12
+ import './list/tile-list-compact-header';
13
+ import { BaseTileComponent } from './base-tile-component';
14
+ import { HoverPaneController, } from './hover/hover-pane-controller';
15
+ let TileDispatcher = TileDispatcher_1 = class TileDispatcher extends BaseTileComponent {
16
+ constructor() {
17
+ /*
18
+ * Reactive properties inherited from BaseTileComponent:
19
+ * - model?: TileModel;
20
+ * - currentWidth?: number;
21
+ * - currentHeight?: number;
22
+ * - baseNavigationUrl?: string;
23
+ * - baseImageUrl?: string;
24
+ * - collectionPagePath?: string;
25
+ * - sortParam: SortParam | null = null;
26
+ * - creatorFilter?: string;
27
+ * - mobileBreakpoint?: number;
28
+ * - loggedIn = false;
29
+ */
30
+ super(...arguments);
31
+ /** Whether this tile should include a hover pane at all (for applicable tile modes) */
32
+ this.enableHoverPane = false;
33
+ }
34
+ render() {
35
+ var _a, _b;
36
+ const isGridMode = this.tileDisplayMode === 'grid';
37
+ const hoverPaneTemplate = (_b = (_a = this.hoverPaneController) === null || _a === void 0 ? void 0 : _a.getTemplate()) !== null && _b !== void 0 ? _b : nothing;
38
38
  return html `
39
39
  <div id="container" class=${isGridMode ? 'hoverable' : nothing}>
40
- ${this.tileDisplayMode === 'list-header'
41
- ? this.headerTemplate
40
+ ${this.tileDisplayMode === 'list-header'
41
+ ? this.headerTemplate
42
42
  : this.tileTemplate}
43
43
  ${hoverPaneTemplate}
44
44
  </div>
45
- `;
46
- }
47
- firstUpdated() {
48
- if (this.shouldPrepareHoverPane) {
49
- this.hoverPaneController = new HoverPaneController(this, {
50
- mobileBreakpoint: this.mobileBreakpoint,
51
- enableLongPress: false,
52
- });
53
- }
54
- }
55
- get headerTemplate() {
56
- const { currentWidth, sortParam, mobileBreakpoint } = this;
45
+ `;
46
+ }
47
+ firstUpdated() {
48
+ if (this.shouldPrepareHoverPane) {
49
+ this.hoverPaneController = new HoverPaneController(this, {
50
+ mobileBreakpoint: this.mobileBreakpoint,
51
+ enableLongPress: false,
52
+ });
53
+ }
54
+ }
55
+ get headerTemplate() {
56
+ const { currentWidth, sortParam, mobileBreakpoint } = this;
57
57
  return html `
58
58
  <tile-list-compact-header
59
59
  class="header"
@@ -62,104 +62,104 @@ let TileDispatcher = TileDispatcher_1 = class TileDispatcher extends BaseTileCom
62
62
  .mobileBreakpoint=${mobileBreakpoint}
63
63
  >
64
64
  </tile-list-compact-header>
65
- `;
66
- }
67
- get tileTemplate() {
65
+ `;
66
+ }
67
+ get tileTemplate() {
68
68
  return html `
69
- ${this.tileDisplayMode === 'list-detail'
70
- ? this.tile
69
+ ${this.tileDisplayMode === 'list-detail'
70
+ ? this.tile
71
71
  : this.linkTileTemplate}
72
- `;
73
- }
74
- get linkTileTemplate() {
75
- var _a, _b, _c;
72
+ `;
73
+ }
74
+ get linkTileTemplate() {
75
+ var _a, _b, _c;
76
76
  return html `
77
77
  <a
78
78
  href=${this.linkTileHref}
79
79
  aria-label=${(_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a.title) !== null && _b !== void 0 ? _b : 'Untitled item'}
80
- title=${this.shouldPrepareHoverPane
81
- ? nothing // Don't show title tooltips when we have the tile info popups
80
+ title=${this.shouldPrepareHoverPane
81
+ ? nothing // Don't show title tooltips when we have the tile info popups
82
82
  : ifDefined((_c = this.model) === null || _c === void 0 ? void 0 : _c.title)}
83
83
  @click=${() => this.dispatchEvent(new CustomEvent('resultSelected', { detail: this.model }))}
84
84
  >
85
85
  ${this.tile}
86
86
  </a>
87
- `;
88
- }
89
- get linkTileHref() {
90
- var _a;
91
- if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.identifier) || this.baseNavigationUrl == null)
92
- return nothing;
93
- // Use the server-specified href if available.
94
- // Otherwise, construct a details page URL from the item identifier.
95
- if (this.model.href) {
96
- return `${this.baseNavigationUrl}${this.model.href}`;
97
- }
98
- return this.displayValueProvider.itemPageUrl(this.model.identifier, this.model.mediatype === 'collection');
99
- }
100
- /**
101
- * Whether hover pane behavior should be prepared for this tile
102
- * (e.g., whether mouse listeners should be attached, etc.)
103
- */
104
- get shouldPrepareHoverPane() {
105
- return (this.enableHoverPane &&
106
- !!this.tileDisplayMode &&
107
- TileDispatcher_1.HOVER_PANE_DISPLAY_MODES[this.tileDisplayMode]);
108
- }
109
- get isHoverEnabled() {
110
- return window.matchMedia('(hover: hover)').matches;
111
- }
112
- /** @inheritdoc */
113
- getHoverPane() {
114
- return this.hoverPane;
115
- }
116
- /** @inheritdoc */
117
- getHoverPaneProps() {
118
- return this;
119
- }
120
- handleResize(entry) {
121
- this.currentWidth = entry.contentRect.width;
122
- this.currentHeight = entry.contentRect.height;
123
- }
124
- disconnectedCallback() {
125
- this.stopResizeObservation(this.resizeObserver);
126
- }
127
- stopResizeObservation(observer) {
128
- observer === null || observer === void 0 ? void 0 : observer.removeObserver({
129
- handler: this,
130
- target: this.container,
131
- });
132
- }
133
- startResizeObservation() {
134
- var _a;
135
- this.stopResizeObservation(this.resizeObserver);
136
- (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.addObserver({
137
- handler: this,
138
- target: this.container,
139
- });
140
- }
141
- updated(props) {
142
- if (props.has('resizeObserver')) {
143
- const previousObserver = props.get('resizeObserver');
144
- this.stopResizeObservation(previousObserver);
145
- this.startResizeObservation();
146
- }
147
- }
148
- tileInfoButtonPressed(e) {
149
- var _a;
150
- (_a = this.hoverPaneController) === null || _a === void 0 ? void 0 : _a.toggleHoverPane({
151
- coords: e.detail,
152
- enableTouchBackdrop: true,
153
- });
154
- }
155
- get tile() {
156
- const { model, collectionPagePath, baseNavigationUrl, currentWidth, currentHeight, sortParam, creatorFilter, mobileBreakpoint, } = this;
157
- if (!model)
158
- return nothing;
159
- switch (this.tileDisplayMode) {
160
- case 'grid':
161
- switch (model.mediatype) {
162
- case 'collection':
87
+ `;
88
+ }
89
+ get linkTileHref() {
90
+ var _a;
91
+ if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.identifier) || this.baseNavigationUrl == null)
92
+ return nothing;
93
+ // Use the server-specified href if available.
94
+ // Otherwise, construct a details page URL from the item identifier.
95
+ if (this.model.href) {
96
+ return `${this.baseNavigationUrl}${this.model.href}`;
97
+ }
98
+ return this.displayValueProvider.itemPageUrl(this.model.identifier, this.model.mediatype === 'collection');
99
+ }
100
+ /**
101
+ * Whether hover pane behavior should be prepared for this tile
102
+ * (e.g., whether mouse listeners should be attached, etc.)
103
+ */
104
+ get shouldPrepareHoverPane() {
105
+ return (this.enableHoverPane &&
106
+ !!this.tileDisplayMode &&
107
+ TileDispatcher_1.HOVER_PANE_DISPLAY_MODES[this.tileDisplayMode]);
108
+ }
109
+ get isHoverEnabled() {
110
+ return window.matchMedia('(hover: hover)').matches;
111
+ }
112
+ /** @inheritdoc */
113
+ getHoverPane() {
114
+ return this.hoverPane;
115
+ }
116
+ /** @inheritdoc */
117
+ getHoverPaneProps() {
118
+ return this;
119
+ }
120
+ handleResize(entry) {
121
+ this.currentWidth = entry.contentRect.width;
122
+ this.currentHeight = entry.contentRect.height;
123
+ }
124
+ disconnectedCallback() {
125
+ this.stopResizeObservation(this.resizeObserver);
126
+ }
127
+ stopResizeObservation(observer) {
128
+ observer === null || observer === void 0 ? void 0 : observer.removeObserver({
129
+ handler: this,
130
+ target: this.container,
131
+ });
132
+ }
133
+ startResizeObservation() {
134
+ var _a;
135
+ this.stopResizeObservation(this.resizeObserver);
136
+ (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.addObserver({
137
+ handler: this,
138
+ target: this.container,
139
+ });
140
+ }
141
+ updated(props) {
142
+ if (props.has('resizeObserver')) {
143
+ const previousObserver = props.get('resizeObserver');
144
+ this.stopResizeObservation(previousObserver);
145
+ this.startResizeObservation();
146
+ }
147
+ }
148
+ tileInfoButtonPressed(e) {
149
+ var _a;
150
+ (_a = this.hoverPaneController) === null || _a === void 0 ? void 0 : _a.toggleHoverPane({
151
+ coords: e.detail,
152
+ enableTouchBackdrop: true,
153
+ });
154
+ }
155
+ get tile() {
156
+ const { model, collectionPagePath, baseNavigationUrl, currentWidth, currentHeight, sortParam, creatorFilter, mobileBreakpoint, } = this;
157
+ if (!model)
158
+ return nothing;
159
+ switch (this.tileDisplayMode) {
160
+ case 'grid':
161
+ switch (model.mediatype) {
162
+ case 'collection':
163
163
  return html `<collection-tile
164
164
  .model=${model}
165
165
  .collectionPagePath=${collectionPagePath}
@@ -170,8 +170,8 @@ let TileDispatcher = TileDispatcher_1 = class TileDispatcher extends BaseTileCom
170
170
  ?showInfoButton=${!this.isHoverEnabled}
171
171
  @infoButtonPressed=${this.tileInfoButtonPressed}
172
172
  >
173
- </collection-tile>`;
174
- case 'account':
173
+ </collection-tile>`;
174
+ case 'account':
175
175
  return html `<account-tile
176
176
  .model=${model}
177
177
  .collectionPagePath=${collectionPagePath}
@@ -182,8 +182,8 @@ let TileDispatcher = TileDispatcher_1 = class TileDispatcher extends BaseTileCom
182
182
  ?showInfoButton=${!this.isHoverEnabled}
183
183
  @infoButtonPressed=${this.tileInfoButtonPressed}
184
184
  >
185
- </account-tile>`;
186
- default:
185
+ </account-tile>`;
186
+ default:
187
187
  return html `<item-tile
188
188
  .model=${model}
189
189
  .collectionPagePath=${collectionPagePath}
@@ -197,9 +197,9 @@ let TileDispatcher = TileDispatcher_1 = class TileDispatcher extends BaseTileCom
197
197
  ?showInfoButton=${!this.isHoverEnabled}
198
198
  @infoButtonPressed=${this.tileInfoButtonPressed}
199
199
  >
200
- </item-tile>`;
201
- }
202
- case 'list-compact':
200
+ </item-tile>`;
201
+ }
202
+ case 'list-compact':
203
203
  return html `<tile-list-compact
204
204
  .model=${model}
205
205
  .collectionPagePath=${collectionPagePath}
@@ -212,8 +212,8 @@ let TileDispatcher = TileDispatcher_1 = class TileDispatcher extends BaseTileCom
212
212
  .baseImageUrl=${this.baseImageUrl}
213
213
  .loggedIn=${this.loggedIn}
214
214
  >
215
- </tile-list-compact>`;
216
- case 'list-detail':
215
+ </tile-list-compact>`;
216
+ case 'list-detail':
217
217
  return html `<tile-list
218
218
  .model=${model}
219
219
  .collectionPagePath=${collectionPagePath}
@@ -227,12 +227,12 @@ let TileDispatcher = TileDispatcher_1 = class TileDispatcher extends BaseTileCom
227
227
  .baseImageUrl=${this.baseImageUrl}
228
228
  .loggedIn=${this.loggedIn}
229
229
  >
230
- </tile-list>`;
231
- default:
232
- return nothing;
233
- }
234
- }
235
- static get styles() {
230
+ </tile-list>`;
231
+ default:
232
+ return nothing;
233
+ }
234
+ }
235
+ static get styles() {
236
236
  return css `
237
237
  :host {
238
238
  display: block;
@@ -295,36 +295,36 @@ let TileDispatcher = TileDispatcher_1 = class TileDispatcher extends BaseTileCom
295
295
  left: -9999px;
296
296
  z-index: 2;
297
297
  }
298
- `;
299
- }
300
- };
301
- /** Maps each display mode to whether hover panes should appear in that mode */
302
- TileDispatcher.HOVER_PANE_DISPLAY_MODES = {
303
- grid: true,
304
- 'list-compact': true,
305
- 'list-detail': false,
306
- 'list-header': false,
307
- };
308
- __decorate([
309
- property({ type: String })
310
- ], TileDispatcher.prototype, "tileDisplayMode", void 0);
311
- __decorate([
312
- property({ type: Object })
313
- ], TileDispatcher.prototype, "resizeObserver", void 0);
314
- __decorate([
315
- property({ type: Object })
316
- ], TileDispatcher.prototype, "collectionNameCache", void 0);
317
- __decorate([
318
- property({ type: Boolean })
319
- ], TileDispatcher.prototype, "enableHoverPane", void 0);
320
- __decorate([
321
- query('#container')
322
- ], TileDispatcher.prototype, "container", void 0);
323
- __decorate([
324
- query('tile-hover-pane')
325
- ], TileDispatcher.prototype, "hoverPane", void 0);
326
- TileDispatcher = TileDispatcher_1 = __decorate([
327
- customElement('tile-dispatcher')
328
- ], TileDispatcher);
329
- export { TileDispatcher };
298
+ `;
299
+ }
300
+ };
301
+ /** Maps each display mode to whether hover panes should appear in that mode */
302
+ TileDispatcher.HOVER_PANE_DISPLAY_MODES = {
303
+ grid: true,
304
+ 'list-compact': true,
305
+ 'list-detail': false,
306
+ 'list-header': false,
307
+ };
308
+ __decorate([
309
+ property({ type: String })
310
+ ], TileDispatcher.prototype, "tileDisplayMode", void 0);
311
+ __decorate([
312
+ property({ type: Object })
313
+ ], TileDispatcher.prototype, "resizeObserver", void 0);
314
+ __decorate([
315
+ property({ type: Object })
316
+ ], TileDispatcher.prototype, "collectionNameCache", void 0);
317
+ __decorate([
318
+ property({ type: Boolean })
319
+ ], TileDispatcher.prototype, "enableHoverPane", void 0);
320
+ __decorate([
321
+ query('#container')
322
+ ], TileDispatcher.prototype, "container", void 0);
323
+ __decorate([
324
+ query('tile-hover-pane')
325
+ ], TileDispatcher.prototype, "hoverPane", void 0);
326
+ TileDispatcher = TileDispatcher_1 = __decorate([
327
+ customElement('tile-dispatcher')
328
+ ], TileDispatcher);
329
+ export { TileDispatcher };
330
330
  //# sourceMappingURL=tile-dispatcher.js.map
@@ -1,43 +1,43 @@
1
- import { nothing } from 'lit';
2
- import type { SortParam } from '@internetarchive/search-service';
3
- import type { TileModel } from '../models';
4
- /**
5
- * A class encapsulating shared logic for converting model values into display values
6
- * across different types of tiles.
7
- */
8
- export declare class TileDisplayValueProvider {
9
- private model?;
10
- private baseNavigationUrl?;
11
- private collectionPagePath?;
12
- private sortParam?;
13
- private creatorFilter?;
14
- constructor(options?: {
15
- model?: TileModel;
16
- baseNavigationUrl?: string;
17
- collectionPagePath?: string;
18
- sortParam?: SortParam;
19
- creatorFilter?: string;
20
- });
21
- /**
22
- * Examines the creator(s) for the given tile model, returning
23
- * the first creator whose name matches the provided filter
24
- * (or simply the first creator overall if no filter is provided).
25
- */
26
- get firstCreatorMatchingFilter(): string | undefined;
27
- /**
28
- * The label indicating what year an account item was created.
29
- * E.g., "Archivist since 2015"
30
- */
31
- get accountLabel(): string;
32
- /**
33
- * The readable label for the current sort if it is a type of date sort,
34
- * or the empty string otherwise.
35
- */
36
- get dateLabel(): string;
37
- /**
38
- * Produces a URL pointing at the item page for the given identifier,
39
- * using the current base URL and the correct path based on whether the
40
- * item is specified to be a collection (default false).
41
- */
42
- itemPageUrl(identifier: string, isCollection?: boolean): string | typeof nothing;
43
- }
1
+ import { nothing } from 'lit';
2
+ import type { SortParam } from '@internetarchive/search-service';
3
+ import type { TileModel } from '../models';
4
+ /**
5
+ * A class encapsulating shared logic for converting model values into display values
6
+ * across different types of tiles.
7
+ */
8
+ export declare class TileDisplayValueProvider {
9
+ private model?;
10
+ private baseNavigationUrl?;
11
+ private collectionPagePath?;
12
+ private sortParam?;
13
+ private creatorFilter?;
14
+ constructor(options?: {
15
+ model?: TileModel;
16
+ baseNavigationUrl?: string;
17
+ collectionPagePath?: string;
18
+ sortParam?: SortParam;
19
+ creatorFilter?: string;
20
+ });
21
+ /**
22
+ * Examines the creator(s) for the given tile model, returning
23
+ * the first creator whose name matches the provided filter
24
+ * (or simply the first creator overall if no filter is provided).
25
+ */
26
+ get firstCreatorMatchingFilter(): string | undefined;
27
+ /**
28
+ * The label indicating what year an account item was created.
29
+ * E.g., "Archivist since 2015"
30
+ */
31
+ get accountLabel(): string;
32
+ /**
33
+ * The readable label for the current sort if it is a type of date sort,
34
+ * or the empty string otherwise.
35
+ */
36
+ get dateLabel(): string;
37
+ /**
38
+ * Produces a URL pointing at the item page for the given identifier,
39
+ * using the current base URL and the correct path based on whether the
40
+ * item is specified to be a collection (default false).
41
+ */
42
+ itemPageUrl(identifier: string, isCollection?: boolean): string | typeof nothing;
43
+ }