drugflow-molstar 0.3.73 → 0.3.74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @license React
3
+ * react-dom.production.min.js
4
+ *
5
+ * Copyright (c) Facebook, Inc. and its affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
10
+
11
+ /**
12
+ * @license React
13
+ * react-jsx-runtime.production.min.js
14
+ *
15
+ * Copyright (c) Facebook, Inc. and its affiliates.
16
+ *
17
+ * This source code is licensed under the MIT license found in the
18
+ * LICENSE file in the root directory of this source tree.
19
+ */
20
+
21
+ /**
22
+ * @license React
23
+ * react.production.min.js
24
+ *
25
+ * Copyright (c) Facebook, Inc. and its affiliates.
26
+ *
27
+ * This source code is licensed under the MIT license found in the
28
+ * LICENSE file in the root directory of this source tree.
29
+ */
30
+
31
+ /**
32
+ * @license React
33
+ * scheduler.production.min.js
34
+ *
35
+ * Copyright (c) Facebook, Inc. and its affiliates.
36
+ *
37
+ * This source code is licensed under the MIT license found in the
38
+ * LICENSE file in the root directory of this source tree.
39
+ */
@@ -0,0 +1,2 @@
1
+ /*! For license information please see drugflow-molstar-component-build-0.3.74.js.LICENSE.txt */
2
+ (()=>{"use strict";const t="undefined"!=typeof window&&null!=window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,e=(t,e,s=null)=>{for(;e!==s;){const s=e.nextSibling;t.removeChild(e),e=s}},s=`{{lit-${String(Math.random()).slice(2)}}}`,i=`\x3c!--${s}--\x3e`,n=new RegExp(`${s}|${i}`),r="$lit$";class o{constructor(t,e){this.parts=[],this.element=e;const i=[],o=[],l=document.createTreeWalker(e.content,133,null,!1);let c=0,p=-1,u=0;const{strings:_,values:{length:m}}=t;for(;u<m;){const t=l.nextNode();if(null!==t){if(p++,1===t.nodeType){if(t.hasAttributes()){const e=t.attributes,{length:s}=e;let i=0;for(let t=0;t<s;t++)a(e[t].name,r)&&i++;for(;i-- >0;){const e=_[u],s=d.exec(e)[2],i=s.toLowerCase()+r,o=t.getAttribute(i);t.removeAttribute(i);const a=o.split(n);this.parts.push({type:"attribute",index:p,name:s,strings:a}),u+=a.length-1}}"TEMPLATE"===t.tagName&&(o.push(t),l.currentNode=t.content)}else if(3===t.nodeType){const e=t.data;if(e.indexOf(s)>=0){const s=t.parentNode,o=e.split(n),l=o.length-1;for(let e=0;e<l;e++){let i,n=o[e];if(""===n)i=h();else{const t=d.exec(n);null!==t&&a(t[2],r)&&(n=n.slice(0,t.index)+t[1]+t[2].slice(0,-r.length)+t[3]),i=document.createTextNode(n)}s.insertBefore(i,t),this.parts.push({type:"node",index:++p})}""===o[l]?(s.insertBefore(h(),t),i.push(t)):t.data=o[l],u+=l}}else if(8===t.nodeType)if(t.data===s){const e=t.parentNode;null!==t.previousSibling&&p!==c||(p++,e.insertBefore(h(),t)),c=p,this.parts.push({type:"node",index:p}),null===t.nextSibling?t.data="":(i.push(t),p--),u++}else{let e=-1;for(;-1!==(e=t.data.indexOf(s,e+1));)this.parts.push({type:"node",index:-1}),u++}}else l.currentNode=o.pop()}for(const t of i)t.parentNode.removeChild(t)}}const a=(t,e)=>{const s=t.length-e.length;return s>=0&&t.slice(s)===e},l=t=>-1!==t.index,h=()=>document.createComment(""),d=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;function c(t,e){const{element:{content:s},parts:i}=t,n=document.createTreeWalker(s,133,null,!1);let r=u(i),o=i[r],a=-1,l=0;const h=[];let d=null;for(;n.nextNode();){a++;const t=n.currentNode;for(t.previousSibling===d&&(d=null),e.has(t)&&(h.push(t),null===d&&(d=t)),null!==d&&l++;void 0!==o&&o.index===a;)o.index=null!==d?-1:o.index-l,r=u(i,r),o=i[r]}h.forEach((t=>t.parentNode.removeChild(t)))}const p=t=>{let e=11===t.nodeType?0:1;const s=document.createTreeWalker(t,133,null,!1);for(;s.nextNode();)e++;return e},u=(t,e=-1)=>{for(let s=e+1;s<t.length;s++){const e=t[s];if(l(e))return s}return-1},_=new WeakMap,m=t=>"function"==typeof t&&_.has(t),y={},f={};class g{constructor(t,e,s){this.__parts=[],this.template=t,this.processor=e,this.options=s}update(t){let e=0;for(const s of this.__parts)void 0!==s&&s.setValue(t[e]),e++;for(const t of this.__parts)void 0!==t&&t.commit()}_clone(){const e=t?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),s=[],i=this.template.parts,n=document.createTreeWalker(e,133,null,!1);let r,o=0,a=0,h=n.nextNode();for(;o<i.length;)if(r=i[o],l(r)){for(;a<r.index;)a++,"TEMPLATE"===h.nodeName&&(s.push(h),n.currentNode=h.content),null===(h=n.nextNode())&&(n.currentNode=s.pop(),h=n.nextNode());if("node"===r.type){const t=this.processor.handleTextExpression(this.options);t.insertAfterNode(h.previousSibling),this.__parts.push(t)}else this.__parts.push(...this.processor.handleAttributeExpressions(h,r.name,r.strings,this.options));o++}else this.__parts.push(void 0),o++;return t&&(document.adoptNode(e),customElements.upgrade(e)),e}}const S=window.trustedTypes&&trustedTypes.createPolicy("lit-html",{createHTML:t=>t}),v=` ${s} `;const w=t=>null===t||!("object"==typeof t||"function"==typeof t),b=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class x{constructor(t,e,s){this.dirty=!0,this.element=t,this.name=e,this.strings=s,this.parts=[];for(let t=0;t<s.length-1;t++)this.parts[t]=this._createPart()}_createPart(){return new P(this)}_getValue(){const t=this.strings,e=t.length-1,s=this.parts;if(1===e&&""===t[0]&&""===t[1]){const t=s[0].value;if("symbol"==typeof t)return String(t);if("string"==typeof t||!b(t))return t}let i="";for(let n=0;n<e;n++){i+=t[n];const e=s[n];if(void 0!==e){const t=e.value;if(w(t)||!b(t))i+="string"==typeof t?t:String(t);else for(const e of t)i+="string"==typeof e?e:String(e)}}return i+=t[e],i}commit(){this.dirty&&(this.dirty=!1,this.element.setAttribute(this.name,this._getValue()))}}class P{constructor(t){this.value=void 0,this.committer=t}setValue(t){t===y||w(t)&&t===this.value||(this.value=t,m(t)||(this.committer.dirty=!0))}commit(){for(;m(this.value);){const t=this.value;this.value=y,t(this)}this.value!==y&&this.committer.commit()}}class N{constructor(t){this.value=void 0,this.__pendingValue=void 0,this.options=t}appendInto(t){this.startNode=t.appendChild(h()),this.endNode=t.appendChild(h())}insertAfterNode(t){this.startNode=t,this.endNode=t.nextSibling}appendIntoPart(t){t.__insert(this.startNode=h()),t.__insert(this.endNode=h())}insertAfterPart(t){t.__insert(this.startNode=h()),this.endNode=t.endNode,t.endNode=this.startNode}setValue(t){this.__pendingValue=t}commit(){if(null===this.startNode.parentNode)return;for(;m(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=y,t(this)}const t=this.__pendingValue;t!==y&&(w(t)?t!==this.value&&this.__commitText(t):t instanceof class{constructor(t,e,s,i){this.strings=t,this.values=e,this.type=s,this.processor=i}getHTML(){const t=this.strings.length-1;let e="",n=!1;for(let o=0;o<t;o++){const t=this.strings[o],a=t.lastIndexOf("\x3c!--");n=(a>-1||n)&&-1===t.indexOf("--\x3e",a+1);const l=d.exec(t);e+=null===l?t+(n?v:i):t.substr(0,l.index)+l[1]+l[2]+r+l[3]+s}return e+=this.strings[t],e}getTemplateElement(){const t=document.createElement("template");let e=this.getHTML();return void 0!==S&&(e=S.createHTML(e)),t.innerHTML=e,t}}?this.__commitTemplateResult(t):t instanceof Node?this.__commitNode(t):b(t)?this.__commitIterable(t):t===f?(this.value=f,this.clear()):this.__commitText(t))}__insert(t){this.endNode.parentNode.insertBefore(t,this.endNode)}__commitNode(t){this.value!==t&&(this.clear(),this.__insert(t),this.value=t)}__commitText(t){const e=this.startNode.nextSibling,s="string"==typeof(t=null==t?"":t)?t:String(t);e===this.endNode.previousSibling&&3===e.nodeType?e.data=s:this.__commitNode(document.createTextNode(s)),this.value=t}__commitTemplateResult(t){const e=this.options.templateFactory(t);if(this.value instanceof g&&this.value.template===e)this.value.update(t.values);else{const s=new g(e,t.processor,this.options),i=s._clone();s.update(t.values),this.__commitNode(i),this.value=s}}__commitIterable(t){Array.isArray(this.value)||(this.value=[],this.clear());const e=this.value;let s,i=0;for(const n of t)s=e[i],void 0===s&&(s=new N(this.options),e.push(s),0===i?s.appendIntoPart(this):s.insertAfterPart(e[i-1])),s.setValue(n),s.commit(),i++;i<e.length&&(e.length=i,this.clear(s&&s.endNode))}clear(t=this.startNode){e(this.startNode.parentNode,t.nextSibling,this.endNode)}}class C{constructor(t,e,s){if(this.value=void 0,this.__pendingValue=void 0,2!==s.length||""!==s[0]||""!==s[1])throw new Error("Boolean attributes can only contain a single expression");this.element=t,this.name=e,this.strings=s}setValue(t){this.__pendingValue=t}commit(){for(;m(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=y,t(this)}if(this.__pendingValue===y)return;const t=!!this.__pendingValue;this.value!==t&&(t?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name),this.value=t),this.__pendingValue=y}}class T extends x{constructor(t,e,s){super(t,e,s),this.single=2===s.length&&""===s[0]&&""===s[1]}_createPart(){return new A(this)}_getValue(){return this.single?this.parts[0].value:super._getValue()}commit(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}class A extends P{}let E=!1;(()=>{try{const t={get capture(){return E=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}})();class V{constructor(t,e,s){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=s,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;m(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=y,t(this)}if(this.__pendingValue===y)return;const t=this.__pendingValue,e=this.value,s=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),i=null!=t&&(null==e||s);s&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),i&&(this.__options=U(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=y}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const U=t=>t&&(E?{capture:t.capture,passive:t.passive,once:t.once}:t.capture);function O(t){let e=R.get(t.type);void 0===e&&(e={stringsArray:new WeakMap,keyString:new Map},R.set(t.type,e));let i=e.stringsArray.get(t.strings);if(void 0!==i)return i;const n=t.strings.join(s);return i=e.keyString.get(n),void 0===i&&(i=new o(t,t.getTemplateElement()),e.keyString.set(n,i)),e.stringsArray.set(t.strings,i),i}const R=new Map,k=new WeakMap;new class{handleAttributeExpressions(t,e,s,i){const n=e[0];return"."===n?new T(t,e.slice(1),s).parts:"@"===n?[new V(t,e.slice(1),i.eventContext)]:"?"===n?[new C(t,e.slice(1),s)]:new x(t,e,s).parts}handleTextExpression(t){return new N(t)}},"undefined"!=typeof window&&(window.litHtmlVersions||(window.litHtmlVersions=[])).push("1.4.1");const M=(t,e)=>`${t}--${e}`;let q=!0;void 0===window.ShadyCSS?q=!1:void 0===window.ShadyCSS.prepareTemplateDom&&(console.warn("Incompatible ShadyCSS version detected. Please update to at least @webcomponents/webcomponentsjs@2.0.2 and @webcomponents/shadycss@1.3.1."),q=!1);const I=t=>e=>{const i=M(e.type,t);let n=R.get(i);void 0===n&&(n={stringsArray:new WeakMap,keyString:new Map},R.set(i,n));let r=n.stringsArray.get(e.strings);if(void 0!==r)return r;const a=e.strings.join(s);if(r=n.keyString.get(a),void 0===r){const s=e.getTemplateElement();q&&window.ShadyCSS.prepareTemplateDom(s,t),r=new o(e,s),n.keyString.set(a,r)}return n.stringsArray.set(e.strings,r),r},j=["html","svg"],L=new Set;window.JSCompiler_renameProperty=(t,e)=>t;const F={toAttribute(t,e){switch(e){case Boolean:return t?"":null;case Object:case Array:return null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){switch(e){case Boolean:return null!==t;case Number:return null===t?null:Number(t);case Object:case Array:return JSON.parse(t)}return t}},H=(t,e)=>e!==t&&(e==e||t==t),z={attribute:!0,type:String,converter:F,reflect:!1,hasChanged:H};class B extends HTMLElement{constructor(){super(),this.initialize()}static get observedAttributes(){this.finalize();const t=[];return this._classProperties.forEach(((e,s)=>{const i=this._attributeNameForProperty(s,e);void 0!==i&&(this._attributeToPropertyMap.set(i,s),t.push(i))})),t}static _ensureClassProperties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_classProperties",this))){this._classProperties=new Map;const t=Object.getPrototypeOf(this)._classProperties;void 0!==t&&t.forEach(((t,e)=>this._classProperties.set(e,t)))}}static createProperty(t,e=z){if(this._ensureClassProperties(),this._classProperties.set(t,e),e.noAccessor||this.prototype.hasOwnProperty(t))return;const s="symbol"==typeof t?Symbol():`__${t}`,i=this.getPropertyDescriptor(t,s,e);void 0!==i&&Object.defineProperty(this.prototype,t,i)}static getPropertyDescriptor(t,e,s){return{get(){return this[e]},set(i){const n=this[t];this[e]=i,this.requestUpdateInternal(t,n,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this._classProperties&&this._classProperties.get(t)||z}static finalize(){const t=Object.getPrototypeOf(this);if(t.hasOwnProperty("finalized")||t.finalize(),this.finalized=!0,this._ensureClassProperties(),this._attributeToPropertyMap=new Map,this.hasOwnProperty(JSCompiler_renameProperty("properties",this))){const t=this.properties,e=[...Object.getOwnPropertyNames(t),..."function"==typeof Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t):[]];for(const s of e)this.createProperty(s,t[s])}}static _attributeNameForProperty(t,e){const s=e.attribute;return!1===s?void 0:"string"==typeof s?s:"string"==typeof t?t.toLowerCase():void 0}static _valueHasChanged(t,e,s=H){return s(t,e)}static _propertyValueFromAttribute(t,e){const s=e.type,i=e.converter||F,n="function"==typeof i?i:i.fromAttribute;return n?n(t,s):t}static _propertyValueToAttribute(t,e){if(void 0===e.reflect)return;const s=e.type,i=e.converter;return(i&&i.toAttribute||F.toAttribute)(t,s)}initialize(){this._updateState=0,this._updatePromise=new Promise((t=>this._enableUpdatingResolver=t)),this._changedProperties=new Map,this._saveInstanceProperties(),this.requestUpdateInternal()}_saveInstanceProperties(){this.constructor._classProperties.forEach(((t,e)=>{if(this.hasOwnProperty(e)){const t=this[e];delete this[e],this._instanceProperties||(this._instanceProperties=new Map),this._instanceProperties.set(e,t)}}))}_applyInstanceProperties(){this._instanceProperties.forEach(((t,e)=>this[e]=t)),this._instanceProperties=void 0}connectedCallback(){this.enableUpdating()}enableUpdating(){void 0!==this._enableUpdatingResolver&&(this._enableUpdatingResolver(),this._enableUpdatingResolver=void 0)}disconnectedCallback(){}attributeChangedCallback(t,e,s){e!==s&&this._attributeToProperty(t,s)}_propertyToAttribute(t,e,s=z){const i=this.constructor,n=i._attributeNameForProperty(t,s);if(void 0!==n){const t=i._propertyValueToAttribute(e,s);if(void 0===t)return;this._updateState=8|this._updateState,null==t?this.removeAttribute(n):this.setAttribute(n,t),this._updateState=-9&this._updateState}}_attributeToProperty(t,e){if(8&this._updateState)return;const s=this.constructor,i=s._attributeToPropertyMap.get(t);if(void 0!==i){const t=s.getPropertyOptions(i);this._updateState=16|this._updateState,this[i]=s._propertyValueFromAttribute(e,t),this._updateState=-17&this._updateState}}requestUpdateInternal(t,e,s){let i=!0;if(void 0!==t){const n=this.constructor;s=s||n.getPropertyOptions(t),n._valueHasChanged(this[t],e,s.hasChanged)?(this._changedProperties.has(t)||this._changedProperties.set(t,e),!0!==s.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(t,s))):i=!1}!this._hasRequestedUpdate&&i&&(this._updatePromise=this._enqueueUpdate())}requestUpdate(t,e){return this.requestUpdateInternal(t,e),this.updateComplete}async _enqueueUpdate(){this._updateState=4|this._updateState;try{await this._updatePromise}catch(t){}const t=this.performUpdate();return null!=t&&await t,!this._hasRequestedUpdate}get _hasRequestedUpdate(){return 4&this._updateState}get hasUpdated(){return 1&this._updateState}performUpdate(){if(!this._hasRequestedUpdate)return;this._instanceProperties&&this._applyInstanceProperties();let t=!1;const e=this._changedProperties;try{t=this.shouldUpdate(e),t?this.update(e):this._markUpdated()}catch(e){throw t=!1,this._markUpdated(),e}t&&(1&this._updateState||(this._updateState=1|this._updateState,this.firstUpdated(e)),this.updated(e))}_markUpdated(){this._changedProperties=new Map,this._updateState=-5&this._updateState}get updateComplete(){return this._getUpdateComplete()}_getUpdateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._updatePromise}shouldUpdate(t){return!0}update(t){void 0!==this._reflectingProperties&&this._reflectingProperties.size>0&&(this._reflectingProperties.forEach(((t,e)=>this._propertyToAttribute(e,this[e],t))),this._reflectingProperties=void 0),this._markUpdated()}updated(t){}firstUpdated(t){}}B.finalized=!0;const $=Element.prototype;$.msMatchesSelector||$.webkitMatchesSelector;const W=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,D=Symbol();class J{constructor(t,e){if(e!==D)throw new Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t}get styleSheet(){return void 0===this._styleSheet&&(W?(this._styleSheet=new CSSStyleSheet,this._styleSheet.replaceSync(this.cssText)):this._styleSheet=null),this._styleSheet}toString(){return this.cssText}}(window.litElementVersions||(window.litElementVersions=[])).push("2.5.1");const G={};class K extends B{static getStyles(){return this.styles}static _getUniqueStyles(){if(this.hasOwnProperty(JSCompiler_renameProperty("_styles",this)))return;const t=this.getStyles();if(Array.isArray(t)){const e=(t,s)=>t.reduceRight(((t,s)=>Array.isArray(s)?e(s,t):(t.add(s),t)),s),s=e(t,new Set),i=[];s.forEach((t=>i.unshift(t))),this._styles=i}else this._styles=void 0===t?[]:[t];this._styles=this._styles.map((t=>{if(t instanceof CSSStyleSheet&&!W){const e=Array.prototype.slice.call(t.cssRules).reduce(((t,e)=>t+e.cssText),"");return new J(String(e),D)}return t}))}initialize(){super.initialize(),this.constructor._getUniqueStyles(),this.renderRoot=this.createRenderRoot(),window.ShadowRoot&&this.renderRoot instanceof window.ShadowRoot&&this.adoptStyles()}createRenderRoot(){return this.attachShadow(this.constructor.shadowRootOptions)}adoptStyles(){const t=this.constructor._styles;0!==t.length&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow?W?this.renderRoot.adoptedStyleSheets=t.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(t.map((t=>t.cssText)),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&void 0!==window.ShadyCSS&&window.ShadyCSS.styleElement(this)}update(t){const e=this.render();super.update(t),e!==G&&this.constructor.render(e,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach((t=>{const e=document.createElement("style");e.textContent=t.cssText,this.renderRoot.appendChild(e)})))}render(){return G}}K.finalized=!0,K.render=(t,s,i)=>{if(!i||"object"!=typeof i||!i.scopeName)throw new Error("The `scopeName` option is required.");const n=i.scopeName,r=k.has(s),o=q&&11===s.nodeType&&!!s.host,a=o&&!L.has(n),l=a?document.createDocumentFragment():s;if(((t,s,i)=>{let n=k.get(s);void 0===n&&(e(s,s.firstChild),k.set(s,n=new N(Object.assign({templateFactory:O},i))),n.appendInto(s)),n.setValue(t),n.commit()})(t,l,Object.assign({templateFactory:I(n)},i)),a){const t=k.get(l);k.delete(l);((t,e,s)=>{L.add(t);const i=s?s.element:document.createElement("template"),n=e.querySelectorAll("style"),{length:r}=n;if(0===r)return void window.ShadyCSS.prepareTemplateStyles(i,t);const o=document.createElement("style");for(let t=0;t<r;t++){const e=n[t];e.parentNode.removeChild(e),o.textContent+=e.textContent}(t=>{j.forEach((e=>{const s=R.get(M(e,t));void 0!==s&&s.keyString.forEach((t=>{const{element:{content:e}}=t,s=new Set;Array.from(e.querySelectorAll("style")).forEach((t=>{s.add(t)})),c(t,s)}))}))})(t);const a=i.content;s?function(t,e,s=null){const{element:{content:i},parts:n}=t;if(null==s)return void i.appendChild(e);const r=document.createTreeWalker(i,133,null,!1);let o=u(n),a=0,l=-1;for(;r.nextNode();)for(l++,r.currentNode===s&&(a=p(e),s.parentNode.insertBefore(e,s));-1!==o&&n[o].index===l;){if(a>0){for(;-1!==o;)n[o].index+=a,o=u(n,o);return}o=u(n,o)}}(s,o,a.firstChild):a.insertBefore(o,a.firstChild),window.ShadyCSS.prepareTemplateStyles(i,t);const l=a.querySelector("style");if(window.ShadyCSS.nativeShadow&&null!==l)e.insertBefore(l.cloneNode(!0),e.firstChild);else if(s){a.insertBefore(o,a.firstChild);const t=new Set;t.add(o),c(s,t)}})(n,l,t.value instanceof g?t.value.template:void 0),e(s,s.firstChild),s.appendChild(l),k.set(s,t)}!r&&o&&window.ShadyCSS.styleElement(s.host)},K.shadowRootOptions={mode:"open"}})();
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @license
3
+ * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
4
+ * This code may only be used under the BSD style license found at
5
+ * http://polymer.github.io/LICENSE.txt
6
+ * The complete set of authors may be found at
7
+ * http://polymer.github.io/AUTHORS.txt
8
+ * The complete set of contributors may be found at
9
+ * http://polymer.github.io/CONTRIBUTORS.txt
10
+ * Code distributed by Google as part of the polymer project is also
11
+ * subject to an additional IP rights grant found at
12
+ * http://polymer.github.io/PATENTS.txt
13
+ */
14
+
15
+ /**
16
+ @license
17
+ Copyright (c) 2019 The Polymer Project Authors. All rights reserved.
18
+ This code may only be used under the BSD style license found at
19
+ http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
20
+ http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
21
+ found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
22
+ part of the polymer project is also subject to an additional IP rights grant
23
+ found at http://polymer.github.io/PATENTS.txt
24
+ */
package/lib/index.js CHANGED
@@ -47,6 +47,11 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
47
47
  "now": { "polymer": [], "ligand": [], "other": [] }
48
48
  };
49
49
  this.isHighlightColorUpdated = false;
50
+ // 隐藏状态追踪器
51
+ this.hiddenState = {
52
+ chains: new Set(),
53
+ ligands: new Set() // 隐藏的配体(格式: "chainId:resId" 或 "chainId:resName")
54
+ };
50
55
  this.canvas = {
51
56
  toggleControls: function (isVisible) {
52
57
  if (typeof isVisible === 'undefined')
@@ -498,11 +503,10 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
498
503
  });
499
504
  }); },
500
505
  /**
501
- * 使用透明度隐藏指定的链
502
- * @param chainId 链ID,例如 'A', 'B'
506
+ * 应用所有隐藏状态(内部方法)
503
507
  */
504
- hideChain: function (chainId) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
505
- var structures, components, _b, structures_1, s;
508
+ _applyHiddenState: function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
509
+ var structures, components, _b, structures_1, s, chainArray, _loop_1, this_1, i, ligandArray, _loop_2, this_2, i;
506
510
  var _this = this;
507
511
  return tslib_1.__generator(this, function (_c) {
508
512
  switch (_c.label) {
@@ -514,37 +518,145 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
514
518
  components.push.apply(components, s.components);
515
519
  }
516
520
  if (components.length === 0) {
517
- console.warn('No components found');
518
521
  return [2 /*return*/];
519
522
  }
520
- // 使用透明度为1(完全透明)来隐藏
521
- return [4 /*yield*/, (0, structure_transparency_1.setStructureTransparency)(this.plugin, components, 1, function (structure) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
522
- var data, chainQuery;
523
- var _this = this;
524
- return tslib_1.__generator(this, function (_b) {
525
- data = structure;
526
- chainQuery = (0, structure_selection_query_1.StructureSelectionQuery)("Chain_".concat(chainId), builder_1.MolScriptBuilder.struct.generator.atomGroups({
527
- 'chain-test': builder_1.MolScriptBuilder.core.rel.eq([builder_1.MolScriptBuilder.ammp('auth_asym_id'), chainId])
528
- }), {
529
- description: "Chain ".concat(chainId),
530
- category: structure_selection_query_1.StructureSelectionCategory.Manipulate
531
- });
532
- return [2 /*return*/, this.plugin.runTask(mol_task_1.Task.create('Select Chain', function (runtime) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
533
- var selection;
534
- return tslib_1.__generator(this, function (_b) {
535
- switch (_b.label) {
536
- case 0: return [4 /*yield*/, chainQuery.getSelection(this.plugin, runtime, data)];
537
- case 1:
538
- selection = _b.sent();
539
- return [2 /*return*/, structure_1.StructureSelection.toLociWithSourceUnits(selection)];
540
- }
541
- });
542
- }); }))];
543
- });
544
- }); })];
523
+ // 先清除所有透明度
524
+ return [4 /*yield*/, (0, structure_transparency_1.clearStructureTransparency)(this.plugin, components)];
545
525
  case 1:
546
- // 使用透明度为1(完全透明)来隐藏
526
+ // 先清除所有透明度
527
+ _c.sent();
528
+ // 如果没有需要隐藏的,直接返回
529
+ if (this.hiddenState.chains.size === 0 && this.hiddenState.ligands.size === 0) {
530
+ return [2 /*return*/];
531
+ }
532
+ chainArray = Array.from(this.hiddenState.chains);
533
+ _loop_1 = function (i) {
534
+ var chainId;
535
+ return tslib_1.__generator(this, function (_d) {
536
+ switch (_d.label) {
537
+ case 0:
538
+ chainId = chainArray[i];
539
+ return [4 /*yield*/, (0, structure_transparency_1.setStructureTransparency)(this_1.plugin, components, 1, function (structure) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
540
+ var chainQuery;
541
+ var _this = this;
542
+ return tslib_1.__generator(this, function (_b) {
543
+ chainQuery = (0, structure_selection_query_1.StructureSelectionQuery)("Chain_".concat(chainId), builder_1.MolScriptBuilder.struct.generator.atomGroups({
544
+ 'chain-test': builder_1.MolScriptBuilder.core.rel.eq([builder_1.MolScriptBuilder.ammp('auth_asym_id'), chainId])
545
+ }), {
546
+ description: "Chain ".concat(chainId),
547
+ category: structure_selection_query_1.StructureSelectionCategory.Manipulate
548
+ });
549
+ return [2 /*return*/, this.plugin.runTask(mol_task_1.Task.create('Select Chain', function (runtime) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
550
+ var selection;
551
+ return tslib_1.__generator(this, function (_b) {
552
+ switch (_b.label) {
553
+ case 0: return [4 /*yield*/, chainQuery.getSelection(this.plugin, runtime, structure)];
554
+ case 1:
555
+ selection = _b.sent();
556
+ return [2 /*return*/, structure_1.StructureSelection.toLociWithSourceUnits(selection)];
557
+ }
558
+ });
559
+ }); }))];
560
+ });
561
+ }); })];
562
+ case 1:
563
+ _d.sent();
564
+ return [2 /*return*/];
565
+ }
566
+ });
567
+ };
568
+ this_1 = this;
569
+ i = 0;
570
+ _c.label = 2;
571
+ case 2:
572
+ if (!(i < chainArray.length)) return [3 /*break*/, 5];
573
+ return [5 /*yield**/, _loop_1(i)];
574
+ case 3:
547
575
  _c.sent();
576
+ _c.label = 4;
577
+ case 4:
578
+ i++;
579
+ return [3 /*break*/, 2];
580
+ case 5:
581
+ ligandArray = Array.from(this.hiddenState.ligands);
582
+ _loop_2 = function (i) {
583
+ var ligandKey, parts, chainId, identifier, resId, resName, queryConditions;
584
+ return tslib_1.__generator(this, function (_e) {
585
+ switch (_e.label) {
586
+ case 0:
587
+ ligandKey = ligandArray[i];
588
+ parts = ligandKey.split(':');
589
+ chainId = parts[0];
590
+ identifier = parts[1];
591
+ resId = isNaN(Number(identifier)) ? undefined : Number(identifier);
592
+ resName = isNaN(Number(identifier)) ? identifier : undefined;
593
+ queryConditions = {
594
+ 'chain-test': builder_1.MolScriptBuilder.core.rel.eq([builder_1.MolScriptBuilder.ammp('auth_asym_id'), chainId])
595
+ };
596
+ if (resName) {
597
+ queryConditions['residue-test'] = builder_1.MolScriptBuilder.core.rel.eq([builder_1.MolScriptBuilder.ammp('auth_comp_id'), resName.toUpperCase()]);
598
+ }
599
+ else if (resId !== undefined) {
600
+ queryConditions['residue-test'] = builder_1.MolScriptBuilder.core.rel.eq([builder_1.MolScriptBuilder.ammp('auth_seq_id'), resId]);
601
+ }
602
+ return [4 /*yield*/, (0, structure_transparency_1.setStructureTransparency)(this_2.plugin, components, 1, function (structure) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
603
+ var ligandQuery;
604
+ var _this = this;
605
+ return tslib_1.__generator(this, function (_b) {
606
+ ligandQuery = (0, structure_selection_query_1.StructureSelectionQuery)("Ligand_".concat(ligandKey), builder_1.MolScriptBuilder.struct.generator.atomGroups(queryConditions), {
607
+ description: "Ligand at ".concat(ligandKey),
608
+ category: structure_selection_query_1.StructureSelectionCategory.Manipulate
609
+ });
610
+ return [2 /*return*/, this.plugin.runTask(mol_task_1.Task.create('Select Ligand', function (runtime) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
611
+ var selection;
612
+ return tslib_1.__generator(this, function (_b) {
613
+ switch (_b.label) {
614
+ case 0: return [4 /*yield*/, ligandQuery.getSelection(this.plugin, runtime, structure)];
615
+ case 1:
616
+ selection = _b.sent();
617
+ return [2 /*return*/, structure_1.StructureSelection.toLociWithSourceUnits(selection)];
618
+ }
619
+ });
620
+ }); }))];
621
+ });
622
+ }); })];
623
+ case 1:
624
+ _e.sent();
625
+ return [2 /*return*/];
626
+ }
627
+ });
628
+ };
629
+ this_2 = this;
630
+ i = 0;
631
+ _c.label = 6;
632
+ case 6:
633
+ if (!(i < ligandArray.length)) return [3 /*break*/, 9];
634
+ return [5 /*yield**/, _loop_2(i)];
635
+ case 7:
636
+ _c.sent();
637
+ _c.label = 8;
638
+ case 8:
639
+ i++;
640
+ return [3 /*break*/, 6];
641
+ case 9: return [2 /*return*/];
642
+ }
643
+ });
644
+ }); },
645
+ /**
646
+ * 使用透明度隐藏指定的链
647
+ * @param chainId 链ID,例如 'A', 'B'
648
+ */
649
+ hideChain: function (chainId) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
650
+ return tslib_1.__generator(this, function (_b) {
651
+ switch (_b.label) {
652
+ case 0:
653
+ // 添加到隐藏状态
654
+ this.hiddenState.chains.add(chainId);
655
+ // 重新应用所有隐藏状态
656
+ return [4 /*yield*/, this.visual._applyHiddenState()];
657
+ case 1:
658
+ // 重新应用所有隐藏状态
659
+ _b.sent();
548
660
  console.log("\u2705 Chain ".concat(chainId, " hidden"));
549
661
  return [2 /*return*/];
550
662
  }
@@ -555,25 +667,16 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
555
667
  * @param chainId 链ID,例如 'A', 'B'
556
668
  */
557
669
  showChain: function (chainId) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
558
- var structures, components, _b, structures_2, s;
559
- return tslib_1.__generator(this, function (_c) {
560
- switch (_c.label) {
670
+ return tslib_1.__generator(this, function (_b) {
671
+ switch (_b.label) {
561
672
  case 0:
562
- structures = this.plugin.managers.structure.hierarchy.current.structures;
563
- components = [];
564
- for (_b = 0, structures_2 = structures; _b < structures_2.length; _b++) {
565
- s = structures_2[_b];
566
- components.push.apply(components, s.components);
567
- }
568
- if (components.length === 0) {
569
- console.warn('No components found');
570
- return [2 /*return*/];
571
- }
572
- // 清除透明度来恢复显示
573
- return [4 /*yield*/, (0, structure_transparency_1.clearStructureTransparency)(this.plugin, components)];
673
+ // 从隐藏状态中移除
674
+ this.hiddenState.chains.delete(chainId);
675
+ // 重新应用所有隐藏状态
676
+ return [4 /*yield*/, this.visual._applyHiddenState()];
574
677
  case 1:
575
- // 清除透明度来恢复显示
576
- _c.sent();
678
+ // 重新应用所有隐藏状态
679
+ _b.sent();
577
680
  console.log("\u2705 Chain ".concat(chainId, " shown"));
578
681
  return [2 /*return*/];
579
682
  }
@@ -586,57 +689,20 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
586
689
  * @param resName 残基名称(可选)
587
690
  */
588
691
  hideLigand: function (chainId, resId, resName) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
589
- var structures, components, _b, structures_3, s, queryConditions;
590
- var _this = this;
591
- return tslib_1.__generator(this, function (_c) {
592
- switch (_c.label) {
692
+ var identifier, ligandKey;
693
+ return tslib_1.__generator(this, function (_b) {
694
+ switch (_b.label) {
593
695
  case 0:
594
- structures = this.plugin.managers.structure.hierarchy.current.structures;
595
- components = [];
596
- for (_b = 0, structures_3 = structures; _b < structures_3.length; _b++) {
597
- s = structures_3[_b];
598
- components.push.apply(components, s.components);
599
- }
600
- if (components.length === 0) {
601
- console.warn('No components found');
602
- return [2 /*return*/];
603
- }
604
- queryConditions = {
605
- 'chain-test': builder_1.MolScriptBuilder.core.rel.eq([builder_1.MolScriptBuilder.ammp('auth_asym_id'), chainId])
606
- };
607
- if (resName) {
608
- queryConditions['residue-test'] = builder_1.MolScriptBuilder.core.rel.eq([builder_1.MolScriptBuilder.ammp('auth_comp_id'), resName.toUpperCase()]);
609
- }
610
- else if (resId !== undefined) {
611
- queryConditions['residue-test'] = builder_1.MolScriptBuilder.core.rel.eq([builder_1.MolScriptBuilder.ammp('auth_seq_id'), resId]);
612
- }
613
- // 使用透明度为1(完全透明)来隐藏
614
- return [4 /*yield*/, (0, structure_transparency_1.setStructureTransparency)(this.plugin, components, 1, function (structure) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
615
- var data, ligandQuery;
616
- var _this = this;
617
- return tslib_1.__generator(this, function (_b) {
618
- data = structure;
619
- ligandQuery = (0, structure_selection_query_1.StructureSelectionQuery)("Ligand_".concat(chainId, "_").concat(resId || resName || 'all'), builder_1.MolScriptBuilder.struct.generator.atomGroups(queryConditions), {
620
- description: "Ligand at ".concat(chainId, ":").concat(resId || resName || 'all'),
621
- category: structure_selection_query_1.StructureSelectionCategory.Manipulate
622
- });
623
- return [2 /*return*/, this.plugin.runTask(mol_task_1.Task.create('Select Ligand', function (runtime) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
624
- var selection;
625
- return tslib_1.__generator(this, function (_b) {
626
- switch (_b.label) {
627
- case 0: return [4 /*yield*/, ligandQuery.getSelection(this.plugin, runtime, data)];
628
- case 1:
629
- selection = _b.sent();
630
- return [2 /*return*/, structure_1.StructureSelection.toLociWithSourceUnits(selection)];
631
- }
632
- });
633
- }); }))];
634
- });
635
- }); })];
696
+ identifier = resId !== undefined ? resId.toString() : (resName || 'all');
697
+ ligandKey = "".concat(chainId, ":").concat(identifier);
698
+ // 添加到隐藏状态
699
+ this.hiddenState.ligands.add(ligandKey);
700
+ // 重新应用所有隐藏状态
701
+ return [4 /*yield*/, this.visual._applyHiddenState()];
636
702
  case 1:
637
- // 使用透明度为1(完全透明)来隐藏
638
- _c.sent();
639
- console.log("\u2705 Ligand ".concat(chainId, ":").concat(resId || resName || 'all', " hidden"));
703
+ // 重新应用所有隐藏状态
704
+ _b.sent();
705
+ console.log("\u2705 Ligand ".concat(ligandKey, " hidden"));
640
706
  return [2 /*return*/];
641
707
  }
642
708
  });
@@ -648,26 +714,20 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
648
714
  * @param resName 残基名称(可选)
649
715
  */
650
716
  showLigand: function (chainId, resId, resName) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
651
- var structures, components, _b, structures_4, s;
652
- return tslib_1.__generator(this, function (_c) {
653
- switch (_c.label) {
717
+ var identifier, ligandKey;
718
+ return tslib_1.__generator(this, function (_b) {
719
+ switch (_b.label) {
654
720
  case 0:
655
- structures = this.plugin.managers.structure.hierarchy.current.structures;
656
- components = [];
657
- for (_b = 0, structures_4 = structures; _b < structures_4.length; _b++) {
658
- s = structures_4[_b];
659
- components.push.apply(components, s.components);
660
- }
661
- if (components.length === 0) {
662
- console.warn('No components found');
663
- return [2 /*return*/];
664
- }
665
- // 清除透明度来恢复显示
666
- return [4 /*yield*/, (0, structure_transparency_1.clearStructureTransparency)(this.plugin, components)];
721
+ identifier = resId !== undefined ? resId.toString() : (resName || 'all');
722
+ ligandKey = "".concat(chainId, ":").concat(identifier);
723
+ // 从隐藏状态中移除
724
+ this.hiddenState.ligands.delete(ligandKey);
725
+ // 重新应用所有隐藏状态
726
+ return [4 /*yield*/, this.visual._applyHiddenState()];
667
727
  case 1:
668
- // 清除透明度来恢复显示
669
- _c.sent();
670
- console.log("\u2705 Ligand ".concat(chainId, ":").concat(resId || resName || 'all', " shown"));
728
+ // 重新应用所有隐藏状态
729
+ _b.sent();
730
+ console.log("\u2705 Ligand ".concat(ligandKey, " shown"));
671
731
  return [2 /*return*/];
672
732
  }
673
733
  });
@@ -772,14 +832,17 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
772
832
  * 清除所有透明度,恢复所有被隐藏的元素
773
833
  */
774
834
  clearAllTransparency: function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
775
- var structures, components, _b, structures_5, s;
835
+ var structures, components, _b, structures_2, s;
776
836
  return tslib_1.__generator(this, function (_c) {
777
837
  switch (_c.label) {
778
838
  case 0:
839
+ // 清空隐藏状态
840
+ this.hiddenState.chains.clear();
841
+ this.hiddenState.ligands.clear();
779
842
  structures = this.plugin.managers.structure.hierarchy.current.structures;
780
843
  components = [];
781
- for (_b = 0, structures_5 = structures; _b < structures_5.length; _b++) {
782
- s = structures_5[_b];
844
+ for (_b = 0, structures_2 = structures; _b < structures_2.length; _b++) {
845
+ s = structures_2[_b];
783
846
  components.push.apply(components, s.components);
784
847
  }
785
848
  if (!(components.length > 0)) return [3 /*break*/, 2];
@@ -792,7 +855,16 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
792
855
  return [2 /*return*/];
793
856
  }
794
857
  });
795
- }); }
858
+ }); },
859
+ /**
860
+ * 获取当前隐藏状态
861
+ */
862
+ getHiddenState: function () {
863
+ return {
864
+ chains: Array.from(_this.hiddenState.chains),
865
+ ligands: Array.from(_this.hiddenState.ligands)
866
+ };
867
+ }
796
868
  };
797
869
  this.ArbitrarySphereVisuals = {
798
870
  'arbitrary-sphere': function (ctx, getParams) { return (0, representation_2.UnitsRepresentation)('Arbitrary sphere mesh', ctx, getParams, _this.ArbitrarySphereVisual); }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drugflow-molstar",
3
- "version": "0.3.73",
3
+ "version": "0.3.74",
4
4
  "description": "Molstar implementation for DrugFlow",
5
5
  "main": "index.js",
6
6
  "scripts": {