@internetarchive/collection-browser 0.3.4 → 0.3.5
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/app-root.d.ts +4 -0
- package/dist/src/app-root.js +99 -53
- package/dist/src/app-root.js.map +1 -1
- package/dist/src/collection-browser.d.ts +1 -2
- package/dist/src/collection-browser.js +21 -49
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -0
- package/dist/src/collection-facets/facet-tombstone-row.js +43 -0
- package/dist/src/collection-facets/facet-tombstone-row.js.map +1 -0
- package/dist/src/collection-facets/facets-template.js +5 -3
- package/dist/src/collection-facets/facets-template.js.map +1 -1
- package/dist/src/collection-facets.d.ts +2 -0
- package/dist/src/collection-facets.js +44 -18
- package/dist/src/collection-facets.js.map +1 -1
- package/dist/src/models.d.ts +1 -0
- package/dist/src/models.js.map +1 -1
- package/dist/src/restoration-state-handler.d.ts +2 -1
- package/dist/src/restoration-state-handler.js +10 -0
- package/dist/src/restoration-state-handler.js.map +1 -1
- package/dist/src/tiles/grid/tile-stats.js +11 -5
- package/dist/src/tiles/grid/tile-stats.js.map +1 -1
- package/dist/src/tiles/list/tile-list-compact.d.ts +1 -0
- package/dist/src/tiles/list/tile-list-compact.js +8 -4
- package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
- package/dist/src/tiles/list/tile-list.js +5 -2
- package/dist/src/tiles/list/tile-list.js.map +1 -1
- package/dist/src/tiles/mediatype-icon.js +2 -0
- package/dist/src/tiles/mediatype-icon.js.map +1 -1
- package/dist/test/collection-browser.test.js +125 -3
- package/dist/test/collection-browser.test.js.map +1 -1
- package/dist/test/collection-facets/facets-template.test.js +4 -4
- package/dist/test/collection-facets/facets-template.test.js.map +1 -1
- package/dist/test/mocks/mock-search-responses.d.ts +3 -0
- package/dist/test/mocks/mock-search-responses.js +95 -0
- package/dist/test/mocks/mock-search-responses.js.map +1 -1
- package/dist/test/mocks/mock-search-service.js +15 -8
- package/dist/test/mocks/mock-search-service.js.map +1 -1
- package/dist/test/restoration-state-handler.test.js +9 -0
- package/dist/test/restoration-state-handler.test.js.map +1 -1
- package/dist/test/tiles/list/tile-list-compact.test.js +99 -0
- package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -1
- package/dist/test/tiles/list/tile-list.test.js +32 -0
- package/dist/test/tiles/list/tile-list.test.js.map +1 -1
- package/package.json +3 -3
- package/src/app-root.ts +104 -55
- package/src/collection-browser.ts +26 -48
- package/src/collection-facets/facet-tombstone-row.ts +40 -0
- package/src/collection-facets/facets-template.ts +5 -3
- package/src/collection-facets.ts +49 -18
- package/src/models.ts +1 -0
- package/src/restoration-state-handler.ts +19 -1
- package/src/tiles/grid/tile-stats.ts +18 -5
- package/src/tiles/list/tile-list-compact.ts +7 -3
- package/src/tiles/list/tile-list.ts +6 -1
- package/src/tiles/mediatype-icon.ts +2 -0
- package/test/collection-browser.test.ts +169 -3
- package/test/collection-facets/facets-template.test.ts +5 -3
- package/test/mocks/mock-search-responses.ts +107 -0
- package/test/mocks/mock-search-service.ts +16 -8
- package/test/restoration-state-handler.test.ts +12 -0
- package/test/tiles/list/tile-list-compact.test.ts +110 -0
- package/test/tiles/list/tile-list.test.ts +36 -0
package/dist/src/app-root.d.ts
CHANGED
|
@@ -22,13 +22,17 @@ export declare class AppRoot extends LitElement {
|
|
|
22
22
|
private analyticsManager;
|
|
23
23
|
private analyticsHandler;
|
|
24
24
|
private sendAnalytics;
|
|
25
|
+
private initSearchServiceFromUrlParams;
|
|
25
26
|
private searchPressed;
|
|
26
27
|
private changePagePressed;
|
|
27
28
|
protected updated(changed: PropertyValues): void;
|
|
28
29
|
private queryUpdated;
|
|
29
30
|
render(): import("lit-html").TemplateResult<1>;
|
|
30
31
|
private baseQueryChanged;
|
|
32
|
+
/** Handler for search type changes coming from collection browser */
|
|
31
33
|
private searchTypeChanged;
|
|
34
|
+
/** Handler for user input selecting a search type */
|
|
35
|
+
private searchTypeSelected;
|
|
32
36
|
private loginChanged;
|
|
33
37
|
private outlineChanged;
|
|
34
38
|
private toggleFacetGroupOutline;
|
package/dist/src/app-root.js
CHANGED
|
@@ -11,7 +11,7 @@ import '../src/collection-browser';
|
|
|
11
11
|
let AppRoot = class AppRoot extends LitElement {
|
|
12
12
|
constructor() {
|
|
13
13
|
super(...arguments);
|
|
14
|
-
this.searchService =
|
|
14
|
+
this.searchService = this.initSearchServiceFromUrlParams();
|
|
15
15
|
this.resizeObserver = new SharedResizeObserver();
|
|
16
16
|
this.localCache = new LocalCache();
|
|
17
17
|
this.collectionNameCache = new CollectionNameCache({
|
|
@@ -37,6 +37,15 @@ let AppRoot = class AppRoot extends LitElement {
|
|
|
37
37
|
this.latestAction = ae;
|
|
38
38
|
(_a = this.analyticsManager) === null || _a === void 0 ? void 0 : _a.sendEventNoSampling(ae);
|
|
39
39
|
}
|
|
40
|
+
initSearchServiceFromUrlParams() {
|
|
41
|
+
var _a, _b, _c;
|
|
42
|
+
const params = new URL(window.location.href).searchParams;
|
|
43
|
+
return new SearchService({
|
|
44
|
+
baseUrl: (_a = params.get('search_base_url')) !== null && _a !== void 0 ? _a : undefined,
|
|
45
|
+
servicePath: (_b = params.get('search_service_path')) !== null && _b !== void 0 ? _b : undefined,
|
|
46
|
+
debuggingEnabled: (_c = !!params.get('debugging')) !== null && _c !== void 0 ? _c : undefined,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
40
49
|
searchPressed(e) {
|
|
41
50
|
var _a, _b;
|
|
42
51
|
e.preventDefault();
|
|
@@ -83,23 +92,28 @@ let AppRoot = class AppRoot extends LitElement {
|
|
|
83
92
|
|
|
84
93
|
<div id="search-types">
|
|
85
94
|
Search type:
|
|
86
|
-
<
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
95
|
+
<span class="search-type">
|
|
96
|
+
<input
|
|
97
|
+
type="radio"
|
|
98
|
+
id="metadata-search"
|
|
99
|
+
name="search-type"
|
|
100
|
+
value="metadata"
|
|
101
|
+
?checked=${this.searchType === SearchType.METADATA}
|
|
102
|
+
@click=${this.searchTypeSelected}
|
|
103
|
+
/>
|
|
104
|
+
<label for="metadata-search">Metadata</label>
|
|
105
|
+
</span>
|
|
106
|
+
<span class="search-type">
|
|
107
|
+
<input
|
|
108
|
+
type="radio"
|
|
109
|
+
id="fulltext-search"
|
|
110
|
+
name="search-type"
|
|
111
|
+
value="fulltext"
|
|
112
|
+
?checked=${this.searchType === SearchType.FULLTEXT}
|
|
113
|
+
@click=${this.searchTypeSelected}
|
|
114
|
+
/>
|
|
115
|
+
<label for="fulltext-search">Full text</label>
|
|
116
|
+
</span>
|
|
103
117
|
</div>
|
|
104
118
|
|
|
105
119
|
<div id="toggle-controls">
|
|
@@ -135,7 +149,7 @@ let AppRoot = class AppRoot extends LitElement {
|
|
|
135
149
|
<div id="cell-controls" class="hidden">
|
|
136
150
|
<div id="cell-size-control">
|
|
137
151
|
<div>
|
|
138
|
-
<label for="cell-width-slider">
|
|
152
|
+
<label for="cell-width-slider">Min cell width:</label>
|
|
139
153
|
<input
|
|
140
154
|
type="range"
|
|
141
155
|
min="10"
|
|
@@ -160,40 +174,6 @@ let AppRoot = class AppRoot extends LitElement {
|
|
|
160
174
|
/>
|
|
161
175
|
<span>${this.cellHeight}rem</span>
|
|
162
176
|
</div>
|
|
163
|
-
<div>
|
|
164
|
-
<label for="show-outline-check">Show outlines:</label>
|
|
165
|
-
<input
|
|
166
|
-
type="checkbox"
|
|
167
|
-
id="show-outline-check"
|
|
168
|
-
@click=${this.outlineChanged}
|
|
169
|
-
/>
|
|
170
|
-
</div>
|
|
171
|
-
<div>
|
|
172
|
-
<label for="show-facet-group-outline-check"
|
|
173
|
-
>Show Facet Group Outlines:</label
|
|
174
|
-
>
|
|
175
|
-
<input
|
|
176
|
-
type="checkbox"
|
|
177
|
-
id="show-facet-group-outline-check"
|
|
178
|
-
@click=${this.toggleFacetGroupOutline}
|
|
179
|
-
/>
|
|
180
|
-
</div>
|
|
181
|
-
<div>
|
|
182
|
-
<label for="simulate-login">Simulate Login:</label>
|
|
183
|
-
<input
|
|
184
|
-
type="checkbox"
|
|
185
|
-
id="simulate-login"
|
|
186
|
-
@click=${this.loginChanged}
|
|
187
|
-
/>
|
|
188
|
-
</div>
|
|
189
|
-
<div>
|
|
190
|
-
<label for="show-dummy-snippets">Show dummy snippets:</label>
|
|
191
|
-
<input
|
|
192
|
-
type="checkbox"
|
|
193
|
-
id="show-dummy-snippets"
|
|
194
|
-
@click=${this.snippetsChanged}
|
|
195
|
-
/>
|
|
196
|
-
</div>
|
|
197
177
|
</div>
|
|
198
178
|
<div id="cell-gap-control">
|
|
199
179
|
<div>
|
|
@@ -224,6 +204,42 @@ let AppRoot = class AppRoot extends LitElement {
|
|
|
224
204
|
</div>
|
|
225
205
|
</div>
|
|
226
206
|
</div>
|
|
207
|
+
<div id="checkbox-controls">
|
|
208
|
+
<div class="checkbox-control">
|
|
209
|
+
<input
|
|
210
|
+
type="checkbox"
|
|
211
|
+
id="show-outline-check"
|
|
212
|
+
@click=${this.outlineChanged}
|
|
213
|
+
/>
|
|
214
|
+
<label for="show-outline-check">Show cell outlines</label>
|
|
215
|
+
</div>
|
|
216
|
+
<div class="checkbox-control">
|
|
217
|
+
<input
|
|
218
|
+
type="checkbox"
|
|
219
|
+
id="show-facet-group-outline-check"
|
|
220
|
+
@click=${this.toggleFacetGroupOutline}
|
|
221
|
+
/>
|
|
222
|
+
<label for="show-facet-group-outline-check">
|
|
223
|
+
Show facet group outlines
|
|
224
|
+
</label>
|
|
225
|
+
</div>
|
|
226
|
+
<div class="checkbox-control">
|
|
227
|
+
<input
|
|
228
|
+
type="checkbox"
|
|
229
|
+
id="simulate-login"
|
|
230
|
+
@click=${this.loginChanged}
|
|
231
|
+
/>
|
|
232
|
+
<label for="simulate-login">Simulate login</label>
|
|
233
|
+
</div>
|
|
234
|
+
<div class="checkbox-control">
|
|
235
|
+
<input
|
|
236
|
+
type="checkbox"
|
|
237
|
+
id="show-dummy-snippets"
|
|
238
|
+
@click=${this.snippetsChanged}
|
|
239
|
+
/>
|
|
240
|
+
<label for="show-dummy-snippets">Show dummy snippets</label>
|
|
241
|
+
</div>
|
|
242
|
+
</div>
|
|
227
243
|
</div>
|
|
228
244
|
|
|
229
245
|
<div id="collection-browser-container">
|
|
@@ -240,6 +256,7 @@ let AppRoot = class AppRoot extends LitElement {
|
|
|
240
256
|
.analyticsHandler=${this.analyticsHandler}
|
|
241
257
|
@visiblePageChanged=${this.visiblePageChanged}
|
|
242
258
|
@baseQueryChanged=${this.baseQueryChanged}
|
|
259
|
+
@searchTypeChanged=${this.searchTypeChanged}
|
|
243
260
|
>
|
|
244
261
|
</collection-browser>
|
|
245
262
|
</div>
|
|
@@ -249,7 +266,12 @@ let AppRoot = class AppRoot extends LitElement {
|
|
|
249
266
|
baseQueryChanged(e) {
|
|
250
267
|
this.searchQuery = e.detail.baseQuery;
|
|
251
268
|
}
|
|
269
|
+
/** Handler for search type changes coming from collection browser */
|
|
252
270
|
searchTypeChanged(e) {
|
|
271
|
+
this.searchType = e.detail;
|
|
272
|
+
}
|
|
273
|
+
/** Handler for user input selecting a search type */
|
|
274
|
+
searchTypeSelected(e) {
|
|
253
275
|
const target = e.target;
|
|
254
276
|
this.searchType =
|
|
255
277
|
target.value === 'fulltext' ? SearchType.FULLTEXT : SearchType.METADATA;
|
|
@@ -422,8 +444,17 @@ AppRoot.styles = css `
|
|
|
422
444
|
display: flex;
|
|
423
445
|
}
|
|
424
446
|
|
|
447
|
+
#search-and-page-inputs > form {
|
|
448
|
+
margin-right: 1rem;
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
.search-type {
|
|
452
|
+
margin-right: 1rem;
|
|
453
|
+
}
|
|
454
|
+
|
|
425
455
|
#cell-controls {
|
|
426
456
|
display: flex;
|
|
457
|
+
flex-wrap: wrap;
|
|
427
458
|
}
|
|
428
459
|
|
|
429
460
|
#cell-controls label {
|
|
@@ -431,10 +462,25 @@ AppRoot.styles = css `
|
|
|
431
462
|
width: 10rem;
|
|
432
463
|
}
|
|
433
464
|
|
|
465
|
+
#cell-size-control,
|
|
466
|
+
#cell-gap-control {
|
|
467
|
+
flex-basis: calc(50% - 1rem);
|
|
468
|
+
flex-grow: 1;
|
|
469
|
+
}
|
|
470
|
+
|
|
434
471
|
#cell-gap-control {
|
|
435
472
|
margin-left: 1rem;
|
|
436
473
|
}
|
|
437
474
|
|
|
475
|
+
#checkbox-controls {
|
|
476
|
+
padding-top: 0.5rem;
|
|
477
|
+
flex-wrap: wrap;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
.checkbox-control {
|
|
481
|
+
flex-basis: 50%;
|
|
482
|
+
}
|
|
483
|
+
|
|
438
484
|
#last-event {
|
|
439
485
|
background-color: aliceblue;
|
|
440
486
|
padding: 5px;
|
package/dist/src/app-root.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-root.js","sourceRoot":"","sources":["../../src/app-root.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-console */\nimport {\n AnalyticsEvent,\n AnalyticsManager,\n} from '@internetarchive/analytics-manager';\nimport {\n SearchService,\n SearchType,\n StringField,\n} from '@internetarchive/search-service';\nimport { LocalCache } from '@internetarchive/local-cache';\nimport { html, css, LitElement, PropertyValues } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { SharedResizeObserver } from '@internetarchive/shared-resize-observer';\nimport { CollectionNameCache } from '@internetarchive/collection-name-cache';\n\nimport type { ModalManagerInterface } from '@internetarchive/modal-manager';\nimport type { AnalyticsManagerInterface } from '@internetarchive/analytics-manager';\nimport type { CollectionBrowser } from '../src/collection-browser';\n\nimport '../src/collection-browser';\n\n@customElement('app-root')\nexport class AppRoot extends LitElement {\n private searchService = SearchService.default;\n\n private resizeObserver = new SharedResizeObserver();\n\n private localCache = new LocalCache();\n\n private collectionNameCache = new CollectionNameCache({\n searchService: this.searchService,\n localCache: this.localCache,\n });\n\n @state() private currentPage?: number;\n\n @state() private searchQuery?: string;\n\n @state() private cellWidth: number = 18;\n\n @state() private cellHeight: number = 29;\n\n @state() private rowGap: number = 1.7;\n\n @state() private colGap: number = 1.7;\n\n @state() private loggedIn: boolean = false;\n\n @state() private searchType: SearchType = SearchType.METADATA;\n\n @property({ type: Object, reflect: false }) latestAction?: AnalyticsEvent;\n\n @query('#base-query-field') private baseQueryField!: HTMLInputElement;\n\n @query('#page-number-input') private pageNumberInput!: HTMLInputElement;\n\n @query('collection-browser') private collectionBrowser!: CollectionBrowser;\n\n @query('modal-manager') private modalManager!: ModalManagerInterface;\n\n private analyticsManager = new AnalyticsManager();\n\n private analyticsHandler: AnalyticsManagerInterface = {\n sendPing: this.sendAnalytics.bind(this),\n sendEvent: this.sendAnalytics.bind(this),\n sendEventNoSampling: this.sendAnalytics.bind(this),\n };\n\n private sendAnalytics(ae: AnalyticsEvent) {\n console.log('Analytics Received ----', ae);\n this.latestAction = ae;\n this.analyticsManager?.sendEventNoSampling(ae);\n }\n\n private searchPressed(e: Event) {\n e.preventDefault();\n this.searchQuery = this.baseQueryField.value;\n if ((this.currentPage ?? 1) > 1) {\n this.collectionBrowser.goToPage(this.currentPage ?? 1);\n }\n }\n\n private changePagePressed(e: Event) {\n e.preventDefault();\n this.currentPage = this.pageNumberInput.valueAsNumber;\n this.collectionBrowser.goToPage(this.currentPage);\n }\n\n protected override updated(changed: PropertyValues): void {\n if (changed.has('currentPage') && this.currentPage) {\n this.pageNumberInput.value = this.currentPage.toString();\n }\n\n if (changed.has('searchQuery')) {\n this.queryUpdated();\n }\n }\n\n private queryUpdated() {\n this.collectionBrowser.baseQuery = this.searchQuery;\n }\n\n render() {\n return html`\n <div id=\"dev-tools\">\n <div id=\"search-and-page-inputs\">\n <form @submit=${this.searchPressed}>\n Query:\n <input\n type=\"text\"\n id=\"base-query-field\"\n .value=${this.searchQuery ?? ''}\n />\n <input type=\"submit\" value=\"Search\" />\n </form>\n <form @submit=${this.changePagePressed}>\n Page: <input type=\"number\" value=\"1\" id=\"page-number-input\" />\n <input type=\"submit\" value=\"Go\" />\n </form>\n </div>\n\n <div id=\"search-types\">\n Search type:\n <input\n type=\"radio\"\n id=\"metadata-search\"\n name=\"search-type\"\n value=\"metadata\"\n checked\n @click=${this.searchTypeChanged}\n />\n <label for=\"metadata-search\">Metadata</label>\n <input\n type=\"radio\"\n id=\"fulltext-search\"\n name=\"search-type\"\n value=\"fulltext\"\n @click=${this.searchTypeChanged}\n />\n <label for=\"fulltext-search\">Full text</label>\n </div>\n\n <div id=\"toggle-controls\">\n <button\n @click=${() => {\n const details =\n this.shadowRoot?.getElementById('cell-size-control');\n details?.classList.toggle('hidden');\n const rowGapControls =\n this.shadowRoot?.getElementById('cell-gap-control');\n rowGapControls?.classList.toggle('hidden');\n }}\n >\n Toggle Cell Controls\n </button>\n <button\n @click=${() => {\n const details = this.shadowRoot?.getElementById(\n 'latest-event-details'\n );\n details?.classList.toggle('hidden');\n }}\n >\n Last Event Captured\n </button>\n </div>\n\n <div id=\"last-event\">\n <pre id=\"latest-event-details\" class=\"hidden\">\n ${JSON.stringify(this.latestAction, null, 2)}\n </pre\n >\n </div>\n\n <div id=\"cell-controls\" class=\"hidden\">\n <div id=\"cell-size-control\">\n <div>\n <label for=\"cell-width-slider\">Minimum cell width:</label>\n <input\n type=\"range\"\n min=\"10\"\n max=\"100\"\n value=\"18\"\n step=\"0.1\"\n id=\"cell-width-slider\"\n @input=${this.widthChanged}\n />\n <span>${this.cellWidth}rem</span>\n </div>\n <div>\n <label for=\"cell-height-slider\">Cell height:</label>\n <input\n type=\"range\"\n min=\"10\"\n max=\"100\"\n value=\"29\"\n step=\"0.1\"\n id=\"cell-height-slider\"\n @input=${this.heightChanged}\n />\n <span>${this.cellHeight}rem</span>\n </div>\n <div>\n <label for=\"show-outline-check\">Show outlines:</label>\n <input\n type=\"checkbox\"\n id=\"show-outline-check\"\n @click=${this.outlineChanged}\n />\n </div>\n <div>\n <label for=\"show-facet-group-outline-check\"\n >Show Facet Group Outlines:</label\n >\n <input\n type=\"checkbox\"\n id=\"show-facet-group-outline-check\"\n @click=${this.toggleFacetGroupOutline}\n />\n </div>\n <div>\n <label for=\"simulate-login\">Simulate Login:</label>\n <input\n type=\"checkbox\"\n id=\"simulate-login\"\n @click=${this.loginChanged}\n />\n </div>\n <div>\n <label for=\"show-dummy-snippets\">Show dummy snippets:</label>\n <input\n type=\"checkbox\"\n id=\"show-dummy-snippets\"\n @click=${this.snippetsChanged}\n />\n </div>\n </div>\n <div id=\"cell-gap-control\">\n <div>\n <label for=\"cell-row-gap-slider\">Row gap:</label>\n <input\n type=\"range\"\n min=\"0\"\n max=\"5\"\n value=\"1.7\"\n step=\"0.1\"\n id=\"cell-row-gap-slider\"\n @input=${this.rowGapChanged}\n />\n <span>${this.rowGap}rem</span>\n </div>\n <div>\n <label for=\"cell-col-gap-slider\">Col gap:</label>\n <input\n type=\"range\"\n min=\"0\"\n max=\"5\"\n value=\"1.7\"\n step=\"0.1\"\n id=\"cell-col-gap-slider\"\n @input=${this.colGapChanged}\n />\n <span>${this.colGap}rem</span>\n </div>\n </div>\n </div>\n </div>\n\n <div id=\"collection-browser-container\">\n <collection-browser\n .baseNavigationUrl=${'https://archive.org'}\n .baseImageUrl=${'https://archive.org'}\n .searchService=${this.searchService}\n .searchType=${this.searchType}\n .resizeObserver=${this.resizeObserver}\n .collectionNameCache=${this.collectionNameCache}\n .showHistogramDatePicker=${true}\n .loggedIn=${this.loggedIn}\n .modalManager=${this.modalManager}\n .analyticsHandler=${this.analyticsHandler}\n @visiblePageChanged=${this.visiblePageChanged}\n @baseQueryChanged=${this.baseQueryChanged}\n >\n </collection-browser>\n </div>\n <modal-manager></modal-manager>\n `;\n }\n\n private baseQueryChanged(e: CustomEvent<{ baseQuery?: string }>) {\n this.searchQuery = e.detail.baseQuery;\n }\n\n private searchTypeChanged(e: Event) {\n const target = e.target as HTMLInputElement;\n this.searchType =\n target.value === 'fulltext' ? SearchType.FULLTEXT : SearchType.METADATA;\n\n // Re-perform the current search with the new search target\n this.reperformCurrentSearch();\n }\n\n private loginChanged(e: Event) {\n const target = e.target as HTMLInputElement;\n if (target.checked) {\n this.loggedIn = true;\n } else {\n this.loggedIn = false;\n }\n }\n\n private outlineChanged(e: Event) {\n const target = e.target as HTMLInputElement;\n if (target.checked) {\n this.collectionBrowser.style.setProperty(\n '--infiniteScrollerCellOutline',\n '1px solid #33D1FF'\n );\n } else {\n this.collectionBrowser.style.removeProperty(\n '--infiniteScrollerCellOutline'\n );\n }\n }\n\n private toggleFacetGroupOutline(e: Event) {\n const target = e.target as HTMLInputElement;\n if (target.checked) {\n this.collectionBrowser.classList.add('showFacetGroupOutlines');\n this.modalManager.classList.add('showFacetGroupOutlines');\n } else {\n this.collectionBrowser.classList.remove('showFacetGroupOutlines');\n this.modalManager.classList.remove('showFacetGroupOutlines');\n }\n }\n\n private async snippetsChanged(e: Event) {\n const target = e.target as HTMLInputElement;\n if (target.checked) {\n // Decorate the default search service with a wrapper that adds\n // dummy snippets to any successful searches\n this.searchService = {\n async search(params, searchType) {\n const searchResponse = await SearchService.default.search(\n params,\n searchType\n );\n searchResponse.success?.response.results.forEach(result => {\n Object.defineProperty(result, 'highlight', {\n value: new StringField([\n 'this is a text {{{snippet}}} block with potentially',\n 'multiple {{{snippets}}} and such',\n 'but the {{{snippet}}} block may be quite long perhaps',\n 'depending on how many {{{snippet}}} matches there are',\n 'there may be multiple lines of {{{snippets}}} to show',\n 'but each {{{snippet}}} should be relatively short',\n 'and {{{snippets}}} are each a {{{snippet}}} of text',\n 'but every {{{snippet}}} might have multiple matches',\n 'the {{{snippets}}} should be separated and surrounded by ellipses',\n ]),\n });\n });\n return searchResponse;\n },\n };\n } else {\n // Restore the default seach service\n this.searchService = SearchService.default;\n }\n\n // Re-perform the current search to show/hide the snippets immediately\n this.reperformCurrentSearch();\n }\n\n private async reperformCurrentSearch(): Promise<void> {\n const oldQuery = this.searchQuery;\n this.searchQuery = ''; // Should just reset to the placeholder\n await this.updateComplete;\n // For unclear reasons, Safari refuses to re-apply the old query until the next tick, hence:\n await new Promise(res => {\n setTimeout(res, 0);\n });\n this.searchQuery = oldQuery; // Re-apply the original query\n }\n\n private rowGapChanged(e: Event) {\n const input = e.target as HTMLInputElement;\n this.rowGap = parseFloat(input.value);\n this.collectionBrowser.style.setProperty(\n '--collectionBrowserRowGap',\n `${input.value}rem`\n );\n }\n\n private colGapChanged(e: Event) {\n const input = e.target as HTMLInputElement;\n this.colGap = parseFloat(input.value);\n this.collectionBrowser.style.setProperty(\n '--collectionBrowserColGap',\n `${input.value}rem`\n );\n }\n\n private widthChanged(e: Event) {\n const input = e.target as HTMLInputElement;\n this.cellWidth = parseFloat(input.value);\n this.collectionBrowser.style.setProperty(\n '--collectionBrowserCellMinWidth',\n `${input.value}rem`\n );\n }\n\n private heightChanged(e: Event) {\n const input = e.target as HTMLInputElement;\n this.cellHeight = parseFloat(input.value);\n this.collectionBrowser.style.setProperty(\n '--collectionBrowserCellMinHeight',\n `${input.value}rem`\n );\n this.collectionBrowser.style.setProperty(\n '--collectionBrowserCellMaxHeight',\n `${input.value}rem`\n );\n }\n\n private visiblePageChanged(e: CustomEvent<{ pageNumber: number }>) {\n const { pageNumber } = e.detail;\n if (pageNumber === this.currentPage) return;\n this.currentPage = pageNumber;\n }\n\n static styles = css`\n :host {\n display: block;\n --primaryButtonBGColor: #194880;\n --ia-theme-link-color: #4b64ff;\n }\n\n /* add the following styles to ensure proper modal visibility */\n body.modal-manager-open {\n overflow: hidden;\n }\n modal-manager {\n display: none;\n }\n modal-manager[mode='open'] {\n display: block;\n }\n modal-manager.more-search-facets {\n --modalWidth: 85rem;\n --modalBorder: 2px solid var(--primaryButtonBGColor, #194880);\n --modalTitleLineHeight: 4rem;\n --modalTitleFontSize: 1.8rem;\n --modalCornerRadius: 0;\n --modalBottomPadding: 0;\n --modalBottomMargin: 0;\n --modalScrollOffset: 0;\n --modalCornerRadius: 0.5rem;\n }\n\n input,\n button {\n font-size: 1.6rem;\n }\n\n collection-browser {\n margin-top: 20rem;\n }\n\n modal-manager.showFacetGroupOutlines,\n collection-browser.showFacetGroupOutlines {\n --facet-row-border-top: 1px solid red;\n --facet-row-border-bottom: 1px solid blue;\n }\n\n #base-query-field {\n width: 300px;\n }\n\n #dev-tools {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n -webkit-backdrop-filter: blur(10px);\n backdrop-filter: blur(10px);\n padding: 0.5rem 1rem;\n border: 1px solid black;\n font-size: 1.4rem;\n }\n\n #dev-tools > * {\n display: flex;\n }\n\n #cell-controls {\n display: flex;\n }\n\n #cell-controls label {\n display: inline-block;\n width: 10rem;\n }\n\n #cell-gap-control {\n margin-left: 1rem;\n }\n\n #last-event {\n background-color: aliceblue;\n padding: 5px;\n margin: 5px auto;\n }\n\n .hidden {\n display: none;\n }\n\n #toggle-controls {\n background-color: lightskyblue;\n padding: 5px;\n margin: 5px auto;\n }\n\n #search-types {\n margin: 5px auto;\n background-color: aliceblue;\n font-size: 1.6rem;\n }\n `;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"app-root.js","sourceRoot":"","sources":["../../src/app-root.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-console */\nimport {\n AnalyticsEvent,\n AnalyticsManager,\n} from '@internetarchive/analytics-manager';\nimport {\n SearchService,\n SearchServiceInterface,\n SearchType,\n StringField,\n} from '@internetarchive/search-service';\nimport { LocalCache } from '@internetarchive/local-cache';\nimport { html, css, LitElement, PropertyValues } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { SharedResizeObserver } from '@internetarchive/shared-resize-observer';\nimport { CollectionNameCache } from '@internetarchive/collection-name-cache';\n\nimport type { ModalManagerInterface } from '@internetarchive/modal-manager';\nimport type { AnalyticsManagerInterface } from '@internetarchive/analytics-manager';\nimport type { CollectionBrowser } from '../src/collection-browser';\n\nimport '../src/collection-browser';\n\n@customElement('app-root')\nexport class AppRoot extends LitElement {\n private searchService: SearchServiceInterface =\n this.initSearchServiceFromUrlParams();\n\n private resizeObserver = new SharedResizeObserver();\n\n private localCache = new LocalCache();\n\n private collectionNameCache = new CollectionNameCache({\n searchService: this.searchService,\n localCache: this.localCache,\n });\n\n @state() private currentPage?: number;\n\n @state() private searchQuery?: string;\n\n @state() private cellWidth: number = 18;\n\n @state() private cellHeight: number = 29;\n\n @state() private rowGap: number = 1.7;\n\n @state() private colGap: number = 1.7;\n\n @state() private loggedIn: boolean = false;\n\n @state() private searchType: SearchType = SearchType.METADATA;\n\n @property({ type: Object, reflect: false }) latestAction?: AnalyticsEvent;\n\n @query('#base-query-field') private baseQueryField!: HTMLInputElement;\n\n @query('#page-number-input') private pageNumberInput!: HTMLInputElement;\n\n @query('collection-browser') private collectionBrowser!: CollectionBrowser;\n\n @query('modal-manager') private modalManager!: ModalManagerInterface;\n\n private analyticsManager = new AnalyticsManager();\n\n private analyticsHandler: AnalyticsManagerInterface = {\n sendPing: this.sendAnalytics.bind(this),\n sendEvent: this.sendAnalytics.bind(this),\n sendEventNoSampling: this.sendAnalytics.bind(this),\n };\n\n private sendAnalytics(ae: AnalyticsEvent) {\n console.log('Analytics Received ----', ae);\n this.latestAction = ae;\n this.analyticsManager?.sendEventNoSampling(ae);\n }\n\n private initSearchServiceFromUrlParams() {\n const params = new URL(window.location.href).searchParams;\n return new SearchService({\n baseUrl: params.get('search_base_url') ?? undefined,\n servicePath: params.get('search_service_path') ?? undefined,\n debuggingEnabled: !!params.get('debugging') ?? undefined,\n });\n }\n\n private searchPressed(e: Event) {\n e.preventDefault();\n this.searchQuery = this.baseQueryField.value;\n if ((this.currentPage ?? 1) > 1) {\n this.collectionBrowser.goToPage(this.currentPage ?? 1);\n }\n }\n\n private changePagePressed(e: Event) {\n e.preventDefault();\n this.currentPage = this.pageNumberInput.valueAsNumber;\n this.collectionBrowser.goToPage(this.currentPage);\n }\n\n protected override updated(changed: PropertyValues): void {\n if (changed.has('currentPage') && this.currentPage) {\n this.pageNumberInput.value = this.currentPage.toString();\n }\n\n if (changed.has('searchQuery')) {\n this.queryUpdated();\n }\n }\n\n private queryUpdated() {\n this.collectionBrowser.baseQuery = this.searchQuery;\n }\n\n render() {\n return html`\n <div id=\"dev-tools\">\n <div id=\"search-and-page-inputs\">\n <form @submit=${this.searchPressed}>\n Query:\n <input\n type=\"text\"\n id=\"base-query-field\"\n .value=${this.searchQuery ?? ''}\n />\n <input type=\"submit\" value=\"Search\" />\n </form>\n <form @submit=${this.changePagePressed}>\n Page: <input type=\"number\" value=\"1\" id=\"page-number-input\" />\n <input type=\"submit\" value=\"Go\" />\n </form>\n </div>\n\n <div id=\"search-types\">\n Search type:\n <span class=\"search-type\">\n <input\n type=\"radio\"\n id=\"metadata-search\"\n name=\"search-type\"\n value=\"metadata\"\n ?checked=${this.searchType === SearchType.METADATA}\n @click=${this.searchTypeSelected}\n />\n <label for=\"metadata-search\">Metadata</label>\n </span>\n <span class=\"search-type\">\n <input\n type=\"radio\"\n id=\"fulltext-search\"\n name=\"search-type\"\n value=\"fulltext\"\n ?checked=${this.searchType === SearchType.FULLTEXT}\n @click=${this.searchTypeSelected}\n />\n <label for=\"fulltext-search\">Full text</label>\n </span>\n </div>\n\n <div id=\"toggle-controls\">\n <button\n @click=${() => {\n const details =\n this.shadowRoot?.getElementById('cell-size-control');\n details?.classList.toggle('hidden');\n const rowGapControls =\n this.shadowRoot?.getElementById('cell-gap-control');\n rowGapControls?.classList.toggle('hidden');\n }}\n >\n Toggle Cell Controls\n </button>\n <button\n @click=${() => {\n const details = this.shadowRoot?.getElementById(\n 'latest-event-details'\n );\n details?.classList.toggle('hidden');\n }}\n >\n Last Event Captured\n </button>\n </div>\n\n <div id=\"last-event\">\n <pre id=\"latest-event-details\" class=\"hidden\">\n ${JSON.stringify(this.latestAction, null, 2)}\n </pre\n >\n </div>\n\n <div id=\"cell-controls\" class=\"hidden\">\n <div id=\"cell-size-control\">\n <div>\n <label for=\"cell-width-slider\">Min cell width:</label>\n <input\n type=\"range\"\n min=\"10\"\n max=\"100\"\n value=\"18\"\n step=\"0.1\"\n id=\"cell-width-slider\"\n @input=${this.widthChanged}\n />\n <span>${this.cellWidth}rem</span>\n </div>\n <div>\n <label for=\"cell-height-slider\">Cell height:</label>\n <input\n type=\"range\"\n min=\"10\"\n max=\"100\"\n value=\"29\"\n step=\"0.1\"\n id=\"cell-height-slider\"\n @input=${this.heightChanged}\n />\n <span>${this.cellHeight}rem</span>\n </div>\n </div>\n <div id=\"cell-gap-control\">\n <div>\n <label for=\"cell-row-gap-slider\">Row gap:</label>\n <input\n type=\"range\"\n min=\"0\"\n max=\"5\"\n value=\"1.7\"\n step=\"0.1\"\n id=\"cell-row-gap-slider\"\n @input=${this.rowGapChanged}\n />\n <span>${this.rowGap}rem</span>\n </div>\n <div>\n <label for=\"cell-col-gap-slider\">Col gap:</label>\n <input\n type=\"range\"\n min=\"0\"\n max=\"5\"\n value=\"1.7\"\n step=\"0.1\"\n id=\"cell-col-gap-slider\"\n @input=${this.colGapChanged}\n />\n <span>${this.colGap}rem</span>\n </div>\n </div>\n </div>\n <div id=\"checkbox-controls\">\n <div class=\"checkbox-control\">\n <input\n type=\"checkbox\"\n id=\"show-outline-check\"\n @click=${this.outlineChanged}\n />\n <label for=\"show-outline-check\">Show cell outlines</label>\n </div>\n <div class=\"checkbox-control\">\n <input\n type=\"checkbox\"\n id=\"show-facet-group-outline-check\"\n @click=${this.toggleFacetGroupOutline}\n />\n <label for=\"show-facet-group-outline-check\">\n Show facet group outlines\n </label>\n </div>\n <div class=\"checkbox-control\">\n <input\n type=\"checkbox\"\n id=\"simulate-login\"\n @click=${this.loginChanged}\n />\n <label for=\"simulate-login\">Simulate login</label>\n </div>\n <div class=\"checkbox-control\">\n <input\n type=\"checkbox\"\n id=\"show-dummy-snippets\"\n @click=${this.snippetsChanged}\n />\n <label for=\"show-dummy-snippets\">Show dummy snippets</label>\n </div>\n </div>\n </div>\n\n <div id=\"collection-browser-container\">\n <collection-browser\n .baseNavigationUrl=${'https://archive.org'}\n .baseImageUrl=${'https://archive.org'}\n .searchService=${this.searchService}\n .searchType=${this.searchType}\n .resizeObserver=${this.resizeObserver}\n .collectionNameCache=${this.collectionNameCache}\n .showHistogramDatePicker=${true}\n .loggedIn=${this.loggedIn}\n .modalManager=${this.modalManager}\n .analyticsHandler=${this.analyticsHandler}\n @visiblePageChanged=${this.visiblePageChanged}\n @baseQueryChanged=${this.baseQueryChanged}\n @searchTypeChanged=${this.searchTypeChanged}\n >\n </collection-browser>\n </div>\n <modal-manager></modal-manager>\n `;\n }\n\n private baseQueryChanged(e: CustomEvent<{ baseQuery?: string }>): void {\n this.searchQuery = e.detail.baseQuery;\n }\n\n /** Handler for search type changes coming from collection browser */\n private searchTypeChanged(e: CustomEvent<SearchType>): void {\n this.searchType = e.detail;\n }\n\n /** Handler for user input selecting a search type */\n private searchTypeSelected(e: Event) {\n const target = e.target as HTMLInputElement;\n this.searchType =\n target.value === 'fulltext' ? SearchType.FULLTEXT : SearchType.METADATA;\n\n // Re-perform the current search with the new search target\n this.reperformCurrentSearch();\n }\n\n private loginChanged(e: Event) {\n const target = e.target as HTMLInputElement;\n if (target.checked) {\n this.loggedIn = true;\n } else {\n this.loggedIn = false;\n }\n }\n\n private outlineChanged(e: Event) {\n const target = e.target as HTMLInputElement;\n if (target.checked) {\n this.collectionBrowser.style.setProperty(\n '--infiniteScrollerCellOutline',\n '1px solid #33D1FF'\n );\n } else {\n this.collectionBrowser.style.removeProperty(\n '--infiniteScrollerCellOutline'\n );\n }\n }\n\n private toggleFacetGroupOutline(e: Event) {\n const target = e.target as HTMLInputElement;\n if (target.checked) {\n this.collectionBrowser.classList.add('showFacetGroupOutlines');\n this.modalManager.classList.add('showFacetGroupOutlines');\n } else {\n this.collectionBrowser.classList.remove('showFacetGroupOutlines');\n this.modalManager.classList.remove('showFacetGroupOutlines');\n }\n }\n\n private async snippetsChanged(e: Event) {\n const target = e.target as HTMLInputElement;\n if (target.checked) {\n // Decorate the default search service with a wrapper that adds\n // dummy snippets to any successful searches\n this.searchService = {\n async search(params, searchType) {\n const searchResponse = await SearchService.default.search(\n params,\n searchType\n );\n searchResponse.success?.response.results.forEach(result => {\n Object.defineProperty(result, 'highlight', {\n value: new StringField([\n 'this is a text {{{snippet}}} block with potentially',\n 'multiple {{{snippets}}} and such',\n 'but the {{{snippet}}} block may be quite long perhaps',\n 'depending on how many {{{snippet}}} matches there are',\n 'there may be multiple lines of {{{snippets}}} to show',\n 'but each {{{snippet}}} should be relatively short',\n 'and {{{snippets}}} are each a {{{snippet}}} of text',\n 'but every {{{snippet}}} might have multiple matches',\n 'the {{{snippets}}} should be separated and surrounded by ellipses',\n ]),\n });\n });\n return searchResponse;\n },\n };\n } else {\n // Restore the default seach service\n this.searchService = SearchService.default;\n }\n\n // Re-perform the current search to show/hide the snippets immediately\n this.reperformCurrentSearch();\n }\n\n private async reperformCurrentSearch(): Promise<void> {\n const oldQuery = this.searchQuery;\n this.searchQuery = ''; // Should just reset to the placeholder\n await this.updateComplete;\n // For unclear reasons, Safari refuses to re-apply the old query until the next tick, hence:\n await new Promise(res => {\n setTimeout(res, 0);\n });\n this.searchQuery = oldQuery; // Re-apply the original query\n }\n\n private rowGapChanged(e: Event) {\n const input = e.target as HTMLInputElement;\n this.rowGap = parseFloat(input.value);\n this.collectionBrowser.style.setProperty(\n '--collectionBrowserRowGap',\n `${input.value}rem`\n );\n }\n\n private colGapChanged(e: Event) {\n const input = e.target as HTMLInputElement;\n this.colGap = parseFloat(input.value);\n this.collectionBrowser.style.setProperty(\n '--collectionBrowserColGap',\n `${input.value}rem`\n );\n }\n\n private widthChanged(e: Event) {\n const input = e.target as HTMLInputElement;\n this.cellWidth = parseFloat(input.value);\n this.collectionBrowser.style.setProperty(\n '--collectionBrowserCellMinWidth',\n `${input.value}rem`\n );\n }\n\n private heightChanged(e: Event) {\n const input = e.target as HTMLInputElement;\n this.cellHeight = parseFloat(input.value);\n this.collectionBrowser.style.setProperty(\n '--collectionBrowserCellMinHeight',\n `${input.value}rem`\n );\n this.collectionBrowser.style.setProperty(\n '--collectionBrowserCellMaxHeight',\n `${input.value}rem`\n );\n }\n\n private visiblePageChanged(e: CustomEvent<{ pageNumber: number }>) {\n const { pageNumber } = e.detail;\n if (pageNumber === this.currentPage) return;\n this.currentPage = pageNumber;\n }\n\n static styles = css`\n :host {\n display: block;\n --primaryButtonBGColor: #194880;\n --ia-theme-link-color: #4b64ff;\n }\n\n /* add the following styles to ensure proper modal visibility */\n body.modal-manager-open {\n overflow: hidden;\n }\n modal-manager {\n display: none;\n }\n modal-manager[mode='open'] {\n display: block;\n }\n modal-manager.more-search-facets {\n --modalWidth: 85rem;\n --modalBorder: 2px solid var(--primaryButtonBGColor, #194880);\n --modalTitleLineHeight: 4rem;\n --modalTitleFontSize: 1.8rem;\n --modalCornerRadius: 0;\n --modalBottomPadding: 0;\n --modalBottomMargin: 0;\n --modalScrollOffset: 0;\n --modalCornerRadius: 0.5rem;\n }\n\n input,\n button {\n font-size: 1.6rem;\n }\n\n collection-browser {\n margin-top: 20rem;\n }\n\n modal-manager.showFacetGroupOutlines,\n collection-browser.showFacetGroupOutlines {\n --facet-row-border-top: 1px solid red;\n --facet-row-border-bottom: 1px solid blue;\n }\n\n #base-query-field {\n width: 300px;\n }\n\n #dev-tools {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n -webkit-backdrop-filter: blur(10px);\n backdrop-filter: blur(10px);\n padding: 0.5rem 1rem;\n border: 1px solid black;\n font-size: 1.4rem;\n }\n\n #dev-tools > * {\n display: flex;\n }\n\n #search-and-page-inputs > form {\n margin-right: 1rem;\n }\n\n .search-type {\n margin-right: 1rem;\n }\n\n #cell-controls {\n display: flex;\n flex-wrap: wrap;\n }\n\n #cell-controls label {\n display: inline-block;\n width: 10rem;\n }\n\n #cell-size-control,\n #cell-gap-control {\n flex-basis: calc(50% - 1rem);\n flex-grow: 1;\n }\n\n #cell-gap-control {\n margin-left: 1rem;\n }\n\n #checkbox-controls {\n padding-top: 0.5rem;\n flex-wrap: wrap;\n }\n\n .checkbox-control {\n flex-basis: 50%;\n }\n\n #last-event {\n background-color: aliceblue;\n padding: 5px;\n margin: 5px auto;\n }\n\n .hidden {\n display: none;\n }\n\n #toggle-controls {\n background-color: lightskyblue;\n padding: 5px;\n margin: 5px auto;\n }\n\n #search-types {\n margin: 5px auto;\n background-color: aliceblue;\n font-size: 1.6rem;\n }\n `;\n}\n"]}
|
|
@@ -61,7 +61,6 @@ export declare class CollectionBrowser extends LitElement implements InfiniteScr
|
|
|
61
61
|
private pagesToRender;
|
|
62
62
|
private searchResultsLoading;
|
|
63
63
|
private facetsLoading;
|
|
64
|
-
private lendingFacetLoading;
|
|
65
64
|
private fullYearAggregationLoading;
|
|
66
65
|
private aggregations?;
|
|
67
66
|
private fullYearsHistogramAggregation;
|
|
@@ -152,6 +151,7 @@ export declare class CollectionBrowser extends LitElement implements InfiniteScr
|
|
|
152
151
|
disconnectedCallback(): void;
|
|
153
152
|
handleResize(entry: ResizeObserverEntry): void;
|
|
154
153
|
private emitBaseQueryChanged;
|
|
154
|
+
private emitSearchTypeChanged;
|
|
155
155
|
private disconnectResizeObserver;
|
|
156
156
|
private setupResizeObserver;
|
|
157
157
|
/**
|
|
@@ -183,7 +183,6 @@ export declare class CollectionBrowser extends LitElement implements InfiniteScr
|
|
|
183
183
|
facetsChanged(e: CustomEvent<SelectedFacets>): void;
|
|
184
184
|
facetClickHandler(name: FacetOption, facetSelected: boolean, negative: boolean): void;
|
|
185
185
|
private fetchFacets;
|
|
186
|
-
private fetchLendingFacet;
|
|
187
186
|
/**
|
|
188
187
|
* If we haven't changed the query, we don't need to fetch the full year histogram
|
|
189
188
|
*
|
|
@@ -55,7 +55,6 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
55
55
|
this.pagesToRender = this.initialPageNumber;
|
|
56
56
|
this.searchResultsLoading = false;
|
|
57
57
|
this.facetsLoading = false;
|
|
58
|
-
this.lendingFacetLoading = false;
|
|
59
58
|
this.fullYearAggregationLoading = false;
|
|
60
59
|
this.mobileView = false;
|
|
61
60
|
this.mobileFacetsVisible = false;
|
|
@@ -170,7 +169,8 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
170
169
|
if (!this.baseQuery) {
|
|
171
170
|
this.placeholderType = 'empty-query';
|
|
172
171
|
}
|
|
173
|
-
if (!this.searchResultsLoading && this.totalResults === 0)
|
|
172
|
+
if ((!this.searchResultsLoading && this.totalResults === 0) ||
|
|
173
|
+
!this.searchService) {
|
|
174
174
|
this.placeholderType = 'null-result';
|
|
175
175
|
}
|
|
176
176
|
}
|
|
@@ -210,7 +210,6 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
210
210
|
</div>
|
|
211
211
|
</div>
|
|
212
212
|
<div id="right-column" class="column">
|
|
213
|
-
${this.searchResultsLoading ? this.loadingTemplate : nothing}
|
|
214
213
|
${this.sortFilterBarTemplate}
|
|
215
214
|
${this.displayMode === `list-compact`
|
|
216
215
|
? this.listHeaderTemplate
|
|
@@ -337,9 +336,7 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
337
336
|
this.selectedCreatorFilter = e.detail.selectedLetter;
|
|
338
337
|
}
|
|
339
338
|
get facetDataLoading() {
|
|
340
|
-
return
|
|
341
|
-
this.lendingFacetLoading ||
|
|
342
|
-
this.fullYearAggregationLoading);
|
|
339
|
+
return this.facetsLoading || this.fullYearAggregationLoading;
|
|
343
340
|
}
|
|
344
341
|
get mobileFacetsTemplate() {
|
|
345
342
|
return html `
|
|
@@ -364,7 +361,6 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
364
361
|
}
|
|
365
362
|
get facetsTemplate() {
|
|
366
363
|
return html `
|
|
367
|
-
${this.facetsLoading ? this.loadingTemplate : nothing}
|
|
368
364
|
<collection-facets
|
|
369
365
|
@facetsChanged=${this.facetsChanged}
|
|
370
366
|
@histogramDateRangeUpdated=${this.histogramDateRangeUpdated}
|
|
@@ -453,6 +449,9 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
453
449
|
if (changed.has('baseQuery')) {
|
|
454
450
|
this.emitBaseQueryChanged();
|
|
455
451
|
}
|
|
452
|
+
if (changed.has('searchType')) {
|
|
453
|
+
this.emitSearchTypeChanged();
|
|
454
|
+
}
|
|
456
455
|
if (changed.has('currentPage') || changed.has('displayMode')) {
|
|
457
456
|
this.persistState();
|
|
458
457
|
}
|
|
@@ -515,6 +514,11 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
515
514
|
},
|
|
516
515
|
}));
|
|
517
516
|
}
|
|
517
|
+
emitSearchTypeChanged() {
|
|
518
|
+
this.dispatchEvent(new CustomEvent('searchTypeChanged', {
|
|
519
|
+
detail: this.searchType,
|
|
520
|
+
}));
|
|
521
|
+
}
|
|
518
522
|
disconnectResizeObserver(resizeObserver) {
|
|
519
523
|
resizeObserver.removeObserver({
|
|
520
524
|
target: this.contentContainer,
|
|
@@ -555,7 +559,6 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
555
559
|
this.dispatchEvent(event);
|
|
556
560
|
}
|
|
557
561
|
async handleQueryChange() {
|
|
558
|
-
var _a;
|
|
559
562
|
// only reset if the query has actually changed
|
|
560
563
|
if (!this.searchService || this.pageFetchQueryKey === this.previousQueryKey)
|
|
561
564
|
return;
|
|
@@ -574,14 +577,9 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
574
577
|
this.persistState();
|
|
575
578
|
this.historyPopOccurred = false;
|
|
576
579
|
}
|
|
577
|
-
// Ensure lending aggregations don't carry over to non-metadata searches
|
|
578
|
-
if (this.searchType !== SearchType.METADATA) {
|
|
579
|
-
(_a = this.aggregations) === null || _a === void 0 ? true : delete _a.lending;
|
|
580
|
-
}
|
|
581
580
|
await Promise.all([
|
|
582
581
|
this.doInitialPageFetch(),
|
|
583
582
|
this.fetchFacets(),
|
|
584
|
-
this.fetchLendingFacet(),
|
|
585
583
|
this.fetchFullYearHistogram(),
|
|
586
584
|
]);
|
|
587
585
|
}
|
|
@@ -600,6 +598,8 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
600
598
|
var _a, _b, _c, _d, _e, _f;
|
|
601
599
|
const restorationState = this.restorationStateHandler.getRestorationState();
|
|
602
600
|
this.displayMode = restorationState.displayMode;
|
|
601
|
+
if (restorationState.searchType != null)
|
|
602
|
+
this.searchType = restorationState.searchType;
|
|
603
603
|
this.selectedSort = (_a = restorationState.selectedSort) !== null && _a !== void 0 ? _a : SortField.relevance;
|
|
604
604
|
this.sortDirection = (_b = restorationState.sortDirection) !== null && _b !== void 0 ? _b : null;
|
|
605
605
|
this.selectedTitleFilter = (_c = restorationState.selectedTitleFilter) !== null && _c !== void 0 ? _c : null;
|
|
@@ -621,6 +621,7 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
621
621
|
var _a, _b, _c, _d, _e;
|
|
622
622
|
const restorationState = {
|
|
623
623
|
displayMode: this.displayMode,
|
|
624
|
+
searchType: this.searchType,
|
|
624
625
|
sortParam: (_a = this.sortParam) !== null && _a !== void 0 ? _a : undefined,
|
|
625
626
|
selectedSort: this.selectedSort,
|
|
626
627
|
sortDirection: (_b = this.sortDirection) !== null && _b !== void 0 ? _b : undefined,
|
|
@@ -736,33 +737,7 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
736
737
|
this.previousSearchType = this.searchType;
|
|
737
738
|
const results = await ((_a = this.searchService) === null || _a === void 0 ? void 0 : _a.search(params, this.searchType));
|
|
738
739
|
this.facetsLoading = false;
|
|
739
|
-
this.aggregations =
|
|
740
|
-
...this.aggregations,
|
|
741
|
-
...(_b = results === null || results === void 0 ? void 0 : results.success) === null || _b === void 0 ? void 0 : _b.response.aggregations,
|
|
742
|
-
};
|
|
743
|
-
}
|
|
744
|
-
async fetchLendingFacet() {
|
|
745
|
-
var _a, _b;
|
|
746
|
-
// Only retrieve lending facet for metadata searches
|
|
747
|
-
if (this.searchType !== SearchType.METADATA)
|
|
748
|
-
return;
|
|
749
|
-
if (!this.fullQuery)
|
|
750
|
-
return;
|
|
751
|
-
const params = {
|
|
752
|
-
query: this.fullQuery,
|
|
753
|
-
rows: 0,
|
|
754
|
-
aggregations: {
|
|
755
|
-
simpleParams: ['lending___status'],
|
|
756
|
-
},
|
|
757
|
-
aggregationsSize: 10, // Larger size to ensure we get all possible statuses
|
|
758
|
-
};
|
|
759
|
-
this.lendingFacetLoading = true;
|
|
760
|
-
const results = await ((_a = this.searchService) === null || _a === void 0 ? void 0 : _a.search(params, this.searchType));
|
|
761
|
-
this.lendingFacetLoading = false;
|
|
762
|
-
this.aggregations = {
|
|
763
|
-
...this.aggregations,
|
|
764
|
-
...(_b = results === null || results === void 0 ? void 0 : results.success) === null || _b === void 0 ? void 0 : _b.response.aggregations,
|
|
765
|
-
};
|
|
740
|
+
this.aggregations = (_b = results === null || results === void 0 ? void 0 : results.success) === null || _b === void 0 ? void 0 : _b.response.aggregations;
|
|
766
741
|
}
|
|
767
742
|
/**
|
|
768
743
|
* The query key is a string that uniquely identifies the current query
|
|
@@ -782,7 +757,7 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
782
757
|
* case that @ximm put it place.
|
|
783
758
|
*/
|
|
784
759
|
async fetchFullYearHistogram() {
|
|
785
|
-
var _a, _b, _c, _d;
|
|
760
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
786
761
|
const { fullQueryNoDateKey } = this;
|
|
787
762
|
if (!this.fullQueryWithoutDate ||
|
|
788
763
|
fullQueryNoDateKey === this.previousFullQueryNoDate)
|
|
@@ -800,7 +775,7 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
800
775
|
const results = await ((_a = this.searchService) === null || _a === void 0 ? void 0 : _a.search(params, this.searchType));
|
|
801
776
|
this.fullYearAggregationLoading = false;
|
|
802
777
|
this.fullYearsHistogramAggregation =
|
|
803
|
-
(_d = (_c = (_b = results === null || results === void 0 ? void 0 : results.success) === null || _b === void 0 ? void 0 : _b.response) === null || _c === void 0 ? void 0 : _c.aggregations) === null || _d === void 0 ? void 0 : _d.year_histogram;
|
|
778
|
+
(_e = (_d = (_c = (_b = results === null || results === void 0 ? void 0 : results.success) === null || _b === void 0 ? void 0 : _b.response) === null || _c === void 0 ? void 0 : _c.aggregations) === null || _d === void 0 ? void 0 : _d.year_histogram) !== null && _e !== void 0 ? _e : (_h = (_g = (_f = results === null || results === void 0 ? void 0 : results.success) === null || _f === void 0 ? void 0 : _f.response) === null || _g === void 0 ? void 0 : _g.aggregations) === null || _h === void 0 ? void 0 : _h['year-histogram']; // Temp fix until PPS FTS key is fixed to use underscore
|
|
804
779
|
}
|
|
805
780
|
scrollToPage(pageNumber) {
|
|
806
781
|
const cellIndexToScrollTo = this.pageSize * (pageNumber - 1);
|
|
@@ -936,7 +911,7 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
936
911
|
const datasource = { ...this.dataSource };
|
|
937
912
|
const tiles = [];
|
|
938
913
|
results === null || results === void 0 ? void 0 : results.forEach(result => {
|
|
939
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10;
|
|
914
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11;
|
|
940
915
|
if (!result.identifier)
|
|
941
916
|
return;
|
|
942
917
|
let loginRequired = false;
|
|
@@ -979,6 +954,7 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
979
954
|
title: this.etreeTitle((_5 = result.title) === null || _5 === void 0 ? void 0 : _5.value, (_6 = result.mediatype) === null || _6 === void 0 ? void 0 : _6.value, (_7 = result.collection) === null || _7 === void 0 ? void 0 : _7.values),
|
|
980
955
|
volume: (_8 = result.volume) === null || _8 === void 0 ? void 0 : _8.value,
|
|
981
956
|
viewCount: (_10 = (_9 = result.downloads) === null || _9 === void 0 ? void 0 : _9.value) !== null && _10 !== void 0 ? _10 : 0,
|
|
957
|
+
weeklyViewCount: (_11 = result.week) === null || _11 === void 0 ? void 0 : _11.value,
|
|
982
958
|
loginRequired,
|
|
983
959
|
contentWarning,
|
|
984
960
|
});
|
|
@@ -1161,7 +1137,7 @@ CollectionBrowser.styles = css `
|
|
|
1161
1137
|
|
|
1162
1138
|
#results-total {
|
|
1163
1139
|
display: flex;
|
|
1164
|
-
align-items:
|
|
1140
|
+
align-items: baseline;
|
|
1165
1141
|
margin-bottom: 5rem;
|
|
1166
1142
|
}
|
|
1167
1143
|
|
|
@@ -1176,9 +1152,8 @@ CollectionBrowser.styles = css `
|
|
|
1176
1152
|
}
|
|
1177
1153
|
|
|
1178
1154
|
#big-results-label {
|
|
1179
|
-
font-size:
|
|
1155
|
+
font-size: 1.4rem;
|
|
1180
1156
|
font-weight: 200;
|
|
1181
|
-
text-transform: uppercase;
|
|
1182
1157
|
}
|
|
1183
1158
|
|
|
1184
1159
|
#list-header {
|
|
@@ -1356,9 +1331,6 @@ __decorate([
|
|
|
1356
1331
|
__decorate([
|
|
1357
1332
|
state()
|
|
1358
1333
|
], CollectionBrowser.prototype, "facetsLoading", void 0);
|
|
1359
|
-
__decorate([
|
|
1360
|
-
state()
|
|
1361
|
-
], CollectionBrowser.prototype, "lendingFacetLoading", void 0);
|
|
1362
1334
|
__decorate([
|
|
1363
1335
|
state()
|
|
1364
1336
|
], CollectionBrowser.prototype, "fullYearAggregationLoading", void 0);
|