@internetarchive/collection-browser 0.2.22 → 0.3.0-alpha.2
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 +42 -39
- package/dist/src/app-root.js +236 -203
- package/dist/src/app-root.js.map +1 -1
- 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/empty-query.d.ts +2 -2
- package/dist/src/assets/img/icons/empty-query.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/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 +235 -233
- package/dist/src/collection-browser.js +1032 -1046
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/collection-facets/facets-template.d.ts +16 -16
- package/dist/src/collection-facets/facets-template.js +125 -125
- package/dist/src/collection-facets/facets-util.d.ts +10 -10
- package/dist/src/collection-facets/facets-util.js +19 -19
- package/dist/src/collection-facets/more-facets-content.d.ts +84 -83
- package/dist/src/collection-facets/more-facets-content.js +353 -351
- package/dist/src/collection-facets/more-facets-content.js.map +1 -1
- package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
- package/dist/src/collection-facets/more-facets-pagination.js +192 -192
- package/dist/src/collection-facets.d.ts +71 -79
- package/dist/src/collection-facets.js +325 -338
- package/dist/src/collection-facets.js.map +1 -1
- package/dist/src/empty-placeholder.d.ts +11 -11
- package/dist/src/empty-placeholder.js +42 -42
- 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/mediatype/mediatype-config.d.ts +3 -3
- package/dist/src/mediatype/mediatype-config.js +85 -85
- package/dist/src/models.d.ts +90 -89
- package/dist/src/models.js +85 -85
- package/dist/src/models.js.map +1 -1
- package/dist/src/restoration-state-handler.d.ts +38 -38
- package/dist/src/restoration-state-handler.js +202 -202
- package/dist/src/sort-filter-bar/alpha-bar.d.ts +9 -9
- package/dist/src/sort-filter-bar/alpha-bar.js +41 -41
- 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-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 +107 -107
- package/dist/src/sort-filter-bar/sort-filter-bar.js +423 -423
- package/dist/src/styles/item-image-styles.d.ts +8 -8
- package/dist/src/styles/item-image-styles.js +9 -9
- 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 +8 -8
- package/dist/src/tiles/grid/account-tile.js +20 -20
- package/dist/src/tiles/grid/collection-tile.d.ts +7 -7
- package/dist/src/tiles/grid/collection-tile.js +23 -23
- package/dist/src/tiles/grid/item-tile.d.ts +24 -24
- package/dist/src/tiles/grid/item-tile.js +87 -87
- package/dist/src/tiles/grid/tile-stats.d.ts +10 -10
- package/dist/src/tiles/grid/tile-stats.js +35 -35
- 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 +31 -31
- package/dist/src/tiles/item-image.js +103 -103
- package/dist/src/tiles/list/account-label.d.ts +1 -1
- package/dist/src/tiles/list/account-label.js +6 -6
- package/dist/src/tiles/list/date-label.d.ts +1 -1
- package/dist/src/tiles/list/date-label.js +12 -12
- package/dist/src/tiles/list/tile-list-compact-header.d.ts +12 -12
- package/dist/src/tiles/list/tile-list-compact-header.js +41 -41
- package/dist/src/tiles/list/tile-list-compact.d.ts +20 -20
- package/dist/src/tiles/list/tile-list-compact.js +87 -87
- package/dist/src/tiles/list/tile-list.d.ts +50 -50
- package/dist/src/tiles/list/tile-list.js +263 -263
- 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 +7 -7
- package/dist/src/tiles/overlay/icon-overlay.js +31 -31
- package/dist/src/tiles/overlay/text-overlay.d.ts +8 -8
- package/dist/src/tiles/overlay/text-overlay.js +31 -31
- package/dist/src/tiles/text-snippet-block.d.ts +29 -29
- package/dist/src/tiles/text-snippet-block.js +81 -81
- package/dist/src/tiles/text-snippet-block.js.map +1 -1
- package/dist/src/tiles/tile-dispatcher.d.ts +36 -36
- package/dist/src/tiles/tile-dispatcher.js +128 -128
- package/dist/src/utils/analytics-events.d.ts +18 -18
- package/dist/src/utils/analytics-events.js +20 -20
- package/dist/src/utils/format-count.d.ts +7 -7
- package/dist/src/utils/format-count.js +75 -75
- package/dist/src/utils/format-date.d.ts +2 -2
- package/dist/src/utils/format-date.js +23 -23
- package/dist/test/collection-browser.test.d.ts +1 -1
- package/dist/test/collection-browser.test.js +328 -200
- package/dist/test/collection-browser.test.js.map +1 -1
- package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
- package/dist/test/collection-facets/facets-template.test.js +62 -62
- package/dist/test/collection-facets/facets-util.test.d.ts +1 -1
- package/dist/test/collection-facets/facets-util.test.js +12 -12
- package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
- package/dist/test/collection-facets/more-facets-content.test.js +92 -91
- package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
- 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.test.d.ts +2 -2
- package/dist/test/collection-facets.test.js +182 -181
- package/dist/test/collection-facets.test.js.map +1 -1
- package/dist/test/empty-placeholder.test.d.ts +1 -1
- package/dist/test/empty-placeholder.test.js +33 -33
- package/dist/test/icon-overlay.test.d.ts +1 -1
- package/dist/test/icon-overlay.test.js +24 -24
- package/dist/test/item-image.test.d.ts +1 -1
- package/dist/test/item-image.test.js +56 -56
- 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 +7 -7
- package/dist/test/mocks/mock-collection-name-cache.js +13 -13
- package/dist/test/mocks/mock-search-responses.d.ts +5 -4
- package/dist/test/mocks/mock-search-responses.js +103 -57
- package/dist/test/mocks/mock-search-responses.js.map +1 -1
- package/dist/test/mocks/mock-search-service.d.ts +13 -8
- package/dist/test/mocks/mock-search-service.js +25 -19
- package/dist/test/mocks/mock-search-service.js.map +1 -1
- 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 +113 -113
- package/dist/test/text-overlay.test.d.ts +1 -1
- package/dist/test/text-overlay.test.js +41 -41
- package/dist/test/text-snippet-block.test.d.ts +1 -1
- package/dist/test/text-snippet-block.test.js +57 -45
- package/dist/test/text-snippet-block.test.js.map +1 -1
- package/dist/test/tile-stats.test.d.ts +1 -1
- package/dist/test/tile-stats.test.js +33 -33
- package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/item-tile.test.js +107 -107
- package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
- package/dist/test/tiles/list/tile-list.test.js +36 -36
- 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/index.html +24 -24
- package/local.archive.org.cert +86 -86
- package/local.archive.org.key +27 -27
- package/package.json +115 -115
- package/renovate.json +6 -6
- package/src/app-root.ts +49 -11
- package/src/collection-browser.ts +76 -86
- package/src/collection-facets/more-facets-content.ts +35 -27
- package/src/collection-facets.ts +9 -26
- package/src/models.ts +2 -0
- package/src/tiles/text-snippet-block.ts +1 -1
- package/test/collection-browser.test.ts +192 -0
- package/test/collection-facets/more-facets-content.test.ts +5 -5
- package/test/collection-facets.test.ts +16 -15
- package/test/mocks/mock-search-responses.ts +83 -34
- package/test/mocks/mock-search-service.ts +27 -17
- package/test/text-snippet-block.test.ts +17 -0
- package/tsconfig.json +21 -21
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { css, html, LitElement, nothing, } from 'lit';
|
|
3
|
-
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
4
|
-
import { join } from 'lit/directives/join.js';
|
|
5
|
-
import { map } from 'lit/directives/map.js';
|
|
6
|
-
import { customElement, property, state } from 'lit/decorators.js';
|
|
7
|
-
import DOMPurify from 'dompurify';
|
|
8
|
-
import { dateLabel } from './date-label';
|
|
9
|
-
import { accountLabel } from './account-label';
|
|
10
|
-
import { formatCount } from '../../utils/format-count';
|
|
11
|
-
import { formatDate } from '../../utils/format-date';
|
|
12
|
-
import '../image-block';
|
|
13
|
-
import '../mediatype-icon';
|
|
14
|
-
let TileList = class TileList extends LitElement {
|
|
15
|
-
constructor() {
|
|
16
|
-
super(...arguments);
|
|
17
|
-
this.sortParam = null;
|
|
18
|
-
this.collectionLinks = [];
|
|
19
|
-
this.loggedIn = false;
|
|
20
|
-
}
|
|
21
|
-
updated(changed) {
|
|
22
|
-
if (changed.has('model')) {
|
|
23
|
-
this.fetchCollectionNames();
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
async fetchCollectionNames() {
|
|
27
|
-
var _a, _b;
|
|
28
|
-
if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.collections) ||
|
|
29
|
-
this.model.collections.length === 0 ||
|
|
30
|
-
!this.collectionNameCache) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
// Note: quirk of Lit: need to replace collectionLinks array,
|
|
34
|
-
// otherwise it will not re-render. Can't simply alter the array.
|
|
35
|
-
this.collectionLinks = [];
|
|
36
|
-
const newCollellectionLinks = [];
|
|
37
|
-
const promises = [];
|
|
38
|
-
for (const collection of this.model.collections) {
|
|
39
|
-
promises.push((_b = this.collectionNameCache) === null || _b === void 0 ? void 0 : _b.collectionNameFor(collection).then(name => {
|
|
40
|
-
newCollellectionLinks.push(this.detailsLink(collection, name !== null && name !== void 0 ? name : collection));
|
|
41
|
-
}));
|
|
42
|
-
}
|
|
43
|
-
await Promise.all(promises);
|
|
44
|
-
this.collectionLinks = newCollellectionLinks;
|
|
45
|
-
}
|
|
46
|
-
render() {
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { css, html, LitElement, nothing, } from 'lit';
|
|
3
|
+
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
4
|
+
import { join } from 'lit/directives/join.js';
|
|
5
|
+
import { map } from 'lit/directives/map.js';
|
|
6
|
+
import { customElement, property, state } from 'lit/decorators.js';
|
|
7
|
+
import DOMPurify from 'dompurify';
|
|
8
|
+
import { dateLabel } from './date-label';
|
|
9
|
+
import { accountLabel } from './account-label';
|
|
10
|
+
import { formatCount } from '../../utils/format-count';
|
|
11
|
+
import { formatDate } from '../../utils/format-date';
|
|
12
|
+
import '../image-block';
|
|
13
|
+
import '../mediatype-icon';
|
|
14
|
+
let TileList = class TileList extends LitElement {
|
|
15
|
+
constructor() {
|
|
16
|
+
super(...arguments);
|
|
17
|
+
this.sortParam = null;
|
|
18
|
+
this.collectionLinks = [];
|
|
19
|
+
this.loggedIn = false;
|
|
20
|
+
}
|
|
21
|
+
updated(changed) {
|
|
22
|
+
if (changed.has('model')) {
|
|
23
|
+
this.fetchCollectionNames();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
async fetchCollectionNames() {
|
|
27
|
+
var _a, _b;
|
|
28
|
+
if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.collections) ||
|
|
29
|
+
this.model.collections.length === 0 ||
|
|
30
|
+
!this.collectionNameCache) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
// Note: quirk of Lit: need to replace collectionLinks array,
|
|
34
|
+
// otherwise it will not re-render. Can't simply alter the array.
|
|
35
|
+
this.collectionLinks = [];
|
|
36
|
+
const newCollellectionLinks = [];
|
|
37
|
+
const promises = [];
|
|
38
|
+
for (const collection of this.model.collections) {
|
|
39
|
+
promises.push((_b = this.collectionNameCache) === null || _b === void 0 ? void 0 : _b.collectionNameFor(collection).then(name => {
|
|
40
|
+
newCollellectionLinks.push(this.detailsLink(collection, name !== null && name !== void 0 ? name : collection));
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
43
|
+
await Promise.all(promises);
|
|
44
|
+
this.collectionLinks = newCollellectionLinks;
|
|
45
|
+
}
|
|
46
|
+
render() {
|
|
47
47
|
return html `
|
|
48
48
|
<div id="list-line" class="${this.classSize}">
|
|
49
|
-
${this.classSize === 'mobile'
|
|
50
|
-
? this.mobileTemplate
|
|
49
|
+
${this.classSize === 'mobile'
|
|
50
|
+
? this.mobileTemplate
|
|
51
51
|
: this.desktopTemplate}
|
|
52
52
|
</div>
|
|
53
|
-
`;
|
|
54
|
-
}
|
|
55
|
-
get mobileTemplate() {
|
|
53
|
+
`;
|
|
54
|
+
}
|
|
55
|
+
get mobileTemplate() {
|
|
56
56
|
return html `
|
|
57
57
|
<div id="list-line-top">
|
|
58
58
|
<div id="list-line-left">${this.imageBlockTemplate}</div>
|
|
@@ -64,9 +64,9 @@ let TileList = class TileList extends LitElement {
|
|
|
64
64
|
</div>
|
|
65
65
|
</div>
|
|
66
66
|
<div id="list-line-bottom">${this.detailsTemplate}</div>
|
|
67
|
-
`;
|
|
68
|
-
}
|
|
69
|
-
get desktopTemplate() {
|
|
67
|
+
`;
|
|
68
|
+
}
|
|
69
|
+
get desktopTemplate() {
|
|
70
70
|
return html `
|
|
71
71
|
<div id="list-line-left">${this.imageBlockTemplate}</div>
|
|
72
72
|
<div id="list-line-right">
|
|
@@ -76,9 +76,9 @@ let TileList = class TileList extends LitElement {
|
|
|
76
76
|
</div>
|
|
77
77
|
${this.detailsTemplate}
|
|
78
78
|
</div>
|
|
79
|
-
`;
|
|
80
|
-
}
|
|
81
|
-
get imageBlockTemplate() {
|
|
79
|
+
`;
|
|
80
|
+
}
|
|
81
|
+
get imageBlockTemplate() {
|
|
82
82
|
return html `
|
|
83
83
|
<image-block
|
|
84
84
|
.model=${this.model}
|
|
@@ -88,9 +88,9 @@ let TileList = class TileList extends LitElement {
|
|
|
88
88
|
.viewSize=${this.classSize}
|
|
89
89
|
>
|
|
90
90
|
</image-block>
|
|
91
|
-
`;
|
|
92
|
-
}
|
|
93
|
-
get detailsTemplate() {
|
|
91
|
+
`;
|
|
92
|
+
}
|
|
93
|
+
get detailsTemplate() {
|
|
94
94
|
return html `
|
|
95
95
|
${this.itemLineTemplate} ${this.creatorTemplate}
|
|
96
96
|
<div id="dates-line">
|
|
@@ -101,11 +101,11 @@ let TileList = class TileList extends LitElement {
|
|
|
101
101
|
</div>
|
|
102
102
|
${this.topicsTemplate} ${this.collectionsTemplate}
|
|
103
103
|
${this.descriptionTemplate} ${this.textSnippetsTemplate}
|
|
104
|
-
`;
|
|
105
|
-
}
|
|
106
|
-
// Data templates
|
|
107
|
-
get iconRightTemplate() {
|
|
108
|
-
var _a, _b;
|
|
104
|
+
`;
|
|
105
|
+
}
|
|
106
|
+
// Data templates
|
|
107
|
+
get iconRightTemplate() {
|
|
108
|
+
var _a, _b;
|
|
109
109
|
return html `
|
|
110
110
|
<div id="icon-right">
|
|
111
111
|
<mediatype-icon
|
|
@@ -114,203 +114,203 @@ let TileList = class TileList extends LitElement {
|
|
|
114
114
|
>
|
|
115
115
|
</mediatype-icon>
|
|
116
116
|
</div>
|
|
117
|
-
`;
|
|
118
|
-
}
|
|
119
|
-
get titleTemplate() {
|
|
120
|
-
var _a;
|
|
121
|
-
if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.title)) {
|
|
122
|
-
return nothing;
|
|
123
|
-
}
|
|
124
|
-
return html ` ${this.detailsLink(this.model.identifier, this.model.title)} `;
|
|
125
|
-
}
|
|
126
|
-
get itemLineTemplate() {
|
|
127
|
-
const source = this.sourceTemplate;
|
|
128
|
-
const volume = this.volumeTemplate;
|
|
129
|
-
const issue = this.issueTemplate;
|
|
130
|
-
if (!source && !volume && !issue) {
|
|
131
|
-
return nothing;
|
|
132
|
-
}
|
|
133
|
-
return html ` <div id="item-line">${source} ${volume} ${issue}</div> `;
|
|
134
|
-
}
|
|
135
|
-
get sourceTemplate() {
|
|
136
|
-
var _a;
|
|
137
|
-
if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.source)) {
|
|
138
|
-
return nothing;
|
|
139
|
-
}
|
|
117
|
+
`;
|
|
118
|
+
}
|
|
119
|
+
get titleTemplate() {
|
|
120
|
+
var _a;
|
|
121
|
+
if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.title)) {
|
|
122
|
+
return nothing;
|
|
123
|
+
}
|
|
124
|
+
return html ` ${this.detailsLink(this.model.identifier, this.model.title)} `;
|
|
125
|
+
}
|
|
126
|
+
get itemLineTemplate() {
|
|
127
|
+
const source = this.sourceTemplate;
|
|
128
|
+
const volume = this.volumeTemplate;
|
|
129
|
+
const issue = this.issueTemplate;
|
|
130
|
+
if (!source && !volume && !issue) {
|
|
131
|
+
return nothing;
|
|
132
|
+
}
|
|
133
|
+
return html ` <div id="item-line">${source} ${volume} ${issue}</div> `;
|
|
134
|
+
}
|
|
135
|
+
get sourceTemplate() {
|
|
136
|
+
var _a;
|
|
137
|
+
if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.source)) {
|
|
138
|
+
return nothing;
|
|
139
|
+
}
|
|
140
140
|
return html `
|
|
141
141
|
<div id="source" class="metadata">
|
|
142
142
|
${this.labelTemplate('Source')}
|
|
143
143
|
${this.searchLink('source', this.model.source)}
|
|
144
144
|
</div>
|
|
145
|
-
`;
|
|
146
|
-
}
|
|
147
|
-
get volumeTemplate() {
|
|
148
|
-
var _a;
|
|
149
|
-
return this.metadataTemplate((_a = this.model) === null || _a === void 0 ? void 0 : _a.volume, 'Volume');
|
|
150
|
-
}
|
|
151
|
-
get issueTemplate() {
|
|
152
|
-
var _a;
|
|
153
|
-
return this.metadataTemplate((_a = this.model) === null || _a === void 0 ? void 0 : _a.issue, 'Issue');
|
|
154
|
-
}
|
|
155
|
-
get creatorTemplate() {
|
|
156
|
-
var _a, _b, _c;
|
|
157
|
-
// "Achivist since" if account
|
|
158
|
-
if (((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'account') {
|
|
145
|
+
`;
|
|
146
|
+
}
|
|
147
|
+
get volumeTemplate() {
|
|
148
|
+
var _a;
|
|
149
|
+
return this.metadataTemplate((_a = this.model) === null || _a === void 0 ? void 0 : _a.volume, 'Volume');
|
|
150
|
+
}
|
|
151
|
+
get issueTemplate() {
|
|
152
|
+
var _a;
|
|
153
|
+
return this.metadataTemplate((_a = this.model) === null || _a === void 0 ? void 0 : _a.issue, 'Issue');
|
|
154
|
+
}
|
|
155
|
+
get creatorTemplate() {
|
|
156
|
+
var _a, _b, _c;
|
|
157
|
+
// "Achivist since" if account
|
|
158
|
+
if (((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'account') {
|
|
159
159
|
return html `
|
|
160
160
|
<div id="creator" class="metadata">
|
|
161
161
|
<span class="label"> ${accountLabel((_b = this.model) === null || _b === void 0 ? void 0 : _b.dateAdded)} </span>
|
|
162
162
|
</div>
|
|
163
|
-
`;
|
|
164
|
-
}
|
|
165
|
-
// "Creator" if not account tile
|
|
166
|
-
if (!((_c = this.model) === null || _c === void 0 ? void 0 : _c.creators) || this.model.creators.length === 0) {
|
|
167
|
-
return nothing;
|
|
168
|
-
}
|
|
163
|
+
`;
|
|
164
|
+
}
|
|
165
|
+
// "Creator" if not account tile
|
|
166
|
+
if (!((_c = this.model) === null || _c === void 0 ? void 0 : _c.creators) || this.model.creators.length === 0) {
|
|
167
|
+
return nothing;
|
|
168
|
+
}
|
|
169
169
|
return html `
|
|
170
170
|
<div id="creator" class="metadata">
|
|
171
171
|
${this.labelTemplate('By')}
|
|
172
172
|
${join(map(this.model.creators, id => this.searchLink('creator', id)), html `, `)}
|
|
173
173
|
</div>
|
|
174
|
-
`;
|
|
175
|
-
}
|
|
176
|
-
get datePublishedTemplate() {
|
|
177
|
-
var _a;
|
|
178
|
-
return this.metadataTemplate(formatDate((_a = this.model) === null || _a === void 0 ? void 0 : _a.datePublished, 'long'), 'Published');
|
|
179
|
-
}
|
|
180
|
-
// Show date label/value when sorted by date type
|
|
181
|
-
// Except datePublished which is always shown
|
|
182
|
-
get dateSortByTemplate() {
|
|
183
|
-
if (this.sortParam &&
|
|
184
|
-
(this.sortParam.field === 'addeddate' ||
|
|
185
|
-
this.sortParam.field === 'reviewdate' ||
|
|
186
|
-
this.sortParam.field === 'publicdate')) {
|
|
187
|
-
return this.metadataTemplate(formatDate(this.date, 'long'), dateLabel(this.sortParam.field));
|
|
188
|
-
}
|
|
189
|
-
return nothing;
|
|
190
|
-
}
|
|
191
|
-
get viewsTemplate() {
|
|
192
|
-
var _a, _b;
|
|
193
|
-
return this.metadataTemplate(`${formatCount((_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a.viewCount) !== null && _b !== void 0 ? _b : 0, this.formatSize)}`, 'Views');
|
|
194
|
-
}
|
|
195
|
-
get ratingTemplate() {
|
|
196
|
-
var _a;
|
|
197
|
-
return this.metadataTemplate((_a = this.model) === null || _a === void 0 ? void 0 : _a.averageRating, 'Avg Rating');
|
|
198
|
-
}
|
|
199
|
-
get reviewsTemplate() {
|
|
200
|
-
var _a;
|
|
201
|
-
return this.metadataTemplate((_a = this.model) === null || _a === void 0 ? void 0 : _a.commentCount, 'Reviews');
|
|
202
|
-
}
|
|
203
|
-
get topicsTemplate() {
|
|
204
|
-
var _a;
|
|
205
|
-
if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.subjects) || this.model.subjects.length === 0) {
|
|
206
|
-
return nothing;
|
|
207
|
-
}
|
|
174
|
+
`;
|
|
175
|
+
}
|
|
176
|
+
get datePublishedTemplate() {
|
|
177
|
+
var _a;
|
|
178
|
+
return this.metadataTemplate(formatDate((_a = this.model) === null || _a === void 0 ? void 0 : _a.datePublished, 'long'), 'Published');
|
|
179
|
+
}
|
|
180
|
+
// Show date label/value when sorted by date type
|
|
181
|
+
// Except datePublished which is always shown
|
|
182
|
+
get dateSortByTemplate() {
|
|
183
|
+
if (this.sortParam &&
|
|
184
|
+
(this.sortParam.field === 'addeddate' ||
|
|
185
|
+
this.sortParam.field === 'reviewdate' ||
|
|
186
|
+
this.sortParam.field === 'publicdate')) {
|
|
187
|
+
return this.metadataTemplate(formatDate(this.date, 'long'), dateLabel(this.sortParam.field));
|
|
188
|
+
}
|
|
189
|
+
return nothing;
|
|
190
|
+
}
|
|
191
|
+
get viewsTemplate() {
|
|
192
|
+
var _a, _b;
|
|
193
|
+
return this.metadataTemplate(`${formatCount((_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a.viewCount) !== null && _b !== void 0 ? _b : 0, this.formatSize)}`, 'Views');
|
|
194
|
+
}
|
|
195
|
+
get ratingTemplate() {
|
|
196
|
+
var _a;
|
|
197
|
+
return this.metadataTemplate((_a = this.model) === null || _a === void 0 ? void 0 : _a.averageRating, 'Avg Rating');
|
|
198
|
+
}
|
|
199
|
+
get reviewsTemplate() {
|
|
200
|
+
var _a;
|
|
201
|
+
return this.metadataTemplate((_a = this.model) === null || _a === void 0 ? void 0 : _a.commentCount, 'Reviews');
|
|
202
|
+
}
|
|
203
|
+
get topicsTemplate() {
|
|
204
|
+
var _a;
|
|
205
|
+
if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.subjects) || this.model.subjects.length === 0) {
|
|
206
|
+
return nothing;
|
|
207
|
+
}
|
|
208
208
|
return html `
|
|
209
209
|
<div id="topics" class="metadata">
|
|
210
210
|
${this.labelTemplate('Topics')}
|
|
211
211
|
${join(map(this.model.subjects, id => this.searchLink('subject', id)), html `, `)}
|
|
212
212
|
</div>
|
|
213
|
-
`;
|
|
214
|
-
}
|
|
215
|
-
get collectionsTemplate() {
|
|
216
|
-
if (!this.collectionLinks || this.collectionLinks.length === 0) {
|
|
217
|
-
return nothing;
|
|
218
|
-
}
|
|
213
|
+
`;
|
|
214
|
+
}
|
|
215
|
+
get collectionsTemplate() {
|
|
216
|
+
if (!this.collectionLinks || this.collectionLinks.length === 0) {
|
|
217
|
+
return nothing;
|
|
218
|
+
}
|
|
219
219
|
return html `
|
|
220
220
|
<div id="collections" class="metadata">
|
|
221
221
|
${this.labelTemplate('Collections')}
|
|
222
222
|
${join(this.collectionLinks, html `, `)}
|
|
223
223
|
</div>
|
|
224
|
-
`;
|
|
225
|
-
}
|
|
226
|
-
get descriptionTemplate() {
|
|
227
|
-
var _a, _b;
|
|
228
|
-
return this.metadataTemplate(DOMPurify.sanitize((_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : ''), '', 'description');
|
|
229
|
-
}
|
|
230
|
-
get textSnippetsTemplate() {
|
|
231
|
-
var _a;
|
|
232
|
-
if (!this.hasSnippets)
|
|
233
|
-
return nothing;
|
|
224
|
+
`;
|
|
225
|
+
}
|
|
226
|
+
get descriptionTemplate() {
|
|
227
|
+
var _a, _b;
|
|
228
|
+
return this.metadataTemplate(DOMPurify.sanitize((_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : ''), '', 'description');
|
|
229
|
+
}
|
|
230
|
+
get textSnippetsTemplate() {
|
|
231
|
+
var _a;
|
|
232
|
+
if (!this.hasSnippets)
|
|
233
|
+
return nothing;
|
|
234
234
|
return html `<text-snippet-block
|
|
235
235
|
viewsize="list"
|
|
236
236
|
.snippets=${(_a = this.model) === null || _a === void 0 ? void 0 : _a.snippets}
|
|
237
|
-
></text-snippet-block>`;
|
|
238
|
-
}
|
|
239
|
-
get hasSnippets() {
|
|
240
|
-
var _a, _b;
|
|
241
|
-
return !!((_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a.snippets) === null || _b === void 0 ? void 0 : _b.length);
|
|
242
|
-
}
|
|
243
|
-
// Utility functions
|
|
244
|
-
metadataTemplate(text, label = '', id) {
|
|
245
|
-
if (!text)
|
|
246
|
-
return nothing;
|
|
237
|
+
></text-snippet-block>`;
|
|
238
|
+
}
|
|
239
|
+
get hasSnippets() {
|
|
240
|
+
var _a, _b;
|
|
241
|
+
return !!((_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a.snippets) === null || _b === void 0 ? void 0 : _b.length);
|
|
242
|
+
}
|
|
243
|
+
// Utility functions
|
|
244
|
+
metadataTemplate(text, label = '', id) {
|
|
245
|
+
if (!text)
|
|
246
|
+
return nothing;
|
|
247
247
|
return html `
|
|
248
248
|
<div id=${ifDefined(id)} class="metadata">
|
|
249
249
|
${this.labelTemplate(label)} ${text}
|
|
250
250
|
</div>
|
|
251
|
-
`;
|
|
252
|
-
}
|
|
253
|
-
labelTemplate(label) {
|
|
254
|
-
return html ` ${label
|
|
255
|
-
? html `<span class="label">${label}: </span>`
|
|
256
|
-
: nothing}`;
|
|
257
|
-
}
|
|
258
|
-
searchLink(field, searchTerm) {
|
|
259
|
-
if (!field || !searchTerm) {
|
|
260
|
-
return nothing;
|
|
261
|
-
}
|
|
262
|
-
const query = encodeURIComponent(`${field}:"${searchTerm}"`);
|
|
263
|
-
// No whitespace after closing tag
|
|
264
|
-
// Note: single ' for href='' to wrap " in query var gets changed back by yarn format
|
|
265
|
-
// eslint-disable-next-line lit/no-invalid-html
|
|
251
|
+
`;
|
|
252
|
+
}
|
|
253
|
+
labelTemplate(label) {
|
|
254
|
+
return html ` ${label
|
|
255
|
+
? html `<span class="label">${label}: </span>`
|
|
256
|
+
: nothing}`;
|
|
257
|
+
}
|
|
258
|
+
searchLink(field, searchTerm) {
|
|
259
|
+
if (!field || !searchTerm) {
|
|
260
|
+
return nothing;
|
|
261
|
+
}
|
|
262
|
+
const query = encodeURIComponent(`${field}:"${searchTerm}"`);
|
|
263
|
+
// No whitespace after closing tag
|
|
264
|
+
// Note: single ' for href='' to wrap " in query var gets changed back by yarn format
|
|
265
|
+
// eslint-disable-next-line lit/no-invalid-html
|
|
266
266
|
return html `<a href="${this.baseNavigationUrl}/search.php?query=${query}">
|
|
267
267
|
${DOMPurify.sanitize(searchTerm)}</a
|
|
268
|
-
>`;
|
|
269
|
-
}
|
|
270
|
-
detailsLink(identifier, text) {
|
|
271
|
-
const linkText = text !== null && text !== void 0 ? text : identifier;
|
|
272
|
-
// No whitespace after closing tag
|
|
273
|
-
// identifiers (all ASCII in their creation) should be safe to use in href, but sanitize anyway
|
|
268
|
+
>`;
|
|
269
|
+
}
|
|
270
|
+
detailsLink(identifier, text) {
|
|
271
|
+
const linkText = text !== null && text !== void 0 ? text : identifier;
|
|
272
|
+
// No whitespace after closing tag
|
|
273
|
+
// identifiers (all ASCII in their creation) should be safe to use in href, but sanitize anyway
|
|
274
274
|
return html `<a
|
|
275
275
|
href="${this.baseNavigationUrl}/details/${encodeURI(identifier)}"
|
|
276
276
|
>${DOMPurify.sanitize(linkText)}</a
|
|
277
|
-
>`;
|
|
278
|
-
}
|
|
279
|
-
/*
|
|
280
|
-
* TODO: fix field names to match model in src/collection-browser.ts
|
|
281
|
-
* private get dateSortSelector()
|
|
282
|
-
* @see src/models.ts
|
|
283
|
-
*/
|
|
284
|
-
get date() {
|
|
285
|
-
var _a, _b, _c, _d, _e;
|
|
286
|
-
switch ((_a = this.sortParam) === null || _a === void 0 ? void 0 : _a.field) {
|
|
287
|
-
case 'date':
|
|
288
|
-
return (_b = this.model) === null || _b === void 0 ? void 0 : _b.datePublished;
|
|
289
|
-
case 'reviewdate':
|
|
290
|
-
return (_c = this.model) === null || _c === void 0 ? void 0 : _c.dateReviewed;
|
|
291
|
-
case 'addeddate':
|
|
292
|
-
return (_d = this.model) === null || _d === void 0 ? void 0 : _d.dateAdded;
|
|
293
|
-
default:
|
|
294
|
-
return (_e = this.model) === null || _e === void 0 ? void 0 : _e.dateArchived; // publicdate
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
get classSize() {
|
|
298
|
-
if (this.mobileBreakpoint &&
|
|
299
|
-
this.currentWidth &&
|
|
300
|
-
this.currentWidth < this.mobileBreakpoint) {
|
|
301
|
-
return 'mobile';
|
|
302
|
-
}
|
|
303
|
-
return 'desktop';
|
|
304
|
-
}
|
|
305
|
-
get formatSize() {
|
|
306
|
-
if (this.mobileBreakpoint &&
|
|
307
|
-
this.currentWidth &&
|
|
308
|
-
this.currentWidth < this.mobileBreakpoint) {
|
|
309
|
-
return 'short';
|
|
310
|
-
}
|
|
311
|
-
return 'long';
|
|
312
|
-
}
|
|
313
|
-
static get styles() {
|
|
277
|
+
>`;
|
|
278
|
+
}
|
|
279
|
+
/*
|
|
280
|
+
* TODO: fix field names to match model in src/collection-browser.ts
|
|
281
|
+
* private get dateSortSelector()
|
|
282
|
+
* @see src/models.ts
|
|
283
|
+
*/
|
|
284
|
+
get date() {
|
|
285
|
+
var _a, _b, _c, _d, _e;
|
|
286
|
+
switch ((_a = this.sortParam) === null || _a === void 0 ? void 0 : _a.field) {
|
|
287
|
+
case 'date':
|
|
288
|
+
return (_b = this.model) === null || _b === void 0 ? void 0 : _b.datePublished;
|
|
289
|
+
case 'reviewdate':
|
|
290
|
+
return (_c = this.model) === null || _c === void 0 ? void 0 : _c.dateReviewed;
|
|
291
|
+
case 'addeddate':
|
|
292
|
+
return (_d = this.model) === null || _d === void 0 ? void 0 : _d.dateAdded;
|
|
293
|
+
default:
|
|
294
|
+
return (_e = this.model) === null || _e === void 0 ? void 0 : _e.dateArchived; // publicdate
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
get classSize() {
|
|
298
|
+
if (this.mobileBreakpoint &&
|
|
299
|
+
this.currentWidth &&
|
|
300
|
+
this.currentWidth < this.mobileBreakpoint) {
|
|
301
|
+
return 'mobile';
|
|
302
|
+
}
|
|
303
|
+
return 'desktop';
|
|
304
|
+
}
|
|
305
|
+
get formatSize() {
|
|
306
|
+
if (this.mobileBreakpoint &&
|
|
307
|
+
this.currentWidth &&
|
|
308
|
+
this.currentWidth < this.mobileBreakpoint) {
|
|
309
|
+
return 'short';
|
|
310
|
+
}
|
|
311
|
+
return 'long';
|
|
312
|
+
}
|
|
313
|
+
static get styles() {
|
|
314
314
|
return css `
|
|
315
315
|
html {
|
|
316
316
|
font-size: unset;
|
|
@@ -428,41 +428,41 @@ let TileList = class TileList extends LitElement {
|
|
|
428
428
|
flex-direction: row;
|
|
429
429
|
gap: 10px;
|
|
430
430
|
}
|
|
431
|
-
`;
|
|
432
|
-
}
|
|
433
|
-
};
|
|
434
|
-
__decorate([
|
|
435
|
-
property({ type: Object })
|
|
436
|
-
], TileList.prototype, "model", void 0);
|
|
437
|
-
__decorate([
|
|
438
|
-
property({ type: String })
|
|
439
|
-
], TileList.prototype, "baseNavigationUrl", void 0);
|
|
440
|
-
__decorate([
|
|
441
|
-
property({ type: Object })
|
|
442
|
-
], TileList.prototype, "collectionNameCache", void 0);
|
|
443
|
-
__decorate([
|
|
444
|
-
property({ type: Number })
|
|
445
|
-
], TileList.prototype, "currentWidth", void 0);
|
|
446
|
-
__decorate([
|
|
447
|
-
property({ type: Number })
|
|
448
|
-
], TileList.prototype, "currentHeight", void 0);
|
|
449
|
-
__decorate([
|
|
450
|
-
property({ type: Object })
|
|
451
|
-
], TileList.prototype, "sortParam", void 0);
|
|
452
|
-
__decorate([
|
|
453
|
-
property({ type: Number })
|
|
454
|
-
], TileList.prototype, "mobileBreakpoint", void 0);
|
|
455
|
-
__decorate([
|
|
456
|
-
state()
|
|
457
|
-
], TileList.prototype, "collectionLinks", void 0);
|
|
458
|
-
__decorate([
|
|
459
|
-
property({ type: String })
|
|
460
|
-
], TileList.prototype, "baseImageUrl", void 0);
|
|
461
|
-
__decorate([
|
|
462
|
-
property({ type: Boolean })
|
|
463
|
-
], TileList.prototype, "loggedIn", void 0);
|
|
464
|
-
TileList = __decorate([
|
|
465
|
-
customElement('tile-list')
|
|
466
|
-
], TileList);
|
|
467
|
-
export { TileList };
|
|
431
|
+
`;
|
|
432
|
+
}
|
|
433
|
+
};
|
|
434
|
+
__decorate([
|
|
435
|
+
property({ type: Object })
|
|
436
|
+
], TileList.prototype, "model", void 0);
|
|
437
|
+
__decorate([
|
|
438
|
+
property({ type: String })
|
|
439
|
+
], TileList.prototype, "baseNavigationUrl", void 0);
|
|
440
|
+
__decorate([
|
|
441
|
+
property({ type: Object })
|
|
442
|
+
], TileList.prototype, "collectionNameCache", void 0);
|
|
443
|
+
__decorate([
|
|
444
|
+
property({ type: Number })
|
|
445
|
+
], TileList.prototype, "currentWidth", void 0);
|
|
446
|
+
__decorate([
|
|
447
|
+
property({ type: Number })
|
|
448
|
+
], TileList.prototype, "currentHeight", void 0);
|
|
449
|
+
__decorate([
|
|
450
|
+
property({ type: Object })
|
|
451
|
+
], TileList.prototype, "sortParam", void 0);
|
|
452
|
+
__decorate([
|
|
453
|
+
property({ type: Number })
|
|
454
|
+
], TileList.prototype, "mobileBreakpoint", void 0);
|
|
455
|
+
__decorate([
|
|
456
|
+
state()
|
|
457
|
+
], TileList.prototype, "collectionLinks", void 0);
|
|
458
|
+
__decorate([
|
|
459
|
+
property({ type: String })
|
|
460
|
+
], TileList.prototype, "baseImageUrl", void 0);
|
|
461
|
+
__decorate([
|
|
462
|
+
property({ type: Boolean })
|
|
463
|
+
], TileList.prototype, "loggedIn", void 0);
|
|
464
|
+
TileList = __decorate([
|
|
465
|
+
customElement('tile-list')
|
|
466
|
+
], TileList);
|
|
467
|
+
export { TileList };
|
|
468
468
|
//# sourceMappingURL=tile-list.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { CSSResultGroup, LitElement } from 'lit';
|
|
2
|
-
export declare class MediatypeIcon extends LitElement {
|
|
3
|
-
mediatype: string | undefined;
|
|
4
|
-
collections: string[] | undefined;
|
|
5
|
-
showText: boolean;
|
|
6
|
-
private get displayMediatype();
|
|
7
|
-
render(): import("lit-html").TemplateResult<1>;
|
|
8
|
-
static get styles(): CSSResultGroup;
|
|
9
|
-
}
|
|
1
|
+
import { CSSResultGroup, LitElement } from 'lit';
|
|
2
|
+
export declare class MediatypeIcon extends LitElement {
|
|
3
|
+
mediatype: string | undefined;
|
|
4
|
+
collections: string[] | undefined;
|
|
5
|
+
showText: boolean;
|
|
6
|
+
private get displayMediatype();
|
|
7
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
8
|
+
static get styles(): CSSResultGroup;
|
|
9
|
+
}
|