@internetarchive/collection-browser 0.3.1 → 0.3.2-alpha.1
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 +43 -43
- package/dist/src/app-root.js +233 -233
- 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 +242 -236
- package/dist/src/collection-browser.js +1070 -1065
- 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/more-facets-content.d.ts +74 -74
- package/dist/src/collection-facets/more-facets-content.js +330 -330
- 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 +73 -71
- package/dist/src/collection-facets.js +368 -357
- 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 +97 -97
- package/dist/src/models.js +100 -100
- package/dist/src/restoration-state-handler.d.ts +45 -45
- package/dist/src/restoration-state-handler.js +220 -220
- 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 +264 -264
- 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/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 +76 -76
- 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 +318 -318
- 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/more-facets-content.test.d.ts +1 -1
- package/dist/test/collection-facets/more-facets-content.test.js +91 -91
- 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 +385 -385
- 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 -5
- package/dist/test/mocks/mock-search-responses.js +103 -103
- package/dist/test/mocks/mock-search-service.d.ts +13 -13
- package/dist/test/mocks/mock-search-service.js +25 -25
- package/dist/test/restoration-state-handler.test.d.ts +1 -1
- package/dist/test/restoration-state-handler.test.js +117 -117
- 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 -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/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/collection-browser.ts +9 -0
- package/src/collection-facets.ts +21 -8
- package/tsconfig.json +21 -21
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { css, html, LitElement } from 'lit';
|
|
3
|
-
import { customElement, property } from 'lit/decorators.js';
|
|
4
|
-
import { mediatypeConfig } from '../mediatype/mediatype-config';
|
|
5
|
-
let MediatypeIcon = class MediatypeIcon extends LitElement {
|
|
6
|
-
constructor() {
|
|
7
|
-
super(...arguments);
|
|
8
|
-
this.showText = false;
|
|
9
|
-
}
|
|
10
|
-
get displayMediatype() {
|
|
11
|
-
var _a, _b;
|
|
12
|
-
const tvIdentifier = ['tvnews', 'tvarchive', 'television'];
|
|
13
|
-
const radioIdentifier = ['radio', 'radioprogram'];
|
|
14
|
-
if (this.mediatype === 'movies' &&
|
|
15
|
-
((_a = this.collections) === null || _a === void 0 ? void 0 : _a.some(id => tvIdentifier.indexOf(id) >= 0))) {
|
|
16
|
-
return 'tv';
|
|
17
|
-
}
|
|
18
|
-
if (this.mediatype === 'audio' &&
|
|
19
|
-
((_b = this.collections) === null || _b === void 0 ? void 0 : _b.some(id => radioIdentifier.indexOf(id) >= 0))) {
|
|
20
|
-
return 'radio';
|
|
21
|
-
}
|
|
22
|
-
return this.mediatype || '';
|
|
23
|
-
}
|
|
24
|
-
render() {
|
|
25
|
-
const config = mediatypeConfig[this.displayMediatype];
|
|
26
|
-
if (!config) {
|
|
27
|
-
return html ``;
|
|
28
|
-
}
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { css, html, LitElement } from 'lit';
|
|
3
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
4
|
+
import { mediatypeConfig } from '../mediatype/mediatype-config';
|
|
5
|
+
let MediatypeIcon = class MediatypeIcon extends LitElement {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.showText = false;
|
|
9
|
+
}
|
|
10
|
+
get displayMediatype() {
|
|
11
|
+
var _a, _b;
|
|
12
|
+
const tvIdentifier = ['tvnews', 'tvarchive', 'television'];
|
|
13
|
+
const radioIdentifier = ['radio', 'radioprogram'];
|
|
14
|
+
if (this.mediatype === 'movies' &&
|
|
15
|
+
((_a = this.collections) === null || _a === void 0 ? void 0 : _a.some(id => tvIdentifier.indexOf(id) >= 0))) {
|
|
16
|
+
return 'tv';
|
|
17
|
+
}
|
|
18
|
+
if (this.mediatype === 'audio' &&
|
|
19
|
+
((_b = this.collections) === null || _b === void 0 ? void 0 : _b.some(id => radioIdentifier.indexOf(id) >= 0))) {
|
|
20
|
+
return 'radio';
|
|
21
|
+
}
|
|
22
|
+
return this.mediatype || '';
|
|
23
|
+
}
|
|
24
|
+
render() {
|
|
25
|
+
const config = mediatypeConfig[this.displayMediatype];
|
|
26
|
+
if (!config) {
|
|
27
|
+
return html ``;
|
|
28
|
+
}
|
|
29
29
|
return html `
|
|
30
30
|
<div
|
|
31
31
|
id="icon"
|
|
@@ -35,9 +35,9 @@ let MediatypeIcon = class MediatypeIcon extends LitElement {
|
|
|
35
35
|
${config.icon}
|
|
36
36
|
<p class="status-text">${config.text}</p>
|
|
37
37
|
</div>
|
|
38
|
-
`;
|
|
39
|
-
}
|
|
40
|
-
static get styles() {
|
|
38
|
+
`;
|
|
39
|
+
}
|
|
40
|
+
static get styles() {
|
|
41
41
|
return css `
|
|
42
42
|
#icon {
|
|
43
43
|
height: var(--iconHeight, 25px);
|
|
@@ -63,20 +63,20 @@ let MediatypeIcon = class MediatypeIcon extends LitElement {
|
|
|
63
63
|
.fill-color {
|
|
64
64
|
fill: var(--iconFillColor, '#000000');
|
|
65
65
|
}
|
|
66
|
-
`;
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
__decorate([
|
|
70
|
-
property({ type: String })
|
|
71
|
-
], MediatypeIcon.prototype, "mediatype", void 0);
|
|
72
|
-
__decorate([
|
|
73
|
-
property({ type: Array })
|
|
74
|
-
], MediatypeIcon.prototype, "collections", void 0);
|
|
75
|
-
__decorate([
|
|
76
|
-
property({ type: Boolean })
|
|
77
|
-
], MediatypeIcon.prototype, "showText", void 0);
|
|
78
|
-
MediatypeIcon = __decorate([
|
|
79
|
-
customElement('mediatype-icon')
|
|
80
|
-
], MediatypeIcon);
|
|
81
|
-
export { MediatypeIcon };
|
|
66
|
+
`;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
__decorate([
|
|
70
|
+
property({ type: String })
|
|
71
|
+
], MediatypeIcon.prototype, "mediatype", void 0);
|
|
72
|
+
__decorate([
|
|
73
|
+
property({ type: Array })
|
|
74
|
+
], MediatypeIcon.prototype, "collections", void 0);
|
|
75
|
+
__decorate([
|
|
76
|
+
property({ type: Boolean })
|
|
77
|
+
], MediatypeIcon.prototype, "showText", void 0);
|
|
78
|
+
MediatypeIcon = __decorate([
|
|
79
|
+
customElement('mediatype-icon')
|
|
80
|
+
], MediatypeIcon);
|
|
81
|
+
export { MediatypeIcon };
|
|
82
82
|
//# sourceMappingURL=mediatype-icon.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { CSSResultGroup, LitElement } from 'lit';
|
|
2
|
-
export declare class IconOverlay extends LitElement {
|
|
3
|
-
loggedIn: boolean;
|
|
4
|
-
loginRequired: boolean;
|
|
5
|
-
render(): import("lit-html").TemplateResult<1>;
|
|
6
|
-
static get styles(): CSSResultGroup;
|
|
7
|
-
}
|
|
1
|
+
import { CSSResultGroup, LitElement } from 'lit';
|
|
2
|
+
export declare class IconOverlay extends LitElement {
|
|
3
|
+
loggedIn: boolean;
|
|
4
|
+
loginRequired: boolean;
|
|
5
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
6
|
+
static get styles(): CSSResultGroup;
|
|
7
|
+
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { css, html, LitElement } from 'lit';
|
|
3
|
-
import { customElement, property } from 'lit/decorators.js';
|
|
4
|
-
import { restrictedIcon } from '../../assets/img/icons/restricted';
|
|
5
|
-
import { loginRequiredIcon } from '../../assets/img/icons/login-required';
|
|
6
|
-
let IconOverlay = class IconOverlay extends LitElement {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.loggedIn = false;
|
|
10
|
-
this.loginRequired = false;
|
|
11
|
-
}
|
|
12
|
-
render() {
|
|
13
|
-
if (this.loginRequired && !this.loggedIn) {
|
|
14
|
-
return html `${loginRequiredIcon} `;
|
|
15
|
-
}
|
|
16
|
-
return html `${restrictedIcon}`;
|
|
17
|
-
}
|
|
18
|
-
static get styles() {
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { css, html, LitElement } from 'lit';
|
|
3
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
4
|
+
import { restrictedIcon } from '../../assets/img/icons/restricted';
|
|
5
|
+
import { loginRequiredIcon } from '../../assets/img/icons/login-required';
|
|
6
|
+
let IconOverlay = class IconOverlay extends LitElement {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.loggedIn = false;
|
|
10
|
+
this.loginRequired = false;
|
|
11
|
+
}
|
|
12
|
+
render() {
|
|
13
|
+
if (this.loginRequired && !this.loggedIn) {
|
|
14
|
+
return html `${loginRequiredIcon} `;
|
|
15
|
+
}
|
|
16
|
+
return html `${restrictedIcon}`;
|
|
17
|
+
}
|
|
18
|
+
static get styles() {
|
|
19
19
|
return css `
|
|
20
20
|
:host {
|
|
21
21
|
position: absolute;
|
|
@@ -27,17 +27,17 @@ let IconOverlay = class IconOverlay extends LitElement {
|
|
|
27
27
|
height: 50%;
|
|
28
28
|
z-index: 2;
|
|
29
29
|
}
|
|
30
|
-
`;
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
__decorate([
|
|
34
|
-
property({ type: Boolean })
|
|
35
|
-
], IconOverlay.prototype, "loggedIn", void 0);
|
|
36
|
-
__decorate([
|
|
37
|
-
property({ type: Boolean })
|
|
38
|
-
], IconOverlay.prototype, "loginRequired", void 0);
|
|
39
|
-
IconOverlay = __decorate([
|
|
40
|
-
customElement('icon-overlay')
|
|
41
|
-
], IconOverlay);
|
|
42
|
-
export { IconOverlay };
|
|
30
|
+
`;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
__decorate([
|
|
34
|
+
property({ type: Boolean })
|
|
35
|
+
], IconOverlay.prototype, "loggedIn", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
property({ type: Boolean })
|
|
38
|
+
], IconOverlay.prototype, "loginRequired", void 0);
|
|
39
|
+
IconOverlay = __decorate([
|
|
40
|
+
customElement('icon-overlay')
|
|
41
|
+
], IconOverlay);
|
|
42
|
+
export { IconOverlay };
|
|
43
43
|
//# sourceMappingURL=icon-overlay.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { CSSResultGroup, LitElement } from 'lit';
|
|
2
|
-
export declare class TextOverlay extends LitElement {
|
|
3
|
-
loggedIn: boolean;
|
|
4
|
-
loginRequired: boolean;
|
|
5
|
-
render(): import("lit-html").TemplateResult<1>;
|
|
6
|
-
private get textDisplay();
|
|
7
|
-
static get styles(): CSSResultGroup;
|
|
8
|
-
}
|
|
1
|
+
import { CSSResultGroup, LitElement } from 'lit';
|
|
2
|
+
export declare class TextOverlay extends LitElement {
|
|
3
|
+
loggedIn: boolean;
|
|
4
|
+
loginRequired: boolean;
|
|
5
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
6
|
+
private get textDisplay();
|
|
7
|
+
static get styles(): CSSResultGroup;
|
|
8
|
+
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { css, html, LitElement } from 'lit';
|
|
3
|
-
import { customElement, property } from 'lit/decorators.js';
|
|
4
|
-
let TextOverlay = class TextOverlay extends LitElement {
|
|
5
|
-
constructor() {
|
|
6
|
-
super(...arguments);
|
|
7
|
-
this.loggedIn = false;
|
|
8
|
-
this.loginRequired = false;
|
|
9
|
-
}
|
|
10
|
-
render() {
|
|
11
|
-
return html ` <div class="overlay no-preview">${this.textDisplay}</div> `;
|
|
12
|
-
}
|
|
13
|
-
get textDisplay() {
|
|
14
|
-
return this.loginRequired && !this.loggedIn
|
|
15
|
-
? 'Log in\nto view this item'
|
|
16
|
-
: 'Content may be inappropriate';
|
|
17
|
-
}
|
|
18
|
-
static get styles() {
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { css, html, LitElement } from 'lit';
|
|
3
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
4
|
+
let TextOverlay = class TextOverlay extends LitElement {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
7
|
+
this.loggedIn = false;
|
|
8
|
+
this.loginRequired = false;
|
|
9
|
+
}
|
|
10
|
+
render() {
|
|
11
|
+
return html ` <div class="overlay no-preview">${this.textDisplay}</div> `;
|
|
12
|
+
}
|
|
13
|
+
get textDisplay() {
|
|
14
|
+
return this.loginRequired && !this.loggedIn
|
|
15
|
+
? 'Log in\nto view this item'
|
|
16
|
+
: 'Content may be inappropriate';
|
|
17
|
+
}
|
|
18
|
+
static get styles() {
|
|
19
19
|
return css `
|
|
20
20
|
:host {
|
|
21
21
|
align-items: center;
|
|
@@ -41,17 +41,17 @@ let TextOverlay = class TextOverlay extends LitElement {
|
|
|
41
41
|
text-align: center;
|
|
42
42
|
white-space: pre-wrap; // for the newline character
|
|
43
43
|
}
|
|
44
|
-
`;
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
__decorate([
|
|
48
|
-
property({ type: Boolean })
|
|
49
|
-
], TextOverlay.prototype, "loggedIn", void 0);
|
|
50
|
-
__decorate([
|
|
51
|
-
property({ type: Boolean })
|
|
52
|
-
], TextOverlay.prototype, "loginRequired", void 0);
|
|
53
|
-
TextOverlay = __decorate([
|
|
54
|
-
customElement('text-overlay')
|
|
55
|
-
], TextOverlay);
|
|
56
|
-
export { TextOverlay };
|
|
44
|
+
`;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
__decorate([
|
|
48
|
+
property({ type: Boolean })
|
|
49
|
+
], TextOverlay.prototype, "loggedIn", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
property({ type: Boolean })
|
|
52
|
+
], TextOverlay.prototype, "loginRequired", void 0);
|
|
53
|
+
TextOverlay = __decorate([
|
|
54
|
+
customElement('text-overlay')
|
|
55
|
+
], TextOverlay);
|
|
56
|
+
export { TextOverlay };
|
|
57
57
|
//# sourceMappingURL=text-overlay.js.map
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { CSSResultGroup, LitElement, TemplateResult } from 'lit';
|
|
2
|
-
export declare class TextSnippetBlock extends LitElement {
|
|
3
|
-
snippets?: string[];
|
|
4
|
-
viewSize: string;
|
|
5
|
-
render(): TemplateResult<1>;
|
|
6
|
-
private get viewSizeClass();
|
|
7
|
-
private get containerClasses();
|
|
8
|
-
/**
|
|
9
|
-
* An array of HTML templates derived from the snippets, with ellipses inserted
|
|
10
|
-
* at the beginning, end, and between each pair of snippets.
|
|
11
|
-
*/
|
|
12
|
-
private get ellipsisJoinedSnippets();
|
|
13
|
-
/**
|
|
14
|
-
* Returns an array of HTML span templates containing this item's snippets with all of
|
|
15
|
-
* their `{{{triple-brace-delimited}}}` matches replaced by `<mark>HTML mark tags</mark>`.
|
|
16
|
-
*
|
|
17
|
-
* This approach safely avoids the use of `unsafeHTML` and leaves any existing HTML tags
|
|
18
|
-
* in the snippets intact (as inert text), rather than stripping them away with DOMPurify.
|
|
19
|
-
*
|
|
20
|
-
* Note on `<em>` vs. `<mark>`:
|
|
21
|
-
* The old search page snippets had search keywords demarcated with `<em>` tags.
|
|
22
|
-
* The `<mark>` tag is semantically more accurate for this use case than `<em>`,
|
|
23
|
-
* but screen-reader behavior may be different. `<em>` will likely be read in a
|
|
24
|
-
* different tone, while `<mark>` is often read no differently than ordinary text
|
|
25
|
-
* in many screen-readers (though there are ways to work around this if needed).
|
|
26
|
-
*/
|
|
27
|
-
private get snippetTemplates();
|
|
28
|
-
static get styles(): CSSResultGroup;
|
|
29
|
-
}
|
|
1
|
+
import { CSSResultGroup, LitElement, TemplateResult } from 'lit';
|
|
2
|
+
export declare class TextSnippetBlock extends LitElement {
|
|
3
|
+
snippets?: string[];
|
|
4
|
+
viewSize: string;
|
|
5
|
+
render(): TemplateResult<1>;
|
|
6
|
+
private get viewSizeClass();
|
|
7
|
+
private get containerClasses();
|
|
8
|
+
/**
|
|
9
|
+
* An array of HTML templates derived from the snippets, with ellipses inserted
|
|
10
|
+
* at the beginning, end, and between each pair of snippets.
|
|
11
|
+
*/
|
|
12
|
+
private get ellipsisJoinedSnippets();
|
|
13
|
+
/**
|
|
14
|
+
* Returns an array of HTML span templates containing this item's snippets with all of
|
|
15
|
+
* their `{{{triple-brace-delimited}}}` matches replaced by `<mark>HTML mark tags</mark>`.
|
|
16
|
+
*
|
|
17
|
+
* This approach safely avoids the use of `unsafeHTML` and leaves any existing HTML tags
|
|
18
|
+
* in the snippets intact (as inert text), rather than stripping them away with DOMPurify.
|
|
19
|
+
*
|
|
20
|
+
* Note on `<em>` vs. `<mark>`:
|
|
21
|
+
* The old search page snippets had search keywords demarcated with `<em>` tags.
|
|
22
|
+
* The `<mark>` tag is semantically more accurate for this use case than `<em>`,
|
|
23
|
+
* but screen-reader behavior may be different. `<em>` will likely be read in a
|
|
24
|
+
* different tone, while `<mark>` is often read no differently than ordinary text
|
|
25
|
+
* in many screen-readers (though there are ways to work around this if needed).
|
|
26
|
+
*/
|
|
27
|
+
private get snippetTemplates();
|
|
28
|
+
static get styles(): CSSResultGroup;
|
|
29
|
+
}
|
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { css, html, LitElement, nothing, } from 'lit';
|
|
3
|
-
import { customElement, property } from 'lit/decorators.js';
|
|
4
|
-
import { join } from 'lit/directives/join.js';
|
|
5
|
-
let TextSnippetBlock = class TextSnippetBlock extends LitElement {
|
|
6
|
-
constructor() {
|
|
7
|
-
super(...arguments);
|
|
8
|
-
this.snippets = [];
|
|
9
|
-
this.viewSize = 'desktop';
|
|
10
|
-
}
|
|
11
|
-
render() {
|
|
12
|
-
var _a;
|
|
13
|
-
if (!((_a = this.snippets) === null || _a === void 0 ? void 0 : _a.length))
|
|
14
|
-
return html `${nothing}`;
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { css, html, LitElement, nothing, } from 'lit';
|
|
3
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
4
|
+
import { join } from 'lit/directives/join.js';
|
|
5
|
+
let TextSnippetBlock = class TextSnippetBlock extends LitElement {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.snippets = [];
|
|
9
|
+
this.viewSize = 'desktop';
|
|
10
|
+
}
|
|
11
|
+
render() {
|
|
12
|
+
var _a;
|
|
13
|
+
if (!((_a = this.snippets) === null || _a === void 0 ? void 0 : _a.length))
|
|
14
|
+
return html `${nothing}`;
|
|
15
15
|
return html `
|
|
16
16
|
<div class="${this.containerClasses}">${this.ellipsisJoinedSnippets}</div>
|
|
17
17
|
|
|
18
|
-
${this.viewSize === 'grid'
|
|
19
|
-
? html `<div class="separator"></div>`
|
|
18
|
+
${this.viewSize === 'grid'
|
|
19
|
+
? html `<div class="separator"></div>`
|
|
20
20
|
: nothing}
|
|
21
|
-
`;
|
|
22
|
-
}
|
|
23
|
-
get viewSizeClass() {
|
|
24
|
-
return this.viewSize === 'grid' ? 'grid' : 'list';
|
|
25
|
-
}
|
|
26
|
-
get containerClasses() {
|
|
27
|
-
return `container ${this.viewSizeClass}`;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* An array of HTML templates derived from the snippets, with ellipses inserted
|
|
31
|
-
* at the beginning, end, and between each pair of snippets.
|
|
32
|
-
*/
|
|
33
|
-
get ellipsisJoinedSnippets() {
|
|
21
|
+
`;
|
|
22
|
+
}
|
|
23
|
+
get viewSizeClass() {
|
|
24
|
+
return this.viewSize === 'grid' ? 'grid' : 'list';
|
|
25
|
+
}
|
|
26
|
+
get containerClasses() {
|
|
27
|
+
return `container ${this.viewSizeClass}`;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* An array of HTML templates derived from the snippets, with ellipses inserted
|
|
31
|
+
* at the beginning, end, and between each pair of snippets.
|
|
32
|
+
*/
|
|
33
|
+
get ellipsisJoinedSnippets() {
|
|
34
34
|
return html `
|
|
35
35
|
… ${join(this.snippetTemplates, html ` … `)} …
|
|
36
|
-
`;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Returns an array of HTML span templates containing this item's snippets with all of
|
|
40
|
-
* their `{{{triple-brace-delimited}}}` matches replaced by `<mark>HTML mark tags</mark>`.
|
|
41
|
-
*
|
|
42
|
-
* This approach safely avoids the use of `unsafeHTML` and leaves any existing HTML tags
|
|
43
|
-
* in the snippets intact (as inert text), rather than stripping them away with DOMPurify.
|
|
44
|
-
*
|
|
45
|
-
* Note on `<em>` vs. `<mark>`:
|
|
46
|
-
* The old search page snippets had search keywords demarcated with `<em>` tags.
|
|
47
|
-
* The `<mark>` tag is semantically more accurate for this use case than `<em>`,
|
|
48
|
-
* but screen-reader behavior may be different. `<em>` will likely be read in a
|
|
49
|
-
* different tone, while `<mark>` is often read no differently than ordinary text
|
|
50
|
-
* in many screen-readers (though there are ways to work around this if needed).
|
|
51
|
-
*/
|
|
52
|
-
get snippetTemplates() {
|
|
53
|
-
var _a;
|
|
54
|
-
return (_a = this.snippets) === null || _a === void 0 ? void 0 : _a.map(s => {
|
|
55
|
-
const matches = s.matchAll(/{{{(.+?)}}}/gs);
|
|
56
|
-
const templates = [];
|
|
57
|
-
// Convert each match into an HTML template that includes:
|
|
58
|
-
// - Everything from the end of the previous match (or the beginning of the
|
|
59
|
-
// string) up to the current match, as raw text.
|
|
60
|
-
// - The current match (excluding the curly braces) wrapped in a `<mark>` tag.
|
|
61
|
-
let index = 0;
|
|
62
|
-
for (const match of matches) {
|
|
63
|
-
if (match.index != null) {
|
|
36
|
+
`;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Returns an array of HTML span templates containing this item's snippets with all of
|
|
40
|
+
* their `{{{triple-brace-delimited}}}` matches replaced by `<mark>HTML mark tags</mark>`.
|
|
41
|
+
*
|
|
42
|
+
* This approach safely avoids the use of `unsafeHTML` and leaves any existing HTML tags
|
|
43
|
+
* in the snippets intact (as inert text), rather than stripping them away with DOMPurify.
|
|
44
|
+
*
|
|
45
|
+
* Note on `<em>` vs. `<mark>`:
|
|
46
|
+
* The old search page snippets had search keywords demarcated with `<em>` tags.
|
|
47
|
+
* The `<mark>` tag is semantically more accurate for this use case than `<em>`,
|
|
48
|
+
* but screen-reader behavior may be different. `<em>` will likely be read in a
|
|
49
|
+
* different tone, while `<mark>` is often read no differently than ordinary text
|
|
50
|
+
* in many screen-readers (though there are ways to work around this if needed).
|
|
51
|
+
*/
|
|
52
|
+
get snippetTemplates() {
|
|
53
|
+
var _a;
|
|
54
|
+
return (_a = this.snippets) === null || _a === void 0 ? void 0 : _a.map(s => {
|
|
55
|
+
const matches = s.matchAll(/{{{(.+?)}}}/gs);
|
|
56
|
+
const templates = [];
|
|
57
|
+
// Convert each match into an HTML template that includes:
|
|
58
|
+
// - Everything from the end of the previous match (or the beginning of the
|
|
59
|
+
// string) up to the current match, as raw text.
|
|
60
|
+
// - The current match (excluding the curly braces) wrapped in a `<mark>` tag.
|
|
61
|
+
let index = 0;
|
|
62
|
+
for (const match of matches) {
|
|
63
|
+
if (match.index != null) {
|
|
64
64
|
templates.push(html `
|
|
65
65
|
${s.slice(index, match.index)}
|
|
66
66
|
<mark>${match[1]}</mark>
|
|
67
|
-
`);
|
|
68
|
-
index = match.index + match[0].length;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
// Include any text from the last match to the end
|
|
72
|
-
templates.push(html `${s.slice(index)}`);
|
|
73
|
-
// Squash everything into a single span template
|
|
74
|
-
return html `<span>${templates}</span>`;
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
static get styles() {
|
|
67
|
+
`);
|
|
68
|
+
index = match.index + match[0].length;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Include any text from the last match to the end
|
|
72
|
+
templates.push(html `${s.slice(index)}`);
|
|
73
|
+
// Squash everything into a single span template
|
|
74
|
+
return html `<span>${templates}</span>`;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
static get styles() {
|
|
78
78
|
return css `
|
|
79
79
|
.container {
|
|
80
80
|
display: -webkit-box;
|
|
@@ -112,17 +112,17 @@ let TextSnippetBlock = class TextSnippetBlock extends LitElement {
|
|
|
112
112
|
background-color: #0000ff33;
|
|
113
113
|
color: inherit;
|
|
114
114
|
}
|
|
115
|
-
`;
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
__decorate([
|
|
119
|
-
property({ type: Array })
|
|
120
|
-
], TextSnippetBlock.prototype, "snippets", void 0);
|
|
121
|
-
__decorate([
|
|
122
|
-
property({ type: String })
|
|
123
|
-
], TextSnippetBlock.prototype, "viewSize", void 0);
|
|
124
|
-
TextSnippetBlock = __decorate([
|
|
125
|
-
customElement('text-snippet-block')
|
|
126
|
-
], TextSnippetBlock);
|
|
127
|
-
export { TextSnippetBlock };
|
|
115
|
+
`;
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
__decorate([
|
|
119
|
+
property({ type: Array })
|
|
120
|
+
], TextSnippetBlock.prototype, "snippets", void 0);
|
|
121
|
+
__decorate([
|
|
122
|
+
property({ type: String })
|
|
123
|
+
], TextSnippetBlock.prototype, "viewSize", void 0);
|
|
124
|
+
TextSnippetBlock = __decorate([
|
|
125
|
+
customElement('text-snippet-block')
|
|
126
|
+
], TextSnippetBlock);
|
|
127
|
+
export { TextSnippetBlock };
|
|
128
128
|
//# sourceMappingURL=text-snippet-block.js.map
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import { LitElement, PropertyValues } from 'lit';
|
|
2
|
-
import type { SharedResizeObserverInterface, SharedResizeObserverResizeHandlerInterface } from '@internetarchive/shared-resize-observer';
|
|
3
|
-
import type { CollectionNameCacheInterface } from '@internetarchive/collection-name-cache';
|
|
4
|
-
import type { SortParam } from '@internetarchive/search-service';
|
|
5
|
-
import type { TileDisplayMode, TileModel } from '../models';
|
|
6
|
-
import './grid/collection-tile';
|
|
7
|
-
import './grid/item-tile';
|
|
8
|
-
import './grid/account-tile';
|
|
9
|
-
import './list/tile-list';
|
|
10
|
-
import './list/tile-list-compact';
|
|
11
|
-
import './list/tile-list-compact-header';
|
|
12
|
-
export declare class TileDispatcher extends LitElement implements SharedResizeObserverResizeHandlerInterface {
|
|
13
|
-
tileDisplayMode?: TileDisplayMode;
|
|
14
|
-
model?: TileModel;
|
|
15
|
-
baseNavigationUrl?: string;
|
|
16
|
-
currentWidth?: number;
|
|
17
|
-
currentHeight?: number;
|
|
18
|
-
resizeObserver?: SharedResizeObserverInterface;
|
|
19
|
-
collectionNameCache?: CollectionNameCacheInterface;
|
|
20
|
-
sortParam: SortParam | null;
|
|
21
|
-
private container;
|
|
22
|
-
mobileBreakpoint?: number;
|
|
23
|
-
baseImageUrl?: string;
|
|
24
|
-
loggedIn: boolean;
|
|
25
|
-
render(): import("lit-html").TemplateResult<1>;
|
|
26
|
-
private get headerTemplate();
|
|
27
|
-
private get tileTemplate();
|
|
28
|
-
private get linkTileTemplate();
|
|
29
|
-
handleResize(entry: ResizeObserverEntry): void;
|
|
30
|
-
disconnectedCallback(): void;
|
|
31
|
-
private stopResizeObservation;
|
|
32
|
-
private startResizeObservation;
|
|
33
|
-
updated(props: PropertyValues): void;
|
|
34
|
-
private get tile();
|
|
35
|
-
static get styles(): import("lit").CSSResult;
|
|
36
|
-
}
|
|
1
|
+
import { LitElement, PropertyValues } from 'lit';
|
|
2
|
+
import type { SharedResizeObserverInterface, SharedResizeObserverResizeHandlerInterface } from '@internetarchive/shared-resize-observer';
|
|
3
|
+
import type { CollectionNameCacheInterface } from '@internetarchive/collection-name-cache';
|
|
4
|
+
import type { SortParam } from '@internetarchive/search-service';
|
|
5
|
+
import type { TileDisplayMode, TileModel } from '../models';
|
|
6
|
+
import './grid/collection-tile';
|
|
7
|
+
import './grid/item-tile';
|
|
8
|
+
import './grid/account-tile';
|
|
9
|
+
import './list/tile-list';
|
|
10
|
+
import './list/tile-list-compact';
|
|
11
|
+
import './list/tile-list-compact-header';
|
|
12
|
+
export declare class TileDispatcher extends LitElement implements SharedResizeObserverResizeHandlerInterface {
|
|
13
|
+
tileDisplayMode?: TileDisplayMode;
|
|
14
|
+
model?: TileModel;
|
|
15
|
+
baseNavigationUrl?: string;
|
|
16
|
+
currentWidth?: number;
|
|
17
|
+
currentHeight?: number;
|
|
18
|
+
resizeObserver?: SharedResizeObserverInterface;
|
|
19
|
+
collectionNameCache?: CollectionNameCacheInterface;
|
|
20
|
+
sortParam: SortParam | null;
|
|
21
|
+
private container;
|
|
22
|
+
mobileBreakpoint?: number;
|
|
23
|
+
baseImageUrl?: string;
|
|
24
|
+
loggedIn: boolean;
|
|
25
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
26
|
+
private get headerTemplate();
|
|
27
|
+
private get tileTemplate();
|
|
28
|
+
private get linkTileTemplate();
|
|
29
|
+
handleResize(entry: ResizeObserverEntry): void;
|
|
30
|
+
disconnectedCallback(): void;
|
|
31
|
+
private stopResizeObservation;
|
|
32
|
+
private startResizeObservation;
|
|
33
|
+
updated(props: PropertyValues): void;
|
|
34
|
+
private get tile();
|
|
35
|
+
static get styles(): import("lit").CSSResult;
|
|
36
|
+
}
|