@internetarchive/collection-browser 2.7.7 → 2.7.8
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 -99
- package/dist/src/app-root.js +539 -505
- package/dist/src/app-root.js.map +1 -1
- 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 +591 -582
- package/dist/src/collection-browser.js +1644 -1629
- package/dist/src/collection-browser.js.map +1 -1
- 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 +241 -241
- package/dist/src/data-source/collection-browser-data-source-interface.js +1 -1
- package/dist/src/data-source/collection-browser-data-source.d.ts +373 -373
- package/dist/src/data-source/collection-browser-data-source.js +982 -982
- package/dist/src/data-source/collection-browser-query-state.d.ts +43 -43
- 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 -35
- package/dist/src/manage/manage-bar.js +173 -79
- 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.d.ts +3 -3
- package/dist/src/mediatype/mediatype-config.js +91 -91
- package/dist/src/models.d.ts +228 -219
- package/dist/src/models.js +401 -401
- package/dist/src/models.js.map +1 -1
- 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 +1293 -1293
- 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 -1
- package/dist/test/manage/manage-bar.test.js +106 -91
- 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/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/app-root.ts +38 -4
- package/src/collection-browser.ts +36 -16
- package/src/manage/manage-bar.ts +119 -23
- package/src/manage/remove-items-modal-content.ts +102 -0
- package/src/models.ts +10 -0
- package/test/manage/manage-bar.test.ts +41 -18
- package/test/manage/remove-items-modal-content.test.ts +82 -0
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
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,21 +63,20 @@ 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
68
|
${msg('Remove selected items')}
|
|
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')}
|
|
78
|
+
</button>`
|
|
79
|
+
)}
|
|
66
80
|
<div class="selection-buttons">
|
|
67
81
|
${when(
|
|
68
82
|
this.showSelectAll,
|
|
@@ -92,12 +106,12 @@ export class ManageBar extends LitElement {
|
|
|
92
106
|
this.dispatchEvent(new CustomEvent('cancel'));
|
|
93
107
|
}
|
|
94
108
|
|
|
95
|
-
private
|
|
109
|
+
private removeItemsClicked(): void {
|
|
96
110
|
this.dispatchEvent(new CustomEvent('removeItems'));
|
|
97
111
|
}
|
|
98
112
|
|
|
99
|
-
private
|
|
100
|
-
this.dispatchEvent(new CustomEvent('
|
|
113
|
+
private manageItemsClicked(): void {
|
|
114
|
+
this.dispatchEvent(new CustomEvent('manageItems'));
|
|
101
115
|
}
|
|
102
116
|
|
|
103
117
|
private selectAllClicked(): void {
|
|
@@ -108,6 +122,88 @@ export class ManageBar extends LitElement {
|
|
|
108
122
|
this.dispatchEvent(new CustomEvent('unselectAll'));
|
|
109
123
|
}
|
|
110
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
|
+
|
|
111
207
|
static get styles(): CSSResultGroup {
|
|
112
208
|
return css`
|
|
113
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
|
+
}
|
package/src/models.ts
CHANGED
|
@@ -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
|
+
}
|
|
@@ -2,9 +2,14 @@
|
|
|
2
2
|
import { expect, fixture } from '@open-wc/testing';
|
|
3
3
|
import { html } from 'lit';
|
|
4
4
|
import Sinon from 'sinon';
|
|
5
|
-
import type { ManageBar } from '../../src/manage/manage-bar';
|
|
6
|
-
|
|
7
5
|
import '../../src/manage/manage-bar';
|
|
6
|
+
import {
|
|
7
|
+
ModalManager,
|
|
8
|
+
ModalManagerInterface,
|
|
9
|
+
} from '@internetarchive/modal-manager';
|
|
10
|
+
import '@internetarchive/modal-manager';
|
|
11
|
+
import { msg } from '@lit/localize';
|
|
12
|
+
import type { ManageBar } from '../../src/manage/manage-bar';
|
|
8
13
|
|
|
9
14
|
describe('Manage bar', () => {
|
|
10
15
|
it('renders basic component', async () => {
|
|
@@ -38,7 +43,7 @@ describe('Manage bar', () => {
|
|
|
38
43
|
|
|
39
44
|
it('render item manager button for /search/ page', async () => {
|
|
40
45
|
const el = await fixture<ManageBar>(
|
|
41
|
-
html`<manage-bar
|
|
46
|
+
html`<manage-bar showItemManageButton></manage-bar>`
|
|
42
47
|
);
|
|
43
48
|
expect(el.shadowRoot?.querySelector('.ia-button.warning')).to.exist;
|
|
44
49
|
});
|
|
@@ -84,21 +89,6 @@ describe('Manage bar', () => {
|
|
|
84
89
|
expect(spy.callCount).to.equal(1);
|
|
85
90
|
});
|
|
86
91
|
|
|
87
|
-
it('emits event when Remove Items button clicked', async () => {
|
|
88
|
-
const spy = Sinon.spy();
|
|
89
|
-
const el = await fixture<ManageBar>(
|
|
90
|
-
html`<manage-bar @removeItems=${spy} removeAllowed></manage-bar>`
|
|
91
|
-
);
|
|
92
|
-
|
|
93
|
-
const removeItemsBtn = el.shadowRoot?.querySelector(
|
|
94
|
-
'.ia-button.danger'
|
|
95
|
-
) as HTMLButtonElement;
|
|
96
|
-
expect(removeItemsBtn).to.exist;
|
|
97
|
-
|
|
98
|
-
removeItemsBtn.click();
|
|
99
|
-
expect(spy.callCount).to.equal(1);
|
|
100
|
-
});
|
|
101
|
-
|
|
102
92
|
it('emits event when Select All button clicked', async () => {
|
|
103
93
|
const spy = Sinon.spy();
|
|
104
94
|
const el = await fixture<ManageBar>(
|
|
@@ -128,4 +118,37 @@ describe('Manage bar', () => {
|
|
|
128
118
|
unselectAllBtn.click();
|
|
129
119
|
expect(spy.callCount).to.equal(1);
|
|
130
120
|
});
|
|
121
|
+
|
|
122
|
+
it('opens the remove items modal when showRemoveItemsModal is clicked', async () => {
|
|
123
|
+
const el = await fixture<ManageBar>(html`
|
|
124
|
+
<manage-bar
|
|
125
|
+
.modalManager=${new ModalManager()}
|
|
126
|
+
.selectedItems=${[{ identifier: '1', title: 'Item 1' }]}
|
|
127
|
+
removeAllowed
|
|
128
|
+
></manage-bar>
|
|
129
|
+
`);
|
|
130
|
+
await el.updateComplete;
|
|
131
|
+
|
|
132
|
+
const removeButton = el.shadowRoot?.querySelector(
|
|
133
|
+
'.ia-button.danger'
|
|
134
|
+
) as HTMLButtonElement;
|
|
135
|
+
expect(removeButton).to.exist;
|
|
136
|
+
|
|
137
|
+
const showModalSpy = Sinon.spy(
|
|
138
|
+
el.modalManager as ModalManagerInterface,
|
|
139
|
+
'showModal'
|
|
140
|
+
);
|
|
141
|
+
|
|
142
|
+
await el.updateComplete;
|
|
143
|
+
removeButton?.click();
|
|
144
|
+
|
|
145
|
+
console.log(showModalSpy.args[0][0].config.title?.values[0]);
|
|
146
|
+
|
|
147
|
+
expect(showModalSpy.callCount).to.equal(1);
|
|
148
|
+
expect(el.modalManager?.classList.contains('remove-items')).to.be;
|
|
149
|
+
expect(showModalSpy.args[0][0].config.title?.values[0]).to.equal(
|
|
150
|
+
msg('Are you sure you want to remove these items?')
|
|
151
|
+
);
|
|
152
|
+
expect(showModalSpy.args[0][0].customModalContent).to.exist;
|
|
153
|
+
});
|
|
131
154
|
});
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/* eslint-disable import/no-duplicates */
|
|
2
|
+
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
+
import { html } from 'lit';
|
|
4
|
+
import Sinon from 'sinon';
|
|
5
|
+
import type { ManageableItem } from '../../src/models';
|
|
6
|
+
import type { RemoveItemsModalContent } from '../../src/manage/remove-items-modal-content';
|
|
7
|
+
import '../../src/manage/remove-items-modal-content';
|
|
8
|
+
|
|
9
|
+
describe('RemoveItemsModalContent', () => {
|
|
10
|
+
const items: ManageableItem[] = [
|
|
11
|
+
{ identifier: '1', title: 'Item 1', date: '2022-01-01' },
|
|
12
|
+
{ identifier: '2', title: 'Item 2', date: '2022-01-02' },
|
|
13
|
+
];
|
|
14
|
+
|
|
15
|
+
it('renders basic component', async () => {
|
|
16
|
+
const el = await fixture<RemoveItemsModalContent>(html`
|
|
17
|
+
<remove-items-modal-content
|
|
18
|
+
.items=${items}
|
|
19
|
+
.message=${''}
|
|
20
|
+
></remove-items-modal-content>
|
|
21
|
+
`);
|
|
22
|
+
|
|
23
|
+
expect(el.shadowRoot?.querySelector('ul')).to.exist;
|
|
24
|
+
expect(el.shadowRoot?.querySelector('.button-bar')).to.exist;
|
|
25
|
+
expect(el.shadowRoot?.querySelector('.remove-items-btn')).to.exist;
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('renders list of items', async () => {
|
|
29
|
+
const el = await fixture<RemoveItemsModalContent>(html`
|
|
30
|
+
<remove-items-modal-content
|
|
31
|
+
.items=${items}
|
|
32
|
+
.message=${''}
|
|
33
|
+
></remove-items-modal-content>
|
|
34
|
+
`);
|
|
35
|
+
|
|
36
|
+
const listItems = el.shadowRoot?.querySelectorAll('li');
|
|
37
|
+
expect(listItems).to.have.lengthOf(2);
|
|
38
|
+
|
|
39
|
+
listItems?.forEach((item, index) => {
|
|
40
|
+
expect(item.querySelector('.item-title')?.textContent).to.equal(
|
|
41
|
+
items[index].title
|
|
42
|
+
);
|
|
43
|
+
expect(item.querySelector('.item-date')?.textContent).to.equal(
|
|
44
|
+
items[index].date
|
|
45
|
+
);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('renders message', async () => {
|
|
50
|
+
const message = 'This is a test message';
|
|
51
|
+
const el = await fixture<RemoveItemsModalContent>(html`
|
|
52
|
+
<remove-items-modal-content
|
|
53
|
+
.items=${[]}
|
|
54
|
+
.message=${message}
|
|
55
|
+
></remove-items-modal-content>
|
|
56
|
+
`);
|
|
57
|
+
|
|
58
|
+
expect(el.shadowRoot?.querySelector('.message')?.textContent).to.equal(
|
|
59
|
+
message
|
|
60
|
+
);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it('dispatches confirm event when remove items button is clicked', async () => {
|
|
64
|
+
const el = await fixture<RemoveItemsModalContent>(html`
|
|
65
|
+
<remove-items-modal-content
|
|
66
|
+
.items=${items}
|
|
67
|
+
.message=${''}
|
|
68
|
+
></remove-items-modal-content>
|
|
69
|
+
`);
|
|
70
|
+
|
|
71
|
+
const spy = Sinon.spy();
|
|
72
|
+
el.addEventListener('confirm', spy);
|
|
73
|
+
|
|
74
|
+
const button = el.shadowRoot?.querySelector(
|
|
75
|
+
'.remove-items-btn'
|
|
76
|
+
) as HTMLInputElement;
|
|
77
|
+
button?.click();
|
|
78
|
+
|
|
79
|
+
expect(spy.calledOnce).to.be.true;
|
|
80
|
+
expect(spy.args[0][0].detail.items).to.deep.equal(items);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
// import { hmrPlugin, presets } from '@open-wc/dev-server-hmr';
|
|
2
|
-
|
|
3
|
-
/** Use Hot Module replacement by adding --hmr to the start command */
|
|
4
|
-
const hmr = process.argv.includes('--hmr');
|
|
5
|
-
|
|
6
|
-
export default /** @type {import('@web/dev-server').DevServerConfig} */ ({
|
|
7
|
-
nodeResolve: true,
|
|
8
|
-
open: '/',
|
|
9
|
-
watch: !hmr,
|
|
10
|
-
|
|
11
|
-
/** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
|
|
12
|
-
// esbuildTarget: 'auto'
|
|
13
|
-
|
|
14
|
-
/** Set appIndex to enable SPA routing */
|
|
15
|
-
// appIndex: 'demo/index.html',
|
|
16
|
-
|
|
17
|
-
/** Confgure bare import resolve plugin */
|
|
18
|
-
// nodeResolve: {
|
|
19
|
-
// exportConditions: ['browser', 'development']
|
|
20
|
-
// },
|
|
21
|
-
|
|
22
|
-
plugins: [
|
|
23
|
-
/** Use Hot Module Replacement by uncommenting. Requires @open-wc/dev-server-hmr plugin */
|
|
24
|
-
// hmr && hmrPlugin({ exclude: ['**/*/node_modules/**/*'], presets: [presets.litElement] }),
|
|
25
|
-
],
|
|
26
|
-
|
|
27
|
-
http2: true,
|
|
28
|
-
sslCert: './local.archive.org.cert',
|
|
29
|
-
sslKey: './local.archive.org.key',
|
|
30
|
-
});
|
|
1
|
+
// import { hmrPlugin, presets } from '@open-wc/dev-server-hmr';
|
|
2
|
+
|
|
3
|
+
/** Use Hot Module replacement by adding --hmr to the start command */
|
|
4
|
+
const hmr = process.argv.includes('--hmr');
|
|
5
|
+
|
|
6
|
+
export default /** @type {import('@web/dev-server').DevServerConfig} */ ({
|
|
7
|
+
nodeResolve: true,
|
|
8
|
+
open: '/',
|
|
9
|
+
watch: !hmr,
|
|
10
|
+
|
|
11
|
+
/** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
|
|
12
|
+
// esbuildTarget: 'auto'
|
|
13
|
+
|
|
14
|
+
/** Set appIndex to enable SPA routing */
|
|
15
|
+
// appIndex: 'demo/index.html',
|
|
16
|
+
|
|
17
|
+
/** Confgure bare import resolve plugin */
|
|
18
|
+
// nodeResolve: {
|
|
19
|
+
// exportConditions: ['browser', 'development']
|
|
20
|
+
// },
|
|
21
|
+
|
|
22
|
+
plugins: [
|
|
23
|
+
/** Use Hot Module Replacement by uncommenting. Requires @open-wc/dev-server-hmr plugin */
|
|
24
|
+
// hmr && hmrPlugin({ exclude: ['**/*/node_modules/**/*'], presets: [presets.litElement] }),
|
|
25
|
+
],
|
|
26
|
+
|
|
27
|
+
http2: true,
|
|
28
|
+
sslCert: './local.archive.org.cert',
|
|
29
|
+
sslKey: './local.archive.org.key',
|
|
30
|
+
});
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
// import { playwrightLauncher } from '@web/test-runner-playwright';
|
|
2
|
-
|
|
3
|
-
const filteredLogs = ['Running in dev mode', 'lit-html is in dev mode'];
|
|
4
|
-
|
|
5
|
-
export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({
|
|
6
|
-
/** Test files to run */
|
|
7
|
-
files: 'dist/test/**/*.test.js',
|
|
8
|
-
|
|
9
|
-
/** Resolve bare module imports */
|
|
10
|
-
nodeResolve: {
|
|
11
|
-
exportConditions: ['browser', 'development'],
|
|
12
|
-
},
|
|
13
|
-
|
|
14
|
-
/** Filter out lit dev mode logs */
|
|
15
|
-
filterBrowserLogs(log) {
|
|
16
|
-
for (const arg of log.args) {
|
|
17
|
-
if (typeof arg === 'string' && filteredLogs.some(l => arg.includes(l))) {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
return true;
|
|
22
|
-
},
|
|
23
|
-
|
|
24
|
-
/** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
|
|
25
|
-
// esbuildTarget: 'auto',
|
|
26
|
-
|
|
27
|
-
/** Amount of browsers to run concurrently */
|
|
28
|
-
// concurrentBrowsers: 2,
|
|
29
|
-
|
|
30
|
-
/** Amount of test files per browser to test concurrently */
|
|
31
|
-
// concurrency: 1,
|
|
32
|
-
|
|
33
|
-
/** Browsers to run tests on */
|
|
34
|
-
// browsers: [
|
|
35
|
-
// playwrightLauncher({ product: 'chromium' }),
|
|
36
|
-
// playwrightLauncher({ product: 'firefox' }),
|
|
37
|
-
// playwrightLauncher({ product: 'webkit' }),
|
|
38
|
-
// ],
|
|
39
|
-
|
|
40
|
-
// See documentation for all available options
|
|
41
|
-
});
|
|
1
|
+
// import { playwrightLauncher } from '@web/test-runner-playwright';
|
|
2
|
+
|
|
3
|
+
const filteredLogs = ['Running in dev mode', 'lit-html is in dev mode'];
|
|
4
|
+
|
|
5
|
+
export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({
|
|
6
|
+
/** Test files to run */
|
|
7
|
+
files: 'dist/test/**/*.test.js',
|
|
8
|
+
|
|
9
|
+
/** Resolve bare module imports */
|
|
10
|
+
nodeResolve: {
|
|
11
|
+
exportConditions: ['browser', 'development'],
|
|
12
|
+
},
|
|
13
|
+
|
|
14
|
+
/** Filter out lit dev mode logs */
|
|
15
|
+
filterBrowserLogs(log) {
|
|
16
|
+
for (const arg of log.args) {
|
|
17
|
+
if (typeof arg === 'string' && filteredLogs.some(l => arg.includes(l))) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return true;
|
|
22
|
+
},
|
|
23
|
+
|
|
24
|
+
/** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
|
|
25
|
+
// esbuildTarget: 'auto',
|
|
26
|
+
|
|
27
|
+
/** Amount of browsers to run concurrently */
|
|
28
|
+
// concurrentBrowsers: 2,
|
|
29
|
+
|
|
30
|
+
/** Amount of test files per browser to test concurrently */
|
|
31
|
+
// concurrency: 1,
|
|
32
|
+
|
|
33
|
+
/** Browsers to run tests on */
|
|
34
|
+
// browsers: [
|
|
35
|
+
// playwrightLauncher({ product: 'chromium' }),
|
|
36
|
+
// playwrightLauncher({ product: 'firefox' }),
|
|
37
|
+
// playwrightLauncher({ product: 'webkit' }),
|
|
38
|
+
// ],
|
|
39
|
+
|
|
40
|
+
// See documentation for all available options
|
|
41
|
+
});
|