@internetarchive/collection-browser 2.2.3-alpha.6 → 2.4.0-e2e-test-0

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 (315) 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 +466 -466
  72. package/dist/src/collection-browser.js +1476 -1479
  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 +116 -114
  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 +17 -17
  80. package/dist/src/collection-facets/facets-template.js +118 -115
  81. package/dist/src/collection-facets/facets-template.js.map +1 -1
  82. package/dist/src/collection-facets/more-facets-content.d.ts +74 -74
  83. package/dist/src/collection-facets/more-facets-content.js +360 -360
  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 +522 -512
  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 +985 -990
  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 +87 -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 +209 -209
  114. package/dist/src/models.js +381 -381
  115. package/dist/src/restoration-state-handler.d.ts +70 -70
  116. package/dist/src/restoration-state-handler.js +357 -357
  117. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  118. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  119. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  120. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  121. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  122. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  123. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  124. package/dist/src/sort-filter-bar/img/list.js +2 -2
  125. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  126. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  127. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  128. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  129. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  130. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  131. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  132. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  133. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  134. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  135. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +222 -222
  136. package/dist/src/sort-filter-bar/sort-filter-bar.js +699 -696
  137. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  138. package/dist/src/styles/ia-button.d.ts +2 -2
  139. package/dist/src/styles/ia-button.js +16 -16
  140. package/dist/src/styles/item-image-styles.d.ts +8 -8
  141. package/dist/src/styles/item-image-styles.js +9 -9
  142. package/dist/src/styles/sr-only.d.ts +1 -1
  143. package/dist/src/styles/sr-only.js +2 -2
  144. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  145. package/dist/src/tiles/base-tile-component.js +63 -63
  146. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  147. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  148. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  149. package/dist/src/tiles/grid/account-tile.js +72 -72
  150. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  151. package/dist/src/tiles/grid/collection-tile.js +80 -80
  152. package/dist/src/tiles/grid/item-tile.d.ts +30 -30
  153. package/dist/src/tiles/grid/item-tile.js +149 -149
  154. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  155. package/dist/src/tiles/grid/search-tile.js +51 -51
  156. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  157. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  158. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  159. package/dist/src/tiles/grid/tile-stats.js +53 -53
  160. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  161. package/dist/src/tiles/hover/hover-pane-controller.js +354 -352
  162. package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
  163. package/dist/src/tiles/hover/tile-hover-pane.d.ts +18 -15
  164. package/dist/src/tiles/hover/tile-hover-pane.js +127 -47
  165. package/dist/src/tiles/hover/tile-hover-pane.js.map +1 -1
  166. package/dist/src/tiles/image-block.d.ts +17 -17
  167. package/dist/src/tiles/image-block.js +74 -74
  168. package/dist/src/tiles/image-block.js.map +1 -1
  169. package/dist/src/tiles/item-image.d.ts +39 -39
  170. package/dist/src/tiles/item-image.js +154 -154
  171. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  172. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  173. package/dist/src/tiles/list/tile-list-compact.d.ts +15 -15
  174. package/dist/src/tiles/list/tile-list-compact.js +114 -114
  175. package/dist/src/tiles/list/tile-list.d.ts +50 -50
  176. package/dist/src/tiles/list/tile-list.js +315 -315
  177. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  178. package/dist/src/tiles/mediatype-icon.js +47 -47
  179. package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
  180. package/dist/src/tiles/overlay/icon-overlay.js +40 -40
  181. package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
  182. package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
  183. package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
  184. package/dist/src/tiles/overlay/text-overlay.js +42 -42
  185. package/dist/src/tiles/review-block.d.ts +12 -12
  186. package/dist/src/tiles/review-block.js +56 -56
  187. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  188. package/dist/src/tiles/text-snippet-block.js +73 -73
  189. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  190. package/dist/src/tiles/tile-dispatcher.js +229 -229
  191. package/dist/src/tiles/tile-display-value-provider.d.ts +47 -47
  192. package/dist/src/tiles/tile-display-value-provider.js +94 -94
  193. package/dist/src/utils/analytics-events.d.ts +28 -28
  194. package/dist/src/utils/analytics-events.js +30 -30
  195. package/dist/src/utils/array-equals.d.ts +4 -4
  196. package/dist/src/utils/array-equals.js +10 -10
  197. package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -11
  198. package/dist/src/utils/collapse-repeated-quotes.js +13 -13
  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 +1301 -1284
  215. package/dist/test/collection-browser.test.js.map +1 -1
  216. package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
  217. package/dist/test/collection-facets/facet-row.test.js +203 -203
  218. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  219. package/dist/test/collection-facets/facets-template.test.js +105 -105
  220. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  221. package/dist/test/collection-facets/more-facets-content.test.js +139 -139
  222. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  223. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  224. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  225. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  226. package/dist/test/collection-facets.test.d.ts +2 -2
  227. package/dist/test/collection-facets.test.js +652 -652
  228. package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -1
  229. package/dist/test/data-source/collection-browser-data-source.test.js +89 -89
  230. package/dist/test/empty-placeholder.test.d.ts +1 -1
  231. package/dist/test/empty-placeholder.test.js +63 -63
  232. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  233. package/dist/test/expanded-date-picker.test.js +95 -95
  234. package/dist/test/icon-overlay.test.d.ts +1 -1
  235. package/dist/test/icon-overlay.test.js +24 -24
  236. package/dist/test/image-block.test.d.ts +1 -1
  237. package/dist/test/image-block.test.js +48 -48
  238. package/dist/test/item-image.test.d.ts +1 -1
  239. package/dist/test/item-image.test.js +85 -85
  240. package/dist/test/manage/manage-bar.test.d.ts +1 -1
  241. package/dist/test/manage/manage-bar.test.js +81 -81
  242. package/dist/test/mediatype-config.test.d.ts +1 -1
  243. package/dist/test/mediatype-config.test.js +16 -16
  244. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  245. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  246. package/dist/test/mocks/mock-search-responses.d.ts +24 -24
  247. package/dist/test/mocks/mock-search-responses.js +860 -860
  248. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  249. package/dist/test/mocks/mock-search-service.js +53 -53
  250. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  251. package/dist/test/restoration-state-handler.test.js +270 -270
  252. package/dist/test/review-block.test.d.ts +1 -1
  253. package/dist/test/review-block.test.js +44 -44
  254. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  255. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  256. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  257. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  258. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  259. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +426 -426
  260. package/dist/test/text-overlay.test.d.ts +1 -1
  261. package/dist/test/text-overlay.test.js +48 -48
  262. package/dist/test/text-snippet-block.test.d.ts +1 -1
  263. package/dist/test/text-snippet-block.test.js +57 -57
  264. package/dist/test/tile-stats.test.d.ts +1 -1
  265. package/dist/test/tile-stats.test.js +81 -81
  266. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  267. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  268. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  269. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  270. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  271. package/dist/test/tiles/grid/item-tile.test.js +312 -312
  272. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  273. package/dist/test/tiles/grid/search-tile.test.js +51 -51
  274. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  275. package/dist/test/tiles/hover/hover-pane-controller.test.js +259 -259
  276. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  277. package/dist/test/tiles/hover/tile-hover-pane.test.js +56 -13
  278. package/dist/test/tiles/hover/tile-hover-pane.test.js.map +1 -1
  279. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  280. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  281. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  282. package/dist/test/tiles/list/tile-list.test.js +297 -297
  283. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  284. package/dist/test/tiles/tile-dispatcher.test.js +100 -100
  285. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  286. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  287. package/dist/test/utils/array-equals.test.d.ts +1 -1
  288. package/dist/test/utils/array-equals.test.js +26 -26
  289. package/dist/test/utils/format-count.test.d.ts +1 -1
  290. package/dist/test/utils/format-count.test.js +23 -23
  291. package/dist/test/utils/format-date.test.d.ts +1 -1
  292. package/dist/test/utils/format-date.test.js +17 -17
  293. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  294. package/dist/test/utils/format-unit-size.test.js +17 -17
  295. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  296. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  297. package/local.archive.org.cert +86 -86
  298. package/local.archive.org.key +27 -27
  299. package/package.json +1 -1
  300. package/renovate.json +6 -6
  301. package/src/collection-browser.ts +1 -5
  302. package/src/collection-facets/facet-row.ts +2 -0
  303. package/src/collection-facets/facets-template.ts +4 -1
  304. package/src/collection-facets.ts +12 -2
  305. package/src/data-source/collection-browser-data-source.ts +0 -5
  306. package/src/empty-placeholder.ts +13 -5
  307. package/src/sort-filter-bar/sort-filter-bar.ts +3 -0
  308. package/src/tiles/hover/hover-pane-controller.ts +2 -0
  309. package/src/tiles/hover/tile-hover-pane.ts +100 -11
  310. package/src/tiles/image-block.ts +1 -1
  311. package/test/collection-browser.test.ts +24 -1
  312. package/test/tiles/hover/tile-hover-pane.test.ts +61 -0
  313. package/tsconfig.json +21 -21
  314. package/web-dev-server.config.mjs +30 -30
  315. package/web-test-runner.config.mjs +41 -41
@@ -1,94 +1,97 @@
1
- import { __decorate } from "tslib";
2
- import { css, html, LitElement, nothing, } from 'lit';
3
- import { customElement, property } from 'lit/decorators.js';
4
- import { repeat } from 'lit/directives/repeat.js';
5
- import { getDefaultSelectedFacets, } from '../models';
6
- import { FacetRow } from './facet-row';
7
- let FacetsTemplate = class FacetsTemplate extends LitElement {
8
- facetClicked(e) {
9
- const { bucket, negative } = e.detail;
10
- if (bucket.state === 'none') {
11
- this.facetUnchecked(bucket);
12
- }
13
- else {
14
- this.facetChecked(bucket, negative);
15
- }
16
- this.dispatchFacetClickEvent(e.detail);
17
- }
18
- facetChecked(bucket, negative) {
19
- const { facetGroup, selectedFacets } = this;
20
- if (!facetGroup)
21
- return;
22
- let newFacets;
23
- if (selectedFacets) {
24
- newFacets = {
25
- ...selectedFacets,
26
- };
27
- }
28
- else {
29
- newFacets = getDefaultSelectedFacets();
30
- }
31
- newFacets[facetGroup.key][bucket.key] = {
32
- ...bucket,
33
- state: FacetRow.getFacetState(true, negative),
34
- };
35
- this.selectedFacets = newFacets;
36
- this.dispatchSelectedFacetsChanged();
37
- }
38
- facetUnchecked(bucket) {
39
- const { facetGroup, selectedFacets } = this;
40
- if (!facetGroup)
41
- return;
42
- let newFacets;
43
- if (selectedFacets) {
44
- newFacets = {
45
- ...selectedFacets,
46
- };
47
- }
48
- else {
49
- newFacets = getDefaultSelectedFacets();
50
- }
51
- delete newFacets[facetGroup.key][bucket.key];
52
- this.selectedFacets = newFacets;
53
- this.dispatchSelectedFacetsChanged();
54
- }
55
- dispatchFacetClickEvent(detail) {
56
- const event = new CustomEvent('facetClick', {
57
- detail,
58
- composed: true,
59
- });
60
- this.dispatchEvent(event);
61
- }
62
- dispatchSelectedFacetsChanged() {
63
- const event = new CustomEvent('selectedFacetsChanged', {
64
- detail: this.selectedFacets,
65
- bubbles: true,
66
- composed: true,
67
- });
68
- this.dispatchEvent(event);
69
- }
70
- get facetsTemplate() {
71
- const { facetGroup } = this;
72
- if (!facetGroup)
73
- return nothing;
74
- let facetBuckets = facetGroup.buckets;
75
- /**
76
- * sorting FacetBucket before render page / modal
77
- * - first, selected items should be at top having sorted
78
- * - second, suppressed/hidden items should be after selected having sorted
79
- * - and then no-selected / not suppressed items should render having sorted
80
- */
81
- facetBuckets = [
82
- ...facetBuckets
83
- .filter(x => x.state === 'selected')
84
- .sort((a, b) => (a.count < b.count ? 1 : -1)),
85
- ...facetBuckets
86
- .filter(x => x.state === 'hidden')
87
- .sort((a, b) => (a.count < b.count ? 1 : -1)),
88
- ...facetBuckets.filter(x => x.state === 'none'),
89
- ];
1
+ import { __decorate } from "tslib";
2
+ import { css, html, LitElement, nothing, } from 'lit';
3
+ import { customElement, property } from 'lit/decorators.js';
4
+ import { repeat } from 'lit/directives/repeat.js';
5
+ import { getDefaultSelectedFacets, } from '../models';
6
+ import { FacetRow } from './facet-row';
7
+ let FacetsTemplate = class FacetsTemplate extends LitElement {
8
+ facetClicked(e) {
9
+ const { bucket, negative } = e.detail;
10
+ if (bucket.state === 'none') {
11
+ this.facetUnchecked(bucket);
12
+ }
13
+ else {
14
+ this.facetChecked(bucket, negative);
15
+ }
16
+ this.dispatchFacetClickEvent(e.detail);
17
+ }
18
+ facetChecked(bucket, negative) {
19
+ const { facetGroup, selectedFacets } = this;
20
+ if (!facetGroup)
21
+ return;
22
+ let newFacets;
23
+ if (selectedFacets) {
24
+ newFacets = {
25
+ ...selectedFacets,
26
+ };
27
+ }
28
+ else {
29
+ newFacets = getDefaultSelectedFacets();
30
+ }
31
+ newFacets[facetGroup.key][bucket.key] = {
32
+ ...bucket,
33
+ state: FacetRow.getFacetState(true, negative),
34
+ };
35
+ this.selectedFacets = newFacets;
36
+ this.dispatchSelectedFacetsChanged();
37
+ }
38
+ facetUnchecked(bucket) {
39
+ const { facetGroup, selectedFacets } = this;
40
+ if (!facetGroup)
41
+ return;
42
+ let newFacets;
43
+ if (selectedFacets) {
44
+ newFacets = {
45
+ ...selectedFacets,
46
+ };
47
+ }
48
+ else {
49
+ newFacets = getDefaultSelectedFacets();
50
+ }
51
+ delete newFacets[facetGroup.key][bucket.key];
52
+ this.selectedFacets = newFacets;
53
+ this.dispatchSelectedFacetsChanged();
54
+ }
55
+ dispatchFacetClickEvent(detail) {
56
+ const event = new CustomEvent('facetClick', {
57
+ detail,
58
+ composed: true,
59
+ });
60
+ this.dispatchEvent(event);
61
+ }
62
+ dispatchSelectedFacetsChanged() {
63
+ const event = new CustomEvent('selectedFacetsChanged', {
64
+ detail: this.selectedFacets,
65
+ bubbles: true,
66
+ composed: true,
67
+ });
68
+ this.dispatchEvent(event);
69
+ }
70
+ get facetsTemplate() {
71
+ const { facetGroup } = this;
72
+ if (!facetGroup)
73
+ return nothing;
74
+ let facetBuckets = facetGroup.buckets;
75
+ /**
76
+ * sorting FacetBucket before render page / modal
77
+ * - first, selected items should be at top having sorted
78
+ * - second, suppressed/hidden items should be after selected having sorted
79
+ * - and then no-selected / not suppressed items should render having sorted
80
+ */
81
+ facetBuckets = [
82
+ ...facetBuckets
83
+ .filter(x => x.state === 'selected')
84
+ .sort((a, b) => (a.count < b.count ? 1 : -1)),
85
+ ...facetBuckets
86
+ .filter(x => x.state === 'hidden')
87
+ .sort((a, b) => (a.count < b.count ? 1 : -1)),
88
+ ...facetBuckets.filter(x => x.state === 'none'),
89
+ ];
90
90
  return html `
91
- <div class="facets-on-${this.renderOn}">
91
+ <div
92
+ class="facets-on-${this.renderOn}"
93
+ data-testid="facets-on-${facetGroup.key}"
94
+ >
92
95
  ${repeat(facetBuckets, bucket => `${facetGroup.key}:${bucket.key}`, bucket => html `<facet-row
93
96
  .facetType=${facetGroup.key}
94
97
  .bucket=${bucket}
@@ -96,12 +99,12 @@ let FacetsTemplate = class FacetsTemplate extends LitElement {
96
99
  @facetClick=${this.facetClicked}
97
100
  ></facet-row>`)}
98
101
  </div>
99
- `;
100
- }
101
- render() {
102
- return html `${this.facetsTemplate}`;
103
- }
104
- static get styles() {
102
+ `;
103
+ }
104
+ render() {
105
+ return html `${this.facetsTemplate}`;
106
+ }
107
+ static get styles() {
105
108
  return css `
106
109
  @media (max-width: 560px) {
107
110
  .facets-on-modal {
@@ -142,23 +145,23 @@ let FacetsTemplate = class FacetsTemplate extends LitElement {
142
145
  a:hover {
143
146
  text-decoration: underline;
144
147
  }
145
- `;
146
- }
147
- };
148
- __decorate([
149
- property({ type: Object })
150
- ], FacetsTemplate.prototype, "facetGroup", void 0);
151
- __decorate([
152
- property({ type: Object })
153
- ], FacetsTemplate.prototype, "selectedFacets", void 0);
154
- __decorate([
155
- property({ type: String })
156
- ], FacetsTemplate.prototype, "renderOn", void 0);
157
- __decorate([
158
- property({ type: Object })
159
- ], FacetsTemplate.prototype, "collectionTitles", void 0);
160
- FacetsTemplate = __decorate([
161
- customElement('facets-template')
162
- ], FacetsTemplate);
163
- export { FacetsTemplate };
148
+ `;
149
+ }
150
+ };
151
+ __decorate([
152
+ property({ type: Object })
153
+ ], FacetsTemplate.prototype, "facetGroup", void 0);
154
+ __decorate([
155
+ property({ type: Object })
156
+ ], FacetsTemplate.prototype, "selectedFacets", void 0);
157
+ __decorate([
158
+ property({ type: String })
159
+ ], FacetsTemplate.prototype, "renderOn", void 0);
160
+ __decorate([
161
+ property({ type: Object })
162
+ ], FacetsTemplate.prototype, "collectionTitles", void 0);
163
+ FacetsTemplate = __decorate([
164
+ customElement('facets-template')
165
+ ], FacetsTemplate);
166
+ export { FacetsTemplate };
164
167
  //# sourceMappingURL=facets-template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"facets-template.js","sourceRoot":"","sources":["../../../src/collection-facets/facets-template.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n css,\n html,\n LitElement,\n TemplateResult,\n CSSResultGroup,\n nothing,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport {\n FacetGroup,\n FacetBucket,\n SelectedFacets,\n getDefaultSelectedFacets,\n FacetEventDetails,\n} from '../models';\nimport type { CollectionTitles } from '../data-source/models';\nimport { FacetRow } from './facet-row';\n\n@customElement('facets-template')\nexport class FacetsTemplate extends LitElement {\n @property({ type: Object }) facetGroup?: FacetGroup;\n\n @property({ type: Object }) selectedFacets?: SelectedFacets;\n\n @property({ type: String }) renderOn?: string;\n\n @property({ type: Object })\n collectionTitles?: CollectionTitles;\n\n private facetClicked(e: CustomEvent<FacetEventDetails>) {\n const { bucket, negative } = e.detail;\n if (bucket.state === 'none') {\n this.facetUnchecked(bucket);\n } else {\n this.facetChecked(bucket, negative);\n }\n\n this.dispatchFacetClickEvent(e.detail);\n }\n\n private facetChecked(bucket: FacetBucket, negative: boolean) {\n const { facetGroup, selectedFacets } = this;\n if (!facetGroup) return;\n\n let newFacets: SelectedFacets;\n if (selectedFacets) {\n newFacets = {\n ...selectedFacets,\n };\n } else {\n newFacets = getDefaultSelectedFacets();\n }\n newFacets[facetGroup.key][bucket.key] = {\n ...bucket,\n state: FacetRow.getFacetState(true, negative),\n };\n\n this.selectedFacets = newFacets;\n this.dispatchSelectedFacetsChanged();\n }\n\n private facetUnchecked(bucket: FacetBucket) {\n const { facetGroup, selectedFacets } = this;\n if (!facetGroup) return;\n\n let newFacets: SelectedFacets;\n if (selectedFacets) {\n newFacets = {\n ...selectedFacets,\n };\n } else {\n newFacets = getDefaultSelectedFacets();\n }\n delete newFacets[facetGroup.key][bucket.key];\n\n this.selectedFacets = newFacets;\n this.dispatchSelectedFacetsChanged();\n }\n\n private dispatchFacetClickEvent(detail: FacetEventDetails) {\n const event = new CustomEvent<FacetEventDetails>('facetClick', {\n detail,\n composed: true,\n });\n this.dispatchEvent(event);\n }\n\n private dispatchSelectedFacetsChanged() {\n const event = new CustomEvent<SelectedFacets>('selectedFacetsChanged', {\n detail: this.selectedFacets,\n bubbles: true,\n composed: true,\n });\n this.dispatchEvent(event);\n }\n\n private get facetsTemplate(): TemplateResult | typeof nothing {\n const { facetGroup } = this;\n if (!facetGroup) return nothing;\n\n let facetBuckets = facetGroup.buckets as FacetBucket[];\n\n /**\n * sorting FacetBucket before render page / modal\n * - first, selected items should be at top having sorted\n * - second, suppressed/hidden items should be after selected having sorted\n * - and then no-selected / not suppressed items should render having sorted\n */\n facetBuckets = [\n ...facetBuckets\n .filter(x => x.state === 'selected')\n .sort((a, b) => (a.count < b.count ? 1 : -1)),\n ...facetBuckets\n .filter(x => x.state === 'hidden')\n .sort((a, b) => (a.count < b.count ? 1 : -1)),\n ...facetBuckets.filter(x => x.state === 'none'),\n ];\n\n return html`\n <div class=\"facets-on-${this.renderOn}\">\n ${repeat(\n facetBuckets,\n bucket => `${facetGroup.key}:${bucket.key}`,\n bucket => html`<facet-row\n .facetType=${facetGroup.key}\n .bucket=${bucket}\n .collectionTitles=${this.collectionTitles}\n @facetClick=${this.facetClicked}\n ></facet-row>`\n )}\n </div>\n `;\n }\n\n render() {\n return html`${this.facetsTemplate}`;\n }\n\n static get styles(): CSSResultGroup {\n return css`\n @media (max-width: 560px) {\n .facets-on-modal {\n column-count: 1 !important;\n }\n }\n .facets-on-modal {\n column-gap: 15px;\n column-count: 3;\n }\n\n ul.facet-list {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n ul.facet-list li {\n margin-bottom: 0.2rem;\n display: grid;\n }\n\n .facet-row {\n display: flex;\n font-weight: 500;\n font-size: 1.2rem;\n margin: 2.5px auto;\n height: auto;\n border-top: var(--facet-row-border-top, 1px solid transparent);\n border-bottom: var(--facet-row-border-bottom, 1px solid transparent);\n overflow: hidden;\n }\n\n a:link,\n a:visited {\n text-decoration: none;\n color: var(--ia-theme-link-color, #4b64ff);\n }\n a:hover {\n text-decoration: underline;\n }\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"facets-template.js","sourceRoot":"","sources":["../../../src/collection-facets/facets-template.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,GAAG,EACH,IAAI,EACJ,UAAU,EAGV,OAAO,GACR,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAIL,wBAAwB,GAEzB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,IAAa,cAAc,GAA3B,MAAa,cAAe,SAAQ,UAAU;IAUpC,YAAY,CAAC,CAAiC;QACpD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;QACtC,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;SAC7B;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;SACrC;QAED,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAEO,YAAY,CAAC,MAAmB,EAAE,QAAiB;QACzD,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;QAC5C,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,IAAI,SAAyB,CAAC;QAC9B,IAAI,cAAc,EAAE;YAClB,SAAS,GAAG;gBACV,GAAG,cAAc;aAClB,CAAC;SACH;aAAM;YACL,SAAS,GAAG,wBAAwB,EAAE,CAAC;SACxC;QACD,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;YACtC,GAAG,MAAM;YACT,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC;SAC9C,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,6BAA6B,EAAE,CAAC;IACvC,CAAC;IAEO,cAAc,CAAC,MAAmB;QACxC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;QAC5C,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,IAAI,SAAyB,CAAC;QAC9B,IAAI,cAAc,EAAE;YAClB,SAAS,GAAG;gBACV,GAAG,cAAc;aAClB,CAAC;SACH;aAAM;YACL,SAAS,GAAG,wBAAwB,EAAE,CAAC;SACxC;QACD,OAAO,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE7C,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,6BAA6B,EAAE,CAAC;IACvC,CAAC;IAEO,uBAAuB,CAAC,MAAyB;QACvD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAoB,YAAY,EAAE;YAC7D,MAAM;YACN,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEO,6BAA6B;QACnC,MAAM,KAAK,GAAG,IAAI,WAAW,CAAiB,uBAAuB,EAAE;YACrE,MAAM,EAAE,IAAI,CAAC,cAAc;YAC3B,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,IAAY,cAAc;QACxB,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,UAAU;YAAE,OAAO,OAAO,CAAC;QAEhC,IAAI,YAAY,GAAG,UAAU,CAAC,OAAwB,CAAC;QAEvD;;;;;WAKG;QACH,YAAY,GAAG;YACb,GAAG,YAAY;iBACZ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC;iBACnC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,GAAG,YAAY;iBACZ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC;iBACjC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC;SAChD,CAAC;QAEF,OAAO,IAAI,CAAA;;2BAEY,IAAI,CAAC,QAAQ;iCACP,UAAU,CAAC,GAAG;;UAErC,MAAM,CACN,YAAY,EACZ,MAAM,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,EAC3C,MAAM,CAAC,EAAE,CAAC,IAAI,CAAA;yBACC,UAAU,CAAC,GAAG;sBACjB,MAAM;gCACI,IAAI,CAAC,gBAAgB;0BAC3B,IAAI,CAAC,YAAY;wBACnB,CACf;;KAEJ,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwCT,CAAC;IACJ,CAAC;CACF,CAAA;AApK6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kDAAyB;AAExB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sDAAiC;AAEhC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDAAmB;AAG9C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wDACS;AARzB,cAAc;IAD1B,aAAa,CAAC,iBAAiB,CAAC;GACpB,cAAc,CAqK1B;SArKY,cAAc","sourcesContent":["import {\n css,\n html,\n LitElement,\n TemplateResult,\n CSSResultGroup,\n nothing,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport {\n FacetGroup,\n FacetBucket,\n SelectedFacets,\n getDefaultSelectedFacets,\n FacetEventDetails,\n} from '../models';\nimport type { CollectionTitles } from '../data-source/models';\nimport { FacetRow } from './facet-row';\n\n@customElement('facets-template')\nexport class FacetsTemplate extends LitElement {\n @property({ type: Object }) facetGroup?: FacetGroup;\n\n @property({ type: Object }) selectedFacets?: SelectedFacets;\n\n @property({ type: String }) renderOn?: string;\n\n @property({ type: Object })\n collectionTitles?: CollectionTitles;\n\n private facetClicked(e: CustomEvent<FacetEventDetails>) {\n const { bucket, negative } = e.detail;\n if (bucket.state === 'none') {\n this.facetUnchecked(bucket);\n } else {\n this.facetChecked(bucket, negative);\n }\n\n this.dispatchFacetClickEvent(e.detail);\n }\n\n private facetChecked(bucket: FacetBucket, negative: boolean) {\n const { facetGroup, selectedFacets } = this;\n if (!facetGroup) return;\n\n let newFacets: SelectedFacets;\n if (selectedFacets) {\n newFacets = {\n ...selectedFacets,\n };\n } else {\n newFacets = getDefaultSelectedFacets();\n }\n newFacets[facetGroup.key][bucket.key] = {\n ...bucket,\n state: FacetRow.getFacetState(true, negative),\n };\n\n this.selectedFacets = newFacets;\n this.dispatchSelectedFacetsChanged();\n }\n\n private facetUnchecked(bucket: FacetBucket) {\n const { facetGroup, selectedFacets } = this;\n if (!facetGroup) return;\n\n let newFacets: SelectedFacets;\n if (selectedFacets) {\n newFacets = {\n ...selectedFacets,\n };\n } else {\n newFacets = getDefaultSelectedFacets();\n }\n delete newFacets[facetGroup.key][bucket.key];\n\n this.selectedFacets = newFacets;\n this.dispatchSelectedFacetsChanged();\n }\n\n private dispatchFacetClickEvent(detail: FacetEventDetails) {\n const event = new CustomEvent<FacetEventDetails>('facetClick', {\n detail,\n composed: true,\n });\n this.dispatchEvent(event);\n }\n\n private dispatchSelectedFacetsChanged() {\n const event = new CustomEvent<SelectedFacets>('selectedFacetsChanged', {\n detail: this.selectedFacets,\n bubbles: true,\n composed: true,\n });\n this.dispatchEvent(event);\n }\n\n private get facetsTemplate(): TemplateResult | typeof nothing {\n const { facetGroup } = this;\n if (!facetGroup) return nothing;\n\n let facetBuckets = facetGroup.buckets as FacetBucket[];\n\n /**\n * sorting FacetBucket before render page / modal\n * - first, selected items should be at top having sorted\n * - second, suppressed/hidden items should be after selected having sorted\n * - and then no-selected / not suppressed items should render having sorted\n */\n facetBuckets = [\n ...facetBuckets\n .filter(x => x.state === 'selected')\n .sort((a, b) => (a.count < b.count ? 1 : -1)),\n ...facetBuckets\n .filter(x => x.state === 'hidden')\n .sort((a, b) => (a.count < b.count ? 1 : -1)),\n ...facetBuckets.filter(x => x.state === 'none'),\n ];\n\n return html`\n <div\n class=\"facets-on-${this.renderOn}\"\n data-testid=\"facets-on-${facetGroup.key}\"\n >\n ${repeat(\n facetBuckets,\n bucket => `${facetGroup.key}:${bucket.key}`,\n bucket => html`<facet-row\n .facetType=${facetGroup.key}\n .bucket=${bucket}\n .collectionTitles=${this.collectionTitles}\n @facetClick=${this.facetClicked}\n ></facet-row>`\n )}\n </div>\n `;\n }\n\n render() {\n return html`${this.facetsTemplate}`;\n }\n\n static get styles(): CSSResultGroup {\n return css`\n @media (max-width: 560px) {\n .facets-on-modal {\n column-count: 1 !important;\n }\n }\n .facets-on-modal {\n column-gap: 15px;\n column-count: 3;\n }\n\n ul.facet-list {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n ul.facet-list li {\n margin-bottom: 0.2rem;\n display: grid;\n }\n\n .facet-row {\n display: flex;\n font-weight: 500;\n font-size: 1.2rem;\n margin: 2.5px auto;\n height: auto;\n border-top: var(--facet-row-border-top, 1px solid transparent);\n border-bottom: var(--facet-row-border-bottom, 1px solid transparent);\n overflow: hidden;\n }\n\n a:link,\n a:visited {\n text-decoration: none;\n color: var(--ia-theme-link-color, #4b64ff);\n }\n a:hover {\n text-decoration: underline;\n }\n `;\n }\n}\n"]}
@@ -1,74 +1,74 @@
1
- import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit';
2
- import { Aggregation, SearchServiceInterface, SearchType, AggregationSortType, FilterMap } from '@internetarchive/search-service';
3
- import type { ModalManagerInterface } from '@internetarchive/modal-manager';
4
- import type { AnalyticsManagerInterface } from '@internetarchive/analytics-manager';
5
- import { SelectedFacets, FacetGroup, FacetOption } from '../models';
6
- import type { CollectionTitles, PageSpecifierParams } from '../data-source/models';
7
- import '@internetarchive/ia-activity-indicator/ia-activity-indicator';
8
- import './more-facets-pagination';
9
- import './facets-template';
10
- import './toggle-switch';
11
- export declare class MoreFacetsContent extends LitElement {
12
- facetKey?: FacetOption;
13
- facetAggregationKey?: FacetOption;
14
- query?: string;
15
- filterMap?: FilterMap;
16
- modalManager?: ModalManagerInterface;
17
- searchService?: SearchServiceInterface;
18
- searchType?: SearchType;
19
- pageSpecifierParams?: PageSpecifierParams;
20
- collectionTitles?: CollectionTitles;
21
- selectedFacets?: SelectedFacets;
22
- sortedBy: AggregationSortType;
23
- analyticsHandler?: AnalyticsManagerInterface;
24
- aggregations?: Record<string, Aggregation>;
25
- facetGroup?: FacetGroup[];
26
- facetGroupTitle?: String;
27
- pageNumber: number;
28
- /**
29
- * Facets are loading on popup
30
- */
31
- facetsLoading: boolean;
32
- paginationSize: number;
33
- facetsType: string;
34
- private facetsPerPage;
35
- updated(changed: PropertyValues): void;
36
- firstUpdated(): void;
37
- /**
38
- * Close more facets modal on Escape click
39
- */
40
- private setupEscapeListeners;
41
- /**
42
- * Whether facet requests are for the search_results page type (either defaulted or explicitly).
43
- */
44
- private get isSearchResultsPage();
45
- /**
46
- * Get specific facets data from search-service API based of currently query params
47
- * - this.aggregations - hold result of search service and being used for further processing.
48
- */
49
- updateSpecificFacets(): Promise<void>;
50
- private pageNumberClicked;
51
- /**
52
- * Combines the selected facets with the aggregations to create a single list of facets
53
- */
54
- private get mergedFacets();
55
- /**
56
- * Converts the selected facets to a `FacetGroup` array,
57
- * which is easier to work with
58
- */
59
- private get selectedFacetGroups();
60
- /**
61
- * Converts the raw `aggregations` to `FacetGroups`, which are easier to use
62
- */
63
- private get aggregationFacetGroups();
64
- private get getMoreFacetsTemplate();
65
- private get loaderTemplate();
66
- private get facetsPaginationTemplate();
67
- private get footerTemplate();
68
- private sortFacetAggregation;
69
- private get getModalHeaderTemplate();
70
- render(): TemplateResult<1>;
71
- private applySearchFacetsClicked;
72
- private cancelClick;
73
- static get styles(): CSSResultGroup;
74
- }
1
+ import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit';
2
+ import { Aggregation, SearchServiceInterface, SearchType, AggregationSortType, FilterMap } from '@internetarchive/search-service';
3
+ import type { ModalManagerInterface } from '@internetarchive/modal-manager';
4
+ import type { AnalyticsManagerInterface } from '@internetarchive/analytics-manager';
5
+ import { SelectedFacets, FacetGroup, FacetOption } from '../models';
6
+ import type { CollectionTitles, PageSpecifierParams } from '../data-source/models';
7
+ import '@internetarchive/ia-activity-indicator/ia-activity-indicator';
8
+ import './more-facets-pagination';
9
+ import './facets-template';
10
+ import './toggle-switch';
11
+ export declare class MoreFacetsContent extends LitElement {
12
+ facetKey?: FacetOption;
13
+ facetAggregationKey?: FacetOption;
14
+ query?: string;
15
+ filterMap?: FilterMap;
16
+ modalManager?: ModalManagerInterface;
17
+ searchService?: SearchServiceInterface;
18
+ searchType?: SearchType;
19
+ pageSpecifierParams?: PageSpecifierParams;
20
+ collectionTitles?: CollectionTitles;
21
+ selectedFacets?: SelectedFacets;
22
+ sortedBy: AggregationSortType;
23
+ analyticsHandler?: AnalyticsManagerInterface;
24
+ aggregations?: Record<string, Aggregation>;
25
+ facetGroup?: FacetGroup[];
26
+ facetGroupTitle?: String;
27
+ pageNumber: number;
28
+ /**
29
+ * Facets are loading on popup
30
+ */
31
+ facetsLoading: boolean;
32
+ paginationSize: number;
33
+ facetsType: string;
34
+ private facetsPerPage;
35
+ updated(changed: PropertyValues): void;
36
+ firstUpdated(): void;
37
+ /**
38
+ * Close more facets modal on Escape click
39
+ */
40
+ private setupEscapeListeners;
41
+ /**
42
+ * Whether facet requests are for the search_results page type (either defaulted or explicitly).
43
+ */
44
+ private get isSearchResultsPage();
45
+ /**
46
+ * Get specific facets data from search-service API based of currently query params
47
+ * - this.aggregations - hold result of search service and being used for further processing.
48
+ */
49
+ updateSpecificFacets(): Promise<void>;
50
+ private pageNumberClicked;
51
+ /**
52
+ * Combines the selected facets with the aggregations to create a single list of facets
53
+ */
54
+ private get mergedFacets();
55
+ /**
56
+ * Converts the selected facets to a `FacetGroup` array,
57
+ * which is easier to work with
58
+ */
59
+ private get selectedFacetGroups();
60
+ /**
61
+ * Converts the raw `aggregations` to `FacetGroups`, which are easier to use
62
+ */
63
+ private get aggregationFacetGroups();
64
+ private get getMoreFacetsTemplate();
65
+ private get loaderTemplate();
66
+ private get facetsPaginationTemplate();
67
+ private get footerTemplate();
68
+ private sortFacetAggregation;
69
+ private get getModalHeaderTemplate();
70
+ render(): TemplateResult<1>;
71
+ private applySearchFacetsClicked;
72
+ private cancelClick;
73
+ static get styles(): CSSResultGroup;
74
+ }