@internetarchive/collection-browser 1.14.10-alpha.3 → 1.14.10-alpha1

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 (293) 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 +9 -9
  6. package/dist/index.js +9 -9
  7. package/dist/src/app-root.d.ts +79 -72
  8. package/dist/src/app-root.js +564 -432
  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/login-required.d.ts +1 -1
  29. package/dist/src/assets/img/icons/login-required.js +2 -2
  30. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  31. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  32. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  33. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  34. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  35. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  36. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  37. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  38. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  39. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  40. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  41. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  42. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  43. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  44. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  45. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  46. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
  47. package/dist/src/assets/img/icons/mediatype/search.js +2 -2
  48. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  49. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  50. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  51. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  52. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  53. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  54. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  55. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  56. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  57. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  58. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  59. package/dist/src/assets/img/icons/null-result.js +2 -2
  60. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  61. package/dist/src/assets/img/icons/restricted.js +2 -2
  62. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  63. package/dist/src/assets/img/icons/reviews.js +2 -2
  64. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  65. package/dist/src/assets/img/icons/upload.js +2 -2
  66. package/dist/src/assets/img/icons/views.d.ts +1 -1
  67. package/dist/src/assets/img/icons/views.js +2 -2
  68. package/dist/src/circular-activity-indicator.d.ts +5 -5
  69. package/dist/src/circular-activity-indicator.js +17 -17
  70. package/dist/src/collection-browser.d.ts +533 -533
  71. package/dist/src/collection-browser.js +1897 -1891
  72. package/dist/src/collection-browser.js.map +1 -1
  73. package/dist/src/collection-facets/facet-row.d.ts +30 -0
  74. package/dist/src/collection-facets/facet-row.js +245 -0
  75. package/dist/src/collection-facets/facet-row.js.map +1 -0
  76. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  77. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  78. package/dist/src/collection-facets/facets-template.d.ts +17 -20
  79. package/dist/src/collection-facets/facets-template.js +122 -264
  80. package/dist/src/collection-facets/facets-template.js.map +1 -1
  81. package/dist/src/collection-facets/more-facets-content.d.ts +77 -77
  82. package/dist/src/collection-facets/more-facets-content.js +359 -359
  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 +104 -104
  88. package/dist/src/collection-facets.js +506 -506
  89. package/dist/src/empty-placeholder.d.ts +23 -23
  90. package/dist/src/empty-placeholder.js +74 -74
  91. package/dist/src/expanded-date-picker.d.ts +43 -43
  92. package/dist/src/expanded-date-picker.js +109 -109
  93. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  94. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  95. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  96. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  97. package/dist/src/manage/manage-bar.d.ts +26 -26
  98. package/dist/src/manage/manage-bar.js +53 -53
  99. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  100. package/dist/src/mediatype/mediatype-config.js +91 -91
  101. package/dist/src/models.d.ts +180 -164
  102. package/dist/src/models.js +269 -269
  103. package/dist/src/models.js.map +1 -1
  104. package/dist/src/restoration-state-handler.d.ts +70 -70
  105. package/dist/src/restoration-state-handler.js +355 -355
  106. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  107. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  108. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  109. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  110. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  111. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  112. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  113. package/dist/src/sort-filter-bar/img/list.js +2 -2
  114. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  115. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  116. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  117. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  118. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  119. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  120. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  121. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  122. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  123. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  124. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +208 -208
  125. package/dist/src/sort-filter-bar/sort-filter-bar.js +638 -637
  126. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  127. package/dist/src/styles/item-image-styles.d.ts +8 -8
  128. package/dist/src/styles/item-image-styles.js +9 -9
  129. package/dist/src/styles/sr-only.d.ts +1 -1
  130. package/dist/src/styles/sr-only.js +2 -2
  131. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  132. package/dist/src/tiles/base-tile-component.js +63 -63
  133. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  134. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  135. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  136. package/dist/src/tiles/grid/account-tile.js +72 -72
  137. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  138. package/dist/src/tiles/grid/collection-tile.js +80 -80
  139. package/dist/src/tiles/grid/item-tile.d.ts +27 -27
  140. package/dist/src/tiles/grid/item-tile.js +134 -134
  141. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  142. package/dist/src/tiles/grid/search-tile.js +51 -51
  143. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  144. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  145. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  146. package/dist/src/tiles/grid/tile-stats.js +48 -48
  147. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  148. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  149. package/dist/src/tiles/hover/tile-hover-pane.d.ts +15 -15
  150. package/dist/src/tiles/hover/tile-hover-pane.js +38 -38
  151. package/dist/src/tiles/image-block.d.ts +17 -17
  152. package/dist/src/tiles/image-block.js +73 -73
  153. package/dist/src/tiles/item-image.d.ts +36 -36
  154. package/dist/src/tiles/item-image.js +127 -127
  155. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  156. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  157. package/dist/src/tiles/list/tile-list-compact.d.ts +15 -15
  158. package/dist/src/tiles/list/tile-list-compact.js +114 -114
  159. package/dist/src/tiles/list/tile-list.d.ts +46 -46
  160. package/dist/src/tiles/list/tile-list.js +302 -302
  161. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  162. package/dist/src/tiles/mediatype-icon.js +47 -47
  163. package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
  164. package/dist/src/tiles/overlay/icon-overlay.js +40 -40
  165. package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
  166. package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
  167. package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
  168. package/dist/src/tiles/overlay/text-overlay.js +42 -42
  169. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  170. package/dist/src/tiles/text-snippet-block.js +73 -73
  171. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  172. package/dist/src/tiles/tile-dispatcher.js +231 -231
  173. package/dist/src/tiles/tile-display-value-provider.d.ts +43 -43
  174. package/dist/src/tiles/tile-display-value-provider.js +80 -80
  175. package/dist/src/utils/analytics-events.d.ts +25 -25
  176. package/dist/src/utils/analytics-events.js +27 -27
  177. package/dist/src/utils/array-equals.d.ts +4 -4
  178. package/dist/src/utils/array-equals.js +10 -10
  179. package/dist/src/utils/format-count.d.ts +7 -7
  180. package/dist/src/utils/format-count.js +76 -76
  181. package/dist/src/utils/format-date.d.ts +2 -2
  182. package/dist/src/utils/format-date.js +25 -25
  183. package/dist/src/utils/format-unit-size.d.ts +2 -2
  184. package/dist/src/utils/format-unit-size.js +33 -33
  185. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  186. package/dist/src/utils/local-date-from-utc.js +15 -15
  187. package/dist/src/utils/sha1.d.ts +2 -2
  188. package/dist/src/utils/sha1.js +8 -8
  189. package/dist/test/collection-browser.test.d.ts +1 -1
  190. package/dist/test/collection-browser.test.js +1130 -1098
  191. package/dist/test/collection-browser.test.js.map +1 -1
  192. package/dist/test/collection-facets/facet-row.test.d.ts +1 -0
  193. package/dist/test/collection-facets/facet-row.test.js +235 -0
  194. package/dist/test/collection-facets/facet-row.test.js.map +1 -0
  195. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  196. package/dist/test/collection-facets/facets-template.test.js +110 -141
  197. package/dist/test/collection-facets/facets-template.test.js.map +1 -1
  198. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  199. package/dist/test/collection-facets/more-facets-content.test.js +133 -133
  200. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  201. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  202. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  203. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  204. package/dist/test/collection-facets.test.d.ts +2 -2
  205. package/dist/test/collection-facets.test.js +651 -682
  206. package/dist/test/collection-facets.test.js.map +1 -1
  207. package/dist/test/empty-placeholder.test.d.ts +1 -1
  208. package/dist/test/empty-placeholder.test.js +63 -63
  209. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  210. package/dist/test/expanded-date-picker.test.js +95 -95
  211. package/dist/test/icon-overlay.test.d.ts +1 -1
  212. package/dist/test/icon-overlay.test.js +24 -24
  213. package/dist/test/image-block.test.d.ts +1 -1
  214. package/dist/test/image-block.test.js +48 -48
  215. package/dist/test/item-image.test.d.ts +1 -1
  216. package/dist/test/item-image.test.js +86 -86
  217. package/dist/test/manage/manage-bar.test.d.ts +1 -1
  218. package/dist/test/manage/manage-bar.test.js +72 -72
  219. package/dist/test/mediatype-config.test.d.ts +1 -1
  220. package/dist/test/mediatype-config.test.js +16 -16
  221. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  222. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  223. package/dist/test/mocks/mock-collection-name-cache.d.ts +9 -9
  224. package/dist/test/mocks/mock-collection-name-cache.js +17 -17
  225. package/dist/test/mocks/mock-search-responses.d.ts +21 -21
  226. package/dist/test/mocks/mock-search-responses.js +709 -709
  227. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  228. package/dist/test/mocks/mock-search-service.js +50 -50
  229. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  230. package/dist/test/restoration-state-handler.test.js +270 -270
  231. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  232. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  233. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  234. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  235. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  236. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +378 -378
  237. package/dist/test/text-overlay.test.d.ts +1 -1
  238. package/dist/test/text-overlay.test.js +48 -48
  239. package/dist/test/text-snippet-block.test.d.ts +1 -1
  240. package/dist/test/text-snippet-block.test.js +57 -57
  241. package/dist/test/tile-stats.test.d.ts +1 -1
  242. package/dist/test/tile-stats.test.js +33 -33
  243. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  244. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  245. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  246. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  247. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  248. package/dist/test/tiles/grid/item-tile.test.js +254 -254
  249. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  250. package/dist/test/tiles/grid/search-tile.test.js +51 -51
  251. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  252. package/dist/test/tiles/hover/hover-pane-controller.test.js +258 -258
  253. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  254. package/dist/test/tiles/hover/tile-hover-pane.test.js +13 -13
  255. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  256. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  257. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  258. package/dist/test/tiles/list/tile-list.test.js +242 -242
  259. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  260. package/dist/test/tiles/tile-dispatcher.test.js +94 -94
  261. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  262. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  263. package/dist/test/utils/array-equals.test.d.ts +1 -1
  264. package/dist/test/utils/array-equals.test.js +26 -26
  265. package/dist/test/utils/format-count.test.d.ts +1 -1
  266. package/dist/test/utils/format-count.test.js +23 -23
  267. package/dist/test/utils/format-date.test.d.ts +1 -1
  268. package/dist/test/utils/format-date.test.js +17 -17
  269. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  270. package/dist/test/utils/format-unit-size.test.js +17 -17
  271. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  272. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  273. package/local.archive.org.cert +86 -86
  274. package/local.archive.org.key +27 -27
  275. package/package.json +5 -5
  276. package/renovate.json +6 -6
  277. package/src/app-root.ts +230 -90
  278. package/src/collection-browser.ts +23 -18
  279. package/src/collection-facets/facet-row.ts +274 -0
  280. package/src/collection-facets/facets-template.ts +49 -196
  281. package/src/models.ts +18 -2
  282. package/src/sort-filter-bar/sort-filter-bar.ts +1 -0
  283. package/test/collection-browser.test.ts +36 -4
  284. package/test/collection-facets/facet-row.test.ts +328 -0
  285. package/test/collection-facets/facets-template.test.ts +72 -110
  286. package/test/collection-facets.test.ts +69 -101
  287. package/tsconfig.json +21 -21
  288. package/web-dev-server.config.mjs +30 -30
  289. package/web-test-runner.config.mjs +41 -41
  290. package/dist/src/selected-facets.d.ts +0 -67
  291. package/dist/src/selected-facets.js +0 -149
  292. package/dist/src/selected-facets.js.map +0 -1
  293. package/src/selected-facets.ts +0 -216
@@ -1,93 +1,94 @@
1
- import { __decorate } from "tslib";
2
- /* eslint-disable no-console */
3
- import { AnalyticsManager, } from '@internetarchive/analytics-manager';
4
- import { SearchService, SearchType, StringField, } from '@internetarchive/search-service';
5
- import { LocalCache } from '@internetarchive/local-cache';
6
- import { html, css, LitElement } from 'lit';
7
- import { customElement, property, query, state } from 'lit/decorators.js';
8
- import { SharedResizeObserver } from '@internetarchive/shared-resize-observer';
9
- import { CollectionNameCache } from '@internetarchive/collection-name-cache';
10
- import '../src/collection-browser';
11
- let AppRoot = class AppRoot extends LitElement {
12
- constructor() {
13
- super(...arguments);
14
- this.searchService = this.initSearchServiceFromUrlParams();
15
- this.resizeObserver = new SharedResizeObserver();
16
- this.localCache = new LocalCache();
17
- this.collectionNameCache = new CollectionNameCache({
18
- searchService: this.searchService,
19
- localCache: this.localCache,
20
- });
21
- this.cellWidth = 18;
22
- this.cellHeight = 29;
23
- this.rowGap = 1.7;
24
- this.colGap = 1.7;
25
- this.loggedIn = false;
26
- this.searchType = SearchType.METADATA;
27
- this.analyticsManager = new AnalyticsManager();
28
- this.analyticsHandler = {
29
- sendPing: this.sendAnalytics.bind(this),
30
- sendEvent: this.sendAnalytics.bind(this),
31
- sendEventNoSampling: this.sendAnalytics.bind(this),
32
- };
33
- }
34
- sendAnalytics(ae) {
35
- var _a;
36
- console.log('Analytics Received ----', ae);
37
- this.latestAction = ae;
38
- (_a = this.analyticsManager) === null || _a === void 0 ? void 0 : _a.sendEvent(ae);
39
- }
40
- initSearchServiceFromUrlParams() {
41
- var _a, _b, _c;
42
- const params = new URL(window.location.href).searchParams;
43
- return new SearchService({
44
- includeCredentials: false,
45
- baseUrl: (_a = params.get('search_base_url')) !== null && _a !== void 0 ? _a : undefined,
46
- servicePath: (_b = params.get('search_service_path')) !== null && _b !== void 0 ? _b : undefined,
47
- debuggingEnabled: (_c = !!params.get('debugging')) !== null && _c !== void 0 ? _c : undefined,
48
- });
49
- }
50
- searchPressed(e) {
51
- e.preventDefault();
52
- this.searchQuery = this.baseQueryField.value;
53
- this.collectionBrowser.searchType = this.searchType;
54
- this.goToCurrentPage();
55
- }
56
- collectionChanged(e) {
57
- e.preventDefault();
58
- this.withinCollection = this.baseCollectionField.value;
59
- this.collectionBrowser.withinCollection = this.withinCollection;
60
- this.goToCurrentPage();
61
- }
62
- goToCurrentPage() {
63
- var _a;
64
- const page = (_a = this.currentPage) !== null && _a !== void 0 ? _a : 1;
65
- if (page > 1) {
66
- this.collectionBrowser.goToPage(page);
67
- }
68
- }
69
- changePagePressed(e) {
70
- e.preventDefault();
71
- this.currentPage = this.pageNumberInput.valueAsNumber;
72
- this.collectionBrowser.goToPage(this.currentPage);
73
- }
74
- updated(changed) {
75
- if (changed.has('currentPage') && this.currentPage) {
76
- this.pageNumberInput.value = this.currentPage.toString();
77
- }
78
- if (changed.has('searchQuery')) {
79
- this.queryUpdated();
80
- }
81
- }
82
- queryUpdated() {
83
- this.collectionBrowser.baseQuery = this.searchQuery;
84
- }
85
- get getClass() {
86
- const searchParams = new URLSearchParams(window.location.search);
87
- return searchParams.get('hide-dev-tools') ? 'hidden' : '';
88
- }
89
- render() {
90
- var _a, _b;
1
+ import { __decorate } from "tslib";
2
+ /* eslint-disable no-console */
3
+ import { AnalyticsManager, } from '@internetarchive/analytics-manager';
4
+ import { SearchService, SearchType, StringField, } from '@internetarchive/search-service';
5
+ import { LocalCache } from '@internetarchive/local-cache';
6
+ import { html, css, LitElement, nothing } from 'lit';
7
+ import { customElement, property, query, state } from 'lit/decorators.js';
8
+ import { SharedResizeObserver } from '@internetarchive/shared-resize-observer';
9
+ import { CollectionNameCache } from '@internetarchive/collection-name-cache';
10
+ import '../src/collection-browser';
11
+ let AppRoot = class AppRoot extends LitElement {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.searchService = this.initSearchServiceFromUrlParams();
15
+ this.resizeObserver = new SharedResizeObserver();
16
+ this.localCache = new LocalCache();
17
+ this.collectionNameCache = new CollectionNameCache({
18
+ searchService: this.searchService,
19
+ localCache: this.localCache,
20
+ });
21
+ this.toggleSlots = false;
22
+ this.cellWidth = 18;
23
+ this.cellHeight = 29;
24
+ this.rowGap = 1.7;
25
+ this.colGap = 1.7;
26
+ this.loggedIn = false;
27
+ this.searchType = SearchType.METADATA;
28
+ this.analyticsManager = new AnalyticsManager();
29
+ this.analyticsHandler = {
30
+ sendPing: this.sendAnalytics.bind(this),
31
+ sendEvent: this.sendAnalytics.bind(this),
32
+ sendEventNoSampling: this.sendAnalytics.bind(this),
33
+ };
34
+ }
35
+ sendAnalytics(ae) {
36
+ var _a;
37
+ console.log('Analytics Received ----', ae);
38
+ this.latestAction = ae;
39
+ (_a = this.analyticsManager) === null || _a === void 0 ? void 0 : _a.sendEvent(ae);
40
+ }
41
+ initSearchServiceFromUrlParams() {
42
+ var _a, _b, _c;
43
+ const params = new URL(window.location.href).searchParams;
44
+ return new SearchService({
45
+ includeCredentials: false,
46
+ baseUrl: (_a = params.get('search_base_url')) !== null && _a !== void 0 ? _a : undefined,
47
+ servicePath: (_b = params.get('search_service_path')) !== null && _b !== void 0 ? _b : undefined,
48
+ debuggingEnabled: (_c = !!params.get('debugging')) !== null && _c !== void 0 ? _c : undefined,
49
+ });
50
+ }
51
+ searchPressed(e) {
52
+ e.preventDefault();
53
+ this.searchQuery = this.baseQueryField.value;
54
+ this.collectionBrowser.searchType = this.searchType;
55
+ this.goToCurrentPage();
56
+ }
57
+ collectionChanged(e) {
58
+ e.preventDefault();
59
+ this.withinCollection = this.baseCollectionField.value;
60
+ this.collectionBrowser.withinCollection = this.withinCollection;
61
+ this.goToCurrentPage();
62
+ }
63
+ goToCurrentPage() {
64
+ var _a;
65
+ const page = (_a = this.currentPage) !== null && _a !== void 0 ? _a : 1;
66
+ if (page > 1) {
67
+ this.collectionBrowser.goToPage(page);
68
+ }
69
+ }
70
+ changePagePressed(e) {
71
+ e.preventDefault();
72
+ this.currentPage = this.pageNumberInput.valueAsNumber;
73
+ this.collectionBrowser.goToPage(this.currentPage);
74
+ }
75
+ updated(changed) {
76
+ if (changed.has('currentPage') && this.currentPage) {
77
+ this.pageNumberInput.value = this.currentPage.toString();
78
+ }
79
+ if (changed.has('searchQuery')) {
80
+ this.queryUpdated();
81
+ }
82
+ }
83
+ queryUpdated() {
84
+ this.collectionBrowser.baseQuery = this.searchQuery;
85
+ }
86
+ get getClass() {
87
+ const searchParams = new URLSearchParams(window.location.search);
88
+ return searchParams.get('hide-dev-tools') ? 'hidden' : '';
89
+ }
90
+ render() {
91
+ var _a, _b;
91
92
  return html `
92
93
  <div class="dev-tool-container">
93
94
  <div id="dev-tools" class=${this.getClass}>
@@ -147,21 +148,21 @@ let AppRoot = class AppRoot extends LitElement {
147
148
 
148
149
  <div id="toggle-controls">
149
150
  <button
150
- @click=${() => {
151
- var _a, _b;
152
- const details = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('cell-size-control');
153
- details === null || details === void 0 ? void 0 : details.classList.toggle('hidden');
154
- const rowGapControls = (_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.getElementById('cell-gap-control');
155
- rowGapControls === null || rowGapControls === void 0 ? void 0 : rowGapControls.classList.toggle('hidden');
151
+ @click=${() => {
152
+ var _a, _b;
153
+ const details = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('cell-size-control');
154
+ details === null || details === void 0 ? void 0 : details.classList.toggle('hidden');
155
+ const rowGapControls = (_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.getElementById('cell-gap-control');
156
+ rowGapControls === null || rowGapControls === void 0 ? void 0 : rowGapControls.classList.toggle('hidden');
156
157
  }}
157
158
  >
158
159
  Toggle Cell Controls
159
160
  </button>
160
161
  <button
161
- @click=${() => {
162
- var _a;
163
- const details = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('latest-event-details');
164
- details === null || details === void 0 ? void 0 : details.classList.toggle('hidden');
162
+ @click=${() => {
163
+ var _a;
164
+ const details = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('latest-event-details');
165
+ details === null || details === void 0 ? void 0 : details.classList.toggle('hidden');
165
166
  }}
166
167
  >
167
168
  Last Event Captured
@@ -175,91 +176,93 @@ let AppRoot = class AppRoot extends LitElement {
175
176
  >
176
177
  </div>
177
178
 
178
- <div id="cell-controls" class="hidden">
179
- <div id="cell-size-control">
180
- <div>
181
- <label for="cell-width-slider">Min cell width:</label>
182
- <input
183
- type="range"
184
- min="10"
185
- max="100"
186
- value="18"
187
- step="0.1"
188
- id="cell-width-slider"
189
- @input=${this.widthChanged}
190
- />
191
- <span>${this.cellWidth}rem</span>
192
- </div>
193
- <div>
194
- <label for="cell-height-slider">Cell height:</label>
195
- <input
196
- type="range"
197
- min="10"
198
- max="100"
199
- value="29"
200
- step="0.1"
201
- id="cell-height-slider"
202
- @input=${this.heightChanged}
203
- />
204
- <span>${this.cellHeight}rem</span>
205
- </div>
179
+ <fieldset class="cell-controls">
180
+ <legend>Cell Controls</legend>
181
+ <div>
182
+ <label for="cell-width-slider">Cell width:</label>
183
+ <input
184
+ type="range"
185
+ min="10"
186
+ max="100"
187
+ value="18"
188
+ step="0.1"
189
+ id="cell-width-slider"
190
+ @input=${this.widthChanged}
191
+ />
192
+ <span>${this.cellWidth}rem</span>
193
+ </div>
194
+ <div>
195
+ <label for="cell-height-slider">Cell height:</label>
196
+ <input
197
+ type="range"
198
+ min="10"
199
+ max="100"
200
+ value="29"
201
+ step="0.1"
202
+ id="cell-height-slider"
203
+ @input=${this.heightChanged}
204
+ />
205
+ <span>${this.cellHeight}rem</span>
206
206
  </div>
207
- <div id="cell-gap-control">
208
- <div>
209
- <label for="cell-row-gap-slider">Row gap:</label>
210
- <input
211
- type="range"
212
- min="0"
213
- max="5"
214
- value="1.7"
215
- step="0.1"
216
- id="cell-row-gap-slider"
217
- @input=${this.rowGapChanged}
218
- />
219
- <span>${this.rowGap}rem</span>
220
- </div>
221
- <div>
222
- <label for="cell-col-gap-slider">Col gap:</label>
223
- <input
224
- type="range"
225
- min="0"
226
- max="5"
227
- value="1.7"
228
- step="0.1"
229
- id="cell-col-gap-slider"
230
- @input=${this.colGapChanged}
231
- />
232
- <span>${this.colGap}rem</span>
233
- </div>
207
+ <div>
208
+ <label for="cell-row-gap-slider">Row gap:</label>
209
+ <input
210
+ type="range"
211
+ min="0"
212
+ max="5"
213
+ value="1.7"
214
+ step="0.1"
215
+ id="cell-row-gap-slider"
216
+ @input=${this.rowGapChanged}
217
+ />
218
+ <span>${this.rowGap}rem</span>
234
219
  </div>
235
- </div>
236
- <div id="checkbox-controls">
220
+ <div>
221
+ <label for="cell-col-gap-slider">Col gap:</label>
222
+ <input
223
+ type="range"
224
+ min="0"
225
+ max="5"
226
+ value="1.7"
227
+ step="0.1"
228
+ id="cell-col-gap-slider"
229
+ @input=${this.colGapChanged}
230
+ />
231
+ <span>${this.colGap}rem</span>
232
+ </div>
233
+ </fieldset>
234
+
235
+ <fieldset class="other-controls">
236
+ <legend>Other Controls</legend>
237
237
  <div class="checkbox-control">
238
238
  <input
239
239
  type="checkbox"
240
- id="show-outline-check"
241
- @click=${this.outlineChanged}
240
+ id="simulate-login"
241
+ @click=${this.loginChanged}
242
242
  />
243
- <label for="show-outline-check">Show cell outlines</label>
243
+ <label for="simulate-login">Simulate login</label>
244
244
  </div>
245
245
  <div class="checkbox-control">
246
246
  <input
247
247
  type="checkbox"
248
- id="show-facet-group-outline-check"
249
- @click=${this.toggleFacetGroupOutline}
248
+ id="enable-date-picker"
249
+ checked
250
+ @click=${this.datePickerChanged}
250
251
  />
251
- <label for="show-facet-group-outline-check">
252
- Show facet group outlines
253
- </label>
252
+ <label for="enable-date-picker">Enable date picker</label>
254
253
  </div>
255
254
  <div class="checkbox-control">
256
255
  <input
257
256
  type="checkbox"
258
- id="simulate-login"
259
- @click=${this.loginChanged}
257
+ id="enable-management"
258
+ @click=${this.manageModeCheckboxChanged}
260
259
  />
261
- <label for="simulate-login">Simulate login</label>
260
+ <label for="enable-management">Enable manage mode</label>
262
261
  </div>
262
+ </fieldset>
263
+
264
+ <fieldset class="cb-visual-appearance">
265
+ <legend>CB Visual Appearance</legend>
263
266
  <div class="checkbox-control">
264
267
  <input
265
268
  type="checkbox"
@@ -271,37 +274,62 @@ let AppRoot = class AppRoot extends LitElement {
271
274
  <div class="checkbox-control">
272
275
  <input
273
276
  type="checkbox"
274
- id="enable-date-picker"
275
- checked
276
- @click=${this.datePickerChanged}
277
+ id="show-facet-group-outline-check"
278
+ @click=${this.toggleFacetGroupOutline}
277
279
  />
278
- <label for="enable-date-picker">Enable date picker</label>
280
+ <label for="show-facet-group-outline-check">
281
+ Show facet group outlines
282
+ </label>
279
283
  </div>
280
284
  <div class="checkbox-control">
281
285
  <input
282
286
  type="checkbox"
283
- id="enable-management"
284
- @click=${this.manageModeCheckboxChanged}
287
+ id="show-outline-check"
288
+ @click=${this.outlineChanged}
285
289
  />
286
- <label for="enable-management">Enable manage mode</label>
290
+ <label for="show-outline-check">Show cell outlines</label>
287
291
  </div>
292
+ </fieldset>
293
+
294
+ <fieldset class="user-profile-controls">
295
+ <legend>User Profile Controls</legend>
288
296
  <div class="checkbox-control">
289
297
  <input
290
298
  type="checkbox"
291
- id="enable-facet-top-view"
292
- @click=${this.facetTopViewCheckboxChanged}
299
+ id="enable-facet-top-slot"
300
+ @click=${this.facetTopSlotCheckboxChanged}
293
301
  />
294
- <label for="enable-facet-top-view">Show facet top view</label>
302
+ <label for="enable-facet-top-slot">Show facet top slot</label>
295
303
  </div>
296
304
  <div class="checkbox-control">
297
305
  <input
298
306
  type="checkbox"
299
- id="enable-cb-top-view"
300
- @click=${this.cbToViewCheckboxChanged}
307
+ id="enable-cb-top-slot"
308
+ @click=${this.cbTopSlotCheckboxChanged}
301
309
  />
302
- <label for="enable-cb-top-view">Show CB top view</label>
310
+ <label for="enable-cb-top-slot">Show CB top slot</label>
303
311
  </div>
304
- </div>
312
+ <div class="checkbox-control">
313
+ <input
314
+ type="checkbox"
315
+ id="enable-sortbar-left-slot"
316
+ @click=${this.sortBarSlotCheckboxChanged}
317
+ />
318
+ <label for="enable-sortbar-left-slot"
319
+ >Show sortbar left slot</label
320
+ >
321
+ </div>
322
+ <div class="checkbox-control">
323
+ <input
324
+ type="checkbox"
325
+ id="enable-result-last-tile-slot"
326
+ @click=${this.resultLastTileSlotCheckboxChanged}
327
+ />
328
+ <label for="enable-result-last-tile-slot"
329
+ >Show result last tile slot</label
330
+ >
331
+ </div>
332
+ </fieldset>
305
333
  </div>
306
334
  <button id="toggle-dev-tools-btn" @click=${this.toggleDevTools}>
307
335
  Toggle Search Controls
@@ -323,206 +351,249 @@ let AppRoot = class AppRoot extends LitElement {
323
351
  @searchTypeChanged=${this.searchTypeChanged}
324
352
  @manageModeChanged=${this.manageModeChanged}
325
353
  >
354
+ ${this.toggleSlots
355
+ ? html `<div slot="sortbar-left-slot">Sort Slot</div>`
356
+ : nothing}
357
+ ${this.toggleSlots
358
+ ? html `<div slot="facet-top-slot">Facet Slot</div>`
359
+ : nothing}
326
360
  </collection-browser>
327
361
  </div>
328
362
  <modal-manager></modal-manager>
329
- `;
330
- }
331
- baseQueryChanged(e) {
332
- this.searchQuery = e.detail.baseQuery;
333
- }
334
- /** Handler for search type changes coming from collection browser */
335
- searchTypeChanged(e) {
336
- this.searchType = e.detail;
337
- }
338
- /** Handler for user input selecting a search type */
339
- searchTypeSelected(e) {
340
- const target = e.target;
341
- this.searchType =
342
- target.value === 'fulltext' ? SearchType.FULLTEXT : SearchType.METADATA;
343
- }
344
- loginChanged(e) {
345
- const target = e.target;
346
- if (target.checked) {
347
- this.loggedIn = true;
348
- }
349
- else {
350
- this.loggedIn = false;
351
- }
352
- }
353
- outlineChanged(e) {
354
- const target = e.target;
355
- if (target.checked) {
356
- this.collectionBrowser.style.setProperty('--infiniteScrollerCellOutline', '1px solid #33D1FF');
357
- }
358
- else {
359
- this.collectionBrowser.style.removeProperty('--infiniteScrollerCellOutline');
360
- }
361
- }
362
- toggleDevTools() {
363
- var _a, _b;
364
- const pageUrl = new URL(window.location.href);
365
- const { searchParams } = pageUrl;
366
- if (searchParams.get('hide-dev-tools')) {
367
- searchParams.delete('hide-dev-tools');
368
- }
369
- else {
370
- searchParams.set('hide-dev-tools', 'true');
371
- }
372
- (_b = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('dev-tools')) === null || _b === void 0 ? void 0 : _b.classList.toggle('hidden');
373
- if (window.history.replaceState) {
374
- window.history.replaceState({
375
- path: pageUrl.toString(),
376
- }, '', pageUrl.toString());
377
- }
378
- }
379
- toggleFacetGroupOutline(e) {
380
- const target = e.target;
381
- if (target.checked) {
382
- this.collectionBrowser.classList.add('showFacetGroupOutlines');
383
- this.modalManager.classList.add('showFacetGroupOutlines');
384
- }
385
- else {
386
- this.collectionBrowser.classList.remove('showFacetGroupOutlines');
387
- this.modalManager.classList.remove('showFacetGroupOutlines');
388
- }
389
- }
390
- async snippetsChanged(e) {
391
- const target = e.target;
392
- if (target.checked) {
393
- // Decorate the default search service with a wrapper that adds
394
- // dummy snippets to any successful searches
395
- this.searchService = {
396
- async search(params, searchType) {
397
- var _a;
398
- const searchResponse = await SearchService.default.search(params, searchType);
399
- (_a = searchResponse.success) === null || _a === void 0 ? void 0 : _a.response.results.forEach(result => {
400
- Object.defineProperty(result, 'highlight', {
401
- value: new StringField([
402
- 'this is a text {{{snippet}}} block with potentially',
403
- 'multiple {{{snippets}}} and such',
404
- 'but the {{{snippet}}} block may be quite long perhaps',
405
- 'depending on how many {{{snippet}}} matches there are',
406
- 'there may be multiple lines of {{{snippets}}} to show',
407
- 'but each {{{snippet}}} should be relatively short',
408
- 'and {{{snippets}}} are each a {{{snippet}}} of text',
409
- 'but every {{{snippet}}} might have multiple matches',
410
- 'the {{{snippets}}} should be separated and surrounded by ellipses',
411
- ]),
412
- });
413
- });
414
- return searchResponse;
415
- },
416
- };
417
- }
418
- else {
419
- // Restore the default seach service
420
- this.searchService = SearchService.default;
421
- }
422
- // Re-perform the current search to show/hide the snippets immediately
423
- this.reperformCurrentSearch();
424
- }
425
- async reperformCurrentSearch() {
426
- const oldQuery = this.searchQuery;
427
- this.searchQuery = ''; // Should just reset to the placeholder
428
- await this.updateComplete;
429
- // For unclear reasons, Safari refuses to re-apply the old query until the next tick, hence:
430
- await new Promise(res => {
431
- setTimeout(res, 0);
432
- });
433
- this.searchQuery = oldQuery; // Re-apply the original query
434
- }
435
- datePickerChanged(e) {
436
- const target = e.target;
437
- this.collectionBrowser.showHistogramDatePicker = target.checked;
438
- // When disabling the date picker from the demo app, also clear any existing date range params
439
- if (!this.collectionBrowser.showHistogramDatePicker) {
440
- this.collectionBrowser.minSelectedDate = undefined;
441
- this.collectionBrowser.maxSelectedDate = undefined;
442
- }
443
- }
444
- /**
445
- * Handler for when collection browser's manage mode changes.
446
- * This lets us disable the checkbox in the dev panel when the user cancels out
447
- * of manage mode from within collection browser.
448
- */
449
- manageModeChanged(e) {
450
- var _a;
451
- const manageCheckbox = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#enable-management');
452
- if (manageCheckbox)
453
- manageCheckbox.checked = e.detail;
454
- }
455
- /**
456
- * Handler for when the dev panel's "Enable manage mode" checkbox is changed.
457
- */
458
- manageModeCheckboxChanged(e) {
459
- const target = e.target;
460
- this.collectionBrowser.isManageView = target.checked;
461
- }
462
- /**
463
- * Handler for when the dev panel's "Show facet top view" checkbox is changed.
464
- */
465
- facetTopViewCheckboxChanged(e) {
466
- const target = e.target;
467
- const p = document.createElement('p');
468
- p.style.setProperty('border', '1px solid #000');
469
- p.textContent = 'New stuff as a child.';
470
- p.style.setProperty('height', '20rem');
471
- p.style.backgroundColor = '#00000';
472
- p.setAttribute('slot', 'facet-top-slot');
473
- if (target.checked) {
474
- this.collectionBrowser.appendChild(p);
475
- }
476
- else {
477
- this.collectionBrowser.removeChild(this.collectionBrowser.lastElementChild);
478
- }
479
- }
480
- /**
481
- * Handler for when the dev panel's "Show cb top view" checkbox is changed.
482
- */
483
- cbToViewCheckboxChanged(e) {
484
- const target = e.target;
485
- const p = document.createElement('p');
486
- p.style.setProperty('border', '1px solid #000');
487
- p.textContent = 'My Favorite list header.';
488
- p.style.setProperty('height', '10rem');
489
- p.style.backgroundColor = '#00000';
490
- p.setAttribute('slot', 'cb-top-slot');
491
- if (target.checked) {
492
- this.collectionBrowser.appendChild(p);
493
- }
494
- else {
495
- this.collectionBrowser.removeChild(this.collectionBrowser.lastElementChild);
496
- }
497
- }
498
- rowGapChanged(e) {
499
- const input = e.target;
500
- this.rowGap = parseFloat(input.value);
501
- this.collectionBrowser.style.setProperty('--collectionBrowserRowGap', `${input.value}rem`);
502
- }
503
- colGapChanged(e) {
504
- const input = e.target;
505
- this.colGap = parseFloat(input.value);
506
- this.collectionBrowser.style.setProperty('--collectionBrowserColGap', `${input.value}rem`);
507
- }
508
- widthChanged(e) {
509
- const input = e.target;
510
- this.cellWidth = parseFloat(input.value);
511
- this.collectionBrowser.style.setProperty('--collectionBrowserCellMinWidth', `${input.value}rem`);
512
- }
513
- heightChanged(e) {
514
- const input = e.target;
515
- this.cellHeight = parseFloat(input.value);
516
- this.collectionBrowser.style.setProperty('--collectionBrowserCellMinHeight', `${input.value}rem`);
517
- this.collectionBrowser.style.setProperty('--collectionBrowserCellMaxHeight', `${input.value}rem`);
518
- }
519
- visiblePageChanged(e) {
520
- const { pageNumber } = e.detail;
521
- if (pageNumber === this.currentPage)
522
- return;
523
- this.currentPage = pageNumber;
524
- }
525
- };
363
+ `;
364
+ }
365
+ baseQueryChanged(e) {
366
+ this.searchQuery = e.detail.baseQuery;
367
+ }
368
+ /** Handler for search type changes coming from collection browser */
369
+ searchTypeChanged(e) {
370
+ this.searchType = e.detail;
371
+ }
372
+ /** Handler for user input selecting a search type */
373
+ searchTypeSelected(e) {
374
+ const target = e.target;
375
+ this.searchType =
376
+ target.value === 'fulltext' ? SearchType.FULLTEXT : SearchType.METADATA;
377
+ }
378
+ loginChanged(e) {
379
+ const target = e.target;
380
+ if (target.checked) {
381
+ this.loggedIn = true;
382
+ }
383
+ else {
384
+ this.loggedIn = false;
385
+ }
386
+ }
387
+ outlineChanged(e) {
388
+ const target = e.target;
389
+ if (target.checked) {
390
+ this.collectionBrowser.style.setProperty('--infiniteScrollerCellOutline', '1px solid #33D1FF');
391
+ }
392
+ else {
393
+ this.collectionBrowser.style.removeProperty('--infiniteScrollerCellOutline');
394
+ }
395
+ }
396
+ toggleDevTools() {
397
+ var _a, _b;
398
+ const pageUrl = new URL(window.location.href);
399
+ const { searchParams } = pageUrl;
400
+ if (searchParams.get('hide-dev-tools')) {
401
+ searchParams.delete('hide-dev-tools');
402
+ }
403
+ else {
404
+ searchParams.set('hide-dev-tools', 'true');
405
+ }
406
+ (_b = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('dev-tools')) === null || _b === void 0 ? void 0 : _b.classList.toggle('hidden');
407
+ if (window.history.replaceState) {
408
+ window.history.replaceState({
409
+ path: pageUrl.toString(),
410
+ }, '', pageUrl.toString());
411
+ }
412
+ }
413
+ toggleFacetGroupOutline(e) {
414
+ const target = e.target;
415
+ if (target.checked) {
416
+ this.collectionBrowser.classList.add('showFacetGroupOutlines');
417
+ this.modalManager.classList.add('showFacetGroupOutlines');
418
+ }
419
+ else {
420
+ this.collectionBrowser.classList.remove('showFacetGroupOutlines');
421
+ this.modalManager.classList.remove('showFacetGroupOutlines');
422
+ }
423
+ }
424
+ async snippetsChanged(e) {
425
+ const target = e.target;
426
+ if (target.checked) {
427
+ // Decorate the default search service with a wrapper that adds
428
+ // dummy snippets to any successful searches
429
+ this.searchService = {
430
+ async search(params, searchType) {
431
+ var _a;
432
+ const searchResponse = await SearchService.default.search(params, searchType);
433
+ (_a = searchResponse.success) === null || _a === void 0 ? void 0 : _a.response.results.forEach(result => {
434
+ Object.defineProperty(result, 'highlight', {
435
+ value: new StringField([
436
+ 'this is a text {{{snippet}}} block with potentially',
437
+ 'multiple {{{snippets}}} and such',
438
+ 'but the {{{snippet}}} block may be quite long perhaps',
439
+ 'depending on how many {{{snippet}}} matches there are',
440
+ 'there may be multiple lines of {{{snippets}}} to show',
441
+ 'but each {{{snippet}}} should be relatively short',
442
+ 'and {{{snippets}}} are each a {{{snippet}}} of text',
443
+ 'but every {{{snippet}}} might have multiple matches',
444
+ 'the {{{snippets}}} should be separated and surrounded by ellipses',
445
+ ]),
446
+ });
447
+ });
448
+ return searchResponse;
449
+ },
450
+ };
451
+ }
452
+ else {
453
+ // Restore the default seach service
454
+ this.searchService = SearchService.default;
455
+ }
456
+ // Re-perform the current search to show/hide the snippets immediately
457
+ this.reperformCurrentSearch();
458
+ }
459
+ async reperformCurrentSearch() {
460
+ const oldQuery = this.searchQuery;
461
+ this.searchQuery = ''; // Should just reset to the placeholder
462
+ await this.updateComplete;
463
+ // For unclear reasons, Safari refuses to re-apply the old query until the next tick, hence:
464
+ await new Promise(res => {
465
+ setTimeout(res, 0);
466
+ });
467
+ this.searchQuery = oldQuery; // Re-apply the original query
468
+ }
469
+ datePickerChanged(e) {
470
+ const target = e.target;
471
+ this.collectionBrowser.showHistogramDatePicker = target.checked;
472
+ // When disabling the date picker from the demo app, also clear any existing date range params
473
+ if (!this.collectionBrowser.showHistogramDatePicker) {
474
+ this.collectionBrowser.minSelectedDate = undefined;
475
+ this.collectionBrowser.maxSelectedDate = undefined;
476
+ }
477
+ }
478
+ /**
479
+ * Handler for when collection browser's manage mode changes.
480
+ * This lets us disable the checkbox in the dev panel when the user cancels out
481
+ * of manage mode from within collection browser.
482
+ */
483
+ manageModeChanged(e) {
484
+ var _a;
485
+ const manageCheckbox = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#enable-management');
486
+ if (manageCheckbox)
487
+ manageCheckbox.checked = e.detail;
488
+ }
489
+ /**
490
+ * Handler for when the dev panel's "Enable manage mode" checkbox is changed.
491
+ */
492
+ manageModeCheckboxChanged(e) {
493
+ const target = e.target;
494
+ this.collectionBrowser.isManageView = target.checked;
495
+ }
496
+ /**
497
+ * Handler for when the dev panel's "Show facet top slot" checkbox is changed.
498
+ */
499
+ facetTopSlotCheckboxChanged(e) {
500
+ const target = e.target;
501
+ const p = document.createElement('p');
502
+ p.style.setProperty('border', '1px solid #000');
503
+ p.textContent = 'New stuff as a child.';
504
+ p.style.setProperty('height', '20rem');
505
+ p.style.backgroundColor = '#00000';
506
+ p.setAttribute('slot', 'facet-top-slot');
507
+ if (target.checked) {
508
+ this.collectionBrowser.appendChild(p);
509
+ }
510
+ else {
511
+ this.collectionBrowser.removeChild(this.collectionBrowser.lastElementChild);
512
+ }
513
+ }
514
+ toggleSlotOptions() {
515
+ this.toggleSlots = !this.toggleSlots;
516
+ }
517
+ resultLastTileSlotCheckboxChanged(e) {
518
+ const target = e.target;
519
+ const div = document.createElement('div');
520
+ const title = document.createElement('h3');
521
+ title.textContent = 'Upload';
522
+ div.setAttribute('slot', 'result-last-tile');
523
+ div.setAttribute('class', 'result-last-tile');
524
+ div.appendChild(title);
525
+ if (target.checked) {
526
+ this.collectionBrowser.appendChild(div);
527
+ }
528
+ else {
529
+ this.collectionBrowser.removeChild(this.collectionBrowser.lastElementChild);
530
+ }
531
+ }
532
+ /**
533
+ * Handler for when the dev panel's "Show cb top slot" checkbox is changed.
534
+ */
535
+ cbTopSlotCheckboxChanged(e) {
536
+ const target = e.target;
537
+ const p = document.createElement('p');
538
+ p.style.setProperty('border', '1px solid #000');
539
+ p.textContent = 'My Favorite list header.';
540
+ p.style.setProperty('height', '10rem');
541
+ p.style.backgroundColor = '#00000';
542
+ p.setAttribute('slot', 'cb-top-slot');
543
+ if (target.checked) {
544
+ this.collectionBrowser.appendChild(p);
545
+ }
546
+ else {
547
+ this.collectionBrowser.removeChild(this.collectionBrowser.lastElementChild);
548
+ }
549
+ }
550
+ /**
551
+ * Handler for when the dev panel's "Show facet top slot" checkbox is changed.
552
+ */
553
+ sortBarSlotCheckboxChanged(e) {
554
+ const target = e.target;
555
+ const div = document.createElement('div');
556
+ div.style.setProperty('border', '1px solid #000');
557
+ div.textContent = 'Btn';
558
+ div.style.setProperty('height', '3rem');
559
+ div.style.setProperty('width', '3rem');
560
+ div.style.backgroundColor = '#00000';
561
+ div.setAttribute('slot', 'sortbar-left-slot');
562
+ if (target.checked) {
563
+ this.collectionBrowser.appendChild(div);
564
+ }
565
+ else {
566
+ this.collectionBrowser.removeChild(this.collectionBrowser.lastElementChild);
567
+ }
568
+ }
569
+ rowGapChanged(e) {
570
+ const input = e.target;
571
+ this.rowGap = parseFloat(input.value);
572
+ this.collectionBrowser.style.setProperty('--collectionBrowserRowGap', `${input.value}rem`);
573
+ }
574
+ colGapChanged(e) {
575
+ const input = e.target;
576
+ this.colGap = parseFloat(input.value);
577
+ this.collectionBrowser.style.setProperty('--collectionBrowserColGap', `${input.value}rem`);
578
+ }
579
+ widthChanged(e) {
580
+ const input = e.target;
581
+ this.cellWidth = parseFloat(input.value);
582
+ this.collectionBrowser.style.setProperty('--collectionBrowserCellMinWidth', `${input.value}rem`);
583
+ }
584
+ heightChanged(e) {
585
+ const input = e.target;
586
+ this.cellHeight = parseFloat(input.value);
587
+ this.collectionBrowser.style.setProperty('--collectionBrowserCellMinHeight', `${input.value}rem`);
588
+ this.collectionBrowser.style.setProperty('--collectionBrowserCellMaxHeight', `${input.value}rem`);
589
+ }
590
+ visiblePageChanged(e) {
591
+ const { pageNumber } = e.detail;
592
+ if (pageNumber === this.currentPage)
593
+ return;
594
+ this.currentPage = pageNumber;
595
+ }
596
+ };
526
597
  AppRoot.styles = css `
527
598
  :host {
528
599
  display: block;
@@ -603,7 +674,6 @@ AppRoot.styles = css `
603
674
  padding: 0.5rem 1rem;
604
675
  border: 1px solid black;
605
676
  font-size: 1.4rem;
606
- width: 75%;
607
677
  background: #ffffffb3;
608
678
  }
609
679
 
@@ -646,11 +716,17 @@ AppRoot.styles = css `
646
716
  margin-right: 1rem;
647
717
  }
648
718
 
649
- #cell-controls {
719
+ .cell-controls {
650
720
  display: flex;
651
721
  flex-wrap: wrap;
652
722
  }
653
-
723
+ .cell-controls div {
724
+ display: flex;
725
+ align-items: center;
726
+ }
727
+ .cell-controls input[type='range'] {
728
+ width: 120px;
729
+ }
654
730
  #cell-controls label {
655
731
  display: inline-block;
656
732
  width: 10rem;
@@ -674,6 +750,9 @@ AppRoot.styles = css `
674
750
  .checkbox-control {
675
751
  flex-basis: 50%;
676
752
  }
753
+ .checkbox-control label {
754
+ user-select: none;
755
+ }
677
756
 
678
757
  #last-event {
679
758
  background-color: aliceblue;
@@ -696,54 +775,107 @@ AppRoot.styles = css `
696
775
  background-color: aliceblue;
697
776
  font-size: 1.6rem;
698
777
  }
699
- `;
700
- __decorate([
701
- state()
702
- ], AppRoot.prototype, "currentPage", void 0);
703
- __decorate([
704
- state()
705
- ], AppRoot.prototype, "searchQuery", void 0);
706
- __decorate([
707
- state()
708
- ], AppRoot.prototype, "withinCollection", void 0);
709
- __decorate([
710
- state()
711
- ], AppRoot.prototype, "cellWidth", void 0);
712
- __decorate([
713
- state()
714
- ], AppRoot.prototype, "cellHeight", void 0);
715
- __decorate([
716
- state()
717
- ], AppRoot.prototype, "rowGap", void 0);
718
- __decorate([
719
- state()
720
- ], AppRoot.prototype, "colGap", void 0);
721
- __decorate([
722
- state()
723
- ], AppRoot.prototype, "loggedIn", void 0);
724
- __decorate([
725
- state()
726
- ], AppRoot.prototype, "searchType", void 0);
727
- __decorate([
728
- property({ type: Object, reflect: false })
729
- ], AppRoot.prototype, "latestAction", void 0);
730
- __decorate([
731
- query('#base-query-field')
732
- ], AppRoot.prototype, "baseQueryField", void 0);
733
- __decorate([
734
- query('#base-collection-field')
735
- ], AppRoot.prototype, "baseCollectionField", void 0);
736
- __decorate([
737
- query('#page-number-input')
738
- ], AppRoot.prototype, "pageNumberInput", void 0);
739
- __decorate([
740
- query('collection-browser')
741
- ], AppRoot.prototype, "collectionBrowser", void 0);
742
- __decorate([
743
- query('modal-manager')
744
- ], AppRoot.prototype, "modalManager", void 0);
745
- AppRoot = __decorate([
746
- customElement('app-root')
747
- ], AppRoot);
748
- export { AppRoot };
778
+
779
+ // slots
780
+ div[slot='cb-top-slot'] {
781
+ height: 50px;
782
+ border: 1px solid red;
783
+ background: bisque;
784
+ }
785
+ div[slot='facet-top-slot'] {
786
+ border: 1px solid red;
787
+ width: 100%;
788
+ height: 150px;
789
+ background-color: darkseagreen;
790
+ }
791
+ div[slot='sort-slot-left'] {
792
+ height: 50px;
793
+ border: 1px solid red;
794
+ background: bisque;
795
+ }
796
+
797
+ /* user profile controls */
798
+ .user-profile-controls {
799
+ width: fit-content;
800
+ }
801
+
802
+ fieldset {
803
+ display: inline-block !important;
804
+ }
805
+
806
+ .result-last-tile {
807
+ border-radius: 4px;
808
+ background-color: white;
809
+ border: 3px dashed #555;
810
+ box-shadow: none;
811
+ display: grid;
812
+ align-content: center;
813
+ }
814
+ .result-last-tile:hover {
815
+ box-shadow: rgba(8, 8, 32, 0.8) 0 0 6px 2px;
816
+ transition: box-shadow 0.1s ease 0s;
817
+ cursor: pointer;
818
+ border: 3px dashed #4b64ff;
819
+ }
820
+ .result-last-tile h3 {
821
+ margin-bottom: 4rem;
822
+ margin: 0px auto;
823
+ font-size: 2.8rem;
824
+ color: rgb(44, 44, 44);
825
+ font-weight: 200;
826
+ text-align: center;
827
+ }
828
+ `;
829
+ __decorate([
830
+ state()
831
+ ], AppRoot.prototype, "toggleSlots", void 0);
832
+ __decorate([
833
+ state()
834
+ ], AppRoot.prototype, "currentPage", void 0);
835
+ __decorate([
836
+ state()
837
+ ], AppRoot.prototype, "searchQuery", void 0);
838
+ __decorate([
839
+ state()
840
+ ], AppRoot.prototype, "withinCollection", void 0);
841
+ __decorate([
842
+ state()
843
+ ], AppRoot.prototype, "cellWidth", void 0);
844
+ __decorate([
845
+ state()
846
+ ], AppRoot.prototype, "cellHeight", void 0);
847
+ __decorate([
848
+ state()
849
+ ], AppRoot.prototype, "rowGap", void 0);
850
+ __decorate([
851
+ state()
852
+ ], AppRoot.prototype, "colGap", void 0);
853
+ __decorate([
854
+ state()
855
+ ], AppRoot.prototype, "loggedIn", void 0);
856
+ __decorate([
857
+ state()
858
+ ], AppRoot.prototype, "searchType", void 0);
859
+ __decorate([
860
+ property({ type: Object, reflect: false })
861
+ ], AppRoot.prototype, "latestAction", void 0);
862
+ __decorate([
863
+ query('#base-query-field')
864
+ ], AppRoot.prototype, "baseQueryField", void 0);
865
+ __decorate([
866
+ query('#base-collection-field')
867
+ ], AppRoot.prototype, "baseCollectionField", void 0);
868
+ __decorate([
869
+ query('#page-number-input')
870
+ ], AppRoot.prototype, "pageNumberInput", void 0);
871
+ __decorate([
872
+ query('collection-browser')
873
+ ], AppRoot.prototype, "collectionBrowser", void 0);
874
+ __decorate([
875
+ query('modal-manager')
876
+ ], AppRoot.prototype, "modalManager", void 0);
877
+ AppRoot = __decorate([
878
+ customElement('app-root')
879
+ ], AppRoot);
880
+ export { AppRoot };
749
881
  //# sourceMappingURL=app-root.js.map