@rnacanvas/drop-interface 8.0.0 → 10.0.0

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.
Files changed (2) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.dropInterface=t():e.dropInterface=t()}(this,()=>(()=>{var e={793(e){var t;t=()=>(()=>{var e={297(e){var t;t=()=>(()=>{var e={106(e){var t;t=()=>(()=>{var e={992:function(e){var t;t=()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{KeyBinding:()=>p});var r,n,i,o,s,a,l,u,c,h,f=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},d=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class p{constructor(e,t,a){r.add(this),this.key=e,n.set(this,void 0),i.set(this,void 0),o.set(this,void 0),s.set(this,void 0),f(this,n,t,"f"),f(this,i,e=>d(this,r,"m",h).call(this,e),"f"),f(this,o,a,"f")}get owner(){return d(this,s,"f")}set owner(e){var t;null===(t=d(this,s,"f"))||void 0===t||t.removeEventListener("keydown",d(this,i,"f")),null==e||e.addEventListener("keydown",d(this,i,"f"),{passive:!1}),f(this,s,e,"f")}}return n=new WeakMap,i=new WeakMap,o=new WeakMap,s=new WeakMap,r=new WeakSet,a=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.altKey)&&void 0!==t&&t},l=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.ctrlKey)&&void 0!==t&&t},u=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.metaKey)&&void 0!==t&&t},c=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.shiftKey)&&void 0!==t&&t},h=function(e){this.owner&&this.owner===document.activeElement&&e.key.toUpperCase()===this.key.toUpperCase()&&e.altKey===d(this,r,"a",a)&&e.ctrlKey===d(this,r,"a",l)&&e.metaKey===d(this,r,"a",u)&&e.shiftKey===d(this,r,"a",c)&&(e.preventDefault(),d(this,n,"f").call(this))},t})(),e.exports=t()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function e(e){if(e.length>0)return e[0];throw new Error("Array is empty.")}function t(e){if(e.length>0)return e[e.length-1];throw new Error("Array is empty.")}function i(e){if(e.length<3)throw new Error("Array has less than 3 items.");if(e.length%2==0)throw new Error("Array has an even number of items.");let t=Math.floor(e.length/2);return[e[t-1],e[t],e[t+1]]}function o(e){if(e.length<4)throw new Error("Array has less than 4 items.");if(e.length%2!=0)throw new Error("Array has an odd number of items.");let t=Math.floor(e.length/2);return[e[t-2],e[t-1],e[t],e[t+1]]}function s(e){return e.split(/\r\n|\r|\n/)}function a(e){try{return JSON.stringify(e),!0}catch(e){return!1}}function l(e){return e.map(e=>({v:e,priority:Math.random()})).sort((e,t)=>e.priority-t.priority).map(({v:e})=>e)}function u(e){return e===document.activeElement}function c(e){return!!document.activeElement&&e.contains(document.activeElement)}r.r(n),r.d(n,{DownloadableFile:()=>m,EventfulSet:()=>w,FiniteStack:()=>O,KeyBinding:()=>h.KeyBinding,containsFocus:()=>c,detectMacOS:()=>d,detectWindows:()=>f,first:()=>e,hasFocus:()=>u,isJSONSerializable:()=>a,isURL:()=>T,last:()=>t,middleFour:()=>o,middleThree:()=>i,shuffled:()=>l,splitLines:()=>s});var h=r(992);function f(){return-1!==navigator.userAgent.indexOf("Windows")}function d(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(e){return!1}}var p,y=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},v=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class m{constructor(e,t,r){p.set(this,void 0),this.name=null!=e?e:"Unnamed.txt",this.content=null!=t?t:"",y(this,p,null==r?void 0:r.type,"f")}get type(){return null!=v(this,p,"f")?v(this,p,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(e){y(this,p,e,"f")}download(){let e=new File([this.content],this.name,{type:this.type}),t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download=e.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(t)}}p=new WeakMap;class w{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(e){return this.underlyingSet.has(e)}include(e){return this.includes(e)}addAll(e){let t=[...e];0!=t.length&&(t.every(e=>this.includes(e))||(t.forEach(e=>this.underlyingSet.add(e)),this.callEventListeners("change")))}removeAll(e){let t=[...e];0!=t.length&&(t.every(e=>!this.includes(e))||(t.forEach(e=>this.underlyingSet.delete(e)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(e,t){this.eventListeners[e].push(t)}callEventListeners(e){this.eventListeners[e].forEach(e=>e())}removeEventListener(e,t){this.eventListeners[e]=this.eventListeners[e].filter(e=>e!==t)}}var g,b,E,S,N=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class O{constructor(e){g.add(this),this.maxSize=e,b.set(this,[]),E.set(this,{change:[]})}get size(){return N(this,b,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(e,t){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,[])}(this,b),N(this,g,"m",S).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return N(this,b,"f")[N(this,b,"f").length-1]}push(e){N(this,b,"f").push(e),this.size>this.maxSize&&N(this,b,"f").shift(),N(this,g,"m",S).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let e=N(this,b,"f").pop();return N(this,g,"m",S).call(this,"change"),e}addEventListener(e,t){N(this,E,"f")[e].push(t)}removeEventListener(e,t){N(this,E,"f")[e]=N(this,E,"f")[e].filter(e=>e!==t)}}function T(e){try{return new URL(e),!0}catch(e){return!1}}b=new WeakMap,E=new WeakMap,g=new WeakSet,S=function(e){N(this,E,"f")[e].forEach(e=>e())}})(),n})(),e.exports=t()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{isCT:()=>f,parseCT:()=>t});var e=r(106);function t(t){let r=function(e){let t=e.findIndex(e=>!i(e)&&!o(e));if(t<0)throw new Error("Unable to find the start of the structure.");let r=[...e].reverse().findIndex(e=>!i(e)&&!o(e));if(r<0)throw new Error("Unable to find the end of the structure.");return r=e.length-r-1,e.slice(t,r+1)}((0,e.splitLines)(t));return{description:s(r),sequence:a(r),positionPairs:l(r),numberingOffset:u(r)}}function i(e){return 0==e.trim().length}function o(e){return"#"==e.trim().charAt(0)}function s(e){if(0==e.length)return;let t=e[0],r=c(t);if(r.length<2)return;let n=r[0];return t.slice(t.indexOf(n)+n.length).trim()}function a(e){return e.slice(1).map(e=>{let t=c(e);if(t.length<2)throw new Error("Line is missing a character.");return t[1]}).join("")}function l(e){let t=e.slice(1),r=[];return t.forEach((e,t)=>{let n=t+1,i=c(e);if(i.length>=5){let e=Number.parseFloat(i[4]);if(Number.isNaN(e))throw new Error("Partner positions must be numbers.");if(!Number.isInteger(e))throw new Error("Partner positions must be integers.");0!=e&&n<=e&&r.push([n,e])}}),r}function u(e){if(e.length<2)return 0;let t=c(e[1]);if(t.length<6)return 0;let r=Number.parseFloat(t[5]);return Number.isNaN(r)?0:Number.isInteger(r)?r-1:0}function c(e){return function(e){return e.split(/\s/)}(e).filter(h)}function h(e){return e.length>0}function f(r){let n;try{n=t(r)}catch(e){return!1}if(0==n.sequence.length)return!1;let i=(0,e.splitLines)(r);if(i=i.filter(t=>!function(e){return 0==e.length}(t)&&!function(e){return 0==e.trim().length}(t)&&!function(t){return!((0,e.splitLines)(t).length>1)&&"#"==t.trim().charAt(0)}(t)),0==i.length)return!1;let o=(0,e.first)(i),s=Number.parseFloat(o.trim().split(/\s+/)[0]);if(!Number.isInteger(s))return!1;let a=i.slice(1);return 0!=a.length&&a.every(e=>{let t=e.trim().split(/\s+/);if(t.length<5)return!1;let r=Number.parseFloat(t[4]);return Number.isInteger(r)})}})(),n})(),e.exports=t()},291(e){var t;t=()=>(()=>{var e={106(e){var t;t=()=>(()=>{var e={992(e){var t;t=()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{KeyBinding:()=>p});var r,n,i,o,s,a,l,u,c,h,f=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},d=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class p{constructor(e,t,a){r.add(this),this.key=e,n.set(this,void 0),i.set(this,void 0),o.set(this,void 0),s.set(this,void 0),f(this,n,t,"f"),f(this,i,e=>d(this,r,"m",h).call(this,e),"f"),f(this,o,a,"f")}get owner(){return d(this,s,"f")}set owner(e){var t;null===(t=d(this,s,"f"))||void 0===t||t.removeEventListener("keydown",d(this,i,"f")),null==e||e.addEventListener("keydown",d(this,i,"f"),{passive:!1}),f(this,s,e,"f")}}return n=new WeakMap,i=new WeakMap,o=new WeakMap,s=new WeakMap,r=new WeakSet,a=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.altKey)&&void 0!==t&&t},l=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.ctrlKey)&&void 0!==t&&t},u=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.metaKey)&&void 0!==t&&t},c=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.shiftKey)&&void 0!==t&&t},h=function(e){this.owner&&this.owner===document.activeElement&&e.key.toUpperCase()===this.key.toUpperCase()&&e.altKey===d(this,r,"a",a)&&e.ctrlKey===d(this,r,"a",l)&&e.metaKey===d(this,r,"a",u)&&e.shiftKey===d(this,r,"a",c)&&(e.preventDefault(),d(this,n,"f").call(this))},t})(),e.exports=t()},854(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function n(e){return r(e)&&Number.isFinite(e)}function i(e){return r(e)&&!Number.isFinite(e)}function o(e){return n(e)&&e>0}function s(e){return n(e)&&e>=0}function a(e){return"string"==typeof e}function l(e){return!!a(e)&&0==e.trim().length}function u(e){if(!a(e))return!1;try{return JSON.parse(e),!0}catch{return!1}}function c(e){try{return JSON.stringify(e),!0}catch{return!1}}function h(e){return null==e}function f(e){return"object"==typeof e&&null!==e}function d(e){return Array.isArray(e)}function p(e){return d(e)&&0==e.length}function y(e){return d(e)&&e.length>0}function v(e){return d(e)&&e.every(r)}function m(e){return v(e)&&e.length>0}function w(e){return d(e)&&e.every(n)}function g(e){return d(e)&&e.every(i)}function b(e){return d(e)&&e.every(a)}function E(e){return b(e)&&e.length>0}return e.r(t),e.d(t,{isArray:()=>d,isEmptyArray:()=>p,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>w,isJSON:()=>u,isJSONSerializable:()=>c,isNonEmptyArray:()=>y,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>E,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>g,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>f,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>o,isString:()=>a,isStringsArray:()=>b,isWhitespace:()=>l}),t})()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function e(e){if(e.length>0)return e[0];throw new Error("Array is empty.")}function t(e){if(e.length>0)return e[e.length-1];throw new Error("Array is empty.")}function i(e){if(e.length<3)throw new Error("Array has less than 3 items.");if(e.length%2==0)throw new Error("Array has an even number of items.");let t=Math.floor(e.length/2);return[e[t-1],e[t],e[t+1]]}function o(e){if(e.length<4)throw new Error("Array has less than 4 items.");if(e.length%2!=0)throw new Error("Array has an odd number of items.");let t=Math.floor(e.length/2);return[e[t-2],e[t-1],e[t],e[t+1]]}r.r(n),r.d(n,{DownloadableFile:()=>w,EventfulSet:()=>g,FiniteStack:()=>T,KeyBinding:()=>f.KeyBinding,containsFocus:()=>h,detectMacOS:()=>p,detectWindows:()=>d,first:()=>e,hasFocus:()=>c,isJSON:()=>s.isJSON,isJSONSerializable:()=>s.isJSONSerializable,isURL:()=>j,last:()=>t,middleFour:()=>o,middleThree:()=>i,removeWhitespace:()=>a,shuffled:()=>u,splitLines:()=>l});var s=r(854);function a(e){return[...e].filter(e=>!(0,s.isWhitespace)(e)).join("")}function l(e){return e.split(/\r\n|\r|\n/)}function u(e){return e.map(e=>({v:e,priority:Math.random()})).sort((e,t)=>e.priority-t.priority).map(({v:e})=>e)}function c(e){return e===document.activeElement}function h(e){return!!document.activeElement&&e.contains(document.activeElement)}var f=r(992);function d(){return-1!==navigator.userAgent.indexOf("Windows")}function p(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(e){return!1}}var y,v=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},m=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class w{constructor(e,t,r){y.set(this,void 0),this.name=null!=e?e:"Unnamed.txt",this.content=null!=t?t:"",v(this,y,null==r?void 0:r.type,"f")}get type(){return null!=m(this,y,"f")?m(this,y,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(e){v(this,y,e,"f")}download(){let e=new File([this.content],this.name,{type:this.type}),t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download=e.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(t)}}y=new WeakMap;class g{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(e){return this.underlyingSet.has(e)}include(e){return this.includes(e)}addAll(e){let t=[...e];0!=t.length&&(t.every(e=>this.includes(e))||(t.forEach(e=>this.underlyingSet.add(e)),this.callEventListeners("change")))}removeAll(e){let t=[...e];0!=t.length&&(t.every(e=>!this.includes(e))||(t.forEach(e=>this.underlyingSet.delete(e)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(e,t){this.eventListeners[e].push(t)}callEventListeners(e){this.eventListeners[e].forEach(e=>e())}removeEventListener(e,t){this.eventListeners[e]=this.eventListeners[e].filter(e=>e!==t)}}var b,E,S,N,O=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class T{constructor(e){b.add(this),this.maxSize=e,E.set(this,[]),S.set(this,{change:[]})}get size(){return O(this,E,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(e,t){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,[])}(this,E),O(this,b,"m",N).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return O(this,E,"f")[O(this,E,"f").length-1]}push(e){O(this,E,"f").push(e),this.size>this.maxSize&&O(this,E,"f").shift(),O(this,b,"m",N).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let e=O(this,E,"f").pop();return O(this,b,"m",N).call(this,"change"),e}addEventListener(e,t){O(this,S,"f")[e].push(t)}removeEventListener(e,t){O(this,S,"f")[e]=O(this,S,"f")[e].filter(e=>e!==t)}}function j(e){try{return new URL(e),!0}catch(e){return!1}}E=new WeakMap,S=new WeakMap,b=new WeakSet,N=function(e){O(this,S,"f")[e].forEach(e=>e())}})(),n})(),e.exports=t()},854(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function n(e){return r(e)&&Number.isFinite(e)}function i(e){return r(e)&&!Number.isFinite(e)}function o(e){return n(e)&&e>0}function s(e){return n(e)&&e>=0}function a(e){return"string"==typeof e}function l(e){return""===e}function u(e){return a(e)&&!l(e)}function c(e){return!!a(e)&&0==e.trim().length}function h(e){if(!a(e))return!1;try{return JSON.parse(e),!0}catch{return!1}}function f(e){try{return JSON.stringify(e),!0}catch{return!1}}function d(e){return!!e}function p(e){return!e}function y(e){return null==e}function v(e){return"object"==typeof e&&null!==e}function m(e){return Array.isArray(e)}function w(e){return m(e)&&0==e.length}function g(e){return m(e)&&e.length>0}function b(e){return m(e)&&e.every(r)}function E(e){return b(e)&&e.length>0}function S(e){return m(e)&&e.every(n)}function N(e){return m(e)&&e.every(i)}function O(e){return m(e)&&e.every(a)}function T(e){return O(e)&&e.length>0}return e.r(t),e.d(t,{isArray:()=>m,isEmptyArray:()=>w,isEmptyString:()=>l,isFalsy:()=>p,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>h,isJSONSerializable:()=>f,isNonEmptyArray:()=>g,isNonEmptyNumbersArray:()=>E,isNonEmptyString:()=>u,isNonEmptyStringsArray:()=>T,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>v,isNullish:()=>y,isNumber:()=>r,isNumbersArray:()=>b,isPositiveFiniteNumber:()=>o,isString:()=>a,isStringsArray:()=>O,isTruthy:()=>d,isWhitespace:()=>c}),t})()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{isFASTA:()=>y,parseFASTA:()=>p,parseStructure:()=>d});var e,t=r(854),i=r(106),o=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class s{constructor(r){if(e.set(this,void 0),""==r)throw new Error("Text item text is empty.");if((0,t.isWhitespace)(r))throw new Error("Text item text is whitespace.");if((0,i.splitLines)(r).length>1)throw new Error(`Text item text contains multiple lines:\n\n${r}`);if((0,i.removeWhitespace)(r).length!=r.length)throw new Error(`Text item text contains whitespace:\n\n${r}`);!function(e,t,r){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,r)}(this,e,r)}toString(){return o(this,e,"f")}get length(){return o(this,e,"f").length}isInteger(){let t=Number.parseFloat(o(this,e,"f"));return Number.isInteger(t)&&t.toString()===o(this,e,"f")}isDotBracket(){return[...o(this,e,"f")].every(e=>a.has(e))}}e=new WeakMap;const a=new Set([...".()[]{}<>"]);var l,u,c,h=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class f{constructor(e){if(l.add(this),u.set(this,void 0),(0,i.splitLines)(e).length>1)throw new Error(`Line text is not a single line:\n\n${e}`);!function(e,t,r){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,r)}(this,u,e)}toString(){return h(this,u,"f")}isEmpty(){return(0,t.isEmptyString)(h(this,u,"f"))}isWhitespace(){return(0,t.isWhitespace)(h(this,u,"f"))}get firstCharacter(){let e=h(this,u,"f").charAt(0);return""==e?void 0:e}trimmed(){return new f(h(this,u,"f").trim())}get items(){return h(this,l,"a",c)}get numItems(){return h(this,l,"a",c).length}get firstItem(){let e=h(this,l,"a",c);return 0==e.length?void 0:(0,i.first)(e)}get secondItem(){let e=h(this,l,"a",c);return e.length<2?void 0:e[1]}get lastItem(){let e=h(this,l,"a",c);return 0==e.length?void 0:(0,i.last)(e)}isNumbered(){var e,t;return null!==(t=null===(e=this.firstItem)||void 0===e?void 0:e.isInteger())&&void 0!==t&&t}unnumbered(){var e,t;if(!this.isNumbered())return new f(h(this,u,"f"));let r=h(this,u,"f");r=r.trimStart();let n=null!==(t=null===(e=this.firstItem)||void 0===e?void 0:e.length)&&void 0!==t?t:0;return r=r.substring(n),r=r.trimStart(),new f(r)}}function d(e){let t=(0,i.splitLines)(e).map(e=>new f(e));t=t.filter(e=>!e.isEmpty()&&!e.isWhitespace()),1==t.length&&(0,i.first)(t).isNumbered()&&(t=[(0,i.first)(t).unnumbered()]),t.length>1&&t.slice(1).every(e=>e.isNumbered())&&(t=t.map(e=>e.unnumbered())),t=t.filter(e=>e.numItems>0);let r=t.findIndex(e=>{var t;return null===(t=e.firstItem)||void 0===t?void 0:t.isDotBracket()}),n=(r<0?t:t.slice(0,r)).flatMap(e=>[...e.items]).map(e=>e.toString()).join(""),o=(r<0?[]:t.slice(r)).flatMap(e=>[...e.items]),s="",a="";return o.forEach(e=>{e.isDotBracket()&&!a?s+=e.toString():(a+=a?" ":"",a+=e.toString())}),s.length>n.length&&(a=s.substring(n.length)+" "+a,s=s.substring(0,n.length)),a&&console.log(`Trailing text that isn't drawn:\n\n${a}`),{sequence:n,dotBracket:s}}function p(e){let t=(0,i.splitLines)(e).map(e=>new f(e));if(t=t.filter(e=>!e.isEmpty()&&!e.isWhitespace()),0==t.length)throw new Error("FASTA text is empty.");if(">"!=(0,i.first)(t).trimmed().firstCharacter)throw new Error(`FASTA text doesn't begin with a header line (i.e., a line starting with ">"):\n\n${e}`);let r=(0,i.first)(t).trimmed().toString().substring(1),n=t.slice(1).findIndex(e=>">"==e.trimmed().firstCharacter);n>=0&&console.warn("Multiple sequences and/or structures found in FASTA text. (Only the first sequence and/or structure is drawn.)");let o=n<0?t.slice(1):t.slice(1,1+n),{sequence:s,dotBracket:a}=d(o.map(e=>e.toString()).join("\n"));return{header:r,sequence:s,dotBracket:a}}function y(e){try{return p(e),!0}catch{return!1}}u=new WeakMap,l=new WeakSet,c=function(){return h(this,u,"f").split(/\s+/).filter(t.isTruthy).map(e=>new s(e))}})(),n})(),e.exports=t()},106(e){var t;t=()=>(()=>{var e={992(e){var t;t=()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{KeyBinding:()=>p});var r,n,i,o,s,a,l,u,c,h,f=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},d=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class p{constructor(e,t,a){r.add(this),this.key=e,n.set(this,void 0),i.set(this,void 0),o.set(this,void 0),s.set(this,void 0),f(this,n,t,"f"),f(this,i,e=>d(this,r,"m",h).call(this,e),"f"),f(this,o,a,"f")}get owner(){return d(this,s,"f")}set owner(e){var t;null===(t=d(this,s,"f"))||void 0===t||t.removeEventListener("keydown",d(this,i,"f")),null==e||e.addEventListener("keydown",d(this,i,"f"),{passive:!1}),f(this,s,e,"f")}}return n=new WeakMap,i=new WeakMap,o=new WeakMap,s=new WeakMap,r=new WeakSet,a=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.altKey)&&void 0!==t&&t},l=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.ctrlKey)&&void 0!==t&&t},u=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.metaKey)&&void 0!==t&&t},c=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.shiftKey)&&void 0!==t&&t},h=function(e){this.owner&&this.owner===document.activeElement&&e.key.toUpperCase()===this.key.toUpperCase()&&e.altKey===d(this,r,"a",a)&&e.ctrlKey===d(this,r,"a",l)&&e.metaKey===d(this,r,"a",u)&&e.shiftKey===d(this,r,"a",c)&&(e.preventDefault(),d(this,n,"f").call(this))},t})(),e.exports=t()},854(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function n(e){return r(e)&&Number.isFinite(e)}function i(e){return r(e)&&!Number.isFinite(e)}function o(e){return n(e)&&e>0}function s(e){return n(e)&&e>=0}function a(e){return"string"==typeof e}function l(e){return!!a(e)&&0==e.trim().length}function u(e){if(!a(e))return!1;try{return JSON.parse(e),!0}catch{return!1}}function c(e){try{return JSON.stringify(e),!0}catch{return!1}}function h(e){return null==e}function f(e){return"object"==typeof e&&null!==e}function d(e){return Array.isArray(e)}function p(e){return d(e)&&0==e.length}function y(e){return d(e)&&e.length>0}function v(e){return d(e)&&e.every(r)}function m(e){return v(e)&&e.length>0}function w(e){return d(e)&&e.every(n)}function g(e){return d(e)&&e.every(i)}function b(e){return d(e)&&e.every(a)}function E(e){return b(e)&&e.length>0}return e.r(t),e.d(t,{isArray:()=>d,isEmptyArray:()=>p,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>w,isJSON:()=>u,isJSONSerializable:()=>c,isNonEmptyArray:()=>y,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>E,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>g,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>f,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>o,isString:()=>a,isStringsArray:()=>b,isWhitespace:()=>l}),t})()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function e(e){if(e.length>0)return e[0];throw new Error("Array is empty.")}function t(e){if(e.length>0)return e[e.length-1];throw new Error("Array is empty.")}function i(e){if(e.length<3)throw new Error("Array has less than 3 items.");if(e.length%2==0)throw new Error("Array has an even number of items.");let t=Math.floor(e.length/2);return[e[t-1],e[t],e[t+1]]}function o(e){if(e.length<4)throw new Error("Array has less than 4 items.");if(e.length%2!=0)throw new Error("Array has an odd number of items.");let t=Math.floor(e.length/2);return[e[t-2],e[t-1],e[t],e[t+1]]}r.r(n),r.d(n,{DownloadableFile:()=>w,EventfulSet:()=>g,FiniteStack:()=>T,KeyBinding:()=>f.KeyBinding,containsFocus:()=>h,detectMacOS:()=>p,detectWindows:()=>d,first:()=>e,hasFocus:()=>c,isJSON:()=>s.isJSON,isJSONSerializable:()=>s.isJSONSerializable,isURL:()=>j,last:()=>t,middleFour:()=>o,middleThree:()=>i,removeWhitespace:()=>a,shuffled:()=>u,splitLines:()=>l});var s=r(854);function a(e){return[...e].filter(e=>!(0,s.isWhitespace)(e)).join("")}function l(e){return e.split(/\r\n|\r|\n/)}function u(e){return e.map(e=>({v:e,priority:Math.random()})).sort((e,t)=>e.priority-t.priority).map(({v:e})=>e)}function c(e){return e===document.activeElement}function h(e){return!!document.activeElement&&e.contains(document.activeElement)}var f=r(992);function d(){return-1!==navigator.userAgent.indexOf("Windows")}function p(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(e){return!1}}var y,v=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},m=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class w{constructor(e,t,r){y.set(this,void 0),this.name=null!=e?e:"Unnamed.txt",this.content=null!=t?t:"",v(this,y,null==r?void 0:r.type,"f")}get type(){return null!=m(this,y,"f")?m(this,y,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(e){v(this,y,e,"f")}download(){let e=new File([this.content],this.name,{type:this.type}),t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download=e.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(t)}}y=new WeakMap;class g{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(e){return this.underlyingSet.has(e)}include(e){return this.includes(e)}addAll(e){let t=[...e];0!=t.length&&(t.every(e=>this.includes(e))||(t.forEach(e=>this.underlyingSet.add(e)),this.callEventListeners("change")))}removeAll(e){let t=[...e];0!=t.length&&(t.every(e=>!this.includes(e))||(t.forEach(e=>this.underlyingSet.delete(e)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(e,t){this.eventListeners[e].push(t)}callEventListeners(e){this.eventListeners[e].forEach(e=>e())}removeEventListener(e,t){this.eventListeners[e]=this.eventListeners[e].filter(e=>e!==t)}}var b,E,S,N,O=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class T{constructor(e){b.add(this),this.maxSize=e,E.set(this,[]),S.set(this,{change:[]})}get size(){return O(this,E,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(e,t){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,[])}(this,E),O(this,b,"m",N).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return O(this,E,"f")[O(this,E,"f").length-1]}push(e){O(this,E,"f").push(e),this.size>this.maxSize&&O(this,E,"f").shift(),O(this,b,"m",N).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let e=O(this,E,"f").pop();return O(this,b,"m",N).call(this,"change"),e}addEventListener(e,t){O(this,S,"f")[e].push(t)}removeEventListener(e,t){O(this,S,"f")[e]=O(this,S,"f")[e].filter(e=>e!==t)}}function j(e){try{return new URL(e),!0}catch(e){return!1}}E=new WeakMap,S=new WeakMap,b=new WeakSet,N=function(e){O(this,S,"f")[e].forEach(e=>e())}})(),n})(),e.exports=t()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{PasteHandler:()=>l});var e=r(106),t=r(291),i=r(297);function o(e){return e instanceof SVGGraphicsElement}var s,a=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class l{constructor(e){s.set(this,void 0),function(e,t,r){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,r)}(this,s,e)}handle(r){return n=this,u=function*(){var n,l,u,c;r.preventDefault(),r.stopPropagation();let h=null!==(l=null===(n=r.clipboardData)||void 0===n?void 0:n.getData("text"))&&void 0!==l?l:"",f=null!==(c=null===(u=r.clipboardData)||void 0===u?void 0:u.files)&&void 0!==c?c:[];if(!h&&0==f.length)throw new Error("No text or files were pasted.");f.length>1&&console.warn("Multiple files pasted. (Only the first file is processed.)");let d=0==f.length?void 0:f[0];h||(h=d?yield d.text():""),a(this,s,"f").undoStack.push();try{let r=a(this,s,"f").drawing.isEmpty(),n=a(this,s,"f").drawing.domNode.children.length;a(this,s,"f").draw(h),(0,e.isJSON)(h)||a(this,s,"f").drawing.setPadding(1e3),a(this,s,"f").view.fitTo(a(this,s,"f").drawing.contentBBox.padded({percentage:10}));let l=(0,t.isFASTA)(h)?(0,t.parseFASTA)(h).header:(0,i.isCT)(h)?(0,i.parseCT)(h).description:void 0;l&&!a(this,s,"f").drawing.name&&(a(this,s,"f").drawing.name=l);let u=[...a(this,s,"f").drawing.domNode.children].slice(n);r||a(this,s,"f").select(u.filter(o))}catch(e){throw console.error(e),a(this,s,"f").undo(),new Error(`Error processing paste event: ${r}.`)}},new((l=void 0)||(l=Promise))(function(e,t){function r(e){try{o(u.next(e))}catch(e){t(e)}}function i(e){try{o(u.throw(e))}catch(e){t(e)}}function o(t){var n;t.done?e(t.value):(n=t.value,n instanceof l?n:new l(function(e){e(n)})).then(r,i)}o((u=u.apply(n,[])).next())});var n,l,u}}s=new WeakMap})(),n})(),e.exports=t()},106(e){var t;t=()=>(()=>{var e={992(e){var t;t=()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{KeyBinding:()=>p});var r,n,i,o,s,a,l,u,c,h,f=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},d=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class p{constructor(e,t,a){r.add(this),this.key=e,n.set(this,void 0),i.set(this,void 0),o.set(this,void 0),s.set(this,void 0),f(this,n,t,"f"),f(this,i,e=>d(this,r,"m",h).call(this,e),"f"),f(this,o,a,"f")}get owner(){return d(this,s,"f")}set owner(e){var t;null===(t=d(this,s,"f"))||void 0===t||t.removeEventListener("keydown",d(this,i,"f")),null==e||e.addEventListener("keydown",d(this,i,"f"),{passive:!1}),f(this,s,e,"f")}}return n=new WeakMap,i=new WeakMap,o=new WeakMap,s=new WeakMap,r=new WeakSet,a=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.altKey)&&void 0!==t&&t},l=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.ctrlKey)&&void 0!==t&&t},u=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.metaKey)&&void 0!==t&&t},c=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.shiftKey)&&void 0!==t&&t},h=function(e){this.owner&&this.owner===document.activeElement&&e.key.toUpperCase()===this.key.toUpperCase()&&e.altKey===d(this,r,"a",a)&&e.ctrlKey===d(this,r,"a",l)&&e.metaKey===d(this,r,"a",u)&&e.shiftKey===d(this,r,"a",c)&&(e.preventDefault(),d(this,n,"f").call(this))},t})(),e.exports=t()},854(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function n(e){return r(e)&&Number.isFinite(e)}function i(e){return r(e)&&!Number.isFinite(e)}function o(e){return n(e)&&e>0}function s(e){return n(e)&&e>=0}function a(e){return"string"==typeof e}function l(e){return!!a(e)&&0==e.trim().length}function u(e){if(!a(e))return!1;try{return JSON.parse(e),!0}catch{return!1}}function c(e){try{return JSON.stringify(e),!0}catch{return!1}}function h(e){return null==e}function f(e){return"object"==typeof e&&null!==e}function d(e){return Array.isArray(e)}function p(e){return d(e)&&0==e.length}function y(e){return d(e)&&e.length>0}function v(e){return d(e)&&e.every(r)}function m(e){return v(e)&&e.length>0}function w(e){return d(e)&&e.every(n)}function g(e){return d(e)&&e.every(i)}function b(e){return d(e)&&e.every(a)}function E(e){return b(e)&&e.length>0}return e.r(t),e.d(t,{isArray:()=>d,isEmptyArray:()=>p,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>w,isJSON:()=>u,isJSONSerializable:()=>c,isNonEmptyArray:()=>y,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>E,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>g,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>f,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>v,isPositiveFiniteNumber:()=>o,isString:()=>a,isStringsArray:()=>b,isWhitespace:()=>l}),t})()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function e(e){if(e.length>0)return e[0];throw new Error("Array is empty.")}function t(e){if(e.length>0)return e[e.length-1];throw new Error("Array is empty.")}function i(e){if(e.length<3)throw new Error("Array has less than 3 items.");if(e.length%2==0)throw new Error("Array has an even number of items.");let t=Math.floor(e.length/2);return[e[t-1],e[t],e[t+1]]}function o(e){if(e.length<4)throw new Error("Array has less than 4 items.");if(e.length%2!=0)throw new Error("Array has an odd number of items.");let t=Math.floor(e.length/2);return[e[t-2],e[t-1],e[t],e[t+1]]}r.r(n),r.d(n,{DownloadableFile:()=>w,EventfulSet:()=>g,FiniteStack:()=>T,KeyBinding:()=>f.KeyBinding,containsFocus:()=>h,detectMacOS:()=>p,detectWindows:()=>d,first:()=>e,hasFocus:()=>c,isJSON:()=>s.isJSON,isJSONSerializable:()=>s.isJSONSerializable,isURL:()=>j,last:()=>t,middleFour:()=>o,middleThree:()=>i,removeWhitespace:()=>a,shuffled:()=>u,splitLines:()=>l});var s=r(854);function a(e){return[...e].filter(e=>!(0,s.isWhitespace)(e)).join("")}function l(e){return e.split(/\r\n|\r|\n/)}function u(e){return e.map(e=>({v:e,priority:Math.random()})).sort((e,t)=>e.priority-t.priority).map(({v:e})=>e)}function c(e){return e===document.activeElement}function h(e){return!!document.activeElement&&e.contains(document.activeElement)}var f=r(992);function d(){return-1!==navigator.userAgent.indexOf("Windows")}function p(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(e){return!1}}var y,v=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},m=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class w{constructor(e,t,r){y.set(this,void 0),this.name=null!=e?e:"Unnamed.txt",this.content=null!=t?t:"",v(this,y,null==r?void 0:r.type,"f")}get type(){return null!=m(this,y,"f")?m(this,y,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(e){v(this,y,e,"f")}download(){let e=new File([this.content],this.name,{type:this.type}),t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download=e.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(t)}}y=new WeakMap;class g{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(e){return this.underlyingSet.has(e)}include(e){return this.includes(e)}addAll(e){let t=[...e];0!=t.length&&(t.every(e=>this.includes(e))||(t.forEach(e=>this.underlyingSet.add(e)),this.callEventListeners("change")))}removeAll(e){let t=[...e];0!=t.length&&(t.every(e=>!this.includes(e))||(t.forEach(e=>this.underlyingSet.delete(e)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(e,t){this.eventListeners[e].push(t)}callEventListeners(e){this.eventListeners[e].forEach(e=>e())}removeEventListener(e,t){this.eventListeners[e]=this.eventListeners[e].filter(e=>e!==t)}}var b,E,S,N,O=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class T{constructor(e){b.add(this),this.maxSize=e,E.set(this,[]),S.set(this,{change:[]})}get size(){return O(this,E,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(e,t){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,[])}(this,E),O(this,b,"m",N).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return O(this,E,"f")[O(this,E,"f").length-1]}push(e){O(this,E,"f").push(e),this.size>this.maxSize&&O(this,E,"f").shift(),O(this,b,"m",N).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let e=O(this,E,"f").pop();return O(this,b,"m",N).call(this,"change"),e}addEventListener(e,t){O(this,S,"f")[e].push(t)}removeEventListener(e,t){O(this,S,"f")[e]=O(this,S,"f")[e].filter(e=>e!==t)}}function j(e){try{return new URL(e),!0}catch(e){return!1}}E=new WeakMap,S=new WeakMap,b=new WeakSet,N=function(e){O(this,S,"f")[e].forEach(e=>e())}})(),n})(),e.exports=t()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{DropHandler:()=>o});var e,t=r(793),i=r(106);class o{constructor(r){e.set(this,void 0),function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(e,r):i?i.value=r:t.set(e,r)}(this,e,new t.PasteHandler(r),"f")}handle(t){return r=this,n=void 0,s=function*(){var r,n;t.preventDefault(),t.stopPropagation();let o=[...null!==(n=null===(r=t.dataTransfer)||void 0===r?void 0:r.files)&&void 0!==n?n:[]];if(0==o.length)throw new Error("No files were dropped.");let s=(0,i.first)(o);return o.length>1&&console.warn("Multiple files were dropped. (Only the first file is processed.)"),yield function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)}(this,e,"f").handle({clipboardData:{getData:()=>"",files:[s]},preventDefault:()=>{},stopPropagation:()=>{}})},new((o=void 0)||(o=Promise))(function(e,t){function i(e){try{l(s.next(e))}catch(e){t(e)}}function a(e){try{l(s.throw(e))}catch(e){t(e)}}function l(t){var r;t.done?e(t.value):(r=t.value,r instanceof o?r:new o(function(e){e(r)})).then(i,a)}l((s=s.apply(r,n||[])).next())});var r,n,o,s}}e=new WeakMap})(),n})());
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.dropInterface=t():e.dropInterface=t()}(this,()=>(()=>{var e={793(e){var t;t=()=>(()=>{var e={297(e){var t;t=()=>(()=>{var e={106(e){var t;t=()=>(()=>{var e={992:function(e){var t;t=()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{KeyBinding:()=>d});var r,n,i,o,a,s,u,c,l,f,h=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},p=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class d{constructor(e,t,s){r.add(this),this.key=e,n.set(this,void 0),i.set(this,void 0),o.set(this,void 0),a.set(this,void 0),h(this,n,t,"f"),h(this,i,e=>p(this,r,"m",f).call(this,e),"f"),h(this,o,s,"f")}get owner(){return p(this,a,"f")}set owner(e){var t;null===(t=p(this,a,"f"))||void 0===t||t.removeEventListener("keydown",p(this,i,"f")),null==e||e.addEventListener("keydown",p(this,i,"f"),{passive:!1}),h(this,a,e,"f")}}return n=new WeakMap,i=new WeakMap,o=new WeakMap,a=new WeakMap,r=new WeakSet,s=function(){var e,t;return null!==(t=null===(e=p(this,o,"f"))||void 0===e?void 0:e.altKey)&&void 0!==t&&t},u=function(){var e,t;return null!==(t=null===(e=p(this,o,"f"))||void 0===e?void 0:e.ctrlKey)&&void 0!==t&&t},c=function(){var e,t;return null!==(t=null===(e=p(this,o,"f"))||void 0===e?void 0:e.metaKey)&&void 0!==t&&t},l=function(){var e,t;return null!==(t=null===(e=p(this,o,"f"))||void 0===e?void 0:e.shiftKey)&&void 0!==t&&t},f=function(e){this.owner&&this.owner===document.activeElement&&e.key.toUpperCase()===this.key.toUpperCase()&&e.altKey===p(this,r,"a",s)&&e.ctrlKey===p(this,r,"a",u)&&e.metaKey===p(this,r,"a",c)&&e.shiftKey===p(this,r,"a",l)&&(e.preventDefault(),p(this,n,"f").call(this))},t})(),e.exports=t()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function e(e){if(e.length>0)return e[0];throw new Error("Array is empty.")}function t(e){if(e.length>0)return e[e.length-1];throw new Error("Array is empty.")}function i(e){if(e.length<3)throw new Error("Array has less than 3 items.");if(e.length%2==0)throw new Error("Array has an even number of items.");let t=Math.floor(e.length/2);return[e[t-1],e[t],e[t+1]]}function o(e){if(e.length<4)throw new Error("Array has less than 4 items.");if(e.length%2!=0)throw new Error("Array has an odd number of items.");let t=Math.floor(e.length/2);return[e[t-2],e[t-1],e[t],e[t+1]]}function a(e){return e.split(/\r\n|\r|\n/)}function s(e){try{return JSON.stringify(e),!0}catch(e){return!1}}function u(e){return e.map(e=>({v:e,priority:Math.random()})).sort((e,t)=>e.priority-t.priority).map(({v:e})=>e)}function c(e){return e===document.activeElement}function l(e){return!!document.activeElement&&e.contains(document.activeElement)}r.r(n),r.d(n,{DownloadableFile:()=>g,EventfulSet:()=>v,FiniteStack:()=>x,KeyBinding:()=>f.KeyBinding,containsFocus:()=>l,detectMacOS:()=>p,detectWindows:()=>h,first:()=>e,hasFocus:()=>c,isJSONSerializable:()=>s,isURL:()=>O,last:()=>t,middleFour:()=>o,middleThree:()=>i,shuffled:()=>u,splitLines:()=>a});var f=r(992);function h(){return-1!==navigator.userAgent.indexOf("Windows")}function p(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(e){return!1}}var d,m=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},y=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class g{constructor(e,t,r){d.set(this,void 0),this.name=null!=e?e:"Unnamed.txt",this.content=null!=t?t:"",m(this,d,null==r?void 0:r.type,"f")}get type(){return null!=y(this,d,"f")?y(this,d,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(e){m(this,d,e,"f")}download(){let e=new File([this.content],this.name,{type:this.type}),t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download=e.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(t)}}d=new WeakMap;class v{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(e){return this.underlyingSet.has(e)}include(e){return this.includes(e)}addAll(e){let t=[...e];0!=t.length&&(t.every(e=>this.includes(e))||(t.forEach(e=>this.underlyingSet.add(e)),this.callEventListeners("change")))}removeAll(e){let t=[...e];0!=t.length&&(t.every(e=>!this.includes(e))||(t.forEach(e=>this.underlyingSet.delete(e)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(e,t){this.eventListeners[e].push(t)}callEventListeners(e){this.eventListeners[e].forEach(e=>e())}removeEventListener(e,t){this.eventListeners[e]=this.eventListeners[e].filter(e=>e!==t)}}var b,w,P,S,E=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class x{constructor(e){b.add(this),this.maxSize=e,w.set(this,[]),P.set(this,{change:[]})}get size(){return E(this,w,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(e,t){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,[])}(this,w),E(this,b,"m",S).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return E(this,w,"f")[E(this,w,"f").length-1]}push(e){E(this,w,"f").push(e),this.size>this.maxSize&&E(this,w,"f").shift(),E(this,b,"m",S).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let e=E(this,w,"f").pop();return E(this,b,"m",S).call(this,"change"),e}addEventListener(e,t){E(this,P,"f")[e].push(t)}removeEventListener(e,t){E(this,P,"f")[e]=E(this,P,"f")[e].filter(e=>e!==t)}}function O(e){try{return new URL(e),!0}catch(e){return!1}}w=new WeakMap,P=new WeakMap,b=new WeakSet,S=function(e){E(this,P,"f")[e].forEach(e=>e())}})(),n})(),e.exports=t()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{isCT:()=>h,parseCT:()=>t});var e=r(106);function t(t){let r=function(e){let t=e.findIndex(e=>!i(e)&&!o(e));if(t<0)throw new Error("Unable to find the start of the structure.");let r=[...e].reverse().findIndex(e=>!i(e)&&!o(e));if(r<0)throw new Error("Unable to find the end of the structure.");return r=e.length-r-1,e.slice(t,r+1)}((0,e.splitLines)(t));return{description:a(r),sequence:s(r),positionPairs:u(r),numberingOffset:c(r)}}function i(e){return 0==e.trim().length}function o(e){return"#"==e.trim().charAt(0)}function a(e){if(0==e.length)return;let t=e[0],r=l(t);if(r.length<2)return;let n=r[0];return t.slice(t.indexOf(n)+n.length).trim()}function s(e){return e.slice(1).map(e=>{let t=l(e);if(t.length<2)throw new Error("Line is missing a character.");return t[1]}).join("")}function u(e){let t=e.slice(1),r=[];return t.forEach((e,t)=>{let n=t+1,i=l(e);if(i.length>=5){let e=Number.parseFloat(i[4]);if(Number.isNaN(e))throw new Error("Partner positions must be numbers.");if(!Number.isInteger(e))throw new Error("Partner positions must be integers.");0!=e&&n<=e&&r.push([n,e])}}),r}function c(e){if(e.length<2)return 0;let t=l(e[1]);if(t.length<6)return 0;let r=Number.parseFloat(t[5]);return Number.isNaN(r)?0:Number.isInteger(r)?r-1:0}function l(e){return function(e){return e.split(/\s/)}(e).filter(f)}function f(e){return e.length>0}function h(r){let n;try{n=t(r)}catch(e){return!1}if(0==n.sequence.length)return!1;let i=(0,e.splitLines)(r);if(i=i.filter(t=>!function(e){return 0==e.length}(t)&&!function(e){return 0==e.trim().length}(t)&&!function(t){return!((0,e.splitLines)(t).length>1)&&"#"==t.trim().charAt(0)}(t)),0==i.length)return!1;let o=(0,e.first)(i),a=Number.parseFloat(o.trim().split(/\s+/)[0]);if(!Number.isInteger(a))return!1;let s=i.slice(1);return 0!=s.length&&s.every(e=>{let t=e.trim().split(/\s+/);if(t.length<5)return!1;let r=Number.parseFloat(t[4]);return Number.isInteger(r)})}})(),n})(),e.exports=t()},534(e){var t;t=()=>(()=>{var e={30:function(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return Math.pow(Math.pow(e.x,2)+Math.pow(e.y,2),.5)}function n(e){return Math.atan2(e.y,e.x)}return e.r(t),e.d(t,{direction:()=>n,magnitude:()=>r}),t})()},127:function(e){var t;t=()=>(()=>{var e={369:function(e){var t;t=()=>(()=>{var e={854:function(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function n(e){return r(e)&&Number.isFinite(e)}function i(e){return r(e)&&!Number.isFinite(e)}function o(e){return n(e)&&e>0}function a(e){return n(e)&&e>=0}function s(e){return"string"==typeof e}function u(e){return null==e}function c(e){return"object"==typeof e&&null!==e}function l(e){return Array.isArray(e)}function f(e){return l(e)&&0==e.length}function h(e){return l(e)&&e.length>0}function p(e){return l(e)&&e.every(r)}function d(e){return p(e)&&e.length>0}function m(e){return l(e)&&e.every(n)}function y(e){return l(e)&&e.every(i)}function g(e){return l(e)&&e.every(s)}function v(e){return g(e)&&e.length>0}return e.r(t),e.d(t,{isArray:()=>l,isEmptyArray:()=>f,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>m,isNonEmptyArray:()=>h,isNonEmptyNumbersArray:()=>d,isNonEmptyStringsArray:()=>v,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>y,isNonNegativeFiniteNumber:()=>a,isNonNullObject:()=>c,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>p,isPositiveFiniteNumber:()=>o,isString:()=>s,isStringsArray:()=>g}),t})()},986:function(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){var t=0;return e.forEach(function(e){return t+=e}),t}function n(e){return r(e)/e.length}function i(e){e.sort(function(e,t){return e-t})}e.r(t),e.d(t,{areWithin:()=>p,average:()=>n,clamp:()=>h,degrees:()=>y,flipAway:()=>b,isBetween:()=>l,isBetweenExclusive:()=>f,isBetweenInclusive:()=>l,max:()=>c,mean:()=>n,median:()=>s,min:()=>u,normalizeAngle:()=>v,radians:()=>g,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>d,sortedNumbers:()=>a,sortedNumbersAscending:()=>a,sortedNumbersDescending:()=>m,sum:()=>r});var o=function(e,t,r){if(r||2===arguments.length)for(var n,i=0,o=t.length;i<o;i++)!n&&i in t||(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))};function a(e){var t=o([],e,!0);return i(t),t}function s(e){if(0==e.length)return NaN;var t=a(e);if(t.length%2!=0)return t[Math.floor(t.length/2)];var r=t.length/2,i=r-1;return n([t[r],t[i]])}function u(e){if(0==e.length)return 1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.min(t,e)}),t}function c(e){if(0==e.length)return-1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.max(t,e)}),t}function l(e,t,r){return e>=t&&e<=r}function f(e,t,r){return e>t&&e<r}function h(e,t,r){return e<t?t:e>r?r:e}function p(e,t,r){return Math.abs(e-t)<=r}function d(e){i(e),e.reverse()}function m(e){var t=a(e);return t.reverse(),t}function y(e){return e*(180/Math.PI)}function g(e){return e*(Math.PI/180)}function v(e,t){void 0===t&&(t=-Math.PI);var r=e-t;return t+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function b(e,t){var r=(t=v(t,e))-e;return(r<Math.PI/2||r>3*Math.PI/2)&&(e+=Math.PI),e}return t})()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>y,Stems:()=>m,areConflicting:()=>c,areCrossing:()=>h,areEqual:()=>s,areKnotless:()=>f,areStacked:()=>u,basePairs:()=>b,deepCopy:()=>i,knotless:()=>p,mountainPlotTraversal:()=>g,parseDotBracket:()=>v,radializable:()=>d,sorted:()=>a});var e=r(854),t=function(e,t,r){if(r||2===arguments.length)for(var n,i=0,o=t.length;i<o;i++)!n&&i in t||(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))};function i(r){return(0,e.isNumbersArray)(r)?t([],r,!0):r.map(function(e){return t([],e,!0)})}var o=r(986);function a(e){var t=i(e);return t.forEach(o.sortNumbers),t.sort(function(e,t){return e[0]-t[0]}),t}function s(e,t){var r=i(e),n=i(t);return(0,o.sortNumbers)(r),(0,o.sortNumbers)(n),[0,1].every(function(e){return r[e]==n[e]})}function u(e,t){var r=a([e,t]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function c(e,t){return(0,o.min)(e)==(0,o.min)(t)&&(0,o.max)(e)!=(0,o.max)(t)||(0,o.min)(e)!=(0,o.min)(t)&&(0,o.max)(e)==(0,o.max)(t)}function l(e){if(0==e.length)return[];for(var t=[],r=0;r<(0,o.max)(e.flat());r++)t.push(void 0);return e.forEach(function(e){t[e[0]-1]=e[1],t[e[1]-1]=e[0]}),t}function f(e){var t=l(e),r=[],n=!1;return t.forEach(function(e,t){var i=t+1;null==e||(i<e?r.push(i):i==e||r.pop()!=e&&(n=!0))}),!n}function h(e,t){return!f([e,t])}function p(e){var t=[],r=i(e);r.sort(function(e,t){return Math.abs(e[0]-e[1])-Math.abs(t[0]-t[1])});var n=[];return r.forEach(function(e){var r=[e[0]-1,e[1]-1],i=(0,o.min)(r),a=(0,o.max)(r);if(!n[i]&&!n[a]){t.push(e);for(var s=i;s<=a;s++)n[s]=!0}}),t}function d(e){var t=i(e);t.sort(function(e,t){var r=e[0],n=e[1],i=t[0],o=t[1];return Math.abs(r-n)-Math.abs(i-o)});var r=[],n=[];return t.forEach(function(e){var t=e[0],i=e[1];t==i||null!=n[t-1]||null!=n[i-1]||(r.push([t,i]),n[t-1]=i,n[i-1]=t)}),p(r)}var m=function(){function e(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.targetStructure=e}return e.prototype.get=function(){var e=this.targetStructure[1];if(0==e.length)return[];var t=a(e),r=[],n=[];return t.forEach(function(e){var t=0==n.length?null:n[n.length-1];!t||u(t,e)?n.push(e):(r.push(n),n=[e])}),r.push(n),r},e}(),y=function(){function e(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.targetStructure=e}return e.prototype.get=function(){var e=(new(m.bind.apply(m,function(e,t,r){if(r||2===arguments.length)for(var n,i=0,o=t.length;i<o;i++)!n&&i in t||(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))}([void 0],this.targetStructure,!1)))).get().flatMap(function(e){return[e.map(o.min),e.map(o.max)]});e.forEach(o.sortNumbers),e.sort(function(e,t){return(0,o.min)(e)-(0,o.min)(t)});for(var t=[],r=e.shift(),n=e.shift();r&&n;){for(var i=[],a=(0,o.max)(r),s=(0,o.min)(n),u=a;u<=s;u++)i.push(u);t.push(i),r=n,n=e.shift()}return t},e}();function g(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=e[0],n=e[1],i=l(n);if(!f(n))throw new Error("Pseudoknot(s) encountered.");var o=[],a=0;return r.forEach(function(e,t){var r=t+1,n=i[t];null==n?o.push(a):r<n?(o.push(a),a++):(r==n||a--,o.push(a))}),o}function v(e){var t=e.split(""),r=[".","(",")"];t.forEach(function(e){if(!r.includes(e))throw new Error('Unrecognized character in dot-bracket notation: "'.concat(e,'".'))});var n=[],i=[];if(t.forEach(function(e,t){var r=t+1;if("("==e)i.push(r);else if(")"==e){var o=i.pop();if("number"!=typeof o)throw new Error("Unmatched downstream partner(s) in dot-bracket notation.");n.push([o,r])}}),i.length>0)throw new Error("Unmatched upstream partner(s) in dot-bracket notation.");return a(n)}function b(e,t){return t.forEach(function(t){t.forEach(function(t){if(t<1)throw new Error("Sequence positions must be positive.");if(t>e.length)throw new Error("Position out of sequence range.")})}),t.map(function(t){return[e[t[0]-1],e[t[1]-1]]})}})(),n})(),e.exports=t()},986:function(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){var t=0;return e.forEach(function(e){return t+=e}),t}function n(e){return r(e)/e.length}function i(e){e.sort(function(e,t){return e-t})}e.r(t),e.d(t,{areWithin:()=>p,average:()=>n,clamp:()=>h,degrees:()=>y,flipAway:()=>b,isBetween:()=>l,isBetweenExclusive:()=>f,isBetweenInclusive:()=>l,max:()=>c,mean:()=>n,median:()=>s,min:()=>u,normalizeAngle:()=>v,radians:()=>g,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>d,sortedNumbers:()=>a,sortedNumbersAscending:()=>a,sortedNumbersDescending:()=>m,sum:()=>r});var o=function(e,t,r){if(r||2===arguments.length)for(var n,i=0,o=t.length;i<o;i++)!n&&i in t||(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))};function a(e){var t=o([],e,!0);return i(t),t}function s(e){if(0==e.length)return NaN;var t=a(e);if(t.length%2!=0)return t[Math.floor(t.length/2)];var r=t.length/2,i=r-1;return n([t[r],t[i]])}function u(e){if(0==e.length)return 1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.min(t,e)}),t}function c(e){if(0==e.length)return-1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.max(t,e)}),t}function l(e,t,r){return e>=t&&e<=r}function f(e,t,r){return e>t&&e<r}function h(e,t,r){return e<t?t:e>r?r:e}function p(e,t,r){return Math.abs(e-t)<=r}function d(e){i(e),e.reverse()}function m(e){var t=a(e);return t.reverse(),t}function y(e){return e*(180/Math.PI)}function g(e){return e*(Math.PI/180)}function v(e,t){void 0===t&&(t=-Math.PI);var r=e-t;return t+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function b(e,t){var r=(t=v(t,e))-e;return(r<Math.PI/2||r>3*Math.PI/2)&&(e+=Math.PI),e}return t})()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function e(e,t){return e[0]===t[0]&&e[1]===t[1]||e[0]===t[1]&&e[1]===t[0]}function t(e,t){if(!t.includes(e))throw new Error("The given base is not present in the provided base-pair.");return e===t[0]?t[1]:t[0]}r.r(n),r.d(n,{FirstPairedBase:()=>o,LastPairedBase:()=>s,LeadingDanglingBases:()=>u,Linkers:()=>h,PositionPairs:()=>i,Stems:()=>f,TrailingDanglingBases:()=>c,antiParallelPairs:()=>v,areEqual:()=>e,consecutivePairs:()=>y,knotless:()=>p,missing:()=>b,other:()=>t,parallelPairs:()=>g,parseDotBracket:()=>m,radializable:()=>d});class i{constructor(...e){this.targetStructure=e}get(){let e=this.targetStructure[0];return this.targetStructure[1].map(t=>[e.indexOf(t[0])+1,e.indexOf(t[1])+1])}}class o{constructor(...e){this.targetStructure=e}get(){let e=this.targetStructure[0],t=this.targetStructure[1];if(0==t.length)throw new Error("There are no paired bases.");let r=t.flat(),n=e.findIndex(e=>r.includes(e));if(n<0)throw new Error("No paired bases present in sequence.");return e[n]}}var a=r(986);class s{constructor(...e){this.targetStructure=e}get(){let e=this.targetStructure[0],t=this.targetStructure[1];if(0==t.length)throw new Error("There are no paired bases.");let r=t.flat().map(t=>e.indexOf(t));if((0,a.max)(r)<0)throw new Error("No paired bases present in sequence.");return e[(0,a.max)(r)]}}class u{constructor(...e){this.targetStructure=e}get(){let e=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let t=new o(...this.targetStructure).get(),r=e.indexOf(t);if(r<0)throw new Error("No paired bases present in sequence.");return e.slice(0,r)}}class c{constructor(...e){this.targetStructure=e}get(){let e=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let t=new s(...this.targetStructure).get(),r=e.indexOf(t);if(r<0)throw new Error("No paired bases present in sequence.");return e.slice(r+1)}}var l=r(369);class f{constructor(...e){this.targetStructure=e}get(){let e=this.targetStructure[0],t=new i(...this.targetStructure).get();return new l.Stems(e,t).get().map(t=>t.map(t=>[e[t[0]-1],e[t[1]-1]]))}}class h{constructor(...e){this.targetStructure=e}get(){let e=this.targetStructure[0],t=new i(...this.targetStructure).get();return new l.Linkers(e,t).get().map(t=>t.map(t=>e[t-1]))}}function p(...e){let[t,r]=e,n=new i(...e).get();(0,l.areKnotless)(n)||(n=(0,l.knotless)(n));let o=n.map(e=>[t[e[0]-1],t[e[1]-1]]);return[[...t],o]}function d(...e){let[t,r]=e,n=new i(...e).get();return[[...t],(0,l.radializable)(n).map(([e,r])=>[t[e-1],t[r-1]])]}function m(e,t){if(t.length>e.length)throw new Error("Dot-bracket notation is longer than the sequence.");return[...(0,l.parseDotBracket)(t)].map(t=>{let r=t[0],n=t[1];return[e[r-1],e[n-1]]})}function y(e){return e.length<2?[]:e.slice(0,-1).map((t,r)=>[e[r],e[r+1]])}function g(e){let t=[],r=Math.floor(e.length/2)-1,n=Math.ceil(e.length/2);for(let i=0;i<=r;i++){let r=e[i],o=e[n+i];t.push([r,o])}return t}function v(e){let t=[];for(let r=0;r<Math.floor(e.length/2);r++){let n=e[r],i=e[e.length-r-1];t.push([n,i])}return t}function b(t,r){return r.filter(r=>!t.find(t=>e(r,t))).map(e=>[...e])}})(),n})(),e.exports=t()},173:function(e){var t;t=()=>(()=>{var e={422:function(e){e.exports=(()=>{var e={138:function(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){var t=0;return e.forEach(function(e){return t+=e}),t}function n(e){return r(e)/e.length}return e.r(t),e.d(t,{average:()=>n,mean:()=>n,sum:()=>r}),t})()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function e(e,t){var r=t.x-e.x,n=t.y-e.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function t(e,t){return{x:t.x-e.x,y:t.y-e.y}}r.r(n),r.d(n,{centroid:()=>o,displacement:()=>t,distance:()=>e,midpoint:()=>a});var i=r(138);function o(e){return{x:(0,i.mean)(e.map(function(e){return e.x})),y:(0,i.mean)(e.map(function(e){return e.y}))}}function a(e,t){return o([e,t])}})(),n})()},872:function(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return Math.atan2(e.y,e.x)}return e.r(t),e.d(t,{direction:()=>r}),t})()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{CircularSegment:()=>s,Semicircle:()=>t});var e=r(422),t=function(){function t(e){this.chord=e}return Object.defineProperty(t.prototype,"chordLength",{get:function(){return(0,e.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"arcLength",{get:function(){return Math.PI*this.chordLength/2},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"arcAngle",{get:function(){return Math.PI},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"parentCircleRadius",{get:function(){return this.chordLength/2},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"parentCircleCenterPoint",{get:function(){return(0,e.midpoint)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),t}(),i=r(872),o=function(){function t(t,r){this.chord=t,this.moreProps=r;var n=r.arcLength,i=(0,e.distance)(t[0],t[1]);if(n<=i)throw new Error("Arc length is too small.");if(n>=Math.PI*i/2)throw new Error("Arc length is too big.");for(var o=Math.PI/2,a=0;a<20;a++)o-=(n/i*Math.sin(o)-o)/(n/i*Math.cos(o)-1);this.arcAngle=2*o}return Object.defineProperty(t.prototype,"chordLength",{get:function(){return(0,e.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"parentCircleRadius",{get:function(){return this.arcLength/this.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"parentCircleCenterPoint",{get:function(){var t=(0,i.direction)((0,e.displacement)(this.chord[0],this.chord[1]));t+=(Math.PI-this.arcAngle)/2;var r=this.parentCircleRadius;return{x:this.chord[0].x+r*Math.cos(t),y:this.chord[0].y+r*Math.sin(t)}},enumerable:!1,configurable:!0}),t}(),a=function(){function t(t,r){this.chord=t,this.moreProps=r;var n=r.arcLength,i=(0,e.distance)(t[0],t[1]);if(0==i)throw new Error("Chord length cannot be zero.");if(n<=Math.PI*i/2)throw new Error("Arc length is too small.");for(var o=Math.PI,a=0;a<20;a++)o-=(n/i*Math.sin(Math.PI-o)-o)/(-n/i*Math.cos(Math.PI-o)-1);this.arcAngle=2*o}return Object.defineProperty(t.prototype,"chordLength",{get:function(){return(0,e.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"parentCircleRadius",{get:function(){return this.arcLength/this.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"parentCircleCenterPoint",{get:function(){var t=(0,i.direction)((0,e.displacement)(this.chord[0],this.chord[1]));t-=(this.arcAngle-Math.PI)/2;var r=this.parentCircleRadius;return{x:this.chord[0].x+r*Math.cos(t),y:this.chord[0].y+r*Math.sin(t)}},enumerable:!1,configurable:!0}),t}(),s=function(){function r(r,n){this.chord=r,this.moreProps=n;var i=n.arcLength,s=(0,e.distance)(r[0],r[1]);if(s>0&&i<=s)throw new Error("Arc length is too small.");var u=s<.001&&i<.001,c=Math.PI*s/2,l=Math.abs(i-c)<.001;this.wrappedCircularSegment=u||l?new t(r):i<c?new o(r,{arcLength:i}):new a(r,{arcLength:i})}return Object.defineProperty(r.prototype,"chordLength",{get:function(){return this.wrappedCircularSegment.chordLength},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"arcAngle",{get:function(){return this.wrappedCircularSegment.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleRadius",{get:function(){return this.wrappedCircularSegment.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleDiameter",{get:function(){return this.wrappedCircularSegment.parentCircleDiameter},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleCircumference",{get:function(){return this.wrappedCircularSegment.parentCircleCircumference},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleCenterPoint",{get:function(){return this.wrappedCircularSegment.parentCircleCenterPoint},enumerable:!1,configurable:!0}),r}()})(),n})(),e.exports=t()},369:function(e){var t;t=()=>(()=>{var e={854:function(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function n(e){return r(e)&&Number.isFinite(e)}function i(e){return r(e)&&!Number.isFinite(e)}function o(e){return n(e)&&e>0}function a(e){return n(e)&&e>=0}function s(e){return"string"==typeof e}function u(e){return null==e}function c(e){return"object"==typeof e&&null!==e}function l(e){return Array.isArray(e)}function f(e){return l(e)&&0==e.length}function h(e){return l(e)&&e.length>0}function p(e){return l(e)&&e.every(r)}function d(e){return p(e)&&e.length>0}function m(e){return l(e)&&e.every(n)}function y(e){return l(e)&&e.every(i)}function g(e){return l(e)&&e.every(s)}function v(e){return g(e)&&e.length>0}return e.r(t),e.d(t,{isArray:()=>l,isEmptyArray:()=>f,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>m,isNonEmptyArray:()=>h,isNonEmptyNumbersArray:()=>d,isNonEmptyStringsArray:()=>v,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>y,isNonNegativeFiniteNumber:()=>a,isNonNullObject:()=>c,isNullish:()=>u,isNumber:()=>r,isNumbersArray:()=>p,isPositiveFiniteNumber:()=>o,isString:()=>s,isStringsArray:()=>g}),t})()},986:function(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){var t=0;return e.forEach(function(e){return t+=e}),t}function n(e){return r(e)/e.length}function i(e){e.sort(function(e,t){return e-t})}e.r(t),e.d(t,{areWithin:()=>p,average:()=>n,clamp:()=>h,degrees:()=>y,flipAway:()=>b,isBetween:()=>l,isBetweenExclusive:()=>f,isBetweenInclusive:()=>l,max:()=>c,mean:()=>n,median:()=>s,min:()=>u,normalizeAngle:()=>v,radians:()=>g,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>d,sortedNumbers:()=>a,sortedNumbersAscending:()=>a,sortedNumbersDescending:()=>m,sum:()=>r});var o=function(e,t,r){if(r||2===arguments.length)for(var n,i=0,o=t.length;i<o;i++)!n&&i in t||(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))};function a(e){var t=o([],e,!0);return i(t),t}function s(e){if(0==e.length)return NaN;var t=a(e);if(t.length%2!=0)return t[Math.floor(t.length/2)];var r=t.length/2,i=r-1;return n([t[r],t[i]])}function u(e){if(0==e.length)return 1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.min(t,e)}),t}function c(e){if(0==e.length)return-1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.max(t,e)}),t}function l(e,t,r){return e>=t&&e<=r}function f(e,t,r){return e>t&&e<r}function h(e,t,r){return e<t?t:e>r?r:e}function p(e,t,r){return Math.abs(e-t)<=r}function d(e){i(e),e.reverse()}function m(e){var t=a(e);return t.reverse(),t}function y(e){return e*(180/Math.PI)}function g(e){return e*(Math.PI/180)}function v(e,t){void 0===t&&(t=-Math.PI);var r=e-t;return t+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function b(e,t){var r=(t=v(t,e))-e;return(r<Math.PI/2||r>3*Math.PI/2)&&(e+=Math.PI),e}return t})()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>y,Stems:()=>m,areConflicting:()=>c,areCrossing:()=>h,areEqual:()=>s,areKnotless:()=>f,areStacked:()=>u,basePairs:()=>b,deepCopy:()=>i,knotless:()=>p,mountainPlotTraversal:()=>g,parseDotBracket:()=>v,radializable:()=>d,sorted:()=>a});var e=r(854),t=function(e,t,r){if(r||2===arguments.length)for(var n,i=0,o=t.length;i<o;i++)!n&&i in t||(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))};function i(r){return(0,e.isNumbersArray)(r)?t([],r,!0):r.map(function(e){return t([],e,!0)})}var o=r(986);function a(e){var t=i(e);return t.forEach(o.sortNumbers),t.sort(function(e,t){return e[0]-t[0]}),t}function s(e,t){var r=i(e),n=i(t);return(0,o.sortNumbers)(r),(0,o.sortNumbers)(n),[0,1].every(function(e){return r[e]==n[e]})}function u(e,t){var r=a([e,t]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function c(e,t){return(0,o.min)(e)==(0,o.min)(t)&&(0,o.max)(e)!=(0,o.max)(t)||(0,o.min)(e)!=(0,o.min)(t)&&(0,o.max)(e)==(0,o.max)(t)}function l(e){if(0==e.length)return[];for(var t=[],r=0;r<(0,o.max)(e.flat());r++)t.push(void 0);return e.forEach(function(e){t[e[0]-1]=e[1],t[e[1]-1]=e[0]}),t}function f(e){var t=l(e),r=[],n=!1;return t.forEach(function(e,t){var i=t+1;null==e||(i<e?r.push(i):i==e||r.pop()!=e&&(n=!0))}),!n}function h(e,t){return!f([e,t])}function p(e){var t=[],r=i(e);r.sort(function(e,t){return Math.abs(e[0]-e[1])-Math.abs(t[0]-t[1])});var n=[];return r.forEach(function(e){var r=[e[0]-1,e[1]-1],i=(0,o.min)(r),a=(0,o.max)(r);if(!n[i]&&!n[a]){t.push(e);for(var s=i;s<=a;s++)n[s]=!0}}),t}function d(e){var t=i(e);t.sort(function(e,t){var r=e[0],n=e[1],i=t[0],o=t[1];return Math.abs(r-n)-Math.abs(i-o)});var r=[],n=[];return t.forEach(function(e){var t=e[0],i=e[1];t==i||null!=n[t-1]||null!=n[i-1]||(r.push([t,i]),n[t-1]=i,n[i-1]=t)}),p(r)}var m=function(){function e(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.targetStructure=e}return e.prototype.get=function(){var e=this.targetStructure[1];if(0==e.length)return[];var t=a(e),r=[],n=[];return t.forEach(function(e){var t=0==n.length?null:n[n.length-1];!t||u(t,e)?n.push(e):(r.push(n),n=[e])}),r.push(n),r},e}(),y=function(){function e(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.targetStructure=e}return e.prototype.get=function(){var e=(new(m.bind.apply(m,function(e,t,r){if(r||2===arguments.length)for(var n,i=0,o=t.length;i<o;i++)!n&&i in t||(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))}([void 0],this.targetStructure,!1)))).get().flatMap(function(e){return[e.map(o.min),e.map(o.max)]});e.forEach(o.sortNumbers),e.sort(function(e,t){return(0,o.min)(e)-(0,o.min)(t)});for(var t=[],r=e.shift(),n=e.shift();r&&n;){for(var i=[],a=(0,o.max)(r),s=(0,o.min)(n),u=a;u<=s;u++)i.push(u);t.push(i),r=n,n=e.shift()}return t},e}();function g(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=e[0],n=e[1],i=l(n);if(!f(n))throw new Error("Pseudoknot(s) encountered.");var o=[],a=0;return r.forEach(function(e,t){var r=t+1,n=i[t];null==n?o.push(a):r<n?(o.push(a),a++):(r==n||a--,o.push(a))}),o}function v(e){var t=e.split(""),r=[".","(",")"];t.forEach(function(e){if(!r.includes(e))throw new Error('Unrecognized character in dot-bracket notation: "'.concat(e,'".'))});var n=[],i=[];if(t.forEach(function(e,t){var r=t+1;if("("==e)i.push(r);else if(")"==e){var o=i.pop();if("number"!=typeof o)throw new Error("Unmatched downstream partner(s) in dot-bracket notation.");n.push([o,r])}}),i.length>0)throw new Error("Unmatched upstream partner(s) in dot-bracket notation.");return a(n)}function b(e,t){return t.forEach(function(t){t.forEach(function(t){if(t<1)throw new Error("Sequence positions must be positive.");if(t>e.length)throw new Error("Position out of sequence range.")})}),t.map(function(t){return[e[t[0]-1],e[t[1]-1]]})}})(),n})(),e.exports=t()},456:function(e){var t;t=()=>(()=>{var e={277:function(e){var t;t=()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{Vector:()=>r});class r{static matching(e){return new r(e.x,e.y)}constructor(e,t){this.x=e,this.y=t}[Symbol.iterator](){return[this.x,this.y].values()}get magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}get direction(){return Math.atan2(this.y,this.x)}}return t})(),e.exports=t()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Point:()=>t,RelativePoint:()=>l});var e=r(277);class t{static matching(e){return new t(e.x,e.y)}constructor(e,t){this.x=e,this.y=t}[Symbol.iterator](){return[this.x,this.y].values()}displacementTo(t){return new e.Vector(t.x-this.x,t.y-this.y)}displacementFrom(t){return new e.Vector(this.x-t.x,this.y-t.y)}distanceTo(e){return this.displacementTo(e).magnitude}distanceFrom(e){return this.distanceTo(e)}directionTo(e){return this.displacementTo(e).direction}directionFrom(e){return this.displacementFrom(e).direction}}var i,o,a,s,u,c=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class l{constructor(t){i.add(this),o.set(this,void 0),a.set(this,new e.Vector(0,0)),s.set(this,{move:[]}),function(e,t,r){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,r)}(this,o,t),t.addEventListener("move",()=>c(this,i,"m",u).call(this,"move"))}get x(){return c(this,o,"f").x+c(this,a,"f").x}set x(e){c(this,a,"f").x=e-c(this,o,"f").x,c(this,i,"m",u).call(this,"move")}get y(){return c(this,o,"f").y+c(this,a,"f").y}set y(e){c(this,a,"f").y=e-c(this,o,"f").y,c(this,i,"m",u).call(this,"move")}addEventListener(e,t){c(this,s,"f")[e].push(t)}removeEventListener(e,t){c(this,s,"f")[e]=c(this,s,"f")[e].filter(e=>e!==t)}}o=new WeakMap,a=new WeakMap,s=new WeakMap,i=new WeakSet,u=function(e){c(this,s,"f")[e].forEach(e=>e())}})(),n})(),e.exports=t()},725:function(e){e.exports=(()=>{var e={986:function(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){var t=0;return e.forEach(function(e){return t+=e}),t}function n(e){return r(e)/e.length}function i(e){e.sort(function(e,t){return e-t})}e.r(t),e.d(t,{areWithin:()=>h,average:()=>n,degrees:()=>m,isBetweenExclusive:()=>f,isBetweenInclusive:()=>l,max:()=>c,mean:()=>n,median:()=>s,min:()=>u,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>a,sortedNumbersAscending:()=>a,sortedNumbersDescending:()=>d,sum:()=>r});var o=function(e,t,r){if(r||2===arguments.length)for(var n,i=0,o=t.length;i<o;i++)!n&&i in t||(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))};function a(e){var t=o([],e,!0);return i(t),t}function s(e){if(0==e.length)return NaN;var t=a(e);if(t.length%2!=0)return t[Math.floor(t.length/2)];var r=t.length/2,i=r-1;return n([t[r],t[i]])}function u(e){if(0==e.length)return 1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.min(t,e)}),t}function c(e){if(0==e.length)return-1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.max(t,e)}),t}function l(e,t,r){return e>=t&&e<=r}function f(e,t,r){return e>t&&e<r}function h(e,t,r){return Math.abs(e-t)<=r}function p(e){i(e),e.reverse()}function d(e){var t=a(e);return t.reverse(),t}function m(e){return e*(180/Math.PI)}function y(e){return e*(Math.PI/180)}return t})()},854:function(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function n(e){return r(e)&&Number.isFinite(e)}function i(e){return r(e)&&!Number.isFinite(e)}function o(e){return n(e)&&e>0}function a(e){return n(e)&&e>=0}function s(e){return"string"==typeof e}function u(e){return null==e}function c(e){return"object"==typeof e&&null!==e}function l(e){return Array.isArray(e)}return e.r(t),e.d(t,{isArray:()=>l,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>a,isNonNullObject:()=>c,isNullish:()=>u,isNumber:()=>r,isPositiveFiniteNumber:()=>o,isString:()=>s}),t})()},30:function(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return Math.pow(Math.pow(e.x,2)+Math.pow(e.y,2),.5)}function n(e){return Math.atan2(e.y,e.x)}return e.r(t),e.d(t,{direction:()=>n,magnitude:()=>r}),t})()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>s,centroid:()=>p,deepCopy:()=>o,direction:()=>f,displaced:()=>c,displacement:()=>u,distance:()=>a,isFinitePoint:()=>i,isPoint:()=>t,midpoint:()=>d});var e=r(854);function t(t){return(0,e.isNonNullObject)(t)&&(0,e.isNumber)(t.x)&&(0,e.isNumber)(t.y)}function i(r){return t(r)&&(0,e.isFiniteNumber)(r.x)&&(0,e.isFiniteNumber)(r.y)}function o(e){return{x:e.x,y:e.y}}function a(e,t){var r=t.x-e.x,n=t.y-e.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function s(e,t,r){return a(e,t)<=r}function u(e,t){return{x:t.x-e.x,y:t.y-e.y}}function c(e,t){return{x:e.x+t.x,y:e.y+t.y}}var l=r(30);function f(e,t){return(0,l.direction)(u(e,t))}var h=r(986);function p(e){return{x:(0,h.mean)(e.map(function(e){return e.x})),y:(0,h.mean)(e.map(function(e){return e.y}))}}function d(e,t){return p([e,t])}})(),n})()},986:function(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){var t=0;return e.forEach(function(e){return t+=e}),t}function n(e){return r(e)/e.length}function i(e){e.sort(function(e,t){return e-t})}e.r(t),e.d(t,{areWithin:()=>p,average:()=>n,clamp:()=>h,degrees:()=>g,flipAway:()=>w,isBetween:()=>l,isBetweenExclusive:()=>f,isBetweenInclusive:()=>l,max:()=>c,mean:()=>n,median:()=>s,min:()=>u,normalizeAngle:()=>b,radians:()=>v,round:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>d,sortedNumbers:()=>a,sortedNumbersAscending:()=>a,sortedNumbersDescending:()=>m,sum:()=>r});var o=function(e,t,r){if(r||2===arguments.length)for(var n,i=0,o=t.length;i<o;i++)!n&&i in t||(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))};function a(e){var t=o([],e,!0);return i(t),t}function s(e){if(0==e.length)return NaN;var t=a(e);if(t.length%2!=0)return t[Math.floor(t.length/2)];var r=t.length/2,i=r-1;return n([t[r],t[i]])}function u(e){if(0==e.length)return 1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.min(t,e)}),t}function c(e){if(0==e.length)return-1/0;var t=e[0];return e.slice(1).forEach(function(e){t=Math.max(t,e)}),t}function l(e,t,r){return e>=t&&e<=r}function f(e,t,r){return e>t&&e<r}function h(e,t,r){return e<t?t:e>r?r:e}function p(e,t,r){return Math.abs(e-t)<=r}function d(e){i(e),e.reverse()}function m(e){var t=a(e);return t.reverse(),t}function y(e,t){return Number.parseFloat(e.toFixed(null!=t?t:0))}function g(e){return e*(180/Math.PI)}function v(e){return e*(Math.PI/180)}function b(e,t){void 0===t&&(t=-Math.PI);var r=e-t;return t+((r%=2*Math.PI)>=0?r:r+2*Math.PI)}function w(e,t){var r=(t=b(t,e))-e;return(r<Math.PI/2||r>3*Math.PI/2)&&(e+=Math.PI),e}return t})()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Centroid:()=>o,Direction:()=>p,MaxCenterX:()=>u,MaxCenterY:()=>l,MinCenterX:()=>s,MinCenterY:()=>c,NucleobaseMock:()=>e,arrange:()=>j,circularize:()=>x,flipSelfX:()=>y,flipSelfY:()=>g,flipX:()=>d,flipY:()=>m,linearize:()=>P,outwardNormal:()=>w,rotate:()=>h,round:()=>M,shift:()=>t,stemmify:()=>E,straighten:()=>S,tangent:()=>v,untangle:()=>W});class e{constructor(e){this.props=e}getCenterPoint(){return this.props.centerPoint}setCenterPoint(e){this.props.centerPoint=e}}function t(e,t){e.forEach(e=>{let r=e.getCenterPoint();e.setCenterPoint({x:r.x+t.x,y:r.y+t.y})})}var i=r(725);class o{constructor(e){this.targetBases=e}get(){let e=this.targetBases.map(e=>e.getCenterPoint());return(0,i.centroid)(e)}set(e){let r=this.get(),n=(0,i.displacement)(r,e);t(this.targetBases,n)}}var a=r(986);class s{constructor(e){this.targetBases=e}get(){return(0,a.min)(this.targetBases.map(e=>e.getCenterPoint().x))}set(e){let r=this.get();t(this.targetBases,{x:e-r,y:0})}}class u{constructor(e){this.targetBases=e}get(){return(0,a.max)(this.targetBases.map(e=>e.getCenterPoint().x))}set(e){let r=this.get();t(this.targetBases,{x:e-r,y:0})}}class c{constructor(e){this.targetBases=e}get(){return(0,a.min)(this.targetBases.map(e=>e.getCenterPoint().y))}set(e){let r=this.get();t(this.targetBases,{x:0,y:e-r})}}class l{constructor(e){this.targetBases=e}get(){return(0,a.max)(this.targetBases.map(e=>e.getCenterPoint().y))}set(e){let r=this.get();t(this.targetBases,{x:0,y:e-r})}}var f=r(30);function h(e,t){if(e.length<2)return;let r=e[0],n=e[e.length-1],o=(0,i.midpoint)(r.getCenterPoint(),n.getCenterPoint());e.forEach(e=>{let r=e.getCenterPoint(),n=(0,i.distance)(o,r),a=(0,f.direction)((0,i.displacement)(o,r));a+=t,e.setCenterPoint({x:o.x+n*Math.cos(a),y:o.y+n*Math.sin(a)})})}class p{constructor(e){this.targetBases=e}get(){if(this.targetBases.length<2)return 0;let e=this.targetBases[0],t=this.targetBases[this.targetBases.length-1];return(0,f.direction)((0,i.displacement)(e.getCenterPoint(),t.getCenterPoint()))}set(e){let t=e-this.get();h(this.targetBases,t)}}function d(e){let t=new o(e).get().y;e.forEach(e=>{let r=e.getCenterPoint(),n=r.y-t;e.setCenterPoint({x:r.x,y:t-n})})}function m(e){let t=new o(e).get().x;e.forEach(e=>{let r=e.getCenterPoint(),n=r.x-t;e.setCenterPoint({x:t-n,y:r.y})})}function y(e){if(0==e.length)return;let r=e[0],{x:n,y:o}=r.getCenterPoint(),a={x:n,y:o},s=new p(e).get();h(e,-s),d(e),h(e,s),t(e,(0,i.displacement)(r.getCenterPoint(),a))}function g(e){let t=new o(e),{x:r,y:n}=t.get(),i=r,a=n,s=new p(e).get();h(e,-s),m(e),h(e,s),t.set({x:i,y:a})}function v(e,t){let r=t.indexOf(e);if(-1==r)throw new Error("The target base is not present in the parent sequence.");let n=r-1,i=r+2;return n=Math.max(n,0),new p(t.slice(n,i)).get()}var b=r(127);function w(e,...t){var r;let n=t[0],o=null!==(r=t[1])&&void 0!==r?r:[],s=v(e,n)-Math.PI/2,u=n.indexOf(e);if(u<0)throw new Error("The target base is not present in the provided structure.");if(n.length>1&&u<n.length-1){let t=n[u+1];s=(0,a.flipAway)(s,(0,i.direction)(e.getCenterPoint(),t.getCenterPoint()))}let c=o.find(t=>t.includes(e));return c&&(s=(0,a.flipAway)(s,(0,i.direction)(e.getCenterPoint(),(0,b.other)(e,c).getCenterPoint()))),s}function P(e,t){let{spacing:r}=t;if(e.length<2)return;let n=new p(e),i=n.get(),a=new o(e),{x:s,y:u}=a.get(),c={x:s,y:u};e.forEach((e,t)=>{e.setCenterPoint({x:t*r,y:0})}),n.set(i),a.set(c)}function S(e){if(e.length<3)return;let t=e[0],r=e[e.length-1],n=[t.getCenterPoint(),r.getCenterPoint()],o=(0,i.distance)(n[0],n[1]),a=(0,f.direction)((0,i.displacement)(n[0],n[1])),s=o/(e.length-1),u=s*Math.cos(a),c=s*Math.sin(a),{x:l,y:h}=n[0];e.forEach(e=>{e.setCenterPoint({x:l,y:h}),l+=u,h+=c})}function E(e,r){let{basePairLength:n,basePairSpacing:a}=r;if(e.length<2)return;let s=Math.ceil(e.length/2),u=e.slice(0,s),c=e.slice(s),l=new o(e),{x:f,y:d}=l.get(),m={x:f,y:d},y=new p(e).get();P(u,{spacing:a}),P(c,{spacing:a}),new p(u).set(-Math.PI/2),new p(c).set(Math.PI/2);let g=e[0],v=e[e.length-1];t(u,(0,i.displacement)(g.getCenterPoint(),{x:0,y:0})),t(c,(0,i.displacement)(v.getCenterPoint(),{x:n,y:0})),h(e,y),l.set(m)}function x(e,t){let{spacing:r,terminiGap:n}=t;if(e.length<2)return;let i=new o(e),{x:a,y:s}=i.get(),u=a,c=s,l=new p(e).get(),f=r*(e.length-1);f+=n,Math.abs(f)<1e-5&&(f=1e-5);let d=f/(2*Math.PI),m=Math.PI/2+2*Math.PI*(.5*n/f);e.forEach((e,t)=>{let n=m+2*Math.PI*(t*r)/f;e.setCenterPoint({x:d*Math.cos(n),y:d*Math.sin(n)})}),h(e,l),i.set({x:u,y:c})}var O=r(173);function M(e,r){let{spacing:n}=r;if(e.length<3)return;let o=e[0],a=e[e.length-1],s=[o.getCenterPoint(),a.getCenterPoint()],u=(0,i.distance)(s[0],s[1]),c=n*(e.length-1);if(c-u<.001)return void S(e);if(u<.001){let{x:r,y:a}=o.getCenterPoint();return x(e,{spacing:n,terminiGap:u}),void t(e,(0,i.displacement)(o.getCenterPoint(),{x:r,y:a}))}let l=new O.CircularSegment(s,{arcLength:c}),h=l.parentCircleCenterPoint,p=l.parentCircleRadius,d=(0,f.direction)((0,i.displacement)(h,o.getCenterPoint())),m=l.arcAngle/(e.length-1);e.forEach(e=>{e.setCenterPoint({x:h.x+p*Math.cos(d),y:h.y+p*Math.sin(d)}),d+=m})}var N=r(369);function j(e,r,n){var s,u,c;let{spacing:l}=n,f=null!==(s=n.basePairSpacing)&&void 0!==s?s:l,h=null!==(u=n.hairpinLoopSpacing)&&void 0!==u?u:l,d=null!==(c=n.terminiGap)&&void 0!==c?c:l,{x:m,y}=new o(e).get(),g={x:m,y},v=new p(e).get();[,r]=(0,b.radializable)(e,r);let w=new b.PositionPairs(e,r).get(),P=(0,N.mountainPlotTraversal)(e,w),S=e.filter((e,t)=>0==P[t]);x(S,{spacing:l,terminiGap:d});let O=new b.Stems(e,r).get(),j=new Set(S),T=O.filter(e=>j.has(e[0][0])),A=r=>{let n=r[0],{x:s,y:u}=new o(n).get(),c={x:s,y:u},d=new p(r[0]).get(),m=[...r.map(e=>e[0]),...r.map(e=>e[1]).reverse()];E(m,{basePairLength:l,basePairSpacing:f}),new p(m).set(d),t(m,(0,i.displacement)(new o(n).get(),c));let y=r[r.length-1],g=y.map(t=>e.indexOf(t)),v=e.filter((e,t)=>(0,a.isBetweenExclusive)(t,(0,a.min)(g),(0,a.max)(g))&&P[t]==P[(0,a.min)(g)]+1),b=new Set(v),w=O.filter(e=>b.has(e[0][0]));M([y[0],...v,y[1]],{spacing:w.length>0?l:h}),w.forEach(e=>A(e))};T.forEach(e=>A(e)),new p(e).set(v),new o(e).set(g)}var T,A,C,L,k,B=r(456),F=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},I=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};function W(t,r,n){var i;let s,{spacing:u}=n,c=null!==(i=n.hairpinLoopSpacing)&&void 0!==i?i:u;if(0==t.length)return;if(0==r.length)return void function(e,t){let{spacing:r}=t,n=B.Point.matching(new o(e).get());x(e,{spacing:r,terminiGap:2*r}),new p(e).set(Math.PI/2),new o(e).set(n)}(t,n);[s,r]=(0,b.radializable)(t,r);let l=[...t],f=B.Point.matching(new o(l).get());t=[...t,new e({centerPoint:{x:0,y:0}})];let d=new z(t,r),m=d.loops;m.sort((e,t)=>U(e,d)-U(t,d));let y=m[0],g=(0,a.max)(y.linkers.map(e=>e.length)),v=y.linkers.flatMap(t=>[D(t),...Array.from({length:g-2}).map(()=>new e({centerPoint:{x:0,y:0}})),R(t)]);if(x(v,{spacing:u,terminiGap:u}),h(v,-new p(v).get()),new o(v).set(f),y.linkers.forEach(e=>M(e,{spacing:u})),y.emanatingStems.forEach(e=>_(e.bottomBasePair,d,n)),"outerStem"in y){let e=[y.outerStem.topBasePair[1],y.outerStem.topBasePair[0]],i=[...t.slice(d.indexOf(e[0])),...t.slice(0,d.indexOf(e[1])+1)],o=new Set(i);_(e,new z(i,r.filter(e=>e.every(e=>o.has(e)))),n)}"isHairpinLoop"in y&&y.isHairpinLoop()&&M(y.bases,{spacing:c})}function _(r,n,o){var s,u;let{spacing:c}=o,l=null!==(s=o.basePairSpacing)&&void 0!==s?s:c,f=null!==(u=o.hairpinLoopSpacing)&&void 0!==u?u:c,h=n.stems.find(e=>e.bottomBasePair[0]===r[0]);if(!h)throw new Error("Closing stem not found.");let p=B.Point.matching(r[0].getCenterPoint());E(h.bases,{basePairSpacing:l,basePairLength:c}),t(h.bases,(0,i.displacement)(r[0].getCenterPoint(),p));let d=n.loop(h.topBasePair);d.innerStems.length>0?function(r,n,o){let{spacing:s}=o,u=[n.indexOf(r[0]),n.indexOf(r[1])],c=n.loop(r).innerStems.flatMap(e=>e.bottomBasePair.map(e=>n.indexOf(e))),l=(0,a.min)(c),f=(0,a.max)(c),h=n.sequence.filter((e,t)=>t>=l&&t<=f&&n.mountainPlotTraversal[t]==n.mountainPlotTraversal[l]&&[t-1,t,t+1].some(e=>c.includes(e))),p=(0,a.max)([h.length-2,l-(0,a.min)(u)-1,(0,a.max)(u)-f-1]);p=(0,a.max)([p,0]);let d=Array.from({length:p}).map(()=>new e({centerPoint:{x:0,y:0}})),m=d.map(()=>new e({centerPoint:{x:0,y:0}})),y=B.Point.matching(r[0].getCenterPoint());x([r[0],...d,...h,...m,r[1]],{spacing:s,terminiGap:s}),t([...r,...h],(0,i.displacement)(r[0].getCenterPoint(),y)),M(n.sequence.slice(u[0],l+1),{spacing:s}),M(n.sequence.slice(f,u[1]+1),{spacing:s})}(h.topBasePair,n,o):M(d.bases,{spacing:f}),d.innerStems.forEach(e=>_(e.bottomBasePair,n,o)),(0,b.consecutivePairs)(d.innerStems).map(([e,t])=>[e.bottomBasePair[1],...n.interveningBases(e.bottomBasePair[1],t.bottomBasePair[0]),t.bottomBasePair[0]]).filter(e=>e.length>=5).forEach(e=>{let r=e.slice(1,-1),n=B.Point.matching(r[0].getCenterPoint()),o=(0,i.distance)(D(r).getCenterPoint(),R(r).getCenterPoint());E(r,{basePairLength:o,basePairSpacing:l}),M(r.length%2==0?function(e){if(e.length<4)throw new Error("The array has less than four items.");if(e.length%2!=0)throw new Error("The array has an odd number of items.");return e.slice(Math.floor(e.length/2)-2,Math.floor(e.length/2)+2)}(r):function(e){if(e.length<3)throw new Error("The array has less than three items.");if(e.length%2==0)throw new Error("The array has an even number of items.");let t=Math.floor(e.length/2);return e.slice(t-1,t+2)}(r),{spacing:r.length>=5?l:o}),t(r,(0,i.displacement)(r[0].getCenterPoint(),n))})}class z{constructor(e,t){this.sequence=e,this.basePairs=t,T.set(this,void 0),A.set(this,void 0),C.set(this,void 0),L.set(this,void 0),F(this,T,new Map,"f"),this.sequence.forEach((e,t)=>I(this,T,"f").set(e,t)),F(this,A,new Map,"f"),this.sequence.forEach((e,t)=>I(this,A,"f").set(e,t+1)),F(this,C,new Map,"f"),this.basePairs.forEach(e=>I(this,C,"f").set(e[0],e[1])),this.basePairs.forEach(e=>I(this,C,"f").set(e[1],e[0])),F(this,L,this.basePairs.map(e=>[this.positionOf(e[0]),this.positionOf(e[1])]),"f"),this.mountainPlotTraversal=(0,N.mountainPlotTraversal)(this.sequence,I(this,L,"f")),this.stems=new b.Stems(this.sequence,this.basePairs).get().map(e=>new K(e))}indexOf(e){let t=I(this,T,"f").get(e);if("number"!=typeof t)throw new Error("Base not found.");return t}positionOf(e){let t=I(this,A,"f").get(e);if("number"!=typeof t)throw new Error("Base not found.");return t}spannedBases(e){let t=this.indexOf(e[0]),r=this.indexOf(e[1]);return this.sequence.slice((0,a.min)([t,r])+1,(0,a.max)([t,r]))}numSpannedBases(e){return this.spannedBases(e).length}joinedBases(e){let t=this.indexOf(e[0]),r=this.indexOf(e[1]);return[...this.sequence.slice(0,(0,a.min)([t,r])+1),...this.sequence.slice((0,a.max)([t,r]))]}numJoinedBases(e){return this.joinedBases(e).length}interveningBases(e,t){let r=this.indexOf(e),n=this.indexOf(t);return this.sequence.slice((0,a.min)([r,n])+1,(0,a.max)([r,n]))}get loops(){return[this.outermostLoop,...this.stems.map(e=>this.loop(e.topBasePair))]}loop(e){let t=[this.indexOf(e[0]),this.indexOf(e[1])],r=this.mountainPlotTraversal[t[0]]+1,n=this.spannedBases(e).filter(e=>this.mountainPlotTraversal[this.indexOf(e)]==r),i=new Set(n),o=[e[0],...n,e[1]],a=this.stems.filter(e=>i.has(e.bottomBasePair[0])),s=a,u=this.stems.find(t=>e.includes(t.topBasePair[0]));if(!u)throw new Error("Outer stem not found.");let c=(0,b.consecutivePairs)(a).map(([e,t])=>[e.bottomBasePair[1],...this.interveningBases(e.bottomBasePair[1],t.bottomBasePair[0]),t.bottomBasePair[0]]);return a.length>0&&(c.unshift([e[0],...this.interveningBases(e[0],D(a).bottomBasePair[0]),D(a).bottomBasePair[0]]),c.push([R(a).bottomBasePair[1],...this.interveningBases(R(a).bottomBasePair[1],e[1]),e[1]])),{bases:o,closingBasePair:e,outerStem:u,innerStems:a,emanatingStems:s,linkers:c,isHairpinLoop:()=>0==s.length}}get outermostLoop(){let e=this.stems.filter(e=>0==this.mountainPlotTraversal[this.indexOf(e.bottomBasePair[0])]),t=e,r=(0,b.consecutivePairs)(t).map(([e,t])=>[e.bottomBasePair[1],...this.interveningBases(e.bottomBasePair[1],t.bottomBasePair[0]),t.bottomBasePair[0]]);return t.length>0&&r.push([...this.sequence.slice(this.indexOf(R(t).bottomBasePair[1])),...this.sequence.slice(0,this.indexOf(D(t).bottomBasePair[0])+1)]),{stems:t,emanatingStems:e,linkers:r}}}T=new WeakMap,A=new WeakMap,C=new WeakMap,L=new WeakMap;class K{constructor(e){if(k.set(this,void 0),0==e.length)throw new Error("A stem must have at least one base-pair.");F(this,k,e,"f")}get bottomBasePair(){return D(I(this,k,"f"))}get topBasePair(){return R(I(this,k,"f"))}get side5(){return I(this,k,"f").map(e=>e[0])}get side3(){let e=I(this,k,"f").map(e=>e[1]);return e.reverse(),e}get bases(){return[...this.side5,...this.side3]}}function U(e,t){let r=(0,a.max)(e.emanatingStems.map(e=>t.numSpannedBases(e.bottomBasePair)));return"closingBasePair"in e&&(r=(0,a.max)([r,t.numJoinedBases(e.closingBasePair)-2])),r}function D(e){if(0==e.length)throw new Error("The array is empty.");return e[0]}function R(e){if(0==e.length)throw new Error("The array is empty.");return e[e.length-1]}k=new WeakMap})(),n})(),e.exports=t()},291(e){var t;t=()=>(()=>{var e={106(e){var t;t=()=>(()=>{var e={992(e){var t;t=()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{KeyBinding:()=>d});var r,n,i,o,a,s,u,c,l,f,h=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},p=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class d{constructor(e,t,s){r.add(this),this.key=e,n.set(this,void 0),i.set(this,void 0),o.set(this,void 0),a.set(this,void 0),h(this,n,t,"f"),h(this,i,e=>p(this,r,"m",f).call(this,e),"f"),h(this,o,s,"f")}get owner(){return p(this,a,"f")}set owner(e){var t;null===(t=p(this,a,"f"))||void 0===t||t.removeEventListener("keydown",p(this,i,"f")),null==e||e.addEventListener("keydown",p(this,i,"f"),{passive:!1}),h(this,a,e,"f")}}return n=new WeakMap,i=new WeakMap,o=new WeakMap,a=new WeakMap,r=new WeakSet,s=function(){var e,t;return null!==(t=null===(e=p(this,o,"f"))||void 0===e?void 0:e.altKey)&&void 0!==t&&t},u=function(){var e,t;return null!==(t=null===(e=p(this,o,"f"))||void 0===e?void 0:e.ctrlKey)&&void 0!==t&&t},c=function(){var e,t;return null!==(t=null===(e=p(this,o,"f"))||void 0===e?void 0:e.metaKey)&&void 0!==t&&t},l=function(){var e,t;return null!==(t=null===(e=p(this,o,"f"))||void 0===e?void 0:e.shiftKey)&&void 0!==t&&t},f=function(e){this.owner&&this.owner===document.activeElement&&e.key.toUpperCase()===this.key.toUpperCase()&&e.altKey===p(this,r,"a",s)&&e.ctrlKey===p(this,r,"a",u)&&e.metaKey===p(this,r,"a",c)&&e.shiftKey===p(this,r,"a",l)&&(e.preventDefault(),p(this,n,"f").call(this))},t})(),e.exports=t()},854(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function n(e){return r(e)&&Number.isFinite(e)}function i(e){return r(e)&&!Number.isFinite(e)}function o(e){return n(e)&&e>0}function a(e){return n(e)&&e>=0}function s(e){return"string"==typeof e}function u(e){return!!s(e)&&0==e.trim().length}function c(e){if(!s(e))return!1;try{return JSON.parse(e),!0}catch{return!1}}function l(e){try{return JSON.stringify(e),!0}catch{return!1}}function f(e){return null==e}function h(e){return"object"==typeof e&&null!==e}function p(e){return Array.isArray(e)}function d(e){return p(e)&&0==e.length}function m(e){return p(e)&&e.length>0}function y(e){return p(e)&&e.every(r)}function g(e){return y(e)&&e.length>0}function v(e){return p(e)&&e.every(n)}function b(e){return p(e)&&e.every(i)}function w(e){return p(e)&&e.every(s)}function P(e){return w(e)&&e.length>0}return e.r(t),e.d(t,{isArray:()=>p,isEmptyArray:()=>d,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>v,isJSON:()=>c,isJSONSerializable:()=>l,isNonEmptyArray:()=>m,isNonEmptyNumbersArray:()=>g,isNonEmptyStringsArray:()=>P,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>b,isNonNegativeFiniteNumber:()=>a,isNonNullObject:()=>h,isNullish:()=>f,isNumber:()=>r,isNumbersArray:()=>y,isPositiveFiniteNumber:()=>o,isString:()=>s,isStringsArray:()=>w,isWhitespace:()=>u}),t})()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function e(e){if(e.length>0)return e[0];throw new Error("Array is empty.")}function t(e){if(e.length>0)return e[e.length-1];throw new Error("Array is empty.")}function i(e){if(e.length<3)throw new Error("Array has less than 3 items.");if(e.length%2==0)throw new Error("Array has an even number of items.");let t=Math.floor(e.length/2);return[e[t-1],e[t],e[t+1]]}function o(e){if(e.length<4)throw new Error("Array has less than 4 items.");if(e.length%2!=0)throw new Error("Array has an odd number of items.");let t=Math.floor(e.length/2);return[e[t-2],e[t-1],e[t],e[t+1]]}r.r(n),r.d(n,{DownloadableFile:()=>v,EventfulSet:()=>b,FiniteStack:()=>O,KeyBinding:()=>h.KeyBinding,containsFocus:()=>f,detectMacOS:()=>d,detectWindows:()=>p,first:()=>e,hasFocus:()=>l,isJSON:()=>a.isJSON,isJSONSerializable:()=>a.isJSONSerializable,isURL:()=>M,last:()=>t,middleFour:()=>o,middleThree:()=>i,removeWhitespace:()=>s,shuffled:()=>c,splitLines:()=>u});var a=r(854);function s(e){return[...e].filter(e=>!(0,a.isWhitespace)(e)).join("")}function u(e){return e.split(/\r\n|\r|\n/)}function c(e){return e.map(e=>({v:e,priority:Math.random()})).sort((e,t)=>e.priority-t.priority).map(({v:e})=>e)}function l(e){return e===document.activeElement}function f(e){return!!document.activeElement&&e.contains(document.activeElement)}var h=r(992);function p(){return-1!==navigator.userAgent.indexOf("Windows")}function d(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(e){return!1}}var m,y=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},g=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class v{constructor(e,t,r){m.set(this,void 0),this.name=null!=e?e:"Unnamed.txt",this.content=null!=t?t:"",y(this,m,null==r?void 0:r.type,"f")}get type(){return null!=g(this,m,"f")?g(this,m,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(e){y(this,m,e,"f")}download(){let e=new File([this.content],this.name,{type:this.type}),t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download=e.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(t)}}m=new WeakMap;class b{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(e){return this.underlyingSet.has(e)}include(e){return this.includes(e)}addAll(e){let t=[...e];0!=t.length&&(t.every(e=>this.includes(e))||(t.forEach(e=>this.underlyingSet.add(e)),this.callEventListeners("change")))}removeAll(e){let t=[...e];0!=t.length&&(t.every(e=>!this.includes(e))||(t.forEach(e=>this.underlyingSet.delete(e)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(e,t){this.eventListeners[e].push(t)}callEventListeners(e){this.eventListeners[e].forEach(e=>e())}removeEventListener(e,t){this.eventListeners[e]=this.eventListeners[e].filter(e=>e!==t)}}var w,P,S,E,x=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class O{constructor(e){w.add(this),this.maxSize=e,P.set(this,[]),S.set(this,{change:[]})}get size(){return x(this,P,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(e,t){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,[])}(this,P),x(this,w,"m",E).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return x(this,P,"f")[x(this,P,"f").length-1]}push(e){x(this,P,"f").push(e),this.size>this.maxSize&&x(this,P,"f").shift(),x(this,w,"m",E).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let e=x(this,P,"f").pop();return x(this,w,"m",E).call(this,"change"),e}addEventListener(e,t){x(this,S,"f")[e].push(t)}removeEventListener(e,t){x(this,S,"f")[e]=x(this,S,"f")[e].filter(e=>e!==t)}}function M(e){try{return new URL(e),!0}catch(e){return!1}}P=new WeakMap,S=new WeakMap,w=new WeakSet,E=function(e){x(this,S,"f")[e].forEach(e=>e())}})(),n})(),e.exports=t()},854(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function n(e){return r(e)&&Number.isFinite(e)}function i(e){return r(e)&&!Number.isFinite(e)}function o(e){return n(e)&&e>0}function a(e){return n(e)&&e>=0}function s(e){return"string"==typeof e}function u(e){return""===e}function c(e){return s(e)&&!u(e)}function l(e){return!!s(e)&&0==e.trim().length}function f(e){if(!s(e))return!1;try{return JSON.parse(e),!0}catch{return!1}}function h(e){try{return JSON.stringify(e),!0}catch{return!1}}function p(e){return!!e}function d(e){return!e}function m(e){return null==e}function y(e){return"object"==typeof e&&null!==e}function g(e){return Array.isArray(e)}function v(e){return g(e)&&0==e.length}function b(e){return g(e)&&e.length>0}function w(e){return g(e)&&e.every(r)}function P(e){return w(e)&&e.length>0}function S(e){return g(e)&&e.every(n)}function E(e){return g(e)&&e.every(i)}function x(e){return g(e)&&e.every(s)}function O(e){return x(e)&&e.length>0}return e.r(t),e.d(t,{isArray:()=>g,isEmptyArray:()=>v,isEmptyString:()=>u,isFalsy:()=>d,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>f,isJSONSerializable:()=>h,isNonEmptyArray:()=>b,isNonEmptyNumbersArray:()=>P,isNonEmptyString:()=>c,isNonEmptyStringsArray:()=>O,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>E,isNonNegativeFiniteNumber:()=>a,isNonNullObject:()=>y,isNullish:()=>m,isNumber:()=>r,isNumbersArray:()=>w,isPositiveFiniteNumber:()=>o,isString:()=>s,isStringsArray:()=>x,isTruthy:()=>p,isWhitespace:()=>l}),t})()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{isFASTA:()=>m,parseFASTA:()=>d,parseStructure:()=>p});var e,t=r(854),i=r(106),o=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class a{constructor(r){if(e.set(this,void 0),""==r)throw new Error("Text item text is empty.");if((0,t.isWhitespace)(r))throw new Error("Text item text is whitespace.");if((0,i.splitLines)(r).length>1)throw new Error(`Text item text contains multiple lines:\n\n${r}`);if((0,i.removeWhitespace)(r).length!=r.length)throw new Error(`Text item text contains whitespace:\n\n${r}`);!function(e,t,r){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,r)}(this,e,r)}toString(){return o(this,e,"f")}get length(){return o(this,e,"f").length}isInteger(){let t=Number.parseFloat(o(this,e,"f"));return Number.isInteger(t)&&t.toString()===o(this,e,"f")}isDotBracket(){return[...o(this,e,"f")].every(e=>s.has(e))}}e=new WeakMap;const s=new Set([...".()[]{}<>"]);var u,c,l,f=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class h{constructor(e){if(u.add(this),c.set(this,void 0),(0,i.splitLines)(e).length>1)throw new Error(`Line text is not a single line:\n\n${e}`);!function(e,t,r){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,r)}(this,c,e)}toString(){return f(this,c,"f")}isEmpty(){return(0,t.isEmptyString)(f(this,c,"f"))}isWhitespace(){return(0,t.isWhitespace)(f(this,c,"f"))}get firstCharacter(){let e=f(this,c,"f").charAt(0);return""==e?void 0:e}trimmed(){return new h(f(this,c,"f").trim())}get items(){return f(this,u,"a",l)}get numItems(){return f(this,u,"a",l).length}get firstItem(){let e=f(this,u,"a",l);return 0==e.length?void 0:(0,i.first)(e)}get secondItem(){let e=f(this,u,"a",l);return e.length<2?void 0:e[1]}get lastItem(){let e=f(this,u,"a",l);return 0==e.length?void 0:(0,i.last)(e)}isNumbered(){var e,t;return null!==(t=null===(e=this.firstItem)||void 0===e?void 0:e.isInteger())&&void 0!==t&&t}unnumbered(){var e,t;if(!this.isNumbered())return new h(f(this,c,"f"));let r=f(this,c,"f");r=r.trimStart();let n=null!==(t=null===(e=this.firstItem)||void 0===e?void 0:e.length)&&void 0!==t?t:0;return r=r.substring(n),r=r.trimStart(),new h(r)}}function p(e){let t=(0,i.splitLines)(e).map(e=>new h(e));t=t.filter(e=>!e.isEmpty()&&!e.isWhitespace()),1==t.length&&(0,i.first)(t).isNumbered()&&(t=[(0,i.first)(t).unnumbered()]),t.length>1&&t.slice(1).every(e=>e.isNumbered())&&(t=t.map(e=>e.unnumbered())),t=t.filter(e=>e.numItems>0);let r=t.findIndex(e=>{var t;return null===(t=e.firstItem)||void 0===t?void 0:t.isDotBracket()}),n=(r<0?t:t.slice(0,r)).flatMap(e=>[...e.items]).map(e=>e.toString()).join(""),o=(r<0?[]:t.slice(r)).flatMap(e=>[...e.items]),a="",s="";return o.forEach(e=>{e.isDotBracket()&&!s?a+=e.toString():(s+=s?" ":"",s+=e.toString())}),a.length>n.length&&(s=a.substring(n.length)+" "+s,a=a.substring(0,n.length)),s&&console.log(`Trailing text that isn't drawn:\n\n${s}`),{sequence:n,dotBracket:a}}function d(e){let t=(0,i.splitLines)(e).map(e=>new h(e));if(t=t.filter(e=>!e.isEmpty()&&!e.isWhitespace()),0==t.length)throw new Error("FASTA text is empty.");if(">"!=(0,i.first)(t).trimmed().firstCharacter)throw new Error(`FASTA text doesn't begin with a header line (i.e., a line starting with ">"):\n\n${e}`);let r=(0,i.first)(t).trimmed().toString().substring(1),n=t.slice(1).findIndex(e=>">"==e.trimmed().firstCharacter);n>=0&&console.warn("Multiple sequences and/or structures found in FASTA text. (Only the first sequence and/or structure is drawn.)");let o=n<0?t.slice(1):t.slice(1,1+n),{sequence:a,dotBracket:s}=p(o.map(e=>e.toString()).join("\n"));return{header:r,sequence:a,dotBracket:s}}function m(e){try{return d(e),!0}catch{return!1}}c=new WeakMap,u=new WeakSet,l=function(){return f(this,c,"f").split(/\s+/).filter(t.isTruthy).map(e=>new a(e))}})(),n})(),e.exports=t()},106(e){var t;t=()=>(()=>{var e={992(e){var t;t=()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{KeyBinding:()=>d});var r,n,i,o,a,s,u,c,l,f,h=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},p=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class d{constructor(e,t,s){r.add(this),this.key=e,n.set(this,void 0),i.set(this,void 0),o.set(this,void 0),a.set(this,void 0),h(this,n,t,"f"),h(this,i,e=>p(this,r,"m",f).call(this,e),"f"),h(this,o,s,"f")}get owner(){return p(this,a,"f")}set owner(e){var t;null===(t=p(this,a,"f"))||void 0===t||t.removeEventListener("keydown",p(this,i,"f")),null==e||e.addEventListener("keydown",p(this,i,"f"),{passive:!1}),h(this,a,e,"f")}}return n=new WeakMap,i=new WeakMap,o=new WeakMap,a=new WeakMap,r=new WeakSet,s=function(){var e,t;return null!==(t=null===(e=p(this,o,"f"))||void 0===e?void 0:e.altKey)&&void 0!==t&&t},u=function(){var e,t;return null!==(t=null===(e=p(this,o,"f"))||void 0===e?void 0:e.ctrlKey)&&void 0!==t&&t},c=function(){var e,t;return null!==(t=null===(e=p(this,o,"f"))||void 0===e?void 0:e.metaKey)&&void 0!==t&&t},l=function(){var e,t;return null!==(t=null===(e=p(this,o,"f"))||void 0===e?void 0:e.shiftKey)&&void 0!==t&&t},f=function(e){this.owner&&this.owner===document.activeElement&&e.key.toUpperCase()===this.key.toUpperCase()&&e.altKey===p(this,r,"a",s)&&e.ctrlKey===p(this,r,"a",u)&&e.metaKey===p(this,r,"a",c)&&e.shiftKey===p(this,r,"a",l)&&(e.preventDefault(),p(this,n,"f").call(this))},t})(),e.exports=t()},854(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function n(e){return r(e)&&Number.isFinite(e)}function i(e){return r(e)&&!Number.isFinite(e)}function o(e){return n(e)&&e>0}function a(e){return n(e)&&e>=0}function s(e){return"string"==typeof e}function u(e){return!!s(e)&&0==e.trim().length}function c(e){if(!s(e))return!1;try{return JSON.parse(e),!0}catch{return!1}}function l(e){try{return JSON.stringify(e),!0}catch{return!1}}function f(e){return null==e}function h(e){return"object"==typeof e&&null!==e}function p(e){return Array.isArray(e)}function d(e){return p(e)&&0==e.length}function m(e){return p(e)&&e.length>0}function y(e){return p(e)&&e.every(r)}function g(e){return y(e)&&e.length>0}function v(e){return p(e)&&e.every(n)}function b(e){return p(e)&&e.every(i)}function w(e){return p(e)&&e.every(s)}function P(e){return w(e)&&e.length>0}return e.r(t),e.d(t,{isArray:()=>p,isEmptyArray:()=>d,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>v,isJSON:()=>c,isJSONSerializable:()=>l,isNonEmptyArray:()=>m,isNonEmptyNumbersArray:()=>g,isNonEmptyStringsArray:()=>P,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>b,isNonNegativeFiniteNumber:()=>a,isNonNullObject:()=>h,isNullish:()=>f,isNumber:()=>r,isNumbersArray:()=>y,isPositiveFiniteNumber:()=>o,isString:()=>s,isStringsArray:()=>w,isWhitespace:()=>u}),t})()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function e(e){if(e.length>0)return e[0];throw new Error("Array is empty.")}function t(e){if(e.length>0)return e[e.length-1];throw new Error("Array is empty.")}function i(e){if(e.length<3)throw new Error("Array has less than 3 items.");if(e.length%2==0)throw new Error("Array has an even number of items.");let t=Math.floor(e.length/2);return[e[t-1],e[t],e[t+1]]}function o(e){if(e.length<4)throw new Error("Array has less than 4 items.");if(e.length%2!=0)throw new Error("Array has an odd number of items.");let t=Math.floor(e.length/2);return[e[t-2],e[t-1],e[t],e[t+1]]}r.r(n),r.d(n,{DownloadableFile:()=>v,EventfulSet:()=>b,FiniteStack:()=>O,KeyBinding:()=>h.KeyBinding,containsFocus:()=>f,detectMacOS:()=>d,detectWindows:()=>p,first:()=>e,hasFocus:()=>l,isJSON:()=>a.isJSON,isJSONSerializable:()=>a.isJSONSerializable,isURL:()=>M,last:()=>t,middleFour:()=>o,middleThree:()=>i,removeWhitespace:()=>s,shuffled:()=>c,splitLines:()=>u});var a=r(854);function s(e){return[...e].filter(e=>!(0,a.isWhitespace)(e)).join("")}function u(e){return e.split(/\r\n|\r|\n/)}function c(e){return e.map(e=>({v:e,priority:Math.random()})).sort((e,t)=>e.priority-t.priority).map(({v:e})=>e)}function l(e){return e===document.activeElement}function f(e){return!!document.activeElement&&e.contains(document.activeElement)}var h=r(992);function p(){return-1!==navigator.userAgent.indexOf("Windows")}function d(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(e){return!1}}var m,y=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},g=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class v{constructor(e,t,r){m.set(this,void 0),this.name=null!=e?e:"Unnamed.txt",this.content=null!=t?t:"",y(this,m,null==r?void 0:r.type,"f")}get type(){return null!=g(this,m,"f")?g(this,m,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(e){y(this,m,e,"f")}download(){let e=new File([this.content],this.name,{type:this.type}),t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download=e.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(t)}}m=new WeakMap;class b{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(e){return this.underlyingSet.has(e)}include(e){return this.includes(e)}addAll(e){let t=[...e];0!=t.length&&(t.every(e=>this.includes(e))||(t.forEach(e=>this.underlyingSet.add(e)),this.callEventListeners("change")))}removeAll(e){let t=[...e];0!=t.length&&(t.every(e=>!this.includes(e))||(t.forEach(e=>this.underlyingSet.delete(e)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(e,t){this.eventListeners[e].push(t)}callEventListeners(e){this.eventListeners[e].forEach(e=>e())}removeEventListener(e,t){this.eventListeners[e]=this.eventListeners[e].filter(e=>e!==t)}}var w,P,S,E,x=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class O{constructor(e){w.add(this),this.maxSize=e,P.set(this,[]),S.set(this,{change:[]})}get size(){return x(this,P,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(e,t){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,[])}(this,P),x(this,w,"m",E).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return x(this,P,"f")[x(this,P,"f").length-1]}push(e){x(this,P,"f").push(e),this.size>this.maxSize&&x(this,P,"f").shift(),x(this,w,"m",E).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let e=x(this,P,"f").pop();return x(this,w,"m",E).call(this,"change"),e}addEventListener(e,t){x(this,S,"f")[e].push(t)}removeEventListener(e,t){x(this,S,"f")[e]=x(this,S,"f")[e].filter(e=>e!==t)}}function M(e){try{return new URL(e),!0}catch(e){return!1}}P=new WeakMap,S=new WeakMap,w=new WeakSet,E=function(e){x(this,S,"f")[e].forEach(e=>e())}})(),n})(),e.exports=t()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{PasteHandler:()=>l});var e=r(291),t=r(297),i=r(106);function o(e){return(0,i.isJSON)(e)}var a=r(534);function s(e){return e instanceof SVGGraphicsElement}var u,c=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class l{constructor(e){u.set(this,void 0),function(e,t,r){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,r)}(this,u,e)}handle(r){return n=this,l=function*(){var n,i,l,f,h;r.preventDefault(),r.stopPropagation();let p=null!==(i=null===(n=r.clipboardData)||void 0===n?void 0:n.getData("text"))&&void 0!==i?i:"",d=null!==(f=null===(l=r.clipboardData)||void 0===l?void 0:l.files)&&void 0!==f?f:[];if(!p&&0==d.length)throw new Error("No text or files were pasted.");d.length>1&&console.warn("Multiple files were pasted. (Only the first file is processed.)");let m=0==d.length?void 0:d[0];p||(p=m?yield m.text():""),c(this,u,"f").undoStack.push();try{let r=c(this,u,"f").drawing.isEmpty(),n=c(this,u,"f").drawing.domNode.children.length,{x:i,y:l}=c(this,u,"f").view.centerPoint,f={x:i,y:l},d=c(this,u,"f").draw(p),m=[...null!==(h=null==d?void 0:d.bases)&&void 0!==h?h:[]];r||new a.Centroid(m).set(f),o(p)||c(this,u,"f").drawing.setPadding(1e3),r||o(p)?c(this,u,"f").view.fitTo(c(this,u,"f").drawing.contentBBox.padded({percentage:10})):c(this,u,"f").view.centerPoint=f;let y=(0,e.isFASTA)(p)?(0,e.parseFASTA)(p).header:(0,t.isCT)(p)?(0,t.parseCT)(p).description:void 0;y&&!c(this,u,"f").drawing.name&&(c(this,u,"f").drawing.name=y);let g=[...c(this,u,"f").drawing.domNode.children].slice(n);r||c(this,u,"f").select(g.filter(s)),c(this,u,"f").startPage.isOpen()&&(c(this,u,"f").startPage.close(),c(this,u,"f").peripheralUI.show())}catch(e){throw console.error(e),c(this,u,"f").undo(),new Error(`Error processing paste event: ${r}.`)}},new((i=void 0)||(i=Promise))(function(e,t){function r(e){try{a(l.next(e))}catch(e){t(e)}}function o(e){try{a(l.throw(e))}catch(e){t(e)}}function a(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(r,o)}a((l=l.apply(n,[])).next())});var n,i,l}}u=new WeakMap})(),n})(),e.exports=t()},106(e){var t;t=()=>(()=>{var e={992(e){var t;t=()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{KeyBinding:()=>d});var r,n,i,o,a,s,u,c,l,f,h=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},p=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class d{constructor(e,t,s){r.add(this),this.key=e,n.set(this,void 0),i.set(this,void 0),o.set(this,void 0),a.set(this,void 0),h(this,n,t,"f"),h(this,i,e=>p(this,r,"m",f).call(this,e),"f"),h(this,o,s,"f")}get owner(){return p(this,a,"f")}set owner(e){var t;null===(t=p(this,a,"f"))||void 0===t||t.removeEventListener("keydown",p(this,i,"f")),null==e||e.addEventListener("keydown",p(this,i,"f"),{passive:!1}),h(this,a,e,"f")}}return n=new WeakMap,i=new WeakMap,o=new WeakMap,a=new WeakMap,r=new WeakSet,s=function(){var e,t;return null!==(t=null===(e=p(this,o,"f"))||void 0===e?void 0:e.altKey)&&void 0!==t&&t},u=function(){var e,t;return null!==(t=null===(e=p(this,o,"f"))||void 0===e?void 0:e.ctrlKey)&&void 0!==t&&t},c=function(){var e,t;return null!==(t=null===(e=p(this,o,"f"))||void 0===e?void 0:e.metaKey)&&void 0!==t&&t},l=function(){var e,t;return null!==(t=null===(e=p(this,o,"f"))||void 0===e?void 0:e.shiftKey)&&void 0!==t&&t},f=function(e){this.owner&&this.owner===document.activeElement&&e.key.toUpperCase()===this.key.toUpperCase()&&e.altKey===p(this,r,"a",s)&&e.ctrlKey===p(this,r,"a",u)&&e.metaKey===p(this,r,"a",c)&&e.shiftKey===p(this,r,"a",l)&&(e.preventDefault(),p(this,n,"f").call(this))},t})(),e.exports=t()},854(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function n(e){return r(e)&&Number.isFinite(e)}function i(e){return r(e)&&!Number.isFinite(e)}function o(e){return n(e)&&e>0}function a(e){return n(e)&&e>=0}function s(e){return"string"==typeof e}function u(e){return!!s(e)&&0==e.trim().length}function c(e){if(!s(e))return!1;try{return JSON.parse(e),!0}catch{return!1}}function l(e){try{return JSON.stringify(e),!0}catch{return!1}}function f(e){return null==e}function h(e){return"object"==typeof e&&null!==e}function p(e){return Array.isArray(e)}function d(e){return p(e)&&0==e.length}function m(e){return p(e)&&e.length>0}function y(e){return p(e)&&e.every(r)}function g(e){return y(e)&&e.length>0}function v(e){return p(e)&&e.every(n)}function b(e){return p(e)&&e.every(i)}function w(e){return p(e)&&e.every(s)}function P(e){return w(e)&&e.length>0}return e.r(t),e.d(t,{isArray:()=>p,isEmptyArray:()=>d,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>v,isJSON:()=>c,isJSONSerializable:()=>l,isNonEmptyArray:()=>m,isNonEmptyNumbersArray:()=>g,isNonEmptyStringsArray:()=>P,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>b,isNonNegativeFiniteNumber:()=>a,isNonNullObject:()=>h,isNullish:()=>f,isNumber:()=>r,isNumbersArray:()=>y,isPositiveFiniteNumber:()=>o,isString:()=>s,isStringsArray:()=>w,isWhitespace:()=>u}),t})()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function e(e){if(e.length>0)return e[0];throw new Error("Array is empty.")}function t(e){if(e.length>0)return e[e.length-1];throw new Error("Array is empty.")}function i(e){if(e.length<3)throw new Error("Array has less than 3 items.");if(e.length%2==0)throw new Error("Array has an even number of items.");let t=Math.floor(e.length/2);return[e[t-1],e[t],e[t+1]]}function o(e){if(e.length<4)throw new Error("Array has less than 4 items.");if(e.length%2!=0)throw new Error("Array has an odd number of items.");let t=Math.floor(e.length/2);return[e[t-2],e[t-1],e[t],e[t+1]]}r.r(n),r.d(n,{DownloadableFile:()=>v,EventfulSet:()=>b,FiniteStack:()=>O,KeyBinding:()=>h.KeyBinding,containsFocus:()=>f,detectMacOS:()=>d,detectWindows:()=>p,first:()=>e,hasFocus:()=>l,isJSON:()=>a.isJSON,isJSONSerializable:()=>a.isJSONSerializable,isURL:()=>M,last:()=>t,middleFour:()=>o,middleThree:()=>i,removeWhitespace:()=>s,shuffled:()=>c,splitLines:()=>u});var a=r(854);function s(e){return[...e].filter(e=>!(0,a.isWhitespace)(e)).join("")}function u(e){return e.split(/\r\n|\r|\n/)}function c(e){return e.map(e=>({v:e,priority:Math.random()})).sort((e,t)=>e.priority-t.priority).map(({v:e})=>e)}function l(e){return e===document.activeElement}function f(e){return!!document.activeElement&&e.contains(document.activeElement)}var h=r(992);function p(){return-1!==navigator.userAgent.indexOf("Windows")}function d(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(e){return!1}}var m,y=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},g=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class v{constructor(e,t,r){m.set(this,void 0),this.name=null!=e?e:"Unnamed.txt",this.content=null!=t?t:"",y(this,m,null==r?void 0:r.type,"f")}get type(){return null!=g(this,m,"f")?g(this,m,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(e){y(this,m,e,"f")}download(){let e=new File([this.content],this.name,{type:this.type}),t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download=e.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(t)}}m=new WeakMap;class b{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(e){return this.underlyingSet.has(e)}include(e){return this.includes(e)}addAll(e){let t=[...e];0!=t.length&&(t.every(e=>this.includes(e))||(t.forEach(e=>this.underlyingSet.add(e)),this.callEventListeners("change")))}removeAll(e){let t=[...e];0!=t.length&&(t.every(e=>!this.includes(e))||(t.forEach(e=>this.underlyingSet.delete(e)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(e,t){this.eventListeners[e].push(t)}callEventListeners(e){this.eventListeners[e].forEach(e=>e())}removeEventListener(e,t){this.eventListeners[e]=this.eventListeners[e].filter(e=>e!==t)}}var w,P,S,E,x=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class O{constructor(e){w.add(this),this.maxSize=e,P.set(this,[]),S.set(this,{change:[]})}get size(){return x(this,P,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(e,t){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,[])}(this,P),x(this,w,"m",E).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return x(this,P,"f")[x(this,P,"f").length-1]}push(e){x(this,P,"f").push(e),this.size>this.maxSize&&x(this,P,"f").shift(),x(this,w,"m",E).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let e=x(this,P,"f").pop();return x(this,w,"m",E).call(this,"change"),e}addEventListener(e,t){x(this,S,"f")[e].push(t)}removeEventListener(e,t){x(this,S,"f")[e]=x(this,S,"f")[e].filter(e=>e!==t)}}function M(e){try{return new URL(e),!0}catch(e){return!1}}P=new WeakMap,S=new WeakMap,w=new WeakSet,E=function(e){x(this,S,"f")[e].forEach(e=>e())}})(),n})(),e.exports=t()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{DropHandler:()=>o});var e,t=r(793),i=r(106);class o{constructor(r){e.set(this,void 0),function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(e,r):i?i.value=r:t.set(e,r)}(this,e,new t.PasteHandler(r),"f")}handle(t){return r=this,n=void 0,a=function*(){var r,n;t.preventDefault(),t.stopPropagation();let o=[...null!==(n=null===(r=t.dataTransfer)||void 0===r?void 0:r.files)&&void 0!==n?n:[]];if(0==o.length)throw new Error("No files were dropped.");let a=(0,i.first)(o);return o.length>1&&console.warn("Multiple files were dropped. (Only the first file is processed.)"),yield function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)}(this,e,"f").handle({clipboardData:{getData:()=>"",files:[a]},preventDefault:()=>{},stopPropagation:()=>{}})},new((o=void 0)||(o=Promise))(function(e,t){function i(e){try{u(a.next(e))}catch(e){t(e)}}function s(e){try{u(a.throw(e))}catch(e){t(e)}}function u(t){var r;t.done?e(t.value):(r=t.value,r instanceof o?r:new o(function(e){e(r)})).then(i,s)}u((a=a.apply(r,n||[])).next())});var r,n,o,a}}e=new WeakMap})(),n})());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rnacanvas/drop-interface",
3
- "version": "8.0.0",
3
+ "version": "10.0.0",
4
4
  "description": "Drop things",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,7 +25,7 @@
25
25
  "webpack-cli": "^7.0.2"
26
26
  },
27
27
  "dependencies": {
28
- "@rnacanvas/paste-interface": "^8.0.0",
28
+ "@rnacanvas/paste-interface": "^10.0.0",
29
29
  "@rnacanvas/utilities": "^7.2.0",
30
30
  "@rnacanvas/value-check": "^2.6.1"
31
31
  }