diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index 4551497..0841f07 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -5,9 +5,9 @@ name: Node.js CI on: push: - branches: [ main ] + branches: [main] pull_request: - branches: [ main ] + branches: [main] # Sets the GITHUB_TOKEN permissions to allow deployment to GitHub Pages permissions: @@ -17,7 +17,7 @@ permissions: # Allow one concurrent deployment concurrency: - group: 'pages' + group: "pages" cancel-in-progress: true jobs: @@ -29,23 +29,21 @@ jobs: url: ${{ steps.deployment.outputs.page_url }} steps: - - uses: actions/checkout@v3 - - name: Use Node.js 16.8.x - uses: actions/setup-node@v3 - with: - node-version: 16.8.x - - run: npm install -g codecov - - run: npm install - - run: npm test - - run: codecov - - run: npm run build - - name: Setup Pages - uses: actions/configure-pages@v3 - - name: Upload artifact - uses: actions/upload-pages-artifact@v2 - with: - # Upload dist repository - path: './demo/dist' - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v2 \ No newline at end of file + - uses: actions/checkout@v4 + - name: Use Node.js + uses: actions/setup-node@v4 + - run: npm install -g codecov + - run: npm install + - run: npm test + - run: codecov + - run: npm run build:demo + - name: Setup Pages + uses: actions/configure-pages@v5 + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + # Upload dist repository + path: "./demo/dist" + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/__tests__/MiradorRotation.test.js b/__tests__/MiradorRotation.test.js index 9ac261e..c998756 100644 --- a/__tests__/MiradorRotation.test.js +++ b/__tests__/MiradorRotation.test.js @@ -5,52 +5,47 @@ import MiradorRotationMenuItem from '../src/plugins/MiradorRotationMenuItem'; describe('MiradorRotationMenuItem', () => { const mockUpdateWindow = jest.fn(); + const mockHandleClose = jest.fn(); const windowId = 'window-1'; const t = (key) => key; // simplistic translation function for testing - it('should render lock icon when enabled', () => { - render( - , - ); - - expect(screen.getByRole('button')).toHaveAttribute('aria-label', 'rotation'); - expect(screen.getByRole('button')).toContainElement(screen.getByTestId('LockIcon')); + afterEach(() => { + jest.clearAllMocks(); }); - it('should render lock open icon when not enabled', () => { - render( + it('should toggle the enabled state on click', () => { + const { rerender } = render( , ); - expect(screen.getByRole('button')).toHaveAttribute('aria-label', 'enableZoom'); - expect(screen.getByRole('button')).toContainElement(screen.getByTestId('LockOpenIcon')); - }); + // First click should disable + const menuItem = screen.getByRole('menuitem'); + fireEvent.click(menuItem); + expect(mockUpdateWindow).toHaveBeenCalledWith(windowId, { rotationEnabled: false }); + expect(mockHandleClose).toHaveBeenCalled(); - it('should toggle the enabled state on click', () => { - render( + // Reset mocks to clear call history + jest.clearAllMocks(); + + // Rerender with new "enabled" state as false + rerender( , ); - const button = screen.getByRole('button'); - fireEvent.click(button); - expect(mockUpdateWindow).toHaveBeenCalledWith(windowId, { rotationEnabled: false }); - - fireEvent.click(button); + // Second click should enable + fireEvent.click(menuItem); expect(mockUpdateWindow).toHaveBeenCalledWith(windowId, { rotationEnabled: true }); }); }); diff --git a/__tests__/test-utils.js b/__tests__/test-utils.js index 4355677..32c364c 100644 --- a/__tests__/test-utils.js +++ b/__tests__/test-utils.js @@ -5,8 +5,8 @@ import PropTypes from 'prop-types'; import { createStore, applyMiddleware } from 'redux'; import { thunk } from 'redux-thunk'; import { createTheme, ThemeProvider, StyledEngineProvider } from '@mui/material/styles'; -import createRootReducer from 'mirador/dist/es/src/state/reducers/rootReducer'; -import settings from 'mirador/dist/es/src/config/settings'; +import createRootReducer from '@nakamura196/mirador/dist/es/src/state/reducers/rootReducer'; +import settings from '@nakamura196/mirador/dist/es/src/config/settings'; const rootReducer = createRootReducer(); const theme = createTheme(settings.theme); diff --git a/demo/src/index.js b/demo/src/index.js index c3ec5c0..74ea785 100644 --- a/demo/src/index.js +++ b/demo/src/index.js @@ -1,4 +1,4 @@ -import Mirador from 'mirador/dist/es/src/index'; +import Mirador from '@nakamura196/mirador/dist/es/src/index'; import { miradorRotationPlugin } from '../../src'; const config = { diff --git a/package.json b/package.json index b7043c6..2b3f655 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "jest-puppeteer": "^9.0.2", - "mirador": "4.0.0-alpha.2", + "@nakamura196/mirador": "4.0.0-alpha.2", "puppeteer": "^21.11.0", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dc620bf..c4c5bce 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,9 @@ dependencies: lodash: specifier: ^4.17.21 version: 4.17.21 + mirador: + specifier: ^4.0.0-alpha.1 + version: 4.0.0-alpha.2(@babel/runtime@7.24.7)(@mui/system@5.15.20)(dnd-core@16.0.1)(react-dom@18.3.1)(react@18.3.1) prop-types: specifier: ^15.8.1 version: 15.8.1 @@ -76,6 +79,9 @@ devDependencies: '@mui/material': specifier: ^5.15.20 version: 5.15.20(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react-dom@18.3.1)(react@18.3.1) + '@nakamura196/mirador': + specifier: 4.0.0-alpha.2 + version: 4.0.0-alpha.2(@babel/runtime@7.24.7)(@mui/system@5.15.20)(dnd-core@16.0.1)(react-dom@18.3.1)(react@18.3.1) '@pmmmwh/react-refresh-webpack-plugin': specifier: ^0.5.15 version: 0.5.15(react-refresh@0.14.2)(webpack-dev-server@4.15.2)(webpack@5.92.1) @@ -145,9 +151,6 @@ devDependencies: jest-puppeteer: specifier: ^9.0.2 version: 9.0.2(puppeteer@21.11.0)(typescript@5.5.2) - mirador: - specifier: 4.0.0-alpha.2 - version: 4.0.0-alpha.2(@babel/runtime@7.24.7)(@mui/system@5.15.20)(dnd-core@16.0.1)(react-dom@18.3.1)(react@18.3.1) puppeteer: specifier: ^21.11.0 version: 21.11.0(typescript@5.5.2) @@ -1748,7 +1751,6 @@ packages: /@edsilv/http-status-codes@1.0.3: resolution: {integrity: sha512-HLK2FS5sZqxPqD53D6hhZxC6C8THTVwlyZDZ7J0iWsrB8JmMA69m/CQuNKZc1kki9WSVeck2fXna26NL0SE7cg==} - dev: true /@emotion/babel-plugin@11.11.0: resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==} @@ -1947,7 +1949,6 @@ packages: - '@types/react' - '@types/react-dom' - react-native - dev: true /@humanwhocodes/config-array@0.11.14: resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} @@ -1973,7 +1974,6 @@ packages: /@iiif/vocabulary@1.0.26: resolution: {integrity: sha512-yOsMDg5C90iMfD5HSydoTDzmOM/ki5zGiu4DbHpzRueM7D+12IcDHeai2A8QvEroS8HCJl5M1Edbju5rOlPIpg==} - dev: true /@istanbuljs/load-nyc-config@1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} @@ -2381,7 +2381,6 @@ packages: prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - dev: true /@mui/material@5.15.20(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-tVq3l4qoXx/NxUgIx/x3lZiPn/5xDbdTE8VrLczNpfblLYZzlrbxA7kb9mI8NoBF6+w9WE9IrxWnKK5KlPI2bg==} @@ -2531,6 +2530,72 @@ packages: react-transition-group: 4.4.5(react-dom@18.3.1)(react@18.3.1) transitivePeerDependencies: - '@types/react' + + /@nakamura196/mirador@4.0.0-alpha.2(@babel/runtime@7.24.7)(@mui/system@5.15.20)(dnd-core@16.0.1)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-NAmsfue8Q/oWcdu+EAQJF3o0W62SnYD4Pgu1+8+YJp++EtxyVJmUdc25X6iIp4JeMO1oK3WuDNfR+/GysZdebw==} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@emotion/cache': 11.11.0 + '@emotion/react': 11.11.4(react@18.3.1) + '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(react@18.3.1) + '@hello-pangea/dnd': 16.6.0(react-dom@18.3.1)(react@18.3.1) + '@mui/icons-material': 5.15.20(@mui/material@5.15.20)(react@18.3.1) + '@mui/lab': 5.0.0-alpha.170(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.20)(react-dom@18.3.1)(react@18.3.1) + '@mui/material': 5.15.20(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react-dom@18.3.1)(react@18.3.1) + '@mui/utils': 5.15.20(react@18.3.1) + '@mui/x-tree-view': 6.17.0(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.20)(@mui/system@5.15.20)(react-dom@18.3.1)(react@18.3.1) + '@react-aria/live-announcer': 3.3.4 + '@redux-devtools/extension': 3.3.0(redux@5.0.1) + classnames: 2.5.1 + deepmerge: 4.3.1 + dompurify: 3.1.5 + i18next: 23.11.5 + lodash: 4.17.21 + manifesto.js: 4.2.17 + normalize-url: 4.5.1 + openseadragon: 4.1.1 + prop-types: 15.8.1 + rdndmb-html5-to-touch: 8.0.3(dnd-core@16.0.1) + re-reselect: 5.1.0(reselect@5.1.1) + react: 18.3.1 + react-copy-to-clipboard: 5.1.0(react@18.3.1) + react-dnd: 16.0.1(react@18.3.1) + react-dnd-html5-backend: 16.0.1 + react-dnd-multi-backend: 8.0.3(dnd-core@16.0.1)(react-dnd@16.0.1)(react-dom@18.3.1)(react@18.3.1) + react-dnd-touch-backend: 16.0.1 + react-dom: 18.3.1(react@18.3.1) + react-full-screen: 1.1.1(react@18.3.1) + react-i18next: 13.5.0(i18next@23.11.5)(react-dom@18.3.1)(react@18.3.1) + react-image: 4.1.0(@babel/runtime@7.24.7)(react-dom@18.3.1)(react@18.3.1) + react-intersection-observer: 9.10.3(react-dom@18.3.1)(react@18.3.1) + react-mosaic-component: 6.1.0(dnd-core@16.0.1)(react-dom@18.3.1)(react@18.3.1) + react-redux: 9.1.2(react@18.3.1)(redux@5.0.1) + react-resize-observer: 1.1.1(react@18.3.1) + react-rnd: 10.4.11(react-dom@18.3.1)(react@18.3.1) + react-sizeme: 3.0.2 + react-virtualized-auto-sizer: 1.0.24(react-dom@18.3.1)(react@18.3.1) + react-window: 1.8.10(react-dom@18.3.1)(react@18.3.1) + redux: 5.0.1 + redux-saga: 1.3.0 + redux-thunk: 3.1.0(redux@5.0.1) + reselect: 5.1.1 + stylis: 4.3.2 + stylis-plugin-rtl: 2.1.1(stylis@4.3.2) + url: 0.11.3 + uuid: 9.0.1 + transitivePeerDependencies: + - '@babel/runtime' + - '@mui/system' + - '@types/hoist-non-react-statics' + - '@types/node' + - '@types/react' + - '@types/react-dom' + - dnd-core + - encoding + - react-native + - supports-color dev: true /@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3: @@ -2627,19 +2692,15 @@ packages: resolution: {integrity: sha512-w8lxs35QrRrn6pBNzVfyGOeqWdxeVKf9U6bXIVwhq7rrTqRULL8jqy8RJIMfIs1s8G5FpwWYjyBOjl2g5Cu1iA==} dependencies: '@swc/helpers': 0.5.11 - dev: true /@react-dnd/asap@5.0.2: resolution: {integrity: sha512-WLyfoHvxhs0V9U+GTsGilGgf2QsPl6ZZ44fnv0/b8T3nQyvzxidxsg/ZltbWssbsRDlYW8UKSQMTGotuTotZ6A==} - dev: true /@react-dnd/invariant@4.0.2: resolution: {integrity: sha512-xKCTqAK/FFauOM9Ta2pswIyT3D8AQlfrYdOi/toTPEhqCuAs1v5tcJ3Y08Izh1cJ5Jchwy9SeAXmMg6zrKs2iw==} - dev: true /@react-dnd/shallowequal@4.0.2: resolution: {integrity: sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA==} - dev: true /@redux-devtools/extension@3.3.0(redux@5.0.1): resolution: {integrity: sha512-X34S/rC8S/M1BIrkYD1mJ5f8vlH0BDqxXrs96cvxSBo4FhMdbhU+GUGsmNYov1xjSyLMHgo8NYrUG8bNX7525g==} @@ -2649,7 +2710,6 @@ packages: '@babel/runtime': 7.24.7 immutable: 4.3.6 redux: 5.0.1 - dev: true /@redux-saga/core@1.3.0: resolution: {integrity: sha512-L+i+qIGuyWn7CIg7k1MteHGfttKPmxwZR5E7OsGikCL2LzYA0RERlaUY00Y3P3ZV2EYgrsYlBrGs6cJP5OKKqA==} @@ -2661,32 +2721,26 @@ packages: '@redux-saga/symbols': 1.1.3 '@redux-saga/types': 1.2.1 typescript-tuple: 2.2.1 - dev: true /@redux-saga/deferred@1.2.1: resolution: {integrity: sha512-cmin3IuuzMdfQjA0lG4B+jX+9HdTgHZZ+6u3jRAOwGUxy77GSlTi4Qp2d6PM1PUoTmQUR5aijlA39scWWPF31g==} - dev: true /@redux-saga/delay-p@1.2.1: resolution: {integrity: sha512-MdiDxZdvb1m+Y0s4/hgdcAXntpUytr9g0hpcOO1XFVyyzkrDu3SKPgBFOtHn7lhu7n24ZKIAT1qtKyQjHqRd+w==} dependencies: '@redux-saga/symbols': 1.1.3 - dev: true /@redux-saga/is@1.1.3: resolution: {integrity: sha512-naXrkETG1jLRfVfhOx/ZdLj0EyAzHYbgJWkXbB3qFliPcHKiWbv/ULQryOAEKyjrhiclmr6AMdgsXFyx7/yE6Q==} dependencies: '@redux-saga/symbols': 1.1.3 '@redux-saga/types': 1.2.1 - dev: true /@redux-saga/symbols@1.1.3: resolution: {integrity: sha512-hCx6ZvU4QAEUojETnX8EVg4ubNLBFl1Lps4j2tX7o45x/2qg37m3c6v+kSp8xjDJY+2tJw4QB3j8o8dsl1FDXg==} - dev: true /@redux-saga/types@1.2.1: resolution: {integrity: sha512-1dgmkh+3so0+LlBWRhGA33ua4MYr7tUOj+a9Si28vUi0IUFNbff1T3sgpeDJI/LaC75bBYnQ0A3wXjn0OrRNBA==} - dev: true /@rushstack/eslint-patch@1.10.3: resolution: {integrity: sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==} @@ -2726,7 +2780,6 @@ packages: resolution: {integrity: sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==} dependencies: tslib: 2.6.3 - dev: true /@testing-library/dom@9.3.4: resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} @@ -2912,7 +2965,6 @@ packages: dependencies: '@types/react': 18.3.3 hoist-non-react-statics: 3.3.2 - dev: true /@types/html-minifier-terser@6.1.0: resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} @@ -4194,7 +4246,6 @@ packages: function-bind: 1.1.2 get-intrinsic: 1.2.4 set-function-length: 1.2.2 - dev: true /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -4312,7 +4363,6 @@ packages: /classnames@2.5.1: resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} - dev: true /clean-css@5.3.3: resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} @@ -4342,7 +4392,6 @@ packages: /clsx@1.2.1: resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} engines: {node: '>=6'} - dev: true /clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} @@ -4499,7 +4548,6 @@ packages: resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} dependencies: toggle-selection: 1.0.6 - dev: true /core-js-compat@3.37.1: resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} @@ -4609,7 +4657,6 @@ packages: resolution: {integrity: sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==} dependencies: tiny-invariant: 1.3.3 - dev: true /css-select@4.3.0: resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} @@ -4633,7 +4680,6 @@ packages: /cssjanus@2.1.0: resolution: {integrity: sha512-kAijbny3GmdOi9k+QT6DGIXqFvL96aksNlGr4Rhk9qXDZYWUojU4bRc3IHWxdaLNOqgEZHuXoe5Wl2l7dxLW5g==} engines: {node: '>=10.0.0'} - dev: true /cssom@0.3.8: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} @@ -4800,7 +4846,6 @@ packages: /deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - dev: true /default-gateway@6.0.3: resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} @@ -4816,7 +4861,6 @@ packages: es-define-property: 1.0.0 es-errors: 1.3.0 gopd: 1.0.1 - dev: true /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} @@ -4919,7 +4963,6 @@ packages: '@react-dnd/asap': 5.0.2 '@react-dnd/invariant': 4.0.2 redux: 4.2.1 - dev: true /dnd-multi-backend@8.0.3(dnd-core@16.0.1): resolution: {integrity: sha512-yFFARotr+OEJk787Fsj+V52pi6j7+Pt/CRp3IR2Ai3fnxA/z6J54T7+gxkXzXu4cvxTNE7NiBzzAaJ2f7JjFTw==} @@ -4927,7 +4970,6 @@ packages: dnd-core: ^16.0.1 dependencies: dnd-core: 16.0.1 - dev: true /dns-packet@5.6.1: resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} @@ -4999,7 +5041,6 @@ packages: /dompurify@3.1.5: resolution: {integrity: sha512-lwG+n5h8QNpxtyrJW/gJWckL+1/DQiYMX8f7t8Z2AZTPw1esVrqjI63i7Zc2Gz0aKzLVMYC1V1PL/ky+aY/NgA==} - dev: true /domutils@2.8.0: resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} @@ -5158,12 +5199,10 @@ packages: engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 - dev: true /es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - dev: true /es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} @@ -5856,7 +5895,6 @@ packages: /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true /fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} @@ -6118,7 +6156,6 @@ packages: /fscreen@1.2.0: resolution: {integrity: sha512-hlq4+BU0hlPmwsFjwGGzZ+OZ9N/wq9Ljg/sq3pX+2CD7hrJsX9tJgWWK/wiNTFM212CLHWhicOoqwXyZGGetJg==} - dev: true /fsevents@1.2.13: resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} @@ -6176,7 +6213,6 @@ packages: has-proto: 1.0.3 has-symbols: 1.0.3 hasown: 2.0.2 - dev: true /get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} @@ -6311,7 +6347,6 @@ packages: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: get-intrinsic: 1.2.4 - dev: true /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -6342,17 +6377,14 @@ packages: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: es-define-property: 1.0.0 - dev: true /has-proto@1.0.3: resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} - dev: true /has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} - dev: true /has-tostringtag@1.0.2: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} @@ -6486,7 +6518,6 @@ packages: resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==} dependencies: void-elements: 3.1.0 - dev: true /html-webpack-plugin@5.6.0(webpack@5.92.1): resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} @@ -6626,7 +6657,6 @@ packages: resolution: {integrity: sha512-41pvpVbW9rhZPk5xjCX2TPJi2861LEig/YRhUkY+1FQ2IQPS0bKUDYnEqY8XPPbB48h1uIwLnP9iiEfuSl20CA==} dependencies: '@babel/runtime': 7.24.7 - dev: true /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} @@ -6653,11 +6683,9 @@ packages: /immutability-helper@3.1.1: resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==} - dev: true /immutable@4.3.6: resolution: {integrity: sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==} - dev: true /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} @@ -7083,7 +7111,6 @@ packages: unfetch: 4.2.0 transitivePeerDependencies: - encoding - dev: true /istanbul-lib-coverage@2.0.5: resolution: {integrity: sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==} @@ -8068,7 +8095,6 @@ packages: lodash: 4.17.21 transitivePeerDependencies: - encoding - dev: true /map-cache@0.2.2: resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} @@ -8096,11 +8122,9 @@ packages: /memoize-one@5.2.1: resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} - dev: true /memoize-one@6.0.0: resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} - dev: true /merge-descriptors@1.0.1: resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} @@ -8256,7 +8280,7 @@ packages: - encoding - react-native - supports-color - dev: true + dev: false /mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} @@ -8368,7 +8392,6 @@ packages: optional: true dependencies: whatwg-url: 5.0.0 - dev: true /node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} @@ -8408,7 +8431,6 @@ packages: /normalize-url@4.5.1: resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} engines: {node: '>=8'} - dev: true /npm-run-path@2.0.2: resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} @@ -8450,7 +8472,6 @@ packages: /object-inspect@1.13.2: resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} engines: {node: '>= 0.4'} - dev: true /object-is@1.1.6: resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} @@ -8588,7 +8609,6 @@ packages: /openseadragon@4.1.1: resolution: {integrity: sha512-owU9gsasAcobLN+LM8lN58Xc2VDSDotY9mkrwS/NB6g9KX/PcusV4RZvhHng2RF/Q0pMziwldf62glwXoGnuzg==} - dev: true /optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} @@ -8950,7 +8970,6 @@ packages: /punycode@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} - dev: true /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} @@ -9008,7 +9027,6 @@ packages: engines: {node: '>=0.6'} dependencies: side-channel: 1.0.6 - dev: true /querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} @@ -9024,7 +9042,6 @@ packages: /raf-schd@4.0.3: resolution: {integrity: sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==} - dev: true /randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -9055,7 +9072,6 @@ packages: react-dnd-touch-backend: 16.0.1 transitivePeerDependencies: - dnd-core - dev: true /re-reselect@5.1.0(reselect@5.1.1): resolution: {integrity: sha512-3ZHxFOvhIqBTrHzXKQEGxjUYzL78w6JhLJGvZas/Fmb7eju7pKDbRZFZgvTnJ1X9X6LWvYUOvLveAl0s/JAJvg==} @@ -9063,7 +9079,6 @@ packages: reselect: ^5.0.0 dependencies: reselect: 5.1.1 - dev: true /re-resizable@6.9.17(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-OBqd1BwVXpEJJn/yYROG+CbeqIDBWIp6wathlpB0kzZWWZIY1gPTsgK2yJEui5hOvkCdC2mcexF2V3DZVfLq2g==} @@ -9073,7 +9088,6 @@ packages: dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - dev: true /react-copy-to-clipboard@5.1.0(react@18.3.1): resolution: {integrity: sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==} @@ -9083,13 +9097,11 @@ packages: copy-to-clipboard: 3.3.3 prop-types: 15.8.1 react: 18.3.1 - dev: true /react-dnd-html5-backend@16.0.1: resolution: {integrity: sha512-Wu3dw5aDJmOGw8WjH1I1/yTH+vlXEL4vmjk5p+MHxP8HuHJS1lAGeIdG/hze1AvNeXWo/JgULV87LyQOr+r5jw==} dependencies: dnd-core: 16.0.1 - dev: true /react-dnd-multi-backend@8.0.3(dnd-core@16.0.1)(react-dnd@16.0.1)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-IwH7Mf6R05KIFohX0hHMTluoAvuUD8SO15KCD+9fY0nJ4nc1FGCMCSyMZw8R1XNStKp+JnNg3ZMtiaf5DebSUg==} @@ -9105,7 +9117,6 @@ packages: react-dnd: 16.0.1(react@18.3.1) react-dnd-preview: 8.0.3(react-dnd@16.0.1)(react@18.3.1) react-dom: 18.3.1(react@18.3.1) - dev: true /react-dnd-preview@8.0.3(react-dnd@16.0.1)(react@18.3.1): resolution: {integrity: sha512-s69Ro47QYDthDhj73iQ0VioMCjtlZ1AytKBDkQaHKm5DTjA8D2bIaFKCBQd330QEW0SIzqLJrZGCSlIY2xraJg==} @@ -9115,14 +9126,12 @@ packages: dependencies: react: 18.3.1 react-dnd: 16.0.1(react@18.3.1) - dev: true /react-dnd-touch-backend@16.0.1: resolution: {integrity: sha512-NonoCABzzjyWGZuDxSG77dbgMZ2Wad7eQiCd/ECtsR2/NBLTjGksPUx9UPezZ1nQ/L7iD130Tz3RUshL/ClKLA==} dependencies: '@react-dnd/invariant': 4.0.2 dnd-core: 16.0.1 - dev: true /react-dnd@16.0.1(react@18.3.1): resolution: {integrity: sha512-QeoM/i73HHu2XF9aKksIUuamHPDvRglEwdHL4jsp784BgUuWcg6mzfxT0QDdQz8Wj0qyRKx2eMg8iZtWvU4E2Q==} @@ -9145,7 +9154,6 @@ packages: fast-deep-equal: 3.1.3 hoist-non-react-statics: 3.3.2 react: 18.3.1 - dev: true /react-dom@18.3.1(react@18.3.1): resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} @@ -9166,7 +9174,6 @@ packages: prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - dev: true /react-full-screen@1.1.1(react@18.3.1): resolution: {integrity: sha512-xoEgkoTiN0dw9cjYYGViiMCBYbkS97BYb4bHPhQVWXj1UnOs8PZ1rPzpX+2HMhuvQV1jA5AF9GaRbO3fA5aZtg==} @@ -9176,7 +9183,6 @@ packages: dependencies: fscreen: 1.2.0 react: 18.3.1 - dev: true /react-i18next@13.5.0(i18next@23.11.5)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-CFJ5NDGJ2MUyBohEHxljOq/39NQ972rh1ajnadG9BjTk+UXbHLq4z5DKEbEQBDoIhUmmbuS/fIMJKo6VOax1HA==} @@ -9196,7 +9202,6 @@ packages: i18next: 23.11.5 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - dev: true /react-image@4.1.0(@babel/runtime@7.24.7)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-qwPNlelQe9Zy14K2pGWSwoL+vHsAwmJKS6gkotekDgRpcnRuzXNap00GfibD3eEPYu3WCPlyIUUNzcyHOrLHjw==} @@ -9208,7 +9213,6 @@ packages: '@babel/runtime': 7.24.7 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - dev: true /react-intersection-observer@9.10.3(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-9NYfKwPZRovB6QJee7fDg0zz/SyYrqXtn5xTZU0vwLtLVBtfu9aZt1pVmr825REE49VPDZ7Lm5SNHjJBOTZHpA==} @@ -9221,7 +9225,6 @@ packages: dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - dev: true /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -9255,7 +9258,6 @@ packages: - '@types/react' - dnd-core - react-dom - dev: true /react-redux@8.1.3(react-dom@18.3.1)(react@18.3.1)(redux@4.2.1): resolution: {integrity: sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==} @@ -9287,7 +9289,6 @@ packages: react-is: 18.3.1 redux: 4.2.1 use-sync-external-store: 1.2.2(react@18.3.1) - dev: true /react-redux@9.1.2(react@18.3.1)(redux@5.0.1): resolution: {integrity: sha512-0OA4dhM1W48l3uzmv6B7TXPCGmokUU4p1M44DGN2/D9a1FjVPukVjER1PcPX97jIg6aUeLq1XJo1IpfbgULn0w==} @@ -9317,7 +9318,6 @@ packages: react: '>=0.14' dependencies: react: 18.3.1 - dev: true /react-rnd@10.4.11(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-XTfNGNcS0ad2vo3to7qNTB0BkFML9k1csIUI0Nlj44M6Uuh7yP/2h8WXiXcV3v3bxxVJck1C9K6FS1LrLH0E0Q==} @@ -9330,7 +9330,6 @@ packages: react-dom: 18.3.1(react@18.3.1) react-draggable: 4.4.6(react-dom@18.3.1)(react@18.3.1) tslib: 2.6.2 - dev: true /react-sizeme@3.0.2: resolution: {integrity: sha512-xOIAOqqSSmKlKFJLO3inBQBdymzDuXx4iuwkNcJmC96jeiOg5ojByvL+g3MW9LPEsojLbC6pf68zOfobK8IPlw==} @@ -9361,7 +9360,6 @@ packages: dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - dev: true /react-window@1.8.10(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-Y0Cx+dnU6NLa5/EvoHukUD0BklJ8qITCtVEPY1C/nL8wwoZ0b5aEw8Ff1dOVHw7fCzMt55XfJDd8S8W8LCaUCg==} @@ -9374,7 +9372,6 @@ packages: memoize-one: 5.2.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - dev: true /react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} @@ -9454,7 +9451,6 @@ packages: resolution: {integrity: sha512-J9RvCeAZXSTAibFY0kGw6Iy4EdyDNW7k6Q+liwX+bsck7QVsU78zz8vpBRweEfANxnnlG/xGGeOvf6r8UXzNJQ==} dependencies: '@redux-saga/core': 1.3.0 - dev: true /redux-thunk@3.1.0(redux@5.0.1): resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} @@ -9467,7 +9463,6 @@ packages: resolution: {integrity: sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==} dependencies: '@babel/runtime': 7.24.7 - dev: true /redux@5.0.1: resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} @@ -9591,7 +9586,6 @@ packages: /reselect@5.1.1: resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==} - dev: true /resolve-cwd@3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} @@ -9863,7 +9857,6 @@ packages: get-intrinsic: 1.2.4 gopd: 1.0.1 has-property-descriptors: 1.0.2 - dev: true /set-function-name@2.0.2: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} @@ -9939,7 +9932,6 @@ packages: es-errors: 1.3.0 get-intrinsic: 1.2.4 object-inspect: 1.13.2 - dev: true /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -10327,14 +10319,12 @@ packages: dependencies: cssjanus: 2.1.0 stylis: 4.3.2 - dev: true /stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} /stylis@4.3.2: resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} - dev: true /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} @@ -10470,7 +10460,6 @@ packages: /tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - dev: true /tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -10515,7 +10504,6 @@ packages: /toggle-selection@1.0.6: resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - dev: true /toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} @@ -10534,7 +10522,6 @@ packages: /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - dev: true /tr46@3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} @@ -10563,11 +10550,9 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - dev: true /tslib@2.6.3: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - dev: true /tsutils@3.21.0(typescript@5.5.2): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -10657,17 +10642,14 @@ packages: resolution: {integrity: sha512-8ja4j7pMHkfLJQO2/8tut7ub+J3Lw2S3061eJLFQcvs3tsmJKp8KG5NtpLn7KcY2w08edF74BSVN7qJS0U6oHA==} dependencies: typescript-logic: 0.0.0 - dev: true /typescript-logic@0.0.0: resolution: {integrity: sha512-zXFars5LUkI3zP492ls0VskH3TtdeHCqu0i7/duGt60i5IGPIpAHE/DWo5FqJ6EjQ15YKXrt+AETjv60Dat34Q==} - dev: true /typescript-tuple@2.2.1: resolution: {integrity: sha512-Zcr0lbt8z5ZdEzERHAMAniTiIKerFCMgd7yjq1fPnDJ43et/k9twIFQMUYff9k5oXcsQ0WpvFcgzK2ZKASoW6Q==} dependencies: typescript-compare: 0.0.2 - dev: true /typescript@5.5.2: resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} @@ -10697,7 +10679,6 @@ packages: /unfetch@4.2.0: resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==} - dev: true /unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} @@ -10789,7 +10770,6 @@ packages: dependencies: punycode: 1.4.1 qs: 6.12.1 - dev: true /urlpattern-polyfill@10.0.0: resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} @@ -10801,7 +10781,6 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: react: 18.3.1 - dev: true /use-sync-external-store@1.2.2(react@18.3.1): resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} @@ -10848,7 +10827,6 @@ packages: /uuid@9.0.1: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true - dev: true /v8-to-istanbul@9.2.0: resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} @@ -10874,7 +10852,6 @@ packages: /void-elements@3.1.0: resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} engines: {node: '>=0.10.0'} - dev: true /w3c-xmlserializer@4.0.0: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} @@ -10919,7 +10896,6 @@ packages: /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - dev: true /webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} @@ -11120,7 +11096,6 @@ packages: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - dev: true /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} diff --git a/src/index.js b/src/index.js index d8b8d15..9fbff6f 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,5 @@ -import * as actions from 'mirador/dist/es/src/state/actions'; -import { getWindowConfig, getViewer, getContainerId } from 'mirador/dist/es/src/state/selectors'; +import * as actions from '@nakamura196/mirador/dist/es/src/state/actions'; +import { getWindowConfig, getViewer, getContainerId } from '@nakamura196/mirador/dist/es/src/state/selectors'; import MiradorRotation from './plugins/MiradorRotation'; import MiradorRotationMenuItem from './plugins/MiradorRotationMenuItem'; import translations from './translations'; diff --git a/src/plugins/MiradorRotation.js b/src/plugins/MiradorRotation.js index a6fbdef..d2f08d8 100644 --- a/src/plugins/MiradorRotation.js +++ b/src/plugins/MiradorRotation.js @@ -1,7 +1,7 @@ import React, { Component } from 'react'; import compose from 'lodash/flowRight'; import { withSize } from 'react-sizeme'; -import { MiradorMenuButton } from 'mirador/dist/es/src/components/MiradorMenuButton'; +import { MiradorMenuButton } from '@nakamura196/mirador/dist/es/src/components/MiradorMenuButton'; import PropTypes from 'prop-types'; @@ -89,7 +89,7 @@ class MiradorRotation extends Component { return (value) => { this.setState({ rotation: value }); - updateViewport(windowId, { rotation: value }); + updateViewport(windowId, { rotation: value, immediately: true }); }; } @@ -100,7 +100,7 @@ class MiradorRotation extends Component { this.setState({ rotation: 0 }); - updateViewport(windowId, { rotation: 0 }); + updateViewport(windowId, { rotation: 0, immediately: false }); } toggleState() { diff --git a/src/plugins/MiradorRotationMenuItem.js b/src/plugins/MiradorRotationMenuItem.js index 56a0c2b..b76734d 100644 --- a/src/plugins/MiradorRotationMenuItem.js +++ b/src/plugins/MiradorRotationMenuItem.js @@ -6,7 +6,7 @@ import ListItemText from '@mui/material/ListItemText'; import LayersIcon from '@mui/icons-material/Layers'; const MiradorRotationMenuItem = ({ - enabled, handleClose, t, updateWindow, windowId, + enabled = true, handleClose, t, updateWindow, windowId, }) => { const handleClickOpen = () => { handleClose(); diff --git a/src/plugins/Rotation.js b/src/plugins/Rotation.js index efba4dc..827ebd0 100644 --- a/src/plugins/Rotation.js +++ b/src/plugins/Rotation.js @@ -1,6 +1,6 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; -import { MiradorMenuButton } from 'mirador/dist/es/src/components/MiradorMenuButton'; +import { MiradorMenuButton } from '@nakamura196/mirador/dist/es/src/components/MiradorMenuButton'; import Slider from '@mui/material/Slider'; import { styled, alpha } from '@mui/material/styles';