@internetarchive/collection-browser 2.1.4-alpha3 → 2.1.4

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 (299) hide show
  1. package/.editorconfig +29 -29
  2. package/.husky/pre-commit +4 -4
  3. package/LICENSE +661 -661
  4. package/README.md +83 -83
  5. package/dist/index.d.ts +12 -12
  6. package/dist/index.js +12 -12
  7. package/dist/src/app-root.d.ts +88 -84
  8. package/dist/src/app-root.js +486 -454
  9. package/dist/src/app-root.js.map +1 -1
  10. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  11. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  12. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  13. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  14. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  15. package/dist/src/assets/img/icons/chevron.js +2 -2
  16. package/dist/src/assets/img/icons/contract.d.ts +2 -2
  17. package/dist/src/assets/img/icons/contract.js +2 -2
  18. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  19. package/dist/src/assets/img/icons/empty-query.js +2 -2
  20. package/dist/src/assets/img/icons/expand.d.ts +2 -2
  21. package/dist/src/assets/img/icons/expand.js +2 -2
  22. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  23. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  24. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  25. package/dist/src/assets/img/icons/eye.js +2 -2
  26. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  27. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  28. package/dist/src/assets/img/icons/favorite-unfilled.d.ts +1 -1
  29. package/dist/src/assets/img/icons/favorite-unfilled.js +2 -2
  30. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  31. package/dist/src/assets/img/icons/login-required.js +2 -2
  32. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  33. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  34. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  35. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  36. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  37. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  38. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  39. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  40. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  41. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  42. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  43. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  44. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  45. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  46. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  47. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  48. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
  49. package/dist/src/assets/img/icons/mediatype/search.js +2 -2
  50. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  51. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  52. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  53. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  54. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  55. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  56. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  57. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  58. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  59. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  60. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  61. package/dist/src/assets/img/icons/null-result.js +2 -2
  62. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  63. package/dist/src/assets/img/icons/restricted.js +2 -2
  64. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  65. package/dist/src/assets/img/icons/reviews.js +2 -2
  66. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  67. package/dist/src/assets/img/icons/upload.js +2 -2
  68. package/dist/src/assets/img/icons/views.d.ts +1 -1
  69. package/dist/src/assets/img/icons/views.js +2 -2
  70. package/dist/src/circular-activity-indicator.d.ts +5 -5
  71. package/dist/src/circular-activity-indicator.js +17 -17
  72. package/dist/src/collection-browser.d.ts +446 -395
  73. package/dist/src/collection-browser.js +1406 -1361
  74. package/dist/src/collection-browser.js.map +1 -1
  75. package/dist/src/collection-facets/facet-row.d.ts +30 -30
  76. package/dist/src/collection-facets/facet-row.js +114 -114
  77. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  78. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  79. package/dist/src/collection-facets/facets-template.d.ts +17 -17
  80. package/dist/src/collection-facets/facets-template.js +114 -114
  81. package/dist/src/collection-facets/more-facets-content.d.ts +70 -70
  82. package/dist/src/collection-facets/more-facets-content.js +354 -354
  83. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  84. package/dist/src/collection-facets/more-facets-pagination.js +196 -196
  85. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  86. package/dist/src/collection-facets/toggle-switch.js +94 -94
  87. package/dist/src/collection-facets.d.ts +103 -103
  88. package/dist/src/collection-facets.js +509 -509
  89. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +232 -232
  90. package/dist/src/data-source/collection-browser-data-source-interface.js +1 -1
  91. package/dist/src/data-source/collection-browser-data-source.d.ts +360 -360
  92. package/dist/src/data-source/collection-browser-data-source.js +930 -930
  93. package/dist/src/data-source/collection-browser-query-state.d.ts +43 -43
  94. package/dist/src/data-source/collection-browser-query-state.js +1 -1
  95. package/dist/src/data-source/models.d.ts +28 -28
  96. package/dist/src/data-source/models.js +8 -8
  97. package/dist/src/empty-placeholder.d.ts +23 -23
  98. package/dist/src/empty-placeholder.js +74 -74
  99. package/dist/src/expanded-date-picker.d.ts +43 -43
  100. package/dist/src/expanded-date-picker.js +109 -109
  101. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  102. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  103. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  104. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  105. package/dist/src/manage/manage-bar.d.ts +30 -30
  106. package/dist/src/manage/manage-bar.js +61 -61
  107. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  108. package/dist/src/mediatype/mediatype-config.js +91 -91
  109. package/dist/src/models.d.ts +198 -198
  110. package/dist/src/models.js +381 -381
  111. package/dist/src/restoration-state-handler.d.ts +70 -70
  112. package/dist/src/restoration-state-handler.js +357 -357
  113. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  114. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  115. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  116. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  117. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  118. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  119. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  120. package/dist/src/sort-filter-bar/img/list.js +2 -2
  121. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  122. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  123. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  124. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  125. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  126. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  127. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  128. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  129. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  130. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  131. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +221 -219
  132. package/dist/src/sort-filter-bar/sort-filter-bar.js +695 -685
  133. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  134. package/dist/src/styles/ia-button.d.ts +2 -2
  135. package/dist/src/styles/ia-button.js +16 -16
  136. package/dist/src/styles/item-image-styles.d.ts +8 -8
  137. package/dist/src/styles/item-image-styles.js +9 -9
  138. package/dist/src/styles/sr-only.d.ts +1 -1
  139. package/dist/src/styles/sr-only.js +2 -2
  140. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  141. package/dist/src/tiles/base-tile-component.js +63 -63
  142. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  143. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  144. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  145. package/dist/src/tiles/grid/account-tile.js +72 -72
  146. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  147. package/dist/src/tiles/grid/collection-tile.js +80 -80
  148. package/dist/src/tiles/grid/item-tile.d.ts +30 -30
  149. package/dist/src/tiles/grid/item-tile.js +149 -149
  150. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  151. package/dist/src/tiles/grid/search-tile.js +51 -51
  152. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  153. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  154. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  155. package/dist/src/tiles/grid/tile-stats.js +53 -53
  156. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  157. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  158. package/dist/src/tiles/hover/tile-hover-pane.d.ts +15 -15
  159. package/dist/src/tiles/hover/tile-hover-pane.js +38 -38
  160. package/dist/src/tiles/image-block.d.ts +17 -17
  161. package/dist/src/tiles/image-block.js +73 -73
  162. package/dist/src/tiles/item-image.d.ts +39 -39
  163. package/dist/src/tiles/item-image.js +154 -154
  164. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  165. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  166. package/dist/src/tiles/list/tile-list-compact.d.ts +15 -15
  167. package/dist/src/tiles/list/tile-list-compact.js +114 -114
  168. package/dist/src/tiles/list/tile-list.d.ts +50 -50
  169. package/dist/src/tiles/list/tile-list.js +315 -315
  170. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  171. package/dist/src/tiles/mediatype-icon.js +47 -47
  172. package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
  173. package/dist/src/tiles/overlay/icon-overlay.js +40 -40
  174. package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
  175. package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
  176. package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
  177. package/dist/src/tiles/overlay/text-overlay.js +42 -42
  178. package/dist/src/tiles/review-block.d.ts +12 -12
  179. package/dist/src/tiles/review-block.js +56 -56
  180. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  181. package/dist/src/tiles/text-snippet-block.js +73 -73
  182. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  183. package/dist/src/tiles/tile-dispatcher.js +229 -229
  184. package/dist/src/tiles/tile-display-value-provider.d.ts +47 -47
  185. package/dist/src/tiles/tile-display-value-provider.js +94 -94
  186. package/dist/src/utils/analytics-events.d.ts +25 -25
  187. package/dist/src/utils/analytics-events.js +27 -27
  188. package/dist/src/utils/array-equals.d.ts +4 -4
  189. package/dist/src/utils/array-equals.js +10 -10
  190. package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -11
  191. package/dist/src/utils/collapse-repeated-quotes.js +13 -13
  192. package/dist/src/utils/format-count.d.ts +7 -7
  193. package/dist/src/utils/format-count.js +76 -76
  194. package/dist/src/utils/format-date.d.ts +2 -2
  195. package/dist/src/utils/format-date.js +25 -25
  196. package/dist/src/utils/format-unit-size.d.ts +2 -2
  197. package/dist/src/utils/format-unit-size.js +33 -33
  198. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  199. package/dist/src/utils/local-date-from-utc.js +15 -15
  200. package/dist/src/utils/log.d.ts +7 -7
  201. package/dist/src/utils/log.js +15 -15
  202. package/dist/src/utils/resolve-mediatype.d.ts +8 -8
  203. package/dist/src/utils/resolve-mediatype.js +23 -23
  204. package/dist/src/utils/sha1.d.ts +2 -2
  205. package/dist/src/utils/sha1.js +8 -8
  206. package/dist/test/collection-browser.test.d.ts +1 -1
  207. package/dist/test/collection-browser.test.js +1242 -1242
  208. package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
  209. package/dist/test/collection-facets/facet-row.test.js +203 -203
  210. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  211. package/dist/test/collection-facets/facets-template.test.js +105 -105
  212. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  213. package/dist/test/collection-facets/more-facets-content.test.js +133 -133
  214. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  215. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  216. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  217. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  218. package/dist/test/collection-facets.test.d.ts +2 -2
  219. package/dist/test/collection-facets.test.js +652 -652
  220. package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -1
  221. package/dist/test/data-source/collection-browser-data-source.test.js +89 -89
  222. package/dist/test/empty-placeholder.test.d.ts +1 -1
  223. package/dist/test/empty-placeholder.test.js +63 -63
  224. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  225. package/dist/test/expanded-date-picker.test.js +95 -95
  226. package/dist/test/icon-overlay.test.d.ts +1 -1
  227. package/dist/test/icon-overlay.test.js +24 -24
  228. package/dist/test/image-block.test.d.ts +1 -1
  229. package/dist/test/image-block.test.js +48 -48
  230. package/dist/test/item-image.test.d.ts +1 -1
  231. package/dist/test/item-image.test.js +85 -85
  232. package/dist/test/manage/manage-bar.test.d.ts +1 -1
  233. package/dist/test/manage/manage-bar.test.js +81 -81
  234. package/dist/test/mediatype-config.test.d.ts +1 -1
  235. package/dist/test/mediatype-config.test.js +16 -16
  236. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  237. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  238. package/dist/test/mocks/mock-search-responses.d.ts +24 -24
  239. package/dist/test/mocks/mock-search-responses.js +840 -840
  240. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  241. package/dist/test/mocks/mock-search-service.js +53 -53
  242. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  243. package/dist/test/restoration-state-handler.test.js +270 -270
  244. package/dist/test/review-block.test.d.ts +1 -1
  245. package/dist/test/review-block.test.js +44 -44
  246. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  247. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  248. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  249. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  250. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  251. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +428 -420
  252. package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -1
  253. package/dist/test/text-overlay.test.d.ts +1 -1
  254. package/dist/test/text-overlay.test.js +48 -48
  255. package/dist/test/text-snippet-block.test.d.ts +1 -1
  256. package/dist/test/text-snippet-block.test.js +57 -57
  257. package/dist/test/tile-stats.test.d.ts +1 -1
  258. package/dist/test/tile-stats.test.js +81 -81
  259. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  260. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  261. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  262. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  263. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  264. package/dist/test/tiles/grid/item-tile.test.js +312 -312
  265. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  266. package/dist/test/tiles/grid/search-tile.test.js +51 -51
  267. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  268. package/dist/test/tiles/hover/hover-pane-controller.test.js +259 -259
  269. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  270. package/dist/test/tiles/hover/tile-hover-pane.test.js +13 -13
  271. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  272. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  273. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  274. package/dist/test/tiles/list/tile-list.test.js +297 -297
  275. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  276. package/dist/test/tiles/tile-dispatcher.test.js +100 -100
  277. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  278. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  279. package/dist/test/utils/array-equals.test.d.ts +1 -1
  280. package/dist/test/utils/array-equals.test.js +26 -26
  281. package/dist/test/utils/format-count.test.d.ts +1 -1
  282. package/dist/test/utils/format-count.test.js +23 -23
  283. package/dist/test/utils/format-date.test.d.ts +1 -1
  284. package/dist/test/utils/format-date.test.js +17 -17
  285. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  286. package/dist/test/utils/format-unit-size.test.js +17 -17
  287. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  288. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  289. package/local.archive.org.cert +86 -86
  290. package/local.archive.org.key +27 -27
  291. package/package.json +1 -1
  292. package/renovate.json +6 -6
  293. package/src/app-root.ts +56 -23
  294. package/src/collection-browser.ts +59 -1
  295. package/src/sort-filter-bar/sort-filter-bar.ts +10 -1
  296. package/test/sort-filter-bar/sort-filter-bar.test.ts +11 -0
  297. package/tsconfig.json +21 -21
  298. package/web-dev-server.config.mjs +30 -30
  299. package/web-test-runner.config.mjs +41 -41
@@ -1,70 +1,70 @@
1
- import { SearchType, SortDirection } from '@internetarchive/search-service';
2
- import { CollectionBrowserContext, CollectionDisplayMode, SelectedFacets, SortField } from './models';
3
- export interface RestorationState {
4
- displayMode?: CollectionDisplayMode;
5
- searchType?: SearchType;
6
- selectedSort?: SortField;
7
- sortDirection?: SortDirection;
8
- selectedFacets: SelectedFacets;
9
- baseQuery?: string;
10
- currentPage?: number;
11
- titleQuery?: string;
12
- creatorQuery?: string;
13
- minSelectedDate?: string;
14
- maxSelectedDate?: string;
15
- selectedTitleFilter?: string;
16
- selectedCreatorFilter?: string;
17
- }
18
- export interface RestorationStateHandlerInterface {
19
- persistState(state: RestorationState, forceReplace?: boolean): void;
20
- getRestorationState(): RestorationState;
21
- }
22
- export declare class RestorationStateHandler implements RestorationStateHandlerInterface {
23
- private context;
24
- private cookieDomain;
25
- private cookieExpiration;
26
- private cookiePath;
27
- constructor(options: {
28
- context: CollectionBrowserContext;
29
- });
30
- persistState(state: RestorationState, forceReplace?: boolean): void;
31
- getRestorationState(): RestorationState;
32
- private persistViewStateToCookies;
33
- private loadTileViewStateFromCookies;
34
- private persistQueryStateToUrl;
35
- private loadQueryStateFromUrl;
36
- /**
37
- * Converts a URL sort param into a field/direction pair, if possible.
38
- * Either or both may be undefined if the param is not in a recognized format.
39
- */
40
- private getSortFieldAndDirection;
41
- /** Returns the `-` prefix for `desc` sort, or the empty string otherwise. */
42
- private sortDirectionPrefix;
43
- /** Remove optional opening and closing quotes from a string */
44
- private stripQuotes;
45
- /**
46
- * Returns whether the two given URLSearchParams objects have
47
- * identical values for all of the given param keys. If either
48
- * object contains more than one value for a given key, then
49
- * all of the values for that key must match (disregarding order).
50
- */
51
- private paramsMatch;
52
- /**
53
- * Deletes any params from the given URLSearchParams object that are recognized
54
- * when loading state from the URL.
55
- */
56
- private removeRecognizedParams;
57
- /**
58
- * Returns whether the given URLSearchParams object contains a param that is
59
- * only recognized as a holdover from legacy search, and should not be
60
- * persisted to the URL.
61
- */
62
- private hasLegacyParam;
63
- /**
64
- * Sets the facet state for the given field & value to the given state,
65
- * creating any previously-undefined buckets as needed.
66
- */
67
- private setSelectedFacetState;
68
- /** Returns a default bucket with the given key, count of 0, and state 'none'. */
69
- private getDefaultBucket;
70
- }
1
+ import { SearchType, SortDirection } from '@internetarchive/search-service';
2
+ import { CollectionBrowserContext, CollectionDisplayMode, SelectedFacets, SortField } from './models';
3
+ export interface RestorationState {
4
+ displayMode?: CollectionDisplayMode;
5
+ searchType?: SearchType;
6
+ selectedSort?: SortField;
7
+ sortDirection?: SortDirection;
8
+ selectedFacets: SelectedFacets;
9
+ baseQuery?: string;
10
+ currentPage?: number;
11
+ titleQuery?: string;
12
+ creatorQuery?: string;
13
+ minSelectedDate?: string;
14
+ maxSelectedDate?: string;
15
+ selectedTitleFilter?: string;
16
+ selectedCreatorFilter?: string;
17
+ }
18
+ export interface RestorationStateHandlerInterface {
19
+ persistState(state: RestorationState, forceReplace?: boolean): void;
20
+ getRestorationState(): RestorationState;
21
+ }
22
+ export declare class RestorationStateHandler implements RestorationStateHandlerInterface {
23
+ private context;
24
+ private cookieDomain;
25
+ private cookieExpiration;
26
+ private cookiePath;
27
+ constructor(options: {
28
+ context: CollectionBrowserContext;
29
+ });
30
+ persistState(state: RestorationState, forceReplace?: boolean): void;
31
+ getRestorationState(): RestorationState;
32
+ private persistViewStateToCookies;
33
+ private loadTileViewStateFromCookies;
34
+ private persistQueryStateToUrl;
35
+ private loadQueryStateFromUrl;
36
+ /**
37
+ * Converts a URL sort param into a field/direction pair, if possible.
38
+ * Either or both may be undefined if the param is not in a recognized format.
39
+ */
40
+ private getSortFieldAndDirection;
41
+ /** Returns the `-` prefix for `desc` sort, or the empty string otherwise. */
42
+ private sortDirectionPrefix;
43
+ /** Remove optional opening and closing quotes from a string */
44
+ private stripQuotes;
45
+ /**
46
+ * Returns whether the two given URLSearchParams objects have
47
+ * identical values for all of the given param keys. If either
48
+ * object contains more than one value for a given key, then
49
+ * all of the values for that key must match (disregarding order).
50
+ */
51
+ private paramsMatch;
52
+ /**
53
+ * Deletes any params from the given URLSearchParams object that are recognized
54
+ * when loading state from the URL.
55
+ */
56
+ private removeRecognizedParams;
57
+ /**
58
+ * Returns whether the given URLSearchParams object contains a param that is
59
+ * only recognized as a holdover from legacy search, and should not be
60
+ * persisted to the URL.
61
+ */
62
+ private hasLegacyParam;
63
+ /**
64
+ * Sets the facet state for the given field & value to the given state,
65
+ * creating any previously-undefined buckets as needed.
66
+ */
67
+ private setSelectedFacetState;
68
+ /** Returns a default bucket with the given key, count of 0, and state 'none'. */
69
+ private getDefaultBucket;
70
+ }