@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
|
@@ -50,7 +50,7 @@ export class LanguageCodeHandler implements LanguageCodeHandlerInterface {
|
|
|
50
50
|
/** @inheritdoc */
|
|
51
51
|
getCodeStringFromLanguageName(languageName: string): string {
|
|
52
52
|
const languageCodes = Object.keys(codeToLanguageMap).filter(
|
|
53
|
-
code => codeToLanguageMap[code] === languageName
|
|
53
|
+
code => codeToLanguageMap[code] === languageName
|
|
54
54
|
);
|
|
55
55
|
const stringifiedCodes = languageCodes?.join(this.delimeter);
|
|
56
56
|
return stringifiedCodes;
|
package/src/manage/manage-bar.ts
CHANGED
|
@@ -2,13 +2,13 @@ import { msg } from '@lit/localize';
|
|
|
2
2
|
import { LitElement, html, css, TemplateResult, CSSResultGroup } from 'lit';
|
|
3
3
|
import { customElement, property } from 'lit/decorators.js';
|
|
4
4
|
import { when } from 'lit/directives/when.js';
|
|
5
|
+
import {
|
|
6
|
+
ModalConfig,
|
|
7
|
+
type ModalManagerInterface,
|
|
8
|
+
} from '@internetarchive/modal-manager';
|
|
9
|
+
import type { ManageableItem } from '../models';
|
|
5
10
|
import iaButtonStyle from '../styles/ia-button';
|
|
6
|
-
|
|
7
|
-
export interface ManageableItem {
|
|
8
|
-
identifier: string;
|
|
9
|
-
title?: string;
|
|
10
|
-
dateStr?: string;
|
|
11
|
-
}
|
|
11
|
+
import './remove-items-modal-content';
|
|
12
12
|
|
|
13
13
|
@customElement('manage-bar')
|
|
14
14
|
export class ManageBar extends LitElement {
|
|
@@ -18,9 +18,19 @@ export class ManageBar extends LitElement {
|
|
|
18
18
|
@property({ type: String }) label = msg('Select items to remove');
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
21
|
+
* The shared modal manager component for displaying modal dialogs on this page
|
|
22
22
|
*/
|
|
23
|
-
@property({ type:
|
|
23
|
+
@property({ type: Object }) modalManager?: ModalManagerInterface;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Array of items that have been selected for management
|
|
27
|
+
*/
|
|
28
|
+
@property({ type: Object }) selectedItems: Array<ManageableItem> = [];
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Message shows as note in the modal when removing items
|
|
32
|
+
*/
|
|
33
|
+
@property({ type: String }) manageViewModalMsg?: string;
|
|
24
34
|
|
|
25
35
|
/**
|
|
26
36
|
* Whether to show the "Select All" button (default false)
|
|
@@ -32,6 +42,11 @@ export class ManageBar extends LitElement {
|
|
|
32
42
|
*/
|
|
33
43
|
@property({ type: Boolean }) showUnselectAll = false;
|
|
34
44
|
|
|
45
|
+
/**
|
|
46
|
+
* Whether to show "Item Manager the items" button (default false)
|
|
47
|
+
*/
|
|
48
|
+
@property({ type: Boolean }) showItemManageButton = false;
|
|
49
|
+
|
|
35
50
|
/**
|
|
36
51
|
* Whether to active delete button for selectable items
|
|
37
52
|
*/
|
|
@@ -48,41 +63,38 @@ export class ManageBar extends LitElement {
|
|
|
48
63
|
<button
|
|
49
64
|
class="ia-button danger"
|
|
50
65
|
?disabled=${!this.removeAllowed}
|
|
51
|
-
@click=${this.
|
|
66
|
+
@click=${this.showRemoveItemsModal}
|
|
52
67
|
>
|
|
53
|
-
${msg('Remove selected items')}
|
|
68
|
+
${msg('Remove selected items')} (${this.selectedItems.length})
|
|
54
69
|
</button>
|
|
55
|
-
${
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
: ''}
|
|
70
|
+
${when(
|
|
71
|
+
this.showItemManageButton,
|
|
72
|
+
() => html` <button
|
|
73
|
+
class="ia-button warning"
|
|
74
|
+
?disabled=${!this.removeAllowed}
|
|
75
|
+
@click=${this.manageItemsClicked}
|
|
76
|
+
>
|
|
77
|
+
${msg('Item Manager the items')} (${this.selectedItems.length})
|
|
78
|
+
</button>`
|
|
79
|
+
)}
|
|
66
80
|
<div class="selection-buttons">
|
|
67
81
|
${when(
|
|
68
82
|
this.showSelectAll,
|
|
69
|
-
() =>
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
</button>`,
|
|
83
|
+
() => html` <button
|
|
84
|
+
class="ia-button link select-all-btn"
|
|
85
|
+
@click=${this.selectAllClicked}
|
|
86
|
+
>
|
|
87
|
+
${msg('Select all')}
|
|
88
|
+
</button>`
|
|
76
89
|
)}
|
|
77
90
|
${when(
|
|
78
91
|
this.showUnselectAll,
|
|
79
|
-
() =>
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
</button>`,
|
|
92
|
+
() => html` <button
|
|
93
|
+
class="ia-button link unselect-all-btn"
|
|
94
|
+
@click=${this.unselectAllClicked}
|
|
95
|
+
>
|
|
96
|
+
${msg('Unselect all')}
|
|
97
|
+
</button>`
|
|
86
98
|
)}
|
|
87
99
|
</div>
|
|
88
100
|
</div>
|
|
@@ -94,12 +106,12 @@ export class ManageBar extends LitElement {
|
|
|
94
106
|
this.dispatchEvent(new CustomEvent('cancel'));
|
|
95
107
|
}
|
|
96
108
|
|
|
97
|
-
private
|
|
109
|
+
private removeItemsClicked(): void {
|
|
98
110
|
this.dispatchEvent(new CustomEvent('removeItems'));
|
|
99
111
|
}
|
|
100
112
|
|
|
101
|
-
private
|
|
102
|
-
this.dispatchEvent(new CustomEvent('
|
|
113
|
+
private manageItemsClicked(): void {
|
|
114
|
+
this.dispatchEvent(new CustomEvent('manageItems'));
|
|
103
115
|
}
|
|
104
116
|
|
|
105
117
|
private selectAllClicked(): void {
|
|
@@ -110,6 +122,88 @@ export class ManageBar extends LitElement {
|
|
|
110
122
|
this.dispatchEvent(new CustomEvent('unselectAll'));
|
|
111
123
|
}
|
|
112
124
|
|
|
125
|
+
/**
|
|
126
|
+
* Shows a modal dialog confirming the list of items to be removed
|
|
127
|
+
* @param items Which items to list in the modal
|
|
128
|
+
*/
|
|
129
|
+
private showRemoveItemsModal(): void {
|
|
130
|
+
const customModalContent = html`
|
|
131
|
+
<remove-items-modal-content
|
|
132
|
+
.items=${this.selectedItems}
|
|
133
|
+
.message=${this.manageViewModalMsg}
|
|
134
|
+
@confirm=${() => this.removeItemsClicked()}
|
|
135
|
+
></remove-items-modal-content>
|
|
136
|
+
`;
|
|
137
|
+
|
|
138
|
+
const config = new ModalConfig({
|
|
139
|
+
showProcessingIndicator: false,
|
|
140
|
+
processingImageMode: 'processing',
|
|
141
|
+
bodyColor: '#fff',
|
|
142
|
+
headerColor: '#194880',
|
|
143
|
+
showHeaderLogo: false,
|
|
144
|
+
closeOnBackdropClick: true,
|
|
145
|
+
title: html`${msg('Are you sure you want to remove these items?')}`,
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
this.modalManager?.classList.add('remove-items');
|
|
149
|
+
this.modalManager?.showModal({
|
|
150
|
+
config,
|
|
151
|
+
customModalContent,
|
|
152
|
+
userClosedModalCallback: () => {
|
|
153
|
+
this.modalManager?.classList.remove('remove-items');
|
|
154
|
+
},
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Shows a modal dialog indicating that item removal is being processed
|
|
160
|
+
*/
|
|
161
|
+
showRemoveItemsProcessingModal(): void {
|
|
162
|
+
const config = new ModalConfig({
|
|
163
|
+
showProcessingIndicator: true,
|
|
164
|
+
processingImageMode: 'processing',
|
|
165
|
+
bodyColor: '#fff',
|
|
166
|
+
headerColor: '#194880',
|
|
167
|
+
showHeaderLogo: false,
|
|
168
|
+
closeOnBackdropClick: true,
|
|
169
|
+
title: html`${msg('Removing selected items...')}`,
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
this.modalManager?.classList.add('remove-items');
|
|
173
|
+
this.modalManager?.showModal({
|
|
174
|
+
config,
|
|
175
|
+
userClosedModalCallback: () => {
|
|
176
|
+
this.modalManager?.classList.remove('remove-items');
|
|
177
|
+
},
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Shows a modal dialog indicating that an error occurred while removing items
|
|
183
|
+
*/
|
|
184
|
+
showRemoveItemsErrorModal(): void {
|
|
185
|
+
const config = new ModalConfig({
|
|
186
|
+
showProcessingIndicator: false,
|
|
187
|
+
processingImageMode: 'processing',
|
|
188
|
+
bodyColor: '#fff',
|
|
189
|
+
headerColor: '#691916',
|
|
190
|
+
showHeaderLogo: false,
|
|
191
|
+
closeOnBackdropClick: true,
|
|
192
|
+
title: html`${msg('Error: unable to remove items')}`,
|
|
193
|
+
message: html`${msg(
|
|
194
|
+
'An error occurred while removing items. Please try again in a few minutes.'
|
|
195
|
+
)}`,
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
this.modalManager?.classList.add('remove-items');
|
|
199
|
+
this.modalManager?.showModal({
|
|
200
|
+
config,
|
|
201
|
+
userClosedModalCallback: () => {
|
|
202
|
+
this.modalManager?.classList.remove('remove-items');
|
|
203
|
+
},
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
|
|
113
207
|
static get styles(): CSSResultGroup {
|
|
114
208
|
return css`
|
|
115
209
|
${iaButtonStyle}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { LitElement, html, css, nothing, TemplateResult, CSSResult } from 'lit';
|
|
2
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
3
|
+
import { msg } from '@lit/localize';
|
|
4
|
+
import { map } from 'lit/directives/map.js';
|
|
5
|
+
import type { ManageableItem } from '../models';
|
|
6
|
+
|
|
7
|
+
@customElement('remove-items-modal-content')
|
|
8
|
+
export class RemoveItemsModalContent extends LitElement {
|
|
9
|
+
@property({ type: Object }) items: ManageableItem[] = [];
|
|
10
|
+
|
|
11
|
+
@property({ type: String }) message?: string;
|
|
12
|
+
|
|
13
|
+
render(): TemplateResult {
|
|
14
|
+
return html`
|
|
15
|
+
<ul>
|
|
16
|
+
${map(
|
|
17
|
+
this.items,
|
|
18
|
+
({ title, date }) => html`
|
|
19
|
+
<li>
|
|
20
|
+
<span class="item-title">${title ?? '[untitled]'}</span>
|
|
21
|
+
<span class="item-date">${date ?? ''}</span>
|
|
22
|
+
</li>
|
|
23
|
+
`
|
|
24
|
+
)}
|
|
25
|
+
</ul>
|
|
26
|
+
${this.message ? html`<p class="message">${this.message}</p>` : nothing}
|
|
27
|
+
<div class="button-bar">
|
|
28
|
+
<button class="remove-items-btn" @click=${this.removeItemsBtnClicked}>
|
|
29
|
+
${msg('Remove items')}
|
|
30
|
+
</button>
|
|
31
|
+
</div>
|
|
32
|
+
`;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
private removeItemsBtnClicked(): void {
|
|
36
|
+
this.dispatchEvent(
|
|
37
|
+
new CustomEvent<{ items: ManageableItem[] }>('confirm', {
|
|
38
|
+
detail: {
|
|
39
|
+
items: this.items,
|
|
40
|
+
},
|
|
41
|
+
})
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
static get styles(): CSSResult {
|
|
46
|
+
return css`
|
|
47
|
+
ul {
|
|
48
|
+
margin: 0;
|
|
49
|
+
padding: 0 10px;
|
|
50
|
+
font-size: 1.4rem;
|
|
51
|
+
list-style-type: none;
|
|
52
|
+
max-height: min(400px, 40vh);
|
|
53
|
+
overflow-y: auto;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
li {
|
|
57
|
+
display: flex;
|
|
58
|
+
justify-content: space-between;
|
|
59
|
+
padding: 2px 0;
|
|
60
|
+
}
|
|
61
|
+
li:not(:last-of-type) {
|
|
62
|
+
border-bottom: 1px solid rgb(232, 232, 232);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.item-title {
|
|
66
|
+
word-break: break-word;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.item-date {
|
|
70
|
+
white-space: nowrap;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.message {
|
|
74
|
+
font-size: 1.4rem;
|
|
75
|
+
padding: 5px 10px;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.button-bar {
|
|
79
|
+
display: flex;
|
|
80
|
+
justify-content: center;
|
|
81
|
+
margin: 10px 5px;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.remove-items-btn {
|
|
85
|
+
margin-bottom: 10px;
|
|
86
|
+
padding: 10px;
|
|
87
|
+
border: 1px solid var(--primaryErrorCTABorder, #d43f3a);
|
|
88
|
+
border-radius: 4px;
|
|
89
|
+
color: white;
|
|
90
|
+
background: var(--primaryErrorCTAFill, #d9534f);
|
|
91
|
+
appearance: none;
|
|
92
|
+
cursor: pointer;
|
|
93
|
+
}
|
|
94
|
+
.remove-items-btn:hover {
|
|
95
|
+
background: rgba(var(--primaryErrorCTAFillRGB, 229, 28, 38), 0.9);
|
|
96
|
+
}
|
|
97
|
+
.remove-items-btn:active {
|
|
98
|
+
background: rgba(var(--primaryErrorCTAFillRGB, 229, 28, 38), 0.7);
|
|
99
|
+
}
|
|
100
|
+
`;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -13,7 +13,6 @@ import { videoIcon } from '../assets/img/icons/mediatype/video';
|
|
|
13
13
|
import { webIcon } from '../assets/img/icons/mediatype/web';
|
|
14
14
|
import { searchIcon } from '../assets/img/icons/mediatype/search';
|
|
15
15
|
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
17
16
|
export const mediatypeConfig: { [key: string]: any } = {
|
|
18
17
|
account: {
|
|
19
18
|
color: '#000000',
|
package/src/models.ts
CHANGED
|
@@ -125,7 +125,7 @@ export class TileModel {
|
|
|
125
125
|
this.description = result.description?.values.join('\n');
|
|
126
126
|
this.favCount = result.num_favorites?.value ?? 0;
|
|
127
127
|
this.href = collapseRepeatedQuotes(
|
|
128
|
-
result.review?.__href__ ?? result.__href__?.value
|
|
128
|
+
result.review?.__href__ ?? result.__href__?.value
|
|
129
129
|
);
|
|
130
130
|
this.identifier = TileModel.cleanIdentifier(result.identifier);
|
|
131
131
|
this.issue = result.issue?.value;
|
|
@@ -212,7 +212,7 @@ export class TileModel {
|
|
|
212
212
|
}
|
|
213
213
|
|
|
214
214
|
private static cleanIdentifier(
|
|
215
|
-
identifier: string | undefined
|
|
215
|
+
identifier: string | undefined
|
|
216
216
|
): string | undefined {
|
|
217
217
|
// Some identifiers (e.g., from Whisper) represent documents rather than items, and
|
|
218
218
|
// are suffixed with values that need to be stripped. Those values are separated
|
|
@@ -463,7 +463,7 @@ export const SORT_OPTIONS: Record<SortField, SortOption> = {
|
|
|
463
463
|
export function sortOptionFromAPIString(sortName?: string | null): SortOption {
|
|
464
464
|
return (
|
|
465
465
|
Object.values(SORT_OPTIONS).find(opt =>
|
|
466
|
-
opt.urlNames.some(name => sortName === name)
|
|
466
|
+
opt.urlNames.some(name => sortName === name)
|
|
467
467
|
) ?? SORT_OPTIONS[SortField.unrecognized]
|
|
468
468
|
);
|
|
469
469
|
}
|
|
@@ -675,3 +675,13 @@ export const suppressedCollections: Record<string, boolean> = {
|
|
|
675
675
|
americana: true,
|
|
676
676
|
toronto: true,
|
|
677
677
|
};
|
|
678
|
+
|
|
679
|
+
/**
|
|
680
|
+
* A record of manageable item
|
|
681
|
+
*/
|
|
682
|
+
export interface ManageableItem {
|
|
683
|
+
identifier: string;
|
|
684
|
+
title?: string;
|
|
685
|
+
dateStr?: string;
|
|
686
|
+
date?: string;
|
|
687
|
+
}
|
|
@@ -87,7 +87,7 @@ export class RestorationStateHandler
|
|
|
87
87
|
|
|
88
88
|
private persistQueryStateToUrl(
|
|
89
89
|
state: RestorationState,
|
|
90
|
-
forceReplace = false
|
|
90
|
+
forceReplace = false
|
|
91
91
|
) {
|
|
92
92
|
const url = new URL(window.location.href);
|
|
93
93
|
const oldParams = new URLSearchParams(url.searchParams);
|
|
@@ -145,9 +145,10 @@ export class RestorationStateHandler
|
|
|
145
145
|
|
|
146
146
|
if (state.selectedFacets) {
|
|
147
147
|
for (const [facetName, facetValues] of Object.entries(
|
|
148
|
-
state.selectedFacets
|
|
148
|
+
state.selectedFacets
|
|
149
149
|
)) {
|
|
150
150
|
const facetEntries = Object.entries(facetValues);
|
|
151
|
+
// eslint-disable-next-line no-continue
|
|
151
152
|
if (facetEntries.length === 0) continue;
|
|
152
153
|
for (const [key, data] of facetEntries) {
|
|
153
154
|
const notValue = data.state === 'hidden';
|
|
@@ -164,7 +165,7 @@ export class RestorationStateHandler
|
|
|
164
165
|
if (state.minSelectedDate && state.maxSelectedDate) {
|
|
165
166
|
newParams.append(
|
|
166
167
|
'and[]',
|
|
167
|
-
`year:[${state.minSelectedDate} TO ${state.maxSelectedDate}]
|
|
168
|
+
`year:[${state.minSelectedDate} TO ${state.maxSelectedDate}]`
|
|
168
169
|
);
|
|
169
170
|
}
|
|
170
171
|
|
|
@@ -220,7 +221,7 @@ export class RestorationStateHandler
|
|
|
220
221
|
facets: state.selectedFacets,
|
|
221
222
|
},
|
|
222
223
|
'',
|
|
223
|
-
url
|
|
224
|
+
url
|
|
224
225
|
);
|
|
225
226
|
}
|
|
226
227
|
|
|
@@ -317,18 +318,18 @@ export class RestorationStateHandler
|
|
|
317
318
|
if (minDate && maxDate) {
|
|
318
319
|
restorationState.minSelectedDate = minDate.substring(
|
|
319
320
|
1,
|
|
320
|
-
minDate.length
|
|
321
|
+
minDate.length
|
|
321
322
|
);
|
|
322
323
|
restorationState.maxSelectedDate = maxDate.substring(
|
|
323
324
|
0,
|
|
324
|
-
maxDate.length - 1
|
|
325
|
+
maxDate.length - 1
|
|
325
326
|
);
|
|
326
327
|
} else {
|
|
327
328
|
this.setSelectedFacetState(
|
|
328
329
|
restorationState.selectedFacets,
|
|
329
330
|
field as FacetOption,
|
|
330
331
|
value,
|
|
331
|
-
'selected'
|
|
332
|
+
'selected'
|
|
332
333
|
);
|
|
333
334
|
}
|
|
334
335
|
break;
|
|
@@ -344,7 +345,7 @@ export class RestorationStateHandler
|
|
|
344
345
|
restorationState.selectedFacets,
|
|
345
346
|
field as FacetOption,
|
|
346
347
|
value,
|
|
347
|
-
'selected'
|
|
348
|
+
'selected'
|
|
348
349
|
);
|
|
349
350
|
}
|
|
350
351
|
});
|
|
@@ -357,7 +358,7 @@ export class RestorationStateHandler
|
|
|
357
358
|
restorationState.selectedFacets,
|
|
358
359
|
field as FacetOption,
|
|
359
360
|
value,
|
|
360
|
-
'hidden'
|
|
361
|
+
'hidden'
|
|
361
362
|
);
|
|
362
363
|
});
|
|
363
364
|
}
|
|
@@ -407,13 +408,13 @@ export class RestorationStateHandler
|
|
|
407
408
|
private paramsMatch(
|
|
408
409
|
searchParams1: URLSearchParams,
|
|
409
410
|
searchParams2: URLSearchParams,
|
|
410
|
-
keys: string[]
|
|
411
|
+
keys: string[]
|
|
411
412
|
): boolean {
|
|
412
413
|
return keys.every(key =>
|
|
413
414
|
arrayEquals(
|
|
414
415
|
searchParams1.getAll(key).sort(),
|
|
415
|
-
searchParams2.getAll(key).sort()
|
|
416
|
-
)
|
|
416
|
+
searchParams2.getAll(key).sort()
|
|
417
|
+
)
|
|
417
418
|
);
|
|
418
419
|
}
|
|
419
420
|
|
|
@@ -422,7 +423,7 @@ export class RestorationStateHandler
|
|
|
422
423
|
* when loading state from the URL.
|
|
423
424
|
*/
|
|
424
425
|
private removeRecognizedParams(
|
|
425
|
-
searchParams: URLSearchParams
|
|
426
|
+
searchParams: URLSearchParams
|
|
426
427
|
): URLSearchParams {
|
|
427
428
|
// Remove all of our standard params
|
|
428
429
|
searchParams.delete('query');
|
|
@@ -463,7 +464,7 @@ export class RestorationStateHandler
|
|
|
463
464
|
selectedFacets: SelectedFacets,
|
|
464
465
|
field: FacetOption,
|
|
465
466
|
value: string,
|
|
466
|
-
state: FacetState
|
|
467
|
+
state: FacetState
|
|
467
468
|
): void {
|
|
468
469
|
const facet = selectedFacets[field];
|
|
469
470
|
if (!facet) return; // Unrecognized facet group, ignore it.
|
|
@@ -33,18 +33,19 @@ export class AlphaBar extends LitElement {
|
|
|
33
33
|
<section id="container" aria-label=${this.ariaLandmarkLabel ?? nothing}>
|
|
34
34
|
<ul>
|
|
35
35
|
${this.alphabet.map(
|
|
36
|
-
letter =>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
36
|
+
letter =>
|
|
37
|
+
html`
|
|
38
|
+
<li
|
|
39
|
+
class=${letter === this.selectedUppercaseLetter
|
|
40
|
+
? 'selected'
|
|
41
|
+
: nothing}
|
|
42
|
+
@mousemove=${this.handleMouseMove}
|
|
43
|
+
@mouseleave=${this.handleMouseLeave}
|
|
44
|
+
>
|
|
45
|
+
${this.letterButtonTemplate(letter)}
|
|
46
|
+
${this.tooltipTemplate(letter)}
|
|
47
|
+
</li>
|
|
48
|
+
`
|
|
48
49
|
)}
|
|
49
50
|
</ul>
|
|
50
51
|
</section>
|
|
@@ -86,7 +87,7 @@ export class AlphaBar extends LitElement {
|
|
|
86
87
|
this.dispatchEvent(
|
|
87
88
|
new CustomEvent('letterChanged', {
|
|
88
89
|
detail: { selectedLetter: this.selectedUppercaseLetter },
|
|
89
|
-
})
|
|
90
|
+
})
|
|
90
91
|
);
|
|
91
92
|
}
|
|
92
93
|
|
|
@@ -126,10 +127,10 @@ export class AlphaBar extends LitElement {
|
|
|
126
127
|
// (but not including any scrollbar).
|
|
127
128
|
const bodyStyle = getComputedStyle(document.body);
|
|
128
129
|
const bodyMarginLeft = parseFloat(
|
|
129
|
-
bodyStyle.getPropertyValue('margin-left')
|
|
130
|
+
bodyStyle.getPropertyValue('margin-left')
|
|
130
131
|
);
|
|
131
132
|
const bodyMarginRight = parseFloat(
|
|
132
|
-
bodyStyle.getPropertyValue('margin-right')
|
|
133
|
+
bodyStyle.getPropertyValue('margin-right')
|
|
133
134
|
);
|
|
134
135
|
const bodyWidthWithMargin =
|
|
135
136
|
document.body.clientWidth + bodyMarginLeft + bodyMarginRight;
|
|
@@ -154,7 +155,7 @@ export class AlphaBar extends LitElement {
|
|
|
154
155
|
left -= overflowAmt;
|
|
155
156
|
this.tooltip.style.setProperty(
|
|
156
157
|
'--tooltipArrowOffset',
|
|
157
|
-
`${overflowAmt}px
|
|
158
|
+
`${overflowAmt}px`
|
|
158
159
|
);
|
|
159
160
|
}
|
|
160
161
|
|
|
@@ -228,7 +228,7 @@ export class SortFilterBar
|
|
|
228
228
|
|
|
229
229
|
if (changed.has('resizeObserver') || changed.has('enableSortOptionsSlot')) {
|
|
230
230
|
const oldObserver = changed.get(
|
|
231
|
-
'resizeObserver'
|
|
231
|
+
'resizeObserver'
|
|
232
232
|
) as SharedResizeObserverInterface;
|
|
233
233
|
if (oldObserver) this.disconnectResizeObserver(oldObserver);
|
|
234
234
|
this.setupResizeObserver();
|
|
@@ -239,12 +239,12 @@ export class SortFilterBar
|
|
|
239
239
|
if (this.dropdownBackdropVisible) {
|
|
240
240
|
document.addEventListener(
|
|
241
241
|
'keydown',
|
|
242
|
-
this.boundSortBarSelectorEscapeListener
|
|
242
|
+
this.boundSortBarSelectorEscapeListener
|
|
243
243
|
);
|
|
244
244
|
} else {
|
|
245
245
|
document.removeEventListener(
|
|
246
246
|
'keydown',
|
|
247
|
-
this.boundSortBarSelectorEscapeListener
|
|
247
|
+
this.boundSortBarSelectorEscapeListener
|
|
248
248
|
);
|
|
249
249
|
}
|
|
250
250
|
}
|
|
@@ -267,7 +267,7 @@ export class SortFilterBar
|
|
|
267
267
|
}
|
|
268
268
|
|
|
269
269
|
private disconnectResizeObserver(
|
|
270
|
-
resizeObserver: SharedResizeObserverInterface
|
|
270
|
+
resizeObserver: SharedResizeObserverInterface
|
|
271
271
|
) {
|
|
272
272
|
if (this.sortSelectorContainer) {
|
|
273
273
|
resizeObserver.removeObserver({
|
|
@@ -430,7 +430,7 @@ export class SortFilterBar
|
|
|
430
430
|
.filter(opt => opt.shownInSortBar)
|
|
431
431
|
.filter(opt => this.showRelevance || opt.field !== SortField.relevance)
|
|
432
432
|
.filter(
|
|
433
|
-
opt => this.showDateFavorited || opt.field !== SortField.datefavorited
|
|
433
|
+
opt => this.showDateFavorited || opt.field !== SortField.datefavorited
|
|
434
434
|
);
|
|
435
435
|
|
|
436
436
|
return html`
|
|
@@ -439,11 +439,12 @@ export class SortFilterBar
|
|
|
439
439
|
class=${this.mobileSelectorVisible ? 'visible' : 'hidden'}
|
|
440
440
|
>
|
|
441
441
|
${this.getSortDropdown({
|
|
442
|
-
displayName: html`${SORT_OPTIONS[this.finalizedSortField]
|
|
442
|
+
displayName: html`${SORT_OPTIONS[this.finalizedSortField]
|
|
443
|
+
.displayName}`,
|
|
443
444
|
id: 'mobile-dropdown',
|
|
444
445
|
selected: true,
|
|
445
446
|
dropdownOptions: displayedOptions.map(opt =>
|
|
446
|
-
this.getDropdownOption(opt.field)
|
|
447
|
+
this.getDropdownOption(opt.field)
|
|
447
448
|
),
|
|
448
449
|
selectedOption: this.finalizedSortField,
|
|
449
450
|
onOptionSelected: this.mobileSortChanged,
|
|
@@ -451,7 +452,7 @@ export class SortFilterBar
|
|
|
451
452
|
this.dropdownBackdropVisible = this.mobileDropdown.open;
|
|
452
453
|
this.mobileDropdown.classList.toggle(
|
|
453
454
|
'open',
|
|
454
|
-
this.mobileDropdown.open
|
|
455
|
+
this.mobileDropdown.open
|
|
455
456
|
);
|
|
456
457
|
},
|
|
457
458
|
})}
|
|
@@ -478,7 +479,7 @@ export class SortFilterBar
|
|
|
478
479
|
displayName?: TemplateResult;
|
|
479
480
|
selected?: boolean;
|
|
480
481
|
onClick?: (e: Event) => void;
|
|
481
|
-
}
|
|
482
|
+
}
|
|
482
483
|
): TemplateResult {
|
|
483
484
|
const isSelected =
|
|
484
485
|
options?.selected ?? this.finalizedSortField === sortField;
|
|
@@ -758,7 +759,7 @@ export class SortFilterBar
|
|
|
758
759
|
/** Toggles the current sort direction between 'asc' and 'desc' */
|
|
759
760
|
private toggleSortDirection() {
|
|
760
761
|
this.setSortDirection(
|
|
761
|
-
this.finalizedSortDirection === 'desc' ? 'asc' : 'desc'
|
|
762
|
+
this.finalizedSortDirection === 'desc' ? 'asc' : 'desc'
|
|
762
763
|
);
|
|
763
764
|
}
|
|
764
765
|
|
|
@@ -895,14 +896,14 @@ export class SortFilterBar
|
|
|
895
896
|
}
|
|
896
897
|
|
|
897
898
|
private titleLetterChanged(
|
|
898
|
-
e: CustomEvent<{ selectedLetter: string | undefined }
|
|
899
|
+
e: CustomEvent<{ selectedLetter: string | undefined }>
|
|
899
900
|
) {
|
|
900
901
|
this.selectedTitleFilter = e.detail.selectedLetter ?? null;
|
|
901
902
|
this.emitTitleLetterChangedEvent();
|
|
902
903
|
}
|
|
903
904
|
|
|
904
905
|
private creatorLetterChanged(
|
|
905
|
-
e: CustomEvent<{ selectedLetter: string | undefined }
|
|
906
|
+
e: CustomEvent<{ selectedLetter: string | undefined }>
|
|
906
907
|
) {
|
|
907
908
|
this.selectedCreatorFilter = e.detail.selectedLetter ?? null;
|
|
908
909
|
this.emitCreatorLetterChangedEvent();
|
|
@@ -913,7 +914,7 @@ export class SortFilterBar
|
|
|
913
914
|
'titleLetterChanged',
|
|
914
915
|
{
|
|
915
916
|
detail: { selectedLetter: this.selectedTitleFilter },
|
|
916
|
-
}
|
|
917
|
+
}
|
|
917
918
|
);
|
|
918
919
|
this.dispatchEvent(event);
|
|
919
920
|
}
|
|
@@ -923,7 +924,7 @@ export class SortFilterBar
|
|
|
923
924
|
'creatorLetterChanged',
|
|
924
925
|
{
|
|
925
926
|
detail: { selectedLetter: this.selectedCreatorFilter },
|
|
926
|
-
}
|
|
927
|
+
}
|
|
927
928
|
);
|
|
928
929
|
this.dispatchEvent(event);
|
|
929
930
|
}
|
|
@@ -87,7 +87,7 @@ export class AccountTile extends BaseTileComponent {
|
|
|
87
87
|
e.preventDefault();
|
|
88
88
|
const event = new CustomEvent<{ x: number; y: number }>(
|
|
89
89
|
'infoButtonPressed',
|
|
90
|
-
{ detail: { x: e.clientX, y: e.clientY } }
|
|
90
|
+
{ detail: { x: e.clientX, y: e.clientY } }
|
|
91
91
|
);
|
|
92
92
|
this.dispatchEvent(event);
|
|
93
93
|
}
|