@internetarchive/collection-browser 2.7.12 → 2.7.13-alpha2

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 (498) hide show
  1. package/.editorconfig +29 -29
  2. package/.github/workflows/ci.yml +3 -3
  3. package/.github/workflows/gh-pages-main.yml +2 -2
  4. package/.github/workflows/pr-preview.yml +2 -2
  5. package/.husky/pre-commit +4 -4
  6. package/.prettierignore +1 -0
  7. package/LICENSE +661 -661
  8. package/README.md +83 -83
  9. package/dist/index.d.ts +13 -13
  10. package/dist/index.js +11 -13
  11. package/dist/index.js.map +1 -1
  12. package/dist/src/app-root.d.ts +109 -107
  13. package/dist/src/app-root.js +541 -531
  14. package/dist/src/app-root.js.map +1 -1
  15. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  16. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  17. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  18. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  19. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  20. package/dist/src/assets/img/icons/chevron.js +2 -2
  21. package/dist/src/assets/img/icons/contract.d.ts +2 -2
  22. package/dist/src/assets/img/icons/contract.js +2 -2
  23. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  24. package/dist/src/assets/img/icons/empty-query.js +2 -2
  25. package/dist/src/assets/img/icons/expand.d.ts +2 -2
  26. package/dist/src/assets/img/icons/expand.js +2 -2
  27. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  28. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  29. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  30. package/dist/src/assets/img/icons/eye.js +2 -2
  31. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  32. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  33. package/dist/src/assets/img/icons/favorite-unfilled.d.ts +1 -1
  34. package/dist/src/assets/img/icons/favorite-unfilled.js +2 -2
  35. package/dist/src/assets/img/icons/filter.d.ts +2 -2
  36. package/dist/src/assets/img/icons/filter.js +2 -2
  37. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  38. package/dist/src/assets/img/icons/login-required.js +2 -2
  39. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  40. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  41. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  42. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  43. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  44. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  45. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  46. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  47. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  48. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  49. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  50. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  51. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  52. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  53. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  54. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  55. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
  56. package/dist/src/assets/img/icons/mediatype/search.js +2 -2
  57. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  58. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  59. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  60. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  61. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  62. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  63. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  64. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  65. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  66. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  67. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  68. package/dist/src/assets/img/icons/null-result.js +2 -2
  69. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  70. package/dist/src/assets/img/icons/restricted.js +2 -2
  71. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  72. package/dist/src/assets/img/icons/reviews.js +2 -2
  73. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  74. package/dist/src/assets/img/icons/upload.js +2 -2
  75. package/dist/src/assets/img/icons/views.d.ts +1 -1
  76. package/dist/src/assets/img/icons/views.js +2 -2
  77. package/dist/src/circular-activity-indicator.d.ts +5 -5
  78. package/dist/src/circular-activity-indicator.js +17 -17
  79. package/dist/src/circular-activity-indicator.js.map +1 -1
  80. package/dist/src/collection-browser.d.ts +607 -606
  81. package/dist/src/collection-browser.js +1683 -1677
  82. package/dist/src/collection-browser.js.map +1 -1
  83. package/dist/src/collection-facets/facet-row.d.ts +30 -30
  84. package/dist/src/collection-facets/facet-row.js +118 -118
  85. package/dist/src/collection-facets/facet-row.js.map +1 -1
  86. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  87. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  88. package/dist/src/collection-facets/facet-tombstone-row.js.map +1 -1
  89. package/dist/src/collection-facets/facets-template.d.ts +13 -13
  90. package/dist/src/collection-facets/facets-template.js +49 -49
  91. package/dist/src/collection-facets/facets-template.js.map +1 -1
  92. package/dist/src/collection-facets/more-facets-content.d.ts +106 -106
  93. package/dist/src/collection-facets/more-facets-content.js +406 -408
  94. package/dist/src/collection-facets/more-facets-content.js.map +1 -1
  95. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  96. package/dist/src/collection-facets/more-facets-pagination.js +197 -196
  97. package/dist/src/collection-facets/more-facets-pagination.js.map +1 -1
  98. package/dist/src/collection-facets/smart-facets/dedupe.d.ts +10 -10
  99. package/dist/src/collection-facets/smart-facets/dedupe.js +33 -33
  100. package/dist/src/collection-facets/smart-facets/dedupe.js.map +1 -1
  101. package/dist/src/collection-facets/smart-facets/heuristics/browser-language-heuristic.d.ts +5 -5
  102. package/dist/src/collection-facets/smart-facets/heuristics/browser-language-heuristic.js +23 -23
  103. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.d.ts +5 -5
  104. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.js +44 -44
  105. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.js.map +1 -1
  106. package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.d.ts +5 -5
  107. package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js +172 -172
  108. package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js.map +1 -1
  109. package/dist/src/collection-facets/smart-facets/models.d.ts +26 -26
  110. package/dist/src/collection-facets/smart-facets/models.js +1 -1
  111. package/dist/src/collection-facets/smart-facets/smart-facet-bar.d.ts +31 -31
  112. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js +237 -240
  113. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js.map +1 -1
  114. package/dist/src/collection-facets/smart-facets/smart-facet-button.d.ts +11 -11
  115. package/dist/src/collection-facets/smart-facets/smart-facet-button.js +86 -86
  116. package/dist/src/collection-facets/smart-facets/smart-facet-button.js.map +1 -1
  117. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.d.ts +16 -16
  118. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js +100 -100
  119. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js.map +1 -1
  120. package/dist/src/collection-facets/smart-facets/smart-facet-equals.d.ts +2 -2
  121. package/dist/src/collection-facets/smart-facets/smart-facet-equals.js +12 -12
  122. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.d.ts +5 -5
  123. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js +15 -15
  124. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js.map +1 -1
  125. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  126. package/dist/src/collection-facets/toggle-switch.js +94 -94
  127. package/dist/src/collection-facets/toggle-switch.js.map +1 -1
  128. package/dist/src/collection-facets.d.ts +103 -103
  129. package/dist/src/collection-facets.js +521 -522
  130. package/dist/src/collection-facets.js.map +1 -1
  131. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +245 -245
  132. package/dist/src/data-source/collection-browser-data-source-interface.js +1 -1
  133. package/dist/src/data-source/collection-browser-data-source-interface.js.map +1 -1
  134. package/dist/src/data-source/collection-browser-data-source.d.ts +377 -377
  135. package/dist/src/data-source/collection-browser-data-source.js +1003 -1001
  136. package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
  137. package/dist/src/data-source/collection-browser-query-state.d.ts +44 -44
  138. package/dist/src/data-source/collection-browser-query-state.js +1 -1
  139. package/dist/src/data-source/models.d.ts +28 -28
  140. package/dist/src/data-source/models.js +8 -8
  141. package/dist/src/empty-placeholder.d.ts +23 -23
  142. package/dist/src/empty-placeholder.js +87 -88
  143. package/dist/src/empty-placeholder.js.map +1 -1
  144. package/dist/src/expanded-date-picker.d.ts +43 -43
  145. package/dist/src/expanded-date-picker.js +109 -109
  146. package/dist/src/expanded-date-picker.js.map +1 -1
  147. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  148. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  149. package/dist/src/language-code-handler/language-code-handler.js.map +1 -1
  150. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  151. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  152. package/dist/src/language-code-handler/language-code-mapping.js.map +1 -1
  153. package/dist/src/manage/manage-bar.d.ts +58 -58
  154. package/dist/src/manage/manage-bar.js +175 -175
  155. package/dist/src/manage/manage-bar.js.map +1 -1
  156. package/dist/src/manage/remove-items-modal-content.d.ts +9 -9
  157. package/dist/src/manage/remove-items-modal-content.js +34 -34
  158. package/dist/src/manage/remove-items-modal-content.js.map +1 -1
  159. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  160. package/dist/src/mediatype/mediatype-config.js +92 -91
  161. package/dist/src/mediatype/mediatype-config.js.map +1 -1
  162. package/dist/src/models.d.ts +228 -228
  163. package/dist/src/models.js +401 -401
  164. package/dist/src/models.js.map +1 -1
  165. package/dist/src/restoration-state-handler.d.ts +70 -70
  166. package/dist/src/restoration-state-handler.js +362 -363
  167. package/dist/src/restoration-state-handler.js.map +1 -1
  168. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  169. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  170. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js.map +1 -1
  171. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  172. package/dist/src/sort-filter-bar/alpha-bar.js +136 -136
  173. package/dist/src/sort-filter-bar/alpha-bar.js.map +1 -1
  174. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  175. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  176. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  177. package/dist/src/sort-filter-bar/img/list.js +2 -2
  178. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  179. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  180. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  181. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  182. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  183. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  184. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  185. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  186. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  187. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  188. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +223 -223
  189. package/dist/src/sort-filter-bar/sort-filter-bar.js +696 -697
  190. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  191. package/dist/src/styles/ia-button.d.ts +2 -2
  192. package/dist/src/styles/ia-button.js +17 -17
  193. package/dist/src/styles/item-image-styles.d.ts +8 -8
  194. package/dist/src/styles/item-image-styles.js +9 -9
  195. package/dist/src/styles/sr-only.d.ts +1 -1
  196. package/dist/src/styles/sr-only.js +2 -2
  197. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  198. package/dist/src/tiles/base-tile-component.js +64 -64
  199. package/dist/src/tiles/base-tile-component.js.map +1 -1
  200. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  201. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  202. package/dist/src/tiles/collection-browser-loading-tile.js.map +1 -1
  203. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  204. package/dist/src/tiles/grid/account-tile.js +72 -72
  205. package/dist/src/tiles/grid/account-tile.js.map +1 -1
  206. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  207. package/dist/src/tiles/grid/collection-tile.js +80 -80
  208. package/dist/src/tiles/grid/collection-tile.js.map +1 -1
  209. package/dist/src/tiles/grid/item-tile.d.ts +34 -34
  210. package/dist/src/tiles/grid/item-tile.js +159 -160
  211. package/dist/src/tiles/grid/item-tile.js.map +1 -1
  212. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  213. package/dist/src/tiles/grid/search-tile.js +51 -51
  214. package/dist/src/tiles/grid/search-tile.js.map +1 -1
  215. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  216. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  217. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  218. package/dist/src/tiles/grid/tile-stats.js +54 -54
  219. package/dist/src/tiles/grid/tile-stats.js.map +1 -1
  220. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  221. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  222. package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
  223. package/dist/src/tiles/hover/tile-hover-pane.d.ts +18 -18
  224. package/dist/src/tiles/hover/tile-hover-pane.js +72 -70
  225. package/dist/src/tiles/hover/tile-hover-pane.js.map +1 -1
  226. package/dist/src/tiles/image-block.d.ts +18 -18
  227. package/dist/src/tiles/image-block.js +89 -89
  228. package/dist/src/tiles/image-block.js.map +1 -1
  229. package/dist/src/tiles/item-image.d.ts +39 -39
  230. package/dist/src/tiles/item-image.js +154 -154
  231. package/dist/src/tiles/item-image.js.map +1 -1
  232. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  233. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  234. package/dist/src/tiles/list/tile-list-compact-header.js.map +1 -1
  235. package/dist/src/tiles/list/tile-list-compact.d.ts +19 -19
  236. package/dist/src/tiles/list/tile-list-compact.js +122 -122
  237. package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
  238. package/dist/src/tiles/list/tile-list.d.ts +54 -54
  239. package/dist/src/tiles/list/tile-list.js +324 -326
  240. package/dist/src/tiles/list/tile-list.js.map +1 -1
  241. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  242. package/dist/src/tiles/mediatype-icon.js +47 -47
  243. package/dist/src/tiles/mediatype-icon.js.map +1 -1
  244. package/dist/src/tiles/overlay/icon-overlay.d.ts +8 -8
  245. package/dist/src/tiles/overlay/icon-overlay.js +25 -25
  246. package/dist/src/tiles/overlay/icon-overlay.js.map +1 -1
  247. package/dist/src/tiles/overlay/text-overlay.d.ts +9 -9
  248. package/dist/src/tiles/overlay/text-overlay.js +31 -31
  249. package/dist/src/tiles/overlay/text-overlay.js.map +1 -1
  250. package/dist/src/tiles/review-block.d.ts +12 -12
  251. package/dist/src/tiles/review-block.js +56 -56
  252. package/dist/src/tiles/review-block.js.map +1 -1
  253. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  254. package/dist/src/tiles/text-snippet-block.js +73 -73
  255. package/dist/src/tiles/text-snippet-block.js.map +1 -1
  256. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  257. package/dist/src/tiles/tile-dispatcher.js +230 -230
  258. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  259. package/dist/src/tiles/tile-display-value-provider.d.ts +47 -47
  260. package/dist/src/tiles/tile-display-value-provider.js +94 -94
  261. package/dist/src/tiles/tile-display-value-provider.js.map +1 -1
  262. package/dist/src/utils/analytics-events.d.ts +28 -28
  263. package/dist/src/utils/analytics-events.js +30 -30
  264. package/dist/src/utils/array-equals.d.ts +4 -4
  265. package/dist/src/utils/array-equals.js +10 -10
  266. package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -11
  267. package/dist/src/utils/collapse-repeated-quotes.js +13 -13
  268. package/dist/src/utils/facet-utils.d.ts +83 -83
  269. package/dist/src/utils/facet-utils.js +145 -145
  270. package/dist/src/utils/facet-utils.js.map +1 -1
  271. package/dist/src/utils/format-count.d.ts +7 -7
  272. package/dist/src/utils/format-count.js +75 -76
  273. package/dist/src/utils/format-count.js.map +1 -1
  274. package/dist/src/utils/format-date.d.ts +2 -2
  275. package/dist/src/utils/format-date.js +27 -27
  276. package/dist/src/utils/format-date.js.map +1 -1
  277. package/dist/src/utils/format-unit-size.d.ts +2 -2
  278. package/dist/src/utils/format-unit-size.js +33 -33
  279. package/dist/src/utils/format-unit-size.js.map +1 -1
  280. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  281. package/dist/src/utils/local-date-from-utc.js +15 -15
  282. package/dist/src/utils/log.d.ts +7 -7
  283. package/dist/src/utils/log.js +13 -15
  284. package/dist/src/utils/log.js.map +1 -1
  285. package/dist/src/utils/resolve-mediatype.d.ts +8 -8
  286. package/dist/src/utils/resolve-mediatype.js +23 -23
  287. package/dist/src/utils/resolve-mediatype.js.map +1 -1
  288. package/dist/src/utils/sha1.d.ts +2 -2
  289. package/dist/src/utils/sha1.js +8 -8
  290. package/dist/test/collection-browser.test.d.ts +1 -1
  291. package/dist/test/collection-browser.test.js +1309 -1308
  292. package/dist/test/collection-browser.test.js.map +1 -1
  293. package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
  294. package/dist/test/collection-facets/facet-row.test.js +230 -227
  295. package/dist/test/collection-facets/facet-row.test.js.map +1 -1
  296. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  297. package/dist/test/collection-facets/facets-template.test.js +91 -91
  298. package/dist/test/collection-facets/facets-template.test.js.map +1 -1
  299. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  300. package/dist/test/collection-facets/more-facets-content.test.js +140 -141
  301. package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
  302. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  303. package/dist/test/collection-facets/more-facets-pagination.test.js +116 -117
  304. package/dist/test/collection-facets/more-facets-pagination.test.js.map +1 -1
  305. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  306. package/dist/test/collection-facets/toggle-switch.test.js +82 -73
  307. package/dist/test/collection-facets/toggle-switch.test.js.map +1 -1
  308. package/dist/test/collection-facets.test.d.ts +2 -2
  309. package/dist/test/collection-facets.test.js +692 -692
  310. package/dist/test/collection-facets.test.js.map +1 -1
  311. package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -1
  312. package/dist/test/data-source/collection-browser-data-source.test.js +89 -89
  313. package/dist/test/data-source/collection-browser-data-source.test.js.map +1 -1
  314. package/dist/test/empty-placeholder.test.d.ts +1 -1
  315. package/dist/test/empty-placeholder.test.js +62 -63
  316. package/dist/test/empty-placeholder.test.js.map +1 -1
  317. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  318. package/dist/test/expanded-date-picker.test.js +97 -96
  319. package/dist/test/expanded-date-picker.test.js.map +1 -1
  320. package/dist/test/icon-overlay.test.d.ts +1 -1
  321. package/dist/test/icon-overlay.test.js +23 -24
  322. package/dist/test/icon-overlay.test.js.map +1 -1
  323. package/dist/test/image-block.test.d.ts +1 -1
  324. package/dist/test/image-block.test.js +106 -107
  325. package/dist/test/image-block.test.js.map +1 -1
  326. package/dist/test/item-image.test.d.ts +1 -1
  327. package/dist/test/item-image.test.js +84 -85
  328. package/dist/test/item-image.test.js.map +1 -1
  329. package/dist/test/manage/manage-bar.test.d.ts +2 -2
  330. package/dist/test/manage/manage-bar.test.js +100 -101
  331. package/dist/test/manage/manage-bar.test.js.map +1 -1
  332. package/dist/test/manage/remove-items-modal-content.test.d.ts +1 -1
  333. package/dist/test/manage/remove-items-modal-content.test.js +44 -45
  334. package/dist/test/manage/remove-items-modal-content.test.js.map +1 -1
  335. package/dist/test/mediatype-config.test.d.ts +1 -1
  336. package/dist/test/mediatype-config.test.js +16 -16
  337. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  338. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  339. package/dist/test/mocks/mock-search-responses.d.ts +25 -25
  340. package/dist/test/mocks/mock-search-responses.js +942 -942
  341. package/dist/test/mocks/mock-search-responses.js.map +1 -1
  342. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  343. package/dist/test/mocks/mock-search-service.js +54 -54
  344. package/dist/test/mocks/mock-search-service.js.map +1 -1
  345. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  346. package/dist/test/restoration-state-handler.test.js +270 -270
  347. package/dist/test/restoration-state-handler.test.js.map +1 -1
  348. package/dist/test/review-block.test.d.ts +1 -1
  349. package/dist/test/review-block.test.js +43 -44
  350. package/dist/test/review-block.test.js.map +1 -1
  351. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  352. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  353. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js.map +1 -1
  354. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  355. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  356. package/dist/test/sort-filter-bar/alpha-bar.test.js.map +1 -1
  357. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  358. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +425 -426
  359. package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -1
  360. package/dist/test/text-overlay.test.d.ts +1 -1
  361. package/dist/test/text-overlay.test.js +37 -38
  362. package/dist/test/text-overlay.test.js.map +1 -1
  363. package/dist/test/text-snippet-block.test.d.ts +1 -1
  364. package/dist/test/text-snippet-block.test.js +56 -57
  365. package/dist/test/text-snippet-block.test.js.map +1 -1
  366. package/dist/test/tile-stats.test.d.ts +1 -1
  367. package/dist/test/tile-stats.test.js +98 -99
  368. package/dist/test/tile-stats.test.js.map +1 -1
  369. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  370. package/dist/test/tiles/grid/account-tile.test.js +75 -76
  371. package/dist/test/tiles/grid/account-tile.test.js.map +1 -1
  372. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  373. package/dist/test/tiles/grid/collection-tile.test.js +72 -73
  374. package/dist/test/tiles/grid/collection-tile.test.js.map +1 -1
  375. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  376. package/dist/test/tiles/grid/item-tile.test.js +311 -312
  377. package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
  378. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  379. package/dist/test/tiles/grid/search-tile.test.js +50 -51
  380. package/dist/test/tiles/grid/search-tile.test.js.map +1 -1
  381. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  382. package/dist/test/tiles/hover/hover-pane-controller.test.js +259 -259
  383. package/dist/test/tiles/hover/hover-pane-controller.test.js.map +1 -1
  384. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  385. package/dist/test/tiles/hover/tile-hover-pane.test.js +56 -56
  386. package/dist/test/tiles/hover/tile-hover-pane.test.js.map +1 -1
  387. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  388. package/dist/test/tiles/list/tile-list-compact.test.js +142 -143
  389. package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -1
  390. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  391. package/dist/test/tiles/list/tile-list.test.js +296 -297
  392. package/dist/test/tiles/list/tile-list.test.js.map +1 -1
  393. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  394. package/dist/test/tiles/tile-dispatcher.test.js +100 -100
  395. package/dist/test/tiles/tile-dispatcher.test.js.map +1 -1
  396. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  397. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  398. package/dist/test/utils/array-equals.test.d.ts +1 -1
  399. package/dist/test/utils/array-equals.test.js +26 -26
  400. package/dist/test/utils/format-count.test.d.ts +1 -1
  401. package/dist/test/utils/format-count.test.js +23 -23
  402. package/dist/test/utils/format-count.test.js.map +1 -1
  403. package/dist/test/utils/format-date.test.d.ts +1 -1
  404. package/dist/test/utils/format-date.test.js +30 -30
  405. package/dist/test/utils/format-date.test.js.map +1 -1
  406. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  407. package/dist/test/utils/format-unit-size.test.js +17 -17
  408. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  409. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  410. package/dist/test/utils/local-date-from-utc.test.js.map +1 -1
  411. package/eslint.config.mjs +53 -0
  412. package/index.html +0 -3
  413. package/local.archive.org.cert +86 -86
  414. package/local.archive.org.key +27 -27
  415. package/package.json +41 -39
  416. package/renovate.json +6 -6
  417. package/src/app-root.ts +33 -23
  418. package/src/collection-browser.ts +44 -42
  419. package/src/collection-facets/facets-template.ts +7 -6
  420. package/src/collection-facets/more-facets-content.ts +11 -13
  421. package/src/collection-facets/more-facets-pagination.ts +3 -2
  422. package/src/collection-facets/smart-facets/dedupe.ts +2 -2
  423. package/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.ts +1 -1
  424. package/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.ts +6 -6
  425. package/src/collection-facets/smart-facets/smart-facet-bar.ts +6 -8
  426. package/src/collection-facets/smart-facets/smart-facet-button.ts +5 -3
  427. package/src/collection-facets/smart-facets/smart-facet-dropdown.ts +4 -4
  428. package/src/collection-facets/smart-facets/smart-facet-heuristics.ts +1 -1
  429. package/src/collection-facets/toggle-switch.ts +2 -2
  430. package/src/collection-facets.ts +18 -19
  431. package/src/data-source/collection-browser-data-source-interface.ts +5 -1
  432. package/src/data-source/collection-browser-data-source.ts +42 -35
  433. package/src/empty-placeholder.ts +19 -16
  434. package/src/expanded-date-picker.ts +1 -1
  435. package/src/language-code-handler/language-code-handler.ts +1 -1
  436. package/src/manage/manage-bar.ts +23 -20
  437. package/src/manage/remove-items-modal-content.ts +2 -2
  438. package/src/mediatype/mediatype-config.ts +1 -0
  439. package/src/models.ts +3 -3
  440. package/src/restoration-state-handler.ts +14 -15
  441. package/src/sort-filter-bar/alpha-bar.ts +16 -17
  442. package/src/sort-filter-bar/sort-filter-bar.ts +14 -15
  443. package/src/tiles/grid/account-tile.ts +1 -1
  444. package/src/tiles/grid/collection-tile.ts +1 -1
  445. package/src/tiles/grid/item-tile.ts +9 -9
  446. package/src/tiles/grid/tile-stats.ts +4 -4
  447. package/src/tiles/hover/hover-pane-controller.ts +1 -1
  448. package/src/tiles/hover/tile-hover-pane.ts +4 -2
  449. package/src/tiles/item-image.ts +1 -1
  450. package/src/tiles/list/tile-list-compact.ts +2 -2
  451. package/src/tiles/list/tile-list.ts +22 -24
  452. package/src/tiles/tile-dispatcher.ts +5 -5
  453. package/src/tiles/tile-display-value-provider.ts +4 -4
  454. package/src/utils/facet-utils.ts +6 -6
  455. package/src/utils/format-count.ts +2 -3
  456. package/src/utils/format-date.ts +1 -1
  457. package/src/utils/format-unit-size.ts +1 -1
  458. package/src/utils/log.ts +1 -3
  459. package/test/collection-browser.test.ts +125 -124
  460. package/test/collection-facets/facet-row.test.ts +31 -28
  461. package/test/collection-facets/facets-template.test.ts +9 -9
  462. package/test/collection-facets/more-facets-content.test.ts +14 -15
  463. package/test/collection-facets/more-facets-pagination.test.ts +18 -19
  464. package/test/collection-facets/toggle-switch.test.ts +28 -18
  465. package/test/collection-facets.test.ts +46 -39
  466. package/test/data-source/collection-browser-data-source.test.ts +2 -2
  467. package/test/empty-placeholder.test.ts +6 -7
  468. package/test/expanded-date-picker.test.ts +25 -20
  469. package/test/icon-overlay.test.ts +0 -1
  470. package/test/image-block.test.ts +6 -7
  471. package/test/item-image.test.ts +0 -1
  472. package/test/manage/manage-bar.test.ts +19 -16
  473. package/test/manage/remove-items-modal-content.test.ts +4 -5
  474. package/test/mocks/mock-search-responses.ts +2 -1
  475. package/test/mocks/mock-search-service.ts +1 -1
  476. package/test/restoration-state-handler.test.ts +12 -12
  477. package/test/review-block.test.ts +1 -2
  478. package/test/sort-filter-bar/alpha-bar-tooltip.test.ts +1 -1
  479. package/test/sort-filter-bar/alpha-bar.test.ts +5 -5
  480. package/test/sort-filter-bar/sort-filter-bar.test.ts +38 -39
  481. package/test/text-overlay.test.ts +0 -1
  482. package/test/text-snippet-block.test.ts +5 -6
  483. package/test/tile-stats.test.ts +26 -35
  484. package/test/tiles/grid/account-tile.test.ts +2 -3
  485. package/test/tiles/grid/collection-tile.test.ts +3 -4
  486. package/test/tiles/grid/item-tile.test.ts +13 -14
  487. package/test/tiles/grid/search-tile.test.ts +1 -2
  488. package/test/tiles/hover/hover-pane-controller.test.ts +15 -15
  489. package/test/tiles/hover/tile-hover-pane.test.ts +5 -5
  490. package/test/tiles/list/tile-list-compact.test.ts +1 -2
  491. package/test/tiles/list/tile-list.test.ts +10 -11
  492. package/test/tiles/tile-dispatcher.test.ts +5 -5
  493. package/test/utils/format-count.test.ts +1 -1
  494. package/test/utils/format-date.test.ts +1 -1
  495. package/test/utils/local-date-from-utc.test.ts +1 -1
  496. package/tsconfig.json +0 -1
  497. package/web-dev-server.config.mjs +30 -30
  498. package/web-test-runner.config.mjs +41 -41
@@ -1,402 +1,402 @@
1
- import { msg } from '@lit/localize';
2
- import { AggregationSortType, } from '@internetarchive/search-service';
3
- import { collapseRepeatedQuotes } from './utils/collapse-repeated-quotes';
4
- import { resolveMediatype } from './utils/resolve-mediatype';
5
- import { loginRequiredIcon } from './assets/img/icons/login-required';
6
- import { restrictedIcon } from './assets/img/icons/restricted';
7
- export const TILE_OVERLAY_TEXT = {
8
- 'login-required': msg('Log in to view this item'),
9
- 'content-warning': msg('Content may be inappropriate'),
10
- };
11
- export const TILE_OVERLAY_ICONS = {
12
- 'login-required': loginRequiredIcon,
13
- 'content-warning': restrictedIcon,
14
- };
15
- /**
16
- * Class for converting & storing raw search results in the correct format for UI tiles.
17
- */
18
- export class TileModel {
19
- constructor(result) {
20
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11;
21
- const flags = this.getFlags(result);
22
- this.averageRating = (_a = result.avg_rating) === null || _a === void 0 ? void 0 : _a.value;
23
- this.captureDates = (_b = result.capture_dates) === null || _b === void 0 ? void 0 : _b.values;
24
- this.checked = false;
25
- this.collections = (_d = (_c = result.collection) === null || _c === void 0 ? void 0 : _c.values) !== null && _d !== void 0 ? _d : [];
26
- this.collectionFilesCount = (_f = (_e = result.collection_files_count) === null || _e === void 0 ? void 0 : _e.value) !== null && _f !== void 0 ? _f : 0;
27
- this.collectionSize = (_h = (_g = result.collection_size) === null || _g === void 0 ? void 0 : _g.value) !== null && _h !== void 0 ? _h : 0;
28
- this.commentCount = (_k = (_j = result.num_reviews) === null || _j === void 0 ? void 0 : _j.value) !== null && _k !== void 0 ? _k : 0;
29
- this.creator = (_l = result.creator) === null || _l === void 0 ? void 0 : _l.value;
30
- this.creators = (_o = (_m = result.creator) === null || _m === void 0 ? void 0 : _m.values) !== null && _o !== void 0 ? _o : [];
31
- this.dateAdded = (_p = result.addeddate) === null || _p === void 0 ? void 0 : _p.value;
32
- this.dateArchived = (_q = result.publicdate) === null || _q === void 0 ? void 0 : _q.value;
33
- this.datePublished = (_r = result.date) === null || _r === void 0 ? void 0 : _r.value;
34
- this.dateReviewed = (_s = result.reviewdate) === null || _s === void 0 ? void 0 : _s.value;
35
- this.description = (_t = result.description) === null || _t === void 0 ? void 0 : _t.values.join('\n');
36
- this.favCount = (_v = (_u = result.num_favorites) === null || _u === void 0 ? void 0 : _u.value) !== null && _v !== void 0 ? _v : 0;
37
- this.href = collapseRepeatedQuotes((_x = (_w = result.review) === null || _w === void 0 ? void 0 : _w.__href__) !== null && _x !== void 0 ? _x : (_y = result.__href__) === null || _y === void 0 ? void 0 : _y.value);
38
- this.identifier = TileModel.cleanIdentifier(result.identifier);
39
- this.issue = (_z = result.issue) === null || _z === void 0 ? void 0 : _z.value;
40
- this.itemCount = (_1 = (_0 = result.item_count) === null || _0 === void 0 ? void 0 : _0.value) !== null && _1 !== void 0 ? _1 : 0;
41
- this.mediatype = resolveMediatype(result);
42
- this.review = result.review;
43
- this.snippets = (_3 = (_2 = result.highlight) === null || _2 === void 0 ? void 0 : _2.values) !== null && _3 !== void 0 ? _3 : [];
44
- this.source = (_4 = result.source) === null || _4 === void 0 ? void 0 : _4.value;
45
- this.subjects = (_6 = (_5 = result.subject) === null || _5 === void 0 ? void 0 : _5.values) !== null && _6 !== void 0 ? _6 : [];
46
- this.title = (_8 = (_7 = result.title) === null || _7 === void 0 ? void 0 : _7.value) !== null && _8 !== void 0 ? _8 : '';
47
- this.volume = (_9 = result.volume) === null || _9 === void 0 ? void 0 : _9.value;
48
- this.viewCount = (_10 = result.downloads) === null || _10 === void 0 ? void 0 : _10.value;
49
- this.weeklyViewCount = (_11 = result.week) === null || _11 === void 0 ? void 0 : _11.value;
50
- this.loginRequired = flags.loginRequired;
51
- this.contentWarning = flags.contentWarning;
52
- }
53
- /**
54
- * Copies the contents of this TileModel onto a new instance
55
- */
56
- clone() {
57
- const cloned = new TileModel({});
58
- cloned.averageRating = this.averageRating;
59
- cloned.captureDates = this.captureDates;
60
- cloned.checked = this.checked;
61
- cloned.collections = this.collections;
62
- cloned.collectionFilesCount = this.collectionFilesCount;
63
- cloned.collectionSize = this.collectionSize;
64
- cloned.commentCount = this.commentCount;
65
- cloned.creator = this.creator;
66
- cloned.creators = this.creators;
67
- cloned.dateStr = this.dateStr;
68
- cloned.dateAdded = this.dateAdded;
69
- cloned.dateArchived = this.dateArchived;
70
- cloned.datePublished = this.datePublished;
71
- cloned.dateReviewed = this.dateReviewed;
72
- cloned.description = this.description;
73
- cloned.favCount = this.favCount;
74
- cloned.href = this.href;
75
- cloned.identifier = this.identifier;
76
- cloned.issue = this.issue;
77
- cloned.itemCount = this.itemCount;
78
- cloned.mediatype = this.mediatype;
79
- cloned.snippets = this.snippets;
80
- cloned.source = this.source;
81
- cloned.subjects = this.subjects;
82
- cloned.title = this.title;
83
- cloned.volume = this.volume;
84
- cloned.viewCount = this.viewCount;
85
- cloned.weeklyViewCount = this.weeklyViewCount;
86
- cloned.loginRequired = this.loginRequired;
87
- cloned.contentWarning = this.contentWarning;
88
- return cloned;
89
- }
90
- /**
91
- * Determines the appropriate tile flags for the given search result
92
- * (login required and/or content warning)
93
- */
94
- getFlags(result) {
95
- var _a, _b, _c, _d;
96
- const flags = {
97
- loginRequired: false,
98
- contentWarning: false,
99
- };
100
- // Check if item and item in "modifying" collection, setting above flags
101
- if (((_a = result.collection) === null || _a === void 0 ? void 0 : _a.values.length) &&
102
- ((_b = result.mediatype) === null || _b === void 0 ? void 0 : _b.value) !== 'collection') {
103
- for (const collection of (_d = (_c = result.collection) === null || _c === void 0 ? void 0 : _c.values) !== null && _d !== void 0 ? _d : []) {
104
- if (collection === 'loggedin') {
105
- flags.loginRequired = true;
106
- if (flags.contentWarning)
107
- break;
108
- }
109
- if (collection === 'no-preview') {
110
- flags.contentWarning = true;
111
- if (flags.loginRequired)
112
- break;
113
- }
114
- }
115
- }
116
- return flags;
117
- }
118
- static cleanIdentifier(identifier) {
119
- var _a;
120
- // Some identifiers (e.g., from Whisper) represent documents rather than items, and
121
- // are suffixed with values that need to be stripped. Those values are separated
122
- // from the item identifier itself with '|'.
123
- const barIndex = (_a = identifier === null || identifier === void 0 ? void 0 : identifier.indexOf('|')) !== null && _a !== void 0 ? _a : -1;
124
- const cleaned = barIndex > 0 ? identifier === null || identifier === void 0 ? void 0 : identifier.slice(0, barIndex) : identifier;
125
- return cleaned;
126
- }
127
- }
128
- /**
129
- * The sort fields shown in the sort filter bar
130
- */
131
- export var SortField;
132
- (function (SortField) {
133
- SortField["default"] = "default";
134
- SortField["unrecognized"] = "unrecognized";
135
- SortField["relevance"] = "relevance";
136
- SortField["alltimeview"] = "alltimeview";
137
- SortField["weeklyview"] = "weeklyview";
138
- SortField["title"] = "title";
139
- SortField["date"] = "date";
140
- SortField["datearchived"] = "datearchived";
141
- SortField["datereviewed"] = "datereviewed";
142
- SortField["dateadded"] = "dateadded";
143
- SortField["datefavorited"] = "datefavorited";
144
- SortField["creator"] = "creator";
145
- })(SortField || (SortField = {}));
146
- export const SORT_OPTIONS = {
147
- // Default sort is the case where the user has not specified a sort option via the sort bar or URL.
148
- // In these cases, we defer to whatever sort the backend chooses.
149
- // For the search page, the default is always relevance sort.
150
- // For collection pages _without a query_, the default is usually weekly views, but this can be
151
- // overridden by the collection's `sort-by` metadata entry. If a query _is_ specified, then the
152
- // default is again relevance sort.
153
- // For fav-* collections only, the default is instead sorting by date favorited.
154
- [SortField.default]: {
155
- field: SortField.default,
156
- defaultSortDirection: null,
157
- canSetDirection: false,
158
- shownInSortBar: false,
159
- shownInURL: false,
160
- handledBySearchService: false,
161
- displayName: '',
162
- urlNames: ['', null, undefined], // Empty or nullish sort params result in default sorting
163
- },
164
- // Unrecognized sort is the case where the user has specified a sort in the URL, but it is not
165
- // one of the options listed in this map. We still want these unrecognized sorts to be applied
166
- // when searching, but they are not displayed in the sort bar and we do not actively manage
167
- // their URL param beyond flipping the direction as needed.
168
- [SortField.unrecognized]: {
169
- field: SortField.unrecognized,
170
- defaultSortDirection: null,
171
- canSetDirection: true,
172
- shownInSortBar: false,
173
- shownInURL: false,
174
- handledBySearchService: true,
175
- displayName: '',
176
- urlNames: [],
177
- },
178
- // Relevance sort is unique in that it does not produce a URL param when it is set.
179
- // It is only available when there is a user-specified query that relevancy can be scored against.
180
- // Therefore, it does not appear as a sort bar option when browsing a collection with no query set.
181
- [SortField.relevance]: {
182
- field: SortField.relevance,
183
- defaultSortDirection: null,
184
- canSetDirection: false,
185
- shownInSortBar: true,
186
- shownInURL: false,
187
- handledBySearchService: false,
188
- displayName: 'Relevance',
189
- urlNames: ['_score'],
190
- },
191
- [SortField.alltimeview]: {
192
- field: SortField.alltimeview,
193
- defaultSortDirection: 'desc',
194
- canSetDirection: true,
195
- shownInSortBar: true,
196
- shownInURL: true,
197
- handledBySearchService: true,
198
- searchServiceKey: 'downloads',
199
- displayName: 'All-time views',
200
- urlNames: ['downloads'],
201
- },
202
- [SortField.weeklyview]: {
203
- field: SortField.weeklyview,
204
- defaultSortDirection: 'desc',
205
- canSetDirection: true,
206
- shownInSortBar: true,
207
- shownInURL: true,
208
- handledBySearchService: true,
209
- searchServiceKey: 'week',
210
- displayName: 'Weekly views',
211
- urlNames: ['week'],
212
- },
213
- [SortField.title]: {
214
- field: SortField.title,
215
- defaultSortDirection: 'asc',
216
- canSetDirection: true,
217
- shownInSortBar: true,
218
- shownInURL: true,
219
- handledBySearchService: true,
220
- searchServiceKey: 'titleSorter',
221
- displayName: 'Title',
222
- urlNames: ['title', 'titleSorter'],
223
- },
224
- [SortField.date]: {
225
- field: SortField.date,
226
- defaultSortDirection: 'desc',
227
- canSetDirection: true,
228
- shownInSortBar: true,
229
- shownInURL: true,
230
- handledBySearchService: true,
231
- searchServiceKey: 'date',
232
- displayName: 'Date published',
233
- urlNames: ['date'],
234
- },
235
- [SortField.datearchived]: {
236
- field: SortField.datearchived,
237
- defaultSortDirection: 'desc',
238
- canSetDirection: true,
239
- shownInSortBar: true,
240
- shownInURL: true,
241
- handledBySearchService: true,
242
- searchServiceKey: 'publicdate',
243
- displayName: 'Date archived',
244
- urlNames: ['publicdate'],
245
- },
246
- [SortField.datereviewed]: {
247
- field: SortField.datereviewed,
248
- defaultSortDirection: 'desc',
249
- canSetDirection: true,
250
- shownInSortBar: true,
251
- shownInURL: true,
252
- handledBySearchService: true,
253
- searchServiceKey: 'reviewdate',
254
- displayName: 'Date reviewed',
255
- urlNames: ['reviewdate'],
256
- },
257
- [SortField.dateadded]: {
258
- field: SortField.dateadded,
259
- defaultSortDirection: 'desc',
260
- canSetDirection: true,
261
- shownInSortBar: true,
262
- shownInURL: true,
263
- handledBySearchService: true,
264
- searchServiceKey: 'addeddate',
265
- displayName: 'Date added',
266
- urlNames: ['addeddate'],
267
- },
268
- [SortField.datefavorited]: {
269
- field: SortField.datefavorited,
270
- defaultSortDirection: 'desc',
271
- canSetDirection: false,
272
- shownInSortBar: true,
273
- shownInURL: false,
274
- handledBySearchService: false,
275
- searchServiceKey: 'favoritedate',
276
- displayName: 'Date favorited',
277
- urlNames: ['favoritedate'],
278
- },
279
- [SortField.creator]: {
280
- field: SortField.creator,
281
- defaultSortDirection: 'asc',
282
- canSetDirection: true,
283
- shownInSortBar: true,
284
- shownInURL: true,
285
- handledBySearchService: true,
286
- searchServiceKey: 'creatorSorter',
287
- displayName: 'Creator',
288
- urlNames: ['creator', 'creatorSorter'],
289
- },
290
- };
291
- /**
292
- * Returns the SortOption corresponding to the given API sort name, or
293
- * the "unrecognized" SortOption if none matches.
294
- */
295
- export function sortOptionFromAPIString(sortName) {
296
- var _a;
297
- return ((_a = Object.values(SORT_OPTIONS).find(opt => opt.urlNames.some(name => sortName === name))) !== null && _a !== void 0 ? _a : SORT_OPTIONS[SortField.unrecognized]);
298
- }
299
- export const defaultProfileElementSorts = {
300
- uploads: SortField.datearchived,
301
- reviews: SortField.datereviewed,
302
- collections: SortField.datearchived,
303
- web_archives: SortField.datearchived,
304
- };
305
- /**
306
- * A map from prefix filter types to the corresponding aggregation keys
307
- * that are needed to fetch the filter counts from the backend.
308
- */
309
- export const prefixFilterAggregationKeys = {
310
- title: 'firstTitle',
311
- creator: 'firstCreator',
312
- };
313
- export const getDefaultSelectedFacets = () => ({
314
- subject: {},
315
- lending: {},
316
- mediatype: {},
317
- language: {},
318
- creator: {},
319
- collection: {},
320
- year: {},
321
- });
322
- export const facetDisplayOrder = [
323
- 'mediatype',
324
- // 'lending', Commenting this out removes the lending facet from the sidebar for now
325
- 'year',
326
- 'subject',
327
- 'collection',
328
- 'creator',
329
- 'language',
330
- ];
331
- export const facetTitles = {
332
- subject: 'Subject',
333
- lending: 'Availability',
334
- mediatype: 'Media Type',
335
- language: 'Language',
336
- creator: 'Creator',
337
- collection: 'Collection',
338
- year: 'Year',
339
- };
340
- /**
341
- * The default sort type to use for each facet type
342
- */
343
- export const defaultFacetSort = {
344
- subject: AggregationSortType.COUNT,
345
- lending: AggregationSortType.COUNT,
346
- mediatype: AggregationSortType.COUNT,
347
- language: AggregationSortType.COUNT,
348
- creator: AggregationSortType.COUNT,
349
- collection: AggregationSortType.COUNT,
350
- year: AggregationSortType.NUMERIC,
351
- };
352
- /**
353
- * The sort type corresponding to facet bucket values, for each facet type
354
- * (i.e., the opposite of "sort by count" for that type).
355
- */
356
- export const valueFacetSort = {
357
- subject: AggregationSortType.ALPHABETICAL,
358
- lending: AggregationSortType.ALPHABETICAL,
359
- mediatype: AggregationSortType.ALPHABETICAL,
360
- language: AggregationSortType.ALPHABETICAL,
361
- creator: AggregationSortType.ALPHABETICAL,
362
- collection: AggregationSortType.ALPHABETICAL,
363
- year: AggregationSortType.NUMERIC,
364
- };
365
- /**
366
- * Maps valid lending keys to whether they should be visible in the facet sidebar
367
- */
368
- export const lendingFacetKeysVisibility = {
369
- is_lendable: true,
370
- is_borrowable: false,
371
- available_to_borrow: true,
372
- is_browsable: false,
373
- available_to_browse: false,
374
- is_readable: true,
375
- available_to_waitlist: false,
376
- };
377
- /**
378
- * Maps valid, visible lending keys to their facet sidebar display text
379
- */
380
- export const lendingFacetDisplayNames = {
381
- is_lendable: 'Lending Library',
382
- available_to_borrow: 'Borrow 14 Days',
383
- is_readable: 'Always Available',
384
- };
385
- /**
386
- * A record of which admin-only collections should be suppressed from being displayed
387
- * as facets or in an item's list of collections.
388
- */
389
- export const suppressedCollections = {
390
- deemphasize: true,
391
- community: true,
392
- stream_only: true,
393
- samples_only: true,
394
- test_collection: true,
395
- printdisabled: true,
396
- 'openlibrary-ol': true,
397
- nationalemergencylibrary: true,
398
- china: true,
399
- americana: true,
400
- toronto: true,
401
- };
1
+ import { msg } from '@lit/localize';
2
+ import { AggregationSortType, } from '@internetarchive/search-service';
3
+ import { collapseRepeatedQuotes } from './utils/collapse-repeated-quotes';
4
+ import { resolveMediatype } from './utils/resolve-mediatype';
5
+ import { loginRequiredIcon } from './assets/img/icons/login-required';
6
+ import { restrictedIcon } from './assets/img/icons/restricted';
7
+ export const TILE_OVERLAY_TEXT = {
8
+ 'login-required': msg('Log in to view this item'),
9
+ 'content-warning': msg('Content may be inappropriate'),
10
+ };
11
+ export const TILE_OVERLAY_ICONS = {
12
+ 'login-required': loginRequiredIcon,
13
+ 'content-warning': restrictedIcon,
14
+ };
15
+ /**
16
+ * Class for converting & storing raw search results in the correct format for UI tiles.
17
+ */
18
+ export class TileModel {
19
+ constructor(result) {
20
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11;
21
+ const flags = this.getFlags(result);
22
+ this.averageRating = (_a = result.avg_rating) === null || _a === void 0 ? void 0 : _a.value;
23
+ this.captureDates = (_b = result.capture_dates) === null || _b === void 0 ? void 0 : _b.values;
24
+ this.checked = false;
25
+ this.collections = (_d = (_c = result.collection) === null || _c === void 0 ? void 0 : _c.values) !== null && _d !== void 0 ? _d : [];
26
+ this.collectionFilesCount = (_f = (_e = result.collection_files_count) === null || _e === void 0 ? void 0 : _e.value) !== null && _f !== void 0 ? _f : 0;
27
+ this.collectionSize = (_h = (_g = result.collection_size) === null || _g === void 0 ? void 0 : _g.value) !== null && _h !== void 0 ? _h : 0;
28
+ this.commentCount = (_k = (_j = result.num_reviews) === null || _j === void 0 ? void 0 : _j.value) !== null && _k !== void 0 ? _k : 0;
29
+ this.creator = (_l = result.creator) === null || _l === void 0 ? void 0 : _l.value;
30
+ this.creators = (_o = (_m = result.creator) === null || _m === void 0 ? void 0 : _m.values) !== null && _o !== void 0 ? _o : [];
31
+ this.dateAdded = (_p = result.addeddate) === null || _p === void 0 ? void 0 : _p.value;
32
+ this.dateArchived = (_q = result.publicdate) === null || _q === void 0 ? void 0 : _q.value;
33
+ this.datePublished = (_r = result.date) === null || _r === void 0 ? void 0 : _r.value;
34
+ this.dateReviewed = (_s = result.reviewdate) === null || _s === void 0 ? void 0 : _s.value;
35
+ this.description = (_t = result.description) === null || _t === void 0 ? void 0 : _t.values.join('\n');
36
+ this.favCount = (_v = (_u = result.num_favorites) === null || _u === void 0 ? void 0 : _u.value) !== null && _v !== void 0 ? _v : 0;
37
+ this.href = collapseRepeatedQuotes((_x = (_w = result.review) === null || _w === void 0 ? void 0 : _w.__href__) !== null && _x !== void 0 ? _x : (_y = result.__href__) === null || _y === void 0 ? void 0 : _y.value);
38
+ this.identifier = TileModel.cleanIdentifier(result.identifier);
39
+ this.issue = (_z = result.issue) === null || _z === void 0 ? void 0 : _z.value;
40
+ this.itemCount = (_1 = (_0 = result.item_count) === null || _0 === void 0 ? void 0 : _0.value) !== null && _1 !== void 0 ? _1 : 0;
41
+ this.mediatype = resolveMediatype(result);
42
+ this.review = result.review;
43
+ this.snippets = (_3 = (_2 = result.highlight) === null || _2 === void 0 ? void 0 : _2.values) !== null && _3 !== void 0 ? _3 : [];
44
+ this.source = (_4 = result.source) === null || _4 === void 0 ? void 0 : _4.value;
45
+ this.subjects = (_6 = (_5 = result.subject) === null || _5 === void 0 ? void 0 : _5.values) !== null && _6 !== void 0 ? _6 : [];
46
+ this.title = (_8 = (_7 = result.title) === null || _7 === void 0 ? void 0 : _7.value) !== null && _8 !== void 0 ? _8 : '';
47
+ this.volume = (_9 = result.volume) === null || _9 === void 0 ? void 0 : _9.value;
48
+ this.viewCount = (_10 = result.downloads) === null || _10 === void 0 ? void 0 : _10.value;
49
+ this.weeklyViewCount = (_11 = result.week) === null || _11 === void 0 ? void 0 : _11.value;
50
+ this.loginRequired = flags.loginRequired;
51
+ this.contentWarning = flags.contentWarning;
52
+ }
53
+ /**
54
+ * Copies the contents of this TileModel onto a new instance
55
+ */
56
+ clone() {
57
+ const cloned = new TileModel({});
58
+ cloned.averageRating = this.averageRating;
59
+ cloned.captureDates = this.captureDates;
60
+ cloned.checked = this.checked;
61
+ cloned.collections = this.collections;
62
+ cloned.collectionFilesCount = this.collectionFilesCount;
63
+ cloned.collectionSize = this.collectionSize;
64
+ cloned.commentCount = this.commentCount;
65
+ cloned.creator = this.creator;
66
+ cloned.creators = this.creators;
67
+ cloned.dateStr = this.dateStr;
68
+ cloned.dateAdded = this.dateAdded;
69
+ cloned.dateArchived = this.dateArchived;
70
+ cloned.datePublished = this.datePublished;
71
+ cloned.dateReviewed = this.dateReviewed;
72
+ cloned.description = this.description;
73
+ cloned.favCount = this.favCount;
74
+ cloned.href = this.href;
75
+ cloned.identifier = this.identifier;
76
+ cloned.issue = this.issue;
77
+ cloned.itemCount = this.itemCount;
78
+ cloned.mediatype = this.mediatype;
79
+ cloned.snippets = this.snippets;
80
+ cloned.source = this.source;
81
+ cloned.subjects = this.subjects;
82
+ cloned.title = this.title;
83
+ cloned.volume = this.volume;
84
+ cloned.viewCount = this.viewCount;
85
+ cloned.weeklyViewCount = this.weeklyViewCount;
86
+ cloned.loginRequired = this.loginRequired;
87
+ cloned.contentWarning = this.contentWarning;
88
+ return cloned;
89
+ }
90
+ /**
91
+ * Determines the appropriate tile flags for the given search result
92
+ * (login required and/or content warning)
93
+ */
94
+ getFlags(result) {
95
+ var _a, _b, _c, _d;
96
+ const flags = {
97
+ loginRequired: false,
98
+ contentWarning: false,
99
+ };
100
+ // Check if item and item in "modifying" collection, setting above flags
101
+ if (((_a = result.collection) === null || _a === void 0 ? void 0 : _a.values.length) &&
102
+ ((_b = result.mediatype) === null || _b === void 0 ? void 0 : _b.value) !== 'collection') {
103
+ for (const collection of (_d = (_c = result.collection) === null || _c === void 0 ? void 0 : _c.values) !== null && _d !== void 0 ? _d : []) {
104
+ if (collection === 'loggedin') {
105
+ flags.loginRequired = true;
106
+ if (flags.contentWarning)
107
+ break;
108
+ }
109
+ if (collection === 'no-preview') {
110
+ flags.contentWarning = true;
111
+ if (flags.loginRequired)
112
+ break;
113
+ }
114
+ }
115
+ }
116
+ return flags;
117
+ }
118
+ static cleanIdentifier(identifier) {
119
+ var _a;
120
+ // Some identifiers (e.g., from Whisper) represent documents rather than items, and
121
+ // are suffixed with values that need to be stripped. Those values are separated
122
+ // from the item identifier itself with '|'.
123
+ const barIndex = (_a = identifier === null || identifier === void 0 ? void 0 : identifier.indexOf('|')) !== null && _a !== void 0 ? _a : -1;
124
+ const cleaned = barIndex > 0 ? identifier === null || identifier === void 0 ? void 0 : identifier.slice(0, barIndex) : identifier;
125
+ return cleaned;
126
+ }
127
+ }
128
+ /**
129
+ * The sort fields shown in the sort filter bar
130
+ */
131
+ export var SortField;
132
+ (function (SortField) {
133
+ SortField["default"] = "default";
134
+ SortField["unrecognized"] = "unrecognized";
135
+ SortField["relevance"] = "relevance";
136
+ SortField["alltimeview"] = "alltimeview";
137
+ SortField["weeklyview"] = "weeklyview";
138
+ SortField["title"] = "title";
139
+ SortField["date"] = "date";
140
+ SortField["datearchived"] = "datearchived";
141
+ SortField["datereviewed"] = "datereviewed";
142
+ SortField["dateadded"] = "dateadded";
143
+ SortField["datefavorited"] = "datefavorited";
144
+ SortField["creator"] = "creator";
145
+ })(SortField || (SortField = {}));
146
+ export const SORT_OPTIONS = {
147
+ // Default sort is the case where the user has not specified a sort option via the sort bar or URL.
148
+ // In these cases, we defer to whatever sort the backend chooses.
149
+ // For the search page, the default is always relevance sort.
150
+ // For collection pages _without a query_, the default is usually weekly views, but this can be
151
+ // overridden by the collection's `sort-by` metadata entry. If a query _is_ specified, then the
152
+ // default is again relevance sort.
153
+ // For fav-* collections only, the default is instead sorting by date favorited.
154
+ [SortField.default]: {
155
+ field: SortField.default,
156
+ defaultSortDirection: null,
157
+ canSetDirection: false,
158
+ shownInSortBar: false,
159
+ shownInURL: false,
160
+ handledBySearchService: false, // We rely on the PPS default sort handling in these cases
161
+ displayName: '',
162
+ urlNames: ['', null, undefined], // Empty or nullish sort params result in default sorting
163
+ },
164
+ // Unrecognized sort is the case where the user has specified a sort in the URL, but it is not
165
+ // one of the options listed in this map. We still want these unrecognized sorts to be applied
166
+ // when searching, but they are not displayed in the sort bar and we do not actively manage
167
+ // their URL param beyond flipping the direction as needed.
168
+ [SortField.unrecognized]: {
169
+ field: SortField.unrecognized,
170
+ defaultSortDirection: null,
171
+ canSetDirection: true,
172
+ shownInSortBar: false,
173
+ shownInURL: false,
174
+ handledBySearchService: true, // The unrecognized sort param is passed along as-is
175
+ displayName: '',
176
+ urlNames: [],
177
+ },
178
+ // Relevance sort is unique in that it does not produce a URL param when it is set.
179
+ // It is only available when there is a user-specified query that relevancy can be scored against.
180
+ // Therefore, it does not appear as a sort bar option when browsing a collection with no query set.
181
+ [SortField.relevance]: {
182
+ field: SortField.relevance,
183
+ defaultSortDirection: null,
184
+ canSetDirection: false,
185
+ shownInSortBar: true,
186
+ shownInURL: false,
187
+ handledBySearchService: false,
188
+ displayName: 'Relevance',
189
+ urlNames: ['_score'],
190
+ },
191
+ [SortField.alltimeview]: {
192
+ field: SortField.alltimeview,
193
+ defaultSortDirection: 'desc',
194
+ canSetDirection: true,
195
+ shownInSortBar: true,
196
+ shownInURL: true,
197
+ handledBySearchService: true,
198
+ searchServiceKey: 'downloads',
199
+ displayName: 'All-time views',
200
+ urlNames: ['downloads'],
201
+ },
202
+ [SortField.weeklyview]: {
203
+ field: SortField.weeklyview,
204
+ defaultSortDirection: 'desc',
205
+ canSetDirection: true,
206
+ shownInSortBar: true,
207
+ shownInURL: true,
208
+ handledBySearchService: true,
209
+ searchServiceKey: 'week',
210
+ displayName: 'Weekly views',
211
+ urlNames: ['week'],
212
+ },
213
+ [SortField.title]: {
214
+ field: SortField.title,
215
+ defaultSortDirection: 'asc',
216
+ canSetDirection: true,
217
+ shownInSortBar: true,
218
+ shownInURL: true,
219
+ handledBySearchService: true,
220
+ searchServiceKey: 'titleSorter',
221
+ displayName: 'Title',
222
+ urlNames: ['title', 'titleSorter'],
223
+ },
224
+ [SortField.date]: {
225
+ field: SortField.date,
226
+ defaultSortDirection: 'desc',
227
+ canSetDirection: true,
228
+ shownInSortBar: true,
229
+ shownInURL: true,
230
+ handledBySearchService: true,
231
+ searchServiceKey: 'date',
232
+ displayName: 'Date published',
233
+ urlNames: ['date'],
234
+ },
235
+ [SortField.datearchived]: {
236
+ field: SortField.datearchived,
237
+ defaultSortDirection: 'desc',
238
+ canSetDirection: true,
239
+ shownInSortBar: true,
240
+ shownInURL: true,
241
+ handledBySearchService: true,
242
+ searchServiceKey: 'publicdate',
243
+ displayName: 'Date archived',
244
+ urlNames: ['publicdate'],
245
+ },
246
+ [SortField.datereviewed]: {
247
+ field: SortField.datereviewed,
248
+ defaultSortDirection: 'desc',
249
+ canSetDirection: true,
250
+ shownInSortBar: true,
251
+ shownInURL: true,
252
+ handledBySearchService: true,
253
+ searchServiceKey: 'reviewdate',
254
+ displayName: 'Date reviewed',
255
+ urlNames: ['reviewdate'],
256
+ },
257
+ [SortField.dateadded]: {
258
+ field: SortField.dateadded,
259
+ defaultSortDirection: 'desc',
260
+ canSetDirection: true,
261
+ shownInSortBar: true,
262
+ shownInURL: true,
263
+ handledBySearchService: true,
264
+ searchServiceKey: 'addeddate',
265
+ displayName: 'Date added',
266
+ urlNames: ['addeddate'],
267
+ },
268
+ [SortField.datefavorited]: {
269
+ field: SortField.datefavorited,
270
+ defaultSortDirection: 'desc',
271
+ canSetDirection: false,
272
+ shownInSortBar: true, // But only when viewing fav-* collections
273
+ shownInURL: false,
274
+ handledBySearchService: false,
275
+ searchServiceKey: 'favoritedate',
276
+ displayName: 'Date favorited',
277
+ urlNames: ['favoritedate'],
278
+ },
279
+ [SortField.creator]: {
280
+ field: SortField.creator,
281
+ defaultSortDirection: 'asc',
282
+ canSetDirection: true,
283
+ shownInSortBar: true,
284
+ shownInURL: true,
285
+ handledBySearchService: true,
286
+ searchServiceKey: 'creatorSorter',
287
+ displayName: 'Creator',
288
+ urlNames: ['creator', 'creatorSorter'],
289
+ },
290
+ };
291
+ /**
292
+ * Returns the SortOption corresponding to the given API sort name, or
293
+ * the "unrecognized" SortOption if none matches.
294
+ */
295
+ export function sortOptionFromAPIString(sortName) {
296
+ var _a;
297
+ return ((_a = Object.values(SORT_OPTIONS).find(opt => opt.urlNames.some(name => sortName === name))) !== null && _a !== void 0 ? _a : SORT_OPTIONS[SortField.unrecognized]);
298
+ }
299
+ export const defaultProfileElementSorts = {
300
+ uploads: SortField.datearchived,
301
+ reviews: SortField.datereviewed,
302
+ collections: SortField.datearchived,
303
+ web_archives: SortField.datearchived,
304
+ };
305
+ /**
306
+ * A map from prefix filter types to the corresponding aggregation keys
307
+ * that are needed to fetch the filter counts from the backend.
308
+ */
309
+ export const prefixFilterAggregationKeys = {
310
+ title: 'firstTitle',
311
+ creator: 'firstCreator',
312
+ };
313
+ export const getDefaultSelectedFacets = () => ({
314
+ subject: {},
315
+ lending: {},
316
+ mediatype: {},
317
+ language: {},
318
+ creator: {},
319
+ collection: {},
320
+ year: {},
321
+ });
322
+ export const facetDisplayOrder = [
323
+ 'mediatype',
324
+ // 'lending', Commenting this out removes the lending facet from the sidebar for now
325
+ 'year',
326
+ 'subject',
327
+ 'collection',
328
+ 'creator',
329
+ 'language',
330
+ ];
331
+ export const facetTitles = {
332
+ subject: 'Subject',
333
+ lending: 'Availability',
334
+ mediatype: 'Media Type',
335
+ language: 'Language',
336
+ creator: 'Creator',
337
+ collection: 'Collection',
338
+ year: 'Year',
339
+ };
340
+ /**
341
+ * The default sort type to use for each facet type
342
+ */
343
+ export const defaultFacetSort = {
344
+ subject: AggregationSortType.COUNT,
345
+ lending: AggregationSortType.COUNT,
346
+ mediatype: AggregationSortType.COUNT,
347
+ language: AggregationSortType.COUNT,
348
+ creator: AggregationSortType.COUNT,
349
+ collection: AggregationSortType.COUNT,
350
+ year: AggregationSortType.NUMERIC,
351
+ };
352
+ /**
353
+ * The sort type corresponding to facet bucket values, for each facet type
354
+ * (i.e., the opposite of "sort by count" for that type).
355
+ */
356
+ export const valueFacetSort = {
357
+ subject: AggregationSortType.ALPHABETICAL,
358
+ lending: AggregationSortType.ALPHABETICAL,
359
+ mediatype: AggregationSortType.ALPHABETICAL,
360
+ language: AggregationSortType.ALPHABETICAL,
361
+ creator: AggregationSortType.ALPHABETICAL,
362
+ collection: AggregationSortType.ALPHABETICAL,
363
+ year: AggregationSortType.NUMERIC,
364
+ };
365
+ /**
366
+ * Maps valid lending keys to whether they should be visible in the facet sidebar
367
+ */
368
+ export const lendingFacetKeysVisibility = {
369
+ is_lendable: true,
370
+ is_borrowable: false,
371
+ available_to_borrow: true,
372
+ is_browsable: false,
373
+ available_to_browse: false,
374
+ is_readable: true,
375
+ available_to_waitlist: false,
376
+ };
377
+ /**
378
+ * Maps valid, visible lending keys to their facet sidebar display text
379
+ */
380
+ export const lendingFacetDisplayNames = {
381
+ is_lendable: 'Lending Library',
382
+ available_to_borrow: 'Borrow 14 Days',
383
+ is_readable: 'Always Available',
384
+ };
385
+ /**
386
+ * A record of which admin-only collections should be suppressed from being displayed
387
+ * as facets or in an item's list of collections.
388
+ */
389
+ export const suppressedCollections = {
390
+ deemphasize: true,
391
+ community: true,
392
+ stream_only: true,
393
+ samples_only: true,
394
+ test_collection: true,
395
+ printdisabled: true,
396
+ 'openlibrary-ol': true,
397
+ nationalemergencylibrary: true,
398
+ china: true,
399
+ americana: true,
400
+ toronto: true,
401
+ };
402
402
  //# sourceMappingURL=models.js.map