@internetarchive/collection-browser 3.4.1-alpha-webdev7761.0 → 3.4.1-alpha-webdev7761.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/dist/src/collection-browser.d.ts +6 -3
- package/dist/src/collection-browser.js +78 -76
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/collection-facets.js +1 -1
- package/dist/src/collection-facets.js.map +1 -1
- package/dist/src/combo-box/caret-closed.d.ts +2 -0
- package/dist/src/combo-box/caret-closed.js +13 -0
- package/dist/src/combo-box/caret-closed.js.map +1 -0
- package/dist/src/combo-box/caret-open.d.ts +2 -0
- package/dist/src/combo-box/caret-open.js +13 -0
- package/dist/src/combo-box/caret-open.js.map +1 -0
- package/dist/src/combo-box/ia-combo-box.d.ts +391 -0
- package/dist/src/combo-box/ia-combo-box.js +1112 -0
- package/dist/src/combo-box/ia-combo-box.js.map +1 -0
- package/dist/src/combo-box/models.d.ts +61 -0
- package/dist/src/combo-box/models.js +9 -0
- package/dist/src/combo-box/models.js.map +1 -0
- package/package.json +1 -1
- package/src/collection-browser.ts +72 -79
- package/src/collection-facets.ts +1 -1
- package/src/combo-box/caret-closed.ts +13 -0
- package/src/combo-box/caret-open.ts +13 -0
- package/src/combo-box/ia-combo-box.ts +1180 -0
- package/src/combo-box/models.ts +83 -0
|
@@ -19,6 +19,7 @@ import './manage/manage-bar';
|
|
|
19
19
|
import './collection-facets';
|
|
20
20
|
import './circular-activity-indicator';
|
|
21
21
|
import './collection-facets/smart-facets/smart-facet-bar';
|
|
22
|
+
import './combo-box/ia-combo-box';
|
|
22
23
|
export declare class CollectionBrowser extends LitElement implements InfiniteScrollerCellProviderInterface, SharedResizeObserverResizeHandlerInterface, CollectionBrowserSearchInterface {
|
|
23
24
|
baseNavigationUrl?: string;
|
|
24
25
|
baseImageUrl: string;
|
|
@@ -465,11 +466,13 @@ export declare class CollectionBrowser extends LitElement implements InfiniteScr
|
|
|
465
466
|
private get mobileFacetsTemplate();
|
|
466
467
|
private selectedTVNetwork?;
|
|
467
468
|
private selectedTVShow?;
|
|
468
|
-
private
|
|
469
|
+
private tvMapsPopulated;
|
|
470
|
+
private loadingNetworks;
|
|
471
|
+
private loadingShows;
|
|
469
472
|
private tvNetworksDropdown?;
|
|
470
473
|
private tvShowsDropdown?;
|
|
471
|
-
private
|
|
472
|
-
private
|
|
474
|
+
private networksDropdownToggled;
|
|
475
|
+
private showsDropdownToggled;
|
|
473
476
|
private networksDropdownChanged;
|
|
474
477
|
private showsDropdownChanged;
|
|
475
478
|
private get tvDropdownFiltersTemplate();
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { html, css, LitElement, nothing, } from 'lit';
|
|
3
3
|
import { customElement, property, query, state } from 'lit/decorators.js';
|
|
4
|
-
import { map } from 'lit/directives/map.js';
|
|
5
4
|
import { classMap } from 'lit/directives/class-map.js';
|
|
6
5
|
import { msg } from '@lit/localize';
|
|
7
6
|
import { SearchType, } from '@internetarchive/search-service';
|
|
@@ -15,6 +14,7 @@ import chevronIcon from './assets/img/icons/chevron';
|
|
|
15
14
|
import { srOnlyStyle } from './styles/sr-only';
|
|
16
15
|
import { sha1 } from './utils/sha1';
|
|
17
16
|
import { log } from './utils/log';
|
|
17
|
+
import { updateSelectedFacetBucket } from './utils/facet-utils';
|
|
18
18
|
import './empty-placeholder';
|
|
19
19
|
import './tiles/tile-dispatcher';
|
|
20
20
|
import './tiles/collection-browser-loading-tile';
|
|
@@ -23,7 +23,7 @@ import './manage/manage-bar';
|
|
|
23
23
|
import './collection-facets';
|
|
24
24
|
import './circular-activity-indicator';
|
|
25
25
|
import './collection-facets/smart-facets/smart-facet-bar';
|
|
26
|
-
import
|
|
26
|
+
import './combo-box/ia-combo-box';
|
|
27
27
|
let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
28
28
|
constructor() {
|
|
29
29
|
super();
|
|
@@ -186,7 +186,9 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
186
186
|
this.placeholderCellTemplate = html `<collection-browser-loading-tile></collection-browser-loading-tile>`;
|
|
187
187
|
this.selectedTVNetwork = undefined;
|
|
188
188
|
this.selectedTVShow = undefined;
|
|
189
|
-
this.
|
|
189
|
+
this.tvMapsPopulated = false;
|
|
190
|
+
this.loadingNetworks = false;
|
|
191
|
+
this.loadingShows = false;
|
|
190
192
|
/**
|
|
191
193
|
* Updates the height of the left column according to its position on the page.
|
|
192
194
|
* Arrow function ensures proper `this` binding.
|
|
@@ -338,10 +340,10 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
338
340
|
this.selectedTVNetwork = undefined;
|
|
339
341
|
this.selectedTVShow = undefined;
|
|
340
342
|
if (this.tvNetworksDropdown) {
|
|
341
|
-
this.tvNetworksDropdown.
|
|
343
|
+
this.tvNetworksDropdown.clearSelectedOption();
|
|
342
344
|
}
|
|
343
345
|
if (this.tvShowsDropdown) {
|
|
344
|
-
this.tvShowsDropdown.
|
|
346
|
+
this.tvShowsDropdown.clearSelectedOption();
|
|
345
347
|
}
|
|
346
348
|
}
|
|
347
349
|
/**
|
|
@@ -987,27 +989,27 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
987
989
|
</details>
|
|
988
990
|
`;
|
|
989
991
|
}
|
|
990
|
-
async
|
|
991
|
-
|
|
992
|
-
|
|
992
|
+
async networksDropdownToggled() {
|
|
993
|
+
if (this.tvMapsPopulated)
|
|
994
|
+
return;
|
|
995
|
+
this.loadingNetworks = true;
|
|
993
996
|
await this.dataSource.populateTVChannelMaps();
|
|
994
|
-
|
|
997
|
+
this.loadingNetworks = false;
|
|
998
|
+
this.tvMapsPopulated = true;
|
|
995
999
|
}
|
|
996
|
-
async
|
|
997
|
-
|
|
998
|
-
|
|
1000
|
+
async showsDropdownToggled() {
|
|
1001
|
+
if (this.tvMapsPopulated)
|
|
1002
|
+
return;
|
|
1003
|
+
this.loadingShows = true;
|
|
999
1004
|
await this.dataSource.populateTVChannelMaps();
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
await new Promise(res => setTimeout(res, 0));
|
|
1003
|
-
this.shouldPopulateShows = true;
|
|
1004
|
-
await this.updateComplete;
|
|
1005
|
-
(_b = this.tvShowsDropdown) === null || _b === void 0 ? void 0 : _b.classList.remove('loading');
|
|
1005
|
+
this.loadingShows = false;
|
|
1006
|
+
this.tvMapsPopulated = true;
|
|
1006
1007
|
}
|
|
1007
1008
|
async networksDropdownChanged() {
|
|
1009
|
+
var _a;
|
|
1008
1010
|
const previousNetwork = this.selectedTVNetwork;
|
|
1009
|
-
this.
|
|
1010
|
-
|
|
1011
|
+
const newNetwork = (_a = this.tvNetworksDropdown.selectedOption) === null || _a === void 0 ? void 0 : _a.text;
|
|
1012
|
+
this.selectedTVNetwork = newNetwork !== null && newNetwork !== void 0 ? newNetwork : undefined;
|
|
1011
1013
|
const entries = this.dataSource.tvChannelMaps.channelToNetwork.entries();
|
|
1012
1014
|
for (const [channel, network] of entries) {
|
|
1013
1015
|
if (network === previousNetwork) {
|
|
@@ -1030,9 +1032,10 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1030
1032
|
}
|
|
1031
1033
|
}
|
|
1032
1034
|
async showsDropdownChanged() {
|
|
1035
|
+
var _a;
|
|
1033
1036
|
const previousShow = this.selectedTVShow;
|
|
1034
|
-
this.
|
|
1035
|
-
|
|
1037
|
+
const newShow = (_a = this.tvShowsDropdown.selectedOption) === null || _a === void 0 ? void 0 : _a.text;
|
|
1038
|
+
this.selectedTVShow = newShow !== null && newShow !== void 0 ? newShow : undefined;
|
|
1036
1039
|
// Remove any previously-applied shows filter
|
|
1037
1040
|
if (previousShow !== undefined) {
|
|
1038
1041
|
const removedBucket = {
|
|
@@ -1065,48 +1068,42 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1065
1068
|
}
|
|
1066
1069
|
const shows = showEntries.map(([show]) => show);
|
|
1067
1070
|
log('end filters template preprocess', Date.now());
|
|
1068
|
-
const makeNetworkOption = (network) => html `
|
|
1069
|
-
<option ?selected=${this.selectedTVNetwork === network}>
|
|
1070
|
-
${network}
|
|
1071
|
-
</option>
|
|
1072
|
-
`;
|
|
1073
|
-
const makeShowOption = (show) => html `
|
|
1074
|
-
<option ?selected=${this.selectedTVShow === show}>${show}</option>
|
|
1075
|
-
`;
|
|
1076
1071
|
const loadingIndicator = html `
|
|
1077
1072
|
<img src="https://archive.org/images/loading.gif" />
|
|
1078
1073
|
`;
|
|
1079
1074
|
return html `
|
|
1080
1075
|
<div id="tv-filters" slot="facets-top">
|
|
1081
|
-
<
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
<
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
</
|
|
1108
|
-
${
|
|
1109
|
-
|
|
1076
|
+
<ia-combo-box
|
|
1077
|
+
id="tv-networks"
|
|
1078
|
+
class="tv-filter-dropdown"
|
|
1079
|
+
placeholder="Filter by Network"
|
|
1080
|
+
wrap-arrow-keys
|
|
1081
|
+
sort
|
|
1082
|
+
.options=${networks.map((n, i) => ({ id: `network-${i}`, text: n }))}
|
|
1083
|
+
@toggle=${this.networksDropdownToggled}
|
|
1084
|
+
@change=${this.networksDropdownChanged}
|
|
1085
|
+
>
|
|
1086
|
+
<span class="sr-only">${msg('Filter by Network')}</span>
|
|
1087
|
+
${this.loadingNetworks
|
|
1088
|
+
? html `<span slot="empty-options">${loadingIndicator}</span>`
|
|
1089
|
+
: nothing}
|
|
1090
|
+
</ia-combo-box>
|
|
1091
|
+
<ia-combo-box
|
|
1092
|
+
id="tv-shows"
|
|
1093
|
+
class="tv-filter-dropdown"
|
|
1094
|
+
placeholder="Filter by Show"
|
|
1095
|
+
max-autocomplete-entries="500"
|
|
1096
|
+
wrap-arrow-keys
|
|
1097
|
+
sort
|
|
1098
|
+
.options=${shows.map((s, i) => ({ id: `show-${i}`, text: s }))}
|
|
1099
|
+
@toggle=${this.showsDropdownToggled}
|
|
1100
|
+
@change=${this.showsDropdownChanged}
|
|
1101
|
+
>
|
|
1102
|
+
<span class="sr-only">${msg('Filter by Show')}</span>
|
|
1103
|
+
${this.loadingShows
|
|
1104
|
+
? html `<span slot="empty-options">${loadingIndicator}</span>`
|
|
1105
|
+
: nothing}
|
|
1106
|
+
</ia-combo-box>
|
|
1110
1107
|
</div>
|
|
1111
1108
|
`;
|
|
1112
1109
|
}
|
|
@@ -2216,10 +2213,10 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
2216
2213
|
#facets-bottom-fade {
|
|
2217
2214
|
background: linear-gradient(
|
|
2218
2215
|
to bottom,
|
|
2219
|
-
#
|
|
2220
|
-
#
|
|
2221
|
-
#
|
|
2222
|
-
#
|
|
2216
|
+
#fbfbfd00 0%,
|
|
2217
|
+
#fbfbfdc0 50%,
|
|
2218
|
+
#fbfbfd 80%,
|
|
2219
|
+
#fbfbfd 100%
|
|
2223
2220
|
);
|
|
2224
2221
|
position: fixed;
|
|
2225
2222
|
bottom: 0;
|
|
@@ -2326,25 +2323,24 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
2326
2323
|
margin-bottom: 15px;
|
|
2327
2324
|
}
|
|
2328
2325
|
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
padding: 3px;
|
|
2326
|
+
#tv-shows {
|
|
2327
|
+
--comboBoxListWidth: 300px;
|
|
2332
2328
|
}
|
|
2333
2329
|
|
|
2334
|
-
.tv-filter-dropdown
|
|
2335
|
-
display:
|
|
2336
|
-
|
|
2337
|
-
|
|
2330
|
+
.tv-filter-dropdown {
|
|
2331
|
+
display: block;
|
|
2332
|
+
font-size: 14px;
|
|
2333
|
+
margin-left: 1px;
|
|
2338
2334
|
margin-bottom: 5px;
|
|
2339
2335
|
}
|
|
2340
2336
|
|
|
2341
|
-
.tv-filter-dropdown-
|
|
2342
|
-
|
|
2343
|
-
visibility: hidden;
|
|
2337
|
+
.tv-filter-dropdown::part(combo-box) {
|
|
2338
|
+
outline-offset: 1px;
|
|
2344
2339
|
}
|
|
2345
2340
|
|
|
2346
|
-
.tv-filter-dropdown
|
|
2347
|
-
|
|
2341
|
+
.tv-filter-dropdown::part(option) {
|
|
2342
|
+
line-height: 1.1;
|
|
2343
|
+
padding: 7px;
|
|
2348
2344
|
}
|
|
2349
2345
|
|
|
2350
2346
|
#facets-container {
|
|
@@ -2728,7 +2724,13 @@ __decorate([
|
|
|
2728
2724
|
], CollectionBrowser.prototype, "selectedTVShow", void 0);
|
|
2729
2725
|
__decorate([
|
|
2730
2726
|
state()
|
|
2731
|
-
], CollectionBrowser.prototype, "
|
|
2727
|
+
], CollectionBrowser.prototype, "tvMapsPopulated", void 0);
|
|
2728
|
+
__decorate([
|
|
2729
|
+
state()
|
|
2730
|
+
], CollectionBrowser.prototype, "loadingNetworks", void 0);
|
|
2731
|
+
__decorate([
|
|
2732
|
+
state()
|
|
2733
|
+
], CollectionBrowser.prototype, "loadingShows", void 0);
|
|
2732
2734
|
__decorate([
|
|
2733
2735
|
query('#tv-networks')
|
|
2734
2736
|
], CollectionBrowser.prototype, "tvNetworksDropdown", void 0);
|