@internetarchive/collection-browser 0.2.10-a1 → 0.2.10

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 (189) hide show
  1. package/package.json +1 -1
  2. package/dist/index.d.ts +0 -9
  3. package/dist/index.js.map +0 -1
  4. package/dist/src/app-root.d.ts +0 -32
  5. package/dist/src/app-root.js +0 -285
  6. package/dist/src/app-root.js.map +0 -1
  7. package/dist/src/assets/img/icons/chevron.d.ts +0 -2
  8. package/dist/src/assets/img/icons/chevron.js +0 -4
  9. package/dist/src/assets/img/icons/chevron.js.map +0 -1
  10. package/dist/src/assets/img/icons/eye-closed.d.ts +0 -2
  11. package/dist/src/assets/img/icons/eye-closed.js +0 -5
  12. package/dist/src/assets/img/icons/eye-closed.js.map +0 -1
  13. package/dist/src/assets/img/icons/eye.d.ts +0 -2
  14. package/dist/src/assets/img/icons/eye.js +0 -5
  15. package/dist/src/assets/img/icons/eye.js.map +0 -1
  16. package/dist/src/assets/img/icons/favorite-filled.d.ts +0 -1
  17. package/dist/src/assets/img/icons/favorite-filled.js +0 -11
  18. package/dist/src/assets/img/icons/favorite-filled.js.map +0 -1
  19. package/dist/src/assets/img/icons/mediatype/account.d.ts +0 -1
  20. package/dist/src/assets/img/icons/mediatype/account.js +0 -14
  21. package/dist/src/assets/img/icons/mediatype/account.js.map +0 -1
  22. package/dist/src/assets/img/icons/mediatype/audio.d.ts +0 -1
  23. package/dist/src/assets/img/icons/mediatype/audio.js +0 -14
  24. package/dist/src/assets/img/icons/mediatype/audio.js.map +0 -1
  25. package/dist/src/assets/img/icons/mediatype/collection.d.ts +0 -1
  26. package/dist/src/assets/img/icons/mediatype/collection.js +0 -12
  27. package/dist/src/assets/img/icons/mediatype/collection.js.map +0 -1
  28. package/dist/src/assets/img/icons/mediatype/data.d.ts +0 -1
  29. package/dist/src/assets/img/icons/mediatype/data.js +0 -15
  30. package/dist/src/assets/img/icons/mediatype/data.js.map +0 -1
  31. package/dist/src/assets/img/icons/mediatype/etree.d.ts +0 -1
  32. package/dist/src/assets/img/icons/mediatype/etree.js +0 -14
  33. package/dist/src/assets/img/icons/mediatype/etree.js.map +0 -1
  34. package/dist/src/assets/img/icons/mediatype/film.d.ts +0 -1
  35. package/dist/src/assets/img/icons/mediatype/film.js +0 -14
  36. package/dist/src/assets/img/icons/mediatype/film.js.map +0 -1
  37. package/dist/src/assets/img/icons/mediatype/images.d.ts +0 -1
  38. package/dist/src/assets/img/icons/mediatype/images.js +0 -13
  39. package/dist/src/assets/img/icons/mediatype/images.js.map +0 -1
  40. package/dist/src/assets/img/icons/mediatype/radio.d.ts +0 -1
  41. package/dist/src/assets/img/icons/mediatype/radio.js +0 -15
  42. package/dist/src/assets/img/icons/mediatype/radio.js.map +0 -1
  43. package/dist/src/assets/img/icons/mediatype/software.d.ts +0 -1
  44. package/dist/src/assets/img/icons/mediatype/software.js +0 -13
  45. package/dist/src/assets/img/icons/mediatype/software.js.map +0 -1
  46. package/dist/src/assets/img/icons/mediatype/texts.d.ts +0 -1
  47. package/dist/src/assets/img/icons/mediatype/texts.js +0 -13
  48. package/dist/src/assets/img/icons/mediatype/texts.js.map +0 -1
  49. package/dist/src/assets/img/icons/mediatype/tv.d.ts +0 -1
  50. package/dist/src/assets/img/icons/mediatype/tv.js +0 -14
  51. package/dist/src/assets/img/icons/mediatype/tv.js.map +0 -1
  52. package/dist/src/assets/img/icons/mediatype/video.d.ts +0 -1
  53. package/dist/src/assets/img/icons/mediatype/video.js +0 -14
  54. package/dist/src/assets/img/icons/mediatype/video.js.map +0 -1
  55. package/dist/src/assets/img/icons/mediatype/web.d.ts +0 -1
  56. package/dist/src/assets/img/icons/mediatype/web.js +0 -13
  57. package/dist/src/assets/img/icons/mediatype/web.js.map +0 -1
  58. package/dist/src/assets/img/icons/restricted.d.ts +0 -1
  59. package/dist/src/assets/img/icons/restricted.js +0 -29
  60. package/dist/src/assets/img/icons/restricted.js.map +0 -1
  61. package/dist/src/assets/img/icons/reviews.d.ts +0 -1
  62. package/dist/src/assets/img/icons/reviews.js +0 -11
  63. package/dist/src/assets/img/icons/reviews.js.map +0 -1
  64. package/dist/src/assets/img/icons/upload.d.ts +0 -1
  65. package/dist/src/assets/img/icons/upload.js +0 -12
  66. package/dist/src/assets/img/icons/upload.js.map +0 -1
  67. package/dist/src/assets/img/icons/views.d.ts +0 -1
  68. package/dist/src/assets/img/icons/views.js +0 -11
  69. package/dist/src/assets/img/icons/views.js.map +0 -1
  70. package/dist/src/circular-activity-indicator.d.ts +0 -5
  71. package/dist/src/circular-activity-indicator.js +0 -66
  72. package/dist/src/circular-activity-indicator.js.map +0 -1
  73. package/dist/src/collection-browser.d.ts +0 -207
  74. package/dist/src/collection-browser.js +0 -1210
  75. package/dist/src/collection-browser.js.map +0 -1
  76. package/dist/src/collection-facets.d.ts +0 -63
  77. package/dist/src/collection-facets.js +0 -560
  78. package/dist/src/collection-facets.js.map +0 -1
  79. package/dist/src/language-code-handler/language-code-handler.d.ts +0 -37
  80. package/dist/src/language-code-handler/language-code-handler.js +0 -27
  81. package/dist/src/language-code-handler/language-code-handler.js.map +0 -1
  82. package/dist/src/language-code-handler/language-code-mapping.d.ts +0 -1
  83. package/dist/src/language-code-handler/language-code-mapping.js +0 -563
  84. package/dist/src/language-code-handler/language-code-mapping.js.map +0 -1
  85. package/dist/src/mediatype/mediatype-config.d.ts +0 -3
  86. package/dist/src/mediatype/mediatype-config.js +0 -86
  87. package/dist/src/mediatype/mediatype-config.js.map +0 -1
  88. package/dist/src/models.d.ts +0 -84
  89. package/dist/src/models.js +0 -58
  90. package/dist/src/models.js.map +0 -1
  91. package/dist/src/restoration-state-handler.d.ts +0 -38
  92. package/dist/src/restoration-state-handler.js +0 -204
  93. package/dist/src/restoration-state-handler.js.map +0 -1
  94. package/dist/src/sort-filter-bar/alpha-bar.d.ts +0 -9
  95. package/dist/src/sort-filter-bar/alpha-bar.js +0 -98
  96. package/dist/src/sort-filter-bar/alpha-bar.js.map +0 -1
  97. package/dist/src/sort-filter-bar/img/compact.d.ts +0 -1
  98. package/dist/src/sort-filter-bar/img/compact.js +0 -5
  99. package/dist/src/sort-filter-bar/img/compact.js.map +0 -1
  100. package/dist/src/sort-filter-bar/img/list.d.ts +0 -1
  101. package/dist/src/sort-filter-bar/img/list.js +0 -5
  102. package/dist/src/sort-filter-bar/img/list.js.map +0 -1
  103. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +0 -1
  104. package/dist/src/sort-filter-bar/img/sort-triangle.js +0 -5
  105. package/dist/src/sort-filter-bar/img/sort-triangle.js.map +0 -1
  106. package/dist/src/sort-filter-bar/img/tile.d.ts +0 -1
  107. package/dist/src/sort-filter-bar/img/tile.js +0 -5
  108. package/dist/src/sort-filter-bar/img/tile.js.map +0 -1
  109. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +0 -85
  110. package/dist/src/sort-filter-bar/sort-filter-bar.js +0 -698
  111. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +0 -1
  112. package/dist/src/styles/item-image-styles.d.ts +0 -8
  113. package/dist/src/styles/item-image-styles.js +0 -101
  114. package/dist/src/styles/item-image-styles.js.map +0 -1
  115. package/dist/src/tiles/collection-browser-loading-tile.d.ts +0 -5
  116. package/dist/src/tiles/collection-browser-loading-tile.js +0 -32
  117. package/dist/src/tiles/collection-browser-loading-tile.js.map +0 -1
  118. package/dist/src/tiles/grid/account-tile.d.ts +0 -8
  119. package/dist/src/tiles/grid/account-tile.js +0 -126
  120. package/dist/src/tiles/grid/account-tile.js.map +0 -1
  121. package/dist/src/tiles/grid/collection-tile.d.ts +0 -7
  122. package/dist/src/tiles/grid/collection-tile.js +0 -159
  123. package/dist/src/tiles/grid/collection-tile.js.map +0 -1
  124. package/dist/src/tiles/grid/item-tile.d.ts +0 -16
  125. package/dist/src/tiles/grid/item-tile.js +0 -174
  126. package/dist/src/tiles/grid/item-tile.js.map +0 -1
  127. package/dist/src/tiles/grid/tile-stats.d.ts +0 -10
  128. package/dist/src/tiles/grid/tile-stats.js +0 -134
  129. package/dist/src/tiles/grid/tile-stats.js.map +0 -1
  130. package/dist/src/tiles/item-image.d.ts +0 -31
  131. package/dist/src/tiles/item-image.js +0 -117
  132. package/dist/src/tiles/item-image.js.map +0 -1
  133. package/dist/src/tiles/item-tile-image.d.ts +0 -15
  134. package/dist/src/tiles/item-tile-image.js +0 -68
  135. package/dist/src/tiles/item-tile-image.js.map +0 -1
  136. package/dist/src/tiles/list/account-label.d.ts +0 -1
  137. package/dist/src/tiles/list/account-label.js +0 -7
  138. package/dist/src/tiles/list/account-label.js.map +0 -1
  139. package/dist/src/tiles/list/date-label.d.ts +0 -1
  140. package/dist/src/tiles/list/date-label.js +0 -13
  141. package/dist/src/tiles/list/date-label.js.map +0 -1
  142. package/dist/src/tiles/list/tile-list-compact-header.d.ts +0 -12
  143. package/dist/src/tiles/list/tile-list-compact-header.js +0 -84
  144. package/dist/src/tiles/list/tile-list-compact-header.js.map +0 -1
  145. package/dist/src/tiles/list/tile-list-compact.d.ts +0 -20
  146. package/dist/src/tiles/list/tile-list-compact.js +0 -215
  147. package/dist/src/tiles/list/tile-list-compact.js.map +0 -1
  148. package/dist/src/tiles/list/tile-list.d.ts +0 -47
  149. package/dist/src/tiles/list/tile-list.js +0 -492
  150. package/dist/src/tiles/list/tile-list.js.map +0 -1
  151. package/dist/src/tiles/mediatype-icon.d.ts +0 -9
  152. package/dist/src/tiles/mediatype-icon.js +0 -82
  153. package/dist/src/tiles/mediatype-icon.js.map +0 -1
  154. package/dist/src/tiles/tile-dispatcher.d.ts +0 -35
  155. package/dist/src/tiles/tile-dispatcher.js +0 -204
  156. package/dist/src/tiles/tile-dispatcher.js.map +0 -1
  157. package/dist/src/utils/format-count.d.ts +0 -7
  158. package/dist/src/utils/format-count.js +0 -76
  159. package/dist/src/utils/format-count.js.map +0 -1
  160. package/dist/src/utils/format-date.d.ts +0 -2
  161. package/dist/src/utils/format-date.js +0 -24
  162. package/dist/src/utils/format-date.js.map +0 -1
  163. package/dist/test/collection-browser.test.d.ts +0 -1
  164. package/dist/test/collection-browser.test.js +0 -45
  165. package/dist/test/collection-browser.test.js.map +0 -1
  166. package/dist/test/mediatype-config.test.d.ts +0 -1
  167. package/dist/test/mediatype-config.test.js +0 -17
  168. package/dist/test/mediatype-config.test.js.map +0 -1
  169. package/dist/test/mocks/mock-collection-name-cache.d.ts +0 -7
  170. package/dist/test/mocks/mock-collection-name-cache.js +0 -14
  171. package/dist/test/mocks/mock-collection-name-cache.js.map +0 -1
  172. package/dist/test/mocks/mock-search-responses.d.ts +0 -3
  173. package/dist/test/mocks/mock-search-responses.js +0 -32
  174. package/dist/test/mocks/mock-search-responses.js.map +0 -1
  175. package/dist/test/mocks/mock-search-service.d.ts +0 -8
  176. package/dist/test/mocks/mock-search-service.js +0 -16
  177. package/dist/test/mocks/mock-search-service.js.map +0 -1
  178. package/dist/test/tile-stats.test.d.ts +0 -1
  179. package/dist/test/tile-stats.test.js +0 -42
  180. package/dist/test/tile-stats.test.js.map +0 -1
  181. package/dist/test/tiles/grid/item-tile.test.d.ts +0 -1
  182. package/dist/test/tiles/grid/item-tile.test.js +0 -96
  183. package/dist/test/tiles/grid/item-tile.test.js.map +0 -1
  184. package/dist/test/utils/format-count.test.d.ts +0 -1
  185. package/dist/test/utils/format-count.test.js +0 -24
  186. package/dist/test/utils/format-count.test.js.map +0 -1
  187. package/dist/test/utils/format-date.test.d.ts +0 -1
  188. package/dist/test/utils/format-date.test.js +0 -18
  189. package/dist/test/utils/format-date.test.js.map +0 -1
@@ -1,204 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { css, html, LitElement, nothing } from 'lit';
3
- import { customElement, property, query } from 'lit/decorators.js';
4
- import { ifDefined } from 'lit/directives/if-defined.js';
5
- import './grid/collection-tile';
6
- import './grid/item-tile';
7
- import './grid/account-tile';
8
- import './list/tile-list';
9
- import './list/tile-list-compact';
10
- import './list/tile-list-compact-header';
11
- let TileDispatcher = class TileDispatcher extends LitElement {
12
- constructor() {
13
- super(...arguments);
14
- this.sortParam = null;
15
- }
16
- render() {
17
- return html `
18
- <div id="container">
19
- ${this.tileDisplayMode === 'list-header'
20
- ? this.headerTemplate
21
- : this.tileTemplate}
22
- </div>
23
- `;
24
- }
25
- get headerTemplate() {
26
- const { currentWidth, sortParam, mobileBreakpoint } = this;
27
- return html `
28
- <tile-list-compact-header
29
- class="header"
30
- .currentWidth=${currentWidth}
31
- .sortParam=${sortParam}
32
- .mobileBreakpoint=${mobileBreakpoint}
33
- >
34
- </tile-list-compact-header>
35
- `;
36
- }
37
- get tileTemplate() {
38
- return html `
39
- ${this.tileDisplayMode === 'list-detail'
40
- ? this.tile
41
- : this.linkTileTemplate}
42
- `;
43
- }
44
- get linkTileTemplate() {
45
- var _a, _b;
46
- return html `
47
- <a
48
- href="${this.baseNavigationUrl}/details/${(_a = this.model) === null || _a === void 0 ? void 0 : _a.identifier}"
49
- title=${ifDefined((_b = this.model) === null || _b === void 0 ? void 0 : _b.title)}
50
- >
51
- ${this.tile}
52
- </a>
53
- `;
54
- }
55
- handleResize(entry) {
56
- this.currentWidth = entry.contentRect.width;
57
- this.currentHeight = entry.contentRect.height;
58
- }
59
- disconnectedCallback() {
60
- this.stopResizeObservation(this.resizeObserver);
61
- }
62
- stopResizeObservation(observer) {
63
- observer === null || observer === void 0 ? void 0 : observer.removeObserver({
64
- handler: this,
65
- target: this.container,
66
- });
67
- }
68
- startResizeObservation() {
69
- var _a;
70
- this.stopResizeObservation(this.resizeObserver);
71
- (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.addObserver({
72
- handler: this,
73
- target: this.container,
74
- });
75
- }
76
- updated(props) {
77
- if (props.has('resizeObserver')) {
78
- const previousObserver = props.get('resizeObserver');
79
- this.stopResizeObservation(previousObserver);
80
- this.startResizeObservation();
81
- }
82
- }
83
- get tile() {
84
- const { model, baseNavigationUrl, currentWidth, currentHeight, sortParam, mobileBreakpoint, } = this;
85
- if (!model)
86
- return nothing;
87
- switch (this.tileDisplayMode) {
88
- case 'grid':
89
- switch (model.mediatype) {
90
- case 'collection':
91
- return html `<collection-tile
92
- .model=${model}
93
- .currentWidth=${currentWidth}
94
- .currentHeight=${currentHeight}
95
- >
96
- </collection-tile>`;
97
- case 'account':
98
- return html `<account-tile
99
- .model=${model}
100
- .currentWidth=${currentWidth}
101
- .currentHeight=${currentHeight}
102
- ></account-tile>`;
103
- default:
104
- return html `<item-tile
105
- .model=${model}
106
- .currentWidth=${this.currentWidth}
107
- .currentHeight=${this.currentHeight}
108
- .collectionNameCache=${this.collectionNameCache}
109
- .baseImageUrl=${this.baseImageUrl}
110
- .sortParam=${sortParam}
111
- ></item-tile>`;
112
- }
113
- case 'list-compact':
114
- return html `<tile-list-compact
115
- .model=${model}
116
- .currentWidth=${currentWidth}
117
- .currentHeight=${currentHeight}
118
- .baseNavigationUrl=${baseNavigationUrl}
119
- .sortParam=${sortParam}
120
- .mobileBreakpoint=${mobileBreakpoint}
121
- .baseImageUrl=${this.baseImageUrl}
122
- ></tile-list-compact>`;
123
- case 'list-detail':
124
- return html `<tile-list
125
- .model=${model}
126
- .collectionNameCache=${this.collectionNameCache}
127
- .currentWidth=${currentWidth}
128
- .currentHeight=${currentHeight}
129
- .baseNavigationUrl=${baseNavigationUrl}
130
- .sortParam=${sortParam}
131
- .mobileBreakpoint=${mobileBreakpoint}
132
- .baseImageUrl=${this.baseImageUrl}
133
- ></tile-list>`;
134
- default:
135
- return nothing;
136
- }
137
- }
138
- static get styles() {
139
- return css `
140
- :host {
141
- display: block;
142
- height: 100%;
143
- }
144
-
145
- #container {
146
- height: 100%;
147
- }
148
-
149
- #delete-button {
150
- float: right;
151
- }
152
-
153
- a {
154
- display: block;
155
- height: 100%;
156
- color: unset;
157
- text-decoration: none;
158
- }
159
-
160
- a :first-child {
161
- display: block;
162
- height: 100%;
163
- }
164
- `;
165
- }
166
- };
167
- __decorate([
168
- property({ type: String })
169
- ], TileDispatcher.prototype, "tileDisplayMode", void 0);
170
- __decorate([
171
- property({ type: Object })
172
- ], TileDispatcher.prototype, "model", void 0);
173
- __decorate([
174
- property({ type: String })
175
- ], TileDispatcher.prototype, "baseNavigationUrl", void 0);
176
- __decorate([
177
- property({ type: Number })
178
- ], TileDispatcher.prototype, "currentWidth", void 0);
179
- __decorate([
180
- property({ type: Number })
181
- ], TileDispatcher.prototype, "currentHeight", void 0);
182
- __decorate([
183
- property({ type: Object })
184
- ], TileDispatcher.prototype, "resizeObserver", void 0);
185
- __decorate([
186
- property({ type: Object })
187
- ], TileDispatcher.prototype, "collectionNameCache", void 0);
188
- __decorate([
189
- property({ type: Object })
190
- ], TileDispatcher.prototype, "sortParam", void 0);
191
- __decorate([
192
- query('#container')
193
- ], TileDispatcher.prototype, "container", void 0);
194
- __decorate([
195
- property({ type: Number })
196
- ], TileDispatcher.prototype, "mobileBreakpoint", void 0);
197
- __decorate([
198
- property({ type: String })
199
- ], TileDispatcher.prototype, "baseImageUrl", void 0);
200
- TileDispatcher = __decorate([
201
- customElement('tile-dispatcher')
202
- ], TileDispatcher);
203
- export { TileDispatcher };
204
- //# sourceMappingURL=tile-dispatcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tile-dispatcher.js","sourceRoot":"","sources":["../../../src/tiles/tile-dispatcher.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, LitElement, nothing, PropertyValues } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport {\n SharedResizeObserverInterface,\n SharedResizeObserverResizeHandlerInterface,\n} from '@internetarchive/shared-resize-observer';\nimport type { CollectionNameCacheInterface } from '@internetarchive/collection-name-cache';\nimport { SortParam } from '@internetarchive/search-service';\nimport type { TileDisplayMode, TileModel } from '../models';\nimport './grid/collection-tile';\nimport './grid/item-tile';\nimport './grid/account-tile';\nimport './list/tile-list';\nimport './list/tile-list-compact';\nimport './list/tile-list-compact-header';\n\n@customElement('tile-dispatcher')\nexport class TileDispatcher\n extends LitElement\n implements SharedResizeObserverResizeHandlerInterface\n{\n @property({ type: String }) tileDisplayMode?: TileDisplayMode;\n\n @property({ type: Object }) model?: TileModel;\n\n @property({ type: String }) baseNavigationUrl?: string;\n\n @property({ type: Number }) currentWidth?: number;\n\n @property({ type: Number }) currentHeight?: number;\n\n @property({ type: Object }) resizeObserver?: SharedResizeObserverInterface;\n\n @property({ type: Object })\n collectionNameCache?: CollectionNameCacheInterface;\n\n @property({ type: Object }) sortParam: SortParam | null = null;\n\n @query('#container') private container!: HTMLDivElement;\n\n @property({ type: Number }) mobileBreakpoint?: number;\n\n @property({ type: String }) baseImageUrl?: string;\n\n render() {\n return html`\n <div id=\"container\">\n ${this.tileDisplayMode === 'list-header'\n ? this.headerTemplate\n : this.tileTemplate}\n </div>\n `;\n }\n\n private get headerTemplate() {\n const { currentWidth, sortParam, mobileBreakpoint } = this;\n return html`\n <tile-list-compact-header\n class=\"header\"\n .currentWidth=${currentWidth}\n .sortParam=${sortParam}\n .mobileBreakpoint=${mobileBreakpoint}\n >\n </tile-list-compact-header>\n `;\n }\n\n private get tileTemplate() {\n return html`\n ${this.tileDisplayMode === 'list-detail'\n ? this.tile\n : this.linkTileTemplate}\n `;\n }\n\n private get linkTileTemplate() {\n return html`\n <a\n href=\"${this.baseNavigationUrl}/details/${this.model?.identifier}\"\n title=${ifDefined(this.model?.title)}\n >\n ${this.tile}\n </a>\n `;\n }\n\n handleResize(entry: ResizeObserverEntry): void {\n this.currentWidth = entry.contentRect.width;\n this.currentHeight = entry.contentRect.height;\n }\n\n disconnectedCallback(): void {\n this.stopResizeObservation(this.resizeObserver);\n }\n\n private stopResizeObservation(observer?: SharedResizeObserverInterface) {\n observer?.removeObserver({\n handler: this,\n target: this.container,\n });\n }\n\n private startResizeObservation() {\n this.stopResizeObservation(this.resizeObserver);\n this.resizeObserver?.addObserver({\n handler: this,\n target: this.container,\n });\n }\n\n updated(props: PropertyValues) {\n if (props.has('resizeObserver')) {\n const previousObserver = props.get(\n 'resizeObserver'\n ) as SharedResizeObserverInterface;\n this.stopResizeObservation(previousObserver);\n this.startResizeObservation();\n }\n }\n\n private get tile() {\n const {\n model,\n baseNavigationUrl,\n currentWidth,\n currentHeight,\n sortParam,\n mobileBreakpoint,\n } = this;\n\n if (!model) return nothing;\n\n switch (this.tileDisplayMode) {\n case 'grid':\n switch (model.mediatype) {\n case 'collection':\n return html`<collection-tile\n .model=${model}\n .currentWidth=${currentWidth}\n .currentHeight=${currentHeight}\n >\n </collection-tile>`;\n case 'account':\n return html`<account-tile\n .model=${model}\n .currentWidth=${currentWidth}\n .currentHeight=${currentHeight}\n ></account-tile>`;\n default:\n return html`<item-tile\n .model=${model}\n .currentWidth=${this.currentWidth}\n .currentHeight=${this.currentHeight}\n .collectionNameCache=${this.collectionNameCache}\n .baseImageUrl=${this.baseImageUrl}\n .sortParam=${sortParam}\n ></item-tile>`;\n }\n case 'list-compact':\n return html`<tile-list-compact\n .model=${model}\n .currentWidth=${currentWidth}\n .currentHeight=${currentHeight}\n .baseNavigationUrl=${baseNavigationUrl}\n .sortParam=${sortParam}\n .mobileBreakpoint=${mobileBreakpoint}\n .baseImageUrl=${this.baseImageUrl}\n ></tile-list-compact>`;\n case 'list-detail':\n return html`<tile-list\n .model=${model}\n .collectionNameCache=${this.collectionNameCache}\n .currentWidth=${currentWidth}\n .currentHeight=${currentHeight}\n .baseNavigationUrl=${baseNavigationUrl}\n .sortParam=${sortParam}\n .mobileBreakpoint=${mobileBreakpoint}\n .baseImageUrl=${this.baseImageUrl}\n ></tile-list>`;\n default:\n return nothing;\n }\n }\n\n static get styles() {\n return css`\n :host {\n display: block;\n height: 100%;\n }\n\n #container {\n height: 100%;\n }\n\n #delete-button {\n float: right;\n }\n\n a {\n display: block;\n height: 100%;\n color: unset;\n text-decoration: none;\n }\n\n a :first-child {\n display: block;\n height: 100%;\n }\n `;\n }\n}\n"]}
@@ -1,7 +0,0 @@
1
- export declare type NumberFormat = 'short' | 'long';
2
- export declare type LabelFormat = 'short' | 'long';
3
- /**
4
- * Format a "count" number into short "icon" or longer text string.
5
- * For positive numbers only.
6
- */
7
- export declare function formatCount(count: number | undefined, numberFormat?: NumberFormat, labelFormat?: LabelFormat, locale?: string): string;
@@ -1,76 +0,0 @@
1
- /*
2
- * Replaces Petabox www/common/Util::number_format()
3
- * For positive numbers only.
4
- */
5
- import { msg, str } from '@lit/localize';
6
- /**
7
- * Return the magnitude of a number.
8
- */
9
- function magnitude(number, numberFormat) {
10
- let divisor = 1;
11
- if (number >= 1000000000) {
12
- divisor = 1000000000;
13
- }
14
- else if (number >= 1000000) {
15
- divisor = 1000000;
16
- }
17
- else if (number >= 1000 && numberFormat === 'short') {
18
- divisor = 1000;
19
- }
20
- return divisor;
21
- }
22
- /**
23
- * Round a number given passed magnitude.
24
- * Significant digits of value less than 10 get a decimal.
25
- */
26
- function round(number = 0, divisor) {
27
- const result = number / divisor;
28
- const roundToOne = result < 10;
29
- let rounded = 0;
30
- if (roundToOne) {
31
- rounded = Math.round((result + Number.EPSILON) * 10) / 10;
32
- }
33
- else {
34
- rounded = Math.round(result);
35
- }
36
- return rounded;
37
- }
38
- /**
39
- * Return a label for a number and format.
40
- */
41
- function labelize(rounded, divisor, format, locale) {
42
- switch (divisor) {
43
- case 1000000000:
44
- if (format === 'short') {
45
- return msg(str `${rounded}B`);
46
- }
47
- return msg(str `${rounded} billion`);
48
- case 1000000:
49
- if (format === 'short') {
50
- return msg(str `${rounded}M`);
51
- }
52
- return msg(str `${rounded} million`);
53
- case 1000:
54
- if (format === 'short') {
55
- return msg(str `${rounded}K`);
56
- }
57
- return msg(str `${rounded} thousand`);
58
- default:
59
- return new Intl.NumberFormat(locale).format(rounded);
60
- }
61
- }
62
- /**
63
- * Format a "count" number into short "icon" or longer text string.
64
- * For positive numbers only.
65
- */
66
- export function formatCount(count, numberFormat = 'long', labelFormat = 'short', locale = 'en-US') {
67
- // Return blank if undefined
68
- const number = count !== null && count !== void 0 ? count : -1;
69
- if (number < 0) {
70
- return '';
71
- }
72
- const divisor = magnitude(number, numberFormat);
73
- const rounded = round(number, divisor);
74
- return labelize(rounded, divisor, labelFormat, locale);
75
- }
76
- //# sourceMappingURL=format-count.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format-count.js","sourceRoot":"","sources":["../../../src/utils/format-count.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAUzC;;GAEG;AACH,SAAS,SAAS,CAAC,MAAc,EAAE,YAA0B;IAC3D,IAAI,OAAO,GAAY,CAAC,CAAC;IACzB,IAAI,MAAM,IAAI,UAAa,EAAE;QAC3B,OAAO,GAAG,UAAa,CAAC;KACzB;SAAM,IAAI,MAAM,IAAI,OAAS,EAAE;QAC9B,OAAO,GAAG,OAAS,CAAC;KACrB;SAAM,IAAI,MAAM,IAAI,IAAK,IAAI,YAAY,KAAK,OAAO,EAAE;QACtD,OAAO,GAAG,IAAK,CAAC;KACjB;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAS,KAAK,CAAC,SAAiB,CAAC,EAAE,OAAgB;IACjD,MAAM,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,GAAG,EAAE,CAAC;IAC/B,IAAI,OAAO,GAAW,CAAC,CAAC;IACxB,IAAI,UAAU,EAAE;QACd,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;KAC3D;SAAM;QACL,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAC9B;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CACf,OAAe,EACf,OAAgB,EAChB,MAAmB,EACnB,MAAc;IAEd,QAAQ,OAAO,EAAE;QACf,KAAK,UAAa;YAChB,IAAI,MAAM,KAAK,OAAO,EAAE;gBACtB,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,OAAO,GAAG,CAAC,CAAC;aAC9B;YACD,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,OAAO,UAAU,CAAC,CAAC;QACtC,KAAK,OAAS;YACZ,IAAI,MAAM,KAAK,OAAO,EAAE;gBACtB,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,OAAO,GAAG,CAAC,CAAC;aAC9B;YACD,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,OAAO,UAAU,CAAC,CAAC;QACtC,KAAK,IAAK;YACR,IAAI,MAAM,KAAK,OAAO,EAAE;gBACtB,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,OAAO,GAAG,CAAC,CAAC;aAC9B;YACD,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,OAAO,WAAW,CAAC,CAAC;QAEvC;YACE,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KACxD;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,KAAyB,EACzB,eAA6B,MAAM,EACnC,cAA2B,OAAO,EAClC,SAAiB,OAAO;IAExB,4BAA4B;IAC5B,MAAM,MAAM,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,CAAC,CAAC;IAC3B,IAAI,MAAM,GAAG,CAAC,EAAE;QACd,OAAO,EAAE,CAAC;KACX;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC","sourcesContent":["/*\n * Replaces Petabox www/common/Util::number_format()\n * For positive numbers only.\n */\nimport { msg, str } from '@lit/localize';\n\nexport type NumberFormat =\n | 'short' // 1.2 [K | thousand]\n | 'long'; // 1,200 [No label for numbers < 1,000,000]\nexport type LabelFormat =\n | 'short' // [1.2]K\n | 'long'; // [1.2] thousand\ntype Divisor = 1_000_000_000 | 1_000_000 | 1_000 | 1;\n\n/**\n * Return the magnitude of a number.\n */\nfunction magnitude(number: number, numberFormat: NumberFormat): Divisor {\n let divisor: Divisor = 1;\n if (number >= 1_000_000_000) {\n divisor = 1_000_000_000;\n } else if (number >= 1_000_000) {\n divisor = 1_000_000;\n } else if (number >= 1_000 && numberFormat === 'short') {\n divisor = 1_000;\n }\n return divisor;\n}\n\n/**\n * Round a number given passed magnitude.\n * Significant digits of value less than 10 get a decimal.\n */\nfunction round(number: number = 0, divisor: Divisor): number {\n const result = number / divisor;\n const roundToOne = result < 10;\n let rounded: number = 0;\n if (roundToOne) {\n rounded = Math.round((result + Number.EPSILON) * 10) / 10;\n } else {\n rounded = Math.round(result);\n }\n return rounded;\n}\n\n/**\n * Return a label for a number and format.\n */\nfunction labelize(\n rounded: number,\n divisor: Divisor,\n format: LabelFormat,\n locale: string\n): string {\n switch (divisor) {\n case 1_000_000_000:\n if (format === 'short') {\n return msg(str`${rounded}B`);\n }\n return msg(str`${rounded} billion`);\n case 1_000_000:\n if (format === 'short') {\n return msg(str`${rounded}M`);\n }\n return msg(str`${rounded} million`);\n case 1_000:\n if (format === 'short') {\n return msg(str`${rounded}K`);\n }\n return msg(str`${rounded} thousand`);\n\n default:\n return new Intl.NumberFormat(locale).format(rounded);\n }\n}\n\n/**\n * Format a \"count\" number into short \"icon\" or longer text string.\n * For positive numbers only.\n */\nexport function formatCount(\n count: number | undefined,\n numberFormat: NumberFormat = 'long',\n labelFormat: LabelFormat = 'short',\n locale: string = 'en-US'\n): string {\n // Return blank if undefined\n const number = count ?? -1;\n if (number < 0) {\n return '';\n }\n const divisor = magnitude(number, numberFormat);\n const rounded = round(number, divisor);\n return labelize(rounded, divisor, labelFormat, locale);\n}\n"]}
@@ -1,2 +0,0 @@
1
- export declare type DateFormat = 'short' | 'long';
2
- export declare function formatDate(date: Date | undefined, format?: DateFormat, locale?: string): string;
@@ -1,24 +0,0 @@
1
- export function formatDate(date, format = 'short', locale = 'en-US') {
2
- // Return blank if undefined
3
- if (!date)
4
- return '';
5
- const options = {
6
- timeZone: 'UTC', // Override browser timezone
7
- };
8
- switch (format) {
9
- case 'short':
10
- options.month = 'short';
11
- options.year = 'numeric';
12
- break;
13
- case 'long':
14
- options.year = 'numeric';
15
- options.month = 'short';
16
- options.day = '2-digit';
17
- break;
18
- default:
19
- break;
20
- }
21
- const dateFormatter = new Intl.DateTimeFormat(locale, options);
22
- return dateFormatter.format(date);
23
- }
24
- //# sourceMappingURL=format-date.js.map
@@ -1 +0,0 @@
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,OAAO,CAAC;YACxB,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' // Dec 2020\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 = '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"]}
@@ -1 +0,0 @@
1
- import '../src/collection-browser';
@@ -1,45 +0,0 @@
1
- /* eslint-disable import/no-duplicates */
2
- import { expect, fixture } from '@open-wc/testing';
3
- import { html } from 'lit';
4
- import '../src/collection-browser';
5
- import { MockSearchService } from './mocks/mock-search-service';
6
- import { MockCollectionNameCache } from './mocks/mock-collection-name-cache';
7
- describe('Collection Browser', () => {
8
- it('should render with a sort bar, facets, and infinite scroller', async () => {
9
- var _a, _b, _c;
10
- const el = await fixture(html `<collection-browser></collection-browser>`);
11
- const facets = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('collection-facets');
12
- const sortBar = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('sort-filter-bar');
13
- const infiniteScroller = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('infinite-scroller');
14
- expect(facets).to.exist;
15
- expect(sortBar).to.exist;
16
- expect(infiniteScroller).to.exist;
17
- });
18
- it('queries the search service when given a base query', async () => {
19
- var _a;
20
- const searchService = new MockSearchService();
21
- const el = await fixture(html `<collection-browser
22
- .searchService=${searchService}
23
- ></collection-browser>`);
24
- el.baseQuery = 'collection:foo';
25
- await el.updateComplete;
26
- expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.equal('collection:foo');
27
- });
28
- it('queries for collection names after a fetch', async () => {
29
- const searchService = new MockSearchService();
30
- const collectionNameCache = new MockCollectionNameCache();
31
- const el = await fixture(html `<collection-browser
32
- .searchService=${searchService}
33
- .collectionNameCache=${collectionNameCache}
34
- ></collection-browser>`);
35
- el.baseQuery = 'blahblah';
36
- await el.updateComplete;
37
- expect(collectionNameCache.preloadIdentifiersRequested).to.deep.equal([
38
- 'foo',
39
- 'bar',
40
- 'baz',
41
- 'boop',
42
- ]);
43
- });
44
- });
45
- //# sourceMappingURL=collection-browser.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collection-browser.test.js","sourceRoot":"","sources":["../../test/collection-browser.test.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAE3B,OAAO,2BAA2B,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;;QAC5E,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,2CAA2C,CAChD,CAAC;QAEF,MAAM,MAAM,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAChE,MAAM,gBAAgB,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;QAC3E,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACxB,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACzB,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;;QAClE,MAAM,aAAa,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAE9C,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA;yBACe,aAAa;6BACT,CACxB,CAAC;QAEF,EAAE,CAAC,SAAS,GAAG,gBAAgB,CAAC;QAChC,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,CAAC,MAAA,aAAa,CAAC,YAAY,0CAAE,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,aAAa,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAC9C,MAAM,mBAAmB,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAE1D,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA;yBACe,aAAa;+BACP,mBAAmB;6BACrB,CACxB,CAAC;QAEF,EAAE,CAAC,SAAS,GAAG,UAAU,CAAC;QAC1B,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACpE,KAAK;YACL,KAAK;YACL,KAAK;YACL,MAAM;SACP,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/* eslint-disable import/no-duplicates */\nimport { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport { CollectionBrowser } from '../src/collection-browser';\nimport '../src/collection-browser';\nimport { MockSearchService } from './mocks/mock-search-service';\nimport { MockCollectionNameCache } from './mocks/mock-collection-name-cache';\n\ndescribe('Collection Browser', () => {\n it('should render with a sort bar, facets, and infinite scroller', async () => {\n const el = await fixture<CollectionBrowser>(\n html`<collection-browser></collection-browser>`\n );\n\n const facets = el.shadowRoot?.querySelector('collection-facets');\n const sortBar = el.shadowRoot?.querySelector('sort-filter-bar');\n const infiniteScroller = el.shadowRoot?.querySelector('infinite-scroller');\n expect(facets).to.exist;\n expect(sortBar).to.exist;\n expect(infiniteScroller).to.exist;\n });\n\n it('queries the search service when given a base query', async () => {\n const searchService = new MockSearchService();\n\n const el = await fixture<CollectionBrowser>(\n html`<collection-browser\n .searchService=${searchService}\n ></collection-browser>`\n );\n\n el.baseQuery = 'collection:foo';\n await el.updateComplete;\n\n expect(searchService.searchParams?.query).to.equal('collection:foo');\n });\n\n it('queries for collection names after a fetch', async () => {\n const searchService = new MockSearchService();\n const collectionNameCache = new MockCollectionNameCache();\n\n const el = await fixture<CollectionBrowser>(\n html`<collection-browser\n .searchService=${searchService}\n .collectionNameCache=${collectionNameCache}\n ></collection-browser>`\n );\n\n el.baseQuery = 'blahblah';\n await el.updateComplete;\n\n expect(collectionNameCache.preloadIdentifiersRequested).to.deep.equal([\n 'foo',\n 'bar',\n 'baz',\n 'boop',\n ]);\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,17 +0,0 @@
1
- import { expect } from '@open-wc/testing';
2
- import { mediatypeConfig } from '../src/mediatype/mediatype-config';
3
- describe('mediatypeConfig', () => {
4
- it('returns undefined', () => {
5
- expect(mediatypeConfig['']).to.equal(undefined);
6
- expect(mediatypeConfig.test).to.equal(undefined);
7
- expect(mediatypeConfig.media).to.equal(undefined);
8
- expect(mediatypeConfig.testing).to.equal(undefined);
9
- });
10
- it('returns audio', () => {
11
- expect(mediatypeConfig.audio).to.exist;
12
- expect(mediatypeConfig.audio.color).to.exist;
13
- expect(mediatypeConfig.audio.icon).to.exist;
14
- expect(mediatypeConfig.audio.text).to.exist;
15
- });
16
- });
17
- //# sourceMappingURL=mediatype-config.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mediatype-config.test.js","sourceRoot":"","sources":["../../test/mediatype-config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QACvB,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACvC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC7C,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC5C,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { expect } from '@open-wc/testing';\nimport { mediatypeConfig } from '../src/mediatype/mediatype-config';\n\ndescribe('mediatypeConfig', () => {\n it('returns undefined', () => {\n expect(mediatypeConfig['']).to.equal(undefined);\n expect(mediatypeConfig.test).to.equal(undefined);\n expect(mediatypeConfig.media).to.equal(undefined);\n expect(mediatypeConfig.testing).to.equal(undefined);\n });\n\n it('returns audio', () => {\n expect(mediatypeConfig.audio).to.exist;\n expect(mediatypeConfig.audio.color).to.exist;\n expect(mediatypeConfig.audio.icon).to.exist;\n expect(mediatypeConfig.audio.text).to.exist;\n });\n});\n"]}
@@ -1,7 +0,0 @@
1
- import { CollectionNameCacheInterface } from '@internetarchive/collection-name-cache';
2
- export declare class MockCollectionNameCache implements CollectionNameCacheInterface {
3
- collectionNamesRequested: string[];
4
- preloadIdentifiersRequested: string[];
5
- collectionNameFor(identifier: string): Promise<string | null>;
6
- preloadIdentifiers(identifiers: string[]): Promise<void>;
7
- }
@@ -1,14 +0,0 @@
1
- export class MockCollectionNameCache {
2
- constructor() {
3
- this.collectionNamesRequested = [];
4
- this.preloadIdentifiersRequested = [];
5
- }
6
- async collectionNameFor(identifier) {
7
- this.collectionNamesRequested.push(identifier);
8
- return `${identifier}-name`;
9
- }
10
- async preloadIdentifiers(identifiers) {
11
- this.preloadIdentifiersRequested = identifiers;
12
- }
13
- }
14
- //# sourceMappingURL=mock-collection-name-cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mock-collection-name-cache.js","sourceRoot":"","sources":["../../../test/mocks/mock-collection-name-cache.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,uBAAuB;IAApC;QACE,6BAAwB,GAAa,EAAE,CAAC;QAExC,gCAA2B,GAAa,EAAE,CAAC;IAU7C,CAAC;IARC,KAAK,CAAC,iBAAiB,CAAC,UAAkB;QACxC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,OAAO,GAAG,UAAU,OAAO,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,WAAqB;QAC5C,IAAI,CAAC,2BAA2B,GAAG,WAAW,CAAC;IACjD,CAAC;CACF","sourcesContent":["import { CollectionNameCacheInterface } from '@internetarchive/collection-name-cache';\n\nexport class MockCollectionNameCache implements CollectionNameCacheInterface {\n collectionNamesRequested: string[] = [];\n\n preloadIdentifiersRequested: string[] = [];\n\n async collectionNameFor(identifier: string): Promise<string | null> {\n this.collectionNamesRequested.push(identifier);\n return `${identifier}-name`;\n }\n\n async preloadIdentifiers(identifiers: string[]): Promise<void> {\n this.preloadIdentifiersRequested = identifiers;\n }\n}\n"]}
@@ -1,3 +0,0 @@
1
- import { Result } from '@internetarchive/result-type';
2
- import { SearchResponse, SearchServiceError } from '@internetarchive/search-service';
3
- export declare const mockSuccessResponse: Result<SearchResponse, SearchServiceError>;
@@ -1,32 +0,0 @@
1
- import { Metadata, } from '@internetarchive/search-service';
2
- export const mockSuccessResponse = {
3
- success: {
4
- rawResponse: {},
5
- response: {
6
- numFound: 2,
7
- docs: [
8
- new Metadata({
9
- identifier: 'foo',
10
- collections_raw: ['foo', 'bar'],
11
- }),
12
- new Metadata({
13
- identifier: 'bar',
14
- collections_raw: ['baz', 'boop'],
15
- }),
16
- ],
17
- start: 0,
18
- },
19
- responseHeader: {
20
- status: 0,
21
- QTime: 0,
22
- params: {
23
- query: 'collection:foo',
24
- qin: 'collection:foo',
25
- fields: 'identifier, collections_raw',
26
- wt: 'foo',
27
- start: 0,
28
- },
29
- },
30
- },
31
- };
32
- //# sourceMappingURL=mock-search-responses.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mock-search-responses.js","sourceRoot":"","sources":["../../../test/mocks/mock-search-responses.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,GAGT,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,mBAAmB,GAA+C;IAC7E,OAAO,EAAE;QACP,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE;YACR,QAAQ,EAAE,CAAC;YACX,IAAI,EAAE;gBACJ,IAAI,QAAQ,CAAC;oBACX,UAAU,EAAE,KAAK;oBACjB,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;iBAChC,CAAC;gBACF,IAAI,QAAQ,CAAC;oBACX,UAAU,EAAE,KAAK;oBACjB,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;iBACjC,CAAC;aACH;YACD,KAAK,EAAE,CAAC;SACT;QACD,cAAc,EAAE;YACd,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;YACR,MAAM,EAAE;gBACN,KAAK,EAAE,gBAAgB;gBACvB,GAAG,EAAE,gBAAgB;gBACrB,MAAM,EAAE,6BAA6B;gBACrC,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,CAAC;aACT;SACF;KACF;CACF,CAAC","sourcesContent":["import { Result } from '@internetarchive/result-type';\nimport {\n Metadata,\n SearchResponse,\n SearchServiceError,\n} from '@internetarchive/search-service';\n\nexport const mockSuccessResponse: Result<SearchResponse, SearchServiceError> = {\n success: {\n rawResponse: {},\n response: {\n numFound: 2,\n docs: [\n new Metadata({\n identifier: 'foo',\n collections_raw: ['foo', 'bar'],\n }),\n new Metadata({\n identifier: 'bar',\n collections_raw: ['baz', 'boop'],\n }),\n ],\n start: 0,\n },\n responseHeader: {\n status: 0,\n QTime: 0,\n params: {\n query: 'collection:foo',\n qin: 'collection:foo',\n fields: 'identifier, collections_raw',\n wt: 'foo',\n start: 0,\n },\n },\n },\n};\n"]}
@@ -1,8 +0,0 @@
1
- import { Result } from '@internetarchive/result-type';
2
- import { MetadataResponse, SearchParams, SearchResponse, SearchServiceInterface, SearchServiceError } from '@internetarchive/search-service';
3
- export declare class MockSearchService implements SearchServiceInterface {
4
- searchParams?: SearchParams;
5
- search(params: SearchParams): Promise<Result<SearchResponse, SearchServiceError>>;
6
- fetchMetadata(identifier: string): Promise<Result<MetadataResponse, SearchServiceError>>;
7
- fetchMetadataValue<T>(identifier: string, keypath: string): Promise<Result<T, SearchServiceError>>;
8
- }
@@ -1,16 +0,0 @@
1
- import { mockSuccessResponse } from './mock-search-responses';
2
- export class MockSearchService {
3
- async search(params) {
4
- this.searchParams = params;
5
- return mockSuccessResponse;
6
- }
7
- async fetchMetadata(identifier) {
8
- console.debug('fetchMetadata', identifier);
9
- throw new Error('Method not implemented.');
10
- }
11
- async fetchMetadataValue(identifier, keypath) {
12
- console.debug('fetchMetadataValue', identifier, keypath);
13
- throw new Error('Method not implemented.');
14
- }
15
- }
16
- //# sourceMappingURL=mock-search-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mock-search-service.js","sourceRoot":"","sources":["../../../test/mocks/mock-search-service.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,OAAO,iBAAiB;IAG5B,KAAK,CAAC,MAAM,CACV,MAAoB;QAEpB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,UAAkB;QAElB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,UAAkB,EAClB,OAAe;QAEf,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;CACF","sourcesContent":["import { Result } from '@internetarchive/result-type';\nimport {\n MetadataResponse,\n SearchParams,\n SearchResponse,\n SearchServiceInterface,\n SearchServiceError,\n} from '@internetarchive/search-service';\nimport { mockSuccessResponse } from './mock-search-responses';\n\nexport class MockSearchService implements SearchServiceInterface {\n searchParams?: SearchParams;\n\n async search(\n params: SearchParams\n ): Promise<Result<SearchResponse, SearchServiceError>> {\n this.searchParams = params;\n return mockSuccessResponse;\n }\n\n async fetchMetadata(\n identifier: string\n ): Promise<Result<MetadataResponse, SearchServiceError>> {\n console.debug('fetchMetadata', identifier);\n throw new Error('Method not implemented.');\n }\n\n async fetchMetadataValue<T>(\n identifier: string,\n keypath: string\n ): Promise<Result<T, SearchServiceError>> {\n console.debug('fetchMetadataValue', identifier, keypath);\n throw new Error('Method not implemented.');\n }\n}\n"]}
@@ -1 +0,0 @@
1
- import '../src/tiles/grid/tile-stats';
@@ -1,42 +0,0 @@
1
- /* eslint-disable import/no-duplicates */
2
- import { expect, fixture } from '@open-wc/testing';
3
- import { html } from 'lit';
4
- import '../src/tiles/grid/tile-stats';
5
- describe('Tile Stats', () => {
6
- it('should render initial component', async () => {
7
- var _a, _b;
8
- const el = await fixture(html `<tile-stats></tile-stats>`);
9
- const itemStats = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-stats');
10
- const statsRow = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#stats-row');
11
- const statsRowCount = statsRow === null || statsRow === void 0 ? void 0 : statsRow.childElementCount;
12
- expect(itemStats).to.exist;
13
- expect(statsRow).to.exist;
14
- expect(statsRowCount).to.equal(4);
15
- });
16
- it('should render component with value', async () => {
17
- var _a, _b, _c, _d, _e, _f, _g;
18
- const el = await fixture(html `
19
- <tile-stats
20
- .mediatype=${'account'}
21
- .itemCount=${1}
22
- .favCount=${2}
23
- .commentCount=${3}
24
- >
25
- </tile-stats>
26
- `);
27
- const statsRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#stats-row');
28
- const mediatypeStat = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(0);
29
- // get second column item in stats row
30
- const itemStatCount = (_c = (_b = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(1)) === null || _b === void 0 ? void 0 : _b.querySelector('.status-text')) === null || _c === void 0 ? void 0 : _c.textContent;
31
- // get third column item in stats row
32
- const favoritesStatCount = (_e = (_d = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(2)) === null || _d === void 0 ? void 0 : _d.querySelector('.status-text')) === null || _e === void 0 ? void 0 : _e.textContent;
33
- // get fourth column item in stats row
34
- const reviewsStatCount = (_g = (_f = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(3)) === null || _f === void 0 ? void 0 : _f.querySelector('.status-text')) === null || _g === void 0 ? void 0 : _g.textContent;
35
- expect(mediatypeStat).to.exist;
36
- // Snapshot testing - reference: https://open-wc.org/docs/testing/semantic-dom-diff/#snapshot-testing
37
- expect(itemStatCount).to.equalSnapshot(1);
38
- expect(favoritesStatCount).to.equalSnapshot(2);
39
- expect(reviewsStatCount).to.equalSnapshot(3);
40
- });
41
- });
42
- //# sourceMappingURL=tile-stats.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tile-stats.test.js","sourceRoot":"","sources":["../../test/tile-stats.test.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,8BAA8B,CAAC;AAEtC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;;QAC/C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QAErE,MAAM,SAAS,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,aAAa,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,iBAAiB,CAAC;QAElD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC3B,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC1B,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;;QAClD,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA;;uBAEa,SAAS;uBACT,CAAC;sBACF,CAAC;0BACG,CAAC;;;OAGpB,CACF,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QAE5D,MAAM,aAAa,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,sCAAsC;QACtC,MAAM,aAAa,GAAG,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CACrC,IAAI,CAAC,CAAC,CAAC,0CACN,aAAa,CAAC,cAAc,CAAC,0CAAE,WAAW,CAAC;QAC/C,qCAAqC;QACrC,MAAM,kBAAkB,GAAG,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAC1C,IAAI,CAAC,CAAC,CAAC,0CACN,aAAa,CAAC,cAAc,CAAC,0CAAE,WAAW,CAAC;QAC/C,sCAAsC;QACtC,MAAM,gBAAgB,GAAG,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CACxC,IAAI,CAAC,CAAC,CAAC,0CACN,aAAa,CAAC,cAAc,CAAC,0CAAE,WAAW,CAAC;QAE/C,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAE/B,qGAAqG;QACrG,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/* eslint-disable import/no-duplicates */\nimport { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport { TileStats } from '../src/tiles/grid/tile-stats';\n\nimport '../src/tiles/grid/tile-stats';\n\ndescribe('Tile Stats', () => {\n it('should render initial component', async () => {\n const el = await fixture<TileStats>(html`<tile-stats></tile-stats>`);\n\n const itemStats = el.shadowRoot?.querySelector('.item-stats');\n const statsRow = el.shadowRoot?.querySelector('#stats-row');\n const statsRowCount = statsRow?.childElementCount;\n\n expect(itemStats).to.exist;\n expect(statsRow).to.exist;\n expect(statsRowCount).to.equal(4);\n });\n\n it('should render component with value', async () => {\n const el = await fixture<TileStats>(\n html`\n <tile-stats\n .mediatype=${'account'}\n .itemCount=${1}\n .favCount=${2}\n .commentCount=${3}\n >\n </tile-stats>\n `\n );\n\n const statsRow = el.shadowRoot?.querySelector('#stats-row');\n\n const mediatypeStat = statsRow?.children.item(0);\n // get second column item in stats row\n const itemStatCount = statsRow?.children\n .item(1)\n ?.querySelector('.status-text')?.textContent;\n // get third column item in stats row\n const favoritesStatCount = statsRow?.children\n .item(2)\n ?.querySelector('.status-text')?.textContent;\n // get fourth column item in stats row\n const reviewsStatCount = statsRow?.children\n .item(3)\n ?.querySelector('.status-text')?.textContent;\n\n expect(mediatypeStat).to.exist;\n\n // Snapshot testing - reference: https://open-wc.org/docs/testing/semantic-dom-diff/#snapshot-testing\n expect(itemStatCount).to.equalSnapshot(1);\n expect(favoritesStatCount).to.equalSnapshot(2);\n expect(reviewsStatCount).to.equalSnapshot(3);\n });\n});\n"]}
@@ -1 +0,0 @@
1
- import '../../../src/tiles/grid/item-tile';