drugflow-molstar 0.3.53 → 0.3.54

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.54.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
@@ -986,15 +986,17 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
986
986
  // ============================================
987
987
  // Structure Component Creators - 创建结构组件
988
988
  // ============================================
989
+ // 注意:这些方法已弃用,请使用 createComponent() 方法
990
+ // 保留这些方法仅用于向后兼容
989
991
  /**
990
- * 添加聚合物组件
992
+ * @deprecated 请使用 createComponent({ type: 'polymer' })
991
993
  */
992
994
  DrugflowMolstarPlugin.prototype.addPolymerComponent = function (builder, ref) {
993
995
  if (ref === void 0) { ref = 'Polymer'; }
994
996
  builder.apply(transforms_1.StateTransforms.Model.StructureComponent, { type: { name: 'static', params: 'polymer' } }, { ref: ref });
995
997
  };
996
998
  /**
997
- * 添加配体组件
999
+ * @deprecated 请使用 createComponent({ type: 'ligand' })
998
1000
  */
999
1001
  DrugflowMolstarPlugin.prototype.addLigandComponent = function (builder, ref) {
1000
1002
  if (ref === void 0) { ref = 'Ligand'; }
@@ -1002,7 +1004,7 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
1002
1004
  builder.apply(transforms_1.StateTransforms.Model.StructureComponent, { type: { name: 'expression', params: ligandQuery.expression } }, { ref: ref });
1003
1005
  };
1004
1006
  /**
1005
- * 添加水分子组件
1007
+ * @deprecated 请使用 createComponent({ type: 'water' })
1006
1008
  */
1007
1009
  DrugflowMolstarPlugin.prototype.addWaterComponent = function (builder, ref) {
1008
1010
  if (ref === void 0) { ref = 'Water'; }
@@ -1049,6 +1051,7 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
1049
1051
  };
1050
1052
  /**
1051
1053
  * 渲染完整蛋白(polymer + ligand + water)
1054
+ * @deprecated 建议使用 buildFullProteinStructureAsync
1052
1055
  */
1053
1056
  DrugflowMolstarPlugin.prototype.buildFullProteinStructure = function (builder, options) {
1054
1057
  if (options === void 0) { options = {}; }
@@ -1061,8 +1064,64 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
1061
1064
  this.addWaterComponent(builder);
1062
1065
  return builder;
1063
1066
  };
1067
+ /**
1068
+ * 异步构建完整蛋白结构(推荐使用)
1069
+ * 使用 createComponent API,结构更清晰
1070
+ */
1071
+ DrugflowMolstarPlugin.prototype.buildFullProteinStructureAsync = function (structureId, options) {
1072
+ if (structureId === void 0) { structureId = '0'; }
1073
+ if (options === void 0) { options = {}; }
1074
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
1075
+ var _b, polymer, _c, ligand, _d, water, componentRefs, ref, ref, ref;
1076
+ return tslib_1.__generator(this, function (_e) {
1077
+ switch (_e.label) {
1078
+ case 0:
1079
+ _b = options.polymer, polymer = _b === void 0 ? true : _b, _c = options.ligand, ligand = _c === void 0 ? true : _c, _d = options.water, water = _d === void 0 ? true : _d;
1080
+ componentRefs = [];
1081
+ if (!polymer) return [3 /*break*/, 2];
1082
+ return [4 /*yield*/, this.createComponent({
1083
+ type: 'polymer',
1084
+ structureId: structureId,
1085
+ componentRef: 'Polymer'
1086
+ })];
1087
+ case 1:
1088
+ ref = _e.sent();
1089
+ if (ref)
1090
+ componentRefs.push(ref);
1091
+ _e.label = 2;
1092
+ case 2:
1093
+ if (!ligand) return [3 /*break*/, 4];
1094
+ return [4 /*yield*/, this.createComponent({
1095
+ type: 'ligand',
1096
+ structureId: structureId,
1097
+ componentRef: 'Ligand'
1098
+ })];
1099
+ case 3:
1100
+ ref = _e.sent();
1101
+ if (ref)
1102
+ componentRefs.push(ref);
1103
+ _e.label = 4;
1104
+ case 4:
1105
+ if (!water) return [3 /*break*/, 6];
1106
+ return [4 /*yield*/, this.createComponent({
1107
+ type: 'water',
1108
+ structureId: structureId,
1109
+ componentRef: 'Water'
1110
+ })];
1111
+ case 5:
1112
+ ref = _e.sent();
1113
+ if (ref)
1114
+ componentRefs.push(ref);
1115
+ _e.label = 6;
1116
+ case 6: return [2 /*return*/, componentRefs];
1117
+ }
1118
+ });
1119
+ });
1120
+ };
1064
1121
  /**
1065
1122
  * 渲染配体口袋(ligand + surrounding)
1123
+ * @deprecated 旧的同步builder方式,建议使用 createComponent() 结合自定义查询
1124
+ * @private
1066
1125
  */
1067
1126
  DrugflowMolstarPlugin.prototype.buildLigandPocketStructure = function (builder, ligandId, options) {
1068
1127
  if (options === void 0) { options = {}; }
@@ -1072,6 +1131,8 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
1072
1131
  };
1073
1132
  /**
1074
1133
  * 渲染多肽背景(non-peptide polymer + peptide + ligand + water)
1134
+ * @deprecated 旧的同步builder方式,建议使用 createComponent()
1135
+ * @private
1075
1136
  */
1076
1137
  DrugflowMolstarPlugin.prototype.buildPeptideBackgroundStructure = function (builder, options) {
1077
1138
  if (options === void 0) { options = {}; }
@@ -1087,6 +1148,8 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
1087
1148
  };
1088
1149
  /**
1089
1150
  * 渲染多肽链
1151
+ * @deprecated 旧的同步builder方式,建议使用 createComponent()
1152
+ * @private
1090
1153
  */
1091
1154
  DrugflowMolstarPlugin.prototype.buildPeptideStructure = function (builder, ligandId) {
1092
1155
  this.addPeptideComponent(builder, 'Polymer_p' + ligandId);
@@ -1094,6 +1157,8 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
1094
1157
  };
1095
1158
  /**
1096
1159
  * 渲染小分子(用于SDF格式)
1160
+ * @deprecated 旧的同步builder方式,建议使用 createComponent()
1161
+ * @private
1097
1162
  */
1098
1163
  DrugflowMolstarPlugin.prototype.buildSmallMoleculeStructure = function (builder, ligandId) {
1099
1164
  this.addSmallMoleculeComponent(builder, 'SmallMolecule_' + ligandId);
@@ -1101,6 +1166,13 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
1101
1166
  };
1102
1167
  /**
1103
1168
  * 统一的结构创建接口
1169
+ *
1170
+ * @deprecated 该方法使用旧的同步builder方式。
1171
+ * 新代码应使用:
1172
+ * - `createComponent()` - 创建单个组件
1173
+ * - `buildFullProteinStructureAsync()` - 异步构建完整结构
1174
+ *
1175
+ * @private 仅供内部使用(load_tree 方法)
1104
1176
  */
1105
1177
  DrugflowMolstarPlugin.prototype.create_structure_and_component = function (model, type, ligand_id, add_polymer, add_ligand, add_water, no_structure, ligand_name, ligand_site) {
1106
1178
  if (add_polymer === void 0) { add_polymer = true; }
@@ -1217,6 +1289,30 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
1217
1289
  };
1218
1290
  /**
1219
1291
  * 主加载方法 - 加载并渲染结构
1292
+ *
1293
+ * @deprecated 推荐使用以下新API替代:
1294
+ * - `loadFullProtein()` - 加载完整蛋白
1295
+ * - `loadLigandPocket()` - 加载配体口袋
1296
+ * - `loadPeptide()` - 加载多肽链
1297
+ *
1298
+ * 新API提供更清晰的流程和更好的控制:
1299
+ * @example
1300
+ * ```javascript
1301
+ * // 旧方式
1302
+ * await viewer.load_tree({
1303
+ * url,
1304
+ * format: 'pdb',
1305
+ * render_type: 'default'
1306
+ * });
1307
+ *
1308
+ * // 新方式(推荐)
1309
+ * const components = await viewer.loadFullProtein(url, 'pdb', {
1310
+ * showPolymer: true,
1311
+ * showLigand: true,
1312
+ * showWater: false
1313
+ * });
1314
+ * // 返回组件引用:['Polymer', 'Ligand']
1315
+ * ```
1220
1316
  */
1221
1317
  DrugflowMolstarPlugin.prototype.load_tree = function (_b, fullLoad) {
1222
1318
  var url = _b.url, _c = _b.format, format = _c === void 0 ? 'mmcif' : _c, _d = _b.isBinary, isBinary = _d === void 0 ? false : _d, _e = _b.assemblyId, assemblyId = _e === void 0 ? '' : _e, _f = _b.pdb_string, pdb_string = _f === void 0 ? '' : _f, _g = _b.if_render, if_render = _g === void 0 ? true : _g, _h = _b.render_type, render_type = _h === void 0 ? 'default' : _h, _k = _b.render_id, render_id = _k === void 0 ? '0' : _k, _l = _b.ligand_name, ligand_name = _l === void 0 ? '' : _l, _m = _b.modelIndex, modelIndex = _m === void 0 ? 0 : _m, _o = _b.ligand_site, ligand_site = _o === void 0 ? '' : _o;
@@ -1406,6 +1502,64 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
1406
1502
  });
1407
1503
  });
1408
1504
  };
1505
+ /**
1506
+ * 创建新组件
1507
+ * @param options - 组件配置选项
1508
+ * @returns 组件引用
1509
+ */
1510
+ DrugflowMolstarPlugin.prototype.createComponent = function (options) {
1511
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
1512
+ var type, componentRef, _b, structureId, expression, label, finalComponentRef, state, structureRef, structureCell, update, ligandQuery;
1513
+ return tslib_1.__generator(this, function (_c) {
1514
+ switch (_c.label) {
1515
+ case 0:
1516
+ type = options.type, componentRef = options.componentRef, _b = options.structureId, structureId = _b === void 0 ? '0' : _b, expression = options.expression, label = options.label;
1517
+ finalComponentRef = componentRef || "".concat(type, "_").concat(Date.now());
1518
+ state = this.plugin.state.data;
1519
+ structureRef = "Structure_".concat(structureId);
1520
+ structureCell = state.select(structureRef)[0];
1521
+ if (!structureCell) {
1522
+ console.warn("Structure ".concat(structureRef, " not found"));
1523
+ return [2 /*return*/, null];
1524
+ }
1525
+ update = state.build().to(structureRef);
1526
+ // 根据类型创建组件
1527
+ switch (type) {
1528
+ case 'polymer':
1529
+ update.apply(transforms_1.StateTransforms.Model.StructureComponent, { type: { name: 'static', params: 'polymer' } }, { ref: finalComponentRef });
1530
+ break;
1531
+ case 'ligand':
1532
+ ligandQuery = this.createLigandQuery(label || 'Ligand');
1533
+ update.apply(transforms_1.StateTransforms.Model.StructureComponent, { type: { name: 'expression', params: ligandQuery.expression } }, { ref: finalComponentRef });
1534
+ break;
1535
+ case 'water':
1536
+ update.apply(transforms_1.StateTransforms.Model.StructureComponent, { type: { name: 'static', params: 'water' } }, { ref: finalComponentRef });
1537
+ break;
1538
+ case 'ion':
1539
+ update.apply(transforms_1.StateTransforms.Model.StructureComponent, { type: { name: 'static', params: 'ion' } }, { ref: finalComponentRef });
1540
+ break;
1541
+ case 'all':
1542
+ update.apply(transforms_1.StateTransforms.Model.StructureComponent, { type: { name: 'static', params: 'all' } }, { ref: finalComponentRef });
1543
+ break;
1544
+ case 'custom':
1545
+ if (!expression) {
1546
+ console.error('Custom type requires expression parameter');
1547
+ return [2 /*return*/, null];
1548
+ }
1549
+ update.apply(transforms_1.StateTransforms.Model.StructureComponent, { type: { name: 'expression', params: expression } }, { ref: finalComponentRef });
1550
+ break;
1551
+ default:
1552
+ console.error("Unknown component type: ".concat(type));
1553
+ return [2 /*return*/, null];
1554
+ }
1555
+ return [4 /*yield*/, commands_1.PluginCommands.State.Update(this.plugin, { state: state, tree: update })];
1556
+ case 1:
1557
+ _c.sent();
1558
+ return [2 /*return*/, finalComponentRef];
1559
+ }
1560
+ });
1561
+ });
1562
+ };
1409
1563
  /**
1410
1564
  * 修改表示的显示类型
1411
1565
  * @param reprRef - 表示引用
@@ -1474,35 +1628,73 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
1474
1628
  * @param format - 文件格式 (mmcif, pdb, sdf等)
1475
1629
  * @param options - 可选参数
1476
1630
  */
1631
+ /**
1632
+ * 加载完整蛋白结构
1633
+ * 流程:Load Data → Parse Model → Add Structure → Create Components
1634
+ *
1635
+ * @param url - 蛋白文件URL
1636
+ * @param format - 文件格式
1637
+ * @param options - 加载选项
1638
+ * @returns 创建的组件引用列表
1639
+ */
1477
1640
  DrugflowMolstarPlugin.prototype.loadFullProtein = function (url, format, options) {
1478
1641
  if (format === void 0) { format = 'mmcif'; }
1479
1642
  return tslib_1.__awaiter(this, void 0, void 0, function () {
1480
- var _b, _c, isBinary, _d, modelIndex, _e, showPolymer, _f, showLigand, _g, showWater, _h, pdbString;
1643
+ var _b, _c, isBinary, _d, modelIndex, _e, showPolymer, _f, showLigand, _g, showWater, _h, pdbString, structureId, state, data, model, structureBuilder, componentRefs, error_1;
1481
1644
  return tslib_1.__generator(this, function (_k) {
1482
1645
  switch (_k.label) {
1483
1646
  case 0:
1484
1647
  _b = options || {}, _c = _b.isBinary, isBinary = _c === void 0 ? false : _c, _d = _b.modelIndex, modelIndex = _d === void 0 ? 0 : _d, _e = _b.showPolymer, showPolymer = _e === void 0 ? true : _e, _f = _b.showLigand, showLigand = _f === void 0 ? true : _f, _g = _b.showWater, showWater = _g === void 0 ? true : _g, _h = _b.pdbString, pdbString = _h === void 0 ? '' : _h;
1485
- return [4 /*yield*/, this.load_tree({
1648
+ structureId = '0';
1649
+ _k.label = 1;
1650
+ case 1:
1651
+ _k.trys.push([1, 7, , 8]);
1652
+ state = this.plugin.state.data;
1653
+ return [4 /*yield*/, commands_1.PluginCommands.State.RemoveObject(this.plugin, {
1654
+ state: state,
1655
+ ref: state.tree.root.ref
1656
+ })];
1657
+ case 2:
1658
+ _k.sent();
1659
+ // 🔹 Step 2: 加载数据
1660
+ console.log('📥 Loading data...');
1661
+ return [4 /*yield*/, this.loadData({
1486
1662
  url: url,
1487
- format: format,
1488
- isBinary: isBinary,
1489
- pdb_string: pdbString,
1490
- render_type: 'default',
1491
- render_id: '0',
1492
- modelIndex: modelIndex
1663
+ pdbString: pdbString,
1664
+ isBinary: isBinary
1493
1665
  })];
1494
- case 1:
1666
+ case 3:
1667
+ data = _k.sent();
1668
+ // 🔹 Step 3: 解析并创建模型
1669
+ console.log('🧬 Parsing model...');
1670
+ return [4 /*yield*/, this.parseAndCreateModel(data, format, modelIndex)];
1671
+ case 4:
1672
+ model = _k.sent();
1673
+ // 🔹 Step 4: 创建结构
1674
+ console.log('🏗️ Creating structure...');
1675
+ structureBuilder = this.createBaseStructure(model, structureId);
1676
+ return [4 /*yield*/, this.applyState(structureBuilder)];
1677
+ case 5:
1495
1678
  _k.sent();
1496
- if (!(!showPolymer || !showLigand || !showWater)) return [3 /*break*/, 3];
1497
- return [4 /*yield*/, this.recreate_s_c({
1679
+ // 🔹 Step 5: 创建组件
1680
+ console.log('📦 Creating components...');
1681
+ return [4 /*yield*/, this.buildFullProteinStructureAsync(structureId, {
1498
1682
  polymer: showPolymer,
1499
1683
  ligand: showLigand,
1500
1684
  water: showWater
1501
1685
  })];
1502
- case 2:
1503
- _k.sent();
1504
- _k.label = 3;
1505
- case 3: return [2 /*return*/];
1686
+ case 6:
1687
+ componentRefs = _k.sent();
1688
+ // 🔹 Step 6: 更新引用并触发事件
1689
+ this.updateAssemblyRef();
1690
+ this.events.loadComplete.next(true);
1691
+ console.log("\u2705 Loaded protein with ".concat(componentRefs.length, " components:"), componentRefs);
1692
+ return [2 /*return*/, componentRefs];
1693
+ case 7:
1694
+ error_1 = _k.sent();
1695
+ console.error('❌ Error loading protein:', error_1);
1696
+ throw error_1;
1697
+ case 8: return [2 /*return*/];
1506
1698
  }
1507
1699
  });
1508
1700
  });
@@ -1587,6 +1779,77 @@ var DrugflowMolstarPlugin = /** @class */ (function () {
1587
1779
  return void 0;
1588
1780
  return cell.obj.data;
1589
1781
  };
1782
+ /**
1783
+ * 为组件添加3D表示
1784
+ *
1785
+ * @example
1786
+ * ```javascript
1787
+ * // 添加cartoon表示
1788
+ * await viewer.add_repr({
1789
+ * componentRef: 'Polymer',
1790
+ * type: 'cartoon',
1791
+ * colorTheme: 'secondary-structure'
1792
+ * });
1793
+ *
1794
+ * // 添加半透明surface
1795
+ * await viewer.add_repr({
1796
+ * componentRef: 'Polymer',
1797
+ * type: 'molecular-surface',
1798
+ * colorTheme: 'hydrophobicity',
1799
+ * alpha: 0.5
1800
+ * });
1801
+ * ```
1802
+ *
1803
+ * @param options - 表示配置选项
1804
+ * @returns 表示引用
1805
+ */
1806
+ DrugflowMolstarPlugin.prototype.add_repr = function (options) {
1807
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
1808
+ var componentRef, reprRef, type, colorTheme, alpha, _b, visible, _c, structureId, _d, params, finalReprRef, structure, reprParams, tree;
1809
+ return tslib_1.__generator(this, function (_e) {
1810
+ switch (_e.label) {
1811
+ case 0:
1812
+ componentRef = options.componentRef, reprRef = options.reprRef, type = options.type, colorTheme = options.colorTheme, alpha = options.alpha, _b = options.visible, visible = _b === void 0 ? true : _b, _c = options.structureId, structureId = _c === void 0 ? '0' : _c, _d = options.params, params = _d === void 0 ? {} : _d;
1813
+ finalReprRef = reprRef || "".concat(componentRef, "_").concat(type, "_").concat(Date.now());
1814
+ structure = this.getObj('Structure_' + structureId);
1815
+ if (!structure) {
1816
+ console.warn("Structure_".concat(structureId, " not found"));
1817
+ return [2 /*return*/, null];
1818
+ }
1819
+ reprParams = tslib_1.__assign({ type: type }, params);
1820
+ // 设置颜色主题
1821
+ if (colorTheme) {
1822
+ reprParams.color = colorTheme; // 应该是 'color' 而不是 'colorTheme'
1823
+ }
1824
+ // 设置透明度(作为 type 的参数)
1825
+ if (alpha !== undefined) {
1826
+ reprParams.typeParams = reprParams.typeParams || {};
1827
+ reprParams.typeParams.alpha = alpha;
1828
+ }
1829
+ tree = this.visual_tree(structure, componentRef, finalReprRef, reprParams);
1830
+ if (!tree) {
1831
+ console.error('Failed to build visual tree');
1832
+ return [2 /*return*/, null];
1833
+ }
1834
+ return [4 /*yield*/, commands_1.PluginCommands.State.Update(this.plugin, {
1835
+ state: this.plugin.state.data,
1836
+ tree: tree
1837
+ })];
1838
+ case 1:
1839
+ _e.sent();
1840
+ // 控制可见性
1841
+ if (!visible) {
1842
+ this.set_visibility(finalReprRef);
1843
+ }
1844
+ return [2 /*return*/, finalReprRef];
1845
+ }
1846
+ });
1847
+ });
1848
+ };
1849
+ /**
1850
+ * @deprecated 使用 add_repr 替代
1851
+ * 旧的表示更新方法,保留用于向后兼容
1852
+ */
1590
1853
  DrugflowMolstarPlugin.prototype.update_comp_repr = function (comp_ref, repr_ref, if_show, params, ligand_id) {
1591
1854
  return tslib_1.__awaiter(this, void 0, void 0, function () {
1592
1855
  var structure, tree;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drugflow-molstar",
3
- "version": "0.3.53",
3
+ "version": "0.3.54",
4
4
  "description": "Molstar implementation for DrugFlow",
5
5
  "main": "index.js",
6
6
  "scripts": {