Browse Source

fix delay style update in strucmotif UI

Sebastian Bittrich 2 years ago
parent
commit
3d882fd23a
4 changed files with 217 additions and 212 deletions
  1. 4 0
      CHANGELOG.md
  2. 201 201
      package-lock.json
  3. 10 10
      package.json
  4. 2 1
      src/viewer/ui/exchanges.tsx

+ 4 - 0
CHANGELOG.md

@@ -2,6 +2,10 @@
 
 [Semantic Versioning](https://semver.org/)
 
+## [2.4.2] - 2022-06-01
+### Bug fixes
+- Strucmotif UI: call `blur()` to update CSS style properly
+
 ## [2.4.1] - 2022-05-16
 ### Bug fixes
 - Mol* 3.8.1 (fix Polymer Chain Instance coloring)

+ 201 - 201
package-lock.json

@@ -9,34 +9,34 @@
             "version": "2.4.1",
             "license": "MIT",
             "dependencies": {
-                "@types/react": "^18.0.9",
-                "@types/react-dom": "^18.0.4",
-                "molstar": "^3.8.1",
+                "@types/react": "^18.0.10",
+                "@types/react-dom": "^18.0.5",
+                "molstar": "^3.9.0",
                 "react": "^18.1.0",
                 "react-dom": "^18.1.0",
                 "rxjs": "^7.5.5",
                 "tslib": "^2.4.0"
             },
             "devDependencies": {
-                "@typescript-eslint/eslint-plugin": "^5.23.0",
-                "@typescript-eslint/parser": "^5.23.0",
+                "@typescript-eslint/eslint-plugin": "^5.27.0",
+                "@typescript-eslint/parser": "^5.27.0",
                 "buffer": "^6.0.3",
-                "concurrently": "^7.2.0",
+                "concurrently": "^7.2.1",
                 "cpx2": "^4.2.0",
                 "crypto-browserify": "^3.12.0",
                 "css-loader": "^6.7.1",
-                "eslint": "^8.15.0",
+                "eslint": "^8.16.0",
                 "extra-watch-webpack-plugin": "^1.0.3",
                 "file-loader": "^6.2.0",
                 "fs-extra": "^10.1.0",
                 "mini-css-extract-plugin": "^2.6.0",
                 "path-browserify": "^1.0.1",
                 "raw-loader": "^4.0.2",
-                "sass": "^1.51.0",
-                "sass-loader": "^12.6.0",
+                "sass": "^1.52.1",
+                "sass-loader": "^13.0.0",
                 "stream-browserify": "^3.0.0",
                 "style-loader": "^3.3.1",
-                "typescript": "^4.6.4",
+                "typescript": "^4.7.2",
                 "webpack": "^5.72.1",
                 "webpack-cli": "^4.9.2"
             }
@@ -51,15 +51,15 @@
             }
         },
         "node_modules/@eslint/eslintrc": {
-            "version": "1.2.3",
-            "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz",
-            "integrity": "sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==",
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz",
+            "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==",
             "dev": true,
             "dependencies": {
                 "ajv": "^6.12.4",
                 "debug": "^4.3.2",
                 "espree": "^9.3.2",
-                "globals": "^13.9.0",
+                "globals": "^13.15.0",
                 "ignore": "^5.2.0",
                 "import-fresh": "^3.2.1",
                 "js-yaml": "^4.1.0",
@@ -219,9 +219,9 @@
             "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="
         },
         "node_modules/@types/node": {
-            "version": "16.11.35",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.35.tgz",
-            "integrity": "sha512-QXu45LyepgnhUfnIAj/FyT4uM87ug5KpIrgXfQtUPNAlx8w5hmd8z8emqCLNvG11QkpRSCG9Qg2buMxvqfjfsQ=="
+            "version": "16.11.36",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.36.tgz",
+            "integrity": "sha512-FR5QJe+TaoZ2GsMHkjuwoNabr+UrJNRr2HNOo+r/7vhcuntM6Ee/pRPOnRhhL2XE9OOvX9VLEq+BcXl3VjNoWA=="
         },
         "node_modules/@types/node-fetch": {
             "version": "2.6.1",
@@ -248,9 +248,9 @@
             "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
         },
         "node_modules/@types/react": {
-            "version": "18.0.9",
-            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz",
-            "integrity": "sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==",
+            "version": "18.0.10",
+            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.10.tgz",
+            "integrity": "sha512-dIugadZuIPrRzvIEevIu7A1smqOAjkSMv8qOfwPt9Ve6i6JT/FQcCHyk2qIAxwsQNKZt5/oGR0T4z9h2dXRAkg==",
             "dependencies": {
                 "@types/prop-types": "*",
                 "@types/scheduler": "*",
@@ -258,9 +258,9 @@
             }
         },
         "node_modules/@types/react-dom": {
-            "version": "18.0.4",
-            "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.4.tgz",
-            "integrity": "sha512-FgTtbqPOCI3dzZPZoC2T/sx3L34qxy99ITWn4eoSA95qPyXDMH0ALoAqUp49ITniiJFsXUVBtalh/KffMpg21Q==",
+            "version": "18.0.5",
+            "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz",
+            "integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==",
             "dependencies": {
                 "@types/react": "*"
             }
@@ -285,19 +285,19 @@
             "integrity": "sha512-wWojDensMF33dSrhak4iWSPOsWBbvf+rSJ6VWQ7ohQbGdKAiT2IwUexrDZkMvf3+vVAPVnNFDRDtxADFszbh+Q=="
         },
         "node_modules/@typescript-eslint/eslint-plugin": {
-            "version": "5.23.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.23.0.tgz",
-            "integrity": "sha512-hEcSmG4XodSLiAp1uxv/OQSGsDY6QN3TcRU32gANp+19wGE1QQZLRS8/GV58VRUoXhnkuJ3ZxNQ3T6Z6zM59DA==",
+            "version": "5.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.27.0.tgz",
+            "integrity": "sha512-DDrIA7GXtmHXr1VCcx9HivA39eprYBIFxbQEHI6NyraRDxCGpxAFiYQAT/1Y0vh1C+o2vfBiy4IuPoXxtTZCAQ==",
             "dev": true,
             "dependencies": {
-                "@typescript-eslint/scope-manager": "5.23.0",
-                "@typescript-eslint/type-utils": "5.23.0",
-                "@typescript-eslint/utils": "5.23.0",
-                "debug": "^4.3.2",
+                "@typescript-eslint/scope-manager": "5.27.0",
+                "@typescript-eslint/type-utils": "5.27.0",
+                "@typescript-eslint/utils": "5.27.0",
+                "debug": "^4.3.4",
                 "functional-red-black-tree": "^1.0.1",
-                "ignore": "^5.1.8",
+                "ignore": "^5.2.0",
                 "regexpp": "^3.2.0",
-                "semver": "^7.3.5",
+                "semver": "^7.3.7",
                 "tsutils": "^3.21.0"
             },
             "engines": {
@@ -318,15 +318,15 @@
             }
         },
         "node_modules/@typescript-eslint/parser": {
-            "version": "5.23.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.23.0.tgz",
-            "integrity": "sha512-V06cYUkqcGqpFjb8ttVgzNF53tgbB/KoQT/iB++DOIExKmzI9vBJKjZKt/6FuV9c+zrDsvJKbJ2DOCYwX91cbw==",
+            "version": "5.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.27.0.tgz",
+            "integrity": "sha512-8oGjQF46c52l7fMiPPvX4It3u3V3JipssqDfHQ2hcR0AeR8Zge+OYyKUCm5b70X72N1qXt0qgHenwN6Gc2SXZA==",
             "dev": true,
             "dependencies": {
-                "@typescript-eslint/scope-manager": "5.23.0",
-                "@typescript-eslint/types": "5.23.0",
-                "@typescript-eslint/typescript-estree": "5.23.0",
-                "debug": "^4.3.2"
+                "@typescript-eslint/scope-manager": "5.27.0",
+                "@typescript-eslint/types": "5.27.0",
+                "@typescript-eslint/typescript-estree": "5.27.0",
+                "debug": "^4.3.4"
             },
             "engines": {
                 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -345,13 +345,13 @@
             }
         },
         "node_modules/@typescript-eslint/scope-manager": {
-            "version": "5.23.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz",
-            "integrity": "sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==",
+            "version": "5.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.27.0.tgz",
+            "integrity": "sha512-VnykheBQ/sHd1Vt0LJ1JLrMH1GzHO+SzX6VTXuStISIsvRiurue/eRkTqSrG0CexHQgKG8shyJfR4o5VYioB9g==",
             "dev": true,
             "dependencies": {
-                "@typescript-eslint/types": "5.23.0",
-                "@typescript-eslint/visitor-keys": "5.23.0"
+                "@typescript-eslint/types": "5.27.0",
+                "@typescript-eslint/visitor-keys": "5.27.0"
             },
             "engines": {
                 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -362,13 +362,13 @@
             }
         },
         "node_modules/@typescript-eslint/type-utils": {
-            "version": "5.23.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.23.0.tgz",
-            "integrity": "sha512-iuI05JsJl/SUnOTXA9f4oI+/4qS/Zcgk+s2ir+lRmXI+80D8GaGwoUqs4p+X+4AxDolPpEpVUdlEH4ADxFy4gw==",
+            "version": "5.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.27.0.tgz",
+            "integrity": "sha512-vpTvRRchaf628Hb/Xzfek+85o//zEUotr1SmexKvTfs7czXfYjXVT/a5yDbpzLBX1rhbqxjDdr1Gyo0x1Fc64g==",
             "dev": true,
             "dependencies": {
-                "@typescript-eslint/utils": "5.23.0",
-                "debug": "^4.3.2",
+                "@typescript-eslint/utils": "5.27.0",
+                "debug": "^4.3.4",
                 "tsutils": "^3.21.0"
             },
             "engines": {
@@ -388,9 +388,9 @@
             }
         },
         "node_modules/@typescript-eslint/types": {
-            "version": "5.23.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.23.0.tgz",
-            "integrity": "sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==",
+            "version": "5.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.27.0.tgz",
+            "integrity": "sha512-lY6C7oGm9a/GWhmUDOs3xAVRz4ty/XKlQ2fOLr8GAIryGn0+UBOoJDWyHer3UgrHkenorwvBnphhP+zPmzmw0A==",
             "dev": true,
             "engines": {
                 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -401,17 +401,17 @@
             }
         },
         "node_modules/@typescript-eslint/typescript-estree": {
-            "version": "5.23.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.23.0.tgz",
-            "integrity": "sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg==",
+            "version": "5.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.27.0.tgz",
+            "integrity": "sha512-QywPMFvgZ+MHSLRofLI7BDL+UczFFHyj0vF5ibeChDAJgdTV8k4xgEwF0geFhVlPc1p8r70eYewzpo6ps+9LJQ==",
             "dev": true,
             "dependencies": {
-                "@typescript-eslint/types": "5.23.0",
-                "@typescript-eslint/visitor-keys": "5.23.0",
-                "debug": "^4.3.2",
-                "globby": "^11.0.4",
+                "@typescript-eslint/types": "5.27.0",
+                "@typescript-eslint/visitor-keys": "5.27.0",
+                "debug": "^4.3.4",
+                "globby": "^11.1.0",
                 "is-glob": "^4.0.3",
-                "semver": "^7.3.5",
+                "semver": "^7.3.7",
                 "tsutils": "^3.21.0"
             },
             "engines": {
@@ -428,15 +428,15 @@
             }
         },
         "node_modules/@typescript-eslint/utils": {
-            "version": "5.23.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.23.0.tgz",
-            "integrity": "sha512-dbgaKN21drqpkbbedGMNPCtRPZo1IOUr5EI9Jrrh99r5UW5Q0dz46RKXeSBoPV+56R6dFKpbrdhgUNSJsDDRZA==",
+            "version": "5.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.27.0.tgz",
+            "integrity": "sha512-nZvCrkIJppym7cIbP3pOwIkAefXOmfGPnCM0LQfzNaKxJHI6VjI8NC662uoiPlaf5f6ymkTy9C3NQXev2mdXmA==",
             "dev": true,
             "dependencies": {
                 "@types/json-schema": "^7.0.9",
-                "@typescript-eslint/scope-manager": "5.23.0",
-                "@typescript-eslint/types": "5.23.0",
-                "@typescript-eslint/typescript-estree": "5.23.0",
+                "@typescript-eslint/scope-manager": "5.27.0",
+                "@typescript-eslint/types": "5.27.0",
+                "@typescript-eslint/typescript-estree": "5.27.0",
                 "eslint-scope": "^5.1.1",
                 "eslint-utils": "^3.0.0"
             },
@@ -452,13 +452,13 @@
             }
         },
         "node_modules/@typescript-eslint/visitor-keys": {
-            "version": "5.23.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.23.0.tgz",
-            "integrity": "sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==",
+            "version": "5.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.27.0.tgz",
+            "integrity": "sha512-46cYrteA2MrIAjv9ai44OQDUoCZyHeGIc4lsjCUX2WT6r4C+kidz1bNiR4017wHOPUythYeH+Sc7/cFP97KEAA==",
             "dev": true,
             "dependencies": {
-                "@typescript-eslint/types": "5.23.0",
-                "eslint-visitor-keys": "^3.0.0"
+                "@typescript-eslint/types": "5.27.0",
+                "eslint-visitor-keys": "^3.3.0"
             },
             "engines": {
                 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -1358,9 +1358,9 @@
             "dev": true
         },
         "node_modules/concurrently": {
-            "version": "7.2.0",
-            "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.2.0.tgz",
-            "integrity": "sha512-4KIVY5HopDRhN3ndAgfFOLsMk1PZUPgghlgTMZ5Pb5aTrqYg86RcZaIZC2Cz+qpZ9DsX36WHGjvWnXPqdnblhw==",
+            "version": "7.2.1",
+            "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.2.1.tgz",
+            "integrity": "sha512-7cab/QyqipqghrVr9qZmoWbidu0nHsmxrpNqQ7r/67vfl1DWJElexehQnTH1p+87tDkihaAjM79xTZyBQh7HLw==",
             "dev": true,
             "dependencies": {
                 "chalk": "^4.1.0",
@@ -1611,9 +1611,9 @@
             "dev": true
         },
         "node_modules/debug": {
-            "version": "4.3.3",
-            "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
-            "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+            "version": "4.3.4",
+            "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+            "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
             "dev": true,
             "dependencies": {
                 "ms": "2.1.2"
@@ -1888,12 +1888,12 @@
             }
         },
         "node_modules/eslint": {
-            "version": "8.15.0",
-            "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz",
-            "integrity": "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==",
+            "version": "8.16.0",
+            "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz",
+            "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==",
             "dev": true,
             "dependencies": {
-                "@eslint/eslintrc": "^1.2.3",
+                "@eslint/eslintrc": "^1.3.0",
                 "@humanwhocodes/config-array": "^0.9.2",
                 "ajv": "^6.10.0",
                 "chalk": "^4.0.0",
@@ -1911,7 +1911,7 @@
                 "file-entry-cache": "^6.0.1",
                 "functional-red-black-tree": "^1.0.1",
                 "glob-parent": "^6.0.1",
-                "globals": "^13.6.0",
+                "globals": "^13.15.0",
                 "ignore": "^5.2.0",
                 "import-fresh": "^3.0.0",
                 "imurmurhash": "^0.1.4",
@@ -2590,9 +2590,9 @@
             }
         },
         "node_modules/globals": {
-            "version": "13.14.0",
-            "resolved": "https://registry.npmjs.org/globals/-/globals-13.14.0.tgz",
-            "integrity": "sha512-ERO68sOYwm5UuLvSJTY7w7NP2c8S4UcXs3X1GBX8cwOr+ShOcDBbCY5mH4zxz0jsYCdJ8ve8Mv9n2YGJMB1aeg==",
+            "version": "13.15.0",
+            "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz",
+            "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==",
             "dev": true,
             "dependencies": {
                 "type-fest": "^0.20.2"
@@ -2809,9 +2809,9 @@
             }
         },
         "node_modules/immutable": {
-            "version": "4.0.0",
-            "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz",
-            "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw=="
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz",
+            "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ=="
         },
         "node_modules/import-fresh": {
             "version": "3.3.0",
@@ -3576,15 +3576,15 @@
             "dev": true
         },
         "node_modules/molstar": {
-            "version": "3.8.1",
-            "resolved": "https://registry.npmjs.org/molstar/-/molstar-3.8.1.tgz",
-            "integrity": "sha512-F/f0xiAR/bqV1+e9hT16Fx9VVPN17Pgrn6Pd+y2WqoN+tWleEqWB9FJ8H8hQW37EtqcY4GqFabNeSUkwUrF/aA==",
+            "version": "3.9.0",
+            "resolved": "https://registry.npmjs.org/molstar/-/molstar-3.9.0.tgz",
+            "integrity": "sha512-KNyZBff7oAt9Wf36l3FTR2WOQSHvWtDoAhfjcKFlpC+uuXxt0akFP/3MID7YS31ljn+ccjgTMAGwkotCWH5hLg==",
             "dependencies": {
                 "@types/argparse": "^2.0.10",
                 "@types/benchmark": "^2.1.1",
                 "@types/compression": "1.7.2",
                 "@types/express": "^4.17.13",
-                "@types/node": "^16.11.35",
+                "@types/node": "^16.11.36",
                 "@types/node-fetch": "^2.6.1",
                 "@types/swagger-ui-dist": "3.30.1",
                 "argparse": "^2.0.1",
@@ -3594,7 +3594,7 @@
                 "express": "^4.18.1",
                 "h264-mp4-encoder": "^1.0.12",
                 "immer": "^9.0.14",
-                "immutable": "^4.0.0",
+                "immutable": "^4.1.0",
                 "node-fetch": "^2.6.7",
                 "rxjs": "^7.5.5",
                 "swagger-ui-dist": "^4.11.1",
@@ -4495,9 +4495,9 @@
             "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
         },
         "node_modules/sass": {
-            "version": "1.51.0",
-            "resolved": "https://registry.npmjs.org/sass/-/sass-1.51.0.tgz",
-            "integrity": "sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA==",
+            "version": "1.52.1",
+            "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.1.tgz",
+            "integrity": "sha512-fSzYTbr7z8oQnVJ3Acp9hV80dM1fkMN7mSD/25mpcct9F7FPBMOI8krEYALgU1aZoqGhQNhTPsuSmxjnIvAm4Q==",
             "dev": true,
             "dependencies": {
                 "chokidar": ">=3.0.0 <4.0.0",
@@ -4512,16 +4512,16 @@
             }
         },
         "node_modules/sass-loader": {
-            "version": "12.6.0",
-            "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz",
-            "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==",
+            "version": "13.0.0",
+            "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.0.0.tgz",
+            "integrity": "sha512-IHCFecI+rbPvXE2zO/mqdVFe8MU7ElGrwga9hh2H65Ru4iaBJAMRteum1c4Gsxi9Cq1FOtTEDd6+/AEYuQDM4Q==",
             "dev": true,
             "dependencies": {
                 "klona": "^2.0.4",
                 "neo-async": "^2.6.2"
             },
             "engines": {
-                "node": ">= 12.13.0"
+                "node": ">= 14.15.0"
             },
             "funding": {
                 "type": "opencollective",
@@ -4571,9 +4571,9 @@
             }
         },
         "node_modules/semver": {
-            "version": "7.3.5",
-            "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
-            "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+            "version": "7.3.7",
+            "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+            "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
             "dev": true,
             "dependencies": {
                 "lru-cache": "^6.0.0"
@@ -5121,9 +5121,9 @@
             }
         },
         "node_modules/typescript": {
-            "version": "4.6.4",
-            "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz",
-            "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==",
+            "version": "4.7.2",
+            "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz",
+            "integrity": "sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==",
             "dev": true,
             "bin": {
                 "tsc": "bin/tsc",
@@ -5518,15 +5518,15 @@
             "dev": true
         },
         "@eslint/eslintrc": {
-            "version": "1.2.3",
-            "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz",
-            "integrity": "sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==",
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz",
+            "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==",
             "dev": true,
             "requires": {
                 "ajv": "^6.12.4",
                 "debug": "^4.3.2",
                 "espree": "^9.3.2",
-                "globals": "^13.9.0",
+                "globals": "^13.15.0",
                 "ignore": "^5.2.0",
                 "import-fresh": "^3.2.1",
                 "js-yaml": "^4.1.0",
@@ -5671,9 +5671,9 @@
             "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="
         },
         "@types/node": {
-            "version": "16.11.35",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.35.tgz",
-            "integrity": "sha512-QXu45LyepgnhUfnIAj/FyT4uM87ug5KpIrgXfQtUPNAlx8w5hmd8z8emqCLNvG11QkpRSCG9Qg2buMxvqfjfsQ=="
+            "version": "16.11.36",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.36.tgz",
+            "integrity": "sha512-FR5QJe+TaoZ2GsMHkjuwoNabr+UrJNRr2HNOo+r/7vhcuntM6Ee/pRPOnRhhL2XE9OOvX9VLEq+BcXl3VjNoWA=="
         },
         "@types/node-fetch": {
             "version": "2.6.1",
@@ -5700,9 +5700,9 @@
             "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
         },
         "@types/react": {
-            "version": "18.0.9",
-            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz",
-            "integrity": "sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==",
+            "version": "18.0.10",
+            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.10.tgz",
+            "integrity": "sha512-dIugadZuIPrRzvIEevIu7A1smqOAjkSMv8qOfwPt9Ve6i6JT/FQcCHyk2qIAxwsQNKZt5/oGR0T4z9h2dXRAkg==",
             "requires": {
                 "@types/prop-types": "*",
                 "@types/scheduler": "*",
@@ -5710,9 +5710,9 @@
             }
         },
         "@types/react-dom": {
-            "version": "18.0.4",
-            "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.4.tgz",
-            "integrity": "sha512-FgTtbqPOCI3dzZPZoC2T/sx3L34qxy99ITWn4eoSA95qPyXDMH0ALoAqUp49ITniiJFsXUVBtalh/KffMpg21Q==",
+            "version": "18.0.5",
+            "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz",
+            "integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==",
             "requires": {
                 "@types/react": "*"
             }
@@ -5737,98 +5737,98 @@
             "integrity": "sha512-wWojDensMF33dSrhak4iWSPOsWBbvf+rSJ6VWQ7ohQbGdKAiT2IwUexrDZkMvf3+vVAPVnNFDRDtxADFszbh+Q=="
         },
         "@typescript-eslint/eslint-plugin": {
-            "version": "5.23.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.23.0.tgz",
-            "integrity": "sha512-hEcSmG4XodSLiAp1uxv/OQSGsDY6QN3TcRU32gANp+19wGE1QQZLRS8/GV58VRUoXhnkuJ3ZxNQ3T6Z6zM59DA==",
+            "version": "5.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.27.0.tgz",
+            "integrity": "sha512-DDrIA7GXtmHXr1VCcx9HivA39eprYBIFxbQEHI6NyraRDxCGpxAFiYQAT/1Y0vh1C+o2vfBiy4IuPoXxtTZCAQ==",
             "dev": true,
             "requires": {
-                "@typescript-eslint/scope-manager": "5.23.0",
-                "@typescript-eslint/type-utils": "5.23.0",
-                "@typescript-eslint/utils": "5.23.0",
-                "debug": "^4.3.2",
+                "@typescript-eslint/scope-manager": "5.27.0",
+                "@typescript-eslint/type-utils": "5.27.0",
+                "@typescript-eslint/utils": "5.27.0",
+                "debug": "^4.3.4",
                 "functional-red-black-tree": "^1.0.1",
-                "ignore": "^5.1.8",
+                "ignore": "^5.2.0",
                 "regexpp": "^3.2.0",
-                "semver": "^7.3.5",
+                "semver": "^7.3.7",
                 "tsutils": "^3.21.0"
             }
         },
         "@typescript-eslint/parser": {
-            "version": "5.23.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.23.0.tgz",
-            "integrity": "sha512-V06cYUkqcGqpFjb8ttVgzNF53tgbB/KoQT/iB++DOIExKmzI9vBJKjZKt/6FuV9c+zrDsvJKbJ2DOCYwX91cbw==",
+            "version": "5.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.27.0.tgz",
+            "integrity": "sha512-8oGjQF46c52l7fMiPPvX4It3u3V3JipssqDfHQ2hcR0AeR8Zge+OYyKUCm5b70X72N1qXt0qgHenwN6Gc2SXZA==",
             "dev": true,
             "requires": {
-                "@typescript-eslint/scope-manager": "5.23.0",
-                "@typescript-eslint/types": "5.23.0",
-                "@typescript-eslint/typescript-estree": "5.23.0",
-                "debug": "^4.3.2"
+                "@typescript-eslint/scope-manager": "5.27.0",
+                "@typescript-eslint/types": "5.27.0",
+                "@typescript-eslint/typescript-estree": "5.27.0",
+                "debug": "^4.3.4"
             }
         },
         "@typescript-eslint/scope-manager": {
-            "version": "5.23.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz",
-            "integrity": "sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==",
+            "version": "5.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.27.0.tgz",
+            "integrity": "sha512-VnykheBQ/sHd1Vt0LJ1JLrMH1GzHO+SzX6VTXuStISIsvRiurue/eRkTqSrG0CexHQgKG8shyJfR4o5VYioB9g==",
             "dev": true,
             "requires": {
-                "@typescript-eslint/types": "5.23.0",
-                "@typescript-eslint/visitor-keys": "5.23.0"
+                "@typescript-eslint/types": "5.27.0",
+                "@typescript-eslint/visitor-keys": "5.27.0"
             }
         },
         "@typescript-eslint/type-utils": {
-            "version": "5.23.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.23.0.tgz",
-            "integrity": "sha512-iuI05JsJl/SUnOTXA9f4oI+/4qS/Zcgk+s2ir+lRmXI+80D8GaGwoUqs4p+X+4AxDolPpEpVUdlEH4ADxFy4gw==",
+            "version": "5.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.27.0.tgz",
+            "integrity": "sha512-vpTvRRchaf628Hb/Xzfek+85o//zEUotr1SmexKvTfs7czXfYjXVT/a5yDbpzLBX1rhbqxjDdr1Gyo0x1Fc64g==",
             "dev": true,
             "requires": {
-                "@typescript-eslint/utils": "5.23.0",
-                "debug": "^4.3.2",
+                "@typescript-eslint/utils": "5.27.0",
+                "debug": "^4.3.4",
                 "tsutils": "^3.21.0"
             }
         },
         "@typescript-eslint/types": {
-            "version": "5.23.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.23.0.tgz",
-            "integrity": "sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==",
+            "version": "5.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.27.0.tgz",
+            "integrity": "sha512-lY6C7oGm9a/GWhmUDOs3xAVRz4ty/XKlQ2fOLr8GAIryGn0+UBOoJDWyHer3UgrHkenorwvBnphhP+zPmzmw0A==",
             "dev": true
         },
         "@typescript-eslint/typescript-estree": {
-            "version": "5.23.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.23.0.tgz",
-            "integrity": "sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg==",
+            "version": "5.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.27.0.tgz",
+            "integrity": "sha512-QywPMFvgZ+MHSLRofLI7BDL+UczFFHyj0vF5ibeChDAJgdTV8k4xgEwF0geFhVlPc1p8r70eYewzpo6ps+9LJQ==",
             "dev": true,
             "requires": {
-                "@typescript-eslint/types": "5.23.0",
-                "@typescript-eslint/visitor-keys": "5.23.0",
-                "debug": "^4.3.2",
-                "globby": "^11.0.4",
+                "@typescript-eslint/types": "5.27.0",
+                "@typescript-eslint/visitor-keys": "5.27.0",
+                "debug": "^4.3.4",
+                "globby": "^11.1.0",
                 "is-glob": "^4.0.3",
-                "semver": "^7.3.5",
+                "semver": "^7.3.7",
                 "tsutils": "^3.21.0"
             }
         },
         "@typescript-eslint/utils": {
-            "version": "5.23.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.23.0.tgz",
-            "integrity": "sha512-dbgaKN21drqpkbbedGMNPCtRPZo1IOUr5EI9Jrrh99r5UW5Q0dz46RKXeSBoPV+56R6dFKpbrdhgUNSJsDDRZA==",
+            "version": "5.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.27.0.tgz",
+            "integrity": "sha512-nZvCrkIJppym7cIbP3pOwIkAefXOmfGPnCM0LQfzNaKxJHI6VjI8NC662uoiPlaf5f6ymkTy9C3NQXev2mdXmA==",
             "dev": true,
             "requires": {
                 "@types/json-schema": "^7.0.9",
-                "@typescript-eslint/scope-manager": "5.23.0",
-                "@typescript-eslint/types": "5.23.0",
-                "@typescript-eslint/typescript-estree": "5.23.0",
+                "@typescript-eslint/scope-manager": "5.27.0",
+                "@typescript-eslint/types": "5.27.0",
+                "@typescript-eslint/typescript-estree": "5.27.0",
                 "eslint-scope": "^5.1.1",
                 "eslint-utils": "^3.0.0"
             }
         },
         "@typescript-eslint/visitor-keys": {
-            "version": "5.23.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.23.0.tgz",
-            "integrity": "sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==",
+            "version": "5.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.27.0.tgz",
+            "integrity": "sha512-46cYrteA2MrIAjv9ai44OQDUoCZyHeGIc4lsjCUX2WT6r4C+kidz1bNiR4017wHOPUythYeH+Sc7/cFP97KEAA==",
             "dev": true,
             "requires": {
-                "@typescript-eslint/types": "5.23.0",
-                "eslint-visitor-keys": "^3.0.0"
+                "@typescript-eslint/types": "5.27.0",
+                "eslint-visitor-keys": "^3.3.0"
             }
         },
         "@webassemblyjs/ast": {
@@ -6560,9 +6560,9 @@
             "dev": true
         },
         "concurrently": {
-            "version": "7.2.0",
-            "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.2.0.tgz",
-            "integrity": "sha512-4KIVY5HopDRhN3ndAgfFOLsMk1PZUPgghlgTMZ5Pb5aTrqYg86RcZaIZC2Cz+qpZ9DsX36WHGjvWnXPqdnblhw==",
+            "version": "7.2.1",
+            "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.2.1.tgz",
+            "integrity": "sha512-7cab/QyqipqghrVr9qZmoWbidu0nHsmxrpNqQ7r/67vfl1DWJElexehQnTH1p+87tDkihaAjM79xTZyBQh7HLw==",
             "dev": true,
             "requires": {
                 "chalk": "^4.1.0",
@@ -6761,9 +6761,9 @@
             "dev": true
         },
         "debug": {
-            "version": "4.3.3",
-            "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
-            "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+            "version": "4.3.4",
+            "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+            "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
             "dev": true,
             "requires": {
                 "ms": "2.1.2"
@@ -6979,12 +6979,12 @@
             "dev": true
         },
         "eslint": {
-            "version": "8.15.0",
-            "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz",
-            "integrity": "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==",
+            "version": "8.16.0",
+            "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz",
+            "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==",
             "dev": true,
             "requires": {
-                "@eslint/eslintrc": "^1.2.3",
+                "@eslint/eslintrc": "^1.3.0",
                 "@humanwhocodes/config-array": "^0.9.2",
                 "ajv": "^6.10.0",
                 "chalk": "^4.0.0",
@@ -7002,7 +7002,7 @@
                 "file-entry-cache": "^6.0.1",
                 "functional-red-black-tree": "^1.0.1",
                 "glob-parent": "^6.0.1",
-                "globals": "^13.6.0",
+                "globals": "^13.15.0",
                 "ignore": "^5.2.0",
                 "import-fresh": "^3.0.0",
                 "imurmurhash": "^0.1.4",
@@ -7538,9 +7538,9 @@
             }
         },
         "globals": {
-            "version": "13.14.0",
-            "resolved": "https://registry.npmjs.org/globals/-/globals-13.14.0.tgz",
-            "integrity": "sha512-ERO68sOYwm5UuLvSJTY7w7NP2c8S4UcXs3X1GBX8cwOr+ShOcDBbCY5mH4zxz0jsYCdJ8ve8Mv9n2YGJMB1aeg==",
+            "version": "13.15.0",
+            "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz",
+            "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==",
             "dev": true,
             "requires": {
                 "type-fest": "^0.20.2"
@@ -7686,9 +7686,9 @@
             "integrity": "sha512-ubBeqQutOSLIFCUBN03jGeOS6a3DoYlSYwYJTa+gSKEZKU5redJIqkIdZ3JVv/4RZpfcXdAWH5zCNLWPRv2WDw=="
         },
         "immutable": {
-            "version": "4.0.0",
-            "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz",
-            "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw=="
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz",
+            "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ=="
         },
         "import-fresh": {
             "version": "3.3.0",
@@ -8242,15 +8242,15 @@
             "dev": true
         },
         "molstar": {
-            "version": "3.8.1",
-            "resolved": "https://registry.npmjs.org/molstar/-/molstar-3.8.1.tgz",
-            "integrity": "sha512-F/f0xiAR/bqV1+e9hT16Fx9VVPN17Pgrn6Pd+y2WqoN+tWleEqWB9FJ8H8hQW37EtqcY4GqFabNeSUkwUrF/aA==",
+            "version": "3.9.0",
+            "resolved": "https://registry.npmjs.org/molstar/-/molstar-3.9.0.tgz",
+            "integrity": "sha512-KNyZBff7oAt9Wf36l3FTR2WOQSHvWtDoAhfjcKFlpC+uuXxt0akFP/3MID7YS31ljn+ccjgTMAGwkotCWH5hLg==",
             "requires": {
                 "@types/argparse": "^2.0.10",
                 "@types/benchmark": "^2.1.1",
                 "@types/compression": "1.7.2",
                 "@types/express": "^4.17.13",
-                "@types/node": "^16.11.35",
+                "@types/node": "^16.11.36",
                 "@types/node-fetch": "^2.6.1",
                 "@types/swagger-ui-dist": "3.30.1",
                 "argparse": "^2.0.1",
@@ -8260,7 +8260,7 @@
                 "express": "^4.18.1",
                 "h264-mp4-encoder": "^1.0.12",
                 "immer": "^9.0.14",
-                "immutable": "^4.0.0",
+                "immutable": "^4.1.0",
                 "node-fetch": "^2.6.7",
                 "rxjs": "^7.5.5",
                 "swagger-ui-dist": "^4.11.1",
@@ -8872,9 +8872,9 @@
             "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
         },
         "sass": {
-            "version": "1.51.0",
-            "resolved": "https://registry.npmjs.org/sass/-/sass-1.51.0.tgz",
-            "integrity": "sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA==",
+            "version": "1.52.1",
+            "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.1.tgz",
+            "integrity": "sha512-fSzYTbr7z8oQnVJ3Acp9hV80dM1fkMN7mSD/25mpcct9F7FPBMOI8krEYALgU1aZoqGhQNhTPsuSmxjnIvAm4Q==",
             "dev": true,
             "requires": {
                 "chokidar": ">=3.0.0 <4.0.0",
@@ -8883,9 +8883,9 @@
             }
         },
         "sass-loader": {
-            "version": "12.6.0",
-            "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz",
-            "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==",
+            "version": "13.0.0",
+            "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.0.0.tgz",
+            "integrity": "sha512-IHCFecI+rbPvXE2zO/mqdVFe8MU7ElGrwga9hh2H65Ru4iaBJAMRteum1c4Gsxi9Cq1FOtTEDd6+/AEYuQDM4Q==",
             "dev": true,
             "requires": {
                 "klona": "^2.0.4",
@@ -8911,9 +8911,9 @@
             }
         },
         "semver": {
-            "version": "7.3.5",
-            "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
-            "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+            "version": "7.3.7",
+            "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+            "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
             "dev": true,
             "requires": {
                 "lru-cache": "^6.0.0"
@@ -9315,9 +9315,9 @@
             }
         },
         "typescript": {
-            "version": "4.6.4",
-            "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz",
-            "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==",
+            "version": "4.7.2",
+            "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz",
+            "integrity": "sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==",
             "dev": true
         },
         "unbox-primitive": {

+ 10 - 10
package.json

@@ -37,32 +37,32 @@
     "author": "RCSB PDB and Mol* Contributors",
     "license": "MIT",
     "devDependencies": {
-        "@typescript-eslint/eslint-plugin": "^5.23.0",
-        "@typescript-eslint/parser": "^5.23.0",
+        "@typescript-eslint/eslint-plugin": "^5.27.0",
+        "@typescript-eslint/parser": "^5.27.0",
         "buffer": "^6.0.3",
-        "concurrently": "^7.2.0",
+        "concurrently": "^7.2.1",
         "cpx2": "^4.2.0",
         "crypto-browserify": "^3.12.0",
         "css-loader": "^6.7.1",
-        "eslint": "^8.15.0",
+        "eslint": "^8.16.0",
         "extra-watch-webpack-plugin": "^1.0.3",
         "file-loader": "^6.2.0",
         "fs-extra": "^10.1.0",
         "mini-css-extract-plugin": "^2.6.0",
         "path-browserify": "^1.0.1",
         "raw-loader": "^4.0.2",
-        "sass": "^1.51.0",
-        "sass-loader": "^12.6.0",
+        "sass": "^1.52.1",
+        "sass-loader": "^13.0.0",
         "stream-browserify": "^3.0.0",
         "style-loader": "^3.3.1",
-        "typescript": "^4.6.4",
+        "typescript": "^4.7.2",
         "webpack": "^5.72.1",
         "webpack-cli": "^4.9.2"
     },
     "dependencies": {
-        "@types/react": "^18.0.9",
-        "@types/react-dom": "^18.0.4",
-        "molstar": "^3.8.1",
+        "@types/react": "^18.0.10",
+        "@types/react-dom": "^18.0.5",
+        "molstar": "^3.9.0",
         "react": "^18.1.0",
         "react-dom": "^18.1.0",
         "rxjs": "^7.5.5",

+ 2 - 1
src/viewer/ui/exchanges.tsx

@@ -42,10 +42,11 @@ export class ExchangesControl extends React.Component<{ handler: Residue }> {
     onClickSwatch = (e: React.MouseEvent<HTMLButtonElement>) => {
         const tlc = e.currentTarget.getAttribute('data-id')!;
         this.props.handler.toggleExchange(tlc);
+        // this makes Chrome pick up CSS change
+        e.currentTarget.blur();
     };
 
     swatch() {
-        // TODO update of isSelected style is delayed - this seems to be a Chrome-related bug
         return <div className='msp-combined-color-swatch'>
             {DefaultExchanges.map(e => {
                 const isSelected = this.props.handler.hasExchange(e[0]);