@internetarchive/collection-browser 4.1.3-alpha-webdev8108.0 → 4.1.3-alpha-webdev8257.0

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.
Files changed (41) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.js.map +1 -1
  3. package/dist/src/app-root.d.ts +8 -0
  4. package/dist/src/app-root.js +31 -0
  5. package/dist/src/app-root.js.map +1 -1
  6. package/dist/src/collection-browser.d.ts +3 -0
  7. package/dist/src/collection-browser.js +33 -29
  8. package/dist/src/collection-browser.js.map +1 -1
  9. package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
  10. package/dist/src/models.js.map +1 -1
  11. package/dist/src/tiles/hover/hover-pane-controller.js +28 -28
  12. package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
  13. package/dist/src/tiles/models.d.ts +14 -0
  14. package/dist/src/tiles/models.js.map +1 -1
  15. package/dist/src/tiles/tile-dispatcher.d.ts +12 -1
  16. package/dist/src/tiles/tile-dispatcher.js +330 -216
  17. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  18. package/dist/src/tiles/tile-display-value-provider.js.map +1 -1
  19. package/dist/test/mocks/mock-search-responses.js.map +1 -1
  20. package/dist/test/tiles/grid/item-tile.test.js +77 -77
  21. package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
  22. package/dist/test/tiles/list/tile-list.test.js +126 -126
  23. package/dist/test/tiles/list/tile-list.test.js.map +1 -1
  24. package/dist/test/tiles/tile-dispatcher.test.js +87 -87
  25. package/dist/test/tiles/tile-dispatcher.test.js.map +1 -1
  26. package/dist/test/tiles/tile-display-value-provider.test.js.map +1 -1
  27. package/index.ts +1 -0
  28. package/package.json +1 -1
  29. package/src/app-root.ts +35 -0
  30. package/src/collection-browser.ts +41 -38
  31. package/src/data-source/collection-browser-data-source.ts +1445 -1445
  32. package/src/models.ts +874 -874
  33. package/src/tiles/hover/hover-pane-controller.ts +628 -628
  34. package/src/tiles/models.ts +16 -0
  35. package/src/tiles/tile-dispatcher.ts +649 -527
  36. package/src/tiles/tile-display-value-provider.ts +124 -124
  37. package/test/mocks/mock-search-responses.ts +1364 -1364
  38. package/test/tiles/grid/item-tile.test.ts +520 -520
  39. package/test/tiles/list/tile-list.test.ts +552 -552
  40. package/test/tiles/tile-dispatcher.test.ts +300 -300
  41. package/test/tiles/tile-display-value-provider.test.ts +172 -172
@@ -1 +1 @@
1
- {"version":3,"file":"tile-dispatcher.js","sourceRoot":"","sources":["../../../src/tiles/tile-dispatcher.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, nothing, PropertyValues } from 'lit';\r\nimport { customElement, property, query } from 'lit/decorators.js';\r\nimport { ifDefined } from 'lit/directives/if-defined.js';\r\nimport { msg } from '@lit/localize';\r\nimport type {\r\n SharedResizeObserverInterface,\r\n SharedResizeObserverResizeHandlerInterface,\r\n} from '@internetarchive/shared-resize-observer';\r\nimport type { TileDisplayMode } from '../models';\r\nimport type { CollectionTitles } from '../data-source/models';\r\nimport './grid/collection-tile';\r\nimport './grid/item-tile';\r\nimport './grid/account-tile';\r\nimport './grid/search-tile';\r\nimport './hover/tile-hover-pane';\r\nimport './list/tile-list';\r\nimport './list/tile-list-compact';\r\nimport './list/tile-list-compact-header';\r\nimport type { TileHoverPane } from './hover/tile-hover-pane';\r\nimport { BaseTileComponent } from './base-tile-component';\r\nimport { LayoutType } from './models';\r\nimport {\r\n HoverPaneController,\r\n HoverPaneControllerInterface,\r\n HoverPaneProperties,\r\n HoverPaneProviderInterface,\r\n} from './hover/hover-pane-controller';\r\nimport { srOnlyStyle } from '../styles/sr-only';\r\n\r\n@customElement('tile-dispatcher')\r\nexport class TileDispatcher\r\n extends BaseTileComponent\r\n implements\r\n SharedResizeObserverResizeHandlerInterface,\r\n HoverPaneProviderInterface\r\n{\r\n /*\r\n * Reactive properties inherited from BaseTileComponent:\r\n * - model?: TileModel;\r\n * - currentWidth?: number;\r\n * - currentHeight?: number;\r\n * - baseNavigationUrl?: string;\r\n * - baseImageUrl?: string;\r\n * - collectionPagePath?: string;\r\n * - sortParam: SortParam | null = null;\r\n * - defaultSortParam: SortParam | null = null;\r\n * - creatorFilter?: string;\r\n * - mobileBreakpoint?: number;\r\n * - loggedIn = false;\r\n * - suppressTileBlurring = false;\r\n * - useLocalTime = false;\r\n */\r\n\r\n @property({ type: String }) tileDisplayMode?: TileDisplayMode;\r\n\r\n @property({ type: Boolean }) isManageView = false;\r\n\r\n @property({ type: Object }) resizeObserver?: SharedResizeObserverInterface;\r\n\r\n @property({ type: Object })\r\n collectionTitles?: CollectionTitles;\r\n\r\n @property({ type: Boolean }) showTvClips = false;\r\n\r\n /** What type of simplified layout to use in grid mode, if any */\r\n @property({ type: String }) layoutType: LayoutType = 'default';\r\n\r\n /** Whether this tile should include a hover pane at all (for applicable tile modes) */\r\n @property({ type: Boolean }) enableHoverPane = false;\r\n\r\n @property({ type: String }) manageCheckTitle = msg(\r\n 'Remove this item from the list',\r\n );\r\n\r\n private hoverPaneController?: HoverPaneControllerInterface;\r\n\r\n @query('#container')\r\n private container!: HTMLDivElement;\r\n\r\n @query('tile-hover-pane')\r\n private hoverPane?: TileHoverPane;\r\n\r\n @query('.tile-link')\r\n private tileLinkElement?: HTMLAnchorElement;\r\n\r\n acquireFocus(): void {\r\n this.tileLinkElement?.focus();\r\n }\r\n\r\n releaseFocus(): void {\r\n this.tileLinkElement?.blur();\r\n }\r\n\r\n /** Maps each display mode to whether hover panes should appear in that mode */\r\n private static readonly HOVER_PANE_DISPLAY_MODES: Record<\r\n TileDisplayMode,\r\n boolean\r\n > = {\r\n grid: true,\r\n 'list-compact': true,\r\n 'list-detail': false,\r\n 'list-header': false,\r\n };\r\n\r\n render() {\r\n const isGridMode = this.tileDisplayMode === 'grid';\r\n const hoverPaneTemplate =\r\n this.hoverPaneController?.getTemplate() ?? nothing;\r\n return html`\r\n <div id=\"container\" class=${isGridMode ? 'hoverable' : ''}>\r\n ${this.tileDisplayMode === 'list-header'\r\n ? this.headerTemplate\r\n : this.tileTemplate}\r\n ${this.manageCheckTemplate} ${hoverPaneTemplate}\r\n </div>\r\n `;\r\n }\r\n\r\n protected firstUpdated(): void {\r\n if (this.shouldPrepareHoverPane) {\r\n this.hoverPaneController = new HoverPaneController(this, {\r\n mobileBreakpoint: this.mobileBreakpoint,\r\n enableLongPress: false,\r\n });\r\n }\r\n }\r\n\r\n private get headerTemplate() {\r\n const { currentWidth, sortParam, defaultSortParam, mobileBreakpoint } =\r\n this;\r\n return html`\r\n <tile-list-compact-header\r\n class=\"header\"\r\n .currentWidth=${currentWidth}\r\n .sortParam=${sortParam ?? defaultSortParam}\r\n .mobileBreakpoint=${mobileBreakpoint}\r\n >\r\n </tile-list-compact-header>\r\n `;\r\n }\r\n\r\n private get tileTemplate() {\r\n return html`\r\n ${this.tileDisplayMode === 'list-detail'\r\n ? this.tile\r\n : this.linkTileTemplate}\r\n `;\r\n }\r\n\r\n private get linkTileTemplate() {\r\n return html`\r\n <a\r\n href=${this.linkTileHref}\r\n aria-label=${this.model?.title ?? 'Untitled item'}\r\n aria-describedby=\"link-aria-description\"\r\n aria-haspopup=${this.shouldPrepareHoverPane ? 'dialog' : 'false'}\r\n title=${this.shouldPrepareHoverPane\r\n ? nothing // Don't show title tooltips when we have the tile info popups\r\n : ifDefined(this.model?.title)}\r\n @click=${this.handleLinkClicked}\r\n @contextmenu=${this.handleLinkContextMenu}\r\n class=\"tile-link\"\r\n >\r\n ${this.tile}\r\n </a>\r\n <div id=\"link-aria-description\" class=\"sr-only\">\r\n ${msg('Press Down Arrow to preview item details')}\r\n </div>\r\n `;\r\n }\r\n\r\n private get linkTileHref(): string | typeof nothing {\r\n if (!this.model?.identifier || this.baseNavigationUrl == null)\r\n return nothing;\r\n\r\n // Use the server-specified href if available.\r\n // Otherwise, construct a details page URL from the item identifier.\r\n if (this.model.href) {\r\n return `${this.baseNavigationUrl}${this.model.href}`;\r\n }\r\n\r\n return this.displayValueProvider.itemPageUrl(\r\n this.model.identifier,\r\n this.model.mediatype === 'collection',\r\n );\r\n }\r\n\r\n private get manageCheckTemplate() {\r\n if (!this.isManageView || this.tileDisplayMode !== 'grid') return nothing;\r\n\r\n return html`\r\n <div class=\"manage-check\">\r\n <input\r\n type=\"checkbox\"\r\n title=${this.manageCheckTitle}\r\n ?checked=${this.model?.checked}\r\n @change=${this.handleLinkClicked}\r\n />\r\n </div>\r\n `;\r\n }\r\n\r\n /**\r\n * Whether hover pane behavior should be prepared for this tile\r\n * (e.g., whether mouse listeners should be attached, etc.)\r\n */\r\n private get shouldPrepareHoverPane(): boolean {\r\n return (\r\n this.enableHoverPane &&\r\n !!this.tileDisplayMode &&\r\n TileDispatcher.HOVER_PANE_DISPLAY_MODES[this.tileDisplayMode] &&\r\n this.model?.mediatype !== 'search' && // don't show hover panes on search tiles\r\n !this.model?.captureDates // don't show hover panes on web archive tiles\r\n );\r\n }\r\n\r\n private get isHoverEnabled(): boolean {\r\n return window.matchMedia('(hover: hover)').matches;\r\n }\r\n\r\n /**\r\n * Whether the info button should be shown on this tile.\r\n * Only shown on touch/non-hover devices where a hover pane is available,\r\n * so the button always has something to toggle.\r\n */\r\n private get shouldShowInfoButton(): boolean {\r\n return !this.isHoverEnabled && this.shouldPrepareHoverPane;\r\n }\r\n\r\n /** @inheritdoc */\r\n getHoverPane(): TileHoverPane | undefined {\r\n return this.hoverPane;\r\n }\r\n\r\n /** @inheritdoc */\r\n getHoverPaneProps(): HoverPaneProperties {\r\n return this;\r\n }\r\n\r\n handleResize(entry: ResizeObserverEntry): void {\r\n this.currentWidth = entry.contentRect.width;\r\n this.currentHeight = entry.contentRect.height;\r\n }\r\n\r\n disconnectedCallback(): void {\r\n this.stopResizeObservation(this.resizeObserver);\r\n }\r\n\r\n private stopResizeObservation(observer?: SharedResizeObserverInterface) {\r\n observer?.removeObserver({\r\n handler: this,\r\n target: this.container,\r\n });\r\n }\r\n\r\n private startResizeObservation() {\r\n this.stopResizeObservation(this.resizeObserver);\r\n this.resizeObserver?.addObserver({\r\n handler: this,\r\n target: this.container,\r\n });\r\n }\r\n\r\n updated(props: PropertyValues) {\r\n if (props.has('resizeObserver')) {\r\n const previousObserver = props.get(\r\n 'resizeObserver',\r\n ) as SharedResizeObserverInterface;\r\n this.stopResizeObservation(previousObserver);\r\n this.startResizeObservation();\r\n }\r\n }\r\n\r\n /**\r\n * Handler for when the tile link is left-clicked. Emits the `resultSelected` event.\r\n * In manage view, it also checks/unchecks the tile.\r\n */\r\n private handleLinkClicked(e: Event): void {\r\n if (this.isManageView) {\r\n e.preventDefault();\r\n if (this.model) this.model.checked = !this.model.checked;\r\n }\r\n\r\n this.dispatchEvent(\r\n new CustomEvent('resultSelected', { detail: this.model }),\r\n );\r\n }\r\n\r\n /**\r\n * Handler for when the tile link is right-clicked.\r\n * In manage view, it opens the item in a new tab. Otherwise, does nothing.\r\n */\r\n private handleLinkContextMenu(e: Event): void {\r\n if (this.isManageView && this.linkTileHref !== nothing) {\r\n e.preventDefault();\r\n window.open(this.linkTileHref, '_blank');\r\n }\r\n }\r\n\r\n private tileInfoButtonPressed(\r\n e: CustomEvent<{ x: number; y: number }>,\r\n ): void {\r\n this.hoverPaneController?.toggleHoverPane({\r\n coords: e.detail,\r\n enableTouchBackdrop: true,\r\n });\r\n }\r\n\r\n private get tile() {\r\n const {\r\n model,\r\n collectionPagePath,\r\n baseNavigationUrl,\r\n currentWidth,\r\n currentHeight,\r\n sortParam,\r\n creatorFilter,\r\n mobileBreakpoint,\r\n defaultSortParam,\r\n } = this;\r\n\r\n if (!model) return nothing;\r\n\r\n switch (this.tileDisplayMode) {\r\n case 'grid':\r\n switch (model.mediatype) {\r\n case 'collection':\r\n return html`<collection-tile\r\n .model=${model}\r\n .collectionPagePath=${collectionPagePath}\r\n .baseImageUrl=${this.baseImageUrl}\r\n .currentWidth=${currentWidth}\r\n .currentHeight=${currentHeight}\r\n .creatorFilter=${creatorFilter}\r\n .suppressBlurring=${this.suppressBlurring}\r\n .isManageView=${this.isManageView}\r\n .layoutType=${this.layoutType}\r\n ?showInfoButton=${this.shouldShowInfoButton}\r\n @infoButtonPressed=${this.tileInfoButtonPressed}\r\n >\r\n </collection-tile>`;\r\n case 'account':\r\n return html`<account-tile\r\n .model=${model}\r\n .collectionPagePath=${collectionPagePath}\r\n .baseImageUrl=${this.baseImageUrl}\r\n .currentWidth=${currentWidth}\r\n .currentHeight=${currentHeight}\r\n .creatorFilter=${creatorFilter}\r\n .suppressBlurring=${this.suppressBlurring}\r\n .isManageView=${this.isManageView}\r\n ?showInfoButton=${this.shouldShowInfoButton}\r\n @infoButtonPressed=${this.tileInfoButtonPressed}\r\n >\r\n </account-tile>`;\r\n case 'search':\r\n return html`<search-tile\r\n .model=${model}\r\n .collectionPagePath=${collectionPagePath}\r\n .baseImageUrl=${this.baseImageUrl}\r\n .currentWidth=${currentWidth}\r\n .currentHeight=${currentHeight}\r\n .creatorFilter=${creatorFilter}\r\n .suppressBlurring=${this.suppressBlurring}\r\n .isManageView=${this.isManageView}\r\n ?showInfoButton=${false}\r\n @infoButtonPressed=${this.tileInfoButtonPressed}\r\n >\r\n </search-tile>`;\r\n default:\r\n return html`<item-tile\r\n .model=${model}\r\n .collectionPagePath=${collectionPagePath}\r\n .currentWidth=${this.currentWidth}\r\n .currentHeight=${this.currentHeight}\r\n .baseImageUrl=${this.baseImageUrl}\r\n .sortParam=${sortParam}\r\n .defaultSortParam=${defaultSortParam}\r\n .creatorFilter=${creatorFilter}\r\n .loggedIn=${this.loggedIn}\r\n .suppressBlurring=${this.suppressBlurring}\r\n .isManageView=${this.isManageView}\r\n .layoutType=${this.layoutType}\r\n ?showTvClips=${this.showTvClips}\r\n ?showInfoButton=${this.shouldShowInfoButton}\r\n ?useLocalTime=${this.useLocalTime}\r\n @infoButtonPressed=${this.tileInfoButtonPressed}\r\n >\r\n </item-tile>`;\r\n }\r\n case 'list-compact':\r\n return html`<tile-list-compact\r\n .model=${model}\r\n .collectionPagePath=${collectionPagePath}\r\n .currentWidth=${currentWidth}\r\n .currentHeight=${currentHeight}\r\n .baseNavigationUrl=${baseNavigationUrl}\r\n .sortParam=${sortParam}\r\n .defaultSortParam=${defaultSortParam}\r\n .creatorFilter=${creatorFilter}\r\n .mobileBreakpoint=${mobileBreakpoint}\r\n .baseImageUrl=${this.baseImageUrl}\r\n .loggedIn=${this.loggedIn}\r\n .suppressBlurring=${this.suppressBlurring}\r\n ?useLocalTime=${this.useLocalTime}\r\n >\r\n </tile-list-compact>`;\r\n case 'list-detail':\r\n return html`<tile-list\r\n .model=${model}\r\n .collectionPagePath=${collectionPagePath}\r\n .collectionTitles=${this.collectionTitles}\r\n .currentWidth=${currentWidth}\r\n .currentHeight=${currentHeight}\r\n .baseNavigationUrl=${baseNavigationUrl}\r\n .sortParam=${sortParam}\r\n .defaultSortParam=${defaultSortParam}\r\n .creatorFilter=${creatorFilter}\r\n .mobileBreakpoint=${mobileBreakpoint}\r\n .baseImageUrl=${this.baseImageUrl}\r\n .loggedIn=${this.loggedIn}\r\n .suppressBlurring=${this.suppressBlurring}\r\n ?useLocalTime=${this.useLocalTime}\r\n >\r\n </tile-list>`;\r\n default:\r\n return nothing;\r\n }\r\n }\r\n\r\n static get styles() {\r\n return [\r\n srOnlyStyle,\r\n css`\r\n :host {\r\n display: block;\r\n height: 100%;\r\n }\r\n\r\n collection-tile {\r\n --tileBorderColor: #555555;\r\n --tileBackgroundColor: #666666;\r\n --imageBlockBackgroundColor: #666666;\r\n }\r\n\r\n account-tile {\r\n --tileBorderColor: #dddddd;\r\n --imageBlockBackgroundColor: #fcf5e6;\r\n }\r\n\r\n item-tile {\r\n --tileBorderColor: #dddddd;\r\n --imageBlockBackgroundColor: #f1f1f4;\r\n }\r\n\r\n search-tile {\r\n --tileBorderColor: #555555;\r\n --tileBackgroundColor: #666666;\r\n --imageBlockBackgroundColor: #666666;\r\n --iconFillColor: #2c2c2c;\r\n }\r\n\r\n #container {\r\n position: relative;\r\n height: 100%;\r\n border-radius: 4px;\r\n }\r\n\r\n #container.hoverable a:focus,\r\n #container.hoverable a:hover {\r\n box-shadow: var(\r\n --tileHoverBoxShadow,\r\n 0 0 6px 2px rgba(8, 8, 32, 0.8)\r\n );\r\n transition: box-shadow 0.1s ease;\r\n }\r\n\r\n a {\r\n display: block;\r\n height: 100%;\r\n color: unset;\r\n text-decoration: none;\r\n transition: transform 0.05s ease;\r\n border-radius: 4px;\r\n outline: none;\r\n }\r\n\r\n a :first-child {\r\n display: block;\r\n height: 100%;\r\n }\r\n\r\n .manage-check {\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n border: 5px solid #2c2c2c;\r\n border-radius: 3px;\r\n background-color: #2c2c2c;\r\n z-index: 1;\r\n }\r\n\r\n .manage-check > input[type='checkbox'] {\r\n display: block;\r\n margin: 0;\r\n }\r\n\r\n #touch-backdrop {\r\n position: fixed;\r\n width: 100vw;\r\n height: 100vh;\r\n top: 0;\r\n left: 0;\r\n z-index: 2;\r\n background: transparent;\r\n }\r\n\r\n tile-hover-pane {\r\n position: absolute;\r\n top: 0;\r\n left: -9999px;\r\n z-index: 2;\r\n }\r\n `,\r\n ];\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"tile-dispatcher.js","sourceRoot":"","sources":["../../../src/tiles/tile-dispatcher.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, nothing, PropertyValues } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { msg } from '@lit/localize';\nimport type {\n SharedResizeObserverInterface,\n SharedResizeObserverResizeHandlerInterface,\n} from '@internetarchive/shared-resize-observer';\nimport type { TileDisplayMode } from '../models';\nimport type { CollectionTitles } from '../data-source/models';\nimport './grid/collection-tile';\nimport './grid/item-tile';\nimport './grid/account-tile';\nimport './grid/search-tile';\nimport './hover/tile-hover-pane';\nimport './list/tile-list';\nimport './list/tile-list-compact';\nimport './list/tile-list-compact-header';\nimport type { TileHoverPane } from './hover/tile-hover-pane';\nimport { BaseTileComponent } from './base-tile-component';\nimport { LayoutType, type TileAction } from './models';\nimport {\n HoverPaneController,\n HoverPaneControllerInterface,\n HoverPaneProperties,\n HoverPaneProviderInterface,\n} from './hover/hover-pane-controller';\nimport { srOnlyStyle } from '../styles/sr-only';\n\n@customElement('tile-dispatcher')\nexport class TileDispatcher\n extends BaseTileComponent\n implements\n SharedResizeObserverResizeHandlerInterface,\n HoverPaneProviderInterface\n{\n /*\n * Reactive properties inherited from BaseTileComponent:\n * - model?: TileModel;\n * - currentWidth?: number;\n * - currentHeight?: number;\n * - baseNavigationUrl?: string;\n * - baseImageUrl?: string;\n * - collectionPagePath?: string;\n * - sortParam: SortParam | null = null;\n * - defaultSortParam: SortParam | null = null;\n * - creatorFilter?: string;\n * - mobileBreakpoint?: number;\n * - loggedIn = false;\n * - suppressTileBlurring = false;\n * - useLocalTime = false;\n */\n\n @property({ type: String }) tileDisplayMode?: TileDisplayMode;\n\n @property({ type: Boolean }) isManageView = false;\n\n @property({ type: Object }) resizeObserver?: SharedResizeObserverInterface;\n\n @property({ type: Object })\n collectionTitles?: CollectionTitles;\n\n @property({ type: Boolean }) showTvClips = false;\n\n /** What type of simplified layout to use in grid mode, if any */\n @property({ type: String }) layoutType: LayoutType = 'default';\n\n /** Whether this tile should include a hover pane at all (for applicable tile modes) */\n @property({ type: Boolean }) enableHoverPane = false;\n\n @property({ type: String }) manageCheckTitle = msg(\n 'Remove this item from the list',\n );\n\n /** Action buttons to display at the bottom of the tile (grid mode only) */\n @property({ type: Array }) tileActions: TileAction[] = [];\n\n private hoverPaneController?: HoverPaneControllerInterface;\n\n @query('#container')\n private container!: HTMLDivElement;\n\n @query('tile-hover-pane')\n private hoverPane?: TileHoverPane;\n\n @query('.tile-link')\n private tileLinkElement?: HTMLAnchorElement;\n\n acquireFocus(): void {\n this.tileLinkElement?.focus();\n }\n\n releaseFocus(): void {\n this.tileLinkElement?.blur();\n }\n\n /** Maps each display mode to whether hover panes should appear in that mode */\n private static readonly HOVER_PANE_DISPLAY_MODES: Record<\n TileDisplayMode,\n boolean\n > = {\n grid: true,\n 'list-compact': true,\n 'list-detail': false,\n 'list-header': false,\n };\n\n render() {\n const isGridMode = this.tileDisplayMode === 'grid';\n const hasTileActions = isGridMode && this.showTileActions;\n const hoverPaneTemplate =\n this.hoverPaneController?.getTemplate() ?? nothing;\n const containerClasses = classMap({\n hoverable: isGridMode,\n 'has-tile-actions': hasTileActions,\n });\n return html`\n <div id=\"container\" class=${containerClasses}>\n ${this.tileDisplayMode === 'list-header'\n ? this.headerTemplate\n : this.tileTemplate}\n ${this.tileActionsTemplate} ${this.manageCheckTemplate}\n ${hoverPaneTemplate}\n </div>\n `;\n }\n\n protected firstUpdated(): void {\n if (this.shouldPrepareHoverPane) {\n this.hoverPaneController = new HoverPaneController(this, {\n mobileBreakpoint: this.mobileBreakpoint,\n enableLongPress: false,\n });\n }\n }\n\n private get headerTemplate() {\n const { currentWidth, sortParam, defaultSortParam, mobileBreakpoint } =\n this;\n return html`\n <tile-list-compact-header\n class=\"header\"\n .currentWidth=${currentWidth}\n .sortParam=${sortParam ?? defaultSortParam}\n .mobileBreakpoint=${mobileBreakpoint}\n >\n </tile-list-compact-header>\n `;\n }\n\n private get tileTemplate() {\n return html`\n ${this.tileDisplayMode === 'list-detail'\n ? this.tile\n : this.linkTileTemplate}\n `;\n }\n\n private get linkTileTemplate() {\n return html`\n <a\n href=${this.linkTileHref}\n aria-label=${this.model?.title ?? 'Untitled item'}\n aria-describedby=\"link-aria-description\"\n aria-haspopup=${this.shouldPrepareHoverPane ? 'dialog' : 'false'}\n title=${this.shouldPrepareHoverPane\n ? nothing // Don't show title tooltips when we have the tile info popups\n : ifDefined(this.model?.title)}\n @click=${this.handleLinkClicked}\n @contextmenu=${this.handleLinkContextMenu}\n class=\"tile-link\"\n >\n ${this.tile}\n </a>\n <div id=\"link-aria-description\" class=\"sr-only\">\n ${msg('Press Down Arrow to preview item details')}\n </div>\n `;\n }\n\n private get linkTileHref(): string | typeof nothing {\n if (!this.model?.identifier || this.baseNavigationUrl == null)\n return nothing;\n\n // Use the server-specified href if available.\n // Otherwise, construct a details page URL from the item identifier.\n if (this.model.href) {\n return `${this.baseNavigationUrl}${this.model.href}`;\n }\n\n return this.displayValueProvider.itemPageUrl(\n this.model.identifier,\n this.model.mediatype === 'collection',\n );\n }\n\n private get manageCheckTemplate() {\n if (!this.isManageView || this.tileDisplayMode !== 'grid') return nothing;\n\n return html`\n <div class=\"manage-check\">\n <input\n type=\"checkbox\"\n title=${this.manageCheckTitle}\n ?checked=${this.model?.checked}\n @change=${this.handleLinkClicked}\n />\n </div>\n `;\n }\n\n /**\n * Whether hover pane behavior should be prepared for this tile\n * (e.g., whether mouse listeners should be attached, etc.)\n */\n private get shouldPrepareHoverPane(): boolean {\n return (\n this.enableHoverPane &&\n !!this.tileDisplayMode &&\n TileDispatcher.HOVER_PANE_DISPLAY_MODES[this.tileDisplayMode] &&\n this.model?.mediatype !== 'search' && // don't show hover panes on search tiles\n !this.model?.captureDates // don't show hover panes on web archive tiles\n );\n }\n\n private get isHoverEnabled(): boolean {\n return window.matchMedia('(hover: hover)').matches;\n }\n\n /**\n * Whether the info button should be shown on this tile.\n * Only shown on touch/non-hover devices where a hover pane is available,\n * so the button always has something to toggle.\n */\n private get shouldShowInfoButton(): boolean {\n return !this.isHoverEnabled && this.shouldPrepareHoverPane;\n }\n\n /** @inheritdoc */\n getHoverPane(): TileHoverPane | undefined {\n return this.hoverPane;\n }\n\n /** @inheritdoc */\n getHoverPaneProps(): HoverPaneProperties {\n return this;\n }\n\n handleResize(entry: ResizeObserverEntry): void {\n this.currentWidth = entry.contentRect.width;\n this.currentHeight = entry.contentRect.height;\n }\n\n disconnectedCallback(): void {\n this.stopResizeObservation(this.resizeObserver);\n }\n\n private stopResizeObservation(observer?: SharedResizeObserverInterface) {\n observer?.removeObserver({\n handler: this,\n target: this.container,\n });\n }\n\n private startResizeObservation() {\n this.stopResizeObservation(this.resizeObserver);\n this.resizeObserver?.addObserver({\n handler: this,\n target: this.container,\n });\n }\n\n updated(props: PropertyValues) {\n if (props.has('resizeObserver')) {\n const previousObserver = props.get(\n 'resizeObserver',\n ) as SharedResizeObserverInterface;\n this.stopResizeObservation(previousObserver);\n this.startResizeObservation();\n }\n }\n\n /**\n * Handler for when the tile link is left-clicked. Emits the `resultSelected` event.\n * In manage view, it also checks/unchecks the tile.\n */\n private handleLinkClicked(e: Event): void {\n if (this.isManageView) {\n e.preventDefault();\n if (this.model) this.model.checked = !this.model.checked;\n }\n\n this.dispatchEvent(\n new CustomEvent('resultSelected', { detail: this.model }),\n );\n }\n\n /**\n * Handler for when the tile link is right-clicked.\n * In manage view, it opens the item in a new tab. Otherwise, does nothing.\n */\n private handleLinkContextMenu(e: Event): void {\n if (this.isManageView && this.linkTileHref !== nothing) {\n e.preventDefault();\n window.open(this.linkTileHref, '_blank');\n }\n }\n\n private tileInfoButtonPressed(\n e: CustomEvent<{ x: number; y: number }>,\n ): void {\n this.hoverPaneController?.toggleHoverPane({\n coords: e.detail,\n enableTouchBackdrop: true,\n });\n }\n\n /** Whether tile action buttons should be rendered */\n private get showTileActions(): boolean {\n return (\n this.tileActions.length > 0 &&\n !this.isManageView &&\n this.tileDisplayMode === 'grid'\n );\n }\n\n private get tileActionsTemplate() {\n if (!this.showTileActions) return nothing;\n\n return html`\n <div\n class=\"tile-actions\"\n @mouseenter=${this.handleTileActionsMouseEnter}\n @mousemove=${(e: Event) => e.stopPropagation()}\n >\n ${this.tileActions.map(\n action => html`\n <button\n class=\"tile-action-btn\"\n @click=${(e: Event) => this.handleTileActionClick(e, action)}\n >\n ${action.label}\n </button>\n `,\n )}\n </div>\n `;\n }\n\n /**\n * When the mouse enters the tile actions area, dispatch a synthetic mouseleave\n * on the host to cancel the hover pane's show timer and hide any visible pane.\n */\n private handleTileActionsMouseEnter = (): void => {\n this.dispatchEvent(new MouseEvent('mouseleave', { bubbles: false }));\n };\n\n private handleTileActionClick(e: Event, action: TileAction): void {\n e.stopPropagation();\n this.dispatchEvent(\n new CustomEvent('tileActionClicked', {\n detail: { actionId: action.id, model: this.model },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private get tile() {\n const {\n model,\n collectionPagePath,\n baseNavigationUrl,\n currentWidth,\n currentHeight,\n sortParam,\n creatorFilter,\n mobileBreakpoint,\n defaultSortParam,\n } = this;\n\n if (!model) return nothing;\n\n switch (this.tileDisplayMode) {\n case 'grid':\n switch (model.mediatype) {\n case 'collection':\n return html`<collection-tile\n .model=${model}\n .collectionPagePath=${collectionPagePath}\n .baseImageUrl=${this.baseImageUrl}\n .currentWidth=${currentWidth}\n .currentHeight=${currentHeight}\n .creatorFilter=${creatorFilter}\n .suppressBlurring=${this.suppressBlurring}\n .isManageView=${this.isManageView}\n .layoutType=${this.layoutType}\n ?showInfoButton=${this.shouldShowInfoButton}\n @infoButtonPressed=${this.tileInfoButtonPressed}\n >\n </collection-tile>`;\n case 'account':\n return html`<account-tile\n .model=${model}\n .collectionPagePath=${collectionPagePath}\n .baseImageUrl=${this.baseImageUrl}\n .currentWidth=${currentWidth}\n .currentHeight=${currentHeight}\n .creatorFilter=${creatorFilter}\n .suppressBlurring=${this.suppressBlurring}\n .isManageView=${this.isManageView}\n ?showInfoButton=${this.shouldShowInfoButton}\n @infoButtonPressed=${this.tileInfoButtonPressed}\n >\n </account-tile>`;\n case 'search':\n return html`<search-tile\n .model=${model}\n .collectionPagePath=${collectionPagePath}\n .baseImageUrl=${this.baseImageUrl}\n .currentWidth=${currentWidth}\n .currentHeight=${currentHeight}\n .creatorFilter=${creatorFilter}\n .suppressBlurring=${this.suppressBlurring}\n .isManageView=${this.isManageView}\n ?showInfoButton=${false}\n @infoButtonPressed=${this.tileInfoButtonPressed}\n >\n </search-tile>`;\n default:\n return html`<item-tile\n .model=${model}\n .collectionPagePath=${collectionPagePath}\n .currentWidth=${this.currentWidth}\n .currentHeight=${this.currentHeight}\n .baseImageUrl=${this.baseImageUrl}\n .sortParam=${sortParam}\n .defaultSortParam=${defaultSortParam}\n .creatorFilter=${creatorFilter}\n .loggedIn=${this.loggedIn}\n .suppressBlurring=${this.suppressBlurring}\n .isManageView=${this.isManageView}\n .layoutType=${this.layoutType}\n ?showTvClips=${this.showTvClips}\n ?showInfoButton=${this.shouldShowInfoButton}\n ?useLocalTime=${this.useLocalTime}\n @infoButtonPressed=${this.tileInfoButtonPressed}\n >\n </item-tile>`;\n }\n case 'list-compact':\n return html`<tile-list-compact\n .model=${model}\n .collectionPagePath=${collectionPagePath}\n .currentWidth=${currentWidth}\n .currentHeight=${currentHeight}\n .baseNavigationUrl=${baseNavigationUrl}\n .sortParam=${sortParam}\n .defaultSortParam=${defaultSortParam}\n .creatorFilter=${creatorFilter}\n .mobileBreakpoint=${mobileBreakpoint}\n .baseImageUrl=${this.baseImageUrl}\n .loggedIn=${this.loggedIn}\n .suppressBlurring=${this.suppressBlurring}\n ?useLocalTime=${this.useLocalTime}\n >\n </tile-list-compact>`;\n case 'list-detail':\n return html`<tile-list\n .model=${model}\n .collectionPagePath=${collectionPagePath}\n .collectionTitles=${this.collectionTitles}\n .currentWidth=${currentWidth}\n .currentHeight=${currentHeight}\n .baseNavigationUrl=${baseNavigationUrl}\n .sortParam=${sortParam}\n .defaultSortParam=${defaultSortParam}\n .creatorFilter=${creatorFilter}\n .mobileBreakpoint=${mobileBreakpoint}\n .baseImageUrl=${this.baseImageUrl}\n .loggedIn=${this.loggedIn}\n .suppressBlurring=${this.suppressBlurring}\n ?useLocalTime=${this.useLocalTime}\n >\n </tile-list>`;\n default:\n return nothing;\n }\n }\n\n static get styles() {\n return [\n srOnlyStyle,\n css`\n :host {\n display: block;\n height: 100%;\n }\n\n collection-tile {\n --tileBorderColor: #555555;\n --tileBackgroundColor: #666666;\n --imageBlockBackgroundColor: #666666;\n }\n\n account-tile {\n --tileBorderColor: #dddddd;\n --imageBlockBackgroundColor: #fcf5e6;\n }\n\n item-tile {\n --tileBorderColor: #dddddd;\n --imageBlockBackgroundColor: #f1f1f4;\n }\n\n search-tile {\n --tileBorderColor: #555555;\n --tileBackgroundColor: #666666;\n --imageBlockBackgroundColor: #666666;\n --iconFillColor: #2c2c2c;\n }\n\n #container {\n position: relative;\n height: 100%;\n border-radius: 4px;\n }\n\n /*\n * When tile actions are present, the container becomes the visual \"card\"\n * so that the tile content and action buttons appear as one unified element.\n */\n /*\n * When tile actions are present, the container takes over the tile's\n * border-radius and box-shadow so that the action bar appears as part\n * of the same card. The inner tile's own shadow/radius are disabled\n * via CSS variable overrides so there is no visual duplication.\n */\n #container.has-tile-actions {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n box-shadow: var(--tileShadow, 1px 1px 2px 0);\n --tileBoxShadow: none;\n --tileCornerRadius: 0;\n }\n\n #container.has-tile-actions .tile-link {\n flex: 1;\n min-height: 0;\n overflow: hidden;\n border-radius: 0;\n }\n\n /* Move hover shadow to container level when tile actions are present */\n #container.hoverable:not(.has-tile-actions) a:focus,\n #container.hoverable:not(.has-tile-actions) a:hover {\n box-shadow: var(\n --tileHoverBoxShadow,\n 0 0 6px 2px rgba(8, 8, 32, 0.8)\n );\n transition: box-shadow 0.1s ease;\n }\n\n #container.hoverable.has-tile-actions:hover {\n box-shadow: var(\n --tileHoverBoxShadow,\n 0 0 6px 2px rgba(8, 8, 32, 0.8)\n );\n transition: box-shadow 0.1s ease;\n }\n\n a {\n display: block;\n height: 100%;\n color: unset;\n text-decoration: none;\n transition: transform 0.05s ease;\n border-radius: 4px;\n outline: none;\n }\n\n a :first-child {\n display: block;\n height: 100%;\n }\n\n .manage-check {\n position: absolute;\n right: 0;\n top: 0;\n border: 5px solid #2c2c2c;\n border-radius: 3px;\n background-color: #2c2c2c;\n z-index: 1;\n }\n\n .manage-check > input[type='checkbox'] {\n display: block;\n margin: 0;\n }\n\n #touch-backdrop {\n position: fixed;\n width: 100vw;\n height: 100vh;\n top: 0;\n left: 0;\n z-index: 2;\n background: transparent;\n }\n\n tile-hover-pane {\n position: absolute;\n top: 0;\n left: -9999px;\n z-index: 2;\n }\n\n .tile-actions {\n flex-shrink: 0;\n display: flex;\n border-top: 1px solid var(--tileActionSeparatorColor, #ddd);\n }\n\n .tile-action-btn {\n flex: 1;\n padding: 8px;\n border: none;\n border-radius: 0;\n font-size: 1.2rem;\n cursor: pointer;\n color: var(--tileActionColor, #333);\n background: var(--tileActionBg, #fff);\n transition: background 0.15s;\n }\n\n .tile-action-btn + .tile-action-btn {\n border-left: 1px solid var(--tileActionSeparatorColor, #ddd);\n }\n\n .tile-action-btn:hover {\n background: var(--tileActionHoverBg, #f0f0f0);\n }\n `,\n ];\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tile-display-value-provider.js","sourceRoot":"","sources":["../../../src/tiles/tile-display-value-provider.ts"],"names":[],"mappings":"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","sourcesContent":["import { TemplateResult, html, nothing } from 'lit';\r\nimport { msg, str } from '@lit/localize';\r\nimport type { SortParam } from '@internetarchive/search-service';\r\nimport type { TileModel } from '../models';\r\nimport { formatDate } from '../utils/format-date';\r\n\r\n/**\r\n * A class encapsulating shared logic for converting model values into display values\r\n * across different types of tiles.\r\n */\r\nexport class TileDisplayValueProvider {\r\n private model?: TileModel;\r\n\r\n private baseNavigationUrl?: string;\r\n\r\n private collectionPagePath?: string;\r\n\r\n private sortParam?: SortParam;\r\n\r\n private creatorFilter?: string;\r\n\r\n constructor(\r\n options: {\r\n model?: TileModel;\r\n baseNavigationUrl?: string;\r\n collectionPagePath?: string;\r\n sortParam?: SortParam;\r\n creatorFilter?: string;\r\n } = {},\r\n ) {\r\n this.model = options.model;\r\n this.baseNavigationUrl = options.baseNavigationUrl;\r\n this.collectionPagePath = options.collectionPagePath ?? '/details/';\r\n this.sortParam = options.sortParam;\r\n this.creatorFilter = options.creatorFilter;\r\n }\r\n\r\n /**\r\n * Examines the creator(s) for the given tile model, returning\r\n * the first creator whose name matches the provided filter\r\n * (or simply the first creator overall if no filter is provided).\r\n */\r\n get firstCreatorMatchingFilter(): string | undefined {\r\n let matchingCreator;\r\n\r\n // If we're filtering by creator initial and have multiple creators, we want\r\n // to surface the first creator who matches the filter.\r\n if (this.creatorFilter && this.model?.creators.length) {\r\n const firstLetter = this.creatorFilter; // This is just to satisfy tsc\r\n matchingCreator = this.model.creators.find(creator =>\r\n // Decompose combining characters first, so that e.g., filtering on E matches É too.\r\n // Then remove anything that isn't strictly alphabetic, since our filters currently\r\n // only handle A-Z. The first such letter (if one exists) is what needs to match.\r\n creator\r\n .normalize('NFD')\r\n .replace(/[^A-Z]+/gi, '')\r\n .toUpperCase()\r\n .startsWith(firstLetter),\r\n );\r\n }\r\n\r\n return matchingCreator ?? this.model?.creator;\r\n }\r\n\r\n /**\r\n * The label indicating what year an account item was created.\r\n * E.g., \"Archivist since 2015\"\r\n */\r\n get accountLabel(): string {\r\n return this.model?.dateAdded\r\n ? msg(str`Archivist since ${this.model.dateAdded.getFullYear()}`)\r\n : '';\r\n }\r\n\r\n /**\r\n * The readable label for the current sort if it is a type of date sort,\r\n * or the empty string otherwise.\r\n */\r\n get dateLabel(): string {\r\n switch (this.sortParam?.field) {\r\n case 'publicdate':\r\n return msg('Archived');\r\n case 'reviewdate':\r\n return msg('Reviewed');\r\n case 'addeddate':\r\n return msg('Added');\r\n case 'date':\r\n return msg('Published');\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n /**\r\n * Produces a URL pointing at the item page for the given identifier,\r\n * using the current base URL and the correct path based on whether the\r\n * item is specified to be a collection (default false).\r\n */\r\n itemPageUrl(\r\n identifier?: string,\r\n isCollection = false,\r\n ): string | typeof nothing {\r\n if (!identifier || this.baseNavigationUrl == null) return nothing;\r\n const basePath = isCollection ? this.collectionPagePath : '/details/';\r\n return `${this.baseNavigationUrl}${basePath}${identifier}`;\r\n }\r\n\r\n /**\r\n * Produces a template for a link to a single web capture of the given URL and date\r\n */\r\n webArchivesCaptureLink(url: string, date: Date): TemplateResult {\r\n // Convert the date into the format used to identify wayback captures (e.g., '20150102124550')\r\n const captureDateStr = date\r\n .toISOString()\r\n .replace(/[TZ:-]/g, '')\r\n .replace(/\\..*/, '');\r\n const captureHref = `https://web.archive.org/web/${captureDateStr}/${encodeURIComponent(\r\n url,\r\n )}`;\r\n const captureText = formatDate(date, 'long');\r\n\r\n return html` <a href=${captureHref}> ${captureText} </a> `;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"tile-display-value-provider.js","sourceRoot":"","sources":["../../../src/tiles/tile-display-value-provider.ts"],"names":[],"mappings":"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","sourcesContent":["import { TemplateResult, html, nothing } from 'lit';\nimport { msg, str } from '@lit/localize';\nimport type { SortParam } from '@internetarchive/search-service';\nimport type { TileModel } from '../models';\nimport { formatDate } from '../utils/format-date';\n\n/**\n * A class encapsulating shared logic for converting model values into display values\n * across different types of tiles.\n */\nexport class TileDisplayValueProvider {\n private model?: TileModel;\n\n private baseNavigationUrl?: string;\n\n private collectionPagePath?: string;\n\n private sortParam?: SortParam;\n\n private creatorFilter?: string;\n\n constructor(\n options: {\n model?: TileModel;\n baseNavigationUrl?: string;\n collectionPagePath?: string;\n sortParam?: SortParam;\n creatorFilter?: string;\n } = {},\n ) {\n this.model = options.model;\n this.baseNavigationUrl = options.baseNavigationUrl;\n this.collectionPagePath = options.collectionPagePath ?? '/details/';\n this.sortParam = options.sortParam;\n this.creatorFilter = options.creatorFilter;\n }\n\n /**\n * Examines the creator(s) for the given tile model, returning\n * the first creator whose name matches the provided filter\n * (or simply the first creator overall if no filter is provided).\n */\n get firstCreatorMatchingFilter(): string | undefined {\n let matchingCreator;\n\n // If we're filtering by creator initial and have multiple creators, we want\n // to surface the first creator who matches the filter.\n if (this.creatorFilter && this.model?.creators.length) {\n const firstLetter = this.creatorFilter; // This is just to satisfy tsc\n matchingCreator = this.model.creators.find(creator =>\n // Decompose combining characters first, so that e.g., filtering on E matches É too.\n // Then remove anything that isn't strictly alphabetic, since our filters currently\n // only handle A-Z. The first such letter (if one exists) is what needs to match.\n creator\n .normalize('NFD')\n .replace(/[^A-Z]+/gi, '')\n .toUpperCase()\n .startsWith(firstLetter),\n );\n }\n\n return matchingCreator ?? this.model?.creator;\n }\n\n /**\n * The label indicating what year an account item was created.\n * E.g., \"Archivist since 2015\"\n */\n get accountLabel(): string {\n return this.model?.dateAdded\n ? msg(str`Archivist since ${this.model.dateAdded.getFullYear()}`)\n : '';\n }\n\n /**\n * The readable label for the current sort if it is a type of date sort,\n * or the empty string otherwise.\n */\n get dateLabel(): string {\n switch (this.sortParam?.field) {\n case 'publicdate':\n return msg('Archived');\n case 'reviewdate':\n return msg('Reviewed');\n case 'addeddate':\n return msg('Added');\n case 'date':\n return msg('Published');\n default:\n return '';\n }\n }\n\n /**\n * Produces a URL pointing at the item page for the given identifier,\n * using the current base URL and the correct path based on whether the\n * item is specified to be a collection (default false).\n */\n itemPageUrl(\n identifier?: string,\n isCollection = false,\n ): string | typeof nothing {\n if (!identifier || this.baseNavigationUrl == null) return nothing;\n const basePath = isCollection ? this.collectionPagePath : '/details/';\n return `${this.baseNavigationUrl}${basePath}${identifier}`;\n }\n\n /**\n * Produces a template for a link to a single web capture of the given URL and date\n */\n webArchivesCaptureLink(url: string, date: Date): TemplateResult {\n // Convert the date into the format used to identify wayback captures (e.g., '20150102124550')\n const captureDateStr = date\n .toISOString()\n .replace(/[TZ:-]/g, '')\n .replace(/\\..*/, '');\n const captureHref = `https://web.archive.org/web/${captureDateStr}/${encodeURIComponent(\n url,\n )}`;\n const captureText = formatDate(date, 'long');\n\n return html` <a href=${captureHref}> ${captureText} </a> `;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"mock-search-responses.js","sourceRoot":"","sources":["../../../test/mocks/mock-search-responses.ts"],"names":[],"mappings":"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EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;qBAC9B;iBACF,CAAC;aACH;SACF;QACD,cAAc,EAAE;YACd,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,CAAC;SACd;KACF;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAG3B,GAAG,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,IAAI,kBAAkB,CAAC,sBAAsB,CAAC,YAAY,EAAE,KAAK,EAAE;QACxE,OAAO,EAAE,KAAK;KACf,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAG/B,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC","sourcesContent":["// eslint-disable @typescript-eslint/no-unsafe-function-type\r\nimport type { Result } from '@internetarchive/result-type';\r\nimport {\r\n Aggregation,\r\n ItemHit,\r\n SearchResponse,\r\n SearchServiceError,\r\n TextHit,\r\n} from '@internetarchive/search-service';\r\nimport { TvClipHit } from '@internetarchive/search-service/dist/src/models/hit-types/tv-clip-hit';\r\nimport { WebArchiveHit } from '@internetarchive/search-service/dist/src/models/hit-types/web-archive-hit';\r\nimport { SearchServiceErrorType } from '@internetarchive/search-service/dist/src/search-service-error';\r\n\r\nexport const getMockSuccessSingleResult: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'collection:foo',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'collection:foo',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n results: [\r\n new ItemHit({\r\n fields: {\r\n identifier: 'foo',\r\n collection: ['foo', 'bar'],\r\n },\r\n }),\r\n ],\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessManyFields: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'many-fields',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'many-fields',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n results: [\r\n new ItemHit({\r\n fields: {\r\n identifier: 'foo',\r\n avg_rating: 3.5,\r\n collection: ['foo', 'bar', 'no-preview', 'loggedin'],\r\n collection_files_count: 123,\r\n collection_size: 234,\r\n creator: ['baz', 'boop'],\r\n date: '2010-01-03T01:23:45Z',\r\n addeddate: '2010-01-01T01:23:45Z',\r\n publicdate: '2010-01-02T01:23:45Z',\r\n reviewdate: '2010-01-04T01:23:45Z',\r\n description: 'foo bar baz',\r\n downloads: 246,\r\n issue: 1,\r\n item_count: 20,\r\n mediatype: 'texts',\r\n num_favorites: 12,\r\n num_reviews: 23,\r\n num_clips: 34,\r\n source: 'foo bar',\r\n subject: ['baz', 'quux'],\r\n title: 'Foo Bar',\r\n volume: 2,\r\n week: 50,\r\n __href__: 'https://archive.org/details/foo',\r\n __img__: '//services/img/foo',\r\n },\r\n }),\r\n ],\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessTvFields: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'tv-fields',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'tv-fields',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n results: [\r\n new TvClipHit({\r\n fields: {\r\n identifier: 'foo',\r\n ad_id: ['foo-ad'],\r\n clip: true,\r\n collection: ['foo', 'bar', 'tvnews'],\r\n creator: ['baz', 'boop'],\r\n date: '2010-01-03T01:23:45Z',\r\n addeddate: '2010-01-01T01:23:45Z',\r\n publicdate: '2010-01-02T01:23:45Z',\r\n reviewdate: '2010-01-04T01:23:45Z',\r\n description: 'foo bar baz',\r\n downloads: 246,\r\n factcheck: ['https://foo.bar'],\r\n files_count: 75,\r\n indexflag: ['index', 'nonoindex'],\r\n item_size: 123456,\r\n language: 'eng',\r\n mediatype: 'movies',\r\n num_favorites: 12,\r\n nclips: 34,\r\n source: 'foo bar',\r\n start: '1234',\r\n subject: ['baz', 'quux'],\r\n title: 'Foo Bar',\r\n week: 50,\r\n year: 2010,\r\n __href__: 'https://archive.org/details/foo',\r\n __img__: '//services/img/foo',\r\n },\r\n }),\r\n ],\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessWithYearHistogramAggs: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'years',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'years',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n aggregations: {\r\n subject: new Aggregation({\r\n buckets: [\r\n {\r\n key: 'foo',\r\n doc_count: 3,\r\n },\r\n ],\r\n }),\r\n year_histogram: new Aggregation({\r\n buckets: [1, 2, 3, 3, 2, 1],\r\n first_bucket_key: 1950,\r\n last_bucket_key: 2000,\r\n interval: 10,\r\n number_buckets: 6,\r\n }),\r\n },\r\n results: [],\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessWithDateHistogramAggs: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'months',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'months',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n aggregations: {\r\n subject: new Aggregation({\r\n buckets: [\r\n {\r\n key: 'foo',\r\n doc_count: 3,\r\n },\r\n ],\r\n }),\r\n date_histogram: new Aggregation({\r\n buckets: [1, 2, 3, 3, 2, 1],\r\n first_bucket_year: 2000,\r\n first_bucket_month: 1,\r\n last_bucket_year: 2002,\r\n last_bucket_month: 7,\r\n interval_in_months: 6,\r\n number_buckets: 6,\r\n }),\r\n },\r\n results: [],\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessArchiveOrgUserResult: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'archive-org-user-loggedin',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'archive-org-user-loggedin',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {\r\n is_archive_user: true,\r\n pps_relevant_user_preferences: {\r\n display__blur_moderated_content: 'on',\r\n },\r\n },\r\n response: {\r\n totalResults: 2,\r\n returnedCount: 2,\r\n results: [\r\n new ItemHit({\r\n fields: {\r\n identifier: 'foo',\r\n collection: ['foo', 'loggedin', 'bar'],\r\n __href__: '/foo',\r\n },\r\n }),\r\n new ItemHit({\r\n fields: {\r\n identifier: 'bar',\r\n collection: ['baz', 'boop'],\r\n __href__: '/bar',\r\n },\r\n }),\r\n ],\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessArchiveOrgUserNoBlurResult: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'archive-org-user-loggedin-noblur',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'archive-org-user-loggedin-noblur',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {\r\n is_archive_user: true,\r\n pps_relevant_user_preferences: {\r\n display__blur_moderated_content: 'off',\r\n },\r\n },\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n results: [\r\n new ItemHit({\r\n fields: {\r\n identifier: 'foo',\r\n collection: ['loggedin'],\r\n title: 'foo',\r\n mediatype: 'texts',\r\n },\r\n }),\r\n ],\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessLoggedInResult: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'loggedin',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'loggedin',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n results: [\r\n new ItemHit({\r\n fields: {\r\n identifier: 'foo',\r\n collection: ['foo', 'loggedin', 'bar'],\r\n title: 'foo',\r\n mediatype: 'data',\r\n },\r\n }),\r\n ],\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessNoPreviewResult: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'no-preview',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'no-preview',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n results: [\r\n new ItemHit({\r\n fields: {\r\n identifier: 'foo',\r\n collection: ['foo', 'no-preview', 'bar'],\r\n },\r\n }),\r\n ],\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessLoggedInAndNoPreviewResult: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'loggedin-no-preview',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'loggedin-no-preview',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n results: [\r\n new ItemHit({\r\n fields: {\r\n identifier: 'foo',\r\n collection: ['foo', 'loggedin', 'no-preview', 'bar'],\r\n },\r\n }),\r\n ],\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessFirstTitleResult: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'first-title',\r\n sort: ['title', 'asc'],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'first-title',\r\n sort: ['title', 'asc'],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n aggregations: {\r\n firstTitle: new Aggregation({\r\n buckets: [{ key: 'X', doc_count: 1 }],\r\n }),\r\n },\r\n results: [\r\n new ItemHit({\r\n fields: {\r\n identifier: 'foo',\r\n },\r\n }),\r\n ],\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessFirstCreatorResult: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'first-creator',\r\n sort: ['creator', 'asc'],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'first-creator',\r\n sort: ['creator', 'asc'],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n aggregations: {\r\n firstCreator: new Aggregation({\r\n buckets: [{ key: 'X', doc_count: 1 }],\r\n }),\r\n },\r\n results: [\r\n new ItemHit({\r\n fields: {\r\n identifier: 'foo',\r\n },\r\n }),\r\n ],\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessWithCollectionTitles: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'collection:foo',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'collection:foo',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 2,\r\n returnedCount: 2,\r\n results: [\r\n new ItemHit({\r\n fields: {\r\n identifier: 'foo',\r\n collection: ['foo', 'bar'],\r\n },\r\n }),\r\n new ItemHit({\r\n fields: {\r\n identifier: 'bar',\r\n collection: ['baz', 'boop'],\r\n },\r\n }),\r\n ],\r\n collectionTitles: {\r\n foo: 'Foo Collection',\r\n bar: 'Bar Collection',\r\n baz: 'Baz Collection',\r\n boop: 'Boop Collection',\r\n },\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessWithChannelAliases: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'collection:foo',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'collection:foo',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n results: [\r\n new TvClipHit({\r\n fields: {\r\n identifier: 'foo',\r\n creator: ['foo', 'bar'],\r\n },\r\n }),\r\n ],\r\n tvChannelAliases: {\r\n foo: 'Foo Network',\r\n bar: 'Bar Network',\r\n },\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessWithCollectionAggregations: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'collection:foo',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'collection:foo',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 0,\r\n returnedCount: 0,\r\n results: [],\r\n aggregations: {\r\n collection: new Aggregation({\r\n buckets: [\r\n {\r\n key: 'foo',\r\n doc_count: 10,\r\n },\r\n {\r\n key: 'bar',\r\n doc_count: 10,\r\n },\r\n ],\r\n }),\r\n },\r\n collectionTitles: {\r\n foo: 'Foo',\r\n bar: 'Bar',\r\n },\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessSingleResultWithSort: (\r\n resultsSpy: Function,\r\n) => Result<SearchResponse, SearchServiceError> = (resultsSpy: Function) => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'with-sort',\r\n sort: ['foo:asc'],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'with-sort',\r\n sort: ['foo:asc'],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n get results() {\r\n resultsSpy();\r\n return [\r\n new ItemHit({\r\n fields: {\r\n identifier: 'foo',\r\n collection: ['foo', 'bar'],\r\n },\r\n }),\r\n ];\r\n },\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessMultipleResults: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'collection:foo',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'collection:foo',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 2,\r\n returnedCount: 2,\r\n results: [\r\n new ItemHit({\r\n fields: {\r\n identifier: 'foo',\r\n collection: ['foo', 'bar'],\r\n __href__: '/foo',\r\n },\r\n }),\r\n new ItemHit({\r\n fields: {\r\n identifier: 'bar',\r\n collection: ['baz', 'boop'],\r\n __href__: '/bar',\r\n },\r\n }),\r\n ],\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessNoResults: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'no-results',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'no-results',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 0,\r\n returnedCount: 0,\r\n results: [],\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessMultiLineDescription: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'multi-line-description',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'multi-line-description',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n results: [\r\n new ItemHit({\r\n fields: {\r\n identifier: 'foo',\r\n collection: ['foo', 'bar'],\r\n description: ['line1', 'line2'],\r\n },\r\n }),\r\n ],\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessExtraQuotedHref: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'extra-quoted-href',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'extra-quoted-href',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n results: [\r\n new TextHit({\r\n fields: {\r\n identifier: 'foo',\r\n title: 'Foo',\r\n __href__: '/details/foo?q=%22%22quoted+query%22%22',\r\n },\r\n }),\r\n ],\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessWithDefaultSort: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'default-sort',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'default-sort',\r\n sort: ['titleSorter', 'identifier'],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n results: [\r\n new ItemHit({\r\n fields: {\r\n identifier: 'foo',\r\n title: 'Foo',\r\n },\r\n }),\r\n ],\r\n collectionExtraInfo: {\r\n public_metadata: {\r\n 'sort-by': 'titleSorter',\r\n },\r\n },\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessWithConciseDefaultSort: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'default-sort-concise',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'default-sort-concise',\r\n sort: ['addeddate:desc', 'identifier'],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n results: [\r\n new ItemHit({\r\n fields: {\r\n identifier: 'foo',\r\n title: 'Foo',\r\n },\r\n }),\r\n ],\r\n collectionExtraInfo: {\r\n public_metadata: {\r\n 'sort-by': '-addeddate',\r\n },\r\n },\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessWithDefaultFavSort: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'fav-sort',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'fav-sort',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n results: [\r\n new ItemHit({\r\n fields: {\r\n identifier: 'foo',\r\n title: 'Foo',\r\n },\r\n }),\r\n ],\r\n collectionExtraInfo: {\r\n public_metadata: {\r\n identifier: 'fav-foo',\r\n },\r\n },\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessWithParentCollections: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'parent-collections',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'parent-collections',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n results: [\r\n new ItemHit({\r\n fields: {\r\n identifier: 'foo',\r\n title: 'Foo',\r\n },\r\n }),\r\n ],\r\n collectionExtraInfo: {\r\n public_metadata: {\r\n collection: ['foo', 'bar'],\r\n },\r\n },\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessForTvCollection: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'tv-collection',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'tv-collection',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n results: [\r\n new ItemHit({\r\n fields: {\r\n identifier: 'foo',\r\n title: 'Foo',\r\n },\r\n }),\r\n ],\r\n collectionExtraInfo: {\r\n public_metadata: {\r\n identifier: 'TV-FOO',\r\n collection: ['tvarchive'],\r\n },\r\n },\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessWithWebArchiveHits: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'hits',\r\n clientParameters: {\r\n user_query: 'web-archive',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'hits',\r\n finalized_parameters: {\r\n user_query: 'web-archive',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 1,\r\n returnedCount: 1,\r\n results: [\r\n new WebArchiveHit({\r\n fields: {\r\n url: 'https://example.com',\r\n capture_dates: ['2010-01-02T03:04:05Z'],\r\n __href__:\r\n 'https://web.archive.org/web/20100102030405/https%3A%2F%2Fexample.com',\r\n },\r\n }),\r\n ],\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockSuccessWithManyAggregations: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n success: {\r\n request: {\r\n kind: 'aggregations',\r\n clientParameters: {\r\n user_query: 'more-facets',\r\n sort: [],\r\n },\r\n backendRequests: {\r\n primary: {\r\n kind: 'aggregations',\r\n finalized_parameters: {\r\n user_query: 'more-facets',\r\n sort: [],\r\n },\r\n },\r\n },\r\n },\r\n rawResponse: {},\r\n sessionContext: {},\r\n response: {\r\n totalResults: 0,\r\n returnedCount: 0,\r\n results: [],\r\n aggregations: {\r\n year: new Aggregation({\r\n buckets: [\r\n { key: '1980', doc_count: 5 },\r\n { key: '1981', doc_count: 6 },\r\n { key: '1982', doc_count: 7 },\r\n { key: '1983', doc_count: 8 },\r\n { key: '1984', doc_count: 5 },\r\n { key: '1985', doc_count: 6 },\r\n { key: '1986', doc_count: 7 },\r\n { key: '1987', doc_count: 8 },\r\n { key: '1988', doc_count: 5 },\r\n { key: '1989', doc_count: 6 },\r\n { key: '1990', doc_count: 7 },\r\n { key: '1991', doc_count: 8 },\r\n { key: '1992', doc_count: 5 },\r\n { key: '1993', doc_count: 6 },\r\n { key: '1994', doc_count: 7 },\r\n { key: '1995', doc_count: 8 },\r\n { key: '1996', doc_count: 5 },\r\n { key: '1997', doc_count: 6 },\r\n { key: '1998', doc_count: 7 },\r\n { key: '1999', doc_count: 8 },\r\n { key: '2000', doc_count: 5 },\r\n { key: '2001', doc_count: 6 },\r\n { key: '2002', doc_count: 7 },\r\n { key: '2003', doc_count: 8 },\r\n { key: '2004', doc_count: 5 },\r\n { key: '2005', doc_count: 6 },\r\n { key: '2006', doc_count: 7 },\r\n { key: '2007', doc_count: 8 },\r\n { key: '2008', doc_count: 5 },\r\n { key: '2009', doc_count: 6 },\r\n { key: '2010', doc_count: 7 },\r\n { key: '2011', doc_count: 8 },\r\n { key: '2012', doc_count: 5 },\r\n { key: '2013', doc_count: 6 },\r\n { key: '2014', doc_count: 7 },\r\n { key: '2015', doc_count: 8 },\r\n { key: '2016', doc_count: 5 },\r\n { key: '2017', doc_count: 6 },\r\n { key: '2018', doc_count: 7 },\r\n { key: '2019', doc_count: 8 },\r\n { key: '2020', doc_count: 5 },\r\n { key: '2021', doc_count: 6 },\r\n { key: '2022', doc_count: 7 },\r\n { key: '2023', doc_count: 8 },\r\n { key: '2024', doc_count: 5 },\r\n ],\r\n }),\r\n },\r\n },\r\n responseHeader: {\r\n succeeded: true,\r\n query_time: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const getMockErrorResult: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({\r\n error: new SearchServiceError(SearchServiceErrorType.networkError, 'foo', {\r\n message: 'bar',\r\n }),\r\n});\r\n\r\nexport const getMockMalformedResult: () => Result<\r\n SearchResponse,\r\n SearchServiceError\r\n> = () => ({});\r\n"]}
1
+ {"version":3,"file":"mock-search-responses.js","sourceRoot":"","sources":["../../../test/mocks/mock-search-responses.ts"],"names":[],"mappings":"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EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;qBAC9B;iBACF,CAAC;aACH;SACF;QACD,cAAc,EAAE;YACd,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,CAAC;SACd;KACF;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAG3B,GAAG,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,IAAI,kBAAkB,CAAC,sBAAsB,CAAC,YAAY,EAAE,KAAK,EAAE;QACxE,OAAO,EAAE,KAAK;KACf,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAG/B,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC","sourcesContent":["// eslint-disable @typescript-eslint/no-unsafe-function-type\nimport type { Result } from '@internetarchive/result-type';\nimport {\n Aggregation,\n ItemHit,\n SearchResponse,\n SearchServiceError,\n TextHit,\n} from '@internetarchive/search-service';\nimport { TvClipHit } from '@internetarchive/search-service/dist/src/models/hit-types/tv-clip-hit';\nimport { WebArchiveHit } from '@internetarchive/search-service/dist/src/models/hit-types/web-archive-hit';\nimport { SearchServiceErrorType } from '@internetarchive/search-service/dist/src/search-service-error';\n\nexport const getMockSuccessSingleResult: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'collection:foo',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'collection:foo',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n collection: ['foo', 'bar'],\n },\n }),\n ],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessManyFields: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'many-fields',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'many-fields',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n avg_rating: 3.5,\n collection: ['foo', 'bar', 'no-preview', 'loggedin'],\n collection_files_count: 123,\n collection_size: 234,\n creator: ['baz', 'boop'],\n date: '2010-01-03T01:23:45Z',\n addeddate: '2010-01-01T01:23:45Z',\n publicdate: '2010-01-02T01:23:45Z',\n reviewdate: '2010-01-04T01:23:45Z',\n description: 'foo bar baz',\n downloads: 246,\n issue: 1,\n item_count: 20,\n mediatype: 'texts',\n num_favorites: 12,\n num_reviews: 23,\n num_clips: 34,\n source: 'foo bar',\n subject: ['baz', 'quux'],\n title: 'Foo Bar',\n volume: 2,\n week: 50,\n __href__: 'https://archive.org/details/foo',\n __img__: '//services/img/foo',\n },\n }),\n ],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessTvFields: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'tv-fields',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'tv-fields',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n results: [\n new TvClipHit({\n fields: {\n identifier: 'foo',\n ad_id: ['foo-ad'],\n clip: true,\n collection: ['foo', 'bar', 'tvnews'],\n creator: ['baz', 'boop'],\n date: '2010-01-03T01:23:45Z',\n addeddate: '2010-01-01T01:23:45Z',\n publicdate: '2010-01-02T01:23:45Z',\n reviewdate: '2010-01-04T01:23:45Z',\n description: 'foo bar baz',\n downloads: 246,\n factcheck: ['https://foo.bar'],\n files_count: 75,\n indexflag: ['index', 'nonoindex'],\n item_size: 123456,\n language: 'eng',\n mediatype: 'movies',\n num_favorites: 12,\n nclips: 34,\n source: 'foo bar',\n start: '1234',\n subject: ['baz', 'quux'],\n title: 'Foo Bar',\n week: 50,\n year: 2010,\n __href__: 'https://archive.org/details/foo',\n __img__: '//services/img/foo',\n },\n }),\n ],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessWithYearHistogramAggs: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'years',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'years',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n aggregations: {\n subject: new Aggregation({\n buckets: [\n {\n key: 'foo',\n doc_count: 3,\n },\n ],\n }),\n year_histogram: new Aggregation({\n buckets: [1, 2, 3, 3, 2, 1],\n first_bucket_key: 1950,\n last_bucket_key: 2000,\n interval: 10,\n number_buckets: 6,\n }),\n },\n results: [],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessWithDateHistogramAggs: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'months',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'months',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n aggregations: {\n subject: new Aggregation({\n buckets: [\n {\n key: 'foo',\n doc_count: 3,\n },\n ],\n }),\n date_histogram: new Aggregation({\n buckets: [1, 2, 3, 3, 2, 1],\n first_bucket_year: 2000,\n first_bucket_month: 1,\n last_bucket_year: 2002,\n last_bucket_month: 7,\n interval_in_months: 6,\n number_buckets: 6,\n }),\n },\n results: [],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessArchiveOrgUserResult: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'archive-org-user-loggedin',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'archive-org-user-loggedin',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {\n is_archive_user: true,\n pps_relevant_user_preferences: {\n display__blur_moderated_content: 'on',\n },\n },\n response: {\n totalResults: 2,\n returnedCount: 2,\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n collection: ['foo', 'loggedin', 'bar'],\n __href__: '/foo',\n },\n }),\n new ItemHit({\n fields: {\n identifier: 'bar',\n collection: ['baz', 'boop'],\n __href__: '/bar',\n },\n }),\n ],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessArchiveOrgUserNoBlurResult: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'archive-org-user-loggedin-noblur',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'archive-org-user-loggedin-noblur',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {\n is_archive_user: true,\n pps_relevant_user_preferences: {\n display__blur_moderated_content: 'off',\n },\n },\n response: {\n totalResults: 1,\n returnedCount: 1,\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n collection: ['loggedin'],\n title: 'foo',\n mediatype: 'texts',\n },\n }),\n ],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessLoggedInResult: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'loggedin',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'loggedin',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n collection: ['foo', 'loggedin', 'bar'],\n title: 'foo',\n mediatype: 'data',\n },\n }),\n ],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessNoPreviewResult: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'no-preview',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'no-preview',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n collection: ['foo', 'no-preview', 'bar'],\n },\n }),\n ],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessLoggedInAndNoPreviewResult: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'loggedin-no-preview',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'loggedin-no-preview',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n collection: ['foo', 'loggedin', 'no-preview', 'bar'],\n },\n }),\n ],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessFirstTitleResult: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'first-title',\n sort: ['title', 'asc'],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'first-title',\n sort: ['title', 'asc'],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n aggregations: {\n firstTitle: new Aggregation({\n buckets: [{ key: 'X', doc_count: 1 }],\n }),\n },\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n },\n }),\n ],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessFirstCreatorResult: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'first-creator',\n sort: ['creator', 'asc'],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'first-creator',\n sort: ['creator', 'asc'],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n aggregations: {\n firstCreator: new Aggregation({\n buckets: [{ key: 'X', doc_count: 1 }],\n }),\n },\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n },\n }),\n ],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessWithCollectionTitles: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'collection:foo',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'collection:foo',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 2,\n returnedCount: 2,\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n collection: ['foo', 'bar'],\n },\n }),\n new ItemHit({\n fields: {\n identifier: 'bar',\n collection: ['baz', 'boop'],\n },\n }),\n ],\n collectionTitles: {\n foo: 'Foo Collection',\n bar: 'Bar Collection',\n baz: 'Baz Collection',\n boop: 'Boop Collection',\n },\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessWithChannelAliases: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'collection:foo',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'collection:foo',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n results: [\n new TvClipHit({\n fields: {\n identifier: 'foo',\n creator: ['foo', 'bar'],\n },\n }),\n ],\n tvChannelAliases: {\n foo: 'Foo Network',\n bar: 'Bar Network',\n },\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessWithCollectionAggregations: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'collection:foo',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'collection:foo',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 0,\n returnedCount: 0,\n results: [],\n aggregations: {\n collection: new Aggregation({\n buckets: [\n {\n key: 'foo',\n doc_count: 10,\n },\n {\n key: 'bar',\n doc_count: 10,\n },\n ],\n }),\n },\n collectionTitles: {\n foo: 'Foo',\n bar: 'Bar',\n },\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessSingleResultWithSort: (\n resultsSpy: Function,\n) => Result<SearchResponse, SearchServiceError> = (resultsSpy: Function) => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'with-sort',\n sort: ['foo:asc'],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'with-sort',\n sort: ['foo:asc'],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n get results() {\n resultsSpy();\n return [\n new ItemHit({\n fields: {\n identifier: 'foo',\n collection: ['foo', 'bar'],\n },\n }),\n ];\n },\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessMultipleResults: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'collection:foo',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'collection:foo',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 2,\n returnedCount: 2,\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n collection: ['foo', 'bar'],\n __href__: '/foo',\n },\n }),\n new ItemHit({\n fields: {\n identifier: 'bar',\n collection: ['baz', 'boop'],\n __href__: '/bar',\n },\n }),\n ],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessNoResults: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'no-results',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'no-results',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 0,\n returnedCount: 0,\n results: [],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessMultiLineDescription: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'multi-line-description',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'multi-line-description',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n collection: ['foo', 'bar'],\n description: ['line1', 'line2'],\n },\n }),\n ],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessExtraQuotedHref: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'extra-quoted-href',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'extra-quoted-href',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n results: [\n new TextHit({\n fields: {\n identifier: 'foo',\n title: 'Foo',\n __href__: '/details/foo?q=%22%22quoted+query%22%22',\n },\n }),\n ],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessWithDefaultSort: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'default-sort',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'default-sort',\n sort: ['titleSorter', 'identifier'],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n title: 'Foo',\n },\n }),\n ],\n collectionExtraInfo: {\n public_metadata: {\n 'sort-by': 'titleSorter',\n },\n },\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessWithConciseDefaultSort: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'default-sort-concise',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'default-sort-concise',\n sort: ['addeddate:desc', 'identifier'],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n title: 'Foo',\n },\n }),\n ],\n collectionExtraInfo: {\n public_metadata: {\n 'sort-by': '-addeddate',\n },\n },\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessWithDefaultFavSort: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'fav-sort',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'fav-sort',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n title: 'Foo',\n },\n }),\n ],\n collectionExtraInfo: {\n public_metadata: {\n identifier: 'fav-foo',\n },\n },\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessWithParentCollections: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'parent-collections',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'parent-collections',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n title: 'Foo',\n },\n }),\n ],\n collectionExtraInfo: {\n public_metadata: {\n collection: ['foo', 'bar'],\n },\n },\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessForTvCollection: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'tv-collection',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'tv-collection',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n title: 'Foo',\n },\n }),\n ],\n collectionExtraInfo: {\n public_metadata: {\n identifier: 'TV-FOO',\n collection: ['tvarchive'],\n },\n },\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessWithWebArchiveHits: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'hits',\n clientParameters: {\n user_query: 'web-archive',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'hits',\n finalized_parameters: {\n user_query: 'web-archive',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n results: [\n new WebArchiveHit({\n fields: {\n url: 'https://example.com',\n capture_dates: ['2010-01-02T03:04:05Z'],\n __href__:\n 'https://web.archive.org/web/20100102030405/https%3A%2F%2Fexample.com',\n },\n }),\n ],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockSuccessWithManyAggregations: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n success: {\n request: {\n kind: 'aggregations',\n clientParameters: {\n user_query: 'more-facets',\n sort: [],\n },\n backendRequests: {\n primary: {\n kind: 'aggregations',\n finalized_parameters: {\n user_query: 'more-facets',\n sort: [],\n },\n },\n },\n },\n rawResponse: {},\n sessionContext: {},\n response: {\n totalResults: 0,\n returnedCount: 0,\n results: [],\n aggregations: {\n year: new Aggregation({\n buckets: [\n { key: '1980', doc_count: 5 },\n { key: '1981', doc_count: 6 },\n { key: '1982', doc_count: 7 },\n { key: '1983', doc_count: 8 },\n { key: '1984', doc_count: 5 },\n { key: '1985', doc_count: 6 },\n { key: '1986', doc_count: 7 },\n { key: '1987', doc_count: 8 },\n { key: '1988', doc_count: 5 },\n { key: '1989', doc_count: 6 },\n { key: '1990', doc_count: 7 },\n { key: '1991', doc_count: 8 },\n { key: '1992', doc_count: 5 },\n { key: '1993', doc_count: 6 },\n { key: '1994', doc_count: 7 },\n { key: '1995', doc_count: 8 },\n { key: '1996', doc_count: 5 },\n { key: '1997', doc_count: 6 },\n { key: '1998', doc_count: 7 },\n { key: '1999', doc_count: 8 },\n { key: '2000', doc_count: 5 },\n { key: '2001', doc_count: 6 },\n { key: '2002', doc_count: 7 },\n { key: '2003', doc_count: 8 },\n { key: '2004', doc_count: 5 },\n { key: '2005', doc_count: 6 },\n { key: '2006', doc_count: 7 },\n { key: '2007', doc_count: 8 },\n { key: '2008', doc_count: 5 },\n { key: '2009', doc_count: 6 },\n { key: '2010', doc_count: 7 },\n { key: '2011', doc_count: 8 },\n { key: '2012', doc_count: 5 },\n { key: '2013', doc_count: 6 },\n { key: '2014', doc_count: 7 },\n { key: '2015', doc_count: 8 },\n { key: '2016', doc_count: 5 },\n { key: '2017', doc_count: 6 },\n { key: '2018', doc_count: 7 },\n { key: '2019', doc_count: 8 },\n { key: '2020', doc_count: 5 },\n { key: '2021', doc_count: 6 },\n { key: '2022', doc_count: 7 },\n { key: '2023', doc_count: 8 },\n { key: '2024', doc_count: 5 },\n ],\n }),\n },\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const getMockErrorResult: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({\n error: new SearchServiceError(SearchServiceErrorType.networkError, 'foo', {\n message: 'bar',\n }),\n});\n\nexport const getMockMalformedResult: () => Result<\n SearchResponse,\n SearchServiceError\n> = () => ({});\n"]}