@datagrok/sequence-translator 1.1.5 → 1.2.1
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.
- package/CHANGELOG.md +6 -0
- package/dist/package-test.js +1 -1
- package/dist/package-test.js.map +1 -1
- package/dist/package.js +1 -1
- package/dist/package.js.map +1 -1
- package/img/icons/calculator.png +0 -0
- package/img/icons/pattern.png +0 -0
- package/img/icons/structure.png +0 -0
- package/img/icons/toolkit.png +0 -0
- package/img/icons/translator.png +0 -0
- package/package.json +1 -1
- package/src/demo/demo-st-ui.ts +26 -36
- package/src/model/helpers.ts +17 -0
- package/src/model/sequence-to-structure-utils/monomer-code-parser.ts +2 -5
- package/src/model/sequence-to-structure-utils/sdf-tab.ts +1 -1
- package/src/model/sequence-to-structure-utils/sequence-to-molfile.ts +20 -3
- package/src/package.ts +57 -37
- package/src/plugins/const.ts +4 -0
- package/src/plugins/mermade.ts +48 -0
- package/src/tests/formats-support.ts +1 -2
- package/src/tests/helm-to-nucleotides.ts +0 -2
- package/src/view/app-ui.ts +193 -0
- package/src/view/{tabs/axolabs.ts → apps/oligo-pattern.ts} +106 -26
- package/src/view/{tabs/sdf.ts → apps/oligo-structure.ts} +15 -16
- package/src/view/{tabs/main.ts → apps/oligo-translator.ts} +15 -11
- package/src/view/const/ui.ts +14 -0
- package/src/view/style/pattern-app.css +1 -0
- package/src/view/style/structure-app.css +39 -0
- package/src/view/style/translator-app.css +46 -0
- package/src/view/utils/colored-input/colored-text-input.ts +7 -6
- package/src/view/utils/molecule-img.ts +26 -10
- package/src/view/utils/router.ts +71 -0
- package/src/demo/handle-error.ts +0 -12
- package/src/view/const/view.ts +0 -10
- package/src/view/css/axolabs-tab.css +0 -1
- package/src/view/css/main-tab.css +0 -46
- package/src/view/css/sdf-tab.css +0 -39
- package/src/view/view.ts +0 -127
- /package/src/view/const/{main-tab.ts → oligo-translator.ts} +0 -0
- /package/src/view/{css → style}/colored-text-input.css +0 -0
package/CHANGELOG.md
CHANGED
package/dist/package-test.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var sequencetranslator_test;(()=>{"use strict";var t={61:(t,e,n)=>{n.d(e,{Bu:()=>d,QK:()=>s,W3:()=>f,bb:()=>g,ci:()=>A,l_:()=>p});var r=n(469),o=n(976),i=function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function s(t){try{l(r.next(t))}catch(t){i(t)}}function a(t){try{l(r.throw(t))}catch(t){i(t)}}function l(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,a)}l((r=r.apply(t,e||[])).next())}))};const s={};let a;var l;!function(t){t.notNull=function(t,e){if(null==t)throw new Error(`${null==e?"Value":e} not defined`)}}(l||(l={}));class c{constructor(t,e){this.catchUnhandled=!0,this.report=!1,void 0!==t&&(this.catchUnhandled=t),void 0!==e&&(this.report=e)}}class u{constructor(t,e,n,r){var o;this.category=t,this.name=e,null!=r||(r={}),null!==(o=r.timeout)&&void 0!==o||(r.timeout=3e4),this.options=r,this.test=()=>i(this,void 0,void 0,(function*(){return new Promise(((t,e)=>i(this,void 0,void 0,(function*(){let r="";try{r=yield n()}catch(t){e(t)}t(r)}))))}))}}function d(t,e,n){null==s[a]&&(s[a]={}),null==s[a].tests&&(s[a].tests=[]),s[a].tests.push(new u(a,t,e,n))}function p(t,e){if(t!==e)throw new Error(`Expected "${e}", got "${t}"`)}function f(t,e){a=t,e()}function g(t){null==s[a]&&(s[a]={}),s[a].before=t}function A(t){var e,n,a,l,u;return i(this,void 0,void 0,(function*(){const d=[],p=null===(n=null===(e=r.functions.getCurrentCall())||void 0===e?void 0:e.func)||void 0===n?void 0:n.package;console.log("Running tests"),null!=t||(t={}),null!==(a=(u=t).testContext)&&void 0!==a||(u.testContext=new c),r.shell.lastError="";for(const[e,n]of Object.entries(s)){if(null!=(null==t?void 0:t.category)&&!e.toLowerCase().startsWith(null==t?void 0:t.category.toLowerCase()))continue;console.log(`Started ${e} category`);try{n.before&&(yield n.before())}catch(t){n.beforeStatus=t.toString()}const r=null!==(l=n.tests)&&void 0!==l?l:[],o=[];for(let e=0;e<r.length;e++)o.push(yield h(r[e],null==t?void 0:t.test));const i=(yield Promise.all(o)).filter((t=>"skipped"!=t.result));try{n.after&&(yield n.after())}catch(t){n.afterStatus=t.toString()}n.afterStatus&&i.push({category:e,name:"init",result:n.afterStatus,success:!1,ms:0,skipped:!1}),n.beforeStatus&&i.push({category:e,name:"init",result:n.beforeStatus,success:!1,ms:0,skipped:!1}),d.push(...i)}if(t.testContext.catchUnhandled&&(yield function(t){return i(this,void 0,void 0,(function*(){yield new Promise((e=>setTimeout(e,t)))}))}(1e3),r.shell.lastError.length>0&&d.push({category:"Unhandled exceptions",name:"exceptions",result:r.shell.lastError,success:!1,ms:0,skipped:!1})),t.testContext.report){const t=new o.Logger,e=d.filter((t=>t.success)).length,n=d.filter((t=>t.skipped)).length,r=d.filter((t=>!t.success)),i="Package @package tested: @successful successful, @skipped skipped, @failed failed tests",s={successful:e,skipped:n,failed:r.length,package:p};for(const t of r)Object.assign(s,{[`${t.category} | ${t.name}`]:t.result});t.log(i,s,"package-tested")}return d}))}function h(t,e){var n,r,o;return i(this,void 0,void 0,(function*(){let i;const s=null!=e&&!t.name.toLowerCase().startsWith(e.toLowerCase()),a=(null===(n=t.options)||void 0===n?void 0:n.skipReason)||s,l=s?"skipped":null===(r=t.options)||void 0===r?void 0:r.skipReason;a||console.log(`Started ${t.category} ${t.name}`);const c=new Date;try{i=a?{success:!0,result:l,ms:0,skipped:!0}:{success:!0,result:null!==(o=yield t.test())&&void 0!==o?o:"OK",ms:0,skipped:!1}}catch(t){i={success:!1,result:t.toString(),ms:0,skipped:!1}}const u=new Date;return i.ms=u-c,a||console.log(`Finished ${t.category} ${t.name} for ${i.ms} ms`),i.category=t.category,i.name=t.name,i}))}},973:(t,e,n)=>{n.d(e,{Z:()=>a});var r=n(537),o=n.n(r),i=n(645),s=n.n(i)()(o());s.push([t.id,".colored-text-input > textarea {\n width: 100%;\n -webkit-text-fill-color: transparent;\n background-color: transparent;\n position: relative;\n z-index: 1;\n resize: none;\n height: 22px; /* Fine tuned value to avoid \"jumping\" of the textarea upon autoresize */\n}\n\n.colored-text-input > div {\n /* The values here are fine tuned to those of the ui.input textarea in order\n * to achieve precise overlap */\n overflow: auto;\n position: absolute;\n pointer-events: none;\n cursor: text;\n z-index: 0;\n max-width: 100%;\n padding: 2px;\n line-height: normal;\n font-family: 'Roboto Mono', 'Roboto Mono Local', monospace;\n font-size: 12px;\n color: transparent;\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n","",{version:3,sources:["webpack://./src/view/css/colored-text-input.css"],names:[],mappings:"AAAA;EACE,WAAW;EACX,oCAAoC;EACpC,6BAA6B;EAC7B,kBAAkB;EAClB,UAAU;EACV,YAAY;EACZ,YAAY,EAAE,wEAAwE;AACxF;;AAEA;EACE;iCAC+B;EAC/B,cAAc;EACd,kBAAkB;EAClB,oBAAoB;EACpB,YAAY;EACZ,UAAU;EACV,eAAe;EACf,YAAY;EACZ,mBAAmB;EACnB,0DAA0D;EAC1D,eAAe;EACf,kBAAkB;EAClB,qBAAqB;EACrB,qBAAqB;AACvB",sourcesContent:[".colored-text-input > textarea {\n width: 100%;\n -webkit-text-fill-color: transparent;\n background-color: transparent;\n position: relative;\n z-index: 1;\n resize: none;\n height: 22px; /* Fine tuned value to avoid \"jumping\" of the textarea upon autoresize */\n}\n\n.colored-text-input > div {\n /* The values here are fine tuned to those of the ui.input textarea in order\n * to achieve precise overlap */\n overflow: auto;\n position: absolute;\n pointer-events: none;\n cursor: text;\n z-index: 0;\n max-width: 100%;\n padding: 2px;\n line-height: normal;\n font-family: 'Roboto Mono', 'Roboto Mono Local', monospace;\n font-size: 12px;\n color: transparent;\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n"],sourceRoot:""}]);const a=s},284:(t,e,n)=>{n.d(e,{Z:()=>a});var r=n(537),o=n.n(r),i=n(645),s=n.n(i)()(o());s.push([t.id,"/* Naming convention: class names should begin with st and tab name (main, axo, sdf) to avoid naming collitions */\n.st-main-input-table {\n width: 100%;\n}\n\n.st-main-input-table td:has(textarea) {\n width: 100%;\n padding-right: 20px;\n}\n\n.st-main-input-table td:has(select) {\n min-width: 120px;\n vertical-align: top;\n}\n\n.st-main-output-table {\n margin-top: 20px;\n margin-right: 20px;\n margin-bottom: 10px;\n}\n\n.st-main-output-table table {\n width: 100%;\n table-layout: fixed;\n}\n\n/* .st-main-output-table table tbody tr td { */\n/* max-width: 20%; */\n/* } */\n\n.st-main-output-table td {\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.st-main-output-table tr:nth-child(even) {\n background-color: var(--grey-1);\n}\n\n.st-main-output-table td:nth-child(odd) {\n width: 120px;\n vertical-align: top;\n}\n\n.st-main-output-table td a {\n overflow-wrap: break-word;\n}\n","",{version:3,sources:["webpack://./src/view/css/main-tab.css"],names:[],mappings:"AAAA,iHAAiH;AACjH;EACE,WAAW;AACb;;AAEA;EACE,WAAW;EACX,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;EAChB,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,mBAAmB;AACrB;;AAEA;EACE,WAAW;EACX,mBAAmB;AACrB;;AAEA,8CAA8C;AAC9C,sBAAsB;AACtB,MAAM;;AAEN;EACE,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,+BAA+B;AACjC;;AAEA;EACE,YAAY;EACZ,mBAAmB;AACrB;;AAEA;EACE,yBAAyB;AAC3B",sourcesContent:["/* Naming convention: class names should begin with st and tab name (main, axo, sdf) to avoid naming collitions */\n.st-main-input-table {\n width: 100%;\n}\n\n.st-main-input-table td:has(textarea) {\n width: 100%;\n padding-right: 20px;\n}\n\n.st-main-input-table td:has(select) {\n min-width: 120px;\n vertical-align: top;\n}\n\n.st-main-output-table {\n margin-top: 20px;\n margin-right: 20px;\n margin-bottom: 10px;\n}\n\n.st-main-output-table table {\n width: 100%;\n table-layout: fixed;\n}\n\n/* .st-main-output-table table tbody tr td { */\n/* max-width: 20%; */\n/* } */\n\n.st-main-output-table td {\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.st-main-output-table tr:nth-child(even) {\n background-color: var(--grey-1);\n}\n\n.st-main-output-table td:nth-child(odd) {\n width: 120px;\n vertical-align: top;\n}\n\n.st-main-output-table td a {\n overflow-wrap: break-word;\n}\n"],sourceRoot:""}]);const a=s},865:(t,e,n)=>{n.d(e,{Z:()=>a});var r=n(537),o=n.n(r),i=n(645),s=n.n(i)()(o());s.push([t.id,"/* Naming convention: class names should begin with st and tab name (main, axo, sdf) to avoid naming collitions */\n\n.st-sdf-body {\n padding-right: 20px;\n}\n\n.st-sdf-input-form {\n text-align: right;\n vertical-align: top;\n min-width: 95px;\n}\n\n.st-sdf-direction-choice label {\n min-width: 100px;\n float: right;\n}\n\n.st-sdf-direction-choice div {\n justify-content: right;\n}\n\n.st-sdf-text-input-td { /* Style for td containing textarea */\n width: 100%;\n}\n\n.st-sdf-mol-img {\n margin-right: 30px;\n float: right;\n}\n\n.st-sdf-bool-button-block {\n justify-content: right;\n margin-bottom: 10px;\n}\n\n.st-sdf-bottom {\n flex-direction: row-reverse;\n padding-top: 20px;\n}\n","",{version:3,sources:["webpack://./src/view/css/sdf-tab.css"],names:[],mappings:"AAAA,iHAAiH;;AAEjH;EACE,mBAAmB;AACrB;;AAEA;EACE,iBAAiB;EACjB,mBAAmB;EACnB,eAAe;AACjB;;AAEA;EACE,gBAAgB;EAChB,YAAY;AACd;;AAEA;EACE,sBAAsB;AACxB;;AAEA,wBAAwB,qCAAqC;EAC3D,WAAW;AACb;;AAEA;EACE,kBAAkB;EAClB,YAAY;AACd;;AAEA;EACE,sBAAsB;EACtB,mBAAmB;AACrB;;AAEA;EACE,2BAA2B;EAC3B,iBAAiB;AACnB",sourcesContent:["/* Naming convention: class names should begin with st and tab name (main, axo, sdf) to avoid naming collitions */\n\n.st-sdf-body {\n padding-right: 20px;\n}\n\n.st-sdf-input-form {\n text-align: right;\n vertical-align: top;\n min-width: 95px;\n}\n\n.st-sdf-direction-choice label {\n min-width: 100px;\n float: right;\n}\n\n.st-sdf-direction-choice div {\n justify-content: right;\n}\n\n.st-sdf-text-input-td { /* Style for td containing textarea */\n width: 100%;\n}\n\n.st-sdf-mol-img {\n margin-right: 30px;\n float: right;\n}\n\n.st-sdf-bool-button-block {\n justify-content: right;\n margin-bottom: 10px;\n}\n\n.st-sdf-bottom {\n flex-direction: row-reverse;\n padding-top: 20px;\n}\n"],sourceRoot:""}]);const a=s},645:t=>{t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n="",r=void 0!==e[5];return e[4]&&(n+="@supports (".concat(e[4],") {")),e[2]&&(n+="@media ".concat(e[2]," {")),r&&(n+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),n+=t(e),r&&(n+="}"),e[2]&&(n+="}"),e[4]&&(n+="}"),n})).join("")},e.i=function(t,n,r,o,i){"string"==typeof t&&(t=[[null,t,void 0]]);var s={};if(r)for(var a=0;a<this.length;a++){var l=this[a][0];null!=l&&(s[l]=!0)}for(var c=0;c<t.length;c++){var u=[].concat(t[c]);r&&s[u[0]]||(void 0!==i&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=i),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),e.push(u))}},e}},537:t=>{t.exports=function(t){var e=t[1],n=t[3];if(!n)return e;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),i="/*# ".concat(o," */");return[e].concat([i]).join("\n")}return[e].join("\n")}},803:(t,e)=>{var n;!function(){var r=e||{}||this||window;void 0===(n=function(){return r}.apply(e,[]))||(t.exports=n),r.default=r;var o="http://www.w3.org/2000/xmlns/",i="http://www.w3.org/2000/svg",s=/url\(["']?(.+?)["']?\)/,a={woff2:"font/woff2",woff:"font/woff",otf:"application/x-font-opentype",ttf:"application/x-font-ttf",eot:"application/vnd.ms-fontobject",sfnt:"application/font-sfnt",svg:"image/svg+xml"},l=function(t){return t instanceof HTMLElement||t instanceof SVGElement},c=function(t){if(!l(t))throw new Error("an HTMLElement or SVGElement is required; got "+t)},u=function(t){return new Promise((function(e,n){l(t)?e(t):n(new Error("an HTMLElement or SVGElement is required; got "+t))}))},d=function(t,e,n){var r=t.viewBox&&t.viewBox.baseVal&&t.viewBox.baseVal[n]||null!==e.getAttribute(n)&&!e.getAttribute(n).match(/%$/)&&parseInt(e.getAttribute(n))||t.getBoundingClientRect()[n]||parseInt(e.style[n])||parseInt(window.getComputedStyle(t).getPropertyValue(n));return null==r||isNaN(parseFloat(r))?0:r},p=function(t){for(var e=window.atob(t.split(",")[1]),n=t.split(",")[0].split(":")[1].split(";")[0],r=new ArrayBuffer(e.length),o=new Uint8Array(r),i=0;i<e.length;i++)o[i]=e.charCodeAt(i);return new Blob([r],{type:n})},f={},g=null,A=function(t,e){var n=e||{},r=n.selectorRemap,o=n.modifyStyle,i=n.modifyCss,l=n.fonts,c=n.excludeUnusedCss,u=i||function(t,e){return(r?r(t):t)+"{"+(o?o(e):e)+"}\n"},d=[],p=void 0===l,A=l||[];return(g||(g=Array.from(document.styleSheets).map((function(t){try{return{rules:t.cssRules,href:t.href}}catch(e){return console.warn("Stylesheet could not be loaded: "+t.href,e),{}}})))).forEach((function(e){var n=e.rules,r=e.href;n&&Array.from(n).forEach((function(e){if(void 0!==e.style)if(function(t,e){if(e)try{return t.querySelector(e)||t.parentNode&&t.parentNode.querySelector(e)}catch(t){console.warn('Invalid CSS selector "'+e+'"',t)}}(t,e.selectorText))d.push(u(e.selectorText,e.style.cssText));else if(p&&e.cssText.match(/^@font-face/)){var n=function(t,e){var n=t.cssText.match(s),r=n&&n[1]||"";if(r&&!r.match(/^data:/)&&"about:blank"!==r){var o,i,l=r.startsWith("../")?e+"/../"+r:r.startsWith("./")?e+"/."+r:r;return{text:t.cssText,format:(o=l,i=Object.keys(a).filter((function(t){return o.indexOf("."+t)>0})).map((function(t){return a[t]})),i?i[0]:(console.error("Unknown font format for "+o+". Fonts may not be working correctly."),"application/octet-stream")),url:l}}}(e,r);n&&A.push(n)}else c||d.push(e.cssText)}))})),function(t){return Promise.all(t.map((function(t){return new Promise((function(e,n){if(f[t.url])return e(f[t.url]);var r=new XMLHttpRequest;r.addEventListener("load",(function(){var n=function(t){for(var e="",n=new Uint8Array(t),r=0;r<n.byteLength;r++)e+=String.fromCharCode(n[r]);return window.btoa(e)}(r.response),o=t.text.replace(s,'url("data:'+t.format+";base64,"+n+'")')+"\n";f[t.url]=o,e(o)})),r.addEventListener("error",(function(n){console.warn("Failed to load font from: "+t.url,n),f[t.url]=null,e(null)})),r.addEventListener("abort",(function(n){console.warn("Aborted loading font from: "+t.url,n),e(null)})),r.open("GET",t.url),r.responseType="arraybuffer",r.send()}))}))).then((function(t){return t.filter((function(t){return t})).join("")}))}(A).then((function(t){return d.join("\n")+t}))},h=function(){if(!navigator.msSaveOrOpenBlob&&!("download"in document.createElement("a")))return{popup:window.open()}};r.prepareSvg=function(t,e,n){c(t);var r=e||{},s=r.left,a=void 0===s?0:s,l=r.top,u=void 0===l?0:l,p=r.width,f=r.height,g=r.scale,h=void 0===g?1:g,m=r.responsive,C=void 0!==m&&m,b=r.excludeCss,v=void 0!==b&&b;return function(t){return Promise.all(Array.from(t.querySelectorAll("image")).map((function(t){var e,n=t.getAttributeNS("http://www.w3.org/1999/xlink","href")||t.getAttribute("href");return n?((e=n)&&0===e.lastIndexOf("http",0)&&-1===e.lastIndexOf(window.location.host)&&(n+=(-1===n.indexOf("?")?"?":"&")+"t="+(new Date).valueOf()),new Promise((function(e,r){var o=document.createElement("canvas"),i=new Image;i.crossOrigin="anonymous",i.src=n,i.onerror=function(){return r(new Error("Could not load "+n))},i.onload=function(){o.width=i.width,o.height=i.height,o.getContext("2d").drawImage(i,0,0),t.setAttributeNS("http://www.w3.org/1999/xlink","href",o.toDataURL("image/png")),e(!0)}}))):Promise.resolve(null)})))}(t).then((function(){var r=t.cloneNode(!0);r.style.backgroundColor=(e||{}).backgroundColor||t.style.backgroundColor;var s=function(t,e,n,r){if("svg"===t.tagName)return{width:n||d(t,e,"width"),height:r||d(t,e,"height")};if(t.getBBox){var o=t.getBBox(),i=o.x,s=o.y;return{width:i+o.width,height:s+o.height}}}(t,r,p,f),l=s.width,c=s.height;if("svg"!==t.tagName){if(!t.getBBox)return void console.error("Attempted to render non-SVG element",t);null!=r.getAttribute("transform")&&r.setAttribute("transform",r.getAttribute("transform").replace(/translate\(.*?\)/,""));var g=document.createElementNS("http://www.w3.org/2000/svg","svg");g.appendChild(r),r=g}if(r.setAttribute("version","1.1"),r.setAttribute("viewBox",[a,u,l,c].join(" ")),r.getAttribute("xmlns")||r.setAttributeNS(o,"xmlns",i),r.getAttribute("xmlns:xlink")||r.setAttributeNS(o,"xmlns:xlink","http://www.w3.org/1999/xlink"),C?(r.removeAttribute("width"),r.removeAttribute("height"),r.setAttribute("preserveAspectRatio","xMinYMin meet")):(r.setAttribute("width",l*h),r.setAttribute("height",c*h)),Array.from(r.querySelectorAll("foreignObject > *")).forEach((function(t){t.setAttributeNS(o,"xmlns","svg"===t.tagName?i:"http://www.w3.org/1999/xhtml")})),!v)return A(t,e).then((function(t){var e=document.createElement("style");e.setAttribute("type","text/css"),e.innerHTML="<![CDATA[\n"+t+"\n]]>";var o=document.createElement("defs");o.appendChild(e),r.insertBefore(o,r.firstChild);var i=document.createElement("div");i.appendChild(r);var s=i.innerHTML.replace(/NS\d+:href/gi,'xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href');if("function"!=typeof n)return{src:s,width:l,height:c};n(s,l,c)}));var m=document.createElement("div");m.appendChild(r);var b=m.innerHTML;if("function"!=typeof n)return{src:b,width:l,height:c};n(b,l,c)}))},r.svgAsDataUri=function(t,e,n){return c(t),r.prepareSvg(t,e).then((function(t){var e=t.src,r=t.width,o=t.height,i="data:image/svg+xml;base64,"+window.btoa(decodeURIComponent(encodeURIComponent('<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [<!ENTITY nbsp " ">]>'+e).replace(/%([0-9A-F]{2})/g,(function(t,e){var n=String.fromCharCode("0x"+e);return"%"===n?"%25":n}))));return"function"==typeof n&&n(i,r,o),i}))},r.svgAsPngUri=function(t,e,n){c(t);var o=e||{},i=o.encoderType,s=void 0===i?"image/png":i,a=o.encoderOptions,l=void 0===a?.8:a,u=o.canvg,d=function(t){var e=t.src,r=t.width,o=t.height,i=document.createElement("canvas"),a=i.getContext("2d"),c=window.devicePixelRatio||1;i.width=r*c,i.height=o*c,i.style.width=i.width+"px",i.style.height=i.height+"px",a.setTransform(c,0,0,c,0,0),u?u(i,e):a.drawImage(e,0,0);var d=void 0;try{d=i.toDataURL(s,l)}catch(t){if("undefined"!=typeof SecurityError&&t instanceof SecurityError||"SecurityError"===t.name)return void console.error("Rendered SVG images cannot be downloaded in this browser.");throw t}return"function"==typeof n&&n(d,i.width,i.height),Promise.resolve(d)};return u?r.prepareSvg(t,e).then(d):r.svgAsDataUri(t,e).then((function(t){return new Promise((function(e,n){var r=new Image;r.onload=function(){return e(d({src:r,width:r.width,height:r.height}))},r.onerror=function(){n("There was an error loading the data URI as an image on the following SVG\n"+window.atob(t.slice(26))+"Open the following link to see browser's diagnosis\n"+t)},r.src=t}))}))},r.download=function(t,e,n){if(navigator.msSaveOrOpenBlob)navigator.msSaveOrOpenBlob(p(e),t);else{var r=document.createElement("a");if("download"in r){r.download=t,r.style.display="none",document.body.appendChild(r);try{var o=p(e),i=URL.createObjectURL(o);r.href=i,r.onclick=function(){return requestAnimationFrame((function(){return URL.revokeObjectURL(i)}))}}catch(t){console.error(t),console.warn("Error while getting object URL. Falling back to string URL."),r.href=e}r.click(),document.body.removeChild(r)}else n&&n.popup&&(n.popup.document.title=t,n.popup.location.replace(e))}},r.saveSvg=function(t,e,n){var o=h();return u(t).then((function(t){return r.svgAsDataUri(t,n||{})})).then((function(t){return r.download(e,t,o)}))},r.saveSvgAsPng=function(t,e,n){var o=h();return u(t).then((function(t){return r.svgAsPngUri(t,n||{})})).then((function(t){return r.download(e,t,o)}))}}()},379:t=>{var e=[];function n(t){for(var n=-1,r=0;r<e.length;r++)if(e[r].identifier===t){n=r;break}return n}function r(t,r){for(var i={},s=[],a=0;a<t.length;a++){var l=t[a],c=r.base?l[0]+r.base:l[0],u=i[c]||0,d="".concat(c," ").concat(u);i[c]=u+1;var p=n(d),f={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==p)e[p].references++,e[p].updater(f);else{var g=o(f,r);r.byIndex=a,e.splice(a,0,{identifier:d,updater:g,references:1})}s.push(d)}return s}function o(t,e){var n=e.domAPI(e);return n.update(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap&&e.supports===t.supports&&e.layer===t.layer)return;n.update(t=e)}else n.remove()}}t.exports=function(t,o){var i=r(t=t||[],o=o||{});return function(t){t=t||[];for(var s=0;s<i.length;s++){var a=n(i[s]);e[a].references--}for(var l=r(t,o),c=0;c<i.length;c++){var u=n(i[c]);0===e[u].references&&(e[u].updater(),e.splice(u,1))}i=l}}},569:t=>{var e={};t.exports=function(t,n){var r=function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}(t);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},216:t=>{t.exports=function(t){var e=document.createElement("style");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},565:(t,e,n)=>{t.exports=function(t){var e=n.nc;e&&t.setAttribute("nonce",e)}},795:t=>{t.exports=function(t){var e=t.insertStyleElement(t);return{update:function(n){!function(t,e,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var o=void 0!==n.layer;o&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,o&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var i=n.sourceMap;i&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),e.styleTagTransform(r,t,e.options)}(e,t,n)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(e)}}}},589:t=>{t.exports=function(t,e){if(e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}},29:(t,e,n)=>{n.d(e,{NI:()=>o,mc:()=>r});const r=["A","G","C","U","T"];var o;!function(t){t.HELM="HELM",t.AXOLABS="Axolabs"}(o||(o={}))},895:(t,e,n)=>{n.d(e,{BX:()=>r,Dv:()=>a,VV:()=>l,Xz:()=>c,a_:()=>o,dz:()=>s,pl:()=>i});const r="System:AppData/SequenceTranslator",o="monomer-lib.json",i="System:AppData/SequenceTranslator",s="axolabs-style.json",a="formats-to-helm.json",l="codes-to-symbols.json",c="linkers.json"},996:(t,e,n)=>{n.d(e,{BF:()=>l,Rv:()=>a,VO:()=>u});var r=n(976),o=n(895);const i=new r.FileSource(o.pl);let s,a,l,c;async function u(){[s,a,l,c].every((t=>void 0!==t))||(s=await d(o.dz),a=await d(o.Dv),l=await d(o.VV),c=await d(o.Xz))}async function d(t){let e;try{e=JSON.parse(await i.readAsText(t))}catch(e){const n=e.hasOwnProperty("message")?e.message:e.toString();throw new Error(`Error loading json from ${t}:`+n)}return e}},800:(t,e,n)=>{n.d(e,{$3:()=>o,DD:()=>r,s8:()=>i});const r={NUCLEOSIDE:"nucleoside",LINKAGE:"phosphateBackbone"},o="p",i="<?>"},112:(t,e,n)=>{n.d(e,{C:()=>c,D:()=>l});var r=n(29),o=n(800),i=n(893),s=n(996),a=n(559);function l(t,e,n){const o=Object.keys(s.Rv).concat([r.NI.HELM]);if(!t||-1!==e&&n!==r.NI.HELM)return{};if(!o.includes(n))throw new Error(`${n} format is not supported by SequenceTranslator`);const l=o.filter((t=>t!=n)).sort(((t,e)=>t.localeCompare(e))),u=new i.I(t,n),d=Object.fromEntries(l.map((t=>{let e;try{e=u.convertTo(t)}catch{e=null}return[t,e]})).filter((([t,e])=>e))),p=c(n===r.NI.HELM?t:d[r.NI.HELM],a.A.getInstance());return p&&(d.Nucleotides=p),d}function c(t,e){const n=new RegExp("\\([^()]*\\)","g"),i=t.match(n);return i?i.map((t=>{const n=t.replace(/[\[\]()]/g,"");return r.mc.includes(n)?n:e.getNaturalAnalogBySymbol(n)})).map((t=>t||o.s8)).join(""):null}},893:(t,e,n)=>{n.d(e,{I:()=>a});var r=n(29),o=n(800),i=n(996);const s={LEFT:"RNA1{",RIGHT:"}$$$$"};class a{sequence;sourceFormat;constructor(t,e){this.sequence=t,this.sourceFormat=e}convertTo(t){const e=Object.keys(i.Rv);if(this.sourceFormat===r.NI.HELM&&e.includes(t))return u(this.sequence,t);if(e.includes(this.sourceFormat)&&t===r.NI.HELM)return d(this.sequence,this.sourceFormat);if([this.sourceFormat,t].every((t=>e.includes(t))))return u(d(this.sequence,this.sourceFormat),t);throw new Error(`ST: unsupported translation direction ${this.sourceFormat} -> ${t}`)}}function l(t){return t.map((t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))).map((t=>t.includes("(")||t.includes(")")?t:`(?<!\\([^()]*)${t}(?![^()]*\\))`)).join("|")}function c(t,e){return e.length-t.length}function u(t,e){const n=function(t){const e={};return Object.values(t).forEach((t=>{Object.entries(t).forEach((([t,n])=>{const r=n.replace(/\)p/g,")").replace(/\]p/g,"]");void 0===e[r]?e[r]=[t]:e[r].push(t)}))})),Object.entries(e).forEach((([t,n])=>{const r=n.sort(c);e[t]=r[0]})),e}(i.Rv[e]),r=new RegExp(l(Object.values(s)),"g");let a=t.replace(r,"");const u=Object.keys(n).sort(c),d=new RegExp(l(u)+"|.","g");return a=a.replace(d,(t=>u.includes(t)?n[t]:"p"===t||"."===t?t:"?")).replace(/\?+/g,o.s8).replace(/p\.|\./g,""),a=a.replace(/<empty>/g,""),a=a.replace(/\/\//g,"/"),a}function d(t,e){const n=i.Rv[e],r=Object.assign({},...Object.values(n)),a=Object.keys(r).sort(c),u=new RegExp(l(a)+"|\\([^()]*\\)|.","g"),d=l(Array.from(new Set(Object.values(n[o.DD.LINKAGE]))).sort(c)),p=new RegExp(`${o.$3}.(${d})`,"g");let f=t.replace(u,(t=>a.includes(t)?r[t]+".":"?"));return f=f.replace(/\?+/g,`${o.s8}.`),f=f.slice(0,-1),f[f.length-1]===o.$3&&(f=f.slice(0,-1)),f=f.replace(p,((t,e)=>e)),f=f.replace(/<empty>/g,""),`${s.LEFT+f+s.RIGHT}`}},669:(t,e,n)=>{function r(t){return t.sort(((t,e)=>e.length-t.length))}n.d(e,{x:()=>r})},559:(t,e,n)=>{n.d(e,{A:()=>a});var r=n(976),o=n(563),i=n(29),s=n(996);class a{constructor(){const t=o._package.monomerLib;if(null===t)throw new Error("SequenceTranslator: monomer library is null");this.lib=t,this.allMonomers=this.getAllMonomers()}lib;static instance;allMonomers;formatMonomerForViewer(t){const e={};return e.name=t.symbol,e.symbol=t.symbol,e.molfile=t.molfile,this.getAllFormats().forEach((n=>{if(n===i.NI.HELM)return;const r=s.BF[n],o=Object.keys(r).filter((e=>r[e]===t.symbol));e[n]=o.join(", ")})),e}getAllMonomers(){const t=this.lib.getPolymerTypes();let e=[];for(const n of t){const t=this.lib.getMonomerSymbolsByType(n).map((t=>this.lib.getMonomer(n,t))).filter((t=>null!==t));e=e.concat(t)}return e}getMonomer(t){const e=this.lib.getMonomer("RNA",t);if(void 0===e)throw new Error(`SequenceTranslator: no monomer with symbol ${t}`);return e}static getInstance(){return void 0===a.instance&&(a.instance=new a),a.instance}getMolfileBySymbol(t){return this.getMonomer(t).molfile}getNaturalAnalogBySymbol(t){const e=this.getMonomer(t).naturalAnalog;if(!e)throw new Error(`ST: no natural analog for ${t}`);return e}isModification(t){return!!this.getMolfileBySymbol(t).includes("MODIFICATION")}getCodeToSymbolMap(t){return new Map(Object.entries(s.BF[t]))}getCodesByFormat(t){return Object.keys(s.BF[t])}getAllFormats(){return Object.keys(s.BF)}getTableForViewer(){const t=this.allMonomers.map((t=>this.formatMonomerForViewer(t)));return r.DataFrame.fromObjects(t)}getCodesToWeightsMap(){const t=new Map;return Object.entries(s.BF).forEach((([e,n])=>{Object.entries(n).forEach((([e,n])=>{const r=this.getMonomer(n).meta?.molecularWeight;t.set(e,r)}))})),t}}},947:(t,e,n)=>{n.d(e,{b:()=>s});var r=n(29),o=n(559),i=n(669);class s{sequence;constructor(t){this.sequence=t,this.libWrapper=o.A.getInstance()}libWrapper;getInvalidCodeIndex(t){if(t===r.NI.HELM)return this.sequence.length;const e=["r","d"],n=(0,i.x)(this.libWrapper.getCodesByFormat(t));let o=0;for(;o<this.sequence.length;){const t=n.find((t=>t===this.sequence.substring(o,o+t.length)));if(!t)break;if(o>1&&r.mc.includes(this.sequence[o])&&e.includes(this.sequence[o-2]))break;if(e.includes(this.sequence[o+1])&&r.mc.includes(this.sequence[o])){o++;break}o+=t.length}return o===this.sequence.length&&(o=-1),o}isValidSequence(t){return-1===this.getInvalidCodeIndex(t)}}},563:(t,e,n)=>{n.d(e,{_package:()=>j}),n(469);var r=n(976);ui,rxjs;var o=n(379),i=n.n(o),s=n(795),a=n.n(s),l=n(569),c=n.n(l),u=n(565),d=n.n(u),p=n(216),f=n.n(p),g=n(589),A=n.n(g),h=n(284),m={};m.styleTagTransform=A(),m.setAttributes=d(),m.insert=c().bind(null,"head"),m.domAPI=a(),m.insertStyleElement=f(),i()(h.Z,m),h.Z&&h.Z.locals&&h.Z.locals,$,n(947),n(29),n(559),n(996);var C,b,v=n(973),w={};w.styleTagTransform=A(),w.setAttributes=d(),w.insert=c().bind(null,"head"),w.domAPI=a(),w.insertStyleElement=f(),i()(v.Z,w),v.Z&&v.Z.locals&&v.Z.locals,n(112),(b=C||(C={})).HEADER="V2000",b[b.NUM_OF_HEADER_LINES=3]="NUM_OF_HEADER_LINES",b[b.NUM_OF_COUNTS_DIGITS=3]="NUM_OF_COUNTS_DIGITS",b[b.ATOM_TYPE_COL=4]="ATOM_TYPE_COL",b[b.FIRST_BONDED_ATOM_COL=1]="FIRST_BONDED_ATOM_COL",b[b.BOND_TYPE_COL=3]="BOND_TYPE_COL",b[b.RGP_SHIFT=8]="RGP_SHIFT",b.RGP_LINE="M RGP",b.A_LINE="A ",b.END="M END",Error,n(893);var E=n(865),y={};function x(t,e){const n=document.createElement("canvas").getContext("2d");return n.font=String(e),2*n.measureText(t).width}y.styleTagTransform=A(),y.setAttributes=d(),y.insert=c().bind(null,"head"),y.domAPI=a(),y.insertStyleElement=f(),i()(E.Z,y),E.Z&&E.Z.locals&&E.Z.locals;Math.max(x("SS: 5'",17),x("AS: 3'",17)),Math.max(x("3'",17),x("5'",17)),n(803);var O,B,N=n(895);wu;class S{constructor(t,e,n){this.name=t,this.alphabet=e,this.cutoff=n}}(B=O||(O={})).FASTA="fasta",B.SEPARATOR="separator",B.HELM="helm";const M=new class{constructor(){this.fasta={peptide:new Set(["G","L","Y","S","E","Q","D","N","F","A","K","R","H","C","V","P","W","I","M","T"]),dna:new Set(["A","C","G","T"]),rna:new Set(["A","C","G","U"])}}};new S("PT",M.fasta.peptide,.5),new S("DNA",M.fasta.dna,.55),new S("RNA",M.fasta.rna,.55);class T extends Float32Array{}class k{static makePalette(t,e=!1,n=k){const r={};return t.forEach((t=>{const n=t[0],o=t[1];n.forEach(((t,n)=>{r[t]=this.colourPalette[o][e?0:n]}))})),new n(r)}constructor(t){this._palette=t}get(t){return this._palette[t]}}k.undefinedColor="rgb(100,100,100)",k.colourPalette={orange:["rgb(255,187,120)","rgb(245,167,100)","rgb(235,137,70)","rgb(205, 111, 71)"],all_green:["rgb(44,160,44)","rgb(74,160,74)","rgb(23,103,57)","rgb(30,110,96)","rgb(60,131,95)","rgb(24,110,79)","rgb(152,223,138)","rgb(182, 223, 138)","rgb(152, 193, 138)"],all_blue:["rgb(31,119,180)","rgb(23,190,207)","rgb(122, 102, 189)","rgb(158,218,229)","rgb(141, 124, 217)","rgb(31, 120, 150)"],magenta:["rgb(162,106,192)","rgb(197,165,224)","rgb(208,113,218)"],red:["rgb(214,39,40)","rgb(255,152,150)"],st_blue:["rgb(23,190,207)","rgb(158,218,229)","rgb(31,119,180)"],dark_blue:["rgb(31,119,180)","rgb(31, 120, 150)"],light_blue:["rgb(23,190,207)","rgb(158,218,229)","rgb(108, 218, 229)","rgb(23,190,227)"],lilac_blue:["rgb(124,102,211)","rgb(149,134,217)","rgb(97, 81, 150)"],dark_green:["rgb(23,103,57)","rgb(30,110,96)","rgb(60,131,95)","rgb(24,110,79)"],green:["rgb(44,160,44)","rgb(74,160,74)"],light_green:["rgb(152,223,138)","rgb(182, 223, 138)","rgb(152, 193, 138)"],st_green:["rgb(44,160,44)","rgb(152,223,138)","rgb(39, 174, 96)","rgb(74,160,74)"],pink:["rgb(247,182,210)"],brown:["rgb(140,86,75)","rgb(102, 62, 54)"],gray:["rgb(127,127,127)","rgb(199,199,199)","rgb(196,156,148)","rgb(222, 222, 180)"],yellow:["rgb(188,189,34)"],white:["rgb(230,230,230)"]};class R extends k{static get Lesk(){return void 0===this.lesk&&(this.lesk=this.makePalette([[["G","A","S","T"],"orange"],[["C","V","I","L","P","F","Y","M","W"],"all_green"],[["N","Q","H"],"magenta"],[["D","E"],"red"],[["K","R"],"all_blue"]],!1,R)),this.lesk}static get GrokGroups(){return void 0===this.grokGroups&&(this.grokGroups=this.makePalette([[["C","U"],"yellow"],[["G","P"],"red"],[["A","V","I","L","M","F","Y","W"],"all_green"],[["R","H","K"],"light_blue"],[["D","E"],"dark_blue"],[["S","T","N","Q"],"orange"]],!1,R)),this.grokGroups}static get RasMol(){return void 0===this.rasMol&&(this.rasMol=new R({D:"#E60A0A",E:"#E60A0A",C:"#E6E600",M:"#E6E600",K:"#145AFF",R:"#145AFF",S:"#FA9600",T:"#FA9600",F:"#3232AA",Y:"#3232AA",N:"#00DCDC",Q:"#00DCDC",G:"#EBEBEB",L:"#0F820F",V:"#0F820F",I:"#0F820F",A:"#C8C8C8",W:"#B45AB4",H:"#8282D2",P:"#DC9682",others:"#BEA06E"})),this.rasMol}get(t){const e=t in R.aaSynonyms?R.aaSynonyms[t]:t;return super.get(e)}}R.aaSynonyms={MeNle:"L",MeA:"A",MeG:"G",MeF:"F"};class L{static getPalette(t="grok"){switch(t){case"grok":return R.GrokGroups;case"lesk":return R.Lesk;default:throw new Error(`ChemPalette: scheme \`${t}\` does not exist`)}}static getInnerOuter(t){let e=0,n="",r="";for(const o of t)"("==o?e++:")"==o?e--:e?n+=o:r+=o;return isNaN(parseInt(n))?[r,n]:[r,""]}static getColorAAPivot(t="",e="grok"){const n=this.getPalette(e);let[r,o]=this.getInnerOuter(t);if(r=r.length>6?`${r.slice(0,3)}...`:r,o=o.length>6?`${o.slice(0,3)}...`:o,1==t.length||"("==t[1]){const e=t[0]?.toUpperCase();return e in n?[n.get(e),e,o,1]:[this.undefinedColor,r,o,1]}if("d"==t[0]&&t[1]in n&&(2==t.length||"("==t[2])){const e=t[1]?.toUpperCase();return e in n?[n.get(e),e,o,2]:[this.undefinedColor,r,o,2]}if(t.substring(0,3)in this.AAFullNames&&(3==t.length||"("==t[3])){const e=this.AAFullNames[t.substring(0,3)];return e in n?[n.get(e),e,o,3]:[this.undefinedColor,r,o,3]}if(t[0]?.toLowerCase()==t[0]&&t.substring(1,3)in this.AAFullNames&&(4==t.length||"("==t[4])){const e=this.AAFullNames[t.substring(1,3)];return e in n?[n.get(e),e,o,4]:[this.undefinedColor,r,o,4]}return[this.undefinedColor,r,o,0]}}L.SemType="Aminoacids",L.SemTypeMultipleAlignment="AminoacidsMultipleAlignment",L.undefinedColor="rgb(100,100,100)",L.Names={G:"Glycine",L:"Leucine",Y:"Tyrosine",S:"Serine",E:"Glutamic acid",Q:"Glutamine",D:"Aspartic acid",N:"Asparagine",F:"Phenylalanine",A:"Alanine",K:"Lysine",R:"Arginine",H:"Histidine",C:"Cysteine",V:"Valine",P:"Proline",W:"Tryptophan",I:"Isoleucine",M:"Methionine",T:"Threonine"},L.AASmiles={G:"NCC(=O)O",L:"N[C@H](CC(C)C)C(=O)O",Y:"NC(CC1=CC=C(O)C=C1)C(=O)O",S:"NC(CO)C(=O)O",E:"N[C@@H](CCC(O)=O)C(=O)O",Q:"N[C@@H](CCC(N)=O)C(=O)O",D:"N[C@@H](CC(O)=O)C(=O)O",N:"N[C@@H](CC(N)=O)C(=O)O",F:"NC(CC1=CC=CC=C1)C(=O)O",A:"N[C@H](C)C(=O)O",K:"NC(CCCCN)C(=O)O",R:"N[C@H](CCCNC(=N)C)C(=O)O",H:"NC(CC1=CN=C[N]1)C(=O)O",C:"N[C@@H](CS)C(=O)O",V:"NC(C(C)C)C(=O)O",P:"N(CCC1)C1C(=O)O",W:"N[C@@H](Cc1c2ccccc2n([H])c1)C(=O)O",I:"N[C@H]([C@H](C)CC)C(=O)O",M:"NC(CCSC)C(=O)O",T:"NC(C(O)C)C(=O)O"},L.AASmilesTruncated={G:"*C*",L:"CC(C)C[C@H](*)*",Y:"C1=CC(=CC=C1CC(*)*)O",S:"OCC(*)C*",E:"*[C@@H](CCC(O)=O)*",Q:"*N[C@@H](CCC(N)=O)*",D:"*[C@@H](CC(O)=O)*",N:"*[C@@H](CC(N)=O)*",F:"C1=CC=C(C=C1)CC(*)*",A:"C[C@H](*)*",K:"C(CCN)CC(*)*",R:"*[C@H](CCCNC(=N)C)*",H:"C1=C(NC=N1)CC(*)*",C:"C([C@@H](*)*)S",V:"CC(C)C(*)*",P:"C1CCN(*)C1*",W:"*[C@@H](Cc1c2ccccc2n([H])c1)*",I:"CC[C@H](C)[C@H](*)*",M:"CSCCC(*)*",T:"CC(O)C(*)*"},L.AAFullNames={Ala:"A",Arg:"R",Asn:"N",Asp:"D",Cys:"C",Gln:"Q",Glu:"E",Gly:"G",His:"H",Ile:"I",Leu:"L",Lys:"K",Met:"M",Phe:"F",Pro:"P",Ser:"S",Thr:"T",Trp:"W",Tyr:"Y",Val:"V"};class I{}I.SemType="Nucleotides",I.SemTypeMultipleAlignment="NucleotidesMultipleAlignment",I.Names={A:"Adenine",C:"Cytosine",G:"Guanine",T:"Thymine",U:"Uracil"};class H{static hashCode(t){let e=0;if(0===t.length)return e;for(let n=0;n<t.length;n++)e=(e<<5)-e+t.charCodeAt(n),e|=0;return e}}class F{}class G extends F{static buildPalette(){return[].concat(...Object.values(k.colourPalette))}get(t){const e=H.hashCode(t)%G.palette.length;return function(t){if(null==t)return"rgb(100,100,100)";const e=r.Color.fromHtml(t),n=r.Color.g(e),o=r.Color.r(e),i=r.Color.b(e),s=Math.sqrt(Math.pow(0-o,2)+Math.pow(0-n,2)+Math.pow(0-i,2));return s>210?`rgb(${o/s*210},${n/s*210},${i/s*210})`:r.Color.toRgb(e)}(G.palette[e])}}G.palette=G.buildPalette();new Uint32Array(65536);var U,_;(_=U||(U={})).HAMMING="Hamming",_.LEVENSHTEIN="Levenshtein",_.NEEDLEMANN_WUNSCH="Needlemann-Wunsch",U.HAMMING,U.LEVENSHTEIN,U.NEEDLEMANN_WUNSCH,new class{constructor(){this.uhTemp=`units-handler.${r.SEMTYPE.MACROMOLECULE}`}},O.FASTA,O.SEPARATOR,O.HELM,n(61);class P extends r.Package{_monomerLib;get monomerLib(){if(!this._monomerLib)throw new Error("ST: monomer lib not loaded");return this._monomerLib}async initMonomerLib(){if(void 0!==this._monomerLib)return;const t=r.TaskBarProgressIndicator.create("Initializing Sequence Translator monomer library ...");try{const e=await async function(){const t=r.Func.find({package:"Bio",name:"getMonomerLibHelper"});if(0===t.length)throw new Error('Package "Bio" must be installed for MonomerLibHelper.');return(await t[0].prepare().call()).getOutputParamValue()}();this._monomerLib=await e.readLibrary(N.BX,N.a_)}catch(t){const e=t.hasOwnProperty("message")?t.message:t.toString();throw new Error("Loading monomer library: "+e)}finally{t.close()}}}const j=new P},976:t=>{t.exports=DG},469:t=>{t.exports=grok}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={id:r,exports:{}};return t[r](i,i.exports,n),i.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.nc=void 0;var r={};(()=>{n.r(r),n.d(r,{_package:()=>h,test:()=>m,tests:()=>e.QK});var t=n(976),e=n(61),o=n(29),i=n(893),s=n(996);const a={Axolabs:{UfAfsCfsGfuacg:"RNA1{[fR](U)p.[fR](A)[sp].[fR](C)[sp].[fR](G)p.[25r](U)p.[25r](A)p.[25r](C)p.[25r](G)}$$$$"},BioSpring:{"AT*GC*123456789":"RNA1{r(A)p.r(T)[sp].r(G)p.r(C)[sp].[fR](U)p.[fR](A)p.[fR](C)p.[fR](G)p.[25r](U)p.[25r](A)p.[25r](C)p.[25r](G)p.d([m5C])}$$$$"},Mermade12:{hefglijkLIJKHEFG:"RNA1{[25r](U)[sp].[25r](A)[sp].[25r](C)[sp].[25r](G)[sp].[fR](U)[sp].[fR](A)[sp].[fR](C)[sp].[fR](G)[sp].[fR](U)p.[fR](A)p.[fR](C)p.[fR](G)p.[25r](U)p.[25r](A)p.[25r](C)p.[25r](G)}$$$$"}},l={"RNA1{[fR](U)p.[fR](A)[sp].[fR](C)[sp].[fR](G)p.[25r](U)p.[25r](A)p.[25r](C)p.[25r](G)}$$$$":"UACGUACG","RNA1{r(A)p.r(T)[sp].r(G)p.r(C)[sp].[fR](U)p.[fR](A)p.[fR](C)p.[fR](G)p.[25r](U)p.[25r](A)p.[25r](C)p.[25r](G)p.d([m5C])}$$$$":"ATGCUACGUACGC","RNA1{[25r](U)[sp].[25r](A)[sp].[25r](C)[sp].[25r](G)[sp].[fR](U)[sp].[fR](A)[sp].[fR](C)[sp].[fR](G)[sp].[fR](U)p.[fR](A)p.[fR](C)p.[fR](G)p.[25r](U)p.[25r](A)p.[25r](C)p.[25r](G)}$$$$":"UACGUACGUACGUACG"};var c=n(563);function u(t,e){return new i.I(t,e).convertTo(o.NI.HELM)}function d(t,e){return new i.I(t,o.NI.HELM).convertTo(e)}(0,e.W3)("Formats to HELM",(()=>{(0,e.bb)((async()=>{await(0,s.VO)(),await c._package.initMonomerLib()}));for(const t of Object.keys(a))for(const[n,r]of Object.entries(a[t]))(0,e.Bu)(`${t} to HELM`,(async()=>{const o=r,i=u(n,t);(0,e.l_)(i,o)}))})),(0,e.W3)("HELM to Formats",(()=>{(0,e.bb)((async()=>{await(0,s.VO)(),await c._package.initMonomerLib()}));for(const t of Object.keys(a))for(const[n,r]of Object.entries(a[t]))(0,e.Bu)(`${t} to HELM`,(async()=>{const o=n,i=d(r,t);(0,e.l_)(i,o)}))}));var p=n(112),f=n(559);(0,e.W3)("HELM to Nucleotides",(()=>{(0,e.bb)((async()=>{await(0,s.VO)(),await c._package.initMonomerLib()})),Object.entries(l).forEach((([t,n],r)=>{(0,e.Bu)(`Sequence ${r+1} to nucleotides`,(async()=>{const r=n,o=(0,p.C)(t,f.A.getInstance());(0,e.l_)(o,r)}))}))}));var g=n(947);const A={[o.NI.AXOLABS]:"Afcgacsu",[o.NI.HELM]:"RNA1{[fR](A)p.[25r](C)p.[25r](G)p.[25r](A)p.[25r](C)[sp].[25r](U)}$$$$"};(0,e.W3)("Formats support",(()=>{(0,e.bb)((async()=>{await(0,s.VO)(),await c._package.initMonomerLib()})),Object.entries(A).forEach((([t,n])=>{(0,e.Bu)(`All formats for ${t}`,(async()=>{const r=function(t,e){const n=new g.b(t).getInvalidCodeIndex(e);return(0,p.D)(t,n,e)}(n,t),o=Object.keys(r).length,i=Object.keys(a).length+1;(0,e.l_)(o,i)}))}))}));const h=new t.Package;async function m(n,r,o){const i=await(0,e.ci)({category:n,test:r,testContext:o});return t.DataFrame.fromObjects(i)}})(),sequencetranslator_test=r})();
|
|
1
|
+
var sequencetranslator_test;(()=>{"use strict";var t={61:(t,e,n)=>{n.d(e,{Bu:()=>p,QK:()=>a,W3:()=>g,bb:()=>A,ci:()=>f,l_:()=>d});var r=n(469),o=n(976),s=function(t,e,n,r){return new(n||(n=Promise))((function(o,s){function a(t){try{l(r.next(t))}catch(t){s(t)}}function i(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,i)}l((r=r.apply(t,e||[])).next())}))};const a={};let i;var l;!function(t){t.notNull=function(t,e){if(null==t)throw new Error(`${null==e?"Value":e} not defined`)}}(l||(l={}));class c{constructor(t,e){this.catchUnhandled=!0,this.report=!1,void 0!==t&&(this.catchUnhandled=t),void 0!==e&&(this.report=e)}}class u{constructor(t,e,n,r){var o;this.category=t,this.name=e,null!=r||(r={}),null!==(o=r.timeout)&&void 0!==o||(r.timeout=3e4),this.options=r,this.test=()=>s(this,void 0,void 0,(function*(){return new Promise(((t,e)=>s(this,void 0,void 0,(function*(){let r="";try{r=yield n()}catch(t){e(t)}t(r)}))))}))}}function p(t,e,n){null==a[i]&&(a[i]={}),null==a[i].tests&&(a[i].tests=[]),a[i].tests.push(new u(i,t,e,n))}function d(t,e){if(t!==e)throw new Error(`Expected "${e}", got "${t}"`)}function g(t,e){i=t,e()}function A(t){null==a[i]&&(a[i]={}),a[i].before=t}function f(t){var e,n,i,l,u;return s(this,void 0,void 0,(function*(){const p=[],d=null===(n=null===(e=r.functions.getCurrentCall())||void 0===e?void 0:e.func)||void 0===n?void 0:n.package;console.log("Running tests"),null!=t||(t={}),null!==(i=(u=t).testContext)&&void 0!==i||(u.testContext=new c),r.shell.lastError="";for(const[e,n]of Object.entries(a)){if(null!=(null==t?void 0:t.category)&&!e.toLowerCase().startsWith(null==t?void 0:t.category.toLowerCase()))continue;console.log(`Started ${e} category`);try{n.before&&(yield n.before())}catch(t){n.beforeStatus=t.toString()}const r=null!==(l=n.tests)&&void 0!==l?l:[],o=[];for(let e=0;e<r.length;e++)o.push(yield h(r[e],null==t?void 0:t.test));const s=(yield Promise.all(o)).filter((t=>"skipped"!=t.result));try{n.after&&(yield n.after())}catch(t){n.afterStatus=t.toString()}n.afterStatus&&s.push({category:e,name:"init",result:n.afterStatus,success:!1,ms:0,skipped:!1}),n.beforeStatus&&s.push({category:e,name:"init",result:n.beforeStatus,success:!1,ms:0,skipped:!1}),p.push(...s)}if(t.testContext.catchUnhandled&&(yield function(t){return s(this,void 0,void 0,(function*(){yield new Promise((e=>setTimeout(e,t)))}))}(1e3),r.shell.lastError.length>0&&p.push({category:"Unhandled exceptions",name:"exceptions",result:r.shell.lastError,success:!1,ms:0,skipped:!1})),t.testContext.report){const t=new o.Logger,e=p.filter((t=>t.success)).length,n=p.filter((t=>t.skipped)).length,r=p.filter((t=>!t.success)),s="Package @package tested: @successful successful, @skipped skipped, @failed failed tests",a={successful:e,skipped:n,failed:r.length,package:d};for(const t of r)Object.assign(a,{[`${t.category} | ${t.name}`]:t.result});t.log(s,a,"package-tested")}return p}))}function h(t,e){var n,r,o;return s(this,void 0,void 0,(function*(){let s;const a=null!=e&&!t.name.toLowerCase().startsWith(e.toLowerCase()),i=(null===(n=t.options)||void 0===n?void 0:n.skipReason)||a,l=a?"skipped":null===(r=t.options)||void 0===r?void 0:r.skipReason;i||console.log(`Started ${t.category} ${t.name}`);const c=new Date;try{s=i?{success:!0,result:l,ms:0,skipped:!0}:{success:!0,result:null!==(o=yield t.test())&&void 0!==o?o:"OK",ms:0,skipped:!1}}catch(t){s={success:!1,result:t.toString(),ms:0,skipped:!1}}const u=new Date;return s.ms=u-c,i||console.log(`Finished ${t.category} ${t.name} for ${s.ms} ms`),s.category=t.category,s.name=t.name,s}))}},490:(t,e,n)=>{n.d(e,{Z:()=>i});var r=n(537),o=n.n(r),s=n(645),a=n.n(s)()(o());a.push([t.id,".colored-text-input > textarea {\n width: 100%;\n -webkit-text-fill-color: transparent;\n background-color: transparent;\n position: relative;\n z-index: 1;\n resize: none;\n height: 22px; /* Fine tuned value to avoid \"jumping\" of the textarea upon autoresize */\n}\n\n.colored-text-input > div {\n /* The values here are fine tuned to those of the ui.input textarea in order\n * to achieve precise overlap */\n overflow: auto;\n position: absolute;\n pointer-events: none;\n cursor: text;\n z-index: 0;\n max-width: 100%;\n padding: 2px;\n line-height: normal;\n font-family: 'Roboto Mono', 'Roboto Mono Local', monospace;\n font-size: 12px;\n color: transparent;\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n","",{version:3,sources:["webpack://./src/view/style/colored-text-input.css"],names:[],mappings:"AAAA;EACE,WAAW;EACX,oCAAoC;EACpC,6BAA6B;EAC7B,kBAAkB;EAClB,UAAU;EACV,YAAY;EACZ,YAAY,EAAE,wEAAwE;AACxF;;AAEA;EACE;iCAC+B;EAC/B,cAAc;EACd,kBAAkB;EAClB,oBAAoB;EACpB,YAAY;EACZ,UAAU;EACV,eAAe;EACf,YAAY;EACZ,mBAAmB;EACnB,0DAA0D;EAC1D,eAAe;EACf,kBAAkB;EAClB,qBAAqB;EACrB,qBAAqB;AACvB",sourcesContent:[".colored-text-input > textarea {\n width: 100%;\n -webkit-text-fill-color: transparent;\n background-color: transparent;\n position: relative;\n z-index: 1;\n resize: none;\n height: 22px; /* Fine tuned value to avoid \"jumping\" of the textarea upon autoresize */\n}\n\n.colored-text-input > div {\n /* The values here are fine tuned to those of the ui.input textarea in order\n * to achieve precise overlap */\n overflow: auto;\n position: absolute;\n pointer-events: none;\n cursor: text;\n z-index: 0;\n max-width: 100%;\n padding: 2px;\n line-height: normal;\n font-family: 'Roboto Mono', 'Roboto Mono Local', monospace;\n font-size: 12px;\n color: transparent;\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n"],sourceRoot:""}]);const i=a},753:(t,e,n)=>{n.d(e,{Z:()=>i});var r=n(537),o=n.n(r),s=n(645),a=n.n(s)()(o());a.push([t.id,"/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n\n.st-structure-body {\n padding-right: 20px;\n}\n\n.st-structure-input-form {\n text-align: right;\n vertical-align: top;\n min-width: 95px;\n}\n\n.st-structure-direction-choice label {\n min-width: 100px;\n float: right;\n}\n\n.st-structure-direction-choice div {\n justify-content: right;\n}\n\n.st-structure-text-input-td { /* Style for td containing textarea */\n width: 100%;\n}\n\n.st-structure-mol-img {\n margin-right: 30px;\n float: right;\n}\n\n.st-structure-bool-button-block {\n justify-content: right;\n margin-bottom: 10px;\n}\n\n.st-structure-bottom {\n flex-direction: row-reverse;\n padding-top: 20px;\n}\n","",{version:3,sources:["webpack://./src/view/style/structure-app.css"],names:[],mappings:"AAAA,gGAAgG;;AAEhG;EACE,mBAAmB;AACrB;;AAEA;EACE,iBAAiB;EACjB,mBAAmB;EACnB,eAAe;AACjB;;AAEA;EACE,gBAAgB;EAChB,YAAY;AACd;;AAEA;EACE,sBAAsB;AACxB;;AAEA,8BAA8B,qCAAqC;EACjE,WAAW;AACb;;AAEA;EACE,kBAAkB;EAClB,YAAY;AACd;;AAEA;EACE,sBAAsB;EACtB,mBAAmB;AACrB;;AAEA;EACE,2BAA2B;EAC3B,iBAAiB;AACnB",sourcesContent:["/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n\n.st-structure-body {\n padding-right: 20px;\n}\n\n.st-structure-input-form {\n text-align: right;\n vertical-align: top;\n min-width: 95px;\n}\n\n.st-structure-direction-choice label {\n min-width: 100px;\n float: right;\n}\n\n.st-structure-direction-choice div {\n justify-content: right;\n}\n\n.st-structure-text-input-td { /* Style for td containing textarea */\n width: 100%;\n}\n\n.st-structure-mol-img {\n margin-right: 30px;\n float: right;\n}\n\n.st-structure-bool-button-block {\n justify-content: right;\n margin-bottom: 10px;\n}\n\n.st-structure-bottom {\n flex-direction: row-reverse;\n padding-top: 20px;\n}\n"],sourceRoot:""}]);const i=a},602:(t,e,n)=>{n.d(e,{Z:()=>i});var r=n(537),o=n.n(r),s=n(645),a=n.n(s)()(o());a.push([t.id,"/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n.st-translator-input-table {\n width: 100%;\n}\n\n.st-translator-input-table td:has(textarea) {\n width: 100%;\n padding-right: 20px;\n}\n\n.st-translator-input-table td:has(select) {\n min-width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table {\n margin-top: 20px;\n margin-right: 20px;\n margin-bottom: 10px;\n}\n\n.st-translator-output-table table {\n width: 100%;\n table-layout: fixed;\n}\n\n/* .st-translator-output-table table tbody tr td { */\n/* max-width: 20%; */\n/* } */\n\n.st-translator-output-table td {\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.st-translator-output-table tr:nth-child(even) {\n background-color: var(--grey-1);\n}\n\n.st-translator-output-table td:nth-child(odd) {\n width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table td a {\n overflow-wrap: break-word;\n}\n","",{version:3,sources:["webpack://./src/view/style/translator-app.css"],names:[],mappings:"AAAA,gGAAgG;AAChG;EACE,WAAW;AACb;;AAEA;EACE,WAAW;EACX,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;EAChB,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,mBAAmB;AACrB;;AAEA;EACE,WAAW;EACX,mBAAmB;AACrB;;AAEA,oDAAoD;AACpD,sBAAsB;AACtB,MAAM;;AAEN;EACE,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,+BAA+B;AACjC;;AAEA;EACE,YAAY;EACZ,mBAAmB;AACrB;;AAEA;EACE,yBAAyB;AAC3B",sourcesContent:["/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n.st-translator-input-table {\n width: 100%;\n}\n\n.st-translator-input-table td:has(textarea) {\n width: 100%;\n padding-right: 20px;\n}\n\n.st-translator-input-table td:has(select) {\n min-width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table {\n margin-top: 20px;\n margin-right: 20px;\n margin-bottom: 10px;\n}\n\n.st-translator-output-table table {\n width: 100%;\n table-layout: fixed;\n}\n\n/* .st-translator-output-table table tbody tr td { */\n/* max-width: 20%; */\n/* } */\n\n.st-translator-output-table td {\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.st-translator-output-table tr:nth-child(even) {\n background-color: var(--grey-1);\n}\n\n.st-translator-output-table td:nth-child(odd) {\n width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table td a {\n overflow-wrap: break-word;\n}\n"],sourceRoot:""}]);const i=a},645:t=>{t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n="",r=void 0!==e[5];return e[4]&&(n+="@supports (".concat(e[4],") {")),e[2]&&(n+="@media ".concat(e[2]," {")),r&&(n+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),n+=t(e),r&&(n+="}"),e[2]&&(n+="}"),e[4]&&(n+="}"),n})).join("")},e.i=function(t,n,r,o,s){"string"==typeof t&&(t=[[null,t,void 0]]);var a={};if(r)for(var i=0;i<this.length;i++){var l=this[i][0];null!=l&&(a[l]=!0)}for(var c=0;c<t.length;c++){var u=[].concat(t[c]);r&&a[u[0]]||(void 0!==s&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=s),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),e.push(u))}},e}},537:t=>{t.exports=function(t){var e=t[1],n=t[3];if(!n)return e;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),s="/*# ".concat(o," */");return[e].concat([s]).join("\n")}return[e].join("\n")}},803:(t,e)=>{var n;!function(){var r=e||{}||this||window;void 0===(n=function(){return r}.apply(e,[]))||(t.exports=n),r.default=r;var o="http://www.w3.org/2000/xmlns/",s="http://www.w3.org/2000/svg",a=/url\(["']?(.+?)["']?\)/,i={woff2:"font/woff2",woff:"font/woff",otf:"application/x-font-opentype",ttf:"application/x-font-ttf",eot:"application/vnd.ms-fontobject",sfnt:"application/font-sfnt",svg:"image/svg+xml"},l=function(t){return t instanceof HTMLElement||t instanceof SVGElement},c=function(t){if(!l(t))throw new Error("an HTMLElement or SVGElement is required; got "+t)},u=function(t){return new Promise((function(e,n){l(t)?e(t):n(new Error("an HTMLElement or SVGElement is required; got "+t))}))},p=function(t,e,n){var r=t.viewBox&&t.viewBox.baseVal&&t.viewBox.baseVal[n]||null!==e.getAttribute(n)&&!e.getAttribute(n).match(/%$/)&&parseInt(e.getAttribute(n))||t.getBoundingClientRect()[n]||parseInt(e.style[n])||parseInt(window.getComputedStyle(t).getPropertyValue(n));return null==r||isNaN(parseFloat(r))?0:r},d=function(t){for(var e=window.atob(t.split(",")[1]),n=t.split(",")[0].split(":")[1].split(";")[0],r=new ArrayBuffer(e.length),o=new Uint8Array(r),s=0;s<e.length;s++)o[s]=e.charCodeAt(s);return new Blob([r],{type:n})},g={},A=null,f=function(t,e){var n=e||{},r=n.selectorRemap,o=n.modifyStyle,s=n.modifyCss,l=n.fonts,c=n.excludeUnusedCss,u=s||function(t,e){return(r?r(t):t)+"{"+(o?o(e):e)+"}\n"},p=[],d=void 0===l,f=l||[];return(A||(A=Array.from(document.styleSheets).map((function(t){try{return{rules:t.cssRules,href:t.href}}catch(e){return console.warn("Stylesheet could not be loaded: "+t.href,e),{}}})))).forEach((function(e){var n=e.rules,r=e.href;n&&Array.from(n).forEach((function(e){if(void 0!==e.style)if(function(t,e){if(e)try{return t.querySelector(e)||t.parentNode&&t.parentNode.querySelector(e)}catch(t){console.warn('Invalid CSS selector "'+e+'"',t)}}(t,e.selectorText))p.push(u(e.selectorText,e.style.cssText));else if(d&&e.cssText.match(/^@font-face/)){var n=function(t,e){var n=t.cssText.match(a),r=n&&n[1]||"";if(r&&!r.match(/^data:/)&&"about:blank"!==r){var o,s,l=r.startsWith("../")?e+"/../"+r:r.startsWith("./")?e+"/."+r:r;return{text:t.cssText,format:(o=l,s=Object.keys(i).filter((function(t){return o.indexOf("."+t)>0})).map((function(t){return i[t]})),s?s[0]:(console.error("Unknown font format for "+o+". Fonts may not be working correctly."),"application/octet-stream")),url:l}}}(e,r);n&&f.push(n)}else c||p.push(e.cssText)}))})),function(t){return Promise.all(t.map((function(t){return new Promise((function(e,n){if(g[t.url])return e(g[t.url]);var r=new XMLHttpRequest;r.addEventListener("load",(function(){var n=function(t){for(var e="",n=new Uint8Array(t),r=0;r<n.byteLength;r++)e+=String.fromCharCode(n[r]);return window.btoa(e)}(r.response),o=t.text.replace(a,'url("data:'+t.format+";base64,"+n+'")')+"\n";g[t.url]=o,e(o)})),r.addEventListener("error",(function(n){console.warn("Failed to load font from: "+t.url,n),g[t.url]=null,e(null)})),r.addEventListener("abort",(function(n){console.warn("Aborted loading font from: "+t.url,n),e(null)})),r.open("GET",t.url),r.responseType="arraybuffer",r.send()}))}))).then((function(t){return t.filter((function(t){return t})).join("")}))}(f).then((function(t){return p.join("\n")+t}))},h=function(){if(!navigator.msSaveOrOpenBlob&&!("download"in document.createElement("a")))return{popup:window.open()}};r.prepareSvg=function(t,e,n){c(t);var r=e||{},a=r.left,i=void 0===a?0:a,l=r.top,u=void 0===l?0:l,d=r.width,g=r.height,A=r.scale,h=void 0===A?1:A,m=r.responsive,C=void 0!==m&&m,b=r.excludeCss,v=void 0!==b&&b;return function(t){return Promise.all(Array.from(t.querySelectorAll("image")).map((function(t){var e,n=t.getAttributeNS("http://www.w3.org/1999/xlink","href")||t.getAttribute("href");return n?((e=n)&&0===e.lastIndexOf("http",0)&&-1===e.lastIndexOf(window.location.host)&&(n+=(-1===n.indexOf("?")?"?":"&")+"t="+(new Date).valueOf()),new Promise((function(e,r){var o=document.createElement("canvas"),s=new Image;s.crossOrigin="anonymous",s.src=n,s.onerror=function(){return r(new Error("Could not load "+n))},s.onload=function(){o.width=s.width,o.height=s.height,o.getContext("2d").drawImage(s,0,0),t.setAttributeNS("http://www.w3.org/1999/xlink","href",o.toDataURL("image/png")),e(!0)}}))):Promise.resolve(null)})))}(t).then((function(){var r=t.cloneNode(!0);r.style.backgroundColor=(e||{}).backgroundColor||t.style.backgroundColor;var a=function(t,e,n,r){if("svg"===t.tagName)return{width:n||p(t,e,"width"),height:r||p(t,e,"height")};if(t.getBBox){var o=t.getBBox(),s=o.x,a=o.y;return{width:s+o.width,height:a+o.height}}}(t,r,d,g),l=a.width,c=a.height;if("svg"!==t.tagName){if(!t.getBBox)return void console.error("Attempted to render non-SVG element",t);null!=r.getAttribute("transform")&&r.setAttribute("transform",r.getAttribute("transform").replace(/translate\(.*?\)/,""));var A=document.createElementNS("http://www.w3.org/2000/svg","svg");A.appendChild(r),r=A}if(r.setAttribute("version","1.1"),r.setAttribute("viewBox",[i,u,l,c].join(" ")),r.getAttribute("xmlns")||r.setAttributeNS(o,"xmlns",s),r.getAttribute("xmlns:xlink")||r.setAttributeNS(o,"xmlns:xlink","http://www.w3.org/1999/xlink"),C?(r.removeAttribute("width"),r.removeAttribute("height"),r.setAttribute("preserveAspectRatio","xMinYMin meet")):(r.setAttribute("width",l*h),r.setAttribute("height",c*h)),Array.from(r.querySelectorAll("foreignObject > *")).forEach((function(t){t.setAttributeNS(o,"xmlns","svg"===t.tagName?s:"http://www.w3.org/1999/xhtml")})),!v)return f(t,e).then((function(t){var e=document.createElement("style");e.setAttribute("type","text/css"),e.innerHTML="<![CDATA[\n"+t+"\n]]>";var o=document.createElement("defs");o.appendChild(e),r.insertBefore(o,r.firstChild);var s=document.createElement("div");s.appendChild(r);var a=s.innerHTML.replace(/NS\d+:href/gi,'xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href');if("function"!=typeof n)return{src:a,width:l,height:c};n(a,l,c)}));var m=document.createElement("div");m.appendChild(r);var b=m.innerHTML;if("function"!=typeof n)return{src:b,width:l,height:c};n(b,l,c)}))},r.svgAsDataUri=function(t,e,n){return c(t),r.prepareSvg(t,e).then((function(t){var e=t.src,r=t.width,o=t.height,s="data:image/svg+xml;base64,"+window.btoa(decodeURIComponent(encodeURIComponent('<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [<!ENTITY nbsp " ">]>'+e).replace(/%([0-9A-F]{2})/g,(function(t,e){var n=String.fromCharCode("0x"+e);return"%"===n?"%25":n}))));return"function"==typeof n&&n(s,r,o),s}))},r.svgAsPngUri=function(t,e,n){c(t);var o=e||{},s=o.encoderType,a=void 0===s?"image/png":s,i=o.encoderOptions,l=void 0===i?.8:i,u=o.canvg,p=function(t){var e=t.src,r=t.width,o=t.height,s=document.createElement("canvas"),i=s.getContext("2d"),c=window.devicePixelRatio||1;s.width=r*c,s.height=o*c,s.style.width=s.width+"px",s.style.height=s.height+"px",i.setTransform(c,0,0,c,0,0),u?u(s,e):i.drawImage(e,0,0);var p=void 0;try{p=s.toDataURL(a,l)}catch(t){if("undefined"!=typeof SecurityError&&t instanceof SecurityError||"SecurityError"===t.name)return void console.error("Rendered SVG images cannot be downloaded in this browser.");throw t}return"function"==typeof n&&n(p,s.width,s.height),Promise.resolve(p)};return u?r.prepareSvg(t,e).then(p):r.svgAsDataUri(t,e).then((function(t){return new Promise((function(e,n){var r=new Image;r.onload=function(){return e(p({src:r,width:r.width,height:r.height}))},r.onerror=function(){n("There was an error loading the data URI as an image on the following SVG\n"+window.atob(t.slice(26))+"Open the following link to see browser's diagnosis\n"+t)},r.src=t}))}))},r.download=function(t,e,n){if(navigator.msSaveOrOpenBlob)navigator.msSaveOrOpenBlob(d(e),t);else{var r=document.createElement("a");if("download"in r){r.download=t,r.style.display="none",document.body.appendChild(r);try{var o=d(e),s=URL.createObjectURL(o);r.href=s,r.onclick=function(){return requestAnimationFrame((function(){return URL.revokeObjectURL(s)}))}}catch(t){console.error(t),console.warn("Error while getting object URL. Falling back to string URL."),r.href=e}r.click(),document.body.removeChild(r)}else n&&n.popup&&(n.popup.document.title=t,n.popup.location.replace(e))}},r.saveSvg=function(t,e,n){var o=h();return u(t).then((function(t){return r.svgAsDataUri(t,n||{})})).then((function(t){return r.download(e,t,o)}))},r.saveSvgAsPng=function(t,e,n){var o=h();return u(t).then((function(t){return r.svgAsPngUri(t,n||{})})).then((function(t){return r.download(e,t,o)}))}}()},379:t=>{var e=[];function n(t){for(var n=-1,r=0;r<e.length;r++)if(e[r].identifier===t){n=r;break}return n}function r(t,r){for(var s={},a=[],i=0;i<t.length;i++){var l=t[i],c=r.base?l[0]+r.base:l[0],u=s[c]||0,p="".concat(c," ").concat(u);s[c]=u+1;var d=n(p),g={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==d)e[d].references++,e[d].updater(g);else{var A=o(g,r);r.byIndex=i,e.splice(i,0,{identifier:p,updater:A,references:1})}a.push(p)}return a}function o(t,e){var n=e.domAPI(e);return n.update(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap&&e.supports===t.supports&&e.layer===t.layer)return;n.update(t=e)}else n.remove()}}t.exports=function(t,o){var s=r(t=t||[],o=o||{});return function(t){t=t||[];for(var a=0;a<s.length;a++){var i=n(s[a]);e[i].references--}for(var l=r(t,o),c=0;c<s.length;c++){var u=n(s[c]);0===e[u].references&&(e[u].updater(),e.splice(u,1))}s=l}}},569:t=>{var e={};t.exports=function(t,n){var r=function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}(t);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},216:t=>{t.exports=function(t){var e=document.createElement("style");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},565:(t,e,n)=>{t.exports=function(t){var e=n.nc;e&&t.setAttribute("nonce",e)}},795:t=>{t.exports=function(t){var e=t.insertStyleElement(t);return{update:function(n){!function(t,e,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var o=void 0!==n.layer;o&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,o&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var s=n.sourceMap;s&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(s))))," */")),e.styleTagTransform(r,t,e.options)}(e,t,n)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(e)}}}},589:t=>{t.exports=function(t,e){if(e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}},29:(t,e,n)=>{n.d(e,{NI:()=>o,mc:()=>r});const r=["A","G","C","U","T"];var o;!function(t){t.HELM="HELM",t.AXOLABS="Axolabs"}(o||(o={}))},895:(t,e,n)=>{n.d(e,{BX:()=>r,Dv:()=>i,VV:()=>l,Xz:()=>c,a_:()=>o,dz:()=>a,pl:()=>s});const r="System:AppData/SequenceTranslator",o="monomer-lib.json",s="System:AppData/SequenceTranslator",a="axolabs-style.json",i="formats-to-helm.json",l="codes-to-symbols.json",c="linkers.json"},996:(t,e,n)=>{n.d(e,{BF:()=>l,Rv:()=>i,VO:()=>u});var r=n(976),o=n(895);const s=new r.FileSource(o.pl);let a,i,l,c;async function u(){[a,i,l,c].every((t=>void 0!==t))||(a=await p(o.dz),i=await p(o.Dv),l=await p(o.VV),c=await p(o.Xz))}async function p(t){let e;try{e=JSON.parse(await s.readAsText(t))}catch(e){const n=e.hasOwnProperty("message")?e.message:e.toString();throw new Error(`Error loading json from ${t}:`+n)}return e}},800:(t,e,n)=>{n.d(e,{$3:()=>o,DD:()=>r,s8:()=>s});const r={NUCLEOSIDE:"nucleoside",LINKAGE:"phosphateBackbone"},o="p",s="<?>"},112:(t,e,n)=>{n.d(e,{C:()=>c,D:()=>l});var r=n(29),o=n(800),s=n(893),a=n(996),i=n(559);function l(t,e,n){const o=Object.keys(a.Rv).concat([r.NI.HELM]);if(!t||-1!==e&&n!==r.NI.HELM)return{};if(!o.includes(n))throw new Error(`${n} format is not supported by SequenceTranslator`);const l=o.filter((t=>t!=n)).sort(((t,e)=>t.localeCompare(e))),u=new s.I(t,n),p=Object.fromEntries(l.map((t=>{let e;try{e=u.convertTo(t)}catch{e=null}return[t,e]})).filter((([t,e])=>e))),d=c(n===r.NI.HELM?t:p[r.NI.HELM],i.A.getInstance());return d&&(p.Nucleotides=d),p}function c(t,e){const n=new RegExp("\\([^()]*\\)","g"),s=t.match(n);return s?s.map((t=>{const n=t.replace(/[\[\]()]/g,"");return r.mc.includes(n)?n:e.getNaturalAnalogBySymbol(n)})).map((t=>t||o.s8)).join(""):null}},893:(t,e,n)=>{n.d(e,{I:()=>i});var r=n(29),o=n(800),s=n(996);const a={LEFT:"RNA1{",RIGHT:"}$$$$"};class i{sequence;sourceFormat;constructor(t,e){this.sequence=t,this.sourceFormat=e}convertTo(t){const e=Object.keys(s.Rv);if(this.sourceFormat===r.NI.HELM&&e.includes(t))return u(this.sequence,t);if(e.includes(this.sourceFormat)&&t===r.NI.HELM)return p(this.sequence,this.sourceFormat);if([this.sourceFormat,t].every((t=>e.includes(t))))return u(p(this.sequence,this.sourceFormat),t);throw new Error(`ST: unsupported translation direction ${this.sourceFormat} -> ${t}`)}}function l(t){return t.map((t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))).map((t=>t.includes("(")||t.includes(")")?t:`(?<!\\([^()]*)${t}(?![^()]*\\))`)).join("|")}function c(t,e){return e.length-t.length}function u(t,e){const n=function(t){const e={};return Object.values(t).forEach((t=>{Object.entries(t).forEach((([t,n])=>{const r=n.replace(/\)p/g,")").replace(/\]p/g,"]");void 0===e[r]?e[r]=[t]:e[r].push(t)}))})),Object.entries(e).forEach((([t,n])=>{const r=n.sort(c);e[t]=r[0]})),e}(s.Rv[e]),r=new RegExp(l(Object.values(a)),"g");let i=t.replace(r,"");const u=Object.keys(n).sort(c),p=new RegExp(l(u)+"|.","g");return i=i.replace(p,(t=>u.includes(t)?n[t]:"p"===t||"."===t?t:"?")).replace(/\?+/g,o.s8).replace(/p\.|\./g,""),i=i.replace(/<empty>/g,""),i=i.replace(/\/\//g,"/"),i}function p(t,e){const n=s.Rv[e],r=Object.assign({},...Object.values(n)),i=Object.keys(r).sort(c),u=new RegExp(l(i)+"|\\([^()]*\\)|.","g"),p=l(Array.from(new Set(Object.values(n[o.DD.LINKAGE]))).sort(c)),d=new RegExp(`${o.$3}.(${p})`,"g");let g=t.replace(u,(t=>i.includes(t)?r[t]+".":"?"));return g=g.replace(/\?+/g,`${o.s8}.`),g=g.slice(0,-1),g[g.length-1]===o.$3&&(g=g.slice(0,-1)),g=g.replace(d,((t,e)=>e)),g=g.replace(/<empty>/g,""),`${a.LEFT+g+a.RIGHT}`}},669:(t,e,n)=>{n.d(e,{Y3:()=>s,xB:()=>o});var r=n(469);function o(t){return t.sort(((t,e)=>e.length-t.length))}async function s(t,e,n="Oligo app"){try{return await t()}catch(t){const e=t.hasOwnProperty("message")?t.message:t.toString();throw r.shell.error(`${n} error: `+e),t}finally{e&&e()}}},559:(t,e,n)=>{n.d(e,{A:()=>i});var r=n(976),o=n(340),s=n(29),a=n(996);class i{constructor(){const t=o._package.monomerLib;if(null===t)throw new Error("SequenceTranslator: monomer library is null");this.lib=t,this.allMonomers=this.getAllMonomers()}lib;static instance;allMonomers;formatMonomerForViewer(t){const e={};return e.name=t.symbol,e.symbol=t.symbol,e.molfile=t.molfile,this.getAllFormats().forEach((n=>{if(n===s.NI.HELM)return;const r=a.BF[n],o=Object.keys(r).filter((e=>r[e]===t.symbol));e[n]=o.join(", ")})),e}getAllMonomers(){const t=this.lib.getPolymerTypes();let e=[];for(const n of t){const t=this.lib.getMonomerSymbolsByType(n).map((t=>this.lib.getMonomer(n,t))).filter((t=>null!==t));e=e.concat(t)}return e}getMonomer(t){const e=this.lib.getMonomer("RNA",t);if(void 0===e)throw new Error(`SequenceTranslator: no monomer with symbol ${t}`);return e}static getInstance(){return void 0===i.instance&&(i.instance=new i),i.instance}getMolfileBySymbol(t){return this.getMonomer(t).molfile}getNaturalAnalogBySymbol(t){const e=this.getMonomer(t).naturalAnalog;if(!e)throw new Error(`ST: no natural analog for ${t}`);return e}isModification(t){return!!this.getMolfileBySymbol(t).includes("MODIFICATION")}getCodeToSymbolMap(t){return new Map(Object.entries(a.BF[t]))}getCodesByFormat(t){return Object.keys(a.BF[t])}getAllFormats(){return Object.keys(a.BF)}getTableForViewer(){const t=this.allMonomers.map((t=>this.formatMonomerForViewer(t)));return r.DataFrame.fromObjects(t)}getCodesToWeightsMap(){const t=new Map;return Object.entries(a.BF).forEach((([e,n])=>{Object.entries(n).forEach((([e,n])=>{const r=this.getMonomer(n).meta?.molecularWeight;t.set(e,r)}))})),t}}},947:(t,e,n)=>{n.d(e,{b:()=>a});var r=n(29),o=n(559),s=n(669);class a{sequence;constructor(t){this.sequence=t,this.libWrapper=o.A.getInstance()}libWrapper;getInvalidCodeIndex(t){if(t===r.NI.HELM)return this.sequence.length;const e=["r","d"],n=(0,s.xB)(this.libWrapper.getCodesByFormat(t));let o=0;for(;o<this.sequence.length;){const t=n.find((t=>t===this.sequence.substring(o,o+t.length)));if(!t)break;if(o>1&&r.mc.includes(this.sequence[o])&&e.includes(this.sequence[o-2]))break;if(e.includes(this.sequence[o+1])&&r.mc.includes(this.sequence[o])){o++;break}o+=t.length}return o===this.sequence.length&&(o=-1),o}isValidSequence(t){return-1===this.getInvalidCodeIndex(t)}}},340:(t,e,n)=>{n.d(e,{_package:()=>D});var r=n(976);n(469),ui,rxjs;var o=n(379),s=n.n(o),a=n(795),i=n.n(a),l=n(569),c=n.n(l),u=n(565),p=n.n(u),d=n(216),g=n.n(d),A=n(589),f=n.n(A),h=n(602),m={};m.styleTagTransform=f(),m.setAttributes=p(),m.insert=c().bind(null,"head"),m.domAPI=i(),m.insertStyleElement=g(),s()(h.Z,m),h.Z&&h.Z.locals&&h.Z.locals,n(947);var C=n(669);n(29),n(559),n(996),$;var b,v,w=n(490),E={};E.styleTagTransform=f(),E.setAttributes=p(),E.insert=c().bind(null,"head"),E.domAPI=i(),E.insertStyleElement=g(),s()(w.Z,E),w.Z&&w.Z.locals&&w.Z.locals,n(112),(v=b||(b={})).HEADER="V2000",v[v.NUM_OF_HEADER_LINES=3]="NUM_OF_HEADER_LINES",v[v.NUM_OF_COUNTS_DIGITS=3]="NUM_OF_COUNTS_DIGITS",v[v.ATOM_TYPE_COL=4]="ATOM_TYPE_COL",v[v.FIRST_BONDED_ATOM_COL=1]="FIRST_BONDED_ATOM_COL",v[v.BOND_TYPE_COL=3]="BOND_TYPE_COL",v[v.RGP_SHIFT=8]="RGP_SHIFT",v.RGP_LINE="M RGP",v.A_LINE="A ",v.END="M END",Error,n(893);var y=n(753),x={};function O(t,e){const n=document.createElement("canvas").getContext("2d");return n.font=String(e),2*n.measureText(t).width}x.styleTagTransform=f(),x.setAttributes=p(),x.insert=c().bind(null,"head"),x.domAPI=i(),x.insertStyleElement=g(),s()(y.Z,x),y.Z&&y.Z.locals&&y.Z.locals;Math.max(O("SS: 5'",17),O("AS: 3'",17)),Math.max(O("3'",17),O("5'",17)),n(803);var B,N,S=n(895);wu;class M{constructor(t,e,n){this.name=t,this.alphabet=e,this.cutoff=n}}(N=B||(B={})).FASTA="fasta",N.SEPARATOR="separator",N.HELM="helm";const T=new class{constructor(){this.fasta={peptide:new Set(["G","L","Y","S","E","Q","D","N","F","A","K","R","H","C","V","P","W","I","M","T"]),dna:new Set(["A","C","G","T"]),rna:new Set(["A","C","G","U"])}}};new M("PT",T.fasta.peptide,.5),new M("DNA",T.fasta.dna,.55),new M("RNA",T.fasta.rna,.55);class k extends Float32Array{}class R{static makePalette(t,e=!1,n=R){const r={};return t.forEach((t=>{const n=t[0],o=t[1];n.forEach(((t,n)=>{r[t]=this.colourPalette[o][e?0:n]}))})),new n(r)}constructor(t){this._palette=t}get(t){return this._palette[t]}}R.undefinedColor="rgb(100,100,100)",R.colourPalette={orange:["rgb(255,187,120)","rgb(245,167,100)","rgb(235,137,70)","rgb(205, 111, 71)"],all_green:["rgb(44,160,44)","rgb(74,160,74)","rgb(23,103,57)","rgb(30,110,96)","rgb(60,131,95)","rgb(24,110,79)","rgb(152,223,138)","rgb(182, 223, 138)","rgb(152, 193, 138)"],all_blue:["rgb(31,119,180)","rgb(23,190,207)","rgb(122, 102, 189)","rgb(158,218,229)","rgb(141, 124, 217)","rgb(31, 120, 150)"],magenta:["rgb(162,106,192)","rgb(197,165,224)","rgb(208,113,218)"],red:["rgb(214,39,40)","rgb(255,152,150)"],st_blue:["rgb(23,190,207)","rgb(158,218,229)","rgb(31,119,180)"],dark_blue:["rgb(31,119,180)","rgb(31, 120, 150)"],light_blue:["rgb(23,190,207)","rgb(158,218,229)","rgb(108, 218, 229)","rgb(23,190,227)"],lilac_blue:["rgb(124,102,211)","rgb(149,134,217)","rgb(97, 81, 150)"],dark_green:["rgb(23,103,57)","rgb(30,110,96)","rgb(60,131,95)","rgb(24,110,79)"],green:["rgb(44,160,44)","rgb(74,160,74)"],light_green:["rgb(152,223,138)","rgb(182, 223, 138)","rgb(152, 193, 138)"],st_green:["rgb(44,160,44)","rgb(152,223,138)","rgb(39, 174, 96)","rgb(74,160,74)"],pink:["rgb(247,182,210)"],brown:["rgb(140,86,75)","rgb(102, 62, 54)"],gray:["rgb(127,127,127)","rgb(199,199,199)","rgb(196,156,148)","rgb(222, 222, 180)"],yellow:["rgb(188,189,34)"],white:["rgb(230,230,230)"]};class L extends R{static get Lesk(){return void 0===this.lesk&&(this.lesk=this.makePalette([[["G","A","S","T"],"orange"],[["C","V","I","L","P","F","Y","M","W"],"all_green"],[["N","Q","H"],"magenta"],[["D","E"],"red"],[["K","R"],"all_blue"]],!1,L)),this.lesk}static get GrokGroups(){return void 0===this.grokGroups&&(this.grokGroups=this.makePalette([[["C","U"],"yellow"],[["G","P"],"red"],[["A","V","I","L","M","F","Y","W"],"all_green"],[["R","H","K"],"light_blue"],[["D","E"],"dark_blue"],[["S","T","N","Q"],"orange"]],!1,L)),this.grokGroups}static get RasMol(){return void 0===this.rasMol&&(this.rasMol=new L({D:"#E60A0A",E:"#E60A0A",C:"#E6E600",M:"#E6E600",K:"#145AFF",R:"#145AFF",S:"#FA9600",T:"#FA9600",F:"#3232AA",Y:"#3232AA",N:"#00DCDC",Q:"#00DCDC",G:"#EBEBEB",L:"#0F820F",V:"#0F820F",I:"#0F820F",A:"#C8C8C8",W:"#B45AB4",H:"#8282D2",P:"#DC9682",others:"#BEA06E"})),this.rasMol}get(t){const e=t in L.aaSynonyms?L.aaSynonyms[t]:t;return super.get(e)}}L.aaSynonyms={MeNle:"L",MeA:"A",MeG:"G",MeF:"F"};class I{static getPalette(t="grok"){switch(t){case"grok":return L.GrokGroups;case"lesk":return L.Lesk;default:throw new Error(`ChemPalette: scheme \`${t}\` does not exist`)}}static getInnerOuter(t){let e=0,n="",r="";for(const o of t)"("==o?e++:")"==o?e--:e?n+=o:r+=o;return isNaN(parseInt(n))?[r,n]:[r,""]}static getColorAAPivot(t="",e="grok"){const n=this.getPalette(e);let[r,o]=this.getInnerOuter(t);if(r=r.length>6?`${r.slice(0,3)}...`:r,o=o.length>6?`${o.slice(0,3)}...`:o,1==t.length||"("==t[1]){const e=t[0]?.toUpperCase();return e in n?[n.get(e),e,o,1]:[this.undefinedColor,r,o,1]}if("d"==t[0]&&t[1]in n&&(2==t.length||"("==t[2])){const e=t[1]?.toUpperCase();return e in n?[n.get(e),e,o,2]:[this.undefinedColor,r,o,2]}if(t.substring(0,3)in this.AAFullNames&&(3==t.length||"("==t[3])){const e=this.AAFullNames[t.substring(0,3)];return e in n?[n.get(e),e,o,3]:[this.undefinedColor,r,o,3]}if(t[0]?.toLowerCase()==t[0]&&t.substring(1,3)in this.AAFullNames&&(4==t.length||"("==t[4])){const e=this.AAFullNames[t.substring(1,3)];return e in n?[n.get(e),e,o,4]:[this.undefinedColor,r,o,4]}return[this.undefinedColor,r,o,0]}}I.SemType="Aminoacids",I.SemTypeMultipleAlignment="AminoacidsMultipleAlignment",I.undefinedColor="rgb(100,100,100)",I.Names={G:"Glycine",L:"Leucine",Y:"Tyrosine",S:"Serine",E:"Glutamic acid",Q:"Glutamine",D:"Aspartic acid",N:"Asparagine",F:"Phenylalanine",A:"Alanine",K:"Lysine",R:"Arginine",H:"Histidine",C:"Cysteine",V:"Valine",P:"Proline",W:"Tryptophan",I:"Isoleucine",M:"Methionine",T:"Threonine"},I.AASmiles={G:"NCC(=O)O",L:"N[C@H](CC(C)C)C(=O)O",Y:"NC(CC1=CC=C(O)C=C1)C(=O)O",S:"NC(CO)C(=O)O",E:"N[C@@H](CCC(O)=O)C(=O)O",Q:"N[C@@H](CCC(N)=O)C(=O)O",D:"N[C@@H](CC(O)=O)C(=O)O",N:"N[C@@H](CC(N)=O)C(=O)O",F:"NC(CC1=CC=CC=C1)C(=O)O",A:"N[C@H](C)C(=O)O",K:"NC(CCCCN)C(=O)O",R:"N[C@H](CCCNC(=N)C)C(=O)O",H:"NC(CC1=CN=C[N]1)C(=O)O",C:"N[C@@H](CS)C(=O)O",V:"NC(C(C)C)C(=O)O",P:"N(CCC1)C1C(=O)O",W:"N[C@@H](Cc1c2ccccc2n([H])c1)C(=O)O",I:"N[C@H]([C@H](C)CC)C(=O)O",M:"NC(CCSC)C(=O)O",T:"NC(C(O)C)C(=O)O"},I.AASmilesTruncated={G:"*C*",L:"CC(C)C[C@H](*)*",Y:"C1=CC(=CC=C1CC(*)*)O",S:"OCC(*)C*",E:"*[C@@H](CCC(O)=O)*",Q:"*N[C@@H](CCC(N)=O)*",D:"*[C@@H](CC(O)=O)*",N:"*[C@@H](CC(N)=O)*",F:"C1=CC=C(C=C1)CC(*)*",A:"C[C@H](*)*",K:"C(CCN)CC(*)*",R:"*[C@H](CCCNC(=N)C)*",H:"C1=C(NC=N1)CC(*)*",C:"C([C@@H](*)*)S",V:"CC(C)C(*)*",P:"C1CCN(*)C1*",W:"*[C@@H](Cc1c2ccccc2n([H])c1)*",I:"CC[C@H](C)[C@H](*)*",M:"CSCCC(*)*",T:"CC(O)C(*)*"},I.AAFullNames={Ala:"A",Arg:"R",Asn:"N",Asp:"D",Cys:"C",Gln:"Q",Glu:"E",Gly:"G",His:"H",Ile:"I",Leu:"L",Lys:"K",Met:"M",Phe:"F",Pro:"P",Ser:"S",Thr:"T",Trp:"W",Tyr:"Y",Val:"V"};class G{}G.SemType="Nucleotides",G.SemTypeMultipleAlignment="NucleotidesMultipleAlignment",G.Names={A:"Adenine",C:"Cytosine",G:"Guanine",T:"Thymine",U:"Uracil"};class F{static hashCode(t){let e=0;if(0===t.length)return e;for(let n=0;n<t.length;n++)e=(e<<5)-e+t.charCodeAt(n),e|=0;return e}}class H{}class U extends H{static buildPalette(){return[].concat(...Object.values(R.colourPalette))}get(t){const e=F.hashCode(t)%U.palette.length;return function(t){if(null==t)return"rgb(100,100,100)";const e=r.Color.fromHtml(t),n=r.Color.g(e),o=r.Color.r(e),s=r.Color.b(e),a=Math.sqrt(Math.pow(0-o,2)+Math.pow(0-n,2)+Math.pow(0-s,2));return a>210?`rgb(${o/a*210},${n/a*210},${s/a*210})`:r.Color.toRgb(e)}(U.palette[e])}}U.palette=U.buildPalette();new Uint32Array(65536);var _,P;(P=_||(_={})).HAMMING="Hamming",P.LEVENSHTEIN="Levenshtein",P.NEEDLEMANN_WUNSCH="Needlemann-Wunsch",_.HAMMING,_.LEVENSHTEIN,_.NEEDLEMANN_WUNSCH,new class{constructor(){this.uhTemp=`units-handler.${r.SEMTYPE.MACROMOLECULE}`}},B.FASTA,B.SEPARATOR,B.HELM,n(61);class j extends r.Package{_monomerLib;get monomerLib(){if(!this._monomerLib)throw new Error("Monomer lib not loaded");return this._monomerLib}async initMonomerLib(){if(void 0!==this._monomerLib)return;const t=r.TaskBarProgressIndicator.create("Initializing Oligo Toolkit monomer library ...");await(0,C.Y3)((async()=>{const t=await async function(){const t=r.Func.find({package:"Bio",name:"getMonomerLibHelper"});if(0===t.length)throw new Error('Package "Bio" must be installed for MonomerLibHelper.');return(await t[0].prepare().call()).getOutputParamValue()}();this._monomerLib=await t.readLibrary(S.BX,S.a_)}),(()=>t.close()))}}const D=new j},976:t=>{t.exports=DG},469:t=>{t.exports=grok}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var s=e[r]={id:r,exports:{}};return t[r](s,s.exports,n),s.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.nc=void 0;var r={};(()=>{n.r(r),n.d(r,{_package:()=>h,test:()=>m,tests:()=>e.QK});var t=n(976),e=n(61),o=n(29),s=n(893),a=n(996);const i={Axolabs:{UfAfsCfsGfuacg:"RNA1{[fR](U)p.[fR](A)[sp].[fR](C)[sp].[fR](G)p.[25r](U)p.[25r](A)p.[25r](C)p.[25r](G)}$$$$"},BioSpring:{"AT*GC*123456789":"RNA1{r(A)p.r(T)[sp].r(G)p.r(C)[sp].[fR](U)p.[fR](A)p.[fR](C)p.[fR](G)p.[25r](U)p.[25r](A)p.[25r](C)p.[25r](G)p.d([m5C])}$$$$"},Mermade12:{hefglijkLIJKHEFG:"RNA1{[25r](U)[sp].[25r](A)[sp].[25r](C)[sp].[25r](G)[sp].[fR](U)[sp].[fR](A)[sp].[fR](C)[sp].[fR](G)[sp].[fR](U)p.[fR](A)p.[fR](C)p.[fR](G)p.[25r](U)p.[25r](A)p.[25r](C)p.[25r](G)}$$$$"}},l={"RNA1{[fR](U)p.[fR](A)[sp].[fR](C)[sp].[fR](G)p.[25r](U)p.[25r](A)p.[25r](C)p.[25r](G)}$$$$":"UACGUACG","RNA1{r(A)p.r(T)[sp].r(G)p.r(C)[sp].[fR](U)p.[fR](A)p.[fR](C)p.[fR](G)p.[25r](U)p.[25r](A)p.[25r](C)p.[25r](G)p.d([m5C])}$$$$":"ATGCUACGUACGC","RNA1{[25r](U)[sp].[25r](A)[sp].[25r](C)[sp].[25r](G)[sp].[fR](U)[sp].[fR](A)[sp].[fR](C)[sp].[fR](G)[sp].[fR](U)p.[fR](A)p.[fR](C)p.[fR](G)p.[25r](U)p.[25r](A)p.[25r](C)p.[25r](G)}$$$$":"UACGUACGUACGUACG"};var c=n(340);function u(t,e){return new s.I(t,e).convertTo(o.NI.HELM)}function p(t,e){return new s.I(t,o.NI.HELM).convertTo(e)}(0,e.W3)("Formats to HELM",(()=>{(0,e.bb)((async()=>{await(0,a.VO)(),await c._package.initMonomerLib()}));for(const t of Object.keys(i))for(const[n,r]of Object.entries(i[t]))(0,e.Bu)(`${t} to HELM`,(async()=>{const o=r,s=u(n,t);(0,e.l_)(s,o)}))})),(0,e.W3)("HELM to Formats",(()=>{(0,e.bb)((async()=>{await(0,a.VO)(),await c._package.initMonomerLib()}));for(const t of Object.keys(i))for(const[n,r]of Object.entries(i[t]))(0,e.Bu)(`${t} to HELM`,(async()=>{const o=n,s=p(r,t);(0,e.l_)(s,o)}))}));var d=n(112),g=n(559);(0,e.W3)("HELM to Nucleotides",(()=>{(0,e.bb)((async()=>{await(0,a.VO)(),await c._package.initMonomerLib()})),Object.entries(l).forEach((([t,n],r)=>{(0,e.Bu)(`Sequence ${r+1} to nucleotides`,(async()=>{const r=n,o=(0,d.C)(t,g.A.getInstance());(0,e.l_)(o,r)}))}))}));var A=n(947);const f={[o.NI.AXOLABS]:"Afcgacsu",[o.NI.HELM]:"RNA1{[fR](A)p.[25r](C)p.[25r](G)p.[25r](A)p.[25r](C)[sp].[25r](U)}$$$$"};(0,e.W3)("Formats support",(()=>{(0,e.bb)((async()=>{await(0,a.VO)(),await c._package.initMonomerLib()})),Object.entries(f).forEach((([t,n])=>{(0,e.Bu)(`All formats for ${t}`,(async()=>{const r=function(t,e){const n=new A.b(t).getInvalidCodeIndex(e);return(0,d.D)(t,n,e)}(n,t),o=Object.keys(r).length,s=Object.keys(i).length+1;(0,e.l_)(!0,s<=o)}))}))}));const h=new t.Package;async function m(n,r,o){const s=await(0,e.ci)({category:n,test:r,testContext:o});return t.DataFrame.fromObjects(s)}})(),sequencetranslator_test=r})();
|
|
2
2
|
//# sourceMappingURL=package-test.js.map
|