@internetarchive/collection-browser 3.1.1-alpha-webdev6778.11 → 3.3.0

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 (47) hide show
  1. package/dist/src/collection-browser.d.ts +4 -0
  2. package/dist/src/collection-browser.js +25 -3
  3. package/dist/src/collection-browser.js.map +1 -1
  4. package/dist/src/tiles/base-tile-component.d.ts +7 -0
  5. package/dist/src/tiles/base-tile-component.js +13 -0
  6. package/dist/src/tiles/base-tile-component.js.map +1 -1
  7. package/dist/src/tiles/grid/account-tile.js +1 -0
  8. package/dist/src/tiles/grid/account-tile.js.map +1 -1
  9. package/dist/src/tiles/grid/collection-tile.js +1 -0
  10. package/dist/src/tiles/grid/collection-tile.js.map +1 -1
  11. package/dist/src/tiles/grid/item-tile.d.ts +1 -1
  12. package/dist/src/tiles/grid/item-tile.js +3 -4
  13. package/dist/src/tiles/grid/item-tile.js.map +1 -1
  14. package/dist/src/tiles/list/tile-list-compact.js +4 -2
  15. package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
  16. package/dist/src/tiles/list/tile-list.js +3 -3
  17. package/dist/src/tiles/list/tile-list.js.map +1 -1
  18. package/dist/src/tiles/tile-dispatcher.js +4 -0
  19. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  20. package/dist/src/utils/format-date.d.ts +15 -1
  21. package/dist/src/utils/format-date.js +8 -3
  22. package/dist/src/utils/format-date.js.map +1 -1
  23. package/dist/test/collection-browser.test.js +217 -187
  24. package/dist/test/collection-browser.test.js.map +1 -1
  25. package/dist/test/tiles/grid/item-tile.test.js +51 -0
  26. package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
  27. package/dist/test/tiles/list/tile-list-compact.test.js +51 -0
  28. package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -1
  29. package/dist/test/tiles/list/tile-list.test.js +51 -0
  30. package/dist/test/tiles/list/tile-list.test.js.map +1 -1
  31. package/dist/test/utils/format-date.test.js +31 -1
  32. package/dist/test/utils/format-date.test.js.map +1 -1
  33. package/package.json +2 -2
  34. package/src/collection-browser.ts +29 -2
  35. package/src/tiles/base-tile-component.ts +12 -0
  36. package/src/tiles/grid/account-tile.ts +1 -0
  37. package/src/tiles/grid/collection-tile.ts +1 -0
  38. package/src/tiles/grid/item-tile.ts +6 -5
  39. package/src/tiles/list/tile-list-compact.ts +5 -2
  40. package/src/tiles/list/tile-list.ts +7 -3
  41. package/src/tiles/tile-dispatcher.ts +4 -0
  42. package/src/utils/format-date.ts +23 -3
  43. package/test/collection-browser.test.ts +2403 -2359
  44. package/test/tiles/grid/item-tile.test.ts +56 -0
  45. package/test/tiles/list/tile-list-compact.test.ts +54 -0
  46. package/test/tiles/list/tile-list.test.ts +55 -0
  47. package/test/utils/format-date.test.ts +51 -1
@@ -652,6 +652,10 @@ export declare class CollectionBrowser extends LitElement implements InfiniteScr
652
652
  * page are visible, but if the page is not currenlty visible, we don't need to reload
653
653
  */
654
654
  get currentVisiblePageNumbers(): number[];
655
+ /**
656
+ * Whether we are currently displaying results for a radio collection
657
+ */
658
+ private get isRadioCollection();
655
659
  /**
656
660
  * Refreshes all visible result cells in the infinite scroller.
657
661
  */
@@ -395,11 +395,13 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
395
395
  * - An error occurred on the most recent search attempt
396
396
  */
397
397
  setPlaceholderType() {
398
- var _a;
398
+ var _a, _b;
399
399
  const isInitialized = this.dataSource.queryInitialized;
400
400
  const hasQuery = !!((_a = this.baseQuery) === null || _a === void 0 ? void 0 : _a.trim());
401
+ const hasIdentifiers = !!((_b = this.identifiers) === null || _b === void 0 ? void 0 : _b.length);
401
402
  const isCollection = !!this.withinCollection;
402
403
  const isProfile = !!this.withinProfile;
404
+ const isSearchResults = !isCollection && !isProfile;
403
405
  const noResults = !this.searchResultsLoading &&
404
406
  (this.dataSource.size === 0 || !this.searchService);
405
407
  this.placeholderType = null;
@@ -408,7 +410,7 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
408
410
  if (!isInitialized) {
409
411
  this.placeholderType = 'empty-query';
410
412
  }
411
- else if (!hasQuery && !isCollection && !isProfile) {
413
+ else if (isSearchResults && !hasQuery && !hasIdentifiers) {
412
414
  this.placeholderType = 'empty-query';
413
415
  }
414
416
  else if (noResults) {
@@ -1798,6 +1800,16 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
1798
1800
  });
1799
1801
  return Array.from(visiblePages);
1800
1802
  }
1803
+ /**
1804
+ * Whether we are currently displaying results for a radio collection
1805
+ */
1806
+ get isRadioCollection() {
1807
+ const { withinCollection } = this;
1808
+ const topCollections = ['radio'];
1809
+ const isTopCollection = topCollections.includes(withinCollection);
1810
+ const isSubCollection = topCollections.some(topCollxn => { var _a; return (_a = this.dataSource.parentCollections) === null || _a === void 0 ? void 0 : _a.includes(topCollxn); });
1811
+ return isTopCollection || isSubCollection;
1812
+ }
1801
1813
  /**
1802
1814
  * Refreshes all visible result cells in the infinite scroller.
1803
1815
  */
@@ -1833,6 +1845,15 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
1833
1845
  const model = this.tileModelAtCellIndex(index);
1834
1846
  if (!model)
1835
1847
  return undefined;
1848
+ // Tiles show dates in UTC by default.
1849
+ // But for certain types of time-based media, we want them to use local time instead.
1850
+ // Those local-time cases are:
1851
+ // - TV or Radio search results
1852
+ // - TV or Radio collection results
1853
+ const isTVSearch = this.searchType === SearchType.TV;
1854
+ const isRadioSearch = this.searchType === SearchType.RADIO;
1855
+ const { isTVCollection, isRadioCollection } = this;
1856
+ const shouldUseLocalTime = isTVSearch || isRadioSearch || isTVCollection || isRadioCollection;
1836
1857
  return html `
1837
1858
  <tile-dispatcher
1838
1859
  .collectionPagePath=${this.collectionPagePath}
@@ -1849,8 +1870,9 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
1849
1870
  .loggedIn=${this.loggedIn}
1850
1871
  .suppressBlurring=${this.shouldSuppressTileBlurring}
1851
1872
  .isManageView=${this.isManageView}
1852
- ?showTvClips=${this.isTVCollection || this.searchType === SearchType.TV}
1873
+ ?showTvClips=${isTVSearch || isTVCollection}
1853
1874
  ?enableHoverPane=${true}
1875
+ ?useLocalTime=${shouldUseLocalTime}
1854
1876
  @resultSelected=${(e) => this.resultSelected(e)}
1855
1877
  >
1856
1878
  </tile-dispatcher>