@internetarchive/collection-browser 0.4.11 → 0.4.13-alpha.1
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/.editorconfig +29 -29
- package/.github/workflows/ci.yml +26 -26
- package/.github/workflows/gh-pages-main.yml +39 -39
- package/.github/workflows/npm-publish.yml +39 -39
- package/.github/workflows/pr-preview.yml +38 -38
- package/.husky/pre-commit +4 -4
- package/LICENSE +661 -661
- package/README.md +83 -83
- package/dist/index.d.ts +9 -9
- package/dist/index.js +9 -9
- package/dist/src/app-root.d.ts +50 -50
- package/dist/src/app-root.js +278 -278
- package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
- package/dist/src/assets/img/icons/arrow-left.js +2 -2
- package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
- package/dist/src/assets/img/icons/arrow-right.js +2 -2
- package/dist/src/assets/img/icons/chevron.d.ts +2 -2
- package/dist/src/assets/img/icons/chevron.js +2 -2
- package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
- package/dist/src/assets/img/icons/empty-query.js +2 -2
- package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
- package/dist/src/assets/img/icons/eye-closed.js +2 -2
- package/dist/src/assets/img/icons/eye.d.ts +2 -2
- package/dist/src/assets/img/icons/eye.js +2 -2
- package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
- package/dist/src/assets/img/icons/favorite-filled.js +2 -2
- package/dist/src/assets/img/icons/login-required.d.ts +1 -1
- package/dist/src/assets/img/icons/login-required.js +2 -2
- package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/account.js +2 -2
- package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
- package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
- package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/data.js +2 -2
- package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
- package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/film.js +2 -2
- package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/images.js +2 -2
- package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
- package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/software.js +2 -2
- package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
- package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
- package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/video.js +2 -2
- package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/web.js +2 -2
- package/dist/src/assets/img/icons/null-result.d.ts +2 -2
- package/dist/src/assets/img/icons/null-result.js +2 -2
- package/dist/src/assets/img/icons/restricted.d.ts +1 -1
- package/dist/src/assets/img/icons/restricted.js +2 -2
- package/dist/src/assets/img/icons/reviews.d.ts +1 -1
- package/dist/src/assets/img/icons/reviews.js +2 -2
- package/dist/src/assets/img/icons/upload.d.ts +1 -1
- package/dist/src/assets/img/icons/upload.js +2 -2
- package/dist/src/assets/img/icons/views.d.ts +1 -1
- package/dist/src/assets/img/icons/views.js +2 -2
- package/dist/src/circular-activity-indicator.d.ts +5 -5
- package/dist/src/circular-activity-indicator.js +17 -17
- package/dist/src/collection-browser.d.ts +280 -279
- package/dist/src/collection-browser.js +1178 -1156
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
- package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
- package/dist/src/collection-facets/facets-template.d.ts +16 -16
- package/dist/src/collection-facets/facets-template.js +125 -125
- package/dist/src/collection-facets/more-facets-content.d.ts +76 -75
- package/dist/src/collection-facets/more-facets-content.js +354 -377
- package/dist/src/collection-facets/more-facets-content.js.map +1 -1
- package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
- package/dist/src/collection-facets/more-facets-pagination.js +197 -195
- package/dist/src/collection-facets/more-facets-pagination.js.map +1 -1
- package/dist/src/collection-facets/toggle-switch.d.ts +41 -0
- package/dist/src/collection-facets/toggle-switch.js +184 -0
- package/dist/src/collection-facets/toggle-switch.js.map +1 -0
- package/dist/src/collection-facets.d.ts +81 -81
- package/dist/src/collection-facets.js +376 -385
- package/dist/src/collection-facets.js.map +1 -1
- package/dist/src/empty-placeholder.d.ts +13 -11
- package/dist/src/empty-placeholder.js +80 -44
- package/dist/src/empty-placeholder.js.map +1 -1
- package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
- package/dist/src/language-code-handler/language-code-handler.js +26 -26
- package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
- package/dist/src/language-code-handler/language-code-mapping.js +562 -562
- package/dist/src/mediatype/mediatype-config.d.ts +3 -3
- package/dist/src/mediatype/mediatype-config.js +85 -85
- package/dist/src/models.d.ts +119 -115
- package/dist/src/models.js +136 -125
- package/dist/src/models.js.map +1 -1
- package/dist/src/restoration-state-handler.d.ts +45 -45
- package/dist/src/restoration-state-handler.js +230 -230
- package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
- package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +25 -26
- package/dist/src/sort-filter-bar/alpha-bar-tooltip.js.map +1 -1
- package/dist/src/sort-filter-bar/alpha-bar.d.ts +20 -20
- package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
- package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/compact.js +2 -2
- package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/list.js +3 -3
- package/dist/src/sort-filter-bar/img/list.js.map +1 -1
- package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -0
- package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +15 -0
- package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js.map +1 -0
- package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -0
- package/dist/src/sort-filter-bar/img/sort-toggle-down.js +17 -0
- package/dist/src/sort-filter-bar/img/sort-toggle-down.js.map +1 -0
- package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -0
- package/dist/src/sort-filter-bar/img/sort-toggle-up.js +17 -0
- package/dist/src/sort-filter-bar/img/sort-toggle-up.js.map +1 -0
- package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
- package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/tile.js +2 -2
- package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +189 -108
- package/dist/src/sort-filter-bar/sort-filter-bar.js +708 -614
- package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
- package/dist/src/styles/item-image-styles.d.ts +8 -8
- package/dist/src/styles/item-image-styles.js +9 -9
- package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
- package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
- package/dist/src/tiles/grid/account-tile.d.ts +20 -20
- package/dist/src/tiles/grid/account-tile.js +64 -64
- package/dist/src/tiles/grid/collection-tile.d.ts +17 -17
- package/dist/src/tiles/grid/collection-tile.js +71 -71
- package/dist/src/tiles/grid/item-tile.d.ts +32 -32
- package/dist/src/tiles/grid/item-tile.js +130 -126
- package/dist/src/tiles/grid/item-tile.js.map +1 -1
- package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
- package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +7 -7
- package/dist/src/tiles/grid/tile-stats.d.ts +11 -10
- package/dist/src/tiles/grid/tile-stats.js +44 -40
- package/dist/src/tiles/grid/tile-stats.js.map +1 -1
- package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
- package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
- package/dist/src/tiles/hover/tile-hover-pane.d.ts +15 -15
- package/dist/src/tiles/hover/tile-hover-pane.js +38 -38
- package/dist/src/tiles/image-block.d.ts +17 -17
- package/dist/src/tiles/image-block.js +72 -72
- package/dist/src/tiles/item-image.d.ts +35 -35
- package/dist/src/tiles/item-image.js +117 -117
- package/dist/src/tiles/list/account-label.d.ts +1 -1
- package/dist/src/tiles/list/account-label.js +6 -6
- package/dist/src/tiles/list/date-label.d.ts +1 -1
- package/dist/src/tiles/list/date-label.js +12 -12
- package/dist/src/tiles/list/tile-list-compact-header.d.ts +12 -12
- package/dist/src/tiles/list/tile-list-compact-header.js +41 -41
- package/dist/src/tiles/list/tile-list-compact.d.ts +22 -21
- package/dist/src/tiles/list/tile-list-compact.js +114 -101
- package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
- package/dist/src/tiles/list/tile-list.d.ts +55 -55
- package/dist/src/tiles/list/tile-list.js +304 -301
- package/dist/src/tiles/list/tile-list.js.map +1 -1
- package/dist/src/tiles/mediatype-icon.d.ts +9 -9
- package/dist/src/tiles/mediatype-icon.js +47 -47
- package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
- package/dist/src/tiles/overlay/icon-overlay.js +40 -40
- package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
- package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
- package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
- package/dist/src/tiles/overlay/text-overlay.js +42 -42
- package/dist/src/tiles/text-snippet-block.d.ts +27 -27
- package/dist/src/tiles/text-snippet-block.js +73 -73
- package/dist/src/tiles/tile-dispatcher.d.ts +58 -58
- package/dist/src/tiles/tile-dispatcher.js +194 -194
- package/dist/src/utils/analytics-events.d.ts +22 -22
- package/dist/src/utils/analytics-events.js +24 -24
- package/dist/src/utils/format-count.d.ts +7 -7
- package/dist/src/utils/format-count.js +76 -76
- package/dist/src/utils/format-date.d.ts +2 -2
- package/dist/src/utils/format-date.js +23 -23
- package/dist/src/utils/format-unit-size.d.ts +2 -2
- package/dist/src/utils/format-unit-size.js +33 -33
- package/dist/test/collection-browser.test.d.ts +1 -1
- package/dist/test/collection-browser.test.js +584 -584
- package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
- package/dist/test/collection-facets/facets-template.test.js +62 -62
- package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
- package/dist/test/collection-facets/more-facets-content.test.js +114 -114
- package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
- package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
- package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -0
- package/dist/test/collection-facets/toggle-switch.test.js +87 -0
- package/dist/test/collection-facets/toggle-switch.test.js.map +1 -0
- package/dist/test/collection-facets.test.d.ts +2 -2
- package/dist/test/collection-facets.test.js +460 -460
- package/dist/test/empty-placeholder.test.d.ts +1 -1
- package/dist/test/empty-placeholder.test.js +33 -33
- package/dist/test/icon-overlay.test.d.ts +1 -1
- package/dist/test/icon-overlay.test.js +24 -24
- package/dist/test/image-block.test.d.ts +1 -1
- package/dist/test/image-block.test.js +48 -48
- package/dist/test/item-image.test.d.ts +1 -1
- package/dist/test/item-image.test.js +84 -84
- package/dist/test/mediatype-config.test.d.ts +1 -1
- package/dist/test/mediatype-config.test.js +16 -16
- package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
- package/dist/test/mocks/mock-analytics-handler.js +15 -15
- package/dist/test/mocks/mock-collection-name-cache.d.ts +7 -7
- package/dist/test/mocks/mock-collection-name-cache.js +13 -13
- package/dist/test/mocks/mock-search-responses.d.ts +12 -12
- package/dist/test/mocks/mock-search-responses.js +341 -341
- package/dist/test/mocks/mock-search-service.d.ts +13 -13
- package/dist/test/mocks/mock-search-service.js +40 -40
- package/dist/test/restoration-state-handler.test.d.ts +1 -1
- package/dist/test/restoration-state-handler.test.js +125 -125
- package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
- package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
- package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
- package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
- package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js +372 -199
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -1
- package/dist/test/text-overlay.test.d.ts +1 -1
- package/dist/test/text-overlay.test.js +48 -48
- package/dist/test/text-snippet-block.test.d.ts +1 -1
- package/dist/test/text-snippet-block.test.js +57 -57
- package/dist/test/tile-stats.test.d.ts +1 -1
- package/dist/test/tile-stats.test.js +33 -33
- package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/account-tile.test.js +76 -76
- package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/collection-tile.test.js +73 -73
- package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/item-tile.test.js +158 -158
- package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
- package/dist/test/tiles/hover/hover-pane-controller.test.js +257 -257
- package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
- package/dist/test/tiles/hover/tile-hover-pane.test.js +13 -13
- package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
- package/dist/test/tiles/list/tile-list-compact.test.js +104 -92
- package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -1
- package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
- package/dist/test/tiles/list/tile-list.test.js +175 -163
- package/dist/test/tiles/list/tile-list.test.js.map +1 -1
- package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
- package/dist/test/tiles/tile-dispatcher.test.js +67 -67
- package/dist/test/utils/format-count.test.d.ts +1 -1
- package/dist/test/utils/format-count.test.js +23 -23
- package/dist/test/utils/format-date.test.d.ts +1 -1
- package/dist/test/utils/format-date.test.js +17 -17
- package/dist/test/utils/format-unit-size.test.d.ts +1 -1
- package/dist/test/utils/format-unit-size.test.js +17 -17
- package/local.archive.org.cert +86 -86
- package/local.archive.org.key +27 -27
- package/package.json +4 -3
- package/renovate.json +6 -6
- package/src/collection-browser.ts +28 -1
- package/src/collection-facets/more-facets-content.ts +25 -48
- package/src/collection-facets/more-facets-pagination.ts +5 -3
- package/src/collection-facets/toggle-switch.ts +184 -0
- package/src/collection-facets.ts +1 -10
- package/src/empty-placeholder.ts +53 -7
- package/src/models.ts +23 -8
- package/src/sort-filter-bar/alpha-bar-tooltip.ts +1 -2
- package/src/sort-filter-bar/img/list.ts +1 -1
- package/src/sort-filter-bar/img/sort-toggle-disabled.ts +15 -0
- package/src/sort-filter-bar/img/sort-toggle-down.ts +17 -0
- package/src/sort-filter-bar/img/sort-toggle-up.ts +17 -0
- package/src/sort-filter-bar/sort-filter-bar.ts +433 -303
- package/src/tiles/grid/item-tile.ts +6 -1
- package/src/tiles/grid/tile-stats.ts +3 -1
- package/src/tiles/list/tile-list-compact.ts +15 -2
- package/src/tiles/list/tile-list.ts +3 -0
- package/test/collection-facets/toggle-switch.test.ts +154 -0
- package/test/sort-filter-bar/sort-filter-bar.test.ts +377 -101
- package/test/tiles/list/tile-list-compact.test.ts +14 -0
- package/test/tiles/list/tile-list.test.ts +14 -0
- package/tsconfig.json +21 -21
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
|
@@ -37,6 +37,7 @@ import {
|
|
|
37
37
|
analyticsActions,
|
|
38
38
|
analyticsCategories,
|
|
39
39
|
} from '../utils/analytics-events';
|
|
40
|
+
import './toggle-switch';
|
|
40
41
|
|
|
41
42
|
@customElement('more-facets-content')
|
|
42
43
|
export class MoreFacetsContent extends LitElement {
|
|
@@ -59,7 +60,8 @@ export class MoreFacetsContent extends LitElement {
|
|
|
59
60
|
|
|
60
61
|
@property({ type: Object }) selectedFacets?: SelectedFacets;
|
|
61
62
|
|
|
62
|
-
@property({ type: String }) sortedBy:
|
|
63
|
+
@property({ type: String }) sortedBy: AggregationSortType =
|
|
64
|
+
AggregationSortType.COUNT;
|
|
63
65
|
|
|
64
66
|
@property({ type: Object, attribute: false })
|
|
65
67
|
analyticsHandler?: AnalyticsManagerInterface;
|
|
@@ -253,9 +255,7 @@ export class MoreFacetsContent extends LitElement {
|
|
|
253
255
|
|
|
254
256
|
// sort facets in specific order
|
|
255
257
|
let castedBuckets = aggregation.getSortedBuckets(
|
|
256
|
-
this.sortedBy
|
|
257
|
-
? AggregationSortType.ALPHABETICAL
|
|
258
|
-
: AggregationSortType.COUNT
|
|
258
|
+
this.sortedBy
|
|
259
259
|
) as Bucket[];
|
|
260
260
|
|
|
261
261
|
if (option === 'collection') {
|
|
@@ -369,28 +369,28 @@ export class MoreFacetsContent extends LitElement {
|
|
|
369
369
|
return nothing;
|
|
370
370
|
}
|
|
371
371
|
|
|
372
|
-
private sortFacetAggregation() {
|
|
373
|
-
this.sortedBy =
|
|
372
|
+
private sortFacetAggregation(facetSortType: AggregationSortType) {
|
|
373
|
+
this.sortedBy = facetSortType;
|
|
374
374
|
this.dispatchEvent(
|
|
375
375
|
new CustomEvent('sortedFacets', { detail: this.sortedBy })
|
|
376
376
|
);
|
|
377
377
|
}
|
|
378
378
|
|
|
379
379
|
private get getModalHeaderTemplate(): TemplateResult {
|
|
380
|
-
const title = this.sortedBy === 'alpha' ? 'Sort by count' : 'Sort by value';
|
|
381
|
-
|
|
382
380
|
return html`<span class="sr-only">More facets for:</span>
|
|
383
381
|
<span class="title">
|
|
384
382
|
${this.facetGroupTitle}
|
|
385
|
-
<
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
383
|
+
<label class="sort-label">Sort by:</label>
|
|
384
|
+
<toggle-switch
|
|
385
|
+
class="sort-toggle"
|
|
386
|
+
leftValue=${AggregationSortType.COUNT}
|
|
387
|
+
leftLabel="Count"
|
|
388
|
+
rightValue=${AggregationSortType.ALPHABETICAL}
|
|
389
|
+
rightLabel=${this.facetGroupTitle}
|
|
390
|
+
@change=${(e: CustomEvent<string>) => {
|
|
391
|
+
this.sortFacetAggregation(Number(e.detail) as AggregationSortType);
|
|
390
392
|
}}
|
|
391
|
-
>
|
|
392
|
-
${title}
|
|
393
|
-
</button>
|
|
393
|
+
></toggle-switch>
|
|
394
394
|
</span>`;
|
|
395
395
|
}
|
|
396
396
|
|
|
@@ -447,7 +447,7 @@ export class MoreFacetsContent extends LitElement {
|
|
|
447
447
|
}
|
|
448
448
|
section#more-facets {
|
|
449
449
|
overflow: auto;
|
|
450
|
-
padding: 10px;
|
|
450
|
+
padding: 10px; /* leaves room for scroll bar to appear without overlaying on content */
|
|
451
451
|
}
|
|
452
452
|
.header-content .title {
|
|
453
453
|
display: block;
|
|
@@ -456,40 +456,22 @@ export class MoreFacetsContent extends LitElement {
|
|
|
456
456
|
padding: 0 10px;
|
|
457
457
|
font-weight: bold;
|
|
458
458
|
}
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
border: none;
|
|
463
|
-
background: transparent;
|
|
464
|
-
color: var(--ia-theme-link-color, #4b64ff);
|
|
459
|
+
|
|
460
|
+
.sort-label {
|
|
461
|
+
margin-left: 20px;
|
|
465
462
|
font-size: 1.3rem;
|
|
466
|
-
font-weight: normal;
|
|
467
|
-
cursor: pointer;
|
|
468
463
|
}
|
|
469
|
-
|
|
470
|
-
|
|
464
|
+
|
|
465
|
+
.sort-toggle {
|
|
466
|
+
font-weight: normal;
|
|
471
467
|
}
|
|
468
|
+
|
|
472
469
|
.facets-content {
|
|
473
470
|
font-size: 1.2rem;
|
|
474
471
|
max-height: 300px;
|
|
475
472
|
overflow: auto;
|
|
476
473
|
padding: 10px;
|
|
477
474
|
}
|
|
478
|
-
.page-number {
|
|
479
|
-
background: none;
|
|
480
|
-
border: 0;
|
|
481
|
-
cursor: pointer;
|
|
482
|
-
border-radius: 100%;
|
|
483
|
-
width: 25px;
|
|
484
|
-
height: 25px;
|
|
485
|
-
margin: 10px;
|
|
486
|
-
font-size: 1.4rem;
|
|
487
|
-
vertical-align: middle;
|
|
488
|
-
}
|
|
489
|
-
.current-page {
|
|
490
|
-
background: black;
|
|
491
|
-
color: white;
|
|
492
|
-
}
|
|
493
475
|
.facets-loader {
|
|
494
476
|
margin-bottom: 20px;
|
|
495
477
|
width: 70px;
|
|
@@ -506,7 +488,7 @@ export class MoreFacetsContent extends LitElement {
|
|
|
506
488
|
cursor: pointer;
|
|
507
489
|
}
|
|
508
490
|
.btn-cancel {
|
|
509
|
-
background-color: #
|
|
491
|
+
background-color: #2c2c2c;
|
|
510
492
|
color: white;
|
|
511
493
|
}
|
|
512
494
|
.btn-submit {
|
|
@@ -528,11 +510,6 @@ export class MoreFacetsContent extends LitElement {
|
|
|
528
510
|
clip: rect(0, 0, 0, 0);
|
|
529
511
|
border: 0;
|
|
530
512
|
}
|
|
531
|
-
.sorting-icon {
|
|
532
|
-
height: 15px;
|
|
533
|
-
vertical-align: baseline;
|
|
534
|
-
cursor: pointer;
|
|
535
|
-
}
|
|
536
513
|
`;
|
|
537
514
|
}
|
|
538
515
|
}
|
|
@@ -257,17 +257,19 @@ export class MoreFacetsPagination extends LitElement {
|
|
|
257
257
|
}
|
|
258
258
|
.facets-pagination .arrow-icon svg {
|
|
259
259
|
height: 14px;
|
|
260
|
+
fill: #2c2c2c;
|
|
260
261
|
}
|
|
261
262
|
.facets-pagination button,
|
|
262
263
|
.facets-pagination i {
|
|
263
264
|
background: none;
|
|
264
265
|
border: 0;
|
|
265
266
|
cursor: pointer;
|
|
266
|
-
border-radius:
|
|
267
|
+
border-radius: 4px;
|
|
267
268
|
margin: 10px 5px;
|
|
268
269
|
padding: 5px;
|
|
269
270
|
font-size: 1.4rem;
|
|
270
|
-
|
|
271
|
+
color: inherit;
|
|
272
|
+
vertical-align: baseline;
|
|
271
273
|
display: inline-block;
|
|
272
274
|
min-width: 2.5rem;
|
|
273
275
|
}
|
|
@@ -276,7 +278,7 @@ export class MoreFacetsPagination extends LitElement {
|
|
|
276
278
|
display: inline;
|
|
277
279
|
}
|
|
278
280
|
.facets-pagination button.current {
|
|
279
|
-
background:
|
|
281
|
+
background: #2c2c2c;
|
|
280
282
|
color: white;
|
|
281
283
|
}
|
|
282
284
|
.page-numbers {
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { css, html, LitElement, CSSResultGroup } from 'lit';
|
|
2
|
+
import { customElement, property, query } from 'lit/decorators.js';
|
|
3
|
+
|
|
4
|
+
export type Side = 'left' | 'right';
|
|
5
|
+
|
|
6
|
+
@customElement('toggle-switch')
|
|
7
|
+
export class ToggleSwitch extends LitElement {
|
|
8
|
+
/**
|
|
9
|
+
* The value this switch should have when toggled to the left.
|
|
10
|
+
*/
|
|
11
|
+
@property({ type: String, attribute: true }) leftValue: string = '';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The human-readable label to display on the left side of this switch.
|
|
15
|
+
* If none is provided, `leftValue` is used.
|
|
16
|
+
*/
|
|
17
|
+
@property({ type: String, attribute: true }) leftLabel?: string;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The value this switch should have when toggled to the right.
|
|
21
|
+
*/
|
|
22
|
+
@property({ type: String, attribute: true }) rightValue: string = '';
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* The human-readable label to display on the right side of this switch.
|
|
26
|
+
* If none is provided, `rightValue` is used.
|
|
27
|
+
*/
|
|
28
|
+
@property({ type: String, attribute: true }) rightLabel?: string;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Which side of the switch is selected (`'left'` or `'right'`).
|
|
32
|
+
*/
|
|
33
|
+
@property({ type: String, attribute: true }) side: Side = 'left';
|
|
34
|
+
|
|
35
|
+
@query('#switch-left')
|
|
36
|
+
private leftRadio!: HTMLInputElement;
|
|
37
|
+
|
|
38
|
+
render() {
|
|
39
|
+
return html`
|
|
40
|
+
<div id="container">
|
|
41
|
+
<label for="switch-left">${this.leftLabel ?? this.leftValue}</label>
|
|
42
|
+
<input
|
|
43
|
+
type="radio"
|
|
44
|
+
id="switch-left"
|
|
45
|
+
class="sr-only"
|
|
46
|
+
name="switch"
|
|
47
|
+
.value=${this.leftValue}
|
|
48
|
+
.checked=${this.side === 'left'}
|
|
49
|
+
@change=${this.handleRadioChange}
|
|
50
|
+
/>
|
|
51
|
+
<input
|
|
52
|
+
type="radio"
|
|
53
|
+
id="switch-right"
|
|
54
|
+
class="sr-only"
|
|
55
|
+
name="switch"
|
|
56
|
+
.value=${this.rightValue}
|
|
57
|
+
.checked=${this.side === 'right'}
|
|
58
|
+
@change=${this.handleRadioChange}
|
|
59
|
+
/>
|
|
60
|
+
<button
|
|
61
|
+
id="switch-button"
|
|
62
|
+
class=${this.side}
|
|
63
|
+
aria-hidden="true"
|
|
64
|
+
@click=${this.handleClick}
|
|
65
|
+
>
|
|
66
|
+
<div id="knob"></div>
|
|
67
|
+
</button>
|
|
68
|
+
<label for="switch-right">${this.rightLabel ?? this.rightValue}</label>
|
|
69
|
+
</div>
|
|
70
|
+
`;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* The currently selected value of this switch.
|
|
75
|
+
*/
|
|
76
|
+
get value(): string {
|
|
77
|
+
return this.side === 'left' ? this.leftValue : this.rightValue;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* The label for the currently selected value of this switch.
|
|
82
|
+
* Falls back to the current value if its label is not defined.
|
|
83
|
+
*/
|
|
84
|
+
get selectedLabel(): string {
|
|
85
|
+
return this.side === 'left'
|
|
86
|
+
? this.leftLabel ?? this.leftValue
|
|
87
|
+
: this.rightLabel ?? this.rightValue;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
private handleClick(): void {
|
|
91
|
+
this.side = this.side === 'left' ? 'right' : 'left';
|
|
92
|
+
this.emitChangeEvent();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
private handleRadioChange(): void {
|
|
96
|
+
this.side = this.leftRadio.checked ? 'left' : 'right';
|
|
97
|
+
this.emitChangeEvent();
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
private emitChangeEvent(): void {
|
|
101
|
+
const event = new CustomEvent<string>('change', {
|
|
102
|
+
detail: this.value,
|
|
103
|
+
});
|
|
104
|
+
this.dispatchEvent(event);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
static get styles(): CSSResultGroup {
|
|
108
|
+
const switchWidth = css`var(--switchWidth, 30px)`;
|
|
109
|
+
const switchHeight = css`var(--switchHeight, 14px)`;
|
|
110
|
+
const switchMarginLeft = css`var(--switchMarginLeft, 5px)`;
|
|
111
|
+
const switchMarginRight = css`var(--switchMarginRight, 5px)`;
|
|
112
|
+
const switchBorderWidth = css`var(--switchBorderWidth, 3px)`;
|
|
113
|
+
const switchBgColor = css`var(--switchBgColor, #194880)`;
|
|
114
|
+
const switchBorderColor = css`var(--switchBorderColor, #194880)`;
|
|
115
|
+
const labelFontSize = css`var(--labelFontSize, 1.3rem)`;
|
|
116
|
+
const knobColor = css`var(--knobColor, white)`;
|
|
117
|
+
const knobTransitionDuration = css`var(--knobTransitionDuration, 0.25s)`;
|
|
118
|
+
const knobTransitionFn = css`var(--knobTransitionFn, ease)`;
|
|
119
|
+
|
|
120
|
+
return css`
|
|
121
|
+
#container {
|
|
122
|
+
display: inline-flex;
|
|
123
|
+
align-items: center;
|
|
124
|
+
flex-wrap: nowrap;
|
|
125
|
+
font-size: ${labelFontSize};
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
#switch-button {
|
|
129
|
+
width: ${switchWidth};
|
|
130
|
+
height: ${switchHeight};
|
|
131
|
+
margin: 0 ${switchMarginRight} 0 ${switchMarginLeft};
|
|
132
|
+
padding: 0;
|
|
133
|
+
border: ${switchBorderWidth} solid ${switchBorderColor};
|
|
134
|
+
border-radius: ${switchHeight};
|
|
135
|
+
box-sizing: content-box;
|
|
136
|
+
background: ${switchBgColor};
|
|
137
|
+
appearance: none;
|
|
138
|
+
cursor: pointer;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
#switch-button.left #knob {
|
|
142
|
+
transform: translateX(0);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
#switch-button.right #knob {
|
|
146
|
+
transform: translateX(calc(${switchWidth} - ${switchHeight}));
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
#switch-button:focus-visible {
|
|
150
|
+
outline: 2px solid black;
|
|
151
|
+
outline-offset: 2px;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
#knob {
|
|
155
|
+
display: block;
|
|
156
|
+
width: ${switchHeight};
|
|
157
|
+
height: ${switchHeight};
|
|
158
|
+
border-radius: 50%;
|
|
159
|
+
background: ${knobColor};
|
|
160
|
+
transition: transform ${knobTransitionDuration} ${knobTransitionFn};
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.sr-only {
|
|
164
|
+
position: absolute !important;
|
|
165
|
+
width: 1px !important;
|
|
166
|
+
height: 1px !important;
|
|
167
|
+
margin: -1px !important;
|
|
168
|
+
padding: 0 !important;
|
|
169
|
+
border: 0 !important;
|
|
170
|
+
overflow: hidden !important;
|
|
171
|
+
white-space: nowrap !important;
|
|
172
|
+
clip: rect(1px, 1px, 1px, 1px) !important;
|
|
173
|
+
-webkit-clip-path: inset(50%) !important;
|
|
174
|
+
clip-path: inset(50%) !important;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
@media (prefers-reduced-motion: reduce) {
|
|
178
|
+
#knob {
|
|
179
|
+
transition-duration: 0.001s !important; /* Imperceptibly fast */
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
`;
|
|
183
|
+
}
|
|
184
|
+
}
|
package/src/collection-facets.ts
CHANGED
|
@@ -126,16 +126,7 @@ export class CollectionFacets extends LitElement {
|
|
|
126
126
|
(this.fullYearsHistogramAggregation || this.fullYearAggregationLoading)
|
|
127
127
|
? html`
|
|
128
128
|
<div class="facet-group">
|
|
129
|
-
<h1>
|
|
130
|
-
Year Published
|
|
131
|
-
<feature-feedback
|
|
132
|
-
featureIdentifier="HistogramDatePicker"
|
|
133
|
-
prompt="What do you think of the Histogram Date Picker?"
|
|
134
|
-
.featureFeedbackService=${this.featureFeedbackService}
|
|
135
|
-
.resizeObserver=${this.resizeObserver}
|
|
136
|
-
.recaptchaManager=${this.recaptchaManager}
|
|
137
|
-
></feature-feedback>
|
|
138
|
-
</h1>
|
|
129
|
+
<h1>Year Published</h1>
|
|
139
130
|
${this.histogramTemplate}
|
|
140
131
|
</div>
|
|
141
132
|
`
|
package/src/empty-placeholder.ts
CHANGED
|
@@ -1,22 +1,35 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
css,
|
|
3
|
+
html,
|
|
4
|
+
LitElement,
|
|
5
|
+
CSSResultGroup,
|
|
6
|
+
nothing,
|
|
7
|
+
TemplateResult,
|
|
8
|
+
} from 'lit';
|
|
2
9
|
import { customElement, property } from 'lit/decorators.js';
|
|
3
10
|
import { choose } from 'lit/directives/choose.js';
|
|
4
11
|
|
|
5
12
|
import emptyQueryIcon from './assets/img/icons/empty-query';
|
|
6
13
|
import nullResultIcon from './assets/img/icons/null-result';
|
|
7
14
|
|
|
8
|
-
export type PlaceholderType =
|
|
15
|
+
export type PlaceholderType =
|
|
16
|
+
| 'empty-query'
|
|
17
|
+
| 'null-result'
|
|
18
|
+
| 'query-error'
|
|
19
|
+
| null;
|
|
9
20
|
@customElement('empty-placeholder')
|
|
10
21
|
export class EmptyPlaceholder extends LitElement {
|
|
11
22
|
@property({ type: String }) placeholderType: PlaceholderType = null;
|
|
12
23
|
|
|
13
24
|
@property({ type: Boolean }) isMobileView?: false;
|
|
14
25
|
|
|
26
|
+
@property({ type: String }) detailMessage?: string = '';
|
|
27
|
+
|
|
15
28
|
render() {
|
|
16
29
|
return this.placeholderType ? html`${this.placeholderTemplate}` : nothing;
|
|
17
30
|
}
|
|
18
31
|
|
|
19
|
-
private get placeholderTemplate() {
|
|
32
|
+
private get placeholderTemplate(): TemplateResult {
|
|
20
33
|
return html`
|
|
21
34
|
<div
|
|
22
35
|
class="placeholder ${this.placeholderType} ${this.isMobileView
|
|
@@ -26,12 +39,13 @@ export class EmptyPlaceholder extends LitElement {
|
|
|
26
39
|
${choose(this.placeholderType, [
|
|
27
40
|
['empty-query', () => this.emptyQueryTemplate],
|
|
28
41
|
['null-result', () => this.nullResultTemplate],
|
|
42
|
+
['query-error', () => this.queryErrorTemplate],
|
|
29
43
|
])}
|
|
30
44
|
</div>
|
|
31
45
|
`;
|
|
32
46
|
}
|
|
33
47
|
|
|
34
|
-
private get emptyQueryTemplate() {
|
|
48
|
+
private get emptyQueryTemplate(): TemplateResult {
|
|
35
49
|
return html`
|
|
36
50
|
<h2 class="title">
|
|
37
51
|
To begin searching, enter a search term in the box above and hit "Go".
|
|
@@ -40,7 +54,7 @@ export class EmptyPlaceholder extends LitElement {
|
|
|
40
54
|
`;
|
|
41
55
|
}
|
|
42
56
|
|
|
43
|
-
private get nullResultTemplate() {
|
|
57
|
+
private get nullResultTemplate(): TemplateResult {
|
|
44
58
|
return html`
|
|
45
59
|
<h2 class="title">
|
|
46
60
|
Your search did not match any items in the Archive. Try different
|
|
@@ -50,6 +64,22 @@ export class EmptyPlaceholder extends LitElement {
|
|
|
50
64
|
`;
|
|
51
65
|
}
|
|
52
66
|
|
|
67
|
+
private get queryErrorTemplate(): TemplateResult {
|
|
68
|
+
return html`
|
|
69
|
+
<h2 class="title">
|
|
70
|
+
The search engine encountered an error, which might be related to your
|
|
71
|
+
search query.
|
|
72
|
+
<a
|
|
73
|
+
href="https://help.archive.org/help/search-building-powerful-complex-queries/"
|
|
74
|
+
>
|
|
75
|
+
Tips for constructing search queries.
|
|
76
|
+
</a>
|
|
77
|
+
</h2>
|
|
78
|
+
<div>${nullResultIcon}</div>
|
|
79
|
+
<p class="error-details">Error details: ${this.detailMessage}</p>
|
|
80
|
+
`;
|
|
81
|
+
}
|
|
82
|
+
|
|
53
83
|
static get styles(): CSSResultGroup {
|
|
54
84
|
return css`
|
|
55
85
|
:host {
|
|
@@ -57,6 +87,16 @@ export class EmptyPlaceholder extends LitElement {
|
|
|
57
87
|
width: 100%;
|
|
58
88
|
}
|
|
59
89
|
|
|
90
|
+
a {
|
|
91
|
+
text-decoration: none;
|
|
92
|
+
}
|
|
93
|
+
a:link {
|
|
94
|
+
color: var(--ia-theme-link-color, #4b64ff);
|
|
95
|
+
}
|
|
96
|
+
a:hover {
|
|
97
|
+
text-decoration: underline;
|
|
98
|
+
}
|
|
99
|
+
|
|
60
100
|
.placeholder {
|
|
61
101
|
display: block;
|
|
62
102
|
}
|
|
@@ -64,16 +104,22 @@ export class EmptyPlaceholder extends LitElement {
|
|
|
64
104
|
.desktop svg {
|
|
65
105
|
max-height: 40rem;
|
|
66
106
|
}
|
|
67
|
-
.desktop .title
|
|
107
|
+
.desktop .title,
|
|
108
|
+
.desktop .error-details {
|
|
68
109
|
margin: 4rem 0;
|
|
69
110
|
}
|
|
70
111
|
|
|
71
112
|
.mobile svg {
|
|
72
113
|
max-height: 20rem;
|
|
73
114
|
}
|
|
74
|
-
.mobile .title
|
|
115
|
+
.mobile .title,
|
|
116
|
+
.mobile .error-details {
|
|
75
117
|
margin: 2rem 0.5;
|
|
76
118
|
}
|
|
119
|
+
|
|
120
|
+
.error-details {
|
|
121
|
+
font-size: 1.2rem;
|
|
122
|
+
}
|
|
77
123
|
`;
|
|
78
124
|
}
|
|
79
125
|
}
|
package/src/models.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { MediaType } from '@internetarchive/field-parsers';
|
|
2
|
+
import type { SortDirection } from '@internetarchive/search-service';
|
|
2
3
|
|
|
3
4
|
export interface TileModel {
|
|
4
5
|
averageRating?: number;
|
|
@@ -55,8 +56,8 @@ export enum SortField {
|
|
|
55
56
|
'alltimeview' = 'alltimeview',
|
|
56
57
|
'weeklyview' = 'weeklyview',
|
|
57
58
|
'title' = 'title',
|
|
58
|
-
'datearchived' = 'datearchived',
|
|
59
59
|
'date' = 'date',
|
|
60
|
+
'datearchived' = 'datearchived',
|
|
60
61
|
'datereviewed' = 'datereviewed',
|
|
61
62
|
'dateadded' = 'dateadded',
|
|
62
63
|
'creator' = 'creator',
|
|
@@ -79,16 +80,30 @@ export const SortFieldDisplayName: {
|
|
|
79
80
|
[key in SortField]: string;
|
|
80
81
|
} = {
|
|
81
82
|
relevance: 'Relevance',
|
|
82
|
-
alltimeview: 'All-time
|
|
83
|
-
weeklyview: 'Weekly
|
|
83
|
+
alltimeview: 'All-time views',
|
|
84
|
+
weeklyview: 'Weekly views',
|
|
84
85
|
title: 'Title',
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
datereviewed: 'Date
|
|
88
|
-
dateadded: 'Date
|
|
86
|
+
date: 'Date published',
|
|
87
|
+
datearchived: 'Date archived',
|
|
88
|
+
datereviewed: 'Date reviewed',
|
|
89
|
+
dateadded: 'Date added',
|
|
89
90
|
creator: 'Creator',
|
|
90
91
|
};
|
|
91
92
|
|
|
93
|
+
export const DefaultSortDirection: {
|
|
94
|
+
[key in SortField]: SortDirection;
|
|
95
|
+
} = {
|
|
96
|
+
relevance: 'desc', // Can't actually change the sort direction for relevance
|
|
97
|
+
alltimeview: 'desc',
|
|
98
|
+
weeklyview: 'desc',
|
|
99
|
+
title: 'asc',
|
|
100
|
+
date: 'desc',
|
|
101
|
+
datearchived: 'desc',
|
|
102
|
+
datereviewed: 'desc',
|
|
103
|
+
dateadded: 'desc',
|
|
104
|
+
creator: 'asc',
|
|
105
|
+
};
|
|
106
|
+
|
|
92
107
|
/**
|
|
93
108
|
* Maps the SortField above to the corresponding Metadata field in the API.
|
|
94
109
|
*/
|
|
@@ -99,8 +114,8 @@ export const SortFieldToMetadataField: {
|
|
|
99
114
|
alltimeview: 'downloads',
|
|
100
115
|
weeklyview: 'week',
|
|
101
116
|
title: 'titleSorter',
|
|
102
|
-
datearchived: 'publicdate',
|
|
103
117
|
date: 'date',
|
|
118
|
+
datearchived: 'publicdate',
|
|
104
119
|
datereviewed: 'reviewdate',
|
|
105
120
|
dateadded: 'addeddate',
|
|
106
121
|
creator: 'creatorSorter',
|
|
@@ -24,12 +24,11 @@ export class AlphaBarTooltip extends LitElement {
|
|
|
24
24
|
#tooltip-container {
|
|
25
25
|
width: max-content;
|
|
26
26
|
max-width: 200px;
|
|
27
|
-
padding-top: ${arrowSize};
|
|
28
27
|
pointer-events: none;
|
|
29
28
|
}
|
|
30
29
|
|
|
31
30
|
#arrow {
|
|
32
|
-
position:
|
|
31
|
+
position: relative;
|
|
33
32
|
left: calc(50% + ${arrowOffset});
|
|
34
33
|
top: 0;
|
|
35
34
|
width: 0;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { svg } from 'lit';
|
|
2
2
|
|
|
3
3
|
export const listIcon = svg`
|
|
4
|
-
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><g fill
|
|
4
|
+
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><g fill-rule="nonzero"><path d="m97.8975061 6h-65.7343743c-.6409315 0-1.1612995-.29021372-1.5611039-.87064117-.3998043-.58042745-.6004844-1.3048369-.60204-2.17322835 0-.81214848.20068-1.50731158.60204-2.08548931.4013601-.57817773.921728-.86839145 1.5611039-.87064117h65.7343743c.5600372 0 1.0508477.29021372 1.4724313.87064117s.6315976 1.27559055.6300505 2.08548931c0 .86839145-.2100226 1.5928009-.6300505 2.17322835-.420028.58042745-.9108384.87064117-1.4724313.87064117z"/><path d="m97.8975061 61h-65.7343743c-.6409315 0-1.1612995-.2902137-1.5611039-.8706412-.3998043-.5804274-.6004844-1.3048369-.60204-2.1732283 0-.8121485.20068-1.5073116.60204-2.0854893.4013601-.5781778.921728-.8683915 1.5611039-.8706412h65.7343743c.5600372 0 1.0508477.2902137 1.4724313.8706412.4215836.5804274.6315976 1.2755905.6300505 2.0854893 0 .8683914-.2100226 1.5928009-.6300505 2.1732283-.420028.5804275-.9108384.8706412-1.4724313.8706412z"/><path d="m97.8975061 19h-65.7343743c-.6409315 0-1.1612995-.2902137-1.5611039-.8706412-.3998043-.5804274-.6004844-1.3048369-.60204-2.1732283 0-.8121485.20068-1.5073116.60204-2.0854893.4013601-.5781778.921728-.8683915 1.5611039-.8706412h65.7343743c.5600372 0 1.0508477.2902137 1.4724313.8706412.4215836.5804274.6315976 1.2755905.6300505 2.0854893 0 .8683914-.2100226 1.5928009-.6300505 2.1732283-.420028.5804275-.9108384.8706412-1.4724313.8706412z"/><path d="m97.8975061 74h-65.7343743c-.6409315 0-1.1612995-.2902137-1.5611039-.8706412-.3998043-.5804274-.6004844-1.3048369-.60204-2.1732283 0-.8121485.20068-1.5073116.60204-2.0854893.4013601-.5781778.921728-.8683915 1.5611039-.8706412h65.7343743c.5600372 0 1.0508477.2902137 1.4724313.8706412.4215836.5804274.6315976 1.2755905.6300505 2.0854893 0 .8683914-.2100226 1.5928009-.6300505 2.1732283-.420028.5804275-.9108384.8706412-1.4724313.8706412z"/><path d="m97.8975061 32h-65.7343743c-.6409315 0-1.1612995-.2902137-1.5611039-.8706412-.3998043-.5804274-.6004844-1.3048369-.60204-2.1732283 0-.8121485.20068-1.5073116.60204-2.0854893.4013601-.5781778.921728-.8683915 1.5611039-.8706412h65.7343743c.5600372 0 1.0508477.2902137 1.4724313.8706412.4215836.5804274.6315976 1.2755905.6300505 2.0854893 0 .8683914-.2100226 1.5928009-.6300505 2.1732283-.420028.5804275-.9108384.8706412-1.4724313.8706412z"/><path d="m97.8975061 87h-65.7343743c-.6409315 0-1.1612995-.2902137-1.5611039-.8706412-.3998043-.5804274-.6004844-1.3048369-.60204-2.1732283 0-.8121485.20068-1.5073116.60204-2.0854893.4013601-.5781778.921728-.8683915 1.5611039-.8706412h65.7343743c.5600372 0 1.0508477.2902137 1.4724313.8706412.4215836.5804274.6315976 1.2755905.6300505 2.0854893 0 .8683914-.2100226 1.5928009-.6300505 2.1732283-.420028.5804275-.9108384.8706412-1.4724313.8706412z"/><path d="m97.8975061 45h-65.7343743c-.6409315 0-1.1612995-.2902137-1.5611039-.8706412-.3998043-.5804274-.6004844-1.3048369-.60204-2.1732283 0-.8121485.20068-1.5073116.60204-2.0854893.4013601-.5781778.921728-.8683915 1.5611039-.8706412h65.7343743c.5600372 0 1.0508477.2902137 1.4724313.8706412.4215836.5804274.6315976 1.2755905.6300505 2.0854893 0 .8683914-.2100226 1.5928009-.6300505 2.1732283-.420028.5804275-.9108384.8706412-1.4724313.8706412z"/><path d="m97.8975061 100h-65.7343743c-.6409315 0-1.1612995-.2902137-1.5611039-.8706412-.3998043-.5804274-.6004844-1.3048369-.60204-2.1732283 0-.8121485.20068-1.5073116.60204-2.0854893.4013601-.5781778.921728-.8683915 1.5611039-.8706412h65.7343743c.5600372 0 1.0508477.2902137 1.4724313.8706412.4215836.5804274.6315976 1.2755905.6300505 2.0854893 0 .8683914-.2100226 1.5928009-.6300505 2.1732283-.420028.5804275-.9108384.8706412-1.4724313.8706412z"/><path d="m0 0h25v25h-25z"/><path d="m0 55h25v25h-25z"/></g></svg>
|
|
5
5
|
`;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { html } from 'lit';
|
|
2
|
+
|
|
3
|
+
export const sortDisabledIcon = html`
|
|
4
|
+
<svg viewBox="0 0 64 100" xmlns="http://www.w3.org/2000/svg">
|
|
5
|
+
<g fill="#bbb" fill-rule="evenodd">
|
|
6
|
+
<path
|
|
7
|
+
d="m0 35.625 21.5-35.625 21.5 35.625h-14.3333333v21.375h-14.3333334v-21.375z"
|
|
8
|
+
/>
|
|
9
|
+
<path
|
|
10
|
+
d="m21 78.625 21.5-35.625 21.5 35.625h-14.3333333v21.375h-14.3333334v-21.375z"
|
|
11
|
+
transform="matrix(1 0 0 -1 0 143)"
|
|
12
|
+
/>
|
|
13
|
+
</g>
|
|
14
|
+
</svg>
|
|
15
|
+
`;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { html } from 'lit';
|
|
2
|
+
|
|
3
|
+
export const sortDownIcon = html`
|
|
4
|
+
<svg viewBox="0 0 64 100" xmlns="http://www.w3.org/2000/svg">
|
|
5
|
+
<g fill-rule="evenodd">
|
|
6
|
+
<path
|
|
7
|
+
d="m0 35.625 21.5-35.625 21.5 35.625h-14.3333333v21.375h-14.3333334v-21.375z"
|
|
8
|
+
fill="#bbb"
|
|
9
|
+
/>
|
|
10
|
+
<path
|
|
11
|
+
d="m21 78.625 21.5-35.625 21.5 35.625h-14.3333333v21.375h-14.3333334v-21.375z"
|
|
12
|
+
fill="#2c2c2c"
|
|
13
|
+
transform="matrix(1 0 0 -1 0 143)"
|
|
14
|
+
/>
|
|
15
|
+
</g>
|
|
16
|
+
</svg>
|
|
17
|
+
`;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { html } from 'lit';
|
|
2
|
+
|
|
3
|
+
export const sortUpIcon = html`
|
|
4
|
+
<svg viewBox="0 0 64 100" xmlns="http://www.w3.org/2000/svg">
|
|
5
|
+
<g fill-rule="evenodd">
|
|
6
|
+
<path
|
|
7
|
+
d="m0 35.625 21.5-35.625 21.5 35.625h-14.3333333v21.375h-14.3333334v-21.375z"
|
|
8
|
+
fill="#2c2c2c"
|
|
9
|
+
/>
|
|
10
|
+
<path
|
|
11
|
+
d="m21 78.625 21.5-35.625 21.5 35.625h-14.3333333v21.375h-14.3333334v-21.375z"
|
|
12
|
+
fill="#bbb"
|
|
13
|
+
transform="matrix(1 0 0 -1 0 143)"
|
|
14
|
+
/>
|
|
15
|
+
</g>
|
|
16
|
+
</svg>
|
|
17
|
+
`;
|