@internetarchive/collection-browser 0.4.3-alpha.9 → 0.4.3

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 (250) hide show
  1. package/.editorconfig +29 -29
  2. package/.github/workflows/ci.yml +26 -26
  3. package/.github/workflows/gh-pages-main.yml +39 -39
  4. package/.github/workflows/npm-publish.yml +39 -39
  5. package/.github/workflows/pr-preview.yml +38 -38
  6. package/.husky/pre-commit +4 -4
  7. package/LICENSE +661 -661
  8. package/README.md +83 -83
  9. package/dist/index.d.ts +9 -9
  10. package/dist/index.js +9 -9
  11. package/dist/src/app-root.d.ts +50 -48
  12. package/dist/src/app-root.js +449 -412
  13. package/dist/src/app-root.js.map +1 -1
  14. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  15. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  16. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  17. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  18. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  19. package/dist/src/assets/img/icons/chevron.js +2 -2
  20. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  21. package/dist/src/assets/img/icons/empty-query.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/software.d.ts +1 -1
  47. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  48. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  49. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  50. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  51. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  52. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  53. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  54. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  55. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  56. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  57. package/dist/src/assets/img/icons/null-result.js +2 -2
  58. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  59. package/dist/src/assets/img/icons/restricted.js +2 -2
  60. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  61. package/dist/src/assets/img/icons/reviews.js +2 -2
  62. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  63. package/dist/src/assets/img/icons/upload.js +2 -2
  64. package/dist/src/assets/img/icons/views.d.ts +1 -1
  65. package/dist/src/assets/img/icons/views.js +2 -2
  66. package/dist/src/circular-activity-indicator.d.ts +5 -5
  67. package/dist/src/circular-activity-indicator.js +17 -17
  68. package/dist/src/collection-browser.d.ts +315 -276
  69. package/dist/src/collection-browser.js +1274 -1179
  70. package/dist/src/collection-browser.js.map +1 -1
  71. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  72. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  73. package/dist/src/collection-facets/facets-template.d.ts +16 -16
  74. package/dist/src/collection-facets/facets-template.js +125 -125
  75. package/dist/src/collection-facets/more-facets-content.d.ts +77 -77
  76. package/dist/src/collection-facets/more-facets-content.js +357 -357
  77. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  78. package/dist/src/collection-facets/more-facets-pagination.js +192 -192
  79. package/dist/src/collection-facets.d.ts +78 -78
  80. package/dist/src/collection-facets.js +391 -391
  81. package/dist/src/empty-placeholder.d.ts +11 -11
  82. package/dist/src/empty-placeholder.js +42 -42
  83. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  84. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  85. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  86. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  87. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  88. package/dist/src/mediatype/mediatype-config.js +85 -85
  89. package/dist/src/models.d.ts +114 -112
  90. package/dist/src/models.js +125 -125
  91. package/dist/src/models.js.map +1 -1
  92. package/dist/src/restoration-state-handler.d.ts +45 -45
  93. package/dist/src/restoration-state-handler.js +230 -230
  94. package/dist/src/sort-filter-bar/alpha-bar.d.ts +12 -12
  95. package/dist/src/sort-filter-bar/alpha-bar.js +52 -52
  96. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  97. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  98. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  99. package/dist/src/sort-filter-bar/img/list.js +2 -2
  100. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  101. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  102. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  103. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  104. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +108 -108
  105. package/dist/src/sort-filter-bar/sort-filter-bar.js +428 -428
  106. package/dist/src/styles/item-image-styles.d.ts +8 -8
  107. package/dist/src/styles/item-image-styles.js +22 -12
  108. package/dist/src/styles/item-image-styles.js.map +1 -1
  109. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  110. package/dist/src/tiles/collection-browser-loading-tile.js +16 -16
  111. package/dist/src/tiles/collection-browser-loading-tile.js.map +1 -1
  112. package/dist/src/tiles/grid/account-tile.d.ts +17 -17
  113. package/dist/src/tiles/grid/account-tile.js +48 -47
  114. package/dist/src/tiles/grid/account-tile.js.map +1 -1
  115. package/dist/src/tiles/grid/collection-tile.d.ts +14 -7
  116. package/dist/src/tiles/grid/collection-tile.js +112 -146
  117. package/dist/src/tiles/grid/collection-tile.js.map +1 -1
  118. package/dist/src/tiles/grid/item-tile.d.ts +29 -29
  119. package/dist/src/tiles/grid/item-tile.js +110 -105
  120. package/dist/src/tiles/grid/item-tile.js.map +1 -1
  121. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  122. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +12 -8
  123. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js.map +1 -1
  124. package/dist/src/tiles/grid/tile-stats.d.ts +10 -10
  125. package/dist/src/tiles/grid/tile-stats.js +41 -40
  126. package/dist/src/tiles/grid/tile-stats.js.map +1 -1
  127. package/dist/src/tiles/image-block.d.ts +17 -17
  128. package/dist/src/tiles/image-block.js +76 -72
  129. package/dist/src/tiles/image-block.js.map +1 -1
  130. package/dist/src/tiles/item-image.d.ts +35 -35
  131. package/dist/src/tiles/item-image.js +117 -116
  132. package/dist/src/tiles/item-image.js.map +1 -1
  133. package/dist/src/tiles/list/account-label.d.ts +1 -1
  134. package/dist/src/tiles/list/account-label.js +6 -6
  135. package/dist/src/tiles/list/date-label.d.ts +1 -1
  136. package/dist/src/tiles/list/date-label.js +12 -12
  137. package/dist/src/tiles/list/tile-list-compact-header.d.ts +12 -12
  138. package/dist/src/tiles/list/tile-list-compact-header.js +41 -41
  139. package/dist/src/tiles/list/tile-list-compact.d.ts +21 -21
  140. package/dist/src/tiles/list/tile-list-compact.js +93 -93
  141. package/dist/src/tiles/list/tile-list.d.ts +53 -53
  142. package/dist/src/tiles/list/tile-list.js +279 -279
  143. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  144. package/dist/src/tiles/mediatype-icon.js +47 -47
  145. package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
  146. package/dist/src/tiles/overlay/icon-overlay.js +40 -40
  147. package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
  148. package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
  149. package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
  150. package/dist/src/tiles/overlay/text-overlay.js +42 -42
  151. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  152. package/dist/src/tiles/text-snippet-block.js +73 -73
  153. package/dist/src/tiles/tile-dispatcher.d.ts +36 -36
  154. package/dist/src/tiles/tile-dispatcher.js +145 -128
  155. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  156. package/dist/src/utils/analytics-events.d.ts +22 -22
  157. package/dist/src/utils/analytics-events.js +24 -24
  158. package/dist/src/utils/format-count.d.ts +7 -7
  159. package/dist/src/utils/format-count.js +76 -76
  160. package/dist/src/utils/format-date.d.ts +2 -2
  161. package/dist/src/utils/format-date.js +23 -23
  162. package/dist/src/utils/format-unit-size.d.ts +2 -0
  163. package/dist/src/utils/format-unit-size.js +34 -0
  164. package/dist/src/utils/format-unit-size.js.map +1 -0
  165. package/dist/test/collection-browser.test.d.ts +1 -1
  166. package/dist/test/collection-browser.test.js +646 -646
  167. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  168. package/dist/test/collection-facets/facets-template.test.js +62 -62
  169. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  170. package/dist/test/collection-facets/more-facets-content.test.js +114 -114
  171. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  172. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  173. package/dist/test/collection-facets.test.d.ts +2 -2
  174. package/dist/test/collection-facets.test.js +544 -544
  175. package/dist/test/empty-placeholder.test.d.ts +1 -1
  176. package/dist/test/empty-placeholder.test.js +33 -33
  177. package/dist/test/icon-overlay.test.d.ts +1 -1
  178. package/dist/test/icon-overlay.test.js +24 -24
  179. package/dist/test/image-block.test.d.ts +1 -1
  180. package/dist/test/image-block.test.js +48 -48
  181. package/dist/test/item-image.test.d.ts +1 -1
  182. package/dist/test/item-image.test.js +84 -80
  183. package/dist/test/item-image.test.js.map +1 -1
  184. package/dist/test/mediatype-config.test.d.ts +1 -1
  185. package/dist/test/mediatype-config.test.js +16 -16
  186. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  187. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  188. package/dist/test/mocks/mock-collection-name-cache.d.ts +7 -7
  189. package/dist/test/mocks/mock-collection-name-cache.js +13 -13
  190. package/dist/test/mocks/mock-search-responses.d.ts +12 -12
  191. package/dist/test/mocks/mock-search-responses.js +341 -341
  192. package/dist/test/mocks/mock-search-service.d.ts +13 -13
  193. package/dist/test/mocks/mock-search-service.js +40 -40
  194. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  195. package/dist/test/restoration-state-handler.test.js +125 -125
  196. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  197. package/dist/test/sort-filter-bar/alpha-bar.test.js +43 -43
  198. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  199. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +141 -141
  200. package/dist/test/text-overlay.test.d.ts +1 -1
  201. package/dist/test/text-overlay.test.js +48 -48
  202. package/dist/test/text-snippet-block.test.d.ts +1 -1
  203. package/dist/test/text-snippet-block.test.js +57 -57
  204. package/dist/test/tile-stats.test.d.ts +1 -1
  205. package/dist/test/tile-stats.test.js +33 -33
  206. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  207. package/dist/test/tiles/grid/account-tile.test.js +60 -60
  208. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -0
  209. package/dist/test/tiles/grid/collection-tile.test.js +73 -0
  210. package/dist/test/tiles/grid/collection-tile.test.js.map +1 -0
  211. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  212. package/dist/test/tiles/grid/item-tile.test.js +142 -129
  213. package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
  214. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  215. package/dist/test/tiles/list/tile-list-compact.test.js +92 -92
  216. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  217. package/dist/test/tiles/list/tile-list.test.js +123 -123
  218. package/dist/test/utils/format-count.test.d.ts +1 -1
  219. package/dist/test/utils/format-count.test.js +23 -23
  220. package/dist/test/utils/format-date.test.d.ts +1 -1
  221. package/dist/test/utils/format-date.test.js +17 -17
  222. package/dist/test/utils/format-unit-size.test.d.ts +1 -0
  223. package/dist/test/utils/format-unit-size.test.js +18 -0
  224. package/dist/test/utils/format-unit-size.test.js.map +1 -0
  225. package/index.html +24 -24
  226. package/local.archive.org.cert +86 -86
  227. package/local.archive.org.key +27 -27
  228. package/package.json +2 -2
  229. package/renovate.json +6 -6
  230. package/src/app-root.ts +214 -169
  231. package/src/collection-browser.ts +120 -3
  232. package/src/models.ts +2 -0
  233. package/src/styles/item-image-styles.ts +13 -3
  234. package/src/tiles/collection-browser-loading-tile.ts +1 -1
  235. package/src/tiles/grid/account-tile.ts +4 -2
  236. package/src/tiles/grid/collection-tile.ts +106 -136
  237. package/src/tiles/grid/item-tile.ts +8 -2
  238. package/src/tiles/grid/styles/tile-grid-shared-styles.ts +6 -2
  239. package/src/tiles/grid/tile-stats.ts +1 -0
  240. package/src/tiles/image-block.ts +5 -2
  241. package/src/tiles/item-image.ts +4 -3
  242. package/src/tiles/tile-dispatcher.ts +17 -0
  243. package/src/utils/format-unit-size.ts +43 -0
  244. package/test/item-image.test.ts +4 -0
  245. package/test/tiles/grid/collection-tile.test.ts +85 -0
  246. package/test/tiles/grid/item-tile.test.ts +30 -4
  247. package/test/utils/format-unit-size.test.ts +21 -0
  248. package/tsconfig.json +21 -21
  249. package/web-dev-server.config.mjs +30 -30
  250. package/web-test-runner.config.mjs +41 -41
@@ -1,34 +1,34 @@
1
- import { __decorate } from "tslib";
2
- import { LitElement, html, css, nothing, } from 'lit';
3
- import { customElement, property, query, state } from 'lit/decorators.js';
4
- import { SortField, SortFieldDisplayName, } from '../models';
5
- import './alpha-bar';
6
- import { sortIcon } from './img/sort-triangle';
7
- import { tileIcon } from './img/tile';
8
- import { listIcon } from './img/list';
9
- import { compactIcon } from './img/compact';
10
- let SortFilterBar = class SortFilterBar extends LitElement {
11
- constructor() {
12
- super(...arguments);
13
- this.sortDirection = null;
14
- this.selectedSort = SortField.relevance;
15
- this.selectedTitleFilter = null;
16
- this.selectedCreatorFilter = null;
17
- this.showRelevance = true;
18
- this.alphaSelectorVisible = null;
19
- this.dateSortSelectorVisible = false;
20
- this.viewSortSelectorVisible = false;
21
- this.desktopSelectorBarWidth = 0;
22
- this.selectorBarContainerWidth = 0;
23
- this.hoveringOverDateSortOptions = false;
24
- this.boundSortBarSelectorEscapeListener = (e) => {
25
- if (e.key === 'Escape') {
26
- this.viewSortSelectorVisible = false;
27
- this.dateSortSelectorVisible = false;
28
- }
29
- };
30
- }
31
- render() {
1
+ import { __decorate } from "tslib";
2
+ import { LitElement, html, css, nothing, } from 'lit';
3
+ import { customElement, property, query, state } from 'lit/decorators.js';
4
+ import { SortField, SortFieldDisplayName, } from '../models';
5
+ import './alpha-bar';
6
+ import { sortIcon } from './img/sort-triangle';
7
+ import { tileIcon } from './img/tile';
8
+ import { listIcon } from './img/list';
9
+ import { compactIcon } from './img/compact';
10
+ let SortFilterBar = class SortFilterBar extends LitElement {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.sortDirection = null;
14
+ this.selectedSort = SortField.relevance;
15
+ this.selectedTitleFilter = null;
16
+ this.selectedCreatorFilter = null;
17
+ this.showRelevance = true;
18
+ this.alphaSelectorVisible = null;
19
+ this.dateSortSelectorVisible = false;
20
+ this.viewSortSelectorVisible = false;
21
+ this.desktopSelectorBarWidth = 0;
22
+ this.selectorBarContainerWidth = 0;
23
+ this.hoveringOverDateSortOptions = false;
24
+ this.boundSortBarSelectorEscapeListener = (e) => {
25
+ if (e.key === 'Escape') {
26
+ this.viewSortSelectorVisible = false;
27
+ this.dateSortSelectorVisible = false;
28
+ }
29
+ };
30
+ }
31
+ render() {
32
32
  return html `
33
33
  <div id="container">
34
34
  <div id="sort-bar">
@@ -44,113 +44,113 @@ let SortFilterBar = class SortFilterBar extends LitElement {
44
44
  <div id="display-style-selector">${this.displayOptionTemplate}</div>
45
45
  </div>
46
46
 
47
- ${this.viewSortSelectorVisible && !this.mobileSelectorVisible
48
- ? this.viewSortSelector
47
+ ${this.viewSortSelectorVisible && !this.mobileSelectorVisible
48
+ ? this.viewSortSelector
49
49
  : nothing}
50
- ${this.dateSortSelectorVisible && !this.mobileSelectorVisible
51
- ? this.dateSortSelector
50
+ ${this.dateSortSelectorVisible && !this.mobileSelectorVisible
51
+ ? this.dateSortSelector
52
52
  : nothing}
53
53
  ${this.alphaBarTemplate}
54
54
 
55
55
  <div id="bottom-shadow"></div>
56
56
  </div>
57
- `;
58
- }
59
- updated(changed) {
60
- if (changed.has('displayMode')) {
61
- this.displayModeChanged();
62
- }
63
- if (changed.has('selectedSort') && this.sortDirection === null) {
64
- this.sortDirection = 'desc';
65
- }
66
- if (changed.has('selectedTitleFilter') && this.selectedTitleFilter) {
67
- this.alphaSelectorVisible = 'title';
68
- }
69
- if (changed.has('selectedCreatorFilter') && this.selectedCreatorFilter) {
70
- this.alphaSelectorVisible = 'creator';
71
- }
72
- if (changed.has('dateSortSelectorVisible') ||
73
- changed.has('viewSortSelectorVisible')) {
74
- this.setupEscapeListeners();
75
- }
76
- if (changed.has('resizeObserver')) {
77
- const oldObserver = changed.get('resizeObserver');
78
- if (oldObserver)
79
- this.disconnectResizeObserver(oldObserver);
80
- this.setupResizeObserver();
81
- }
82
- }
83
- setupEscapeListeners() {
84
- if (this.dateSortSelectorVisible || this.viewSortSelectorVisible) {
85
- document.addEventListener('keydown', this.boundSortBarSelectorEscapeListener);
86
- }
87
- else {
88
- document.removeEventListener('keydown', this.boundSortBarSelectorEscapeListener);
89
- }
90
- }
91
- disconnectedCallback() {
92
- if (this.resizeObserver) {
93
- this.disconnectResizeObserver(this.resizeObserver);
94
- }
95
- }
96
- disconnectResizeObserver(resizeObserver) {
97
- resizeObserver.removeObserver({
98
- target: this.sortSelectorContainer,
99
- handler: this,
100
- });
101
- resizeObserver.removeObserver({
102
- target: this.desktopSortSelector,
103
- handler: this,
104
- });
105
- }
106
- setupResizeObserver() {
107
- if (!this.resizeObserver)
108
- return;
109
- this.resizeObserver.addObserver({
110
- target: this.sortSelectorContainer,
111
- handler: this,
112
- });
113
- this.resizeObserver.addObserver({
114
- target: this.desktopSortSelector,
115
- handler: this,
116
- });
117
- }
118
- get mobileSelectorVisible() {
119
- return this.selectorBarContainerWidth - 10 < this.desktopSelectorBarWidth;
120
- }
121
- get alphaBarTemplate() {
122
- if (!['title', 'creator'].includes(this.selectedSort))
123
- return nothing;
124
- if (this.alphaSelectorVisible === null) {
125
- if (this.selectedSort === 'creator')
126
- return this.creatorSelectorBar;
127
- if (this.selectedSort === 'title')
128
- return this.titleSelectorBar;
129
- }
130
- else {
131
- return this.alphaSelectorVisible === 'creator'
132
- ? this.creatorSelectorBar
133
- : this.titleSelectorBar;
134
- }
135
- return nothing;
136
- }
137
- handleResize(entry) {
138
- if (entry.target === this.desktopSortSelector) {
139
- this.desktopSelectorBarWidth = entry.contentRect.width;
140
- }
141
- else if (entry.target === this.sortSelectorContainer) {
142
- this.selectorBarContainerWidth = entry.contentRect.width;
143
- }
144
- }
145
- get sortDirectionSelectorTemplate() {
57
+ `;
58
+ }
59
+ updated(changed) {
60
+ if (changed.has('displayMode')) {
61
+ this.displayModeChanged();
62
+ }
63
+ if (changed.has('selectedSort') && this.sortDirection === null) {
64
+ this.sortDirection = 'desc';
65
+ }
66
+ if (changed.has('selectedTitleFilter') && this.selectedTitleFilter) {
67
+ this.alphaSelectorVisible = 'title';
68
+ }
69
+ if (changed.has('selectedCreatorFilter') && this.selectedCreatorFilter) {
70
+ this.alphaSelectorVisible = 'creator';
71
+ }
72
+ if (changed.has('dateSortSelectorVisible') ||
73
+ changed.has('viewSortSelectorVisible')) {
74
+ this.setupEscapeListeners();
75
+ }
76
+ if (changed.has('resizeObserver')) {
77
+ const oldObserver = changed.get('resizeObserver');
78
+ if (oldObserver)
79
+ this.disconnectResizeObserver(oldObserver);
80
+ this.setupResizeObserver();
81
+ }
82
+ }
83
+ setupEscapeListeners() {
84
+ if (this.dateSortSelectorVisible || this.viewSortSelectorVisible) {
85
+ document.addEventListener('keydown', this.boundSortBarSelectorEscapeListener);
86
+ }
87
+ else {
88
+ document.removeEventListener('keydown', this.boundSortBarSelectorEscapeListener);
89
+ }
90
+ }
91
+ disconnectedCallback() {
92
+ if (this.resizeObserver) {
93
+ this.disconnectResizeObserver(this.resizeObserver);
94
+ }
95
+ }
96
+ disconnectResizeObserver(resizeObserver) {
97
+ resizeObserver.removeObserver({
98
+ target: this.sortSelectorContainer,
99
+ handler: this,
100
+ });
101
+ resizeObserver.removeObserver({
102
+ target: this.desktopSortSelector,
103
+ handler: this,
104
+ });
105
+ }
106
+ setupResizeObserver() {
107
+ if (!this.resizeObserver)
108
+ return;
109
+ this.resizeObserver.addObserver({
110
+ target: this.sortSelectorContainer,
111
+ handler: this,
112
+ });
113
+ this.resizeObserver.addObserver({
114
+ target: this.desktopSortSelector,
115
+ handler: this,
116
+ });
117
+ }
118
+ get mobileSelectorVisible() {
119
+ return this.selectorBarContainerWidth - 10 < this.desktopSelectorBarWidth;
120
+ }
121
+ get alphaBarTemplate() {
122
+ if (!['title', 'creator'].includes(this.selectedSort))
123
+ return nothing;
124
+ if (this.alphaSelectorVisible === null) {
125
+ if (this.selectedSort === 'creator')
126
+ return this.creatorSelectorBar;
127
+ if (this.selectedSort === 'title')
128
+ return this.titleSelectorBar;
129
+ }
130
+ else {
131
+ return this.alphaSelectorVisible === 'creator'
132
+ ? this.creatorSelectorBar
133
+ : this.titleSelectorBar;
134
+ }
135
+ return nothing;
136
+ }
137
+ handleResize(entry) {
138
+ if (entry.target === this.desktopSortSelector) {
139
+ this.desktopSelectorBarWidth = entry.contentRect.width;
140
+ }
141
+ else if (entry.target === this.sortSelectorContainer) {
142
+ this.selectorBarContainerWidth = entry.contentRect.width;
143
+ }
144
+ }
145
+ get sortDirectionSelectorTemplate() {
146
146
  return html `
147
147
  <div id="sort-direction-selector">
148
148
  <button
149
149
  id="sort-ascending-btn"
150
150
  class="sort-button ${this.sortDirection === 'asc' ? 'selected' : ''}"
151
151
  ?disabled=${this.selectedSort === 'relevance'}
152
- @click=${() => {
153
- this.setSortDirections('asc');
152
+ @click=${() => {
153
+ this.setSortDirections('asc');
154
154
  }}
155
155
  >
156
156
  ${sortIcon}
@@ -159,16 +159,16 @@ let SortFilterBar = class SortFilterBar extends LitElement {
159
159
  id="sort-descending-btn"
160
160
  class="sort-button ${this.sortDirection === 'desc' ? 'selected' : ''}"
161
161
  ?disabled=${this.selectedSort === 'relevance'}
162
- @click=${() => {
163
- this.setSortDirections('desc');
162
+ @click=${() => {
163
+ this.setSortDirections('desc');
164
164
  }}
165
165
  >
166
166
  ${sortIcon}
167
167
  </button>
168
168
  </div>
169
- `;
170
- }
171
- get desktopSortSelectorTemplate() {
169
+ `;
170
+ }
171
+ get desktopSortSelectorTemplate() {
172
172
  return html `
173
173
  <ul
174
174
  id="desktop-sort-selector"
@@ -176,112 +176,112 @@ let SortFilterBar = class SortFilterBar extends LitElement {
176
176
  >
177
177
  <li id="sort-by-text">Sort By</li>
178
178
  <li>
179
- ${this.showRelevance
180
- ? this.getSortDisplayOption(SortField.relevance)
179
+ ${this.showRelevance
180
+ ? this.getSortDisplayOption(SortField.relevance)
181
181
  : nothing}
182
182
  </li>
183
183
  <li>
184
- ${this.getSortDisplayOption(SortField.weeklyview, {
185
- clickEvent: () => {
186
- if (!this.viewOptionSelected)
187
- this.setSelectedSort(SortField.weeklyview);
188
- this.viewSortSelectorVisible = !this.viewSortSelectorVisible;
189
- this.dateSortSelectorVisible = false;
190
- this.alphaSelectorVisible = null;
191
- this.selectedTitleFilter = null;
192
- this.selectedCreatorFilter = null;
193
- this.emitTitleLetterChangedEvent();
194
- this.emitCreatorLetterChangedEvent();
195
- },
196
- displayName: html `${this.viewSortField}`,
197
- isSelected: () => this.viewOptionSelected,
184
+ ${this.getSortDisplayOption(SortField.weeklyview, {
185
+ clickEvent: () => {
186
+ if (!this.viewOptionSelected)
187
+ this.setSelectedSort(SortField.weeklyview);
188
+ this.viewSortSelectorVisible = !this.viewSortSelectorVisible;
189
+ this.dateSortSelectorVisible = false;
190
+ this.alphaSelectorVisible = null;
191
+ this.selectedTitleFilter = null;
192
+ this.selectedCreatorFilter = null;
193
+ this.emitTitleLetterChangedEvent();
194
+ this.emitCreatorLetterChangedEvent();
195
+ },
196
+ displayName: html `${this.viewSortField}`,
197
+ isSelected: () => this.viewOptionSelected,
198
198
  })}
199
199
  </li>
200
200
  <li>
201
- ${this.getSortDisplayOption(SortField.title, {
202
- clickEvent: () => {
203
- this.alphaSelectorVisible = 'title';
204
- this.selectedCreatorFilter = null;
205
- this.dateSortSelectorVisible = false;
206
- this.viewSortSelectorVisible = false;
207
- this.setSelectedSort(SortField.title);
208
- this.emitCreatorLetterChangedEvent();
209
- },
201
+ ${this.getSortDisplayOption(SortField.title, {
202
+ clickEvent: () => {
203
+ this.alphaSelectorVisible = 'title';
204
+ this.selectedCreatorFilter = null;
205
+ this.dateSortSelectorVisible = false;
206
+ this.viewSortSelectorVisible = false;
207
+ this.setSelectedSort(SortField.title);
208
+ this.emitCreatorLetterChangedEvent();
209
+ },
210
210
  })}
211
211
  </li>
212
212
  <li>
213
- ${this.getSortDisplayOption(SortField.date, {
214
- clickEvent: () => {
215
- if (!this.dateOptionSelected)
216
- this.setSelectedSort(SortField.date);
217
- this.dateSortSelectorVisible = !this.dateSortSelectorVisible;
218
- this.viewSortSelectorVisible = false;
219
- this.alphaSelectorVisible = null;
220
- this.selectedTitleFilter = null;
221
- this.selectedCreatorFilter = null;
222
- this.emitTitleLetterChangedEvent();
223
- this.emitCreatorLetterChangedEvent();
224
- },
225
- displayName: html `${this.dateSortField}`,
226
- isSelected: () => this.dateOptionSelected,
213
+ ${this.getSortDisplayOption(SortField.date, {
214
+ clickEvent: () => {
215
+ if (!this.dateOptionSelected)
216
+ this.setSelectedSort(SortField.date);
217
+ this.dateSortSelectorVisible = !this.dateSortSelectorVisible;
218
+ this.viewSortSelectorVisible = false;
219
+ this.alphaSelectorVisible = null;
220
+ this.selectedTitleFilter = null;
221
+ this.selectedCreatorFilter = null;
222
+ this.emitTitleLetterChangedEvent();
223
+ this.emitCreatorLetterChangedEvent();
224
+ },
225
+ displayName: html `${this.dateSortField}`,
226
+ isSelected: () => this.dateOptionSelected,
227
227
  })}
228
228
  </li>
229
229
  <li>
230
- ${this.getSortDisplayOption(SortField.creator, {
231
- clickEvent: () => {
232
- this.alphaSelectorVisible = 'creator';
233
- this.selectedTitleFilter = null;
234
- this.dateSortSelectorVisible = false;
235
- this.setSelectedSort(SortField.creator);
236
- this.emitTitleLetterChangedEvent();
237
- },
230
+ ${this.getSortDisplayOption(SortField.creator, {
231
+ clickEvent: () => {
232
+ this.alphaSelectorVisible = 'creator';
233
+ this.selectedTitleFilter = null;
234
+ this.dateSortSelectorVisible = false;
235
+ this.setSelectedSort(SortField.creator);
236
+ this.emitTitleLetterChangedEvent();
237
+ },
238
238
  })}
239
239
  </li>
240
240
  </ul>
241
- `;
242
- }
243
- /**
244
- * This generates each of the sort option links.
245
- *
246
- * It manages the display value and the selected state of the option.
247
- *
248
- * @param sortField
249
- * @param options {
250
- * additionalClickEvent?: () => void; If this is provided, it will also be called when the option is clicked.
251
- * displayName?: TemplateResult; The name to display for the option. Defaults to the sortField display name.
252
- * isSelected?: () => boolean; A function that returns true if the option is selected. Defaults to the selectedSort === sortField.
253
- * }
254
- * @returns
255
- */
256
- getSortDisplayOption(sortField, options) {
257
- var _a, _b;
258
- const isSelected = (_a = options === null || options === void 0 ? void 0 : options.isSelected) !== null && _a !== void 0 ? _a : (() => this.selectedSort === sortField);
259
- const displayName = (_b = options === null || options === void 0 ? void 0 : options.displayName) !== null && _b !== void 0 ? _b : SortFieldDisplayName[sortField];
241
+ `;
242
+ }
243
+ /**
244
+ * This generates each of the sort option links.
245
+ *
246
+ * It manages the display value and the selected state of the option.
247
+ *
248
+ * @param sortField
249
+ * @param options {
250
+ * additionalClickEvent?: () => void; If this is provided, it will also be called when the option is clicked.
251
+ * displayName?: TemplateResult; The name to display for the option. Defaults to the sortField display name.
252
+ * isSelected?: () => boolean; A function that returns true if the option is selected. Defaults to the selectedSort === sortField.
253
+ * }
254
+ * @returns
255
+ */
256
+ getSortDisplayOption(sortField, options) {
257
+ var _a, _b;
258
+ const isSelected = (_a = options === null || options === void 0 ? void 0 : options.isSelected) !== null && _a !== void 0 ? _a : (() => this.selectedSort === sortField);
259
+ const displayName = (_b = options === null || options === void 0 ? void 0 : options.displayName) !== null && _b !== void 0 ? _b : SortFieldDisplayName[sortField];
260
260
  return html `
261
261
  <a
262
262
  href="#"
263
- @click=${(e) => {
264
- e.preventDefault();
265
- if (options === null || options === void 0 ? void 0 : options.clickEvent) {
266
- options.clickEvent(e);
267
- }
268
- else {
269
- this.alphaSelectorVisible = null;
270
- this.dateSortSelectorVisible = false;
271
- this.selectedTitleFilter = null;
272
- this.selectedCreatorFilter = null;
273
- this.setSelectedSort(sortField);
274
- this.emitTitleLetterChangedEvent();
275
- this.emitCreatorLetterChangedEvent();
276
- }
263
+ @click=${(e) => {
264
+ e.preventDefault();
265
+ if (options === null || options === void 0 ? void 0 : options.clickEvent) {
266
+ options.clickEvent(e);
267
+ }
268
+ else {
269
+ this.alphaSelectorVisible = null;
270
+ this.dateSortSelectorVisible = false;
271
+ this.selectedTitleFilter = null;
272
+ this.selectedCreatorFilter = null;
273
+ this.setSelectedSort(sortField);
274
+ this.emitTitleLetterChangedEvent();
275
+ this.emitCreatorLetterChangedEvent();
276
+ }
277
277
  }}
278
278
  class=${isSelected() ? 'selected' : ''}
279
279
  >
280
280
  ${displayName}
281
281
  </a>
282
- `;
283
- }
284
- get mobileSortSelectorTemplate() {
282
+ `;
283
+ }
284
+ get mobileSortSelectorTemplate() {
285
285
  return html `
286
286
  <select
287
287
  id="mobile-sort-selector"
@@ -294,20 +294,20 @@ let SortFilterBar = class SortFilterBar extends LitElement {
294
294
  </option>
295
295
  `)}
296
296
  </select>
297
- `;
298
- }
299
- mobileSortChanged(e) {
300
- const target = e.target;
301
- this.setSelectedSort(target.value);
302
- }
303
- get displayOptionTemplate() {
297
+ `;
298
+ }
299
+ mobileSortChanged(e) {
300
+ const target = e.target;
301
+ this.setSelectedSort(target.value);
302
+ }
303
+ get displayOptionTemplate() {
304
304
  return html `
305
305
  <ul>
306
306
  <li>
307
307
  <button
308
308
  id="grid-button"
309
- @click=${() => {
310
- this.displayMode = 'grid';
309
+ @click=${() => {
310
+ this.displayMode = 'grid';
311
311
  }}
312
312
  class=${this.displayMode === 'grid' ? 'active' : ''}
313
313
  title="Tile view"
@@ -318,8 +318,8 @@ let SortFilterBar = class SortFilterBar extends LitElement {
318
318
  <li>
319
319
  <button
320
320
  id="list-detail-button"
321
- @click=${() => {
322
- this.displayMode = 'list-detail';
321
+ @click=${() => {
322
+ this.displayMode = 'list-detail';
323
323
  }}
324
324
  class=${this.displayMode === 'list-detail' ? 'active' : ''}
325
325
  title="List view"
@@ -330,8 +330,8 @@ let SortFilterBar = class SortFilterBar extends LitElement {
330
330
  <li>
331
331
  <button
332
332
  id="list-compact-button"
333
- @click=${() => {
334
- this.displayMode = 'list-compact';
333
+ @click=${() => {
334
+ this.displayMode = 'list-compact';
335
335
  }}
336
336
  class=${this.displayMode === 'list-compact' ? 'active' : ''}
337
337
  title="Compact list view"
@@ -340,17 +340,17 @@ let SortFilterBar = class SortFilterBar extends LitElement {
340
340
  </button>
341
341
  </li>
342
342
  </ul>
343
- `;
344
- }
345
- get dateSortSelector() {
343
+ `;
344
+ }
345
+ get dateSortSelector() {
346
346
  return html `
347
347
  <div
348
348
  id="date-sort-selector-backdrop"
349
- @keyup=${() => {
350
- this.dateSortSelectorVisible = false;
349
+ @keyup=${() => {
350
+ this.dateSortSelectorVisible = false;
351
351
  }}
352
- @click=${() => {
353
- this.dateSortSelectorVisible = false;
352
+ @click=${() => {
353
+ this.dateSortSelectorVisible = false;
354
354
  }}
355
355
  ></div>
356
356
  <div id="date-sort-selector">
@@ -361,17 +361,17 @@ let SortFilterBar = class SortFilterBar extends LitElement {
361
361
  <li>${this.getDateSortButton(SortField.dateadded)}</li>
362
362
  </ul>
363
363
  </div>
364
- `;
365
- }
366
- get viewSortSelector() {
364
+ `;
365
+ }
366
+ get viewSortSelector() {
367
367
  return html `
368
368
  <div
369
369
  id="view-sort-selector-backdrop"
370
- @keyup=${() => {
371
- this.viewSortSelectorVisible = false;
370
+ @keyup=${() => {
371
+ this.viewSortSelectorVisible = false;
372
372
  }}
373
- @click=${() => {
374
- this.viewSortSelectorVisible = false;
373
+ @click=${() => {
374
+ this.viewSortSelectorVisible = false;
375
375
  }}
376
376
  ></div>
377
377
  <div id="view-sort-selector">
@@ -380,155 +380,155 @@ let SortFilterBar = class SortFilterBar extends LitElement {
380
380
  <li>${this.getDateSortButton(SortField.weeklyview)}</li>
381
381
  </ul>
382
382
  </div>
383
- `;
384
- }
385
- getDateSortButton(sortField) {
383
+ `;
384
+ }
385
+ getDateSortButton(sortField) {
386
386
  return html `
387
387
  <button
388
- @click=${() => {
389
- this.selectDateSort(sortField);
388
+ @click=${() => {
389
+ this.selectDateSort(sortField);
390
390
  }}
391
391
  class=${this.selectedSort === sortField ? 'selected' : ''}
392
392
  >
393
393
  ${SortFieldDisplayName[sortField]}
394
394
  </button>
395
- `;
396
- }
397
- selectDateSort(sortField) {
398
- this.dateSortSelectorVisible = false;
399
- this.viewSortSelectorVisible = false;
400
- this.setSelectedSort(sortField);
401
- }
402
- setSortDirections(sortDirection) {
403
- this.sortDirection = sortDirection;
404
- this.emitSortChangedEvent();
405
- }
406
- setSelectedSort(sort) {
407
- this.selectedSort = sort;
408
- this.emitSortChangedEvent();
409
- }
410
- /**
411
- * There are four date sort options.
412
- *
413
- * This checks to see if the current sort is one of them.
414
- *
415
- * @readonly
416
- * @private
417
- * @type {boolean}
418
- * @memberof SortFilterBar
419
- */
420
- get dateOptionSelected() {
421
- const dateSortFields = [
422
- SortField.datearchived,
423
- SortField.date,
424
- SortField.datereviewed,
425
- SortField.dateadded,
426
- ];
427
- return dateSortFields.includes(this.selectedSort);
428
- }
429
- /**
430
- * There are two view sort options.
431
- *
432
- * This checks to see if the current sort is one of them.
433
- *
434
- * @readonly
435
- * @private
436
- * @type {boolean}
437
- * @memberof SortFilterBar
438
- */
439
- get viewOptionSelected() {
440
- const viewSortFields = [
441
- SortField.alltimeview,
442
- SortField.weeklyview,
443
- ];
444
- return viewSortFields.includes(this.selectedSort);
445
- }
446
- /**
447
- * The display name of the current date field
448
- *
449
- * @readonly
450
- * @private
451
- * @type {string}
452
- * @memberof SortFilterBar
453
- */
454
- get dateSortField() {
455
- var _a;
456
- const defaultSort = SortFieldDisplayName[SortField.date];
457
- const name = this.dateOptionSelected
458
- ? (_a = SortFieldDisplayName[this.selectedSort]) !== null && _a !== void 0 ? _a : defaultSort
459
- : defaultSort;
460
- return name;
461
- }
462
- /**
463
- * The display name of the current view field
464
- *
465
- * @readonly
466
- * @private
467
- * @type {string}
468
- * @memberof SortFilterBar
469
- */
470
- get viewSortField() {
471
- var _a;
472
- const defaultSort = SortFieldDisplayName[SortField.weeklyview];
473
- const name = this.viewOptionSelected
474
- ? (_a = SortFieldDisplayName[this.selectedSort]) !== null && _a !== void 0 ? _a : defaultSort
475
- : defaultSort;
476
- return name;
477
- }
478
- get titleSelectorBar() {
479
- var _a;
395
+ `;
396
+ }
397
+ selectDateSort(sortField) {
398
+ this.dateSortSelectorVisible = false;
399
+ this.viewSortSelectorVisible = false;
400
+ this.setSelectedSort(sortField);
401
+ }
402
+ setSortDirections(sortDirection) {
403
+ this.sortDirection = sortDirection;
404
+ this.emitSortChangedEvent();
405
+ }
406
+ setSelectedSort(sort) {
407
+ this.selectedSort = sort;
408
+ this.emitSortChangedEvent();
409
+ }
410
+ /**
411
+ * There are four date sort options.
412
+ *
413
+ * This checks to see if the current sort is one of them.
414
+ *
415
+ * @readonly
416
+ * @private
417
+ * @type {boolean}
418
+ * @memberof SortFilterBar
419
+ */
420
+ get dateOptionSelected() {
421
+ const dateSortFields = [
422
+ SortField.datearchived,
423
+ SortField.date,
424
+ SortField.datereviewed,
425
+ SortField.dateadded,
426
+ ];
427
+ return dateSortFields.includes(this.selectedSort);
428
+ }
429
+ /**
430
+ * There are two view sort options.
431
+ *
432
+ * This checks to see if the current sort is one of them.
433
+ *
434
+ * @readonly
435
+ * @private
436
+ * @type {boolean}
437
+ * @memberof SortFilterBar
438
+ */
439
+ get viewOptionSelected() {
440
+ const viewSortFields = [
441
+ SortField.alltimeview,
442
+ SortField.weeklyview,
443
+ ];
444
+ return viewSortFields.includes(this.selectedSort);
445
+ }
446
+ /**
447
+ * The display name of the current date field
448
+ *
449
+ * @readonly
450
+ * @private
451
+ * @type {string}
452
+ * @memberof SortFilterBar
453
+ */
454
+ get dateSortField() {
455
+ var _a;
456
+ const defaultSort = SortFieldDisplayName[SortField.date];
457
+ const name = this.dateOptionSelected
458
+ ? (_a = SortFieldDisplayName[this.selectedSort]) !== null && _a !== void 0 ? _a : defaultSort
459
+ : defaultSort;
460
+ return name;
461
+ }
462
+ /**
463
+ * The display name of the current view field
464
+ *
465
+ * @readonly
466
+ * @private
467
+ * @type {string}
468
+ * @memberof SortFilterBar
469
+ */
470
+ get viewSortField() {
471
+ var _a;
472
+ const defaultSort = SortFieldDisplayName[SortField.weeklyview];
473
+ const name = this.viewOptionSelected
474
+ ? (_a = SortFieldDisplayName[this.selectedSort]) !== null && _a !== void 0 ? _a : defaultSort
475
+ : defaultSort;
476
+ return name;
477
+ }
478
+ get titleSelectorBar() {
479
+ var _a;
480
480
  return html ` <alpha-bar
481
481
  .selectedLetter=${this.selectedTitleFilter}
482
482
  .letterCounts=${(_a = this.prefixFilterCountMap) === null || _a === void 0 ? void 0 : _a.title}
483
483
  @letterChanged=${this.titleLetterChanged}
484
- ></alpha-bar>`;
485
- }
486
- get creatorSelectorBar() {
487
- var _a;
484
+ ></alpha-bar>`;
485
+ }
486
+ get creatorSelectorBar() {
487
+ var _a;
488
488
  return html ` <alpha-bar
489
489
  .selectedLetter=${this.selectedCreatorFilter}
490
490
  .letterCounts=${(_a = this.prefixFilterCountMap) === null || _a === void 0 ? void 0 : _a.creator}
491
491
  @letterChanged=${this.creatorLetterChanged}
492
- ></alpha-bar>`;
493
- }
494
- titleLetterChanged(e) {
495
- var _a;
496
- this.selectedTitleFilter = (_a = e.detail.selectedLetter) !== null && _a !== void 0 ? _a : null;
497
- this.emitTitleLetterChangedEvent();
498
- }
499
- creatorLetterChanged(e) {
500
- var _a;
501
- this.selectedCreatorFilter = (_a = e.detail.selectedLetter) !== null && _a !== void 0 ? _a : null;
502
- this.emitCreatorLetterChangedEvent();
503
- }
504
- emitTitleLetterChangedEvent() {
505
- const event = new CustomEvent('titleLetterChanged', {
506
- detail: { selectedLetter: this.selectedTitleFilter },
507
- });
508
- this.dispatchEvent(event);
509
- }
510
- emitCreatorLetterChangedEvent() {
511
- const event = new CustomEvent('creatorLetterChanged', {
512
- detail: { selectedLetter: this.selectedCreatorFilter },
513
- });
514
- this.dispatchEvent(event);
515
- }
516
- displayModeChanged() {
517
- const event = new CustomEvent('displayModeChanged', {
518
- detail: { displayMode: this.displayMode },
519
- });
520
- this.dispatchEvent(event);
521
- }
522
- emitSortChangedEvent() {
523
- const event = new CustomEvent('sortChanged', {
524
- detail: {
525
- selectedSort: this.selectedSort,
526
- sortDirection: this.sortDirection,
527
- },
528
- });
529
- this.dispatchEvent(event);
530
- }
531
- };
492
+ ></alpha-bar>`;
493
+ }
494
+ titleLetterChanged(e) {
495
+ var _a;
496
+ this.selectedTitleFilter = (_a = e.detail.selectedLetter) !== null && _a !== void 0 ? _a : null;
497
+ this.emitTitleLetterChangedEvent();
498
+ }
499
+ creatorLetterChanged(e) {
500
+ var _a;
501
+ this.selectedCreatorFilter = (_a = e.detail.selectedLetter) !== null && _a !== void 0 ? _a : null;
502
+ this.emitCreatorLetterChangedEvent();
503
+ }
504
+ emitTitleLetterChangedEvent() {
505
+ const event = new CustomEvent('titleLetterChanged', {
506
+ detail: { selectedLetter: this.selectedTitleFilter },
507
+ });
508
+ this.dispatchEvent(event);
509
+ }
510
+ emitCreatorLetterChangedEvent() {
511
+ const event = new CustomEvent('creatorLetterChanged', {
512
+ detail: { selectedLetter: this.selectedCreatorFilter },
513
+ });
514
+ this.dispatchEvent(event);
515
+ }
516
+ displayModeChanged() {
517
+ const event = new CustomEvent('displayModeChanged', {
518
+ detail: { displayMode: this.displayMode },
519
+ });
520
+ this.dispatchEvent(event);
521
+ }
522
+ emitSortChangedEvent() {
523
+ const event = new CustomEvent('sortChanged', {
524
+ detail: {
525
+ selectedSort: this.selectedSort,
526
+ sortDirection: this.sortDirection,
527
+ },
528
+ });
529
+ this.dispatchEvent(event);
530
+ }
531
+ };
532
532
  SortFilterBar.styles = css `
533
533
  #container {
534
534
  position: relative;
@@ -733,57 +733,57 @@ SortFilterBar.styles = css `
733
733
  width: 24px;
734
734
  height: 24px;
735
735
  }
736
- `;
737
- __decorate([
738
- property({ type: String })
739
- ], SortFilterBar.prototype, "displayMode", void 0);
740
- __decorate([
741
- property({ type: String })
742
- ], SortFilterBar.prototype, "sortDirection", void 0);
743
- __decorate([
744
- property({ type: String })
745
- ], SortFilterBar.prototype, "selectedSort", void 0);
746
- __decorate([
747
- property({ type: String })
748
- ], SortFilterBar.prototype, "selectedTitleFilter", void 0);
749
- __decorate([
750
- property({ type: String })
751
- ], SortFilterBar.prototype, "selectedCreatorFilter", void 0);
752
- __decorate([
753
- property({ type: Boolean })
754
- ], SortFilterBar.prototype, "showRelevance", void 0);
755
- __decorate([
756
- property({ type: Object })
757
- ], SortFilterBar.prototype, "prefixFilterCountMap", void 0);
758
- __decorate([
759
- property({ type: Object })
760
- ], SortFilterBar.prototype, "resizeObserver", void 0);
761
- __decorate([
762
- state()
763
- ], SortFilterBar.prototype, "alphaSelectorVisible", void 0);
764
- __decorate([
765
- state()
766
- ], SortFilterBar.prototype, "dateSortSelectorVisible", void 0);
767
- __decorate([
768
- state()
769
- ], SortFilterBar.prototype, "viewSortSelectorVisible", void 0);
770
- __decorate([
771
- state()
772
- ], SortFilterBar.prototype, "desktopSelectorBarWidth", void 0);
773
- __decorate([
774
- state()
775
- ], SortFilterBar.prototype, "selectorBarContainerWidth", void 0);
776
- __decorate([
777
- state()
778
- ], SortFilterBar.prototype, "hoveringOverDateSortOptions", void 0);
779
- __decorate([
780
- query('#desktop-sort-selector')
781
- ], SortFilterBar.prototype, "desktopSortSelector", void 0);
782
- __decorate([
783
- query('#sort-selector-container')
784
- ], SortFilterBar.prototype, "sortSelectorContainer", void 0);
785
- SortFilterBar = __decorate([
786
- customElement('sort-filter-bar')
787
- ], SortFilterBar);
788
- export { SortFilterBar };
736
+ `;
737
+ __decorate([
738
+ property({ type: String })
739
+ ], SortFilterBar.prototype, "displayMode", void 0);
740
+ __decorate([
741
+ property({ type: String })
742
+ ], SortFilterBar.prototype, "sortDirection", void 0);
743
+ __decorate([
744
+ property({ type: String })
745
+ ], SortFilterBar.prototype, "selectedSort", void 0);
746
+ __decorate([
747
+ property({ type: String })
748
+ ], SortFilterBar.prototype, "selectedTitleFilter", void 0);
749
+ __decorate([
750
+ property({ type: String })
751
+ ], SortFilterBar.prototype, "selectedCreatorFilter", void 0);
752
+ __decorate([
753
+ property({ type: Boolean })
754
+ ], SortFilterBar.prototype, "showRelevance", void 0);
755
+ __decorate([
756
+ property({ type: Object })
757
+ ], SortFilterBar.prototype, "prefixFilterCountMap", void 0);
758
+ __decorate([
759
+ property({ type: Object })
760
+ ], SortFilterBar.prototype, "resizeObserver", void 0);
761
+ __decorate([
762
+ state()
763
+ ], SortFilterBar.prototype, "alphaSelectorVisible", void 0);
764
+ __decorate([
765
+ state()
766
+ ], SortFilterBar.prototype, "dateSortSelectorVisible", void 0);
767
+ __decorate([
768
+ state()
769
+ ], SortFilterBar.prototype, "viewSortSelectorVisible", void 0);
770
+ __decorate([
771
+ state()
772
+ ], SortFilterBar.prototype, "desktopSelectorBarWidth", void 0);
773
+ __decorate([
774
+ state()
775
+ ], SortFilterBar.prototype, "selectorBarContainerWidth", void 0);
776
+ __decorate([
777
+ state()
778
+ ], SortFilterBar.prototype, "hoveringOverDateSortOptions", void 0);
779
+ __decorate([
780
+ query('#desktop-sort-selector')
781
+ ], SortFilterBar.prototype, "desktopSortSelector", void 0);
782
+ __decorate([
783
+ query('#sort-selector-container')
784
+ ], SortFilterBar.prototype, "sortSelectorContainer", void 0);
785
+ SortFilterBar = __decorate([
786
+ customElement('sort-filter-bar')
787
+ ], SortFilterBar);
788
+ export { SortFilterBar };
789
789
  //# sourceMappingURL=sort-filter-bar.js.map