Browse Source

Merge pull request #8 from molstar/dev-yv-structure-label

Allowing to set a structure label via loading from url api
Sebastian Bittrich 1 year ago
parent
commit
76b16e5733
6 changed files with 204 additions and 197 deletions
  1. 187 187
      package-lock.json
  2. 1 1
      package.json
  3. 12 6
      src/viewer/helpers/model.ts
  4. 2 2
      src/viewer/index.html
  5. 1 1
      src/viewer/index.ts
  6. 1 0
      src/viewer/types.ts

+ 187 - 187
package-lock.json

@@ -11,7 +11,7 @@
             "dependencies": {
                 "@types/react": "^18.2.11",
                 "@types/react-dom": "^18.2.4",
-                "molstar": "^3.36.1",
+                "molstar": "^3.37.1",
                 "react": "^18.2.0",
                 "react-dom": "^18.2.0",
                 "rxjs": "^7.8.1",
@@ -110,9 +110,9 @@
             }
         },
         "node_modules/@eslint/js": {
-            "version": "8.42.0",
-            "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.42.0.tgz",
-            "integrity": "sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==",
+            "version": "8.43.0",
+            "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz",
+            "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==",
             "dev": true,
             "engines": {
                 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -380,9 +380,9 @@
             "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="
         },
         "node_modules/@types/node": {
-            "version": "16.18.35",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.35.tgz",
-            "integrity": "sha512-yqU2Rf94HFZqgHf6Tuyc/IqVD0l3U91KjvypSr1GtJKyrnl6L/kfnxVqN4QOwcF5Zx9tO/HKK+fozGr5AtqA+g=="
+            "version": "16.18.36",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.36.tgz",
+            "integrity": "sha512-8egDX8dE50XyXWH6C6PRCNkTP106DuUrvdrednFouDSmCi7IOvrqr0frznfZaHifHH/3aq/7a7v9N4wdXMqhBQ=="
         },
         "node_modules/@types/node-fetch": {
             "version": "2.6.4",
@@ -409,9 +409,9 @@
             "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
         },
         "node_modules/@types/react": {
-            "version": "18.2.11",
-            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.11.tgz",
-            "integrity": "sha512-+hsJr9hmwyDecSMQAmX7drgbDpyE+EgSF6t7+5QEBAn1tQK7kl1vWZ4iRf6SjQ8lk7dyEULxUmZOIpN0W5baZA==",
+            "version": "18.2.14",
+            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.14.tgz",
+            "integrity": "sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g==",
             "dependencies": {
                 "@types/prop-types": "*",
                 "@types/scheduler": "*",
@@ -419,9 +419,9 @@
             }
         },
         "node_modules/@types/react-dom": {
-            "version": "18.2.4",
-            "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.4.tgz",
-            "integrity": "sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw==",
+            "version": "18.2.6",
+            "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.6.tgz",
+            "integrity": "sha512-2et4PDvg6PVCyS7fuTc4gPoksV58bW0RwSxWKcPRcHZf0PRUGq03TKcD/rUHe3azfV6/5/biUBJw+HhCQjaP0A==",
             "dependencies": {
                 "@types/react": "*"
             }
@@ -452,15 +452,15 @@
             "integrity": "sha512-wWojDensMF33dSrhak4iWSPOsWBbvf+rSJ6VWQ7ohQbGdKAiT2IwUexrDZkMvf3+vVAPVnNFDRDtxADFszbh+Q=="
         },
         "node_modules/@typescript-eslint/eslint-plugin": {
-            "version": "5.59.9",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.9.tgz",
-            "integrity": "sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA==",
+            "version": "5.60.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.60.1.tgz",
+            "integrity": "sha512-KSWsVvsJsLJv3c4e73y/Bzt7OpqMCADUO846bHcuWYSYM19bldbAeDv7dYyV0jwkbMfJ2XdlzwjhXtuD7OY6bw==",
             "dev": true,
             "dependencies": {
                 "@eslint-community/regexpp": "^4.4.0",
-                "@typescript-eslint/scope-manager": "5.59.9",
-                "@typescript-eslint/type-utils": "5.59.9",
-                "@typescript-eslint/utils": "5.59.9",
+                "@typescript-eslint/scope-manager": "5.60.1",
+                "@typescript-eslint/type-utils": "5.60.1",
+                "@typescript-eslint/utils": "5.60.1",
                 "debug": "^4.3.4",
                 "grapheme-splitter": "^1.0.4",
                 "ignore": "^5.2.0",
@@ -486,14 +486,14 @@
             }
         },
         "node_modules/@typescript-eslint/parser": {
-            "version": "5.59.9",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.9.tgz",
-            "integrity": "sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ==",
+            "version": "5.60.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.60.1.tgz",
+            "integrity": "sha512-pHWlc3alg2oSMGwsU/Is8hbm3XFbcrb6P5wIxcQW9NsYBfnrubl/GhVVD/Jm/t8HXhA2WncoIRfBtnCgRGV96Q==",
             "dev": true,
             "dependencies": {
-                "@typescript-eslint/scope-manager": "5.59.9",
-                "@typescript-eslint/types": "5.59.9",
-                "@typescript-eslint/typescript-estree": "5.59.9",
+                "@typescript-eslint/scope-manager": "5.60.1",
+                "@typescript-eslint/types": "5.60.1",
+                "@typescript-eslint/typescript-estree": "5.60.1",
                 "debug": "^4.3.4"
             },
             "engines": {
@@ -513,13 +513,13 @@
             }
         },
         "node_modules/@typescript-eslint/scope-manager": {
-            "version": "5.59.9",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz",
-            "integrity": "sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ==",
+            "version": "5.60.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.60.1.tgz",
+            "integrity": "sha512-Dn/LnN7fEoRD+KspEOV0xDMynEmR3iSHdgNsarlXNLGGtcUok8L4N71dxUgt3YvlO8si7E+BJ5Fe3wb5yUw7DQ==",
             "dev": true,
             "dependencies": {
-                "@typescript-eslint/types": "5.59.9",
-                "@typescript-eslint/visitor-keys": "5.59.9"
+                "@typescript-eslint/types": "5.60.1",
+                "@typescript-eslint/visitor-keys": "5.60.1"
             },
             "engines": {
                 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -530,13 +530,13 @@
             }
         },
         "node_modules/@typescript-eslint/type-utils": {
-            "version": "5.59.9",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.9.tgz",
-            "integrity": "sha512-ksEsT0/mEHg9e3qZu98AlSrONAQtrSTljL3ow9CGej8eRo7pe+yaC/mvTjptp23Xo/xIf2mLZKC6KPv4Sji26Q==",
+            "version": "5.60.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.60.1.tgz",
+            "integrity": "sha512-vN6UztYqIu05nu7JqwQGzQKUJctzs3/Hg7E2Yx8rz9J+4LgtIDFWjjl1gm3pycH0P3mHAcEUBd23LVgfrsTR8A==",
             "dev": true,
             "dependencies": {
-                "@typescript-eslint/typescript-estree": "5.59.9",
-                "@typescript-eslint/utils": "5.59.9",
+                "@typescript-eslint/typescript-estree": "5.60.1",
+                "@typescript-eslint/utils": "5.60.1",
                 "debug": "^4.3.4",
                 "tsutils": "^3.21.0"
             },
@@ -557,9 +557,9 @@
             }
         },
         "node_modules/@typescript-eslint/types": {
-            "version": "5.59.9",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.9.tgz",
-            "integrity": "sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw==",
+            "version": "5.60.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.60.1.tgz",
+            "integrity": "sha512-zDcDx5fccU8BA0IDZc71bAtYIcG9PowaOwaD8rjYbqwK7dpe/UMQl3inJ4UtUK42nOCT41jTSCwg76E62JpMcg==",
             "dev": true,
             "engines": {
                 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -570,13 +570,13 @@
             }
         },
         "node_modules/@typescript-eslint/typescript-estree": {
-            "version": "5.59.9",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz",
-            "integrity": "sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA==",
+            "version": "5.60.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.60.1.tgz",
+            "integrity": "sha512-hkX70J9+2M2ZT6fhti5Q2FoU9zb+GeZK2SLP1WZlvUDqdMbEKhexZODD1WodNRyO8eS+4nScvT0dts8IdaBzfw==",
             "dev": true,
             "dependencies": {
-                "@typescript-eslint/types": "5.59.9",
-                "@typescript-eslint/visitor-keys": "5.59.9",
+                "@typescript-eslint/types": "5.60.1",
+                "@typescript-eslint/visitor-keys": "5.60.1",
                 "debug": "^4.3.4",
                 "globby": "^11.1.0",
                 "is-glob": "^4.0.3",
@@ -597,17 +597,17 @@
             }
         },
         "node_modules/@typescript-eslint/utils": {
-            "version": "5.59.9",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.9.tgz",
-            "integrity": "sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg==",
+            "version": "5.60.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.60.1.tgz",
+            "integrity": "sha512-tiJ7FFdFQOWssFa3gqb94Ilexyw0JVxj6vBzaSpfN/8IhoKkDuSAenUKvsSHw2A/TMpJb26izIszTXaqygkvpQ==",
             "dev": true,
             "dependencies": {
                 "@eslint-community/eslint-utils": "^4.2.0",
                 "@types/json-schema": "^7.0.9",
                 "@types/semver": "^7.3.12",
-                "@typescript-eslint/scope-manager": "5.59.9",
-                "@typescript-eslint/types": "5.59.9",
-                "@typescript-eslint/typescript-estree": "5.59.9",
+                "@typescript-eslint/scope-manager": "5.60.1",
+                "@typescript-eslint/types": "5.60.1",
+                "@typescript-eslint/typescript-estree": "5.60.1",
                 "eslint-scope": "^5.1.1",
                 "semver": "^7.3.7"
             },
@@ -623,12 +623,12 @@
             }
         },
         "node_modules/@typescript-eslint/visitor-keys": {
-            "version": "5.59.9",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz",
-            "integrity": "sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==",
+            "version": "5.60.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.60.1.tgz",
+            "integrity": "sha512-xEYIxKcultP6E/RMKqube11pGjXH1DCo60mQoWhVYyKfLkwbIVVjYxmOenNMxILx0TjCujPTjjnTIVzm09TXIw==",
             "dev": true,
             "dependencies": {
-                "@typescript-eslint/types": "5.59.9",
+                "@typescript-eslint/types": "5.60.1",
                 "eslint-visitor-keys": "^3.3.0"
             },
             "engines": {
@@ -860,9 +860,9 @@
             }
         },
         "node_modules/acorn": {
-            "version": "8.8.0",
-            "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
-            "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
+            "version": "8.9.0",
+            "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz",
+            "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==",
             "dev": true,
             "bin": {
                 "acorn": "bin/acorn"
@@ -2309,9 +2309,9 @@
             }
         },
         "node_modules/enhanced-resolve": {
-            "version": "5.14.1",
-            "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz",
-            "integrity": "sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow==",
+            "version": "5.15.0",
+            "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
+            "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==",
             "dev": true,
             "dependencies": {
                 "graceful-fs": "^4.2.4",
@@ -2401,9 +2401,9 @@
             "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA=="
         },
         "node_modules/es-module-lexer": {
-            "version": "1.2.1",
-            "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz",
-            "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==",
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz",
+            "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==",
             "dev": true
         },
         "node_modules/es-set-tostringtag": {
@@ -2462,15 +2462,15 @@
             }
         },
         "node_modules/eslint": {
-            "version": "8.42.0",
-            "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.42.0.tgz",
-            "integrity": "sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==",
+            "version": "8.43.0",
+            "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz",
+            "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==",
             "dev": true,
             "dependencies": {
                 "@eslint-community/eslint-utils": "^4.2.0",
                 "@eslint-community/regexpp": "^4.4.0",
                 "@eslint/eslintrc": "^2.0.3",
-                "@eslint/js": "8.42.0",
+                "@eslint/js": "8.43.0",
                 "@humanwhocodes/config-array": "^0.11.10",
                 "@humanwhocodes/module-importer": "^1.0.1",
                 "@nodelib/fs.walk": "^1.2.8",
@@ -4568,9 +4568,9 @@
             "optional": true
         },
         "node_modules/molstar": {
-            "version": "3.36.1",
-            "resolved": "https://registry.npmjs.org/molstar/-/molstar-3.36.1.tgz",
-            "integrity": "sha512-i0EUrou5CBno3CzWuGlMGHVVLbRbKRF0zWV2pWIcSczZrt83eHaaxFVtNcVHKkcG2ZTRcpwCEC9RRgl0rHIVlg==",
+            "version": "3.37.1",
+            "resolved": "https://registry.npmjs.org/molstar/-/molstar-3.37.1.tgz",
+            "integrity": "sha512-AeXhWQEyomoysLY0VYxXBuNPAmR5nx06JkfuNurBDI6gRnYrZ/ro96Xo6cA7Ew4KQwKuaAjviBafYzOSdw/DEg==",
             "dependencies": {
                 "@types/argparse": "^2.0.10",
                 "@types/benchmark": "^2.1.2",
@@ -5753,9 +5753,9 @@
             "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
         },
         "node_modules/sass": {
-            "version": "1.63.3",
-            "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.3.tgz",
-            "integrity": "sha512-ySdXN+DVpfwq49jG1+hmtDslYqpS7SkOR5GpF6o2bmb1RL/xS+wvPmegMvMywyfsmAV6p7TgwXYGrCZIFFbAHg==",
+            "version": "1.63.6",
+            "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.6.tgz",
+            "integrity": "sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw==",
             "dev": true,
             "dependencies": {
                 "chokidar": ">=3.0.0 <4.0.0",
@@ -6363,13 +6363,13 @@
             }
         },
         "node_modules/terser": {
-            "version": "5.17.4",
-            "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.4.tgz",
-            "integrity": "sha512-jcEKZw6UPrgugz/0Tuk/PVyLAPfMBJf5clnGueo45wTweoV8yh7Q7PEkhkJ5uuUbC7zAxEcG3tqNr1bstkQ8nw==",
+            "version": "5.18.2",
+            "resolved": "https://registry.npmjs.org/terser/-/terser-5.18.2.tgz",
+            "integrity": "sha512-Ah19JS86ypbJzTzvUCX7KOsEIhDaRONungA4aYBjEP3JZRf4ocuDzTg4QWZnPn9DEMiMYGJPiSOy7aykoCc70w==",
             "dev": true,
             "dependencies": {
-                "@jridgewell/source-map": "^0.3.2",
-                "acorn": "^8.5.0",
+                "@jridgewell/source-map": "^0.3.3",
+                "acorn": "^8.8.2",
                 "commander": "^2.20.0",
                 "source-map-support": "~0.5.20"
             },
@@ -6381,9 +6381,9 @@
             }
         },
         "node_modules/terser-webpack-plugin": {
-            "version": "5.3.8",
-            "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.8.tgz",
-            "integrity": "sha512-WiHL3ElchZMsK27P8uIUh4604IgJyAW47LVXGbEoB21DbQcZ+OuMpGjVYnEUaqcWM6dO8uS2qUbA7LSCWqvsbg==",
+            "version": "5.3.9",
+            "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz",
+            "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==",
             "dev": true,
             "dependencies": {
                 "@jridgewell/trace-mapping": "^0.3.17",
@@ -6415,9 +6415,9 @@
             }
         },
         "node_modules/terser-webpack-plugin/node_modules/schema-utils": {
-            "version": "3.1.2",
-            "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz",
-            "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==",
+            "version": "3.3.0",
+            "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+            "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
             "dev": true,
             "dependencies": {
                 "@types/json-schema": "^7.0.8",
@@ -6588,9 +6588,9 @@
             }
         },
         "node_modules/typescript": {
-            "version": "5.1.3",
-            "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz",
-            "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==",
+            "version": "5.1.5",
+            "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.5.tgz",
+            "integrity": "sha512-FOH+WN/DQjUvN6WgW+c4Ml3yi0PH+a/8q+kNIfRehv1wLhWONedw85iu+vQ39Wp49IzTJEsZ2lyLXpBF7mkF1g==",
             "dev": true,
             "bin": {
                 "tsc": "bin/tsc",
@@ -6731,9 +6731,9 @@
             "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
         },
         "node_modules/webpack": {
-            "version": "5.86.0",
-            "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.86.0.tgz",
-            "integrity": "sha512-3BOvworZ8SO/D4GVP+GoRC3fVeg5MO4vzmq8TJJEkdmopxyazGDxN8ClqN12uzrZW9Tv8EED8v5VSb6Sqyi0pg==",
+            "version": "5.88.0",
+            "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.0.tgz",
+            "integrity": "sha512-O3jDhG5e44qIBSi/P6KpcCcH7HD+nYIHVBhdWFxcLOcIGN8zGo5nqF3BjyNCxIh4p1vFdNnreZv2h2KkoAw3lw==",
             "dev": true,
             "dependencies": {
                 "@types/eslint-scope": "^3.7.3",
@@ -6745,7 +6745,7 @@
                 "acorn-import-assertions": "^1.9.0",
                 "browserslist": "^4.14.5",
                 "chrome-trace-event": "^1.0.2",
-                "enhanced-resolve": "^5.14.1",
+                "enhanced-resolve": "^5.15.0",
                 "es-module-lexer": "^1.2.1",
                 "eslint-scope": "5.1.1",
                 "events": "^3.2.0",
@@ -6755,7 +6755,7 @@
                 "loader-runner": "^4.2.0",
                 "mime-types": "^2.1.27",
                 "neo-async": "^2.6.2",
-                "schema-utils": "^3.1.2",
+                "schema-utils": "^3.2.0",
                 "tapable": "^2.1.1",
                 "terser-webpack-plugin": "^5.3.7",
                 "watchpack": "^2.4.0",
@@ -6854,9 +6854,9 @@
             }
         },
         "node_modules/webpack/node_modules/schema-utils": {
-            "version": "3.1.2",
-            "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz",
-            "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==",
+            "version": "3.3.0",
+            "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+            "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
             "dev": true,
             "dependencies": {
                 "@types/json-schema": "^7.0.8",
@@ -7097,9 +7097,9 @@
             }
         },
         "@eslint/js": {
-            "version": "8.42.0",
-            "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.42.0.tgz",
-            "integrity": "sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==",
+            "version": "8.43.0",
+            "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz",
+            "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==",
             "dev": true
         },
         "@gar/promisify": {
@@ -7326,9 +7326,9 @@
             "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="
         },
         "@types/node": {
-            "version": "16.18.35",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.35.tgz",
-            "integrity": "sha512-yqU2Rf94HFZqgHf6Tuyc/IqVD0l3U91KjvypSr1GtJKyrnl6L/kfnxVqN4QOwcF5Zx9tO/HKK+fozGr5AtqA+g=="
+            "version": "16.18.36",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.36.tgz",
+            "integrity": "sha512-8egDX8dE50XyXWH6C6PRCNkTP106DuUrvdrednFouDSmCi7IOvrqr0frznfZaHifHH/3aq/7a7v9N4wdXMqhBQ=="
         },
         "@types/node-fetch": {
             "version": "2.6.4",
@@ -7355,9 +7355,9 @@
             "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
         },
         "@types/react": {
-            "version": "18.2.11",
-            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.11.tgz",
-            "integrity": "sha512-+hsJr9hmwyDecSMQAmX7drgbDpyE+EgSF6t7+5QEBAn1tQK7kl1vWZ4iRf6SjQ8lk7dyEULxUmZOIpN0W5baZA==",
+            "version": "18.2.14",
+            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.14.tgz",
+            "integrity": "sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g==",
             "requires": {
                 "@types/prop-types": "*",
                 "@types/scheduler": "*",
@@ -7365,9 +7365,9 @@
             }
         },
         "@types/react-dom": {
-            "version": "18.2.4",
-            "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.4.tgz",
-            "integrity": "sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw==",
+            "version": "18.2.6",
+            "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.6.tgz",
+            "integrity": "sha512-2et4PDvg6PVCyS7fuTc4gPoksV58bW0RwSxWKcPRcHZf0PRUGq03TKcD/rUHe3azfV6/5/biUBJw+HhCQjaP0A==",
             "requires": {
                 "@types/react": "*"
             }
@@ -7398,15 +7398,15 @@
             "integrity": "sha512-wWojDensMF33dSrhak4iWSPOsWBbvf+rSJ6VWQ7ohQbGdKAiT2IwUexrDZkMvf3+vVAPVnNFDRDtxADFszbh+Q=="
         },
         "@typescript-eslint/eslint-plugin": {
-            "version": "5.59.9",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.9.tgz",
-            "integrity": "sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA==",
+            "version": "5.60.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.60.1.tgz",
+            "integrity": "sha512-KSWsVvsJsLJv3c4e73y/Bzt7OpqMCADUO846bHcuWYSYM19bldbAeDv7dYyV0jwkbMfJ2XdlzwjhXtuD7OY6bw==",
             "dev": true,
             "requires": {
                 "@eslint-community/regexpp": "^4.4.0",
-                "@typescript-eslint/scope-manager": "5.59.9",
-                "@typescript-eslint/type-utils": "5.59.9",
-                "@typescript-eslint/utils": "5.59.9",
+                "@typescript-eslint/scope-manager": "5.60.1",
+                "@typescript-eslint/type-utils": "5.60.1",
+                "@typescript-eslint/utils": "5.60.1",
                 "debug": "^4.3.4",
                 "grapheme-splitter": "^1.0.4",
                 "ignore": "^5.2.0",
@@ -7416,53 +7416,53 @@
             }
         },
         "@typescript-eslint/parser": {
-            "version": "5.59.9",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.9.tgz",
-            "integrity": "sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ==",
+            "version": "5.60.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.60.1.tgz",
+            "integrity": "sha512-pHWlc3alg2oSMGwsU/Is8hbm3XFbcrb6P5wIxcQW9NsYBfnrubl/GhVVD/Jm/t8HXhA2WncoIRfBtnCgRGV96Q==",
             "dev": true,
             "requires": {
-                "@typescript-eslint/scope-manager": "5.59.9",
-                "@typescript-eslint/types": "5.59.9",
-                "@typescript-eslint/typescript-estree": "5.59.9",
+                "@typescript-eslint/scope-manager": "5.60.1",
+                "@typescript-eslint/types": "5.60.1",
+                "@typescript-eslint/typescript-estree": "5.60.1",
                 "debug": "^4.3.4"
             }
         },
         "@typescript-eslint/scope-manager": {
-            "version": "5.59.9",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz",
-            "integrity": "sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ==",
+            "version": "5.60.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.60.1.tgz",
+            "integrity": "sha512-Dn/LnN7fEoRD+KspEOV0xDMynEmR3iSHdgNsarlXNLGGtcUok8L4N71dxUgt3YvlO8si7E+BJ5Fe3wb5yUw7DQ==",
             "dev": true,
             "requires": {
-                "@typescript-eslint/types": "5.59.9",
-                "@typescript-eslint/visitor-keys": "5.59.9"
+                "@typescript-eslint/types": "5.60.1",
+                "@typescript-eslint/visitor-keys": "5.60.1"
             }
         },
         "@typescript-eslint/type-utils": {
-            "version": "5.59.9",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.9.tgz",
-            "integrity": "sha512-ksEsT0/mEHg9e3qZu98AlSrONAQtrSTljL3ow9CGej8eRo7pe+yaC/mvTjptp23Xo/xIf2mLZKC6KPv4Sji26Q==",
+            "version": "5.60.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.60.1.tgz",
+            "integrity": "sha512-vN6UztYqIu05nu7JqwQGzQKUJctzs3/Hg7E2Yx8rz9J+4LgtIDFWjjl1gm3pycH0P3mHAcEUBd23LVgfrsTR8A==",
             "dev": true,
             "requires": {
-                "@typescript-eslint/typescript-estree": "5.59.9",
-                "@typescript-eslint/utils": "5.59.9",
+                "@typescript-eslint/typescript-estree": "5.60.1",
+                "@typescript-eslint/utils": "5.60.1",
                 "debug": "^4.3.4",
                 "tsutils": "^3.21.0"
             }
         },
         "@typescript-eslint/types": {
-            "version": "5.59.9",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.9.tgz",
-            "integrity": "sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw==",
+            "version": "5.60.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.60.1.tgz",
+            "integrity": "sha512-zDcDx5fccU8BA0IDZc71bAtYIcG9PowaOwaD8rjYbqwK7dpe/UMQl3inJ4UtUK42nOCT41jTSCwg76E62JpMcg==",
             "dev": true
         },
         "@typescript-eslint/typescript-estree": {
-            "version": "5.59.9",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz",
-            "integrity": "sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA==",
+            "version": "5.60.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.60.1.tgz",
+            "integrity": "sha512-hkX70J9+2M2ZT6fhti5Q2FoU9zb+GeZK2SLP1WZlvUDqdMbEKhexZODD1WodNRyO8eS+4nScvT0dts8IdaBzfw==",
             "dev": true,
             "requires": {
-                "@typescript-eslint/types": "5.59.9",
-                "@typescript-eslint/visitor-keys": "5.59.9",
+                "@typescript-eslint/types": "5.60.1",
+                "@typescript-eslint/visitor-keys": "5.60.1",
                 "debug": "^4.3.4",
                 "globby": "^11.1.0",
                 "is-glob": "^4.0.3",
@@ -7471,28 +7471,28 @@
             }
         },
         "@typescript-eslint/utils": {
-            "version": "5.59.9",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.9.tgz",
-            "integrity": "sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg==",
+            "version": "5.60.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.60.1.tgz",
+            "integrity": "sha512-tiJ7FFdFQOWssFa3gqb94Ilexyw0JVxj6vBzaSpfN/8IhoKkDuSAenUKvsSHw2A/TMpJb26izIszTXaqygkvpQ==",
             "dev": true,
             "requires": {
                 "@eslint-community/eslint-utils": "^4.2.0",
                 "@types/json-schema": "^7.0.9",
                 "@types/semver": "^7.3.12",
-                "@typescript-eslint/scope-manager": "5.59.9",
-                "@typescript-eslint/types": "5.59.9",
-                "@typescript-eslint/typescript-estree": "5.59.9",
+                "@typescript-eslint/scope-manager": "5.60.1",
+                "@typescript-eslint/types": "5.60.1",
+                "@typescript-eslint/typescript-estree": "5.60.1",
                 "eslint-scope": "^5.1.1",
                 "semver": "^7.3.7"
             }
         },
         "@typescript-eslint/visitor-keys": {
-            "version": "5.59.9",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz",
-            "integrity": "sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==",
+            "version": "5.60.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.60.1.tgz",
+            "integrity": "sha512-xEYIxKcultP6E/RMKqube11pGjXH1DCo60mQoWhVYyKfLkwbIVVjYxmOenNMxILx0TjCujPTjjnTIVzm09TXIw==",
             "dev": true,
             "requires": {
-                "@typescript-eslint/types": "5.59.9",
+                "@typescript-eslint/types": "5.60.1",
                 "eslint-visitor-keys": "^3.3.0"
             }
         },
@@ -7691,9 +7691,9 @@
             }
         },
         "acorn": {
-            "version": "8.8.0",
-            "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
-            "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
+            "version": "8.9.0",
+            "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz",
+            "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==",
             "dev": true
         },
         "acorn-import-assertions": {
@@ -8832,9 +8832,9 @@
             }
         },
         "enhanced-resolve": {
-            "version": "5.14.1",
-            "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz",
-            "integrity": "sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow==",
+            "version": "5.15.0",
+            "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
+            "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==",
             "dev": true,
             "requires": {
                 "graceful-fs": "^4.2.4",
@@ -8906,9 +8906,9 @@
             "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA=="
         },
         "es-module-lexer": {
-            "version": "1.2.1",
-            "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz",
-            "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==",
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz",
+            "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==",
             "dev": true
         },
         "es-set-tostringtag": {
@@ -8949,15 +8949,15 @@
             "dev": true
         },
         "eslint": {
-            "version": "8.42.0",
-            "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.42.0.tgz",
-            "integrity": "sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==",
+            "version": "8.43.0",
+            "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz",
+            "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==",
             "dev": true,
             "requires": {
                 "@eslint-community/eslint-utils": "^4.2.0",
                 "@eslint-community/regexpp": "^4.4.0",
                 "@eslint/eslintrc": "^2.0.3",
-                "@eslint/js": "8.42.0",
+                "@eslint/js": "8.43.0",
                 "@humanwhocodes/config-array": "^0.11.10",
                 "@humanwhocodes/module-importer": "^1.0.1",
                 "@nodelib/fs.walk": "^1.2.8",
@@ -10537,9 +10537,9 @@
             "optional": true
         },
         "molstar": {
-            "version": "3.36.1",
-            "resolved": "https://registry.npmjs.org/molstar/-/molstar-3.36.1.tgz",
-            "integrity": "sha512-i0EUrou5CBno3CzWuGlMGHVVLbRbKRF0zWV2pWIcSczZrt83eHaaxFVtNcVHKkcG2ZTRcpwCEC9RRgl0rHIVlg==",
+            "version": "3.37.1",
+            "resolved": "https://registry.npmjs.org/molstar/-/molstar-3.37.1.tgz",
+            "integrity": "sha512-AeXhWQEyomoysLY0VYxXBuNPAmR5nx06JkfuNurBDI6gRnYrZ/ro96Xo6cA7Ew4KQwKuaAjviBafYzOSdw/DEg==",
             "requires": {
                 "@types/argparse": "^2.0.10",
                 "@types/benchmark": "^2.1.2",
@@ -11381,9 +11381,9 @@
             "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
         },
         "sass": {
-            "version": "1.63.3",
-            "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.3.tgz",
-            "integrity": "sha512-ySdXN+DVpfwq49jG1+hmtDslYqpS7SkOR5GpF6o2bmb1RL/xS+wvPmegMvMywyfsmAV6p7TgwXYGrCZIFFbAHg==",
+            "version": "1.63.6",
+            "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.6.tgz",
+            "integrity": "sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw==",
             "dev": true,
             "requires": {
                 "chokidar": ">=3.0.0 <4.0.0",
@@ -11821,21 +11821,21 @@
             }
         },
         "terser": {
-            "version": "5.17.4",
-            "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.4.tgz",
-            "integrity": "sha512-jcEKZw6UPrgugz/0Tuk/PVyLAPfMBJf5clnGueo45wTweoV8yh7Q7PEkhkJ5uuUbC7zAxEcG3tqNr1bstkQ8nw==",
+            "version": "5.18.2",
+            "resolved": "https://registry.npmjs.org/terser/-/terser-5.18.2.tgz",
+            "integrity": "sha512-Ah19JS86ypbJzTzvUCX7KOsEIhDaRONungA4aYBjEP3JZRf4ocuDzTg4QWZnPn9DEMiMYGJPiSOy7aykoCc70w==",
             "dev": true,
             "requires": {
-                "@jridgewell/source-map": "^0.3.2",
-                "acorn": "^8.5.0",
+                "@jridgewell/source-map": "^0.3.3",
+                "acorn": "^8.8.2",
                 "commander": "^2.20.0",
                 "source-map-support": "~0.5.20"
             }
         },
         "terser-webpack-plugin": {
-            "version": "5.3.8",
-            "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.8.tgz",
-            "integrity": "sha512-WiHL3ElchZMsK27P8uIUh4604IgJyAW47LVXGbEoB21DbQcZ+OuMpGjVYnEUaqcWM6dO8uS2qUbA7LSCWqvsbg==",
+            "version": "5.3.9",
+            "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz",
+            "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==",
             "dev": true,
             "requires": {
                 "@jridgewell/trace-mapping": "^0.3.17",
@@ -11846,9 +11846,9 @@
             },
             "dependencies": {
                 "schema-utils": {
-                    "version": "3.1.2",
-                    "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz",
-                    "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==",
+                    "version": "3.3.0",
+                    "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+                    "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
                     "dev": true,
                     "requires": {
                         "@types/json-schema": "^7.0.8",
@@ -11985,9 +11985,9 @@
             }
         },
         "typescript": {
-            "version": "5.1.3",
-            "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz",
-            "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==",
+            "version": "5.1.5",
+            "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.5.tgz",
+            "integrity": "sha512-FOH+WN/DQjUvN6WgW+c4Ml3yi0PH+a/8q+kNIfRehv1wLhWONedw85iu+vQ39Wp49IzTJEsZ2lyLXpBF7mkF1g==",
             "dev": true
         },
         "unbox-primitive": {
@@ -12091,9 +12091,9 @@
             "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
         },
         "webpack": {
-            "version": "5.86.0",
-            "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.86.0.tgz",
-            "integrity": "sha512-3BOvworZ8SO/D4GVP+GoRC3fVeg5MO4vzmq8TJJEkdmopxyazGDxN8ClqN12uzrZW9Tv8EED8v5VSb6Sqyi0pg==",
+            "version": "5.88.0",
+            "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.0.tgz",
+            "integrity": "sha512-O3jDhG5e44qIBSi/P6KpcCcH7HD+nYIHVBhdWFxcLOcIGN8zGo5nqF3BjyNCxIh4p1vFdNnreZv2h2KkoAw3lw==",
             "dev": true,
             "requires": {
                 "@types/eslint-scope": "^3.7.3",
@@ -12105,7 +12105,7 @@
                 "acorn-import-assertions": "^1.9.0",
                 "browserslist": "^4.14.5",
                 "chrome-trace-event": "^1.0.2",
-                "enhanced-resolve": "^5.14.1",
+                "enhanced-resolve": "^5.15.0",
                 "es-module-lexer": "^1.2.1",
                 "eslint-scope": "5.1.1",
                 "events": "^3.2.0",
@@ -12115,7 +12115,7 @@
                 "loader-runner": "^4.2.0",
                 "mime-types": "^2.1.27",
                 "neo-async": "^2.6.2",
-                "schema-utils": "^3.1.2",
+                "schema-utils": "^3.2.0",
                 "tapable": "^2.1.1",
                 "terser-webpack-plugin": "^5.3.7",
                 "watchpack": "^2.4.0",
@@ -12123,9 +12123,9 @@
             },
             "dependencies": {
                 "schema-utils": {
-                    "version": "3.1.2",
-                    "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz",
-                    "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==",
+                    "version": "3.3.0",
+                    "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+                    "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
                     "dev": true,
                     "requires": {
                         "@types/json-schema": "^7.0.8",

+ 1 - 1
package.json

@@ -62,7 +62,7 @@
     "dependencies": {
         "@types/react": "^18.2.11",
         "@types/react-dom": "^18.2.4",
-        "molstar": "^3.36.1",
+        "molstar": "^3.37.1",
         "react": "^18.2.0",
         "react-dom": "^18.2.0",
         "rxjs": "^7.8.1",

+ 12 - 6
src/viewer/helpers/model.ts

@@ -12,25 +12,31 @@ import { Mat4 } from 'molstar/lib/mol-math/linear-algebra';
 import { StateTransforms } from 'molstar/lib/mol-plugin-state/transforms';
 import { BuiltInTrajectoryFormat } from 'molstar/lib/mol-plugin-state/formats/trajectory';
 import { TrajectoryHierarchyPresetProvider } from 'molstar/lib/mol-plugin-state/builder/structure/hierarchy-preset';
+import { StateObjectRef } from 'molstar/lib/mol-state';
+import { ModelExport } from 'molstar/lib/extensions/model-export/export';
 
 export class ModelLoader {
-    async load<P = {}, S={}>(load: LoadParams, props?: PresetProps, matrix?: Mat4, reprProvider?: TrajectoryHierarchyPresetProvider<P, S>, params?: P) {
+    async load<P = any, S = {}>(load: LoadParams, props?: PresetProps & { dataLabel?: string }, matrix?: Mat4, reprProvider?: TrajectoryHierarchyPresetProvider<P, S>, params?: P) {
         const { fileOrUrl, format, isBinary } = load;
 
         const data = fileOrUrl instanceof File
-            ? (await this.plugin.builders.data.readFile({ file: Asset.File(fileOrUrl), isBinary })).data
-            : await this.plugin.builders.data.download({ url: fileOrUrl, isBinary });
+            ? (await this.plugin.builders.data.readFile({ file: Asset.File(fileOrUrl), isBinary, label: props?.dataLabel })).data
+            : await this.plugin.builders.data.download({ url: fileOrUrl, isBinary, label: props?.dataLabel });
 
-        return await this.handleTrajectory<P, S>(data, format, props, matrix, reprProvider, params);
+        const hierarchy = await this.handleTrajectory<P, S>(data, format, props, matrix, reprProvider, params) as any;
+        const structureCell = StateObjectRef.resolveAndCheck(this.plugin.state.data, hierarchy.structure);
+        ModelExport.setStructureName(structureCell?.obj?.data, props?.dataLabel || '');
+
+        return hierarchy;
     }
 
-    async parse<P = {}, S={}>(parse: ParseParams, props?: PresetProps & { dataLabel?: string }, matrix?: Mat4, reprProvider?: TrajectoryHierarchyPresetProvider<P, S>, params?: P) {
+    async parse<P = any, S = {}>(parse: ParseParams, props?: PresetProps & { dataLabel?: string }, matrix?: Mat4, reprProvider?: TrajectoryHierarchyPresetProvider<P, S>, params?: P) {
         const { data, format } = parse;
         const _data = await this.plugin.builders.data.rawData({ data, label: props?.dataLabel });
         return await this.handleTrajectory(_data, format, props, matrix, reprProvider, params);
     }
 
-    private async handleTrajectory<P = {}, S = {}>(
+    private async handleTrajectory<P = any, S = {}>(
         data: any,
         format: BuiltInTrajectoryFormat,
         props?: PresetProps,

+ 2 - 2
src/viewer/index.html

@@ -97,7 +97,7 @@
             <button style="padding: 3px;" onclick="motifsAlphaFold()">Motifs AF</button>
             &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
-            <button style="padding: 3px" onclick="propset()">Propset</button>
+            <button style="padding: 3px" onclick="alignment()">Alignment</button>
         </div>
         <script>
 
@@ -808,7 +808,7 @@
                     });
             }
 
-            function propset() {
+            function alignment() {
                 viewer.clear()
                     .then(function () {
                         return viewer.loadPdbIds([{

+ 1 - 1
src/viewer/index.ts

@@ -297,7 +297,7 @@ export class Viewer {
         return out;
     }
 
-    loadStructureFromUrl<P, S>(url: string, format: BuiltInTrajectoryFormat, isBinary: boolean, config?: {props?: PresetProps; matrix?: Mat4; reprProvider?: TrajectoryHierarchyPresetProvider<P, S>, params?: P}) {
+    loadStructureFromUrl<P, S>(url: string, format: BuiltInTrajectoryFormat, isBinary: boolean, config?: {props?: PresetProps & { dataLabel?: string }; matrix?: Mat4; reprProvider?: TrajectoryHierarchyPresetProvider<P, S>, params?: P}) {
         return this.customState.modelLoader.load({ fileOrUrl: url, format, isBinary }, config?.props, config?.matrix, config?.reprProvider, config?.params);
     }
 

+ 1 - 0
src/viewer/types.ts

@@ -25,6 +25,7 @@ interface SharedParams {
 export interface LoadParams extends SharedParams {
     /** A File object or URL representing a structure file  */
     fileOrUrl: File | string
+    label?: string
 }
 
 export interface ParseParams extends SharedParams {