@internetarchive/collection-browser 0.4.9-alpha.1 → 0.4.9

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 (263) 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 +50 -50
  12. package/dist/src/app-root.js +278 -278
  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/empty-query.d.ts +2 -2
  20. package/dist/src/assets/img/icons/empty-query.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/login-required.d.ts +1 -1
  28. package/dist/src/assets/img/icons/login-required.js +2 -2
  29. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  30. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  31. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  32. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  33. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  34. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  35. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  36. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  37. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  38. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  39. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  40. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  41. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  42. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  43. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  44. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  45. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  46. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  47. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  48. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  49. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  50. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  51. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  52. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  53. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  54. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  55. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  56. package/dist/src/assets/img/icons/null-result.js +2 -2
  57. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  58. package/dist/src/assets/img/icons/restricted.js +2 -2
  59. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  60. package/dist/src/assets/img/icons/reviews.js +2 -2
  61. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  62. package/dist/src/assets/img/icons/upload.js +2 -2
  63. package/dist/src/assets/img/icons/views.d.ts +1 -1
  64. package/dist/src/assets/img/icons/views.js +2 -2
  65. package/dist/src/circular-activity-indicator.d.ts +5 -5
  66. package/dist/src/circular-activity-indicator.js +17 -17
  67. package/dist/src/collection-browser.d.ts +281 -281
  68. package/dist/src/collection-browser.js +1204 -1200
  69. package/dist/src/collection-browser.js.map +1 -1
  70. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  71. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  72. package/dist/src/collection-facets/facets-template.d.ts +16 -16
  73. package/dist/src/collection-facets/facets-template.js +125 -125
  74. package/dist/src/collection-facets/more-facets-content.d.ts +77 -77
  75. package/dist/src/collection-facets/more-facets-content.js +357 -357
  76. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  77. package/dist/src/collection-facets/more-facets-pagination.js +192 -192
  78. package/dist/src/collection-facets.d.ts +83 -83
  79. package/dist/src/collection-facets.js +392 -392
  80. package/dist/src/collection-facets.js.map +1 -1
  81. package/dist/src/empty-placeholder.d.ts +11 -11
  82. package/dist/src/empty-placeholder.js +42 -42
  83. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  84. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  85. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  86. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  87. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  88. package/dist/src/mediatype/mediatype-config.js +85 -85
  89. package/dist/src/models.d.ts +115 -114
  90. package/dist/src/models.js +125 -125
  91. package/dist/src/models.js.map +1 -1
  92. package/dist/src/restoration-state-handler.d.ts +45 -45
  93. package/dist/src/restoration-state-handler.js +230 -230
  94. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -0
  95. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +61 -0
  96. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js.map +1 -0
  97. package/dist/src/sort-filter-bar/alpha-bar.d.ts +20 -12
  98. package/dist/src/sort-filter-bar/alpha-bar.js +166 -58
  99. package/dist/src/sort-filter-bar/alpha-bar.js.map +1 -1
  100. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  101. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  102. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  103. package/dist/src/sort-filter-bar/img/list.js +2 -2
  104. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  105. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  106. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  107. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  108. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +108 -108
  109. package/dist/src/sort-filter-bar/sort-filter-bar.js +438 -438
  110. package/dist/src/styles/item-image-styles.d.ts +8 -8
  111. package/dist/src/styles/item-image-styles.js +9 -9
  112. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  113. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  114. package/dist/src/tiles/grid/account-tile.d.ts +20 -17
  115. package/dist/src/tiles/grid/account-tile.js +68 -46
  116. package/dist/src/tiles/grid/account-tile.js.map +1 -1
  117. package/dist/src/tiles/grid/collection-tile.d.ts +17 -14
  118. package/dist/src/tiles/grid/collection-tile.js +75 -53
  119. package/dist/src/tiles/grid/collection-tile.js.map +1 -1
  120. package/dist/src/tiles/grid/item-tile.d.ts +32 -29
  121. package/dist/src/tiles/grid/item-tile.js +126 -108
  122. package/dist/src/tiles/grid/item-tile.js.map +1 -1
  123. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  124. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +44 -8
  125. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js.map +1 -1
  126. package/dist/src/tiles/grid/tile-stats.d.ts +10 -10
  127. package/dist/src/tiles/grid/tile-stats.js +40 -40
  128. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -197
  129. package/dist/src/tiles/hover/hover-pane-controller.js +352 -331
  130. package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
  131. package/dist/src/tiles/hover/tile-hover-pane.d.ts +15 -15
  132. package/dist/src/tiles/hover/tile-hover-pane.js +38 -38
  133. package/dist/src/tiles/image-block.d.ts +17 -17
  134. package/dist/src/tiles/image-block.js +72 -72
  135. package/dist/src/tiles/item-image.d.ts +35 -35
  136. package/dist/src/tiles/item-image.js +117 -117
  137. package/dist/src/tiles/list/account-label.d.ts +1 -1
  138. package/dist/src/tiles/list/account-label.js +6 -6
  139. package/dist/src/tiles/list/date-label.d.ts +1 -1
  140. package/dist/src/tiles/list/date-label.js +12 -12
  141. package/dist/src/tiles/list/tile-list-compact-header.d.ts +12 -12
  142. package/dist/src/tiles/list/tile-list-compact-header.js +41 -41
  143. package/dist/src/tiles/list/tile-list-compact.d.ts +21 -21
  144. package/dist/src/tiles/list/tile-list-compact.js +99 -99
  145. package/dist/src/tiles/list/tile-list.d.ts +55 -55
  146. package/dist/src/tiles/list/tile-list.js +303 -297
  147. package/dist/src/tiles/list/tile-list.js.map +1 -1
  148. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  149. package/dist/src/tiles/mediatype-icon.js +47 -47
  150. package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
  151. package/dist/src/tiles/overlay/icon-overlay.js +40 -40
  152. package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
  153. package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
  154. package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
  155. package/dist/src/tiles/overlay/text-overlay.js +42 -42
  156. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  157. package/dist/src/tiles/text-snippet-block.js +73 -73
  158. package/dist/src/tiles/tile-dispatcher.d.ts +58 -55
  159. package/dist/src/tiles/tile-dispatcher.js +203 -179
  160. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  161. package/dist/src/utils/analytics-events.d.ts +22 -22
  162. package/dist/src/utils/analytics-events.js +24 -24
  163. package/dist/src/utils/format-count.d.ts +7 -7
  164. package/dist/src/utils/format-count.js +76 -76
  165. package/dist/src/utils/format-date.d.ts +2 -2
  166. package/dist/src/utils/format-date.js +23 -23
  167. package/dist/src/utils/format-unit-size.d.ts +2 -2
  168. package/dist/src/utils/format-unit-size.js +33 -33
  169. package/dist/test/collection-browser.test.d.ts +1 -1
  170. package/dist/test/collection-browser.test.js +584 -584
  171. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  172. package/dist/test/collection-facets/facets-template.test.js +62 -62
  173. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  174. package/dist/test/collection-facets/more-facets-content.test.js +114 -114
  175. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  176. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  177. package/dist/test/collection-facets.test.d.ts +2 -2
  178. package/dist/test/collection-facets.test.js +508 -508
  179. package/dist/test/empty-placeholder.test.d.ts +1 -1
  180. package/dist/test/empty-placeholder.test.js +33 -33
  181. package/dist/test/icon-overlay.test.d.ts +1 -1
  182. package/dist/test/icon-overlay.test.js +24 -24
  183. package/dist/test/image-block.test.d.ts +1 -1
  184. package/dist/test/image-block.test.js +48 -48
  185. package/dist/test/item-image.test.d.ts +1 -1
  186. package/dist/test/item-image.test.js +84 -84
  187. package/dist/test/mediatype-config.test.d.ts +1 -1
  188. package/dist/test/mediatype-config.test.js +16 -16
  189. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  190. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  191. package/dist/test/mocks/mock-collection-name-cache.d.ts +7 -7
  192. package/dist/test/mocks/mock-collection-name-cache.js +13 -13
  193. package/dist/test/mocks/mock-search-responses.d.ts +12 -12
  194. package/dist/test/mocks/mock-search-responses.js +341 -341
  195. package/dist/test/mocks/mock-search-service.d.ts +13 -13
  196. package/dist/test/mocks/mock-search-service.js +40 -40
  197. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  198. package/dist/test/restoration-state-handler.test.js +125 -125
  199. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -0
  200. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +13 -0
  201. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js.map +1 -0
  202. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  203. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -43
  204. package/dist/test/sort-filter-bar/alpha-bar.test.js.map +1 -1
  205. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  206. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +197 -197
  207. package/dist/test/text-overlay.test.d.ts +1 -1
  208. package/dist/test/text-overlay.test.js +48 -48
  209. package/dist/test/text-snippet-block.test.d.ts +1 -1
  210. package/dist/test/text-snippet-block.test.js +57 -57
  211. package/dist/test/tile-stats.test.d.ts +1 -1
  212. package/dist/test/tile-stats.test.js +33 -33
  213. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  214. package/dist/test/tiles/grid/account-tile.test.js +81 -60
  215. package/dist/test/tiles/grid/account-tile.test.js.map +1 -1
  216. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  217. package/dist/test/tiles/grid/collection-tile.test.js +81 -57
  218. package/dist/test/tiles/grid/collection-tile.test.js.map +1 -1
  219. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  220. package/dist/test/tiles/grid/item-tile.test.js +163 -142
  221. package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
  222. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  223. package/dist/test/tiles/hover/hover-pane-controller.test.js +257 -257
  224. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  225. package/dist/test/tiles/hover/tile-hover-pane.test.js +13 -13
  226. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  227. package/dist/test/tiles/list/tile-list-compact.test.js +92 -92
  228. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  229. package/dist/test/tiles/list/tile-list.test.js +163 -163
  230. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -0
  231. package/dist/test/tiles/tile-dispatcher.test.js +101 -0
  232. package/dist/test/tiles/tile-dispatcher.test.js.map +1 -0
  233. package/dist/test/utils/format-count.test.d.ts +1 -1
  234. package/dist/test/utils/format-count.test.js +23 -23
  235. package/dist/test/utils/format-date.test.d.ts +1 -1
  236. package/dist/test/utils/format-date.test.js +17 -17
  237. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  238. package/dist/test/utils/format-unit-size.test.js +17 -17
  239. package/local.archive.org.cert +86 -86
  240. package/local.archive.org.key +27 -27
  241. package/package.json +1 -1
  242. package/renovate.json +6 -6
  243. package/src/collection-browser.ts +4 -0
  244. package/src/collection-facets.ts +3 -5
  245. package/src/models.ts +1 -0
  246. package/src/sort-filter-bar/alpha-bar-tooltip.ts +54 -0
  247. package/src/sort-filter-bar/alpha-bar.ts +133 -9
  248. package/src/tiles/grid/account-tile.ts +23 -1
  249. package/src/tiles/grid/collection-tile.ts +31 -2
  250. package/src/tiles/grid/item-tile.ts +22 -2
  251. package/src/tiles/grid/styles/tile-grid-shared-styles.ts +37 -1
  252. package/src/tiles/hover/hover-pane-controller.ts +38 -1
  253. package/src/tiles/list/tile-list.ts +8 -1
  254. package/src/tiles/tile-dispatcher.ts +29 -2
  255. package/test/sort-filter-bar/alpha-bar-tooltip.test.ts +17 -0
  256. package/test/sort-filter-bar/alpha-bar.test.ts +46 -1
  257. package/test/tiles/grid/account-tile.test.ts +27 -0
  258. package/test/tiles/grid/collection-tile.test.ts +30 -0
  259. package/test/tiles/grid/item-tile.test.ts +27 -0
  260. package/test/tiles/tile-dispatcher.test.ts +122 -0
  261. package/tsconfig.json +21 -21
  262. package/web-dev-server.config.mjs +30 -30
  263. package/web-test-runner.config.mjs +41 -41
@@ -1,8 +1,8 @@
1
- /**
2
- * Base item-image styles
3
- */
4
- export declare const baseItemImageStyles: import("lit").CSSResult;
5
- /**
6
- * Waveform styles
7
- */
8
- export declare const waveformGradientStyles: import("lit").CSSResult;
1
+ /**
2
+ * Base item-image styles
3
+ */
4
+ export declare const baseItemImageStyles: import("lit").CSSResult;
5
+ /**
6
+ * Waveform styles
7
+ */
8
+ export declare const waveformGradientStyles: import("lit").CSSResult;
@@ -1,7 +1,7 @@
1
- import { css } from 'lit';
2
- /**
3
- * Base item-image styles
4
- */
1
+ import { css } from 'lit';
2
+ /**
3
+ * Base item-image styles
4
+ */
5
5
  export const baseItemImageStyles = css `
6
6
  .drop-shadow {
7
7
  overflow: hidden;
@@ -49,10 +49,10 @@ export const baseItemImageStyles = css `
49
49
  width: 100%;
50
50
  height: 160px;
51
51
  }
52
- `;
53
- /**
54
- * Waveform styles
55
- */
52
+ `;
53
+ /**
54
+ * Waveform styles
55
+ */
56
56
  export const waveformGradientStyles = css `
57
57
  .waveform {
58
58
  mix-blend-mode: screen;
@@ -115,5 +115,5 @@ export const waveformGradientStyles = css `
115
115
  hsl(0, 0%, 0%)
116
116
  );
117
117
  }
118
- `;
118
+ `;
119
119
  //# sourceMappingURL=item-image-styles.js.map
@@ -1,5 +1,5 @@
1
- import { LitElement } from 'lit';
2
- export declare class CollectionBrowserLoadingTile extends LitElement {
3
- render(): import("lit-html").TemplateResult<1>;
4
- static get styles(): import("lit").CSSResult;
5
- }
1
+ import { LitElement } from 'lit';
2
+ export declare class CollectionBrowserLoadingTile extends LitElement {
3
+ render(): import("lit-html").TemplateResult<1>;
4
+ static get styles(): import("lit").CSSResult;
5
+ }
@@ -1,11 +1,11 @@
1
- import { __decorate } from "tslib";
2
- import { css, html, LitElement } from 'lit';
3
- import { customElement } from 'lit/decorators.js';
4
- let CollectionBrowserLoadingTile = class CollectionBrowserLoadingTile extends LitElement {
5
- render() {
6
- return html ` <div id="container"></div> `;
7
- }
8
- static get styles() {
1
+ import { __decorate } from "tslib";
2
+ import { css, html, LitElement } from 'lit';
3
+ import { customElement } from 'lit/decorators.js';
4
+ let CollectionBrowserLoadingTile = class CollectionBrowserLoadingTile extends LitElement {
5
+ render() {
6
+ return html ` <div id="container"></div> `;
7
+ }
8
+ static get styles() {
9
9
  return css `
10
10
  :host {
11
11
  display: block;
@@ -19,11 +19,11 @@ let CollectionBrowserLoadingTile = class CollectionBrowserLoadingTile extends Li
19
19
  display: block;
20
20
  height: 100%;
21
21
  }
22
- `;
23
- }
24
- };
25
- CollectionBrowserLoadingTile = __decorate([
26
- customElement('collection-browser-loading-tile')
27
- ], CollectionBrowserLoadingTile);
28
- export { CollectionBrowserLoadingTile };
22
+ `;
23
+ }
24
+ };
25
+ CollectionBrowserLoadingTile = __decorate([
26
+ customElement('collection-browser-loading-tile')
27
+ ], CollectionBrowserLoadingTile);
28
+ export { CollectionBrowserLoadingTile };
29
29
  //# sourceMappingURL=collection-browser-loading-tile.js.map
@@ -1,17 +1,20 @@
1
- import { LitElement, TemplateResult } from 'lit';
2
- import type { TileModel } from '../../models';
3
- import '../image-block';
4
- import './tile-stats';
5
- export declare class AccountTile extends LitElement {
6
- model?: TileModel;
7
- baseImageUrl?: string;
8
- render(): TemplateResult<1>;
9
- private get getAvatarTemplate();
10
- private get getTitleTemplate();
11
- private get getArchivistTemplate();
12
- private get getTileStatsTemplate();
13
- /**
14
- * CSS
15
- */
16
- static get styles(): import("lit").CSSResult[];
17
- }
1
+ import { LitElement, TemplateResult } from 'lit';
2
+ import type { TileModel } from '../../models';
3
+ import '../image-block';
4
+ import './tile-stats';
5
+ export declare class AccountTile extends LitElement {
6
+ model?: TileModel;
7
+ baseImageUrl?: string;
8
+ showInfoButton: boolean;
9
+ render(): TemplateResult<1>;
10
+ private get getAvatarTemplate();
11
+ private get getTitleTemplate();
12
+ private get getArchivistTemplate();
13
+ private get getTileStatsTemplate();
14
+ private get infoButtonTemplate();
15
+ private infoButtonPressed;
16
+ /**
17
+ * CSS
18
+ */
19
+ static get styles(): import("lit").CSSResult[];
20
+ }
@@ -1,13 +1,18 @@
1
- import { __decorate } from "tslib";
2
- import { css, html, LitElement } from 'lit';
3
- import { customElement, property } from 'lit/decorators.js';
4
- import { baseTileStyles } from './styles/tile-grid-shared-styles';
5
- import '../image-block';
6
- import './tile-stats';
7
- let AccountTile = class AccountTile extends LitElement {
8
- render() {
1
+ import { __decorate } from "tslib";
2
+ import { css, html, LitElement, nothing } from 'lit';
3
+ import { customElement, property } from 'lit/decorators.js';
4
+ import { baseTileStyles } from './styles/tile-grid-shared-styles';
5
+ import '../image-block';
6
+ import './tile-stats';
7
+ let AccountTile = class AccountTile extends LitElement {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.showInfoButton = false;
11
+ }
12
+ render() {
9
13
  return html `
10
14
  <div class="container">
15
+ ${this.infoButtonTemplate}
11
16
  <div class="tile-details">
12
17
  <div class="item-info">
13
18
  ${this.getAvatarTemplate} ${this.getTitleTemplate}
@@ -16,9 +21,9 @@ let AccountTile = class AccountTile extends LitElement {
16
21
  ${this.getTileStatsTemplate}
17
22
  </div>
18
23
  </div>
19
- `;
20
- }
21
- get getAvatarTemplate() {
24
+ `;
25
+ }
26
+ get getAvatarTemplate() {
22
27
  return html `
23
28
  <image-block
24
29
  .model=${this.model}
@@ -26,53 +31,70 @@ let AccountTile = class AccountTile extends LitElement {
26
31
  .viewSize=${'grid'}
27
32
  >
28
33
  </image-block>
29
- `;
30
- }
31
- get getTitleTemplate() {
32
- var _a;
34
+ `;
35
+ }
36
+ get getTitleTemplate() {
37
+ var _a;
33
38
  return html `<div id="title">
34
39
  <h1 class="truncated">${(_a = this.model) === null || _a === void 0 ? void 0 : _a.identifier}</h1>
35
- </div>`;
36
- }
37
- get getArchivistTemplate() {
38
- var _a, _b;
40
+ </div>`;
41
+ }
42
+ get getArchivistTemplate() {
43
+ var _a, _b;
39
44
  return html `<div class="archivist-since">
40
45
  <span>Archivist since ${(_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a.dateAdded) === null || _b === void 0 ? void 0 : _b.getFullYear()}</span>
41
- </div>`;
42
- }
43
- get getTileStatsTemplate() {
44
- var _a, _b, _c, _d;
46
+ </div>`;
47
+ }
48
+ get getTileStatsTemplate() {
49
+ var _a, _b, _c, _d;
45
50
  return html `<tile-stats
46
51
  .mediatype=${(_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype}
47
52
  .itemCount=${(_b = this.model) === null || _b === void 0 ? void 0 : _b.itemCount}
48
53
  .favCount=${(_c = this.model) === null || _c === void 0 ? void 0 : _c.favCount}
49
54
  .commentCount=${(_d = this.model) === null || _d === void 0 ? void 0 : _d.commentCount}
50
55
  >
51
- </tile-stats>`;
52
- }
53
- /**
54
- * CSS
55
- */
56
- static get styles() {
57
- const tileBorderColor = css `var(--tileBorderColor, #dddddd)`;
58
- return [
59
- baseTileStyles,
56
+ </tile-stats>`;
57
+ }
58
+ get infoButtonTemplate() {
59
+ // &#9432; is an information icon
60
+ return this.showInfoButton
61
+ ? html `<button class="info-button" @click=${this.infoButtonPressed}>
62
+ &#9432;
63
+ <span class="sr-only">More info</span>
64
+ </button>`
65
+ : nothing;
66
+ }
67
+ infoButtonPressed(e) {
68
+ e.preventDefault();
69
+ const event = new CustomEvent('infoButtonPressed', { detail: { x: e.clientX, y: e.clientY } });
70
+ this.dispatchEvent(event);
71
+ }
72
+ /**
73
+ * CSS
74
+ */
75
+ static get styles() {
76
+ const tileBorderColor = css `var(--tileBorderColor, #dddddd)`;
77
+ return [
78
+ baseTileStyles,
60
79
  css `
61
80
  .container {
62
81
  border: 1px solid ${tileBorderColor};
63
82
  }
64
- `,
65
- ];
66
- }
67
- };
68
- __decorate([
69
- property({ type: Object })
70
- ], AccountTile.prototype, "model", void 0);
71
- __decorate([
72
- property({ type: String })
73
- ], AccountTile.prototype, "baseImageUrl", void 0);
74
- AccountTile = __decorate([
75
- customElement('account-tile')
76
- ], AccountTile);
77
- export { AccountTile };
83
+ `,
84
+ ];
85
+ }
86
+ };
87
+ __decorate([
88
+ property({ type: Object })
89
+ ], AccountTile.prototype, "model", void 0);
90
+ __decorate([
91
+ property({ type: String })
92
+ ], AccountTile.prototype, "baseImageUrl", void 0);
93
+ __decorate([
94
+ property({ type: Boolean })
95
+ ], AccountTile.prototype, "showInfoButton", void 0);
96
+ AccountTile = __decorate([
97
+ customElement('account-tile')
98
+ ], AccountTile);
99
+ export { AccountTile };
78
100
  //# sourceMappingURL=account-tile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"account-tile.js","sourceRoot":"","sources":["../../../../src/tiles/grid/account-tile.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAkB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,gBAAgB,CAAC;AACxB,OAAO,cAAc,CAAC;AAGtB,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,UAAU;IAKzC,MAAM;QACJ,OAAO,IAAI,CAAA;;;;cAID,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,gBAAgB;cAC/C,IAAI,CAAC,oBAAoB;;YAE3B,IAAI,CAAC,oBAAoB;;;KAGhC,CAAC;IACJ,CAAC;IAED,IAAY,iBAAiB;QAC3B,OAAO,IAAI,CAAA;;iBAEE,IAAI,CAAC,KAAK;wBACH,IAAI,CAAC,YAAY;oBACrB,MAAM;;;KAGrB,CAAC;IACJ,CAAC;IAED,IAAY,gBAAgB;;QAC1B,OAAO,IAAI,CAAA;8BACe,MAAA,IAAI,CAAC,KAAK,0CAAE,UAAU;WACzC,CAAC;IACV,CAAC;IAED,IAAY,oBAAoB;;QAC9B,OAAO,IAAI,CAAA;8BACe,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS,0CAAE,WAAW,EAAE;WACvD,CAAC;IACV,CAAC;IAED,IAAY,oBAAoB;;QAC9B,OAAO,IAAI,CAAA;mBACI,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS;mBACrB,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS;kBACtB,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ;sBAChB,MAAA,IAAI,CAAC,KAAK,0CAAE,YAAY;;kBAE5B,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,MAAM,KAAK,MAAM;QACf,MAAM,eAAe,GAAG,GAAG,CAAA,iCAAiC,CAAC;QAE7D,OAAO;YACL,cAAc;YACd,GAAG,CAAA;;8BAEqB,eAAe;;OAEtC;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAlE6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CAAmB;AAElB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iDAAuB;AAHvC,WAAW;IADvB,aAAa,CAAC,cAAc,CAAC;GACjB,WAAW,CAmEvB;SAnEY,WAAW","sourcesContent":["import { css, html, LitElement, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport type { TileModel } from '../../models';\n\nimport { baseTileStyles } from './styles/tile-grid-shared-styles';\nimport '../image-block';\nimport './tile-stats';\n\n@customElement('account-tile')\nexport class AccountTile extends LitElement {\n @property({ type: Object }) model?: TileModel;\n\n @property({ type: String }) baseImageUrl?: string;\n\n render() {\n return html`\n <div class=\"container\">\n <div class=\"tile-details\">\n <div class=\"item-info\">\n ${this.getAvatarTemplate} ${this.getTitleTemplate}\n ${this.getArchivistTemplate}\n </div>\n ${this.getTileStatsTemplate}\n </div>\n </div>\n `;\n }\n\n private get getAvatarTemplate(): TemplateResult {\n return html`\n <image-block\n .model=${this.model}\n .baseImageUrl=${this.baseImageUrl}\n .viewSize=${'grid'}\n >\n </image-block>\n `;\n }\n\n private get getTitleTemplate() {\n return html`<div id=\"title\">\n <h1 class=\"truncated\">${this.model?.identifier}</h1>\n </div>`;\n }\n\n private get getArchivistTemplate() {\n return html`<div class=\"archivist-since\">\n <span>Archivist since ${this.model?.dateAdded?.getFullYear()}</span>\n </div>`;\n }\n\n private get getTileStatsTemplate() {\n return html`<tile-stats\n .mediatype=${this.model?.mediatype}\n .itemCount=${this.model?.itemCount}\n .favCount=${this.model?.favCount}\n .commentCount=${this.model?.commentCount}\n >\n </tile-stats>`;\n }\n\n /**\n * CSS\n */\n static get styles() {\n const tileBorderColor = css`var(--tileBorderColor, #dddddd)`;\n\n return [\n baseTileStyles,\n css`\n .container {\n border: 1px solid ${tileBorderColor};\n }\n `,\n ];\n }\n}\n"]}
1
+ {"version":3,"file":"account-tile.js","sourceRoot":"","sources":["../../../../src/tiles/grid/account-tile.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAkB,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,gBAAgB,CAAC;AACxB,OAAO,cAAc,CAAC;AAGtB,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,UAAU;IAA3C;;QAK+B,mBAAc,GAAG,KAAK,CAAC;IAoFtD,CAAC;IAlFC,MAAM;QACJ,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,kBAAkB;;;cAGnB,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,gBAAgB;cAC/C,IAAI,CAAC,oBAAoB;;YAE3B,IAAI,CAAC,oBAAoB;;;KAGhC,CAAC;IACJ,CAAC;IAED,IAAY,iBAAiB;QAC3B,OAAO,IAAI,CAAA;;iBAEE,IAAI,CAAC,KAAK;wBACH,IAAI,CAAC,YAAY;oBACrB,MAAM;;;KAGrB,CAAC;IACJ,CAAC;IAED,IAAY,gBAAgB;;QAC1B,OAAO,IAAI,CAAA;8BACe,MAAA,IAAI,CAAC,KAAK,0CAAE,UAAU;WACzC,CAAC;IACV,CAAC;IAED,IAAY,oBAAoB;;QAC9B,OAAO,IAAI,CAAA;8BACe,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS,0CAAE,WAAW,EAAE;WACvD,CAAC;IACV,CAAC;IAED,IAAY,oBAAoB;;QAC9B,OAAO,IAAI,CAAA;mBACI,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS;mBACrB,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS;kBACtB,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ;sBAChB,MAAA,IAAI,CAAC,KAAK,0CAAE,YAAY;;kBAE5B,CAAC;IACjB,CAAC;IAED,IAAY,kBAAkB;QAC5B,iCAAiC;QACjC,OAAO,IAAI,CAAC,cAAc;YACxB,CAAC,CAAC,IAAI,CAAA,sCAAsC,IAAI,CAAC,iBAAiB;;;kBAGtD;YACZ,CAAC,CAAC,OAAO,CAAC;IACd,CAAC;IAEO,iBAAiB,CAAC,CAAe;QACvC,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,IAAI,WAAW,CAC3B,mBAAmB,EACnB,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAC3C,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,MAAM,KAAK,MAAM;QACf,MAAM,eAAe,GAAG,GAAG,CAAA,iCAAiC,CAAC;QAE7D,OAAO;YACL,cAAc;YACd,GAAG,CAAA;;8BAEqB,eAAe;;OAEtC;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAxF6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CAAmB;AAElB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iDAAuB;AAErB;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mDAAwB;AALzC,WAAW;IADvB,aAAa,CAAC,cAAc,CAAC;GACjB,WAAW,CAyFvB;SAzFY,WAAW","sourcesContent":["import { css, html, LitElement, nothing, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport type { TileModel } from '../../models';\n\nimport { baseTileStyles } from './styles/tile-grid-shared-styles';\nimport '../image-block';\nimport './tile-stats';\n\n@customElement('account-tile')\nexport class AccountTile extends LitElement {\n @property({ type: Object }) model?: TileModel;\n\n @property({ type: String }) baseImageUrl?: string;\n\n @property({ type: Boolean }) showInfoButton = false;\n\n render() {\n return html`\n <div class=\"container\">\n ${this.infoButtonTemplate}\n <div class=\"tile-details\">\n <div class=\"item-info\">\n ${this.getAvatarTemplate} ${this.getTitleTemplate}\n ${this.getArchivistTemplate}\n </div>\n ${this.getTileStatsTemplate}\n </div>\n </div>\n `;\n }\n\n private get getAvatarTemplate(): TemplateResult {\n return html`\n <image-block\n .model=${this.model}\n .baseImageUrl=${this.baseImageUrl}\n .viewSize=${'grid'}\n >\n </image-block>\n `;\n }\n\n private get getTitleTemplate() {\n return html`<div id=\"title\">\n <h1 class=\"truncated\">${this.model?.identifier}</h1>\n </div>`;\n }\n\n private get getArchivistTemplate() {\n return html`<div class=\"archivist-since\">\n <span>Archivist since ${this.model?.dateAdded?.getFullYear()}</span>\n </div>`;\n }\n\n private get getTileStatsTemplate() {\n return html`<tile-stats\n .mediatype=${this.model?.mediatype}\n .itemCount=${this.model?.itemCount}\n .favCount=${this.model?.favCount}\n .commentCount=${this.model?.commentCount}\n >\n </tile-stats>`;\n }\n\n private get infoButtonTemplate(): TemplateResult | typeof nothing {\n // &#9432; is an information icon\n return this.showInfoButton\n ? html`<button class=\"info-button\" @click=${this.infoButtonPressed}>\n &#9432;\n <span class=\"sr-only\">More info</span>\n </button>`\n : nothing;\n }\n\n private infoButtonPressed(e: PointerEvent) {\n e.preventDefault();\n const event = new CustomEvent<{ x: number; y: number }>(\n 'infoButtonPressed',\n { detail: { x: e.clientX, y: e.clientY } }\n );\n this.dispatchEvent(event);\n }\n\n /**\n * CSS\n */\n static get styles() {\n const tileBorderColor = css`var(--tileBorderColor, #dddddd)`;\n\n return [\n baseTileStyles,\n css`\n .container {\n border: 1px solid ${tileBorderColor};\n }\n `,\n ];\n }\n}\n"]}
@@ -1,14 +1,17 @@
1
- import { CSSResultGroup, LitElement, TemplateResult } from 'lit';
2
- import type { TileModel } from '../../models';
3
- import '../image-block';
4
- export declare class CollectionTile extends LitElement {
5
- model?: TileModel;
6
- baseImageUrl?: string;
7
- render(): TemplateResult<1>;
8
- private get getImageBlockTemplate();
9
- private get getTitleTemplate();
10
- private get getTileStatsTemplate();
11
- private get getItemsTemplate();
12
- private get getSizeTemplate();
13
- static get styles(): CSSResultGroup;
14
- }
1
+ import { CSSResultGroup, LitElement, TemplateResult } from 'lit';
2
+ import type { TileModel } from '../../models';
3
+ import '../image-block';
4
+ export declare class CollectionTile extends LitElement {
5
+ model?: TileModel;
6
+ baseImageUrl?: string;
7
+ showInfoButton: boolean;
8
+ render(): TemplateResult<1>;
9
+ private get getImageBlockTemplate();
10
+ private get getTitleTemplate();
11
+ private get getTileStatsTemplate();
12
+ private get getItemsTemplate();
13
+ private get getSizeTemplate();
14
+ private get infoButtonTemplate();
15
+ private infoButtonPressed;
16
+ static get styles(): CSSResultGroup;
17
+ }
@@ -1,14 +1,19 @@
1
- import { __decorate } from "tslib";
2
- import { css, html, LitElement } from 'lit';
3
- import { customElement, property } from 'lit/decorators.js';
4
- import { collectionIcon } from '../../assets/img/icons/mediatype/collection';
5
- import { formatUnitSize } from '../../utils/format-unit-size';
6
- import { baseTileStyles } from './styles/tile-grid-shared-styles';
7
- import '../image-block';
8
- let CollectionTile = class CollectionTile extends LitElement {
9
- render() {
1
+ import { __decorate } from "tslib";
2
+ import { css, html, LitElement, nothing, } from 'lit';
3
+ import { customElement, property } from 'lit/decorators.js';
4
+ import { collectionIcon } from '../../assets/img/icons/mediatype/collection';
5
+ import { formatUnitSize } from '../../utils/format-unit-size';
6
+ import { baseTileStyles } from './styles/tile-grid-shared-styles';
7
+ import '../image-block';
8
+ let CollectionTile = class CollectionTile extends LitElement {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.showInfoButton = false;
12
+ }
13
+ render() {
10
14
  return html `
11
15
  <div class="container">
16
+ ${this.infoButtonTemplate}
12
17
  <div class="tile-details">
13
18
  <div class="item-info">
14
19
  ${this.getImageBlockTemplate} ${this.getTitleTemplate}
@@ -17,9 +22,9 @@ let CollectionTile = class CollectionTile extends LitElement {
17
22
 
18
23
  ${this.getTileStatsTemplate}
19
24
  </div>
20
- `;
21
- }
22
- get getImageBlockTemplate() {
25
+ `;
26
+ }
27
+ get getImageBlockTemplate() {
23
28
  return html `
24
29
  <image-block
25
30
  .model=${this.model}
@@ -27,15 +32,15 @@ let CollectionTile = class CollectionTile extends LitElement {
27
32
  .viewSize=${'grid'}
28
33
  >
29
34
  </image-block>
30
- `;
31
- }
32
- get getTitleTemplate() {
33
- var _a;
35
+ `;
36
+ }
37
+ get getTitleTemplate() {
38
+ var _a;
34
39
  return html `<div id="title">
35
40
  <h1 class="truncated">${(_a = this.model) === null || _a === void 0 ? void 0 : _a.title}</h1>
36
- </div>`;
37
- }
38
- get getTileStatsTemplate() {
41
+ </div>`;
42
+ }
43
+ get getTileStatsTemplate() {
39
44
  return html `
40
45
  <div id="item-stats">
41
46
  <div id="item-mediatype">${collectionIcon}</div>
@@ -44,28 +49,42 @@ let CollectionTile = class CollectionTile extends LitElement {
44
49
  ${this.getItemsTemplate} ${this.getSizeTemplate}
45
50
  </div>
46
51
  </div>
47
- `;
48
- }
49
- get getItemsTemplate() {
50
- var _a;
51
- const collectionItems = (_a = this.model) === null || _a === void 0 ? void 0 : _a.itemCount.toLocaleString();
52
+ `;
53
+ }
54
+ get getItemsTemplate() {
55
+ var _a, _b;
56
+ const collectionItems = (_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a.itemCount) === null || _b === void 0 ? void 0 : _b.toLocaleString();
52
57
  return html `<span id="item-count"
53
58
  >${collectionItems} item${Number(collectionItems) !== 1 ? 's' : ''}</span
54
- >`;
55
- }
56
- get getSizeTemplate() {
57
- var _a, _b;
58
- const collectionSize = (_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a.collectionSize) !== null && _b !== void 0 ? _b : 0;
59
- return collectionSize
60
- ? html `<span id="item-size">${formatUnitSize(collectionSize, 1)}</span>`
61
- : ``;
62
- }
63
- static get styles() {
64
- const tileBorderColor = css `var(--tileBorderColor, #555555)`;
65
- const tileBackgroundColor = css `var(--tileBackgroundColor, #666666)`;
66
- const whiteColor = css `#fff`;
67
- return [
68
- baseTileStyles,
59
+ >`;
60
+ }
61
+ get getSizeTemplate() {
62
+ var _a, _b;
63
+ const collectionSize = (_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a.collectionSize) !== null && _b !== void 0 ? _b : 0;
64
+ return collectionSize
65
+ ? html `<span id="item-size">${formatUnitSize(collectionSize, 1)}</span>`
66
+ : ``;
67
+ }
68
+ get infoButtonTemplate() {
69
+ // &#9432; is an information icon
70
+ return this.showInfoButton
71
+ ? html `<button class="info-button" @click=${this.infoButtonPressed}>
72
+ &#9432;
73
+ <span class="sr-only">More info</span>
74
+ </button>`
75
+ : nothing;
76
+ }
77
+ infoButtonPressed(e) {
78
+ e.preventDefault();
79
+ const event = new CustomEvent('infoButtonPressed', { detail: { x: e.clientX, y: e.clientY } });
80
+ this.dispatchEvent(event);
81
+ }
82
+ static get styles() {
83
+ const tileBorderColor = css `var(--tileBorderColor, #555555)`;
84
+ const tileBackgroundColor = css `var(--tileBackgroundColor, #666666)`;
85
+ const whiteColor = css `#fff`;
86
+ return [
87
+ baseTileStyles,
69
88
  css `
70
89
  .container {
71
90
  background-color: ${tileBackgroundColor};
@@ -108,18 +127,21 @@ let CollectionTile = class CollectionTile extends LitElement {
108
127
  flex-direction: column;
109
128
  margin-left: 10px;
110
129
  }
111
- `,
112
- ];
113
- }
114
- };
115
- __decorate([
116
- property({ type: Object })
117
- ], CollectionTile.prototype, "model", void 0);
118
- __decorate([
119
- property({ type: String })
120
- ], CollectionTile.prototype, "baseImageUrl", void 0);
121
- CollectionTile = __decorate([
122
- customElement('collection-tile')
123
- ], CollectionTile);
124
- export { CollectionTile };
130
+ `,
131
+ ];
132
+ }
133
+ };
134
+ __decorate([
135
+ property({ type: Object })
136
+ ], CollectionTile.prototype, "model", void 0);
137
+ __decorate([
138
+ property({ type: String })
139
+ ], CollectionTile.prototype, "baseImageUrl", void 0);
140
+ __decorate([
141
+ property({ type: Boolean })
142
+ ], CollectionTile.prototype, "showInfoButton", void 0);
143
+ CollectionTile = __decorate([
144
+ customElement('collection-tile')
145
+ ], CollectionTile);
146
+ export { CollectionTile };
125
147
  //# sourceMappingURL=collection-tile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection-tile.js","sourceRoot":"","sources":["../../../../src/tiles/grid/collection-tile.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAkB,IAAI,EAAE,UAAU,EAAkB,MAAM,KAAK,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,gBAAgB,CAAC;AAGxB,IAAa,cAAc,GAA3B,MAAa,cAAe,SAAQ,UAAU;IAK5C,MAAM;QACJ,OAAO,IAAI,CAAA;;;;cAID,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,gBAAgB;;;;UAIvD,IAAI,CAAC,oBAAoB;;KAE9B,CAAC;IACJ,CAAC;IAED,IAAY,qBAAqB;QAC/B,OAAO,IAAI,CAAA;;iBAEE,IAAI,CAAC,KAAK;wBACH,IAAI,CAAC,YAAY;oBACrB,MAAM;;;KAGrB,CAAC;IACJ,CAAC;IAED,IAAY,gBAAgB;;QAC1B,OAAO,IAAI,CAAA;8BACe,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK;WACpC,CAAC;IACV,CAAC;IAED,IAAY,oBAAoB;QAC9B,OAAO,IAAI,CAAA;;mCAEoB,cAAc;;;YAGrC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe;;;KAGpD,CAAC;IACJ,CAAC;IAED,IAAY,gBAAgB;;QAC1B,MAAM,eAAe,GAAG,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS,CAAC,cAAc,EAAE,CAAC;QAE/D,OAAO,IAAI,CAAA;SACN,eAAe,QAAQ,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;MAClE,CAAC;IACL,CAAC;IAED,IAAY,eAAe;;QACzB,MAAM,cAAc,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,cAAc,mCAAI,CAAC,CAAC;QAEvD,OAAO,cAAc;YACnB,CAAC,CAAC,IAAI,CAAA,wBAAwB,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,SAAS;YACxE,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAED,MAAM,KAAK,MAAM;QACf,MAAM,eAAe,GAAG,GAAG,CAAA,iCAAiC,CAAC;QAC7D,MAAM,mBAAmB,GAAG,GAAG,CAAA,qCAAqC,CAAC;QACrE,MAAM,UAAU,GAAG,GAAG,CAAA,MAAM,CAAC;QAE7B,OAAO;YACL,cAAc;YACd,GAAG,CAAA;;8BAEqB,mBAAmB;8BACnB,eAAe;;;;;;;;mBAQ1B,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA2BV,UAAU;;;;OAItB;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAnH6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CAAmB;AAElB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oDAAuB;AAHvC,cAAc;IAD1B,aAAa,CAAC,iBAAiB,CAAC;GACpB,cAAc,CAoH1B;SApHY,cAAc","sourcesContent":["import { css, CSSResultGroup, html, LitElement, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { collectionIcon } from '../../assets/img/icons/mediatype/collection';\nimport type { TileModel } from '../../models';\nimport { formatUnitSize } from '../../utils/format-unit-size';\nimport { baseTileStyles } from './styles/tile-grid-shared-styles';\nimport '../image-block';\n\n@customElement('collection-tile')\nexport class CollectionTile extends LitElement {\n @property({ type: Object }) model?: TileModel;\n\n @property({ type: String }) baseImageUrl?: string;\n\n render() {\n return html`\n <div class=\"container\">\n <div class=\"tile-details\">\n <div class=\"item-info\">\n ${this.getImageBlockTemplate} ${this.getTitleTemplate}\n </div>\n </div>\n\n ${this.getTileStatsTemplate}\n </div>\n `;\n }\n\n private get getImageBlockTemplate(): TemplateResult {\n return html`\n <image-block\n .model=${this.model}\n .baseImageUrl=${this.baseImageUrl}\n .viewSize=${'grid'}\n >\n </image-block>\n `;\n }\n\n private get getTitleTemplate() {\n return html`<div id=\"title\">\n <h1 class=\"truncated\">${this.model?.title}</h1>\n </div>`;\n }\n\n private get getTileStatsTemplate() {\n return html`\n <div id=\"item-stats\">\n <div id=\"item-mediatype\">${collectionIcon}</div>\n\n <div id=\"stats-row\">\n ${this.getItemsTemplate} ${this.getSizeTemplate}\n </div>\n </div>\n `;\n }\n\n private get getItemsTemplate() {\n const collectionItems = this.model?.itemCount.toLocaleString();\n\n return html`<span id=\"item-count\"\n >${collectionItems} item${Number(collectionItems) !== 1 ? 's' : ''}</span\n >`;\n }\n\n private get getSizeTemplate() {\n const collectionSize = this.model?.collectionSize ?? 0;\n\n return collectionSize\n ? html`<span id=\"item-size\">${formatUnitSize(collectionSize, 1)}</span>`\n : ``;\n }\n\n static get styles(): CSSResultGroup {\n const tileBorderColor = css`var(--tileBorderColor, #555555)`;\n const tileBackgroundColor = css`var(--tileBackgroundColor, #666666)`;\n const whiteColor = css`#fff`;\n\n return [\n baseTileStyles,\n css`\n .container {\n background-color: ${tileBackgroundColor};\n border: 1px solid ${tileBorderColor};\n }\n\n .item-info {\n flex-grow: initial;\n }\n\n h1.truncated {\n color: ${whiteColor};\n }\n\n #item-mediatype svg {\n filter: invert(100%);\n height: 2.5rem;\n align-items: baseline;\n }\n\n .container:hover > #title {\n text-decoration: underline;\n }\n\n /* this is a workaround for Safari 15 where the hover effects are not working */\n image-block:hover > #title {\n text-decoration: underline;\n }\n\n #item-stats {\n display: flex;\n padding: 0 5px 5px;\n align-items: center;\n }\n\n #stats-row {\n display: flex;\n align-items: baseline;\n color: ${whiteColor};\n flex-direction: column;\n margin-left: 10px;\n }\n `,\n ];\n }\n}\n"]}
1
+ {"version":3,"file":"collection-tile.js","sourceRoot":"","sources":["../../../../src/tiles/grid/collection-tile.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n css,\n CSSResultGroup,\n html,\n LitElement,\n nothing,\n TemplateResult,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { collectionIcon } from '../../assets/img/icons/mediatype/collection';\nimport type { TileModel } from '../../models';\nimport { formatUnitSize } from '../../utils/format-unit-size';\nimport { baseTileStyles } from './styles/tile-grid-shared-styles';\nimport '../image-block';\n\n@customElement('collection-tile')\nexport class CollectionTile extends LitElement {\n @property({ type: Object }) model?: TileModel;\n\n @property({ type: String }) baseImageUrl?: string;\n\n @property({ type: Boolean }) showInfoButton = false;\n\n render() {\n return html`\n <div class=\"container\">\n ${this.infoButtonTemplate}\n <div class=\"tile-details\">\n <div class=\"item-info\">\n ${this.getImageBlockTemplate} ${this.getTitleTemplate}\n </div>\n </div>\n\n ${this.getTileStatsTemplate}\n </div>\n `;\n }\n\n private get getImageBlockTemplate(): TemplateResult {\n return html`\n <image-block\n .model=${this.model}\n .baseImageUrl=${this.baseImageUrl}\n .viewSize=${'grid'}\n >\n </image-block>\n `;\n }\n\n private get getTitleTemplate() {\n return html`<div id=\"title\">\n <h1 class=\"truncated\">${this.model?.title}</h1>\n </div>`;\n }\n\n private get getTileStatsTemplate() {\n return html`\n <div id=\"item-stats\">\n <div id=\"item-mediatype\">${collectionIcon}</div>\n\n <div id=\"stats-row\">\n ${this.getItemsTemplate} ${this.getSizeTemplate}\n </div>\n </div>\n `;\n }\n\n private get getItemsTemplate() {\n const collectionItems = this.model?.itemCount?.toLocaleString();\n\n return html`<span id=\"item-count\"\n >${collectionItems} item${Number(collectionItems) !== 1 ? 's' : ''}</span\n >`;\n }\n\n private get getSizeTemplate() {\n const collectionSize = this.model?.collectionSize ?? 0;\n\n return collectionSize\n ? html`<span id=\"item-size\">${formatUnitSize(collectionSize, 1)}</span>`\n : ``;\n }\n\n private get infoButtonTemplate(): TemplateResult | typeof nothing {\n // &#9432; is an information icon\n return this.showInfoButton\n ? html`<button class=\"info-button\" @click=${this.infoButtonPressed}>\n &#9432;\n <span class=\"sr-only\">More info</span>\n </button>`\n : nothing;\n }\n\n private infoButtonPressed(e: PointerEvent) {\n e.preventDefault();\n const event = new CustomEvent<{ x: number; y: number }>(\n 'infoButtonPressed',\n { detail: { x: e.clientX, y: e.clientY } }\n );\n this.dispatchEvent(event);\n }\n\n static get styles(): CSSResultGroup {\n const tileBorderColor = css`var(--tileBorderColor, #555555)`;\n const tileBackgroundColor = css`var(--tileBackgroundColor, #666666)`;\n const whiteColor = css`#fff`;\n\n return [\n baseTileStyles,\n css`\n .container {\n background-color: ${tileBackgroundColor};\n border: 1px solid ${tileBorderColor};\n }\n\n .item-info {\n flex-grow: initial;\n }\n\n h1.truncated {\n color: ${whiteColor};\n }\n\n #item-mediatype svg {\n filter: invert(100%);\n height: 2.5rem;\n align-items: baseline;\n }\n\n .container:hover > #title {\n text-decoration: underline;\n }\n\n /* this is a workaround for Safari 15 where the hover effects are not working */\n image-block:hover > #title {\n text-decoration: underline;\n }\n\n #item-stats {\n display: flex;\n padding: 0 5px 5px;\n align-items: center;\n }\n\n #stats-row {\n display: flex;\n align-items: baseline;\n color: ${whiteColor};\n flex-direction: column;\n margin-left: 10px;\n }\n `,\n ];\n }\n}\n"]}
@@ -1,29 +1,32 @@
1
- import { CSSResultGroup, LitElement, TemplateResult } from 'lit';
2
- import type { SortParam } from '@internetarchive/search-service';
3
- import type { TileModel } from '../../models';
4
- import '../image-block';
5
- import '../text-snippet-block';
6
- import '../item-image';
7
- import '../mediatype-icon';
8
- import './tile-stats';
9
- export declare class ItemTile extends LitElement {
10
- baseImageUrl?: string;
11
- loggedIn: boolean;
12
- model?: TileModel;
13
- sortParam?: SortParam;
14
- render(): TemplateResult<1>;
15
- /**
16
- * Templates
17
- */
18
- private get creatorTemplate();
19
- private get imageBlockTemplate();
20
- private get sortedDateInfoTemplate();
21
- private get textSnippetsTemplate();
22
- private get volumeIssueTemplate();
23
- private get doesSortedByDate();
24
- private get hasSnippets();
25
- /**
26
- * CSS
27
- */
28
- static get styles(): CSSResultGroup;
29
- }
1
+ import { CSSResultGroup, LitElement, TemplateResult } from 'lit';
2
+ import type { SortParam } from '@internetarchive/search-service';
3
+ import type { TileModel } from '../../models';
4
+ import '../image-block';
5
+ import '../text-snippet-block';
6
+ import '../item-image';
7
+ import '../mediatype-icon';
8
+ import './tile-stats';
9
+ export declare class ItemTile extends LitElement {
10
+ baseImageUrl?: string;
11
+ loggedIn: boolean;
12
+ model?: TileModel;
13
+ sortParam?: SortParam;
14
+ showInfoButton: boolean;
15
+ render(): TemplateResult<1>;
16
+ /**
17
+ * Templates
18
+ */
19
+ private get creatorTemplate();
20
+ private get imageBlockTemplate();
21
+ private get sortedDateInfoTemplate();
22
+ private get infoButtonTemplate();
23
+ private get textSnippetsTemplate();
24
+ private get volumeIssueTemplate();
25
+ private get doesSortedByDate();
26
+ private get hasSnippets();
27
+ private infoButtonPressed;
28
+ /**
29
+ * CSS
30
+ */
31
+ static get styles(): CSSResultGroup;
32
+ }