@internetarchive/collection-browser 2.7.12 → 2.7.13
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/.husky/pre-commit +4 -4
- package/LICENSE +661 -661
- package/README.md +83 -83
- package/dist/index.d.ts +13 -13
- package/dist/index.js +13 -13
- package/dist/src/app-root.d.ts +107 -107
- package/dist/src/app-root.js +531 -531
- 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/contract.d.ts +2 -2
- package/dist/src/assets/img/icons/contract.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/expand.d.ts +2 -2
- package/dist/src/assets/img/icons/expand.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/favorite-unfilled.d.ts +1 -1
- package/dist/src/assets/img/icons/favorite-unfilled.js +2 -2
- package/dist/src/assets/img/icons/filter.d.ts +2 -2
- package/dist/src/assets/img/icons/filter.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/search.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/search.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 +606 -606
- package/dist/src/collection-browser.js +1677 -1677
- package/dist/src/collection-facets/facet-row.d.ts +30 -30
- package/dist/src/collection-facets/facet-row.js +118 -118
- 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 +13 -13
- package/dist/src/collection-facets/facets-template.js +44 -44
- package/dist/src/collection-facets/more-facets-content.d.ts +106 -106
- package/dist/src/collection-facets/more-facets-content.js +407 -407
- package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
- package/dist/src/collection-facets/more-facets-pagination.js +196 -196
- package/dist/src/collection-facets/smart-facets/dedupe.d.ts +10 -10
- package/dist/src/collection-facets/smart-facets/dedupe.js +33 -33
- package/dist/src/collection-facets/smart-facets/heuristics/browser-language-heuristic.d.ts +5 -5
- package/dist/src/collection-facets/smart-facets/heuristics/browser-language-heuristic.js +23 -23
- package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.d.ts +5 -5
- package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.js +44 -44
- package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.d.ts +5 -5
- package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js +172 -172
- package/dist/src/collection-facets/smart-facets/models.d.ts +26 -26
- package/dist/src/collection-facets/smart-facets/models.js +1 -1
- package/dist/src/collection-facets/smart-facets/smart-facet-bar.d.ts +31 -31
- package/dist/src/collection-facets/smart-facets/smart-facet-bar.js +240 -240
- package/dist/src/collection-facets/smart-facets/smart-facet-button.d.ts +11 -11
- package/dist/src/collection-facets/smart-facets/smart-facet-button.js +86 -86
- package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.d.ts +16 -16
- package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js +100 -100
- package/dist/src/collection-facets/smart-facets/smart-facet-equals.d.ts +2 -2
- package/dist/src/collection-facets/smart-facets/smart-facet-equals.js +12 -12
- package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.d.ts +5 -5
- package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js +15 -15
- package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
- package/dist/src/collection-facets/toggle-switch.js +94 -94
- package/dist/src/collection-facets.d.ts +103 -103
- package/dist/src/collection-facets.js +522 -522
- package/dist/src/data-source/collection-browser-data-source-interface.d.ts +245 -245
- package/dist/src/data-source/collection-browser-data-source-interface.js +1 -1
- package/dist/src/data-source/collection-browser-data-source.d.ts +377 -377
- package/dist/src/data-source/collection-browser-data-source.js +1004 -1001
- package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
- package/dist/src/data-source/collection-browser-query-state.d.ts +44 -44
- package/dist/src/data-source/collection-browser-query-state.js +1 -1
- package/dist/src/data-source/models.d.ts +28 -28
- package/dist/src/data-source/models.js +8 -8
- package/dist/src/empty-placeholder.d.ts +23 -23
- package/dist/src/empty-placeholder.js +79 -79
- package/dist/src/expanded-date-picker.d.ts +43 -43
- package/dist/src/expanded-date-picker.js +109 -109
- 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/manage/manage-bar.d.ts +58 -58
- package/dist/src/manage/manage-bar.js +159 -159
- package/dist/src/manage/remove-items-modal-content.d.ts +9 -9
- package/dist/src/manage/remove-items-modal-content.js +34 -34
- package/dist/src/mediatype/mediatype-config.d.ts +3 -3
- package/dist/src/mediatype/mediatype-config.js +91 -91
- package/dist/src/models.d.ts +228 -228
- package/dist/src/models.js +401 -401
- package/dist/src/restoration-state-handler.d.ts +70 -70
- package/dist/src/restoration-state-handler.js +363 -363
- package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
- package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
- package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
- 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 +2 -2
- package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
- package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
- package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
- 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 +223 -223
- package/dist/src/sort-filter-bar/sort-filter-bar.js +697 -697
- package/dist/src/styles/ia-button.d.ts +2 -2
- package/dist/src/styles/ia-button.js +17 -17
- package/dist/src/styles/item-image-styles.d.ts +8 -8
- package/dist/src/styles/item-image-styles.js +9 -9
- package/dist/src/styles/sr-only.d.ts +1 -1
- package/dist/src/styles/sr-only.js +2 -2
- package/dist/src/tiles/base-tile-component.d.ts +19 -19
- package/dist/src/tiles/base-tile-component.js +64 -64
- 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 +18 -18
- package/dist/src/tiles/grid/account-tile.js +72 -72
- package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
- package/dist/src/tiles/grid/collection-tile.js +80 -80
- package/dist/src/tiles/grid/item-tile.d.ts +34 -34
- package/dist/src/tiles/grid/item-tile.js +158 -158
- package/dist/src/tiles/grid/search-tile.d.ts +10 -10
- package/dist/src/tiles/grid/search-tile.js +51 -51
- 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 +8 -8
- package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
- package/dist/src/tiles/grid/tile-stats.js +53 -53
- 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 +18 -18
- package/dist/src/tiles/hover/tile-hover-pane.js +69 -69
- package/dist/src/tiles/image-block.d.ts +18 -18
- package/dist/src/tiles/image-block.js +89 -89
- package/dist/src/tiles/item-image.d.ts +39 -39
- package/dist/src/tiles/item-image.js +154 -154
- package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
- package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
- package/dist/src/tiles/list/tile-list-compact.d.ts +19 -19
- package/dist/src/tiles/list/tile-list-compact.js +122 -122
- package/dist/src/tiles/list/tile-list.d.ts +54 -54
- package/dist/src/tiles/list/tile-list.js +323 -323
- 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 +8 -8
- package/dist/src/tiles/overlay/icon-overlay.js +25 -25
- package/dist/src/tiles/overlay/text-overlay.d.ts +9 -9
- package/dist/src/tiles/overlay/text-overlay.js +31 -31
- package/dist/src/tiles/review-block.d.ts +12 -12
- package/dist/src/tiles/review-block.js +56 -56
- 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 +64 -64
- package/dist/src/tiles/tile-dispatcher.js +230 -230
- package/dist/src/tiles/tile-display-value-provider.d.ts +47 -47
- package/dist/src/tiles/tile-display-value-provider.js +94 -94
- package/dist/src/utils/analytics-events.d.ts +28 -28
- package/dist/src/utils/analytics-events.js +30 -30
- package/dist/src/utils/array-equals.d.ts +4 -4
- package/dist/src/utils/array-equals.js +10 -10
- package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -11
- package/dist/src/utils/collapse-repeated-quotes.js +13 -13
- package/dist/src/utils/facet-utils.d.ts +83 -83
- package/dist/src/utils/facet-utils.js +145 -145
- 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 +27 -27
- package/dist/src/utils/format-unit-size.d.ts +2 -2
- package/dist/src/utils/format-unit-size.js +33 -33
- package/dist/src/utils/local-date-from-utc.d.ts +9 -9
- package/dist/src/utils/local-date-from-utc.js +15 -15
- package/dist/src/utils/log.d.ts +7 -7
- package/dist/src/utils/log.js +15 -15
- package/dist/src/utils/resolve-mediatype.d.ts +8 -8
- package/dist/src/utils/resolve-mediatype.js +23 -23
- package/dist/src/utils/sha1.d.ts +2 -2
- package/dist/src/utils/sha1.js +8 -8
- package/dist/test/collection-browser.test.d.ts +1 -1
- package/dist/test/collection-browser.test.js +1308 -1308
- package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
- package/dist/test/collection-facets/facet-row.test.js +227 -227
- package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
- package/dist/test/collection-facets/facets-template.test.js +91 -91
- package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
- package/dist/test/collection-facets/more-facets-content.test.js +141 -141
- 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 -1
- package/dist/test/collection-facets/toggle-switch.test.js +73 -73
- package/dist/test/collection-facets.test.d.ts +2 -2
- package/dist/test/collection-facets.test.js +690 -690
- package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -1
- package/dist/test/data-source/collection-browser-data-source.test.js +89 -89
- package/dist/test/empty-placeholder.test.d.ts +1 -1
- package/dist/test/empty-placeholder.test.js +63 -63
- package/dist/test/expanded-date-picker.test.d.ts +1 -1
- package/dist/test/expanded-date-picker.test.js +95 -95
- 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 +107 -107
- package/dist/test/item-image.test.d.ts +1 -1
- package/dist/test/item-image.test.js +85 -85
- package/dist/test/manage/manage-bar.test.d.ts +2 -2
- package/dist/test/manage/manage-bar.test.js +100 -100
- package/dist/test/manage/remove-items-modal-content.test.d.ts +1 -1
- package/dist/test/manage/remove-items-modal-content.test.js +45 -45
- 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-search-responses.d.ts +25 -25
- package/dist/test/mocks/mock-search-responses.js +942 -942
- package/dist/test/mocks/mock-search-service.d.ts +15 -15
- package/dist/test/mocks/mock-search-service.js +54 -54
- package/dist/test/restoration-state-handler.test.d.ts +1 -1
- package/dist/test/restoration-state-handler.test.js +270 -270
- package/dist/test/review-block.test.d.ts +1 -1
- package/dist/test/review-block.test.js +44 -44
- 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 +426 -426
- package/dist/test/text-overlay.test.d.ts +1 -1
- package/dist/test/text-overlay.test.js +38 -38
- 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 +81 -81
- 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 +312 -312
- package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/search-tile.test.js +51 -51
- package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
- package/dist/test/tiles/hover/hover-pane-controller.test.js +259 -259
- package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
- package/dist/test/tiles/hover/tile-hover-pane.test.js +56 -56
- package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
- package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
- package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
- package/dist/test/tiles/list/tile-list.test.js +297 -297
- package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
- package/dist/test/tiles/tile-dispatcher.test.js +100 -100
- package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
- package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
- package/dist/test/utils/array-equals.test.d.ts +1 -1
- package/dist/test/utils/array-equals.test.js +26 -26
- 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 +30 -30
- package/dist/test/utils/format-unit-size.test.d.ts +1 -1
- package/dist/test/utils/format-unit-size.test.js +17 -17
- package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
- package/dist/test/utils/local-date-from-utc.test.js +26 -26
- package/local.archive.org.cert +86 -86
- package/local.archive.org.key +27 -27
- package/package.json +1 -1
- package/renovate.json +6 -6
- package/src/data-source/collection-browser-data-source.ts +5 -1
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import { CSSResultGroup, LitElement, TemplateResult } from 'lit';
|
|
2
|
-
export declare class MoreFacetsPagination extends LitElement {
|
|
3
|
-
/**
|
|
4
|
-
* Total number of pages
|
|
5
|
-
*/
|
|
6
|
-
size: number;
|
|
7
|
-
/**
|
|
8
|
-
* Number of pages can be moved in back/forward
|
|
9
|
-
*/
|
|
10
|
-
step: number;
|
|
11
|
-
currentPage: number;
|
|
12
|
-
pages?: number[];
|
|
13
|
-
firstUpdated(): void;
|
|
14
|
-
updated(changed: Map<string, any>): void;
|
|
15
|
-
/** creates `this.pages` array that notes which pages to draw
|
|
16
|
-
* - `0` is elipses marker
|
|
17
|
-
* - rule: selected page is centered between -2/+2 pages
|
|
18
|
-
* - outlier: first page selected, show _1_ 2 3 ... N
|
|
19
|
-
* - outlier: second page selected, show 1 _2_ 3 4 ... N
|
|
20
|
-
* - outlier: last page selected, show 1 ... N-2 N-1 _N_
|
|
21
|
-
* - outlier: if page count = 7, & selected is either [2, 3, 4, 5, 6], show all pages
|
|
22
|
-
*/
|
|
23
|
-
observePageCount(): void;
|
|
24
|
-
private createFirstNode;
|
|
25
|
-
private createMiddelNode;
|
|
26
|
-
private createLastNode;
|
|
27
|
-
private get getEllipsisTemplate();
|
|
28
|
-
emitPageClick(): void;
|
|
29
|
-
private onRewind;
|
|
30
|
-
private onForward;
|
|
31
|
-
private onChange;
|
|
32
|
-
private getPageTemplate;
|
|
33
|
-
private get getPagesTemplate();
|
|
34
|
-
render(): TemplateResult<1>;
|
|
35
|
-
static get styles(): CSSResultGroup;
|
|
36
|
-
}
|
|
1
|
+
import { CSSResultGroup, LitElement, TemplateResult } from 'lit';
|
|
2
|
+
export declare class MoreFacetsPagination extends LitElement {
|
|
3
|
+
/**
|
|
4
|
+
* Total number of pages
|
|
5
|
+
*/
|
|
6
|
+
size: number;
|
|
7
|
+
/**
|
|
8
|
+
* Number of pages can be moved in back/forward
|
|
9
|
+
*/
|
|
10
|
+
step: number;
|
|
11
|
+
currentPage: number;
|
|
12
|
+
pages?: number[];
|
|
13
|
+
firstUpdated(): void;
|
|
14
|
+
updated(changed: Map<string, any>): void;
|
|
15
|
+
/** creates `this.pages` array that notes which pages to draw
|
|
16
|
+
* - `0` is elipses marker
|
|
17
|
+
* - rule: selected page is centered between -2/+2 pages
|
|
18
|
+
* - outlier: first page selected, show _1_ 2 3 ... N
|
|
19
|
+
* - outlier: second page selected, show 1 _2_ 3 4 ... N
|
|
20
|
+
* - outlier: last page selected, show 1 ... N-2 N-1 _N_
|
|
21
|
+
* - outlier: if page count = 7, & selected is either [2, 3, 4, 5, 6], show all pages
|
|
22
|
+
*/
|
|
23
|
+
observePageCount(): void;
|
|
24
|
+
private createFirstNode;
|
|
25
|
+
private createMiddelNode;
|
|
26
|
+
private createLastNode;
|
|
27
|
+
private get getEllipsisTemplate();
|
|
28
|
+
emitPageClick(): void;
|
|
29
|
+
private onRewind;
|
|
30
|
+
private onForward;
|
|
31
|
+
private onChange;
|
|
32
|
+
private getPageTemplate;
|
|
33
|
+
private get getPagesTemplate();
|
|
34
|
+
render(): TemplateResult<1>;
|
|
35
|
+
static get styles(): CSSResultGroup;
|
|
36
|
+
}
|
|
@@ -1,162 +1,162 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { css, html, LitElement, nothing, } from 'lit';
|
|
3
|
-
import { customElement, property, state } from 'lit/decorators.js';
|
|
4
|
-
import arrowLeftIcon from '../assets/img/icons/arrow-left';
|
|
5
|
-
import arrowRightIcon from '../assets/img/icons/arrow-right';
|
|
6
|
-
import { srOnlyStyle } from '../styles/sr-only';
|
|
7
|
-
let MoreFacetsPagination = class MoreFacetsPagination extends LitElement {
|
|
8
|
-
constructor() {
|
|
9
|
-
super(...arguments);
|
|
10
|
-
/**
|
|
11
|
-
* Number of pages can be moved in back/forward
|
|
12
|
-
*/
|
|
13
|
-
this.step = 2;
|
|
14
|
-
this.currentPage = 1;
|
|
15
|
-
this.pages = [];
|
|
16
|
-
}
|
|
17
|
-
firstUpdated() {
|
|
18
|
-
this.observePageCount();
|
|
19
|
-
}
|
|
20
|
-
updated(changed) {
|
|
21
|
-
if (changed.has('size')) {
|
|
22
|
-
this.observePageCount();
|
|
23
|
-
}
|
|
24
|
-
if (changed.has('currentPage')) {
|
|
25
|
-
this.observePageCount();
|
|
26
|
-
this.emitPageClick();
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
/** creates `this.pages` array that notes which pages to draw
|
|
30
|
-
* - `0` is elipses marker
|
|
31
|
-
* - rule: selected page is centered between -2/+2 pages
|
|
32
|
-
* - outlier: first page selected, show _1_ 2 3 ... N
|
|
33
|
-
* - outlier: second page selected, show 1 _2_ 3 4 ... N
|
|
34
|
-
* - outlier: last page selected, show 1 ... N-2 N-1 _N_
|
|
35
|
-
* - outlier: if page count = 7, & selected is either [2, 3, 4, 5, 6], show all pages
|
|
36
|
-
*/
|
|
37
|
-
observePageCount() {
|
|
38
|
-
this.pages = []; /* `0` is elipses marker */
|
|
39
|
-
const paginatorMaxPagesToShow = 7;
|
|
40
|
-
const atMinThreshold = this.size <= paginatorMaxPagesToShow;
|
|
41
|
-
/** Display outliers */
|
|
42
|
-
if (this.size <= 5) {
|
|
43
|
-
// display all pages
|
|
44
|
-
this.pages = [...Array(this.size).keys()].map(i => i + 1);
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
if (this.size === paginatorMaxPagesToShow) {
|
|
48
|
-
// edge: 7 pages
|
|
49
|
-
if (this.currentPage === 2) {
|
|
50
|
-
this.pages = [1, 2, 3, 4, 0, this.size];
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
if (this.currentPage === this.size - 1) {
|
|
54
|
-
this.pages = [1, 0, 4, 5, this.size - 1, this.size];
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
if (this.currentPage === 1) {
|
|
59
|
-
// first page
|
|
60
|
-
this.pages = [1, 2, 3, 0, this.size];
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
if (this.currentPage === this.size) {
|
|
64
|
-
// last page
|
|
65
|
-
this.pages = [1, 0, this.size - 2, this.size - 1, this.size];
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
if (this.currentPage === this.size - 1) {
|
|
69
|
-
// second last page
|
|
70
|
-
this.pages = [
|
|
71
|
-
1,
|
|
72
|
-
0,
|
|
73
|
-
this.size - 3,
|
|
74
|
-
this.size - 2,
|
|
75
|
-
this.size - 1,
|
|
76
|
-
this.size,
|
|
77
|
-
];
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
if (atMinThreshold &&
|
|
81
|
-
this.currentPage > 1 &&
|
|
82
|
-
this.currentPage < paginatorMaxPagesToShow) {
|
|
83
|
-
this.pages = [...Array(this.size).keys()].map(i => i + 1);
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
/* The rest here calculates the range to display in "page window" */
|
|
87
|
-
let startPage = this.currentPage - this.step;
|
|
88
|
-
let endPage = this.currentPage + this.step;
|
|
89
|
-
if (startPage <= 0) {
|
|
90
|
-
endPage += -startPage + 1;
|
|
91
|
-
startPage = 1;
|
|
92
|
-
}
|
|
93
|
-
if (endPage >= this.size) {
|
|
94
|
-
startPage = Math.max(startPage - (endPage - this.size), 1);
|
|
95
|
-
endPage = this.size;
|
|
96
|
-
}
|
|
97
|
-
if (startPage === 2) {
|
|
98
|
-
endPage -= 1;
|
|
99
|
-
}
|
|
100
|
-
if (endPage === this.size - 1) {
|
|
101
|
-
startPage += 1;
|
|
102
|
-
}
|
|
103
|
-
// create first page node
|
|
104
|
-
this.createFirstNode(startPage);
|
|
105
|
-
// create middle pages node
|
|
106
|
-
this.createMiddelNode(startPage, endPage);
|
|
107
|
-
// create last page node
|
|
108
|
-
this.createLastNode(endPage);
|
|
109
|
-
}
|
|
110
|
-
createFirstNode(startPage) {
|
|
111
|
-
var _a, _b;
|
|
112
|
-
if (startPage > 1) {
|
|
113
|
-
(_a = this.pages) === null || _a === void 0 ? void 0 : _a.push(1);
|
|
114
|
-
}
|
|
115
|
-
if (startPage > 2) {
|
|
116
|
-
(_b = this.pages) === null || _b === void 0 ? void 0 : _b.push(0); // let's asssume 0 is for ellipsis template
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
createMiddelNode(startPage, endPage) {
|
|
120
|
-
var _a;
|
|
121
|
-
for (let page = startPage; page <= endPage; page += 1) {
|
|
122
|
-
(_a = this.pages) === null || _a === void 0 ? void 0 : _a.push(page);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
createLastNode(endPage) {
|
|
126
|
-
var _a, _b;
|
|
127
|
-
if (endPage < this.size - 1) {
|
|
128
|
-
(_a = this.pages) === null || _a === void 0 ? void 0 : _a.push(0); // let's asssume 0 is for ellipsis template
|
|
129
|
-
}
|
|
130
|
-
if (endPage < this.size) {
|
|
131
|
-
(_b = this.pages) === null || _b === void 0 ? void 0 : _b.push(this.size);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
get getEllipsisTemplate() {
|
|
135
|
-
return html `<i class="ellipses">...</i>`;
|
|
136
|
-
}
|
|
137
|
-
emitPageClick() {
|
|
138
|
-
this.dispatchEvent(new CustomEvent('pageNumberClicked', {
|
|
139
|
-
detail: { page: this.currentPage },
|
|
140
|
-
bubbles: true,
|
|
141
|
-
composed: true,
|
|
142
|
-
}));
|
|
143
|
-
}
|
|
144
|
-
onRewind() {
|
|
145
|
-
this.currentPage -= 1;
|
|
146
|
-
if (this.currentPage < 1) {
|
|
147
|
-
this.currentPage = 1;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
onForward() {
|
|
151
|
-
this.currentPage += 1;
|
|
152
|
-
if (this.currentPage > this.size) {
|
|
153
|
-
this.currentPage = this.size;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
onChange(page) {
|
|
157
|
-
this.currentPage = page;
|
|
158
|
-
}
|
|
159
|
-
getPageTemplate(page) {
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { css, html, LitElement, nothing, } from 'lit';
|
|
3
|
+
import { customElement, property, state } from 'lit/decorators.js';
|
|
4
|
+
import arrowLeftIcon from '../assets/img/icons/arrow-left';
|
|
5
|
+
import arrowRightIcon from '../assets/img/icons/arrow-right';
|
|
6
|
+
import { srOnlyStyle } from '../styles/sr-only';
|
|
7
|
+
let MoreFacetsPagination = class MoreFacetsPagination extends LitElement {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
/**
|
|
11
|
+
* Number of pages can be moved in back/forward
|
|
12
|
+
*/
|
|
13
|
+
this.step = 2;
|
|
14
|
+
this.currentPage = 1;
|
|
15
|
+
this.pages = [];
|
|
16
|
+
}
|
|
17
|
+
firstUpdated() {
|
|
18
|
+
this.observePageCount();
|
|
19
|
+
}
|
|
20
|
+
updated(changed) {
|
|
21
|
+
if (changed.has('size')) {
|
|
22
|
+
this.observePageCount();
|
|
23
|
+
}
|
|
24
|
+
if (changed.has('currentPage')) {
|
|
25
|
+
this.observePageCount();
|
|
26
|
+
this.emitPageClick();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/** creates `this.pages` array that notes which pages to draw
|
|
30
|
+
* - `0` is elipses marker
|
|
31
|
+
* - rule: selected page is centered between -2/+2 pages
|
|
32
|
+
* - outlier: first page selected, show _1_ 2 3 ... N
|
|
33
|
+
* - outlier: second page selected, show 1 _2_ 3 4 ... N
|
|
34
|
+
* - outlier: last page selected, show 1 ... N-2 N-1 _N_
|
|
35
|
+
* - outlier: if page count = 7, & selected is either [2, 3, 4, 5, 6], show all pages
|
|
36
|
+
*/
|
|
37
|
+
observePageCount() {
|
|
38
|
+
this.pages = []; /* `0` is elipses marker */
|
|
39
|
+
const paginatorMaxPagesToShow = 7;
|
|
40
|
+
const atMinThreshold = this.size <= paginatorMaxPagesToShow;
|
|
41
|
+
/** Display outliers */
|
|
42
|
+
if (this.size <= 5) {
|
|
43
|
+
// display all pages
|
|
44
|
+
this.pages = [...Array(this.size).keys()].map(i => i + 1);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (this.size === paginatorMaxPagesToShow) {
|
|
48
|
+
// edge: 7 pages
|
|
49
|
+
if (this.currentPage === 2) {
|
|
50
|
+
this.pages = [1, 2, 3, 4, 0, this.size];
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (this.currentPage === this.size - 1) {
|
|
54
|
+
this.pages = [1, 0, 4, 5, this.size - 1, this.size];
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (this.currentPage === 1) {
|
|
59
|
+
// first page
|
|
60
|
+
this.pages = [1, 2, 3, 0, this.size];
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if (this.currentPage === this.size) {
|
|
64
|
+
// last page
|
|
65
|
+
this.pages = [1, 0, this.size - 2, this.size - 1, this.size];
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (this.currentPage === this.size - 1) {
|
|
69
|
+
// second last page
|
|
70
|
+
this.pages = [
|
|
71
|
+
1,
|
|
72
|
+
0,
|
|
73
|
+
this.size - 3,
|
|
74
|
+
this.size - 2,
|
|
75
|
+
this.size - 1,
|
|
76
|
+
this.size,
|
|
77
|
+
];
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (atMinThreshold &&
|
|
81
|
+
this.currentPage > 1 &&
|
|
82
|
+
this.currentPage < paginatorMaxPagesToShow) {
|
|
83
|
+
this.pages = [...Array(this.size).keys()].map(i => i + 1);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
/* The rest here calculates the range to display in "page window" */
|
|
87
|
+
let startPage = this.currentPage - this.step;
|
|
88
|
+
let endPage = this.currentPage + this.step;
|
|
89
|
+
if (startPage <= 0) {
|
|
90
|
+
endPage += -startPage + 1;
|
|
91
|
+
startPage = 1;
|
|
92
|
+
}
|
|
93
|
+
if (endPage >= this.size) {
|
|
94
|
+
startPage = Math.max(startPage - (endPage - this.size), 1);
|
|
95
|
+
endPage = this.size;
|
|
96
|
+
}
|
|
97
|
+
if (startPage === 2) {
|
|
98
|
+
endPage -= 1;
|
|
99
|
+
}
|
|
100
|
+
if (endPage === this.size - 1) {
|
|
101
|
+
startPage += 1;
|
|
102
|
+
}
|
|
103
|
+
// create first page node
|
|
104
|
+
this.createFirstNode(startPage);
|
|
105
|
+
// create middle pages node
|
|
106
|
+
this.createMiddelNode(startPage, endPage);
|
|
107
|
+
// create last page node
|
|
108
|
+
this.createLastNode(endPage);
|
|
109
|
+
}
|
|
110
|
+
createFirstNode(startPage) {
|
|
111
|
+
var _a, _b;
|
|
112
|
+
if (startPage > 1) {
|
|
113
|
+
(_a = this.pages) === null || _a === void 0 ? void 0 : _a.push(1);
|
|
114
|
+
}
|
|
115
|
+
if (startPage > 2) {
|
|
116
|
+
(_b = this.pages) === null || _b === void 0 ? void 0 : _b.push(0); // let's asssume 0 is for ellipsis template
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
createMiddelNode(startPage, endPage) {
|
|
120
|
+
var _a;
|
|
121
|
+
for (let page = startPage; page <= endPage; page += 1) {
|
|
122
|
+
(_a = this.pages) === null || _a === void 0 ? void 0 : _a.push(page);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
createLastNode(endPage) {
|
|
126
|
+
var _a, _b;
|
|
127
|
+
if (endPage < this.size - 1) {
|
|
128
|
+
(_a = this.pages) === null || _a === void 0 ? void 0 : _a.push(0); // let's asssume 0 is for ellipsis template
|
|
129
|
+
}
|
|
130
|
+
if (endPage < this.size) {
|
|
131
|
+
(_b = this.pages) === null || _b === void 0 ? void 0 : _b.push(this.size);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
get getEllipsisTemplate() {
|
|
135
|
+
return html `<i class="ellipses">...</i>`;
|
|
136
|
+
}
|
|
137
|
+
emitPageClick() {
|
|
138
|
+
this.dispatchEvent(new CustomEvent('pageNumberClicked', {
|
|
139
|
+
detail: { page: this.currentPage },
|
|
140
|
+
bubbles: true,
|
|
141
|
+
composed: true,
|
|
142
|
+
}));
|
|
143
|
+
}
|
|
144
|
+
onRewind() {
|
|
145
|
+
this.currentPage -= 1;
|
|
146
|
+
if (this.currentPage < 1) {
|
|
147
|
+
this.currentPage = 1;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
onForward() {
|
|
151
|
+
this.currentPage += 1;
|
|
152
|
+
if (this.currentPage > this.size) {
|
|
153
|
+
this.currentPage = this.size;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
onChange(page) {
|
|
157
|
+
this.currentPage = page;
|
|
158
|
+
}
|
|
159
|
+
getPageTemplate(page) {
|
|
160
160
|
return html `
|
|
161
161
|
<button
|
|
162
162
|
@click=${() => this.onChange(page)}
|
|
@@ -165,20 +165,20 @@ let MoreFacetsPagination = class MoreFacetsPagination extends LitElement {
|
|
|
165
165
|
>
|
|
166
166
|
${page}
|
|
167
167
|
</button>
|
|
168
|
-
`;
|
|
169
|
-
}
|
|
170
|
-
get getPagesTemplate() {
|
|
171
|
-
var _a;
|
|
172
|
-
if (!this.pages || !this.pages.length) {
|
|
173
|
-
return nothing;
|
|
174
|
-
}
|
|
168
|
+
`;
|
|
169
|
+
}
|
|
170
|
+
get getPagesTemplate() {
|
|
171
|
+
var _a;
|
|
172
|
+
if (!this.pages || !this.pages.length) {
|
|
173
|
+
return nothing;
|
|
174
|
+
}
|
|
175
175
|
return html `
|
|
176
|
-
${(_a = this.pages) === null || _a === void 0 ? void 0 : _a.map(page => html `${page !== 0
|
|
177
|
-
? this.getPageTemplate(page)
|
|
176
|
+
${(_a = this.pages) === null || _a === void 0 ? void 0 : _a.map(page => html `${page !== 0
|
|
177
|
+
? this.getPageTemplate(page)
|
|
178
178
|
: this.getEllipsisTemplate}`)}
|
|
179
|
-
`;
|
|
180
|
-
}
|
|
181
|
-
render() {
|
|
179
|
+
`;
|
|
180
|
+
}
|
|
181
|
+
render() {
|
|
182
182
|
return html `
|
|
183
183
|
<div class="facets-pagination">
|
|
184
184
|
<button class="arrow-icon rewind" @click=${this.onRewind}>
|
|
@@ -191,11 +191,11 @@ let MoreFacetsPagination = class MoreFacetsPagination extends LitElement {
|
|
|
191
191
|
${arrowRightIcon}
|
|
192
192
|
</button>
|
|
193
193
|
</div>
|
|
194
|
-
`;
|
|
195
|
-
}
|
|
196
|
-
static get styles() {
|
|
197
|
-
return [
|
|
198
|
-
srOnlyStyle,
|
|
194
|
+
`;
|
|
195
|
+
}
|
|
196
|
+
static get styles() {
|
|
197
|
+
return [
|
|
198
|
+
srOnlyStyle,
|
|
199
199
|
css `
|
|
200
200
|
.facets-pagination {
|
|
201
201
|
user-select: none;
|
|
@@ -240,24 +240,24 @@ let MoreFacetsPagination = class MoreFacetsPagination extends LitElement {
|
|
|
240
240
|
.page-numbers {
|
|
241
241
|
display: inline-block;
|
|
242
242
|
}
|
|
243
|
-
`,
|
|
244
|
-
];
|
|
245
|
-
}
|
|
246
|
-
};
|
|
247
|
-
__decorate([
|
|
248
|
-
property({ type: Number })
|
|
249
|
-
], MoreFacetsPagination.prototype, "size", void 0);
|
|
250
|
-
__decorate([
|
|
251
|
-
property({ type: Number })
|
|
252
|
-
], MoreFacetsPagination.prototype, "step", void 0);
|
|
253
|
-
__decorate([
|
|
254
|
-
property({ type: Number })
|
|
255
|
-
], MoreFacetsPagination.prototype, "currentPage", void 0);
|
|
256
|
-
__decorate([
|
|
257
|
-
state()
|
|
258
|
-
], MoreFacetsPagination.prototype, "pages", void 0);
|
|
259
|
-
MoreFacetsPagination = __decorate([
|
|
260
|
-
customElement('more-facets-pagination')
|
|
261
|
-
], MoreFacetsPagination);
|
|
262
|
-
export { MoreFacetsPagination };
|
|
243
|
+
`,
|
|
244
|
+
];
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
__decorate([
|
|
248
|
+
property({ type: Number })
|
|
249
|
+
], MoreFacetsPagination.prototype, "size", void 0);
|
|
250
|
+
__decorate([
|
|
251
|
+
property({ type: Number })
|
|
252
|
+
], MoreFacetsPagination.prototype, "step", void 0);
|
|
253
|
+
__decorate([
|
|
254
|
+
property({ type: Number })
|
|
255
|
+
], MoreFacetsPagination.prototype, "currentPage", void 0);
|
|
256
|
+
__decorate([
|
|
257
|
+
state()
|
|
258
|
+
], MoreFacetsPagination.prototype, "pages", void 0);
|
|
259
|
+
MoreFacetsPagination = __decorate([
|
|
260
|
+
customElement('more-facets-pagination')
|
|
261
|
+
], MoreFacetsPagination);
|
|
262
|
+
export { MoreFacetsPagination };
|
|
263
263
|
//# sourceMappingURL=more-facets-pagination.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { SmartFacet } from './models';
|
|
2
|
-
/**
|
|
3
|
-
* Removes any duplicated smart facets from the given array.
|
|
4
|
-
* Smart facets are equal if they have the same `label` and same
|
|
5
|
-
* set of facet refs. Only the first occurrence of a given smart
|
|
6
|
-
* facet is kept.
|
|
7
|
-
* @param facets The array of smart facets to deduplicate
|
|
8
|
-
* @returns A new array containing the deduplicated set of facets
|
|
9
|
-
*/
|
|
10
|
-
export declare function dedupe<T extends SmartFacet[] | SmartFacet[][]>(facets: T): T;
|
|
1
|
+
import type { SmartFacet } from './models';
|
|
2
|
+
/**
|
|
3
|
+
* Removes any duplicated smart facets from the given array.
|
|
4
|
+
* Smart facets are equal if they have the same `label` and same
|
|
5
|
+
* set of facet refs. Only the first occurrence of a given smart
|
|
6
|
+
* facet is kept.
|
|
7
|
+
* @param facets The array of smart facets to deduplicate
|
|
8
|
+
* @returns A new array containing the deduplicated set of facets
|
|
9
|
+
*/
|
|
10
|
+
export declare function dedupe<T extends SmartFacet[] | SmartFacet[][]>(facets: T): T;
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import { smartFacetEquals } from './smart-facet-equals';
|
|
2
|
-
/**
|
|
3
|
-
* Removes any duplicated smart facets from the given array.
|
|
4
|
-
* Smart facets are equal if they have the same `label` and same
|
|
5
|
-
* set of facet refs. Only the first occurrence of a given smart
|
|
6
|
-
* facet is kept.
|
|
7
|
-
* @param facets The array of smart facets to deduplicate
|
|
8
|
-
* @returns A new array containing the deduplicated set of facets
|
|
9
|
-
*/
|
|
10
|
-
export function dedupe(facets) {
|
|
11
|
-
if (!Array.isArray(facets[0])) {
|
|
12
|
-
const facetsUnnested = facets;
|
|
13
|
-
let result = [...facetsUnnested];
|
|
14
|
-
for (const curFacet of facetsUnnested) {
|
|
15
|
-
result = result.filter(sf => curFacet === sf || !smartFacetEquals(curFacet, sf));
|
|
16
|
-
}
|
|
17
|
-
return result;
|
|
18
|
-
}
|
|
19
|
-
const facetsNested = facets;
|
|
20
|
-
const result = [];
|
|
21
|
-
for (const curFacetArray of facetsNested) {
|
|
22
|
-
const subresult = [];
|
|
23
|
-
for (const curFacet of curFacetArray) {
|
|
24
|
-
const existing = result.find(sfa => sfa.find(sf => smartFacetEquals(curFacet, sf)));
|
|
25
|
-
if (!existing)
|
|
26
|
-
subresult.push(curFacet);
|
|
27
|
-
}
|
|
28
|
-
if (subresult.length > 0) {
|
|
29
|
-
result.push(subresult);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return result;
|
|
33
|
-
}
|
|
1
|
+
import { smartFacetEquals } from './smart-facet-equals';
|
|
2
|
+
/**
|
|
3
|
+
* Removes any duplicated smart facets from the given array.
|
|
4
|
+
* Smart facets are equal if they have the same `label` and same
|
|
5
|
+
* set of facet refs. Only the first occurrence of a given smart
|
|
6
|
+
* facet is kept.
|
|
7
|
+
* @param facets The array of smart facets to deduplicate
|
|
8
|
+
* @returns A new array containing the deduplicated set of facets
|
|
9
|
+
*/
|
|
10
|
+
export function dedupe(facets) {
|
|
11
|
+
if (!Array.isArray(facets[0])) {
|
|
12
|
+
const facetsUnnested = facets;
|
|
13
|
+
let result = [...facetsUnnested];
|
|
14
|
+
for (const curFacet of facetsUnnested) {
|
|
15
|
+
result = result.filter(sf => curFacet === sf || !smartFacetEquals(curFacet, sf));
|
|
16
|
+
}
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
const facetsNested = facets;
|
|
20
|
+
const result = [];
|
|
21
|
+
for (const curFacetArray of facetsNested) {
|
|
22
|
+
const subresult = [];
|
|
23
|
+
for (const curFacet of curFacetArray) {
|
|
24
|
+
const existing = result.find(sfa => sfa.find(sf => smartFacetEquals(curFacet, sf)));
|
|
25
|
+
if (!existing)
|
|
26
|
+
subresult.push(curFacet);
|
|
27
|
+
}
|
|
28
|
+
if (subresult.length > 0) {
|
|
29
|
+
result.push(subresult);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
34
|
//# sourceMappingURL=dedupe.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { SmartQueryHeuristic, SmartFacet } from '../models';
|
|
2
|
-
export declare class BrowserLanguageHeuristic implements SmartQueryHeuristic {
|
|
3
|
-
getRecommendedFacets(): Promise<SmartFacet[]>;
|
|
4
|
-
private static getLanguageDisplayName;
|
|
5
|
-
}
|
|
1
|
+
import type { SmartQueryHeuristic, SmartFacet } from '../models';
|
|
2
|
+
export declare class BrowserLanguageHeuristic implements SmartQueryHeuristic {
|
|
3
|
+
getRecommendedFacets(): Promise<SmartFacet[]>;
|
|
4
|
+
private static getLanguageDisplayName;
|
|
5
|
+
}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
export class BrowserLanguageHeuristic {
|
|
2
|
-
async getRecommendedFacets() {
|
|
3
|
-
const browserLanguageCode = navigator.language;
|
|
4
|
-
const languageName = BrowserLanguageHeuristic.getLanguageDisplayName(browserLanguageCode);
|
|
5
|
-
if (!languageName)
|
|
6
|
-
return [];
|
|
7
|
-
return [
|
|
8
|
-
{
|
|
9
|
-
facets: [
|
|
10
|
-
{
|
|
11
|
-
facetType: 'language',
|
|
12
|
-
bucketKey: languageName,
|
|
13
|
-
},
|
|
14
|
-
],
|
|
15
|
-
},
|
|
16
|
-
];
|
|
17
|
-
}
|
|
18
|
-
static getLanguageDisplayName(langCode) {
|
|
19
|
-
// Strip off any script/region/variant codes for greater generality
|
|
20
|
-
const languageOnly = langCode.split('-')[0];
|
|
21
|
-
return new Intl.DisplayNames(['en'], { type: 'language' }).of(languageOnly);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
1
|
+
export class BrowserLanguageHeuristic {
|
|
2
|
+
async getRecommendedFacets() {
|
|
3
|
+
const browserLanguageCode = navigator.language;
|
|
4
|
+
const languageName = BrowserLanguageHeuristic.getLanguageDisplayName(browserLanguageCode);
|
|
5
|
+
if (!languageName)
|
|
6
|
+
return [];
|
|
7
|
+
return [
|
|
8
|
+
{
|
|
9
|
+
facets: [
|
|
10
|
+
{
|
|
11
|
+
facetType: 'language',
|
|
12
|
+
bucketKey: languageName,
|
|
13
|
+
},
|
|
14
|
+
],
|
|
15
|
+
},
|
|
16
|
+
];
|
|
17
|
+
}
|
|
18
|
+
static getLanguageDisplayName(langCode) {
|
|
19
|
+
// Strip off any script/region/variant codes for greater generality
|
|
20
|
+
const languageOnly = langCode.split('-')[0];
|
|
21
|
+
return new Intl.DisplayNames(['en'], { type: 'language' }).of(languageOnly);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
24
|
//# sourceMappingURL=browser-language-heuristic.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { SmartQueryHeuristic, SmartFacet } from '../models';
|
|
2
|
-
export declare class QueryKeywordsHeuristic implements SmartQueryHeuristic {
|
|
3
|
-
private static readonly KEYWORDS;
|
|
4
|
-
getRecommendedFacets(query: string): Promise<SmartFacet[]>;
|
|
5
|
-
}
|
|
1
|
+
import type { SmartQueryHeuristic, SmartFacet } from '../models';
|
|
2
|
+
export declare class QueryKeywordsHeuristic implements SmartQueryHeuristic {
|
|
3
|
+
private static readonly KEYWORDS;
|
|
4
|
+
getRecommendedFacets(query: string): Promise<SmartFacet[]>;
|
|
5
|
+
}
|