@internetarchive/collection-browser 1.14.4 → 1.14.5-alpha2
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/.editorconfig +29 -29
- package/.github/workflows/ci.yml +26 -26
- package/.github/workflows/gh-pages-main.yml +39 -39
- package/.github/workflows/npm-publish.yml +39 -39
- package/.github/workflows/pr-preview.yml +38 -38
- package/.husky/pre-commit +4 -4
- package/LICENSE +661 -661
- package/README.md +83 -83
- package/dist/index.d.ts +9 -9
- package/dist/index.js +9 -9
- package/dist/src/app-root.d.ts +64 -64
- package/dist/src/app-root.js +311 -311
- package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
- package/dist/src/assets/img/icons/arrow-left.js +2 -2
- package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
- package/dist/src/assets/img/icons/arrow-right.js +2 -2
- package/dist/src/assets/img/icons/chevron.d.ts +2 -2
- package/dist/src/assets/img/icons/chevron.js +2 -2
- package/dist/src/assets/img/icons/contract.d.ts +2 -2
- package/dist/src/assets/img/icons/contract.js +2 -2
- package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
- package/dist/src/assets/img/icons/empty-query.js +2 -2
- package/dist/src/assets/img/icons/expand.d.ts +2 -2
- package/dist/src/assets/img/icons/expand.js +2 -2
- package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
- package/dist/src/assets/img/icons/eye-closed.js +2 -2
- package/dist/src/assets/img/icons/eye.d.ts +2 -2
- package/dist/src/assets/img/icons/eye.js +2 -2
- package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
- package/dist/src/assets/img/icons/favorite-filled.js +2 -2
- package/dist/src/assets/img/icons/login-required.d.ts +1 -1
- package/dist/src/assets/img/icons/login-required.js +2 -2
- package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/account.js +2 -2
- package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
- package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
- package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/data.js +2 -2
- package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
- package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/film.js +2 -2
- package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/images.js +2 -2
- package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
- package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/search.js +2 -2
- package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/software.js +2 -2
- package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
- package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
- package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/video.js +2 -2
- package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/web.js +2 -2
- package/dist/src/assets/img/icons/null-result.d.ts +2 -2
- package/dist/src/assets/img/icons/null-result.js +2 -2
- package/dist/src/assets/img/icons/restricted.d.ts +1 -1
- package/dist/src/assets/img/icons/restricted.js +2 -2
- package/dist/src/assets/img/icons/reviews.d.ts +1 -1
- package/dist/src/assets/img/icons/reviews.js +2 -2
- package/dist/src/assets/img/icons/upload.d.ts +1 -1
- package/dist/src/assets/img/icons/upload.js +2 -2
- package/dist/src/assets/img/icons/views.d.ts +1 -1
- package/dist/src/assets/img/icons/views.js +2 -2
- package/dist/src/circular-activity-indicator.d.ts +5 -5
- package/dist/src/circular-activity-indicator.js +17 -17
- package/dist/src/collection-browser.d.ts +525 -524
- package/dist/src/collection-browser.js +1871 -1859
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
- package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
- package/dist/src/collection-facets/facets-template.d.ts +20 -20
- package/dist/src/collection-facets/facets-template.js +152 -152
- package/dist/src/collection-facets/more-facets-content.d.ts +77 -77
- package/dist/src/collection-facets/more-facets-content.js +359 -359
- package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
- package/dist/src/collection-facets/more-facets-pagination.js +196 -196
- package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
- package/dist/src/collection-facets/toggle-switch.js +94 -94
- package/dist/src/collection-facets.d.ts +104 -104
- package/dist/src/collection-facets.js +507 -506
- package/dist/src/collection-facets.js.map +1 -1
- package/dist/src/empty-placeholder.d.ts +23 -23
- package/dist/src/empty-placeholder.js +74 -74
- package/dist/src/expanded-date-picker.d.ts +43 -43
- package/dist/src/expanded-date-picker.js +109 -109
- package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
- package/dist/src/language-code-handler/language-code-handler.js +26 -26
- package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
- package/dist/src/language-code-handler/language-code-mapping.js +562 -562
- package/dist/src/manage/manage-bar.d.ts +26 -26
- package/dist/src/manage/manage-bar.js +53 -53
- package/dist/src/mediatype/mediatype-config.d.ts +3 -3
- package/dist/src/mediatype/mediatype-config.js +91 -91
- package/dist/src/models.d.ts +164 -164
- package/dist/src/models.js +269 -269
- package/dist/src/restoration-state-handler.d.ts +70 -70
- package/dist/src/restoration-state-handler.js +355 -355
- package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
- package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
- package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
- package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
- package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/compact.js +2 -2
- package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/list.js +2 -2
- package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
- package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
- package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
- package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
- package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/tile.js +2 -2
- package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +208 -208
- package/dist/src/sort-filter-bar/sort-filter-bar.js +637 -637
- package/dist/src/styles/item-image-styles.d.ts +8 -8
- package/dist/src/styles/item-image-styles.js +9 -9
- package/dist/src/styles/sr-only.d.ts +1 -1
- package/dist/src/styles/sr-only.js +2 -2
- package/dist/src/tiles/base-tile-component.d.ts +19 -18
- package/dist/src/tiles/base-tile-component.js +63 -59
- package/dist/src/tiles/base-tile-component.js.map +1 -1
- package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
- package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
- package/dist/src/tiles/grid/account-tile.d.ts +18 -18
- package/dist/src/tiles/grid/account-tile.js +72 -72
- package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
- package/dist/src/tiles/grid/collection-tile.js +80 -80
- package/dist/src/tiles/grid/item-tile.d.ts +27 -27
- package/dist/src/tiles/grid/item-tile.js +134 -134
- package/dist/src/tiles/grid/search-tile.d.ts +10 -10
- package/dist/src/tiles/grid/search-tile.js +51 -51
- package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
- package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
- package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
- package/dist/src/tiles/grid/tile-stats.js +48 -48
- package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
- package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
- package/dist/src/tiles/hover/tile-hover-pane.d.ts +15 -15
- package/dist/src/tiles/hover/tile-hover-pane.js +38 -38
- package/dist/src/tiles/image-block.d.ts +17 -17
- package/dist/src/tiles/image-block.js +73 -73
- package/dist/src/tiles/item-image.d.ts +36 -36
- package/dist/src/tiles/item-image.js +127 -127
- package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
- package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
- package/dist/src/tiles/list/tile-list-compact.d.ts +15 -15
- package/dist/src/tiles/list/tile-list-compact.js +114 -114
- package/dist/src/tiles/list/tile-list.d.ts +46 -46
- package/dist/src/tiles/list/tile-list.js +302 -302
- package/dist/src/tiles/mediatype-icon.d.ts +9 -9
- package/dist/src/tiles/mediatype-icon.js +47 -47
- package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
- package/dist/src/tiles/overlay/icon-overlay.js +40 -40
- package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
- package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
- package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
- package/dist/src/tiles/overlay/text-overlay.js +42 -42
- package/dist/src/tiles/text-snippet-block.d.ts +27 -27
- package/dist/src/tiles/text-snippet-block.js +73 -73
- package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
- package/dist/src/tiles/tile-dispatcher.js +235 -235
- package/dist/src/tiles/tile-dispatcher.js.map +1 -1
- package/dist/src/tiles/tile-display-value-provider.d.ts +43 -43
- package/dist/src/tiles/tile-display-value-provider.js +80 -80
- package/dist/src/utils/analytics-events.d.ts +25 -25
- package/dist/src/utils/analytics-events.js +27 -27
- package/dist/src/utils/array-equals.d.ts +4 -4
- package/dist/src/utils/array-equals.js +10 -10
- package/dist/src/utils/format-count.d.ts +7 -7
- package/dist/src/utils/format-count.js +76 -76
- package/dist/src/utils/format-date.d.ts +2 -2
- package/dist/src/utils/format-date.js +25 -25
- package/dist/src/utils/format-unit-size.d.ts +2 -2
- package/dist/src/utils/format-unit-size.js +33 -33
- package/dist/src/utils/local-date-from-utc.d.ts +9 -9
- package/dist/src/utils/local-date-from-utc.js +15 -15
- package/dist/src/utils/sha1.d.ts +2 -2
- package/dist/src/utils/sha1.js +8 -8
- package/dist/test/collection-browser.test.d.ts +1 -1
- package/dist/test/collection-browser.test.js +1098 -1098
- package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
- package/dist/test/collection-facets/facets-template.test.js +134 -134
- package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
- package/dist/test/collection-facets/more-facets-content.test.js +133 -133
- package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
- package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
- package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
- package/dist/test/collection-facets/toggle-switch.test.js +73 -73
- package/dist/test/collection-facets.test.d.ts +2 -2
- package/dist/test/collection-facets.test.js +682 -682
- package/dist/test/empty-placeholder.test.d.ts +1 -1
- package/dist/test/empty-placeholder.test.js +63 -63
- package/dist/test/expanded-date-picker.test.d.ts +1 -1
- package/dist/test/expanded-date-picker.test.js +95 -95
- package/dist/test/icon-overlay.test.d.ts +1 -1
- package/dist/test/icon-overlay.test.js +24 -24
- package/dist/test/image-block.test.d.ts +1 -1
- package/dist/test/image-block.test.js +48 -48
- package/dist/test/item-image.test.d.ts +1 -1
- package/dist/test/item-image.test.js +86 -86
- package/dist/test/manage/manage-bar.test.d.ts +1 -1
- package/dist/test/manage/manage-bar.test.js +72 -72
- package/dist/test/mediatype-config.test.d.ts +1 -1
- package/dist/test/mediatype-config.test.js +16 -16
- package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
- package/dist/test/mocks/mock-analytics-handler.js +15 -15
- package/dist/test/mocks/mock-collection-name-cache.d.ts +9 -9
- package/dist/test/mocks/mock-collection-name-cache.js +17 -17
- package/dist/test/mocks/mock-search-responses.d.ts +21 -21
- package/dist/test/mocks/mock-search-responses.js +709 -709
- package/dist/test/mocks/mock-search-service.d.ts +15 -15
- package/dist/test/mocks/mock-search-service.js +50 -50
- package/dist/test/restoration-state-handler.test.d.ts +1 -1
- package/dist/test/restoration-state-handler.test.js +270 -270
- package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
- package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
- package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
- package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
- package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js +378 -378
- package/dist/test/text-overlay.test.d.ts +1 -1
- package/dist/test/text-overlay.test.js +48 -48
- package/dist/test/text-snippet-block.test.d.ts +1 -1
- package/dist/test/text-snippet-block.test.js +57 -57
- package/dist/test/tile-stats.test.d.ts +1 -1
- package/dist/test/tile-stats.test.js +33 -33
- package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/account-tile.test.js +76 -76
- package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/collection-tile.test.js +73 -73
- package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/item-tile.test.js +254 -254
- package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/search-tile.test.js +51 -51
- package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
- package/dist/test/tiles/hover/hover-pane-controller.test.js +258 -258
- package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
- package/dist/test/tiles/hover/tile-hover-pane.test.js +13 -13
- package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
- package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
- package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
- package/dist/test/tiles/list/tile-list.test.js +242 -242
- package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
- package/dist/test/tiles/tile-dispatcher.test.js +94 -94
- package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
- package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
- package/dist/test/utils/array-equals.test.d.ts +1 -1
- package/dist/test/utils/array-equals.test.js +26 -26
- package/dist/test/utils/format-count.test.d.ts +1 -1
- package/dist/test/utils/format-count.test.js +23 -23
- package/dist/test/utils/format-date.test.d.ts +1 -1
- package/dist/test/utils/format-date.test.js +17 -17
- package/dist/test/utils/format-unit-size.test.d.ts +1 -1
- package/dist/test/utils/format-unit-size.test.js +17 -17
- package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
- package/dist/test/utils/local-date-from-utc.test.js +26 -26
- package/local.archive.org.cert +86 -86
- package/local.archive.org.key +27 -27
- package/package.json +1 -1
- package/renovate.json +6 -6
- package/src/collection-browser.ts +11 -1
- package/src/collection-facets.ts +1 -0
- package/src/tiles/base-tile-component.ts +2 -0
- package/src/tiles/tile-dispatcher.ts +7 -5
- package/tsconfig.json +21 -21
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { css, html, LitElement, nothing } from 'lit';
|
|
3
|
-
import { customElement, property, query, state } from 'lit/decorators.js';
|
|
4
|
-
import { classMap } from 'lit/directives/class-map.js';
|
|
5
|
-
import { baseItemImageStyles, waveformGradientStyles, } from '../styles/item-image-styles';
|
|
6
|
-
import { searchIcon } from '../assets/img/icons/mediatype/search';
|
|
7
|
-
let ItemImage = class ItemImage extends LitElement {
|
|
8
|
-
constructor() {
|
|
9
|
-
super(...arguments);
|
|
10
|
-
this.isListTile = false;
|
|
11
|
-
this.isCompactTile = false;
|
|
12
|
-
this.loggedIn = false;
|
|
13
|
-
this.isWaveform = false;
|
|
14
|
-
}
|
|
15
|
-
render() {
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { css, html, LitElement, nothing } from 'lit';
|
|
3
|
+
import { customElement, property, query, state } from 'lit/decorators.js';
|
|
4
|
+
import { classMap } from 'lit/directives/class-map.js';
|
|
5
|
+
import { baseItemImageStyles, waveformGradientStyles, } from '../styles/item-image-styles';
|
|
6
|
+
import { searchIcon } from '../assets/img/icons/mediatype/search';
|
|
7
|
+
let ItemImage = class ItemImage extends LitElement {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.isListTile = false;
|
|
11
|
+
this.isCompactTile = false;
|
|
12
|
+
this.loggedIn = false;
|
|
13
|
+
this.isWaveform = false;
|
|
14
|
+
}
|
|
15
|
+
render() {
|
|
16
16
|
return html `
|
|
17
17
|
<div class=${classMap(this.itemBaseClass)}>${this.imageTemplate}</div>
|
|
18
|
-
`;
|
|
19
|
-
}
|
|
20
|
-
get imageTemplate() {
|
|
21
|
-
var _a;
|
|
22
|
-
if (((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'search') {
|
|
23
|
-
return html `${searchIcon}`;
|
|
24
|
-
}
|
|
18
|
+
`;
|
|
19
|
+
}
|
|
20
|
+
get imageTemplate() {
|
|
21
|
+
var _a;
|
|
22
|
+
if (((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'search') {
|
|
23
|
+
return html `${searchIcon}`;
|
|
24
|
+
}
|
|
25
25
|
return html `
|
|
26
26
|
<img
|
|
27
27
|
class=${classMap(this.itemImageClass)}
|
|
@@ -29,82 +29,82 @@ let ItemImage = class ItemImage extends LitElement {
|
|
|
29
29
|
alt=""
|
|
30
30
|
@load=${this.onLoad}
|
|
31
31
|
/>
|
|
32
|
-
`;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Helpers
|
|
36
|
-
*/
|
|
37
|
-
get imageSrc() {
|
|
38
|
-
var _a;
|
|
39
|
-
// Don't try to load invalid image URLs
|
|
40
|
-
return this.baseImageUrl && ((_a = this.model) === null || _a === void 0 ? void 0 : _a.identifier)
|
|
41
|
-
? `${this.baseImageUrl}/services/img/${this.model.identifier}`
|
|
42
|
-
: nothing;
|
|
43
|
-
}
|
|
44
|
-
get hashBasedGradient() {
|
|
45
|
-
var _a;
|
|
46
|
-
if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.identifier)) {
|
|
47
|
-
return 'waveform-grad0';
|
|
48
|
-
}
|
|
49
|
-
const gradient = this.hashStrToInt(this.model.identifier) % 6; // returns 0-5
|
|
50
|
-
return `waveform-grad${gradient}`;
|
|
51
|
-
}
|
|
52
|
-
hashStrToInt(str) {
|
|
53
|
-
return str
|
|
54
|
-
.split('')
|
|
55
|
-
.reduce((acc, char) => acc + char.charCodeAt(0), 0);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Classes
|
|
59
|
-
*/
|
|
60
|
-
get itemBaseClass() {
|
|
61
|
-
var _a;
|
|
62
|
-
return {
|
|
63
|
-
'drop-shadow': true,
|
|
64
|
-
'list-box': this.isListTile,
|
|
65
|
-
'search-image': ((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'search',
|
|
66
|
-
[this.hashBasedGradient]: this.isWaveform,
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
get itemImageClass() {
|
|
70
|
-
var _a, _b, _c;
|
|
71
|
-
const toBlur = ((_a = this.model) === null || _a === void 0 ? void 0 : _a.contentWarning) || ((_b = this.model) === null || _b === void 0 ? void 0 : _b.loginRequired);
|
|
72
|
-
return {
|
|
73
|
-
contain: !this.isCompactTile && !this.isWaveform,
|
|
74
|
-
cover: this.isCompactTile,
|
|
75
|
-
blur: toBlur || false,
|
|
76
|
-
waveform: this.isWaveform,
|
|
77
|
-
'account-image': this.isAccountImage,
|
|
78
|
-
'collection-image': ((_c = this.model) === null || _c === void 0 ? void 0 : _c.mediatype) === 'collection', // for collection tile image
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Helper function to determine if account tile image
|
|
83
|
-
*/
|
|
84
|
-
get isAccountImage() {
|
|
85
|
-
var _a;
|
|
86
|
-
return (((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'account' &&
|
|
87
|
-
!this.isCompactTile &&
|
|
88
|
-
!this.isListTile);
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Event listener sets isWaveform true if image is waveform
|
|
92
|
-
*/
|
|
93
|
-
onLoad() {
|
|
94
|
-
var _a, _b;
|
|
95
|
-
if ((((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'audio' ||
|
|
96
|
-
((_b = this.model) === null || _b === void 0 ? void 0 : _b.mediatype) === 'etree') &&
|
|
97
|
-
this.baseImage.naturalWidth / this.baseImage.naturalHeight === 4) {
|
|
98
|
-
this.isWaveform = true;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* CSS
|
|
103
|
-
*/
|
|
104
|
-
static get styles() {
|
|
105
|
-
return [
|
|
106
|
-
baseItemImageStyles,
|
|
107
|
-
waveformGradientStyles,
|
|
32
|
+
`;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Helpers
|
|
36
|
+
*/
|
|
37
|
+
get imageSrc() {
|
|
38
|
+
var _a;
|
|
39
|
+
// Don't try to load invalid image URLs
|
|
40
|
+
return this.baseImageUrl && ((_a = this.model) === null || _a === void 0 ? void 0 : _a.identifier)
|
|
41
|
+
? `${this.baseImageUrl}/services/img/${this.model.identifier}`
|
|
42
|
+
: nothing;
|
|
43
|
+
}
|
|
44
|
+
get hashBasedGradient() {
|
|
45
|
+
var _a;
|
|
46
|
+
if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.identifier)) {
|
|
47
|
+
return 'waveform-grad0';
|
|
48
|
+
}
|
|
49
|
+
const gradient = this.hashStrToInt(this.model.identifier) % 6; // returns 0-5
|
|
50
|
+
return `waveform-grad${gradient}`;
|
|
51
|
+
}
|
|
52
|
+
hashStrToInt(str) {
|
|
53
|
+
return str
|
|
54
|
+
.split('')
|
|
55
|
+
.reduce((acc, char) => acc + char.charCodeAt(0), 0);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Classes
|
|
59
|
+
*/
|
|
60
|
+
get itemBaseClass() {
|
|
61
|
+
var _a;
|
|
62
|
+
return {
|
|
63
|
+
'drop-shadow': true,
|
|
64
|
+
'list-box': this.isListTile,
|
|
65
|
+
'search-image': ((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'search',
|
|
66
|
+
[this.hashBasedGradient]: this.isWaveform,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
get itemImageClass() {
|
|
70
|
+
var _a, _b, _c;
|
|
71
|
+
const toBlur = ((_a = this.model) === null || _a === void 0 ? void 0 : _a.contentWarning) || ((_b = this.model) === null || _b === void 0 ? void 0 : _b.loginRequired);
|
|
72
|
+
return {
|
|
73
|
+
contain: !this.isCompactTile && !this.isWaveform,
|
|
74
|
+
cover: this.isCompactTile,
|
|
75
|
+
blur: toBlur || false,
|
|
76
|
+
waveform: this.isWaveform,
|
|
77
|
+
'account-image': this.isAccountImage,
|
|
78
|
+
'collection-image': ((_c = this.model) === null || _c === void 0 ? void 0 : _c.mediatype) === 'collection', // for collection tile image
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Helper function to determine if account tile image
|
|
83
|
+
*/
|
|
84
|
+
get isAccountImage() {
|
|
85
|
+
var _a;
|
|
86
|
+
return (((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'account' &&
|
|
87
|
+
!this.isCompactTile &&
|
|
88
|
+
!this.isListTile);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Event listener sets isWaveform true if image is waveform
|
|
92
|
+
*/
|
|
93
|
+
onLoad() {
|
|
94
|
+
var _a, _b;
|
|
95
|
+
if ((((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'audio' ||
|
|
96
|
+
((_b = this.model) === null || _b === void 0 ? void 0 : _b.mediatype) === 'etree') &&
|
|
97
|
+
this.baseImage.naturalWidth / this.baseImage.naturalHeight === 4) {
|
|
98
|
+
this.isWaveform = true;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* CSS
|
|
103
|
+
*/
|
|
104
|
+
static get styles() {
|
|
105
|
+
return [
|
|
106
|
+
baseItemImageStyles,
|
|
107
|
+
waveformGradientStyles,
|
|
108
108
|
css `
|
|
109
109
|
img {
|
|
110
110
|
height: var(--imgHeight, 16rem);
|
|
@@ -123,33 +123,33 @@ let ItemImage = class ItemImage extends LitElement {
|
|
|
123
123
|
height: 10rem;
|
|
124
124
|
width: 10rem;
|
|
125
125
|
}
|
|
126
|
-
`,
|
|
127
|
-
];
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
__decorate([
|
|
131
|
-
property({ type: Object })
|
|
132
|
-
], ItemImage.prototype, "model", void 0);
|
|
133
|
-
__decorate([
|
|
134
|
-
property({ type: String })
|
|
135
|
-
], ItemImage.prototype, "baseImageUrl", void 0);
|
|
136
|
-
__decorate([
|
|
137
|
-
property({ type: Boolean })
|
|
138
|
-
], ItemImage.prototype, "isListTile", void 0);
|
|
139
|
-
__decorate([
|
|
140
|
-
property({ type: Boolean })
|
|
141
|
-
], ItemImage.prototype, "isCompactTile", void 0);
|
|
142
|
-
__decorate([
|
|
143
|
-
property({ type: Boolean })
|
|
144
|
-
], ItemImage.prototype, "loggedIn", void 0);
|
|
145
|
-
__decorate([
|
|
146
|
-
state()
|
|
147
|
-
], ItemImage.prototype, "isWaveform", void 0);
|
|
148
|
-
__decorate([
|
|
149
|
-
query('img')
|
|
150
|
-
], ItemImage.prototype, "baseImage", void 0);
|
|
151
|
-
ItemImage = __decorate([
|
|
152
|
-
customElement('item-image')
|
|
153
|
-
], ItemImage);
|
|
154
|
-
export { ItemImage };
|
|
126
|
+
`,
|
|
127
|
+
];
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
__decorate([
|
|
131
|
+
property({ type: Object })
|
|
132
|
+
], ItemImage.prototype, "model", void 0);
|
|
133
|
+
__decorate([
|
|
134
|
+
property({ type: String })
|
|
135
|
+
], ItemImage.prototype, "baseImageUrl", void 0);
|
|
136
|
+
__decorate([
|
|
137
|
+
property({ type: Boolean })
|
|
138
|
+
], ItemImage.prototype, "isListTile", void 0);
|
|
139
|
+
__decorate([
|
|
140
|
+
property({ type: Boolean })
|
|
141
|
+
], ItemImage.prototype, "isCompactTile", void 0);
|
|
142
|
+
__decorate([
|
|
143
|
+
property({ type: Boolean })
|
|
144
|
+
], ItemImage.prototype, "loggedIn", void 0);
|
|
145
|
+
__decorate([
|
|
146
|
+
state()
|
|
147
|
+
], ItemImage.prototype, "isWaveform", void 0);
|
|
148
|
+
__decorate([
|
|
149
|
+
query('img')
|
|
150
|
+
], ItemImage.prototype, "baseImage", void 0);
|
|
151
|
+
ItemImage = __decorate([
|
|
152
|
+
customElement('item-image')
|
|
153
|
+
], ItemImage);
|
|
154
|
+
export { ItemImage };
|
|
155
155
|
//# sourceMappingURL=item-image.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BaseTileComponent } from '../base-tile-component';
|
|
2
|
-
export declare class TileListCompactHeader extends BaseTileComponent {
|
|
3
|
-
render(): import("lit-html").TemplateResult<1>;
|
|
4
|
-
private get classSize();
|
|
5
|
-
static get styles(): import("lit").CSSResult;
|
|
6
|
-
}
|
|
1
|
+
import { BaseTileComponent } from '../base-tile-component';
|
|
2
|
+
export declare class TileListCompactHeader extends BaseTileComponent {
|
|
3
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
4
|
+
private get classSize();
|
|
5
|
+
static get styles(): import("lit").CSSResult;
|
|
6
|
+
}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { css, html } from 'lit';
|
|
3
|
-
import { customElement } from 'lit/decorators.js';
|
|
4
|
-
import { msg } from '@lit/localize';
|
|
5
|
-
import { BaseTileComponent } from '../base-tile-component';
|
|
6
|
-
let TileListCompactHeader = class TileListCompactHeader extends BaseTileComponent {
|
|
7
|
-
/*
|
|
8
|
-
* Reactive properties inherited from BaseTileComponent:
|
|
9
|
-
* - model?: TileModel;
|
|
10
|
-
* - currentWidth?: number;
|
|
11
|
-
* - currentHeight?: number;
|
|
12
|
-
* - baseNavigationUrl?: string;
|
|
13
|
-
* - baseImageUrl?: string;
|
|
14
|
-
* - collectionPagePath?: string;
|
|
15
|
-
* - sortParam: SortParam | null = null;
|
|
16
|
-
* - creatorFilter?: string;
|
|
17
|
-
* - mobileBreakpoint?: number;
|
|
18
|
-
* - loggedIn = false;
|
|
19
|
-
*/
|
|
20
|
-
render() {
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { css, html } from 'lit';
|
|
3
|
+
import { customElement } from 'lit/decorators.js';
|
|
4
|
+
import { msg } from '@lit/localize';
|
|
5
|
+
import { BaseTileComponent } from '../base-tile-component';
|
|
6
|
+
let TileListCompactHeader = class TileListCompactHeader extends BaseTileComponent {
|
|
7
|
+
/*
|
|
8
|
+
* Reactive properties inherited from BaseTileComponent:
|
|
9
|
+
* - model?: TileModel;
|
|
10
|
+
* - currentWidth?: number;
|
|
11
|
+
* - currentHeight?: number;
|
|
12
|
+
* - baseNavigationUrl?: string;
|
|
13
|
+
* - baseImageUrl?: string;
|
|
14
|
+
* - collectionPagePath?: string;
|
|
15
|
+
* - sortParam: SortParam | null = null;
|
|
16
|
+
* - creatorFilter?: string;
|
|
17
|
+
* - mobileBreakpoint?: number;
|
|
18
|
+
* - loggedIn = false;
|
|
19
|
+
*/
|
|
20
|
+
render() {
|
|
21
21
|
return html `
|
|
22
22
|
<div id="list-line-header" class="${this.classSize}">
|
|
23
23
|
<div id="thumb"></div>
|
|
@@ -27,17 +27,17 @@ let TileListCompactHeader = class TileListCompactHeader extends BaseTileComponen
|
|
|
27
27
|
<div id="icon">${msg('Type')}</div>
|
|
28
28
|
<div id="views">${msg('Views')}</div>
|
|
29
29
|
</div>
|
|
30
|
-
`;
|
|
31
|
-
}
|
|
32
|
-
get classSize() {
|
|
33
|
-
if (this.mobileBreakpoint &&
|
|
34
|
-
this.currentWidth &&
|
|
35
|
-
this.currentWidth < this.mobileBreakpoint) {
|
|
36
|
-
return 'mobile';
|
|
37
|
-
}
|
|
38
|
-
return 'desktop';
|
|
39
|
-
}
|
|
40
|
-
static get styles() {
|
|
30
|
+
`;
|
|
31
|
+
}
|
|
32
|
+
get classSize() {
|
|
33
|
+
if (this.mobileBreakpoint &&
|
|
34
|
+
this.currentWidth &&
|
|
35
|
+
this.currentWidth < this.mobileBreakpoint) {
|
|
36
|
+
return 'mobile';
|
|
37
|
+
}
|
|
38
|
+
return 'desktop';
|
|
39
|
+
}
|
|
40
|
+
static get styles() {
|
|
41
41
|
return css `
|
|
42
42
|
html {
|
|
43
43
|
font-size: unset;
|
|
@@ -72,11 +72,11 @@ let TileListCompactHeader = class TileListCompactHeader extends BaseTileComponen
|
|
|
72
72
|
#list-line-header.desktop {
|
|
73
73
|
grid-template-columns: 51px 3fr 2fr 95px 30px 60px;
|
|
74
74
|
}
|
|
75
|
-
`;
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
TileListCompactHeader = __decorate([
|
|
79
|
-
customElement('tile-list-compact-header')
|
|
80
|
-
], TileListCompactHeader);
|
|
81
|
-
export { TileListCompactHeader };
|
|
75
|
+
`;
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
TileListCompactHeader = __decorate([
|
|
79
|
+
customElement('tile-list-compact-header')
|
|
80
|
+
], TileListCompactHeader);
|
|
81
|
+
export { TileListCompactHeader };
|
|
82
82
|
//# sourceMappingURL=tile-list-compact-header.js.map
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { BaseTileComponent } from '../base-tile-component';
|
|
2
|
-
import '../image-block';
|
|
3
|
-
import '../mediatype-icon';
|
|
4
|
-
export declare class TileListCompact extends BaseTileComponent {
|
|
5
|
-
render(): import("lit-html").TemplateResult<1>;
|
|
6
|
-
private get href();
|
|
7
|
-
private get creator();
|
|
8
|
-
private get date();
|
|
9
|
-
private get views();
|
|
10
|
-
private get classSize();
|
|
11
|
-
private get dateFormatSize();
|
|
12
|
-
private get formatSize();
|
|
13
|
-
private get isSortedByDate();
|
|
14
|
-
static get styles(): import("lit").CSSResult;
|
|
15
|
-
}
|
|
1
|
+
import { BaseTileComponent } from '../base-tile-component';
|
|
2
|
+
import '../image-block';
|
|
3
|
+
import '../mediatype-icon';
|
|
4
|
+
export declare class TileListCompact extends BaseTileComponent {
|
|
5
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
6
|
+
private get href();
|
|
7
|
+
private get creator();
|
|
8
|
+
private get date();
|
|
9
|
+
private get views();
|
|
10
|
+
private get classSize();
|
|
11
|
+
private get dateFormatSize();
|
|
12
|
+
private get formatSize();
|
|
13
|
+
private get isSortedByDate();
|
|
14
|
+
static get styles(): import("lit").CSSResult;
|
|
15
|
+
}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { css, html, nothing } from 'lit';
|
|
3
|
-
import { customElement } from 'lit/decorators.js';
|
|
4
|
-
import DOMPurify from 'dompurify';
|
|
5
|
-
import { BaseTileComponent } from '../base-tile-component';
|
|
6
|
-
import { formatCount } from '../../utils/format-count';
|
|
7
|
-
import { formatDate } from '../../utils/format-date';
|
|
8
|
-
import { isFirstMillisecondOfUTCYear } from '../../utils/local-date-from-utc';
|
|
9
|
-
import '../image-block';
|
|
10
|
-
import '../mediatype-icon';
|
|
11
|
-
let TileListCompact = class TileListCompact extends BaseTileComponent {
|
|
12
|
-
/*
|
|
13
|
-
* Reactive properties inherited from BaseTileComponent:
|
|
14
|
-
* - model?: TileModel;
|
|
15
|
-
* - currentWidth?: number;
|
|
16
|
-
* - currentHeight?: number;
|
|
17
|
-
* - baseNavigationUrl?: string;
|
|
18
|
-
* - baseImageUrl?: string;
|
|
19
|
-
* - collectionPagePath?: string;
|
|
20
|
-
* - sortParam: SortParam | null = null;
|
|
21
|
-
* - creatorFilter?: string;
|
|
22
|
-
* - mobileBreakpoint?: number;
|
|
23
|
-
* - loggedIn = false;
|
|
24
|
-
*/
|
|
25
|
-
render() {
|
|
26
|
-
var _a, _b, _c, _d, _e, _f;
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { css, html, nothing } from 'lit';
|
|
3
|
+
import { customElement } from 'lit/decorators.js';
|
|
4
|
+
import DOMPurify from 'dompurify';
|
|
5
|
+
import { BaseTileComponent } from '../base-tile-component';
|
|
6
|
+
import { formatCount } from '../../utils/format-count';
|
|
7
|
+
import { formatDate } from '../../utils/format-date';
|
|
8
|
+
import { isFirstMillisecondOfUTCYear } from '../../utils/local-date-from-utc';
|
|
9
|
+
import '../image-block';
|
|
10
|
+
import '../mediatype-icon';
|
|
11
|
+
let TileListCompact = class TileListCompact extends BaseTileComponent {
|
|
12
|
+
/*
|
|
13
|
+
* Reactive properties inherited from BaseTileComponent:
|
|
14
|
+
* - model?: TileModel;
|
|
15
|
+
* - currentWidth?: number;
|
|
16
|
+
* - currentHeight?: number;
|
|
17
|
+
* - baseNavigationUrl?: string;
|
|
18
|
+
* - baseImageUrl?: string;
|
|
19
|
+
* - collectionPagePath?: string;
|
|
20
|
+
* - sortParam: SortParam | null = null;
|
|
21
|
+
* - creatorFilter?: string;
|
|
22
|
+
* - mobileBreakpoint?: number;
|
|
23
|
+
* - loggedIn = false;
|
|
24
|
+
*/
|
|
25
|
+
render() {
|
|
26
|
+
var _a, _b, _c, _d, _e, _f;
|
|
27
27
|
return html `
|
|
28
28
|
<div id="list-line" class="${this.classSize}">
|
|
29
29
|
<image-block
|
|
@@ -39,8 +39,8 @@ let TileListCompact = class TileListCompact extends BaseTileComponent {
|
|
|
39
39
|
>${DOMPurify.sanitize((_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a.title) !== null && _b !== void 0 ? _b : '')}</a
|
|
40
40
|
>
|
|
41
41
|
<div id="creator">
|
|
42
|
-
${((_c = this.model) === null || _c === void 0 ? void 0 : _c.mediatype) === 'account'
|
|
43
|
-
? this.displayValueProvider.accountLabel
|
|
42
|
+
${((_c = this.model) === null || _c === void 0 ? void 0 : _c.mediatype) === 'account'
|
|
43
|
+
? this.displayValueProvider.accountLabel
|
|
44
44
|
: this.creator}
|
|
45
45
|
</div>
|
|
46
46
|
<div id="date">${formatDate(this.date, this.dateFormatSize)}</div>
|
|
@@ -53,85 +53,85 @@ let TileListCompact = class TileListCompact extends BaseTileComponent {
|
|
|
53
53
|
</div>
|
|
54
54
|
<div id="views">${formatCount((_f = this.views) !== null && _f !== void 0 ? _f : 0, this.formatSize)}</div>
|
|
55
55
|
</div>
|
|
56
|
-
`;
|
|
57
|
-
}
|
|
58
|
-
get href() {
|
|
59
|
-
var _a;
|
|
60
|
-
if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.identifier) || this.baseNavigationUrl == null)
|
|
61
|
-
return nothing;
|
|
62
|
-
// Use the server-specified href if available.
|
|
63
|
-
// Otherwise, construct a details page URL from the item identifier.
|
|
64
|
-
if (this.model.href) {
|
|
65
|
-
return `${this.baseNavigationUrl}${this.model.href}`;
|
|
66
|
-
}
|
|
67
|
-
return this.displayValueProvider.itemPageUrl(this.model.identifier, this.model.mediatype === 'collection');
|
|
68
|
-
}
|
|
69
|
-
get creator() {
|
|
70
|
-
var _a;
|
|
71
|
-
return (_a = this.displayValueProvider.firstCreatorMatchingFilter) !== null && _a !== void 0 ? _a : nothing;
|
|
72
|
-
}
|
|
73
|
-
/*
|
|
74
|
-
* TODO: fix field names to match model in src/collection-browser.ts
|
|
75
|
-
* private get dateSortSelector()
|
|
76
|
-
* @see src/models.ts
|
|
77
|
-
*/
|
|
78
|
-
get date() {
|
|
79
|
-
var _a, _b, _c, _d, _e;
|
|
80
|
-
// Note on 'publicdate' vs. 'date':
|
|
81
|
-
// The search engine metadata uses 'publicdate' as the key for the date the item
|
|
82
|
-
// was created on archive.org, which in the UI is referred to as "Date Archived".
|
|
83
|
-
// In contrast, the search engine metadata uses 'date' to refer to the actual
|
|
84
|
-
// publication date of the underlying media ("Date Published" in the UI).
|
|
85
|
-
// Refer to the full metadata schema for more info.
|
|
86
|
-
switch ((_a = this.sortParam) === null || _a === void 0 ? void 0 : _a.field) {
|
|
87
|
-
case 'publicdate':
|
|
88
|
-
return (_b = this.model) === null || _b === void 0 ? void 0 : _b.dateArchived;
|
|
89
|
-
case 'reviewdate':
|
|
90
|
-
return (_c = this.model) === null || _c === void 0 ? void 0 : _c.dateReviewed;
|
|
91
|
-
case 'addeddate':
|
|
92
|
-
return (_d = this.model) === null || _d === void 0 ? void 0 : _d.dateAdded;
|
|
93
|
-
default:
|
|
94
|
-
return (_e = this.model) === null || _e === void 0 ? void 0 : _e.datePublished;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
get views() {
|
|
98
|
-
var _a, _b, _c;
|
|
99
|
-
return ((_a = this.sortParam) === null || _a === void 0 ? void 0 : _a.field) === 'week'
|
|
100
|
-
? (_b = this.model) === null || _b === void 0 ? void 0 : _b.weeklyViewCount // weekly views
|
|
101
|
-
: (_c = this.model) === null || _c === void 0 ? void 0 : _c.viewCount; // all-time views
|
|
102
|
-
}
|
|
103
|
-
get classSize() {
|
|
104
|
-
if (this.mobileBreakpoint &&
|
|
105
|
-
this.currentWidth &&
|
|
106
|
-
this.currentWidth < this.mobileBreakpoint) {
|
|
107
|
-
return 'mobile';
|
|
108
|
-
}
|
|
109
|
-
return 'desktop';
|
|
110
|
-
}
|
|
111
|
-
get dateFormatSize() {
|
|
112
|
-
var _a, _b;
|
|
113
|
-
// If we're showing a date published of Jan 1 at midnight, only show the year.
|
|
114
|
-
// This is because items with only a year for their publication date are normalized to
|
|
115
|
-
// Jan 1 at midnight timestamps in the search engine documents.
|
|
116
|
-
if ((!this.isSortedByDate || ((_a = this.sortParam) === null || _a === void 0 ? void 0 : _a.field) === 'date') && // Any sort except dates that aren't published date
|
|
117
|
-
isFirstMillisecondOfUTCYear((_b = this.model) === null || _b === void 0 ? void 0 : _b.datePublished)) {
|
|
118
|
-
return 'year-only';
|
|
119
|
-
}
|
|
120
|
-
return this.formatSize;
|
|
121
|
-
}
|
|
122
|
-
get formatSize() {
|
|
123
|
-
if (this.mobileBreakpoint &&
|
|
124
|
-
this.currentWidth &&
|
|
125
|
-
this.currentWidth < this.mobileBreakpoint) {
|
|
126
|
-
return 'short';
|
|
127
|
-
}
|
|
128
|
-
return 'long';
|
|
129
|
-
}
|
|
130
|
-
get isSortedByDate() {
|
|
131
|
-
var _a;
|
|
132
|
-
return ['date', 'reviewdate', 'addeddate', 'publicdate'].includes((_a = this.sortParam) === null || _a === void 0 ? void 0 : _a.field);
|
|
133
|
-
}
|
|
134
|
-
static get styles() {
|
|
56
|
+
`;
|
|
57
|
+
}
|
|
58
|
+
get href() {
|
|
59
|
+
var _a;
|
|
60
|
+
if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.identifier) || this.baseNavigationUrl == null)
|
|
61
|
+
return nothing;
|
|
62
|
+
// Use the server-specified href if available.
|
|
63
|
+
// Otherwise, construct a details page URL from the item identifier.
|
|
64
|
+
if (this.model.href) {
|
|
65
|
+
return `${this.baseNavigationUrl}${this.model.href}`;
|
|
66
|
+
}
|
|
67
|
+
return this.displayValueProvider.itemPageUrl(this.model.identifier, this.model.mediatype === 'collection');
|
|
68
|
+
}
|
|
69
|
+
get creator() {
|
|
70
|
+
var _a;
|
|
71
|
+
return (_a = this.displayValueProvider.firstCreatorMatchingFilter) !== null && _a !== void 0 ? _a : nothing;
|
|
72
|
+
}
|
|
73
|
+
/*
|
|
74
|
+
* TODO: fix field names to match model in src/collection-browser.ts
|
|
75
|
+
* private get dateSortSelector()
|
|
76
|
+
* @see src/models.ts
|
|
77
|
+
*/
|
|
78
|
+
get date() {
|
|
79
|
+
var _a, _b, _c, _d, _e;
|
|
80
|
+
// Note on 'publicdate' vs. 'date':
|
|
81
|
+
// The search engine metadata uses 'publicdate' as the key for the date the item
|
|
82
|
+
// was created on archive.org, which in the UI is referred to as "Date Archived".
|
|
83
|
+
// In contrast, the search engine metadata uses 'date' to refer to the actual
|
|
84
|
+
// publication date of the underlying media ("Date Published" in the UI).
|
|
85
|
+
// Refer to the full metadata schema for more info.
|
|
86
|
+
switch ((_a = this.sortParam) === null || _a === void 0 ? void 0 : _a.field) {
|
|
87
|
+
case 'publicdate':
|
|
88
|
+
return (_b = this.model) === null || _b === void 0 ? void 0 : _b.dateArchived;
|
|
89
|
+
case 'reviewdate':
|
|
90
|
+
return (_c = this.model) === null || _c === void 0 ? void 0 : _c.dateReviewed;
|
|
91
|
+
case 'addeddate':
|
|
92
|
+
return (_d = this.model) === null || _d === void 0 ? void 0 : _d.dateAdded;
|
|
93
|
+
default:
|
|
94
|
+
return (_e = this.model) === null || _e === void 0 ? void 0 : _e.datePublished;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
get views() {
|
|
98
|
+
var _a, _b, _c;
|
|
99
|
+
return ((_a = this.sortParam) === null || _a === void 0 ? void 0 : _a.field) === 'week'
|
|
100
|
+
? (_b = this.model) === null || _b === void 0 ? void 0 : _b.weeklyViewCount // weekly views
|
|
101
|
+
: (_c = this.model) === null || _c === void 0 ? void 0 : _c.viewCount; // all-time views
|
|
102
|
+
}
|
|
103
|
+
get classSize() {
|
|
104
|
+
if (this.mobileBreakpoint &&
|
|
105
|
+
this.currentWidth &&
|
|
106
|
+
this.currentWidth < this.mobileBreakpoint) {
|
|
107
|
+
return 'mobile';
|
|
108
|
+
}
|
|
109
|
+
return 'desktop';
|
|
110
|
+
}
|
|
111
|
+
get dateFormatSize() {
|
|
112
|
+
var _a, _b;
|
|
113
|
+
// If we're showing a date published of Jan 1 at midnight, only show the year.
|
|
114
|
+
// This is because items with only a year for their publication date are normalized to
|
|
115
|
+
// Jan 1 at midnight timestamps in the search engine documents.
|
|
116
|
+
if ((!this.isSortedByDate || ((_a = this.sortParam) === null || _a === void 0 ? void 0 : _a.field) === 'date') && // Any sort except dates that aren't published date
|
|
117
|
+
isFirstMillisecondOfUTCYear((_b = this.model) === null || _b === void 0 ? void 0 : _b.datePublished)) {
|
|
118
|
+
return 'year-only';
|
|
119
|
+
}
|
|
120
|
+
return this.formatSize;
|
|
121
|
+
}
|
|
122
|
+
get formatSize() {
|
|
123
|
+
if (this.mobileBreakpoint &&
|
|
124
|
+
this.currentWidth &&
|
|
125
|
+
this.currentWidth < this.mobileBreakpoint) {
|
|
126
|
+
return 'short';
|
|
127
|
+
}
|
|
128
|
+
return 'long';
|
|
129
|
+
}
|
|
130
|
+
get isSortedByDate() {
|
|
131
|
+
var _a;
|
|
132
|
+
return ['date', 'reviewdate', 'addeddate', 'publicdate'].includes((_a = this.sortParam) === null || _a === void 0 ? void 0 : _a.field);
|
|
133
|
+
}
|
|
134
|
+
static get styles() {
|
|
135
135
|
return css `
|
|
136
136
|
html {
|
|
137
137
|
font-size: unset;
|
|
@@ -205,11 +205,11 @@ let TileListCompact = class TileListCompact extends BaseTileComponent {
|
|
|
205
205
|
--imgHeight: 100%;
|
|
206
206
|
--imgWidth: 100%;
|
|
207
207
|
}
|
|
208
|
-
`;
|
|
209
|
-
}
|
|
210
|
-
};
|
|
211
|
-
TileListCompact = __decorate([
|
|
212
|
-
customElement('tile-list-compact')
|
|
213
|
-
], TileListCompact);
|
|
214
|
-
export { TileListCompact };
|
|
208
|
+
`;
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
TileListCompact = __decorate([
|
|
212
|
+
customElement('tile-list-compact')
|
|
213
|
+
], TileListCompact);
|
|
214
|
+
export { TileListCompact };
|
|
215
215
|
//# sourceMappingURL=tile-list-compact.js.map
|