@internetarchive/collection-browser 3.0.0 → 3.0.1-webdev-7936.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 (85) hide show
  1. package/.editorconfig +29 -29
  2. package/.github/workflows/ci.yml +27 -27
  3. package/.github/workflows/gh-pages-main.yml +39 -39
  4. package/.github/workflows/npm-publish.yml +39 -39
  5. package/.github/workflows/pr-preview.yml +38 -38
  6. package/.husky/pre-commit +4 -4
  7. package/.prettierignore +1 -1
  8. package/LICENSE +661 -661
  9. package/README.md +83 -83
  10. package/dist/src/collection-browser.js +681 -680
  11. package/dist/src/collection-browser.js.map +1 -1
  12. package/dist/src/collection-facets/facet-row.js +131 -130
  13. package/dist/src/collection-facets/facet-row.js.map +1 -1
  14. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js +75 -75
  15. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js.map +1 -1
  16. package/dist/src/collection-facets.js +264 -263
  17. package/dist/src/collection-facets.js.map +1 -1
  18. package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
  19. package/dist/src/data-source/collection-browser-query-state.js.map +1 -1
  20. package/dist/src/data-source/models.js.map +1 -1
  21. package/dist/src/models.js.map +1 -1
  22. package/dist/src/restoration-state-handler.js.map +1 -1
  23. package/dist/src/sort-filter-bar/sort-filter-bar.js +1 -1
  24. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  25. package/dist/src/tiles/base-tile-component.js.map +1 -1
  26. package/dist/src/tiles/grid/collection-tile.js +3 -2
  27. package/dist/src/tiles/grid/collection-tile.js.map +1 -1
  28. package/dist/src/tiles/grid/item-tile.js +139 -139
  29. package/dist/src/tiles/grid/item-tile.js.map +1 -1
  30. package/dist/src/tiles/grid/search-tile.js +3 -2
  31. package/dist/src/tiles/grid/search-tile.js.map +1 -1
  32. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +2 -1
  33. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js.map +1 -1
  34. package/dist/src/tiles/hover/hover-pane-controller.js +21 -21
  35. package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
  36. package/dist/src/tiles/hover/tile-hover-pane.js +108 -108
  37. package/dist/src/tiles/hover/tile-hover-pane.js.map +1 -1
  38. package/dist/src/tiles/list/tile-list-compact-header.js +45 -45
  39. package/dist/src/tiles/list/tile-list-compact-header.js.map +1 -1
  40. package/dist/src/tiles/list/tile-list-compact.js +97 -97
  41. package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
  42. package/dist/src/tiles/list/tile-list.js +300 -290
  43. package/dist/src/tiles/list/tile-list.js.map +1 -1
  44. package/dist/src/tiles/tile-dispatcher.js +200 -200
  45. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  46. package/dist/src/tiles/tile-display-value-provider.js.map +1 -1
  47. package/dist/test/collection-browser.test.js +183 -183
  48. package/dist/test/collection-browser.test.js.map +1 -1
  49. package/dist/test/restoration-state-handler.test.js.map +1 -1
  50. package/dist/test/tiles/list/tile-list.test.js +13 -0
  51. package/dist/test/tiles/list/tile-list.test.js.map +1 -1
  52. package/eslint.config.mjs +53 -53
  53. package/index.html +24 -24
  54. package/local.archive.org.cert +86 -86
  55. package/local.archive.org.key +27 -27
  56. package/package.json +117 -117
  57. package/renovate.json +6 -6
  58. package/src/collection-browser.ts +2776 -2775
  59. package/src/collection-facets/facet-row.ts +283 -282
  60. package/src/collection-facets/smart-facets/smart-facet-bar.ts +437 -437
  61. package/src/collection-facets.ts +991 -990
  62. package/src/data-source/collection-browser-data-source.ts +1390 -1390
  63. package/src/data-source/collection-browser-query-state.ts +63 -63
  64. package/src/data-source/models.ts +43 -43
  65. package/src/models.ts +870 -870
  66. package/src/restoration-state-handler.ts +544 -544
  67. package/src/sort-filter-bar/sort-filter-bar.ts +1 -1
  68. package/src/tiles/base-tile-component.ts +53 -53
  69. package/src/tiles/grid/collection-tile.ts +3 -2
  70. package/src/tiles/grid/item-tile.ts +339 -339
  71. package/src/tiles/grid/search-tile.ts +3 -2
  72. package/src/tiles/grid/styles/tile-grid-shared-styles.ts +2 -1
  73. package/src/tiles/hover/hover-pane-controller.ts +517 -517
  74. package/src/tiles/hover/tile-hover-pane.ts +180 -180
  75. package/src/tiles/list/tile-list-compact-header.ts +86 -86
  76. package/src/tiles/list/tile-list-compact.ts +236 -236
  77. package/src/tiles/list/tile-list.ts +696 -688
  78. package/src/tiles/tile-dispatcher.ts +486 -486
  79. package/src/tiles/tile-display-value-provider.ts +124 -124
  80. package/test/collection-browser.test.ts +2340 -2340
  81. package/test/restoration-state-handler.test.ts +510 -510
  82. package/test/tiles/list/tile-list.test.ts +15 -0
  83. package/tsconfig.json +20 -20
  84. package/web-dev-server.config.mjs +30 -30
  85. package/web-test-runner.config.mjs +41 -41
@@ -1,63 +1,63 @@
1
- import type {
2
- CollectionExtraInfo,
3
- PageElementName,
4
- SearchServiceInterface,
5
- SearchType,
6
- SortDirection,
7
- SortParam,
8
- } from '@internetarchive/search-service';
9
- import type {
10
- FacetLoadStrategy,
11
- SelectedFacets,
12
- SortField,
13
- TvClipFilterType,
14
- } from '../models';
15
- import type { CollectionBrowserDataSourceInterface } from './collection-browser-data-source-interface';
16
-
17
- /**
18
- * Properties of collection browser that affect the overall search query
19
- */
20
- export interface CollectionBrowserQueryState {
21
- baseQuery?: string;
22
- withinCollection?: string;
23
- withinProfile?: string;
24
- profileElement?: PageElementName;
25
- searchType: SearchType;
26
- selectedFacets?: SelectedFacets;
27
- internalFilters?: SelectedFacets;
28
- minSelectedDate?: string;
29
- maxSelectedDate?: string;
30
- selectedTitleFilter: string | null;
31
- selectedCreatorFilter: string | null;
32
- tvClipFilter?: TvClipFilterType;
33
- selectedSort?: SortField;
34
- sortDirection: SortDirection | null;
35
- }
36
-
37
- /**
38
- * Interface representing search-related state and operations required by the
39
- * data source on its host component.
40
- */
41
- export interface CollectionBrowserSearchInterface
42
- extends CollectionBrowserQueryState {
43
- searchService?: SearchServiceInterface;
44
- isTVCollection: boolean;
45
- readonly sortParam: SortParam | null;
46
- readonly defaultSortField: SortField | null;
47
- readonly facetLoadStrategy: FacetLoadStrategy;
48
- readonly initialPageNumber: number;
49
- readonly maxPagesToManage: number;
50
- readonly currentVisiblePageNumbers: number[];
51
- readonly clearResultsOnEmptyQuery?: boolean;
52
- readonly dataSource?: CollectionBrowserDataSourceInterface;
53
-
54
- getSessionId(): Promise<string>;
55
- setSearchResultsLoading(loading: boolean): void;
56
- setFacetsLoading(loading: boolean): void;
57
- setTotalResultCount(count: number): void;
58
- setTileCount(count: number): void;
59
- applyDefaultCollectionSort(collectionInfo?: CollectionExtraInfo): void;
60
- emitEmptyResults(): void;
61
- emitQueryStateChanged(): void;
62
- refreshVisibleResults(): void;
63
- }
1
+ import type {
2
+ CollectionExtraInfo,
3
+ PageElementName,
4
+ SearchServiceInterface,
5
+ SearchType,
6
+ SortDirection,
7
+ SortParam,
8
+ } from '@internetarchive/search-service';
9
+ import type {
10
+ FacetLoadStrategy,
11
+ SelectedFacets,
12
+ SortField,
13
+ TvClipFilterType,
14
+ } from '../models';
15
+ import type { CollectionBrowserDataSourceInterface } from './collection-browser-data-source-interface';
16
+
17
+ /**
18
+ * Properties of collection browser that affect the overall search query
19
+ */
20
+ export interface CollectionBrowserQueryState {
21
+ baseQuery?: string;
22
+ withinCollection?: string;
23
+ withinProfile?: string;
24
+ profileElement?: PageElementName;
25
+ searchType: SearchType;
26
+ selectedFacets?: SelectedFacets;
27
+ internalFilters?: SelectedFacets;
28
+ minSelectedDate?: string;
29
+ maxSelectedDate?: string;
30
+ selectedTitleFilter: string | null;
31
+ selectedCreatorFilter: string | null;
32
+ tvClipFilter?: TvClipFilterType;
33
+ selectedSort?: SortField;
34
+ sortDirection: SortDirection | null;
35
+ }
36
+
37
+ /**
38
+ * Interface representing search-related state and operations required by the
39
+ * data source on its host component.
40
+ */
41
+ export interface CollectionBrowserSearchInterface
42
+ extends CollectionBrowserQueryState {
43
+ searchService?: SearchServiceInterface;
44
+ isTVCollection: boolean;
45
+ readonly sortParam: SortParam | null;
46
+ readonly defaultSortField: SortField | null;
47
+ readonly facetLoadStrategy: FacetLoadStrategy;
48
+ readonly initialPageNumber: number;
49
+ readonly maxPagesToManage: number;
50
+ readonly currentVisiblePageNumbers: number[];
51
+ readonly clearResultsOnEmptyQuery?: boolean;
52
+ readonly dataSource?: CollectionBrowserDataSourceInterface;
53
+
54
+ getSessionId(): Promise<string>;
55
+ setSearchResultsLoading(loading: boolean): void;
56
+ setFacetsLoading(loading: boolean): void;
57
+ setTotalResultCount(count: number): void;
58
+ setTileCount(count: number): void;
59
+ applyDefaultCollectionSort(collectionInfo?: CollectionExtraInfo): void;
60
+ emitEmptyResults(): void;
61
+ emitQueryStateChanged(): void;
62
+ refreshVisibleResults(): void;
63
+ }
@@ -1,43 +1,43 @@
1
- import type {
2
- PageElementName,
3
- PageType,
4
- } from '@internetarchive/search-service';
5
-
6
- /**
7
- * A Map from collection identifiers to their corresponding collection titles.
8
- */
9
- export type CollectionTitles = Map<string, string>;
10
-
11
- /**
12
- * A Map from channel names to their corresponding, more human-readable network name.
13
- */
14
- export type TVChannelAliases = Map<string, string>;
15
-
16
- /**
17
- * The subset of search service params that uniquely specify the type of results
18
- * that are sought by an instance of collection browser.
19
- */
20
- export type PageSpecifierParams = {
21
- /**
22
- * What high-level type of page is being fetched for (search results, collection, or profile)
23
- */
24
- pageType: PageType;
25
- /**
26
- * The target identifier for collection or profile pages (e.g., "prelinger", "@brewster", ...)
27
- */
28
- pageTarget: string;
29
- /**
30
- * Which specific elements of a profile page to fetch. Corresponds to individual tab data
31
- * (e.g., "uploads", "reviews", ...)
32
- */
33
- pageElements?: PageElementName[];
34
- };
35
-
36
- /**
37
- * List of profile page elements that do not currently allow faceting
38
- */
39
- export const FACETLESS_PAGE_ELEMENTS: PageElementName[] = [
40
- 'forum_posts',
41
- 'lending',
42
- 'web_archives',
43
- ];
1
+ import type {
2
+ PageElementName,
3
+ PageType,
4
+ } from '@internetarchive/search-service';
5
+
6
+ /**
7
+ * A Map from collection identifiers to their corresponding collection titles.
8
+ */
9
+ export type CollectionTitles = Map<string, string>;
10
+
11
+ /**
12
+ * A Map from channel names to their corresponding, more human-readable network name.
13
+ */
14
+ export type TVChannelAliases = Map<string, string>;
15
+
16
+ /**
17
+ * The subset of search service params that uniquely specify the type of results
18
+ * that are sought by an instance of collection browser.
19
+ */
20
+ export type PageSpecifierParams = {
21
+ /**
22
+ * What high-level type of page is being fetched for (search results, collection, or profile)
23
+ */
24
+ pageType: PageType;
25
+ /**
26
+ * The target identifier for collection or profile pages (e.g., "prelinger", "@brewster", ...)
27
+ */
28
+ pageTarget: string;
29
+ /**
30
+ * Which specific elements of a profile page to fetch. Corresponds to individual tab data
31
+ * (e.g., "uploads", "reviews", ...)
32
+ */
33
+ pageElements?: PageElementName[];
34
+ };
35
+
36
+ /**
37
+ * List of profile page elements that do not currently allow faceting
38
+ */
39
+ export const FACETLESS_PAGE_ELEMENTS: PageElementName[] = [
40
+ 'forum_posts',
41
+ 'lending',
42
+ 'web_archives',
43
+ ];