@internetarchive/collection-browser 4.3.1-alpha-webdev8257.0 → 4.3.2-alpha-webdev7939.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +0 -1
- package/dist/index.js.map +1 -1
- package/dist/src/app-root.d.ts +0 -8
- package/dist/src/app-root.js +672 -698
- package/dist/src/app-root.js.map +1 -1
- package/dist/src/collection-browser.d.ts +8 -8
- package/dist/src/collection-browser.js +44 -36
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/tiles/base-tile-component.d.ts +1 -17
- package/dist/src/tiles/base-tile-component.js +1 -48
- package/dist/src/tiles/base-tile-component.js.map +1 -1
- package/dist/src/tiles/grid/item-tile.js +138 -139
- package/dist/src/tiles/grid/item-tile.js.map +1 -1
- package/dist/src/tiles/list/tile-list-compact-header.js +46 -66
- package/dist/src/tiles/list/tile-list-compact-header.js.map +1 -1
- package/dist/src/tiles/list/tile-list-compact.d.ts +1 -1
- package/dist/src/tiles/list/tile-list-compact.js +100 -132
- package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
- package/dist/src/tiles/list/tile-list.d.ts +1 -1
- package/dist/src/tiles/list/tile-list.js +298 -316
- package/dist/src/tiles/list/tile-list.js.map +1 -1
- package/dist/src/tiles/models.d.ts +0 -14
- package/dist/src/tiles/models.js.map +1 -1
- package/dist/src/tiles/tile-dispatcher.d.ts +0 -14
- package/dist/src/tiles/tile-dispatcher.js +216 -319
- package/dist/src/tiles/tile-dispatcher.js.map +1 -1
- package/index.ts +28 -29
- package/package.json +3 -3
- package/src/app-root.ts +1251 -1281
- package/src/collection-browser.ts +48 -33
- package/src/tiles/base-tile-component.ts +65 -121
- package/src/tiles/grid/item-tile.ts +346 -347
- package/src/tiles/list/tile-list-compact-header.ts +86 -106
- package/src/tiles/list/tile-list-compact.ts +239 -273
- package/src/tiles/list/tile-list.ts +700 -718
- package/src/tiles/models.ts +8 -24
- package/src/tiles/tile-dispatcher.ts +527 -637
- package/dist/src/styles/tile-action-styles.d.ts +0 -14
- package/dist/src/styles/tile-action-styles.js +0 -52
- package/dist/src/styles/tile-action-styles.js.map +0 -1
- package/src/styles/tile-action-styles.ts +0 -52
|
@@ -11,7 +11,6 @@ import { suppressedCollections } from '../../models';
|
|
|
11
11
|
import { BaseTileComponent } from '../base-tile-component';
|
|
12
12
|
import { formatCount } from '../../utils/format-count';
|
|
13
13
|
import { isFirstMillisecondOfUTCYear } from '../../utils/local-date-from-utc';
|
|
14
|
-
import { tileActionStyles } from '../../styles/tile-action-styles';
|
|
15
14
|
import '../image-block';
|
|
16
15
|
import '../review-block';
|
|
17
16
|
import '../text-snippet-block';
|
|
@@ -21,7 +20,6 @@ let TileList = class TileList extends BaseTileComponent {
|
|
|
21
20
|
/*
|
|
22
21
|
* Reactive properties inherited from BaseTileComponent:
|
|
23
22
|
* - model?: TileModel;
|
|
24
|
-
* - tileActions: TileAction[] = [];
|
|
25
23
|
* - currentWidth?: number;
|
|
26
24
|
* - currentHeight?: number;
|
|
27
25
|
* - baseNavigationUrl?: string;
|
|
@@ -39,45 +37,41 @@ let TileList = class TileList extends BaseTileComponent {
|
|
|
39
37
|
this.collectionLinks = [];
|
|
40
38
|
}
|
|
41
39
|
render() {
|
|
42
|
-
return html `
|
|
43
|
-
<div id="list-line" class="${this.classSize}">
|
|
40
|
+
return html `
|
|
41
|
+
<div id="list-line" class="${this.classSize}">
|
|
44
42
|
${this.classSize === 'mobile'
|
|
45
43
|
? this.mobileTemplate
|
|
46
|
-
: this.desktopTemplate}
|
|
47
|
-
</div>
|
|
44
|
+
: this.desktopTemplate}
|
|
45
|
+
</div>
|
|
48
46
|
`;
|
|
49
47
|
}
|
|
50
48
|
/**
|
|
51
49
|
* Templates
|
|
52
50
|
*/
|
|
53
51
|
get mobileTemplate() {
|
|
54
|
-
return html `
|
|
55
|
-
<div id="list-line-top">
|
|
56
|
-
<div id="list-line-left">
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
</div>
|
|
66
|
-
<div id="list-line-bottom">${this.detailsTemplate}</div>
|
|
52
|
+
return html `
|
|
53
|
+
<div id="list-line-top">
|
|
54
|
+
<div id="list-line-left">${this.imageBlockTemplate}</div>
|
|
55
|
+
<div id="list-line-right">
|
|
56
|
+
<div id="title-line">
|
|
57
|
+
<div id="title">${this.titleTemplate}</div>
|
|
58
|
+
${this.iconRightTemplate}
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
<div id="list-line-bottom">${this.detailsTemplate}</div>
|
|
67
63
|
`;
|
|
68
64
|
}
|
|
69
65
|
get desktopTemplate() {
|
|
70
|
-
return html `
|
|
71
|
-
<div id="list-line-left">
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
${this.detailsTemplate}
|
|
80
|
-
</div>
|
|
66
|
+
return html `
|
|
67
|
+
<div id="list-line-left">${this.imageBlockTemplate}</div>
|
|
68
|
+
<div id="list-line-right">
|
|
69
|
+
<div id="title-line">
|
|
70
|
+
<div id="title">${this.titleTemplate}</div>
|
|
71
|
+
${this.iconRightTemplate}
|
|
72
|
+
</div>
|
|
73
|
+
${this.detailsTemplate}
|
|
74
|
+
</div>
|
|
81
75
|
`;
|
|
82
76
|
}
|
|
83
77
|
get imageBlockTemplate() {
|
|
@@ -85,48 +79,48 @@ let TileList = class TileList extends BaseTileComponent {
|
|
|
85
79
|
return nothing;
|
|
86
80
|
const isCollection = this.model.mediatype === 'collection';
|
|
87
81
|
const href = this.displayValueProvider.itemPageUrl(this.model.identifier, isCollection);
|
|
88
|
-
return html `<a
|
|
89
|
-
id="image-link"
|
|
90
|
-
title=${msg(str `View ${this.model?.title}`)}
|
|
91
|
-
href=${href}
|
|
92
|
-
>
|
|
93
|
-
<image-block
|
|
94
|
-
.model=${this.model}
|
|
95
|
-
.baseImageUrl=${this.baseImageUrl}
|
|
96
|
-
.isCompactTile=${false}
|
|
97
|
-
.isListTile=${true}
|
|
98
|
-
.viewSize=${this.classSize}
|
|
99
|
-
.loggedIn=${this.loggedIn}
|
|
100
|
-
.suppressBlurring=${this.suppressBlurring}
|
|
101
|
-
>
|
|
102
|
-
</image-block>
|
|
82
|
+
return html `<a
|
|
83
|
+
id="image-link"
|
|
84
|
+
title=${msg(str `View ${this.model?.title}`)}
|
|
85
|
+
href=${href}
|
|
86
|
+
>
|
|
87
|
+
<image-block
|
|
88
|
+
.model=${this.model}
|
|
89
|
+
.baseImageUrl=${this.baseImageUrl}
|
|
90
|
+
.isCompactTile=${false}
|
|
91
|
+
.isListTile=${true}
|
|
92
|
+
.viewSize=${this.classSize}
|
|
93
|
+
.loggedIn=${this.loggedIn}
|
|
94
|
+
.suppressBlurring=${this.suppressBlurring}
|
|
95
|
+
>
|
|
96
|
+
</image-block>
|
|
103
97
|
</a> `;
|
|
104
98
|
}
|
|
105
99
|
get detailsTemplate() {
|
|
106
|
-
return html `
|
|
107
|
-
${this.itemLineTemplate} ${this.creatorTemplate}
|
|
108
|
-
<div id="dates-line">
|
|
109
|
-
${this.datePublishedTemplate} ${this.dateSortByTemplate}
|
|
110
|
-
${this.webArchivesCaptureDatesTemplate}
|
|
111
|
-
</div>
|
|
112
|
-
<div id="views-line">
|
|
113
|
-
${this.viewsTemplate} ${this.ratingTemplate} ${this.reviewsTemplate}
|
|
114
|
-
</div>
|
|
115
|
-
${this.topicsTemplate} ${this.collectionsTemplate}
|
|
116
|
-
${this.descriptionTemplate} ${this.textSnippetsTemplate}
|
|
117
|
-
${this.reviewBlockTemplate}
|
|
100
|
+
return html `
|
|
101
|
+
${this.itemLineTemplate} ${this.creatorTemplate}
|
|
102
|
+
<div id="dates-line">
|
|
103
|
+
${this.datePublishedTemplate} ${this.dateSortByTemplate}
|
|
104
|
+
${this.webArchivesCaptureDatesTemplate}
|
|
105
|
+
</div>
|
|
106
|
+
<div id="views-line">
|
|
107
|
+
${this.viewsTemplate} ${this.ratingTemplate} ${this.reviewsTemplate}
|
|
108
|
+
</div>
|
|
109
|
+
${this.topicsTemplate} ${this.collectionsTemplate}
|
|
110
|
+
${this.descriptionTemplate} ${this.textSnippetsTemplate}
|
|
111
|
+
${this.reviewBlockTemplate}
|
|
118
112
|
`;
|
|
119
113
|
}
|
|
120
114
|
// Data templates
|
|
121
115
|
get iconRightTemplate() {
|
|
122
|
-
return html `
|
|
123
|
-
<a
|
|
124
|
-
id="icon-right"
|
|
125
|
-
href=${this.mediatypeURL}
|
|
126
|
-
title=${msg(str `See more: ${this.model?.mediatype}`)}
|
|
127
|
-
>
|
|
128
|
-
<tile-mediatype-icon .model=${this.model}> </tile-mediatype-icon>
|
|
129
|
-
</a>
|
|
116
|
+
return html `
|
|
117
|
+
<a
|
|
118
|
+
id="icon-right"
|
|
119
|
+
href=${this.mediatypeURL}
|
|
120
|
+
title=${msg(str `See more: ${this.model?.mediatype}`)}
|
|
121
|
+
>
|
|
122
|
+
<tile-mediatype-icon .model=${this.model}> </tile-mediatype-icon>
|
|
123
|
+
</a>
|
|
130
124
|
`;
|
|
131
125
|
}
|
|
132
126
|
get titleTemplate() {
|
|
@@ -136,8 +130,8 @@ let TileList = class TileList extends BaseTileComponent {
|
|
|
136
130
|
// If the model has a server-specified href, use it
|
|
137
131
|
// Otherwise construct a details link using the identifier
|
|
138
132
|
return this.model?.href
|
|
139
|
-
? html `<a href="${this.baseNavigationUrl}${this.model.href}"
|
|
140
|
-
>${this.model.title ?? this.model.identifier}</a
|
|
133
|
+
? html `<a href="${this.baseNavigationUrl}${this.model.href}"
|
|
134
|
+
>${this.model.title ?? this.model.identifier}</a
|
|
141
135
|
>`
|
|
142
136
|
: this.detailsLink(this.model.identifier, this.model.title, this.model.mediatype === 'collection');
|
|
143
137
|
}
|
|
@@ -154,11 +148,11 @@ let TileList = class TileList extends BaseTileComponent {
|
|
|
154
148
|
if (!this.model?.source) {
|
|
155
149
|
return nothing;
|
|
156
150
|
}
|
|
157
|
-
return html `
|
|
158
|
-
<div id="source" class="metadata">
|
|
159
|
-
${this.labelTemplate(msg('Source'))}
|
|
160
|
-
${this.searchLink('source', this.model.source)}
|
|
161
|
-
</div>
|
|
151
|
+
return html `
|
|
152
|
+
<div id="source" class="metadata">
|
|
153
|
+
${this.labelTemplate(msg('Source'))}
|
|
154
|
+
${this.searchLink('source', this.model.source)}
|
|
155
|
+
</div>
|
|
162
156
|
`;
|
|
163
157
|
}
|
|
164
158
|
get volumeTemplate() {
|
|
@@ -170,23 +164,23 @@ let TileList = class TileList extends BaseTileComponent {
|
|
|
170
164
|
get creatorTemplate() {
|
|
171
165
|
// "Archivist since" if account
|
|
172
166
|
if (this.model?.mediatype === 'account') {
|
|
173
|
-
return html `
|
|
174
|
-
<div id="creator" class="metadata">
|
|
175
|
-
<span class="label"
|
|
176
|
-
>${this.displayValueProvider.accountLabel ?? nothing}</span
|
|
177
|
-
>
|
|
178
|
-
</div>
|
|
167
|
+
return html `
|
|
168
|
+
<div id="creator" class="metadata">
|
|
169
|
+
<span class="label"
|
|
170
|
+
>${this.displayValueProvider.accountLabel ?? nothing}</span
|
|
171
|
+
>
|
|
172
|
+
</div>
|
|
179
173
|
`;
|
|
180
174
|
}
|
|
181
175
|
// "Creator" if not account tile
|
|
182
176
|
if (!this.model?.creators || this.model.creators.length === 0) {
|
|
183
177
|
return nothing;
|
|
184
178
|
}
|
|
185
|
-
return html `
|
|
186
|
-
<div id="creator" class="metadata">
|
|
187
|
-
${this.labelTemplate(msg('By'))}
|
|
188
|
-
${join(map(this.model.creators, id => this.searchLink('creator', id)), ', ')}
|
|
189
|
-
</div>
|
|
179
|
+
return html `
|
|
180
|
+
<div id="creator" class="metadata">
|
|
181
|
+
${this.labelTemplate(msg('By'))}
|
|
182
|
+
${join(map(this.model.creators, id => this.searchLink('creator', id)), ', ')}
|
|
183
|
+
</div>
|
|
190
184
|
`;
|
|
191
185
|
}
|
|
192
186
|
get datePublishedTemplate() {
|
|
@@ -234,22 +228,22 @@ let TileList = class TileList extends BaseTileComponent {
|
|
|
234
228
|
if (!this.model?.subjects || this.model.subjects.length === 0) {
|
|
235
229
|
return nothing;
|
|
236
230
|
}
|
|
237
|
-
return html `
|
|
238
|
-
<div id="topics" class="metadata">
|
|
239
|
-
${this.labelTemplate(msg('Topics'))}
|
|
240
|
-
${join(map(this.model.subjects, id => this.searchLink('subject', id)), ', ')}
|
|
241
|
-
</div>
|
|
231
|
+
return html `
|
|
232
|
+
<div id="topics" class="metadata">
|
|
233
|
+
${this.labelTemplate(msg('Topics'))}
|
|
234
|
+
${join(map(this.model.subjects, id => this.searchLink('subject', id)), ', ')}
|
|
235
|
+
</div>
|
|
242
236
|
`;
|
|
243
237
|
}
|
|
244
238
|
get collectionsTemplate() {
|
|
245
239
|
if (!this.collectionLinks || this.collectionLinks.length === 0) {
|
|
246
240
|
return nothing;
|
|
247
241
|
}
|
|
248
|
-
return html `
|
|
249
|
-
<div id="collections" class="metadata">
|
|
250
|
-
${this.labelTemplate(msg('Collections'))}
|
|
251
|
-
${join(this.collectionLinks, ', ')}
|
|
252
|
-
</div>
|
|
242
|
+
return html `
|
|
243
|
+
<div id="collections" class="metadata">
|
|
244
|
+
${this.labelTemplate(msg('Collections'))}
|
|
245
|
+
${join(this.collectionLinks, ', ')}
|
|
246
|
+
</div>
|
|
253
247
|
`;
|
|
254
248
|
}
|
|
255
249
|
get descriptionTemplate() {
|
|
@@ -261,22 +255,22 @@ let TileList = class TileList extends BaseTileComponent {
|
|
|
261
255
|
if (!this.model?.review)
|
|
262
256
|
return nothing;
|
|
263
257
|
const { reviewtitle, reviewbody, stars } = this.model.review;
|
|
264
|
-
return html `
|
|
265
|
-
<review-block
|
|
266
|
-
viewsize="list"
|
|
267
|
-
title=${ifDefined(reviewtitle)}
|
|
268
|
-
body=${ifDefined(reviewbody)}
|
|
269
|
-
starRating=${ifDefined(stars)}
|
|
270
|
-
>
|
|
271
|
-
</review-block>
|
|
258
|
+
return html `
|
|
259
|
+
<review-block
|
|
260
|
+
viewsize="list"
|
|
261
|
+
title=${ifDefined(reviewtitle)}
|
|
262
|
+
body=${ifDefined(reviewbody)}
|
|
263
|
+
starRating=${ifDefined(stars)}
|
|
264
|
+
>
|
|
265
|
+
</review-block>
|
|
272
266
|
`;
|
|
273
267
|
}
|
|
274
268
|
get textSnippetsTemplate() {
|
|
275
269
|
if (!this.hasSnippets)
|
|
276
270
|
return nothing;
|
|
277
|
-
return html `<text-snippet-block
|
|
278
|
-
viewsize="list"
|
|
279
|
-
.snippets=${this.model?.snippets}
|
|
271
|
+
return html `<text-snippet-block
|
|
272
|
+
viewsize="list"
|
|
273
|
+
.snippets=${this.model?.snippets}
|
|
280
274
|
></text-snippet-block>`;
|
|
281
275
|
}
|
|
282
276
|
get hasSnippets() {
|
|
@@ -285,12 +279,12 @@ let TileList = class TileList extends BaseTileComponent {
|
|
|
285
279
|
get webArchivesCaptureDatesTemplate() {
|
|
286
280
|
if (!this.model?.captureDates || !this.model.title)
|
|
287
281
|
return nothing;
|
|
288
|
-
return html `
|
|
289
|
-
<ul class="capture-dates">
|
|
290
|
-
${map(this.model.captureDates, date => html `<li>
|
|
291
|
-
${this.displayValueProvider.webArchivesCaptureLink(this.model.title, date)}
|
|
292
|
-
</li>`)}
|
|
293
|
-
</ul>
|
|
282
|
+
return html `
|
|
283
|
+
<ul class="capture-dates">
|
|
284
|
+
${map(this.model.captureDates, date => html `<li>
|
|
285
|
+
${this.displayValueProvider.webArchivesCaptureLink(this.model.title, date)}
|
|
286
|
+
</li>`)}
|
|
287
|
+
</ul>
|
|
294
288
|
`;
|
|
295
289
|
}
|
|
296
290
|
// Utility functions
|
|
@@ -298,10 +292,10 @@ let TileList = class TileList extends BaseTileComponent {
|
|
|
298
292
|
metadataTemplate(text, label = '', id) {
|
|
299
293
|
if (!text)
|
|
300
294
|
return nothing;
|
|
301
|
-
return html `
|
|
302
|
-
<div id=${ifDefined(id)} class="metadata">
|
|
303
|
-
${this.labelTemplate(label)} ${text}
|
|
304
|
-
</div>
|
|
295
|
+
return html `
|
|
296
|
+
<div id=${ifDefined(id)} class="metadata">
|
|
297
|
+
${this.labelTemplate(label)} ${text}
|
|
298
|
+
</div>
|
|
305
299
|
`;
|
|
306
300
|
}
|
|
307
301
|
labelTemplate(label) {
|
|
@@ -316,11 +310,11 @@ let TileList = class TileList extends BaseTileComponent {
|
|
|
316
310
|
const query = encodeURIComponent(`${field}:"${searchTerm}"`);
|
|
317
311
|
// No whitespace after closing tag
|
|
318
312
|
// Note: single ' for href='' to wrap " in query var gets changed back by yarn format
|
|
319
|
-
return html `<a
|
|
320
|
-
href="${this.baseNavigationUrl}/search?query=${query}"
|
|
321
|
-
rel="nofollow"
|
|
322
|
-
>
|
|
323
|
-
${DOMPurify.sanitize(searchTerm)}</a
|
|
313
|
+
return html `<a
|
|
314
|
+
href="${this.baseNavigationUrl}/search?query=${query}"
|
|
315
|
+
rel="nofollow"
|
|
316
|
+
>
|
|
317
|
+
${DOMPurify.sanitize(searchTerm)}</a
|
|
324
318
|
>`;
|
|
325
319
|
}
|
|
326
320
|
detailsLink(identifier, text, isCollection = false) {
|
|
@@ -407,203 +401,191 @@ let TileList = class TileList extends BaseTileComponent {
|
|
|
407
401
|
return 'long';
|
|
408
402
|
}
|
|
409
403
|
static get styles() {
|
|
410
|
-
return
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
*
|
|
572
|
-
*
|
|
573
|
-
*
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
}
|
|
596
|
-
|
|
597
|
-
/*
|
|
598
|
-
* Tile-list (extended) action row sits under the thumbnail in the left
|
|
599
|
-
* column. The image-block above already has its own bottom padding via
|
|
600
|
-
* the parent's row-gap, so we don't need extra spacing here.
|
|
601
|
-
*/
|
|
602
|
-
.tile-actions.list-detail {
|
|
603
|
-
width: 100%;
|
|
604
|
-
}
|
|
605
|
-
`,
|
|
606
|
-
];
|
|
404
|
+
return css `
|
|
405
|
+
html {
|
|
406
|
+
font-size: unset;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
div {
|
|
410
|
+
font-size: 14px;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
div a {
|
|
414
|
+
text-decoration: none;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
div a:link {
|
|
418
|
+
color: var(--ia-theme-link-color, #4b64ff);
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
.label {
|
|
422
|
+
font-weight: bold;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
#list-line.mobile {
|
|
426
|
+
--infiniteScrollerRowGap: 20px;
|
|
427
|
+
--infiniteScrollerRowHeight: auto;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
#list-line.desktop {
|
|
431
|
+
--infiniteScrollerRowGap: 30px;
|
|
432
|
+
--infiniteScrollerRowHeight: auto;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
/* fields */
|
|
436
|
+
#icon-right {
|
|
437
|
+
width: 20px;
|
|
438
|
+
padding-top: 5px;
|
|
439
|
+
--iconHeight: 20px;
|
|
440
|
+
--iconWidth: 20px;
|
|
441
|
+
--iconTextAlign: right;
|
|
442
|
+
margin-top: -8px;
|
|
443
|
+
text-align: right;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
#title {
|
|
447
|
+
color: #4b64ff;
|
|
448
|
+
text-decoration: none;
|
|
449
|
+
font-size: 22px;
|
|
450
|
+
font-weight: bold;
|
|
451
|
+
/* align top of text with image */
|
|
452
|
+
line-height: 25px;
|
|
453
|
+
margin-top: -4px;
|
|
454
|
+
padding-bottom: 2px;
|
|
455
|
+
flex-grow: 1;
|
|
456
|
+
|
|
457
|
+
display: -webkit-box;
|
|
458
|
+
-webkit-box-orient: vertical;
|
|
459
|
+
-webkit-line-clamp: 3;
|
|
460
|
+
overflow: hidden;
|
|
461
|
+
overflow-wrap: anywhere;
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
.metadata {
|
|
465
|
+
line-height: 20px;
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
#description,
|
|
469
|
+
#creator,
|
|
470
|
+
#topics,
|
|
471
|
+
#source {
|
|
472
|
+
text-align: left;
|
|
473
|
+
overflow: hidden;
|
|
474
|
+
text-overflow: ellipsis;
|
|
475
|
+
-webkit-box-orient: vertical;
|
|
476
|
+
display: -webkit-box;
|
|
477
|
+
word-break: break-word;
|
|
478
|
+
-webkit-line-clamp: 3; /* number of lines to show */
|
|
479
|
+
line-clamp: 3;
|
|
480
|
+
|
|
481
|
+
/*
|
|
482
|
+
* Safari doesn't always respect the line-clamping rules above,
|
|
483
|
+
* so we add this to ensure these fields still get truncated
|
|
484
|
+
*/
|
|
485
|
+
max-height: 60px;
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
#collections {
|
|
489
|
+
display: -webkit-box;
|
|
490
|
+
-webkit-box-orient: vertical;
|
|
491
|
+
-webkit-line-clamp: 3;
|
|
492
|
+
overflow: hidden;
|
|
493
|
+
overflow-wrap: anywhere;
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
#collections > a {
|
|
497
|
+
display: inline-block;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
#icon {
|
|
501
|
+
padding-top: 5px;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
#description {
|
|
505
|
+
padding-top: 10px;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
/* Top level container */
|
|
509
|
+
#list-line {
|
|
510
|
+
display: flex;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
#list-line.mobile {
|
|
514
|
+
flex-direction: column;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
#list-line.desktop {
|
|
518
|
+
column-gap: 10px;
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
#list-line-top {
|
|
522
|
+
display: flex;
|
|
523
|
+
column-gap: 7px;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
#list-line-bottom {
|
|
527
|
+
padding-top: 4px;
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
#list-line-right,
|
|
531
|
+
#list-line-top,
|
|
532
|
+
#list-line-bottom {
|
|
533
|
+
width: 100%;
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
/*
|
|
537
|
+
* If the container becomes very tiny, don't let the thumbnail side take
|
|
538
|
+
* up too much space. Shouldn't make a difference on ordinary viewport sizes.
|
|
539
|
+
*/
|
|
540
|
+
#list-line-left {
|
|
541
|
+
max-width: 25%;
|
|
542
|
+
|
|
543
|
+
display: flex;
|
|
544
|
+
flex-direction: column;
|
|
545
|
+
row-gap: 5px;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
div a:hover {
|
|
549
|
+
text-decoration: underline;
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
/* Lines containing multiple div as row */
|
|
553
|
+
#item-line,
|
|
554
|
+
#dates-line,
|
|
555
|
+
#views-line,
|
|
556
|
+
#title-line {
|
|
557
|
+
display: flex;
|
|
558
|
+
flex-direction: row;
|
|
559
|
+
column-gap: 10px;
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
/*
|
|
563
|
+
* With the exception of the title line, allow these to wrap if
|
|
564
|
+
* the space becomes too small to accommodate them together.
|
|
565
|
+
*
|
|
566
|
+
* The title line is excluded because it contains the mediatype icon
|
|
567
|
+
* which we don't want to wrap.
|
|
568
|
+
*/
|
|
569
|
+
#item-line,
|
|
570
|
+
#dates-line,
|
|
571
|
+
#views-line {
|
|
572
|
+
flex-wrap: wrap;
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
.capture-dates {
|
|
576
|
+
margin: 0;
|
|
577
|
+
padding: 0;
|
|
578
|
+
list-style-type: none;
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
.capture-dates a:link {
|
|
582
|
+
text-decoration: none;
|
|
583
|
+
color: var(--ia-theme-link-color, #4b64ff);
|
|
584
|
+
}
|
|
585
|
+
.capture-dates a:hover {
|
|
586
|
+
text-decoration: underline;
|
|
587
|
+
}
|
|
588
|
+
`;
|
|
607
589
|
}
|
|
608
590
|
};
|
|
609
591
|
__decorate([
|