@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,68 +1,68 @@
1
- var EmptyPlaceholder_1;
2
- import { __decorate } from "tslib";
3
- import { css, html, LitElement, nothing, } from 'lit';
4
- import { customElement, property } from 'lit/decorators.js';
5
- import { choose } from 'lit/directives/choose.js';
6
- import { msg } from '@lit/localize';
7
- import emptyQueryIcon from './assets/img/icons/empty-query';
8
- import nullResultIcon from './assets/img/icons/null-result';
9
- let EmptyPlaceholder = EmptyPlaceholder_1 = class EmptyPlaceholder extends LitElement {
10
- constructor() {
11
- super(...arguments);
12
- this.placeholderType = null;
13
- this.detailMessage = '';
14
- }
15
- render() {
16
- return this.placeholderType ? html `${this.placeholderTemplate}` : nothing;
17
- }
18
- get placeholderTemplate() {
1
+ var EmptyPlaceholder_1;
2
+ import { __decorate } from "tslib";
3
+ import { css, html, LitElement, nothing, } from 'lit';
4
+ import { customElement, property } from 'lit/decorators.js';
5
+ import { choose } from 'lit/directives/choose.js';
6
+ import { msg } from '@lit/localize';
7
+ import emptyQueryIcon from './assets/img/icons/empty-query';
8
+ import nullResultIcon from './assets/img/icons/null-result';
9
+ let EmptyPlaceholder = EmptyPlaceholder_1 = class EmptyPlaceholder extends LitElement {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.placeholderType = null;
13
+ this.detailMessage = '';
14
+ }
15
+ render() {
16
+ return this.placeholderType ? html `${this.placeholderTemplate}` : nothing;
17
+ }
18
+ get placeholderTemplate() {
19
19
  return html `
20
20
  <div
21
- class="placeholder ${this.placeholderType} ${this.isMobileView
22
- ? 'mobile'
21
+ class="placeholder ${this.placeholderType} ${this.isMobileView
22
+ ? 'mobile'
23
23
  : 'desktop'}"
24
24
  >
25
- ${choose(this.placeholderType, [
26
- ['empty-query', () => this.emptyQueryTemplate],
27
- ['empty-collection', () => this.emptyCollectionTemplate],
28
- ['no-results', () => this.noResultsTemplate],
29
- ['query-error', () => this.queryErrorTemplate],
30
- ['collection-error', () => this.collectionErrorTemplate],
25
+ ${choose(this.placeholderType, [
26
+ ['empty-query', () => this.emptyQueryTemplate],
27
+ ['empty-collection', () => this.emptyCollectionTemplate],
28
+ ['no-results', () => this.noResultsTemplate],
29
+ ['query-error', () => this.queryErrorTemplate],
30
+ ['collection-error', () => this.collectionErrorTemplate],
31
31
  ])}
32
32
  </div>
33
- `;
34
- }
35
- get emptyQueryTemplate() {
36
- // Added data-testid for Playwright testing
33
+ `;
34
+ }
35
+ get emptyQueryTemplate() {
36
+ // Added data-testid for Playwright testing
37
37
  return html `
38
38
  <h2 class="title" data-testid="empty-query-text-msg">
39
39
  ${EmptyPlaceholder_1.MESSAGE_EMPTY_QUERY}
40
40
  </h2>
41
41
  <div>${emptyQueryIcon}</div>
42
- `;
43
- }
44
- get emptyCollectionTemplate() {
45
- // Added data-testid for Playwright testing
42
+ `;
43
+ }
44
+ get emptyCollectionTemplate() {
45
+ // Added data-testid for Playwright testing
46
46
  return html `
47
47
  <h2 class="title" data-testid="empty-collection-text-msg">
48
48
  ${EmptyPlaceholder_1.MESSAGE_NO_VIEWABLE_MEMBERS}
49
49
  </h2>
50
50
  <div>${nullResultIcon}</div>
51
- `;
52
- }
53
- get noResultsTemplate() {
54
- // Added data-testid for Playwright testing
51
+ `;
52
+ }
53
+ get noResultsTemplate() {
54
+ // Added data-testid for Playwright testing
55
55
  return html `
56
56
  <h2 class="title" data-testid="empty-results-text-msg">
57
- ${this.isCollection
58
- ? EmptyPlaceholder_1.MESSAGE_NO_COLLECTION_RESULTS
57
+ ${this.isCollection
58
+ ? EmptyPlaceholder_1.MESSAGE_NO_COLLECTION_RESULTS
59
59
  : EmptyPlaceholder_1.MESSAGE_NO_SEARCH_RESULTS}
60
60
  </h2>
61
61
  <div>${nullResultIcon}</div>
62
- `;
63
- }
64
- get queryErrorTemplate() {
65
- // Added data-testid for Playwright testing
62
+ `;
63
+ }
64
+ get queryErrorTemplate() {
65
+ // Added data-testid for Playwright testing
66
66
  return html `
67
67
  <h2 class="title" data-testid="error-query-text-msg">
68
68
  ${EmptyPlaceholder_1.MESSAGE_QUERY_ERROR}
@@ -71,10 +71,10 @@ let EmptyPlaceholder = EmptyPlaceholder_1 = class EmptyPlaceholder extends LitEl
71
71
  <p class="error-details">
72
72
  ${EmptyPlaceholder_1.QUERY_ERROR_DETAILS_MESSAGE} ${this.detailMessage}
73
73
  </p>
74
- `;
75
- }
76
- get collectionErrorTemplate() {
77
- // Added data-testid for Playwright testing
74
+ `;
75
+ }
76
+ get collectionErrorTemplate() {
77
+ // Added data-testid for Playwright testing
78
78
  return html `
79
79
  <h2 class="title" data-testid="error-collection-text-msg">
80
80
  ${EmptyPlaceholder_1.MESSAGE_COLLECTION_ERROR}
@@ -83,9 +83,9 @@ let EmptyPlaceholder = EmptyPlaceholder_1 = class EmptyPlaceholder extends LitEl
83
83
  <p class="error-details">
84
84
  ${EmptyPlaceholder_1.QUERY_ERROR_DETAILS_MESSAGE} ${this.detailMessage}
85
85
  </p>
86
- `;
87
- }
88
- static get styles() {
86
+ `;
87
+ }
88
+ static get styles() {
89
89
  return css `
90
90
  :host {
91
91
  text-align: center;
@@ -126,41 +126,40 @@ let EmptyPlaceholder = EmptyPlaceholder_1 = class EmptyPlaceholder extends LitEl
126
126
  font-size: 1.2rem;
127
127
  word-break: break-word;
128
128
  }
129
- `;
130
- }
131
- };
132
- EmptyPlaceholder.MESSAGE_EMPTY_QUERY = msg('To begin searching, enter a search term in the box above and hit "Go".');
133
- EmptyPlaceholder.MESSAGE_NO_SEARCH_RESULTS = msg('Your search did not match any items in the Archive. ' +
134
- 'Try different keywords or a more general search.');
135
- EmptyPlaceholder.MESSAGE_NO_COLLECTION_RESULTS = msg('Your search did not match any items in this collection. ' +
136
- 'Try different keywords or a more general search.');
137
- EmptyPlaceholder.MESSAGE_NO_VIEWABLE_MEMBERS = msg('This collection contains no viewable items.');
138
- EmptyPlaceholder.MESSAGE_QUERY_ERROR = msg(html `The search engine
139
- encountered an error, which might be related to your search query.
140
- <a
141
- href="https://help.archive.org/help/search-building-powerful-complex-queries/"
142
- >
143
- Tips for constructing search queries.
144
- </a> `);
145
- EmptyPlaceholder.MESSAGE_COLLECTION_ERROR = msg(html `The search engine
146
- encountered an error while loading this collection. If the problem persists,
147
- please let us know at
148
- <a href="mailto:info@archive.org">info@archive.org</a>.`);
149
- EmptyPlaceholder.QUERY_ERROR_DETAILS_MESSAGE = msg('Error details:');
150
- __decorate([
151
- property({ type: String })
152
- ], EmptyPlaceholder.prototype, "placeholderType", void 0);
153
- __decorate([
154
- property({ type: Boolean })
155
- ], EmptyPlaceholder.prototype, "isMobileView", void 0);
156
- __decorate([
157
- property({ type: Boolean })
158
- ], EmptyPlaceholder.prototype, "isCollection", void 0);
159
- __decorate([
160
- property({ type: String })
161
- ], EmptyPlaceholder.prototype, "detailMessage", void 0);
162
- EmptyPlaceholder = EmptyPlaceholder_1 = __decorate([
163
- customElement('empty-placeholder')
164
- ], EmptyPlaceholder);
165
- export { EmptyPlaceholder };
129
+ `;
130
+ }
131
+ };
132
+ EmptyPlaceholder.MESSAGE_EMPTY_QUERY = msg('To begin searching, enter a search term in the box above and hit "Go".');
133
+ EmptyPlaceholder.MESSAGE_NO_SEARCH_RESULTS = msg('Your search did not match any items in the Archive. ' +
134
+ 'Try different keywords or a more general search.');
135
+ EmptyPlaceholder.MESSAGE_NO_COLLECTION_RESULTS = msg('Your search did not match any items in this collection. ' +
136
+ 'Try different keywords or a more general search.');
137
+ EmptyPlaceholder.MESSAGE_NO_VIEWABLE_MEMBERS = msg('This collection contains no viewable items.');
138
+ EmptyPlaceholder.MESSAGE_QUERY_ERROR = msg(html `The search engine encountered an error, which might be related to your
139
+ search query.
140
+ <a
141
+ href="https://help.archive.org/help/search-building-powerful-complex-queries/"
142
+ >
143
+ Tips for constructing search queries.
144
+ </a> `);
145
+ EmptyPlaceholder.MESSAGE_COLLECTION_ERROR = msg(html `The search engine encountered an error while loading this collection.
146
+ If the problem persists, please let us know at
147
+ <a href="mailto:info@archive.org">info@archive.org</a>.`);
148
+ EmptyPlaceholder.QUERY_ERROR_DETAILS_MESSAGE = msg('Error details:');
149
+ __decorate([
150
+ property({ type: String })
151
+ ], EmptyPlaceholder.prototype, "placeholderType", void 0);
152
+ __decorate([
153
+ property({ type: Boolean })
154
+ ], EmptyPlaceholder.prototype, "isMobileView", void 0);
155
+ __decorate([
156
+ property({ type: Boolean })
157
+ ], EmptyPlaceholder.prototype, "isCollection", void 0);
158
+ __decorate([
159
+ property({ type: String })
160
+ ], EmptyPlaceholder.prototype, "detailMessage", void 0);
161
+ EmptyPlaceholder = EmptyPlaceholder_1 = __decorate([
162
+ customElement('empty-placeholder')
163
+ ], EmptyPlaceholder);
164
+ export { EmptyPlaceholder };
166
165
  //# sourceMappingURL=empty-placeholder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"empty-placeholder.js","sourceRoot":"","sources":["../../src/empty-placeholder.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n css,\n html,\n LitElement,\n CSSResultGroup,\n nothing,\n TemplateResult,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { choose } from 'lit/directives/choose.js';\nimport { msg } from '@lit/localize';\n\nimport emptyQueryIcon from './assets/img/icons/empty-query';\nimport nullResultIcon from './assets/img/icons/null-result';\n\nexport type PlaceholderType =\n | 'empty-query'\n | 'empty-collection'\n | 'no-results'\n | 'query-error'\n | 'collection-error'\n | null;\n@customElement('empty-placeholder')\nexport class EmptyPlaceholder extends LitElement {\n private static readonly MESSAGE_EMPTY_QUERY = msg(\n 'To begin searching, enter a search term in the box above and hit \"Go\".'\n );\n\n private static readonly MESSAGE_NO_SEARCH_RESULTS = msg(\n 'Your search did not match any items in the Archive. ' +\n 'Try different keywords or a more general search.'\n );\n\n private static readonly MESSAGE_NO_COLLECTION_RESULTS = msg(\n 'Your search did not match any items in this collection. ' +\n 'Try different keywords or a more general search.'\n );\n\n private static readonly MESSAGE_NO_VIEWABLE_MEMBERS = msg(\n 'This collection contains no viewable items.'\n );\n\n private static readonly MESSAGE_QUERY_ERROR = msg(html`The search engine\n encountered an error, which might be related to your search query.\n <a\n href=\"https://help.archive.org/help/search-building-powerful-complex-queries/\"\n >\n Tips for constructing search queries.\n </a> `);\n\n private static readonly MESSAGE_COLLECTION_ERROR = msg(html`The search engine\n encountered an error while loading this collection. If the problem persists,\n please let us know at\n <a href=\"mailto:info@archive.org\">info@archive.org</a>.`);\n\n private static readonly QUERY_ERROR_DETAILS_MESSAGE = msg('Error details:');\n\n @property({ type: String }) placeholderType: PlaceholderType = null;\n\n @property({ type: Boolean }) isMobileView?: false;\n\n @property({ type: Boolean }) isCollection?: false;\n\n @property({ type: String }) detailMessage?: string = '';\n\n render() {\n return this.placeholderType ? html`${this.placeholderTemplate}` : nothing;\n }\n\n private get placeholderTemplate(): TemplateResult {\n return html`\n <div\n class=\"placeholder ${this.placeholderType} ${this.isMobileView\n ? 'mobile'\n : 'desktop'}\"\n >\n ${choose(this.placeholderType, [\n ['empty-query', () => this.emptyQueryTemplate],\n ['empty-collection', () => this.emptyCollectionTemplate],\n ['no-results', () => this.noResultsTemplate],\n ['query-error', () => this.queryErrorTemplate],\n ['collection-error', () => this.collectionErrorTemplate],\n ])}\n </div>\n `;\n }\n\n private get emptyQueryTemplate(): TemplateResult {\n // Added data-testid for Playwright testing\n return html`\n <h2 class=\"title\" data-testid=\"empty-query-text-msg\">\n ${EmptyPlaceholder.MESSAGE_EMPTY_QUERY}\n </h2>\n <div>${emptyQueryIcon}</div>\n `;\n }\n\n private get emptyCollectionTemplate(): TemplateResult {\n // Added data-testid for Playwright testing\n return html`\n <h2 class=\"title\" data-testid=\"empty-collection-text-msg\">\n ${EmptyPlaceholder.MESSAGE_NO_VIEWABLE_MEMBERS}\n </h2>\n <div>${nullResultIcon}</div>\n `;\n }\n\n private get noResultsTemplate(): TemplateResult {\n // Added data-testid for Playwright testing\n return html`\n <h2 class=\"title\" data-testid=\"empty-results-text-msg\">\n ${this.isCollection\n ? EmptyPlaceholder.MESSAGE_NO_COLLECTION_RESULTS\n : EmptyPlaceholder.MESSAGE_NO_SEARCH_RESULTS}\n </h2>\n <div>${nullResultIcon}</div>\n `;\n }\n\n private get queryErrorTemplate(): TemplateResult {\n // Added data-testid for Playwright testing\n return html`\n <h2 class=\"title\" data-testid=\"error-query-text-msg\">\n ${EmptyPlaceholder.MESSAGE_QUERY_ERROR}\n </h2>\n <div>${nullResultIcon}</div>\n <p class=\"error-details\">\n ${EmptyPlaceholder.QUERY_ERROR_DETAILS_MESSAGE} ${this.detailMessage}\n </p>\n `;\n }\n\n private get collectionErrorTemplate(): TemplateResult {\n // Added data-testid for Playwright testing\n return html`\n <h2 class=\"title\" data-testid=\"error-collection-text-msg\">\n ${EmptyPlaceholder.MESSAGE_COLLECTION_ERROR}\n </h2>\n <div>${nullResultIcon}</div>\n <p class=\"error-details\">\n ${EmptyPlaceholder.QUERY_ERROR_DETAILS_MESSAGE} ${this.detailMessage}\n </p>\n `;\n }\n\n static get styles(): CSSResultGroup {\n return css`\n :host {\n text-align: center;\n width: 100%;\n }\n\n a {\n text-decoration: none;\n }\n a:link {\n color: var(--ia-theme-link-color, #4b64ff);\n }\n a:hover {\n text-decoration: underline;\n }\n\n .placeholder {\n display: block;\n }\n\n .desktop svg {\n max-height: 40rem;\n }\n .desktop .title,\n .desktop .error-details {\n margin: 4rem 0;\n }\n\n .mobile svg {\n max-height: 20rem;\n }\n .mobile .title,\n .mobile .error-details {\n margin: 2rem 0.5;\n }\n\n .error-details {\n font-size: 1.2rem;\n word-break: break-word;\n }\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"empty-placeholder.js","sourceRoot":"","sources":["../../src/empty-placeholder.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n css,\n html,\n LitElement,\n CSSResultGroup,\n nothing,\n TemplateResult,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { choose } from 'lit/directives/choose.js';\nimport { msg } from '@lit/localize';\n\nimport emptyQueryIcon from './assets/img/icons/empty-query';\nimport nullResultIcon from './assets/img/icons/null-result';\n\nexport type PlaceholderType =\n | 'empty-query'\n | 'empty-collection'\n | 'no-results'\n | 'query-error'\n | 'collection-error'\n | null;\n@customElement('empty-placeholder')\nexport class EmptyPlaceholder extends LitElement {\n private static readonly MESSAGE_EMPTY_QUERY = msg(\n 'To begin searching, enter a search term in the box above and hit \"Go\".',\n );\n\n private static readonly MESSAGE_NO_SEARCH_RESULTS = msg(\n 'Your search did not match any items in the Archive. ' +\n 'Try different keywords or a more general search.',\n );\n\n private static readonly MESSAGE_NO_COLLECTION_RESULTS = msg(\n 'Your search did not match any items in this collection. ' +\n 'Try different keywords or a more general search.',\n );\n\n private static readonly MESSAGE_NO_VIEWABLE_MEMBERS = msg(\n 'This collection contains no viewable items.',\n );\n\n private static readonly MESSAGE_QUERY_ERROR = msg(\n html`The search engine encountered an error, which might be related to your\n search query.\n <a\n href=\"https://help.archive.org/help/search-building-powerful-complex-queries/\"\n >\n Tips for constructing search queries.\n </a> `,\n );\n\n private static readonly MESSAGE_COLLECTION_ERROR = msg(\n html`The search engine encountered an error while loading this collection.\n If the problem persists, please let us know at\n <a href=\"mailto:info@archive.org\">info@archive.org</a>.`,\n );\n\n private static readonly QUERY_ERROR_DETAILS_MESSAGE = msg('Error details:');\n\n @property({ type: String }) placeholderType: PlaceholderType = null;\n\n @property({ type: Boolean }) isMobileView?: false;\n\n @property({ type: Boolean }) isCollection?: false;\n\n @property({ type: String }) detailMessage?: string = '';\n\n render() {\n return this.placeholderType ? html`${this.placeholderTemplate}` : nothing;\n }\n\n private get placeholderTemplate(): TemplateResult {\n return html`\n <div\n class=\"placeholder ${this.placeholderType} ${this.isMobileView\n ? 'mobile'\n : 'desktop'}\"\n >\n ${choose(this.placeholderType, [\n ['empty-query', () => this.emptyQueryTemplate],\n ['empty-collection', () => this.emptyCollectionTemplate],\n ['no-results', () => this.noResultsTemplate],\n ['query-error', () => this.queryErrorTemplate],\n ['collection-error', () => this.collectionErrorTemplate],\n ])}\n </div>\n `;\n }\n\n private get emptyQueryTemplate(): TemplateResult {\n // Added data-testid for Playwright testing\n return html`\n <h2 class=\"title\" data-testid=\"empty-query-text-msg\">\n ${EmptyPlaceholder.MESSAGE_EMPTY_QUERY}\n </h2>\n <div>${emptyQueryIcon}</div>\n `;\n }\n\n private get emptyCollectionTemplate(): TemplateResult {\n // Added data-testid for Playwright testing\n return html`\n <h2 class=\"title\" data-testid=\"empty-collection-text-msg\">\n ${EmptyPlaceholder.MESSAGE_NO_VIEWABLE_MEMBERS}\n </h2>\n <div>${nullResultIcon}</div>\n `;\n }\n\n private get noResultsTemplate(): TemplateResult {\n // Added data-testid for Playwright testing\n return html`\n <h2 class=\"title\" data-testid=\"empty-results-text-msg\">\n ${this.isCollection\n ? EmptyPlaceholder.MESSAGE_NO_COLLECTION_RESULTS\n : EmptyPlaceholder.MESSAGE_NO_SEARCH_RESULTS}\n </h2>\n <div>${nullResultIcon}</div>\n `;\n }\n\n private get queryErrorTemplate(): TemplateResult {\n // Added data-testid for Playwright testing\n return html`\n <h2 class=\"title\" data-testid=\"error-query-text-msg\">\n ${EmptyPlaceholder.MESSAGE_QUERY_ERROR}\n </h2>\n <div>${nullResultIcon}</div>\n <p class=\"error-details\">\n ${EmptyPlaceholder.QUERY_ERROR_DETAILS_MESSAGE} ${this.detailMessage}\n </p>\n `;\n }\n\n private get collectionErrorTemplate(): TemplateResult {\n // Added data-testid for Playwright testing\n return html`\n <h2 class=\"title\" data-testid=\"error-collection-text-msg\">\n ${EmptyPlaceholder.MESSAGE_COLLECTION_ERROR}\n </h2>\n <div>${nullResultIcon}</div>\n <p class=\"error-details\">\n ${EmptyPlaceholder.QUERY_ERROR_DETAILS_MESSAGE} ${this.detailMessage}\n </p>\n `;\n }\n\n static get styles(): CSSResultGroup {\n return css`\n :host {\n text-align: center;\n width: 100%;\n }\n\n a {\n text-decoration: none;\n }\n a:link {\n color: var(--ia-theme-link-color, #4b64ff);\n }\n a:hover {\n text-decoration: underline;\n }\n\n .placeholder {\n display: block;\n }\n\n .desktop svg {\n max-height: 40rem;\n }\n .desktop .title,\n .desktop .error-details {\n margin: 4rem 0;\n }\n\n .mobile svg {\n max-height: 20rem;\n }\n .mobile .title,\n .mobile .error-details {\n margin: 2rem 0.5;\n }\n\n .error-details {\n font-size: 1.2rem;\n word-break: break-word;\n }\n `;\n }\n}\n"]}
@@ -1,43 +1,43 @@
1
- import { LitElement, CSSResultGroup, TemplateResult } from 'lit';
2
- import type { ModalManagerInterface } from '@internetarchive/modal-manager';
3
- import type { AnalyticsManagerInterface } from '@internetarchive/analytics-manager';
4
- export declare class ExpandedDatePicker extends LitElement {
5
- minDate?: string;
6
- maxDate?: string;
7
- minSelectedDate?: string;
8
- maxSelectedDate?: string;
9
- buckets?: number[];
10
- modalManager?: ModalManagerInterface;
11
- analyticsHandler?: AnalyticsManagerInterface;
12
- render(): TemplateResult;
13
- connectedCallback(): void;
14
- disconnectedCallback(): void;
15
- /**
16
- * Add an event listener to close the date picker modal when the Esc key is pressed
17
- */
18
- private setupEscapeListener;
19
- /**
20
- * Remove the Esc key listener that was previously added
21
- */
22
- private removeEscapeListener;
23
- /**
24
- * Closes the modal dialog if the given event is pressing the Esc key.
25
- * Arrow function to ensure `this` remains bound to the current component.
26
- */
27
- private boundEscapeListener;
28
- /**
29
- * When the histogram is updated, keep track of the newly selected date range.
30
- * We don't commit to the new range until the apply button is clicked.
31
- */
32
- private histogramDateRangeUpdated;
33
- /**
34
- * When the Apply button is clicked, emit the current date range and close the modal.
35
- */
36
- private applyBtnClicked;
37
- /**
38
- * Closes the modal associated with this component (if it exists) and dispatches a
39
- * modalClosed event.
40
- */
41
- private closeModal;
42
- static get styles(): CSSResultGroup;
43
- }
1
+ import { LitElement, CSSResultGroup, TemplateResult } from 'lit';
2
+ import type { ModalManagerInterface } from '@internetarchive/modal-manager';
3
+ import type { AnalyticsManagerInterface } from '@internetarchive/analytics-manager';
4
+ export declare class ExpandedDatePicker extends LitElement {
5
+ minDate?: string;
6
+ maxDate?: string;
7
+ minSelectedDate?: string;
8
+ maxSelectedDate?: string;
9
+ buckets?: number[];
10
+ modalManager?: ModalManagerInterface;
11
+ analyticsHandler?: AnalyticsManagerInterface;
12
+ render(): TemplateResult;
13
+ connectedCallback(): void;
14
+ disconnectedCallback(): void;
15
+ /**
16
+ * Add an event listener to close the date picker modal when the Esc key is pressed
17
+ */
18
+ private setupEscapeListener;
19
+ /**
20
+ * Remove the Esc key listener that was previously added
21
+ */
22
+ private removeEscapeListener;
23
+ /**
24
+ * Closes the modal dialog if the given event is pressing the Esc key.
25
+ * Arrow function to ensure `this` remains bound to the current component.
26
+ */
27
+ private boundEscapeListener;
28
+ /**
29
+ * When the histogram is updated, keep track of the newly selected date range.
30
+ * We don't commit to the new range until the apply button is clicked.
31
+ */
32
+ private histogramDateRangeUpdated;
33
+ /**
34
+ * When the Apply button is clicked, emit the current date range and close the modal.
35
+ */
36
+ private applyBtnClicked;
37
+ /**
38
+ * Closes the modal associated with this component (if it exists) and dispatches a
39
+ * modalClosed event.
40
+ */
41
+ private closeModal;
42
+ static get styles(): CSSResultGroup;
43
+ }
@@ -1,22 +1,22 @@
1
- import { __decorate } from "tslib";
2
- import { css, html, LitElement } from 'lit';
3
- import { customElement, property } from 'lit/decorators.js';
4
- import { analyticsActions, analyticsCategories, } from './utils/analytics-events';
5
- let ExpandedDatePicker = class ExpandedDatePicker extends LitElement {
6
- constructor() {
7
- super(...arguments);
8
- /**
9
- * Closes the modal dialog if the given event is pressing the Esc key.
10
- * Arrow function to ensure `this` remains bound to the current component.
11
- */
12
- this.boundEscapeListener = (e) => {
13
- if (e.key === 'Escape') {
14
- this.closeModal();
15
- }
16
- };
17
- }
18
- render() {
19
- var _a, _b;
1
+ import { __decorate } from "tslib";
2
+ import { css, html, LitElement } from 'lit';
3
+ import { customElement, property } from 'lit/decorators.js';
4
+ import { analyticsActions, analyticsCategories, } from './utils/analytics-events';
5
+ let ExpandedDatePicker = class ExpandedDatePicker extends LitElement {
6
+ constructor() {
7
+ super(...arguments);
8
+ /**
9
+ * Closes the modal dialog if the given event is pressing the Esc key.
10
+ * Arrow function to ensure `this` remains bound to the current component.
11
+ */
12
+ this.boundEscapeListener = (e) => {
13
+ if (e.key === 'Escape') {
14
+ this.closeModal();
15
+ }
16
+ };
17
+ }
18
+ render() {
19
+ var _a, _b;
20
20
  return html `
21
21
  <div id="container">
22
22
  <histogram-date-range
@@ -42,68 +42,68 @@ let ExpandedDatePicker = class ExpandedDatePicker extends LitElement {
42
42
  </button>
43
43
  </histogram-date-range>
44
44
  </div>
45
- `;
46
- }
47
- connectedCallback() {
48
- var _a;
49
- (_a = super.connectedCallback) === null || _a === void 0 ? void 0 : _a.call(this);
50
- this.setupEscapeListener();
51
- }
52
- disconnectedCallback() {
53
- var _a;
54
- (_a = super.disconnectedCallback) === null || _a === void 0 ? void 0 : _a.call(this);
55
- this.removeEscapeListener();
56
- }
57
- /**
58
- * Add an event listener to close the date picker modal when the Esc key is pressed
59
- */
60
- setupEscapeListener() {
61
- document.addEventListener('keydown', this.boundEscapeListener);
62
- }
63
- /**
64
- * Remove the Esc key listener that was previously added
65
- */
66
- removeEscapeListener() {
67
- document.removeEventListener('keydown', this.boundEscapeListener);
68
- }
69
- /**
70
- * When the histogram is updated, keep track of the newly selected date range.
71
- * We don't commit to the new range until the apply button is clicked.
72
- */
73
- histogramDateRangeUpdated(e) {
74
- this.minSelectedDate = e.detail.minDate;
75
- this.maxSelectedDate = e.detail.maxDate;
76
- }
77
- /**
78
- * When the Apply button is clicked, emit the current date range and close the modal.
79
- */
80
- applyBtnClicked() {
81
- var _a;
82
- const event = new CustomEvent('histogramDateRangeApplied', {
83
- detail: {
84
- minDate: this.minSelectedDate,
85
- maxDate: this.maxSelectedDate,
86
- },
87
- });
88
- this.dispatchEvent(event);
89
- this.closeModal();
90
- (_a = this.analyticsHandler) === null || _a === void 0 ? void 0 : _a.sendEvent({
91
- category: analyticsCategories.default,
92
- action: analyticsActions.histogramChangedFromModal,
93
- label: window.location.href,
94
- });
95
- }
96
- /**
97
- * Closes the modal associated with this component (if it exists) and dispatches a
98
- * modalClosed event.
99
- */
100
- closeModal() {
101
- if (this.modalManager) {
102
- this.modalManager.closeModal();
103
- this.dispatchEvent(new CustomEvent('modalClosed'));
104
- }
105
- }
106
- static get styles() {
45
+ `;
46
+ }
47
+ connectedCallback() {
48
+ var _a;
49
+ (_a = super.connectedCallback) === null || _a === void 0 ? void 0 : _a.call(this);
50
+ this.setupEscapeListener();
51
+ }
52
+ disconnectedCallback() {
53
+ var _a;
54
+ (_a = super.disconnectedCallback) === null || _a === void 0 ? void 0 : _a.call(this);
55
+ this.removeEscapeListener();
56
+ }
57
+ /**
58
+ * Add an event listener to close the date picker modal when the Esc key is pressed
59
+ */
60
+ setupEscapeListener() {
61
+ document.addEventListener('keydown', this.boundEscapeListener);
62
+ }
63
+ /**
64
+ * Remove the Esc key listener that was previously added
65
+ */
66
+ removeEscapeListener() {
67
+ document.removeEventListener('keydown', this.boundEscapeListener);
68
+ }
69
+ /**
70
+ * When the histogram is updated, keep track of the newly selected date range.
71
+ * We don't commit to the new range until the apply button is clicked.
72
+ */
73
+ histogramDateRangeUpdated(e) {
74
+ this.minSelectedDate = e.detail.minDate;
75
+ this.maxSelectedDate = e.detail.maxDate;
76
+ }
77
+ /**
78
+ * When the Apply button is clicked, emit the current date range and close the modal.
79
+ */
80
+ applyBtnClicked() {
81
+ var _a;
82
+ const event = new CustomEvent('histogramDateRangeApplied', {
83
+ detail: {
84
+ minDate: this.minSelectedDate,
85
+ maxDate: this.maxSelectedDate,
86
+ },
87
+ });
88
+ this.dispatchEvent(event);
89
+ this.closeModal();
90
+ (_a = this.analyticsHandler) === null || _a === void 0 ? void 0 : _a.sendEvent({
91
+ category: analyticsCategories.default,
92
+ action: analyticsActions.histogramChangedFromModal,
93
+ label: window.location.href,
94
+ });
95
+ }
96
+ /**
97
+ * Closes the modal associated with this component (if it exists) and dispatches a
98
+ * modalClosed event.
99
+ */
100
+ closeModal() {
101
+ if (this.modalManager) {
102
+ this.modalManager.closeModal();
103
+ this.dispatchEvent(new CustomEvent('modalClosed'));
104
+ }
105
+ }
106
+ static get styles() {
107
107
  return css `
108
108
  #container {
109
109
  display: flex;
@@ -126,32 +126,32 @@ let ExpandedDatePicker = class ExpandedDatePicker extends LitElement {
126
126
  color: white;
127
127
  cursor: pointer;
128
128
  }
129
- `;
130
- }
131
- };
132
- __decorate([
133
- property({ type: String })
134
- ], ExpandedDatePicker.prototype, "minDate", void 0);
135
- __decorate([
136
- property({ type: String })
137
- ], ExpandedDatePicker.prototype, "maxDate", void 0);
138
- __decorate([
139
- property({ type: String })
140
- ], ExpandedDatePicker.prototype, "minSelectedDate", void 0);
141
- __decorate([
142
- property({ type: String })
143
- ], ExpandedDatePicker.prototype, "maxSelectedDate", void 0);
144
- __decorate([
145
- property({ type: Array })
146
- ], ExpandedDatePicker.prototype, "buckets", void 0);
147
- __decorate([
148
- property({ type: Object, attribute: false })
149
- ], ExpandedDatePicker.prototype, "modalManager", void 0);
150
- __decorate([
151
- property({ type: Object, attribute: false })
152
- ], ExpandedDatePicker.prototype, "analyticsHandler", void 0);
153
- ExpandedDatePicker = __decorate([
154
- customElement('expanded-date-picker')
155
- ], ExpandedDatePicker);
156
- export { ExpandedDatePicker };
129
+ `;
130
+ }
131
+ };
132
+ __decorate([
133
+ property({ type: String })
134
+ ], ExpandedDatePicker.prototype, "minDate", void 0);
135
+ __decorate([
136
+ property({ type: String })
137
+ ], ExpandedDatePicker.prototype, "maxDate", void 0);
138
+ __decorate([
139
+ property({ type: String })
140
+ ], ExpandedDatePicker.prototype, "minSelectedDate", void 0);
141
+ __decorate([
142
+ property({ type: String })
143
+ ], ExpandedDatePicker.prototype, "maxSelectedDate", void 0);
144
+ __decorate([
145
+ property({ type: Array })
146
+ ], ExpandedDatePicker.prototype, "buckets", void 0);
147
+ __decorate([
148
+ property({ type: Object, attribute: false })
149
+ ], ExpandedDatePicker.prototype, "modalManager", void 0);
150
+ __decorate([
151
+ property({ type: Object, attribute: false })
152
+ ], ExpandedDatePicker.prototype, "analyticsHandler", void 0);
153
+ ExpandedDatePicker = __decorate([
154
+ customElement('expanded-date-picker')
155
+ ], ExpandedDatePicker);
156
+ export { ExpandedDatePicker };
157
157
  //# sourceMappingURL=expanded-date-picker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"expanded-date-picker.js","sourceRoot":"","sources":["../../src/expanded-date-picker.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, LitElement, CSSResultGroup, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport type { ModalManagerInterface } from '@internetarchive/modal-manager';\nimport type { AnalyticsManagerInterface } from '@internetarchive/analytics-manager';\nimport {\n analyticsActions,\n analyticsCategories,\n} from './utils/analytics-events';\n\n@customElement('expanded-date-picker')\nexport class ExpandedDatePicker extends LitElement {\n @property({ type: String }) minDate?: string;\n\n @property({ type: String }) maxDate?: string;\n\n @property({ type: String }) minSelectedDate?: string;\n\n @property({ type: String }) maxSelectedDate?: string;\n\n @property({ type: Array }) buckets?: number[];\n\n @property({ type: Object, attribute: false })\n modalManager?: ModalManagerInterface;\n\n @property({ type: Object, attribute: false })\n analyticsHandler?: AnalyticsManagerInterface;\n\n render(): TemplateResult {\n return html`\n <div id=\"container\">\n <histogram-date-range\n id=\"date-picker\"\n .minDate=${this.minDate}\n .maxDate=${this.maxDate}\n .minSelectedDate=${this.minSelectedDate ?? this.minDate}\n .maxSelectedDate=${this.maxSelectedDate ?? this.maxDate}\n .updateDelay=${0}\n updateWhileFocused\n missingDataMessage=\"...\"\n .width=${560}\n .height=${120}\n .bins=${this.buckets}\n @histogramDateRangeUpdated=${this.histogramDateRangeUpdated}\n >\n <button\n id=\"apply-btn\"\n slot=\"inputs-right-side\"\n @click=${this.applyBtnClicked}\n >\n Apply date range\n </button>\n </histogram-date-range>\n </div>\n `;\n }\n\n connectedCallback(): void {\n super.connectedCallback?.();\n this.setupEscapeListener();\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback?.();\n this.removeEscapeListener();\n }\n\n /**\n * Add an event listener to close the date picker modal when the Esc key is pressed\n */\n private setupEscapeListener() {\n document.addEventListener('keydown', this.boundEscapeListener);\n }\n\n /**\n * Remove the Esc key listener that was previously added\n */\n private removeEscapeListener() {\n document.removeEventListener('keydown', this.boundEscapeListener);\n }\n\n /**\n * Closes the modal dialog if the given event is pressing the Esc key.\n * Arrow function to ensure `this` remains bound to the current component.\n */\n private boundEscapeListener = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n this.closeModal();\n }\n };\n\n /**\n * When the histogram is updated, keep track of the newly selected date range.\n * We don't commit to the new range until the apply button is clicked.\n */\n private histogramDateRangeUpdated(\n e: CustomEvent<{\n minDate: string;\n maxDate: string;\n }>\n ): void {\n this.minSelectedDate = e.detail.minDate;\n this.maxSelectedDate = e.detail.maxDate;\n }\n\n /**\n * When the Apply button is clicked, emit the current date range and close the modal.\n */\n private applyBtnClicked(): void {\n const event = new CustomEvent('histogramDateRangeApplied', {\n detail: {\n minDate: this.minSelectedDate,\n maxDate: this.maxSelectedDate,\n },\n });\n this.dispatchEvent(event);\n this.closeModal();\n\n this.analyticsHandler?.sendEvent({\n category: analyticsCategories.default,\n action: analyticsActions.histogramChangedFromModal,\n label: window.location.href,\n });\n }\n\n /**\n * Closes the modal associated with this component (if it exists) and dispatches a\n * modalClosed event.\n */\n private closeModal(): void {\n if (this.modalManager) {\n this.modalManager.closeModal();\n this.dispatchEvent(new CustomEvent('modalClosed'));\n }\n }\n\n static get styles(): CSSResultGroup {\n return css`\n #container {\n display: flex;\n justify-content: center;\n padding: 40px 10px 10px;\n overflow: hidden;\n }\n\n #date-picker {\n --histogramDateRangeInputWidth: 50px;\n --histogramDateRangeInputRowMargin: 5px 0 0 0;\n }\n\n #apply-btn {\n margin: 0 0 0 5px;\n padding: 8px 10px;\n border: 0;\n border-radius: 4px;\n background: var(--primaryButtonBGColor, #194880);\n color: white;\n cursor: pointer;\n }\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"expanded-date-picker.js","sourceRoot":"","sources":["../../src/expanded-date-picker.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, LitElement, CSSResultGroup, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport type { ModalManagerInterface } from '@internetarchive/modal-manager';\nimport type { AnalyticsManagerInterface } from '@internetarchive/analytics-manager';\nimport {\n analyticsActions,\n analyticsCategories,\n} from './utils/analytics-events';\n\n@customElement('expanded-date-picker')\nexport class ExpandedDatePicker extends LitElement {\n @property({ type: String }) minDate?: string;\n\n @property({ type: String }) maxDate?: string;\n\n @property({ type: String }) minSelectedDate?: string;\n\n @property({ type: String }) maxSelectedDate?: string;\n\n @property({ type: Array }) buckets?: number[];\n\n @property({ type: Object, attribute: false })\n modalManager?: ModalManagerInterface;\n\n @property({ type: Object, attribute: false })\n analyticsHandler?: AnalyticsManagerInterface;\n\n render(): TemplateResult {\n return html`\n <div id=\"container\">\n <histogram-date-range\n id=\"date-picker\"\n .minDate=${this.minDate}\n .maxDate=${this.maxDate}\n .minSelectedDate=${this.minSelectedDate ?? this.minDate}\n .maxSelectedDate=${this.maxSelectedDate ?? this.maxDate}\n .updateDelay=${0}\n updateWhileFocused\n missingDataMessage=\"...\"\n .width=${560}\n .height=${120}\n .bins=${this.buckets}\n @histogramDateRangeUpdated=${this.histogramDateRangeUpdated}\n >\n <button\n id=\"apply-btn\"\n slot=\"inputs-right-side\"\n @click=${this.applyBtnClicked}\n >\n Apply date range\n </button>\n </histogram-date-range>\n </div>\n `;\n }\n\n connectedCallback(): void {\n super.connectedCallback?.();\n this.setupEscapeListener();\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback?.();\n this.removeEscapeListener();\n }\n\n /**\n * Add an event listener to close the date picker modal when the Esc key is pressed\n */\n private setupEscapeListener() {\n document.addEventListener('keydown', this.boundEscapeListener);\n }\n\n /**\n * Remove the Esc key listener that was previously added\n */\n private removeEscapeListener() {\n document.removeEventListener('keydown', this.boundEscapeListener);\n }\n\n /**\n * Closes the modal dialog if the given event is pressing the Esc key.\n * Arrow function to ensure `this` remains bound to the current component.\n */\n private boundEscapeListener = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n this.closeModal();\n }\n };\n\n /**\n * When the histogram is updated, keep track of the newly selected date range.\n * We don't commit to the new range until the apply button is clicked.\n */\n private histogramDateRangeUpdated(\n e: CustomEvent<{\n minDate: string;\n maxDate: string;\n }>,\n ): void {\n this.minSelectedDate = e.detail.minDate;\n this.maxSelectedDate = e.detail.maxDate;\n }\n\n /**\n * When the Apply button is clicked, emit the current date range and close the modal.\n */\n private applyBtnClicked(): void {\n const event = new CustomEvent('histogramDateRangeApplied', {\n detail: {\n minDate: this.minSelectedDate,\n maxDate: this.maxSelectedDate,\n },\n });\n this.dispatchEvent(event);\n this.closeModal();\n\n this.analyticsHandler?.sendEvent({\n category: analyticsCategories.default,\n action: analyticsActions.histogramChangedFromModal,\n label: window.location.href,\n });\n }\n\n /**\n * Closes the modal associated with this component (if it exists) and dispatches a\n * modalClosed event.\n */\n private closeModal(): void {\n if (this.modalManager) {\n this.modalManager.closeModal();\n this.dispatchEvent(new CustomEvent('modalClosed'));\n }\n }\n\n static get styles(): CSSResultGroup {\n return css`\n #container {\n display: flex;\n justify-content: center;\n padding: 40px 10px 10px;\n overflow: hidden;\n }\n\n #date-picker {\n --histogramDateRangeInputWidth: 50px;\n --histogramDateRangeInputRowMargin: 5px 0 0 0;\n }\n\n #apply-btn {\n margin: 0 0 0 5px;\n padding: 8px 10px;\n border: 0;\n border-radius: 4px;\n background: var(--primaryButtonBGColor, #194880);\n color: white;\n cursor: pointer;\n }\n `;\n }\n}\n"]}