@internetarchive/collection-browser 0.2.22 → 0.3.0-alpha.2

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 (220) 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 +42 -39
  12. package/dist/src/app-root.js +236 -203
  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 +235 -233
  69. package/dist/src/collection-browser.js +1032 -1046
  70. package/dist/src/collection-browser.js.map +1 -1
  71. package/dist/src/collection-facets/facets-template.d.ts +16 -16
  72. package/dist/src/collection-facets/facets-template.js +125 -125
  73. package/dist/src/collection-facets/facets-util.d.ts +10 -10
  74. package/dist/src/collection-facets/facets-util.js +19 -19
  75. package/dist/src/collection-facets/more-facets-content.d.ts +84 -83
  76. package/dist/src/collection-facets/more-facets-content.js +353 -351
  77. package/dist/src/collection-facets/more-facets-content.js.map +1 -1
  78. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  79. package/dist/src/collection-facets/more-facets-pagination.js +192 -192
  80. package/dist/src/collection-facets.d.ts +71 -79
  81. package/dist/src/collection-facets.js +325 -338
  82. package/dist/src/collection-facets.js.map +1 -1
  83. package/dist/src/empty-placeholder.d.ts +11 -11
  84. package/dist/src/empty-placeholder.js +42 -42
  85. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  86. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  87. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  88. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  89. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  90. package/dist/src/mediatype/mediatype-config.js +85 -85
  91. package/dist/src/models.d.ts +90 -89
  92. package/dist/src/models.js +85 -85
  93. package/dist/src/models.js.map +1 -1
  94. package/dist/src/restoration-state-handler.d.ts +38 -38
  95. package/dist/src/restoration-state-handler.js +202 -202
  96. package/dist/src/sort-filter-bar/alpha-bar.d.ts +9 -9
  97. package/dist/src/sort-filter-bar/alpha-bar.js +41 -41
  98. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  99. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  100. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  101. package/dist/src/sort-filter-bar/img/list.js +2 -2
  102. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  103. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  104. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  105. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  106. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +107 -107
  107. package/dist/src/sort-filter-bar/sort-filter-bar.js +423 -423
  108. package/dist/src/styles/item-image-styles.d.ts +8 -8
  109. package/dist/src/styles/item-image-styles.js +9 -9
  110. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  111. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  112. package/dist/src/tiles/grid/account-tile.d.ts +8 -8
  113. package/dist/src/tiles/grid/account-tile.js +20 -20
  114. package/dist/src/tiles/grid/collection-tile.d.ts +7 -7
  115. package/dist/src/tiles/grid/collection-tile.js +23 -23
  116. package/dist/src/tiles/grid/item-tile.d.ts +24 -24
  117. package/dist/src/tiles/grid/item-tile.js +87 -87
  118. package/dist/src/tiles/grid/tile-stats.d.ts +10 -10
  119. package/dist/src/tiles/grid/tile-stats.js +35 -35
  120. package/dist/src/tiles/image-block.d.ts +17 -17
  121. package/dist/src/tiles/image-block.js +73 -73
  122. package/dist/src/tiles/item-image.d.ts +31 -31
  123. package/dist/src/tiles/item-image.js +103 -103
  124. package/dist/src/tiles/list/account-label.d.ts +1 -1
  125. package/dist/src/tiles/list/account-label.js +6 -6
  126. package/dist/src/tiles/list/date-label.d.ts +1 -1
  127. package/dist/src/tiles/list/date-label.js +12 -12
  128. package/dist/src/tiles/list/tile-list-compact-header.d.ts +12 -12
  129. package/dist/src/tiles/list/tile-list-compact-header.js +41 -41
  130. package/dist/src/tiles/list/tile-list-compact.d.ts +20 -20
  131. package/dist/src/tiles/list/tile-list-compact.js +87 -87
  132. package/dist/src/tiles/list/tile-list.d.ts +50 -50
  133. package/dist/src/tiles/list/tile-list.js +263 -263
  134. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  135. package/dist/src/tiles/mediatype-icon.js +47 -47
  136. package/dist/src/tiles/overlay/icon-overlay.d.ts +7 -7
  137. package/dist/src/tiles/overlay/icon-overlay.js +31 -31
  138. package/dist/src/tiles/overlay/text-overlay.d.ts +8 -8
  139. package/dist/src/tiles/overlay/text-overlay.js +31 -31
  140. package/dist/src/tiles/text-snippet-block.d.ts +29 -29
  141. package/dist/src/tiles/text-snippet-block.js +81 -81
  142. package/dist/src/tiles/text-snippet-block.js.map +1 -1
  143. package/dist/src/tiles/tile-dispatcher.d.ts +36 -36
  144. package/dist/src/tiles/tile-dispatcher.js +128 -128
  145. package/dist/src/utils/analytics-events.d.ts +18 -18
  146. package/dist/src/utils/analytics-events.js +20 -20
  147. package/dist/src/utils/format-count.d.ts +7 -7
  148. package/dist/src/utils/format-count.js +75 -75
  149. package/dist/src/utils/format-date.d.ts +2 -2
  150. package/dist/src/utils/format-date.js +23 -23
  151. package/dist/test/collection-browser.test.d.ts +1 -1
  152. package/dist/test/collection-browser.test.js +328 -200
  153. package/dist/test/collection-browser.test.js.map +1 -1
  154. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  155. package/dist/test/collection-facets/facets-template.test.js +62 -62
  156. package/dist/test/collection-facets/facets-util.test.d.ts +1 -1
  157. package/dist/test/collection-facets/facets-util.test.js +12 -12
  158. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  159. package/dist/test/collection-facets/more-facets-content.test.js +92 -91
  160. package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
  161. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  162. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  163. package/dist/test/collection-facets.test.d.ts +2 -2
  164. package/dist/test/collection-facets.test.js +182 -181
  165. package/dist/test/collection-facets.test.js.map +1 -1
  166. package/dist/test/empty-placeholder.test.d.ts +1 -1
  167. package/dist/test/empty-placeholder.test.js +33 -33
  168. package/dist/test/icon-overlay.test.d.ts +1 -1
  169. package/dist/test/icon-overlay.test.js +24 -24
  170. package/dist/test/item-image.test.d.ts +1 -1
  171. package/dist/test/item-image.test.js +56 -56
  172. package/dist/test/mediatype-config.test.d.ts +1 -1
  173. package/dist/test/mediatype-config.test.js +16 -16
  174. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  175. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  176. package/dist/test/mocks/mock-collection-name-cache.d.ts +7 -7
  177. package/dist/test/mocks/mock-collection-name-cache.js +13 -13
  178. package/dist/test/mocks/mock-search-responses.d.ts +5 -4
  179. package/dist/test/mocks/mock-search-responses.js +103 -57
  180. package/dist/test/mocks/mock-search-responses.js.map +1 -1
  181. package/dist/test/mocks/mock-search-service.d.ts +13 -8
  182. package/dist/test/mocks/mock-search-service.js +25 -19
  183. package/dist/test/mocks/mock-search-service.js.map +1 -1
  184. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  185. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +113 -113
  186. package/dist/test/text-overlay.test.d.ts +1 -1
  187. package/dist/test/text-overlay.test.js +41 -41
  188. package/dist/test/text-snippet-block.test.d.ts +1 -1
  189. package/dist/test/text-snippet-block.test.js +57 -45
  190. package/dist/test/text-snippet-block.test.js.map +1 -1
  191. package/dist/test/tile-stats.test.d.ts +1 -1
  192. package/dist/test/tile-stats.test.js +33 -33
  193. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  194. package/dist/test/tiles/grid/item-tile.test.js +107 -107
  195. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  196. package/dist/test/tiles/list/tile-list.test.js +36 -36
  197. package/dist/test/utils/format-count.test.d.ts +1 -1
  198. package/dist/test/utils/format-count.test.js +23 -23
  199. package/dist/test/utils/format-date.test.d.ts +1 -1
  200. package/dist/test/utils/format-date.test.js +17 -17
  201. package/index.html +24 -24
  202. package/local.archive.org.cert +86 -86
  203. package/local.archive.org.key +27 -27
  204. package/package.json +115 -115
  205. package/renovate.json +6 -6
  206. package/src/app-root.ts +49 -11
  207. package/src/collection-browser.ts +76 -86
  208. package/src/collection-facets/more-facets-content.ts +35 -27
  209. package/src/collection-facets.ts +9 -26
  210. package/src/models.ts +2 -0
  211. package/src/tiles/text-snippet-block.ts +1 -1
  212. package/test/collection-browser.test.ts +192 -0
  213. package/test/collection-facets/more-facets-content.test.ts +5 -5
  214. package/test/collection-facets.test.ts +16 -15
  215. package/test/mocks/mock-search-responses.ts +83 -34
  216. package/test/mocks/mock-search-service.ts +27 -17
  217. package/test/text-snippet-block.test.ts +17 -0
  218. package/tsconfig.json +21 -21
  219. package/web-dev-server.config.mjs +30 -30
  220. package/web-test-runner.config.mjs +41 -41
@@ -1,58 +1,104 @@
1
- import { Metadata, } from '@internetarchive/search-service';
2
- export const mockSuccessSingleResult = {
3
- success: {
4
- rawResponse: {},
5
- response: {
6
- numFound: 1,
7
- docs: [
8
- new Metadata({
9
- identifier: 'foo',
10
- collections_raw: ['foo', 'bar'],
11
- }),
12
- ],
13
- start: 0,
14
- },
15
- responseHeader: {
16
- status: 0,
17
- QTime: 0,
18
- params: {
19
- query: 'collection:foo',
20
- qin: 'collection:foo',
21
- fields: 'identifier, collections_raw',
22
- wt: 'foo',
23
- start: 0,
24
- },
25
- },
26
- },
27
- };
28
- export const mockSuccessMultipleResults = {
29
- success: {
30
- rawResponse: {},
31
- response: {
32
- numFound: 2,
33
- docs: [
34
- new Metadata({
35
- identifier: 'foo',
36
- collections_raw: ['foo', 'bar'],
37
- }),
38
- new Metadata({
39
- identifier: 'bar',
40
- collections_raw: ['baz', 'boop'],
41
- }),
42
- ],
43
- start: 0,
44
- },
45
- responseHeader: {
46
- status: 0,
47
- QTime: 0,
48
- params: {
49
- query: 'collection:foo',
50
- qin: 'collection:foo',
51
- fields: 'identifier, collections_raw',
52
- wt: 'foo',
53
- start: 0,
54
- },
55
- },
56
- },
57
- };
1
+ import { ItemHit, } from '@internetarchive/search-service';
2
+ export const mockSuccessSingleResult = {
3
+ success: {
4
+ request: {
5
+ clientParameters: {
6
+ user_query: 'collection:foo',
7
+ sort: [],
8
+ },
9
+ finalizedParameters: {
10
+ user_query: 'collection:foo',
11
+ sort: [],
12
+ },
13
+ },
14
+ rawResponse: {},
15
+ response: {
16
+ totalResults: 1,
17
+ returnedCount: 1,
18
+ results: [
19
+ new ItemHit({
20
+ fields: {
21
+ identifier: 'foo',
22
+ collection: ['foo', 'bar'],
23
+ },
24
+ }),
25
+ ],
26
+ },
27
+ responseHeader: {
28
+ succeeded: true,
29
+ query_time: 0,
30
+ },
31
+ },
32
+ };
33
+ export const getMockSuccessSingleResultWithSort = (resultsSpy) => ({
34
+ success: {
35
+ request: {
36
+ clientParameters: {
37
+ user_query: 'with-sort',
38
+ sort: ['foo:asc'],
39
+ },
40
+ finalizedParameters: {
41
+ user_query: 'with-sort',
42
+ sort: ['foo:asc'],
43
+ },
44
+ },
45
+ rawResponse: {},
46
+ response: {
47
+ totalResults: 1,
48
+ returnedCount: 1,
49
+ get results() {
50
+ resultsSpy();
51
+ return [
52
+ new ItemHit({
53
+ fields: {
54
+ identifier: 'foo',
55
+ collection: ['foo', 'bar'],
56
+ },
57
+ }),
58
+ ];
59
+ },
60
+ },
61
+ responseHeader: {
62
+ succeeded: true,
63
+ query_time: 0,
64
+ },
65
+ },
66
+ });
67
+ export const mockSuccessMultipleResults = {
68
+ success: {
69
+ request: {
70
+ clientParameters: {
71
+ user_query: 'collection:foo',
72
+ sort: [],
73
+ },
74
+ finalizedParameters: {
75
+ user_query: 'collection:foo',
76
+ sort: [],
77
+ },
78
+ },
79
+ rawResponse: {},
80
+ response: {
81
+ totalResults: 2,
82
+ returnedCount: 2,
83
+ results: [
84
+ new ItemHit({
85
+ fields: {
86
+ identifier: 'foo',
87
+ collection: ['foo', 'bar'],
88
+ },
89
+ }),
90
+ new ItemHit({
91
+ fields: {
92
+ identifier: 'bar',
93
+ collection: ['baz', 'boop'],
94
+ },
95
+ }),
96
+ ],
97
+ },
98
+ responseHeader: {
99
+ succeeded: true,
100
+ query_time: 0,
101
+ },
102
+ },
103
+ };
58
104
  //# sourceMappingURL=mock-search-responses.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mock-search-responses.js","sourceRoot":"","sources":["../../../test/mocks/mock-search-responses.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,GAGT,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,uBAAuB,GAGhC;IACF,OAAO,EAAE;QACP,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE;YACR,QAAQ,EAAE,CAAC;YACX,IAAI,EAAE;gBACJ,IAAI,QAAQ,CAAC;oBACX,UAAU,EAAE,KAAK;oBACjB,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;iBAChC,CAAC;aACH;YACD,KAAK,EAAE,CAAC;SACT;QACD,cAAc,EAAE;YACd,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;YACR,MAAM,EAAE;gBACN,KAAK,EAAE,gBAAgB;gBACvB,GAAG,EAAE,gBAAgB;gBACrB,MAAM,EAAE,6BAA6B;gBACrC,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,CAAC;aACT;SACF;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAGnC;IACF,OAAO,EAAE;QACP,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE;YACR,QAAQ,EAAE,CAAC;YACX,IAAI,EAAE;gBACJ,IAAI,QAAQ,CAAC;oBACX,UAAU,EAAE,KAAK;oBACjB,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;iBAChC,CAAC;gBACF,IAAI,QAAQ,CAAC;oBACX,UAAU,EAAE,KAAK;oBACjB,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;iBACjC,CAAC;aACH;YACD,KAAK,EAAE,CAAC;SACT;QACD,cAAc,EAAE;YACd,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;YACR,MAAM,EAAE;gBACN,KAAK,EAAE,gBAAgB;gBACvB,GAAG,EAAE,gBAAgB;gBACrB,MAAM,EAAE,6BAA6B;gBACrC,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,CAAC;aACT;SACF;KACF;CACF,CAAC","sourcesContent":["import type { Result } from '@internetarchive/result-type';\nimport {\n Metadata,\n SearchResponse,\n SearchServiceError,\n} from '@internetarchive/search-service';\n\nexport const mockSuccessSingleResult: Result<\n SearchResponse,\n SearchServiceError\n> = {\n success: {\n rawResponse: {},\n response: {\n numFound: 1,\n docs: [\n new Metadata({\n identifier: 'foo',\n collections_raw: ['foo', 'bar'],\n }),\n ],\n start: 0,\n },\n responseHeader: {\n status: 0,\n QTime: 0,\n params: {\n query: 'collection:foo',\n qin: 'collection:foo',\n fields: 'identifier, collections_raw',\n wt: 'foo',\n start: 0,\n },\n },\n },\n};\n\nexport const mockSuccessMultipleResults: Result<\n SearchResponse,\n SearchServiceError\n> = {\n success: {\n rawResponse: {},\n response: {\n numFound: 2,\n docs: [\n new Metadata({\n identifier: 'foo',\n collections_raw: ['foo', 'bar'],\n }),\n new Metadata({\n identifier: 'bar',\n collections_raw: ['baz', 'boop'],\n }),\n ],\n start: 0,\n },\n responseHeader: {\n status: 0,\n QTime: 0,\n params: {\n query: 'collection:foo',\n qin: 'collection:foo',\n fields: 'identifier, collections_raw',\n wt: 'foo',\n start: 0,\n },\n },\n },\n};\n"]}
1
+ {"version":3,"file":"mock-search-responses.js","sourceRoot":"","sources":["../../../test/mocks/mock-search-responses.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,GAGR,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,uBAAuB,GAGhC;IACF,OAAO,EAAE;QACP,OAAO,EAAE;YACP,gBAAgB,EAAE;gBAChB,UAAU,EAAE,gBAAgB;gBAC5B,IAAI,EAAE,EAAE;aACT;YACD,mBAAmB,EAAE;gBACnB,UAAU,EAAE,gBAAgB;gBAC5B,IAAI,EAAE,EAAE;aACT;SACF;QACD,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE;YACR,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE;gBACP,IAAI,OAAO,CAAC;oBACV,MAAM,EAAE;wBACN,UAAU,EAAE,KAAK;wBACjB,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;qBAC3B;iBACF,CAAC;aACH;SACF;QACD,cAAc,EAAE;YACd,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,CAAC;SACd;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAEG,CAAC,UAAoB,EAAE,EAAE,CAAC,CAAC;IAC3E,OAAO,EAAE;QACP,OAAO,EAAE;YACP,gBAAgB,EAAE;gBAChB,UAAU,EAAE,WAAW;gBACvB,IAAI,EAAE,CAAC,SAAS,CAAC;aAClB;YACD,mBAAmB,EAAE;gBACnB,UAAU,EAAE,WAAW;gBACvB,IAAI,EAAE,CAAC,SAAS,CAAC;aAClB;SACF;QACD,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE;YACR,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,IAAI,OAAO;gBACT,UAAU,EAAE,CAAC;gBACb,OAAO;oBACL,IAAI,OAAO,CAAC;wBACV,MAAM,EAAE;4BACN,UAAU,EAAE,KAAK;4BACjB,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;yBAC3B;qBACF,CAAC;iBACH,CAAC;YACJ,CAAC;SACF;QACD,cAAc,EAAE;YACd,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,CAAC;SACd;KACF;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAGnC;IACF,OAAO,EAAE;QACP,OAAO,EAAE;YACP,gBAAgB,EAAE;gBAChB,UAAU,EAAE,gBAAgB;gBAC5B,IAAI,EAAE,EAAE;aACT;YACD,mBAAmB,EAAE;gBACnB,UAAU,EAAE,gBAAgB;gBAC5B,IAAI,EAAE,EAAE;aACT;SACF;QACD,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE;YACR,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE;gBACP,IAAI,OAAO,CAAC;oBACV,MAAM,EAAE;wBACN,UAAU,EAAE,KAAK;wBACjB,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;qBAC3B;iBACF,CAAC;gBACF,IAAI,OAAO,CAAC;oBACV,MAAM,EAAE;wBACN,UAAU,EAAE,KAAK;wBACjB,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;qBAC5B;iBACF,CAAC;aACH;SACF;QACD,cAAc,EAAE;YACd,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,CAAC;SACd;KACF;CACF,CAAC","sourcesContent":["import type { Result } from '@internetarchive/result-type';\nimport {\n ItemHit,\n SearchResponse,\n SearchServiceError,\n} from '@internetarchive/search-service';\n\nexport const mockSuccessSingleResult: Result<\n SearchResponse,\n SearchServiceError\n> = {\n success: {\n request: {\n clientParameters: {\n user_query: 'collection:foo',\n sort: [],\n },\n finalizedParameters: {\n user_query: 'collection:foo',\n sort: [],\n },\n },\n rawResponse: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n collection: ['foo', 'bar'],\n },\n }),\n ],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n};\n\nexport const getMockSuccessSingleResultWithSort: (\n resultsSpy: Function\n) => Result<SearchResponse, SearchServiceError> = (resultsSpy: Function) => ({\n success: {\n request: {\n clientParameters: {\n user_query: 'with-sort',\n sort: ['foo:asc'],\n },\n finalizedParameters: {\n user_query: 'with-sort',\n sort: ['foo:asc'],\n },\n },\n rawResponse: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n get results() {\n resultsSpy();\n return [\n new ItemHit({\n fields: {\n identifier: 'foo',\n collection: ['foo', 'bar'],\n },\n }),\n ];\n },\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const mockSuccessMultipleResults: Result<\n SearchResponse,\n SearchServiceError\n> = {\n success: {\n request: {\n clientParameters: {\n user_query: 'collection:foo',\n sort: [],\n },\n finalizedParameters: {\n user_query: 'collection:foo',\n sort: [],\n },\n },\n rawResponse: {},\n response: {\n totalResults: 2,\n returnedCount: 2,\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n collection: ['foo', 'bar'],\n },\n }),\n new ItemHit({\n fields: {\n identifier: 'bar',\n collection: ['baz', 'boop'],\n },\n }),\n ],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n};\n"]}
@@ -1,8 +1,13 @@
1
- import type { Result } from '@internetarchive/result-type';
2
- import type { MetadataResponse, SearchParams, SearchResponse, SearchServiceInterface, SearchServiceError } from '@internetarchive/search-service';
3
- export declare class MockSearchService implements SearchServiceInterface {
4
- searchParams?: SearchParams;
5
- search(params: SearchParams): Promise<Result<SearchResponse, SearchServiceError>>;
6
- fetchMetadata(identifier: string): Promise<Result<MetadataResponse, SearchServiceError>>;
7
- fetchMetadataValue<T>(identifier: string, keypath: string): Promise<Result<T, SearchServiceError>>;
8
- }
1
+ import type { Result } from '@internetarchive/result-type';
2
+ import type { SearchParams, SearchResponse, SearchServiceInterface, SearchServiceError, SearchType } from '@internetarchive/search-service';
3
+ export declare class MockSearchService implements SearchServiceInterface {
4
+ searchParams?: SearchParams;
5
+ searchType?: SearchType;
6
+ asyncResponse: boolean;
7
+ resultsSpy: Function;
8
+ constructor({ asyncResponse, resultsSpy }?: {
9
+ asyncResponse?: boolean | undefined;
10
+ resultsSpy?: (() => void) | undefined;
11
+ });
12
+ search(params: SearchParams, searchType: SearchType): Promise<Result<SearchResponse, SearchServiceError>>;
13
+ }
@@ -1,20 +1,26 @@
1
- import { mockSuccessSingleResult, mockSuccessMultipleResults, } from './mock-search-responses';
2
- export class MockSearchService {
3
- async search(params) {
4
- var _a;
5
- this.searchParams = params;
6
- if (((_a = this.searchParams) === null || _a === void 0 ? void 0 : _a.query) === 'single-result') {
7
- return mockSuccessSingleResult;
8
- }
9
- return mockSuccessMultipleResults;
10
- }
11
- async fetchMetadata(identifier) {
12
- console.debug('fetchMetadata', identifier);
13
- throw new Error('Method not implemented.');
14
- }
15
- async fetchMetadataValue(identifier, keypath) {
16
- console.debug('fetchMetadataValue', identifier, keypath);
17
- throw new Error('Method not implemented.');
18
- }
19
- }
1
+ import { mockSuccessSingleResult, mockSuccessMultipleResults, getMockSuccessSingleResultWithSort, } from './mock-search-responses';
2
+ export class MockSearchService {
3
+ constructor({ asyncResponse = false, resultsSpy = () => { } } = {}) {
4
+ this.asyncResponse = asyncResponse;
5
+ this.resultsSpy = resultsSpy;
6
+ }
7
+ async search(params, searchType) {
8
+ var _a, _b;
9
+ this.searchParams = params;
10
+ this.searchType = searchType;
11
+ if (this.asyncResponse) {
12
+ // Add an artificial 1-tick delay
13
+ await new Promise(res => {
14
+ setTimeout(res, 0);
15
+ });
16
+ }
17
+ if (((_a = this.searchParams) === null || _a === void 0 ? void 0 : _a.query) === 'single-result') {
18
+ return mockSuccessSingleResult;
19
+ }
20
+ if (((_b = this.searchParams) === null || _b === void 0 ? void 0 : _b.query) === 'with-sort') {
21
+ return getMockSuccessSingleResultWithSort(this.resultsSpy);
22
+ }
23
+ return mockSuccessMultipleResults;
24
+ }
25
+ }
20
26
  //# sourceMappingURL=mock-search-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mock-search-service.js","sourceRoot":"","sources":["../../../test/mocks/mock-search-service.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,OAAO,iBAAiB;IAG5B,KAAK,CAAC,MAAM,CACV,MAAoB;;QAEpB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAE3B,IAAI,CAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,MAAK,eAAe,EAAE;YAChD,OAAO,uBAAuB,CAAC;SAChC;QAED,OAAO,0BAA0B,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,UAAkB;QAElB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,UAAkB,EAClB,OAAe;QAEf,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;CACF","sourcesContent":["import type { Result } from '@internetarchive/result-type';\nimport type {\n MetadataResponse,\n SearchParams,\n SearchResponse,\n SearchServiceInterface,\n SearchServiceError,\n} from '@internetarchive/search-service';\nimport {\n mockSuccessSingleResult,\n mockSuccessMultipleResults,\n} from './mock-search-responses';\n\nexport class MockSearchService implements SearchServiceInterface {\n searchParams?: SearchParams;\n\n async search(\n params: SearchParams\n ): Promise<Result<SearchResponse, SearchServiceError>> {\n this.searchParams = params;\n\n if (this.searchParams?.query === 'single-result') {\n return mockSuccessSingleResult;\n }\n\n return mockSuccessMultipleResults;\n }\n\n async fetchMetadata(\n identifier: string\n ): Promise<Result<MetadataResponse, SearchServiceError>> {\n console.debug('fetchMetadata', identifier);\n throw new Error('Method not implemented.');\n }\n\n async fetchMetadataValue<T>(\n identifier: string,\n keypath: string\n ): Promise<Result<T, SearchServiceError>> {\n console.debug('fetchMetadataValue', identifier, keypath);\n throw new Error('Method not implemented.');\n }\n}\n"]}
1
+ {"version":3,"file":"mock-search-service.js","sourceRoot":"","sources":["../../../test/mocks/mock-search-service.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,yBAAyB,CAAC;AAEjC,MAAM,OAAO,iBAAiB;IAS5B,YAAY,EAAE,aAAa,GAAG,KAAK,EAAE,UAAU,GAAG,GAAG,EAAE,GAAE,CAAC,EAAE,GAAG,EAAE;QAC/D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAoB,EACpB,UAAsB;;QAEtB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,iCAAiC;YACjC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;gBACtB,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;SACJ;QAED,IAAI,CAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,MAAK,eAAe,EAAE;YAChD,OAAO,uBAAuB,CAAC;SAChC;QAED,IAAI,CAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,MAAK,WAAW,EAAE;YAC5C,OAAO,kCAAkC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC5D;QAED,OAAO,0BAA0B,CAAC;IACpC,CAAC;CACF","sourcesContent":["import type { Result } from '@internetarchive/result-type';\nimport type {\n SearchParams,\n SearchResponse,\n SearchServiceInterface,\n SearchServiceError,\n SearchType,\n} from '@internetarchive/search-service';\nimport {\n mockSuccessSingleResult,\n mockSuccessMultipleResults,\n getMockSuccessSingleResultWithSort,\n} from './mock-search-responses';\n\nexport class MockSearchService implements SearchServiceInterface {\n searchParams?: SearchParams;\n\n searchType?: SearchType;\n\n asyncResponse: boolean;\n\n resultsSpy: Function;\n\n constructor({ asyncResponse = false, resultsSpy = () => {} } = {}) {\n this.asyncResponse = asyncResponse;\n this.resultsSpy = resultsSpy;\n }\n\n async search(\n params: SearchParams,\n searchType: SearchType\n ): Promise<Result<SearchResponse, SearchServiceError>> {\n this.searchParams = params;\n this.searchType = searchType;\n\n if (this.asyncResponse) {\n // Add an artificial 1-tick delay\n await new Promise(res => {\n setTimeout(res, 0);\n });\n }\n\n if (this.searchParams?.query === 'single-result') {\n return mockSuccessSingleResult;\n }\n\n if (this.searchParams?.query === 'with-sort') {\n return getMockSuccessSingleResultWithSort(this.resultsSpy);\n }\n\n return mockSuccessMultipleResults;\n }\n}\n"]}
@@ -1 +1 @@
1
- import '../../src/sort-filter-bar/sort-filter-bar';
1
+ import '../../src/sort-filter-bar/sort-filter-bar';
@@ -1,122 +1,122 @@
1
- /* eslint-disable import/no-duplicates */
2
- import { expect, fixture } from '@open-wc/testing';
3
- import { html } from 'lit';
4
- import '../../src/sort-filter-bar/sort-filter-bar';
5
- describe('Sort direction buttons', () => {
6
- it('should render sort direction button', async () => {
7
- var _a;
1
+ /* eslint-disable import/no-duplicates */
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import { html } from 'lit';
4
+ import '../../src/sort-filter-bar/sort-filter-bar';
5
+ describe('Sort direction buttons', () => {
6
+ it('should render sort direction button', async () => {
7
+ var _a;
8
8
  const el = await fixture(html `
9
9
  <sort-filter-bar> </sort-filter-bar>
10
- `);
11
- el.sortDirection = 'asc'; // selected sort
12
- await el.updateComplete;
13
- const sortDirectionButtonList = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#sort-direction-selector');
14
- const sortByAscButton = sortDirectionButtonList === null || sortDirectionButtonList === void 0 ? void 0 : sortDirectionButtonList.querySelector('#sort-ascending-btn');
15
- expect(sortByAscButton).to.exist;
16
- // ascending order button is selected
17
- expect(sortByAscButton === null || sortByAscButton === void 0 ? void 0 : sortByAscButton.getAttribute('class')).to.equal('sort-button selected');
18
- const sortByDescButton = sortDirectionButtonList === null || sortDirectionButtonList === void 0 ? void 0 : sortDirectionButtonList.querySelector('#sort-descending-btn');
19
- expect(sortByDescButton).to.exist;
20
- // descending order button is not selected
21
- expect(sortByDescButton === null || sortByDescButton === void 0 ? void 0 : sortByDescButton.getAttribute('class')).to.not.equal('sort-button selected');
22
- });
23
- });
24
- describe('Sort selector default buttons', async () => {
25
- var _a;
10
+ `);
11
+ el.sortDirection = 'asc'; // selected sort
12
+ await el.updateComplete;
13
+ const sortDirectionButtonList = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#sort-direction-selector');
14
+ const sortByAscButton = sortDirectionButtonList === null || sortDirectionButtonList === void 0 ? void 0 : sortDirectionButtonList.querySelector('#sort-ascending-btn');
15
+ expect(sortByAscButton).to.exist;
16
+ // ascending order button is selected
17
+ expect(sortByAscButton === null || sortByAscButton === void 0 ? void 0 : sortByAscButton.getAttribute('class')).to.equal('sort-button selected');
18
+ const sortByDescButton = sortDirectionButtonList === null || sortDirectionButtonList === void 0 ? void 0 : sortDirectionButtonList.querySelector('#sort-descending-btn');
19
+ expect(sortByDescButton).to.exist;
20
+ // descending order button is not selected
21
+ expect(sortByDescButton === null || sortByDescButton === void 0 ? void 0 : sortByDescButton.getAttribute('class')).to.not.equal('sort-button selected');
22
+ });
23
+ });
24
+ describe('Sort selector default buttons', async () => {
25
+ var _a;
26
26
  const el = await fixture(html `
27
27
  <sort-filter-bar> </sort-filter-bar>
28
- `);
29
- const sortSelectorContainer = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#desktop-sort-selector');
30
- it('should render sort-by label', async () => {
31
- var _a;
32
- expect((_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(0)) === null || _a === void 0 ? void 0 : _a.textContent).to.equal('Sort By');
33
- });
34
- it('should render default relevance-sort selector', async () => {
35
- var _a;
36
- const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
37
- expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Relevance');
38
- expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.getAttribute('class')).to.equal('selected');
39
- });
40
- it('should render default view-sort selector', async () => {
41
- var _a;
42
- const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(2)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
43
- expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Weekly Views');
44
- });
45
- it('should render active view-sort selectors', async () => {
46
- el.selectedSort = 'alltimeview';
47
- await el.updateComplete;
48
- const defaultSortSelector = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.querySelector('a.selected');
49
- expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('All-time Views');
50
- });
51
- it('should render default title-sort selector', async () => {
52
- var _a;
53
- const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
54
- expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Title');
55
- });
56
- it('should render default date-sort selector', async () => {
57
- var _a;
58
- const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(4)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
59
- expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Date Published');
60
- });
61
- it('should render active date-sort selectors', async () => {
62
- el.selectedSort = 'datereviewed';
63
- await el.updateComplete;
64
- const defaultSortSelector = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.querySelector('a.selected');
65
- expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Date Reviewed');
66
- });
67
- it('should render default creator-sort selector', async () => {
68
- var _a;
69
- const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(5)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
70
- expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Creator');
71
- });
72
- it('click event on view-sort selector', async () => {
73
- var _a;
74
- const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(2)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
75
- await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
76
- expect(el.selectedSort).to.equal('weeklyview');
77
- });
78
- it('click event on title selector', async () => {
79
- var _a;
80
- const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
81
- await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
82
- expect(el.selectedSort).to.equal('title');
83
- });
84
- it('click event on date-sort selector', async () => {
85
- var _a;
86
- const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(4)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
87
- await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
88
- expect(el.selectedSort).to.equal('date');
89
- });
90
- it('click event on creator selector', async () => {
91
- var _a;
92
- const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(5)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
93
- await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
94
- expect(el.selectedSort).to.equal('creator');
95
- });
96
- });
97
- describe('Display mode/style buttons', () => {
98
- it('should render all display mode buttons', async () => {
99
- var _a, _b, _c, _d, _e;
28
+ `);
29
+ const sortSelectorContainer = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#desktop-sort-selector');
30
+ it('should render sort-by label', async () => {
31
+ var _a;
32
+ expect((_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(0)) === null || _a === void 0 ? void 0 : _a.textContent).to.equal('Sort By');
33
+ });
34
+ it('should render default relevance-sort selector', async () => {
35
+ var _a;
36
+ const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
37
+ expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Relevance');
38
+ expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.getAttribute('class')).to.equal('selected');
39
+ });
40
+ it('should render default view-sort selector', async () => {
41
+ var _a;
42
+ const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(2)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
43
+ expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Weekly Views');
44
+ });
45
+ it('should render active view-sort selectors', async () => {
46
+ el.selectedSort = 'alltimeview';
47
+ await el.updateComplete;
48
+ const defaultSortSelector = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.querySelector('a.selected');
49
+ expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('All-time Views');
50
+ });
51
+ it('should render default title-sort selector', async () => {
52
+ var _a;
53
+ const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
54
+ expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Title');
55
+ });
56
+ it('should render default date-sort selector', async () => {
57
+ var _a;
58
+ const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(4)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
59
+ expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Date Published');
60
+ });
61
+ it('should render active date-sort selectors', async () => {
62
+ el.selectedSort = 'datereviewed';
63
+ await el.updateComplete;
64
+ const defaultSortSelector = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.querySelector('a.selected');
65
+ expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Date Reviewed');
66
+ });
67
+ it('should render default creator-sort selector', async () => {
68
+ var _a;
69
+ const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(5)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
70
+ expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Creator');
71
+ });
72
+ it('click event on view-sort selector', async () => {
73
+ var _a;
74
+ const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(2)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
75
+ await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
76
+ expect(el.selectedSort).to.equal('weeklyview');
77
+ });
78
+ it('click event on title selector', async () => {
79
+ var _a;
80
+ const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
81
+ await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
82
+ expect(el.selectedSort).to.equal('title');
83
+ });
84
+ it('click event on date-sort selector', async () => {
85
+ var _a;
86
+ const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(4)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
87
+ await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
88
+ expect(el.selectedSort).to.equal('date');
89
+ });
90
+ it('click event on creator selector', async () => {
91
+ var _a;
92
+ const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(5)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
93
+ await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
94
+ expect(el.selectedSort).to.equal('creator');
95
+ });
96
+ });
97
+ describe('Display mode/style buttons', () => {
98
+ it('should render all display mode buttons', async () => {
99
+ var _a, _b, _c, _d, _e;
100
100
  const el = await fixture(html `
101
101
  <sort-filter-bar> </sort-filter-bar>
102
- `);
103
- const displayModeButtonList = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#display-style-selector')) === null || _b === void 0 ? void 0 : _b.querySelector('ul');
104
- const gridButton = (_c = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(0)) === null || _c === void 0 ? void 0 : _c.querySelector('#grid-button');
105
- expect(gridButton).to.exist;
106
- const detailListButton = (_d = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(1)) === null || _d === void 0 ? void 0 : _d.querySelector('#list-detail-button');
107
- expect(detailListButton).to.exist;
108
- const compactListButton = (_e = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(2)) === null || _e === void 0 ? void 0 : _e.querySelector('#list-compact-button');
109
- expect(compactListButton).to.exist;
110
- });
111
- it('should active current display mode', async () => {
112
- var _a, _b, _c;
102
+ `);
103
+ const displayModeButtonList = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#display-style-selector')) === null || _b === void 0 ? void 0 : _b.querySelector('ul');
104
+ const gridButton = (_c = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(0)) === null || _c === void 0 ? void 0 : _c.querySelector('#grid-button');
105
+ expect(gridButton).to.exist;
106
+ const detailListButton = (_d = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(1)) === null || _d === void 0 ? void 0 : _d.querySelector('#list-detail-button');
107
+ expect(detailListButton).to.exist;
108
+ const compactListButton = (_e = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(2)) === null || _e === void 0 ? void 0 : _e.querySelector('#list-compact-button');
109
+ expect(compactListButton).to.exist;
110
+ });
111
+ it('should active current display mode', async () => {
112
+ var _a, _b, _c;
113
113
  const el = await fixture(html `
114
114
  <sort-filter-bar> </sort-filter-bar>
115
- `);
116
- el.displayMode = 'grid';
117
- await el.updateComplete;
118
- const displayModeTitle = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#display-style-selector')) === null || _b === void 0 ? void 0 : _b.querySelector('button.active')) === null || _c === void 0 ? void 0 : _c.getAttribute('title');
119
- expect(displayModeTitle).to.equal('Tile view');
120
- });
121
- });
115
+ `);
116
+ el.displayMode = 'grid';
117
+ await el.updateComplete;
118
+ const displayModeTitle = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#display-style-selector')) === null || _b === void 0 ? void 0 : _b.querySelector('button.active')) === null || _c === void 0 ? void 0 : _c.getAttribute('title');
119
+ expect(displayModeTitle).to.equal('Tile view');
120
+ });
121
+ });
122
122
  //# sourceMappingURL=sort-filter-bar.test.js.map
@@ -1 +1 @@
1
- import '../src/tiles/overlay/text-overlay';
1
+ import '../src/tiles/overlay/text-overlay';
@@ -1,48 +1,48 @@
1
- /* eslint-disable import/no-duplicates */
2
- import { expect, fixture } from '@open-wc/testing';
3
- import { html } from 'lit';
4
- import '../src/tiles/overlay/text-overlay';
5
- describe('Text Overlay component', () => {
6
- it('should render initial component', async () => {
7
- var _a, _b;
8
- const el = await fixture(html `<text-overlay></text-overlay>`);
9
- const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
10
- const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
11
- expect(overlay).to.exist;
12
- expect(noPreview).to.exist;
13
- });
14
- it('should render component if loggedIn required', async () => {
15
- var _a, _b;
1
+ /* eslint-disable import/no-duplicates */
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import { html } from 'lit';
4
+ import '../src/tiles/overlay/text-overlay';
5
+ describe('Text Overlay component', () => {
6
+ it('should render initial component', async () => {
7
+ var _a, _b;
8
+ const el = await fixture(html `<text-overlay></text-overlay>`);
9
+ const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
10
+ const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
11
+ expect(overlay).to.exist;
12
+ expect(noPreview).to.exist;
13
+ });
14
+ it('should render component if loggedIn required', async () => {
15
+ var _a, _b;
16
16
  const el = await fixture(html `
17
17
  <text-overlay .loggedIn=${false} .loginRequired=${true}> </text-overlay>
18
- `);
19
- const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
20
- const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
21
- expect(overlay).to.exist;
22
- expect(noPreview).to.exist;
23
- expect(noPreview === null || noPreview === void 0 ? void 0 : noPreview.textContent).to.equal('Log in\nto view this item');
24
- });
25
- it('should render component if content warning', async () => {
26
- var _a, _b;
18
+ `);
19
+ const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
20
+ const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
21
+ expect(overlay).to.exist;
22
+ expect(noPreview).to.exist;
23
+ expect(noPreview === null || noPreview === void 0 ? void 0 : noPreview.textContent).to.equal('Log in\nto view this item');
24
+ });
25
+ it('should render component if content warning', async () => {
26
+ var _a, _b;
27
27
  const el = await fixture(html `
28
28
  <text-overlay .loggedIn=${false} .loginRequired=${false}> </text-overlay>
29
- `);
30
- const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
31
- const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
32
- expect(overlay).to.exist;
33
- expect(noPreview).to.exist;
34
- expect(noPreview === null || noPreview === void 0 ? void 0 : noPreview.textContent).to.equal('Content may be inappropriate');
35
- });
36
- it('should render component if content warning', async () => {
37
- var _a, _b;
29
+ `);
30
+ const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
31
+ const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
32
+ expect(overlay).to.exist;
33
+ expect(noPreview).to.exist;
34
+ expect(noPreview === null || noPreview === void 0 ? void 0 : noPreview.textContent).to.equal('Content may be inappropriate');
35
+ });
36
+ it('should render component if content warning', async () => {
37
+ var _a, _b;
38
38
  const el = await fixture(html `
39
39
  <text-overlay .loggedIn=${true} .loginRequired=${true}> </text-overlay>
40
- `);
41
- const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
42
- const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
43
- expect(overlay).to.exist;
44
- expect(noPreview).to.exist;
45
- expect(noPreview === null || noPreview === void 0 ? void 0 : noPreview.textContent).to.equal('Content may be inappropriate');
46
- });
47
- });
40
+ `);
41
+ const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
42
+ const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
43
+ expect(overlay).to.exist;
44
+ expect(noPreview).to.exist;
45
+ expect(noPreview === null || noPreview === void 0 ? void 0 : noPreview.textContent).to.equal('Content may be inappropriate');
46
+ });
47
+ });
48
48
  //# sourceMappingURL=text-overlay.test.js.map
@@ -1 +1 @@
1
- import '../src/tiles/text-snippet-block';
1
+ import '../src/tiles/text-snippet-block';