@internetarchive/collection-browser 0.3.2-alpha.4 → 0.3.2
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 +43 -43
- package/dist/src/app-root.js +233 -233
- 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 +247 -247
- package/dist/src/collection-browser.js +1419 -1418
- package/dist/src/collection-browser.js.map +1 -1
- 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 +74 -74
- package/dist/src/collection-facets/more-facets-content.js +330 -330
- package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
- package/dist/src/collection-facets/more-facets-pagination.js +192 -192
- package/dist/src/collection-facets.d.ts +73 -73
- package/dist/src/collection-facets.js +507 -507
- package/dist/src/collection-facets.js.map +1 -1
- package/dist/src/empty-placeholder.d.ts +11 -11
- package/dist/src/empty-placeholder.js +42 -42
- 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 +97 -97
- package/dist/src/models.js +100 -100
- package/dist/src/restoration-state-handler.d.ts +45 -45
- package/dist/src/restoration-state-handler.js +220 -220
- package/dist/src/sort-filter-bar/alpha-bar.d.ts +9 -9
- package/dist/src/sort-filter-bar/alpha-bar.js +41 -41
- 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-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 +107 -107
- package/dist/src/sort-filter-bar/sort-filter-bar.js +423 -423
- 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 +8 -8
- package/dist/src/tiles/grid/account-tile.js +20 -20
- package/dist/src/tiles/grid/collection-tile.d.ts +7 -7
- package/dist/src/tiles/grid/collection-tile.js +23 -23
- package/dist/src/tiles/grid/item-tile.d.ts +24 -24
- package/dist/src/tiles/grid/item-tile.js +87 -87
- package/dist/src/tiles/grid/tile-stats.d.ts +10 -10
- package/dist/src/tiles/grid/tile-stats.js +35 -35
- package/dist/src/tiles/image-block.d.ts +17 -17
- package/dist/src/tiles/image-block.js +69 -73
- package/dist/src/tiles/image-block.js.map +1 -1
- package/dist/src/tiles/item-image.d.ts +31 -31
- package/dist/src/tiles/item-image.js +103 -103
- 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 +20 -20
- package/dist/src/tiles/list/tile-list-compact.js +88 -87
- package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
- package/dist/src/tiles/list/tile-list.d.ts +50 -50
- package/dist/src/tiles/list/tile-list.js +265 -264
- 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 +7 -7
- package/dist/src/tiles/overlay/icon-overlay.js +30 -31
- package/dist/src/tiles/overlay/icon-overlay.js.map +1 -1
- package/dist/src/tiles/overlay/text-overlay.d.ts +8 -8
- package/dist/src/tiles/overlay/text-overlay.js +31 -31
- package/dist/src/tiles/text-snippet-block.d.ts +29 -29
- package/dist/src/tiles/text-snippet-block.js +81 -81
- package/dist/src/tiles/tile-dispatcher.d.ts +36 -36
- package/dist/src/tiles/tile-dispatcher.js +128 -128
- package/dist/src/utils/analytics-events.d.ts +18 -18
- package/dist/src/utils/analytics-events.js +20 -20
- 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/test/collection-browser.test.d.ts +1 -1
- package/dist/test/collection-browser.test.js +333 -318
- package/dist/test/collection-browser.test.js.map +1 -1
- 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 +91 -91
- 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.test.d.ts +2 -2
- package/dist/test/collection-facets.test.js +423 -423
- package/dist/test/collection-facets.test.js.map +1 -1
- 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 -0
- package/dist/test/image-block.test.js +79 -0
- package/dist/test/image-block.test.js.map +1 -0
- package/dist/test/item-image.test.d.ts +1 -1
- package/dist/test/item-image.test.js +56 -56
- 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 +5 -5
- package/dist/test/mocks/mock-search-responses.js +103 -103
- package/dist/test/mocks/mock-search-service.d.ts +13 -13
- package/dist/test/mocks/mock-search-service.js +25 -25
- package/dist/test/restoration-state-handler.test.d.ts +1 -1
- package/dist/test/restoration-state-handler.test.js +117 -117
- 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 +113 -113
- package/dist/test/text-overlay.test.d.ts +1 -1
- package/dist/test/text-overlay.test.js +41 -41
- 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/item-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/item-tile.test.js +107 -107
- package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -0
- package/dist/test/tiles/list/tile-list-compact.test.js +31 -0
- package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -0
- package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
- package/dist/test/tiles/list/tile-list.test.js +36 -36
- 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/index.html +24 -24
- package/local.archive.org.cert +86 -86
- package/local.archive.org.key +27 -27
- package/package.json +115 -115
- package/renovate.json +6 -6
- package/src/collection-browser.ts +1547 -1547
- package/src/collection-facets.ts +582 -582
- package/src/tiles/image-block.ts +7 -10
- package/src/tiles/list/tile-list-compact.ts +1 -0
- package/src/tiles/list/tile-list.ts +1 -0
- package/src/tiles/overlay/icon-overlay.ts +3 -4
- package/test/collection-browser.test.ts +24 -1
- package/test/collection-facets.test.ts +556 -556
- package/test/image-block.test.ts +86 -0
- package/test/tiles/list/tile-list-compact.test.ts +38 -0
- package/tsconfig.json +21 -21
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-facets.test.js","sourceRoot":"","sources":["../../test/collection-facets.test.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EACL,YAAY,GAEb,MAAM,gCAAgC,CAAC;AAExC,OAAO,gCAAgC,CAAC;AACxC,OAAO,0BAA0B,CAAC;AAElC,OAAO,EACL,mBAAmB,GAEpB,MAAM,oDAAoD,CAAC;AAE5D,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;;QAC1B,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,qCAAqC,IAAI,uBAAuB,CACrE,CAAC;QAEF,MAAM,CACJ,MAAA,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,YAAY,CAAC,0CAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAC1E,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAEb,EAAE,CAAC,aAAa,GAAG,KAAK,CAAC;QACzB,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,CACJ,MAAA,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,YAAY,CAAC,0CAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAC1E,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;;QAC9C,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,yCAAyC,CAC9C,CAAC;QAEF,MAAM,IAAI,GAAgC;YACxC,OAAO,EAAE,IAAI,WAAW,CAAC;gBACvB,OAAO,EAAE;oBACP;wBACE,GAAG,EAAE,KAAK;wBACV,SAAS,EAAE,CAAC;qBACb;iBACF;aACF,CAAC;SACH,CAAC;QAEF,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;QACvB,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,WAAW,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;QACpE,MAAM,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAExC,MAAM,eAAe,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,CAAC,CAAC,CAAC;QACzC,MAAM,gBAAgB,GAAG,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,aAAa,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CACjC,aAAa,CAAC,iBAAiB,CAAC,0CAChC,UAAU,0CAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE,CACrE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CACvB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;;QAClD,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,yCAAyC,CAC9C,CAAC;QAEF,MAAM,IAAI,GAAgC;YACxC,OAAO,EAAE,IAAI,WAAW,CAAC;gBACvB,OAAO,EAAE;oBACP;wBACE,GAAG,EAAE,KAAK;wBACV,SAAS,EAAE,CAAC;qBACb;iBACF;aACF,CAAC;YACF,SAAS,EAAE,IAAI,WAAW,CAAC;gBACzB,OAAO,EAAE;oBACP;wBACE,GAAG,EAAE,KAAK;wBACV,SAAS,EAAE,EAAE;qBACd;iBACF;aACF,CAAC;SACH,CAAC;QAEF,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;QACvB,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,WAAW,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;QACpE,MAAM,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;;QAClD,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,yCAAyC,CAC9C,CAAC;QAEF,MAAM,IAAI,GAAgC;YACxC,UAAU,EAAE,IAAI,WAAW,CAAC;gBAC1B,OAAO,EAAE;oBACP;wBACE,GAAG,EAAE,KAAK;wBACV,SAAS,EAAE,CAAC;qBACb;iBACF;aACF,CAAC;SACH,CAAC;QAEF,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;QACvB,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,cAAc,GAAG,MAAA,MAAA,MAAA,EAAE,CAAC,UAAU,0CAChC,aAAa,CAAC,iBAAiB,CAAC,0CAChC,UAAU,0CAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;QACvD,MAAM,CAAC,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAC1E,MAAM,CAAC,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,aAAa,0CAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAClE,cAAc,CACf,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;;QAC3D,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,yCAAyC,CAC9C,CAAC;QAEF,MAAM,IAAI,GAAgC;YACxC,OAAO,EAAE,IAAI,WAAW,CAAC;gBACvB,OAAO,EAAE;oBACP;wBACE,GAAG,EAAE,KAAK;wBACV,SAAS,EAAE,CAAC;qBACb;iBACF;aACF,CAAC;SACH,CAAC;QAEF,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;QACvB,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,cAAc,GAAG,MAAA,MAAA,MAAA,EAAE,CAAC,UAAU,0CAChC,aAAa,CAAC,iBAAiB,CAAC,0CAChC,UAAU,0CAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;QACvD,MAAM,CAAC,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CACxD,iBAAiB,CAClB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;;QACvE,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,yCAAyC,CAC9C,CAAC;QAEF,MAAM,mBAAmB,GACvB,IAAI,mBAAmB,EAAE,CAAC;QAE5B,MAAM,IAAI,GAAgC;YACxC,QAAQ,EAAE,IAAI,WAAW,CAAC;gBACxB,OAAO,EAAE;oBACP;wBACE,GAAG,EAAE,SAAS;wBACd,SAAS,EAAE,CAAC;qBACb;iBACF;aACF,CAAC;SACH,CAAC;QAEF,EAAE,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC7C,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;QACvB,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,cAAc,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACvE,MAAM,aAAa,GACjB,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,0CAAE,aAAa,CAAC,cAAc,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;;QACnF,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,yCAAyC,CAC9C,CAAC;QAEF,MAAM,mBAAmB,GACvB,IAAI,mBAAmB,EAAE,CAAC;QAE5B,MAAM,cAAc,GAAmB;YACrC,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE;gBACR,EAAE,EAAE;oBACF,GAAG,EAAE,IAAI;oBACT,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,UAAU;iBAClB;aACF;YACD,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,EAAE;SACT,CAAC;QAEF,EAAE,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC7C,EAAE,CAAC,cAAc,GAAG,cAAc,CAAC;QACnC,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,cAAc,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACvE,MAAM,aAAa,GACjB,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,0CAAE,aAAa,CAAC,cAAc,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;;QAChE,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,yCAAyC,CAC9C,CAAC;QAEF,MAAM,IAAI,GAAgC;YACxC,OAAO,EAAE,IAAI,WAAW,CAAC;gBACvB,OAAO,EAAE;oBACP;wBACE,GAAG,EAAE,aAAa;wBAClB,SAAS,EAAE,CAAC;qBACb;oBACD;wBACE,GAAG,EAAE,qBAAqB;wBAC1B,SAAS,EAAE,CAAC;qBACb;oBACD;wBACE,GAAG,EAAE,aAAa;wBAClB,SAAS,EAAE,CAAC;qBACb;iBACF;aACF,CAAC;SACH,CAAC;QAEF,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;QACvB,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,cAAc,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACvE,MAAM,aAAa,GACjB,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,0CAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAC/D,MAAM,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,CAAC,EAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CACzD,iBAAiB,CAClB,CAAC;QACF,MAAM,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,CAAC,EAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CACzD,gBAAgB,CACjB,CAAC;QACF,MAAM,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,CAAC,EAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CACzD,kBAAkB,CACnB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;;QAClF,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,yCAAyC,CAC9C,CAAC;QAEF,MAAM,cAAc,GAAmB;YACrC,OAAO,EAAE,EAAE;YACX,OAAO,EAAE;gBACP,WAAW,EAAE;oBACX,GAAG,EAAE,aAAa;oBAClB,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,UAAU;iBAClB;gBACD,mBAAmB,EAAE;oBACnB,GAAG,EAAE,qBAAqB;oBAC1B,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,UAAU;iBAClB;gBACD,WAAW,EAAE;oBACX,GAAG,EAAE,aAAa;oBAClB,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,QAAQ;iBAChB;aACF;YACD,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,EAAE;SACT,CAAC;QAEF,EAAE,CAAC,cAAc,GAAG,cAAc,CAAC;QACnC,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,cAAc,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACvE,MAAM,aAAa,GACjB,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,0CAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAC/D,MAAM,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,CAAC,EAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CACzD,iBAAiB,CAClB,CAAC;QACF,MAAM,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,CAAC,EAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CACzD,gBAAgB,CACjB,CAAC;QACF,MAAM,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,CAAC,EAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CACzD,kBAAkB,CACnB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;;QACjG,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,yCAAyC,CAC9C,CAAC;QAEF,MAAM,IAAI,GAAgC;YACxC,OAAO,EAAE,IAAI,WAAW,CAAC;gBACvB,OAAO,EAAE;oBACP;wBACE,GAAG,EAAE,aAAa;wBAClB,SAAS,EAAE,CAAC;qBACb;oBACD;wBACE,GAAG,EAAE,eAAe;wBACpB,SAAS,EAAE,CAAC;qBACb;oBACD;wBACE,GAAG,EAAE,qBAAqB;wBAC1B,SAAS,EAAE,CAAC;qBACb;oBACD;wBACE,GAAG,EAAE,cAAc;wBACnB,SAAS,EAAE,CAAC;qBACb;oBACD;wBACE,GAAG,EAAE,qBAAqB;wBAC1B,SAAS,EAAE,CAAC;qBACb;oBACD;wBACE,GAAG,EAAE,aAAa;wBAClB,SAAS,EAAE,CAAC;qBACb;oBACD;wBACE,GAAG,EAAE,uBAAuB;wBAC5B,SAAS,EAAE,CAAC;qBACb;iBACF;aACF,CAAC;SACH,CAAC;QAEF,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;QACvB,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,cAAc,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACvE,MAAM,aAAa,GACjB,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,0CAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAC/D,MAAM,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,CAAC,EAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CACzD,iBAAiB,CAClB,CAAC;QACF,MAAM,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,CAAC,EAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CACzD,gBAAgB,CACjB,CAAC;QACF,MAAM,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,CAAC,EAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CACzD,kBAAkB,CACnB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;;QACjE,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,yCAAyC,CAC9C,CAAC;QAEF,MAAM,IAAI,GAAgC;YACxC,OAAO,EAAE,IAAI,WAAW,CAAC;gBACvB,OAAO,EAAE;oBACP;wBACE,GAAG,EAAE,aAAa;wBAClB,SAAS,EAAE,CAAC;qBACb;oBACD;wBACE,GAAG,EAAE,eAAe;wBACpB,SAAS,EAAE,CAAC;qBACb;oBACD;wBACE,GAAG,EAAE,qBAAqB;wBAC1B,SAAS,EAAE,CAAC;qBACb;oBACD;wBACE,GAAG,EAAE,cAAc;wBACnB,SAAS,EAAE,CAAC;qBACb;oBACD;wBACE,GAAG,EAAE,qBAAqB;wBAC1B,SAAS,EAAE,CAAC;qBACb;oBACD;wBACE,GAAG,EAAE,aAAa;wBAClB,SAAS,EAAE,CAAC;qBACb;oBACD;wBACE,GAAG,EAAE,uBAAuB;wBAC5B,SAAS,EAAE,CAAC;qBACb;iBACF;aACF,CAAC;SACH,CAAC;QAEF,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;QACvB,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,QAAQ,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QAC5D,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;;YACnD,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,yCAAyC,CAC9C,CAAC;YAEF,MAAM,IAAI,GAAgC;gBACxC,OAAO,EAAE,IAAI,WAAW,CAAC;oBACvB,OAAO,EAAE;wBACP;4BACE,GAAG,EAAE,KAAK;4BACV,SAAS,EAAE,CAAC;yBACb;qBACF;iBACF,CAAC;aACH,CAAC;YAEF,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;YACvB,MAAM,EAAE,CAAC,cAAc,CAAC;YAExB,MAAM,QAAQ,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,YAAY,CAAC,CAAC;YAC5D,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;;YACrC,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,yCAAyC,CAC9C,CAAC;YAEF,MAAM,IAAI,GAAgC;gBACxC,OAAO,EAAE,IAAI,WAAW,CAAC;oBACvB,OAAO,EAAE;wBACP;4BACE,GAAG,EAAE,KAAK;4BACV,SAAS,EAAE,CAAC;yBACb;qBACF;iBACF,CAAC;aACH,CAAC;YAEF,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;YACvB,MAAM,EAAE,CAAC,cAAc,CAAC;YAExB,MAAM,WAAW,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,eAAe,CAAC,CAAC;YAClE,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;;YAC/D,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,yCAAyC,CAC9C,CAAC;YAEF,MAAM,IAAI,GAAgC;gBACxC,OAAO,EAAE,IAAI,WAAW,CAAC;oBACvB,OAAO,EAAE;wBACP;4BACE,GAAG,EAAE,aAAa;4BAClB,SAAS,EAAE,CAAC;yBACb;qBACF;iBACF,CAAC;aACH,CAAC;YAEF,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;YACvB,MAAM,EAAE,CAAC,cAAc,CAAC;YAExB,MAAM,WAAW,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,eAAe,CAAC,CAAC;YAClE,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;;YAClC,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA;0BACc,IAAI,YAAY,EAAE;8BACd,CACvB,CAAC;YAEF,MAAM,IAAI,GAAgC;gBACxC,OAAO,EAAE,IAAI,WAAW,CAAC;oBACvB,OAAO,EAAE;wBACP;4BACE,GAAG,EAAE,KAAK;4BACV,SAAS,EAAE,CAAC;yBACb;wBACD;4BACE,GAAG,EAAE,IAAI;4BACT,SAAS,EAAE,CAAC;yBACb;wBACD;4BACE,GAAG,EAAE,KAAK;4BACV,SAAS,EAAE,CAAC;yBACb;wBACD;4BACE,GAAG,EAAE,MAAM;4BACX,SAAS,EAAE,CAAC;yBACb;wBACD;4BACE,GAAG,EAAE,OAAO;4BACZ,SAAS,EAAE,CAAC;yBACb;wBACD;4BACE,GAAG,EAAE,OAAO;4BACZ,SAAS,EAAE,CAAC;yBACb;wBACD;4BACE,GAAG,EAAE,MAAM;4BACX,SAAS,EAAE,CAAC;yBACb;qBACF;iBACF,CAAC;aACH,CAAC;YAEF,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;YACvB,MAAM,EAAE,CAAC,cAAc,CAAC;YAExB,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE;gBACxC,UAAU,GAAI,CAAiB,CAAC,MAAM,CAAC;gBACvC,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAC3C,YAAY,CACQ,CAAC;YACvB,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW;YAEtC,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAC5B,EAAE,CAAC,YAAqC,EACxC,WAAW,CACZ,CAAC;YACF,qBAAqB;YACrB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,EAAE,CAAC;YAClB,MAAM,EAAE,CAAC,cAAc,CAAC;YAExB,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAA,EAAE,CAAC,YAAY,0CAAE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;iBACpE,IAAI,CAAC;YACR,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC/B,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAwB,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/* eslint-disable import/no-duplicates */\r\nimport { expect, fixture } from '@open-wc/testing';\r\nimport sinon from 'sinon';\r\nimport { html } from 'lit';\r\nimport { Aggregation } from '@internetarchive/search-service';\r\nimport {\r\n ModalManager,\r\n ModalManagerInterface,\r\n} from '@internetarchive/modal-manager';\r\nimport type { CollectionFacets } from '../src/collection-facets';\r\nimport '@internetarchive/modal-manager';\r\nimport '../src/collection-facets';\r\nimport type { FacetOption, SelectedFacets } from '../src/models';\r\nimport {\r\n LanguageCodeHandler,\r\n LanguageCodeHandlerInterface,\r\n} from '../src/language-code-handler/language-code-handler';\r\n\r\ndescribe('Collection Facets', () => {\r\n it('has loader', async () => {\r\n const el = await fixture<CollectionFacets>(\r\n html`<collection-facets ?facetsLoading=${true}></collection-facets>`\r\n );\r\n\r\n expect(\r\n el.shadowRoot?.querySelector('#container')?.classList.contains('loading')\r\n ).to.be.true;\r\n\r\n el.facetsLoading = false;\r\n await el.updateComplete;\r\n\r\n expect(\r\n el.shadowRoot?.querySelector('#container')?.classList.contains('loading')\r\n ).to.be.false;\r\n });\r\n it('renders aggregations as facets', async () => {\r\n const el = await fixture<CollectionFacets>(\r\n html`<collection-facets></collection-facets>`\r\n );\r\n\r\n const aggs: Record<string, Aggregation> = {\r\n subject: new Aggregation({\r\n buckets: [\r\n {\r\n key: 'foo',\r\n doc_count: 5,\r\n },\r\n ],\r\n }),\r\n };\r\n\r\n el.aggregations = aggs;\r\n await el.updateComplete;\r\n const facetGroups = el.shadowRoot?.querySelectorAll('.facet-group');\r\n expect(facetGroups?.length).to.equal(1);\r\n\r\n const titleFacetGroup = facetGroups?.[0];\r\n const facetGroupHeader = titleFacetGroup?.querySelector('h1');\r\n expect(facetGroupHeader?.textContent?.trim()).to.equal('Subject');\r\n const titleFacetRow = titleFacetGroup\r\n ?.querySelector('facets-template')\r\n ?.shadowRoot?.querySelector('.facet-row');\r\n console.log(titleFacetGroup?.querySelector('facets-template'));\r\n expect(titleFacetRow?.textContent?.trim()).to.satisfy((text: string) =>\r\n /^foo\\s*5$/.test(text)\r\n );\r\n });\r\n\r\n it('renders multiple aggregation types', async () => {\r\n const el = await fixture<CollectionFacets>(\r\n html`<collection-facets></collection-facets>`\r\n );\r\n\r\n const aggs: Record<string, Aggregation> = {\r\n subject: new Aggregation({\r\n buckets: [\r\n {\r\n key: 'foo',\r\n doc_count: 5,\r\n },\r\n ],\r\n }),\r\n mediatype: new Aggregation({\r\n buckets: [\r\n {\r\n key: 'bar',\r\n doc_count: 10,\r\n },\r\n ],\r\n }),\r\n };\r\n\r\n el.aggregations = aggs;\r\n await el.updateComplete;\r\n\r\n const facetGroups = el.shadowRoot?.querySelectorAll('.facet-group');\r\n expect(facetGroups?.length).to.equal(2);\r\n });\r\n\r\n it('renders collection facets as links', async () => {\r\n const el = await fixture<CollectionFacets>(\r\n html`<collection-facets></collection-facets>`\r\n );\r\n\r\n const aggs: Record<string, Aggregation> = {\r\n collection: new Aggregation({\r\n buckets: [\r\n {\r\n key: 'foo',\r\n doc_count: 5,\r\n },\r\n ],\r\n }),\r\n };\r\n\r\n el.aggregations = aggs;\r\n await el.updateComplete;\r\n\r\n const collectionName = el.shadowRoot\r\n ?.querySelector('facets-template')\r\n ?.shadowRoot?.querySelector('async-collection-name');\r\n expect(collectionName?.parentElement).to.be.instanceOf(HTMLAnchorElement);\r\n expect(collectionName?.parentElement?.getAttribute('href')).to.equal(\r\n '/details/foo'\r\n );\r\n });\r\n\r\n it('renders non-collection facets without links', async () => {\r\n const el = await fixture<CollectionFacets>(\r\n html`<collection-facets></collection-facets>`\r\n );\r\n\r\n const aggs: Record<string, Aggregation> = {\r\n subject: new Aggregation({\r\n buckets: [\r\n {\r\n key: 'foo',\r\n doc_count: 5,\r\n },\r\n ],\r\n }),\r\n };\r\n\r\n el.aggregations = aggs;\r\n await el.updateComplete;\r\n\r\n const collectionName = el.shadowRoot\r\n ?.querySelector('facets-template')\r\n ?.shadowRoot?.querySelector('async-collection-name');\r\n expect(collectionName?.parentElement).to.not.be.instanceOf(\r\n HTMLAnchorElement\r\n );\r\n });\r\n\r\n it('renders language facets with their human-readable names', async () => {\r\n const el = await fixture<CollectionFacets>(\r\n html`<collection-facets></collection-facets>`\r\n );\r\n\r\n const languageCodeHandler: LanguageCodeHandlerInterface =\r\n new LanguageCodeHandler();\r\n\r\n const aggs: Record<string, Aggregation> = {\r\n language: new Aggregation({\r\n buckets: [\r\n {\r\n key: 'English',\r\n doc_count: 3,\r\n },\r\n ],\r\n }),\r\n };\r\n\r\n el.languageCodeHandler = languageCodeHandler;\r\n el.aggregations = aggs;\r\n await el.updateComplete;\r\n\r\n const facetsTemplate = el.shadowRoot?.querySelector('facets-template');\r\n const languageTitle =\r\n facetsTemplate?.shadowRoot?.querySelector('.facet-title');\r\n expect(languageTitle?.textContent?.trim()).to.equal('English');\r\n });\r\n\r\n it('renders selected/negative language facets with human-readable names', async () => {\r\n const el = await fixture<CollectionFacets>(\r\n html`<collection-facets></collection-facets>`\r\n );\r\n\r\n const languageCodeHandler: LanguageCodeHandlerInterface =\r\n new LanguageCodeHandler();\r\n\r\n const selectedFacets: SelectedFacets = {\r\n subject: {},\r\n lending: {},\r\n mediatype: {},\r\n language: {\r\n en: {\r\n key: 'en',\r\n count: 5,\r\n state: 'selected',\r\n },\r\n },\r\n creator: {},\r\n collection: {},\r\n year: {},\r\n };\r\n\r\n el.languageCodeHandler = languageCodeHandler;\r\n el.selectedFacets = selectedFacets;\r\n await el.updateComplete;\r\n\r\n const facetsTemplate = el.shadowRoot?.querySelector('facets-template');\r\n const languageTitle =\r\n facetsTemplate?.shadowRoot?.querySelector('.facet-title');\r\n expect(languageTitle?.textContent?.trim()).to.equal('English');\r\n });\r\n\r\n it('renders lending facets with human-readable names', async () => {\r\n const el = await fixture<CollectionFacets>(\r\n html`<collection-facets></collection-facets>`\r\n );\r\n\r\n const aggs: Record<string, Aggregation> = {\r\n lending: new Aggregation({\r\n buckets: [\r\n {\r\n key: 'is_lendable',\r\n doc_count: 3,\r\n },\r\n {\r\n key: 'available_to_borrow',\r\n doc_count: 2,\r\n },\r\n {\r\n key: 'is_readable',\r\n doc_count: 1,\r\n },\r\n ],\r\n }),\r\n };\r\n\r\n el.aggregations = aggs;\r\n await el.updateComplete;\r\n\r\n const facetsTemplate = el.shadowRoot?.querySelector('facets-template');\r\n const lendingTitles =\r\n facetsTemplate?.shadowRoot?.querySelectorAll('.facet-title');\r\n expect(lendingTitles?.length).to.equal(3);\r\n expect(lendingTitles?.item(0).textContent?.trim()).to.equal(\r\n 'Lending Library'\r\n );\r\n expect(lendingTitles?.item(1).textContent?.trim()).to.equal(\r\n 'Borrow 14 Days'\r\n );\r\n expect(lendingTitles?.item(2).textContent?.trim()).to.equal(\r\n 'Always Available'\r\n );\r\n });\r\n\r\n it('renders selected/negative lending facets with human-readable names', async () => {\r\n const el = await fixture<CollectionFacets>(\r\n html`<collection-facets></collection-facets>`\r\n );\r\n\r\n const selectedFacets: SelectedFacets = {\r\n subject: {},\r\n lending: {\r\n is_lendable: {\r\n key: 'is_lendable',\r\n count: 5,\r\n state: 'selected',\r\n },\r\n available_to_borrow: {\r\n key: 'available_to_borrow',\r\n count: 4,\r\n state: 'selected',\r\n },\r\n is_readable: {\r\n key: 'is_readable',\r\n count: 3,\r\n state: 'hidden',\r\n },\r\n },\r\n mediatype: {},\r\n language: {},\r\n creator: {},\r\n collection: {},\r\n year: {},\r\n };\r\n\r\n el.selectedFacets = selectedFacets;\r\n await el.updateComplete;\r\n\r\n const facetsTemplate = el.shadowRoot?.querySelector('facets-template');\r\n const lendingTitles =\r\n facetsTemplate?.shadowRoot?.querySelectorAll('.facet-title');\r\n expect(lendingTitles?.length).to.equal(3);\r\n expect(lendingTitles?.item(0).textContent?.trim()).to.equal(\r\n 'Lending Library'\r\n );\r\n expect(lendingTitles?.item(1).textContent?.trim()).to.equal(\r\n 'Borrow 14 Days'\r\n );\r\n expect(lendingTitles?.item(2).textContent?.trim()).to.equal(\r\n 'Always Available'\r\n );\r\n });\r\n\r\n it('only renders lending facets for is_lendable, available_to_borrow, and is_readable', async () => {\r\n const el = await fixture<CollectionFacets>(\r\n html`<collection-facets></collection-facets>`\r\n );\r\n\r\n const aggs: Record<string, Aggregation> = {\r\n lending: new Aggregation({\r\n buckets: [\r\n {\r\n key: 'is_lendable',\r\n doc_count: 5,\r\n },\r\n {\r\n key: 'is_borrowable',\r\n doc_count: 4,\r\n },\r\n {\r\n key: 'available_to_borrow',\r\n doc_count: 5,\r\n },\r\n {\r\n key: 'is_browsable',\r\n doc_count: 4,\r\n },\r\n {\r\n key: 'available_to_browse',\r\n doc_count: 5,\r\n },\r\n {\r\n key: 'is_readable',\r\n doc_count: 4,\r\n },\r\n {\r\n key: 'available_to_waitlist',\r\n doc_count: 5,\r\n },\r\n ],\r\n }),\r\n };\r\n\r\n el.aggregations = aggs;\r\n await el.updateComplete;\r\n\r\n const facetsTemplate = el.shadowRoot?.querySelector('facets-template');\r\n const lendingTitles =\r\n facetsTemplate?.shadowRoot?.querySelectorAll('.facet-title');\r\n expect(lendingTitles?.length).to.equal(3);\r\n expect(lendingTitles?.item(0).textContent?.trim()).to.equal(\r\n 'Lending Library'\r\n );\r\n expect(lendingTitles?.item(1).textContent?.trim()).to.equal(\r\n 'Borrow 14 Days'\r\n );\r\n expect(lendingTitles?.item(2).textContent?.trim()).to.equal(\r\n 'Always Available'\r\n );\r\n });\r\n\r\n it('does not render a More... link for lending facets', async () => {\r\n const el = await fixture<CollectionFacets>(\r\n html`<collection-facets></collection-facets>`\r\n );\r\n\r\n const aggs: Record<string, Aggregation> = {\r\n lending: new Aggregation({\r\n buckets: [\r\n {\r\n key: 'is_lendable',\r\n doc_count: 5,\r\n },\r\n {\r\n key: 'is_borrowable',\r\n doc_count: 4,\r\n },\r\n {\r\n key: 'available_to_borrow',\r\n doc_count: 5,\r\n },\r\n {\r\n key: 'is_browsable',\r\n doc_count: 4,\r\n },\r\n {\r\n key: 'available_to_browse',\r\n doc_count: 5,\r\n },\r\n {\r\n key: 'is_readable',\r\n doc_count: 4,\r\n },\r\n {\r\n key: 'available_to_waitlist',\r\n doc_count: 5,\r\n },\r\n ],\r\n }),\r\n };\r\n\r\n el.aggregations = aggs;\r\n await el.updateComplete;\r\n\r\n const moreLink = el.shadowRoot?.querySelector('.more-link');\r\n expect(moreLink).not.to.exist;\r\n });\r\n\r\n describe('More Facets', () => {\r\n it('Does not render < allowedFacetCount', async () => {\r\n const el = await fixture<CollectionFacets>(\r\n html`<collection-facets></collection-facets>`\r\n );\r\n\r\n const aggs: Record<string, Aggregation> = {\r\n subject: new Aggregation({\r\n buckets: [\r\n {\r\n key: 'foo',\r\n doc_count: 5,\r\n },\r\n ],\r\n }),\r\n };\r\n\r\n el.aggregations = aggs;\r\n await el.updateComplete;\r\n\r\n const moreLink = el.shadowRoot?.querySelector('.more-link');\r\n expect(moreLink).to.be.null;\r\n });\r\n\r\n it('renders sorting icons', async () => {\r\n const el = await fixture<CollectionFacets>(\r\n html`<collection-facets></collection-facets>`\r\n );\r\n\r\n const aggs: Record<string, Aggregation> = {\r\n subject: new Aggregation({\r\n buckets: [\r\n {\r\n key: 'foo',\r\n doc_count: 5,\r\n },\r\n ],\r\n }),\r\n };\r\n\r\n el.aggregations = aggs;\r\n await el.updateComplete;\r\n\r\n const sortingIcon = el.shadowRoot?.querySelector('.sorting-icon');\r\n expect(sortingIcon).to.exist;\r\n });\r\n\r\n it('does not render sorting icon for lending facets', async () => {\r\n const el = await fixture<CollectionFacets>(\r\n html`<collection-facets></collection-facets>`\r\n );\r\n\r\n const aggs: Record<string, Aggregation> = {\r\n lending: new Aggregation({\r\n buckets: [\r\n {\r\n key: 'is_readable',\r\n doc_count: 5,\r\n },\r\n ],\r\n }),\r\n };\r\n\r\n el.aggregations = aggs;\r\n await el.updateComplete;\r\n\r\n const sortingIcon = el.shadowRoot?.querySelector('.sorting-icon');\r\n expect(sortingIcon).not.to.exist;\r\n });\r\n\r\n it('Render More Facets', async () => {\r\n const el = await fixture<CollectionFacets>(\r\n html`<collection-facets\r\n .modalManager=${new ModalManager()}\r\n ></collection-facets>`\r\n );\r\n\r\n const aggs: Record<string, Aggregation> = {\r\n subject: new Aggregation({\r\n buckets: [\r\n {\r\n key: 'foo',\r\n doc_count: 5,\r\n },\r\n {\r\n key: 'fi',\r\n doc_count: 5,\r\n },\r\n {\r\n key: 'fum',\r\n doc_count: 5,\r\n },\r\n {\r\n key: 'flee',\r\n doc_count: 5,\r\n },\r\n {\r\n key: 'wheee',\r\n doc_count: 5,\r\n },\r\n {\r\n key: 'whooo',\r\n doc_count: 5,\r\n },\r\n {\r\n key: 'boop',\r\n doc_count: 5,\r\n },\r\n ],\r\n }),\r\n };\r\n\r\n el.aggregations = aggs;\r\n await el.updateComplete;\r\n\r\n let eventCaught = false;\r\n let eventFacet = '';\r\n el.addEventListener('showMoreFacets', e => {\r\n eventFacet = (e as CustomEvent).detail;\r\n eventCaught = true;\r\n });\r\n\r\n const moreLink = el.shadowRoot?.querySelector(\r\n '.more-link'\r\n ) as HTMLButtonElement;\r\n expect(moreLink).to.exist; // has link\r\n\r\n const showModalSpy = sinon.spy(\r\n el.modalManager as ModalManagerInterface,\r\n 'showModal'\r\n );\r\n // let's pop up modal\r\n moreLink?.click();\r\n await el.updateComplete;\r\n\r\n expect(showModalSpy.callCount).to.equal(1);\r\n expect(el.modalManager?.classList.contains('more-search-facets')).to.be\r\n .true;\r\n expect(eventCaught).to.be.true;\r\n expect(eventFacet).to.equal('subject' as FacetOption);\r\n });\r\n });\r\n});\r\n"]}
|
|
1
|
+
{"version":3,"file":"collection-facets.test.js","sourceRoot":"","sources":["../../test/collection-facets.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-duplicates */\nimport { expect, fixture } from '@open-wc/testing';\nimport sinon from 'sinon';\nimport { html } from 'lit';\nimport { Aggregation } from '@internetarchive/search-service';\nimport {\n ModalManager,\n ModalManagerInterface,\n} from '@internetarchive/modal-manager';\nimport type { CollectionFacets } from '../src/collection-facets';\nimport '@internetarchive/modal-manager';\nimport '../src/collection-facets';\nimport type { FacetOption, SelectedFacets } from '../src/models';\nimport {\n LanguageCodeHandler,\n LanguageCodeHandlerInterface,\n} from '../src/language-code-handler/language-code-handler';\n\ndescribe('Collection Facets', () => {\n it('has loader', async () => {\n const el = await fixture<CollectionFacets>(\n html`<collection-facets ?facetsLoading=${true}></collection-facets>`\n );\n\n expect(\n el.shadowRoot?.querySelector('#container')?.classList.contains('loading')\n ).to.be.true;\n\n el.facetsLoading = false;\n await el.updateComplete;\n\n expect(\n el.shadowRoot?.querySelector('#container')?.classList.contains('loading')\n ).to.be.false;\n });\n it('renders aggregations as facets', async () => {\n const el = await fixture<CollectionFacets>(\n html`<collection-facets></collection-facets>`\n );\n\n const aggs: Record<string, Aggregation> = {\n subject: new Aggregation({\n buckets: [\n {\n key: 'foo',\n doc_count: 5,\n },\n ],\n }),\n };\n\n el.aggregations = aggs;\n await el.updateComplete;\n const facetGroups = el.shadowRoot?.querySelectorAll('.facet-group');\n expect(facetGroups?.length).to.equal(1);\n\n const titleFacetGroup = facetGroups?.[0];\n const facetGroupHeader = titleFacetGroup?.querySelector('h1');\n expect(facetGroupHeader?.textContent?.trim()).to.equal('Subject');\n const titleFacetRow = titleFacetGroup\n ?.querySelector('facets-template')\n ?.shadowRoot?.querySelector('.facet-row');\n console.log(titleFacetGroup?.querySelector('facets-template'));\n expect(titleFacetRow?.textContent?.trim()).to.satisfy((text: string) =>\n /^foo\\s*5$/.test(text)\n );\n });\n\n it('renders multiple aggregation types', async () => {\n const el = await fixture<CollectionFacets>(\n html`<collection-facets></collection-facets>`\n );\n\n const aggs: Record<string, Aggregation> = {\n subject: new Aggregation({\n buckets: [\n {\n key: 'foo',\n doc_count: 5,\n },\n ],\n }),\n mediatype: new Aggregation({\n buckets: [\n {\n key: 'bar',\n doc_count: 10,\n },\n ],\n }),\n };\n\n el.aggregations = aggs;\n await el.updateComplete;\n\n const facetGroups = el.shadowRoot?.querySelectorAll('.facet-group');\n expect(facetGroups?.length).to.equal(2);\n });\n\n it('renders collection facets as links', async () => {\n const el = await fixture<CollectionFacets>(\n html`<collection-facets></collection-facets>`\n );\n\n const aggs: Record<string, Aggregation> = {\n collection: new Aggregation({\n buckets: [\n {\n key: 'foo',\n doc_count: 5,\n },\n ],\n }),\n };\n\n el.aggregations = aggs;\n await el.updateComplete;\n\n const collectionName = el.shadowRoot\n ?.querySelector('facets-template')\n ?.shadowRoot?.querySelector('async-collection-name');\n expect(collectionName?.parentElement).to.be.instanceOf(HTMLAnchorElement);\n expect(collectionName?.parentElement?.getAttribute('href')).to.equal(\n '/details/foo'\n );\n });\n\n it('renders non-collection facets without links', async () => {\n const el = await fixture<CollectionFacets>(\n html`<collection-facets></collection-facets>`\n );\n\n const aggs: Record<string, Aggregation> = {\n subject: new Aggregation({\n buckets: [\n {\n key: 'foo',\n doc_count: 5,\n },\n ],\n }),\n };\n\n el.aggregations = aggs;\n await el.updateComplete;\n\n const collectionName = el.shadowRoot\n ?.querySelector('facets-template')\n ?.shadowRoot?.querySelector('async-collection-name');\n expect(collectionName?.parentElement).to.not.be.instanceOf(\n HTMLAnchorElement\n );\n });\n\n it('renders language facets with their human-readable names', async () => {\n const el = await fixture<CollectionFacets>(\n html`<collection-facets></collection-facets>`\n );\n\n const languageCodeHandler: LanguageCodeHandlerInterface =\n new LanguageCodeHandler();\n\n const aggs: Record<string, Aggregation> = {\n language: new Aggregation({\n buckets: [\n {\n key: 'English',\n doc_count: 3,\n },\n ],\n }),\n };\n\n el.languageCodeHandler = languageCodeHandler;\n el.aggregations = aggs;\n await el.updateComplete;\n\n const facetsTemplate = el.shadowRoot?.querySelector('facets-template');\n const languageTitle =\n facetsTemplate?.shadowRoot?.querySelector('.facet-title');\n expect(languageTitle?.textContent?.trim()).to.equal('English');\n });\n\n it('renders selected/negative language facets with human-readable names', async () => {\n const el = await fixture<CollectionFacets>(\n html`<collection-facets></collection-facets>`\n );\n\n const languageCodeHandler: LanguageCodeHandlerInterface =\n new LanguageCodeHandler();\n\n const selectedFacets: SelectedFacets = {\n subject: {},\n lending: {},\n mediatype: {},\n language: {\n en: {\n key: 'en',\n count: 5,\n state: 'selected',\n },\n },\n creator: {},\n collection: {},\n year: {},\n };\n\n el.languageCodeHandler = languageCodeHandler;\n el.selectedFacets = selectedFacets;\n await el.updateComplete;\n\n const facetsTemplate = el.shadowRoot?.querySelector('facets-template');\n const languageTitle =\n facetsTemplate?.shadowRoot?.querySelector('.facet-title');\n expect(languageTitle?.textContent?.trim()).to.equal('English');\n });\n\n it('renders lending facets with human-readable names', async () => {\n const el = await fixture<CollectionFacets>(\n html`<collection-facets></collection-facets>`\n );\n\n const aggs: Record<string, Aggregation> = {\n lending: new Aggregation({\n buckets: [\n {\n key: 'is_lendable',\n doc_count: 3,\n },\n {\n key: 'available_to_borrow',\n doc_count: 2,\n },\n {\n key: 'is_readable',\n doc_count: 1,\n },\n ],\n }),\n };\n\n el.aggregations = aggs;\n await el.updateComplete;\n\n const facetsTemplate = el.shadowRoot?.querySelector('facets-template');\n const lendingTitles =\n facetsTemplate?.shadowRoot?.querySelectorAll('.facet-title');\n expect(lendingTitles?.length).to.equal(3);\n expect(lendingTitles?.item(0).textContent?.trim()).to.equal(\n 'Lending Library'\n );\n expect(lendingTitles?.item(1).textContent?.trim()).to.equal(\n 'Borrow 14 Days'\n );\n expect(lendingTitles?.item(2).textContent?.trim()).to.equal(\n 'Always Available'\n );\n });\n\n it('renders selected/negative lending facets with human-readable names', async () => {\n const el = await fixture<CollectionFacets>(\n html`<collection-facets></collection-facets>`\n );\n\n const selectedFacets: SelectedFacets = {\n subject: {},\n lending: {\n is_lendable: {\n key: 'is_lendable',\n count: 5,\n state: 'selected',\n },\n available_to_borrow: {\n key: 'available_to_borrow',\n count: 4,\n state: 'selected',\n },\n is_readable: {\n key: 'is_readable',\n count: 3,\n state: 'hidden',\n },\n },\n mediatype: {},\n language: {},\n creator: {},\n collection: {},\n year: {},\n };\n\n el.selectedFacets = selectedFacets;\n await el.updateComplete;\n\n const facetsTemplate = el.shadowRoot?.querySelector('facets-template');\n const lendingTitles =\n facetsTemplate?.shadowRoot?.querySelectorAll('.facet-title');\n expect(lendingTitles?.length).to.equal(3);\n expect(lendingTitles?.item(0).textContent?.trim()).to.equal(\n 'Lending Library'\n );\n expect(lendingTitles?.item(1).textContent?.trim()).to.equal(\n 'Borrow 14 Days'\n );\n expect(lendingTitles?.item(2).textContent?.trim()).to.equal(\n 'Always Available'\n );\n });\n\n it('only renders lending facets for is_lendable, available_to_borrow, and is_readable', async () => {\n const el = await fixture<CollectionFacets>(\n html`<collection-facets></collection-facets>`\n );\n\n const aggs: Record<string, Aggregation> = {\n lending: new Aggregation({\n buckets: [\n {\n key: 'is_lendable',\n doc_count: 5,\n },\n {\n key: 'is_borrowable',\n doc_count: 4,\n },\n {\n key: 'available_to_borrow',\n doc_count: 5,\n },\n {\n key: 'is_browsable',\n doc_count: 4,\n },\n {\n key: 'available_to_browse',\n doc_count: 5,\n },\n {\n key: 'is_readable',\n doc_count: 4,\n },\n {\n key: 'available_to_waitlist',\n doc_count: 5,\n },\n ],\n }),\n };\n\n el.aggregations = aggs;\n await el.updateComplete;\n\n const facetsTemplate = el.shadowRoot?.querySelector('facets-template');\n const lendingTitles =\n facetsTemplate?.shadowRoot?.querySelectorAll('.facet-title');\n expect(lendingTitles?.length).to.equal(3);\n expect(lendingTitles?.item(0).textContent?.trim()).to.equal(\n 'Lending Library'\n );\n expect(lendingTitles?.item(1).textContent?.trim()).to.equal(\n 'Borrow 14 Days'\n );\n expect(lendingTitles?.item(2).textContent?.trim()).to.equal(\n 'Always Available'\n );\n });\n\n it('does not render a More... link for lending facets', async () => {\n const el = await fixture<CollectionFacets>(\n html`<collection-facets></collection-facets>`\n );\n\n const aggs: Record<string, Aggregation> = {\n lending: new Aggregation({\n buckets: [\n {\n key: 'is_lendable',\n doc_count: 5,\n },\n {\n key: 'is_borrowable',\n doc_count: 4,\n },\n {\n key: 'available_to_borrow',\n doc_count: 5,\n },\n {\n key: 'is_browsable',\n doc_count: 4,\n },\n {\n key: 'available_to_browse',\n doc_count: 5,\n },\n {\n key: 'is_readable',\n doc_count: 4,\n },\n {\n key: 'available_to_waitlist',\n doc_count: 5,\n },\n ],\n }),\n };\n\n el.aggregations = aggs;\n await el.updateComplete;\n\n const moreLink = el.shadowRoot?.querySelector('.more-link');\n expect(moreLink).not.to.exist;\n });\n\n describe('More Facets', () => {\n it('Does not render < allowedFacetCount', async () => {\n const el = await fixture<CollectionFacets>(\n html`<collection-facets></collection-facets>`\n );\n\n const aggs: Record<string, Aggregation> = {\n subject: new Aggregation({\n buckets: [\n {\n key: 'foo',\n doc_count: 5,\n },\n ],\n }),\n };\n\n el.aggregations = aggs;\n await el.updateComplete;\n\n const moreLink = el.shadowRoot?.querySelector('.more-link');\n expect(moreLink).to.be.null;\n });\n\n it('renders sorting icons', async () => {\n const el = await fixture<CollectionFacets>(\n html`<collection-facets></collection-facets>`\n );\n\n const aggs: Record<string, Aggregation> = {\n subject: new Aggregation({\n buckets: [\n {\n key: 'foo',\n doc_count: 5,\n },\n ],\n }),\n };\n\n el.aggregations = aggs;\n await el.updateComplete;\n\n const sortingIcon = el.shadowRoot?.querySelector('.sorting-icon');\n expect(sortingIcon).to.exist;\n });\n\n it('does not render sorting icon for lending facets', async () => {\n const el = await fixture<CollectionFacets>(\n html`<collection-facets></collection-facets>`\n );\n\n const aggs: Record<string, Aggregation> = {\n lending: new Aggregation({\n buckets: [\n {\n key: 'is_readable',\n doc_count: 5,\n },\n ],\n }),\n };\n\n el.aggregations = aggs;\n await el.updateComplete;\n\n const sortingIcon = el.shadowRoot?.querySelector('.sorting-icon');\n expect(sortingIcon).not.to.exist;\n });\n\n it('Render More Facets', async () => {\n const el = await fixture<CollectionFacets>(\n html`<collection-facets\n .modalManager=${new ModalManager()}\n ></collection-facets>`\n );\n\n const aggs: Record<string, Aggregation> = {\n subject: new Aggregation({\n buckets: [\n {\n key: 'foo',\n doc_count: 5,\n },\n {\n key: 'fi',\n doc_count: 5,\n },\n {\n key: 'fum',\n doc_count: 5,\n },\n {\n key: 'flee',\n doc_count: 5,\n },\n {\n key: 'wheee',\n doc_count: 5,\n },\n {\n key: 'whooo',\n doc_count: 5,\n },\n {\n key: 'boop',\n doc_count: 5,\n },\n ],\n }),\n };\n\n el.aggregations = aggs;\n await el.updateComplete;\n\n let eventCaught = false;\n let eventFacet = '';\n el.addEventListener('showMoreFacets', e => {\n eventFacet = (e as CustomEvent).detail;\n eventCaught = true;\n });\n\n const moreLink = el.shadowRoot?.querySelector(\n '.more-link'\n ) as HTMLButtonElement;\n expect(moreLink).to.exist; // has link\n\n const showModalSpy = sinon.spy(\n el.modalManager as ModalManagerInterface,\n 'showModal'\n );\n // let's pop up modal\n moreLink?.click();\n await el.updateComplete;\n\n expect(showModalSpy.callCount).to.equal(1);\n expect(el.modalManager?.classList.contains('more-search-facets')).to.be\n .true;\n expect(eventCaught).to.be.true;\n expect(eventFacet).to.equal('subject' as FacetOption);\n });\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import '../src/empty-placeholder';
|
|
1
|
+
import '../src/empty-placeholder';
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
/* eslint-disable import/no-duplicates */
|
|
2
|
-
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
-
import { html } from 'lit';
|
|
4
|
-
import '../src/empty-placeholder';
|
|
5
|
-
describe('Empty Placeholder', () => {
|
|
6
|
-
it('should render with empty-query placeholder', async () => {
|
|
7
|
-
var _a, _b, _c;
|
|
8
|
-
const el = await fixture(html `<empty-placeholder></empty-placeholder>`);
|
|
9
|
-
el.placeholderType = 'empty-query';
|
|
10
|
-
await el.updateComplete;
|
|
11
|
-
expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.empty-query')).to.exist;
|
|
12
|
-
expect((_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.null-result')).to.not.exist;
|
|
13
|
-
expect((_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('infinite-scroller')).to.not.exist;
|
|
14
|
-
});
|
|
15
|
-
it('should render with null-result placeholder', async () => {
|
|
16
|
-
var _a, _b, _c;
|
|
17
|
-
const el = await fixture(html `<empty-placeholder></empty-placeholder>`);
|
|
18
|
-
el.placeholderType = 'null-result';
|
|
19
|
-
await el.updateComplete;
|
|
20
|
-
expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.null-result')).to.exist;
|
|
21
|
-
expect((_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.empty-query')).to.not.exist;
|
|
22
|
-
expect((_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('collection-facets')).to.not.exist;
|
|
23
|
-
});
|
|
24
|
-
it('should not render any empty placeholder', async () => {
|
|
25
|
-
var _a, _b, _c;
|
|
26
|
-
const el = await fixture(html `<empty-placeholder></empty-placeholder>`);
|
|
27
|
-
el.placeholderType = null;
|
|
28
|
-
await el.updateComplete;
|
|
29
|
-
expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.empty-query')).to.not.exist;
|
|
30
|
-
expect((_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.null-result')).to.not.exist;
|
|
31
|
-
expect((_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('collection-facets')).to.not.exist;
|
|
32
|
-
});
|
|
33
|
-
});
|
|
1
|
+
/* eslint-disable import/no-duplicates */
|
|
2
|
+
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
+
import { html } from 'lit';
|
|
4
|
+
import '../src/empty-placeholder';
|
|
5
|
+
describe('Empty Placeholder', () => {
|
|
6
|
+
it('should render with empty-query placeholder', async () => {
|
|
7
|
+
var _a, _b, _c;
|
|
8
|
+
const el = await fixture(html `<empty-placeholder></empty-placeholder>`);
|
|
9
|
+
el.placeholderType = 'empty-query';
|
|
10
|
+
await el.updateComplete;
|
|
11
|
+
expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.empty-query')).to.exist;
|
|
12
|
+
expect((_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.null-result')).to.not.exist;
|
|
13
|
+
expect((_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('infinite-scroller')).to.not.exist;
|
|
14
|
+
});
|
|
15
|
+
it('should render with null-result placeholder', async () => {
|
|
16
|
+
var _a, _b, _c;
|
|
17
|
+
const el = await fixture(html `<empty-placeholder></empty-placeholder>`);
|
|
18
|
+
el.placeholderType = 'null-result';
|
|
19
|
+
await el.updateComplete;
|
|
20
|
+
expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.null-result')).to.exist;
|
|
21
|
+
expect((_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.empty-query')).to.not.exist;
|
|
22
|
+
expect((_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('collection-facets')).to.not.exist;
|
|
23
|
+
});
|
|
24
|
+
it('should not render any empty placeholder', async () => {
|
|
25
|
+
var _a, _b, _c;
|
|
26
|
+
const el = await fixture(html `<empty-placeholder></empty-placeholder>`);
|
|
27
|
+
el.placeholderType = null;
|
|
28
|
+
await el.updateComplete;
|
|
29
|
+
expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.empty-query')).to.not.exist;
|
|
30
|
+
expect((_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.null-result')).to.not.exist;
|
|
31
|
+
expect((_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('collection-facets')).to.not.exist;
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
34
|
//# sourceMappingURL=empty-placeholder.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import '../src/tiles/overlay/icon-overlay';
|
|
1
|
+
import '../src/tiles/overlay/icon-overlay';
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
/* eslint-disable import/no-duplicates */
|
|
2
|
-
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
-
import { html } from 'lit';
|
|
4
|
-
import '../src/tiles/overlay/icon-overlay';
|
|
5
|
-
describe('Icon Overlay component', () => {
|
|
6
|
-
it('should render component if loggedIn required', async () => {
|
|
7
|
-
var _a, _b, _c;
|
|
1
|
+
/* eslint-disable import/no-duplicates */
|
|
2
|
+
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
+
import { html } from 'lit';
|
|
4
|
+
import '../src/tiles/overlay/icon-overlay';
|
|
5
|
+
describe('Icon Overlay component', () => {
|
|
6
|
+
it('should render component if loggedIn required', async () => {
|
|
7
|
+
var _a, _b, _c;
|
|
8
8
|
const el = await fixture(html `
|
|
9
9
|
<icon-overlay .loggedIn=${false} .loginRequired=${true}> </icon-overlay>
|
|
10
|
-
`);
|
|
11
|
-
const svgTitle = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('svg')) === null || _b === void 0 ? void 0 : _b.querySelector('title')) === null || _c === void 0 ? void 0 : _c.textContent;
|
|
12
|
-
expect(svgTitle).to.equal('Log in to view this item');
|
|
13
|
-
});
|
|
14
|
-
it('should render component if content warning', async () => {
|
|
15
|
-
var _a, _b, _c;
|
|
10
|
+
`);
|
|
11
|
+
const svgTitle = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('svg')) === null || _b === void 0 ? void 0 : _b.querySelector('title')) === null || _c === void 0 ? void 0 : _c.textContent;
|
|
12
|
+
expect(svgTitle).to.equal('Log in to view this item');
|
|
13
|
+
});
|
|
14
|
+
it('should render component if content warning', async () => {
|
|
15
|
+
var _a, _b, _c;
|
|
16
16
|
const el = await fixture(html `
|
|
17
17
|
<icon-overlay .loggedIn=${false} .loginRequired=${false}> </icon-overlay>
|
|
18
|
-
`);
|
|
19
|
-
const svgTitle = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('svg')) === null || _b === void 0 ? void 0 : _b.querySelector('title')) === null || _c === void 0 ? void 0 : _c.textContent;
|
|
20
|
-
expect(svgTitle).to.equal('Content may be inappropriate');
|
|
21
|
-
});
|
|
22
|
-
it('should render component if content warning', async () => {
|
|
23
|
-
var _a, _b, _c;
|
|
18
|
+
`);
|
|
19
|
+
const svgTitle = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('svg')) === null || _b === void 0 ? void 0 : _b.querySelector('title')) === null || _c === void 0 ? void 0 : _c.textContent;
|
|
20
|
+
expect(svgTitle).to.equal('Content may be inappropriate');
|
|
21
|
+
});
|
|
22
|
+
it('should render component if content warning', async () => {
|
|
23
|
+
var _a, _b, _c;
|
|
24
24
|
const el = await fixture(html `
|
|
25
25
|
<icon-overlay .loggedIn=${true} .loginRequired=${true}> </icon-overlay>
|
|
26
|
-
`);
|
|
27
|
-
const svgTitle = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('svg')) === null || _b === void 0 ? void 0 : _b.querySelector('title')) === null || _c === void 0 ? void 0 : _c.textContent;
|
|
28
|
-
expect(svgTitle).to.equal('Content may be inappropriate');
|
|
29
|
-
});
|
|
30
|
-
});
|
|
26
|
+
`);
|
|
27
|
+
const svgTitle = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('svg')) === null || _b === void 0 ? void 0 : _b.querySelector('title')) === null || _c === void 0 ? void 0 : _c.textContent;
|
|
28
|
+
expect(svgTitle).to.equal('Content may be inappropriate');
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
31
|
//# sourceMappingURL=icon-overlay.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '../src/tiles/image-block';
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/* eslint-disable import/no-duplicates */
|
|
2
|
+
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
+
import { html } from 'lit';
|
|
4
|
+
import '../src/tiles/image-block';
|
|
5
|
+
describe('Image block component', () => {
|
|
6
|
+
it('should render component grid display mode', async () => {
|
|
7
|
+
var _a, _b, _c;
|
|
8
|
+
const el = await fixture(html `
|
|
9
|
+
<image-block
|
|
10
|
+
.model=${{
|
|
11
|
+
loggedInRequired: true,
|
|
12
|
+
contentWarning: true,
|
|
13
|
+
identifier: 'goody',
|
|
14
|
+
}}
|
|
15
|
+
.baseImageUrl=${'https://archive.org'}
|
|
16
|
+
.isCompactTile=${false}
|
|
17
|
+
.isListTile=${false}
|
|
18
|
+
.viewSize=${'grid'}
|
|
19
|
+
.loggedIn=${false}
|
|
20
|
+
>
|
|
21
|
+
</image-block>
|
|
22
|
+
`);
|
|
23
|
+
const viewSize = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.grid');
|
|
24
|
+
const itemImage = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('item-image');
|
|
25
|
+
const textOverlay = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('text-overlay');
|
|
26
|
+
expect(viewSize).to.exist;
|
|
27
|
+
expect(itemImage).to.exist;
|
|
28
|
+
expect(textOverlay).to.exist;
|
|
29
|
+
});
|
|
30
|
+
it('should render component list display mode', async () => {
|
|
31
|
+
var _a, _b, _c;
|
|
32
|
+
const el = await fixture(html `
|
|
33
|
+
<image-block
|
|
34
|
+
.model=${{
|
|
35
|
+
loggedInRequired: true,
|
|
36
|
+
contentWarning: true,
|
|
37
|
+
identifier: 'goody',
|
|
38
|
+
}}
|
|
39
|
+
.baseImageUrl=${'https://archive.org'}
|
|
40
|
+
.isCompactTile=${false}
|
|
41
|
+
.isListTile=${true}
|
|
42
|
+
.viewSize=${'desktop'}
|
|
43
|
+
.loggedIn=${false}
|
|
44
|
+
>
|
|
45
|
+
</image-block>
|
|
46
|
+
`);
|
|
47
|
+
const viewSize = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.list.desktop');
|
|
48
|
+
const itemImage = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('item-image');
|
|
49
|
+
const iconOverlay = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('icon-overlay');
|
|
50
|
+
expect(viewSize).to.exist;
|
|
51
|
+
expect(itemImage).to.exist;
|
|
52
|
+
expect(iconOverlay).to.exist;
|
|
53
|
+
});
|
|
54
|
+
it('should render component compact display mode', async () => {
|
|
55
|
+
var _a, _b, _c;
|
|
56
|
+
const el = await fixture(html `
|
|
57
|
+
<image-block
|
|
58
|
+
.model=${{
|
|
59
|
+
loggedInRequired: true,
|
|
60
|
+
contentWarning: true,
|
|
61
|
+
identifier: 'goody',
|
|
62
|
+
}}
|
|
63
|
+
.baseImageUrl=${'https://archive.org'}
|
|
64
|
+
.isCompactTile=${true}
|
|
65
|
+
.isListTile=${true}
|
|
66
|
+
.viewSize=${'desktop'}
|
|
67
|
+
.loggedIn=${false}
|
|
68
|
+
>
|
|
69
|
+
</image-block>
|
|
70
|
+
`);
|
|
71
|
+
const viewSize = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.list-compact.desktop');
|
|
72
|
+
const itemImage = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('item-image');
|
|
73
|
+
const iconOverlay = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('icon-overlay');
|
|
74
|
+
expect(viewSize).to.exist;
|
|
75
|
+
expect(itemImage).to.exist;
|
|
76
|
+
expect(iconOverlay).to.exist;
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=image-block.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-block.test.js","sourceRoot":"","sources":["../../test/image-block.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-duplicates */\nimport { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport type { ImageBlock } from '../src/tiles/image-block';\n\nimport '../src/tiles/image-block';\n\ndescribe('Image block component', () => {\n it('should render component grid display mode', async () => {\n const el = await fixture<ImageBlock>(html`\n <image-block\n .model=${{\n loggedInRequired: true,\n contentWarning: true,\n identifier: 'goody',\n }}\n .baseImageUrl=${'https://archive.org'}\n .isCompactTile=${false}\n .isListTile=${false}\n .viewSize=${'grid'}\n .loggedIn=${false}\n >\n </image-block>\n `);\n\n const viewSize = el.shadowRoot?.querySelector('.grid');\n const itemImage = el.shadowRoot?.querySelector('item-image');\n const textOverlay = el.shadowRoot?.querySelector('text-overlay');\n\n expect(viewSize).to.exist;\n expect(itemImage).to.exist;\n expect(textOverlay).to.exist;\n });\n\n it('should render component list display mode', async () => {\n const el = await fixture<ImageBlock>(html`\n <image-block\n .model=${{\n loggedInRequired: true,\n contentWarning: true,\n identifier: 'goody',\n }}\n .baseImageUrl=${'https://archive.org'}\n .isCompactTile=${false}\n .isListTile=${true}\n .viewSize=${'desktop'}\n .loggedIn=${false}\n >\n </image-block>\n `);\n\n const viewSize = el.shadowRoot?.querySelector('.list.desktop');\n const itemImage = el.shadowRoot?.querySelector('item-image');\n const iconOverlay = el.shadowRoot?.querySelector('icon-overlay');\n\n expect(viewSize).to.exist;\n expect(itemImage).to.exist;\n expect(iconOverlay).to.exist;\n });\n\n it('should render component compact display mode', async () => {\n const el = await fixture<ImageBlock>(html`\n <image-block\n .model=${{\n loggedInRequired: true,\n contentWarning: true,\n identifier: 'goody',\n }}\n .baseImageUrl=${'https://archive.org'}\n .isCompactTile=${true}\n .isListTile=${true}\n .viewSize=${'desktop'}\n .loggedIn=${false}\n >\n </image-block>\n `);\n\n const viewSize = el.shadowRoot?.querySelector('.list-compact.desktop');\n const itemImage = el.shadowRoot?.querySelector('item-image');\n const iconOverlay = el.shadowRoot?.querySelector('icon-overlay');\n\n expect(viewSize).to.exist;\n expect(itemImage).to.exist;\n expect(iconOverlay).to.exist;\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import '../src/tiles/item-image';
|
|
1
|
+
import '../src/tiles/item-image';
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
/* eslint-disable import/no-duplicates */
|
|
2
|
-
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
-
import { html } from 'lit';
|
|
4
|
-
import '../src/tiles/item-image';
|
|
5
|
-
const baseImageUrl = 'https://archive.org';
|
|
6
|
-
const testBookModel = {
|
|
7
|
-
collections: [],
|
|
8
|
-
commentCount: 0,
|
|
9
|
-
creators: [],
|
|
10
|
-
favCount: 0,
|
|
11
|
-
identifier: '18730130BloomfieldRecordCompleteIssue',
|
|
12
|
-
itemCount: 0,
|
|
13
|
-
mediatype: 'texts',
|
|
14
|
-
subjects: [],
|
|
15
|
-
title: 'Sample Waveform',
|
|
16
|
-
viewCount: 0,
|
|
17
|
-
loginRequired: false,
|
|
18
|
-
contentWarning: false,
|
|
19
|
-
};
|
|
20
|
-
const testAudioModel = {
|
|
21
|
-
collections: [],
|
|
22
|
-
commentCount: 0,
|
|
23
|
-
creators: [],
|
|
24
|
-
favCount: 0,
|
|
25
|
-
identifier: 'dwd2015-01-24',
|
|
26
|
-
itemCount: 0,
|
|
27
|
-
mediatype: 'audio',
|
|
28
|
-
subjects: [],
|
|
29
|
-
title: 'Sample Waveform',
|
|
30
|
-
viewCount: 0,
|
|
31
|
-
loginRequired: false,
|
|
32
|
-
contentWarning: false,
|
|
33
|
-
};
|
|
34
|
-
describe('ItemImage component', () => {
|
|
35
|
-
it('should render initial component', async () => {
|
|
36
|
-
var _a, _b;
|
|
1
|
+
/* eslint-disable import/no-duplicates */
|
|
2
|
+
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
+
import { html } from 'lit';
|
|
4
|
+
import '../src/tiles/item-image';
|
|
5
|
+
const baseImageUrl = 'https://archive.org';
|
|
6
|
+
const testBookModel = {
|
|
7
|
+
collections: [],
|
|
8
|
+
commentCount: 0,
|
|
9
|
+
creators: [],
|
|
10
|
+
favCount: 0,
|
|
11
|
+
identifier: '18730130BloomfieldRecordCompleteIssue',
|
|
12
|
+
itemCount: 0,
|
|
13
|
+
mediatype: 'texts',
|
|
14
|
+
subjects: [],
|
|
15
|
+
title: 'Sample Waveform',
|
|
16
|
+
viewCount: 0,
|
|
17
|
+
loginRequired: false,
|
|
18
|
+
contentWarning: false,
|
|
19
|
+
};
|
|
20
|
+
const testAudioModel = {
|
|
21
|
+
collections: [],
|
|
22
|
+
commentCount: 0,
|
|
23
|
+
creators: [],
|
|
24
|
+
favCount: 0,
|
|
25
|
+
identifier: 'dwd2015-01-24',
|
|
26
|
+
itemCount: 0,
|
|
27
|
+
mediatype: 'audio',
|
|
28
|
+
subjects: [],
|
|
29
|
+
title: 'Sample Waveform',
|
|
30
|
+
viewCount: 0,
|
|
31
|
+
loginRequired: false,
|
|
32
|
+
contentWarning: false,
|
|
33
|
+
};
|
|
34
|
+
describe('ItemImage component', () => {
|
|
35
|
+
it('should render initial component', async () => {
|
|
36
|
+
var _a, _b;
|
|
37
37
|
const el = await fixture(html `
|
|
38
38
|
<item-image
|
|
39
39
|
.isListTile=${false}
|
|
@@ -42,14 +42,14 @@ describe('ItemImage component', () => {
|
|
|
42
42
|
.baseImageUrl=${baseImageUrl}
|
|
43
43
|
>
|
|
44
44
|
</item-image>
|
|
45
|
-
`);
|
|
46
|
-
const dropShadow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.drop-shadow');
|
|
47
|
-
const imgClassName = (_b = dropShadow === null || dropShadow === void 0 ? void 0 : dropShadow.querySelector('img')) === null || _b === void 0 ? void 0 : _b.className;
|
|
48
|
-
expect(dropShadow).to.exist;
|
|
49
|
-
expect(imgClassName).to.eql(' contain ');
|
|
50
|
-
});
|
|
51
|
-
it('should render component if mediatype is waveform', async () => {
|
|
52
|
-
var _a;
|
|
45
|
+
`);
|
|
46
|
+
const dropShadow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.drop-shadow');
|
|
47
|
+
const imgClassName = (_b = dropShadow === null || dropShadow === void 0 ? void 0 : dropShadow.querySelector('img')) === null || _b === void 0 ? void 0 : _b.className;
|
|
48
|
+
expect(dropShadow).to.exist;
|
|
49
|
+
expect(imgClassName).to.eql(' contain ');
|
|
50
|
+
});
|
|
51
|
+
it('should render component if mediatype is waveform', async () => {
|
|
52
|
+
var _a;
|
|
53
53
|
const el = await fixture(html `
|
|
54
54
|
<item-image
|
|
55
55
|
.isListTile=${false}
|
|
@@ -58,16 +58,16 @@ describe('ItemImage component', () => {
|
|
|
58
58
|
.baseImageUrl=${baseImageUrl}
|
|
59
59
|
>
|
|
60
60
|
</item-image>
|
|
61
|
-
`);
|
|
62
|
-
const dropShadow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.drop-shadow');
|
|
63
|
-
const image = dropShadow === null || dropShadow === void 0 ? void 0 : dropShadow.querySelector('img');
|
|
64
|
-
expect(dropShadow).to.exist;
|
|
65
|
-
expect(image).to.exist;
|
|
66
|
-
// simulate image onLoad event check if image className is waveform
|
|
67
|
-
setTimeout(() => {
|
|
68
|
-
const imgClassName = image === null || image === void 0 ? void 0 : image.className;
|
|
69
|
-
expect(imgClassName).to.eql(' waveform ');
|
|
70
|
-
}, 1000);
|
|
71
|
-
});
|
|
72
|
-
});
|
|
61
|
+
`);
|
|
62
|
+
const dropShadow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.drop-shadow');
|
|
63
|
+
const image = dropShadow === null || dropShadow === void 0 ? void 0 : dropShadow.querySelector('img');
|
|
64
|
+
expect(dropShadow).to.exist;
|
|
65
|
+
expect(image).to.exist;
|
|
66
|
+
// simulate image onLoad event check if image className is waveform
|
|
67
|
+
setTimeout(() => {
|
|
68
|
+
const imgClassName = image === null || image === void 0 ? void 0 : image.className;
|
|
69
|
+
expect(imgClassName).to.eql(' waveform ');
|
|
70
|
+
}, 1000);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
73
|
//# sourceMappingURL=item-image.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { expect } from '@open-wc/testing';
|
|
2
|
-
import { mediatypeConfig } from '../src/mediatype/mediatype-config';
|
|
3
|
-
describe('mediatypeConfig', () => {
|
|
4
|
-
it('returns undefined', () => {
|
|
5
|
-
expect(mediatypeConfig['']).to.equal(undefined);
|
|
6
|
-
expect(mediatypeConfig.test).to.equal(undefined);
|
|
7
|
-
expect(mediatypeConfig.media).to.equal(undefined);
|
|
8
|
-
expect(mediatypeConfig.testing).to.equal(undefined);
|
|
9
|
-
});
|
|
10
|
-
it('returns audio', () => {
|
|
11
|
-
expect(mediatypeConfig.audio).to.exist;
|
|
12
|
-
expect(mediatypeConfig.audio.color).to.exist;
|
|
13
|
-
expect(mediatypeConfig.audio.icon).to.exist;
|
|
14
|
-
expect(mediatypeConfig.audio.text).to.exist;
|
|
15
|
-
});
|
|
16
|
-
});
|
|
1
|
+
import { expect } from '@open-wc/testing';
|
|
2
|
+
import { mediatypeConfig } from '../src/mediatype/mediatype-config';
|
|
3
|
+
describe('mediatypeConfig', () => {
|
|
4
|
+
it('returns undefined', () => {
|
|
5
|
+
expect(mediatypeConfig['']).to.equal(undefined);
|
|
6
|
+
expect(mediatypeConfig.test).to.equal(undefined);
|
|
7
|
+
expect(mediatypeConfig.media).to.equal(undefined);
|
|
8
|
+
expect(mediatypeConfig.testing).to.equal(undefined);
|
|
9
|
+
});
|
|
10
|
+
it('returns audio', () => {
|
|
11
|
+
expect(mediatypeConfig.audio).to.exist;
|
|
12
|
+
expect(mediatypeConfig.audio.color).to.exist;
|
|
13
|
+
expect(mediatypeConfig.audio.icon).to.exist;
|
|
14
|
+
expect(mediatypeConfig.audio.text).to.exist;
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
17
|
//# sourceMappingURL=mediatype-config.test.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { AnalyticsEvent, AnalyticsManagerInterface } from '@internetarchive/analytics-manager';
|
|
2
|
-
export declare class MockAnalyticsHandler implements AnalyticsManagerInterface {
|
|
3
|
-
callCategory?: string;
|
|
4
|
-
callAction?: string;
|
|
5
|
-
callLabel?: string;
|
|
6
|
-
callEventConfiguration?: object;
|
|
7
|
-
sendPing(): void;
|
|
8
|
-
sendEvent(options: AnalyticsEvent): void;
|
|
9
|
-
sendEventNoSampling(options: AnalyticsEvent): void;
|
|
10
|
-
}
|
|
1
|
+
import type { AnalyticsEvent, AnalyticsManagerInterface } from '@internetarchive/analytics-manager';
|
|
2
|
+
export declare class MockAnalyticsHandler implements AnalyticsManagerInterface {
|
|
3
|
+
callCategory?: string;
|
|
4
|
+
callAction?: string;
|
|
5
|
+
callLabel?: string;
|
|
6
|
+
callEventConfiguration?: object;
|
|
7
|
+
sendPing(): void;
|
|
8
|
+
sendEvent(options: AnalyticsEvent): void;
|
|
9
|
+
sendEventNoSampling(options: AnalyticsEvent): void;
|
|
10
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
export class MockAnalyticsHandler {
|
|
2
|
-
sendPing() { }
|
|
3
|
-
sendEvent(options) {
|
|
4
|
-
this.callCategory = options.category;
|
|
5
|
-
this.callAction = options.action;
|
|
6
|
-
this.callLabel = options.label;
|
|
7
|
-
this.callEventConfiguration = options.eventConfiguration;
|
|
8
|
-
}
|
|
9
|
-
sendEventNoSampling(options) {
|
|
10
|
-
this.callCategory = options.category;
|
|
11
|
-
this.callAction = options.action;
|
|
12
|
-
this.callLabel = options.label;
|
|
13
|
-
this.callEventConfiguration = options.eventConfiguration;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
1
|
+
export class MockAnalyticsHandler {
|
|
2
|
+
sendPing() { }
|
|
3
|
+
sendEvent(options) {
|
|
4
|
+
this.callCategory = options.category;
|
|
5
|
+
this.callAction = options.action;
|
|
6
|
+
this.callLabel = options.label;
|
|
7
|
+
this.callEventConfiguration = options.eventConfiguration;
|
|
8
|
+
}
|
|
9
|
+
sendEventNoSampling(options) {
|
|
10
|
+
this.callCategory = options.category;
|
|
11
|
+
this.callAction = options.action;
|
|
12
|
+
this.callLabel = options.label;
|
|
13
|
+
this.callEventConfiguration = options.eventConfiguration;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
16
|
//# sourceMappingURL=mock-analytics-handler.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { CollectionNameCacheInterface } from '@internetarchive/collection-name-cache';
|
|
2
|
-
export declare class MockCollectionNameCache implements CollectionNameCacheInterface {
|
|
3
|
-
collectionNamesRequested: string[];
|
|
4
|
-
preloadIdentifiersRequested: string[];
|
|
5
|
-
collectionNameFor(identifier: string): Promise<string | null>;
|
|
6
|
-
preloadIdentifiers(identifiers: string[]): Promise<void>;
|
|
7
|
-
}
|
|
1
|
+
import type { CollectionNameCacheInterface } from '@internetarchive/collection-name-cache';
|
|
2
|
+
export declare class MockCollectionNameCache implements CollectionNameCacheInterface {
|
|
3
|
+
collectionNamesRequested: string[];
|
|
4
|
+
preloadIdentifiersRequested: string[];
|
|
5
|
+
collectionNameFor(identifier: string): Promise<string | null>;
|
|
6
|
+
preloadIdentifiers(identifiers: string[]): Promise<void>;
|
|
7
|
+
}
|