Browse Source

modifier arg for all select overloads

bioinsilico 4 years ago
parent
commit
1638e27c5b
3 changed files with 67 additions and 75 deletions
  1. 62 71
      package-lock.json
  2. 1 1
      package.json
  3. 4 3
      src/viewer/index.ts

+ 62 - 71
package-lock.json

@@ -1,6 +1,6 @@
 {
     "name": "@rcsb/rcsb-molstar",
-    "version": "1.0.26",
+    "version": "1.0.30",
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
@@ -158,21 +158,21 @@
             "dev": true
         },
         "@types/express": {
-            "version": "4.17.9",
-            "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.9.tgz",
-            "integrity": "sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==",
+            "version": "4.17.11",
+            "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz",
+            "integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==",
             "dev": true,
             "requires": {
                 "@types/body-parser": "*",
-                "@types/express-serve-static-core": "*",
+                "@types/express-serve-static-core": "^4.17.18",
                 "@types/qs": "*",
                 "@types/serve-static": "*"
             }
         },
         "@types/express-serve-static-core": {
-            "version": "4.17.15",
-            "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.15.tgz",
-            "integrity": "sha512-pb71P0BrBAx7cQE+/7QnA1HTQUkdBKMlkPY7lHUMn0YvPJkL2UA+KW3BdWQ309IT+i9En/qm45ZxpjIcpgEhNQ==",
+            "version": "4.17.18",
+            "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz",
+            "integrity": "sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==",
             "dev": true,
             "requires": {
                 "@types/node": "*",
@@ -222,21 +222,21 @@
             "dev": true
         },
         "@types/mime": {
-            "version": "2.0.3",
-            "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz",
-            "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==",
+            "version": "1.3.2",
+            "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
+            "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==",
             "dev": true
         },
         "@types/node": {
-            "version": "14.14.11",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.11.tgz",
-            "integrity": "sha512-BJ97wAUuU3NUiUCp44xzUFquQEvnk1wu7q4CMEUYKJWjdkr0YWYDsm4RFtAvxYsNjLsKcrFt6RvK8r+mnzMbEQ==",
+            "version": "14.14.22",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz",
+            "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==",
             "dev": true
         },
         "@types/node-fetch": {
-            "version": "2.5.7",
-            "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.7.tgz",
-            "integrity": "sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw==",
+            "version": "2.5.8",
+            "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.8.tgz",
+            "integrity": "sha512-fbjI6ja0N5ZA8TV53RUqzsKNkl9fv8Oj3T7zxW7FGv1GSH7gwJaNF8dzCjrqKaxKeUpTz4yT1DaJFq/omNpGfw==",
             "dev": true,
             "requires": {
                 "@types/node": "*",
@@ -281,12 +281,12 @@
             }
         },
         "@types/serve-static": {
-            "version": "1.13.8",
-            "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz",
-            "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==",
+            "version": "1.13.9",
+            "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz",
+            "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==",
             "dev": true,
             "requires": {
-                "@types/mime": "*",
+                "@types/mime": "^1",
                 "@types/node": "*"
             }
         },
@@ -297,18 +297,18 @@
             "dev": true
         },
         "@types/yargs": {
-            "version": "15.0.11",
-            "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.11.tgz",
-            "integrity": "sha512-jfcNBxHFYJ4nPIacsi3woz1+kvUO6s1CyeEhtnDHBjHUMNj5UlW2GynmnSgiJJEdNg9yW5C8lfoNRZrHGv5EqA==",
+            "version": "15.0.12",
+            "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.12.tgz",
+            "integrity": "sha512-f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw==",
             "dev": true,
             "requires": {
                 "@types/yargs-parser": "*"
             }
         },
         "@types/yargs-parser": {
-            "version": "15.0.0",
-            "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz",
-            "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==",
+            "version": "20.2.0",
+            "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz",
+            "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==",
             "dev": true
         },
         "@typescript-eslint/eslint-plugin": {
@@ -1219,13 +1219,13 @@
             }
         },
         "call-bind": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz",
-            "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==",
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+            "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
             "dev": true,
             "requires": {
                 "function-bind": "^1.1.1",
-                "get-intrinsic": "^1.0.0"
+                "get-intrinsic": "^1.0.2"
             }
         },
         "callsites": {
@@ -2136,22 +2136,25 @@
             }
         },
         "es-abstract": {
-            "version": "1.17.7",
-            "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz",
-            "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==",
+            "version": "1.18.0-next.2",
+            "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz",
+            "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==",
             "dev": true,
             "requires": {
+                "call-bind": "^1.0.2",
                 "es-to-primitive": "^1.2.1",
                 "function-bind": "^1.1.1",
+                "get-intrinsic": "^1.0.2",
                 "has": "^1.0.3",
                 "has-symbols": "^1.0.1",
                 "is-callable": "^1.2.2",
+                "is-negative-zero": "^2.0.1",
                 "is-regex": "^1.1.1",
-                "object-inspect": "^1.8.0",
+                "object-inspect": "^1.9.0",
                 "object-keys": "^1.1.1",
-                "object.assign": "^4.1.1",
-                "string.prototype.trimend": "^1.0.1",
-                "string.prototype.trimstart": "^1.0.1"
+                "object.assign": "^4.1.2",
+                "string.prototype.trimend": "^1.0.3",
+                "string.prototype.trimstart": "^1.0.3"
             }
         },
         "es-to-primitive": {
@@ -2848,6 +2851,15 @@
                 "readable-stream": "^2.3.6"
             }
         },
+        "for-each": {
+            "version": "0.3.3",
+            "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+            "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+            "dev": true,
+            "requires": {
+                "is-callable": "^1.1.3"
+            }
+        },
         "for-in": {
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
@@ -3042,9 +3054,9 @@
             "dev": true
         },
         "get-intrinsic": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz",
-            "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==",
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.0.tgz",
+            "integrity": "sha512-M11rgtQp5GZMZzDL7jLTNxbDfurpzuau5uqRWDPvlHjfvg3TdScAZo96GLvhMjImrmR8uAt0FS2RLoMrfWGKlg==",
             "dev": true,
             "requires": {
                 "function-bind": "^1.1.1",
@@ -4748,28 +4760,6 @@
                 "call-bind": "^1.0.0",
                 "define-properties": "^1.1.3",
                 "es-abstract": "^1.18.0-next.1"
-            },
-            "dependencies": {
-                "es-abstract": {
-                    "version": "1.18.0-next.1",
-                    "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz",
-                    "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==",
-                    "dev": true,
-                    "requires": {
-                        "es-to-primitive": "^1.2.1",
-                        "function-bind": "^1.1.1",
-                        "has": "^1.0.3",
-                        "has-symbols": "^1.0.1",
-                        "is-callable": "^1.2.2",
-                        "is-negative-zero": "^2.0.0",
-                        "is-regex": "^1.1.1",
-                        "object-inspect": "^1.8.0",
-                        "object-keys": "^1.1.1",
-                        "object.assign": "^4.1.1",
-                        "string.prototype.trimend": "^1.0.1",
-                        "string.prototype.trimstart": "^1.0.1"
-                    }
-                }
             }
         },
         "object.pick": {
@@ -6501,9 +6491,9 @@
             }
         },
         "swagger-ui-dist": {
-            "version": "3.37.2",
-            "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.37.2.tgz",
-            "integrity": "sha512-XIT4asxgeL4GUNPPsqpEqLt20M/u6OhFYqTh42IoEAvAyv5e9EGw5uhP9dLAD10opcMYqdkJ5qU+MpN2HZ5xyA==",
+            "version": "3.40.0",
+            "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.40.0.tgz",
+            "integrity": "sha512-R0eaS61/cOE6wiFOY7AtmoTBV5lZqmyosuE14G9nAudp5MNsNfCTdI9MWJLs8iF28HXdtH8EACiFFtUbQomHog==",
             "dev": true
         },
         "table": {
@@ -6925,15 +6915,16 @@
             "dev": true
         },
         "util.promisify": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz",
-            "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==",
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz",
+            "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==",
             "dev": true,
             "requires": {
+                "call-bind": "^1.0.0",
                 "define-properties": "^1.1.3",
-                "es-abstract": "^1.17.2",
+                "for-each": "^0.3.3",
                 "has-symbols": "^1.0.1",
-                "object.getownpropertydescriptors": "^2.1.0"
+                "object.getownpropertydescriptors": "^2.1.1"
             }
         },
         "utils-merge": {

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
     "name": "@rcsb/rcsb-molstar",
-    "version": "1.0.30",
+    "version": "1.0.31",
     "description": "RCSB PDB apps and props based on Mol*.",
     "homepage": "https://github.com/rcsb/rcsb-molstar#readme",
     "repository": {

+ 4 - 3
src/viewer/index.ts

@@ -229,12 +229,13 @@ export class Viewer {
         return this.plugin;
     }
 
-    public select(selection: Array<{modelId: string; asymId: string; position: number;}>, mode: 'select'|'hover'): void;
+    public select(selection: Array<{modelId: string; asymId: string; position: number;}>, mode: 'select'|'hover', modifier: 'add'|'set'): void;
     public select(modelId: string, asymId: string, position: number, mode: 'select'|'hover', modifier: 'add'|'set'): void;
     public select(modelId: string, asymId: string, begin: number, end: number, mode: 'select'|'hover', modifier: 'add'|'set'): void;
     public select(...args: any[]){
-        if(args.length === 2){
-            this.clearSelection('select');
+        if(args.length === 3){
+            if(args[2] === 'set')
+                this.clearSelection('select');
             (args[0] as Array<{modelId: string; asymId: string; position: number;}>).forEach(r=>{
                 this.selectSegment(r.modelId, r.asymId, r.position, r.position, args[1], 'add');
             });