@internetarchive/collection-browser 0.4.11 → 0.4.12

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 (251) 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 -50
  12. package/dist/src/app-root.js +278 -278
  13. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  14. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  15. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  16. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  17. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  18. package/dist/src/assets/img/icons/chevron.js +2 -2
  19. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  20. package/dist/src/assets/img/icons/empty-query.js +2 -2
  21. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  22. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  23. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  24. package/dist/src/assets/img/icons/eye.js +2 -2
  25. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  26. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  27. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  28. package/dist/src/assets/img/icons/login-required.js +2 -2
  29. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  30. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  31. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  32. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  33. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  34. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  35. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  36. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  37. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  38. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  39. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  40. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  41. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  42. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  43. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  44. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  45. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  46. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  47. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  48. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  49. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  50. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  51. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  52. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  53. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  54. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  55. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  56. package/dist/src/assets/img/icons/null-result.js +2 -2
  57. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  58. package/dist/src/assets/img/icons/restricted.js +2 -2
  59. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  60. package/dist/src/assets/img/icons/reviews.js +2 -2
  61. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  62. package/dist/src/assets/img/icons/upload.js +2 -2
  63. package/dist/src/assets/img/icons/views.d.ts +1 -1
  64. package/dist/src/assets/img/icons/views.js +2 -2
  65. package/dist/src/circular-activity-indicator.d.ts +5 -5
  66. package/dist/src/circular-activity-indicator.js +17 -17
  67. package/dist/src/collection-browser.d.ts +280 -279
  68. package/dist/src/collection-browser.js +1175 -1156
  69. package/dist/src/collection-browser.js.map +1 -1
  70. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  71. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  72. package/dist/src/collection-facets/facets-template.d.ts +16 -16
  73. package/dist/src/collection-facets/facets-template.js +125 -125
  74. package/dist/src/collection-facets/more-facets-content.d.ts +76 -75
  75. package/dist/src/collection-facets/more-facets-content.js +354 -377
  76. package/dist/src/collection-facets/more-facets-content.js.map +1 -1
  77. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  78. package/dist/src/collection-facets/more-facets-pagination.js +197 -195
  79. package/dist/src/collection-facets/more-facets-pagination.js.map +1 -1
  80. package/dist/src/collection-facets/toggle-switch.d.ts +41 -0
  81. package/dist/src/collection-facets/toggle-switch.js +184 -0
  82. package/dist/src/collection-facets/toggle-switch.js.map +1 -0
  83. package/dist/src/collection-facets.d.ts +81 -81
  84. package/dist/src/collection-facets.js +375 -375
  85. package/dist/src/empty-placeholder.d.ts +13 -11
  86. package/dist/src/empty-placeholder.js +80 -44
  87. package/dist/src/empty-placeholder.js.map +1 -1
  88. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  89. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  90. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  91. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  92. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  93. package/dist/src/mediatype/mediatype-config.js +85 -85
  94. package/dist/src/models.d.ts +115 -115
  95. package/dist/src/models.js +125 -125
  96. package/dist/src/restoration-state-handler.d.ts +45 -45
  97. package/dist/src/restoration-state-handler.js +230 -230
  98. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  99. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  100. package/dist/src/sort-filter-bar/alpha-bar.d.ts +20 -20
  101. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  102. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  103. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  104. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  105. package/dist/src/sort-filter-bar/img/list.js +2 -2
  106. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  107. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  108. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  109. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  110. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +108 -108
  111. package/dist/src/sort-filter-bar/sort-filter-bar.js +438 -438
  112. package/dist/src/styles/item-image-styles.d.ts +8 -8
  113. package/dist/src/styles/item-image-styles.js +9 -9
  114. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  115. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  116. package/dist/src/tiles/grid/account-tile.d.ts +20 -20
  117. package/dist/src/tiles/grid/account-tile.js +64 -64
  118. package/dist/src/tiles/grid/collection-tile.d.ts +17 -17
  119. package/dist/src/tiles/grid/collection-tile.js +71 -71
  120. package/dist/src/tiles/grid/item-tile.d.ts +32 -32
  121. package/dist/src/tiles/grid/item-tile.js +122 -122
  122. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  123. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +7 -7
  124. package/dist/src/tiles/grid/tile-stats.d.ts +10 -10
  125. package/dist/src/tiles/grid/tile-stats.js +40 -40
  126. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  127. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  128. package/dist/src/tiles/hover/tile-hover-pane.d.ts +15 -15
  129. package/dist/src/tiles/hover/tile-hover-pane.js +38 -38
  130. package/dist/src/tiles/image-block.d.ts +17 -17
  131. package/dist/src/tiles/image-block.js +72 -72
  132. package/dist/src/tiles/item-image.d.ts +35 -35
  133. package/dist/src/tiles/item-image.js +117 -117
  134. package/dist/src/tiles/list/account-label.d.ts +1 -1
  135. package/dist/src/tiles/list/account-label.js +6 -6
  136. package/dist/src/tiles/list/date-label.d.ts +1 -1
  137. package/dist/src/tiles/list/date-label.js +12 -12
  138. package/dist/src/tiles/list/tile-list-compact-header.d.ts +12 -12
  139. package/dist/src/tiles/list/tile-list-compact-header.js +41 -41
  140. package/dist/src/tiles/list/tile-list-compact.d.ts +22 -21
  141. package/dist/src/tiles/list/tile-list-compact.js +114 -101
  142. package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
  143. package/dist/src/tiles/list/tile-list.d.ts +55 -55
  144. package/dist/src/tiles/list/tile-list.js +304 -301
  145. package/dist/src/tiles/list/tile-list.js.map +1 -1
  146. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  147. package/dist/src/tiles/mediatype-icon.js +47 -47
  148. package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
  149. package/dist/src/tiles/overlay/icon-overlay.js +40 -40
  150. package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
  151. package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
  152. package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
  153. package/dist/src/tiles/overlay/text-overlay.js +42 -42
  154. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  155. package/dist/src/tiles/text-snippet-block.js +73 -73
  156. package/dist/src/tiles/tile-dispatcher.d.ts +58 -58
  157. package/dist/src/tiles/tile-dispatcher.js +194 -194
  158. package/dist/src/utils/analytics-events.d.ts +22 -22
  159. package/dist/src/utils/analytics-events.js +24 -24
  160. package/dist/src/utils/format-count.d.ts +7 -7
  161. package/dist/src/utils/format-count.js +76 -76
  162. package/dist/src/utils/format-date.d.ts +2 -2
  163. package/dist/src/utils/format-date.js +23 -23
  164. package/dist/src/utils/format-unit-size.d.ts +2 -2
  165. package/dist/src/utils/format-unit-size.js +33 -33
  166. package/dist/test/collection-browser.test.d.ts +1 -1
  167. package/dist/test/collection-browser.test.js +584 -584
  168. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  169. package/dist/test/collection-facets/facets-template.test.js +62 -62
  170. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  171. package/dist/test/collection-facets/more-facets-content.test.js +114 -114
  172. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  173. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  174. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -0
  175. package/dist/test/collection-facets/toggle-switch.test.js +87 -0
  176. package/dist/test/collection-facets/toggle-switch.test.js.map +1 -0
  177. package/dist/test/collection-facets.test.d.ts +2 -2
  178. package/dist/test/collection-facets.test.js +460 -460
  179. package/dist/test/empty-placeholder.test.d.ts +1 -1
  180. package/dist/test/empty-placeholder.test.js +33 -33
  181. package/dist/test/icon-overlay.test.d.ts +1 -1
  182. package/dist/test/icon-overlay.test.js +24 -24
  183. package/dist/test/image-block.test.d.ts +1 -1
  184. package/dist/test/image-block.test.js +48 -48
  185. package/dist/test/item-image.test.d.ts +1 -1
  186. package/dist/test/item-image.test.js +84 -84
  187. package/dist/test/mediatype-config.test.d.ts +1 -1
  188. package/dist/test/mediatype-config.test.js +16 -16
  189. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  190. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  191. package/dist/test/mocks/mock-collection-name-cache.d.ts +7 -7
  192. package/dist/test/mocks/mock-collection-name-cache.js +13 -13
  193. package/dist/test/mocks/mock-search-responses.d.ts +12 -12
  194. package/dist/test/mocks/mock-search-responses.js +341 -341
  195. package/dist/test/mocks/mock-search-service.d.ts +13 -13
  196. package/dist/test/mocks/mock-search-service.js +40 -40
  197. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  198. package/dist/test/restoration-state-handler.test.js +125 -125
  199. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  200. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  201. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  202. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  203. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  204. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +197 -197
  205. package/dist/test/text-overlay.test.d.ts +1 -1
  206. package/dist/test/text-overlay.test.js +48 -48
  207. package/dist/test/text-snippet-block.test.d.ts +1 -1
  208. package/dist/test/text-snippet-block.test.js +57 -57
  209. package/dist/test/tile-stats.test.d.ts +1 -1
  210. package/dist/test/tile-stats.test.js +33 -33
  211. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  212. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  213. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  214. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  215. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  216. package/dist/test/tiles/grid/item-tile.test.js +158 -158
  217. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  218. package/dist/test/tiles/hover/hover-pane-controller.test.js +257 -257
  219. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  220. package/dist/test/tiles/hover/tile-hover-pane.test.js +13 -13
  221. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  222. package/dist/test/tiles/list/tile-list-compact.test.js +104 -92
  223. package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -1
  224. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  225. package/dist/test/tiles/list/tile-list.test.js +175 -163
  226. package/dist/test/tiles/list/tile-list.test.js.map +1 -1
  227. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  228. package/dist/test/tiles/tile-dispatcher.test.js +67 -67
  229. package/dist/test/utils/format-count.test.d.ts +1 -1
  230. package/dist/test/utils/format-count.test.js +23 -23
  231. package/dist/test/utils/format-date.test.d.ts +1 -1
  232. package/dist/test/utils/format-date.test.js +17 -17
  233. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  234. package/dist/test/utils/format-unit-size.test.js +17 -17
  235. package/local.archive.org.cert +86 -86
  236. package/local.archive.org.key +27 -27
  237. package/package.json +3 -3
  238. package/renovate.json +6 -6
  239. package/src/collection-browser.ts +25 -1
  240. package/src/collection-facets/more-facets-content.ts +25 -48
  241. package/src/collection-facets/more-facets-pagination.ts +5 -3
  242. package/src/collection-facets/toggle-switch.ts +184 -0
  243. package/src/empty-placeholder.ts +53 -7
  244. package/src/tiles/list/tile-list-compact.ts +15 -2
  245. package/src/tiles/list/tile-list.ts +3 -0
  246. package/test/collection-facets/toggle-switch.test.ts +154 -0
  247. package/test/tiles/list/tile-list-compact.test.ts +14 -0
  248. package/test/tiles/list/tile-list.test.ts +14 -0
  249. package/tsconfig.json +21 -21
  250. package/web-dev-server.config.mjs +30 -30
  251. package/web-test-runner.config.mjs +41 -41
@@ -1,11 +1,13 @@
1
- import { LitElement, CSSResultGroup, nothing } from 'lit';
2
- export declare type PlaceholderType = 'empty-query' | 'null-result' | null;
3
- export declare class EmptyPlaceholder extends LitElement {
4
- placeholderType: PlaceholderType;
5
- isMobileView?: false;
6
- render(): import("lit-html").TemplateResult<1> | typeof nothing;
7
- private get placeholderTemplate();
8
- private get emptyQueryTemplate();
9
- private get nullResultTemplate();
10
- static get styles(): CSSResultGroup;
11
- }
1
+ import { LitElement, CSSResultGroup, nothing, TemplateResult } from 'lit';
2
+ export declare type PlaceholderType = 'empty-query' | 'null-result' | 'query-error' | null;
3
+ export declare class EmptyPlaceholder extends LitElement {
4
+ placeholderType: PlaceholderType;
5
+ isMobileView?: false;
6
+ detailMessage?: string;
7
+ render(): TemplateResult<1> | typeof nothing;
8
+ private get placeholderTemplate();
9
+ private get emptyQueryTemplate();
10
+ private get nullResultTemplate();
11
+ private get queryErrorTemplate();
12
+ static get styles(): CSSResultGroup;
13
+ }
@@ -1,55 +1,82 @@
1
- import { __decorate } from "tslib";
2
- import { css, html, LitElement, nothing } from 'lit';
3
- import { customElement, property } from 'lit/decorators.js';
4
- import { choose } from 'lit/directives/choose.js';
5
- import emptyQueryIcon from './assets/img/icons/empty-query';
6
- import nullResultIcon from './assets/img/icons/null-result';
7
- let EmptyPlaceholder = class EmptyPlaceholder extends LitElement {
8
- constructor() {
9
- super(...arguments);
10
- this.placeholderType = null;
11
- }
12
- render() {
13
- return this.placeholderType ? html `${this.placeholderTemplate}` : nothing;
14
- }
15
- get placeholderTemplate() {
1
+ import { __decorate } from "tslib";
2
+ import { css, html, LitElement, nothing, } from 'lit';
3
+ import { customElement, property } from 'lit/decorators.js';
4
+ import { choose } from 'lit/directives/choose.js';
5
+ import emptyQueryIcon from './assets/img/icons/empty-query';
6
+ import nullResultIcon from './assets/img/icons/null-result';
7
+ let EmptyPlaceholder = class EmptyPlaceholder extends LitElement {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.placeholderType = null;
11
+ this.detailMessage = '';
12
+ }
13
+ render() {
14
+ return this.placeholderType ? html `${this.placeholderTemplate}` : nothing;
15
+ }
16
+ get placeholderTemplate() {
16
17
  return html `
17
18
  <div
18
- class="placeholder ${this.placeholderType} ${this.isMobileView
19
- ? 'mobile'
19
+ class="placeholder ${this.placeholderType} ${this.isMobileView
20
+ ? 'mobile'
20
21
  : 'desktop'}"
21
22
  >
22
- ${choose(this.placeholderType, [
23
- ['empty-query', () => this.emptyQueryTemplate],
24
- ['null-result', () => this.nullResultTemplate],
23
+ ${choose(this.placeholderType, [
24
+ ['empty-query', () => this.emptyQueryTemplate],
25
+ ['null-result', () => this.nullResultTemplate],
26
+ ['query-error', () => this.queryErrorTemplate],
25
27
  ])}
26
28
  </div>
27
- `;
28
- }
29
- get emptyQueryTemplate() {
29
+ `;
30
+ }
31
+ get emptyQueryTemplate() {
30
32
  return html `
31
33
  <h2 class="title">
32
34
  To begin searching, enter a search term in the box above and hit "Go".
33
35
  </h2>
34
36
  <div>${emptyQueryIcon}</div>
35
- `;
36
- }
37
- get nullResultTemplate() {
37
+ `;
38
+ }
39
+ get nullResultTemplate() {
38
40
  return html `
39
41
  <h2 class="title">
40
42
  Your search did not match any items in the Archive. Try different
41
43
  keywords or a more general search.
42
44
  </h2>
43
45
  <div>${nullResultIcon}</div>
44
- `;
45
- }
46
- static get styles() {
46
+ `;
47
+ }
48
+ get queryErrorTemplate() {
49
+ return html `
50
+ <h2 class="title">
51
+ The search engine encountered an error, which might be related to your
52
+ search query.
53
+ <a
54
+ href="https://help.archive.org/help/search-building-powerful-complex-queries/"
55
+ >
56
+ Tips for constructing search queries.
57
+ </a>
58
+ </h2>
59
+ <div>${nullResultIcon}</div>
60
+ <p class="error-details">Error details: ${this.detailMessage}</p>
61
+ `;
62
+ }
63
+ static get styles() {
47
64
  return css `
48
65
  :host {
49
66
  text-align: center;
50
67
  width: 100%;
51
68
  }
52
69
 
70
+ a {
71
+ text-decoration: none;
72
+ }
73
+ a:link {
74
+ color: var(--ia-theme-link-color, #4b64ff);
75
+ }
76
+ a:hover {
77
+ text-decoration: underline;
78
+ }
79
+
53
80
  .placeholder {
54
81
  display: block;
55
82
  }
@@ -57,27 +84,36 @@ let EmptyPlaceholder = class EmptyPlaceholder extends LitElement {
57
84
  .desktop svg {
58
85
  max-height: 40rem;
59
86
  }
60
- .desktop .title {
87
+ .desktop .title,
88
+ .desktop .error-details {
61
89
  margin: 4rem 0;
62
90
  }
63
91
 
64
92
  .mobile svg {
65
93
  max-height: 20rem;
66
94
  }
67
- .mobile .title {
95
+ .mobile .title,
96
+ .mobile .error-details {
68
97
  margin: 2rem 0.5;
69
98
  }
70
- `;
71
- }
72
- };
73
- __decorate([
74
- property({ type: String })
75
- ], EmptyPlaceholder.prototype, "placeholderType", void 0);
76
- __decorate([
77
- property({ type: Boolean })
78
- ], EmptyPlaceholder.prototype, "isMobileView", void 0);
79
- EmptyPlaceholder = __decorate([
80
- customElement('empty-placeholder')
81
- ], EmptyPlaceholder);
82
- export { EmptyPlaceholder };
99
+
100
+ .error-details {
101
+ font-size: 1.2rem;
102
+ }
103
+ `;
104
+ }
105
+ };
106
+ __decorate([
107
+ property({ type: String })
108
+ ], EmptyPlaceholder.prototype, "placeholderType", void 0);
109
+ __decorate([
110
+ property({ type: Boolean })
111
+ ], EmptyPlaceholder.prototype, "isMobileView", void 0);
112
+ __decorate([
113
+ property({ type: String })
114
+ ], EmptyPlaceholder.prototype, "detailMessage", void 0);
115
+ EmptyPlaceholder = __decorate([
116
+ customElement('empty-placeholder')
117
+ ], EmptyPlaceholder);
118
+ export { EmptyPlaceholder };
83
119
  //# sourceMappingURL=empty-placeholder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"empty-placeholder.js","sourceRoot":"","sources":["../../src/empty-placeholder.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAkB,OAAO,EAAE,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAC5D,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAI5D,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,UAAU;IAAhD;;QAC8B,oBAAe,GAAoB,IAAI,CAAC;IAoEtE,CAAC;IAhEC,MAAM;QACJ,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAA,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5E,CAAC;IAED,IAAY,mBAAmB;QAC7B,OAAO,IAAI,CAAA;;6BAEc,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY;YAC5D,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,SAAS;;UAEX,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;YAC7B,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC;YAC9C,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC;SAC/C,CAAC;;KAEL,CAAC;IACJ,CAAC;IAED,IAAY,kBAAkB;QAC5B,OAAO,IAAI,CAAA;;;;aAIF,cAAc;KACtB,CAAC;IACJ,CAAC;IAED,IAAY,kBAAkB;QAC5B,OAAO,IAAI,CAAA;;;;;aAKF,cAAc;KACtB,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;KAuBT,CAAC;IACJ,CAAC;CACF,CAAA;AApE6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yDAAyC;AAEvC;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sDAAsB;AAHvC,gBAAgB;IAD5B,aAAa,CAAC,mBAAmB,CAAC;GACtB,gBAAgB,CAqE5B;SArEY,gBAAgB","sourcesContent":["import { css, html, LitElement, CSSResultGroup, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { choose } from 'lit/directives/choose.js';\n\nimport emptyQueryIcon from './assets/img/icons/empty-query';\nimport nullResultIcon from './assets/img/icons/null-result';\n\nexport type PlaceholderType = 'empty-query' | 'null-result' | null;\n@customElement('empty-placeholder')\nexport class EmptyPlaceholder extends LitElement {\n @property({ type: String }) placeholderType: PlaceholderType = null;\n\n @property({ type: Boolean }) isMobileView?: false;\n\n render() {\n return this.placeholderType ? html`${this.placeholderTemplate}` : nothing;\n }\n\n private get placeholderTemplate() {\n return html`\n <div\n class=\"placeholder ${this.placeholderType} ${this.isMobileView\n ? 'mobile'\n : 'desktop'}\"\n >\n ${choose(this.placeholderType, [\n ['empty-query', () => this.emptyQueryTemplate],\n ['null-result', () => this.nullResultTemplate],\n ])}\n </div>\n `;\n }\n\n private get emptyQueryTemplate() {\n return html`\n <h2 class=\"title\">\n To begin searching, enter a search term in the box above and hit \"Go\".\n </h2>\n <div>${emptyQueryIcon}</div>\n `;\n }\n\n private get nullResultTemplate() {\n return html`\n <h2 class=\"title\">\n Your search did not match any items in the Archive. Try different\n keywords or a more general search.\n </h2>\n <div>${nullResultIcon}</div>\n `;\n }\n\n static get styles(): CSSResultGroup {\n return css`\n :host {\n text-align: center;\n width: 100%;\n }\n\n .placeholder {\n display: block;\n }\n\n .desktop svg {\n max-height: 40rem;\n }\n .desktop .title {\n margin: 4rem 0;\n }\n\n .mobile svg {\n max-height: 20rem;\n }\n .mobile .title {\n margin: 2rem 0.5;\n }\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"empty-placeholder.js","sourceRoot":"","sources":["../../src/empty-placeholder.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,GAAG,EACH,IAAI,EACJ,UAAU,EAEV,OAAO,GAER,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAC5D,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAQ5D,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,UAAU;IAAhD;;QAC8B,oBAAe,GAAoB,IAAI,CAAC;QAIxC,kBAAa,GAAY,EAAE,CAAC;IAmG1D,CAAC;IAjGC,MAAM;QACJ,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAA,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5E,CAAC;IAED,IAAY,mBAAmB;QAC7B,OAAO,IAAI,CAAA;;6BAEc,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY;YAC5D,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,SAAS;;UAEX,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;YAC7B,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC;YAC9C,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC;YAC9C,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC;SAC/C,CAAC;;KAEL,CAAC;IACJ,CAAC;IAED,IAAY,kBAAkB;QAC5B,OAAO,IAAI,CAAA;;;;aAIF,cAAc;KACtB,CAAC;IACJ,CAAC;IAED,IAAY,kBAAkB;QAC5B,OAAO,IAAI,CAAA;;;;;aAKF,cAAc;KACtB,CAAC;IACJ,CAAC;IAED,IAAY,kBAAkB;QAC5B,OAAO,IAAI,CAAA;;;;;;;;;;aAUF,cAAc;gDACqB,IAAI,CAAC,aAAa;KAC7D,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuCT,CAAC;IACJ,CAAC;CACF,CAAA;AAvG6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yDAAyC;AAEvC;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sDAAsB;AAEtB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uDAA6B;AAL7C,gBAAgB;IAD5B,aAAa,CAAC,mBAAmB,CAAC;GACtB,gBAAgB,CAwG5B;SAxGY,gBAAgB","sourcesContent":["import {\n css,\n html,\n LitElement,\n CSSResultGroup,\n nothing,\n TemplateResult,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { choose } from 'lit/directives/choose.js';\n\nimport emptyQueryIcon from './assets/img/icons/empty-query';\nimport nullResultIcon from './assets/img/icons/null-result';\n\nexport type PlaceholderType =\n | 'empty-query'\n | 'null-result'\n | 'query-error'\n | null;\n@customElement('empty-placeholder')\nexport class EmptyPlaceholder extends LitElement {\n @property({ type: String }) placeholderType: PlaceholderType = null;\n\n @property({ type: Boolean }) isMobileView?: false;\n\n @property({ type: String }) detailMessage?: string = '';\n\n render() {\n return this.placeholderType ? html`${this.placeholderTemplate}` : nothing;\n }\n\n private get placeholderTemplate(): TemplateResult {\n return html`\n <div\n class=\"placeholder ${this.placeholderType} ${this.isMobileView\n ? 'mobile'\n : 'desktop'}\"\n >\n ${choose(this.placeholderType, [\n ['empty-query', () => this.emptyQueryTemplate],\n ['null-result', () => this.nullResultTemplate],\n ['query-error', () => this.queryErrorTemplate],\n ])}\n </div>\n `;\n }\n\n private get emptyQueryTemplate(): TemplateResult {\n return html`\n <h2 class=\"title\">\n To begin searching, enter a search term in the box above and hit \"Go\".\n </h2>\n <div>${emptyQueryIcon}</div>\n `;\n }\n\n private get nullResultTemplate(): TemplateResult {\n return html`\n <h2 class=\"title\">\n Your search did not match any items in the Archive. Try different\n keywords or a more general search.\n </h2>\n <div>${nullResultIcon}</div>\n `;\n }\n\n private get queryErrorTemplate(): TemplateResult {\n return html`\n <h2 class=\"title\">\n The search engine encountered an error, which might be related to your\n search query.\n <a\n href=\"https://help.archive.org/help/search-building-powerful-complex-queries/\"\n >\n Tips for constructing search queries.\n </a>\n </h2>\n <div>${nullResultIcon}</div>\n <p class=\"error-details\">Error details: ${this.detailMessage}</p>\n `;\n }\n\n static get styles(): CSSResultGroup {\n return css`\n :host {\n text-align: center;\n width: 100%;\n }\n\n a {\n text-decoration: none;\n }\n a:link {\n color: var(--ia-theme-link-color, #4b64ff);\n }\n a:hover {\n text-decoration: underline;\n }\n\n .placeholder {\n display: block;\n }\n\n .desktop svg {\n max-height: 40rem;\n }\n .desktop .title,\n .desktop .error-details {\n margin: 4rem 0;\n }\n\n .mobile svg {\n max-height: 20rem;\n }\n .mobile .title,\n .mobile .error-details {\n margin: 2rem 0.5;\n }\n\n .error-details {\n font-size: 1.2rem;\n }\n `;\n }\n}\n"]}
@@ -1,37 +1,37 @@
1
- export interface LanguageCodeHandlerInterface {
2
- /**
3
- * This takes a list of codes in the format `en-us|en|en-gb` and
4
- * returns the first language code in the list.
5
- *
6
- * The codes in the string should always represent the same language name.
7
- * eg `en-us`, `en-gb`, and `en` should always be "English"
8
- *
9
- * @param languageCodes
10
- */
11
- getLanguageNameFromCodeString(languageCodes: string): string;
12
- /**
13
- * This creates a serialized string of language codes for the given language.
14
- *
15
- * eg. `English` becomes `en-us|en|en-gb|.....`
16
- *
17
- * @param languageName
18
- */
19
- getCodeStringFromLanguageName(languageName: string): string;
20
- /**
21
- * Get an array of langauge codes from a serialized string.
22
- *
23
- * eg. `en-us|en|en-gb` becomes `['en-us', 'en', 'en-gb']`
24
- *
25
- * @param languageCodes
26
- */
27
- getCodeArrayFromCodeString(languageCodes: string): string[];
28
- }
29
- export declare class LanguageCodeHandler implements LanguageCodeHandlerInterface {
30
- private delimeter;
31
- /** @inheritdoc */
32
- getLanguageNameFromCodeString(languageCodes: string): string;
33
- /** @inheritdoc */
34
- getCodeStringFromLanguageName(languageName: string): string;
35
- /** @inheritdoc */
36
- getCodeArrayFromCodeString(languageCodes: string): string[];
37
- }
1
+ export interface LanguageCodeHandlerInterface {
2
+ /**
3
+ * This takes a list of codes in the format `en-us|en|en-gb` and
4
+ * returns the first language code in the list.
5
+ *
6
+ * The codes in the string should always represent the same language name.
7
+ * eg `en-us`, `en-gb`, and `en` should always be "English"
8
+ *
9
+ * @param languageCodes
10
+ */
11
+ getLanguageNameFromCodeString(languageCodes: string): string;
12
+ /**
13
+ * This creates a serialized string of language codes for the given language.
14
+ *
15
+ * eg. `English` becomes `en-us|en|en-gb|.....`
16
+ *
17
+ * @param languageName
18
+ */
19
+ getCodeStringFromLanguageName(languageName: string): string;
20
+ /**
21
+ * Get an array of langauge codes from a serialized string.
22
+ *
23
+ * eg. `en-us|en|en-gb` becomes `['en-us', 'en', 'en-gb']`
24
+ *
25
+ * @param languageCodes
26
+ */
27
+ getCodeArrayFromCodeString(languageCodes: string): string[];
28
+ }
29
+ export declare class LanguageCodeHandler implements LanguageCodeHandlerInterface {
30
+ private delimeter;
31
+ /** @inheritdoc */
32
+ getLanguageNameFromCodeString(languageCodes: string): string;
33
+ /** @inheritdoc */
34
+ getCodeStringFromLanguageName(languageName: string): string;
35
+ /** @inheritdoc */
36
+ getCodeArrayFromCodeString(languageCodes: string): string[];
37
+ }
@@ -1,27 +1,27 @@
1
- import { codeToLanguageMap } from './language-code-mapping';
2
- export class LanguageCodeHandler {
3
- constructor() {
4
- this.delimeter = '|';
5
- }
6
- /** @inheritdoc */
7
- getLanguageNameFromCodeString(languageCodes) {
8
- const split = this.getCodeArrayFromCodeString(languageCodes);
9
- if (split.length === 0)
10
- return '';
11
- const languageCode = split[0];
12
- const languageName = codeToLanguageMap[languageCode];
13
- return languageName !== null && languageName !== void 0 ? languageName : languageCodes;
14
- }
15
- /** @inheritdoc */
16
- getCodeStringFromLanguageName(languageName) {
17
- const languageCodes = Object.keys(codeToLanguageMap).filter(code => codeToLanguageMap[code] === languageName);
18
- const stringifiedCodes = languageCodes === null || languageCodes === void 0 ? void 0 : languageCodes.join(this.delimeter);
19
- return stringifiedCodes;
20
- }
21
- /** @inheritdoc */
22
- getCodeArrayFromCodeString(languageCodes) {
23
- const split = languageCodes.split(this.delimeter);
24
- return split;
25
- }
26
- }
1
+ import { codeToLanguageMap } from './language-code-mapping';
2
+ export class LanguageCodeHandler {
3
+ constructor() {
4
+ this.delimeter = '|';
5
+ }
6
+ /** @inheritdoc */
7
+ getLanguageNameFromCodeString(languageCodes) {
8
+ const split = this.getCodeArrayFromCodeString(languageCodes);
9
+ if (split.length === 0)
10
+ return '';
11
+ const languageCode = split[0];
12
+ const languageName = codeToLanguageMap[languageCode];
13
+ return languageName !== null && languageName !== void 0 ? languageName : languageCodes;
14
+ }
15
+ /** @inheritdoc */
16
+ getCodeStringFromLanguageName(languageName) {
17
+ const languageCodes = Object.keys(codeToLanguageMap).filter(code => codeToLanguageMap[code] === languageName);
18
+ const stringifiedCodes = languageCodes === null || languageCodes === void 0 ? void 0 : languageCodes.join(this.delimeter);
19
+ return stringifiedCodes;
20
+ }
21
+ /** @inheritdoc */
22
+ getCodeArrayFromCodeString(languageCodes) {
23
+ const split = languageCodes.split(this.delimeter);
24
+ return split;
25
+ }
26
+ }
27
27
  //# sourceMappingURL=language-code-handler.js.map
@@ -1 +1 @@
1
- export declare const codeToLanguageMap: Record<string, string>;
1
+ export declare const codeToLanguageMap: Record<string, string>;