@internetarchive/collection-browser 2.5.2 → 2.6.1

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 (308) hide show
  1. package/.editorconfig +29 -29
  2. package/.husky/pre-commit +4 -4
  3. package/LICENSE +661 -661
  4. package/README.md +83 -83
  5. package/dist/index.d.ts +12 -12
  6. package/dist/index.js +12 -12
  7. package/dist/src/app-root.d.ts +91 -91
  8. package/dist/src/app-root.js +487 -487
  9. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  10. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  11. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  12. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  13. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  14. package/dist/src/assets/img/icons/chevron.js +2 -2
  15. package/dist/src/assets/img/icons/contract.d.ts +2 -2
  16. package/dist/src/assets/img/icons/contract.js +2 -2
  17. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  18. package/dist/src/assets/img/icons/empty-query.js +2 -2
  19. package/dist/src/assets/img/icons/expand.d.ts +2 -2
  20. package/dist/src/assets/img/icons/expand.js +2 -2
  21. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  22. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  23. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  24. package/dist/src/assets/img/icons/eye.js +2 -2
  25. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  26. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  27. package/dist/src/assets/img/icons/favorite-unfilled.d.ts +1 -1
  28. package/dist/src/assets/img/icons/favorite-unfilled.js +2 -2
  29. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  30. package/dist/src/assets/img/icons/login-required.js +2 -2
  31. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  32. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  33. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  34. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  35. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  36. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  37. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  38. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  39. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  40. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  41. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  42. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  43. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  44. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  45. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  46. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  47. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
  48. package/dist/src/assets/img/icons/mediatype/search.js +2 -2
  49. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  50. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  51. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  52. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  53. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  54. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  55. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  56. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  57. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  58. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  59. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  60. package/dist/src/assets/img/icons/null-result.js +2 -2
  61. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  62. package/dist/src/assets/img/icons/restricted.js +2 -2
  63. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  64. package/dist/src/assets/img/icons/reviews.js +2 -2
  65. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  66. package/dist/src/assets/img/icons/upload.js +2 -2
  67. package/dist/src/assets/img/icons/views.d.ts +1 -1
  68. package/dist/src/assets/img/icons/views.js +2 -2
  69. package/dist/src/circular-activity-indicator.d.ts +5 -5
  70. package/dist/src/circular-activity-indicator.js +17 -17
  71. package/dist/src/collection-browser.d.ts +564 -564
  72. package/dist/src/collection-browser.js +1579 -1569
  73. package/dist/src/collection-browser.js.map +1 -1
  74. package/dist/src/collection-facets/facet-row.d.ts +30 -30
  75. package/dist/src/collection-facets/facet-row.js +120 -117
  76. package/dist/src/collection-facets/facet-row.js.map +1 -1
  77. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  78. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  79. package/dist/src/collection-facets/facets-template.d.ts +13 -13
  80. package/dist/src/collection-facets/facets-template.js +45 -43
  81. package/dist/src/collection-facets/facets-template.js.map +1 -1
  82. package/dist/src/collection-facets/more-facets-content.d.ts +106 -106
  83. package/dist/src/collection-facets/more-facets-content.js +407 -407
  84. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  85. package/dist/src/collection-facets/more-facets-pagination.js +196 -196
  86. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  87. package/dist/src/collection-facets/toggle-switch.js +94 -94
  88. package/dist/src/collection-facets.d.ts +103 -103
  89. package/dist/src/collection-facets.js +534 -516
  90. package/dist/src/collection-facets.js.map +1 -1
  91. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +241 -241
  92. package/dist/src/data-source/collection-browser-data-source-interface.js +1 -1
  93. package/dist/src/data-source/collection-browser-data-source.d.ts +378 -378
  94. package/dist/src/data-source/collection-browser-data-source.js +984 -985
  95. package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
  96. package/dist/src/data-source/collection-browser-query-state.d.ts +43 -43
  97. package/dist/src/data-source/collection-browser-query-state.js +1 -1
  98. package/dist/src/data-source/models.d.ts +28 -28
  99. package/dist/src/data-source/models.js +8 -8
  100. package/dist/src/empty-placeholder.d.ts +23 -23
  101. package/dist/src/empty-placeholder.js +92 -79
  102. package/dist/src/empty-placeholder.js.map +1 -1
  103. package/dist/src/expanded-date-picker.d.ts +43 -43
  104. package/dist/src/expanded-date-picker.js +109 -109
  105. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  106. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  107. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  108. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  109. package/dist/src/manage/manage-bar.d.ts +30 -30
  110. package/dist/src/manage/manage-bar.js +61 -61
  111. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  112. package/dist/src/mediatype/mediatype-config.js +91 -91
  113. package/dist/src/models.d.ts +211 -209
  114. package/dist/src/models.js +381 -381
  115. package/dist/src/models.js.map +1 -1
  116. package/dist/src/restoration-state-handler.d.ts +70 -70
  117. package/dist/src/restoration-state-handler.js +357 -357
  118. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  119. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  120. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  121. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  122. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  123. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  124. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  125. package/dist/src/sort-filter-bar/img/list.js +2 -2
  126. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  127. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  128. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  129. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  130. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  131. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  132. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  133. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  134. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  135. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  136. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +223 -222
  137. package/dist/src/sort-filter-bar/sort-filter-bar.js +700 -696
  138. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  139. package/dist/src/styles/ia-button.d.ts +2 -2
  140. package/dist/src/styles/ia-button.js +16 -16
  141. package/dist/src/styles/item-image-styles.d.ts +8 -8
  142. package/dist/src/styles/item-image-styles.js +9 -9
  143. package/dist/src/styles/sr-only.d.ts +1 -1
  144. package/dist/src/styles/sr-only.js +2 -2
  145. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  146. package/dist/src/tiles/base-tile-component.js +63 -63
  147. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  148. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  149. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  150. package/dist/src/tiles/grid/account-tile.js +72 -72
  151. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  152. package/dist/src/tiles/grid/collection-tile.js +80 -80
  153. package/dist/src/tiles/grid/item-tile.d.ts +30 -30
  154. package/dist/src/tiles/grid/item-tile.js +149 -149
  155. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  156. package/dist/src/tiles/grid/search-tile.js +51 -51
  157. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  158. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  159. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  160. package/dist/src/tiles/grid/tile-stats.js +53 -53
  161. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  162. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  163. package/dist/src/tiles/hover/tile-hover-pane.d.ts +18 -18
  164. package/dist/src/tiles/hover/tile-hover-pane.js +69 -69
  165. package/dist/src/tiles/image-block.d.ts +17 -17
  166. package/dist/src/tiles/image-block.js +73 -73
  167. package/dist/src/tiles/item-image.d.ts +39 -39
  168. package/dist/src/tiles/item-image.js +154 -154
  169. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  170. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  171. package/dist/src/tiles/list/tile-list-compact.d.ts +15 -15
  172. package/dist/src/tiles/list/tile-list-compact.js +114 -114
  173. package/dist/src/tiles/list/tile-list.d.ts +50 -50
  174. package/dist/src/tiles/list/tile-list.js +315 -315
  175. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  176. package/dist/src/tiles/mediatype-icon.js +47 -47
  177. package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
  178. package/dist/src/tiles/overlay/icon-overlay.js +40 -40
  179. package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
  180. package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
  181. package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
  182. package/dist/src/tiles/overlay/text-overlay.js +42 -42
  183. package/dist/src/tiles/review-block.d.ts +12 -12
  184. package/dist/src/tiles/review-block.js +56 -56
  185. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  186. package/dist/src/tiles/text-snippet-block.js +73 -73
  187. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  188. package/dist/src/tiles/tile-dispatcher.js +229 -229
  189. package/dist/src/tiles/tile-display-value-provider.d.ts +47 -47
  190. package/dist/src/tiles/tile-display-value-provider.js +94 -94
  191. package/dist/src/utils/analytics-events.d.ts +28 -28
  192. package/dist/src/utils/analytics-events.js +30 -30
  193. package/dist/src/utils/array-equals.d.ts +4 -4
  194. package/dist/src/utils/array-equals.js +10 -10
  195. package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -11
  196. package/dist/src/utils/collapse-repeated-quotes.js +13 -13
  197. package/dist/src/utils/facet-utils.d.ts +83 -83
  198. package/dist/src/utils/facet-utils.js +145 -145
  199. package/dist/src/utils/format-count.d.ts +7 -7
  200. package/dist/src/utils/format-count.js +76 -76
  201. package/dist/src/utils/format-date.d.ts +2 -2
  202. package/dist/src/utils/format-date.js +25 -25
  203. package/dist/src/utils/format-unit-size.d.ts +2 -2
  204. package/dist/src/utils/format-unit-size.js +33 -33
  205. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  206. package/dist/src/utils/local-date-from-utc.js +15 -15
  207. package/dist/src/utils/log.d.ts +7 -7
  208. package/dist/src/utils/log.js +15 -15
  209. package/dist/src/utils/resolve-mediatype.d.ts +8 -8
  210. package/dist/src/utils/resolve-mediatype.js +23 -23
  211. package/dist/src/utils/sha1.d.ts +2 -2
  212. package/dist/src/utils/sha1.js +8 -8
  213. package/dist/test/collection-browser.test.d.ts +1 -1
  214. package/dist/test/collection-browser.test.js +1294 -1294
  215. package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
  216. package/dist/test/collection-facets/facet-row.test.js +227 -227
  217. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  218. package/dist/test/collection-facets/facets-template.test.js +91 -91
  219. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  220. package/dist/test/collection-facets/more-facets-content.test.js +141 -141
  221. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  222. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  223. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  224. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  225. package/dist/test/collection-facets.test.d.ts +2 -2
  226. package/dist/test/collection-facets.test.js +652 -652
  227. package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -1
  228. package/dist/test/data-source/collection-browser-data-source.test.js +89 -89
  229. package/dist/test/empty-placeholder.test.d.ts +1 -1
  230. package/dist/test/empty-placeholder.test.js +63 -63
  231. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  232. package/dist/test/expanded-date-picker.test.js +95 -95
  233. package/dist/test/icon-overlay.test.d.ts +1 -1
  234. package/dist/test/icon-overlay.test.js +24 -24
  235. package/dist/test/image-block.test.d.ts +1 -1
  236. package/dist/test/image-block.test.js +48 -48
  237. package/dist/test/item-image.test.d.ts +1 -1
  238. package/dist/test/item-image.test.js +85 -85
  239. package/dist/test/manage/manage-bar.test.d.ts +1 -1
  240. package/dist/test/manage/manage-bar.test.js +81 -81
  241. package/dist/test/mediatype-config.test.d.ts +1 -1
  242. package/dist/test/mediatype-config.test.js +16 -16
  243. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  244. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  245. package/dist/test/mocks/mock-search-responses.d.ts +25 -25
  246. package/dist/test/mocks/mock-search-responses.js +942 -942
  247. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  248. package/dist/test/mocks/mock-search-service.js +54 -54
  249. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  250. package/dist/test/restoration-state-handler.test.js +270 -270
  251. package/dist/test/review-block.test.d.ts +1 -1
  252. package/dist/test/review-block.test.js +44 -44
  253. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  254. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  255. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  256. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  257. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  258. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +426 -426
  259. package/dist/test/text-overlay.test.d.ts +1 -1
  260. package/dist/test/text-overlay.test.js +48 -48
  261. package/dist/test/text-snippet-block.test.d.ts +1 -1
  262. package/dist/test/text-snippet-block.test.js +57 -57
  263. package/dist/test/tile-stats.test.d.ts +1 -1
  264. package/dist/test/tile-stats.test.js +81 -81
  265. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  266. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  267. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  268. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  269. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  270. package/dist/test/tiles/grid/item-tile.test.js +312 -312
  271. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  272. package/dist/test/tiles/grid/search-tile.test.js +51 -51
  273. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  274. package/dist/test/tiles/hover/hover-pane-controller.test.js +259 -259
  275. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  276. package/dist/test/tiles/hover/tile-hover-pane.test.js +56 -56
  277. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  278. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  279. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  280. package/dist/test/tiles/list/tile-list.test.js +297 -297
  281. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  282. package/dist/test/tiles/tile-dispatcher.test.js +100 -100
  283. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  284. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  285. package/dist/test/utils/array-equals.test.d.ts +1 -1
  286. package/dist/test/utils/array-equals.test.js +26 -26
  287. package/dist/test/utils/format-count.test.d.ts +1 -1
  288. package/dist/test/utils/format-count.test.js +23 -23
  289. package/dist/test/utils/format-date.test.d.ts +1 -1
  290. package/dist/test/utils/format-date.test.js +17 -17
  291. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  292. package/dist/test/utils/format-unit-size.test.js +17 -17
  293. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  294. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  295. package/local.archive.org.cert +86 -86
  296. package/local.archive.org.key +27 -27
  297. package/package.json +1 -1
  298. package/renovate.json +6 -6
  299. package/src/collection-browser.ts +26 -10
  300. package/src/collection-facets/facet-row.ts +3 -0
  301. package/src/collection-facets/facets-template.ts +3 -1
  302. package/src/collection-facets.ts +20 -2
  303. package/src/data-source/collection-browser-data-source.ts +1 -5
  304. package/src/empty-placeholder.ts +18 -5
  305. package/src/models.ts +8 -1
  306. package/src/sort-filter-bar/sort-filter-bar.ts +4 -0
  307. package/web-dev-server.config.mjs +30 -30
  308. package/web-test-runner.config.mjs +41 -41
@@ -1,24 +1,24 @@
1
- import { expect } from '@open-wc/testing';
2
- import { formatCount } from '../../src/utils/format-count';
3
- const testCount = 805342;
4
- describe('formatCount', () => {
5
- it('returns blank when undefined number', () => {
6
- expect(formatCount(undefined)).to.equal('');
7
- });
8
- it('returns blank when negative number', () => {
9
- expect(formatCount(testCount * -1)).to.equal('');
10
- });
11
- it('returns long number when no NumberFormat', () => {
12
- expect(formatCount(testCount)).to.equal('805,342');
13
- });
14
- it('returns short number when short NumberFormat', () => {
15
- expect(formatCount(testCount, 'short')).to.equal('805K');
16
- });
17
- it('returns decimal when value of significant digits < 10', () => {
18
- expect(formatCount(testCount * 10, 'short', 'long')).to.equal('8.1 million');
19
- });
20
- it('returns locale formatted number', () => {
21
- expect(formatCount(testCount, 'long', 'long', 'de-DE')).to.equal('805.342');
22
- });
23
- });
1
+ import { expect } from '@open-wc/testing';
2
+ import { formatCount } from '../../src/utils/format-count';
3
+ const testCount = 805342;
4
+ describe('formatCount', () => {
5
+ it('returns blank when undefined number', () => {
6
+ expect(formatCount(undefined)).to.equal('');
7
+ });
8
+ it('returns blank when negative number', () => {
9
+ expect(formatCount(testCount * -1)).to.equal('');
10
+ });
11
+ it('returns long number when no NumberFormat', () => {
12
+ expect(formatCount(testCount)).to.equal('805,342');
13
+ });
14
+ it('returns short number when short NumberFormat', () => {
15
+ expect(formatCount(testCount, 'short')).to.equal('805K');
16
+ });
17
+ it('returns decimal when value of significant digits < 10', () => {
18
+ expect(formatCount(testCount * 10, 'short', 'long')).to.equal('8.1 million');
19
+ });
20
+ it('returns locale formatted number', () => {
21
+ expect(formatCount(testCount, 'long', 'long', 'de-DE')).to.equal('805.342');
22
+ });
23
+ });
24
24
  //# sourceMappingURL=format-count.test.js.map
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,18 +1,18 @@
1
- import { expect } from '@open-wc/testing';
2
- import { formatDate } from '../../src/utils/format-date';
3
- const testDate = new Date(2020, 11, 9);
4
- describe('formatDate', () => {
5
- it('returns blank when undefined date', () => {
6
- expect(formatDate(undefined)).to.equal('');
7
- });
8
- it('returns short date when no DateFormat', () => {
9
- expect(formatDate(testDate)).to.equal('Dec 2020');
10
- });
11
- it('returns long date when long DateFormat', () => {
12
- expect(formatDate(testDate, 'long')).to.equal('Dec 09, 2020');
13
- });
14
- it('returns locale formatted date', () => {
15
- expect(formatDate(testDate, 'long', 'de-DE')).to.equal('09. Dez. 2020');
16
- });
17
- });
1
+ import { expect } from '@open-wc/testing';
2
+ import { formatDate } from '../../src/utils/format-date';
3
+ const testDate = new Date(2020, 11, 9);
4
+ describe('formatDate', () => {
5
+ it('returns blank when undefined date', () => {
6
+ expect(formatDate(undefined)).to.equal('');
7
+ });
8
+ it('returns short date when no DateFormat', () => {
9
+ expect(formatDate(testDate)).to.equal('Dec 2020');
10
+ });
11
+ it('returns long date when long DateFormat', () => {
12
+ expect(formatDate(testDate, 'long')).to.equal('Dec 09, 2020');
13
+ });
14
+ it('returns locale formatted date', () => {
15
+ expect(formatDate(testDate, 'long', 'de-DE')).to.equal('09. Dez. 2020');
16
+ });
17
+ });
18
18
  //# sourceMappingURL=format-date.test.js.map
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,18 +1,18 @@
1
- import { expect } from '@open-wc/testing';
2
- import { nothing } from 'lit';
3
- import { formatUnitSize } from '../../src/utils/format-unit-size';
4
- describe('formatUnitSize', () => {
5
- it('returns blank when undefined number', () => {
6
- expect(formatUnitSize(undefined, 1)).to.equal(nothing);
7
- });
8
- it('returns collection data is in singular form', () => {
9
- expect(formatUnitSize(1025, 1)).to.equal('1 kilobyte');
10
- });
11
- it('return collection size data in kilobytes and plural form', () => {
12
- expect(formatUnitSize(15000, 1)).to.equal('14.6 kilobytes');
13
- });
14
- it('return huge collection size data', () => {
15
- expect(formatUnitSize(454154654134, 1)).to.equal('423 gigabytes');
16
- });
17
- });
1
+ import { expect } from '@open-wc/testing';
2
+ import { nothing } from 'lit';
3
+ import { formatUnitSize } from '../../src/utils/format-unit-size';
4
+ describe('formatUnitSize', () => {
5
+ it('returns blank when undefined number', () => {
6
+ expect(formatUnitSize(undefined, 1)).to.equal(nothing);
7
+ });
8
+ it('returns collection data is in singular form', () => {
9
+ expect(formatUnitSize(1025, 1)).to.equal('1 kilobyte');
10
+ });
11
+ it('return collection size data in kilobytes and plural form', () => {
12
+ expect(formatUnitSize(15000, 1)).to.equal('14.6 kilobytes');
13
+ });
14
+ it('return huge collection size data', () => {
15
+ expect(formatUnitSize(454154654134, 1)).to.equal('423 gigabytes');
16
+ });
17
+ });
18
18
  //# sourceMappingURL=format-unit-size.test.js.map
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,27 +1,27 @@
1
- import { expect } from '@open-wc/testing';
2
- import { localDateFromUTC, isFirstMillisecondOfUTCYear, } from '../../src/utils/local-date-from-utc';
3
- describe('localDateFromUTC', () => {
4
- it('converts dates from UTC to local timezone', async () => {
5
- const date = new Date(1990, 1, 2, 3, 4, 5, 6);
6
- const dateFromUTC = new Date(Date.UTC(1990, 1, 2, 3, 4, 5, 6));
7
- expect(localDateFromUTC(date).toISOString()).to.equal(dateFromUTC.toISOString());
8
- });
9
- });
10
- describe('isFirstMillisecondOfUTCYear', () => {
11
- it('returns true when date is exactly Jan 1 at midnight in UTC', async () => {
12
- const midnightOnNewYearsDay = new Date(2010, 0, 1, 0, 0, 0, 0);
13
- expect(isFirstMillisecondOfUTCYear(midnightOnNewYearsDay)).to.be.true;
14
- });
15
- it('returns false when date is not exactly Jan 1 at midnight in UTC', async () => {
16
- const oneMillisecondTooEarly = new Date(2009, 11, 31, 23, 59, 59, 999);
17
- expect(isFirstMillisecondOfUTCYear(oneMillisecondTooEarly)).to.be.false;
18
- const oneMillisecondTooLate = new Date(2010, 0, 1, 0, 0, 0, 1);
19
- expect(isFirstMillisecondOfUTCYear(oneMillisecondTooLate)).to.be.false;
20
- const middleOfTheYear = new Date(2010, 6, 1, 0, 0, 0, 0);
21
- expect(isFirstMillisecondOfUTCYear(middleOfTheYear)).to.be.false;
22
- });
23
- it('returns false when no date provided', async () => {
24
- expect(isFirstMillisecondOfUTCYear(undefined)).to.be.false;
25
- });
26
- });
1
+ import { expect } from '@open-wc/testing';
2
+ import { localDateFromUTC, isFirstMillisecondOfUTCYear, } from '../../src/utils/local-date-from-utc';
3
+ describe('localDateFromUTC', () => {
4
+ it('converts dates from UTC to local timezone', async () => {
5
+ const date = new Date(1990, 1, 2, 3, 4, 5, 6);
6
+ const dateFromUTC = new Date(Date.UTC(1990, 1, 2, 3, 4, 5, 6));
7
+ expect(localDateFromUTC(date).toISOString()).to.equal(dateFromUTC.toISOString());
8
+ });
9
+ });
10
+ describe('isFirstMillisecondOfUTCYear', () => {
11
+ it('returns true when date is exactly Jan 1 at midnight in UTC', async () => {
12
+ const midnightOnNewYearsDay = new Date(2010, 0, 1, 0, 0, 0, 0);
13
+ expect(isFirstMillisecondOfUTCYear(midnightOnNewYearsDay)).to.be.true;
14
+ });
15
+ it('returns false when date is not exactly Jan 1 at midnight in UTC', async () => {
16
+ const oneMillisecondTooEarly = new Date(2009, 11, 31, 23, 59, 59, 999);
17
+ expect(isFirstMillisecondOfUTCYear(oneMillisecondTooEarly)).to.be.false;
18
+ const oneMillisecondTooLate = new Date(2010, 0, 1, 0, 0, 0, 1);
19
+ expect(isFirstMillisecondOfUTCYear(oneMillisecondTooLate)).to.be.false;
20
+ const middleOfTheYear = new Date(2010, 6, 1, 0, 0, 0, 0);
21
+ expect(isFirstMillisecondOfUTCYear(middleOfTheYear)).to.be.false;
22
+ });
23
+ it('returns false when no date provided', async () => {
24
+ expect(isFirstMillisecondOfUTCYear(undefined)).to.be.false;
25
+ });
26
+ });
27
27
  //# sourceMappingURL=local-date-from-utc.test.js.map
@@ -1,86 +1,86 @@
1
- Certificate:
2
- Data:
3
- Version: 3 (0x2)
4
- Serial Number: 1 (0x1)
5
- Signature Algorithm: sha256WithRSAEncryption
6
- Issuer: CN=devcert
7
- Validity
8
- Not Before: Apr 27 16:27:46 2022 GMT
9
- Not After : Jul 30 16:27:46 2024 GMT
10
- Subject: CN=local.archive.org
11
- Subject Public Key Info:
12
- Public Key Algorithm: rsaEncryption
13
- Public-Key: (2048 bit)
14
- Modulus:
15
- 00:a9:54:ca:34:ff:8b:32:02:39:97:61:bd:f5:12:
16
- 5c:4a:d0:87:2e:d6:42:63:72:ea:b4:90:95:cc:4a:
17
- ef:5a:66:09:9f:1d:08:0d:b2:f4:2e:b3:55:59:9c:
18
- 0f:77:37:1e:d7:a3:5c:b7:3d:81:84:fc:55:af:20:
19
- e7:3c:bd:9e:2b:2b:9e:d1:95:9d:14:90:70:7c:99:
20
- 78:f1:dd:42:2b:fd:87:b9:09:f0:f6:50:c7:90:41:
21
- de:e2:ee:dd:a0:4a:4d:de:20:6a:e8:1b:81:7f:d9:
22
- 17:0d:f5:f2:a1:dc:89:d8:e9:89:9c:ff:40:b7:0e:
23
- bb:16:db:d1:e0:67:5f:24:de:3b:b8:18:b8:a6:dd:
24
- d5:26:8a:2a:a4:f2:03:b1:a8:15:23:31:c9:65:de:
25
- 9b:5a:b0:f0:4f:ef:77:f1:8b:7b:91:95:a0:61:be:
26
- 1f:64:29:c6:2e:2c:03:1b:f0:91:96:b6:ab:fb:11:
27
- b7:1c:41:bc:43:6e:1b:6f:28:88:40:bd:a8:47:28:
28
- 9e:a4:64:31:e0:a5:72:db:09:cb:b0:9e:7a:d5:d0:
29
- 7f:15:15:75:d4:d6:78:41:c9:a1:54:73:48:19:4f:
30
- 72:95:a1:31:b3:4c:81:41:13:43:d9:9b:8c:d0:2e:
31
- 29:09:a2:59:6b:15:6d:5c:93:22:03:f5:72:f0:46:
32
- be:65
33
- Exponent: 65537 (0x10001)
34
- X509v3 extensions:
35
- X509v3 Basic Constraints: critical
36
- CA:FALSE
37
- X509v3 Subject Key Identifier:
38
- E1:20:A8:89:51:79:0C:23:66:20:B7:A5:A4:42:8F:40:7F:7E:C0:CE
39
- X509v3 Authority Key Identifier:
40
- keyid:A8:C7:C5:69:35:49:1B:B6:77:E7:2E:16:5B:B0:75:8C:B7:03:5C:04
41
- DirName:/CN=devcert
42
- serial:DB:1E:4C:08:75:57:8D:4E
43
-
44
- X509v3 Key Usage: critical
45
- Digital Signature, Key Encipherment
46
- X509v3 Extended Key Usage:
47
- TLS Web Server Authentication
48
- X509v3 Subject Alternative Name:
49
- DNS:local.archive.org, DNS:*.local.archive.org
50
- Signature Algorithm: sha256WithRSAEncryption
51
- 5a:20:54:0b:6f:c3:35:e6:70:c1:bd:5c:58:e8:cf:7b:73:33:
52
- 38:80:70:c1:1c:60:2a:ea:5c:0c:eb:63:6a:15:48:fe:4d:f6:
53
- 18:89:e1:89:73:40:45:52:7d:bc:3a:d6:0e:d3:65:2c:e7:b9:
54
- ab:3b:c6:ea:6e:74:74:39:4f:53:3f:bb:59:d9:91:83:db:92:
55
- 96:32:97:25:5f:c2:8d:85:ce:b3:c7:b1:4d:37:b7:bd:81:de:
56
- f7:9f:34:5b:12:70:21:a8:03:8d:94:ed:d7:41:7f:2a:87:30:
57
- bd:4f:07:22:b2:9a:06:ab:bc:41:2c:2f:7c:be:e0:a2:90:60:
58
- 21:79:d4:a1:08:26:c1:f4:83:b2:0a:ff:7d:0a:15:dc:ed:d0:
59
- 49:f9:37:ad:fe:68:d7:59:9d:f8:25:4e:10:01:bf:a5:be:ec:
60
- 21:a8:bf:77:6c:ff:d4:b7:d4:11:9c:43:4a:64:e8:31:76:9a:
61
- 01:3a:54:d9:c0:8a:a6:2c:7a:df:0a:c4:26:6e:19:52:26:9d:
62
- 25:b5:b1:db:6f:12:91:92:83:ab:6c:28:52:e1:e4:63:c2:cf:
63
- 45:f7:b4:da:7d:13:66:47:62:90:e6:8d:2c:b8:aa:d4:2b:8c:
64
- d6:c0:5c:fc:83:e7:1f:71:5f:cb:38:b6:c3:a5:77:7d:97:04:
65
- 87:14:44:83
66
- -----BEGIN CERTIFICATE-----
67
- MIIDdjCCAl6gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdkZXZj
68
- ZXJ0MB4XDTIyMDQyNzE2Mjc0NloXDTI0MDczMDE2Mjc0NlowHDEaMBgGA1UEAwwR
69
- bG9jYWwuYXJjaGl2ZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
70
- AQCpVMo0/4syAjmXYb31ElxK0Icu1kJjcuq0kJXMSu9aZgmfHQgNsvQus1VZnA93
71
- Nx7Xo1y3PYGE/FWvIOc8vZ4rK57RlZ0UkHB8mXjx3UIr/Ye5CfD2UMeQQd7i7t2g
72
- Sk3eIGroG4F/2RcN9fKh3InY6Ymc/0C3DrsW29HgZ18k3ju4GLim3dUmiiqk8gOx
73
- qBUjMcll3ptasPBP73fxi3uRlaBhvh9kKcYuLAMb8JGWtqv7EbccQbxDbhtvKIhA
74
- vahHKJ6kZDHgpXLbCcuwnnrV0H8VFXXU1nhByaFUc0gZT3KVoTGzTIFBE0PZm4zQ
75
- LikJollrFW1ckyID9XLwRr5lAgMBAAGjgcwwgckwDAYDVR0TAQH/BAIwADAdBgNV
76
- HQ4EFgQU4SCoiVF5DCNmILelpEKPQH9+wM4wQgYDVR0jBDswOYAUqMfFaTVJG7Z3
77
- 5y4WW7B1jLcDXAShFqQUMBIxEDAOBgNVBAMMB2RldmNlcnSCCQDbHkwIdVeNTjAO
78
- BgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwMQYDVR0RBCowKIIR
79
- bG9jYWwuYXJjaGl2ZS5vcmeCEyoubG9jYWwuYXJjaGl2ZS5vcmcwDQYJKoZIhvcN
80
- AQELBQADggEBAFogVAtvwzXmcMG9XFjoz3tzMziAcMEcYCrqXAzrY2oVSP5N9hiJ
81
- 4YlzQEVSfbw61g7TZSznuas7xupudHQ5T1M/u1nZkYPbkpYylyVfwo2FzrPHsU03
82
- t72B3vefNFsScCGoA42U7ddBfyqHML1PByKymgarvEEsL3y+4KKQYCF51KEIJsH0
83
- g7IK/30KFdzt0En5N63+aNdZnfglThABv6W+7CGov3ds/9S31BGcQ0pk6DF2mgE6
84
- VNnAiqYset8KxCZuGVImnSW1sdtvEpGSg6tsKFLh5GPCz0X3tNp9E2ZHYpDmjSy4
85
- qtQrjNbAXPyD5x9xX8s4tsOld32XBIcURIM=
86
- -----END CERTIFICATE-----
1
+ Certificate:
2
+ Data:
3
+ Version: 3 (0x2)
4
+ Serial Number: 1 (0x1)
5
+ Signature Algorithm: sha256WithRSAEncryption
6
+ Issuer: CN=devcert
7
+ Validity
8
+ Not Before: Apr 27 16:27:46 2022 GMT
9
+ Not After : Jul 30 16:27:46 2024 GMT
10
+ Subject: CN=local.archive.org
11
+ Subject Public Key Info:
12
+ Public Key Algorithm: rsaEncryption
13
+ Public-Key: (2048 bit)
14
+ Modulus:
15
+ 00:a9:54:ca:34:ff:8b:32:02:39:97:61:bd:f5:12:
16
+ 5c:4a:d0:87:2e:d6:42:63:72:ea:b4:90:95:cc:4a:
17
+ ef:5a:66:09:9f:1d:08:0d:b2:f4:2e:b3:55:59:9c:
18
+ 0f:77:37:1e:d7:a3:5c:b7:3d:81:84:fc:55:af:20:
19
+ e7:3c:bd:9e:2b:2b:9e:d1:95:9d:14:90:70:7c:99:
20
+ 78:f1:dd:42:2b:fd:87:b9:09:f0:f6:50:c7:90:41:
21
+ de:e2:ee:dd:a0:4a:4d:de:20:6a:e8:1b:81:7f:d9:
22
+ 17:0d:f5:f2:a1:dc:89:d8:e9:89:9c:ff:40:b7:0e:
23
+ bb:16:db:d1:e0:67:5f:24:de:3b:b8:18:b8:a6:dd:
24
+ d5:26:8a:2a:a4:f2:03:b1:a8:15:23:31:c9:65:de:
25
+ 9b:5a:b0:f0:4f:ef:77:f1:8b:7b:91:95:a0:61:be:
26
+ 1f:64:29:c6:2e:2c:03:1b:f0:91:96:b6:ab:fb:11:
27
+ b7:1c:41:bc:43:6e:1b:6f:28:88:40:bd:a8:47:28:
28
+ 9e:a4:64:31:e0:a5:72:db:09:cb:b0:9e:7a:d5:d0:
29
+ 7f:15:15:75:d4:d6:78:41:c9:a1:54:73:48:19:4f:
30
+ 72:95:a1:31:b3:4c:81:41:13:43:d9:9b:8c:d0:2e:
31
+ 29:09:a2:59:6b:15:6d:5c:93:22:03:f5:72:f0:46:
32
+ be:65
33
+ Exponent: 65537 (0x10001)
34
+ X509v3 extensions:
35
+ X509v3 Basic Constraints: critical
36
+ CA:FALSE
37
+ X509v3 Subject Key Identifier:
38
+ E1:20:A8:89:51:79:0C:23:66:20:B7:A5:A4:42:8F:40:7F:7E:C0:CE
39
+ X509v3 Authority Key Identifier:
40
+ keyid:A8:C7:C5:69:35:49:1B:B6:77:E7:2E:16:5B:B0:75:8C:B7:03:5C:04
41
+ DirName:/CN=devcert
42
+ serial:DB:1E:4C:08:75:57:8D:4E
43
+
44
+ X509v3 Key Usage: critical
45
+ Digital Signature, Key Encipherment
46
+ X509v3 Extended Key Usage:
47
+ TLS Web Server Authentication
48
+ X509v3 Subject Alternative Name:
49
+ DNS:local.archive.org, DNS:*.local.archive.org
50
+ Signature Algorithm: sha256WithRSAEncryption
51
+ 5a:20:54:0b:6f:c3:35:e6:70:c1:bd:5c:58:e8:cf:7b:73:33:
52
+ 38:80:70:c1:1c:60:2a:ea:5c:0c:eb:63:6a:15:48:fe:4d:f6:
53
+ 18:89:e1:89:73:40:45:52:7d:bc:3a:d6:0e:d3:65:2c:e7:b9:
54
+ ab:3b:c6:ea:6e:74:74:39:4f:53:3f:bb:59:d9:91:83:db:92:
55
+ 96:32:97:25:5f:c2:8d:85:ce:b3:c7:b1:4d:37:b7:bd:81:de:
56
+ f7:9f:34:5b:12:70:21:a8:03:8d:94:ed:d7:41:7f:2a:87:30:
57
+ bd:4f:07:22:b2:9a:06:ab:bc:41:2c:2f:7c:be:e0:a2:90:60:
58
+ 21:79:d4:a1:08:26:c1:f4:83:b2:0a:ff:7d:0a:15:dc:ed:d0:
59
+ 49:f9:37:ad:fe:68:d7:59:9d:f8:25:4e:10:01:bf:a5:be:ec:
60
+ 21:a8:bf:77:6c:ff:d4:b7:d4:11:9c:43:4a:64:e8:31:76:9a:
61
+ 01:3a:54:d9:c0:8a:a6:2c:7a:df:0a:c4:26:6e:19:52:26:9d:
62
+ 25:b5:b1:db:6f:12:91:92:83:ab:6c:28:52:e1:e4:63:c2:cf:
63
+ 45:f7:b4:da:7d:13:66:47:62:90:e6:8d:2c:b8:aa:d4:2b:8c:
64
+ d6:c0:5c:fc:83:e7:1f:71:5f:cb:38:b6:c3:a5:77:7d:97:04:
65
+ 87:14:44:83
66
+ -----BEGIN CERTIFICATE-----
67
+ MIIDdjCCAl6gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdkZXZj
68
+ ZXJ0MB4XDTIyMDQyNzE2Mjc0NloXDTI0MDczMDE2Mjc0NlowHDEaMBgGA1UEAwwR
69
+ bG9jYWwuYXJjaGl2ZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
70
+ AQCpVMo0/4syAjmXYb31ElxK0Icu1kJjcuq0kJXMSu9aZgmfHQgNsvQus1VZnA93
71
+ Nx7Xo1y3PYGE/FWvIOc8vZ4rK57RlZ0UkHB8mXjx3UIr/Ye5CfD2UMeQQd7i7t2g
72
+ Sk3eIGroG4F/2RcN9fKh3InY6Ymc/0C3DrsW29HgZ18k3ju4GLim3dUmiiqk8gOx
73
+ qBUjMcll3ptasPBP73fxi3uRlaBhvh9kKcYuLAMb8JGWtqv7EbccQbxDbhtvKIhA
74
+ vahHKJ6kZDHgpXLbCcuwnnrV0H8VFXXU1nhByaFUc0gZT3KVoTGzTIFBE0PZm4zQ
75
+ LikJollrFW1ckyID9XLwRr5lAgMBAAGjgcwwgckwDAYDVR0TAQH/BAIwADAdBgNV
76
+ HQ4EFgQU4SCoiVF5DCNmILelpEKPQH9+wM4wQgYDVR0jBDswOYAUqMfFaTVJG7Z3
77
+ 5y4WW7B1jLcDXAShFqQUMBIxEDAOBgNVBAMMB2RldmNlcnSCCQDbHkwIdVeNTjAO
78
+ BgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwMQYDVR0RBCowKIIR
79
+ bG9jYWwuYXJjaGl2ZS5vcmeCEyoubG9jYWwuYXJjaGl2ZS5vcmcwDQYJKoZIhvcN
80
+ AQELBQADggEBAFogVAtvwzXmcMG9XFjoz3tzMziAcMEcYCrqXAzrY2oVSP5N9hiJ
81
+ 4YlzQEVSfbw61g7TZSznuas7xupudHQ5T1M/u1nZkYPbkpYylyVfwo2FzrPHsU03
82
+ t72B3vefNFsScCGoA42U7ddBfyqHML1PByKymgarvEEsL3y+4KKQYCF51KEIJsH0
83
+ g7IK/30KFdzt0En5N63+aNdZnfglThABv6W+7CGov3ds/9S31BGcQ0pk6DF2mgE6
84
+ VNnAiqYset8KxCZuGVImnSW1sdtvEpGSg6tsKFLh5GPCz0X3tNp9E2ZHYpDmjSy4
85
+ qtQrjNbAXPyD5x9xX8s4tsOld32XBIcURIM=
86
+ -----END CERTIFICATE-----
@@ -1,27 +1,27 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- MIIEowIBAAKCAQEAqVTKNP+LMgI5l2G99RJcStCHLtZCY3LqtJCVzErvWmYJnx0I
3
- DbL0LrNVWZwPdzce16Nctz2BhPxVryDnPL2eKyue0ZWdFJBwfJl48d1CK/2HuQnw
4
- 9lDHkEHe4u7doEpN3iBq6BuBf9kXDfXyodyJ2OmJnP9Atw67FtvR4GdfJN47uBi4
5
- pt3VJooqpPIDsagVIzHJZd6bWrDwT+938Yt7kZWgYb4fZCnGLiwDG/CRlrar+xG3
6
- HEG8Q24bbyiIQL2oRyiepGQx4KVy2wnLsJ561dB/FRV11NZ4QcmhVHNIGU9ylaEx
7
- s0yBQRND2ZuM0C4pCaJZaxVtXJMiA/Vy8Ea+ZQIDAQABAoIBAAQgUdEazQyJ61da
8
- BWP8b41PKYwlonaD7V47C7tvtAdy5xcegPy8eKDOs+y8FdBk4naEv5Sjhg10jK34
9
- 0kmzoTASHwuiZrKClosivkS+jIc/5VfH+zw1WbeVM1Y6VeI7DUy1Y4WGbhBsfNhV
10
- PvVcx2smvbi6q5wKWtrCvomGW1YtngNBXJBPDWXysaVZdpF+6iWtw0RjWxbKEeMb
11
- fjZ2sxl7h1EkTXxQR9pfl9WVgl6vRRXp1o+N71M14jp5t95xCyf49YzeEuZmc1Fc
12
- dD77LNGcxr3kpkcQH5FdDP/spla+lR+JKb78FVqhEdPP3WcJ1qcrAstG2npAfKpj
13
- MD9AhsECgYEA3BddOjeK9epaGbTZRKgmIOSgGEHo8WbVHqBHhyQKAb8kFVEPn+Hl
14
- sq2EEQZf0ZJ/HhlVBc0Gj4/2PI8vj1Lzh+QWJnFu+XN/doOm5X62Ctz13qC5oWJp
15
- foQ9HXcg4GAXhm/o3KUIntLrUwoi/UW8YOSRFXS8RSJtuh1rI5P2jjECgYEAxPVP
16
- o/9+12Fc2ujdm8cQ1tB1Ab9Z73/vloG/xit0uMp89OqXUHEmtud/WzaIQvNxdaWi
17
- 9/BqAG9Oml51T3cuYPxNDkSmtd2fieq9Nh17dw8zYGMk0cSYeecgvCJOrRIJnebW
18
- Glyt8vzBb3eD6FzhZoVNOVYareainSP1cwl5YnUCgYAsr2m0OjayeyRT983tDJ7B
19
- Kun+QtOCv7ghgbVEEOMfO6md0llzwq+aOXSI6Fxn9nBssgP7K4dbeoUqAoBLfzIG
20
- sx50K6+2YebNLymhirp3NimNS+CkjZCRqVOnOdqo85mTKAGFWtSHOpegwnwcJB59
21
- Jar3Sj43YygYE4T/Mjlq4QKBgQC8zUcdt2J4xl1Df6xHkuiic0tmdG6a9jHOPex+
22
- 49NM/NYR1Ptd4kmxVXKxFjJCs6jUlQYG1NBYQFrCAcBEf8PWtqSLA+YnOh6gD4R3
23
- ZoWfGNQwFnoKF4HugU/Q6LYwk7TiR5B/zs30urQWzSOGT9rF8wyW5OJIR2kkZ373
24
- WmKgrQKBgGaw32CMejz3wBpzOAXsYJcMsVfNCMD4bJ2EbXhYuY8HB8IEEv6wqMsp
25
- wtXIgHJubfIiA3MlVsfaUkRdtHMHbN+Us1oynu6nByLhYlAMKpOsJFzPVHHwGB/1
26
- g3WtzfFk5eOoZltJBm5K41zjS7lyr1t05648pT6niy9snu6LaF94
27
- -----END RSA PRIVATE KEY-----
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEowIBAAKCAQEAqVTKNP+LMgI5l2G99RJcStCHLtZCY3LqtJCVzErvWmYJnx0I
3
+ DbL0LrNVWZwPdzce16Nctz2BhPxVryDnPL2eKyue0ZWdFJBwfJl48d1CK/2HuQnw
4
+ 9lDHkEHe4u7doEpN3iBq6BuBf9kXDfXyodyJ2OmJnP9Atw67FtvR4GdfJN47uBi4
5
+ pt3VJooqpPIDsagVIzHJZd6bWrDwT+938Yt7kZWgYb4fZCnGLiwDG/CRlrar+xG3
6
+ HEG8Q24bbyiIQL2oRyiepGQx4KVy2wnLsJ561dB/FRV11NZ4QcmhVHNIGU9ylaEx
7
+ s0yBQRND2ZuM0C4pCaJZaxVtXJMiA/Vy8Ea+ZQIDAQABAoIBAAQgUdEazQyJ61da
8
+ BWP8b41PKYwlonaD7V47C7tvtAdy5xcegPy8eKDOs+y8FdBk4naEv5Sjhg10jK34
9
+ 0kmzoTASHwuiZrKClosivkS+jIc/5VfH+zw1WbeVM1Y6VeI7DUy1Y4WGbhBsfNhV
10
+ PvVcx2smvbi6q5wKWtrCvomGW1YtngNBXJBPDWXysaVZdpF+6iWtw0RjWxbKEeMb
11
+ fjZ2sxl7h1EkTXxQR9pfl9WVgl6vRRXp1o+N71M14jp5t95xCyf49YzeEuZmc1Fc
12
+ dD77LNGcxr3kpkcQH5FdDP/spla+lR+JKb78FVqhEdPP3WcJ1qcrAstG2npAfKpj
13
+ MD9AhsECgYEA3BddOjeK9epaGbTZRKgmIOSgGEHo8WbVHqBHhyQKAb8kFVEPn+Hl
14
+ sq2EEQZf0ZJ/HhlVBc0Gj4/2PI8vj1Lzh+QWJnFu+XN/doOm5X62Ctz13qC5oWJp
15
+ foQ9HXcg4GAXhm/o3KUIntLrUwoi/UW8YOSRFXS8RSJtuh1rI5P2jjECgYEAxPVP
16
+ o/9+12Fc2ujdm8cQ1tB1Ab9Z73/vloG/xit0uMp89OqXUHEmtud/WzaIQvNxdaWi
17
+ 9/BqAG9Oml51T3cuYPxNDkSmtd2fieq9Nh17dw8zYGMk0cSYeecgvCJOrRIJnebW
18
+ Glyt8vzBb3eD6FzhZoVNOVYareainSP1cwl5YnUCgYAsr2m0OjayeyRT983tDJ7B
19
+ Kun+QtOCv7ghgbVEEOMfO6md0llzwq+aOXSI6Fxn9nBssgP7K4dbeoUqAoBLfzIG
20
+ sx50K6+2YebNLymhirp3NimNS+CkjZCRqVOnOdqo85mTKAGFWtSHOpegwnwcJB59
21
+ Jar3Sj43YygYE4T/Mjlq4QKBgQC8zUcdt2J4xl1Df6xHkuiic0tmdG6a9jHOPex+
22
+ 49NM/NYR1Ptd4kmxVXKxFjJCs6jUlQYG1NBYQFrCAcBEf8PWtqSLA+YnOh6gD4R3
23
+ ZoWfGNQwFnoKF4HugU/Q6LYwk7TiR5B/zs30urQWzSOGT9rF8wyW5OJIR2kkZ373
24
+ WmKgrQKBgGaw32CMejz3wBpzOAXsYJcMsVfNCMD4bJ2EbXhYuY8HB8IEEv6wqMsp
25
+ wtXIgHJubfIiA3MlVsfaUkRdtHMHbN+Us1oynu6nByLhYlAMKpOsJFzPVHHwGB/1
26
+ g3WtzfFk5eOoZltJBm5K41zjS7lyr1t05648pT6niy9snu6LaF94
27
+ -----END RSA PRIVATE KEY-----
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "The Internet Archive Collection Browser.",
4
4
  "license": "AGPL-3.0-only",
5
5
  "author": "Internet Archive",
6
- "version": "2.5.2",
6
+ "version": "2.6.1",
7
7
  "main": "dist/index.js",
8
8
  "module": "dist/index.js",
9
9
  "scripts": {
package/renovate.json CHANGED
@@ -1,6 +1,6 @@
1
- {
2
- "extends": [
3
- "config:base",
4
- ":preserveSemverRanges"
5
- ]
6
- }
1
+ {
2
+ "extends": [
3
+ "config:base",
4
+ ":preserveSemverRanges"
5
+ ]
6
+ }
@@ -633,8 +633,9 @@ export class CollectionBrowser
633
633
  const resultsCount = this.totalResults?.toLocaleString();
634
634
  const resultsLabel = this.totalResults === 1 ? 'Result' : 'Results';
635
635
 
636
+ // Added data-testid for Playwright testing
636
637
  return html`
637
- <div id="results-total">
638
+ <div id="results-total" data-testid="results-total">
638
639
  <span id="big-results-count">
639
640
  ${shouldShowSearching ? html`Searching&hellip;` : resultsCount}
640
641
  </span>
@@ -1020,9 +1021,14 @@ export class CollectionBrowser
1020
1021
  </collection-facets>
1021
1022
  `;
1022
1023
 
1023
- // In the desktop facets opt-in case, wrap the facet sidebar in a <details> widget
1024
- // that can be opened and closed as needed.
1025
- if (this.facetLoadStrategy === 'opt-in' && !this.mobileView) {
1024
+ // If we are using one of the opt-in facet load strategies, we may need to wrap the
1025
+ // desktop view facets in a <details> widget so that patrons can opt into loading them.
1026
+ // In the `opt-in-or-login` case, we only do this if they are not logged in.
1027
+ const showDesktopOptInWidget =
1028
+ this.facetLoadStrategy === 'opt-in' ||
1029
+ (this.facetLoadStrategy === 'opt-in-or-login' && !this.loggedIn);
1030
+
1031
+ if (showDesktopOptInWidget && !this.mobileView) {
1026
1032
  return html`
1027
1033
  <details
1028
1034
  class="desktop-facets-dropdown"
@@ -1411,14 +1417,24 @@ export class CollectionBrowser
1411
1417
  * current facet loading strategy.
1412
1418
  */
1413
1419
  private updateFacetReadiness(): void {
1414
- // In desktop view, we are always ready to load facets *unless* we are
1415
- // using the `opt-in` strategy and the facets dropdown is not open.
1420
+ // There are two ways to opt into facet production:
1421
+ // (1) have the facets dropdown open, or
1422
+ // (2) if using the `opt-in-or-login` strategy, be logged into an account
1423
+ const optedIn =
1424
+ this.collapsibleFacetsVisible ||
1425
+ (this.facetLoadStrategy === 'opt-in-or-login' && this.loggedIn);
1426
+
1427
+ // In desktop view, we are always ready to load facets *unless* we are using one of the
1428
+ // `opt-in` strategies and have not opted in (whether by login or UI interaction).
1429
+ const usingOptInStrategy = ['opt-in', 'opt-in-or-login'].includes(
1430
+ this.facetLoadStrategy
1431
+ );
1416
1432
  const desktopFacetsReady =
1417
- !this.mobileView &&
1418
- (this.facetLoadStrategy !== 'opt-in' || this.collapsibleFacetsVisible);
1433
+ !this.mobileView && (!usingOptInStrategy || optedIn);
1419
1434
 
1420
- // In mobile view, facets are considered ready provided they are currently visible (their dropdown is opened).
1421
- const mobileFacetsReady = this.mobileView && this.collapsibleFacetsVisible;
1435
+ // In the mobile view, facets are considered ready provided we have opted in (whether by
1436
+ // login or UI interaction).
1437
+ const mobileFacetsReady = this.mobileView && optedIn;
1422
1438
 
1423
1439
  this.dataSource.handleFacetReadinessChange(
1424
1440
  desktopFacetsReady || mobileFacetsReady
@@ -77,6 +77,7 @@ export class FacetRow extends LitElement {
77
77
  const showHideText = facetHidden ? unhideText : hideText;
78
78
  const ariaLabel = `${titleText}, ${bucket.count} results`;
79
79
 
80
+ // Added data-testid for Playwright testing
80
81
  return html`
81
82
  <div class="facet-row-container">
82
83
  <div class="facet-checkboxes">
@@ -91,6 +92,7 @@ export class FacetRow extends LitElement {
91
92
  class="select-facet-checkbox"
92
93
  title=${onlyShowText}
93
94
  id=${showOnlyCheckboxId}
95
+ data-testid=${showOnlyCheckboxId}
94
96
  />
95
97
  <input
96
98
  type="checkbox"
@@ -107,6 +109,7 @@ export class FacetRow extends LitElement {
107
109
  for=${negativeCheckboxId}
108
110
  class="hide-facet-icon${facetHidden ? ' active' : ''}"
109
111
  title=${showHideText}
112
+ data-testid=${negativeCheckboxId}
110
113
  >
111
114
  <span class="eye">${eyeIcon}</span>
112
115
  <span class="eye-closed">${eyeClosedIcon}</span>
@@ -37,8 +37,10 @@ export class FacetsTemplate extends LitElement {
37
37
 
38
38
  const facetBuckets = facetGroup.buckets as FacetBucket[];
39
39
 
40
+ // Added data-testid for Playwright testing
41
+ // Using className and aria-labels is not ideal for Playwright locator
40
42
  return html`
41
- <div class="facet-rows">
43
+ <div class="facet-rows" data-testid="facets-on-${facetGroup.key}">
42
44
  ${repeat(
43
45
  facetBuckets,
44
46
  bucket => `${facetGroup.key}:${bucket.key}`,
@@ -148,13 +148,19 @@ export class CollectionFacets extends LitElement {
148
148
  managing: this.isManageView,
149
149
  });
150
150
 
151
+ // Added data-testid for Playwright testing
152
+ // Using facet-group class and aria-labels is not ideal for Playwright locator
151
153
  const datePickerLabelId = 'date-picker-label';
152
154
  return html`
153
155
  <div id="container" class=${containerClasses}>
154
156
  ${this.showHistogramDatePicker &&
155
157
  (this.fullYearsHistogramAggregation || this.fullYearAggregationLoading)
156
158
  ? html`
157
- <section class="facet-group" aria-labelledby=${datePickerLabelId}>
159
+ <section
160
+ class="facet-group"
161
+ aria-labelledby=${datePickerLabelId}
162
+ data-testid="facet-group-header-label-date-picker"
163
+ >
158
164
  <h3 id=${datePickerLabelId}>
159
165
  Year Published <span class="sr-only">range filter</span>
160
166
  ${this.expandDatePickerBtnTemplate}
@@ -175,11 +181,14 @@ export class CollectionFacets extends LitElement {
175
181
  // We only display the "Part Of" section on collection pages
176
182
  if (!this.parentCollections?.length) return nothing;
177
183
 
184
+ // Added data-testid for Playwright testing
185
+ // Using className and aria-labels is not ideal for Playwright locator
178
186
  const headingId = 'partof-heading';
179
187
  return html`
180
188
  <section
181
189
  class="facet-group partof-collections"
182
190
  aria-labelledby=${headingId}
191
+ data-testid="facet-group-partof-collections"
183
192
  >
184
193
  <div class="facet-group-header">
185
194
  <h3 id=${headingId}>${msg('Part Of')}</h3>
@@ -563,11 +572,14 @@ export class CollectionFacets extends LitElement {
563
572
  this.openFacets = newOpenFacets;
564
573
  };
565
574
 
575
+ // Added data-testid for Playwright testing
576
+ // Using className and aria-labels is not ideal for Playwright locator
566
577
  const headerId = `facet-group-header-label-${facetGroup.key}`;
567
578
  return html`
568
579
  <section
569
580
  class="facet-group ${this.collapsableFacets ? 'mobile' : ''}"
570
581
  aria-labelledby=${headerId}
582
+ data-testid=${headerId}
571
583
  >
572
584
  <div class="facet-group-header">
573
585
  <h3
@@ -579,7 +591,10 @@ export class CollectionFacets extends LitElement {
579
591
  <span class="sr-only">filters</span>
580
592
  </h3>
581
593
  </div>
582
- <div class="facet-group-content ${isOpen ? 'open' : ''}">
594
+ <div
595
+ class="facet-group-content ${isOpen ? 'open' : ''}"
596
+ data-testid="facet-group-content-${facetGroup.key}"
597
+ >
583
598
  ${this.facetsLoading
584
599
  ? this.getTombstoneFacetGroupTemplate()
585
600
  : html`
@@ -627,6 +642,8 @@ export class CollectionFacets extends LitElement {
627
642
  // We sort years in numeric order by default, rather than bucket count
628
643
  const facetSort = defaultFacetSort[facetGroup.key];
629
644
 
645
+ // Added data-testid for Playwright testing
646
+ // Using the className is not ideal for Playwright locator
630
647
  return html`<button
631
648
  class="more-link"
632
649
  @click=${() => {
@@ -640,6 +657,7 @@ export class CollectionFacets extends LitElement {
640
657
  new CustomEvent('showMoreFacets', { detail: facetGroup.key })
641
658
  );
642
659
  }}
660
+ data-testid="more-link-btn"
643
661
  >
644
662
  More...
645
663
  </button>`;
@@ -404,11 +404,7 @@ export class CollectionBrowserDataSource
404
404
  const facetsBecameReady = !this.facetsReadyToLoad && ready;
405
405
  this.facetsReadyToLoad = ready;
406
406
 
407
- const lazyLoadFacets = ['lazy-mobile', 'opt-in'].includes(
408
- this.host.facetLoadStrategy
409
- );
410
- const needsFetch =
411
- lazyLoadFacets && facetsBecameReady && this.canFetchFacets;
407
+ const needsFetch = facetsBecameReady && this.canFetchFacets;
412
408
  if (needsFetch) {
413
409
  this.fetchFacets();
414
410
  }