@internetarchive/collection-browser 0.4.11 → 0.4.12
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 +50 -50
- package/dist/src/app-root.js +278 -278
- 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 +280 -279
- package/dist/src/collection-browser.js +1175 -1156
- 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 +16 -16
- package/dist/src/collection-facets/facets-template.js +125 -125
- package/dist/src/collection-facets/more-facets-content.d.ts +76 -75
- package/dist/src/collection-facets/more-facets-content.js +354 -377
- 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 +197 -195
- package/dist/src/collection-facets/more-facets-pagination.js.map +1 -1
- package/dist/src/collection-facets/toggle-switch.d.ts +41 -0
- package/dist/src/collection-facets/toggle-switch.js +184 -0
- package/dist/src/collection-facets/toggle-switch.js.map +1 -0
- package/dist/src/collection-facets.d.ts +81 -81
- package/dist/src/collection-facets.js +375 -375
- package/dist/src/empty-placeholder.d.ts +13 -11
- package/dist/src/empty-placeholder.js +80 -44
- package/dist/src/empty-placeholder.js.map +1 -1
- 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 +115 -115
- package/dist/src/models.js +125 -125
- package/dist/src/restoration-state-handler.d.ts +45 -45
- package/dist/src/restoration-state-handler.js +230 -230
- 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 +20 -20
- 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-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 +108 -108
- package/dist/src/sort-filter-bar/sort-filter-bar.js +438 -438
- 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 +20 -20
- package/dist/src/tiles/grid/account-tile.js +64 -64
- package/dist/src/tiles/grid/collection-tile.d.ts +17 -17
- package/dist/src/tiles/grid/collection-tile.js +71 -71
- package/dist/src/tiles/grid/item-tile.d.ts +32 -32
- package/dist/src/tiles/grid/item-tile.js +122 -122
- 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 +7 -7
- package/dist/src/tiles/grid/tile-stats.d.ts +10 -10
- package/dist/src/tiles/grid/tile-stats.js +40 -40
- 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 +72 -72
- package/dist/src/tiles/item-image.d.ts +35 -35
- package/dist/src/tiles/item-image.js +117 -117
- 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 +22 -21
- package/dist/src/tiles/list/tile-list-compact.js +114 -101
- package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
- package/dist/src/tiles/list/tile-list.d.ts +55 -55
- package/dist/src/tiles/list/tile-list.js +304 -301
- package/dist/src/tiles/list/tile-list.js.map +1 -1
- 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 +58 -58
- package/dist/src/tiles/tile-dispatcher.js +194 -194
- package/dist/src/utils/analytics-events.d.ts +22 -22
- package/dist/src/utils/analytics-events.js +24 -24
- 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/src/utils/format-unit-size.d.ts +2 -2
- package/dist/src/utils/format-unit-size.js +33 -33
- package/dist/test/collection-browser.test.d.ts +1 -1
- package/dist/test/collection-browser.test.js +584 -584
- 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 +114 -114
- 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 -0
- package/dist/test/collection-facets/toggle-switch.test.js +87 -0
- package/dist/test/collection-facets/toggle-switch.test.js.map +1 -0
- package/dist/test/collection-facets.test.d.ts +2 -2
- package/dist/test/collection-facets.test.js +460 -460
- 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/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 +84 -84
- 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 +12 -12
- package/dist/test/mocks/mock-search-responses.js +341 -341
- package/dist/test/mocks/mock-search-service.d.ts +13 -13
- package/dist/test/mocks/mock-search-service.js +40 -40
- package/dist/test/restoration-state-handler.test.d.ts +1 -1
- package/dist/test/restoration-state-handler.test.js +125 -125
- 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 +197 -197
- 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 +158 -158
- package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
- package/dist/test/tiles/hover/hover-pane-controller.test.js +257 -257
- 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 +104 -92
- package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -1
- package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
- package/dist/test/tiles/list/tile-list.test.js +175 -163
- package/dist/test/tiles/list/tile-list.test.js.map +1 -1
- package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
- package/dist/test/tiles/tile-dispatcher.test.js +67 -67
- 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/local.archive.org.cert +86 -86
- package/local.archive.org.key +27 -27
- package/package.json +3 -3
- package/renovate.json +6 -6
- package/src/collection-browser.ts +25 -1
- package/src/collection-facets/more-facets-content.ts +25 -48
- package/src/collection-facets/more-facets-pagination.ts +5 -3
- package/src/collection-facets/toggle-switch.ts +184 -0
- package/src/empty-placeholder.ts +53 -7
- package/src/tiles/list/tile-list-compact.ts +15 -2
- package/src/tiles/list/tile-list.ts +3 -0
- package/test/collection-facets/toggle-switch.test.ts +154 -0
- package/test/tiles/list/tile-list-compact.test.ts +14 -0
- package/test/tiles/list/tile-list.test.ts +14 -0
- package/tsconfig.json +21 -21
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { LitElement, CSSResultGroup, nothing } from 'lit';
|
|
2
|
-
export declare type PlaceholderType = 'empty-query' | 'null-result' | null;
|
|
3
|
-
export declare class EmptyPlaceholder extends LitElement {
|
|
4
|
-
placeholderType: PlaceholderType;
|
|
5
|
-
isMobileView?: false;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
private get
|
|
9
|
-
private get
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { LitElement, CSSResultGroup, nothing, TemplateResult } from 'lit';
|
|
2
|
+
export declare type PlaceholderType = 'empty-query' | 'null-result' | 'query-error' | null;
|
|
3
|
+
export declare class EmptyPlaceholder extends LitElement {
|
|
4
|
+
placeholderType: PlaceholderType;
|
|
5
|
+
isMobileView?: false;
|
|
6
|
+
detailMessage?: string;
|
|
7
|
+
render(): TemplateResult<1> | typeof nothing;
|
|
8
|
+
private get placeholderTemplate();
|
|
9
|
+
private get emptyQueryTemplate();
|
|
10
|
+
private get nullResultTemplate();
|
|
11
|
+
private get queryErrorTemplate();
|
|
12
|
+
static get styles(): CSSResultGroup;
|
|
13
|
+
}
|
|
@@ -1,55 +1,82 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { css, html, LitElement, nothing } from 'lit';
|
|
3
|
-
import { customElement, property } from 'lit/decorators.js';
|
|
4
|
-
import { choose } from 'lit/directives/choose.js';
|
|
5
|
-
import emptyQueryIcon from './assets/img/icons/empty-query';
|
|
6
|
-
import nullResultIcon from './assets/img/icons/null-result';
|
|
7
|
-
let EmptyPlaceholder = class EmptyPlaceholder extends LitElement {
|
|
8
|
-
constructor() {
|
|
9
|
-
super(...arguments);
|
|
10
|
-
this.placeholderType = null;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { css, html, LitElement, nothing, } from 'lit';
|
|
3
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
4
|
+
import { choose } from 'lit/directives/choose.js';
|
|
5
|
+
import emptyQueryIcon from './assets/img/icons/empty-query';
|
|
6
|
+
import nullResultIcon from './assets/img/icons/null-result';
|
|
7
|
+
let EmptyPlaceholder = class EmptyPlaceholder extends LitElement {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.placeholderType = null;
|
|
11
|
+
this.detailMessage = '';
|
|
12
|
+
}
|
|
13
|
+
render() {
|
|
14
|
+
return this.placeholderType ? html `${this.placeholderTemplate}` : nothing;
|
|
15
|
+
}
|
|
16
|
+
get placeholderTemplate() {
|
|
16
17
|
return html `
|
|
17
18
|
<div
|
|
18
|
-
class="placeholder ${this.placeholderType} ${this.isMobileView
|
|
19
|
-
? 'mobile'
|
|
19
|
+
class="placeholder ${this.placeholderType} ${this.isMobileView
|
|
20
|
+
? 'mobile'
|
|
20
21
|
: 'desktop'}"
|
|
21
22
|
>
|
|
22
|
-
${choose(this.placeholderType, [
|
|
23
|
-
['empty-query', () => this.emptyQueryTemplate],
|
|
24
|
-
['null-result', () => this.nullResultTemplate],
|
|
23
|
+
${choose(this.placeholderType, [
|
|
24
|
+
['empty-query', () => this.emptyQueryTemplate],
|
|
25
|
+
['null-result', () => this.nullResultTemplate],
|
|
26
|
+
['query-error', () => this.queryErrorTemplate],
|
|
25
27
|
])}
|
|
26
28
|
</div>
|
|
27
|
-
`;
|
|
28
|
-
}
|
|
29
|
-
get emptyQueryTemplate() {
|
|
29
|
+
`;
|
|
30
|
+
}
|
|
31
|
+
get emptyQueryTemplate() {
|
|
30
32
|
return html `
|
|
31
33
|
<h2 class="title">
|
|
32
34
|
To begin searching, enter a search term in the box above and hit "Go".
|
|
33
35
|
</h2>
|
|
34
36
|
<div>${emptyQueryIcon}</div>
|
|
35
|
-
`;
|
|
36
|
-
}
|
|
37
|
-
get nullResultTemplate() {
|
|
37
|
+
`;
|
|
38
|
+
}
|
|
39
|
+
get nullResultTemplate() {
|
|
38
40
|
return html `
|
|
39
41
|
<h2 class="title">
|
|
40
42
|
Your search did not match any items in the Archive. Try different
|
|
41
43
|
keywords or a more general search.
|
|
42
44
|
</h2>
|
|
43
45
|
<div>${nullResultIcon}</div>
|
|
44
|
-
`;
|
|
45
|
-
}
|
|
46
|
-
|
|
46
|
+
`;
|
|
47
|
+
}
|
|
48
|
+
get queryErrorTemplate() {
|
|
49
|
+
return html `
|
|
50
|
+
<h2 class="title">
|
|
51
|
+
The search engine encountered an error, which might be related to your
|
|
52
|
+
search query.
|
|
53
|
+
<a
|
|
54
|
+
href="https://help.archive.org/help/search-building-powerful-complex-queries/"
|
|
55
|
+
>
|
|
56
|
+
Tips for constructing search queries.
|
|
57
|
+
</a>
|
|
58
|
+
</h2>
|
|
59
|
+
<div>${nullResultIcon}</div>
|
|
60
|
+
<p class="error-details">Error details: ${this.detailMessage}</p>
|
|
61
|
+
`;
|
|
62
|
+
}
|
|
63
|
+
static get styles() {
|
|
47
64
|
return css `
|
|
48
65
|
:host {
|
|
49
66
|
text-align: center;
|
|
50
67
|
width: 100%;
|
|
51
68
|
}
|
|
52
69
|
|
|
70
|
+
a {
|
|
71
|
+
text-decoration: none;
|
|
72
|
+
}
|
|
73
|
+
a:link {
|
|
74
|
+
color: var(--ia-theme-link-color, #4b64ff);
|
|
75
|
+
}
|
|
76
|
+
a:hover {
|
|
77
|
+
text-decoration: underline;
|
|
78
|
+
}
|
|
79
|
+
|
|
53
80
|
.placeholder {
|
|
54
81
|
display: block;
|
|
55
82
|
}
|
|
@@ -57,27 +84,36 @@ let EmptyPlaceholder = class EmptyPlaceholder extends LitElement {
|
|
|
57
84
|
.desktop svg {
|
|
58
85
|
max-height: 40rem;
|
|
59
86
|
}
|
|
60
|
-
.desktop .title
|
|
87
|
+
.desktop .title,
|
|
88
|
+
.desktop .error-details {
|
|
61
89
|
margin: 4rem 0;
|
|
62
90
|
}
|
|
63
91
|
|
|
64
92
|
.mobile svg {
|
|
65
93
|
max-height: 20rem;
|
|
66
94
|
}
|
|
67
|
-
.mobile .title
|
|
95
|
+
.mobile .title,
|
|
96
|
+
.mobile .error-details {
|
|
68
97
|
margin: 2rem 0.5;
|
|
69
98
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
EmptyPlaceholder
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
99
|
+
|
|
100
|
+
.error-details {
|
|
101
|
+
font-size: 1.2rem;
|
|
102
|
+
}
|
|
103
|
+
`;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
__decorate([
|
|
107
|
+
property({ type: String })
|
|
108
|
+
], EmptyPlaceholder.prototype, "placeholderType", void 0);
|
|
109
|
+
__decorate([
|
|
110
|
+
property({ type: Boolean })
|
|
111
|
+
], EmptyPlaceholder.prototype, "isMobileView", void 0);
|
|
112
|
+
__decorate([
|
|
113
|
+
property({ type: String })
|
|
114
|
+
], EmptyPlaceholder.prototype, "detailMessage", void 0);
|
|
115
|
+
EmptyPlaceholder = __decorate([
|
|
116
|
+
customElement('empty-placeholder')
|
|
117
|
+
], EmptyPlaceholder);
|
|
118
|
+
export { EmptyPlaceholder };
|
|
83
119
|
//# sourceMappingURL=empty-placeholder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty-placeholder.js","sourceRoot":"","sources":["../../src/empty-placeholder.ts"],"names":[],"mappings":";AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"empty-placeholder.js","sourceRoot":"","sources":["../../src/empty-placeholder.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,GAAG,EACH,IAAI,EACJ,UAAU,EAEV,OAAO,GAER,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAC5D,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAQ5D,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,UAAU;IAAhD;;QAC8B,oBAAe,GAAoB,IAAI,CAAC;QAIxC,kBAAa,GAAY,EAAE,CAAC;IAmG1D,CAAC;IAjGC,MAAM;QACJ,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAA,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5E,CAAC;IAED,IAAY,mBAAmB;QAC7B,OAAO,IAAI,CAAA;;6BAEc,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY;YAC5D,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,SAAS;;UAEX,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;YAC7B,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC;YAC9C,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC;YAC9C,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC;SAC/C,CAAC;;KAEL,CAAC;IACJ,CAAC;IAED,IAAY,kBAAkB;QAC5B,OAAO,IAAI,CAAA;;;;aAIF,cAAc;KACtB,CAAC;IACJ,CAAC;IAED,IAAY,kBAAkB;QAC5B,OAAO,IAAI,CAAA;;;;;aAKF,cAAc;KACtB,CAAC;IACJ,CAAC;IAED,IAAY,kBAAkB;QAC5B,OAAO,IAAI,CAAA;;;;;;;;;;aAUF,cAAc;gDACqB,IAAI,CAAC,aAAa;KAC7D,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuCT,CAAC;IACJ,CAAC;CACF,CAAA;AAvG6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yDAAyC;AAEvC;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sDAAsB;AAEtB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uDAA6B;AAL7C,gBAAgB;IAD5B,aAAa,CAAC,mBAAmB,CAAC;GACtB,gBAAgB,CAwG5B;SAxGY,gBAAgB","sourcesContent":["import {\n css,\n html,\n LitElement,\n CSSResultGroup,\n nothing,\n TemplateResult,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { choose } from 'lit/directives/choose.js';\n\nimport emptyQueryIcon from './assets/img/icons/empty-query';\nimport nullResultIcon from './assets/img/icons/null-result';\n\nexport type PlaceholderType =\n | 'empty-query'\n | 'null-result'\n | 'query-error'\n | null;\n@customElement('empty-placeholder')\nexport class EmptyPlaceholder extends LitElement {\n @property({ type: String }) placeholderType: PlaceholderType = null;\n\n @property({ type: Boolean }) isMobileView?: false;\n\n @property({ type: String }) detailMessage?: string = '';\n\n render() {\n return this.placeholderType ? html`${this.placeholderTemplate}` : nothing;\n }\n\n private get placeholderTemplate(): TemplateResult {\n return html`\n <div\n class=\"placeholder ${this.placeholderType} ${this.isMobileView\n ? 'mobile'\n : 'desktop'}\"\n >\n ${choose(this.placeholderType, [\n ['empty-query', () => this.emptyQueryTemplate],\n ['null-result', () => this.nullResultTemplate],\n ['query-error', () => this.queryErrorTemplate],\n ])}\n </div>\n `;\n }\n\n private get emptyQueryTemplate(): TemplateResult {\n return html`\n <h2 class=\"title\">\n To begin searching, enter a search term in the box above and hit \"Go\".\n </h2>\n <div>${emptyQueryIcon}</div>\n `;\n }\n\n private get nullResultTemplate(): TemplateResult {\n return html`\n <h2 class=\"title\">\n Your search did not match any items in the Archive. Try different\n keywords or a more general search.\n </h2>\n <div>${nullResultIcon}</div>\n `;\n }\n\n private get queryErrorTemplate(): TemplateResult {\n return html`\n <h2 class=\"title\">\n The search engine encountered an error, which might be related to your\n search query.\n <a\n href=\"https://help.archive.org/help/search-building-powerful-complex-queries/\"\n >\n Tips for constructing search queries.\n </a>\n </h2>\n <div>${nullResultIcon}</div>\n <p class=\"error-details\">Error details: ${this.detailMessage}</p>\n `;\n }\n\n static get styles(): CSSResultGroup {\n return css`\n :host {\n text-align: center;\n width: 100%;\n }\n\n a {\n text-decoration: none;\n }\n a:link {\n color: var(--ia-theme-link-color, #4b64ff);\n }\n a:hover {\n text-decoration: underline;\n }\n\n .placeholder {\n display: block;\n }\n\n .desktop svg {\n max-height: 40rem;\n }\n .desktop .title,\n .desktop .error-details {\n margin: 4rem 0;\n }\n\n .mobile svg {\n max-height: 20rem;\n }\n .mobile .title,\n .mobile .error-details {\n margin: 2rem 0.5;\n }\n\n .error-details {\n font-size: 1.2rem;\n }\n `;\n }\n}\n"]}
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
export interface LanguageCodeHandlerInterface {
|
|
2
|
-
/**
|
|
3
|
-
* This takes a list of codes in the format `en-us|en|en-gb` and
|
|
4
|
-
* returns the first language code in the list.
|
|
5
|
-
*
|
|
6
|
-
* The codes in the string should always represent the same language name.
|
|
7
|
-
* eg `en-us`, `en-gb`, and `en` should always be "English"
|
|
8
|
-
*
|
|
9
|
-
* @param languageCodes
|
|
10
|
-
*/
|
|
11
|
-
getLanguageNameFromCodeString(languageCodes: string): string;
|
|
12
|
-
/**
|
|
13
|
-
* This creates a serialized string of language codes for the given language.
|
|
14
|
-
*
|
|
15
|
-
* eg. `English` becomes `en-us|en|en-gb|.....`
|
|
16
|
-
*
|
|
17
|
-
* @param languageName
|
|
18
|
-
*/
|
|
19
|
-
getCodeStringFromLanguageName(languageName: string): string;
|
|
20
|
-
/**
|
|
21
|
-
* Get an array of langauge codes from a serialized string.
|
|
22
|
-
*
|
|
23
|
-
* eg. `en-us|en|en-gb` becomes `['en-us', 'en', 'en-gb']`
|
|
24
|
-
*
|
|
25
|
-
* @param languageCodes
|
|
26
|
-
*/
|
|
27
|
-
getCodeArrayFromCodeString(languageCodes: string): string[];
|
|
28
|
-
}
|
|
29
|
-
export declare class LanguageCodeHandler implements LanguageCodeHandlerInterface {
|
|
30
|
-
private delimeter;
|
|
31
|
-
/** @inheritdoc */
|
|
32
|
-
getLanguageNameFromCodeString(languageCodes: string): string;
|
|
33
|
-
/** @inheritdoc */
|
|
34
|
-
getCodeStringFromLanguageName(languageName: string): string;
|
|
35
|
-
/** @inheritdoc */
|
|
36
|
-
getCodeArrayFromCodeString(languageCodes: string): string[];
|
|
37
|
-
}
|
|
1
|
+
export interface LanguageCodeHandlerInterface {
|
|
2
|
+
/**
|
|
3
|
+
* This takes a list of codes in the format `en-us|en|en-gb` and
|
|
4
|
+
* returns the first language code in the list.
|
|
5
|
+
*
|
|
6
|
+
* The codes in the string should always represent the same language name.
|
|
7
|
+
* eg `en-us`, `en-gb`, and `en` should always be "English"
|
|
8
|
+
*
|
|
9
|
+
* @param languageCodes
|
|
10
|
+
*/
|
|
11
|
+
getLanguageNameFromCodeString(languageCodes: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* This creates a serialized string of language codes for the given language.
|
|
14
|
+
*
|
|
15
|
+
* eg. `English` becomes `en-us|en|en-gb|.....`
|
|
16
|
+
*
|
|
17
|
+
* @param languageName
|
|
18
|
+
*/
|
|
19
|
+
getCodeStringFromLanguageName(languageName: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Get an array of langauge codes from a serialized string.
|
|
22
|
+
*
|
|
23
|
+
* eg. `en-us|en|en-gb` becomes `['en-us', 'en', 'en-gb']`
|
|
24
|
+
*
|
|
25
|
+
* @param languageCodes
|
|
26
|
+
*/
|
|
27
|
+
getCodeArrayFromCodeString(languageCodes: string): string[];
|
|
28
|
+
}
|
|
29
|
+
export declare class LanguageCodeHandler implements LanguageCodeHandlerInterface {
|
|
30
|
+
private delimeter;
|
|
31
|
+
/** @inheritdoc */
|
|
32
|
+
getLanguageNameFromCodeString(languageCodes: string): string;
|
|
33
|
+
/** @inheritdoc */
|
|
34
|
+
getCodeStringFromLanguageName(languageName: string): string;
|
|
35
|
+
/** @inheritdoc */
|
|
36
|
+
getCodeArrayFromCodeString(languageCodes: string): string[];
|
|
37
|
+
}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { codeToLanguageMap } from './language-code-mapping';
|
|
2
|
-
export class LanguageCodeHandler {
|
|
3
|
-
constructor() {
|
|
4
|
-
this.delimeter = '|';
|
|
5
|
-
}
|
|
6
|
-
/** @inheritdoc */
|
|
7
|
-
getLanguageNameFromCodeString(languageCodes) {
|
|
8
|
-
const split = this.getCodeArrayFromCodeString(languageCodes);
|
|
9
|
-
if (split.length === 0)
|
|
10
|
-
return '';
|
|
11
|
-
const languageCode = split[0];
|
|
12
|
-
const languageName = codeToLanguageMap[languageCode];
|
|
13
|
-
return languageName !== null && languageName !== void 0 ? languageName : languageCodes;
|
|
14
|
-
}
|
|
15
|
-
/** @inheritdoc */
|
|
16
|
-
getCodeStringFromLanguageName(languageName) {
|
|
17
|
-
const languageCodes = Object.keys(codeToLanguageMap).filter(code => codeToLanguageMap[code] === languageName);
|
|
18
|
-
const stringifiedCodes = languageCodes === null || languageCodes === void 0 ? void 0 : languageCodes.join(this.delimeter);
|
|
19
|
-
return stringifiedCodes;
|
|
20
|
-
}
|
|
21
|
-
/** @inheritdoc */
|
|
22
|
-
getCodeArrayFromCodeString(languageCodes) {
|
|
23
|
-
const split = languageCodes.split(this.delimeter);
|
|
24
|
-
return split;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
1
|
+
import { codeToLanguageMap } from './language-code-mapping';
|
|
2
|
+
export class LanguageCodeHandler {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.delimeter = '|';
|
|
5
|
+
}
|
|
6
|
+
/** @inheritdoc */
|
|
7
|
+
getLanguageNameFromCodeString(languageCodes) {
|
|
8
|
+
const split = this.getCodeArrayFromCodeString(languageCodes);
|
|
9
|
+
if (split.length === 0)
|
|
10
|
+
return '';
|
|
11
|
+
const languageCode = split[0];
|
|
12
|
+
const languageName = codeToLanguageMap[languageCode];
|
|
13
|
+
return languageName !== null && languageName !== void 0 ? languageName : languageCodes;
|
|
14
|
+
}
|
|
15
|
+
/** @inheritdoc */
|
|
16
|
+
getCodeStringFromLanguageName(languageName) {
|
|
17
|
+
const languageCodes = Object.keys(codeToLanguageMap).filter(code => codeToLanguageMap[code] === languageName);
|
|
18
|
+
const stringifiedCodes = languageCodes === null || languageCodes === void 0 ? void 0 : languageCodes.join(this.delimeter);
|
|
19
|
+
return stringifiedCodes;
|
|
20
|
+
}
|
|
21
|
+
/** @inheritdoc */
|
|
22
|
+
getCodeArrayFromCodeString(languageCodes) {
|
|
23
|
+
const split = languageCodes.split(this.delimeter);
|
|
24
|
+
return split;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
27
|
//# sourceMappingURL=language-code-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const codeToLanguageMap: Record<string, string>;
|
|
1
|
+
export declare const codeToLanguageMap: Record<string, string>;
|