@internetarchive/collection-browser 0.4.15-alpha.8 → 0.4.15

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.
@@ -52,6 +52,9 @@ let AppRoot = class AppRoot extends LitElement {
52
52
  e.preventDefault();
53
53
  this.searchQuery = this.baseQueryField.value;
54
54
  this.collectionBrowser.searchType = this.searchType;
55
+ // Need to request a search in cases where the search type was previously changed but not the query.
56
+ // If the query was changed above, this should be a no-op.
57
+ this.collectionBrowser.requestSearch();
55
58
  if (((_a = this.currentPage) !== null && _a !== void 0 ? _a : 1) > 1) {
56
59
  this.collectionBrowser.goToPage((_b = this.currentPage) !== null && _b !== void 0 ? _b : 1);
57
60
  }
@@ -106,7 +109,7 @@ let AppRoot = class AppRoot extends LitElement {
106
109
  id="metadata-search"
107
110
  name="search-type"
108
111
  value="metadata"
109
- .checked=${this.searchType === SearchType.METADATA}
112
+ ?checked=${this.searchType === SearchType.METADATA}
110
113
  @click=${this.searchTypeSelected}
111
114
  />
112
115
  <label for="metadata-search">Metadata</label>
@@ -117,7 +120,7 @@ let AppRoot = class AppRoot extends LitElement {
117
120
  id="fulltext-search"
118
121
  name="search-type"
119
122
  value="fulltext"
120
- .checked=${this.searchType === SearchType.FULLTEXT}
123
+ ?checked=${this.searchType === SearchType.FULLTEXT}
121
124
  @click=${this.searchTypeSelected}
122
125
  />
123
126
  <label for="fulltext-search">Full text</label>
@@ -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 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?.sendEvent(ae);\n }\n\n private initSearchServiceFromUrlParams() {\n const params = new URL(window.location.href).searchParams;\n return new SearchService({\n includeCredentials: false,\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 this.collectionBrowser.searchType = this.searchType;\n\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 private get getClass() {\n const searchParams = new URLSearchParams(window.location.search);\n\n return searchParams.get('hide-dev-tools') ? 'hidden' : '';\n }\n\n render() {\n return html`\n <div class=\"dev-tool-container\">\n <div id=\"dev-tools\" class=${this.getClass}>\n <div id=\"search-and-page-inputs\">\n <form @submit=${this.searchPressed}>\n <label for=\"base-query-field\"> Query: </label>\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 <label for=\"page-number-input\"> Page: </label>\n <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 class=\"checkbox-control\">\n <input\n type=\"checkbox\"\n id=\"enable-date-picker\"\n checked\n @click=${this.datePickerChanged}\n />\n <label for=\"enable-date-picker\">Enable date picker</label>\n </div>\n </div>\n </div>\n <button id=\"toggle-dev-tools-btn\" @click=${this.toggleDevTools}>\n Toggle Search Controls\n </button>\n </div>\n <div id=\"collection-browser-container\">\n <collection-browser\n .baseNavigationUrl=${'https://archive.org'}\n .baseImageUrl=${'https://archive.org'}\n .searchService=${this.searchService}\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\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 toggleDevTools() {\n const pageUrl = new URL(window.location.href);\n const { searchParams } = pageUrl;\n\n if (searchParams.get('hide-dev-tools')) {\n searchParams.delete('hide-dev-tools');\n } else {\n searchParams.set('hide-dev-tools', 'true');\n }\n\n this.shadowRoot?.getElementById('dev-tools')?.classList.toggle('hidden');\n\n if (window.history.replaceState) {\n window.history.replaceState(\n {\n path: pageUrl.toString(),\n },\n '',\n pageUrl.toString()\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 datePickerChanged(e: Event) {\n const target = e.target as HTMLInputElement;\n this.collectionBrowser.showHistogramDatePicker = target.checked;\n\n // When disabling the date picker from the demo app, also clear any existing date range params\n if (!this.collectionBrowser.showHistogramDatePicker) {\n this.collectionBrowser.minSelectedDate = undefined;\n this.collectionBrowser.maxSelectedDate = undefined;\n }\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 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-tool-container {\n position: relative;\n }\n #dev-tools {\n position: relative;\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 width: 75%;\n background: #ffffffb3;\n }\n\n #dev-tools > * {\n display: flex;\n }\n\n #toggle-dev-tools-btn {\n position: fixed;\n left: 77.4%;\n top: 0;\n background: red;\n padding: 5px;\n color: white;\n font-size: 1.4rem;\n margin: 0;\n z-index: 1;\n cursor: pointer;\n }\n\n #search-and-page-inputs {\n flex-wrap: wrap;\n row-gap: 2px;\n }\n\n #search-and-page-inputs > form {\n margin-right: 1rem;\n }\n\n #search-and-page-inputs label {\n display: inline-block;\n min-width: 50px;\n }\n\n #page-number-input {\n width: 75px;\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"]}
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?.sendEvent(ae);\n }\n\n private initSearchServiceFromUrlParams() {\n const params = new URL(window.location.href).searchParams;\n return new SearchService({\n includeCredentials: false,\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 this.collectionBrowser.searchType = this.searchType;\n\n // Need to request a search in cases where the search type was previously changed but not the query.\n // If the query was changed above, this should be a no-op.\n this.collectionBrowser.requestSearch();\n\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 private get getClass() {\n const searchParams = new URLSearchParams(window.location.search);\n\n return searchParams.get('hide-dev-tools') ? 'hidden' : '';\n }\n\n render() {\n return html`\n <div class=\"dev-tool-container\">\n <div id=\"dev-tools\" class=${this.getClass}>\n <div id=\"search-and-page-inputs\">\n <form @submit=${this.searchPressed}>\n <label for=\"base-query-field\"> Query: </label>\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 <label for=\"page-number-input\"> Page: </label>\n <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 class=\"checkbox-control\">\n <input\n type=\"checkbox\"\n id=\"enable-date-picker\"\n checked\n @click=${this.datePickerChanged}\n />\n <label for=\"enable-date-picker\">Enable date picker</label>\n </div>\n </div>\n </div>\n <button id=\"toggle-dev-tools-btn\" @click=${this.toggleDevTools}>\n Toggle Search Controls\n </button>\n </div>\n <div id=\"collection-browser-container\">\n <collection-browser\n .baseNavigationUrl=${'https://archive.org'}\n .baseImageUrl=${'https://archive.org'}\n .searchService=${this.searchService}\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\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 toggleDevTools() {\n const pageUrl = new URL(window.location.href);\n const { searchParams } = pageUrl;\n\n if (searchParams.get('hide-dev-tools')) {\n searchParams.delete('hide-dev-tools');\n } else {\n searchParams.set('hide-dev-tools', 'true');\n }\n\n this.shadowRoot?.getElementById('dev-tools')?.classList.toggle('hidden');\n\n if (window.history.replaceState) {\n window.history.replaceState(\n {\n path: pageUrl.toString(),\n },\n '',\n pageUrl.toString()\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 datePickerChanged(e: Event) {\n const target = e.target as HTMLInputElement;\n this.collectionBrowser.showHistogramDatePicker = target.checked;\n\n // When disabling the date picker from the demo app, also clear any existing date range params\n if (!this.collectionBrowser.showHistogramDatePicker) {\n this.collectionBrowser.minSelectedDate = undefined;\n this.collectionBrowser.maxSelectedDate = undefined;\n }\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 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-tool-container {\n position: relative;\n }\n #dev-tools {\n position: relative;\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 width: 75%;\n background: #ffffffb3;\n }\n\n #dev-tools > * {\n display: flex;\n }\n\n #toggle-dev-tools-btn {\n position: fixed;\n left: 77.4%;\n top: 0;\n background: red;\n padding: 5px;\n color: white;\n font-size: 1.4rem;\n margin: 0;\n z-index: 1;\n cursor: pointer;\n }\n\n #search-and-page-inputs {\n flex-wrap: wrap;\n row-gap: 2px;\n }\n\n #search-and-page-inputs > form {\n margin-right: 1rem;\n }\n\n #search-and-page-inputs label {\n display: inline-block;\n min-width: 50px;\n }\n\n #page-number-input {\n width: 75px;\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"]}
@@ -129,6 +129,11 @@ export declare class CollectionBrowser extends LitElement implements InfiniteScr
129
129
  * any facet buckets than have been selected or negated, or false otherwise.
130
130
  */
131
131
  private get hasCheckedFacets();
132
+ /**
133
+ * Manually requests to perform a search, which will only be executed if one of
134
+ * the query, the search type, or the sort has changed.
135
+ */
136
+ requestSearch(): void;
132
137
  render(): TemplateResult<1>;
133
138
  private setPlaceholderType;
134
139
  private get emptyPlaceholderTemplate();
@@ -240,6 +245,11 @@ export declare class CollectionBrowser extends LitElement implements InfiniteScr
240
245
  * no longer relevant.
241
246
  */
242
247
  private get pageFetchQueryKey();
248
+ /**
249
+ * Similar to `pageFetchQueryKey` above, but excludes sort fields since they
250
+ * are not relevant in determining aggregation queries.
251
+ */
252
+ private get facetFetchQueryKey();
243
253
  private pageFetchesInProgress;
244
254
  fetchPage(pageNumber: number): Promise<void>;
245
255
  private preloadCollectionNames;
@@ -138,11 +138,9 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
138
138
  * in the options object.
139
139
  */
140
140
  clearFilters({ facets = true, dateRange = true, letterFilters = true, sort = false, } = {}) {
141
- console.log('clearing filters');
142
141
  // Don't bother clearing facets if none are checked, so that we don't
143
142
  // trigger unnecessary update cycles.
144
143
  if (facets && this.hasCheckedFacets) {
145
- console.log('clearing facets');
146
144
  this.selectedFacets = getDefaultSelectedFacets();
147
145
  }
148
146
  if (dateRange) {
@@ -176,6 +174,13 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
176
174
  }
177
175
  return false;
178
176
  }
177
+ /**
178
+ * Manually requests to perform a search, which will only be executed if one of
179
+ * the query, the search type, or the sort has changed.
180
+ */
181
+ requestSearch() {
182
+ this.handleQueryChange();
183
+ }
179
184
  render() {
180
185
  this.setPlaceholderType();
181
186
  return html `
@@ -190,8 +195,9 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
190
195
  `;
191
196
  }
192
197
  setPlaceholderType() {
198
+ var _a;
193
199
  this.placeholderType = null;
194
- if (!this.baseQuery) {
200
+ if (!((_a = this.baseQuery) === null || _a === void 0 ? void 0 : _a.trim())) {
195
201
  this.placeholderType = 'empty-query';
196
202
  }
197
203
  if ((!this.searchResultsLoading && this.totalResults === 0) ||
@@ -485,13 +491,10 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
485
491
  (_a = this.infiniteScroller) === null || _a === void 0 ? void 0 : _a.reload();
486
492
  }
487
493
  if (changed.has('baseQuery') || changed.has('searchType')) {
488
- console.log('baseQuery or searchType changed:', this.baseQuery, this.searchType);
489
- // Unless this query/search type update is from the initial page load or the
490
- // result of hitting the back button,
494
+ // Unless this query/search type update is the result of hitting the back button,
491
495
  // we need to clear any existing filters since they may no longer be valid for
492
496
  // the new set of search results.
493
- if (!this.historyPopOccurred && this.initialQueryChangeHappened) {
494
- console.log('will clear filters from query change');
497
+ if (!this.historyPopOccurred) {
495
498
  // Only clear filters that haven't been simultaneously applied in this update
496
499
  this.clearFilters({
497
500
  facets: !changed.has('selectedFacets'),
@@ -578,7 +581,6 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
578
581
  }));
579
582
  }
580
583
  emitSearchTypeChanged() {
581
- console.log('emitting search type change', this.searchType);
582
584
  this.dispatchEvent(new CustomEvent('searchTypeChanged', {
583
585
  detail: this.searchType,
584
586
  }));
@@ -740,18 +742,18 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
740
742
  get filteredQuery() {
741
743
  if (!this.baseQuery)
742
744
  return undefined;
743
- let filteredQuery = this.baseQuery;
745
+ let filteredQuery = this.baseQuery.trim();
744
746
  const { sortFilterQueries } = this;
745
747
  if (sortFilterQueries) {
746
748
  filteredQuery += ` AND ${sortFilterQueries}`;
747
749
  }
748
- return filteredQuery;
750
+ return filteredQuery.trim();
749
751
  }
750
752
  /** The full query, including year facets and date range clauses */
751
753
  get fullQuery() {
752
754
  if (!this.baseQuery)
753
755
  return undefined;
754
- let fullQuery = this.baseQuery;
756
+ let fullQuery = this.baseQuery.trim();
755
757
  const { facetQuery, dateRangeQueryClause, sortFilterQueries } = this;
756
758
  if (facetQuery) {
757
759
  fullQuery += ` AND ${facetQuery}`;
@@ -762,13 +764,13 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
762
764
  if (sortFilterQueries) {
763
765
  fullQuery += ` AND ${sortFilterQueries}`;
764
766
  }
765
- return fullQuery;
767
+ return fullQuery.trim();
766
768
  }
767
769
  /** The full query without any title/creator letter filters */
768
770
  get fullQueryWithoutAlphaFilters() {
769
771
  if (!this.baseQuery)
770
772
  return undefined;
771
- let fullQuery = this.baseQuery;
773
+ let fullQuery = this.baseQuery.trim();
772
774
  const { facetQuery, dateRangeQueryClause } = this;
773
775
  if (facetQuery) {
774
776
  fullQuery += ` AND ${facetQuery}`;
@@ -776,7 +778,7 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
776
778
  if (dateRangeQueryClause) {
777
779
  fullQuery += ` AND ${dateRangeQueryClause}`;
778
780
  }
779
- return fullQuery;
781
+ return fullQuery.trim();
780
782
  }
781
783
  /**
782
784
  * Generates a query string for the given facets
@@ -784,13 +786,14 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
784
786
  * Example: `mediatype:("collection" OR "audio" OR -"etree") AND year:("2000" OR "2001")`
785
787
  */
786
788
  get facetQuery() {
789
+ var _a;
787
790
  if (!this.selectedFacets)
788
791
  return undefined;
789
792
  const facetClauses = [];
790
793
  for (const [facetName, facetValues] of Object.entries(this.selectedFacets)) {
791
794
  facetClauses.push(this.buildFacetClause(facetName, facetValues));
792
795
  }
793
- return this.joinFacetClauses(facetClauses);
796
+ return (_a = this.joinFacetClauses(facetClauses)) === null || _a === void 0 ? void 0 : _a.trim();
794
797
  }
795
798
  /**
796
799
  * Builds an OR-joined facet clause for the given facet name and values.
@@ -870,7 +873,7 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
870
873
  }
871
874
  }
872
875
  async fetchFacets() {
873
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
876
+ var _a, _b, _c, _d, _e, _f, _g, _h;
874
877
  if (!this.filteredQuery)
875
878
  return;
876
879
  const params = {
@@ -881,13 +884,31 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
881
884
  aggregationsSize: 10,
882
885
  // Note: we don't need an aggregations param to fetch the default aggregations from the PPS.
883
886
  // The default aggregations for the search_results page type should be what we need here.
887
+ uid: this.facetFetchQueryKey,
884
888
  };
885
889
  this.facetsLoading = true;
886
- const results = await ((_a = this.searchService) === null || _a === void 0 ? void 0 : _a.search(params, this.searchType));
890
+ const searchResponse = await ((_a = this.searchService) === null || _a === void 0 ? void 0 : _a.search(params, this.searchType));
891
+ const success = searchResponse === null || searchResponse === void 0 ? void 0 : searchResponse.success;
887
892
  this.facetsLoading = false;
888
- this.aggregations = (_b = results === null || results === void 0 ? void 0 : results.success) === null || _b === void 0 ? void 0 : _b.response.aggregations;
893
+ if (!success) {
894
+ const errorMsg = (_b = searchResponse === null || searchResponse === void 0 ? void 0 : searchResponse.error) === null || _b === void 0 ? void 0 : _b.message;
895
+ const detailMsg = (_d = (_c = searchResponse === null || searchResponse === void 0 ? void 0 : searchResponse.error) === null || _c === void 0 ? void 0 : _c.details) === null || _d === void 0 ? void 0 : _d.message;
896
+ if (!errorMsg && !detailMsg) {
897
+ // @ts-ignore: Property 'Sentry' does not exist on type 'Window & typeof globalThis'
898
+ (_f = (_e = window === null || window === void 0 ? void 0 : window.Sentry) === null || _e === void 0 ? void 0 : _e.captureMessage) === null || _f === void 0 ? void 0 : _f.call(_e, 'Missing or malformed facet response from backend', 'error');
899
+ }
900
+ return;
901
+ }
902
+ // This is checking to see if the query has changed since the data was fetched.
903
+ // If so, we just want to discard this set of aggregations because they are
904
+ // likely no longer valid for the newer query.
905
+ const returnedUid = success.request.clientParameters.uid;
906
+ const queryChangedSinceFetch = returnedUid !== this.facetFetchQueryKey;
907
+ if (queryChangedSinceFetch)
908
+ return;
909
+ this.aggregations = success === null || success === void 0 ? void 0 : success.response.aggregations;
889
910
  this.fullYearsHistogramAggregation =
890
- (_f = (_e = (_d = (_c = results === null || results === void 0 ? void 0 : results.success) === null || _c === void 0 ? void 0 : _c.response) === null || _d === void 0 ? void 0 : _d.aggregations) === null || _e === void 0 ? void 0 : _e.year_histogram) !== null && _f !== void 0 ? _f : (_j = (_h = (_g = results === null || results === void 0 ? void 0 : results.success) === null || _g === void 0 ? void 0 : _g.response) === null || _h === void 0 ? void 0 : _h.aggregations) === null || _j === void 0 ? void 0 : _j['year-histogram']; // Temp fix until PPS FTS key is fixed to use underscore
911
+ (_h = (_g = success === null || success === void 0 ? void 0 : success.response) === null || _g === void 0 ? void 0 : _g.aggregations) === null || _h === void 0 ? void 0 : _h.year_histogram;
891
912
  }
892
913
  scrollToPage(pageNumber) {
893
914
  return new Promise(resolve => {
@@ -925,11 +946,20 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
925
946
  * no longer relevant.
926
947
  */
927
948
  get pageFetchQueryKey() {
928
- var _a, _b;
929
- return `${this.fullQuery}-${this.searchType}-${(_a = this.sortParam) === null || _a === void 0 ? void 0 : _a.field}-${(_b = this.sortParam) === null || _b === void 0 ? void 0 : _b.direction}`;
949
+ var _a, _b, _c, _d;
950
+ const sortField = (_b = (_a = this.sortParam) === null || _a === void 0 ? void 0 : _a.field) !== null && _b !== void 0 ? _b : 'none';
951
+ const sortDirection = (_d = (_c = this.sortParam) === null || _c === void 0 ? void 0 : _c.direction) !== null && _d !== void 0 ? _d : 'none';
952
+ return `${this.fullQuery}-${this.searchType}-${sortField}-${sortDirection}`;
953
+ }
954
+ /**
955
+ * Similar to `pageFetchQueryKey` above, but excludes sort fields since they
956
+ * are not relevant in determining aggregation queries.
957
+ */
958
+ get facetFetchQueryKey() {
959
+ return `${this.fullQuery}-${this.searchType}`;
930
960
  }
931
961
  async fetchPage(pageNumber) {
932
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
962
+ var _a, _b, _c, _d, _e, _f, _g, _h;
933
963
  if (!this.filteredQuery)
934
964
  return;
935
965
  // if we already have data, don't fetch again
@@ -952,6 +982,7 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
952
982
  sort: sortParams,
953
983
  filters: this.filterMap,
954
984
  aggregations: { omit: true },
985
+ uid: this.pageFetchQueryKey,
955
986
  };
956
987
  const searchResponse = await ((_b = this.searchService) === null || _b === void 0 ? void 0 : _b.search(params, this.searchType));
957
988
  const success = searchResponse === null || searchResponse === void 0 ? void 0 : searchResponse.success;
@@ -966,33 +997,14 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
966
997
  }
967
998
  return;
968
999
  }
969
- this.totalResults = success.response.totalResults;
970
- // this is checking to see if the query has changed since the data was fetched
971
- // if so, we just want to discard the data since there should be a new query
972
- // right behind it
973
- const searchQuery = success.request.clientParameters.user_query;
974
- const searchSort = success.request.clientParameters.sort;
975
- let sortChanged = false;
976
- if (!searchSort || searchSort.length === 0) {
977
- // if we went from no sort to sort, the sort has changed
978
- if (this.sortParam) {
979
- sortChanged = true;
980
- }
981
- }
982
- else {
983
- // check if the sort has changed
984
- for (const sortType of searchSort) {
985
- const [field, direction] = sortType.split(':');
986
- if (field !== ((_h = this.sortParam) === null || _h === void 0 ? void 0 : _h.field) ||
987
- direction !== ((_j = this.sortParam) === null || _j === void 0 ? void 0 : _j.direction)) {
988
- sortChanged = true;
989
- break;
990
- }
991
- }
992
- }
993
- const queryChangedSinceFetch = searchQuery !== this.filteredQuery || sortChanged;
1000
+ // This is checking to see if the query has changed since the data was fetched.
1001
+ // If so, we just want to discard the data since there should be a new query
1002
+ // right behind it.
1003
+ const returnedUid = success.request.clientParameters.uid;
1004
+ const queryChangedSinceFetch = returnedUid !== this.pageFetchQueryKey;
994
1005
  if (queryChangedSinceFetch)
995
1006
  return;
1007
+ this.totalResults = success.response.totalResults;
996
1008
  const { results } = success.response;
997
1009
  if (results && results.length > 0) {
998
1010
  this.preloadCollectionNames(results);
@@ -1007,7 +1019,7 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
1007
1019
  this.infiniteScroller.itemCount = this.totalResults;
1008
1020
  }
1009
1021
  }
1010
- (_k = this.pageFetchesInProgress[pageFetchQueryKey]) === null || _k === void 0 ? void 0 : _k.delete(pageNumber);
1022
+ (_h = this.pageFetchesInProgress[pageFetchQueryKey]) === null || _h === void 0 ? void 0 : _h.delete(pageNumber);
1011
1023
  this.searchResultsLoading = false;
1012
1024
  }
1013
1025
  preloadCollectionNames(results) {