@internetarchive/collection-browser 1.14.9-alpha.2 → 1.14.9-alpha10

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 (291) hide show
  1. package/.editorconfig +29 -29
  2. package/.husky/pre-commit +4 -4
  3. package/LICENSE +661 -661
  4. package/README.md +83 -83
  5. package/dist/index.d.ts +9 -9
  6. package/dist/index.js +9 -9
  7. package/dist/src/app-root.d.ts +73 -72
  8. package/dist/src/app-root.js +501 -429
  9. package/dist/src/app-root.js.map +1 -1
  10. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  11. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  12. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  13. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  14. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  15. package/dist/src/assets/img/icons/chevron.js +2 -2
  16. package/dist/src/assets/img/icons/contract.d.ts +2 -2
  17. package/dist/src/assets/img/icons/contract.js +2 -2
  18. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  19. package/dist/src/assets/img/icons/empty-query.js +2 -2
  20. package/dist/src/assets/img/icons/expand.d.ts +2 -2
  21. package/dist/src/assets/img/icons/expand.js +2 -2
  22. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  23. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  24. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  25. package/dist/src/assets/img/icons/eye.js +2 -2
  26. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  27. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  28. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  29. package/dist/src/assets/img/icons/login-required.js +2 -2
  30. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  31. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  32. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  33. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  34. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  35. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  36. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  37. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  38. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  39. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  40. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  41. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  42. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  43. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  44. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  45. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  46. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
  47. package/dist/src/assets/img/icons/mediatype/search.js +2 -2
  48. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  49. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  50. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  51. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  52. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  53. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  54. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  55. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  56. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  57. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  58. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  59. package/dist/src/assets/img/icons/null-result.js +2 -2
  60. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  61. package/dist/src/assets/img/icons/restricted.js +2 -2
  62. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  63. package/dist/src/assets/img/icons/reviews.js +2 -2
  64. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  65. package/dist/src/assets/img/icons/upload.js +2 -2
  66. package/dist/src/assets/img/icons/views.d.ts +1 -1
  67. package/dist/src/assets/img/icons/views.js +2 -2
  68. package/dist/src/circular-activity-indicator.d.ts +5 -5
  69. package/dist/src/circular-activity-indicator.js +17 -17
  70. package/dist/src/collection-browser.d.ts +533 -533
  71. package/dist/src/collection-browser.js +1894 -1893
  72. package/dist/src/collection-browser.js.map +1 -1
  73. package/dist/src/collection-facets/facet-row.d.ts +30 -0
  74. package/dist/src/collection-facets/facet-row.js +245 -0
  75. package/dist/src/collection-facets/facet-row.js.map +1 -0
  76. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  77. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  78. package/dist/src/collection-facets/facets-template.d.ts +17 -20
  79. package/dist/src/collection-facets/facets-template.js +122 -264
  80. package/dist/src/collection-facets/facets-template.js.map +1 -1
  81. package/dist/src/collection-facets/more-facets-content.d.ts +77 -77
  82. package/dist/src/collection-facets/more-facets-content.js +359 -359
  83. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  84. package/dist/src/collection-facets/more-facets-pagination.js +196 -196
  85. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  86. package/dist/src/collection-facets/toggle-switch.js +94 -94
  87. package/dist/src/collection-facets.d.ts +104 -104
  88. package/dist/src/collection-facets.js +506 -506
  89. package/dist/src/empty-placeholder.d.ts +23 -23
  90. package/dist/src/empty-placeholder.js +74 -74
  91. package/dist/src/expanded-date-picker.d.ts +43 -43
  92. package/dist/src/expanded-date-picker.js +109 -109
  93. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  94. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  95. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  96. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  97. package/dist/src/manage/manage-bar.d.ts +26 -26
  98. package/dist/src/manage/manage-bar.js +53 -53
  99. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  100. package/dist/src/mediatype/mediatype-config.js +91 -91
  101. package/dist/src/models.d.ts +180 -164
  102. package/dist/src/models.js +269 -269
  103. package/dist/src/models.js.map +1 -1
  104. package/dist/src/restoration-state-handler.d.ts +70 -70
  105. package/dist/src/restoration-state-handler.js +355 -355
  106. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  107. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  108. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  109. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  110. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  111. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  112. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  113. package/dist/src/sort-filter-bar/img/list.js +2 -2
  114. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  115. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  116. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  117. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  118. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  119. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  120. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  121. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  122. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  123. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  124. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +208 -208
  125. package/dist/src/sort-filter-bar/sort-filter-bar.js +637 -637
  126. package/dist/src/styles/item-image-styles.d.ts +8 -8
  127. package/dist/src/styles/item-image-styles.js +9 -9
  128. package/dist/src/styles/sr-only.d.ts +1 -1
  129. package/dist/src/styles/sr-only.js +2 -2
  130. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  131. package/dist/src/tiles/base-tile-component.js +63 -63
  132. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  133. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  134. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  135. package/dist/src/tiles/grid/account-tile.js +72 -72
  136. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  137. package/dist/src/tiles/grid/collection-tile.js +80 -80
  138. package/dist/src/tiles/grid/item-tile.d.ts +27 -27
  139. package/dist/src/tiles/grid/item-tile.js +134 -134
  140. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  141. package/dist/src/tiles/grid/search-tile.js +51 -51
  142. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  143. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  144. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  145. package/dist/src/tiles/grid/tile-stats.js +48 -48
  146. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  147. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  148. package/dist/src/tiles/hover/tile-hover-pane.d.ts +15 -15
  149. package/dist/src/tiles/hover/tile-hover-pane.js +38 -38
  150. package/dist/src/tiles/image-block.d.ts +17 -17
  151. package/dist/src/tiles/image-block.js +73 -73
  152. package/dist/src/tiles/item-image.d.ts +36 -36
  153. package/dist/src/tiles/item-image.js +127 -127
  154. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  155. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  156. package/dist/src/tiles/list/tile-list-compact.d.ts +15 -15
  157. package/dist/src/tiles/list/tile-list-compact.js +114 -114
  158. package/dist/src/tiles/list/tile-list.d.ts +46 -46
  159. package/dist/src/tiles/list/tile-list.js +302 -302
  160. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  161. package/dist/src/tiles/mediatype-icon.js +47 -47
  162. package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
  163. package/dist/src/tiles/overlay/icon-overlay.js +40 -40
  164. package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
  165. package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
  166. package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
  167. package/dist/src/tiles/overlay/text-overlay.js +42 -42
  168. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  169. package/dist/src/tiles/text-snippet-block.js +73 -73
  170. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  171. package/dist/src/tiles/tile-dispatcher.js +231 -231
  172. package/dist/src/tiles/tile-display-value-provider.d.ts +43 -43
  173. package/dist/src/tiles/tile-display-value-provider.js +80 -80
  174. package/dist/src/utils/analytics-events.d.ts +25 -25
  175. package/dist/src/utils/analytics-events.js +27 -27
  176. package/dist/src/utils/array-equals.d.ts +4 -4
  177. package/dist/src/utils/array-equals.js +10 -10
  178. package/dist/src/utils/format-count.d.ts +7 -7
  179. package/dist/src/utils/format-count.js +76 -76
  180. package/dist/src/utils/format-date.d.ts +2 -2
  181. package/dist/src/utils/format-date.js +25 -25
  182. package/dist/src/utils/format-unit-size.d.ts +2 -2
  183. package/dist/src/utils/format-unit-size.js +33 -33
  184. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  185. package/dist/src/utils/local-date-from-utc.js +15 -15
  186. package/dist/src/utils/sha1.d.ts +2 -2
  187. package/dist/src/utils/sha1.js +8 -8
  188. package/dist/test/collection-browser.test.d.ts +1 -1
  189. package/dist/test/collection-browser.test.js +1130 -1098
  190. package/dist/test/collection-browser.test.js.map +1 -1
  191. package/dist/test/collection-facets/facet-row.test.d.ts +1 -0
  192. package/dist/test/collection-facets/facet-row.test.js +235 -0
  193. package/dist/test/collection-facets/facet-row.test.js.map +1 -0
  194. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  195. package/dist/test/collection-facets/facets-template.test.js +110 -141
  196. package/dist/test/collection-facets/facets-template.test.js.map +1 -1
  197. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  198. package/dist/test/collection-facets/more-facets-content.test.js +133 -133
  199. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  200. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  201. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  202. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  203. package/dist/test/collection-facets.test.d.ts +2 -2
  204. package/dist/test/collection-facets.test.js +651 -682
  205. package/dist/test/collection-facets.test.js.map +1 -1
  206. package/dist/test/empty-placeholder.test.d.ts +1 -1
  207. package/dist/test/empty-placeholder.test.js +63 -63
  208. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  209. package/dist/test/expanded-date-picker.test.js +95 -95
  210. package/dist/test/icon-overlay.test.d.ts +1 -1
  211. package/dist/test/icon-overlay.test.js +24 -24
  212. package/dist/test/image-block.test.d.ts +1 -1
  213. package/dist/test/image-block.test.js +48 -48
  214. package/dist/test/item-image.test.d.ts +1 -1
  215. package/dist/test/item-image.test.js +86 -86
  216. package/dist/test/manage/manage-bar.test.d.ts +1 -1
  217. package/dist/test/manage/manage-bar.test.js +72 -72
  218. package/dist/test/mediatype-config.test.d.ts +1 -1
  219. package/dist/test/mediatype-config.test.js +16 -16
  220. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  221. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  222. package/dist/test/mocks/mock-collection-name-cache.d.ts +9 -9
  223. package/dist/test/mocks/mock-collection-name-cache.js +17 -17
  224. package/dist/test/mocks/mock-search-responses.d.ts +21 -21
  225. package/dist/test/mocks/mock-search-responses.js +709 -709
  226. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  227. package/dist/test/mocks/mock-search-service.js +50 -50
  228. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  229. package/dist/test/restoration-state-handler.test.js +270 -270
  230. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  231. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  232. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  233. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  234. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  235. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +378 -378
  236. package/dist/test/text-overlay.test.d.ts +1 -1
  237. package/dist/test/text-overlay.test.js +48 -48
  238. package/dist/test/text-snippet-block.test.d.ts +1 -1
  239. package/dist/test/text-snippet-block.test.js +57 -57
  240. package/dist/test/tile-stats.test.d.ts +1 -1
  241. package/dist/test/tile-stats.test.js +33 -33
  242. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  243. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  244. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  245. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  246. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  247. package/dist/test/tiles/grid/item-tile.test.js +254 -254
  248. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  249. package/dist/test/tiles/grid/search-tile.test.js +51 -51
  250. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  251. package/dist/test/tiles/hover/hover-pane-controller.test.js +258 -258
  252. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  253. package/dist/test/tiles/hover/tile-hover-pane.test.js +13 -13
  254. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  255. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  256. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  257. package/dist/test/tiles/list/tile-list.test.js +242 -242
  258. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  259. package/dist/test/tiles/tile-dispatcher.test.js +94 -94
  260. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  261. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  262. package/dist/test/utils/array-equals.test.d.ts +1 -1
  263. package/dist/test/utils/array-equals.test.js +26 -26
  264. package/dist/test/utils/format-count.test.d.ts +1 -1
  265. package/dist/test/utils/format-count.test.js +23 -23
  266. package/dist/test/utils/format-date.test.d.ts +1 -1
  267. package/dist/test/utils/format-date.test.js +17 -17
  268. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  269. package/dist/test/utils/format-unit-size.test.js +17 -17
  270. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  271. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  272. package/local.archive.org.cert +86 -86
  273. package/local.archive.org.key +27 -27
  274. package/package.json +2 -2
  275. package/renovate.json +6 -6
  276. package/src/app-root.ts +159 -82
  277. package/src/collection-browser.ts +25 -22
  278. package/src/collection-facets/facet-row.ts +274 -0
  279. package/src/collection-facets/facets-template.ts +49 -196
  280. package/src/models.ts +18 -2
  281. package/test/collection-browser.test.ts +36 -4
  282. package/test/collection-facets/facet-row.test.ts +328 -0
  283. package/test/collection-facets/facets-template.test.ts +72 -110
  284. package/test/collection-facets.test.ts +69 -101
  285. package/tsconfig.json +21 -21
  286. package/web-dev-server.config.mjs +30 -30
  287. package/web-test-runner.config.mjs +41 -41
  288. package/dist/src/selected-facets.d.ts +0 -67
  289. package/dist/src/selected-facets.js +0 -149
  290. package/dist/src/selected-facets.js.map +0 -1
  291. package/src/selected-facets.ts +0 -216
@@ -0,0 +1,30 @@
1
+ import { LitElement, TemplateResult, CSSResultGroup } from 'lit';
2
+ import type { CollectionNameCacheInterface } from '@internetarchive/collection-name-cache';
3
+ import type { FacetOption, FacetBucket, FacetState } from '../models';
4
+ export declare class FacetRow extends LitElement {
5
+ /** The name of the facet group to which this facet belongs (e.g., "mediatype") */
6
+ facetType?: FacetOption;
7
+ /** The facet bucket containing details about the state, count, and key for this row */
8
+ bucket?: FacetBucket;
9
+ /** The collection name cache for converting collection identifiers to titles */
10
+ collectionNameCache?: CollectionNameCacheInterface;
11
+ render(): TemplateResult<1>;
12
+ /**
13
+ * Template for the full facet row, including the positive/negative checks,
14
+ * the display name, and the count.
15
+ */
16
+ private get facetRowTemplate();
17
+ /**
18
+ * Handler for whenever this facet is clicked & its state changes
19
+ */
20
+ private facetClicked;
21
+ /**
22
+ * Emits a `facetClick` event with details about this facet & its current state
23
+ */
24
+ private dispatchFacetClickEvent;
25
+ /**
26
+ * Returns the composed facet state corresponding to a positive or negative facet's checked state
27
+ */
28
+ static getFacetState(checked: boolean, negative: boolean): FacetState;
29
+ static get styles(): CSSResultGroup;
30
+ }
@@ -0,0 +1,245 @@
1
+ var FacetRow_1;
2
+ import { __decorate } from "tslib";
3
+ import { css, html, LitElement, nothing, } from 'lit';
4
+ import { customElement, property } from 'lit/decorators.js';
5
+ import eyeIcon from '../assets/img/icons/eye';
6
+ import eyeClosedIcon from '../assets/img/icons/eye-closed';
7
+ let FacetRow = FacetRow_1 = class FacetRow extends LitElement {
8
+ //
9
+ // COMPONENT LIFECYCLE METHODS
10
+ //
11
+ render() {
12
+ return html `${this.facetRowTemplate}`;
13
+ }
14
+ //
15
+ // TEMPLATE GETTERS
16
+ //
17
+ /**
18
+ * Template for the full facet row, including the positive/negative checks,
19
+ * the display name, and the count.
20
+ */
21
+ get facetRowTemplate() {
22
+ var _a, _b;
23
+ const { bucket, facetType } = this;
24
+ if (!bucket || !facetType)
25
+ return nothing;
26
+ const showOnlyCheckboxId = `${facetType}:${bucket.key}-show-only`;
27
+ const negativeCheckboxId = `${facetType}:${bucket.key}-negative`;
28
+ // For collections, we need to asynchronously load the collection name
29
+ // so we use the `async-collection-name` widget.
30
+ // For other facet types, we just have a static value to use.
31
+ const bucketTextDisplay = facetType !== 'collection'
32
+ ? html `${(_a = bucket.displayText) !== null && _a !== void 0 ? _a : bucket.key}`
33
+ : html `<a href="/details/${bucket.key}">
34
+ <async-collection-name
35
+ .collectionNameCache=${this.collectionNameCache}
36
+ .identifier=${bucket.key}
37
+ placeholder="-"
38
+ ></async-collection-name>
39
+ </a> `;
40
+ const facetHidden = bucket.state === 'hidden';
41
+ const facetSelected = bucket.state === 'selected';
42
+ const titleText = `${facetType}: ${(_b = bucket.displayText) !== null && _b !== void 0 ? _b : bucket.key}`;
43
+ const onlyShowText = facetSelected
44
+ ? `Show all ${facetType}s`
45
+ : `Only show ${titleText}`;
46
+ const hideText = `Hide ${titleText}`;
47
+ const unhideText = `Unhide ${titleText}`;
48
+ const showHideText = facetHidden ? unhideText : hideText;
49
+ const ariaLabel = `${titleText}, ${bucket.count} results`;
50
+ return html `
51
+ <div class="facet-row-container">
52
+ <div class="facet-checkboxes">
53
+ <input
54
+ type="checkbox"
55
+ .name=${facetType}
56
+ .value=${bucket.key}
57
+ @click=${(e) => {
58
+ this.facetClicked(e, false);
59
+ }}
60
+ .checked=${facetSelected}
61
+ class="select-facet-checkbox"
62
+ title=${onlyShowText}
63
+ id=${showOnlyCheckboxId}
64
+ />
65
+ <input
66
+ type="checkbox"
67
+ id=${negativeCheckboxId}
68
+ .name=${facetType}
69
+ .value=${bucket.key}
70
+ @click=${(e) => {
71
+ this.facetClicked(e, true);
72
+ }}
73
+ .checked=${facetHidden}
74
+ class="hide-facet-checkbox"
75
+ />
76
+ <label
77
+ for=${negativeCheckboxId}
78
+ class="hide-facet-icon${facetHidden ? ' active' : ''}"
79
+ title=${showHideText}
80
+ >
81
+ <span class="eye">${eyeIcon}</span>
82
+ <span class="eye-closed">${eyeClosedIcon}</span>
83
+ </label>
84
+ </div>
85
+ <label
86
+ for=${showOnlyCheckboxId}
87
+ class="facet-info-display"
88
+ title=${onlyShowText}
89
+ aria-label=${ariaLabel}
90
+ >
91
+ <div class="facet-title">${bucketTextDisplay}</div>
92
+ <div class="facet-count">${bucket.count.toLocaleString()}</div>
93
+ </label>
94
+ </div>
95
+ `;
96
+ }
97
+ //
98
+ // EVENT HANDLERS & DISPATCHERS
99
+ //
100
+ /**
101
+ * Handler for whenever this facet is clicked & its state changes
102
+ */
103
+ facetClicked(e, negative) {
104
+ const { bucket, facetType } = this;
105
+ if (!bucket || !facetType)
106
+ return;
107
+ const target = e.target;
108
+ const { checked } = target;
109
+ bucket.state = FacetRow_1.getFacetState(checked, negative);
110
+ this.dispatchFacetClickEvent({
111
+ facetType,
112
+ bucket,
113
+ negative,
114
+ });
115
+ }
116
+ /**
117
+ * Emits a `facetClick` event with details about this facet & its current state
118
+ */
119
+ dispatchFacetClickEvent(detail) {
120
+ const event = new CustomEvent('facetClick', {
121
+ detail,
122
+ });
123
+ this.dispatchEvent(event);
124
+ }
125
+ //
126
+ // OTHER METHODS
127
+ //
128
+ /**
129
+ * Returns the composed facet state corresponding to a positive or negative facet's checked state
130
+ */
131
+ static getFacetState(checked, negative) {
132
+ let state;
133
+ if (checked) {
134
+ state = negative ? 'hidden' : 'selected';
135
+ }
136
+ else {
137
+ state = 'none';
138
+ }
139
+ return state;
140
+ }
141
+ //
142
+ // STYLES
143
+ //
144
+ static get styles() {
145
+ const facetRowBorderTop = css `var(--facet-row-border-top, 1px solid transparent)`;
146
+ const facetRowBorderBottom = css `var(--facet-row-border-bottom, 1px solid transparent)`;
147
+ return css `
148
+ async-collection-name {
149
+ display: contents;
150
+ }
151
+ .facet-checkboxes {
152
+ margin: 0 5px 0 0;
153
+ display: flex;
154
+ height: 15px;
155
+ }
156
+ .facet-checkboxes input:first-child {
157
+ margin-right: 5px;
158
+ }
159
+ .facet-checkboxes input {
160
+ height: 15px;
161
+ width: 15px;
162
+ margin: 0;
163
+ }
164
+ .facet-row-container {
165
+ display: flex;
166
+ font-weight: 500;
167
+ font-size: 1.2rem;
168
+ margin: 2.5px auto;
169
+ height: auto;
170
+ border-top: ${facetRowBorderTop};
171
+ border-bottom: ${facetRowBorderBottom};
172
+ overflow: hidden;
173
+ }
174
+ .facet-info-display {
175
+ display: flex;
176
+ flex: 1 1 0%;
177
+ cursor: pointer;
178
+ flex-wrap: wrap;
179
+ }
180
+ .facet-title {
181
+ word-break: break-word;
182
+ display: inline-block;
183
+ flex: 1 1 0%;
184
+ }
185
+ .facet-count {
186
+ text-align: right;
187
+ }
188
+ .select-facet-checkbox {
189
+ cursor: pointer;
190
+ display: inline-block;
191
+ }
192
+ .hide-facet-checkbox {
193
+ display: none;
194
+ }
195
+ .hide-facet-icon {
196
+ width: 15px;
197
+ height: 15px;
198
+ cursor: pointer;
199
+ opacity: 0.3;
200
+ display: inline-block;
201
+ }
202
+ .hide-facet-icon:hover,
203
+ .active {
204
+ opacity: 1;
205
+ }
206
+ .hide-facet-icon:hover .eye,
207
+ .hide-facet-icon .eye-closed {
208
+ display: none;
209
+ }
210
+ .hide-facet-icon:hover .eye-closed,
211
+ .hide-facet-icon.active .eye-closed {
212
+ display: inline;
213
+ }
214
+ .hide-facet-icon.active .eye {
215
+ display: none;
216
+ }
217
+ .sorting-icon {
218
+ cursor: pointer;
219
+ }
220
+
221
+ a:link,
222
+ a:visited {
223
+ text-decoration: none;
224
+ color: var(--ia-theme-link-color, #4b64ff);
225
+ }
226
+ a:hover {
227
+ text-decoration: underline;
228
+ }
229
+ `;
230
+ }
231
+ };
232
+ __decorate([
233
+ property({ type: String })
234
+ ], FacetRow.prototype, "facetType", void 0);
235
+ __decorate([
236
+ property({ type: Object })
237
+ ], FacetRow.prototype, "bucket", void 0);
238
+ __decorate([
239
+ property({ type: Object })
240
+ ], FacetRow.prototype, "collectionNameCache", void 0);
241
+ FacetRow = FacetRow_1 = __decorate([
242
+ customElement('facet-row')
243
+ ], FacetRow);
244
+ export { FacetRow };
245
+ //# sourceMappingURL=facet-row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facet-row.js","sourceRoot":"","sources":["../../../src/collection-facets/facet-row.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 type { CollectionNameCacheInterface } from '@internetarchive/collection-name-cache';\nimport eyeIcon from '../assets/img/icons/eye';\nimport eyeClosedIcon from '../assets/img/icons/eye-closed';\nimport type {\n FacetOption,\n FacetBucket,\n FacetEventDetails,\n FacetState,\n} from '../models';\n\n@customElement('facet-row')\nexport class FacetRow extends LitElement {\n //\n // UI STATE\n //\n\n /** The name of the facet group to which this facet belongs (e.g., \"mediatype\") */\n @property({ type: String }) facetType?: FacetOption;\n\n /** The facet bucket containing details about the state, count, and key for this row */\n @property({ type: Object }) bucket?: FacetBucket;\n\n /** The collection name cache for converting collection identifiers to titles */\n @property({ type: Object })\n collectionNameCache?: CollectionNameCacheInterface;\n\n //\n // COMPONENT LIFECYCLE METHODS\n //\n\n render() {\n return html`${this.facetRowTemplate}`;\n }\n\n //\n // TEMPLATE GETTERS\n //\n\n /**\n * Template for the full facet row, including the positive/negative checks,\n * the display name, and the count.\n */\n private get facetRowTemplate(): TemplateResult | typeof nothing {\n const { bucket, facetType } = this;\n if (!bucket || !facetType) return nothing;\n\n const showOnlyCheckboxId = `${facetType}:${bucket.key}-show-only`;\n const negativeCheckboxId = `${facetType}:${bucket.key}-negative`;\n\n // For collections, we need to asynchronously load the collection name\n // so we use the `async-collection-name` widget.\n // For other facet types, we just have a static value to use.\n const bucketTextDisplay =\n facetType !== 'collection'\n ? html`${bucket.displayText ?? bucket.key}`\n : html`<a href=\"/details/${bucket.key}\">\n <async-collection-name\n .collectionNameCache=${this.collectionNameCache}\n .identifier=${bucket.key}\n placeholder=\"-\"\n ></async-collection-name>\n </a> `;\n\n const facetHidden = bucket.state === 'hidden';\n const facetSelected = bucket.state === 'selected';\n\n const titleText = `${facetType}: ${bucket.displayText ?? bucket.key}`;\n const onlyShowText = facetSelected\n ? `Show all ${facetType}s`\n : `Only show ${titleText}`;\n const hideText = `Hide ${titleText}`;\n const unhideText = `Unhide ${titleText}`;\n const showHideText = facetHidden ? unhideText : hideText;\n const ariaLabel = `${titleText}, ${bucket.count} results`;\n\n return html`\n <div class=\"facet-row-container\">\n <div class=\"facet-checkboxes\">\n <input\n type=\"checkbox\"\n .name=${facetType}\n .value=${bucket.key}\n @click=${(e: Event) => {\n this.facetClicked(e, false);\n }}\n .checked=${facetSelected}\n class=\"select-facet-checkbox\"\n title=${onlyShowText}\n id=${showOnlyCheckboxId}\n />\n <input\n type=\"checkbox\"\n id=${negativeCheckboxId}\n .name=${facetType}\n .value=${bucket.key}\n @click=${(e: Event) => {\n this.facetClicked(e, true);\n }}\n .checked=${facetHidden}\n class=\"hide-facet-checkbox\"\n />\n <label\n for=${negativeCheckboxId}\n class=\"hide-facet-icon${facetHidden ? ' active' : ''}\"\n title=${showHideText}\n >\n <span class=\"eye\">${eyeIcon}</span>\n <span class=\"eye-closed\">${eyeClosedIcon}</span>\n </label>\n </div>\n <label\n for=${showOnlyCheckboxId}\n class=\"facet-info-display\"\n title=${onlyShowText}\n aria-label=${ariaLabel}\n >\n <div class=\"facet-title\">${bucketTextDisplay}</div>\n <div class=\"facet-count\">${bucket.count.toLocaleString()}</div>\n </label>\n </div>\n `;\n }\n\n //\n // EVENT HANDLERS & DISPATCHERS\n //\n\n /**\n * Handler for whenever this facet is clicked & its state changes\n */\n private facetClicked(e: Event, negative: boolean) {\n const { bucket, facetType } = this;\n if (!bucket || !facetType) return;\n\n const target = e.target as HTMLInputElement;\n const { checked } = target;\n bucket.state = FacetRow.getFacetState(checked, negative);\n\n this.dispatchFacetClickEvent({\n facetType,\n bucket,\n negative,\n });\n }\n\n /**\n * Emits a `facetClick` event with details about this facet & its current state\n */\n private dispatchFacetClickEvent(detail: FacetEventDetails) {\n const event = new CustomEvent<FacetEventDetails>('facetClick', {\n detail,\n });\n this.dispatchEvent(event);\n }\n\n //\n // OTHER METHODS\n //\n\n /**\n * Returns the composed facet state corresponding to a positive or negative facet's checked state\n */\n static getFacetState(checked: boolean, negative: boolean): FacetState {\n let state: FacetState;\n if (checked) {\n state = negative ? 'hidden' : 'selected';\n } else {\n state = 'none';\n }\n return state;\n }\n\n //\n // STYLES\n //\n\n static get styles(): CSSResultGroup {\n const facetRowBorderTop = css`var(--facet-row-border-top, 1px solid transparent)`;\n const facetRowBorderBottom = css`var(--facet-row-border-bottom, 1px solid transparent)`;\n\n return css`\n async-collection-name {\n display: contents;\n }\n .facet-checkboxes {\n margin: 0 5px 0 0;\n display: flex;\n height: 15px;\n }\n .facet-checkboxes input:first-child {\n margin-right: 5px;\n }\n .facet-checkboxes input {\n height: 15px;\n width: 15px;\n margin: 0;\n }\n .facet-row-container {\n display: flex;\n font-weight: 500;\n font-size: 1.2rem;\n margin: 2.5px auto;\n height: auto;\n border-top: ${facetRowBorderTop};\n border-bottom: ${facetRowBorderBottom};\n overflow: hidden;\n }\n .facet-info-display {\n display: flex;\n flex: 1 1 0%;\n cursor: pointer;\n flex-wrap: wrap;\n }\n .facet-title {\n word-break: break-word;\n display: inline-block;\n flex: 1 1 0%;\n }\n .facet-count {\n text-align: right;\n }\n .select-facet-checkbox {\n cursor: pointer;\n display: inline-block;\n }\n .hide-facet-checkbox {\n display: none;\n }\n .hide-facet-icon {\n width: 15px;\n height: 15px;\n cursor: pointer;\n opacity: 0.3;\n display: inline-block;\n }\n .hide-facet-icon:hover,\n .active {\n opacity: 1;\n }\n .hide-facet-icon:hover .eye,\n .hide-facet-icon .eye-closed {\n display: none;\n }\n .hide-facet-icon:hover .eye-closed,\n .hide-facet-icon.active .eye-closed {\n display: inline;\n }\n .hide-facet-icon.active .eye {\n display: none;\n }\n .sorting-icon {\n cursor: pointer;\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,5 +1,5 @@
1
- import { LitElement, CSSResultGroup } from 'lit';
2
- export declare class FacetTombstoneRow extends LitElement {
3
- render(): import("lit-html").TemplateResult<1>;
4
- static get styles(): CSSResultGroup;
5
- }
1
+ import { LitElement, CSSResultGroup } from 'lit';
2
+ export declare class FacetTombstoneRow extends LitElement {
3
+ render(): import("lit-html").TemplateResult<1>;
4
+ static get styles(): CSSResultGroup;
5
+ }
@@ -1,17 +1,17 @@
1
- import { __decorate } from "tslib";
2
- import { css, html, LitElement } from 'lit';
3
- import { customElement } from 'lit/decorators.js';
4
- let FacetTombstoneRow = class FacetTombstoneRow extends LitElement {
5
- render() {
1
+ import { __decorate } from "tslib";
2
+ import { css, html, LitElement } from 'lit';
3
+ import { customElement } from 'lit/decorators.js';
4
+ let FacetTombstoneRow = class FacetTombstoneRow extends LitElement {
5
+ render() {
6
6
  return html `
7
7
  <div id="row">
8
8
  <input type="checkbox" disabled />
9
9
  <div class="tombstone-line"></div>
10
10
  <div class="tombstone-line"></div>
11
11
  </div>
12
- `;
13
- }
14
- static get styles() {
12
+ `;
13
+ }
14
+ static get styles() {
15
15
  return css `
16
16
  #row {
17
17
  display: grid;
@@ -33,11 +33,11 @@ let FacetTombstoneRow = class FacetTombstoneRow extends LitElement {
33
33
  height: 15px;
34
34
  margin: 0;
35
35
  }
36
- `;
37
- }
38
- };
39
- FacetTombstoneRow = __decorate([
40
- customElement('facet-tombstone-row')
41
- ], FacetTombstoneRow);
42
- export { FacetTombstoneRow };
36
+ `;
37
+ }
38
+ };
39
+ FacetTombstoneRow = __decorate([
40
+ customElement('facet-tombstone-row')
41
+ ], FacetTombstoneRow);
42
+ export { FacetTombstoneRow };
43
43
  //# sourceMappingURL=facet-tombstone-row.js.map
@@ -1,20 +1,17 @@
1
- import { LitElement, TemplateResult, CSSResultGroup } from 'lit';
2
- import type { CollectionNameCacheInterface } from '@internetarchive/collection-name-cache';
3
- import { FacetGroup, SelectedFacets } from '../models';
4
- export declare class FacetsTemplate extends LitElement {
5
- facetGroup?: FacetGroup;
6
- selectedFacets?: SelectedFacets;
7
- renderOn?: string;
8
- collectionPagePath: string;
9
- collectionNameCache?: CollectionNameCacheInterface;
10
- private facetClicked;
11
- private facetChecked;
12
- private facetUnchecked;
13
- /** Returns the composed facet state corresponding to a positive or negative facet's checked state */
14
- private getFacetState;
15
- private dispatchFacetClickEvent;
16
- private dispatchSelectedFacetsChanged;
17
- private getFacetsTemplate;
18
- render(): TemplateResult<1>;
19
- static get styles(): CSSResultGroup;
20
- }
1
+ import { LitElement, TemplateResult, CSSResultGroup } from 'lit';
2
+ import type { CollectionNameCacheInterface } from '@internetarchive/collection-name-cache';
3
+ import { FacetGroup, SelectedFacets } from '../models';
4
+ export declare class FacetsTemplate extends LitElement {
5
+ facetGroup?: FacetGroup;
6
+ selectedFacets?: SelectedFacets;
7
+ renderOn?: string;
8
+ collectionNameCache?: CollectionNameCacheInterface;
9
+ private facetClicked;
10
+ private facetChecked;
11
+ private facetUnchecked;
12
+ private dispatchFacetClickEvent;
13
+ private dispatchSelectedFacetsChanged;
14
+ private get facetsTemplate();
15
+ render(): TemplateResult<1>;
16
+ static get styles(): CSSResultGroup;
17
+ }