@internetarchive/collection-browser 2.7.7-alpha.2 → 2.7.8-alpha1
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.
- package/.github/workflows/ci.yml +3 -3
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/src/app-root.d.ts +9 -1
- package/dist/src/app-root.js +40 -6
- package/dist/src/app-root.js.map +1 -1
- package/dist/src/assets/img/icons/arrow-left.d.ts +1 -1
- package/dist/src/assets/img/icons/arrow-right.d.ts +1 -1
- package/dist/src/assets/img/icons/chevron.d.ts +1 -1
- package/dist/src/assets/img/icons/contract.d.ts +1 -1
- package/dist/src/assets/img/icons/empty-query.d.ts +1 -1
- package/dist/src/assets/img/icons/expand.d.ts +1 -1
- package/dist/src/assets/img/icons/eye-closed.d.ts +1 -1
- package/dist/src/assets/img/icons/eye.d.ts +1 -1
- package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
- package/dist/src/assets/img/icons/favorite-unfilled.d.ts +1 -1
- package/dist/src/assets/img/icons/filter.d.ts +1 -1
- package/dist/src/assets/img/icons/login-required.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
- package/dist/src/assets/img/icons/null-result.d.ts +1 -1
- package/dist/src/assets/img/icons/restricted.d.ts +1 -1
- package/dist/src/assets/img/icons/reviews.d.ts +1 -1
- package/dist/src/assets/img/icons/upload.d.ts +1 -1
- package/dist/src/assets/img/icons/views.d.ts +1 -1
- package/dist/src/circular-activity-indicator.d.ts +1 -1
- package/dist/src/circular-activity-indicator.js.map +1 -1
- package/dist/src/collection-browser.d.ts +21 -1
- package/dist/src/collection-browser.js +60 -17
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/collection-facets/facet-row.js.map +1 -1
- package/dist/src/collection-facets/facet-tombstone-row.d.ts +1 -1
- package/dist/src/collection-facets/facet-tombstone-row.js.map +1 -1
- package/dist/src/collection-facets/facets-template.js +5 -5
- package/dist/src/collection-facets/facets-template.js.map +1 -1
- package/dist/src/collection-facets/more-facets-content.d.ts +1 -1
- package/dist/src/collection-facets/more-facets-content.js +4 -2
- package/dist/src/collection-facets/more-facets-content.js.map +1 -1
- package/dist/src/collection-facets/more-facets-pagination.js +0 -1
- package/dist/src/collection-facets/more-facets-pagination.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/dedupe.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js +1 -1
- package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/models.d.ts +2 -2
- package/dist/src/collection-facets/smart-facets/smart-facet-bar.js +4 -1
- package/dist/src/collection-facets/smart-facets/smart-facet-bar.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/smart-facet-button.d.ts +1 -1
- package/dist/src/collection-facets/smart-facets/smart-facet-button.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.d.ts +1 -1
- package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js.map +1 -1
- package/dist/src/collection-facets/toggle-switch.d.ts +2 -2
- package/dist/src/collection-facets/toggle-switch.js +2 -2
- package/dist/src/collection-facets/toggle-switch.js.map +1 -1
- package/dist/src/collection-facets.js +3 -2
- package/dist/src/collection-facets.js.map +1 -1
- package/dist/src/data-source/collection-browser-data-source-interface.d.ts +4 -0
- package/dist/src/data-source/collection-browser-data-source-interface.js.map +1 -1
- package/dist/src/data-source/collection-browser-data-source.d.ts +4 -0
- package/dist/src/data-source/collection-browser-data-source.js +22 -8
- package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
- package/dist/src/data-source/collection-browser-query-state.d.ts +1 -0
- package/dist/src/data-source/collection-browser-query-state.js.map +1 -1
- package/dist/src/data-source/models.d.ts +2 -2
- package/dist/src/empty-placeholder.d.ts +1 -1
- package/dist/src/empty-placeholder.js +11 -10
- package/dist/src/empty-placeholder.js.map +1 -1
- package/dist/src/expanded-date-picker.js.map +1 -1
- package/dist/src/language-code-handler/language-code-handler.js.map +1 -1
- package/dist/src/language-code-handler/language-code-mapping.js +86 -86
- package/dist/src/language-code-handler/language-code-mapping.js.map +1 -1
- package/dist/src/manage/manage-bar.d.ts +32 -9
- package/dist/src/manage/manage-bar.js +121 -27
- package/dist/src/manage/manage-bar.js.map +1 -1
- package/dist/src/manage/remove-items-modal-content.d.ts +9 -0
- package/dist/src/manage/remove-items-modal-content.js +104 -0
- package/dist/src/manage/remove-items-modal-content.js.map +1 -0
- package/dist/src/mediatype/mediatype-config.js +0 -1
- package/dist/src/mediatype/mediatype-config.js.map +1 -1
- package/dist/src/models.d.ts +24 -15
- package/dist/src/models.js +3 -3
- package/dist/src/models.js.map +1 -1
- package/dist/src/restoration-state-handler.js +1 -0
- package/dist/src/restoration-state-handler.js.map +1 -1
- package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +1 -1
- package/dist/src/sort-filter-bar/alpha-bar-tooltip.js.map +1 -1
- package/dist/src/sort-filter-bar/alpha-bar.js +9 -9
- package/dist/src/sort-filter-bar/alpha-bar.js.map +1 -1
- package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
- package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +1 -1
- package/dist/src/sort-filter-bar/sort-filter-bar.js +2 -1
- package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
- package/dist/src/tiles/base-tile-component.js.map +1 -1
- package/dist/src/tiles/collection-browser-loading-tile.d.ts +1 -1
- package/dist/src/tiles/collection-browser-loading-tile.js.map +1 -1
- package/dist/src/tiles/grid/account-tile.js.map +1 -1
- package/dist/src/tiles/grid/collection-tile.js.map +1 -1
- package/dist/src/tiles/grid/item-tile.js +3 -2
- package/dist/src/tiles/grid/item-tile.js.map +1 -1
- package/dist/src/tiles/grid/search-tile.js.map +1 -1
- package/dist/src/tiles/grid/tile-stats.d.ts +1 -1
- package/dist/src/tiles/grid/tile-stats.js +2 -2
- package/dist/src/tiles/grid/tile-stats.js.map +1 -1
- package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
- package/dist/src/tiles/hover/tile-hover-pane.d.ts +1 -1
- package/dist/src/tiles/hover/tile-hover-pane.js +1 -3
- package/dist/src/tiles/hover/tile-hover-pane.js.map +1 -1
- package/dist/src/tiles/image-block.d.ts +1 -1
- package/dist/src/tiles/image-block.js +1 -1
- package/dist/src/tiles/image-block.js.map +1 -1
- package/dist/src/tiles/item-image.d.ts +1 -1
- package/dist/src/tiles/item-image.js +2 -2
- package/dist/src/tiles/item-image.js.map +1 -1
- package/dist/src/tiles/list/tile-list-compact-header.d.ts +1 -1
- package/dist/src/tiles/list/tile-list-compact-header.js.map +1 -1
- package/dist/src/tiles/list/tile-list-compact.d.ts +1 -1
- package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
- package/dist/src/tiles/list/tile-list.js +6 -4
- package/dist/src/tiles/list/tile-list.js.map +1 -1
- package/dist/src/tiles/mediatype-icon.d.ts +1 -1
- package/dist/src/tiles/mediatype-icon.js.map +1 -1
- package/dist/src/tiles/overlay/icon-overlay.js.map +1 -1
- package/dist/src/tiles/overlay/text-overlay.js.map +1 -1
- package/dist/src/tiles/review-block.js.map +1 -1
- package/dist/src/tiles/text-snippet-block.js.map +1 -1
- package/dist/src/tiles/tile-dispatcher.d.ts +1 -1
- package/dist/src/tiles/tile-dispatcher.js.map +1 -1
- package/dist/src/tiles/tile-display-value-provider.js.map +1 -1
- package/dist/src/utils/facet-utils.js.map +1 -1
- package/dist/src/utils/format-count.d.ts +2 -2
- package/dist/src/utils/format-count.js +1 -0
- package/dist/src/utils/format-count.js.map +1 -1
- package/dist/src/utils/format-date.d.ts +1 -1
- package/dist/src/utils/format-date.js.map +1 -1
- package/dist/src/utils/format-unit-size.js.map +1 -1
- package/dist/src/utils/log.js +3 -1
- package/dist/src/utils/log.js.map +1 -1
- package/dist/src/utils/resolve-mediatype.js.map +1 -1
- package/dist/test/collection-browser.test.js +17 -2
- package/dist/test/collection-browser.test.js.map +1 -1
- package/dist/test/collection-facets/facet-row.test.js +1 -4
- package/dist/test/collection-facets/facet-row.test.js.map +1 -1
- package/dist/test/collection-facets/facets-template.test.js.map +1 -1
- package/dist/test/collection-facets/more-facets-content.test.js +1 -0
- package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
- package/dist/test/collection-facets/more-facets-pagination.test.js +1 -0
- package/dist/test/collection-facets/more-facets-pagination.test.js.map +1 -1
- package/dist/test/collection-facets/toggle-switch.test.js +3 -12
- package/dist/test/collection-facets/toggle-switch.test.js.map +1 -1
- package/dist/test/collection-facets.test.js +1 -0
- package/dist/test/collection-facets.test.js.map +1 -1
- package/dist/test/data-source/collection-browser-data-source.test.js.map +1 -1
- package/dist/test/empty-placeholder.test.js +1 -0
- package/dist/test/empty-placeholder.test.js.map +1 -1
- package/dist/test/expanded-date-picker.test.js.map +1 -1
- package/dist/test/icon-overlay.test.js +1 -0
- package/dist/test/icon-overlay.test.js.map +1 -1
- package/dist/test/image-block.test.js +1 -0
- package/dist/test/image-block.test.js.map +1 -1
- package/dist/test/item-image.test.js +1 -0
- package/dist/test/item-image.test.js.map +1 -1
- package/dist/test/manage/manage-bar.test.d.ts +1 -0
- package/dist/test/manage/manage-bar.test.js +26 -10
- package/dist/test/manage/manage-bar.test.js.map +1 -1
- package/dist/test/manage/remove-items-modal-content.test.d.ts +1 -0
- package/dist/test/manage/remove-items-modal-content.test.js +66 -0
- package/dist/test/manage/remove-items-modal-content.test.js.map +1 -0
- package/dist/test/mocks/mock-search-responses.js.map +1 -1
- package/dist/test/mocks/mock-search-service.js.map +1 -1
- package/dist/test/restoration-state-handler.test.js.map +1 -1
- package/dist/test/review-block.test.js +1 -0
- package/dist/test/review-block.test.js.map +1 -1
- package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js.map +1 -1
- package/dist/test/sort-filter-bar/alpha-bar.test.js.map +1 -1
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js +1 -0
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -1
- package/dist/test/text-overlay.test.js +1 -0
- package/dist/test/text-overlay.test.js.map +1 -1
- package/dist/test/text-snippet-block.test.js +1 -0
- package/dist/test/text-snippet-block.test.js.map +1 -1
- package/dist/test/tile-stats.test.js +23 -22
- package/dist/test/tile-stats.test.js.map +1 -1
- package/dist/test/tiles/grid/account-tile.test.js +1 -0
- package/dist/test/tiles/grid/account-tile.test.js.map +1 -1
- package/dist/test/tiles/grid/collection-tile.test.js +1 -0
- package/dist/test/tiles/grid/collection-tile.test.js.map +1 -1
- package/dist/test/tiles/grid/item-tile.test.js +1 -0
- package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
- package/dist/test/tiles/grid/search-tile.test.js +1 -0
- package/dist/test/tiles/grid/search-tile.test.js.map +1 -1
- package/dist/test/tiles/hover/hover-pane-controller.test.js.map +1 -1
- package/dist/test/tiles/hover/tile-hover-pane.test.js.map +1 -1
- package/dist/test/tiles/list/tile-list-compact.test.js +1 -0
- package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -1
- package/dist/test/tiles/list/tile-list.test.js +1 -0
- package/dist/test/tiles/list/tile-list.test.js.map +1 -1
- package/dist/test/tiles/tile-dispatcher.test.js.map +1 -1
- package/dist/test/utils/format-count.test.js.map +1 -1
- package/dist/test/utils/format-date.test.js.map +1 -1
- package/dist/test/utils/local-date-from-utc.test.js.map +1 -1
- package/index.html +3 -0
- package/package.json +38 -40
- package/src/app-root.ts +60 -25
- package/src/collection-browser.ts +101 -50
- package/src/collection-facets/facets-template.ts +6 -7
- package/src/collection-facets/more-facets-content.ts +13 -11
- package/src/collection-facets/more-facets-pagination.ts +2 -3
- package/src/collection-facets/smart-facets/dedupe.ts +2 -2
- package/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.ts +1 -1
- package/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.ts +6 -6
- package/src/collection-facets/smart-facets/smart-facet-bar.ts +8 -6
- package/src/collection-facets/smart-facets/smart-facet-button.ts +3 -5
- package/src/collection-facets/smart-facets/smart-facet-dropdown.ts +4 -4
- package/src/collection-facets/smart-facets/smart-facet-heuristics.ts +1 -1
- package/src/collection-facets/toggle-switch.ts +2 -2
- package/src/collection-facets.ts +19 -18
- package/src/data-source/collection-browser-data-source-interface.ts +6 -5
- package/src/data-source/collection-browser-data-source.ts +48 -37
- package/src/data-source/collection-browser-query-state.ts +1 -0
- package/src/empty-placeholder.ts +16 -19
- package/src/expanded-date-picker.ts +1 -1
- package/src/language-code-handler/language-code-handler.ts +1 -1
- package/src/manage/manage-bar.ts +132 -38
- package/src/manage/remove-items-modal-content.ts +102 -0
- package/src/mediatype/mediatype-config.ts +0 -1
- package/src/models.ts +13 -3
- package/src/restoration-state-handler.ts +15 -14
- package/src/sort-filter-bar/alpha-bar.ts +17 -16
- package/src/sort-filter-bar/sort-filter-bar.ts +15 -14
- package/src/tiles/grid/account-tile.ts +1 -1
- package/src/tiles/grid/collection-tile.ts +1 -1
- package/src/tiles/grid/item-tile.ts +9 -9
- package/src/tiles/grid/tile-stats.ts +4 -4
- package/src/tiles/hover/hover-pane-controller.ts +1 -1
- package/src/tiles/hover/tile-hover-pane.ts +2 -4
- package/src/tiles/item-image.ts +1 -1
- package/src/tiles/list/tile-list-compact.ts +2 -2
- package/src/tiles/list/tile-list.ts +24 -22
- package/src/tiles/tile-dispatcher.ts +5 -5
- package/src/tiles/tile-display-value-provider.ts +4 -4
- package/src/utils/facet-utils.ts +6 -6
- package/src/utils/format-count.ts +3 -2
- package/src/utils/format-date.ts +1 -1
- package/src/utils/format-unit-size.ts +1 -1
- package/src/utils/log.ts +3 -1
- package/test/collection-browser.test.ts +145 -123
- package/test/collection-facets/facet-row.test.ts +28 -31
- package/test/collection-facets/facets-template.test.ts +9 -9
- package/test/collection-facets/more-facets-content.test.ts +15 -14
- package/test/collection-facets/more-facets-pagination.test.ts +19 -18
- package/test/collection-facets/toggle-switch.test.ts +18 -28
- package/test/collection-facets.test.ts +37 -36
- package/test/data-source/collection-browser-data-source.test.ts +2 -2
- package/test/empty-placeholder.test.ts +7 -6
- package/test/expanded-date-picker.test.ts +18 -17
- package/test/icon-overlay.test.ts +1 -0
- package/test/image-block.test.ts +7 -6
- package/test/item-image.test.ts +1 -0
- package/test/manage/manage-bar.test.ts +52 -28
- package/test/manage/remove-items-modal-content.test.ts +82 -0
- package/test/mocks/mock-search-responses.ts +1 -2
- package/test/mocks/mock-search-service.ts +1 -1
- package/test/restoration-state-handler.test.ts +12 -12
- package/test/review-block.test.ts +2 -1
- package/test/sort-filter-bar/alpha-bar-tooltip.test.ts +1 -1
- package/test/sort-filter-bar/alpha-bar.test.ts +5 -5
- package/test/sort-filter-bar/sort-filter-bar.test.ts +39 -38
- package/test/text-overlay.test.ts +1 -0
- package/test/text-snippet-block.test.ts +6 -5
- package/test/tile-stats.test.ts +35 -26
- package/test/tiles/grid/account-tile.test.ts +3 -2
- package/test/tiles/grid/collection-tile.test.ts +4 -3
- package/test/tiles/grid/item-tile.test.ts +14 -13
- package/test/tiles/grid/search-tile.test.ts +2 -1
- package/test/tiles/hover/hover-pane-controller.test.ts +15 -15
- package/test/tiles/hover/tile-hover-pane.test.ts +5 -5
- package/test/tiles/list/tile-list-compact.test.ts +2 -1
- package/test/tiles/list/tile-list.test.ts +11 -10
- package/test/tiles/tile-dispatcher.test.ts +5 -5
- package/test/utils/format-count.test.ts +1 -1
- package/test/utils/format-date.test.ts +1 -1
- package/test/utils/local-date-from-utc.test.ts +1 -1
- package/tsconfig.json +1 -0
- package/.prettierignore +0 -1
- package/eslint.config.mjs +0 -53
|
@@ -139,6 +139,11 @@ export declare class CollectionBrowser extends LitElement implements InfiniteScr
|
|
|
139
139
|
* for the previous/next page, we'll fetch the next/previous page to populate it
|
|
140
140
|
*/
|
|
141
141
|
dataSource: CollectionBrowserDataSourceInterface;
|
|
142
|
+
/**
|
|
143
|
+
* The maximum number of pages we will load when a privileged user clicks
|
|
144
|
+
* the "Manage" button on the search page. Limited to 15 pages.
|
|
145
|
+
*/
|
|
146
|
+
maxPagesToManage: number;
|
|
142
147
|
/**
|
|
143
148
|
* The page that the consumer wants to load.
|
|
144
149
|
*/
|
|
@@ -163,6 +168,7 @@ export declare class CollectionBrowser extends LitElement implements InfiniteScr
|
|
|
163
168
|
private contentContainer;
|
|
164
169
|
private leftColumn?;
|
|
165
170
|
private collectionFacets?;
|
|
171
|
+
private manageBar?;
|
|
166
172
|
analyticsHandler?: AnalyticsManagerInterface;
|
|
167
173
|
/** Whether layout size analytics have been sent already. */
|
|
168
174
|
private layoutSizeAnalyticsSent;
|
|
@@ -317,7 +323,15 @@ export declare class CollectionBrowser extends LitElement implements InfiniteScr
|
|
|
317
323
|
/**
|
|
318
324
|
* Handler when user request to bulk edit from /search/ page
|
|
319
325
|
*/
|
|
320
|
-
private
|
|
326
|
+
private handleManageItems;
|
|
327
|
+
/**
|
|
328
|
+
* Handler to show processing modal while removing item
|
|
329
|
+
*/
|
|
330
|
+
showRemoveItemsProcessingModal(): void;
|
|
331
|
+
/**
|
|
332
|
+
* Handler to show error modal when item removal failed
|
|
333
|
+
*/
|
|
334
|
+
showRemoveItemsErrorModal(): void;
|
|
321
335
|
/**
|
|
322
336
|
* Removes all tile models that are currently checked & adjusts the paging
|
|
323
337
|
* of the data source to account for any new gaps in the data.
|
|
@@ -578,5 +592,11 @@ export declare class CollectionBrowser extends LitElement implements InfiniteScr
|
|
|
578
592
|
* increase the number of pages to render and start fetching data for the new page
|
|
579
593
|
*/
|
|
580
594
|
private scrollThresholdReached;
|
|
595
|
+
/**
|
|
596
|
+
* Fetches search results for privileged users when in manage view
|
|
597
|
+
* If total results exceed the threshold, partially resets the datasource pages
|
|
598
|
+
* and fetches the first page with a limit based on the threshold
|
|
599
|
+
*/
|
|
600
|
+
private fetchManagableSearchResults;
|
|
581
601
|
static get styles(): import("lit").CSSResult[];
|
|
582
602
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
|
+
/* eslint-disable import/no-duplicates */
|
|
2
3
|
import { html, css, LitElement, nothing, } from 'lit';
|
|
3
4
|
import { customElement, property, query, state } from 'lit/decorators.js';
|
|
4
5
|
import { classMap } from 'lit/directives/class-map.js';
|
|
@@ -13,7 +14,6 @@ import { analyticsActions, analyticsCategories, } from './utils/analytics-events
|
|
|
13
14
|
import chevronIcon from './assets/img/icons/chevron';
|
|
14
15
|
import { srOnlyStyle } from './styles/sr-only';
|
|
15
16
|
import { sha1 } from './utils/sha1';
|
|
16
|
-
import { formatDate } from './utils/format-date';
|
|
17
17
|
import { log } from './utils/log';
|
|
18
18
|
import './empty-placeholder';
|
|
19
19
|
import './tiles/tile-dispatcher';
|
|
@@ -118,6 +118,11 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
118
118
|
* for the previous/next page, we'll fetch the next/previous page to populate it
|
|
119
119
|
*/
|
|
120
120
|
this.dataSource = new CollectionBrowserDataSource(this, this.pageSize);
|
|
121
|
+
/**
|
|
122
|
+
* The maximum number of pages we will load when a privileged user clicks
|
|
123
|
+
* the "Manage" button on the search page. Limited to 15 pages.
|
|
124
|
+
*/
|
|
125
|
+
this.maxPagesToManage = 15;
|
|
121
126
|
/**
|
|
122
127
|
* The page that the consumer wants to load.
|
|
123
128
|
*/
|
|
@@ -229,7 +234,7 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
229
234
|
sessionStorage === null || sessionStorage === void 0 ? void 0 : sessionStorage.setItem('cb-session', newSessionId);
|
|
230
235
|
return newSessionId;
|
|
231
236
|
}
|
|
232
|
-
catch (
|
|
237
|
+
catch (err) {
|
|
233
238
|
// Either we can't generate the hash or we're restricted from accessing sessionStorage
|
|
234
239
|
return '';
|
|
235
240
|
}
|
|
@@ -585,20 +590,28 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
585
590
|
* showing the management view. This generally replaces the sort bar when present.
|
|
586
591
|
*/
|
|
587
592
|
get manageBarTemplate() {
|
|
593
|
+
const manageViewModalMsg = this.profileElement === 'uploads'
|
|
594
|
+
? 'Note: it may take a few minutes for these items to stop appearing in your uploads list.'
|
|
595
|
+
: nothing;
|
|
588
596
|
return html `
|
|
589
597
|
<manage-bar
|
|
590
598
|
.label=${this.manageViewLabel}
|
|
591
|
-
.
|
|
599
|
+
.modalManager=${this.modalManager}
|
|
600
|
+
.selectedItems=${this.dataSource.checkedTileModels}
|
|
601
|
+
.manageViewModalMsg=${manageViewModalMsg}
|
|
592
602
|
showSelectAll
|
|
593
603
|
showUnselectAll
|
|
604
|
+
?showItemManageButton=${this.pageContext === 'search'}
|
|
594
605
|
?removeAllowed=${this.dataSource.checkedTileModels.length !== 0}
|
|
595
606
|
@removeItems=${this.handleRemoveItems}
|
|
596
|
-
@
|
|
607
|
+
@manageItems=${this.handleManageItems}
|
|
597
608
|
@selectAll=${() => this.dataSource.checkAllTiles()}
|
|
598
609
|
@unselectAll=${() => this.dataSource.uncheckAllTiles()}
|
|
599
610
|
@cancel=${() => {
|
|
600
611
|
this.isManageView = false;
|
|
601
612
|
this.dataSource.uncheckAllTiles();
|
|
613
|
+
if (this.searchResultsLoading)
|
|
614
|
+
this.dataSource.resetPages();
|
|
602
615
|
}}
|
|
603
616
|
></manage-bar>
|
|
604
617
|
`;
|
|
@@ -610,27 +623,34 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
610
623
|
handleRemoveItems() {
|
|
611
624
|
this.dispatchEvent(new CustomEvent('itemRemovalRequested', {
|
|
612
625
|
detail: {
|
|
613
|
-
items: this.dataSource.checkedTileModels.map(model =>
|
|
614
|
-
const cloned = model.clone();
|
|
615
|
-
cloned.dateStr = formatDate(model.datePublished, 'long');
|
|
616
|
-
return cloned;
|
|
617
|
-
}),
|
|
626
|
+
items: this.dataSource.checkedTileModels.map(model => (model === null || model === void 0 ? void 0 : model.identifier) ? model.identifier : ''),
|
|
618
627
|
},
|
|
619
628
|
}));
|
|
620
629
|
}
|
|
621
630
|
/**
|
|
622
631
|
* Handler when user request to bulk edit from /search/ page
|
|
623
632
|
*/
|
|
624
|
-
|
|
633
|
+
handleManageItems() {
|
|
625
634
|
this.dispatchEvent(new CustomEvent('itemManagerRequested', {
|
|
626
635
|
detail: {
|
|
627
|
-
items: this.dataSource.checkedTileModels
|
|
628
|
-
.map(item => item.identifier)
|
|
629
|
-
.filter(Boolean)
|
|
630
|
-
.join(','),
|
|
636
|
+
items: this.dataSource.checkedTileModels.map(model => (model === null || model === void 0 ? void 0 : model.identifier) ? model.identifier : ''),
|
|
631
637
|
},
|
|
632
638
|
}));
|
|
633
639
|
}
|
|
640
|
+
/**
|
|
641
|
+
* Handler to show processing modal while removing item
|
|
642
|
+
*/
|
|
643
|
+
showRemoveItemsProcessingModal() {
|
|
644
|
+
var _a;
|
|
645
|
+
(_a = this.manageBar) === null || _a === void 0 ? void 0 : _a.showRemoveItemsProcessingModal();
|
|
646
|
+
}
|
|
647
|
+
/**
|
|
648
|
+
* Handler to show error modal when item removal failed
|
|
649
|
+
*/
|
|
650
|
+
showRemoveItemsErrorModal() {
|
|
651
|
+
var _a;
|
|
652
|
+
(_a = this.manageBar) === null || _a === void 0 ? void 0 : _a.showRemoveItemsErrorModal();
|
|
653
|
+
}
|
|
634
654
|
/**
|
|
635
655
|
* Removes all tile models that are currently checked & adjusts the paging
|
|
636
656
|
* of the data source to account for any new gaps in the data.
|
|
@@ -1033,7 +1053,7 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1033
1053
|
}
|
|
1034
1054
|
}
|
|
1035
1055
|
updated(changed) {
|
|
1036
|
-
var _a, _b;
|
|
1056
|
+
var _a, _b, _c;
|
|
1037
1057
|
if (changed.has('placeholderType') && this.placeholderType === null) {
|
|
1038
1058
|
if (!this.leftColIntersectionObserver) {
|
|
1039
1059
|
this.setupLeftColumnScrollListeners();
|
|
@@ -1140,9 +1160,13 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1140
1160
|
}
|
|
1141
1161
|
}
|
|
1142
1162
|
if (changed.has('isManageView')) {
|
|
1143
|
-
if (this.isManageView)
|
|
1163
|
+
if (this.isManageView) {
|
|
1144
1164
|
this.displayMode = 'grid';
|
|
1145
|
-
|
|
1165
|
+
this.fetchManagableSearchResults();
|
|
1166
|
+
}
|
|
1167
|
+
else if (this.pageContext === 'search')
|
|
1168
|
+
(_b = this.infiniteScroller) === null || _b === void 0 ? void 0 : _b.reload();
|
|
1169
|
+
(_c = this.infiniteScroller) === null || _c === void 0 ? void 0 : _c.refreshAllVisibleCells();
|
|
1146
1170
|
this.emitManageModeChangedEvent();
|
|
1147
1171
|
}
|
|
1148
1172
|
if (changed.has('resizeObserver')) {
|
|
@@ -1660,6 +1684,22 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1660
1684
|
this.dataSource.fetchPage(this.pagesToRender);
|
|
1661
1685
|
}
|
|
1662
1686
|
}
|
|
1687
|
+
/**
|
|
1688
|
+
* Fetches search results for privileged users when in manage view
|
|
1689
|
+
* If total results exceed the threshold, partially resets the datasource pages
|
|
1690
|
+
* and fetches the first page with a limit based on the threshold
|
|
1691
|
+
*/
|
|
1692
|
+
fetchManagableSearchResults() {
|
|
1693
|
+
var _a;
|
|
1694
|
+
const maxAllowedResults = this.maxPagesToManage * this.pageSize;
|
|
1695
|
+
if (this.pageContext === 'search' &&
|
|
1696
|
+
this.dataSource.totalResults > maxAllowedResults &&
|
|
1697
|
+
!this.searchResultsLoading) {
|
|
1698
|
+
this.dataSource.resetPages();
|
|
1699
|
+
this.dataSource.fetchPage(1, this.maxPagesToManage); // will fetch 750 results
|
|
1700
|
+
(_a = this.infiniteScroller) === null || _a === void 0 ? void 0 : _a.reload();
|
|
1701
|
+
}
|
|
1702
|
+
}
|
|
1663
1703
|
static get styles() {
|
|
1664
1704
|
return [
|
|
1665
1705
|
srOnlyStyle,
|
|
@@ -2261,6 +2301,9 @@ __decorate([
|
|
|
2261
2301
|
__decorate([
|
|
2262
2302
|
query('collection-facets')
|
|
2263
2303
|
], CollectionBrowser.prototype, "collectionFacets", void 0);
|
|
2304
|
+
__decorate([
|
|
2305
|
+
query('manage-bar')
|
|
2306
|
+
], CollectionBrowser.prototype, "manageBar", void 0);
|
|
2264
2307
|
__decorate([
|
|
2265
2308
|
property({ type: Object, attribute: false })
|
|
2266
2309
|
], CollectionBrowser.prototype, "analyticsHandler", void 0);
|