@internetarchive/collection-browser 0.0.1-alpha.2 → 0.0.1-alpha.22

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 (183) hide show
  1. package/demo/app-root.ts +24 -158
  2. package/dist/demo/app-root.d.ts +2 -16
  3. package/dist/demo/app-root.js +23 -141
  4. package/dist/demo/app-root.js.map +1 -1
  5. package/dist/src/assets/img/icons/chevron.d.ts +2 -0
  6. package/dist/src/assets/img/icons/chevron.js +4 -0
  7. package/dist/src/assets/img/icons/chevron.js.map +1 -0
  8. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -0
  9. package/dist/src/assets/img/icons/eye-closed.js +5 -0
  10. package/dist/src/assets/img/icons/eye-closed.js.map +1 -0
  11. package/dist/src/assets/img/icons/eye.d.ts +2 -0
  12. package/dist/src/assets/img/icons/eye.js +5 -0
  13. package/dist/src/assets/img/icons/eye.js.map +1 -0
  14. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -2
  15. package/dist/src/assets/img/icons/mediatype/account.js +5 -4
  16. package/dist/src/assets/img/icons/mediatype/account.js.map +1 -1
  17. package/dist/src/assets/img/icons/mediatype/audio.js +7 -4
  18. package/dist/src/assets/img/icons/mediatype/audio.js.map +1 -1
  19. package/dist/src/assets/img/icons/mediatype/collection.js +7 -4
  20. package/dist/src/assets/img/icons/mediatype/collection.js.map +1 -1
  21. package/dist/src/assets/img/icons/mediatype/etree.js +10 -5
  22. package/dist/src/assets/img/icons/mediatype/etree.js.map +1 -1
  23. package/dist/src/assets/img/icons/mediatype/film.js +2 -1
  24. package/dist/src/assets/img/icons/mediatype/film.js.map +1 -1
  25. package/dist/src/assets/img/icons/mediatype/images.js +9 -6
  26. package/dist/src/assets/img/icons/mediatype/images.js.map +1 -1
  27. package/dist/src/assets/img/icons/mediatype/software.js +9 -6
  28. package/dist/src/assets/img/icons/mediatype/software.js.map +1 -1
  29. package/dist/src/assets/img/icons/mediatype/texts.js +9 -6
  30. package/dist/src/assets/img/icons/mediatype/texts.js.map +1 -1
  31. package/dist/src/assets/img/icons/mediatype/tv.js +10 -5
  32. package/dist/src/assets/img/icons/mediatype/tv.js.map +1 -1
  33. package/dist/src/assets/img/icons/mediatype/video.js +10 -6
  34. package/dist/src/assets/img/icons/mediatype/video.js.map +1 -1
  35. package/dist/src/assets/img/icons/mediatype/web.js +9 -6
  36. package/dist/src/assets/img/icons/mediatype/web.js.map +1 -1
  37. package/dist/src/async-collection-name.d.ts +11 -0
  38. package/dist/src/async-collection-name.js +38 -0
  39. package/dist/src/async-collection-name.js.map +1 -0
  40. package/dist/src/collection-browser.d.ts +55 -17
  41. package/dist/src/collection-browser.js +466 -106
  42. package/dist/src/collection-browser.js.map +1 -1
  43. package/dist/src/collection-facets.d.ts +24 -5
  44. package/dist/src/collection-facets.js +300 -78
  45. package/dist/src/collection-facets.js.map +1 -1
  46. package/dist/src/collection-name-cache.d.ts +18 -0
  47. package/dist/src/collection-name-cache.js +89 -0
  48. package/dist/src/collection-name-cache.js.map +1 -0
  49. package/dist/src/mediatype-icon.js +10 -3
  50. package/dist/src/mediatype-icon.js.map +1 -1
  51. package/dist/src/models.d.ts +72 -14
  52. package/dist/src/models.js +57 -1
  53. package/dist/src/models.js.map +1 -1
  54. package/dist/src/restoration-state-handler.d.ts +37 -0
  55. package/dist/src/restoration-state-handler.js +177 -0
  56. package/dist/src/restoration-state-handler.js.map +1 -0
  57. package/dist/src/sort-filter-bar/alpha-bar.d.ts +1 -2
  58. package/dist/src/sort-filter-bar/alpha-bar.js +19 -9
  59. package/dist/src/sort-filter-bar/alpha-bar.js.map +1 -1
  60. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -0
  61. package/dist/src/sort-filter-bar/img/compact.js +5 -0
  62. package/dist/src/sort-filter-bar/img/compact.js.map +1 -0
  63. package/dist/src/sort-filter-bar/img/grid.d.ts +1 -0
  64. package/dist/src/sort-filter-bar/img/grid.js +5 -0
  65. package/dist/src/sort-filter-bar/img/grid.js.map +1 -0
  66. package/dist/src/sort-filter-bar/img/list.d.ts +1 -0
  67. package/dist/src/sort-filter-bar/img/list.js +5 -0
  68. package/dist/src/sort-filter-bar/img/list.js.map +1 -0
  69. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -0
  70. package/dist/src/sort-filter-bar/img/sort-triangle.js +5 -0
  71. package/dist/src/sort-filter-bar/img/sort-triangle.js.map +1 -0
  72. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -0
  73. package/dist/src/sort-filter-bar/img/tile.js +5 -0
  74. package/dist/src/sort-filter-bar/img/tile.js.map +1 -0
  75. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +65 -11
  76. package/dist/src/sort-filter-bar/sort-filter-bar.js +453 -142
  77. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  78. package/dist/src/tiles/grid/collection-tile.js +1 -2
  79. package/dist/src/tiles/grid/collection-tile.js.map +1 -1
  80. package/dist/src/tiles/grid/item-tile.d.ts +4 -0
  81. package/dist/src/tiles/grid/item-tile.js +134 -45
  82. package/dist/src/tiles/grid/item-tile.js.map +1 -1
  83. package/dist/src/tiles/list/tile-list-compact-header.d.ts +11 -0
  84. package/dist/src/tiles/list/tile-list-compact-header.js +79 -0
  85. package/dist/src/tiles/list/tile-list-compact-header.js.map +1 -0
  86. package/dist/src/tiles/list/tile-list-compact.d.ts +1 -0
  87. package/dist/src/tiles/list/tile-list-compact.js +122 -31
  88. package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
  89. package/dist/src/tiles/list/tile-list-detail.d.ts +0 -10
  90. package/dist/src/tiles/list/tile-list-detail.js +6 -159
  91. package/dist/src/tiles/list/tile-list-detail.js.map +1 -1
  92. package/dist/src/tiles/list/tile-list.d.ts +19 -6
  93. package/dist/src/tiles/list/tile-list.js +240 -108
  94. package/dist/src/tiles/list/tile-list.js.map +1 -1
  95. package/dist/src/tiles/tile-dispatcher.d.ts +8 -1
  96. package/dist/src/tiles/tile-dispatcher.js +46 -11
  97. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  98. package/dist/src/utils/format-date.js +1 -2
  99. package/dist/src/utils/format-date.js.map +1 -1
  100. package/dist/test/{utils/format-string.test.d.ts → collection-name-cache.test.d.ts} +0 -0
  101. package/dist/test/collection-name-cache.test.js +158 -0
  102. package/dist/test/collection-name-cache.test.js.map +1 -0
  103. package/dist/test/mocks/mock-search-response.d.ts +5 -0
  104. package/dist/test/mocks/mock-search-response.js +62 -0
  105. package/dist/test/mocks/mock-search-response.js.map +1 -0
  106. package/dist/test/mocks/mock-search-service.d.ts +13 -0
  107. package/dist/test/mocks/mock-search-service.js +20 -0
  108. package/dist/test/mocks/mock-search-service.js.map +1 -0
  109. package/package.json +9 -4
  110. package/src/assets/img/icons/chevron.ts +4 -0
  111. package/src/assets/img/icons/eye-closed.ts +5 -0
  112. package/src/assets/img/icons/eye.ts +5 -0
  113. package/src/assets/img/icons/mediatype/account.ts +5 -4
  114. package/src/assets/img/icons/mediatype/audio.ts +7 -4
  115. package/src/assets/img/icons/mediatype/collection.ts +7 -4
  116. package/src/assets/img/icons/mediatype/etree.ts +10 -5
  117. package/src/assets/img/icons/mediatype/film.ts +2 -1
  118. package/src/assets/img/icons/mediatype/images.ts +9 -6
  119. package/src/assets/img/icons/mediatype/software.ts +9 -6
  120. package/src/assets/img/icons/mediatype/texts.ts +9 -6
  121. package/src/assets/img/icons/mediatype/tv.ts +10 -5
  122. package/src/assets/img/icons/mediatype/video.ts +10 -6
  123. package/src/assets/img/icons/mediatype/web.ts +9 -6
  124. package/src/collection-browser.ts +490 -105
  125. package/src/collection-facets.ts +325 -109
  126. package/src/mediatype-icon.ts +10 -3
  127. package/src/models.ts +139 -14
  128. package/src/restoration-state-handler.ts +234 -0
  129. package/src/sort-filter-bar/alpha-bar.ts +19 -9
  130. package/src/sort-filter-bar/img/compact.ts +5 -0
  131. package/src/sort-filter-bar/img/list.ts +5 -0
  132. package/src/sort-filter-bar/img/sort-triangle.ts +5 -0
  133. package/src/sort-filter-bar/img/tile.ts +5 -0
  134. package/src/sort-filter-bar/sort-filter-bar.ts +499 -149
  135. package/src/tiles/grid/collection-tile.ts +1 -2
  136. package/src/tiles/grid/item-tile.ts +138 -56
  137. package/src/tiles/list/tile-list-compact-header.ts +75 -0
  138. package/src/tiles/list/tile-list-compact.ts +209 -0
  139. package/src/tiles/list/tile-list.ts +261 -110
  140. package/src/tiles/tile-dispatcher.ts +51 -11
  141. package/src/utils/format-date.ts +1 -2
  142. package/dist/src/assets/img/icons/audio.d.ts +0 -1
  143. package/dist/src/assets/img/icons/audio.js +0 -9
  144. package/dist/src/assets/img/icons/audio.js.map +0 -1
  145. package/dist/src/assets/img/icons/collection.d.ts +0 -1
  146. package/dist/src/assets/img/icons/collection.js +0 -9
  147. package/dist/src/assets/img/icons/collection.js.map +0 -1
  148. package/dist/src/assets/img/icons/etree.d.ts +0 -1
  149. package/dist/src/assets/img/icons/etree.js +0 -9
  150. package/dist/src/assets/img/icons/etree.js.map +0 -1
  151. package/dist/src/assets/img/icons/images.d.ts +0 -1
  152. package/dist/src/assets/img/icons/images.js +0 -10
  153. package/dist/src/assets/img/icons/images.js.map +0 -1
  154. package/dist/src/assets/img/icons/mediatype/etree copy.d.ts +0 -1
  155. package/dist/src/assets/img/icons/mediatype/etree copy.js +0 -9
  156. package/dist/src/assets/img/icons/mediatype/etree copy.js.map +0 -1
  157. package/dist/src/assets/img/icons/mediatype/livemusic.d.ts +0 -1
  158. package/dist/src/assets/img/icons/mediatype/livemusic.js +0 -7
  159. package/dist/src/assets/img/icons/mediatype/livemusic.js.map +0 -1
  160. package/dist/src/assets/img/icons/mediatype/photos.d.ts +0 -1
  161. package/dist/src/assets/img/icons/mediatype/photos.js +0 -7
  162. package/dist/src/assets/img/icons/mediatype/photos.js.map +0 -1
  163. package/dist/src/assets/img/icons/software.d.ts +0 -1
  164. package/dist/src/assets/img/icons/software.js +0 -10
  165. package/dist/src/assets/img/icons/software.js.map +0 -1
  166. package/dist/src/assets/img/icons/texts.d.ts +0 -1
  167. package/dist/src/assets/img/icons/texts.js +0 -10
  168. package/dist/src/assets/img/icons/texts.js.map +0 -1
  169. package/dist/src/assets/img/icons/tv.d.ts +0 -1
  170. package/dist/src/assets/img/icons/tv.js +0 -9
  171. package/dist/src/assets/img/icons/tv.js.map +0 -1
  172. package/dist/src/assets/img/icons/video.d.ts +0 -1
  173. package/dist/src/assets/img/icons/video.js +0 -10
  174. package/dist/src/assets/img/icons/video.js.map +0 -1
  175. package/dist/src/assets/img/icons/web.d.ts +0 -1
  176. package/dist/src/assets/img/icons/web.js +0 -10
  177. package/dist/src/assets/img/icons/web.js.map +0 -1
  178. package/dist/src/utils/format-string.d.ts +0 -2
  179. package/dist/src/utils/format-string.js +0 -7
  180. package/dist/src/utils/format-string.js.map +0 -1
  181. package/dist/test/utils/format-string.test.js +0 -17
  182. package/dist/test/utils/format-string.test.js.map +0 -1
  183. package/src/assets/img/icons/mediatype/foo.svg +0 -5
@@ -7,8 +7,7 @@ export function formatDate(date, format = 'short', locale = 'en-US') {
7
7
  };
8
8
  switch (format) {
9
9
  case 'short':
10
- options.month = '2-digit';
11
- options.year = '2-digit';
10
+ options.year = 'numeric';
12
11
  break;
13
12
  case 'long':
14
13
  options.year = 'numeric';
@@ -1 +1 @@
1
- {"version":3,"file":"format-date.js","sourceRoot":"","sources":["../../../src/utils/format-date.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,UAAU,CACxB,IAAsB,EACtB,SAAqB,OAAO,EAC5B,SAAiB,OAAO;IAExB,4BAA4B;IAC5B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,MAAM,OAAO,GAA+B;QAC1C,QAAQ,EAAE,KAAK,EAAE,4BAA4B;KAC9C,CAAC;IACF,QAAQ,MAAM,EAAE;QACd,KAAK,OAAO;YACV,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;YAC1B,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;YACzB,MAAM;QACR,KAAK,MAAM;YACT,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;YACzB,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC;YACxB,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;YACxB,MAAM;QACR;YACE,MAAM;KACT;IAED,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/D,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC","sourcesContent":["/*\n * Display date\n * Override browser timezone to always display same date as in data\n */\nexport type DateFormat =\n | 'short' // 12/20\n | 'long'; // Dec 20, 2020\n\nexport function formatDate(\n date: Date | undefined,\n format: DateFormat = 'short',\n locale: string = 'en-US'\n): string {\n // Return blank if undefined\n if (!date) return '';\n\n const options: Intl.DateTimeFormatOptions = {\n timeZone: 'UTC', // Override browser timezone\n };\n switch (format) {\n case 'short':\n options.month = '2-digit';\n options.year = '2-digit';\n break;\n case 'long':\n options.year = 'numeric';\n options.month = 'short';\n options.day = '2-digit';\n break;\n default:\n break;\n }\n\n const dateFormatter = new Intl.DateTimeFormat(locale, options);\n return dateFormatter.format(date);\n}\n"]}
1
+ {"version":3,"file":"format-date.js","sourceRoot":"","sources":["../../../src/utils/format-date.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,UAAU,CACxB,IAAsB,EACtB,SAAqB,OAAO,EAC5B,SAAiB,OAAO;IAExB,4BAA4B;IAC5B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,MAAM,OAAO,GAA+B;QAC1C,QAAQ,EAAE,KAAK,EAAE,4BAA4B;KAC9C,CAAC;IACF,QAAQ,MAAM,EAAE;QACd,KAAK,OAAO;YACV,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;YACzB,MAAM;QACR,KAAK,MAAM;YACT,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;YACzB,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC;YACxB,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;YACxB,MAAM;QACR;YACE,MAAM;KACT;IAED,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/D,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC","sourcesContent":["/*\n * Display date\n * Override browser timezone to always display same date as in data\n */\nexport type DateFormat =\n | 'short' // 12/20\n | 'long'; // Dec 20, 2020\n\nexport function formatDate(\n date: Date | undefined,\n format: DateFormat = 'short',\n locale: string = 'en-US'\n): string {\n // Return blank if undefined\n if (!date) return '';\n\n const options: Intl.DateTimeFormatOptions = {\n timeZone: 'UTC', // Override browser timezone\n };\n switch (format) {\n case 'short':\n options.year = 'numeric';\n break;\n case 'long':\n options.year = 'numeric';\n options.month = 'short';\n options.day = '2-digit';\n break;\n default:\n break;\n }\n\n const dateFormatter = new Intl.DateTimeFormat(locale, options);\n return dateFormatter.format(date);\n}\n"]}
@@ -0,0 +1,158 @@
1
+ import { expect } from '@open-wc/testing';
2
+ import { CollectionNameCache } from '../src/collection-name-cache';
3
+ import { mockSearchResponse, mockSearchResponseOnlyFoo, } from './mocks/mock-search-response';
4
+ import { MockSearchService } from './mocks/mock-search-service';
5
+ describe('CollectionNameFetcher', () => {
6
+ it('generates proper query for requested identifiers', async () => {
7
+ var _a, _b, _c;
8
+ const mockSearchService = new MockSearchService();
9
+ const collectionNameFetcher = new CollectionNameCache({
10
+ searchService: mockSearchService,
11
+ loadInterval: 50,
12
+ });
13
+ await Promise.all([
14
+ collectionNameFetcher.collectionNameFor('foo-collection'),
15
+ collectionNameFetcher.collectionNameFor('bar-collection'),
16
+ collectionNameFetcher.collectionNameFor('baz-collection'),
17
+ ]);
18
+ expect((_a = mockSearchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.equal('identifier:(foo-collection OR bar-collection OR baz-collection)');
19
+ expect((_b = mockSearchService.searchParams) === null || _b === void 0 ? void 0 : _b.rows).to.equal(3);
20
+ expect((_c = mockSearchService.searchParams) === null || _c === void 0 ? void 0 : _c.fields).to.deep.equal([
21
+ 'title',
22
+ 'identifier',
23
+ ]);
24
+ expect(mockSearchService.searchCallCount).to.equal(1);
25
+ });
26
+ it('returns proper names once load is complete', async () => {
27
+ const mockSearchService = new MockSearchService();
28
+ mockSearchService.searchResult = mockSearchResponse;
29
+ const collectionNameFetcher = new CollectionNameCache({
30
+ searchService: mockSearchService,
31
+ loadInterval: 50,
32
+ });
33
+ const results = await Promise.all([
34
+ collectionNameFetcher.collectionNameFor('foo-collection'),
35
+ collectionNameFetcher.collectionNameFor('bar-collection'),
36
+ collectionNameFetcher.collectionNameFor('baz-collection'),
37
+ ]);
38
+ expect(results[0]).to.equal('Foo Collection');
39
+ expect(results[1]).to.equal('Bar Collection');
40
+ expect(results[2]).to.equal('Baz Collection');
41
+ });
42
+ it('resolves all of the requests even if a name is missing', async () => {
43
+ const mockSearchService = new MockSearchService();
44
+ mockSearchService.searchResult = mockSearchResponseOnlyFoo;
45
+ const collectionNameFetcher = new CollectionNameCache({
46
+ searchService: mockSearchService,
47
+ loadInterval: 50,
48
+ });
49
+ const results = await Promise.all([
50
+ collectionNameFetcher.collectionNameFor('foo-collection'),
51
+ collectionNameFetcher.collectionNameFor('bar-collection'),
52
+ collectionNameFetcher.collectionNameFor('baz-collection'),
53
+ ]);
54
+ expect(results[0]).to.equal('Foo Collection');
55
+ expect(results[1]).to.equal(null);
56
+ expect(results[2]).to.equal(null);
57
+ });
58
+ it('returns the cached name if available', async () => {
59
+ const mockSearchService = new MockSearchService();
60
+ mockSearchService.searchResult = mockSearchResponse;
61
+ const collectionNameFetcher = new CollectionNameCache({
62
+ searchService: mockSearchService,
63
+ loadInterval: 50,
64
+ });
65
+ await Promise.all([
66
+ collectionNameFetcher.collectionNameFor('foo-collection'),
67
+ collectionNameFetcher.collectionNameFor('bar-collection'),
68
+ collectionNameFetcher.collectionNameFor('baz-collection'),
69
+ ]);
70
+ // make one more request, but this time there should be no network request
71
+ await collectionNameFetcher.collectionNameFor('foo-collection');
72
+ expect(mockSearchService.searchCallCount).to.equal(1);
73
+ });
74
+ it('returns multiple requests for the same identifier', async () => {
75
+ const mockSearchService = new MockSearchService();
76
+ mockSearchService.searchResult = mockSearchResponseOnlyFoo;
77
+ const collectionNameFetcher = new CollectionNameCache({
78
+ searchService: mockSearchService,
79
+ loadInterval: 50,
80
+ });
81
+ const results = await Promise.all([
82
+ collectionNameFetcher.collectionNameFor('foo-collection'),
83
+ collectionNameFetcher.collectionNameFor('foo-collection'),
84
+ collectionNameFetcher.collectionNameFor('foo-collection'),
85
+ ]);
86
+ expect(results[0]).to.equal('Foo Collection');
87
+ expect(results[1]).to.equal('Foo Collection');
88
+ expect(results[2]).to.equal('Foo Collection');
89
+ });
90
+ it('can preload a bunch of identifiers', async () => {
91
+ const mockSearchService = new MockSearchService();
92
+ mockSearchService.searchResult = mockSearchResponse;
93
+ const collectionNameFetcher = new CollectionNameCache({
94
+ searchService: mockSearchService,
95
+ loadInterval: 50,
96
+ });
97
+ await collectionNameFetcher.preloadIdentifiers([
98
+ 'foo-collection',
99
+ 'bar-collection',
100
+ 'baz-collection',
101
+ ]);
102
+ // should have loaded here
103
+ expect(mockSearchService.searchCallCount).to.equal(1);
104
+ const results = await Promise.all([
105
+ collectionNameFetcher.collectionNameFor('foo-collection'),
106
+ collectionNameFetcher.collectionNameFor('bar-collection'),
107
+ collectionNameFetcher.collectionNameFor('baz-collection'),
108
+ ]);
109
+ // these should all be cached
110
+ expect(results[0]).to.equal('Foo Collection');
111
+ expect(results[1]).to.equal('Bar Collection');
112
+ expect(results[2]).to.equal('Baz Collection');
113
+ // no additional call should have been made
114
+ expect(mockSearchService.searchCallCount).to.equal(1);
115
+ });
116
+ it('does not make another request when preloading if name is already cached', async () => {
117
+ const mockSearchService = new MockSearchService();
118
+ mockSearchService.searchResult = mockSearchResponse;
119
+ const collectionNameFetcher = new CollectionNameCache({
120
+ searchService: mockSearchService,
121
+ loadInterval: 50,
122
+ });
123
+ await collectionNameFetcher.preloadIdentifiers([
124
+ 'foo-collection',
125
+ 'bar-collection',
126
+ 'baz-collection',
127
+ ]);
128
+ // should have loaded here
129
+ expect(mockSearchService.searchCallCount).to.equal(1);
130
+ await collectionNameFetcher.preloadIdentifiers(['foo-collection']);
131
+ // no additional call should have been made
132
+ expect(mockSearchService.searchCallCount).to.equal(1);
133
+ });
134
+ it('preloads identifiers that have not yet been cached', async () => {
135
+ var _a;
136
+ const mockSearchService = new MockSearchService();
137
+ mockSearchService.searchResult = mockSearchResponse;
138
+ const collectionNameFetcher = new CollectionNameCache({
139
+ searchService: mockSearchService,
140
+ loadInterval: 50,
141
+ });
142
+ await collectionNameFetcher.preloadIdentifiers([
143
+ 'foo-collection',
144
+ 'bar-collection',
145
+ 'baz-collection',
146
+ ]);
147
+ // should have loaded here
148
+ expect(mockSearchService.searchCallCount).to.equal(1);
149
+ await collectionNameFetcher.preloadIdentifiers([
150
+ 'foo-collection',
151
+ 'beep-collection',
152
+ ]);
153
+ expect((_a = mockSearchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.equal('identifier:(beep-collection)');
154
+ // no additional call should have been made
155
+ expect(mockSearchService.searchCallCount).to.equal(2);
156
+ });
157
+ });
158
+ //# sourceMappingURL=collection-name-cache.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-name-cache.test.js","sourceRoot":"","sources":["../../test/collection-name-cache.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EACL,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;;QAChE,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAClD,MAAM,qBAAqB,GAAG,IAAI,mBAAmB,CAAC;YACpD,aAAa,EAAE,iBAAiB;YAChC,YAAY,EAAE,EAAE;SACjB,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YACzD,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YACzD,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;SAC1D,CAAC,CAAC;QAEH,MAAM,CAAC,MAAA,iBAAiB,CAAC,YAAY,0CAAE,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CACpD,iEAAiE,CAClE,CAAC;QACF,MAAM,CAAC,MAAA,iBAAiB,CAAC,YAAY,0CAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,MAAA,iBAAiB,CAAC,YAAY,0CAAE,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3D,OAAO;YACP,YAAY;SACb,CAAC,CAAC;QACH,MAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAClD,iBAAiB,CAAC,YAAY,GAAG,kBAAkB,CAAC;QACpD,MAAM,qBAAqB,GAAG,IAAI,mBAAmB,CAAC;YACpD,aAAa,EAAE,iBAAiB;YAChC,YAAY,EAAE,EAAE;SACjB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAChC,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YACzD,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YACzD,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;SAC1D,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAClD,iBAAiB,CAAC,YAAY,GAAG,yBAAyB,CAAC;QAC3D,MAAM,qBAAqB,GAAG,IAAI,mBAAmB,CAAC;YACpD,aAAa,EAAE,iBAAiB;YAChC,YAAY,EAAE,EAAE;SACjB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAChC,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YACzD,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YACzD,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;SAC1D,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAClD,iBAAiB,CAAC,YAAY,GAAG,kBAAkB,CAAC;QACpD,MAAM,qBAAqB,GAAG,IAAI,mBAAmB,CAAC;YACpD,aAAa,EAAE,iBAAiB;YAChC,YAAY,EAAE,EAAE;SACjB,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YACzD,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YACzD,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;SAC1D,CAAC,CAAC;QAEH,0EAA0E;QAC1E,MAAM,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;QAEhE,MAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAClD,iBAAiB,CAAC,YAAY,GAAG,yBAAyB,CAAC;QAC3D,MAAM,qBAAqB,GAAG,IAAI,mBAAmB,CAAC;YACpD,aAAa,EAAE,iBAAiB;YAChC,YAAY,EAAE,EAAE;SACjB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAChC,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YACzD,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YACzD,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;SAC1D,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAClD,iBAAiB,CAAC,YAAY,GAAG,kBAAkB,CAAC;QACpD,MAAM,qBAAqB,GAAG,IAAI,mBAAmB,CAAC;YACpD,aAAa,EAAE,iBAAiB;YAChC,YAAY,EAAE,EAAE;SACjB,CAAC,CAAC;QAEH,MAAM,qBAAqB,CAAC,kBAAkB,CAAC;YAC7C,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;SACjB,CAAC,CAAC;QAEH,0BAA0B;QAC1B,MAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAChC,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YACzD,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YACzD,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;SAC1D,CAAC,CAAC;QAEH,6BAA6B;QAC7B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAE9C,2CAA2C;QAC3C,MAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAClD,iBAAiB,CAAC,YAAY,GAAG,kBAAkB,CAAC;QACpD,MAAM,qBAAqB,GAAG,IAAI,mBAAmB,CAAC;YACpD,aAAa,EAAE,iBAAiB;YAChC,YAAY,EAAE,EAAE;SACjB,CAAC,CAAC;QAEH,MAAM,qBAAqB,CAAC,kBAAkB,CAAC;YAC7C,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;SACjB,CAAC,CAAC;QAEH,0BAA0B;QAC1B,MAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtD,MAAM,qBAAqB,CAAC,kBAAkB,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAEnE,2CAA2C;QAC3C,MAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;;QAClE,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAClD,iBAAiB,CAAC,YAAY,GAAG,kBAAkB,CAAC;QACpD,MAAM,qBAAqB,GAAG,IAAI,mBAAmB,CAAC;YACpD,aAAa,EAAE,iBAAiB;YAChC,YAAY,EAAE,EAAE;SACjB,CAAC,CAAC;QAEH,MAAM,qBAAqB,CAAC,kBAAkB,CAAC;YAC7C,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;SACjB,CAAC,CAAC;QAEH,0BAA0B;QAC1B,MAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtD,MAAM,qBAAqB,CAAC,kBAAkB,CAAC;YAC7C,gBAAgB;YAChB,iBAAiB;SAClB,CAAC,CAAC;QAEH,MAAM,CAAC,MAAA,iBAAiB,CAAC,YAAY,0CAAE,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CACpD,8BAA8B,CAC/B,CAAC;QAEF,2CAA2C;QAC3C,MAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { expect } from '@open-wc/testing';\nimport { CollectionNameCache } from '../src/collection-name-cache';\nimport {\n mockSearchResponse,\n mockSearchResponseOnlyFoo,\n} from './mocks/mock-search-response';\nimport { MockSearchService } from './mocks/mock-search-service';\n\ndescribe('CollectionNameFetcher', () => {\n it('generates proper query for requested identifiers', async () => {\n const mockSearchService = new MockSearchService();\n const collectionNameFetcher = new CollectionNameCache({\n searchService: mockSearchService,\n loadInterval: 50,\n });\n\n await Promise.all([\n collectionNameFetcher.collectionNameFor('foo-collection'),\n collectionNameFetcher.collectionNameFor('bar-collection'),\n collectionNameFetcher.collectionNameFor('baz-collection'),\n ]);\n\n expect(mockSearchService.searchParams?.query).to.equal(\n 'identifier:(foo-collection OR bar-collection OR baz-collection)'\n );\n expect(mockSearchService.searchParams?.rows).to.equal(3);\n expect(mockSearchService.searchParams?.fields).to.deep.equal([\n 'title',\n 'identifier',\n ]);\n expect(mockSearchService.searchCallCount).to.equal(1);\n });\n\n it('returns proper names once load is complete', async () => {\n const mockSearchService = new MockSearchService();\n mockSearchService.searchResult = mockSearchResponse;\n const collectionNameFetcher = new CollectionNameCache({\n searchService: mockSearchService,\n loadInterval: 50,\n });\n\n const results = await Promise.all([\n collectionNameFetcher.collectionNameFor('foo-collection'),\n collectionNameFetcher.collectionNameFor('bar-collection'),\n collectionNameFetcher.collectionNameFor('baz-collection'),\n ]);\n\n expect(results[0]).to.equal('Foo Collection');\n expect(results[1]).to.equal('Bar Collection');\n expect(results[2]).to.equal('Baz Collection');\n });\n\n it('resolves all of the requests even if a name is missing', async () => {\n const mockSearchService = new MockSearchService();\n mockSearchService.searchResult = mockSearchResponseOnlyFoo;\n const collectionNameFetcher = new CollectionNameCache({\n searchService: mockSearchService,\n loadInterval: 50,\n });\n\n const results = await Promise.all([\n collectionNameFetcher.collectionNameFor('foo-collection'),\n collectionNameFetcher.collectionNameFor('bar-collection'),\n collectionNameFetcher.collectionNameFor('baz-collection'),\n ]);\n\n expect(results[0]).to.equal('Foo Collection');\n expect(results[1]).to.equal(null);\n expect(results[2]).to.equal(null);\n });\n\n it('returns the cached name if available', async () => {\n const mockSearchService = new MockSearchService();\n mockSearchService.searchResult = mockSearchResponse;\n const collectionNameFetcher = new CollectionNameCache({\n searchService: mockSearchService,\n loadInterval: 50,\n });\n\n await Promise.all([\n collectionNameFetcher.collectionNameFor('foo-collection'),\n collectionNameFetcher.collectionNameFor('bar-collection'),\n collectionNameFetcher.collectionNameFor('baz-collection'),\n ]);\n\n // make one more request, but this time there should be no network request\n await collectionNameFetcher.collectionNameFor('foo-collection');\n\n expect(mockSearchService.searchCallCount).to.equal(1);\n });\n\n it('returns multiple requests for the same identifier', async () => {\n const mockSearchService = new MockSearchService();\n mockSearchService.searchResult = mockSearchResponseOnlyFoo;\n const collectionNameFetcher = new CollectionNameCache({\n searchService: mockSearchService,\n loadInterval: 50,\n });\n\n const results = await Promise.all([\n collectionNameFetcher.collectionNameFor('foo-collection'),\n collectionNameFetcher.collectionNameFor('foo-collection'),\n collectionNameFetcher.collectionNameFor('foo-collection'),\n ]);\n\n expect(results[0]).to.equal('Foo Collection');\n expect(results[1]).to.equal('Foo Collection');\n expect(results[2]).to.equal('Foo Collection');\n });\n\n it('can preload a bunch of identifiers', async () => {\n const mockSearchService = new MockSearchService();\n mockSearchService.searchResult = mockSearchResponse;\n const collectionNameFetcher = new CollectionNameCache({\n searchService: mockSearchService,\n loadInterval: 50,\n });\n\n await collectionNameFetcher.preloadIdentifiers([\n 'foo-collection',\n 'bar-collection',\n 'baz-collection',\n ]);\n\n // should have loaded here\n expect(mockSearchService.searchCallCount).to.equal(1);\n\n const results = await Promise.all([\n collectionNameFetcher.collectionNameFor('foo-collection'),\n collectionNameFetcher.collectionNameFor('bar-collection'),\n collectionNameFetcher.collectionNameFor('baz-collection'),\n ]);\n\n // these should all be cached\n expect(results[0]).to.equal('Foo Collection');\n expect(results[1]).to.equal('Bar Collection');\n expect(results[2]).to.equal('Baz Collection');\n\n // no additional call should have been made\n expect(mockSearchService.searchCallCount).to.equal(1);\n });\n\n it('does not make another request when preloading if name is already cached', async () => {\n const mockSearchService = new MockSearchService();\n mockSearchService.searchResult = mockSearchResponse;\n const collectionNameFetcher = new CollectionNameCache({\n searchService: mockSearchService,\n loadInterval: 50,\n });\n\n await collectionNameFetcher.preloadIdentifiers([\n 'foo-collection',\n 'bar-collection',\n 'baz-collection',\n ]);\n\n // should have loaded here\n expect(mockSearchService.searchCallCount).to.equal(1);\n\n await collectionNameFetcher.preloadIdentifiers(['foo-collection']);\n\n // no additional call should have been made\n expect(mockSearchService.searchCallCount).to.equal(1);\n });\n\n it('preloads identifiers that have not yet been cached', async () => {\n const mockSearchService = new MockSearchService();\n mockSearchService.searchResult = mockSearchResponse;\n const collectionNameFetcher = new CollectionNameCache({\n searchService: mockSearchService,\n loadInterval: 50,\n });\n\n await collectionNameFetcher.preloadIdentifiers([\n 'foo-collection',\n 'bar-collection',\n 'baz-collection',\n ]);\n\n // should have loaded here\n expect(mockSearchService.searchCallCount).to.equal(1);\n\n await collectionNameFetcher.preloadIdentifiers([\n 'foo-collection',\n 'beep-collection',\n ]);\n\n expect(mockSearchService.searchParams?.query).to.equal(\n 'identifier:(beep-collection)'\n );\n\n // no additional call should have been made\n expect(mockSearchService.searchCallCount).to.equal(2);\n });\n});\n"]}
@@ -0,0 +1,5 @@
1
+ import { SearchResponse } from '@internetarchive/search-service';
2
+ import { SearchServiceError } from '@internetarchive/search-service/dist/src/search-service-error';
3
+ import { Result } from '@internetarchive/result-type';
4
+ export declare const mockSearchResponse: Result<SearchResponse, SearchServiceError>;
5
+ export declare const mockSearchResponseOnlyFoo: Result<SearchResponse, SearchServiceError>;
@@ -0,0 +1,62 @@
1
+ import { Metadata } from '@internetarchive/search-service';
2
+ export const mockSearchResponse = {
3
+ success: {
4
+ responseHeader: {
5
+ status: 0,
6
+ QTime: 0,
7
+ params: {
8
+ query: '',
9
+ qin: '',
10
+ fields: '',
11
+ start: 0,
12
+ wt: '',
13
+ },
14
+ },
15
+ rawResponse: {},
16
+ response: {
17
+ numFound: 3,
18
+ start: 0,
19
+ docs: [
20
+ new Metadata({
21
+ identifier: 'foo-collection',
22
+ title: 'Foo Collection',
23
+ }),
24
+ new Metadata({
25
+ identifier: 'bar-collection',
26
+ title: 'Bar Collection',
27
+ }),
28
+ new Metadata({
29
+ identifier: 'baz-collection',
30
+ title: 'Baz Collection',
31
+ }),
32
+ ],
33
+ },
34
+ },
35
+ };
36
+ export const mockSearchResponseOnlyFoo = {
37
+ success: {
38
+ responseHeader: {
39
+ status: 0,
40
+ QTime: 0,
41
+ params: {
42
+ query: '',
43
+ qin: '',
44
+ fields: '',
45
+ start: 0,
46
+ wt: '',
47
+ },
48
+ },
49
+ rawResponse: {},
50
+ response: {
51
+ numFound: 3,
52
+ start: 0,
53
+ docs: [
54
+ new Metadata({
55
+ identifier: 'foo-collection',
56
+ title: 'Foo Collection',
57
+ }),
58
+ ],
59
+ },
60
+ },
61
+ };
62
+ //# sourceMappingURL=mock-search-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-search-response.js","sourceRoot":"","sources":["../../../test/mocks/mock-search-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,iCAAiC,CAAC;AAI3E,MAAM,CAAC,MAAM,kBAAkB,GAA+C;IAC5E,OAAO,EAAE;QACP,cAAc,EAAE;YACd,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;YACR,MAAM,EAAE;gBACN,KAAK,EAAE,EAAE;gBACT,GAAG,EAAE,EAAE;gBACP,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,CAAC;gBACR,EAAE,EAAE,EAAE;aACP;SACF;QACD,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE;YACR,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE,CAAC;YACR,IAAI,EAAE;gBACJ,IAAI,QAAQ,CAAC;oBACX,UAAU,EAAE,gBAAgB;oBAC5B,KAAK,EAAE,gBAAgB;iBACxB,CAAC;gBACF,IAAI,QAAQ,CAAC;oBACX,UAAU,EAAE,gBAAgB;oBAC5B,KAAK,EAAE,gBAAgB;iBACxB,CAAC;gBACF,IAAI,QAAQ,CAAC;oBACX,UAAU,EAAE,gBAAgB;oBAC5B,KAAK,EAAE,gBAAgB;iBACxB,CAAC;aACH;SACF;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAGlC;IACF,OAAO,EAAE;QACP,cAAc,EAAE;YACd,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;YACR,MAAM,EAAE;gBACN,KAAK,EAAE,EAAE;gBACT,GAAG,EAAE,EAAE;gBACP,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,CAAC;gBACR,EAAE,EAAE,EAAE;aACP;SACF;QACD,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE;YACR,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE,CAAC;YACR,IAAI,EAAE;gBACJ,IAAI,QAAQ,CAAC;oBACX,UAAU,EAAE,gBAAgB;oBAC5B,KAAK,EAAE,gBAAgB;iBACxB,CAAC;aACH;SACF;KACF;CACF,CAAC","sourcesContent":["import { Metadata, SearchResponse } from '@internetarchive/search-service';\nimport { SearchServiceError } from '@internetarchive/search-service/dist/src/search-service-error';\nimport { Result } from '@internetarchive/result-type';\n\nexport const mockSearchResponse: Result<SearchResponse, SearchServiceError> = {\n success: {\n responseHeader: {\n status: 0,\n QTime: 0,\n params: {\n query: '',\n qin: '',\n fields: '',\n start: 0,\n wt: '',\n },\n },\n rawResponse: {},\n response: {\n numFound: 3,\n start: 0,\n docs: [\n new Metadata({\n identifier: 'foo-collection',\n title: 'Foo Collection',\n }),\n new Metadata({\n identifier: 'bar-collection',\n title: 'Bar Collection',\n }),\n new Metadata({\n identifier: 'baz-collection',\n title: 'Baz Collection',\n }),\n ],\n },\n },\n};\n\nexport const mockSearchResponseOnlyFoo: Result<\n SearchResponse,\n SearchServiceError\n> = {\n success: {\n responseHeader: {\n status: 0,\n QTime: 0,\n params: {\n query: '',\n qin: '',\n fields: '',\n start: 0,\n wt: '',\n },\n },\n rawResponse: {},\n response: {\n numFound: 3,\n start: 0,\n docs: [\n new Metadata({\n identifier: 'foo-collection',\n title: 'Foo Collection',\n }),\n ],\n },\n },\n};\n"]}
@@ -0,0 +1,13 @@
1
+ import { Result } from '@internetarchive/result-type';
2
+ import { MetadataResponse, SearchParams, SearchResponse, SearchServiceInterface } from '@internetarchive/search-service';
3
+ import { SearchServiceError } from '@internetarchive/search-service/dist/src/search-service-error';
4
+ export declare class MockSearchService implements SearchServiceInterface {
5
+ searchParams?: SearchParams;
6
+ searchCallCount: number;
7
+ fetchMetadataIdentifier?: string;
8
+ fetchMatadataValues?: [identifier: string, keypath: string];
9
+ searchResult?: Result<SearchResponse, SearchServiceError>;
10
+ search(params: SearchParams): Promise<Result<SearchResponse, SearchServiceError>>;
11
+ fetchMetadata(identifier: string): Promise<Result<MetadataResponse, SearchServiceError>>;
12
+ fetchMetadataValue<T>(identifier: string, keypath: string): Promise<Result<T, SearchServiceError>>;
13
+ }
@@ -0,0 +1,20 @@
1
+ export class MockSearchService {
2
+ constructor() {
3
+ this.searchCallCount = 0;
4
+ }
5
+ search(params) {
6
+ var _a;
7
+ this.searchParams = params;
8
+ this.searchCallCount += 1;
9
+ return Promise.resolve((_a = this.searchResult) !== null && _a !== void 0 ? _a : { success: undefined });
10
+ }
11
+ fetchMetadata(identifier) {
12
+ this.fetchMetadataIdentifier = identifier;
13
+ return Promise.resolve({ success: undefined });
14
+ }
15
+ fetchMetadataValue(identifier, keypath) {
16
+ this.fetchMatadataValues = [identifier, keypath];
17
+ return Promise.resolve({ success: undefined });
18
+ }
19
+ }
20
+ //# sourceMappingURL=mock-search-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-search-service.js","sourceRoot":"","sources":["../../../test/mocks/mock-search-service.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,iBAAiB;IAA9B;QAGE,oBAAe,GAAG,CAAC,CAAC;IA8BtB,CAAC;IAtBC,MAAM,CACJ,MAAoB;;QAEpB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,MAAA,IAAI,CAAC,YAAY,mCAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,aAAa,CACX,UAAkB;QAElB,IAAI,CAAC,uBAAuB,GAAG,UAAU,CAAC;QAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,kBAAkB,CAChB,UAAkB,EAClB,OAAe;QAEf,IAAI,CAAC,mBAAmB,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACjD,CAAC;CACF","sourcesContent":["import { Result } from '@internetarchive/result-type';\nimport {\n MetadataResponse,\n SearchParams,\n SearchResponse,\n SearchServiceInterface,\n} from '@internetarchive/search-service';\nimport { SearchServiceError } from '@internetarchive/search-service/dist/src/search-service-error';\n\nexport class MockSearchService implements SearchServiceInterface {\n searchParams?: SearchParams;\n\n searchCallCount = 0;\n\n fetchMetadataIdentifier?: string;\n\n fetchMatadataValues?: [identifier: string, keypath: string];\n\n searchResult?: Result<SearchResponse, SearchServiceError>;\n\n search(\n params: SearchParams\n ): Promise<Result<SearchResponse, SearchServiceError>> {\n this.searchParams = params;\n this.searchCallCount += 1;\n return Promise.resolve(this.searchResult ?? { success: undefined });\n }\n\n fetchMetadata(\n identifier: string\n ): Promise<Result<MetadataResponse, SearchServiceError>> {\n this.fetchMetadataIdentifier = identifier;\n return Promise.resolve({ success: undefined });\n }\n\n fetchMetadataValue<T>(\n identifier: string,\n keypath: string\n ): Promise<Result<T, SearchServiceError>> {\n this.fetchMatadataValues = [identifier, keypath];\n return Promise.resolve({ success: undefined });\n }\n}\n"]}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "The Internet Archive Collection Browser.",
4
4
  "license": "AGPL-3.0-only",
5
5
  "author": "Internet Archive",
6
- "version": "0.0.1-alpha.2",
6
+ "version": "0.0.1-alpha.22",
7
7
  "main": "dist/index.js",
8
8
  "module": "dist/index.js",
9
9
  "scripts": {
@@ -18,16 +18,21 @@
18
18
  },
19
19
  "types": "dist/index.d.ts",
20
20
  "dependencies": {
21
+ "@internetarchive/collection-name-cache": "0.0.1-alpha.4",
22
+ "@internetarchive/feature-feedback": "^0.1.2",
21
23
  "@internetarchive/field-parsers": "0.1.1-alpha.1",
22
24
  "@internetarchive/histogram-date-range": "^0.1.6",
23
- "@internetarchive/infinite-scroller": "0.0.1-alpha.17",
24
- "@internetarchive/search-service": "0.3.0-alpha.2",
25
+ "@internetarchive/infinite-scroller": "0.0.1-alpha.20",
26
+ "@internetarchive/search-service": "0.3.0-alpha.6",
25
27
  "@internetarchive/shared-resize-observer": "^0.2.0",
26
28
  "@lit/localize": "^0.11.2",
27
29
  "dompurify": "^2.3.6",
28
- "lit": "^2.0.2"
30
+ "lit": "^2.2.2",
31
+ "typescript-cookie": "^1.0.3"
29
32
  },
30
33
  "devDependencies": {
34
+ "@internetarchive/local-cache": "^0.2.1",
35
+ "@internetarchive/result-type": "^0.0.1",
31
36
  "@open-wc/eslint-config": "^7.0.0",
32
37
  "@open-wc/testing": "^3.0.3",
33
38
  "@types/dompurify": "^2.3.3",
@@ -0,0 +1,4 @@
1
+ import { svg } from 'lit';
2
+
3
+ export default svg`<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><path d="m79.8883285 50.0035012.1116715-.1085359-43.1159942-46.61088155c-2.401537-2.18938917-4.6902018-3.28408375-6.8659943-3.28408375s-4.1642651.63837733-5.9654178 1.91513199c-1.8011528 1.27675467-3.1520173 2.97248092-4.0525937 5.08717877l39.4020173 42.99768924-39.4020173 42.9976892c.9005764 2.1146979 2.2514409 3.8104241 4.0525937 5.0871788 1.8011527 1.2767547 3.7896253 1.915132 5.9654178 1.915132 2.1013449 0 4.3900096-1.0573489 6.8659943-3.1720468l43.1159942-46.7194174z"/></svg>
4
+ `;
@@ -0,0 +1,5 @@
1
+ import { svg } from 'lit';
2
+
3
+ export default svg`
4
+ <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><path d="m97.5245976 14.5407294-15.0809624 14.6188347c3.3026825 2.8601369 6.4111526 6.0234269 9.3254105 9.48987 2.9142578 3.4664431 5.0023086 6.2183876 6.2641522 8.2558335l1.9668021 3.1268688c-.291855.4841879-.6920826 1.1386987-1.2006828 1.9635322s-1.6502683 2.4252247-3.4250041 4.8011737c-1.7747358 2.3759489-3.6202894 4.6426342-5.5366607 6.8000558-1.9163713 2.1574217-4.3810437 4.5580085-7.3940172 7.2017606-3.0129735 2.643752-6.0731589 4.9104373-9.180556 6.8000558-3.1073972 1.8896186-6.6643798 3.4900098-10.6709478 4.8011737-4.0065681 1.3111639-8.0249391 1.9656747-12.055113 1.9635322-6.7019347 0-13.2343359-1.6732336-19.5972037-5.019701l-17.1185824 16.6562806-10.27179318-10.6917703 14.93288898-14.5449211c-3.2533247-2.8601369-6.3371159-6.0116436-9.25137378-9.45452-2.91425785-3.4428764-5.02698749-6.1819664-6.33818892-8.2172698l-1.8927654-3.0529552c.29185498-.4841879.69208259-1.1386987 1.20068282-1.9635322.50860022-.8248335 1.65026824-2.437008 3.42500406-4.8365236 1.77473582-2.3995157 3.62028938-4.6908389 5.53666072-6.8739696 1.9163713-2.1831307 4.3810437-4.5955009 7.3940172-7.2371105s6.0731589-4.9200783 9.180556-6.8354059c3.1073972-1.9153277 6.6772558-3.5275022 10.7095757-4.8365237 4.03232-1.3090215 8.0635669-1.9635322 12.0937409-1.9635322 6.5560071 0 13.0637294 1.6968003 19.5231669 5.090401l17.1185824-16.5823669zm-46.478979 24.584323 10.7803934-10.473243c-3.5451796-1.891761-7.3092505-2.8376415-11.2922126-2.8376415-6.6547228 0-12.3609169 2.3641657-17.1185824 7.0924969-4.7576654 4.7283312-7.1375711 10.437893-7.1397171 17.1286852 0 3.8306553.8251341 7.3945787 2.4754024 10.6917703l10.9284669-10.5471566v-.1446137c0-2.9094127 1.0687043-5.4546132 3.2061128-7.6356015 2.1374086-2.1809883 4.6868477-3.2714825 7.6483174-3.2714825h.5086002zm-1.1652739 21.5988543-10.7803935 10.6178566c3.5945375 1.9388943 7.4068932 2.9083415 11.4370672 2.9083415 6.6547228 0 12.3491139-2.375949 17.0831734-7.1278469s7.1021623-10.4486051 7.1043083-17.0901215c0-4.0234736-.874492-7.6356015-2.6234759-10.836384l-10.7095757 10.473243v.363141c0 2.9586884-1.0687042 5.4803223-3.2061128 7.5649015-2.1374085 2.0845792-4.6868476 3.1268688-7.6483173 3.1268688z" fill="#000"/></svg>
5
+ `;
@@ -0,0 +1,5 @@
1
+ import { svg } from 'lit';
2
+
3
+ export default svg`
4
+ <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><path d="m98 50.5704143c-.2830293-.471515-.671154-1.1088947-1.1643742-1.9121392s-1.6003642-2.3617474-3.3214321-4.6755089c-1.7210678-2.3137614-3.522258-4.5325939-5.4035703-6.6564975-1.8813124-2.1239037-4.2828993-4.473133-7.2047606-7.0476881-2.9218612-2.5745551-5.8895067-4.7933876-8.9029363-6.6564976-3.0134295-1.86311-6.4628491-3.4330878-10.3482587-4.7099336-3.8854095-1.2768458-7.7822651-1.9142256-11.6905667-1.9121443-3.9083017.0020914-7.8051573.6154781-11.6905668 1.8401652-3.8854096 1.2246871-7.3702078 2.8301329-10.4543947 4.8163375-3.0841869 1.9862045-6.0278997 4.1695691-8.8311384 6.5500937s-5.2048256 4.7652219-7.2047605 7.1540919c-1.99993501 2.38887-3.75430043 4.5722346-5.26309632 6.5500938s-2.63883199 3.583305-3.39010829 4.8163374l-1.13003609 1.8401602c.2830293.4715149.67115403 1.1088946 1.16437421 1.9121391.49322017.8032445 1.5878776 2.3617475 3.28397229 4.6755089s3.47439274 4.521119 5.3348942 6.6220728c1.8605014 2.1009538 4.2506422 4.4387083 7.1704224 7.0132633 2.9197801 2.5745551 5.8874256 4.7819127 8.9029363 6.6220729 3.0155106 1.8401601 6.4774168 3.398663 10.3857184 4.6755088 3.9083017 1.2768458 7.8176438 1.9142256 11.7280266 1.9121443 3.9103827-.0020914 7.7957922-.6154781 11.6562286-1.8401652s7.3337886-2.818658 10.4200566-4.7819127 6.0299808-4.1351444 8.8311384-6.515669 5.2152311-4.7652219 7.2422203-7.1540919 3.8052873-4.5607597 5.3348942-6.515669c1.5296068-1.9549093 2.6721295-3.5488802 3.427568-4.7819127zm-24.5142913 0c0 6.467683-2.3079374 12.0152859-6.9238123 16.6428087s-10.1495139 6.9412843-16.600917 6.9412843c-6.4992683 0-12.0453939-2.3137615-16.6383767-6.9412843s-6.8894742-10.1751257-6.8894742-16.6428087 2.2964914-12.003811 6.8894742-16.608384 10.1391084-6.9068595 16.6383767-6.9068595c6.4534842 0 11.9871232 2.3022865 16.600917 6.9068595s6.9217312 10.140701 6.9238123 16.608384zm-23.5247293-10.552755c2.8261308 0 5.2870289 1.0619518 7.3826944 3.1858555 2.0956655 2.1239036 3.1434982 4.5795368 3.1434982 7.3668995 0 2.8332624-1.0478327 5.2888956-3.1434982 7.3668995-2.0956655 2.078004-4.5565636 3.1170059-7.3826944 3.1170059-2.873996 0-5.3348941-1.0264838-7.3826944-3.0794516-2.0478002-2.0529677-3.0717003-4.5200758-3.0717003-7.4013243 0-2.8332624 1.0239001-5.3003705 3.0717003-7.4013243 2.0478003-2.1009538 4.5086984-3.1514307 7.3826944-3.1514307z" fill="#000"/></svg>
5
+ `;
@@ -1,10 +1,11 @@
1
- import { html } from 'lit';
1
+ import { svg } from 'lit';
2
2
 
3
- export default html`
4
- <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
3
+ export const accountIcon = svg`
4
+ <svg viewBox="0 0 300 300"
5
+ xmlns="http://www.w3.org/2000/svg">
5
6
  <path
6
7
  d="m89.6854559 79.6500588c1.7300364 6.4823648 2.180423 13.3122689 3.3145441 20.3499412h-86c.5683151-15.8558542 2.98334063-30.7849367 15.1676149-41.6581341 22.9948067-20.518674 59.250299-9.0032844 67.517841 21.3081929zm-40.0998307-79.6500588c10.872402.0493248 19.9700408 9.25722341 19.917959 20.1421788-.0829413 11.042868-8.9616237 19.8492523-20.0602807 19.8578212-11.1181198 0-19.9397193-8.7904706-19.9397193-19.8908727-.0327543-11.11998815 9.0125781-20.17487063 20.082041-20.1091273z"
7
- fill="#333"
8
+ fill="black"
8
9
  fill-rule="evenodd"
9
10
  />
10
11
  <title>Icon of a person</title>
@@ -1,10 +1,13 @@
1
1
  import { svg } from 'lit';
2
2
 
3
3
  export const audioIcon = svg`
4
- <svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
5
- <path
6
- d="m225.568345 20c20.949641 0 28.431655 8.5714286 28.431655 28.5714286-.928802 21.2807881-.704608 42.5615763-.400898 63.8423644l.153512 10.640394c.13351 9.458128.247386 18.916256.247386 28.374384v100c0 18.571429-5.985612 28.571429-28.431655 28.571429-50.877698-1.428571-100.258992-1.428571-151.1366903 0-20.9496403 0-28.4316547-8.571429-28.4316547-28.571429v-202.8571424c0-18.5714286 5.9856115-28.5714286 28.4316547-28.5714286 50.8776983 1.4285714 100.2589923 1.4285714 151.1366903 0zm-74.268345 127.4c-30.251351 0-53.3 24.489189-53.3 53.3 0 30.251351 24.489189 53.3 53.3 53.3 30.251351 0 53.3-24.489189 53.3-53.3s-24.489189-53.3-53.3-53.3zm0 39c7.897672 0 14.3 6.402328 14.3 14.3s-6.402328 14.3-14.3 14.3-14.3-6.402328-14.3-14.3 6.402328-14.3 14.3-14.3zm-1.3-137.8c-20.384 0-36.4 16.016-36.4 36.4s16.016 36.4 36.4 36.4 36.4-16.016 36.4-36.4-17.472-36.4-36.4-36.4z" fill="gray"
7
- fill-rule="evenodd"/>
4
+ <svg viewBox="0 0 300 300"
5
+ xmlns="http://www.w3.org/2000/svg">
6
+ <path
7
+ class="fill-color"
8
+ d="m225.568345 20c20.949641 0 28.431655 8.5714286 28.431655 28.5714286-.928802 21.2807881-.704608 42.5615763-.400898 63.8423644l.153512 10.640394c.13351 9.458128.247386 18.916256.247386 28.374384v100c0 18.571429-5.985612 28.571429-28.431655 28.571429-50.877698-1.428571-100.258992-1.428571-151.1366903 0-20.9496403 0-28.4316547-8.571429-28.4316547-28.571429v-202.8571424c0-18.5714286 5.9856115-28.5714286 28.4316547-28.5714286 50.8776983 1.4285714 100.2589923 1.4285714 151.1366903 0zm-74.268345 127.4c-30.251351 0-53.3 24.489189-53.3 53.3 0 30.251351 24.489189 53.3 53.3 53.3 30.251351 0 53.3-24.489189 53.3-53.3s-24.489189-53.3-53.3-53.3zm0 39c7.897672 0 14.3 6.402328 14.3 14.3s-6.402328 14.3-14.3 14.3-14.3-6.402328-14.3-14.3 6.402328-14.3 14.3-14.3zm-1.3-137.8c-20.384 0-36.4 16.016-36.4 36.4s16.016 36.4 36.4 36.4 36.4-16.016 36.4-36.4-17.472-36.4-36.4-36.4z"
9
+ fill="black"
10
+ fill-rule="evenodd"
8
11
  />
9
12
  <title>Icon of a speaker</title>
10
13
  </svg>
@@ -2,8 +2,11 @@ import { svg } from 'lit';
2
2
 
3
3
  export const collectionIcon = svg`
4
4
  <svg viewBox="0 0 300 300"
5
- xmlns="http://www.w3.org/2000/svg">
6
- <path d="m280 262.122891v-156.834044c0-4.877026-2.063112-9.1444235-6.189337-12.8021929s-8.220563-5.4866541-12.283013-5.4866541h-225.4946834c-4.4642309 0-8.2524498 1.726748-11.3646565 5.1802441s-4.6683101 7.8230299-4.6683101 13.1086029v156.834044c0 5.279189 1.5210273 9.578505 4.5630818 12.897946 3.0420545 3.319442 6.8653495 4.979163 11.4698848 4.979163h225.4946834c4.06245 0 8.156788-1.726748 12.283013-5.180244s6.189337-7.685784 6.189337-12.696865zm-200.9382244-131.440315v7.918783c0 1.487366-.7780516 3.00984-2.334155 4.567424-1.5561034 1.557585-3.1472828 2.336377-4.7735384 2.336377h-14.8180581c-1.7601825 0-3.4183254-.743683-4.9744288-2.231048-1.5561033-1.487365-2.334155-3.044949-2.334155-4.672753v-7.918783c0-1.761858.8131278-3.964179 2.4393834-6.606966 1.6262555-2.642786 3.2493223-3.964179 4.8692004-3.964179h14.8180581c1.4859512 0 3.0420545 1.321393 4.6683101 3.964179 1.6262556 2.642787 2.4393833 4.845108 2.4393833 6.606966zm169.2740724 0v7.918783c0 1.627804-.711089 3.185388-2.133265 4.672753-1.422177 1.487365-3.080319 2.231048-4.974429 2.231048h-131.114463c-2.028037 0-3.753143-.743683-5.175319-2.231048-1.422177-1.487365-2.133265-3.044949-2.133265-4.672753v-7.918783c0-1.895912.742975-4.130152 2.228927-6.702719 1.485951-2.572567 3.175981-3.858851 5.070091-3.858851h131.114463c1.760182 0 3.383249 1.286284 4.8692 3.858851 1.485952 2.572567 2.228927 4.806807 2.228927 6.702719zm-169.2740724 50.988539v7.918784c0 1.487365-.7780516 2.977922-2.334155 4.471671s-3.1472828 2.237431-4.7735384 2.231088h-14.8180581c-1.7601825 0-3.4183254-.743723-4.9744288-2.231088-1.5561033-1.487365-2.334155-2.977922-2.334155-4.471671v-7.918784c0-1.895912.8131278-4.165261 2.4393834-6.808047 1.6262555-2.642786 3.2493223-3.964179 4.8692004-3.964179h14.8180581c1.4859512 0 3.0420545 1.353311 4.6683101 4.059932 1.6262556 2.706622 2.4393833 4.940861 2.4393833 6.702719zm169.2740724 0v7.918784c0 1.487365-.711089 2.977922-2.133265 4.471671-1.422177 1.493749-3.080319 2.237431-4.974429 2.231088h-131.114463c-2.028037 0-3.753143-.743723-5.175319-2.231088-1.422177-1.487365-2.133265-2.977922-2.133265-4.471671v-7.918784c0-2.029966.742975-4.331233 2.228927-6.9038 1.485951-2.572567 3.175981-3.858851 5.070091-3.858851h131.114463c1.760182 0 3.383249 1.321393 4.8692 3.964179 1.485952 2.642787 2.228927 4.912136 2.228927 6.808048zm-169.2740724 51.400278v6.9038c0 1.761858-.7780516 3.421579-2.334155 4.979163s-3.1472828 2.336376-4.7735384 2.336376h-14.8180581c-1.7601825 0-3.4183254-.778792-4.9744288-2.336376-1.5561033-1.557584-2.334155-3.217305-2.334155-4.979163v-6.9038c0-2.029966.7780517-4.366342 2.334155-7.009129 1.5561034-2.642786 3.2142463-3.964179 4.9744288-3.964179h14.8180581c1.4859512 0 3.0420545 1.321393 4.6683101 3.964179 1.6262556 2.642787 2.4393833 4.979163 2.4393833 7.009129zm169.2740724 0v6.9038c0 1.761858-.711089 3.421579-2.133265 4.979163-1.422177 1.557584-3.080319 2.336376-4.974429 2.336376h-131.114463c-2.028037 0-3.753143-.778792-5.175319-2.336376-1.422177-1.557584-2.133265-3.217305-2.133265-4.979163v-6.9038c0-2.170404.742975-4.54189 2.228927-7.114457 1.485951-2.572567 3.175981-3.858851 5.070091-3.858851h131.114463c1.760182 0 3.383249 1.321393 4.8692 3.964179 1.485952 2.642787 2.228927 4.979163 2.228927 7.009129z" fill="black"/>
7
-
8
- </svg>
5
+ xmlns="http://www.w3.org/2000/svg">
6
+ <path
7
+ class="fill-color"
8
+ d="m280 262.122891v-156.834044c0-4.877026-2.063112-9.1444235-6.189337-12.8021929s-8.220563-5.4866541-12.283013-5.4866541h-225.4946834c-4.4642309 0-8.2524498 1.726748-11.3646565 5.1802441s-4.6683101 7.8230299-4.6683101 13.1086029v156.834044c0 5.279189 1.5210273 9.578505 4.5630818 12.897946 3.0420545 3.319442 6.8653495 4.979163 11.4698848 4.979163h225.4946834c4.06245 0 8.156788-1.726748 12.283013-5.180244s6.189337-7.685784 6.189337-12.696865zm-200.9382244-131.440315v7.918783c0 1.487366-.7780516 3.00984-2.334155 4.567424-1.5561034 1.557585-3.1472828 2.336377-4.7735384 2.336377h-14.8180581c-1.7601825 0-3.4183254-.743683-4.9744288-2.231048-1.5561033-1.487365-2.334155-3.044949-2.334155-4.672753v-7.918783c0-1.761858.8131278-3.964179 2.4393834-6.606966 1.6262555-2.642786 3.2493223-3.964179 4.8692004-3.964179h14.8180581c1.4859512 0 3.0420545 1.321393 4.6683101 3.964179 1.6262556 2.642787 2.4393833 4.845108 2.4393833 6.606966zm169.2740724 0v7.918783c0 1.627804-.711089 3.185388-2.133265 4.672753-1.422177 1.487365-3.080319 2.231048-4.974429 2.231048h-131.114463c-2.028037 0-3.753143-.743683-5.175319-2.231048-1.422177-1.487365-2.133265-3.044949-2.133265-4.672753v-7.918783c0-1.895912.742975-4.130152 2.228927-6.702719 1.485951-2.572567 3.175981-3.858851 5.070091-3.858851h131.114463c1.760182 0 3.383249 1.286284 4.8692 3.858851 1.485952 2.572567 2.228927 4.806807 2.228927 6.702719zm-169.2740724 50.988539v7.918784c0 1.487365-.7780516 2.977922-2.334155 4.471671s-3.1472828 2.237431-4.7735384 2.231088h-14.8180581c-1.7601825 0-3.4183254-.743723-4.9744288-2.231088-1.5561033-1.487365-2.334155-2.977922-2.334155-4.471671v-7.918784c0-1.895912.8131278-4.165261 2.4393834-6.808047 1.6262555-2.642786 3.2493223-3.964179 4.8692004-3.964179h14.8180581c1.4859512 0 3.0420545 1.353311 4.6683101 4.059932 1.6262556 2.706622 2.4393833 4.940861 2.4393833 6.702719zm169.2740724 0v7.918784c0 1.487365-.711089 2.977922-2.133265 4.471671-1.422177 1.493749-3.080319 2.237431-4.974429 2.231088h-131.114463c-2.028037 0-3.753143-.743723-5.175319-2.231088-1.422177-1.487365-2.133265-2.977922-2.133265-4.471671v-7.918784c0-2.029966.742975-4.331233 2.228927-6.9038 1.485951-2.572567 3.175981-3.858851 5.070091-3.858851h131.114463c1.760182 0 3.383249 1.321393 4.8692 3.964179 1.485952 2.642787 2.228927 4.912136 2.228927 6.808048zm-169.2740724 51.400278v6.9038c0 1.761858-.7780516 3.421579-2.334155 4.979163s-3.1472828 2.336376-4.7735384 2.336376h-14.8180581c-1.7601825 0-3.4183254-.778792-4.9744288-2.336376-1.5561033-1.557584-2.334155-3.217305-2.334155-4.979163v-6.9038c0-2.029966.7780517-4.366342 2.334155-7.009129 1.5561034-2.642786 3.2142463-3.964179 4.9744288-3.964179h14.8180581c1.4859512 0 3.0420545 1.321393 4.6683101 3.964179 1.6262556 2.642787 2.4393833 4.979163 2.4393833 7.009129zm169.2740724 0v6.9038c0 1.761858-.711089 3.421579-2.133265 4.979163-1.422177 1.557584-3.080319 2.336376-4.974429 2.336376h-131.114463c-2.028037 0-3.753143-.778792-5.175319-2.336376-1.422177-1.557584-2.133265-3.217305-2.133265-4.979163v-6.9038c0-2.170404.742975-4.54189 2.228927-7.114457 1.485951-2.572567 3.175981-3.858851 5.070091-3.858851h131.114463c1.760182 0 3.383249 1.321393 4.8692 3.964179 1.485952 2.642787 2.228927 4.979163 2.228927 7.009129z"
9
+ fill="black"
10
+ />
11
+ </svg>
9
12
  `;
@@ -1,9 +1,14 @@
1
1
  import { svg } from 'lit';
2
2
 
3
3
  export const etreeIcon = svg`
4
- <svg viewBox="0 0 300 300"
5
- xmlns="http://www.w3.org/2000/svg">
6
- <path d="m136.125893 117.288073c14.41013-4.850562 27.83316-2.109766 39.480173 7.796632 10.335962 8.792594 14.330094 20.428621 14.288498 33.809481-.091795 25.476855-.015572 50.965113-.049872 76.441968-.003811 2.805419-.034301 5.648851-.457344 8.401051-3.376719 21.854139-21.133078 36.299386-43.127486 35.204588-20.210769-1.003564-37.307792-18.132586-37.799436-38.393946-.346818-14.513672-.060979-29.057755-.301084-43.586633 0-12.597776-.06479-25.191751.034301-37.789527.0343-3.656928.16007-7.401288.903253-10.963182 3.18997-15.36138 12.272049-25.963431 27.028997-30.920432zm69.082871-95.288073v20.8201628h-42.6892v27.2482979s2.61448.5740085 3.574902.8363038c23.797103 6.5155667 41.073252 15.8669636 55.262332 37.0824705 8.594246 12.852468 11.643202 31.380398 11.643202 46.760785v15.304359h-20.889162c0-5.538611.099091-10.750305-.038112-15.961998-.099091-3.896415-.167692-7.857454-.842274-11.689246-5.328051-30.262793-30.775402-49.8170956-57.026916-51.5315184-29.311903-1.9120945-57.1907972 18.1858064-64.1500399 46.8520184-1.6657464 6.843753-1.7799637 13.736569-1.7780383 20.63947l.0023262 1.88283c.0030489 1.883022.0050308 3.76653-.0231721 5.649734-.0228671 1.364696 0 2.72559 0 4.052272h-20.5918884c-5.5529117-51.542923 24.3078039-93.7420516 70.1221835-99.8660762v-27.3889489h-42.6205979v-20.6909159z" fill="black" fill-rule="evenodd" transform="matrix(1 0 0 -1 0 301)"/>
7
-
8
- </svg>
4
+ <svg viewBox="0 0 300 300"
5
+ xmlns="http://www.w3.org/2000/svg">
6
+ <path
7
+ d="m136.125893 117.288073c14.41013-4.850562 27.83316-2.109766 39.480173 7.796632 10.335962 8.792594 14.330094 20.428621 14.288498 33.809481-.091795 25.476855-.015572 50.965113-.049872 76.441968-.003811 2.805419-.034301 5.648851-.457344 8.401051-3.376719 21.854139-21.133078 36.299386-43.127486 35.204588-20.210769-1.003564-37.307792-18.132586-37.799436-38.393946-.346818-14.513672-.060979-29.057755-.301084-43.586633 0-12.597776-.06479-25.191751.034301-37.789527.0343-3.656928.16007-7.401288.903253-10.963182 3.18997-15.36138 12.272049-25.963431 27.028997-30.920432zm69.082871-95.288073v20.8201628h-42.6892v27.2482979s2.61448.5740085 3.574902.8363038c23.797103 6.5155667 41.073252 15.8669636 55.262332 37.0824705 8.594246 12.852468 11.643202 31.380398 11.643202 46.760785v15.304359h-20.889162c0-5.538611.099091-10.750305-.038112-15.961998-.099091-3.896415-.167692-7.857454-.842274-11.689246-5.328051-30.262793-30.775402-49.8170956-57.026916-51.5315184-29.311903-1.9120945-57.1907972 18.1858064-64.1500399 46.8520184-1.6657464 6.843753-1.7799637 13.736569-1.7780383 20.63947l.0023262 1.88283c.0030489 1.883022.0050308 3.76653-.0231721 5.649734-.0228671 1.364696 0 2.72559 0 4.052272h-20.5918884c-5.5529117-51.542923 24.3078039-93.7420516 70.1221835-99.8660762v-27.3889489h-42.6205979v-20.6909159z"
8
+ class="fill-color"
9
+ fill="black"
10
+ fill-rule="evenodd"
11
+ transform="matrix(1 0 0 -1 0 301)"
12
+ />
13
+ </svg>
9
14
  `;
@@ -3,8 +3,9 @@ import { svg } from 'lit';
3
3
  export const filmIcon = svg`
4
4
  <svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
5
5
  <path
6
+ class="fill-color"
6
7
  d="m272 280h-9.268431c.276116-.74734.440961-1.53597.440961-2.365889v-6.775607c0-3.831666-3.082608-6.920121-6.882294-6.920121h-12.701336c-3.795565 0-6.882294 3.100842-6.882294 6.920121v6.775607c0 .829919.164845 1.626807.432719 2.365889h-172.3623223c.2678738-.74734.4368403-1.53597.4368403-2.365889v-6.775607c0-3.831666-3.0826085-6.920121-6.8864155-6.920121h-12.6930937c-3.803807 0-6.8905366 3.100842-6.8905366 6.920121v6.775607c0 .829919.1689665 1.626807.4368402 2.365889h-11.1806374v-260h11.1806374c-.2678737.74734-.4368402 1.5359695-.4368402 2.3700175v6.7673495c0 3.8399238 3.0826085 6.9242496 6.8905366 6.9242496h12.6930937c3.7955647 0 6.8864155-3.0967127 6.8864155-6.9242496v-6.7673495c0-.8381769-.1689665-1.6309354-.4368403-2.3700175h172.3664433c-.271995.74734-.43684 1.5359695-.43684 2.3700175v6.7673495c0 3.8399238 3.078487 6.9242496 6.882294 6.9242496h12.701336c3.795565 0 6.882294-3.0967127 6.882294-6.9242496v-6.7673495c0-.8381769-.164845-1.6309354-.43684-2.3700175h9.26431zm-206.786157-222.1333969c0-3.8357948-3.0826085-6.9242496-6.8864155-6.9242496h-12.6930937c-3.803807 0-6.8905366 3.1008417-6.8905366 6.9242496v6.7714785c0 3.8399238 3.0826085 6.9283786 6.8905366 6.9283786h12.6930937c3.7955647 0 6.8864155-3.1008417 6.8864155-6.9283786zm0 35.5007147c0-3.8357949-3.0826085-6.9242497-6.8864155-6.9242497h-12.6930937c-3.803807 0-6.8905366 3.1008417-6.8905366 6.9242497v6.7714782c0 3.835795 3.0826085 6.920121 6.8905366 6.920121h12.6930937c3.7955647 0 6.8864155-3.096713 6.8864155-6.920121zm0 35.4965852c0-3.839923-3.0826085-6.924249-6.8864155-6.924249h-12.6930937c-3.803807 0-6.8905366 3.100841-6.8905366 6.924249v6.771479c0 3.839924 3.0826085 6.92425 6.8905366 6.92425h12.6930937c3.7955647 0 6.8864155-3.100842 6.8864155-6.92425zm0 35.500715c0-3.839924-3.0826085-6.92425-6.8864155-6.92425h-12.6930937c-3.803807 0-6.8905366 3.096713-6.8905366 6.92425v6.771479c0 3.839923 3.0826085 6.928378 6.8905366 6.928378h12.6930937c3.7955647 0 6.8864155-3.10497 6.8864155-6.928378zm0 35.496586c0-3.827537-3.0826085-6.92425-6.8864155-6.92425h-12.6930937c-3.803807 0-6.8905366 3.104971-6.8905366 6.92425v6.771478c0 3.839924 3.0826085 6.928379 6.8905366 6.928379h12.6930937c3.7955647 0 6.8864155-3.104971 6.8864155-6.928379zm0 35.500714c0-3.835794-3.0826085-6.924249-6.8864155-6.924249h-12.6930937c-3.803807 0-6.8905366 3.10497-6.8905366 6.924249v6.771479c0 3.835795 3.0826085 6.928378 6.8905366 6.928378h12.6930937c3.7955647 0 6.8864155-3.10497 6.8864155-6.928378zm155.247251-186.2734632c0-5.8672383-4.805242-10.6692075-10.673738-10.6692075h-119.5788334c-5.8684952 0-10.6737379 4.8019692-10.6737379 10.6692075v74.7009692c0 5.867238 4.8052427 10.665078 10.6737379 10.665078h119.5788334c5.868496 0 10.673738-4.79784 10.673738-10.665078zm.366781 121.3663652c0-5.90027-4.83409-10.727013-10.731434-10.727013h-120.1970034c-5.8973433 0-10.7273127 4.826743-10.7273127 10.727013v75.084961c0 5.896141 4.8299694 10.718755 10.7273127 10.718755h120.1970034c5.897344 0 10.731434-4.822614 10.731434-10.718755zm42.344655-112.5882169c0-3.8357948-3.082608-6.9242496-6.882294-6.9242496h-12.701336c-3.795565 0-6.882294 3.1008417-6.882294 6.9242496v6.7714785c0 3.8399238 3.078487 6.9283786 6.882294 6.9283786h12.701336c3.795565 0 6.882294-3.1008417 6.882294-6.9283786zm0 35.5007147c0-3.8357949-3.082608-6.9242497-6.882294-6.9242497h-12.701336c-3.795565 0-6.882294 3.1008417-6.882294 6.9242497v6.7714782c0 3.835795 3.078487 6.920121 6.882294 6.920121h12.701336c3.795565 0 6.882294-3.096713 6.882294-6.920121zm0 35.4965852c0-3.839923-3.082608-6.924249-6.882294-6.924249h-12.701336c-3.795565 0-6.882294 3.100841-6.882294 6.924249v6.771479c0 3.839924 3.078487 6.92425 6.882294 6.92425h12.701336c3.795565 0 6.882294-3.100842 6.882294-6.92425zm0 35.500715c0-3.839924-3.082608-6.92425-6.882294-6.92425h-12.701336c-3.795565 0-6.882294 3.096713-6.882294 6.92425v6.771479c0 3.839923 3.078487 6.928378 6.882294 6.928378h12.701336c3.795565 0 6.882294-3.10497 6.882294-6.928378zm0 35.496586c0-3.827537-3.082608-6.92425-6.882294-6.92425h-12.701336c-3.795565 0-6.882294 3.104971-6.882294 6.92425v6.771478c0 3.839924 3.078487 6.928379 6.882294 6.928379h12.701336c3.795565 0 6.882294-3.104971 6.882294-6.928379zm0 35.500714c0-3.835794-3.082608-6.924249-6.882294-6.924249h-12.701336c-3.795565 0-6.882294 3.10497-6.882294 6.924249v6.771479c0 3.835795 3.078487 6.928378 6.882294 6.928378h12.701336c3.795565 0 6.882294-3.10497 6.882294-6.928378z"
7
- fill="gray"
8
+ fill="black"
8
9
  fill-rule="evenodd"
9
10
  transform="matrix(1 0 0 -1 0 300)"
10
11
  />
@@ -1,10 +1,13 @@
1
1
  import { svg } from 'lit';
2
2
 
3
3
  export const imagesIcon = svg`
4
- <svg viewBox="0 0 300 300"
5
- xmlns="http://www.w3.org/2000/svg">
6
- <path d="m43.0952612 181.159979c2.1744514 0 21.7161099 3.336499 21.7161099 3.336499v21.030628l-44.8113711-6.289709c4.5382599-51.29161 9.6729948-105.5332879 14.6089046-156.237397 66.1329874 6.484496 144.5110704 16.1138469 211.0385514 22.4035567-.987813 6.4876377-1.581132 21.8160564-1.972471 28.3005524-4.939065-.5906421-15.599873 0-20.535783-.5906421v-9.0418506c-56.065498-5.3032118-112.326666-12.180422-168.3953197-17.6847035 0 0-7.7005244 74.2858081-11.6486211 114.7730661zm31.7867547-81.562016h205.1179841v158.402037h-205.1179841zm18.9514955 140.126691h167.8051566v-64.461671l-21.122791 35.963191-28.428821-67.408598-24.2819 28.891194-66.530637-54.634392h-27.4410076zm64.5550106-40.487257c0-11.394994-9.082832-20.436845-20.731453-20.436845-11.250971 0-20.923965 9.041851-20.923965 20.436845 0 11.203349 9.672994 20.439986 20.923965 20.439986 11.648621 0 20.731453-9.236637 20.731453-20.439986z" fill="black" transform="matrix(1 0 0 -1 0 301)"/>
7
-
8
-
9
- </svg>
4
+ <svg viewBox="0 0 300 300"
5
+ xmlns="http://www.w3.org/2000/svg">
6
+ <path
7
+ class="fill-color"
8
+ d="m43.0952612 181.159979c2.1744514 0 21.7161099 3.336499 21.7161099 3.336499v21.030628l-44.8113711-6.289709c4.5382599-51.29161 9.6729948-105.5332879 14.6089046-156.237397 66.1329874 6.484496 144.5110704 16.1138469 211.0385514 22.4035567-.987813 6.4876377-1.581132 21.8160564-1.972471 28.3005524-4.939065-.5906421-15.599873 0-20.535783-.5906421v-9.0418506c-56.065498-5.3032118-112.326666-12.180422-168.3953197-17.6847035 0 0-7.7005244 74.2858081-11.6486211 114.7730661zm31.7867547-81.562016h205.1179841v158.402037h-205.1179841zm18.9514955 140.126691h167.8051566v-64.461671l-21.122791 35.963191-28.428821-67.408598-24.2819 28.891194-66.530637-54.634392h-27.4410076zm64.5550106-40.487257c0-11.394994-9.082832-20.436845-20.731453-20.436845-11.250971 0-20.923965 9.041851-20.923965 20.436845 0 11.203349 9.672994 20.439986 20.923965 20.439986 11.648621 0 20.731453-9.236637 20.731453-20.439986z"
9
+ fill="black"
10
+ transform="matrix(1 0 0 -1 0 301)"
11
+ />
12
+ </svg>
10
13
  `;
@@ -1,10 +1,13 @@
1
1
  import { svg } from 'lit';
2
2
 
3
3
  export const softwareIcon = svg`
4
- <svg viewBox="0 0 300 300"
5
- xmlns="http://www.w3.org/2000/svg">
6
- <path d="m266.443951 20c8.716971 0 13.539477 4.8435881 13.556049 13.5985084v116.3828466 116.072094c0 9.214834-4.702358 13.946551-13.854348 13.946551h-232.4332033c-8.9489808 0-13.6969123-4.793868-13.6969123-13.768386-.0207152-77.476694-.0207152-154.961674 0-232.4590845 0-8.9662316 4.7479315-13.7725295 13.672054-13.7725295zm-197.7807608 138.512534c-2.3822518 0-5.1000904 1.052413-7.0887528 2.444582-4.1223314 2.871349-5.2575262 7.383468-5.2575262 12.227056l.0000647 20.524783c.0000093.952732.0000199 1.902825.0000319 2.850655l.0008306 25.31649c.0000546.937648.0001123 1.876427.0001735 2.816715l.0009089 11.379992c.0000914.958389.0001869 1.919795.0002867 2.884595l.0006526 5.832546c.0003539 2.939654.0007502 5.916643.0011941 8.941148 0 1.052413.0952901 2.092397.1574358 3.298115h183.648829l.28587-1.143568c.016572-29.633312.111862-55.119121-.033144-84.760721-.041431-7.391754-5.522681-12.703542-12.350422-12.703542-53.113858-.008287-106.236002-.045577-159.3664328.091154zm146.0755388-113.992128h-129.8596542l-.2444397 1.1601409c-.0082861 22.2001243-.0662888 44.3961053.0331443 66.6003731.0207153 5.676403 4.0228983 9.264553 9.7485888 9.264553 36.5333858.008287 73.0460558.008287 109.5835838.008287 7.391195 0 10.734634-3.372695 10.738777-10.876321zm-20.434335 9.1887301v53.7103789h-32.709353v-53.7103789z" fill="black" fill-rule="evenodd"/>
7
-
8
-
9
- </svg>
4
+ <svg viewBox="0 0 300 300"
5
+ xmlns="http://www.w3.org/2000/svg">
6
+ <path
7
+ class="fill-color"
8
+ d="m266.443951 20c8.716971 0 13.539477 4.8435881 13.556049 13.5985084v116.3828466 116.072094c0 9.214834-4.702358 13.946551-13.854348 13.946551h-232.4332033c-8.9489808 0-13.6969123-4.793868-13.6969123-13.768386-.0207152-77.476694-.0207152-154.961674 0-232.4590845 0-8.9662316 4.7479315-13.7725295 13.672054-13.7725295zm-197.7807608 138.512534c-2.3822518 0-5.1000904 1.052413-7.0887528 2.444582-4.1223314 2.871349-5.2575262 7.383468-5.2575262 12.227056l.0000647 20.524783c.0000093.952732.0000199 1.902825.0000319 2.850655l.0008306 25.31649c.0000546.937648.0001123 1.876427.0001735 2.816715l.0009089 11.379992c.0000914.958389.0001869 1.919795.0002867 2.884595l.0006526 5.832546c.0003539 2.939654.0007502 5.916643.0011941 8.941148 0 1.052413.0952901 2.092397.1574358 3.298115h183.648829l.28587-1.143568c.016572-29.633312.111862-55.119121-.033144-84.760721-.041431-7.391754-5.522681-12.703542-12.350422-12.703542-53.113858-.008287-106.236002-.045577-159.3664328.091154zm146.0755388-113.992128h-129.8596542l-.2444397 1.1601409c-.0082861 22.2001243-.0662888 44.3961053.0331443 66.6003731.0207153 5.676403 4.0228983 9.264553 9.7485888 9.264553 36.5333858.008287 73.0460558.008287 109.5835838.008287 7.391195 0 10.734634-3.372695 10.738777-10.876321zm-20.434335 9.1887301v53.7103789h-32.709353v-53.7103789z"
9
+ fill="black"
10
+ fill-rule="evenodd"
11
+ />
12
+ </svg>
10
13
  `;
@@ -1,10 +1,13 @@
1
1
  import { svg } from 'lit';
2
2
 
3
3
  export const textsIcon = svg`
4
- <svg viewBox="0 0 300 300"
5
- xmlns="http://www.w3.org/2000/svg">
6
- <path d="m30.7264159 91.3202111 1.6974686 166.4298289s93.0569425-.896348 99.7147175 6.469589c4.752251 5.262329 29.15749 5.35494 31.185205 2.06061 5.607591-9.099099 85.824537-7.696693 102.729871-8.530199l1.905524-164.9480418 12.040798 4.2865984v175.2610164s-105.576598-1.796006-108.707338 4.190679c-.369876.714433-11.030243 3.459708-17.354469 3.459708l-.365424-.000017-.751764-.000432c-7.778071-.009122-19.543206-.203741-22.971013-4.355608-5.663733-6.863188-109.849992-4.187372-109.849992-4.187372v-175.5388508zm222.4119701-5.3202111v146.683693s-1.32429 4.845576-4.61685 8.004297c-2.777376 2.665893-8.834102 2.768428-8.834102 2.768428h-59.100966s-15.366384 3.883076-18.041383 8.146521l-7.21259-.046306v-156.044089c4.785276-5.1035658 12.024286-9.512544 22.929035-9.512544zm-132.891971 0c10.736323 0 17.929098 4.2766757 22.714375 9.2909375v156.2656955l-7.001233.046306c-5.165059-5.067182-18.044684-8.146521-18.044684-8.146521l-61.8453708-.000141c-.1987476-.00456-4.8027407-.135182-7.8201913-2.503683-2.7517631-2.168142-2.8740636-6.281222-2.8794992-6.642546l-.0002528-148.310048z" fill="black" fill-rule="evenodd"/>
7
-
8
-
9
- </svg>
4
+ <svg viewBox="0 0 300 300"
5
+ xmlns="http://www.w3.org/2000/svg">
6
+ <path
7
+ class="fill-color"
8
+ d="m30.7264159 91.3202111 1.6974686 166.4298289s93.0569425-.896348 99.7147175 6.469589c4.752251 5.262329 29.15749 5.35494 31.185205 2.06061 5.607591-9.099099 85.824537-7.696693 102.729871-8.530199l1.905524-164.9480418 12.040798 4.2865984v175.2610164s-105.576598-1.796006-108.707338 4.190679c-.369876.714433-11.030243 3.459708-17.354469 3.459708l-.365424-.000017-.751764-.000432c-7.778071-.009122-19.543206-.203741-22.971013-4.355608-5.663733-6.863188-109.849992-4.187372-109.849992-4.187372v-175.5388508zm222.4119701-5.3202111v146.683693s-1.32429 4.845576-4.61685 8.004297c-2.777376 2.665893-8.834102 2.768428-8.834102 2.768428h-59.100966s-15.366384 3.883076-18.041383 8.146521l-7.21259-.046306v-156.044089c4.785276-5.1035658 12.024286-9.512544 22.929035-9.512544zm-132.891971 0c10.736323 0 17.929098 4.2766757 22.714375 9.2909375v156.2656955l-7.001233.046306c-5.165059-5.067182-18.044684-8.146521-18.044684-8.146521l-61.8453708-.000141c-.1987476-.00456-4.8027407-.135182-7.8201913-2.503683-2.7517631-2.168142-2.8740636-6.281222-2.8794992-6.642546l-.0002528-148.310048z"
9
+ fill="black"
10
+ fill-rule="evenodd"
11
+ />
12
+ </svg>
10
13
  `;
@@ -1,9 +1,14 @@
1
1
  import { svg } from 'lit';
2
2
 
3
3
  export const tvIcon = svg`
4
- <svg viewBox="0 0 300 300"
5
- xmlns="http://www.w3.org/2000/svg">
6
- <path d="m237.917039 64.413845c0-9.2252653-7.280839-16.7597371-16.145202-16.7597371h-143.5076619c-8.8913162 0-16.1755245 7.5344718-16.1755245 16.7597371v90.110532c0 9.218529 7.2842083 16.756369 16.1755245 16.756369h143.5076619c8.864363 0 16.145202-7.53784 16.145202-16.756369zm26.070862 112.508493c.347027 17.780275-6.761982 22.667409-22.50288 21.923056-19.861428-.943072-39.773394-.2324-59.668515-.2324h-3.584827c0 .121252.067384.222296.067384.343548 0 5.530444-3.416368 10.161601-8.163569 11.970278l34.729703 56.607899c2.368547 3.859859 1.165743 8.905294-2.712205 11.246134-3.867841 2.37452-8.894686 1.175471-11.243017-2.684388l-39.436475-64.283831h-7.280839l-37.556461 61.255897c-2.378655 3.856491-7.3987611 5.055539-11.2666016 2.687755-3.8577329-2.35768-5.0639061-7.403116-2.708836-11.259607l34.0558636-55.503156c-2.951418-2.344208-5.003261-5.884096-5.003261-10.036981 0-.134725.064015-.242504.064015-.370493-26.0169545-.07073-45.1472665-.740985-64.1124877.296394-16.711227.879078-21.9402239-6.069342-21.653842-22.839183.8153462-44.310913.7917618-88.6218257.033692-132.9327384-.2931203-16.5138648 4.4945115-23.3275602 21.3775677-23.1052646 61.993262.7544576 124.003369.6332055 186.023585.0505217 15.302902-.1481971 20.723943 5.6011742 20.477991 21.3572132-.636778 45.1563095-.808608 90.3564041.064015 135.5093461z" fill="black" fill-rule="evenodd" transform="matrix(1 0 0 -1 0 300)"/>
7
-
8
- </svg>
4
+ <svg viewBox="0 0 300 300"
5
+ xmlns="http://www.w3.org/2000/svg">
6
+ <path
7
+ class="fill-color"
8
+ d="m237.917039 64.413845c0-9.2252653-7.280839-16.7597371-16.145202-16.7597371h-143.5076619c-8.8913162 0-16.1755245 7.5344718-16.1755245 16.7597371v90.110532c0 9.218529 7.2842083 16.756369 16.1755245 16.756369h143.5076619c8.864363 0 16.145202-7.53784 16.145202-16.756369zm26.070862 112.508493c.347027 17.780275-6.761982 22.667409-22.50288 21.923056-19.861428-.943072-39.773394-.2324-59.668515-.2324h-3.584827c0 .121252.067384.222296.067384.343548 0 5.530444-3.416368 10.161601-8.163569 11.970278l34.729703 56.607899c2.368547 3.859859 1.165743 8.905294-2.712205 11.246134-3.867841 2.37452-8.894686 1.175471-11.243017-2.684388l-39.436475-64.283831h-7.280839l-37.556461 61.255897c-2.378655 3.856491-7.3987611 5.055539-11.2666016 2.687755-3.8577329-2.35768-5.0639061-7.403116-2.708836-11.259607l34.0558636-55.503156c-2.951418-2.344208-5.003261-5.884096-5.003261-10.036981 0-.134725.064015-.242504.064015-.370493-26.0169545-.07073-45.1472665-.740985-64.1124877.296394-16.711227.879078-21.9402239-6.069342-21.653842-22.839183.8153462-44.310913.7917618-88.6218257.033692-132.9327384-.2931203-16.5138648 4.4945115-23.3275602 21.3775677-23.1052646 61.993262.7544576 124.003369.6332055 186.023585.0505217 15.302902-.1481971 20.723943 5.6011742 20.477991 21.3572132-.636778 45.1563095-.808608 90.3564041.064015 135.5093461z"
9
+ fill="black"
10
+ fill-rule="evenodd"
11
+ transform="matrix(1 0 0 -1 0 300)"
12
+ />
13
+ </svg>
9
14
  `;