diff --git a/package-lock.json b/package-lock.json index 6abb3f878..29c51ae31 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "license": "AGPL-3.0", "dependencies": { "@internetarchive/bergamot-translator": "^0.4.9-ia.1", + "@internetarchive/elements": "0.2.1-webdev-8151.0", "@internetarchive/ia-activity-indicator": "^0.0.4", "@internetarchive/ia-item-navigator": "2.2.2", "@internetarchive/icon-bookmark": "^1.4.0", @@ -2194,6 +2195,58 @@ "resolved": "https://registry.npmjs.org/@internetarchive/bergamot-translator/-/bergamot-translator-0.4.9-ia.1.tgz", "integrity": "sha512-NacODSAjU2sjyrU6bLjFdp82SgG2ZlAMq0t3WJ+yfauz+iNeSqFgt4UHgdoGfRN9W6yxoOyfWY3yWqkHxyDfAQ==" }, + "node_modules/@internetarchive/elements": { + "version": "0.2.1-webdev-8151.0", + "resolved": "https://registry.npmjs.org/@internetarchive/elements/-/elements-0.2.1-webdev-8151.0.tgz", + "integrity": "sha512-o+6lKrPAHxCzlxmmdbl8PpHbHUxBLhvRs1Tw6pyXltM+E4boYYuJatKVgbdPFwM5/HxknGzIoonpoIX+2IdIEA==", + "license": "AGPL-3.0-only", + "dependencies": { + "@lit/localize": "^0.12.2", + "lit": "^3.3.1", + "magic-snowflakes": "^7.0.2", + "tslib": "^2.8.1" + } + }, + "node_modules/@internetarchive/elements/node_modules/@lit/reactive-element": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.2.tgz", + "integrity": "sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.5.0" + } + }, + "node_modules/@internetarchive/elements/node_modules/lit": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.2.tgz", + "integrity": "sha512-NF9zbsP79l4ao2SNrH3NkfmFgN/hBYSQo90saIVI1o5GpjAdCPVstVzO1MrLOakHoEhYkrtRjPK6Ob521aoYWQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit/reactive-element": "^2.1.0", + "lit-element": "^4.2.0", + "lit-html": "^3.3.0" + } + }, + "node_modules/@internetarchive/elements/node_modules/lit-element": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.2.tgz", + "integrity": "sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.5.0", + "@lit/reactive-element": "^2.1.0", + "lit-html": "^3.3.0" + } + }, + "node_modules/@internetarchive/elements/node_modules/lit-html": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.2.tgz", + "integrity": "sha512-Qy9hU88zcmaxBXcc10ZpdK7cOLXvXpRoBxERdtqV9QOrfpMZZ6pSYP91LhpPtap3sFMUiL7Tw2RImbe0Al2/kw==", + "license": "BSD-3-Clause", + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, "node_modules/@internetarchive/field-parsers": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/@internetarchive/field-parsers/-/field-parsers-0.1.4.tgz", @@ -4867,9 +4920,59 @@ } }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.2.tgz", - "integrity": "sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.5.1.tgz", + "integrity": "sha512-Aou5UdlSpr5whQe8AA/bZG0jMj96CoJIWbGfZ91qieWu5AWUMKw8VR/pAkQkJYvBNhmCcWnZlyyk5oze8JIqYA==", + "license": "BSD-3-Clause" + }, + "node_modules/@lit/localize": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lit/localize/-/localize-0.12.2.tgz", + "integrity": "sha512-Qv9kvgJKDq/JVSwXOxuWvQnnOBysHA99ti9im9a4fImCmx+fto+XXcUYQbjZHqiueEEc4V20PcRDPO+1g/6seQ==", + "license": "BSD-3-Clause", + "dependencies": { + "lit": "^3.2.0" + } + }, + "node_modules/@lit/localize/node_modules/@lit/reactive-element": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.2.tgz", + "integrity": "sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.5.0" + } + }, + "node_modules/@lit/localize/node_modules/lit": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.2.tgz", + "integrity": "sha512-NF9zbsP79l4ao2SNrH3NkfmFgN/hBYSQo90saIVI1o5GpjAdCPVstVzO1MrLOakHoEhYkrtRjPK6Ob521aoYWQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit/reactive-element": "^2.1.0", + "lit-element": "^4.2.0", + "lit-html": "^3.3.0" + } + }, + "node_modules/@lit/localize/node_modules/lit-element": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.2.tgz", + "integrity": "sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.5.0", + "@lit/reactive-element": "^2.1.0", + "lit-html": "^3.3.0" + } + }, + "node_modules/@lit/localize/node_modules/lit-html": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.2.tgz", + "integrity": "sha512-Qy9hU88zcmaxBXcc10ZpdK7cOLXvXpRoBxERdtqV9QOrfpMZZ6pSYP91LhpPtap3sFMUiL7Tw2RImbe0Al2/kw==", + "license": "BSD-3-Clause", + "dependencies": { + "@types/trusted-types": "^2.0.2" + } }, "node_modules/@lit/reactive-element": { "version": "1.6.3", @@ -15695,6 +15798,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/magic-snowflakes": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/magic-snowflakes/-/magic-snowflakes-7.0.2.tgz", + "integrity": "sha512-hpoaXHPu2YYQT7tZK3/x4BgHmfYBoCN8+E9BbJKiDKe78nGEqYA3Sk5T2fK1SGcavKHPeBxXJgE8oaEExxeqrg==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/make-dir": { "version": "3.1.0", "dev": true, @@ -19251,8 +19363,9 @@ } }, "node_modules/tslib": { - "version": "2.4.0", - "dev": true, + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/tunnel-agent": { @@ -21725,6 +21838,55 @@ "resolved": "https://registry.npmjs.org/@internetarchive/bergamot-translator/-/bergamot-translator-0.4.9-ia.1.tgz", "integrity": "sha512-NacODSAjU2sjyrU6bLjFdp82SgG2ZlAMq0t3WJ+yfauz+iNeSqFgt4UHgdoGfRN9W6yxoOyfWY3yWqkHxyDfAQ==" }, + "@internetarchive/elements": { + "version": "0.2.1-webdev-8151.0", + "resolved": "https://registry.npmjs.org/@internetarchive/elements/-/elements-0.2.1-webdev-8151.0.tgz", + "integrity": "sha512-o+6lKrPAHxCzlxmmdbl8PpHbHUxBLhvRs1Tw6pyXltM+E4boYYuJatKVgbdPFwM5/HxknGzIoonpoIX+2IdIEA==", + "requires": { + "@lit/localize": "^0.12.2", + "lit": "^3.3.1", + "magic-snowflakes": "^7.0.2", + "tslib": "^2.8.1" + }, + "dependencies": { + "@lit/reactive-element": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.2.tgz", + "integrity": "sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==", + "requires": { + "@lit-labs/ssr-dom-shim": "^1.5.0" + } + }, + "lit": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.2.tgz", + "integrity": "sha512-NF9zbsP79l4ao2SNrH3NkfmFgN/hBYSQo90saIVI1o5GpjAdCPVstVzO1MrLOakHoEhYkrtRjPK6Ob521aoYWQ==", + "requires": { + "@lit/reactive-element": "^2.1.0", + "lit-element": "^4.2.0", + "lit-html": "^3.3.0" + } + }, + "lit-element": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.2.tgz", + "integrity": "sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==", + "requires": { + "@lit-labs/ssr-dom-shim": "^1.5.0", + "@lit/reactive-element": "^2.1.0", + "lit-html": "^3.3.0" + } + }, + "lit-html": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.2.tgz", + "integrity": "sha512-Qy9hU88zcmaxBXcc10ZpdK7cOLXvXpRoBxERdtqV9QOrfpMZZ6pSYP91LhpPtap3sFMUiL7Tw2RImbe0Al2/kw==", + "requires": { + "@types/trusted-types": "^2.0.2" + } + } + } + }, "@internetarchive/field-parsers": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/@internetarchive/field-parsers/-/field-parsers-0.1.4.tgz", @@ -23781,9 +23943,55 @@ } }, "@lit-labs/ssr-dom-shim": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.2.tgz", - "integrity": "sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.5.1.tgz", + "integrity": "sha512-Aou5UdlSpr5whQe8AA/bZG0jMj96CoJIWbGfZ91qieWu5AWUMKw8VR/pAkQkJYvBNhmCcWnZlyyk5oze8JIqYA==" + }, + "@lit/localize": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lit/localize/-/localize-0.12.2.tgz", + "integrity": "sha512-Qv9kvgJKDq/JVSwXOxuWvQnnOBysHA99ti9im9a4fImCmx+fto+XXcUYQbjZHqiueEEc4V20PcRDPO+1g/6seQ==", + "requires": { + "lit": "^3.2.0" + }, + "dependencies": { + "@lit/reactive-element": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.2.tgz", + "integrity": "sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==", + "requires": { + "@lit-labs/ssr-dom-shim": "^1.5.0" + } + }, + "lit": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.2.tgz", + "integrity": "sha512-NF9zbsP79l4ao2SNrH3NkfmFgN/hBYSQo90saIVI1o5GpjAdCPVstVzO1MrLOakHoEhYkrtRjPK6Ob521aoYWQ==", + "requires": { + "@lit/reactive-element": "^2.1.0", + "lit-element": "^4.2.0", + "lit-html": "^3.3.0" + } + }, + "lit-element": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.2.tgz", + "integrity": "sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==", + "requires": { + "@lit-labs/ssr-dom-shim": "^1.5.0", + "@lit/reactive-element": "^2.1.0", + "lit-html": "^3.3.0" + } + }, + "lit-html": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.2.tgz", + "integrity": "sha512-Qy9hU88zcmaxBXcc10ZpdK7cOLXvXpRoBxERdtqV9QOrfpMZZ6pSYP91LhpPtap3sFMUiL7Tw2RImbe0Al2/kw==", + "requires": { + "@types/trusted-types": "^2.0.2" + } + } + } }, "@lit/reactive-element": { "version": "1.6.3", @@ -31427,6 +31635,11 @@ "version": "3.1.0", "dev": true }, + "magic-snowflakes": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/magic-snowflakes/-/magic-snowflakes-7.0.2.tgz", + "integrity": "sha512-hpoaXHPu2YYQT7tZK3/x4BgHmfYBoCN8+E9BbJKiDKe78nGEqYA3Sk5T2fK1SGcavKHPeBxXJgE8oaEExxeqrg==" + }, "make-dir": { "version": "3.1.0", "dev": true, @@ -33952,8 +34165,9 @@ } }, "tslib": { - "version": "2.4.0", - "dev": true + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, "tunnel-agent": { "version": "0.6.0", diff --git a/package.json b/package.json index 0224b60e3..681862f63 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "private": false, "dependencies": { "@internetarchive/bergamot-translator": "^0.4.9-ia.1", + "@internetarchive/elements": "0.2.1-webdev-8151.0", "@internetarchive/ia-activity-indicator": "^0.0.4", "@internetarchive/ia-item-navigator": "2.2.2", "@internetarchive/icon-bookmark": "^1.4.0", @@ -94,6 +95,7 @@ "node_modules/(?!(sinon|lit-html|lit-element|lit|@lit|@lit-labs|@internetarchive|@open-wc)/)" ], "moduleNameMapper": { + "\\.svg$": "/tests/jest/mocks/svg.js", "^@/(.*)$": "/$1" }, "setupFiles": [ diff --git a/src/BookReader.js b/src/BookReader.js index a307d3eba..111682025 100644 --- a/src/BookReader.js +++ b/src/BookReader.js @@ -42,6 +42,9 @@ import { ImageCache } from './BookReader/ImageCache.js'; import { PageContainer } from './BookReader/PageContainer.js'; import { NAMED_REDUCE_SETS } from './BookReader/ReduceSet.js'; +import '@internetarchive/elements/ia-status-indicator/ia-status-indicator'; +import '@internetarchive/elements/ia-combo-box/ia-combo-box'; + /** * BookReader * @param {Partial} overrides diff --git a/tests/jest/mocks/svg.js b/tests/jest/mocks/svg.js new file mode 100644 index 000000000..5153f9a12 --- /dev/null +++ b/tests/jest/mocks/svg.js @@ -0,0 +1,4 @@ +/** + * Mock for SVG imports in Jest tests. + */ +export class SVGMock {} diff --git a/webpack.config.js b/webpack.config.js index 2d966c3e8..064240003 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -21,7 +21,11 @@ const shared = { { test: /\.js$/, exclude: /node_modules[/\\](?!(lit-element|lit-html|lit|@lit)[/\\]).*/, - loader: "babel-loader", + loader: 'babel-loader', + }, + { + test: /\.svg/, + type: 'asset/resource', }, ], },