@jbrowse/plugin-alignments 1.5.8 → 1.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BamAdapter/BamAdapter.d.ts +5 -0
- package/dist/BamAdapter/BamSlightlyLazyFeature.d.ts +1 -2
- package/dist/CramAdapter/CramAdapter.d.ts +16 -5
- package/dist/LinearAlignmentsDisplay/models/model.d.ts +2 -1
- package/dist/LinearPileupDisplay/model.d.ts +28 -6
- package/dist/LinearSNPCoverageDisplay/models/model.d.ts +3 -0
- package/dist/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +1 -0
- package/dist/plugin-alignments.cjs.development.js +557 -346
- package/dist/plugin-alignments.cjs.development.js.map +1 -1
- package/dist/plugin-alignments.cjs.production.min.js +1 -1
- package/dist/plugin-alignments.cjs.production.min.js.map +1 -1
- package/dist/plugin-alignments.esm.js +557 -346
- package/dist/plugin-alignments.esm.js.map +1 -1
- package/package.json +3 -3
- package/src/BamAdapter/BamAdapter.ts +56 -35
- package/src/BamAdapter/BamSlightlyLazyFeature.ts +18 -25
- package/src/BamAdapter/configSchema.ts +2 -2
- package/src/CramAdapter/CramAdapter.ts +105 -91
- package/src/CramAdapter/configSchema.ts +5 -1
- package/src/LinearAlignmentsDisplay/models/model.tsx +4 -3
- package/src/LinearPileupDisplay/configSchema.ts +3 -3
- package/src/LinearPileupDisplay/model.ts +8 -7
- package/src/LinearSNPCoverageDisplay/models/configSchema.ts +1 -5
- package/src/LinearSNPCoverageDisplay/models/model.ts +3 -2
- package/src/PileupRenderer/PileupRenderer.tsx +5 -3
- package/src/SNPCoverageAdapter/SNPCoverageAdapter.ts +5 -0
- package/src/index.ts +22 -15
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("@jbrowse/core/Plugin")),r=require("@jbrowse/core/util"),n=e(require("@jbrowse/core/pluggableElementTypes/AdapterType")),a=require("@jbrowse/core/configuration"),o=require("mobx-state-tree"),i=require("@jbrowse/core/data_adapters/BaseAdapter"),l=e(require("@jbrowse/core/util/simpleFeature")),s=require("@jbrowse/core/util/rxjs"),c=require("rxjs/operators"),u=require("@jbrowse/core/ui"),p=require("@jbrowse/plugin-wiggle"),f=require("@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType"),d=e(f),g=e(require("color")),h=require("@jbrowse/core/util/offscreenCanvasUtils"),m=require("@jbrowse/core/data_adapters/dataAdapterCache"),y=require("@jbrowse/core/util/range"),v=e(require("fast-deep-equal")),b=require("mobx-react"),C=require("react"),w=e(C),S=e(require("@jbrowse/core/pluggableElementTypes/DisplayType")),x=require("@jbrowse/plugin-linear-genome-view"),k=require("@jbrowse/core/pluggableElementTypes/models"),_=require("mobx"),E=e(require("@jbrowse/core/pluggableElementTypes/renderers/util/serializableFilterChain")),P=require("@jbrowse/core/util/tracks"),T=e(require("@material-ui/icons/Visibility")),M=require("@jbrowse/core/ui/Icons"),R=e(require("copy-to-clipboard")),N=e(require("@material-ui/icons/MenuOpen")),A=e(require("@material-ui/icons/Sort")),D=e(require("@material-ui/icons/Palette")),B=e(require("@material-ui/icons/ClearAll")),I=e(require("@material-ui/core/Typography")),L=e(require("@jbrowse/core/pluggableElementTypes/TrackType")),F=require("@jbrowse/core/util/types/mst"),q=e(require("@jbrowse/core/pluggableElementTypes/WidgetType")),O=e(require("@jbrowse/core/pluggableElementTypes/RpcMethodType")),j=require("@gmod/cram"),H=require("@jbrowse/core/util/io"),V=require("@gmod/bam"),z=require("@material-ui/core"),G=e(require("@material-ui/icons/Close")),W=require("@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail");function U(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function J(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?U(Object(r),!0).forEach((function(t){K(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):U(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function X(e,t,r,n,a,o,i){try{var l=e[o](i),s=l.value}catch(e){return void r(e)}l.done?t(s):Promise.resolve(s).then(n,a)}function Q(e){return function(){var t=this,r=arguments;return new Promise((function(n,a){var o=e.apply(t,r);function i(e){X(o,n,a,i,l,"next",e)}function l(e){X(o,n,a,i,l,"throw",e)}i(void 0)}))}}function Z(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function $(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function Y(e,t,r){return t&&$(e.prototype,t),r&&$(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function K(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ee(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");Object.defineProperty(e,"prototype",{value:Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),writable:!1}),t&&(Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function te(e){return(te=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function re(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function ne(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=te(e);if(t){var a=te(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return re(this,r)}}function ae(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=te(e)););return e}function oe(){return(oe="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=ae(e,t);if(n){var a=Object.getOwnPropertyDescriptor(n,t);return a.get?a.get.call(arguments.length<3?e:r):a.value}}).apply(this,arguments)}function ie(e,t){return se(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o=[],i=!0,l=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);i=!0);}catch(e){l=!0,a=e}finally{try{i||null==r.return||r.return()}finally{if(l)throw a}}return o}}(e,t)||ue(e,t)||fe()}function le(e){return function(e){if(Array.isArray(e))return pe(e)}(e)||ce(e)||ue(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function se(e){if(Array.isArray(e))return e}function ce(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function ue(e,t){if(e){if("string"==typeof e)return pe(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?pe(e,t):void 0}}function pe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function fe(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function de(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=ue(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,l=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){l=!0,o=e},f:function(){try{i||null==r.return||r.return()}finally{if(l)throw o}}}}function ge(e,t){return e(t={exports:{}},t.exports),t.exports}var he=ge((function(e){var t=function(e){var t=Object.prototype,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",o=n.asyncIterator||"@@asyncIterator",i=n.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function s(e,t,r,n){var a=Object.create((t&&t.prototype instanceof p?t:p).prototype),o=new x(n||[]);return a._invoke=function(e,t,r){var n="suspendedStart";return function(a,o){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===a)throw o;return{value:void 0,done:!0}}for(r.method=a,r.arg=o;;){var i=r.delegate;if(i){var l=C(i,r);if(l){if(l===u)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var s=c(e,t,r);if("normal"===s.type){if(n=r.done?"completed":"suspendedYield",s.arg===u)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(n="completed",r.method="throw",r.arg=s.arg)}}}(e,r,o),a}function c(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=s;var u={};function p(){}function f(){}function d(){}var g={};l(g,a,(function(){return this}));var h=Object.getPrototypeOf,m=h&&h(h(k([])));m&&m!==t&&r.call(m,a)&&(g=m);var y=d.prototype=p.prototype=Object.create(g);function v(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){var n;this._invoke=function(a,o){function i(){return new t((function(n,i){!function n(a,o,i,l){var s=c(e[a],e,o);if("throw"!==s.type){var u=s.arg,p=u.value;return p&&"object"==typeof p&&r.call(p,"__await")?t.resolve(p.__await).then((function(e){n("next",e,i,l)}),(function(e){n("throw",e,i,l)})):t.resolve(p).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,l)}))}l(s.arg)}(a,o,n,i)}))}return n=n?n.then(i,i):i()}}function C(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,C(e,t),"throw"===t.method))return u;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var n=c(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,u;var a=n.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,u):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,u)}function w(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function x(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function k(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:_}}function _(){return{value:void 0,done:!0}}return f.prototype=d,l(y,"constructor",d),l(d,"constructor",f),f.displayName=l(d,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===f||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,d):(e.__proto__=d,l(e,i,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},v(b.prototype),l(b.prototype,o,(function(){return this})),e.AsyncIterator=b,e.async=function(t,r,n,a,o){void 0===o&&(o=Promise);var i=new b(s(t,r,n,a),o);return e.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},v(y),l(y,i,"Generator"),l(y,a,(function(){return this})),l(y,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},e.values=k,x.prototype={constructor:x,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(S),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],i=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var l=r.call(o,"catchLoc"),s=r.call(o,"finallyLoc");if(l&&s){if(this.prev<o.catchLoc)return n(o.catchLoc,!0);if(this.prev<o.finallyLoc)return n(o.finallyLoc)}else if(l){if(this.prev<o.catchLoc)return n(o.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return n(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,u):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),u},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var a=n.arg;S(r)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:k(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),u}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}})),me=he.mark(we);function ye(e){return(e||"").split(/([MIDNSHPX=])/)}function ve(e,t,r){for(var n=0,a=0,o=[],i=0;i<e.length-1;i+=2){var l=+e[i],s=e[i+1];if("M"!==s&&"="!==s&&"E"!==s||(a+=l),"I"===s)o.push({start:n,type:"insertion",base:"".concat(l),length:0}),a+=l;else if("D"===s)o.push({start:n,type:"deletion",base:"*",length:l});else if("N"===s)o.push({start:n,type:"skip",base:"N",length:l});else if("X"===s){for(var c=t.slice(a,a+l),u=(null==r?void 0:r.slice(a,a+l))||[],p=0;p<l;p++)o.push({start:n+p,type:"mismatch",base:c[p],qual:u[p],length:1});a+=l}else"H"===s?o.push({start:n,type:"hardclip",base:"H".concat(l),cliplen:l,length:1}):"S"===s&&(o.push({start:n,type:"softclip",base:"S".concat(l),cliplen:l,length:1}),a+=l);"I"!==s&&"S"!==s&&"H"!==s&&(n+=l)}return o}function be(e,t,r,n,a){var o=[],i={start:0,base:"",length:0,type:"mismatch"},l=r.filter((function(e){return"skip"===e.type})),s=0,c=0,u=0,p=0;function f(){o.push(i),i={start:i.start+i.length,length:0,base:"",type:"mismatch"}}function d(e){for(var r=c,n=u,a=s;a<t.length&&n<=e;s=a+=2){var o=+t[a],i=t[a+1];"S"===i||"I"===i?r+=o:"D"===i||"P"===i||"N"===i?n+=o:"H"!==i&&(r+=o,n+=o)}return c=r,u=n,r-(n-e)}for(var g=e.match(/(\d+|\^[a-z]+|[a-z])/gi)||[],h=0;h<g.length;h++){var m=g[h],y=+m;if(Number.isNaN(y))if(m.startsWith("^"))i.length=m.length-1,i.base="*",i.type="deletion",i.seq=m.substring(1),f();else for(var v=0;v<m.length;v+=1){for(i.length=1;p<l.length;){var b=l[p];if(!(i.start>=b.start))break;i.start+=b.length,p++}var C=t?d(i.start):i.start;i.base=n?n.substr(C,1):"X";var w=null==a?void 0:a.slice(C,C+1)[0];w&&(i.qual=w),i.altbase=m,f()}else i.start+=y}return o}function Ce(e,t,r){var n=0,a=0,o=0;if(!e)return console.warn("no ref supplied to generateMD"),"";for(var i=ye(r),l="",s=0;s<i.length;s+=2){var c=+i[s],u=i[s+1];if("M"===u||"X"===u||"="===u){for(var p=0;p<c;p++)t[n+p].toLowerCase()!==e[a+p].toLowerCase()?(l+="".concat(o).concat(e[a+p].toUpperCase()),o=0):o++;n+=c,a+=c}else if("I"===u)n+=c;else if("D"===u){for(var f="",d=0;d<c;d++)f+=e[a+d].toUpperCase();l+="".concat(o,"^").concat(f),o=0,a+=c}else"N"===u?a+=c:"S"===u&&(n+=c)}return o>0&&(l+=o),l}function we(e,t){var r,n,a,o,i,l,s;return he.wrap((function(c){for(;;)switch(c.prev=c.next){case 0:r=0,n=0,a=0,o=0;case 4:if(!(o<t.length)){c.next=12;break}for(i=t[o];r<e.length&&n<i;r+=2)l=+e[r],"S"===(s=e[r+1])||"I"===s?n+=l:"D"===s||"N"===s?a+=l:"M"!==s&&"X"!==s&&"="!==s||(n+=l,a+=l);return c.next=9,t[o]-n+a;case 9:o++,c.next=4;break;case 12:case"end":return c.stop()}}),me)}function Se(e,t,n){var a=-1===n?r.revcom(t):t;return e.split(";").filter((function(e){return!!e})).map((function(e){var t,r=se(t=e.split(","))||ce(t)||ue(t)||fe(),o=r[0],i=r.slice(1),l=o.match(/([A-Z])([-+])([^,.?]+)([.?])?/);if(!l)throw new Error("bad format for MM tag");var s=ie(l,4),c=s[1],u=s[2],p=s[3].split(/(\d+|.)/).filter((function(e){return!!e}));return"-"===u?(console.warn("unsupported negative strand modifications"),{type:"unsupported",positions:[]}):p.map((function(e){var t=0;return{type:e,positions:i.map((function(e){return+e})).map((function(e){do{"N"!==c&&c!==a[t]||e--,t++}while(e>=0&&t<a.length);var r=t-1;return-1===n?a.length-1-r:r})).sort((function(e,t){return e-t}))}}))})).flat()}function xe(e){return e.split(";").filter((function(e){return!!e})).map((function(e){var t=ie(e.split(","),1)[0].match(/([A-Z])([-+])([^,]+)/);if(!t)throw new Error("bad format for MM tag");return ie(t,4)[3].split(/(\d+|.)/).filter((function(e){return!!e}))})).flat()}var ke={__proto__:null,parseCigar:ye,cigarToMismatches:ve,mdToMismatches:be,getTemplateCoord:function(e,t){for(var r=0,n=0,a=0;a<t.length&&n<=e;a+=2){var o=+t[a],i=t[a+1];"S"===i||"I"===i?r+=o:"D"===i||"P"===i?n+=o:"H"!==i&&(r+=o,n+=o)}return r-(n-e)},getMismatches:function(e,t,r,n){var a=[],o=[];e&&(o=ye(e),a=a.concat(ve(o,r,n))),t&&(a=a.concat(be(t,o,a,r,n)));var i={};return a.filter((function(e){var t="".concat(e.type,",").concat(e.start,",").concat(e.length),r=i[t];return i[t]=!0,!r}))},generateMD:Ce,getNextRefPos:we,getModificationPositions:Se,getModificationTypes:xe},_e=function(e){return e.lib["mobx-state-tree"].types.late((function(){return a.ConfigurationSchema("CramAdapter",{cramLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.cram",locationType:"UriLocation"}},craiLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.cram.crai",locationType:"UriLocation"}},sequenceAdapter:e.pluggableConfigSchemaType("adapter")},{explicitlyTyped:!0})}))},Ee=function(e){e.addAdapterType((function(){return new n({name:"CramAdapter",configSchema:e.load(_e),getAdapterClass:function(){return Promise.resolve().then((function(){return Lt})).then((function(e){return e.default}))}})}))},Pe=o.types.late((function(){return a.ConfigurationSchema("BamAdapter",{bamLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bam",locationType:"UriLocation"}},index:a.ConfigurationSchema("BamIndex",{indexType:{model:o.types.enumeration("IndexType",["BAI","CSI"]),type:"stringEnum",defaultValue:"BAI"},location:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bam.bai",locationType:"UriLocation"}}}),chunkSizeLimit:{type:"number",defaultValue:1e8},fetchSizeLimit:{type:"number",defaultValue:5e8},sequenceAdapter:{type:"frozen",defaultValue:null}},{explicitlyTyped:!0})})),Te=function(e){e.addAdapterType((function(){return new n({name:"BamAdapter",configSchema:Pe,getAdapterClass:function(){return Promise.resolve().then((function(){return Ot})).then((function(e){return e.default}))}})}))},Me=o.types.late((function(){return a.ConfigurationSchema("HtsgetBamAdapter",{htsgetBase:{type:"string",defaultValue:""},htsgetTrackId:{type:"string",defaultValue:""},sequenceAdapter:{type:"frozen",defaultValue:null}},{explicitlyTyped:!0})})),Re=function(e){e.addAdapterType((function(){return new n({name:"HtsgetBamAdapter",adapterMetadata:{category:null,hiddenFromGUI:!0,displayName:null,description:null},configSchema:Me,getAdapterClass:function(){return Promise.resolve().then((function(){return jt})).then((function(e){return e.default}))}})}))},Ne=function(e){return o.types.late((function(){return a.ConfigurationSchema("SNPCoverageAdapter",{subadapter:e.pluggableConfigSchemaType("adapter")},{explicitlyTyped:!0})}))};function Ae(e,t){var r=e.get("tags");return r?r[t]:e.get(t)}function De(e,t,r){return Ae(e,t)||Ae(e,r)}var Be={fr:{F1R2:"LR",F2R1:"LR",F1F2:"LL",F2F1:"LL",R1R2:"RR",R2R1:"RR",R1F2:"RL",R2F1:"RL"},rf:{R1F2:"LR",R2F1:"LR",R1R2:"LL",R2R1:"LL",F1F2:"RR",F2F1:"RR",F1R2:"RL",F2R1:"RL"},ff:{F2F1:"LR",R1R2:"LR",F2R1:"LL",R1F2:"LL",R2F1:"RR",F1R2:"RR",R2R1:"RL",F1F2:"RL"}};function Ie(e){return Le(e.type)?1:e.length}function Le(e){return"softclip"===e||"hardclip"===e||"insertion"===e}function Fe(e,t,r,n){e[r][n]||(e[r][n]={total:0,strands:{"-1":0,0:0,1:0}}),e[r][n].total++,e[r][n].strands[t]++}function qe(e,t,r,n){e[r][n]||(e[r][n]={total:0,strands:{"-1":0,0:0,1:0}}),e[r][n].total--,e[r][n].strands[t]--}var Oe=function(e){ee(u,i.BaseFeatureDataAdapter);var t,r,n,o=ne(u);function u(){return Z(this,u),o.apply(this,arguments)}return Y(u,[{key:"configure",value:(n=Q(he.mark((function e(){var t,r,n,o,i,l;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=a.readConfObject(this.config,"subadapter"),o=a.readConfObject(this.config,["subadapter","sequenceAdapter"]),e.next=4,null===(t=this.getSubAdapter)||void 0===t?void 0:t.call(this,n);case 4:if(i=e.sent,!o){e.next=11;break}return e.next=8,null===(r=this.getSubAdapter)||void 0===r?void 0:r.call(this,o);case 8:e.t0=e.sent,e.next=12;break;case 11:e.t0=void 0;case 12:if(l=e.t0,i){e.next=15;break}throw new Error("Failed to get subadapter");case 15:return e.abrupt("return",{subadapter:i.dataAdapter,sequenceAdapter:null==l?void 0:l.dataAdapter});case 16:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"getFeatures",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return s.ObservableCreate(function(){var n=Q(he.mark((function n(a){var o,i,s,u;return he.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.configure();case 2:return o=n.sent.subadapter.getFeatures(e,r),r.filters&&(i=r.filters,o=o.pipe(c.filter((function(e){return i.passes(e,r)})))),n.next=8,t.generateCoverageBins(o,e,r);case 8:u=(s=n.sent).skipmap,s.bins.forEach((function(r,n){r.total&&a.next(new l({id:"".concat(t.id,"-").concat(e.start,"-").concat(n),data:{score:r.total,snpinfo:r,start:e.start+n,end:e.start+n+1,refName:e.refName}}))})),Object.entries(u).forEach((function(e){var t=ie(e,2),r=t[1];a.next(new l({id:t[0],data:{type:"skip",start:r.start,end:r.end,strand:r.strand,score:r.score,xs:r.xs}}))})),a.complete();case 14:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}(),r.signal)}},{key:"getRefNames",value:(r=Q(he.mark((function e(){var t,r=arguments;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=r.length>0&&void 0!==r[0]?r[0]:{},e.next=3,this.configure();case 3:return e.abrupt("return",e.sent.subadapter.getRefNames(t));case 6:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"freeResources",value:function(){}},{key:"generateCoverageBins",value:(t=Q(he.mark((function e(t,r,n){var a,o,i,l,s,u,p,f,d,g,h,m;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=n.colorBy,e.next=3,this.configure();case 3:if(o=e.sent.sequenceAdapter,i=r.originalRefName,l=r.refName,s=r.start,u=r.end,p=Math.ceil(r.end-r.start),f={},d=Array.from({length:p},(function(){return{total:0,lowqual:{},cov:{},delskips:{},noncov:{},ref:{}}})),!o){e.next=16;break}return e.next=12,o.getFeatures({refName:i||l,start:s,end:u+1,assemblyName:"na"}).pipe(c.toArray()).toPromise();case 12:h=ie(e.sent,1),g=null==(m=h[0])?void 0:m.get("seq");case 16:return e.next=18,t.pipe(c.reduce((function(e,t){for(var n=t.get("CIGAR"),o=t.get("start"),i=t.get("end"),l=t.get("strand"),s=ye(n),c=o;c<i;c++){var u=c-r.start;if(u>=0&&u<e.length){var p=e[u];p.total++,Fe(p,l,"ref","ref")}}if("modifications"===(null==a?void 0:a.type)){var d=t.get("seq"),h=De(t,"MM","Mm")||"",m=De(t,"ML","Ml")||[],y=m?("string"==typeof m?m.split(",").map((function(e){return+e})):m).map((function(e){return e/255})):De(t,"MP","Mp").split("").map((function(e){return e.charCodeAt(0)-33})).map((function(e){return Math.min(1,e/50)})),v=0;Se(h,d,l).forEach((function(t){var n,a=t.positions,c="mod_".concat(t.type),u=de(we(s,a));try{for(u.s();!(n=u.n()).done;){var p=n.value,f=p+o-r.start;f>=0&&f<e.length&&p+o<i&&Fe(e[f],l,y[v]>.5?"cov":"lowqual",c),v++}}catch(e){u.e(e)}finally{u.f()}}))}else if("methylation"===(null==a?void 0:a.type)){if(!g)throw new Error("no region sequence detected, need sequenceAdapter configuration");var b=t.get("seq"),C=De(t,"MM","Mm")||"",w=new Array(r.end-r.start).fill(0);Se(C,b,l).forEach((function(e){if("m"===e.type){var t,n=de(we(s,e.positions));try{for(n.s();!(t=n.n()).done;){var a=t.value+o-r.start;a>=0&&a<w.length&&(w[a]=1)}}catch(e){n.e(e)}finally{n.f()}}}));for(var S=o;S<i;S++){var x=S-r.start;if(x>=0&&x<e.length-1){var k=g[x].toLowerCase(),_=g[x+1].toLowerCase(),E=e[x],P=e[x+1];"c"===k&&"g"===_&&(w[x]||w[x+1]?(Fe(E,l,"cov","meth"),Fe(P,l,"cov","meth"),qe(E,l,"ref","ref"),qe(P,l,"ref","ref")):(Fe(E,l,"cov","unmeth"),Fe(P,l,"cov","unmeth"),qe(E,l,"ref","ref"),qe(P,l,"ref","ref")))}}}else{var T=t.get("mismatches");if(T){for(var M=0;M<T.length;M++)for(var R=T[M],N=o+R.start,A=N;A<N+Ie(R);A++){var D=A-r.start;if(D>=0&&D<e.length){var B=e[D],I=R.base,L=R.type,F=Le(L);F?Fe(B,l,"noncov",L):qe(B,l,"ref","ref"),"deletion"===L||"skip"===L?(Fe(B,l,"delskips",L),B.total--):F||Fe(B,l,"cov",I)}}T.filter((function(e){return"skip"===e.type})).forEach((function(e){var r=t.get("start")+e.start,n=r,a=r+e.length,o=t.get("strand"),i="".concat(n,"_").concat(a,"_").concat(o);f[i]?f[i].score++:f[i]={feature:t,start:n,end:a,strand:o,xs:t.get("xs")||t.get("ts")||t.get("tags").XS||t.get("tags").TS,score:1}}))}}return e}),d)).toPromise();case 18:return e.abrupt("return",{bins:e.sent,skipmap:f});case 20:case"end":return e.stop()}}),e,this)}))),function(e,r,n){return t.apply(this,arguments)})}]),u}(),je=Oe.capabilities,He={__proto__:null,default:Oe,capabilities:je},Ve=function(e){e.addAdapterType((function(){return new n({name:"SNPCoverageAdapter",adapterMetadata:{category:null,displayName:null,hiddenFromGUI:!0,description:null},getAdapterClass:function(){return Promise.resolve().then((function(){return He})).then((function(e){return e.default}))},configSchema:Ne(e),adapterCapabilities:je})}))},ze=a.ConfigurationSchema("SNPCoverageRenderer",{clipColor:{type:"color",description:"the color of the clipping marker",defaultValue:"red"},indicatorThreshold:{type:"number",description:"the proportion of reads containing a insertion/clip indicator",defaultValue:.3},drawArcs:{type:"boolean",description:"Draw sashimi-style arcs for intron features",defaultValue:!0},drawInterbaseCounts:{type:"boolean",description:'draw count "upsidedown histogram" of the interbase events that don\'t contribute to the coverage count so are not drawn in the normal histogram',defaultValue:!0},drawIndicators:{type:"boolean",description:"draw a triangular indicator where an event has been detected",defaultValue:!0}},{explicitlyTyped:!0}),Ge=function(e){ee(n,p.WiggleBaseRenderer);var t=ne(n);function n(){return Z(this,n),t.apply(this,arguments)}return Y(n,[{key:"draw",value:function(e,t){var n=t.features,o=t.regions,i=t.bpPerPx,l=t.displayCrossHatches,s=t.modificationTagMap,c=t.scaleOpts,f=t.height,d=t.config,g=t.ticks.values,h=u.createJBrowseTheme(t.theme),m=ie(o,1)[0],y=(m.end-m.start)/i,v=p.YSCALEBAR_LABEL_OFFSET,b=f-2*v,C=J(J({},c),{},{range:[0,b]}),w=p.getScale(C),S=p.getScale(J(J({},C),{},{scaleType:"linear"})),x=p.getOrigin(c.scaleType),k=p.getOrigin("linear"),_=a.readConfObject(d,"indicatorThreshold"),E=a.readConfObject(d,"drawInterbaseCounts"),P=a.readConfObject(d,"drawArcs"),T=a.readConfObject(d,"drawIndicators"),M=function(e){return b-(w(e)||0)+v},R=function(e){return b-(S(e)||0)+v},N=function(e){return R(k)-R(e)},A={A:h.palette.bases.A.main,C:h.palette.bases.C.main,G:h.palette.bases.G.main,T:h.palette.bases.T.main,total:"lightgrey",insertion:"purple",softclip:"blue",hardclip:"red",meth:"red",unmeth:"blue",ref:"lightgrey"},D=le(n.values()),B=D.filter((function(e){return"skip"!==e.get("type")})),I=D.filter((function(e){return"skip"===e.get("type")}));e.fillStyle=A.total,B.forEach((function(t){var n,a=ie(r.featureSpanPx(t,m,i),2),o=a[0],l=a[1]-o+.3,s=t.get("score");e.fillRect(o,M(s),l,(n=s,M(x)-M(n)))})),e.fillStyle="grey",e.beginPath(),e.lineTo(0,0),e.moveTo(0,y),e.stroke(),B.forEach((function(t){var n=ie(r.featureSpanPx(t,m,i),2),a=n[0],o=n[1],l=t.get("snpinfo"),c=Math.max(o-a+.3,1),u=l.total;Object.entries(l.cov).sort((function(e,t){var r=ie(e,1)[0],n=ie(t,1)[0];return r<n?-1:r>n?1:0})).reduce((function(t,r){var n=ie(r,2),o=n[0],i=n[1].total;return e.fillStyle=A[o]||s[o.replace("mod_","")]||"red",e.fillRect(a,R(i+t),c,N(i)),t+i}),0);var p=Object.entries(l.noncov);if(E&&p.reduce((function(t,r){var n=ie(r,2),o=n[1].total;return e.fillStyle=A[n[0]],e.fillRect(a-.6,4.5+N(t),1.2,N(o)),t+o}),0),T){var f=0,d=0,g="";p.forEach((function(e){var t=ie(e,2),r=t[1].total;f+=r,r>d&&(d=r,g=t[0])})),f>u*_&&u>7&&(e.fillStyle=A[g],e.beginPath(),e.moveTo(a-3,0),e.lineTo(a+3,0),e.lineTo(a,4.5),e.fill())}})),e.globalAlpha=.7,P&&I.forEach((function(t){var n=ie(r.bpSpanPx(t.get("start"),t.get("end"),m,i),2),a=n[0],o=n[1];e.beginPath();var l=t.get("strand"),s=t.get("xs"),c="rgb(255,200,200)",u="rgb(200,200,255)";e.strokeStyle="+"===s?c:"-"===s?u:1===l?c:-1===l?u:"rgb(200,200,200)",e.lineWidth=Math.log(t.get("score")+1),e.moveTo(a,b-2*v),e.bezierCurveTo(a,0,o,0,o,b-2*v),e.stroke()})),l&&(e.lineWidth=1,e.strokeStyle="rgba(140,140,140,0.8)",g.forEach((function(t){e.beginPath(),e.moveTo(0,Math.round(M(t))),e.lineTo(y,Math.round(M(t))),e.stroke()})))}}]),n}(),We=a.ConfigurationSchema("SNPCoverageRenderer",{},{baseConfiguration:ze,explicitlyTyped:!0});function Ue(e){e.addRendererType((function(){return new Ge({name:"SNPCoverageRenderer",ReactComponent:p.WiggleRendering,configSchema:We,pluginManager:e})}))}var Je=function(e){ee(r,f.LayoutSession);var t=ne(r);function r(e){var n;return Z(this,r),(n=t.call(this,e)).showSoftClip=!1,n.config=e.config,n}return Y(r,[{key:"cachedLayoutIsValid",value:function(e){return oe(te(r.prototype),"cachedLayoutIsValid",this).call(this,e)&&this.showSoftClip===e.showSoftClip&&v(this.sortedBy,e.sortedBy)}},{key:"layout",get:function(){return this.cachedLayout&&this.cachedLayoutIsValid(this.cachedLayout)||(this.cachedLayout={layout:this.makeLayout(),config:a.readConfObject(this.config),filters:this.filters,sortedBy:this.sortedBy,showSoftClip:this.showSoftClip}),this.cachedLayout.layout}}]),r}();function Xe(e){return{A:e.palette.bases.A.main,C:e.palette.bases.C.main,G:e.palette.bases.G.main,T:e.palette.bases.T.main,deletion:"#808080"}}var Qe={color_fwd_strand_not_proper:"#ECC8C8",color_rev_strand_not_proper:"#BEBED8",color_fwd_strand:"#EC8B8B",color_rev_strand:"#8F8FD8",color_fwd_missing_mate:"#D11919",color_rev_missing_mate:"#1919D1",color_fwd_diff_chr:"#000",color_rev_diff_chr:"#969696",color_pair_lr:"#c8c8c8",color_pair_rr:"navy",color_pair_rl:"teal",color_pair_ll:"green",color_nostrand:"#c8c8c8",color_interchrom:"orange",color_longinsert:"red",color_shortinsert:"pink"};function Ze(e){return!["methylation","modifications"].includes(e||"")}var $e=function(e){ee(i,d);var t,n,o=ne(i);function i(){var e;return Z(this,i),(e=o.apply(this,arguments)).supportsSVG=!0,e}return Y(i,[{key:"getCharWidthHeight",value:function(e){return{charWidth:e.measureText("A").width,charHeight:e.measureText("M").width}}},{key:"layoutFeature",value:function(e){var t=e.feature,n=e.layout,a=e.bpPerPx,o=e.region,i=e.heightPx,l=e.displayMode,s=0,c=0;if(e.showSoftClip){var u=t.get("mismatches");if(t.get("seq"))for(var p=0;p<u.length;p+=1){var f=u[p],d=f.cliplen,g=void 0===d?0:d;"softclip"===f.type&&(0===f.start?s=g:c=g)}}var h=ie(r.bpSpanPx(t.get("start")-s,t.get("end")+c,o,a),2),m=h[0],y=h[1];if("compact"===l&&(i/=3),t.get("refName")!==o.refName)throw new Error("feature ".concat(t.id()," is not on the current region's reference sequence ").concat(o.refName));var v=n.addRect(t.id(),t.get("start")-s,t.get("end")+c,i);return null===v?null:{feature:t,leftPx:m,rightPx:y,topPx:"collapse"===l?0:v,heightPx:i}}},{key:"getExpandedRegion",value:function(e,t){var r=t.showSoftClip,n=a.readConfObject(t.config,"maxClippingSize"),o=e.start,i=e.end,l=Math.max(i-o,r?Math.round(n):0);return J(J({},e),{},{start:Math.floor(Math.max(o-l,0)),end:Math.ceil(i+l)})}},{key:"colorByOrientation",value:function(e,t){return Qe[this.getOrientation(e,t)||"color_nostrand"]}},{key:"getOrientation",value:function(e,t){var r=a.readConfObject(t,"orientationType");return{LR:"color_pair_lr",RR:"color_pair_rr",RL:"color_pair_rl",LL:"color_pair_ll"}[Be[r][e.get("pair_orientation")]]}},{key:"colorByInsertSize",value:function(e,t){return e.get("is_paired")&&e.get("seq_id")!==e.get("next_seq_id")?"#555":"hsl(".concat(Math.abs(e.get("template_length"))/10,",50%,50%)")}},{key:"colorByStranded",value:function(e,t){var r=e.get("flags"),n=e.get("strand");if(1&r){var a=64&r?-1:1;return 2&r?n*a==1?"color_rev_strand":"color_fwd_strand":e.get("multi_segment_next_segment_unmapped")?n*a==1?"color_rev_missing_mate":"color_fwd_missing_mate":e.get("seq_id")===e.get("next_seq_id")?n*a==1?"color_rev_strand_not_proper":"color_fwd_strand_not_proper":1===n?"color_fwd_diff_chr":"color_rev_diff_chr"}return 1===n?"color_fwd_strand":"color_rev_strand"}},{key:"colorByPerBaseQuality",value:function(e,t,n,a,o){for(var i=t.feature,l=t.topPx,s=t.heightPx,c=(i.get("qual")||"").split(" ").map((function(e){return+e})),u=ye(i.get("CIGAR")),p=1/o,f=i.get("start"),d=0,g=0,h=0;h<c.length;d+=2,h++){var m=+u[d],y=u[d+1];if("S"===y||"I"===y)h+=m;else if("D"===y||"N"===y)g+=m;else if("M"===y||"X"===y||"="===y){for(var v=0;v<m;v++){var b=c[h+v];e.fillStyle="hsl(".concat(255===b?150:1.5*b,",55%,50%)");var C=ie(r.bpSpanPx(f+g+v,f+g+v+1,a,o),1);e.fillRect(C[0],l,p+.5,s)}g+=m}}}},{key:"colorByModifications",value:function(e,t,n,a,o,i){var l=t.feature,s=t.topPx,c=t.heightPx,u=i.modificationTagMap,p=void 0===u?{}:u,f=De(l,"MM","Mm")||"",d=De(l,"ML","Ml")||[],h=d?("string"==typeof d?d.split(",").map((function(e){return+e})):d).map((function(e){return e/255})):De(l,"MP","Mp").split("").map((function(e){return e.charCodeAt(0)-33})).map((function(e){return Math.min(1,e/50)})),m=l.get("CIGAR"),y=l.get("start"),v=l.get("end"),b=l.get("seq"),C=l.get("strand"),w=ye(m),S=Se(f,b,C),x=0;S.forEach((function(t){var n,i=t.positions,l=g(p[t.type]||"black"),u=de(we(w,i));try{for(u.s();!(n=u.n()).done;){var f=n.value;if(f>=0&&y+f<v){var d=ie(r.bpSpanPx(y+f,y+f+1,a,o),2),m=d[0],b=d[1];e.fillStyle=l.alpha(h[x]+.1).hsl().string(),e.fillRect(m,s,b-m+.5,c)}x++}}catch(e){u.e(e)}finally{u.f()}}))}},{key:"colorByMethylation",value:function(e,t,n,a,o,i){var l=i.regionSequence,s=t.feature,c=t.topPx,u=t.heightPx,p=De(s,"MM","Mm")||"";if(!l)throw new Error("region sequence required for methylation");var f=s.get("CIGAR"),d=s.get("start"),g=s.get("end"),h=s.get("seq"),m=s.get("strand"),y=ye(f),v=a.start,b=new Array(a.end-v).fill(0);Se(p,h,m).forEach((function(e){var t=e.positions;if("m"===e.type&&t){var r,n=de(we(y,t));try{for(n.s();!(r=n.n()).done;){var a=r.value+d-v;a>=0&&a<b.length&&(b[a]=1)}}catch(e){n.e(e)}finally{n.f()}}}));for(var C=d;C<g;C++){var w=C-v;if(w>=0&&w<b.length){var S=l[w].toLowerCase(),x=l[w+1].toLowerCase();if(o>2){if("c"===S&&"g"===x){var k=v+w,_=ie(r.bpSpanPx(k,k+2,a,o),2),E=_[0],P=_[1];e.fillStyle=b[w]||b[w+1]?"red":"blue",e.fillRect(E,c,P-E+.5,u)}}else if("c"===S&&"g"===x){var T=v+w,M=ie(r.bpSpanPx(T,T+1,a,o),2),R=M[0],N=M[1];e.fillStyle=b[w]?"red":"blue",e.fillRect(R,c,N-R+.5,u);var A=ie(r.bpSpanPx(T+1,T+2,a,o),2),D=A[0],B=A[1];e.fillStyle=b[w+1]?"red":"blue",e.fillRect(D,c,B-D+.5,u)}}}}},{key:"drawRect",value:function(e,t,n){var a=n.bpPerPx,o=t.heightPx,i=t.topPx,l=t.feature,s=ie(n.regions,1)[0],c=ie(r.bpSpanPx(l.get("start"),l.get("end"),s,a),2),u=c[0],p=c[1],f=s.reversed?-1:1,d=l.get("strand")*f;a<10?-1===d?(e.beginPath(),e.moveTo(u-5,i+o/2),e.lineTo(u,i+o),e.lineTo(p,i+o),e.lineTo(p,i),e.lineTo(u,i),e.closePath(),e.fill()):(e.beginPath(),e.moveTo(u,i),e.lineTo(u,i+o),e.lineTo(p,i+o),e.lineTo(p+5,i+o/2),e.lineTo(p,i),e.closePath(),e.fill()):e.fillRect(u,i,p-u,o)}},{key:"drawAlignmentRect",value:function(e,t,r){var n=r.defaultColor,o=r.config,i=r.bpPerPx,l=r.colorTagMap,s=void 0===l?{}:l,c=r.colorBy||{},u=c.tag,p=void 0===u?"":u,f=c.type,d=void 0===f?"":f,g=t.feature,h=r.regions[0];switch(d){case"insertSize":e.fillStyle=this.colorByInsertSize(g,o);break;case"strand":e.fillStyle=-1===g.get("strand")?"#8F8FD8":"#EC8B8B";break;case"mappingQuality":e.fillStyle="hsl(".concat(g.get("mq"),",50%,50%)");break;case"pairOrientation":e.fillStyle=this.colorByOrientation(g,o);break;case"stranded":e.fillStyle=Qe[this.colorByStranded(g,o)];break;case"xs":case"tag":var m=g.get("tags"),y=m?m[p]:g.get(p);if("XS"!==p&&"TS"!==p||(e.fillStyle=Qe[{"-":"color_rev_strand","+":"color_fwd_strand"}[y]||"color_nostrand"]),"ts"===p){var v={"-":-1===g.get("strand")?"color_fwd_strand":"color_rev_strand","+":-1===g.get("strand")?"color_rev_strand":"color_fwd_strand"};e.fillStyle=Qe[v[y]||"color_nostrand"]}else e.fillStyle=s[y]||Qe.color_nostrand;break;case"insertSizeAndPairOrientation":break;case"normal":default:e.fillStyle=n?"#c8c8c8":a.readConfObject(o,"color",{feature:g})}switch(this.drawRect(e,t,r),d){case"perBaseQuality":this.colorByPerBaseQuality(e,t,o,h,i);break;case"modifications":this.colorByModifications(e,t,o,h,i,r);break;case"methylation":this.colorByMethylation(e,t,o,h,i,r)}}},{key:"drawMismatches",value:function(e,t,n,a,o,i){var l=i.minSubfeatureWidth,s=i.largeInsertionIndicatorScale,c=i.mismatchAlpha,u=i.drawSNPs,p=void 0===u||u,f=i.drawIndels,d=void 0===f||f,h=i.charWidth,m=i.charHeight,y=n.bpPerPx,v=t.heightPx,b=t.topPx,C=t.feature,w=ie(n.regions,1)[0],S=C.get("start"),x=Math.min(1/y,2),k=Math.max(l,x),_=C.get("mismatches"),E=m-2;function P(e,t){var r=e;return c&&void 0!==t.qual&&(r=g(e).alpha(Math.min(1,t.qual/50)).hsl().string()),r}for(var T=0;T<_.length;T+=1){var M=_[T],R=S+M.start,N=M.base,A=ie(r.bpSpanPx(R,R+M.length,w,y),2),D=A[0],B=Math.max(l,Math.abs(D-A[1]));if("mismatch"===M.type&&p){var I=o[M.base]||"#888";e.fillStyle=P(I,M),e.fillRect(D,b,B,v),B>=h&&v>=E&&(e.fillStyle=P(a.palette.getContrastText(I),M),e.fillText(N,D+(B-h)/2+1,b+v))}else if("deletion"===M.type&&d){var L=o.deletion;e.fillStyle=L,e.fillRect(D,b,B,v),B>=h&&v>=E&&(e.fillStyle=a.palette.getContrastText(L),e.fillText(N,D+(B-h)/2+1,b+v))}else if("insertion"===M.type&&d){e.fillStyle="purple";var F=D-1;(+M.base||M.length)<10&&(e.fillRect(F,b,k,v),1/y>=h&&(e.fillRect(F-k,b,3*k,1),e.fillRect(F-k,b+v-1,3*k,1)),1/y>=h&&v>=E&&e.fillText("(".concat(M.base,")"),D+2,b+v))}else if("hardclip"===M.type||"softclip"===M.type){e.fillStyle="hardclip"===M.type?"red":"blue";var q=D-1;e.fillRect(q,b+1,k,v-2),e.fillRect(q-k,b,3*k,1),e.fillRect(q-k,b+v-1,3*k,1),B>=h&&v>=E&&e.fillText("(".concat(M.base,")"),D+2,b+v)}else"skip"===M.type&&(D+B>0&&e.clearRect(D,b,B-(y>10?1.5:0),v),e.fillStyle="#333",e.fillRect(D,b+v/2,B,2))}if(d)for(var O=0;O<_.length;O+=1){var j=_[O],H=S+j.start,V=ie(r.bpSpanPx(H,H+j.length,w,y),1)[0],z=+j.base||j.length,G="".concat(z);if("insertion"===j.type&&z>=10)if(y>s)e.fillStyle="purple",e.fillRect(V-1,b,2,v);else if(v>m){var W=e.measureText(G);e.fillStyle="purple",e.fillRect(V-W.width/2-5,b,W.width+10,v),e.fillStyle="white",e.fillText(G,V-W.width/2,b+v)}else e.fillStyle="purple",e.fillRect(V-2,b,4,v)}}},{key:"drawSoftClipping",value:function(e,t,n,o,i){var l=t.feature,s=t.topPx,c=t.heightPx,u=n.bpPerPx,p=ie(n.regions,1)[0],f=a.readConfObject(o,"minSubfeatureWidth"),d=l.get("mismatches"),g=l.get("seq"),h=this.getCharWidthHeight(e),m=h.charWidth,y=h.charHeight,v={A:i.palette.bases.A.main,C:i.palette.bases.C.main,G:i.palette.bases.G.main,T:i.palette.bases.T.main,deletion:"#808080"};g&&d.filter((function(e){return"softclip"===e.type})).forEach((function(t){for(var n=t.cliplen||0,a=0===t.start?l.get("start")-n:l.get("start")+t.start,o=0;o<n;o+=1){var d=g.charAt(o+t.start);if(!d)return;var h=ie(r.bpSpanPx(a+o,a+o+1,p,u),2),b=h[0],C=Math.max(f,Math.abs(b-h[1])),w=v[d]||"#000000";e.fillStyle=w,e.fillRect(b,s,C,c),C>=m&&c>=y-5&&(e.fillStyle=i.palette.getContrastText(w),e.fillText(d,b+(C-m)/2+1,s+c))}}))}},{key:"makeImageData",value:(n=Q(he.mark((function e(t,r,n){var o,i,l,s,c,p,f,d,g,h,m,y,v,b,C=this;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=n.layout,l=n.showSoftClip,s=n.colorBy,c=n.theme,p=a.readConfObject(i=n.config,"mismatchAlpha"),f=a.readConfObject(i,"minSubfeatureWidth"),d=a.readConfObject(i,"largeInsertionIndicatorScale"),g="#f0f"===a.readConfObject(i,"color"),h=u.createJBrowseTheme(c),m=Xe(h),o){e.next=9;break}throw new Error("layout required");case 9:if(o.addRect){e.next=11;break}throw new Error("invalid layout object");case 11:t.font="bold 10px Courier New,monospace",y=this.getCharWidthHeight(t),v=y.charWidth,b=y.charHeight,r.forEach((function(e){null!==e&&(C.drawAlignmentRect(t,e,J(J({},n),{},{defaultColor:g})),C.drawMismatches(t,e,n,h,m,{mismatchAlpha:p,drawSNPs:Ze(null==s?void 0:s.type),drawIndels:Ze(null==s?void 0:s.type),largeInsertionIndicatorScale:d,minSubfeatureWidth:f,charWidth:v,charHeight:b}),l&&C.drawSoftClipping(t,e,n,i,h))}));case 14:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"layoutFeats",value:function(e){var t=this,n=e.layout,o=e.features,i=e.sortedBy,l=e.config,s=e.bpPerPx,c=e.showSoftClip,u=ie(e.regions,1)[0];if(!n)throw new Error("layout required");if(!n.addRect)throw new Error("invalid layout object");var p=null!=i&&i.type&&u.start===i.pos?function(e,t){var r=Array.from(e.values()),n=[],a=[],o=t.pos,i=t.type;r.forEach((function(e){var t=e,r=t.get("start"),i=t.get("end");y.doesIntersect2(o-1,o,r,i)?n.push(e):a.push(e)}));var l=!!r.length&&r[0].get("tags");switch(i){case"Start location":n.sort((function(e,t){return e.get("start")-t.get("start")}));break;case"tag":var s=t.tag,c=function(e,t){return l?e.get("tags")[t]:e.get(t)},u=n[0]&&"string"==typeof c(n[0],s);n.sort(u?function(e,t){return c(t,s).localeCompare(c(e,s))}:function(e,t){return(c(t,s)||0)-(c(e,s)||0)});break;case"Base pair":var p=[];n.forEach((function(e){e.get("mismatches").forEach((function(t){var r=e.get("start")+t.start+1;o>=r&&o<r+("insertion"===t.type||"softclip"===t.type?0:t.length)&&p.push([e.id(),t])}))}));var f=new Map(p);n.sort((function(e,t){var r=f.get(e.id()),n=f.get(t.id()),a=n&&n.base.toUpperCase(),o=r&&r.base.toUpperCase();return a===o&&"*"===a?r.length-n.length:(a?a.charCodeAt(0):0)-(o?o.charCodeAt(0):0)}));break;case"Read strand":n.sort((function(e,t){return e.get("strand")<=t.get("strand")?1:-1}))}return new Map(n.concat(a).map((function(e){return[e.id(),e]})))}(o,i):o,f=a.readConfObject(l,"height"),d=a.readConfObject(l,"displayMode");return r.iterMap(p.values(),(function(e){return t.layoutFeature({feature:e,layout:n,bpPerPx:s,region:u,showSoftClip:c,heightPx:f,displayMode:d})}),p.size)}},{key:"render",value:(t=Q(he.mark((function e(t){var r,n,a,o,l,s,u,p,f,d,g,y,v,b,C,w,S,x,k,_=this;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.sessionId,n=t.bpPerPx,a=t.regions,o=t.adapterConfig.sequenceAdapter,e.next=4,this.getFeatures(t);case 4:if(l=e.sent,s=this.createLayoutInWorker(t),u=this.layoutFeats(J(J({},t),{},{features:l,layout:s})),p=ie(a,1),g=(f=p[0]).end,y=f.start,v=f.originalRefName,b=f.refName,!o){e.next=18;break}return e.next=12,m.getAdapter(this.pluginManager,r,o);case 12:return w=e.sent.dataAdapter,e.next=16,w.getFeatures(J(J({},f),{},{refName:v||b,end:f.end+1})).pipe(c.toArray()).toPromise();case 16:d=null===(C=e.sent[0])||void 0===C?void 0:C.get("seq");case 18:return S=(g-y)/n,x=Math.max(s.getTotalHeight(),1),e.next=22,h.renderToAbstractCanvas(S,x,t,(function(e){return _.makeImageData(e,u,J(J({},t),{},{layout:s,features:l,regionSequence:d}))}));case 22:return k=e.sent,e.next=25,oe(te(i.prototype),"render",this).call(this,J(J(J({},t),k),{},{features:l,layout:s,height:x,width:S}));case 25:return e.abrupt("return",J(J(J({},e.sent),k),{},{features:l,layout:s,height:x,width:S,maxHeightReached:s.maxHeightReached}));case 27:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"createSession",value:function(e){return new Je(e)}}]),i}();function Ye(e){var t=e.onMouseMove,n=e.blockKey,a=e.displayModel,o=e.width,i=e.height,l=e.bpPerPx,s=e.sortedBy,c=e.colorBy,p=a.selectedFeatureId,f=a.featureIdUnderMouse,d=a.contextMenuFeature,g=ie(e.regions,1)[0],h=C.useRef(null),m=ie(C.useState(!1),2),y=m[0],v=m[1],b=ie(C.useState(!1),2),S=b[0],x=b[1];function k(t,r){var n=e["onFeature".concat(t)],a=e["on".concat(t)];n&&f?n(r,f):a&&a(r,f)}C.useEffect((function(){var e,t,o=h.current;if(o){var i=o.getContext("2d");if(i){i.clearRect(0,0,o.width,o.height);var s=p?null===(e=a.getFeatureByID)||void 0===e?void 0:e.call(a,n,p):void 0;if(s){var c=ie(s,4),u=c[1],m=c[3],y=ie(r.bpSpanPx(c[0],c[2],g,l),2),v=y[0],b=y[1],C=Math.round(u),w=Math.round(m-u);i.shadowColor="#222266",i.shadowBlur=10,i.lineJoin="bevel",i.lineWidth=2,i.strokeStyle="#00b8ff",i.strokeRect(v-2,C-2,b-v+4,w+4),i.clearRect(v,C,b-v,w)}var S=f||(null==d?void 0:d.id()),x=S?null===(t=a.getFeatureByID)||void 0===t?void 0:t.call(a,n,S):void 0;if(x){var k=ie(x,4),_=k[1],E=k[3],P=ie(r.bpSpanPx(k[0],k[2],g,l),2),T=P[0],M=P[1],R=Math.round(_),N=Math.round(E-_);i.fillStyle="#0003",i.fillRect(T,R,M-T,N)}}}}),[l,g,n,p,a,f,d]);var _=Math.ceil(o);return w.createElement("div",{className:"PileupRendering","data-testid":"pileup-".concat(s||c?"".concat((null==s?void 0:s.type)||"").concat((null==c?void 0:c.type)||"").concat((null==c?void 0:c.tag)||""):"normal"),style:{position:"relative",width:_,height:i}},w.createElement(u.PrerenderedCanvas,Object.assign({},e,{style:{position:"absolute",left:0,top:0}})),w.createElement("canvas",{"data-testid":"pileup_overlay_canvas",width:_,height:i+100,style:{position:"absolute",left:0,top:0},className:"highlightOverlayCanvas",ref:h,onMouseDown:function(e){return function(e){v(!0),x(!1),k("MouseDown",e)}(e)},onMouseEnter:function(e){return function(e){k("MouseEnter",e)}(e)},onMouseOut:function(e){return function(e){k("MouseOut",e),k("MouseLeave",e)}(e)},onMouseOver:function(e){return function(e){k("MouseOver",e)}(e)},onMouseUp:function(e){return function(e){v(!1),k("MouseUp",e)}(e)},onMouseLeave:function(e){return function(e){k("MouseOut",e),k("MouseLeave",e)}(e)},onMouseMove:function(e){return function(e){y&&x(!0);var r=0,i=0;h.current&&(r=h.current.getBoundingClientRect().left,i=h.current.getBoundingClientRect().top),r=e.clientX-r;var s=a.getFeatureOverlapping(n,g.start+l*(g.reversed?o-r:r),i=e.clientY-i);t&&t(e,s)}(e)},onClick:function(e){return function(e){S||k("Click",e)}(e)},onContextMenu:function(e){return function(e){k("ContextMenu",e)}(e)},onFocus:function(){},onBlur:function(){}}))}var Ke=b.observer(Ye),et=a.ConfigurationSchema("PileupRenderer",{color:{type:"color",description:"the color of each feature in a pileup alignment",defaultValue:"#f0f",contextVariable:["feature"]},orientationType:{type:"stringEnum",model:o.types.enumeration("orientationType",["fr","rf","ff"]),defaultValue:"fr",description:'read sequencer orienation. fr is normal "reads pointing at each other ---\x3e <--- while some other sequencers can use other options'},displayMode:{type:"stringEnum",model:o.types.enumeration("displayMode",["normal","compact","collapse"]),description:"Alternative display modes",defaultValue:"normal"},minSubfeatureWidth:{type:"number",description:"the minimum width in px for a pileup mismatch feature. use for increasing mismatch marker widths when zoomed out to e.g. 1px or 0.5px",defaultValue:0},maxHeight:{type:"integer",description:"the maximum height to be used in a pileup rendering",defaultValue:1200},maxClippingSize:{type:"integer",description:"the max clip size to be used in a pileup rendering",defaultValue:1e4},height:{type:"number",description:"the height of each feature in a pileup alignment",defaultValue:7,contextVariable:["feature"]},noSpacing:{type:"boolean",description:"remove spacing between features",defaultValue:!1},largeInsertionIndicatorScale:{type:"number",description:"scale at which to draw the large insertion indicators (bp/pixel)",defaultValue:10},mismatchAlpha:{type:"boolean",defaultValue:!1,description:"Fade low quality mismatches"}},{explicitlyTyped:!0});function tt(e){e.addRendererType((function(){return new $e({name:"PileupRenderer",ReactComponent:Ke,configSchema:et,pluginManager:e})}))}var rt=function(e,t){return o.types.compose("LinearAlignmentsDisplay",k.BaseDisplay,o.types.model({PileupDisplay:o.types.maybe(e.getDisplayType("LinearPileupDisplay").stateModel),SNPCoverageDisplay:o.types.maybe(e.getDisplayType("LinearSNPCoverageDisplay").stateModel),snpCovHeight:45,type:o.types.literal("LinearAlignmentsDisplay"),configuration:a.ConfigurationReference(t),height:250,showCoverage:!0,showPileup:!0})).volatile((function(){return{scrollTop:0}})).actions((function(e){return{toggleCoverage:function(){e.showCoverage=!e.showCoverage},togglePileup:function(){e.showPileup=!e.showPileup},setScrollTop:function(t){e.scrollTop=t},setSNPCoverageHeight:function(t){e.snpCovHeight=t}}})).views((function(e){var t=e.trackMenuItems;return{get pileupDisplayConfig(){var t=a.getConf(e,"pileupDisplay"),n=r.getContainingTrack(e);return J(J({},t),{},{type:"LinearPileupDisplay",name:"".concat(a.getConf(n,"name")," pileup"),displayId:"".concat(e.configuration.displayId,"_pileup_xyz")})},getFeatureByID:function(t,r){return e.PileupDisplay.getFeatureByID(t,r)},searchFeatureByID:function(t){return e.PileupDisplay.searchFeatureByID(t)},get features(){return e.PileupDisplay.features},get DisplayBlurb(){var t;return null===(t=e.PileupDisplay)||void 0===t?void 0:t.DisplayBlurb},get sortedBy(){return e.PileupDisplay.sortedBy},get sortedByPosition(){return e.PileupDisplay.sortedByPosition},get sortedByRefName(){return e.PileupDisplay.sortedByRefName},get snpCoverageDisplayConfig(){var t=a.getConf(e,"snpCoverageDisplay"),n=r.getContainingTrack(e);return J(J({},t),{},{type:"LinearSNPCoverageDisplay",name:"".concat(a.getConf(n,"name")," snp coverage"),displayId:"".concat(e.configuration.displayId,"_snpcoverage_xyz")})},trackMenuItems:function(){return[].concat(le(t()),[{type:"subMenu",label:"Pileup settings",subMenu:e.PileupDisplay.trackMenuItems()},{type:"subMenu",label:"SNPCoverage settings",subMenu:e.SNPCoverageDisplay.trackMenuItems()}])}}})).actions((function(e){return{setSNPCoverageDisplay:function(t){e.SNPCoverageDisplay={type:"LinearSNPCoverageDisplay",configuration:t,height:e.snpCovHeight}},setUserBpPerPxLimit:function(t){e.PileupDisplay.setUserBpPerPxLimit(t),e.SNPCoverageDisplay.setUserBpPerPxLimit(t)},setPileupDisplay:function(t){e.PileupDisplay={type:"LinearPileupDisplay",configuration:t}},setHeight:function(t){return e.height=t>20?t:20,e.height},resizeHeight:function(t){var r=e.height;return this.setHeight(e.height+t)-r}}})).actions((function(e){return{afterAttach:function(){o.addDisposer(e,_.autorun((function(){e.SNPCoverageDisplay?v(e.snpCoverageDisplayConfig,o.getSnapshot(e.SNPCoverageDisplay.configuration))||(e.SNPCoverageDisplay.setHeight(e.snpCovHeight),e.SNPCoverageDisplay.setConfig(e.snpCoverageDisplayConfig)):e.setSNPCoverageDisplay(e.snpCoverageDisplayConfig),e.PileupDisplay?v(e.pileupDisplayConfig,o.getSnapshot(e.PileupDisplay.configuration))||e.PileupDisplay.setConfig(e.pileupDisplayConfig):e.setPileupDisplay(e.pileupDisplayConfig),e.PileupDisplay.filterBy&&!v(o.getSnapshot(e.PileupDisplay.filterBy),o.getSnapshot(e.SNPCoverageDisplay.filterBy))&&e.SNPCoverageDisplay.setFilterBy(o.getSnapshot(e.PileupDisplay.filterBy)),e.PileupDisplay.colorBy&&!v(o.getSnapshot(e.PileupDisplay.colorBy),e.SNPCoverageDisplay.colorBy?o.getSnapshot(e.SNPCoverageDisplay.colorBy):{})&&e.SNPCoverageDisplay.setColorBy(o.getSnapshot(e.PileupDisplay.colorBy))}))),o.addDisposer(e,_.autorun((function(){e.setSNPCoverageHeight(e.SNPCoverageDisplay.height)})))},renderSvg:function(t){return Q(he.mark((function r(){var n;return he.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return n=e.height-e.SNPCoverageDisplay.height,r.next=3,_.when((function(){return e.PileupDisplay.ready}));case 3:return r.t0=w,r.t1=w.Fragment,r.t2=w,r.next=8,e.SNPCoverageDisplay.renderSvg(t);case 8:return r.t3=r.sent,r.t4=r.t2.createElement.call(r.t2,"g",null,r.t3),r.t5=w,r.t6={transform:"translate(0 ".concat(e.SNPCoverageDisplay.height,")")},r.next=14,e.PileupDisplay.renderSvg(J(J({},t),{},{overrideHeight:n}));case 14:return r.t7=r.sent,r.t8=r.t5.createElement.call(r.t5,"g",r.t6,r.t7),r.abrupt("return",r.t0.createElement.call(r.t0,r.t1,null,r.t4,r.t8));case 17:case"end":return r.stop()}}),r)})))()}}}))};function nt(e){var t=e.model,r=t.PileupDisplay,n=t.SNPCoverageDisplay,o=t.showPileup,i=t.showCoverage;return w.createElement("div",{"data-testid":"display-".concat(a.getConf(t,"displayId")),style:{position:"relative"}},w.createElement("div",{"data-testid":"Blockset-snpcoverage"},i?w.createElement(n.RenderingComponent,{model:n}):null),w.createElement(u.ResizeHandle,{onDrag:function(e){return n?(n.setHeight(n.height+e),e):0},style:{position:"absolute",top:i?n.height+2:0,height:3}}),w.createElement("div",{"data-testid":"Blockset-pileup",style:{position:"absolute",top:i?n.height+5:0,height:3}},o?w.createElement(r.RenderingComponent,{model:r}):null))}var at=b.observer(nt);function ot(e){e.addDisplayType((function(){var t=function(e){var t=e.getDisplayType("LinearPileupDisplay").configSchema,r=e.getDisplayType("LinearSNPCoverageDisplay").configSchema;return a.ConfigurationSchema("LinearAlignmentsDisplay",{pileupDisplay:t,snpCoverageDisplay:r},{baseConfiguration:x.baseLinearDisplayConfigSchema,explicitlyTyped:!0})}(e);return new S({name:"LinearAlignmentsDisplay",configSchema:t,stateModel:rt(e,t),trackType:"AlignmentsTrack",viewType:"LinearGenomeView",ReactComponent:at})}))}var it=function(e){return e.toLocaleString("en-US")},lt=w.forwardRef((function(e,t){var r=e.feature,n=r.get("start"),a=r.get("end"),o=[r.get("refName"),n===a?it(n):"".concat(it(n),"..").concat(it(a))].filter((function(e){return!!e})).join(":"),i=r.get("snpinfo"),l=null==i?void 0:i.total;return w.createElement("div",{ref:t},w.createElement("table",null,w.createElement("caption",null,o),w.createElement("thead",null,w.createElement("tr",null,w.createElement("th",null,"Base"),w.createElement("th",null,"Count"),w.createElement("th",null,"% of Total"),w.createElement("th",null,"Strands"),w.createElement("th",null,"Source"))),w.createElement("tbody",null,w.createElement("tr",null,w.createElement("td",null,"Total"),w.createElement("td",null,l),w.createElement("td",null)),Object.entries(i).map((function(e){var t=ie(e,2),r=t[0];return Object.entries(t[1]).map((function(e){var t=ie(e,2),n=t[0],a=t[1],o=a.strands;return w.createElement("tr",{key:n},w.createElement("td",null,n.toUpperCase()),w.createElement("td",null,a.total),w.createElement("td",null,"total"===n||"skip"===n?"---":"".concat(Math.floor(a.total/l*100),"%")),w.createElement("td",null,o[-1]?"".concat(o[-1],"(-)"):"",o[1]?"".concat(o[1],"(+)"):""),w.createElement("td",null,r))}))})))))})),st=b.observer((function(e){var t=e.model.featureUnderMouse;return t&&"skip"===t.get("type")?null:w.createElement(p.Tooltip,Object.assign({TooltipContents:lt},e))}));function ct(e,t,r,n){return ut.apply(this,arguments)}function ut(){return(ut=Q(he.mark((function e(t,n,a,o){var i,l,s,c;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=r.getSession(t),l=i.rpcManager,s=t.adapterConfig,c=P.getRpcSessionId(t),e.next=5,l.call(P.getRpcSessionId(t),"PileupGetGlobalValueForTag",J({adapterConfig:s,tag:n.tag,sessionId:c,regions:a.contentBlocks},o));case 5:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function pt(e,t,r,n,a){return ft.apply(this,arguments)}function ft(){return(ft=Q(he.mark((function e(t,n,a,o,i){var l,s,c;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l=r.getSession(t),s=l.rpcManager,c=P.getRpcSessionId(t),e.next=4,s.call(c,"PileupGetVisibleModifications",J({adapterConfig:n,tag:a.tag,sessionId:c,regions:o.contentBlocks},i));case 4:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var dt=new Map([["snpcoverage","SNPCoverageRenderer"]]),gt=function(e,t){return o.types.compose("LinearSNPCoverageDisplay",p.linearWiggleDisplayModelFactory(e,t),o.types.model({type:o.types.literal("LinearSNPCoverageDisplay"),drawInterbaseCounts:o.types.maybe(o.types.boolean),drawIndicators:o.types.maybe(o.types.boolean),drawArcs:o.types.maybe(o.types.boolean),filterBy:o.types.optional(o.types.model({flagInclude:o.types.optional(o.types.number,0),flagExclude:o.types.optional(o.types.number,1540),readName:o.types.maybe(o.types.string),tagFilter:o.types.maybe(o.types.model({tag:o.types.string,value:o.types.string}))}),{}),colorBy:o.types.maybe(o.types.model({type:o.types.string,tag:o.types.maybe(o.types.string)}))})).volatile((function(){return{modificationTagMap:_.observable.map({})}})).actions((function(e){return{setConfig:function(t){e.configuration=t},setFilterBy:function(t){e.filterBy=o.cast(t)},setColorBy:function(t){e.colorBy=o.cast(t)},updateModificationColorMap:function(t){var r=["red","blue","green","orange","purple"],n=0;t.forEach((function(t){if(!e.modificationTagMap.has(t)){var a=r[n++];e.modificationTagMap.set(t,a)}}))}}})).views((function(e){var t=e.renderProps;return{get rendererConfig(){var t=a.getConf(e,["renderers",e.rendererTypeName])||{};return e.rendererType.configSchema.create(J(J({},t),{},{drawInterbaseCounts:void 0===e.drawInterbaseCounts?t.drawInterbaseCounts:e.drawInterbaseCounts,drawIndicators:void 0===e.drawIndicators?t.drawIndicators:e.drawIndicators,drawArcs:void 0===e.drawArcs?t.drawArcs:e.drawArcs}),o.getEnv(e))},get drawArcsSetting(){return void 0!==e.drawArcs?e.drawArcs:a.readConfObject(this.rendererConfig,"drawArcs")},get drawInterbaseCountsSetting(){return void 0!==e.drawInterbaseCounts?e.drawInterbaseCounts:a.readConfObject(this.rendererConfig,"drawInterbaseCounts")},get drawIndicatorsSetting(){return void 0!==e.drawIndicators?e.drawIndicators:a.readConfObject(this.rendererConfig,"drawIndicators")},get modificationsReady(){var t;return"modifications"!==(null===(t=e.colorBy)||void 0===t?void 0:t.type)||Object.keys(JSON.parse(JSON.stringify(e.modificationTagMap))).length>0},renderProps:function(){return J(J({},t()),{},{notReady:!e.ready||!this.modificationsReady,filters:e.filters,modificationTagMap:JSON.parse(JSON.stringify(e.modificationTagMap)),colorBy:e.colorBy?o.getSnapshot(e.colorBy):void 0})}}})).actions((function(e){return{toggleDrawIndicators:function(){e.drawIndicators=!e.drawIndicatorsSetting},toggleDrawInterbaseCounts:function(){e.drawInterbaseCounts=!e.drawInterbaseCountsSetting},toggleDrawArcs:function(){e.drawArcs=!e.drawArcsSetting},afterAttach:function(){o.addDisposer(e,_.autorun(Q(he.mark((function t(){var n,o,i;return he.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,n=e.colorBy,o=r.getContainingView(e),i=o.staticBlocks,"modifications"!==(null==n?void 0:n.type)){t.next=8;break}return t.next=6,pt(e,a.getConf(e.parentTrack,"adapter"),n,i);case 6:e.updateModificationColorMap(t.sent);case 8:t.next=14;break;case 10:t.prev=10,t.t0=t.catch(0),console.error(t.t0),e.setError(t.t0);case 14:case"end":return t.stop()}}),t,null,[[0,10]])}))),{delay:1e3}))}}})).views((function(e){var t=e.trackMenuItems;return{get TooltipComponent(){return st},get adapterConfig(){return{type:"SNPCoverageAdapter",subadapter:a.getConf(e.parentTrack,"adapter")}},get rendererTypeName(){return dt.get("snpcoverage")},get needsScalebar(){return!0},contextMenuItems:function(){return[]},trackMenuItems:function(){return[].concat(le(t()),[{label:"Draw insertion/clipping indicators",type:"checkbox",checked:e.drawIndicatorsSetting,onClick:function(){e.toggleDrawIndicators()}},{label:"Draw insertion/clipping counts",type:"checkbox",checked:e.drawInterbaseCountsSetting,onClick:function(){e.toggleDrawInterbaseCounts()}},{label:"Draw arcs",type:"checkbox",checked:e.drawArcsSetting,onClick:function(){e.toggleDrawArcs()}}])},get filters(){var t=[];if(e.filterBy){var r=e.filterBy,n=r.flagInclude,a=r.flagExclude,o=r.tagFilter,i=r.readName;if(t=["jexl:get(feature,'snpinfo') != undefined ? true : "+"((get(feature,'flags')&".concat(n,")==").concat(n,") && ")+"!((get(feature,'flags')&".concat(a,"))")],o){var l=o.tag,s=o.value;t.push("jexl:get(feature,'snpinfo') != undefined ? true : "+'"'.concat(s,"\" =='*' ? getTag(feature,\"").concat(l,'") != undefined : ')+'getTag(feature,"'.concat(l,'") == "').concat(s,'"'))}i&&t.push("jexl:get(feature,'snpinfo') != undefined ? true : "+"get(feature,'name') == \"".concat(i,'"'))}return new E({filters:t})}}}))};function ht(e){e.addDisplayType((function(){var t=function(e){var t=e.getRendererType("SNPCoverageRenderer").configSchema;return a.ConfigurationSchema("LinearSNPCoverageDisplay",{autoscale:{type:"stringEnum",defaultValue:"local",model:o.types.enumeration("Autoscale type",["local"]),description:"performs local autoscaling (no other options for SNP Coverage available)"},minScore:{type:"number",defaultValue:Number.MIN_VALUE,description:"minimum value for the y-scale"},maxScore:{type:"number",description:"maximum value for the y-scale",defaultValue:Number.MAX_VALUE},scaleType:{type:"stringEnum",model:o.types.enumeration("Scale type",["linear","log"]),description:"The type of scale to use",defaultValue:"linear"},inverted:{type:"boolean",description:"draw upside down",defaultValue:!1},maxDisplayedBpPerPx:{type:"number",description:"maximum bpPerPx that is displayed in the view",defaultValue:100},headroom:{type:"number",description:"round the upper value of the domain scale to the nearest N",defaultValue:0},renderers:a.ConfigurationSchema("RenderersConfiguration",{SNPCoverageRenderer:t})},{baseConfiguration:x.baseLinearDisplayConfigSchema,explicitlyTyped:!0})}(e);return new S({name:"LinearSNPCoverageDisplay",configSchema:t,stateModel:gt(e,t),trackType:"AlignmentsTrack",viewType:"LinearGenomeView",ReactComponent:p.LinearWiggleDisplayReactComponent})}))}function mt(e){var t=e.model,r=t.sortedBy;return r?w.createElement("div",{"data-testid":"blurb-".concat(t.sortedBy),style:{backgroundColor:"white"}},w.createElement(I,{color:"secondary",variant:"caption"},t.sortedBy?"Sorted by ".concat(r.type.toLowerCase()," at ").concat(r.refName,":").concat(r.pos):null)):null}var yt=b.observer(mt),vt=["uniqueId"],bt=C.lazy((function(){return Promise.resolve().then((function(){return zt}))})),Ct=C.lazy((function(){return Promise.resolve().then((function(){return Xt}))})),wt=C.lazy((function(){return Promise.resolve().then((function(){return $t}))})),St=C.lazy((function(){return Promise.resolve().then((function(){return er}))})),xt=C.lazy((function(){return Promise.resolve().then((function(){return nr}))})),kt=C.lazy((function(){return Promise.resolve().then((function(){return lr}))})),_t=new Map([["pileup","PileupRenderer"],["svg","SvgFeatureRenderer"]]),Et=function(e){return o.types.compose("LinearPileupDisplay",x.BaseLinearDisplay,o.types.model({type:o.types.literal("LinearPileupDisplay"),configuration:a.ConfigurationReference(e),showSoftClipping:!1,featureHeight:o.types.maybe(o.types.number),noSpacing:o.types.maybe(o.types.boolean),fadeLikelihood:o.types.maybe(o.types.boolean),trackMaxHeight:o.types.maybe(o.types.number),mismatchAlpha:o.types.maybe(o.types.boolean),sortedBy:o.types.maybe(o.types.model({type:o.types.string,pos:o.types.number,tag:o.types.maybe(o.types.string),refName:o.types.string,assemblyName:o.types.string})),colorBy:o.types.maybe(o.types.model({type:o.types.string,tag:o.types.maybe(o.types.string),extra:o.types.frozen()})),filterBy:o.types.optional(o.types.model({flagInclude:o.types.optional(o.types.number,0),flagExclude:o.types.optional(o.types.number,1540),readName:o.types.maybe(o.types.string),tagFilter:o.types.maybe(o.types.model({tag:o.types.string,value:o.types.string}))}),{})})).volatile((function(){return{colorTagMap:_.observable.map({}),modificationTagMap:_.observable.map({}),ready:!1,currBpPerPx:0}})).actions((function(e){return{setReady:function(t){e.ready=t},setCurrBpPerPx:function(t){e.currBpPerPx=t},setMaxHeight:function(t){e.trackMaxHeight=t},setFeatureHeight:function(t){e.featureHeight=t},setNoSpacing:function(t){e.noSpacing=t},setColorScheme:function(t){e.colorTagMap=_.observable.map({}),e.colorBy=o.cast(t),e.ready=!1},updateModificationColorMap:function(t){var r=["red","blue","green","orange","purple"];t.forEach((function(t){if(!e.modificationTagMap.has(t)){var n=le(e.modificationTagMap.keys()).length;e.modificationTagMap.set(t,r[n])}}))},updateColorTagMap:function(t){var r=["#BBCCEE","pink","#CCDDAA","#EEEEBB","#FFCCCC","lightblue","lightgreen","tan","#CCEEFF","lightsalmon"];t.forEach((function(t){if(!e.colorTagMap.has(t)){var n=le(e.colorTagMap.keys()).length;e.colorTagMap.set(t,r[n])}}))}}})).actions((function(e){return{afterAttach:function(){o.addDisposer(e,_.autorun(Q(he.mark((function t(){var n,o,i,l,s,c,u,p;return he.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,n=r.getSession(e),o=n.rpcManager,i=e.sortedBy,l=e.colorBy,s=r.getContainingView(e),null==l||!l.tag){t.next=9;break}return t.next=7,ct(e,l,s.staticBlocks);case 7:e.updateColorTagMap(t.sent);case 9:if("modifications"!==(null==l?void 0:l.type)){t.next=14;break}return t.next=12,pt(e,a.getConf(e.parentTrack,["adapter"]),l,s.staticBlocks);case 12:e.updateModificationColorMap(t.sent);case 14:if(!i){t.next=23;break}return p={start:c=i.pos,end:c+1,refName:i.refName,assemblyName:u=i.assemblyName},t.next=19,e.rendererType.renderInClient(o,J({assemblyName:u,regions:[p],adapterConfig:e.adapterConfig,rendererType:e.rendererType.name,sessionId:P.getRpcSessionId(e),timeout:1e6},e.renderProps()));case 19:e.setReady(!0),e.setCurrBpPerPx(s.bpPerPx),t.next=24;break;case 23:e.setReady(!0);case 24:t.next=30;break;case 26:t.prev=26,t.t0=t.catch(0),console.error(t.t0),e.setError(t.t0);case 30:case"end":return t.stop()}}),t,null,[[0,26]])}))),{delay:1e3}))},selectFeature:function(t){var n=r.getSession(e);if(r.isSessionModelWithWidgets(n)){var a=n.addWidget("AlignmentsFeatureWidget","alignmentFeature",{featureData:t.toJSON(),view:r.getContainingView(e)});n.showWidget(a)}n.setSelection(t)},clearSelected:function(){e.sortedBy=void 0},copyFeatureToClipboard:function(t){var n=function(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)t.indexOf(r=o[n])>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t.indexOf(r=o[n])>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}(t.toJSON(),vt),a=r.getSession(e);R(JSON.stringify(n,null,4)),a.notify("Copied to clipboard","success")},toggleSoftClipping:function(){e.showSoftClipping=!e.showSoftClipping},toggleMismatchAlpha:function(){e.mismatchAlpha=!e.mismatchAlpha},setConfig:function(t){e.configuration=t},setSortedBy:function(t,n){var a=r.getContainingView(e).centerLineInfo;if(a){var o=a.refName,i=a.assemblyName,l=Math.round(a.offset)+1;l<0||(e.sortedBy={type:t,pos:l,refName:o,assemblyName:i,tag:n},e.ready=!1)}},setFilterBy:function(t){e.filterBy=o.cast(t)}}})).actions((function(e){var t=e.reload;return{reload:function(){e.clearSelected(),t()}}})).views((function(e){return{get maxHeight(){var t=a.getConf(e,["renderers",e.rendererTypeName])||{};return void 0!==e.trackMaxHeight?e.trackMaxHeight:t.maxHeight},get rendererConfig(){var t=a.getConf(e,["renderers",e.rendererTypeName])||{};return e.rendererType.configSchema.create(J(J({},t),{},{height:e.featureHeight,noSpacing:e.noSpacing,maxHeight:this.maxHeight,mismatchAlpha:e.mismatchAlpha}),o.getEnv(e))},get featureHeightSetting(){return e.featureHeight||a.readConfObject(this.rendererConfig,"height")},get mismatchAlphaSetting(){return void 0!==e.mismatchAlpha?e.mismatchAlpha:a.readConfObject(this.rendererConfig,"mismatchAlpha")}}})).views((function(e){var t=e.trackMenuItems,n=e.renderProps;return{get rendererTypeName(){var t=a.getConf(e,"defaultRendering"),r=_t.get(t);if(!r)throw new Error("unknown alignments view name ".concat(t));return r},contextMenuItems:function(){var t=e.contextMenuFeature;return t?[{label:"Open feature details",icon:N,onClick:function(){e.clearFeatureSelection(),t&&e.selectFeature(t)}},{label:"Copy info to clipboard",icon:M.ContentCopy,onClick:function(){t&&e.copyFeatureToClipboard(t)}}]:[]},get DisplayBlurb(){return yt},get filters(){var t=[],r=e.filterBy,n=r.flagInclude,a=r.flagExclude,o=r.tagFilter,i=r.readName;if(t=["jexl:((get(feature,'flags')&".concat(n,")==").concat(n,") && !(get(feature,'flags')&").concat(a,")")],o){var l=o.tag,s=o.value;t.push('jexl:"'.concat(s,"\" =='*' ? getTag(feature,\"").concat(l,'") != undefined : getTag(feature,"').concat(l,'") == "').concat(s,'"'))}return i&&t.push("jexl:get(feature,'name') == \"".concat(i,'"')),new E({filters:t})},renderProps:function(){var t=r.getContainingView(e),a=e.ready,o=e.colorTagMap,i=e.modificationTagMap,l=e.sortedBy,s=e.colorBy,c=e.rpcDriverName;return J(J({},n()),{},{notReady:!a||l&&e.currBpPerPx!==t.bpPerPx,rpcDriverName:c,displayModel:e,sortedBy:l,colorBy:s,colorTagMap:JSON.parse(JSON.stringify(o)),modificationTagMap:JSON.parse(JSON.stringify(i)),filters:this.filters,showSoftClip:e.showSoftClipping,config:e.rendererConfig})},trackMenuItems:function(){return[].concat(le(t()),[{label:"Show soft clipping",icon:T,type:"checkbox",checked:e.showSoftClipping,onClick:function(){e.toggleSoftClipping(),e.showSoftClipping&&e.clearSelected()}},{label:"Sort by",icon:A,disabled:e.showSoftClipping,subMenu:[].concat(le(["Start location","Read strand","Base pair"].map((function(t){return{label:t,onClick:function(){return e.setSortedBy(t)}}}))),[{label:"Sort by tag...",onClick:function(){r.getSession(e).queueDialog((function(t){return[wt,{model:e,handleClose:t}]}))}},{label:"Clear sort",onClick:function(){return e.clearSelected()}}])},{label:"Color scheme",icon:D,subMenu:[{label:"Normal",onClick:function(){e.setColorScheme({type:"normal"})}},{label:"Mapping quality",onClick:function(){e.setColorScheme({type:"mappingQuality"})}},{label:"Strand",onClick:function(){e.setColorScheme({type:"strand"})}},{label:"Pair orientation",onClick:function(){e.setColorScheme({type:"pairOrientation"})}},{label:"Per-base quality",onClick:function(){e.setColorScheme({type:"perBaseQuality"})}},{label:"Modifications or methylation",onClick:function(){r.getSession(e).queueDialog((function(t){return[kt,{model:e,handleClose:t}]}))}},{label:"Insert size",onClick:function(){e.setColorScheme({type:"insertSize"})}},{label:"Stranded paired-end",onClick:function(){e.setColorScheme({type:"reverseTemplate"})}},{label:"Color by tag...",onClick:function(){r.getSession(e).queueDialog((function(t){return[bt,{model:e,handleClose:t}]}))}}]},{label:"Filter by",icon:B,onClick:function(){r.getSession(e).queueDialog((function(t){return[Ct,{model:e,handleClose:t}]}))}},{label:"Set feature height",onClick:function(){r.getSession(e).queueDialog((function(t){return[St,{model:e,handleClose:t}]}))}},{label:"Set max height",onClick:function(){r.getSession(e).queueDialog((function(t){return[xt,{model:e,handleClose:t}]}))}},{label:"Fade mismatches by quality",type:"checkbox",checked:e.mismatchAlphaSetting,onClick:function(){e.toggleMismatchAlpha()}}])}}}))};function Pt(e){e.addDisplayType((function(){var t=function(e){var t=e.getRendererType("PileupRenderer").configSchema,r=e.getRendererType("SvgFeatureRenderer").configSchema;return a.ConfigurationSchema("LinearPileupDisplay",{defaultRendering:{type:"stringEnum",model:o.types.enumeration("Rendering",["pileup","svg"]),defaultValue:"pileup"},renderers:a.ConfigurationSchema("RenderersConfiguration",{PileupRenderer:t,SvgFeatureRenderer:r}),renderer:"",maxDisplayedBpPerPx:{type:"number",description:"maximum bpPerPx that is displayed in the view",defaultValue:100},colorScheme:{type:"stringEnum",model:o.types.enumeration("colorScheme",["strand","normal","insertSize","insertSizeAndOrientation","mappingQuality","tag"]),description:"color scheme to use",defaultValue:"normal"}},{baseConfiguration:x.linearBasicDisplayConfigSchemaFactory(e),explicitlyTyped:!0})}(e);return new S({name:"LinearPileupDisplay",configSchema:t,stateModel:Et(t),trackType:"AlignmentsTrack",viewType:"LinearGenomeView",ReactComponent:x.BaseLinearDisplayComponent})}))}function Tt(e){e.addTrackType((function(){var t=function(e){return a.ConfigurationSchema("AlignmentsTrack",{},{baseConfiguration:k.createBaseTrackConfig(e)})}(e),r=new L({name:"AlignmentsTrack",configSchema:t,stateModel:k.createBaseTrackModel(e,"AlignmentsTrack",t)}),n=e.getDisplayType("LinearAlignmentsDisplay");return r.addDisplayType(n),r}))}var Mt=a.ConfigurationSchema("AlignmentsFeatureWidget",{});function Rt(e){return o.types.model("AlignmentsFeatureWidget",{id:F.ElementId,type:o.types.literal("AlignmentsFeatureWidget"),featureData:o.types.frozen(),view:o.types.safeReference(e.pluggableMstType("view","stateModel"))}).actions((function(e){return{setFeatureData:function(t){e.featureData=t},clearFeatureData:function(){e.featureData=void 0}}}))}function Nt(e){e.addWidgetType((function(){return new q({name:"AlignmentsFeatureWidget",heading:"Feature details",configSchema:Mt,stateModel:Rt(e),ReactComponent:C.lazy((function(){return Promise.resolve().then((function(){return hr}))}))})}))}var At=function(e){ee(o,O);var t,n,a=ne(o);function o(){var e;return Z(this,o),(e=a.apply(this,arguments)).name="PileupGetGlobalValueForTag",e}return Y(o,[{key:"serializeArguments",value:(n=Q(he.mark((function e(t,n){var a,i,l,s;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(l=null==(i=this.pluginManager.rootModel)||null===(a=i.session)||void 0===a?void 0:a.assemblyManager){e.next=4;break}throw new Error("no assembly manager available");case 4:return e.next=6,r.renameRegionsIfNeeded(l,t);case 6:return s=e.sent,e.abrupt("return",oe(te(o.prototype),"serializeArguments",this).call(this,s,n));case 8:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"execute",value:(t=Q(he.mark((function e(t,r){var n,a,o,i,l,s,u,p;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.deserializeArguments(t,r);case 2:return a=(n=e.sent).adapterConfig,o=n.sessionId,i=n.regions,l=n.tag,e.next=6,m.getAdapter(this.pluginManager,o,a);case 6:return s=e.sent.dataAdapter.getFeaturesInMultipleRegions(i),e.next=10,s.pipe(c.toArray()).toPromise();case 10:return u=e.sent,p=new Set,u.forEach((function(e){var t=e.get("tags"),r=t?t[l]:e.get(l);void 0!==r&&p.add("".concat(r))})),e.abrupt("return",le(p));case 14:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})}]),o}(),Dt=function(e){ee(o,O);var t,n,a=ne(o);function o(){var e;return Z(this,o),(e=a.apply(this,arguments)).name="PileupGetVisibleModifications",e}return Y(o,[{key:"serializeArguments",value:(n=Q(he.mark((function e(t,n){var a,i,l,s;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(l=null==(i=this.pluginManager.rootModel)||null===(a=i.session)||void 0===a?void 0:a.assemblyManager){e.next=4;break}throw new Error("no assembly manager available");case 4:return e.next=6,r.renameRegionsIfNeeded(l,t);case 6:return s=e.sent,e.abrupt("return",oe(te(o.prototype),"serializeArguments",this).call(this,s,n));case 8:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"execute",value:(t=Q(he.mark((function e(t,r){var n,a,o,i,l,s,u;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.deserializeArguments(t,r);case 2:return a=(n=e.sent).adapterConfig,o=n.sessionId,i=n.regions,e.next=6,m.getAdapter(this.pluginManager,o,a);case 6:return l=e.sent.dataAdapter.getFeaturesInMultipleRegions(i),e.next=10,l.pipe(c.toArray()).toPromise();case 10:return s=e.sent,u=new Set,s.forEach((function(e){var t=De(e,"MM","Mm")||"";void 0!==t&&xe(t).forEach((function(e){return u.add(e)}))})),e.abrupt("return",le(u));case 14:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})}]),o}(),Bt=function(e){ee(n,t);var r=ne(n);function n(){var e;return Z(this,n),(e=r.apply(this,arguments)).name="AlignmentsPlugin",e}return Y(n,[{key:"install",value:function(e){[Te,Ee,Pt,ht,Tt,Ve,Re,tt,Ue,ot,Nt].map((function(t){return t(e)})),e.addToExtensionPoint("Core-guessAdapterForLocation",(function(e){return function(t,r,n){var a=P.getFileName(t);return/\.cram$/i.test(a)||"CramAdapter"===n?{type:"CramAdapter",cramLocation:t,craiLocation:r||P.makeIndex(t,".crai")}:e(t,r,n)}})),e.addToExtensionPoint("Core-guessAdapterForLocation",(function(e){return function(t,r,n){var a=P.getFileName(t),o=r&&P.getFileName(r);return/\.bam$/i.test(a)||"BamAdapter"===n?{type:"BamAdapter",bamLocation:t,index:{location:r||P.makeIndex(t,".bai"),indexType:P.makeIndexType(o,"CSI","BAI")}}:e(t,r,n)}})),e.addToExtensionPoint("Core-guessTrackTypeForLocation",(function(e){return function(t){return"BamAdapter"===t||"CramAdapter"===t?"AlignmentsTrack":e(t)}})),e.addRpcMethod((function(){return new At(e)})),e.addRpcMethod((function(){return new Dt(e)}))}}]),n}(),It=function(){function e(t,r){Z(this,e),this.record=t,this._store=r}return Y(e,[{key:"_get_name",value:function(){return this.record.readName}},{key:"_get_start",value:function(){return this.record.alignmentStart-1}},{key:"_get_end",value:function(){return this.record.alignmentStart+this.record.lengthOnRef-1}},{key:"_get_cram_read_features",value:function(){return this.record.readFeatures}},{key:"_get_type",value:function(){return"match"}},{key:"_get_score",value:function(){return this.record.mappingQuality}},{key:"_get_flags",value:function(){return this.record.flags}},{key:"_get_strand",value:function(){return this.record.isReverseComplemented()?-1:1}},{key:"_read_group_id",value:function(){var e=this._store.samHeader.readGroups;return e?e[this.record.readGroupId]:void 0}},{key:"_get_qual",value:function(){return(this.record.qualityScores||[]).join(" ")}},{key:"qualRaw",value:function(){return this.record.qualityScores}},{key:"_get_seq_id",value:function(){return this._store.refIdToName(this.record.sequenceId)}},{key:"_get_refName",value:function(){return this._get_seq_id()}},{key:"_get_is_paired",value:function(){return!!this.record.mate}},{key:"_get_pair_orientation",value:function(){return this.record.isPaired()?this.record.getPairOrientation():void 0}},{key:"_get_template_length",value:function(){return this.record.templateLength||this.record.templateSize}},{key:"_get_next_seq_id",value:function(){return this.record.mate?this._store.refIdToName(this.record.mate.sequenceId):void 0}},{key:"_get_next_pos",value:function(){return this.record.mate?this.record.mate.alignmentStart:void 0}},{key:"_get_next_segment_position",value:function(){return this.record.mate?"".concat(this._store.refIdToName(this.record.mate.sequenceId),":").concat(this.record.mate.alignmentStart):void 0}},{key:"_get_tags",value:function(){var e=this._read_group_id(),t=this.record.tags;return void 0!==e?J(J({},t),{},{RG:e}):t}},{key:"_get_seq",value:function(){return this.record.getReadBases()}},{key:"_get_CIGAR",value:function(){var e="",t="",r="M",n=0,a=this.record._refRegion.seq,o=this.record._refRegion.start,i=this.record.alignmentStart,l=0;return void 0!==this.record.readFeatures?this.record.readFeatures.forEach((function(s){var c=s.code,u=s.refPos,p=s.sub,f=s.data;if(l=u-i,e+=a.substring(i-o,u-o),i=u,n&&"M"!==r&&(t+=n+r,n=0),l&&(r="M",n+=l),"b"===c){var d=f.split(","),g=String.fromCharCode.apply(String,le(d));e+=g,i+=g.length,n+=g.length}else"B"===c||"X"===c?(e+=p,i++,n++):"D"===c||"N"===c?(i+=f,n&&(t+=n+r),t+=f+c,n=0):"I"===c||"S"===c?(e+=f,n&&(t+=n+r),t+=f.length+c,n=0):"i"===c?(e+=f,n&&(t+=n+r),t+="".concat(1,"I"),n=0):"P"===c?(n&&(t+=n+r),t+="".concat(f,"P")):"H"===c&&(n&&(t+=n+r),t+="".concat(f,"H"),n=0)})):l=this.record.readLength-e.length,e.length!==this.record.readLength&&(e+=a.substring(i-o,i-o+(l=this.record.readLength-e.length)),n&&"M"!==r&&(t+=n+r,n=0),r="M",n+=l),n&&(t+=n+r),t}},{key:"tags",value:function(){return Object.getOwnPropertyNames(e.prototype).filter((function(e){return e.startsWith("_get_")&&"_get_mismatches"!==e&&"_get_skips_and_dels"!==e&&"_get_cram_read_features"!==e})).map((function(e){return e.replace("_get_","")}))}},{key:"id",value:function(){return"".concat(this._store.id,"-").concat(this.record.uniqueId)}},{key:"get",value:function(e){var t="_get_".concat(e);if(this[t])return this[t]()}},{key:"parent",value:function(){}},{key:"children",value:function(){}},{key:"set",value:function(){}},{key:"pairedFeature",value:function(){return!1}},{key:"_get_clipPos",value:function(){var e=this.get("mismatches");if(e.length){var t=-1===this.get("strand")?e[e.length-1]:e[0],r=t.type;if("softclip"===r||"hardclip"===r)return t.cliplen}return 0}},{key:"toJSON",value:function(){var e=this,t={};return this.tags().forEach((function(r){var n=e.get(r);void 0!==n&&(t[r]=n)})),J(J({},t),{},{name:this.get("name"),type:this.get("type"),uniqueId:this.id()})}},{key:"_get_mismatches",value:function(){var e=this.get("cram_read_features"),t=this.qualRaw();if(!e)return[];var r=this.get("start"),n=[];return e.forEach((function(e){var a=e.code,o=e.data,i=e.refPos-1-r;if("X"===a)n.push({start:i,length:1,base:e.sub,qual:null==t?void 0:t[e.pos],altbase:e.ref,type:"mismatch"});else if("I"===a)n.push({start:i,type:"insertion",base:"".concat(o.length),length:0});else if("N"===a)n.push({type:"skip",length:o,start:i,base:"N"});else if("S"===a){var l=o.length;n.push({start:i,type:"softclip",base:"S".concat(l),cliplen:l,length:1})}else if("P"===a);else if("H"===a){var s=o;n.push({start:i,type:"hardclip",base:"H".concat(s),cliplen:s,length:1})}else"D"===a?n.push({type:"deletion",length:o,start:i,base:"*"}):"b"===a||"q"===a||"B"===a||"i"===a&&n.push({start:i,type:"insertion",base:o,length:1})})),n}},{key:"_get_skips_and_dels",value:function(){return this._get_mismatches()}}]),e}(),Lt={__proto__:null,default:function(e){ee(f,i.BaseFeatureDataAdapter);var t,n,o,l,u,p=ne(f);function f(){var e;return Z(this,f),(e=p.apply(this,arguments)).samHeader={},e.seqIdToOriginalRefName=[],e}return Y(f,[{key:"configure",value:(u=Q(he.mark((function e(){var t,r,n,o;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=a.readConfObject(this.config,"cramLocation"),r=a.readConfObject(this.config,"craiLocation"),t){e.next=4;break}throw new Error("missing cramLocation argument");case 4:if(r){e.next=6;break}throw new Error("missing craiLocation argument");case 6:if(this.cram=new j.IndexedCramFile({cramFilehandle:H.openLocation(t,this.pluginManager),index:new j.CraiIndex({filehandle:H.openLocation(r,this.pluginManager)}),seqFetch:this.seqFetch.bind(this),checkSequenceMD5:!1,fetchSizeLimit:this.config.fetchSizeLimit||6e8}),n=a.readConfObject(this.config,["sequenceAdapter","type"]),this.getSubAdapter){e.next=10;break}throw new Error("Error getting subadapter");case 10:return e.next=12,this.getSubAdapter(a.readConfObject(this.config,"sequenceAdapter"));case 12:if(!((o=e.sent.dataAdapter)instanceof i.BaseFeatureDataAdapter)){e.next=18;break}this.sequenceAdapter=o,e.next=19;break;case 18:throw new Error("CRAM feature adapters cannot use sequence adapters of type '".concat(n,"'"));case 19:return e.abrupt("return",{sequenceAdapter:this.sequenceAdapter});case 20:case"end":return e.stop()}}),e,this)}))),function(){return u.apply(this,arguments)})},{key:"getHeader",value:(l=Q(he.mark((function e(t){return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.configure();case 2:return e.abrupt("return",this.cram.cram.getHeaderText(t));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return l.apply(this,arguments)})},{key:"seqFetch",value:(o=Q(he.mark((function e(t,r,n){var a,o,i,l,s;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r-=1,a=this.sequenceAdapter){e.next=4;break}return e.abrupt("return",void 0);case 4:if(o=this.refIdToOriginalName(t)||this.refIdToName(t)){e.next=7;break}return e.abrupt("return",void 0);case 7:return i=a.getFeatures({refName:o,start:r,end:n,assemblyName:""},{}),e.next=10,i.pipe(c.toArray()).toPromise();case 10:if(l=[],e.sent.sort((function(e,t){return e.get("start")-t.get("start")})).forEach((function(e){var t=e.get("start"),a=e.get("end"),o=Math.max(r-t,0),i=Math.min(n-t,a-t)-o,s=e.get("seq")||e.get("residues");l.push(s.substr(o,i))})),(s=l.join("")).length===n-r){e.next=16;break}throw new Error("sequence fetch failed: fetching ".concat(o,":").concat((r-1).toLocaleString(),"-").concat(n.toLocaleString()," returned ").concat(s.length.toLocaleString()," bases, but should have returned ").concat((n-r).toLocaleString()));case 16:return e.abrupt("return",s);case 17:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return o.apply(this,arguments)})},{key:"setup",value:(n=Q(he.mark((function e(t){var r,n,a=this;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=void 0===(r=(t||{}).statusCallback)?function(){}:r,this.setupP||(this.setupP=this.configure().then(Q(he.mark((function e(){var r,o,i,l;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n("Downloading index"),e.next=3,a.cram.cram.getSamHeader(null==t?void 0:t.signal);case 3:return o=[],i={},(r=e.sent).filter((function(e){return"SQ"===e.tag})).forEach((function(e,t){e.data.forEach((function(e){if("SN"===e.tag){var r=e.value;i[r]=t,o[t]=r}}))})),l=r.filter((function(e){return"RG"===e.tag})).map((function(e){var t;return null===(t=e.data.find((function(e){return"ID"===e.tag})))||void 0===t?void 0:t.value})),o.length&&(a.samHeader={idToName:o,nameToId:i,readGroups:l}),n(""),e.abrupt("return",a.samHeader);case 11:case"end":return e.stop()}}),e)})))).catch((function(e){throw a.setupP=void 0,e}))),e.abrupt("return",this.setupP);case 3:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"getRefNames",value:(t=Q(he.mark((function e(t){return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.setup(t);case 2:if(!this.samHeader.idToName){e.next=4;break}return e.abrupt("return",this.samHeader.idToName);case 4:if(!this.sequenceAdapter){e.next=6;break}return e.abrupt("return",this.sequenceAdapter.getRefNames());case 6:throw new Error("unable to get refnames");case 7:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"refNameToId",value:function(e){return this.samHeader.nameToId?this.samHeader.nameToId[e]:this.seqIdToRefName?this.seqIdToRefName.indexOf(e):void 0}},{key:"refIdToName",value:function(e){return this.samHeader.idToName?this.samHeader.idToName[e]:this.seqIdToRefName?this.seqIdToRefName[e]:void 0}},{key:"refIdToOriginalName",value:function(e){return this.seqIdToOriginalRefName[e]}},{key:"getFeatures",value:function(e,t){var n=this,a=t||{},o=a.signal,i=a.statusCallback,l=void 0===i?function(){}:i,c=e.refName,u=e.start,p=e.end,f=e.originalRefName;return s.ObservableCreate(function(){var e=Q(he.mark((function e(a){var i,s;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.setup(t);case 2:if(!n.sequenceAdapter||n.seqIdToRefName){e.next=6;break}return e.next=5,n.sequenceAdapter.getRefNames(t);case 5:n.seqIdToRefName=e.sent;case 6:if(void 0===(i=n.refNameToId(c))){e.next=15;break}return f&&(n.seqIdToOriginalRefName[i]=f),l("Downloading alignments"),e.next=12,n.cram.getRecordsForRange(i,u,p,t);case 12:s=e.sent,r.checkAbortSignal(o),s.forEach((function(e){a.next(n.cramRecordToFeature(e))}));case 15:l(""),a.complete();case 17:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),o)}},{key:"freeResources",value:function(){}},{key:"cramRecordToFeature",value:function(e){return new It(e,this)}}]),f}()},Ft=function(){function e(t,r,n){Z(this,e),this.record=t,this.adapter=r,this.ref=n}return Y(e,[{key:"_get_name",value:function(){return this.record.get("name")}},{key:"_get_type",value:function(){return"match"}},{key:"_get_score",value:function(){return this.record.get("mq")}},{key:"_get_flags",value:function(){return this.record.flags}},{key:"_get_strand",value:function(){return this.record.isReverseComplemented()?-1:1}},{key:"_get_read_group_id",value:function(){return this.record.readGroupId}},{key:"_get_pair_orientation",value:function(){return this.record.isPaired()?this.record.getPairOrientation():void 0}},{key:"_get_next_seq_id",value:function(){return this.record._next_refid()}},{key:"_get_seq_id",value:function(){return this.record._refID}},{key:"_get_next_refName",value:function(){return this.adapter.refIdToName(this.record._next_refid())}},{key:"_get_next_segment_position",value:function(){return this.record.isPaired()?"".concat(this.adapter.refIdToName(this.record._next_refid()),":").concat(this.record._next_pos()+1):void 0}},{key:"_get_seq",value:function(){return this.record.getReadBases()}},{key:"_get_MD",value:function(){var e=this.record.get("MD"),t=this.get("seq");return!e&&t&&this.ref?Ce(this.ref,this.record.getReadBases(),this.get("CIGAR")):e}},{key:"qualRaw",value:function(){return this.record.qualRaw()}},{key:"set",value:function(){}},{key:"tags",value:function(){var t=Object.getOwnPropertyNames(e.prototype);return le(new Set(t.filter((function(e){return e.startsWith("_get_")&&"_get_mismatches"!==e&&"_get_skips_and_dels"!==e&&"_get_cram_read_features"!==e&&"_get_tags"!==e&&"_get_next_seq_id"!==e&&"_get_seq_id"!==e})).map((function(e){return e.replace("_get_","")})).concat(this.record._tags())))}},{key:"id",value:function(){return"".concat(this.adapter.id,"-").concat(this.record.id())}},{key:"get",value:function(e){var t="_get_".concat(e);return this[t]?this[t]():this.record.get(e)}},{key:"_get_refName",value:function(){return this.adapter.refIdToName(this.record.seq_id())}},{key:"parent",value:function(){}},{key:"children",value:function(){}},{key:"pairedFeature",value:function(){return!1}},{key:"toJSON",value:function(){var e=this;return J(J({},Object.fromEntries(this.tags().map((function(t){return[t,e.get(t)]})).filter((function(e){return void 0!==e[1]})))),{},{uniqueId:this.id()})}},{key:"_get_skips_and_dels",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{cigarAttributeName:"CIGAR"},t=e.cigarAttributeName,r=[],n=[],a=this.get(t);return a&&(n=ye(a),r=r.concat(ve(n,this.get("seq"),this.qualRaw()))),r}},{key:"_get_mismatches",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.cigarAttributeName,r=void 0===t?"CIGAR":t,n=e.mdAttributeName,a=void 0===n?"MD":n,o=[],i=[],l=this.get(r),s=this.get("seq"),c=this.qualRaw();l&&(i=ye(l),o=o.concat(ve(i,s,c)));var u=this.get(a);u&&(o=o.concat(be(u,i,o,s,c)));var p={};return o.filter((function(e){var t="".concat(e.type,",").concat(e.start,",").concat(e.length),r=p[t];return p[t]=!0,!r}))}},{key:"_get_clipPos",value:function(){var e=this.get("CIGAR")||"";return-1===this.get("strand")?+(e.match(/(\d+)[SH]$/)||[])[1]||0:+(e.match(/^(\d+)([SH])/)||[])[1]||0}}]),e}(),qt=function(e){ee(f,i.BaseFeatureDataAdapter);var t,n,o,l,u,p=ne(f);function f(){return Z(this,f),p.apply(this,arguments)}return Y(f,[{key:"configure",value:(u=Q(he.mark((function e(){var t,r,n,o,i,l,s;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.configured||(t=a.readConfObject(this.config,"bamLocation"),r=a.readConfObject(this.config,["index","location"]),n=a.readConfObject(this.config,["index","indexType"]),o=a.readConfObject(this.config,"chunkSizeLimit"),i=a.readConfObject(this.config,"fetchSizeLimit"),l=new V.BamFile({bamFilehandle:H.openLocation(t,this.pluginManager),csiFilehandle:"CSI"===n?H.openLocation(r,this.pluginManager):void 0,baiFilehandle:"CSI"!==n?H.openLocation(r,this.pluginManager):void 0,chunkSizeLimit:o,fetchSizeLimit:i}),s=a.readConfObject(this.config,"sequenceAdapter"),this.configured=s&&this.getSubAdapter?this.getSubAdapter(s).then((function(e){return{bam:l,sequenceAdapter:e.dataAdapter}})):Promise.resolve({bam:l})),e.abrupt("return",this.configured);case 2:case"end":return e.stop()}}),e,this)}))),function(){return u.apply(this,arguments)})},{key:"getHeader",value:(l=Q(he.mark((function e(t){return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.configure();case 2:return e.abrupt("return",e.sent.bam.getHeaderText(t));case 5:case"end":return e.stop()}}),e,this)}))),function(e){return l.apply(this,arguments)})},{key:"setup",value:(o=Q(he.mark((function e(t){var r,n,a=this;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=void 0===(r=(t||{}).statusCallback)?function(){}:r,this.setupP||(this.setupP=this.configure().then(function(){var e=Q(he.mark((function e(r){var o,i,l;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=r.bam,n("Downloading index"),e.next=4,o.getHeader(t);case 4:return i=[],l={},e.sent.filter((function(e){return"SQ"===e.tag})).forEach((function(e,t){e.data.forEach((function(e){if("SN"===e.tag){var r=e.value;l[r]=t,i[t]=r}}))})),n(""),a.samHeader={idToName:i,nameToId:l},e.abrupt("return",a.samHeader);case 11:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).catch((function(e){throw a.setupP=void 0,e}))),e.abrupt("return",this.setupP);case 3:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"getRefNames",value:(n=Q(he.mark((function e(t){return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.setup(t);case 2:return e.abrupt("return",e.sent.idToName);case 5:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"seqFetch",value:(t=Q(he.mark((function e(t,r,n){var a,o,i,l;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.configure();case 2:if(a=e.sent.sequenceAdapter){e.next=7;break}return e.abrupt("return",void 0);case 7:if(t){e.next=9;break}return e.abrupt("return",void 0);case 9:return o=a.getFeatures({refName:t,start:r,end:n,assemblyName:""}),e.next=12,o.pipe(c.toArray()).toPromise();case 12:if(i=[],e.sent.sort((function(e,t){return e.get("start")-t.get("start")})).forEach((function(e){var t=e.get("start"),a=e.get("end"),o=Math.max(r-t,0),l=Math.min(n-t,a-t)-o,s=e.get("seq")||e.get("residues");i.push(s.substr(o,l))})),(l=i.join("")).length===n-r){e.next=18;break}throw new Error("sequence fetch failed: fetching ".concat(t,":").concat((r-1).toLocaleString(),"-").concat(n.toLocaleString()," returned ").concat(l.length.toLocaleString()," bases, but should have returned ").concat((n-r).toLocaleString()));case 18:return e.abrupt("return",l);case 19:case"end":return e.stop()}}),e,this)}))),function(e,r,n){return t.apply(this,arguments)})},{key:"getFeatures",value:function(e,t){var n=this,a=e.refName,o=e.start,i=e.end,l=e.originalRefName,c=t||{},u=c.signal,p=c.statusCallback,f=void 0===p?function(){}:p;return s.ObservableCreate(function(){var e=Q(he.mark((function e(s){var c,p,d,g,h,m;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.configure();case 2:return c=e.sent.bam,e.next=6,n.setup(t);case 6:return f("Downloading alignments"),e.next=9,c.getRecordsForRange(a,o,i,t);case 9:p=e.sent,r.checkAbortSignal(u),d=de(p),e.prev=12,d.s();case 14:if((g=d.n()).done){e.next=24;break}if(m=void 0,(h=g.value).get("md")){e.next=21;break}return e.next=20,n.seqFetch(l||a,h.get("start"),h.get("end"));case 20:m=e.sent;case 21:s.next(new Ft(h,n,m));case 22:e.next=14;break;case 24:e.next=29;break;case 26:e.prev=26,e.t0=e.catch(12),d.e(e.t0);case 29:return e.prev=29,d.f(),e.finish(29);case 32:f(""),s.complete();case 34:case"end":return e.stop()}}),e,null,[[12,26,29,32]])})));return function(t){return e.apply(this,arguments)}}(),u)}},{key:"freeResources",value:function(){}},{key:"refIdToName",value:function(e){var t;return null===(t=this.samHeader)||void 0===t?void 0:t.idToName[e]}}]),f}(),Ot={__proto__:null,default:qt},jt={__proto__:null,default:function(e){ee(n,qt);var t,r=ne(n);function n(){return Z(this,n),r.apply(this,arguments)}return Y(n,[{key:"configure",value:(t=Q(he.mark((function e(){var t,r,n,o;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.configured||(t=a.readConfObject(this.config,"htsgetBase"),r=a.readConfObject(this.config,"htsgetTrackId"),n=new V.HtsgetFile({baseUrl:t,trackId:r}),(o=a.readConfObject(this.config,"sequenceAdapter"))&&this.getSubAdapter&&(this.configured=this.getSubAdapter(o).then((function(e){return{bam:n,sequenceAdapter:e.dataAdapter}}))),this.configured=Promise.resolve({bam:n})),e.abrupt("return",this.configured);case 2:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})}]),n}()},Ht=z.makeStyles((function(e){return{root:{width:300},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Vt(e){var t=Ht(),r=e.model,n=e.handleClose,a=ie(C.useState(""),2),o=a[0],i=a[1],l=o.match(/^[A-Za-z][A-Za-z0-9]$/);return w.createElement(z.Dialog,{open:!0,onClose:n},w.createElement(z.DialogTitle,null,"Color by tag",w.createElement(z.IconButton,{"aria-label":"close",className:t.closeButton,onClick:n},w.createElement(G,null))),w.createElement(z.DialogContent,{style:{overflowX:"hidden"}},w.createElement("div",{className:t.root},w.createElement(z.Typography,null,"Enter tag to color by: "),w.createElement(z.Typography,{color:"textSecondary"},"Examples: XS or TS for RNA-seq inferred read strand, ts (lower-case) for minimap2 read strand, HP for haplotype, RG for read group, etc."),w.createElement(z.TextField,{value:o,onChange:function(e){i(e.target.value)},placeholder:"Enter tag name",inputProps:{maxLength:2,"data-testid":"color-tag-name-input"},error:2===o.length&&!l,helperText:2!==o.length||l?"":"Not a valid tag",autoComplete:"off","data-testid":"color-tag-name"}),w.createElement(z.Button,{variant:"contained",color:"primary",style:{marginLeft:20},onClick:function(){r.setColorScheme({type:"tag",tag:o}),n()},disabled:!l},"Submit"))))}var zt={__proto__:null,default:b.observer(Vt)},Gt=z.makeStyles((function(e){return{root:{width:500},paper:{padding:e.spacing(2),margin:e.spacing(2)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},field:{margin:e.spacing(2)}}})),Wt=["read paired","read mapped in proper pair","read unmapped","mate unmapped","read reverse strand","mate reverse strand","first in pair","second in pair","not primary alignment","read fails platform/vendor quality checks","read is PCR or optical duplicate","supplementary alignment"];function Ut(e){var t=e.flag,r=void 0===t?0:t,n=e.setFlag;return w.createElement(w.Fragment,null,w.createElement(z.TextField,{type:"number",value:r,onChange:function(e){return n(+e.target.value)}}),Wt.map((function(e,t){var a=r&1<<t,o="".concat(e,"_").concat(a);return w.createElement("div",{key:o},w.createElement("input",{type:"checkbox",checked:Boolean(a),onChange:function(e){n(e.target.checked?r|1<<t:r&~(1<<t))}}),w.createElement("label",{htmlFor:o},e))})))}function Jt(e){var t,r,n=e.model,a=e.handleClose,o=Gt(),i=n.filterBy,l=ie(C.useState(null==i?void 0:i.flagInclude),2),s=l[0],c=l[1],u=ie(C.useState(null==i?void 0:i.flagExclude),2),p=u[0],f=u[1],d=ie(C.useState((null==i||null===(t=i.tagFilter)||void 0===t?void 0:t.tag)||""),2),g=d[0],h=d[1],m=ie(C.useState((null==i||null===(r=i.tagFilter)||void 0===r?void 0:r.value)||""),2),y=m[0],v=m[1],b=ie(C.useState((null==i?void 0:i.readName)||""),2),S=b[0],x=b[1],k=g.match(/^[A-Za-z][A-Za-z0-9]$/),_="https://broadinstitute.github.io/picard/explain-flags.html";return w.createElement(z.Dialog,{open:!0,onClose:a},w.createElement(z.DialogTitle,null,"Filter options",w.createElement(z.IconButton,{"aria-label":"close",className:o.closeButton,onClick:a},w.createElement(G,null))),w.createElement(z.DialogContent,null,w.createElement(z.Typography,null,"Set filter bitmask options. Refer to ",w.createElement(z.Link,{href:_},_)," ","for details"),w.createElement("div",{className:o.root},w.createElement(z.Paper,{className:o.paper,variant:"outlined"},w.createElement("div",{style:{display:"flex"}},w.createElement("div",null,w.createElement(z.Typography,null,"Read must have ALL these flags"),w.createElement(Ut,{flag:s,setFlag:c})),w.createElement("div",null,w.createElement(z.Typography,null,"Read must have NONE of these flags"),w.createElement(Ut,{flag:p,setFlag:f})))),w.createElement(z.Paper,{className:o.paper,variant:"outlined"},w.createElement(z.Typography,null,"Filter by tag name and value. Use * in the value field to get all reads containing any value for that tag. Example: filter tag name SA with value * to get all split/supplementary reads. Other examples include HP for haplotype, or RG for read group"),w.createElement(z.TextField,{className:o.field,value:g,onChange:function(e){h(e.target.value)},placeholder:"Enter tag name",inputProps:{maxLength:2,"data-testid":"color-tag-name-input"},error:2===g.length&&!k,helperText:2!==g.length||k?"":"Not a valid tag","data-testid":"color-tag-name"}),w.createElement(z.TextField,{className:o.field,value:y,onChange:function(e){v(e.target.value)},placeholder:"Enter tag value",inputProps:{"data-testid":"color-tag-name-input"},"data-testid":"color-tag-value"})),w.createElement(z.Paper,{className:o.paper,variant:"outlined"},w.createElement(z.Typography,null,"Filter by read name"),w.createElement(z.TextField,{className:o.field,value:S,onChange:function(e){x(e.target.value)},placeholder:"Enter read name",inputProps:{"data-testid":"color-tag-readname-input"},"data-testid":"color-tag-readname"})),w.createElement(z.Button,{variant:"contained",color:"primary",onClick:function(){n.setFilterBy({flagInclude:s,flagExclude:p,readName:S,tagFilter:""!==g?{tag:g,value:y}:void 0}),a()}},"Submit"))))}var Xt={__proto__:null,default:b.observer(Jt)},Qt=z.makeStyles((function(e){return{root:{margin:0,padding:e.spacing(2)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Zt(e){var t=Qt(),r=e.model,n=e.handleClose,a=ie(C.useState(""),2),o=a[0],i=a[1],l=o.match(/^[A-Za-z][A-Za-z0-9]$/);return w.createElement(z.Dialog,{open:!0,onClose:n},w.createElement(z.DialogTitle,null,"Sort by tag",w.createElement(z.IconButton,{"aria-label":"close",className:t.closeButton,onClick:n},w.createElement(G,null))),w.createElement(z.DialogContent,null,w.createElement("div",null,w.createElement(z.Typography,null,"Set the tag to sort by"),w.createElement(z.Typography,{color:"textSecondary"},"Examples: HP for haplotype, RG for read group, etc."),w.createElement(z.TextField,{value:o,onChange:function(e){i(e.target.value)},placeholder:"Enter tag name",inputProps:{maxLength:2,"data-testid":"sort-tag-name-input"},error:2===o.length&&!l,helperText:2!==o.length||l?"":"Not a valid tag",autoComplete:"off","data-testid":"sort-tag-name"}),w.createElement(z.Button,{variant:"contained",color:"primary",onClick:function(){r.setSortedBy("tag",o),n()}},"Submit"))))}var $t={__proto__:null,default:b.observer(Zt)},Yt=z.makeStyles((function(e){return{root:{margin:e.spacing(4)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Kt(e){var t=Yt(),r=e.model,n=e.handleClose,a=r.noSpacing,o=ie(C.useState("".concat(r.featureHeightSetting)),2),i=o[0],l=o[1],s=ie(C.useState(a),2),c=s[0],u=s[1],p=""!==i&&!Number.isNaN(+i);return w.createElement(z.Dialog,{open:!0,onClose:n},w.createElement(z.DialogTitle,null,"Set feature height",w.createElement(z.IconButton,{className:t.closeButton,onClick:n},w.createElement(G,null))),w.createElement(z.DialogContent,null,w.createElement(z.Typography,null,"Adjust the feature height and whether there is any spacing between features. Setting feature height to 1 and removing spacing makes the display very compact"),w.createElement("div",{className:t.root},w.createElement(z.Typography,null,"Enter feature height: "),w.createElement(z.TextField,{value:i,onChange:function(e){l(e.target.value)}}),w.createElement(z.FormControlLabel,{control:w.createElement(z.Checkbox,{checked:!!c,onChange:function(){return u((function(e){return!e}))}}),label:"Remove spacing between features in y-direction?"}),w.createElement(z.Button,{variant:"contained",color:"primary",type:"submit",style:{marginLeft:20},disabled:!p,onClick:function(){r.setFeatureHeight(""===i||Number.isNaN(+i)?void 0:+i),r.setNoSpacing(c),n()}},"Submit"))))}var er={__proto__:null,default:b.observer(Kt)},tr=z.makeStyles((function(e){return{root:{width:500},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},field:{margin:e.spacing(2)}}}));function rr(e){var t=e.model,r=e.handleClose,n=tr(),a=t.maxHeight,o=ie(C.useState("".concat(void 0===a?"":a)),2),i=o[0],l=o[1];return w.createElement(z.Dialog,{open:!0,onClose:r},w.createElement(z.DialogTitle,{id:"alert-dialog-title"},"Filter options",w.createElement(z.IconButton,{"aria-label":"close",className:n.closeButton,onClick:r},w.createElement(G,null))),w.createElement(z.DialogContent,null,w.createElement("div",{className:n.root},w.createElement(z.Typography,null,"Set max height for the track"),w.createElement(z.TextField,{value:i,onChange:function(e){l(e.target.value)},placeholder:"Enter max height for layout"}),w.createElement(z.Button,{variant:"contained",color:"primary",type:"submit",style:{marginLeft:20},onClick:function(){t.setMaxHeight(""===i||Number.isNaN(+i)?void 0:+i),r()}},"Submit"))))}var nr={__proto__:null,default:b.observer(rr)},ar=z.makeStyles((function(e){return{root:{},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},table:{border:"1px solid #888",margin:e.spacing(4),"& td":{padding:e.spacing(1)}}}}));function or(e){var t=e.modifications,r=ar();return w.createElement("table",{className:r.table},w.createElement("tbody",null,t.map((function(e){var t=ie(e,2),r=t[0],n=t[1];return w.createElement("tr",{key:r},w.createElement("td",null,r),w.createElement("td",null,n),w.createElement("td",{style:{width:"1em",background:n}}))}))))}function ir(e){var t=ar(),r=e.model,n=e.handleClose,a=r.colorBy,o=r.modificationTagMap,i=le(o.entries());return w.createElement(z.Dialog,{open:!0,onClose:n},w.createElement(z.DialogTitle,null,"Color by modifications",w.createElement(z.IconButton,{"aria-label":"close",className:t.closeButton,onClick:n},w.createElement(G,null))),w.createElement(z.DialogContent,null,w.createElement("div",{className:t.root},w.createElement(z.Typography,null,"You can choose to color the modifications in the BAM/CRAM MM/ML specification using this dialog. Choosing modifications colors the modified positions and can color multiple modification types. Choosing the methylation setting colors methylated and unmethylated CpG."),w.createElement(z.Typography,null,"Note: you can revisit this dialog to see the current mapping of colors to modification type for the modification coloring mode"),w.createElement("div",{style:{margin:20}},"modifications"===(null==a?void 0:a.type)?w.createElement("div",null,i.length?w.createElement(w.Fragment,null,"Current modification-type-to-color mapping",w.createElement(or,{modifications:le(o.entries())})):w.createElement("div",null,w.createElement(z.Typography,null,"Note: color by modifications is already enabled. Loading current modifications..."),w.createElement(z.CircularProgress,{size:15}))):null,"methylation"===(null==a?void 0:a.type)?w.createElement(or,{modifications:[["methylated","red"],["unmethylated","blue"]]}):null),w.createElement("div",{style:{display:"flex"}},w.createElement(z.Button,{variant:"contained",color:"primary",style:{margin:5},onClick:function(){r.setColorScheme({type:"modifications"}),n()}},"Modifications"),w.createElement(z.Button,{variant:"contained",color:"primary",style:{margin:5},onClick:function(){r.setColorScheme({type:"methylation"}),n()}},"Methylation"),w.createElement(z.Button,{variant:"contained",color:"secondary",style:{margin:5},onClick:function(){return n()}},"Cancel")))))}var lr={__proto__:null,default:b.observer(ir)},sr=z.makeStyles((function(){return{compact:{paddingRight:0,paddingTop:0,paddingBottom:0}}})),cr=["clipPos","flags"];function ur(e){var t=sr(),r=e.feature.flags;return w.createElement(W.BaseCard,Object.assign({},e,{title:"Flags"}),w.createElement(W.SimpleValue,{name:"Flag",value:r}),w.createElement(z.FormGroup,null,["read paired","read mapped in proper pair","read unmapped","mate unmapped","read reverse strand","mate reverse strand","first in pair","second in pair","not primary alignment","read fails platform/vendor quality checks","read is PCR or optical duplicate","supplementary alignment"].map((function(e,n){var a=r&1<<n,o="".concat(e,"_").concat(a);return w.createElement(z.FormControlLabel,{key:o,control:w.createElement(z.Checkbox,{className:t.compact,checked:Boolean(a),name:e,readOnly:!0}),label:e})}))))}function pr(e){var t=e.value,r=ie(C.useState(!1),2),n=r[0],a=r[1],o=String(t);return o.length>100?w.createElement(w.Fragment,null,w.createElement("button",{type:"button",onClick:function(){return R(o)}},"Copy"),w.createElement("button",{type:"button",onClick:function(){return a((function(e){return!e}))}},n?"Show less":"Show more"),w.createElement("div",null,n?o:"".concat(o.slice(0,100),"..."))):w.createElement("div",null,o)}function fr(e){var t=e.tag,n=e.model,a=r.getSession(n);return w.createElement(W.BaseCard,Object.assign({},e,{title:"Supplementary alignments"}),w.createElement(z.Typography,null,"List of supplementary alignment locations"),w.createElement("ul",null,t.split(";").filter((function(e){return!!e})).map((function(e,t){var r=ie(e.split(","),4),o=r[0],i=r[1],l=r[2],s=function(e){for(var t=ye(e),r=0,n=0;n<t.length;n+=2){var a=t[n+1];"H"!==a&&"S"!==a&&"I"!==a&&(r+=+t[n])}return r}(r[3]),c=Math.floor(s/5),u=+i,p=+i+s,f="".concat(o,":").concat(Math.max(1,u-c),"-").concat(p+c),d=u.toLocaleString("en-US"),g=p.toLocaleString("en-US"),h="".concat(o,":").concat(d,"-").concat(g," (").concat(l,")");return w.createElement("li",{key:"".concat(f,"-").concat(t)},w.createElement(z.Link,{onClick:function(){var e=n.view;e?e.navToLocString(f):a.notify("No view associated with this feature detail panel anymore","warning")},href:"#"},h))}))))}function dr(e){var t=e.locString,n=e.model,a=r.getSession(n);return w.createElement(z.Link,{onClick:function(){var e=n.view;e?e.navToLocString(t):a.notify("No view associated with this feature detail panel anymore","warning")},href:"#"},t)}function gr(e){var t=e.model,r=JSON.parse(JSON.stringify(t.featureData)),n=r.tags&&r.tags.SA||r.SA;return w.createElement(z.Paper,{"data-testid":"alignment-side-drawer"},w.createElement(W.FeatureDetails,Object.assign({},e,{omit:cr,feature:r,formatter:function(e,r){return"next_segment_position"===r?w.createElement(dr,{model:t,locString:e}):w.createElement(pr,{value:e})}})),n?w.createElement(fr,{model:t,tag:n}):null,w.createElement(ur,Object.assign({feature:r},e)))}var hr={__proto__:null,default:b.observer(gr)};exports.MismatchParser=ke,exports.default=Bt;
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("@jbrowse/core/Plugin")),r=require("@jbrowse/core/util"),n=e(require("@jbrowse/core/pluggableElementTypes/AdapterType")),a=require("@jbrowse/core/configuration"),o=require("mobx-state-tree"),i=require("@jbrowse/core/data_adapters/BaseAdapter"),s=e(require("@jbrowse/core/util/simpleFeature")),l=require("@jbrowse/core/util/rxjs"),c=require("rxjs/operators"),u=require("@jbrowse/core/ui"),p=require("@jbrowse/plugin-wiggle"),f=require("@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType"),d=e(f),g=e(require("color")),h=require("@jbrowse/core/util/offscreenCanvasUtils"),m=require("@jbrowse/core/data_adapters/dataAdapterCache"),y=require("@jbrowse/core/util/range"),v=e(require("fast-deep-equal")),b=require("mobx-react"),w=require("react"),C=e(w),S=e(require("@jbrowse/core/pluggableElementTypes/DisplayType")),x=require("@jbrowse/plugin-linear-genome-view"),k=require("@jbrowse/core/pluggableElementTypes/models"),_=require("mobx"),E=e(require("@jbrowse/core/pluggableElementTypes/renderers/util/serializableFilterChain")),T=require("@jbrowse/core/util/tracks"),P=e(require("@material-ui/icons/Visibility")),R=require("@jbrowse/core/ui/Icons"),M=e(require("copy-to-clipboard")),N=e(require("@material-ui/icons/MenuOpen")),A=e(require("@material-ui/icons/Sort")),D=e(require("@material-ui/icons/Palette")),I=e(require("@material-ui/icons/ClearAll")),B=e(require("@material-ui/core/Typography")),L=e(require("@jbrowse/core/pluggableElementTypes/TrackType")),F=require("@jbrowse/core/util/types/mst"),O=e(require("@jbrowse/core/pluggableElementTypes/WidgetType")),q=e(require("@jbrowse/core/pluggableElementTypes/RpcMethodType")),j=require("@gmod/cram"),H=require("@jbrowse/core/util/io"),V=require("@gmod/bam"),z=require("@material-ui/core"),G=e(require("@material-ui/icons/Close")),W=require("@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail");function U(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function J(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?U(Object(r),!0).forEach((function(t){K(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):U(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function X(e,t,r,n,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,a)}function Q(e){return function(){var t=this,r=arguments;return new Promise((function(n,a){var o=e.apply(t,r);function i(e){X(o,n,a,i,s,"next",e)}function s(e){X(o,n,a,i,s,"throw",e)}i(void 0)}))}}function Z(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function $(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function Y(e,t,r){return t&&$(e.prototype,t),r&&$(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function K(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ee(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function te(e){return(te=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function re(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function ne(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=te(e);if(t){var a=te(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return re(this,r)}}function ae(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=te(e)););return e}function oe(){return(oe="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=ae(e,t);if(n){var a=Object.getOwnPropertyDescriptor(n,t);return a.get?a.get.call(arguments.length<3?e:r):a.value}}).apply(this,arguments)}function ie(e,t){return le(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o=[],i=!0,s=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);i=!0);}catch(e){s=!0,a=e}finally{try{i||null==r.return||r.return()}finally{if(s)throw a}}return o}}(e,t)||ue(e,t)||fe()}function se(e){return function(e){if(Array.isArray(e))return pe(e)}(e)||ce(e)||ue(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function le(e){if(Array.isArray(e))return e}function ce(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function ue(e,t){if(e){if("string"==typeof e)return pe(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?pe(e,t):void 0}}function pe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function fe(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function de(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=ue(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){s=!0,o=e},f:function(){try{i||null==r.return||r.return()}finally{if(s)throw o}}}}function ge(e,t){return e(t={exports:{}},t.exports),t.exports}var he=ge((function(e){var t=function(e){var t=Object.prototype,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",o=n.asyncIterator||"@@asyncIterator",i=n.toStringTag||"@@toStringTag";function s(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,r){return e[t]=r}}function l(e,t,r,n){var a=Object.create((t&&t.prototype instanceof p?t:p).prototype),o=new x(n||[]);return a._invoke=function(e,t,r){var n="suspendedStart";return function(a,o){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===a)throw o;return{value:void 0,done:!0}}for(r.method=a,r.arg=o;;){var i=r.delegate;if(i){var s=w(i,r);if(s){if(s===u)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var l=c(e,t,r);if("normal"===l.type){if(n=r.done?"completed":"suspendedYield",l.arg===u)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(n="completed",r.method="throw",r.arg=l.arg)}}}(e,r,o),a}function c(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=l;var u={};function p(){}function f(){}function d(){}var g={};s(g,a,(function(){return this}));var h=Object.getPrototypeOf,m=h&&h(h(k([])));m&&m!==t&&r.call(m,a)&&(g=m);var y=d.prototype=p.prototype=Object.create(g);function v(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){var n;this._invoke=function(a,o){function i(){return new t((function(n,i){!function n(a,o,i,s){var l=c(e[a],e,o);if("throw"!==l.type){var u=l.arg,p=u.value;return p&&"object"==typeof p&&r.call(p,"__await")?t.resolve(p.__await).then((function(e){n("next",e,i,s)}),(function(e){n("throw",e,i,s)})):t.resolve(p).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,s)}))}s(l.arg)}(a,o,n,i)}))}return n=n?n.then(i,i):i()}}function w(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,w(e,t),"throw"===t.method))return u;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var n=c(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,u;var a=n.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,u):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,u)}function C(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function x(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(C,this),this.reset(!0)}function k(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:_}}function _(){return{value:void 0,done:!0}}return f.prototype=d,s(y,"constructor",d),s(d,"constructor",f),f.displayName=s(d,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===f||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,d):(e.__proto__=d,s(e,i,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},v(b.prototype),s(b.prototype,o,(function(){return this})),e.AsyncIterator=b,e.async=function(t,r,n,a,o){void 0===o&&(o=Promise);var i=new b(l(t,r,n,a),o);return e.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},v(y),s(y,i,"Generator"),s(y,a,(function(){return this})),s(y,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},e.values=k,x.prototype={constructor:x,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(S),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],i=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var s=r.call(o,"catchLoc"),l=r.call(o,"finallyLoc");if(s&&l){if(this.prev<o.catchLoc)return n(o.catchLoc,!0);if(this.prev<o.finallyLoc)return n(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return n(o.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return n(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,u):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),u},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var a=n.arg;S(r)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:k(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),u}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}})),me=he.mark(Ce);function ye(e){return(e||"").split(/([MIDNSHPX=])/)}function ve(e,t,r){for(var n=0,a=0,o=[],i=0;i<e.length-1;i+=2){var s=+e[i],l=e[i+1];if("M"!==l&&"="!==l&&"E"!==l||(a+=s),"I"===l)o.push({start:n,type:"insertion",base:"".concat(s),length:0}),a+=s;else if("D"===l)o.push({start:n,type:"deletion",base:"*",length:s});else if("N"===l)o.push({start:n,type:"skip",base:"N",length:s});else if("X"===l){for(var c=t.slice(a,a+s),u=(null==r?void 0:r.slice(a,a+s))||[],p=0;p<s;p++)o.push({start:n+p,type:"mismatch",base:c[p],qual:u[p],length:1});a+=s}else"H"===l?o.push({start:n,type:"hardclip",base:"H".concat(s),cliplen:s,length:1}):"S"===l&&(o.push({start:n,type:"softclip",base:"S".concat(s),cliplen:s,length:1}),a+=s);"I"!==l&&"S"!==l&&"H"!==l&&(n+=s)}return o}function be(e,t,r,n,a){var o=[],i={start:0,base:"",length:0,type:"mismatch"},s=r.filter((function(e){return"skip"===e.type})),l=0,c=0,u=0,p=0;function f(){o.push(i),i={start:i.start+i.length,length:0,base:"",type:"mismatch"}}function d(e){for(var r=c,n=u,a=l;a<t.length&&n<=e;l=a+=2){var o=+t[a],i=t[a+1];"S"===i||"I"===i?r+=o:"D"===i||"P"===i||"N"===i?n+=o:"H"!==i&&(r+=o,n+=o)}return c=r,u=n,r-(n-e)}for(var g=e.match(/(\d+|\^[a-z]+|[a-z])/gi)||[],h=0;h<g.length;h++){var m=g[h],y=+m;if(Number.isNaN(y))if(m.startsWith("^"))i.length=m.length-1,i.base="*",i.type="deletion",i.seq=m.substring(1),f();else for(var v=0;v<m.length;v+=1){for(i.length=1;p<s.length;){var b=s[p];if(!(i.start>=b.start))break;i.start+=b.length,p++}var w=t?d(i.start):i.start;i.base=n?n.substr(w,1):"X";var C=null==a?void 0:a.slice(w,w+1)[0];C&&(i.qual=C),i.altbase=m,f()}else i.start+=y}return o}function we(e,t,r){var n=0,a=0,o=0;if(!e)return console.warn("no ref supplied to generateMD"),"";for(var i=ye(r),s="",l=0;l<i.length;l+=2){var c=+i[l],u=i[l+1];if("M"===u||"X"===u||"="===u){for(var p=0;p<c;p++)t[n+p].toLowerCase()!==e[a+p].toLowerCase()?(s+="".concat(o).concat(e[a+p].toUpperCase()),o=0):o++;n+=c,a+=c}else if("I"===u)n+=c;else if("D"===u){for(var f="",d=0;d<c;d++)f+=e[a+d].toUpperCase();s+="".concat(o,"^").concat(f),o=0,a+=c}else"N"===u?a+=c:"S"===u&&(n+=c)}return o>0&&(s+=o),s}function Ce(e,t){var r,n,a,o,i,s,l;return he.wrap((function(c){for(;;)switch(c.prev=c.next){case 0:r=0,n=0,a=0,o=0;case 4:if(!(o<t.length)){c.next=12;break}for(i=t[o];r<e.length&&n<i;r+=2)s=+e[r],"S"===(l=e[r+1])||"I"===l?n+=s:"D"===l||"N"===l?a+=s:"M"!==l&&"X"!==l&&"="!==l||(n+=s,a+=s);return c.next=9,t[o]-n+a;case 9:o++,c.next=4;break;case 12:case"end":return c.stop()}}),me)}function Se(e,t,n){var a=-1===n?r.revcom(t):t;return e.split(";").filter((function(e){return!!e})).map((function(e){var t,r=le(t=e.split(","))||ce(t)||ue(t)||fe(),o=r[0],i=r.slice(1),s=o.match(/([A-Z])([-+])([^,.?]+)([.?])?/);if(!s)throw new Error("bad format for MM tag");var l=ie(s,4),c=l[1],u=l[2],p=l[3].split(/(\d+|.)/).filter((function(e){return!!e}));return"-"===u?(console.warn("unsupported negative strand modifications"),{type:"unsupported",positions:[]}):p.map((function(e){var t=0;return{type:e,positions:i.map((function(e){return+e})).map((function(e){do{"N"!==c&&c!==a[t]||e--,t++}while(e>=0&&t<a.length);var r=t-1;return-1===n?a.length-1-r:r})).sort((function(e,t){return e-t}))}}))})).flat()}function xe(e){return e.split(";").filter((function(e){return!!e})).map((function(e){var t=ie(e.split(","),1)[0].match(/([A-Z])([-+])([^,]+)/);if(!t)throw new Error("bad format for MM tag");return ie(t,4)[3].split(/(\d+|.)/).filter((function(e){return!!e}))})).flat()}var ke={__proto__:null,parseCigar:ye,cigarToMismatches:ve,mdToMismatches:be,getTemplateCoord:function(e,t){for(var r=0,n=0,a=0;a<t.length&&n<=e;a+=2){var o=+t[a],i=t[a+1];"S"===i||"I"===i?r+=o:"D"===i||"P"===i?n+=o:"H"!==i&&(r+=o,n+=o)}return r-(n-e)},getMismatches:function(e,t,r,n){var a=[],o=[];e&&(o=ye(e),a=a.concat(ve(o,r,n))),t&&(a=a.concat(be(t,o,a,r,n)));var i={};return a.filter((function(e){var t="".concat(e.type,",").concat(e.start,",").concat(e.length),r=i[t];return i[t]=!0,!r}))},generateMD:we,getNextRefPos:Ce,getModificationPositions:Se,getModificationTypes:xe},_e=function(e){return o.types.late((function(){return a.ConfigurationSchema("CramAdapter",{fetchSizeLimit:{type:"number",defaultValue:3e6},cramLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.cram",locationType:"UriLocation"}},craiLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.cram.crai",locationType:"UriLocation"}},sequenceAdapter:e.pluggableConfigSchemaType("adapter")},{explicitlyTyped:!0})}))},Ee=function(e){e.addAdapterType((function(){return new n({name:"CramAdapter",configSchema:e.load(_e),getAdapterClass:function(){return Promise.resolve().then((function(){return Lt})).then((function(e){return e.default}))}})}))},Te=o.types.late((function(){return a.ConfigurationSchema("BamAdapter",{bamLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bam",locationType:"UriLocation"}},index:a.ConfigurationSchema("BamIndex",{indexType:{model:o.types.enumeration("IndexType",["BAI","CSI"]),type:"stringEnum",defaultValue:"BAI"},location:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bam.bai",locationType:"UriLocation"}}}),chunkSizeLimit:{type:"number",defaultValue:1e8},fetchSizeLimit:{type:"number",defaultValue:5e6},sequenceAdapter:{type:"frozen",defaultValue:null}},{explicitlyTyped:!0})})),Pe=function(e){e.addAdapterType((function(){return new n({name:"BamAdapter",configSchema:Te,getAdapterClass:function(){return Promise.resolve().then((function(){return qt})).then((function(e){return e.default}))}})}))},Re=o.types.late((function(){return a.ConfigurationSchema("HtsgetBamAdapter",{htsgetBase:{type:"string",defaultValue:""},htsgetTrackId:{type:"string",defaultValue:""},sequenceAdapter:{type:"frozen",defaultValue:null}},{explicitlyTyped:!0})})),Me=function(e){e.addAdapterType((function(){return new n({name:"HtsgetBamAdapter",adapterMetadata:{category:null,hiddenFromGUI:!0,displayName:null,description:null},configSchema:Re,getAdapterClass:function(){return Promise.resolve().then((function(){return jt})).then((function(e){return e.default}))}})}))},Ne=function(e){return o.types.late((function(){return a.ConfigurationSchema("SNPCoverageAdapter",{subadapter:e.pluggableConfigSchemaType("adapter")},{explicitlyTyped:!0})}))};function Ae(e,t){var r=e.get("tags");return r?r[t]:e.get(t)}function De(e,t,r){return Ae(e,t)||Ae(e,r)}var Ie={fr:{F1R2:"LR",F2R1:"LR",F1F2:"LL",F2F1:"LL",R1R2:"RR",R2R1:"RR",R1F2:"RL",R2F1:"RL"},rf:{R1F2:"LR",R2F1:"LR",R1R2:"LL",R2R1:"LL",F1F2:"RR",F2F1:"RR",F1R2:"RL",F2R1:"RL"},ff:{F2F1:"LR",R1R2:"LR",F2R1:"LL",R1F2:"LL",R2F1:"RR",F1R2:"RR",R2R1:"RL",F1F2:"RL"}};function Be(e){return Le(e.type)?1:e.length}function Le(e){return"softclip"===e||"hardclip"===e||"insertion"===e}function Fe(e,t,r,n){e[r][n]||(e[r][n]={total:0,strands:{"-1":0,0:0,1:0}}),e[r][n].total++,e[r][n].strands[t]++}function Oe(e,t,r,n){e[r][n]||(e[r][n]={total:0,strands:{"-1":0,0:0,1:0}}),e[r][n].total--,e[r][n].strands[t]--}var qe=function(e){ee(p,i.BaseFeatureDataAdapter);var t,r,n,o,u=ne(p);function p(){return Z(this,p),u.apply(this,arguments)}return Y(p,[{key:"configure",value:(o=Q(he.mark((function e(){var t,r,n,o,i,s;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=a.readConfObject(this.config,"subadapter"),o=a.readConfObject(this.config,["subadapter","sequenceAdapter"]),e.next=4,null===(t=this.getSubAdapter)||void 0===t?void 0:t.call(this,n);case 4:if(i=e.sent,!o){e.next=11;break}return e.next=8,null===(r=this.getSubAdapter)||void 0===r?void 0:r.call(this,o);case 8:e.t0=e.sent,e.next=12;break;case 11:e.t0=void 0;case 12:if(s=e.t0,i){e.next=15;break}throw new Error("Failed to get subadapter");case 15:return e.abrupt("return",{subadapter:i.dataAdapter,sequenceAdapter:null==s?void 0:s.dataAdapter});case 16:case"end":return e.stop()}}),e,this)}))),function(){return o.apply(this,arguments)})},{key:"getFeatures",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l.ObservableCreate(function(){var n=Q(he.mark((function n(a){var o,i,l,u;return he.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.configure();case 2:return o=n.sent.subadapter.getFeatures(e,r),r.filters&&(i=r.filters,o=o.pipe(c.filter((function(e){return i.passes(e,r)})))),n.next=8,t.generateCoverageBins(o,e,r);case 8:u=(l=n.sent).skipmap,l.bins.forEach((function(r,n){r.total&&a.next(new s({id:"".concat(t.id,"-").concat(e.start,"-").concat(n),data:{score:r.total,snpinfo:r,start:e.start+n,end:e.start+n+1,refName:e.refName}}))})),Object.entries(u).forEach((function(e){var t=ie(e,2),r=t[1];a.next(new s({id:t[0],data:{type:"skip",start:r.start,end:r.end,strand:r.strand,score:r.score,xs:r.xs}}))})),a.complete();case 14:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}(),r.signal)}},{key:"estimateRegionsStats",value:(n=Q(he.mark((function e(t,r){return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.configure();case 2:return e.abrupt("return",e.sent.subadapter.estimateRegionsStats(t,r));case 5:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"getRefNames",value:(r=Q(he.mark((function e(){var t,r=arguments;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=r.length>0&&void 0!==r[0]?r[0]:{},e.next=3,this.configure();case 3:return e.abrupt("return",e.sent.subadapter.getRefNames(t));case 6:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"freeResources",value:function(){}},{key:"generateCoverageBins",value:(t=Q(he.mark((function e(t,r,n){var a,o,i,s,l,u,p,f,d,g,h,m;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=n.colorBy,e.next=3,this.configure();case 3:if(o=e.sent.sequenceAdapter,i=r.originalRefName,s=r.refName,l=r.start,u=r.end,p=Math.ceil(r.end-r.start),f={},d=Array.from({length:p},(function(){return{total:0,lowqual:{},cov:{},delskips:{},noncov:{},ref:{}}})),!o){e.next=16;break}return e.next=12,o.getFeatures({refName:i||s,start:l,end:u+1,assemblyName:"na"}).pipe(c.toArray()).toPromise();case 12:h=ie(e.sent,1),g=null==(m=h[0])?void 0:m.get("seq");case 16:return e.next=18,t.pipe(c.reduce((function(e,t){for(var n=t.get("CIGAR"),o=t.get("start"),i=t.get("end"),s=t.get("strand"),l=ye(n),c=o;c<i;c++){var u=c-r.start;if(u>=0&&u<e.length){var p=e[u];p.total++,Fe(p,s,"ref","ref")}}if("modifications"===(null==a?void 0:a.type)){var d=t.get("seq"),h=De(t,"MM","Mm")||"",m=De(t,"ML","Ml")||[],y=m?("string"==typeof m?m.split(",").map((function(e){return+e})):m).map((function(e){return e/255})):De(t,"MP","Mp").split("").map((function(e){return e.charCodeAt(0)-33})).map((function(e){return Math.min(1,e/50)})),v=0;Se(h,d,s).forEach((function(t){var n,a=t.positions,c="mod_".concat(t.type),u=de(Ce(l,a));try{for(u.s();!(n=u.n()).done;){var p=n.value,f=p+o-r.start;f>=0&&f<e.length&&p+o<i&&Fe(e[f],s,y[v]>.5?"cov":"lowqual",c),v++}}catch(e){u.e(e)}finally{u.f()}}))}else if("methylation"===(null==a?void 0:a.type)){if(!g)throw new Error("no region sequence detected, need sequenceAdapter configuration");var b=t.get("seq"),w=De(t,"MM","Mm")||"",C=new Array(r.end-r.start).fill(0);Se(w,b,s).forEach((function(e){if("m"===e.type){var t,n=de(Ce(l,e.positions));try{for(n.s();!(t=n.n()).done;){var a=t.value+o-r.start;a>=0&&a<C.length&&(C[a]=1)}}catch(e){n.e(e)}finally{n.f()}}}));for(var S=o;S<i;S++){var x=S-r.start;if(x>=0&&x<e.length-1){var k=g[x].toLowerCase(),_=g[x+1].toLowerCase(),E=e[x],T=e[x+1];"c"===k&&"g"===_&&(C[x]||C[x+1]?(Fe(E,s,"cov","meth"),Fe(T,s,"cov","meth"),Oe(E,s,"ref","ref"),Oe(T,s,"ref","ref")):(Fe(E,s,"cov","unmeth"),Fe(T,s,"cov","unmeth"),Oe(E,s,"ref","ref"),Oe(T,s,"ref","ref")))}}}else{var P=t.get("mismatches");if(P){for(var R=0;R<P.length;R++)for(var M=P[R],N=o+M.start,A=N;A<N+Be(M);A++){var D=A-r.start;if(D>=0&&D<e.length){var I=e[D],B=M.base,L=M.type,F=Le(L);F?Fe(I,s,"noncov",L):Oe(I,s,"ref","ref"),"deletion"===L||"skip"===L?(Fe(I,s,"delskips",L),I.total--):F||Fe(I,s,"cov",B)}}P.filter((function(e){return"skip"===e.type})).forEach((function(e){var r=t.get("start")+e.start,n=r,a=r+e.length,o=t.get("strand"),i="".concat(n,"_").concat(a,"_").concat(o);f[i]?f[i].score++:f[i]={feature:t,start:n,end:a,strand:o,xs:t.get("xs")||t.get("ts")||t.get("tags").XS||t.get("tags").TS,score:1}}))}}return e}),d)).toPromise();case 18:return e.abrupt("return",{bins:e.sent,skipmap:f});case 20:case"end":return e.stop()}}),e,this)}))),function(e,r,n){return t.apply(this,arguments)})}]),p}(),je=qe.capabilities,He={__proto__:null,default:qe,capabilities:je},Ve=function(e){e.addAdapterType((function(){return new n({name:"SNPCoverageAdapter",adapterMetadata:{category:null,displayName:null,hiddenFromGUI:!0,description:null},getAdapterClass:function(){return Promise.resolve().then((function(){return He})).then((function(e){return e.default}))},configSchema:Ne(e),adapterCapabilities:je})}))},ze=a.ConfigurationSchema("SNPCoverageRenderer",{clipColor:{type:"color",description:"the color of the clipping marker",defaultValue:"red"},indicatorThreshold:{type:"number",description:"the proportion of reads containing a insertion/clip indicator",defaultValue:.3},drawArcs:{type:"boolean",description:"Draw sashimi-style arcs for intron features",defaultValue:!0},drawInterbaseCounts:{type:"boolean",description:'draw count "upsidedown histogram" of the interbase events that don\'t contribute to the coverage count so are not drawn in the normal histogram',defaultValue:!0},drawIndicators:{type:"boolean",description:"draw a triangular indicator where an event has been detected",defaultValue:!0}},{explicitlyTyped:!0}),Ge=function(e){ee(n,p.WiggleBaseRenderer);var t=ne(n);function n(){return Z(this,n),t.apply(this,arguments)}return Y(n,[{key:"draw",value:function(e,t){var n=t.features,o=t.regions,i=t.bpPerPx,s=t.displayCrossHatches,l=t.modificationTagMap,c=t.scaleOpts,f=t.height,d=t.config,g=t.ticks.values,h=u.createJBrowseTheme(t.theme),m=ie(o,1)[0],y=(m.end-m.start)/i,v=p.YSCALEBAR_LABEL_OFFSET,b=f-2*v,w=J(J({},c),{},{range:[0,b]}),C=p.getScale(w),S=p.getScale(J(J({},w),{},{scaleType:"linear"})),x=p.getOrigin(c.scaleType),k=p.getOrigin("linear"),_=a.readConfObject(d,"indicatorThreshold"),E=a.readConfObject(d,"drawInterbaseCounts"),T=a.readConfObject(d,"drawArcs"),P=a.readConfObject(d,"drawIndicators"),R=function(e){return b-(C(e)||0)+v},M=function(e){return b-(S(e)||0)+v},N=function(e){return M(k)-M(e)},A={A:h.palette.bases.A.main,C:h.palette.bases.C.main,G:h.palette.bases.G.main,T:h.palette.bases.T.main,total:"lightgrey",insertion:"purple",softclip:"blue",hardclip:"red",meth:"red",unmeth:"blue",ref:"lightgrey"},D=se(n.values()),I=D.filter((function(e){return"skip"!==e.get("type")})),B=D.filter((function(e){return"skip"===e.get("type")}));e.fillStyle=A.total,I.forEach((function(t){var n,a=ie(r.featureSpanPx(t,m,i),2),o=a[0],s=a[1]-o+.3,l=t.get("score");e.fillRect(o,R(l),s,(n=l,R(x)-R(n)))})),e.fillStyle="grey",e.beginPath(),e.lineTo(0,0),e.moveTo(0,y),e.stroke(),I.forEach((function(t){var n=ie(r.featureSpanPx(t,m,i),2),a=n[0],o=n[1],s=t.get("snpinfo"),c=Math.max(o-a+.3,1),u=s.total;Object.entries(s.cov).sort((function(e,t){var r=ie(e,1)[0],n=ie(t,1)[0];return r<n?-1:r>n?1:0})).reduce((function(t,r){var n=ie(r,2),o=n[0],i=n[1].total;return e.fillStyle=A[o]||l[o.replace("mod_","")]||"red",e.fillRect(a,M(i+t),c,N(i)),t+i}),0);var p=Object.entries(s.noncov);if(E&&p.reduce((function(t,r){var n=ie(r,2),o=n[1].total;return e.fillStyle=A[n[0]],e.fillRect(a-.6,4.5+N(t),1.2,N(o)),t+o}),0),P){var f=0,d=0,g="";p.forEach((function(e){var t=ie(e,2),r=t[1].total;f+=r,r>d&&(d=r,g=t[0])})),f>u*_&&u>7&&(e.fillStyle=A[g],e.beginPath(),e.moveTo(a-3,0),e.lineTo(a+3,0),e.lineTo(a,4.5),e.fill())}})),e.globalAlpha=.7,T&&B.forEach((function(t){var n=ie(r.bpSpanPx(t.get("start"),t.get("end"),m,i),2),a=n[0],o=n[1];e.beginPath();var s=t.get("strand"),l=t.get("xs"),c="rgb(255,200,200)",u="rgb(200,200,255)";e.strokeStyle="+"===l?c:"-"===l?u:1===s?c:-1===s?u:"rgb(200,200,200)",e.lineWidth=Math.log(t.get("score")+1),e.moveTo(a,b-2*v),e.bezierCurveTo(a,0,o,0,o,b-2*v),e.stroke()})),s&&(e.lineWidth=1,e.strokeStyle="rgba(140,140,140,0.8)",g.forEach((function(t){e.beginPath(),e.moveTo(0,Math.round(R(t))),e.lineTo(y,Math.round(R(t))),e.stroke()})))}}]),n}(),We=a.ConfigurationSchema("SNPCoverageRenderer",{},{baseConfiguration:ze,explicitlyTyped:!0});function Ue(e){e.addRendererType((function(){return new Ge({name:"SNPCoverageRenderer",ReactComponent:p.WiggleRendering,configSchema:We,pluginManager:e})}))}var Je=function(e){ee(r,f.LayoutSession);var t=ne(r);function r(e){var n;return Z(this,r),(n=t.call(this,e)).showSoftClip=!1,n.config=e.config,n}return Y(r,[{key:"cachedLayoutIsValid",value:function(e){return oe(te(r.prototype),"cachedLayoutIsValid",this).call(this,e)&&this.showSoftClip===e.showSoftClip&&v(this.sortedBy,e.sortedBy)}},{key:"layout",get:function(){return this.cachedLayout&&this.cachedLayoutIsValid(this.cachedLayout)||(this.cachedLayout={layout:this.makeLayout(),config:a.readConfObject(this.config),filters:this.filters,sortedBy:this.sortedBy,showSoftClip:this.showSoftClip}),this.cachedLayout.layout}}]),r}();function Xe(e){return{A:e.palette.bases.A.main,C:e.palette.bases.C.main,G:e.palette.bases.G.main,T:e.palette.bases.T.main,deletion:"#808080"}}var Qe={color_fwd_strand_not_proper:"#ECC8C8",color_rev_strand_not_proper:"#BEBED8",color_fwd_strand:"#EC8B8B",color_rev_strand:"#8F8FD8",color_fwd_missing_mate:"#D11919",color_rev_missing_mate:"#1919D1",color_fwd_diff_chr:"#000",color_rev_diff_chr:"#969696",color_pair_lr:"#c8c8c8",color_pair_rr:"navy",color_pair_rl:"teal",color_pair_ll:"green",color_nostrand:"#c8c8c8",color_interchrom:"orange",color_longinsert:"red",color_shortinsert:"pink"};function Ze(e){return!["methylation","modifications"].includes(e||"")}var $e=function(e){ee(i,d);var t,n,o=ne(i);function i(){var e;return Z(this,i),(e=o.apply(this,arguments)).supportsSVG=!0,e}return Y(i,[{key:"getCharWidthHeight",value:function(e){return{charWidth:e.measureText("A").width,charHeight:e.measureText("M").width}}},{key:"layoutFeature",value:function(e){var t=e.feature,n=e.layout,a=e.bpPerPx,o=e.region,i=e.heightPx,s=e.displayMode,l=0,c=0;if(e.showSoftClip){var u=t.get("mismatches");if(t.get("seq"))for(var p=0;p<u.length;p+=1){var f=u[p],d=f.cliplen,g=void 0===d?0:d;"softclip"===f.type&&(0===f.start?l=g:c=g)}}var h=ie(r.bpSpanPx(t.get("start")-l,t.get("end")+c,o,a),2),m=h[0],y=h[1];if("compact"===s&&(i/=3),t.get("refName")!==o.refName)throw new Error("feature ".concat(t.id()," is not on the current region's reference sequence ").concat(o.refName));var v=n.addRect(t.id(),t.get("start")-l,t.get("end")+c,i);return null===v?null:{feature:t,leftPx:m,rightPx:y,topPx:"collapse"===s?0:v,heightPx:i}}},{key:"getExpandedRegion",value:function(e,t){var r=t.showSoftClip,n=a.readConfObject(t.config,"maxClippingSize"),o=e.start,i=e.end,s=Math.max(i-o,r?Math.round(n):0);return J(J({},e),{},{start:Math.floor(Math.max(o-s,0)),end:Math.ceil(i+s)})}},{key:"colorByOrientation",value:function(e,t){return Qe[this.getOrientation(e,t)||"color_nostrand"]}},{key:"getOrientation",value:function(e,t){var r=a.readConfObject(t,"orientationType");return{LR:"color_pair_lr",RR:"color_pair_rr",RL:"color_pair_rl",LL:"color_pair_ll"}[Ie[r][e.get("pair_orientation")]]}},{key:"colorByInsertSize",value:function(e,t){return e.get("is_paired")&&e.get("seq_id")!==e.get("next_seq_id")?"#555":"hsl(".concat(Math.abs(e.get("template_length"))/10,",50%,50%)")}},{key:"colorByStranded",value:function(e,t){var r=e.get("flags"),n=e.get("strand");if(1&r){var a=64&r?-1:1;return 2&r?n*a==1?"color_rev_strand":"color_fwd_strand":e.get("multi_segment_next_segment_unmapped")?n*a==1?"color_rev_missing_mate":"color_fwd_missing_mate":e.get("seq_id")===e.get("next_seq_id")?n*a==1?"color_rev_strand_not_proper":"color_fwd_strand_not_proper":1===n?"color_fwd_diff_chr":"color_rev_diff_chr"}return 1===n?"color_fwd_strand":"color_rev_strand"}},{key:"colorByPerBaseQuality",value:function(e,t,n,a,o){for(var i=t.feature,s=t.topPx,l=t.heightPx,c=(i.get("qual")||"").split(" ").map((function(e){return+e})),u=ye(i.get("CIGAR")),p=1/o,f=i.get("start"),d=0,g=0,h=0;h<c.length;d+=2,h++){var m=+u[d],y=u[d+1];if("S"===y||"I"===y)h+=m;else if("D"===y||"N"===y)g+=m;else if("M"===y||"X"===y||"="===y){for(var v=0;v<m;v++){var b=c[h+v];e.fillStyle="hsl(".concat(255===b?150:1.5*b,",55%,50%)");var w=ie(r.bpSpanPx(f+g+v,f+g+v+1,a,o),1);e.fillRect(w[0],s,p+.5,l)}g+=m}}}},{key:"colorByModifications",value:function(e,t,n,a,o,i){var s=t.feature,l=t.topPx,c=t.heightPx,u=i.modificationTagMap,p=void 0===u?{}:u,f=De(s,"MM","Mm")||"",d=De(s,"ML","Ml")||[],h=d?("string"==typeof d?d.split(",").map((function(e){return+e})):d).map((function(e){return e/255})):De(s,"MP","Mp").split("").map((function(e){return e.charCodeAt(0)-33})).map((function(e){return Math.min(1,e/50)})),m=s.get("CIGAR"),y=s.get("start"),v=s.get("end"),b=s.get("seq"),w=s.get("strand"),C=ye(m),S=Se(f,b,w),x=0;S.forEach((function(t){var n,i=t.positions,s=g(p[t.type]||"black"),u=de(Ce(C,i));try{for(u.s();!(n=u.n()).done;){var f=n.value;if(f>=0&&y+f<v){var d=ie(r.bpSpanPx(y+f,y+f+1,a,o),2),m=d[0],b=d[1];e.fillStyle=s.alpha(h[x]+.1).hsl().string(),e.fillRect(m,l,b-m+.5,c)}x++}}catch(e){u.e(e)}finally{u.f()}}))}},{key:"colorByMethylation",value:function(e,t,n,a,o,i){var s=i.regionSequence,l=t.feature,c=t.topPx,u=t.heightPx,p=De(l,"MM","Mm")||"";if(!s)throw new Error("region sequence required for methylation");var f=l.get("CIGAR"),d=l.get("start"),g=l.get("end"),h=l.get("seq"),m=l.get("strand"),y=ye(f),v=a.start,b=new Array(a.end-v).fill(0);Se(p,h,m).forEach((function(e){var t=e.positions;if("m"===e.type&&t){var r,n=de(Ce(y,t));try{for(n.s();!(r=n.n()).done;){var a=r.value+d-v;a>=0&&a<b.length&&(b[a]=1)}}catch(e){n.e(e)}finally{n.f()}}}));for(var w=d;w<g;w++){var C=w-v;if(C>=0&&C<b.length){var S=s[C].toLowerCase(),x=s[C+1].toLowerCase();if(o>2){if("c"===S&&"g"===x){var k=v+C,_=ie(r.bpSpanPx(k,k+2,a,o),2),E=_[0],T=_[1];e.fillStyle=b[C]||b[C+1]?"red":"blue",e.fillRect(E,c,T-E+.5,u)}}else if("c"===S&&"g"===x){var P=v+C,R=ie(r.bpSpanPx(P,P+1,a,o),2),M=R[0],N=R[1];e.fillStyle=b[C]?"red":"blue",e.fillRect(M,c,N-M+.5,u);var A=ie(r.bpSpanPx(P+1,P+2,a,o),2),D=A[0],I=A[1];e.fillStyle=b[C+1]?"red":"blue",e.fillRect(D,c,I-D+.5,u)}}}}},{key:"drawRect",value:function(e,t,n){var a=n.bpPerPx,o=t.heightPx,i=t.topPx,s=t.feature,l=ie(n.regions,1)[0],c=ie(r.bpSpanPx(s.get("start"),s.get("end"),l,a),2),u=c[0],p=c[1],f=l.reversed?-1:1,d=s.get("strand")*f;a<10?-1===d?(e.beginPath(),e.moveTo(u-5,i+o/2),e.lineTo(u,i+o),e.lineTo(p,i+o),e.lineTo(p,i),e.lineTo(u,i),e.closePath(),e.fill()):(e.beginPath(),e.moveTo(u,i),e.lineTo(u,i+o),e.lineTo(p,i+o),e.lineTo(p+5,i+o/2),e.lineTo(p,i),e.closePath(),e.fill()):e.fillRect(u,i,p-u,o)}},{key:"drawAlignmentRect",value:function(e,t,r){var n=r.defaultColor,o=r.config,i=r.bpPerPx,s=r.colorTagMap,l=void 0===s?{}:s,c=r.colorBy||{},u=c.tag,p=void 0===u?"":u,f=c.type,d=void 0===f?"":f,g=t.feature,h=r.regions[0];switch(d){case"insertSize":e.fillStyle=this.colorByInsertSize(g,o);break;case"strand":e.fillStyle=-1===g.get("strand")?"#8F8FD8":"#EC8B8B";break;case"mappingQuality":e.fillStyle="hsl(".concat(g.get("mq"),",50%,50%)");break;case"pairOrientation":e.fillStyle=this.colorByOrientation(g,o);break;case"stranded":e.fillStyle=Qe[this.colorByStranded(g,o)];break;case"xs":case"tag":var m=g.get("tags"),y=m?m[p]:g.get(p);if("XS"!==p&&"TS"!==p||(e.fillStyle=Qe[{"-":"color_rev_strand","+":"color_fwd_strand"}[y]||"color_nostrand"]),"ts"===p){var v={"-":-1===g.get("strand")?"color_fwd_strand":"color_rev_strand","+":-1===g.get("strand")?"color_rev_strand":"color_fwd_strand"};e.fillStyle=Qe[v[y]||"color_nostrand"]}else e.fillStyle=l[y]||Qe.color_nostrand;break;case"insertSizeAndPairOrientation":break;case"normal":default:e.fillStyle=n?"#c8c8c8":a.readConfObject(o,"color",{feature:g})}switch(this.drawRect(e,t,r),d){case"perBaseQuality":this.colorByPerBaseQuality(e,t,o,h,i);break;case"modifications":this.colorByModifications(e,t,o,h,i,r);break;case"methylation":this.colorByMethylation(e,t,o,h,i,r)}}},{key:"drawMismatches",value:function(e,t,n,a,o,i){var s=i.minSubfeatureWidth,l=i.largeInsertionIndicatorScale,c=i.mismatchAlpha,u=i.drawSNPs,p=void 0===u||u,f=i.drawIndels,d=void 0===f||f,h=i.charWidth,m=i.charHeight,y=n.bpPerPx,v=t.heightPx,b=t.topPx,w=t.feature,C=ie(n.regions,1)[0],S=w.get("start"),x=Math.min(1/y,2),k=Math.max(s,x),_=w.get("mismatches"),E=m-2;function T(e,t){var r=e;return c&&void 0!==t.qual&&(r=g(e).alpha(Math.min(1,t.qual/50)).hsl().string()),r}for(var P=0;P<_.length;P+=1){var R=_[P],M=S+R.start,N=R.base,A=ie(r.bpSpanPx(M,M+R.length,C,y),2),D=A[0],I=A[1],B=Math.max(s,Math.abs(D-I));if("mismatch"===R.type&&p){var L=o[R.base]||"#888";e.fillStyle=T(L,R),e.fillRect(D,b,B,v),B>=h&&v>=E&&(e.fillStyle=T(a.palette.getContrastText(L),R),e.fillText(N,D+(B-h)/2+1,b+v))}else if("deletion"===R.type&&d){var F=o.deletion;e.fillStyle=F,e.fillRect(D,b,B,v);var O="".concat(R.length),q=e.measureText(O);B>=q.width&&v>=E&&(e.fillStyle=a.palette.getContrastText(F),e.fillText(O,D+(I-D)/2-q.width/2,b+v))}else if("insertion"===R.type&&d){e.fillStyle="purple";var j=D-1;(+R.base||R.length)<10&&(e.fillRect(j,b,k,v),1/y>=h&&(e.fillRect(j-k,b,3*k,1),e.fillRect(j-k,b+v-1,3*k,1)),1/y>=h&&v>=E&&e.fillText("(".concat(R.base,")"),D+2,b+v))}else if("hardclip"===R.type||"softclip"===R.type){e.fillStyle="hardclip"===R.type?"red":"blue";var H=D-1;e.fillRect(H,b+1,k,v-2),e.fillRect(H-k,b,3*k,1),e.fillRect(H-k,b+v-1,3*k,1),B>=h&&v>=E&&e.fillText("(".concat(R.base,")"),D+2,b+v)}else"skip"===R.type&&(D+B>0&&e.clearRect(D,b,B-(y>10?1.5:0),v),e.fillStyle="#333",e.fillRect(D,b+v/2,B,2))}if(d)for(var V=0;V<_.length;V+=1){var z=_[V],G=S+z.start,W=ie(r.bpSpanPx(G,G+z.length,C,y),1)[0],U=+z.base||z.length,J="".concat(U);if("insertion"===z.type&&U>=10)if(y>l)e.fillStyle="purple",e.fillRect(W-1,b,2,v);else if(v>m){var X=e.measureText(J);e.fillStyle="purple",e.fillRect(W-X.width/2-5,b,X.width+10,v),e.fillStyle="white",e.fillText(J,W-X.width/2,b+v)}else e.fillStyle="purple",e.fillRect(W-2,b,4,v)}}},{key:"drawSoftClipping",value:function(e,t,n,o,i){var s=t.feature,l=t.topPx,c=t.heightPx,u=n.bpPerPx,p=ie(n.regions,1)[0],f=a.readConfObject(o,"minSubfeatureWidth"),d=s.get("mismatches"),g=s.get("seq"),h=this.getCharWidthHeight(e),m=h.charWidth,y=h.charHeight,v={A:i.palette.bases.A.main,C:i.palette.bases.C.main,G:i.palette.bases.G.main,T:i.palette.bases.T.main,deletion:"#808080"};g&&d.filter((function(e){return"softclip"===e.type})).forEach((function(t){for(var n=t.cliplen||0,a=0===t.start?s.get("start")-n:s.get("start")+t.start,o=0;o<n;o+=1){var d=g.charAt(o+t.start);if(!d)return;var h=ie(r.bpSpanPx(a+o,a+o+1,p,u),2),b=h[0],w=Math.max(f,Math.abs(b-h[1])),C=v[d]||"#000000";e.fillStyle=C,e.fillRect(b,l,w,c),w>=m&&c>=y-5&&(e.fillStyle=i.palette.getContrastText(C),e.fillText(d,b+(w-m)/2+1,l+c))}}))}},{key:"makeImageData",value:(n=Q(he.mark((function e(t,r,n){var o,i,s,l,c,p,f,d,g,h,m,y,v,b,w=this;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=n.layout,s=n.showSoftClip,l=n.colorBy,c=n.theme,p=a.readConfObject(i=n.config,"mismatchAlpha"),f=a.readConfObject(i,"minSubfeatureWidth"),d=a.readConfObject(i,"largeInsertionIndicatorScale"),g="#f0f"===a.readConfObject(i,"color"),h=u.createJBrowseTheme(c),m=Xe(h),o){e.next=9;break}throw new Error("layout required");case 9:if(o.addRect){e.next=11;break}throw new Error("invalid layout object");case 11:t.font="bold 10px Courier New,monospace",y=this.getCharWidthHeight(t),v=y.charWidth,b=y.charHeight,r.forEach((function(e){null!==e&&(w.drawAlignmentRect(t,e,J(J({},n),{},{defaultColor:g})),w.drawMismatches(t,e,n,h,m,{mismatchAlpha:p,drawSNPs:Ze(null==l?void 0:l.type),drawIndels:Ze(null==l?void 0:l.type),largeInsertionIndicatorScale:d,minSubfeatureWidth:f,charWidth:v,charHeight:b}),s&&w.drawSoftClipping(t,e,n,i,h))}));case 14:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"layoutFeats",value:function(e){var t=this,n=e.layout,o=e.features,i=e.sortedBy,s=e.config,l=e.bpPerPx,c=e.showSoftClip,u=ie(e.regions,1)[0];if(!n)throw new Error("layout required");if(!n.addRect)throw new Error("invalid layout object");var p=null!=i&&i.type&&u.start===i.pos?function(e,t){var r=Array.from(e.values()),n=[],a=[],o=t.pos,i=t.type;r.forEach((function(e){var t=e,r=t.get("start"),i=t.get("end");y.doesIntersect2(o-1,o,r,i)?n.push(e):a.push(e)}));var s=!!r.length&&r[0].get("tags");switch(i){case"Start location":n.sort((function(e,t){return e.get("start")-t.get("start")}));break;case"tag":var l=t.tag,c=function(e,t){return s?e.get("tags")[t]:e.get(t)},u=n[0]&&"string"==typeof c(n[0],l);n.sort(u?function(e,t){return c(t,l).localeCompare(c(e,l))}:function(e,t){return(c(t,l)||0)-(c(e,l)||0)});break;case"Base pair":var p=[];n.forEach((function(e){e.get("mismatches").forEach((function(t){var r=e.get("start")+t.start+1;o>=r&&o<r+("insertion"===t.type||"softclip"===t.type?0:t.length)&&p.push([e.id(),t])}))}));var f=new Map(p);n.sort((function(e,t){var r=f.get(e.id()),n=f.get(t.id()),a=n&&n.base.toUpperCase(),o=r&&r.base.toUpperCase();return a===o&&"*"===a?r.length-n.length:(a?a.charCodeAt(0):0)-(o?o.charCodeAt(0):0)}));break;case"Read strand":n.sort((function(e,t){return e.get("strand")<=t.get("strand")?1:-1}))}return new Map(n.concat(a).map((function(e){return[e.id(),e]})))}(o,i):o,f=a.readConfObject(s,"height"),d=a.readConfObject(s,"displayMode");return r.iterMap(p.values(),(function(e){return t.layoutFeature({feature:e,layout:n,bpPerPx:l,region:u,showSoftClip:c,heightPx:f,displayMode:d})}),p.size)}},{key:"render",value:(t=Q(he.mark((function e(t){var r,n,a,o,s,l,u,p,f,d,g,y,v,b,w,C,S,x,k,_=this;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.sessionId,n=t.bpPerPx,a=t.regions,o=t.adapterConfig.sequenceAdapter,e.next=4,this.getFeatures(t);case 4:if(s=e.sent,l=this.createLayoutInWorker(t),u=this.layoutFeats(J(J({},t),{},{features:s,layout:l})),p=ie(a,1),g=(f=p[0]).end,y=f.start,v=f.originalRefName,b=f.refName,!o){e.next=18;break}return e.next=12,m.getAdapter(this.pluginManager,r,o);case 12:return C=e.sent.dataAdapter,e.next=16,C.getFeatures(J(J({},f),{},{refName:v||b,end:f.end+1})).pipe(c.toArray()).toPromise();case 16:d=null===(w=e.sent[0])||void 0===w?void 0:w.get("seq");case 18:return S=(g-y)/n,x=Math.max(l.getTotalHeight(),1),e.next=22,h.renderToAbstractCanvas(S,x,t,(function(e){return _.makeImageData(e,u,J(J({},t),{},{layout:l,features:s,regionSequence:d}))}));case 22:return k=e.sent,e.next=25,oe(te(i.prototype),"render",this).call(this,J(J(J({},t),k),{},{features:s,layout:l,height:x,width:S}));case 25:return e.abrupt("return",J(J(J({},e.sent),k),{},{features:s,layout:l,height:x,width:S,maxHeightReached:l.maxHeightReached}));case 27:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"createSession",value:function(e){return new Je(e)}}]),i}();function Ye(e){var t=e.onMouseMove,n=e.blockKey,a=e.displayModel,o=e.width,i=e.height,s=e.bpPerPx,l=e.sortedBy,c=e.colorBy,p=a.selectedFeatureId,f=a.featureIdUnderMouse,d=a.contextMenuFeature,g=ie(e.regions,1)[0],h=w.useRef(null),m=ie(w.useState(!1),2),y=m[0],v=m[1],b=ie(w.useState(!1),2),S=b[0],x=b[1];function k(t,r){var n=e["onFeature".concat(t)],a=e["on".concat(t)];n&&f?n(r,f):a&&a(r,f)}w.useEffect((function(){var e,t,o=h.current;if(o){var i=o.getContext("2d");if(i){i.clearRect(0,0,o.width,o.height);var l=p?null===(e=a.getFeatureByID)||void 0===e?void 0:e.call(a,n,p):void 0;if(l){var c=ie(l,4),u=c[1],m=c[3],y=ie(r.bpSpanPx(c[0],c[2],g,s),2),v=y[0],b=y[1],w=Math.round(u),C=Math.round(m-u);i.shadowColor="#222266",i.shadowBlur=10,i.lineJoin="bevel",i.lineWidth=2,i.strokeStyle="#00b8ff",i.strokeRect(v-2,w-2,b-v+4,C+4),i.clearRect(v,w,b-v,C)}var S=f||(null==d?void 0:d.id()),x=S?null===(t=a.getFeatureByID)||void 0===t?void 0:t.call(a,n,S):void 0;if(x){var k=ie(x,4),_=k[1],E=k[3],T=ie(r.bpSpanPx(k[0],k[2],g,s),2),P=T[0],R=T[1],M=Math.round(_),N=Math.round(E-_);i.fillStyle="#0003",i.fillRect(P,M,R-P,N)}}}}),[s,g,n,p,a,f,d]);var _=Math.ceil(o);return C.createElement("div",{className:"PileupRendering","data-testid":"pileup-".concat(l||c?"".concat((null==l?void 0:l.type)||"").concat((null==c?void 0:c.type)||"").concat((null==c?void 0:c.tag)||""):"normal"),style:{position:"relative",width:_,height:i}},C.createElement(u.PrerenderedCanvas,Object.assign({},e,{style:{position:"absolute",left:0,top:0}})),C.createElement("canvas",{"data-testid":"pileup_overlay_canvas",width:_,height:i+100,style:{position:"absolute",left:0,top:0},className:"highlightOverlayCanvas",ref:h,onMouseDown:function(e){return function(e){v(!0),x(!1),k("MouseDown",e)}(e)},onMouseEnter:function(e){return function(e){k("MouseEnter",e)}(e)},onMouseOut:function(e){return function(e){k("MouseOut",e),k("MouseLeave",e)}(e)},onMouseOver:function(e){return function(e){k("MouseOver",e)}(e)},onMouseUp:function(e){return function(e){v(!1),k("MouseUp",e)}(e)},onMouseLeave:function(e){return function(e){k("MouseOut",e),k("MouseLeave",e)}(e)},onMouseMove:function(e){return function(e){y&&x(!0);var r=0,i=0;h.current&&(r=h.current.getBoundingClientRect().left,i=h.current.getBoundingClientRect().top),r=e.clientX-r;var l=a.getFeatureOverlapping(n,g.start+s*(g.reversed?o-r:r),i=e.clientY-i);t&&t(e,l)}(e)},onClick:function(e){return function(e){S||k("Click",e)}(e)},onContextMenu:function(e){return function(e){k("ContextMenu",e)}(e)},onFocus:function(){},onBlur:function(){}}))}var Ke=b.observer(Ye),et=a.ConfigurationSchema("PileupRenderer",{color:{type:"color",description:"the color of each feature in a pileup alignment",defaultValue:"#f0f",contextVariable:["feature"]},orientationType:{type:"stringEnum",model:o.types.enumeration("orientationType",["fr","rf","ff"]),defaultValue:"fr",description:'read sequencer orienation. fr is normal "reads pointing at each other ---\x3e <--- while some other sequencers can use other options'},displayMode:{type:"stringEnum",model:o.types.enumeration("displayMode",["normal","compact","collapse"]),description:"Alternative display modes",defaultValue:"normal"},minSubfeatureWidth:{type:"number",description:"the minimum width in px for a pileup mismatch feature. use for increasing mismatch marker widths when zoomed out to e.g. 1px or 0.5px",defaultValue:0},maxHeight:{type:"integer",description:"the maximum height to be used in a pileup rendering",defaultValue:1200},maxClippingSize:{type:"integer",description:"the max clip size to be used in a pileup rendering",defaultValue:1e4},height:{type:"number",description:"the height of each feature in a pileup alignment",defaultValue:7,contextVariable:["feature"]},noSpacing:{type:"boolean",description:"remove spacing between features",defaultValue:!1},largeInsertionIndicatorScale:{type:"number",description:"scale at which to draw the large insertion indicators (bp/pixel)",defaultValue:10},mismatchAlpha:{type:"boolean",defaultValue:!1,description:"Fade low quality mismatches"}},{explicitlyTyped:!0});function tt(e){e.addRendererType((function(){return new $e({name:"PileupRenderer",ReactComponent:Ke,configSchema:et,pluginManager:e})}))}var rt=function(e,t){return o.types.compose("LinearAlignmentsDisplay",k.BaseDisplay,o.types.model({PileupDisplay:o.types.maybe(e.getDisplayType("LinearPileupDisplay").stateModel),SNPCoverageDisplay:o.types.maybe(e.getDisplayType("LinearSNPCoverageDisplay").stateModel),snpCovHeight:45,type:o.types.literal("LinearAlignmentsDisplay"),configuration:a.ConfigurationReference(t),height:250,showCoverage:!0,showPileup:!0,userFeatureScreenDensity:o.types.maybe(o.types.number)})).volatile((function(){return{scrollTop:0}})).actions((function(e){return{toggleCoverage:function(){e.showCoverage=!e.showCoverage},togglePileup:function(){e.showPileup=!e.showPileup},setScrollTop:function(t){e.scrollTop=t},setSNPCoverageHeight:function(t){e.snpCovHeight=t}}})).views((function(e){var t=e.trackMenuItems;return{get pileupDisplayConfig(){var t=a.getConf(e,"pileupDisplay"),n=r.getContainingTrack(e);return J(J({},t),{},{type:"LinearPileupDisplay",name:"".concat(a.getConf(n,"name")," pileup"),displayId:"".concat(e.configuration.displayId,"_pileup_xyz")})},getFeatureByID:function(t,r){return e.PileupDisplay.getFeatureByID(t,r)},searchFeatureByID:function(t){return e.PileupDisplay.searchFeatureByID(t)},get features(){return e.PileupDisplay.features},get DisplayBlurb(){var t;return null===(t=e.PileupDisplay)||void 0===t?void 0:t.DisplayBlurb},get sortedBy(){return e.PileupDisplay.sortedBy},get sortedByPosition(){return e.PileupDisplay.sortedByPosition},get sortedByRefName(){return e.PileupDisplay.sortedByRefName},get snpCoverageDisplayConfig(){var t=a.getConf(e,"snpCoverageDisplay"),n=r.getContainingTrack(e);return J(J({},t),{},{type:"LinearSNPCoverageDisplay",name:"".concat(a.getConf(n,"name")," snp coverage"),displayId:"".concat(e.configuration.displayId,"_snpcoverage_xyz")})},trackMenuItems:function(){return[].concat(se(t()),[{type:"subMenu",label:"Pileup settings",subMenu:e.PileupDisplay.trackMenuItems()},{type:"subMenu",label:"SNPCoverage settings",subMenu:e.SNPCoverageDisplay.trackMenuItems()}])}}})).actions((function(e){return{setSNPCoverageDisplay:function(t){e.SNPCoverageDisplay={type:"LinearSNPCoverageDisplay",configuration:t,height:e.snpCovHeight}},setUserFeatureScreenDensity:function(t){e.PileupDisplay.setUserFeatureScreenDensity(t),e.SNPCoverageDisplay.setUserFeatureScreenDensity(t)},setPileupDisplay:function(t){e.PileupDisplay={type:"LinearPileupDisplay",configuration:t}},setHeight:function(t){return e.height=t>20?t:20,e.height},resizeHeight:function(t){var r=e.height;return this.setHeight(e.height+t)-r}}})).actions((function(e){return{afterAttach:function(){o.addDisposer(e,_.autorun((function(){e.SNPCoverageDisplay?v(e.snpCoverageDisplayConfig,o.getSnapshot(e.SNPCoverageDisplay.configuration))||(e.SNPCoverageDisplay.setHeight(e.snpCovHeight),e.SNPCoverageDisplay.setConfig(e.snpCoverageDisplayConfig)):e.setSNPCoverageDisplay(e.snpCoverageDisplayConfig),e.PileupDisplay?v(e.pileupDisplayConfig,o.getSnapshot(e.PileupDisplay.configuration))||e.PileupDisplay.setConfig(e.pileupDisplayConfig):e.setPileupDisplay(e.pileupDisplayConfig),e.PileupDisplay.filterBy&&!v(o.getSnapshot(e.PileupDisplay.filterBy),o.getSnapshot(e.SNPCoverageDisplay.filterBy))&&e.SNPCoverageDisplay.setFilterBy(o.getSnapshot(e.PileupDisplay.filterBy)),e.PileupDisplay.colorBy&&!v(o.getSnapshot(e.PileupDisplay.colorBy),e.SNPCoverageDisplay.colorBy?o.getSnapshot(e.SNPCoverageDisplay.colorBy):{})&&e.SNPCoverageDisplay.setColorBy(o.getSnapshot(e.PileupDisplay.colorBy))}))),o.addDisposer(e,_.autorun((function(){e.setSNPCoverageHeight(e.SNPCoverageDisplay.height)})))},renderSvg:function(t){return Q(he.mark((function r(){var n;return he.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return n=e.height-e.SNPCoverageDisplay.height,r.next=3,_.when((function(){return e.PileupDisplay.ready}));case 3:return r.t0=C,r.t1=C.Fragment,r.t2=C,r.next=8,e.SNPCoverageDisplay.renderSvg(t);case 8:return r.t3=r.sent,r.t4=r.t2.createElement.call(r.t2,"g",null,r.t3),r.t5=C,r.t6={transform:"translate(0 ".concat(e.SNPCoverageDisplay.height,")")},r.next=14,e.PileupDisplay.renderSvg(J(J({},t),{},{overrideHeight:n}));case 14:return r.t7=r.sent,r.t8=r.t5.createElement.call(r.t5,"g",r.t6,r.t7),r.abrupt("return",r.t0.createElement.call(r.t0,r.t1,null,r.t4,r.t8));case 17:case"end":return r.stop()}}),r)})))()}}}))};function nt(e){var t=e.model,r=t.PileupDisplay,n=t.SNPCoverageDisplay,o=t.showPileup,i=t.showCoverage;return C.createElement("div",{"data-testid":"display-".concat(a.getConf(t,"displayId")),style:{position:"relative"}},C.createElement("div",{"data-testid":"Blockset-snpcoverage"},i?C.createElement(n.RenderingComponent,{model:n}):null),C.createElement(u.ResizeHandle,{onDrag:function(e){return n?(n.setHeight(n.height+e),e):0},style:{position:"absolute",top:i?n.height+2:0,height:3}}),C.createElement("div",{"data-testid":"Blockset-pileup",style:{position:"absolute",top:i?n.height+5:0,height:3}},o?C.createElement(r.RenderingComponent,{model:r}):null))}var at=b.observer(nt);function ot(e){e.addDisplayType((function(){var t=function(e){var t=e.getDisplayType("LinearPileupDisplay").configSchema,r=e.getDisplayType("LinearSNPCoverageDisplay").configSchema;return a.ConfigurationSchema("LinearAlignmentsDisplay",{pileupDisplay:t,snpCoverageDisplay:r},{baseConfiguration:x.baseLinearDisplayConfigSchema,explicitlyTyped:!0})}(e);return new S({name:"LinearAlignmentsDisplay",configSchema:t,stateModel:rt(e,t),trackType:"AlignmentsTrack",viewType:"LinearGenomeView",ReactComponent:at})}))}var it=function(e){return e.toLocaleString("en-US")},st=C.forwardRef((function(e,t){var r=e.feature,n=r.get("start"),a=r.get("end"),o=[r.get("refName"),n===a?it(n):"".concat(it(n),"..").concat(it(a))].filter((function(e){return!!e})).join(":"),i=r.get("snpinfo"),s=null==i?void 0:i.total;return C.createElement("div",{ref:t},C.createElement("table",null,C.createElement("caption",null,o),C.createElement("thead",null,C.createElement("tr",null,C.createElement("th",null,"Base"),C.createElement("th",null,"Count"),C.createElement("th",null,"% of Total"),C.createElement("th",null,"Strands"),C.createElement("th",null,"Source"))),C.createElement("tbody",null,C.createElement("tr",null,C.createElement("td",null,"Total"),C.createElement("td",null,s),C.createElement("td",null)),Object.entries(i).map((function(e){var t=ie(e,2),r=t[0];return Object.entries(t[1]).map((function(e){var t=ie(e,2),n=t[0],a=t[1],o=a.strands;return C.createElement("tr",{key:n},C.createElement("td",null,n.toUpperCase()),C.createElement("td",null,a.total),C.createElement("td",null,"total"===n||"skip"===n?"---":"".concat(Math.floor(a.total/s*100),"%")),C.createElement("td",null,o[-1]?"".concat(o[-1],"(-)"):"",o[1]?"".concat(o[1],"(+)"):""),C.createElement("td",null,r))}))})))))})),lt=b.observer((function(e){var t=e.model.featureUnderMouse;return t&&"skip"===t.get("type")?null:C.createElement(p.Tooltip,Object.assign({TooltipContents:st},e))}));function ct(e,t,r,n){return ut.apply(this,arguments)}function ut(){return(ut=Q(he.mark((function e(t,n,a,o){var i,s,l,c;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=r.getSession(t),s=i.rpcManager,l=t.adapterConfig,c=T.getRpcSessionId(t),e.next=5,s.call(T.getRpcSessionId(t),"PileupGetGlobalValueForTag",J({adapterConfig:l,tag:n.tag,sessionId:c,regions:a.contentBlocks},o));case 5:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function pt(e,t,r,n,a){return ft.apply(this,arguments)}function ft(){return(ft=Q(he.mark((function e(t,n,a,o,i){var s,l,c;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=r.getSession(t),l=s.rpcManager,c=T.getRpcSessionId(t),e.next=4,l.call(c,"PileupGetVisibleModifications",J({adapterConfig:n,tag:a.tag,sessionId:c,regions:o.contentBlocks},i));case 4:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var dt=new Map([["snpcoverage","SNPCoverageRenderer"]]),gt=function(e,t){return o.types.compose("LinearSNPCoverageDisplay",p.linearWiggleDisplayModelFactory(e,t),o.types.model({type:o.types.literal("LinearSNPCoverageDisplay"),drawInterbaseCounts:o.types.maybe(o.types.boolean),drawIndicators:o.types.maybe(o.types.boolean),drawArcs:o.types.maybe(o.types.boolean),filterBy:o.types.optional(o.types.model({flagInclude:o.types.optional(o.types.number,0),flagExclude:o.types.optional(o.types.number,1540),readName:o.types.maybe(o.types.string),tagFilter:o.types.maybe(o.types.model({tag:o.types.string,value:o.types.string}))}),{}),colorBy:o.types.maybe(o.types.model({type:o.types.string,tag:o.types.maybe(o.types.string)}))})).volatile((function(){return{modificationTagMap:_.observable.map({})}})).actions((function(e){return{setConfig:function(t){e.configuration=t},setFilterBy:function(t){e.filterBy=o.cast(t)},setColorBy:function(t){e.colorBy=o.cast(t)},updateModificationColorMap:function(t){var r=["red","blue","green","orange","purple"],n=0;t.forEach((function(t){if(!e.modificationTagMap.has(t)){var a=r[n++];e.modificationTagMap.set(t,a)}}))}}})).views((function(e){var t=e.renderProps;return{get rendererConfig(){var t=a.getConf(e,["renderers",e.rendererTypeName])||{};return e.rendererType.configSchema.create(J(J({},t),{},{drawInterbaseCounts:void 0===e.drawInterbaseCounts?t.drawInterbaseCounts:e.drawInterbaseCounts,drawIndicators:void 0===e.drawIndicators?t.drawIndicators:e.drawIndicators,drawArcs:void 0===e.drawArcs?t.drawArcs:e.drawArcs}),o.getEnv(e))},get drawArcsSetting(){return void 0!==e.drawArcs?e.drawArcs:a.readConfObject(this.rendererConfig,"drawArcs")},get drawInterbaseCountsSetting(){return void 0!==e.drawInterbaseCounts?e.drawInterbaseCounts:a.readConfObject(this.rendererConfig,"drawInterbaseCounts")},get drawIndicatorsSetting(){return void 0!==e.drawIndicators?e.drawIndicators:a.readConfObject(this.rendererConfig,"drawIndicators")},get modificationsReady(){var t;return"modifications"!==(null===(t=e.colorBy)||void 0===t?void 0:t.type)||Object.keys(JSON.parse(JSON.stringify(e.modificationTagMap))).length>0},renderProps:function(){var r=t();return J(J({},r),{},{notReady:r.notReady||!this.modificationsReady,filters:e.filters,modificationTagMap:JSON.parse(JSON.stringify(e.modificationTagMap)),colorBy:e.colorBy?o.getSnapshot(e.colorBy):void 0})}}})).actions((function(e){return{toggleDrawIndicators:function(){e.drawIndicators=!e.drawIndicatorsSetting},toggleDrawInterbaseCounts:function(){e.drawInterbaseCounts=!e.drawInterbaseCountsSetting},toggleDrawArcs:function(){e.drawArcs=!e.drawArcsSetting},afterAttach:function(){o.addDisposer(e,_.autorun(Q(he.mark((function t(){var n,o,i;return he.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,n=e.colorBy,o=r.getContainingView(e),i=o.staticBlocks,"modifications"!==(null==n?void 0:n.type)){t.next=8;break}return t.next=6,pt(e,a.getConf(e.parentTrack,"adapter"),n,i);case 6:e.updateModificationColorMap(t.sent);case 8:t.next=14;break;case 10:t.prev=10,t.t0=t.catch(0),console.error(t.t0),e.setError(t.t0);case 14:case"end":return t.stop()}}),t,null,[[0,10]])}))),{delay:1e3}))}}})).views((function(e){var t=e.trackMenuItems;return{get TooltipComponent(){return lt},get adapterConfig(){return{type:"SNPCoverageAdapter",subadapter:a.getConf(e.parentTrack,"adapter")}},get rendererTypeName(){return dt.get("snpcoverage")},get needsScalebar(){return!0},contextMenuItems:function(){return[]},trackMenuItems:function(){return[].concat(se(t()),[{label:"Draw insertion/clipping indicators",type:"checkbox",checked:e.drawIndicatorsSetting,onClick:function(){e.toggleDrawIndicators()}},{label:"Draw insertion/clipping counts",type:"checkbox",checked:e.drawInterbaseCountsSetting,onClick:function(){e.toggleDrawInterbaseCounts()}},{label:"Draw arcs",type:"checkbox",checked:e.drawArcsSetting,onClick:function(){e.toggleDrawArcs()}}])},get filters(){var t=[];if(e.filterBy){var r=e.filterBy,n=r.flagInclude,a=r.flagExclude,o=r.tagFilter,i=r.readName;if(t=["jexl:get(feature,'snpinfo') != undefined ? true : "+"((get(feature,'flags')&".concat(n,")==").concat(n,") && ")+"!((get(feature,'flags')&".concat(a,"))")],o){var s=o.tag,l=o.value;t.push("jexl:get(feature,'snpinfo') != undefined ? true : "+'"'.concat(l,"\" =='*' ? getTag(feature,\"").concat(s,'") != undefined : ')+'getTag(feature,"'.concat(s,'") == "').concat(l,'"'))}i&&t.push("jexl:get(feature,'snpinfo') != undefined ? true : "+"get(feature,'name') == \"".concat(i,'"'))}return new E({filters:t})}}}))};function ht(e){e.addDisplayType((function(){var t=function(e){var t=e.getRendererType("SNPCoverageRenderer").configSchema;return a.ConfigurationSchema("LinearSNPCoverageDisplay",{autoscale:{type:"stringEnum",defaultValue:"local",model:o.types.enumeration("Autoscale type",["local"]),description:"performs local autoscaling (no other options for SNP Coverage available)"},minScore:{type:"number",defaultValue:Number.MIN_VALUE,description:"minimum value for the y-scale"},maxScore:{type:"number",description:"maximum value for the y-scale",defaultValue:Number.MAX_VALUE},scaleType:{type:"stringEnum",model:o.types.enumeration("Scale type",["linear","log"]),description:"The type of scale to use",defaultValue:"linear"},inverted:{type:"boolean",description:"draw upside down",defaultValue:!1},headroom:{type:"number",description:"round the upper value of the domain scale to the nearest N",defaultValue:0},renderers:a.ConfigurationSchema("RenderersConfiguration",{SNPCoverageRenderer:t})},{baseConfiguration:x.baseLinearDisplayConfigSchema,explicitlyTyped:!0})}(e);return new S({name:"LinearSNPCoverageDisplay",configSchema:t,stateModel:gt(e,t),trackType:"AlignmentsTrack",viewType:"LinearGenomeView",ReactComponent:p.LinearWiggleDisplayReactComponent})}))}function mt(e){var t=e.model,r=t.sortedBy;return r?C.createElement("div",{"data-testid":"blurb-".concat(t.sortedBy),style:{backgroundColor:"white"}},C.createElement(B,{color:"secondary",variant:"caption"},t.sortedBy?"Sorted by ".concat(r.type.toLowerCase()," at ").concat(r.refName,":").concat(r.pos):null)):null}var yt=b.observer(mt),vt=["uniqueId"],bt=w.lazy((function(){return Promise.resolve().then((function(){return zt}))})),wt=w.lazy((function(){return Promise.resolve().then((function(){return Xt}))})),Ct=w.lazy((function(){return Promise.resolve().then((function(){return $t}))})),St=w.lazy((function(){return Promise.resolve().then((function(){return er}))})),xt=w.lazy((function(){return Promise.resolve().then((function(){return nr}))})),kt=w.lazy((function(){return Promise.resolve().then((function(){return sr}))})),_t=new Map([["pileup","PileupRenderer"],["svg","SvgFeatureRenderer"]]),Et=function(e){return o.types.compose("LinearPileupDisplay",x.BaseLinearDisplay,o.types.model({type:o.types.literal("LinearPileupDisplay"),configuration:a.ConfigurationReference(e),showSoftClipping:!1,featureHeight:o.types.maybe(o.types.number),noSpacing:o.types.maybe(o.types.boolean),fadeLikelihood:o.types.maybe(o.types.boolean),trackMaxHeight:o.types.maybe(o.types.number),mismatchAlpha:o.types.maybe(o.types.boolean),sortedBy:o.types.maybe(o.types.model({type:o.types.string,pos:o.types.number,tag:o.types.maybe(o.types.string),refName:o.types.string,assemblyName:o.types.string})),colorBy:o.types.maybe(o.types.model({type:o.types.string,tag:o.types.maybe(o.types.string),extra:o.types.frozen()})),filterBy:o.types.optional(o.types.model({flagInclude:o.types.optional(o.types.number,0),flagExclude:o.types.optional(o.types.number,1540),readName:o.types.maybe(o.types.string),tagFilter:o.types.maybe(o.types.model({tag:o.types.string,value:o.types.string}))}),{})})).volatile((function(){return{colorTagMap:_.observable.map({}),modificationTagMap:_.observable.map({}),ready:!1}})).actions((function(e){return{setReady:function(t){e.ready=t},setMaxHeight:function(t){e.trackMaxHeight=t},setFeatureHeight:function(t){e.featureHeight=t},setNoSpacing:function(t){e.noSpacing=t},setColorScheme:function(t){e.colorTagMap=_.observable.map({}),e.colorBy=o.cast(t),e.ready=!1},updateModificationColorMap:function(t){var r=["red","blue","green","orange","purple"];t.forEach((function(t){if(!e.modificationTagMap.has(t)){var n=se(e.modificationTagMap.keys()).length;e.modificationTagMap.set(t,r[n])}}))},updateColorTagMap:function(t){var r=["#BBCCEE","pink","#CCDDAA","#EEEEBB","#FFCCCC","lightblue","lightgreen","tan","#CCEEFF","lightsalmon"];t.forEach((function(t){if(!e.colorTagMap.has(t)){var n=se(e.colorTagMap.keys()).length;e.colorTagMap.set(t,r[n])}}))}}})).actions((function(e){return{afterAttach:function(){o.addDisposer(e,_.autorun(Q(he.mark((function t(){var n,o,i,s,l,c,u,p;return he.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,n=r.getSession(e),o=n.rpcManager,i=e.sortedBy,s=e.colorBy,l=r.getContainingView(e),null==s||!s.tag){t.next=9;break}return t.next=7,ct(e,s,l.staticBlocks);case 7:e.updateColorTagMap(t.sent);case 9:if("modifications"!==(null==s?void 0:s.type)){t.next=14;break}return t.next=12,pt(e,a.getConf(e.parentTrack,["adapter"]),s,l.staticBlocks);case 12:e.updateModificationColorMap(t.sent);case 14:if(!i){t.next=23;break}return p={start:c=i.pos,end:c+1,refName:i.refName,assemblyName:u=i.assemblyName},t.next=19,e.rendererType.renderInClient(o,J({assemblyName:u,regions:[p],adapterConfig:e.adapterConfig,rendererType:e.rendererType.name,sessionId:T.getRpcSessionId(e),timeout:1e6},e.renderProps()));case 19:e.setReady(!0),e.setCurrBpPerPx(l.bpPerPx),t.next=24;break;case 23:e.setReady(!0);case 24:t.next=30;break;case 26:t.prev=26,t.t0=t.catch(0),console.error(t.t0),e.setError(t.t0);case 30:case"end":return t.stop()}}),t,null,[[0,26]])}))),{delay:1e3}))},selectFeature:function(t){var n=r.getSession(e);if(r.isSessionModelWithWidgets(n)){var a=n.addWidget("AlignmentsFeatureWidget","alignmentFeature",{featureData:t.toJSON(),view:r.getContainingView(e)});n.showWidget(a)}n.setSelection(t)},clearSelected:function(){e.sortedBy=void 0},copyFeatureToClipboard:function(t){var n=function(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)t.indexOf(r=o[n])>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t.indexOf(r=o[n])>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}(t.toJSON(),vt),a=r.getSession(e);M(JSON.stringify(n,null,4)),a.notify("Copied to clipboard","success")},toggleSoftClipping:function(){e.showSoftClipping=!e.showSoftClipping},toggleMismatchAlpha:function(){e.mismatchAlpha=!e.mismatchAlpha},setConfig:function(t){e.configuration=t},setSortedBy:function(t,n){var a=r.getContainingView(e).centerLineInfo;if(a){var o=a.refName,i=a.assemblyName,s=Math.round(a.offset)+1;s<0||(e.sortedBy={type:t,pos:s,refName:o,assemblyName:i,tag:n},e.ready=!1)}},setFilterBy:function(t){e.filterBy=o.cast(t)}}})).actions((function(e){var t=e.reload;return{reload:function(){e.clearSelected(),t()}}})).views((function(e){return{get maxHeight(){var t=a.getConf(e,["renderers",e.rendererTypeName])||{};return void 0!==e.trackMaxHeight?e.trackMaxHeight:t.maxHeight},get rendererConfig(){var t=a.getConf(e,["renderers",e.rendererTypeName])||{};return e.rendererType.configSchema.create(J(J({},t),{},{height:e.featureHeight,noSpacing:e.noSpacing,maxHeight:this.maxHeight,mismatchAlpha:e.mismatchAlpha}),o.getEnv(e))},get featureHeightSetting(){return e.featureHeight||a.readConfObject(this.rendererConfig,"height")},get mismatchAlphaSetting(){return void 0!==e.mismatchAlpha?e.mismatchAlpha:a.readConfObject(this.rendererConfig,"mismatchAlpha")}}})).views((function(e){var t=e.trackMenuItems,n=e.renderProps;return{get rendererTypeName(){var t=a.getConf(e,"defaultRendering"),r=_t.get(t);if(!r)throw new Error("unknown alignments view name ".concat(t));return r},contextMenuItems:function(){var t=e.contextMenuFeature;return t?[{label:"Open feature details",icon:N,onClick:function(){e.clearFeatureSelection(),t&&e.selectFeature(t)}},{label:"Copy info to clipboard",icon:R.ContentCopy,onClick:function(){t&&e.copyFeatureToClipboard(t)}}]:[]},get DisplayBlurb(){return yt},get filters(){var t=[],r=e.filterBy,n=r.flagInclude,a=r.flagExclude,o=r.tagFilter,i=r.readName;if(t=["jexl:((get(feature,'flags')&".concat(n,")==").concat(n,") && !(get(feature,'flags')&").concat(a,")")],o){var s=o.tag,l=o.value;t.push('jexl:"'.concat(l,"\" =='*' ? getTag(feature,\"").concat(s,'") != undefined : getTag(feature,"').concat(s,'") == "').concat(l,'"'))}return i&&t.push("jexl:get(feature,'name') == \"".concat(i,'"')),new E({filters:t})},renderProps:function(){var t=r.getContainingView(e),a=e.colorTagMap,o=e.modificationTagMap,i=e.sortedBy,s=e.colorBy,l=e.rpcDriverName,c=n();return J(J({},c),{},{notReady:c.notReady||!e.ready||i&&e.currBpPerPx!==t.bpPerPx,rpcDriverName:l,displayModel:e,sortedBy:i,colorBy:s,colorTagMap:JSON.parse(JSON.stringify(a)),modificationTagMap:JSON.parse(JSON.stringify(o)),filters:this.filters,showSoftClip:e.showSoftClipping,config:e.rendererConfig})},trackMenuItems:function(){return[].concat(se(t()),[{label:"Show soft clipping",icon:P,type:"checkbox",checked:e.showSoftClipping,onClick:function(){e.toggleSoftClipping(),e.showSoftClipping&&e.clearSelected()}},{label:"Sort by",icon:A,disabled:e.showSoftClipping,subMenu:[].concat(se(["Start location","Read strand","Base pair"].map((function(t){return{label:t,onClick:function(){return e.setSortedBy(t)}}}))),[{label:"Sort by tag...",onClick:function(){r.getSession(e).queueDialog((function(t){return[Ct,{model:e,handleClose:t}]}))}},{label:"Clear sort",onClick:function(){return e.clearSelected()}}])},{label:"Color scheme",icon:D,subMenu:[{label:"Normal",onClick:function(){e.setColorScheme({type:"normal"})}},{label:"Mapping quality",onClick:function(){e.setColorScheme({type:"mappingQuality"})}},{label:"Strand",onClick:function(){e.setColorScheme({type:"strand"})}},{label:"Pair orientation",onClick:function(){e.setColorScheme({type:"pairOrientation"})}},{label:"Per-base quality",onClick:function(){e.setColorScheme({type:"perBaseQuality"})}},{label:"Modifications or methylation",onClick:function(){r.getSession(e).queueDialog((function(t){return[kt,{model:e,handleClose:t}]}))}},{label:"Insert size",onClick:function(){e.setColorScheme({type:"insertSize"})}},{label:"Stranded paired-end",onClick:function(){e.setColorScheme({type:"reverseTemplate"})}},{label:"Color by tag...",onClick:function(){r.getSession(e).queueDialog((function(t){return[bt,{model:e,handleClose:t}]}))}}]},{label:"Filter by",icon:I,onClick:function(){r.getSession(e).queueDialog((function(t){return[wt,{model:e,handleClose:t}]}))}},{label:"Set feature height",onClick:function(){r.getSession(e).queueDialog((function(t){return[St,{model:e,handleClose:t}]}))}},{label:"Set max height",onClick:function(){r.getSession(e).queueDialog((function(t){return[xt,{model:e,handleClose:t}]}))}},{label:"Fade mismatches by quality",type:"checkbox",checked:e.mismatchAlphaSetting,onClick:function(){e.toggleMismatchAlpha()}}])}}}))};function Tt(e){e.addDisplayType((function(){var t=function(e){var t=e.getRendererType("PileupRenderer").configSchema,r=e.getRendererType("SvgFeatureRenderer").configSchema;return a.ConfigurationSchema("LinearPileupDisplay",{defaultRendering:{type:"stringEnum",model:o.types.enumeration("Rendering",["pileup","svg"]),defaultValue:"pileup"},renderers:a.ConfigurationSchema("RenderersConfiguration",{PileupRenderer:t,SvgFeatureRenderer:r}),renderer:"",maxFeatureScreenDensity:{type:"number",description:"maximum features per pixel that is displayed in the view",defaultValue:5},colorScheme:{type:"stringEnum",model:o.types.enumeration("colorScheme",["strand","normal","insertSize","insertSizeAndOrientation","mappingQuality","tag"]),description:"color scheme to use",defaultValue:"normal"}},{baseConfiguration:x.linearBasicDisplayConfigSchemaFactory(e),explicitlyTyped:!0})}(e);return new S({name:"LinearPileupDisplay",configSchema:t,stateModel:Et(t),trackType:"AlignmentsTrack",viewType:"LinearGenomeView",ReactComponent:x.BaseLinearDisplayComponent})}))}function Pt(e){e.addTrackType((function(){var t=function(e){return a.ConfigurationSchema("AlignmentsTrack",{},{baseConfiguration:k.createBaseTrackConfig(e)})}(e),r=new L({name:"AlignmentsTrack",configSchema:t,stateModel:k.createBaseTrackModel(e,"AlignmentsTrack",t)}),n=e.getDisplayType("LinearAlignmentsDisplay");return r.addDisplayType(n),r}))}var Rt=a.ConfigurationSchema("AlignmentsFeatureWidget",{});function Mt(e){return o.types.model("AlignmentsFeatureWidget",{id:F.ElementId,type:o.types.literal("AlignmentsFeatureWidget"),featureData:o.types.frozen(),view:o.types.safeReference(e.pluggableMstType("view","stateModel"))}).actions((function(e){return{setFeatureData:function(t){e.featureData=t},clearFeatureData:function(){e.featureData=void 0}}}))}function Nt(e){e.addWidgetType((function(){return new O({name:"AlignmentsFeatureWidget",heading:"Feature details",configSchema:Rt,stateModel:Mt(e),ReactComponent:w.lazy((function(){return Promise.resolve().then((function(){return hr}))}))})}))}var At=function(e){ee(o,q);var t,n,a=ne(o);function o(){var e;return Z(this,o),(e=a.apply(this,arguments)).name="PileupGetGlobalValueForTag",e}return Y(o,[{key:"serializeArguments",value:(n=Q(he.mark((function e(t,n){var a,i,s,l;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s=null==(i=this.pluginManager.rootModel)||null===(a=i.session)||void 0===a?void 0:a.assemblyManager){e.next=4;break}throw new Error("no assembly manager available");case 4:return e.next=6,r.renameRegionsIfNeeded(s,t);case 6:return l=e.sent,e.abrupt("return",oe(te(o.prototype),"serializeArguments",this).call(this,l,n));case 8:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"execute",value:(t=Q(he.mark((function e(t,r){var n,a,o,i,s,l,u,p;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.deserializeArguments(t,r);case 2:return a=(n=e.sent).adapterConfig,o=n.sessionId,i=n.regions,s=n.tag,e.next=6,m.getAdapter(this.pluginManager,o,a);case 6:return l=e.sent.dataAdapter.getFeaturesInMultipleRegions(i),e.next=10,l.pipe(c.toArray()).toPromise();case 10:return u=e.sent,p=new Set,u.forEach((function(e){var t=e.get("tags"),r=t?t[s]:e.get(s);void 0!==r&&p.add("".concat(r))})),e.abrupt("return",se(p));case 14:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})}]),o}(),Dt=function(e){ee(o,q);var t,n,a=ne(o);function o(){var e;return Z(this,o),(e=a.apply(this,arguments)).name="PileupGetVisibleModifications",e}return Y(o,[{key:"serializeArguments",value:(n=Q(he.mark((function e(t,n){var a,i,s,l;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s=null==(i=this.pluginManager.rootModel)||null===(a=i.session)||void 0===a?void 0:a.assemblyManager){e.next=4;break}throw new Error("no assembly manager available");case 4:return e.next=6,r.renameRegionsIfNeeded(s,t);case 6:return l=e.sent,e.abrupt("return",oe(te(o.prototype),"serializeArguments",this).call(this,l,n));case 8:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"execute",value:(t=Q(he.mark((function e(t,r){var n,a,o,i,s,l,u;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.deserializeArguments(t,r);case 2:return a=(n=e.sent).adapterConfig,o=n.sessionId,i=n.regions,e.next=6,m.getAdapter(this.pluginManager,o,a);case 6:return s=e.sent.dataAdapter.getFeaturesInMultipleRegions(i),e.next=10,s.pipe(c.toArray()).toPromise();case 10:return l=e.sent,u=new Set,l.forEach((function(e){var t=De(e,"MM","Mm")||"";void 0!==t&&xe(t).forEach((function(e){return u.add(e)}))})),e.abrupt("return",se(u));case 14:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})}]),o}(),It=function(e){ee(n,t);var r=ne(n);function n(){var e;return Z(this,n),(e=r.apply(this,arguments)).name="AlignmentsPlugin",e}return Y(n,[{key:"install",value:function(e){[Pe,Ee,Tt,ht,Pt,Ve,Me,tt,Ue,ot,Nt].map((function(t){return t(e)})),e.addToExtensionPoint("Core-guessAdapterForLocation",(function(e){return function(t,r,n){var a=T.getFileName(t),o={type:"CramAdapter",cramLocation:t,craiLocation:r||T.makeIndex(t,".crai")};return/\.cram$/i.test(a)&&!n||"CramAdapter"===n?o:e(t,r,n)}})),e.addToExtensionPoint("Core-guessAdapterForLocation",(function(e){return function(t,r,n){var a=T.getFileName(t),o=r&&T.getFileName(r),i={type:"BamAdapter",bamLocation:t,index:{location:r||T.makeIndex(t,".bai"),indexType:T.makeIndexType(o,"CSI","BAI")}};return/\.bam$/i.test(a)&&!n||"BamAdapter"===n?i:e(t,r,n)}})),e.addToExtensionPoint("Core-guessTrackTypeForLocation",(function(e){return function(t){return"BamAdapter"===t||"CramAdapter"===t?"AlignmentsTrack":e(t)}})),e.addRpcMethod((function(){return new At(e)})),e.addRpcMethod((function(){return new Dt(e)}))}}]),n}(),Bt=function(){function e(t,r){Z(this,e),this.record=t,this._store=r}return Y(e,[{key:"_get_name",value:function(){return this.record.readName}},{key:"_get_start",value:function(){return this.record.alignmentStart-1}},{key:"_get_end",value:function(){return this.record.alignmentStart+this.record.lengthOnRef-1}},{key:"_get_cram_read_features",value:function(){return this.record.readFeatures}},{key:"_get_type",value:function(){return"match"}},{key:"_get_score",value:function(){return this.record.mappingQuality}},{key:"_get_flags",value:function(){return this.record.flags}},{key:"_get_strand",value:function(){return this.record.isReverseComplemented()?-1:1}},{key:"_read_group_id",value:function(){var e=this._store.samHeader.readGroups;return e?e[this.record.readGroupId]:void 0}},{key:"_get_qual",value:function(){return(this.record.qualityScores||[]).join(" ")}},{key:"qualRaw",value:function(){return this.record.qualityScores}},{key:"_get_seq_id",value:function(){return this._store.refIdToName(this.record.sequenceId)}},{key:"_get_refName",value:function(){return this._get_seq_id()}},{key:"_get_is_paired",value:function(){return!!this.record.mate}},{key:"_get_pair_orientation",value:function(){return this.record.isPaired()?this.record.getPairOrientation():void 0}},{key:"_get_template_length",value:function(){return this.record.templateLength||this.record.templateSize}},{key:"_get_next_seq_id",value:function(){return this.record.mate?this._store.refIdToName(this.record.mate.sequenceId):void 0}},{key:"_get_next_pos",value:function(){return this.record.mate?this.record.mate.alignmentStart:void 0}},{key:"_get_next_segment_position",value:function(){return this.record.mate?"".concat(this._store.refIdToName(this.record.mate.sequenceId),":").concat(this.record.mate.alignmentStart):void 0}},{key:"_get_tags",value:function(){var e=this._read_group_id(),t=this.record.tags;return void 0!==e?J(J({},t),{},{RG:e}):t}},{key:"_get_seq",value:function(){return this.record.getReadBases()}},{key:"_get_CIGAR",value:function(){var e="",t="",r="M",n=0,a=this.record._refRegion.seq,o=this.record._refRegion.start,i=this.record.alignmentStart,s=0;return void 0!==this.record.readFeatures?this.record.readFeatures.forEach((function(l){var c=l.code,u=l.refPos,p=l.sub,f=l.data;if(s=u-i,e+=a.substring(i-o,u-o),i=u,n&&"M"!==r&&(t+=n+r,n=0),s&&(r="M",n+=s),"b"===c){var d=f.split(","),g=String.fromCharCode.apply(String,se(d));e+=g,i+=g.length,n+=g.length}else"B"===c||"X"===c?(e+=p,i++,n++):"D"===c||"N"===c?(i+=f,n&&(t+=n+r),t+=f+c,n=0):"I"===c||"S"===c?(e+=f,n&&(t+=n+r),t+=f.length+c,n=0):"i"===c?(e+=f,n&&(t+=n+r),t+="".concat(1,"I"),n=0):"P"===c?(n&&(t+=n+r),t+="".concat(f,"P")):"H"===c&&(n&&(t+=n+r),t+="".concat(f,"H"),n=0)})):s=this.record.readLength-e.length,e.length!==this.record.readLength&&(e+=a.substring(i-o,i-o+(s=this.record.readLength-e.length)),n&&"M"!==r&&(t+=n+r,n=0),r="M",n+=s),n&&(t+=n+r),t}},{key:"tags",value:function(){return Object.getOwnPropertyNames(e.prototype).filter((function(e){return e.startsWith("_get_")&&"_get_mismatches"!==e&&"_get_skips_and_dels"!==e&&"_get_cram_read_features"!==e})).map((function(e){return e.replace("_get_","")}))}},{key:"id",value:function(){return"".concat(this._store.id,"-").concat(this.record.uniqueId)}},{key:"get",value:function(e){var t="_get_".concat(e);if(this[t])return this[t]()}},{key:"parent",value:function(){}},{key:"children",value:function(){}},{key:"set",value:function(){}},{key:"pairedFeature",value:function(){return!1}},{key:"_get_clipPos",value:function(){var e=this.get("mismatches");if(e.length){var t=-1===this.get("strand")?e[e.length-1]:e[0],r=t.type;if("softclip"===r||"hardclip"===r)return t.cliplen}return 0}},{key:"toJSON",value:function(){var e=this,t={};return this.tags().forEach((function(r){var n=e.get(r);void 0!==n&&(t[r]=n)})),J(J({},t),{},{name:this.get("name"),type:this.get("type"),uniqueId:this.id()})}},{key:"_get_mismatches",value:function(){var e=this.get("cram_read_features"),t=this.qualRaw();if(!e)return[];var r=this.get("start"),n=[];return e.forEach((function(e){var a=e.code,o=e.data,i=e.refPos-1-r;if("X"===a)n.push({start:i,length:1,base:e.sub,qual:null==t?void 0:t[e.pos],altbase:e.ref,type:"mismatch"});else if("I"===a)n.push({start:i,type:"insertion",base:"".concat(o.length),length:0});else if("N"===a)n.push({type:"skip",length:o,start:i,base:"N"});else if("S"===a){var s=o.length;n.push({start:i,type:"softclip",base:"S".concat(s),cliplen:s,length:1})}else if("P"===a);else if("H"===a){var l=o;n.push({start:i,type:"hardclip",base:"H".concat(l),cliplen:l,length:1})}else"D"===a?n.push({type:"deletion",length:o,start:i,base:"*"}):"b"===a||"q"===a||"B"===a||"i"===a&&n.push({start:i,type:"insertion",base:o,length:1})})),n}},{key:"_get_skips_and_dels",value:function(){return this._get_mismatches()}}]),e}(),Lt={__proto__:null,default:function(e){ee(h,i.BaseFeatureDataAdapter);var t,n,o,s,u,p,f,d,g=ne(h);function h(){var e;return Z(this,h),(e=g.apply(this,arguments)).samHeader={},e.seqIdToOriginalRefName=[],e}return Y(h,[{key:"configure",value:(d=Q(he.mark((function e(){var t,r,n,o,s,l;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=a.readConfObject(this.config,"cramLocation"),r=a.readConfObject(this.config,"craiLocation"),t){e.next=4;break}throw new Error("missing cramLocation argument");case 4:if(r){e.next=6;break}throw new Error("missing craiLocation argument");case 6:if(n=new j.IndexedCramFile({cramFilehandle:H.openLocation(t,this.pluginManager),index:new j.CraiIndex({filehandle:H.openLocation(r,this.pluginManager)}),seqFetch:this.seqFetch.bind(this),checkSequenceMD5:!1,fetchSizeLimit:2e8}),o=a.readConfObject(this.config,["sequenceAdapter","type"]),this.getSubAdapter){e.next=10;break}throw new Error("Error getting subadapter");case 10:return s=a.readConfObject(this.config,"sequenceAdapter"),e.next=13,this.getSubAdapter(s);case 13:if((l=e.sent.dataAdapter)instanceof i.BaseFeatureDataAdapter){e.next=17;break}throw new Error("CRAM feature adapters cannot use sequence adapters of type '".concat(o,"'"));case 17:return e.abrupt("return",{cram:n,sequenceAdapter:l});case 18:case"end":return e.stop()}}),e,this)}))),function(){return d.apply(this,arguments)})},{key:"getHeader",value:(f=Q(he.mark((function e(t){return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.configure();case 2:return e.abrupt("return",e.sent.cram.cram.getHeaderText(t));case 5:case"end":return e.stop()}}),e,this)}))),function(e){return f.apply(this,arguments)})},{key:"seqFetch",value:(p=Q(he.mark((function e(t,r,n){var a,o,i;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r-=1,e.next=3,this.configure();case 3:if(a=e.sent.sequenceAdapter,o=this.refIdToOriginalName(t)||this.refIdToName(t)){e.next=8;break}return e.abrupt("return",void 0);case 8:return e.next=10,a.getFeatures({refName:o,start:r,end:n,assemblyName:""}).pipe(c.toArray()).toPromise();case 10:if((i=e.sent.sort((function(e,t){return e.get("start")-t.get("start")})).map((function(e){var t=e.get("start"),a=e.get("end"),o=Math.max(r-t,0),i=Math.min(n-t,a-t)-o;return(e.get("seq")||e.get("residues")).substr(o,i)})).join("")).length===n-r){e.next=14;break}throw new Error("sequence fetch failed: fetching ".concat(o,":").concat((r-1).toLocaleString(),"-").concat(n.toLocaleString()," returned ").concat(i.length.toLocaleString()," bases, but should have returned ").concat((n-r).toLocaleString()));case 14:return e.abrupt("return",i);case 15:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return p.apply(this,arguments)})},{key:"setupPre",value:(u=Q(he.mark((function e(t){var r,n,a,o,i,s,l,c,u;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=void 0===(r=(t||{}).statusCallback)?function(){}:r,e.next=3,this.configure();case 3:return a=e.sent,n("Downloading index"),o=a.cram,e.next=8,o.cram.getSamHeader(null==t?void 0:t.signal);case 8:return s=[],l={},(i=e.sent).filter((function(e){return"SQ"===e.tag})).forEach((function(e,t){e.data.forEach((function(e){if("SN"===e.tag){var r=e.value;l[r]=t,s[t]=r}}))})),c=i.filter((function(e){return"RG"===e.tag})).map((function(e){var t;return null===(t=e.data.find((function(e){return"ID"===e.tag})))||void 0===t?void 0:t.value})),u={idToName:s,nameToId:l,readGroups:c},n(""),this.samHeader=u,e.abrupt("return",J({samHeader:u},a));case 17:case"end":return e.stop()}}),e,this)}))),function(e){return u.apply(this,arguments)})},{key:"setup",value:(s=Q(he.mark((function e(t){var r=this;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.setupP||(this.setupP=this.setupPre(t).catch((function(e){throw r.setupP=void 0,e}))),e.abrupt("return",this.setupP);case 2:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"getRefNames",value:(o=Q(he.mark((function e(t){var r;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.setup(t);case 2:if((r=e.sent.samHeader).idToName){e.next=6;break}throw new Error("CRAM file has no header lines");case 6:return e.abrupt("return",r.idToName);case 7:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"refNameToId",value:function(e){return this.samHeader.nameToId?this.samHeader.nameToId[e]:this.seqIdToRefName?this.seqIdToRefName.indexOf(e):void 0}},{key:"refIdToName",value:function(e){return this.samHeader.idToName?this.samHeader.idToName[e]:this.seqIdToRefName?this.seqIdToRefName[e]:void 0}},{key:"refIdToOriginalName",value:function(e){return this.seqIdToOriginalRefName[e]}},{key:"getFeatures",value:function(e,t){var n=this,a=t||{},o=a.signal,i=a.statusCallback,s=void 0===i?function(){}:i,c=e.refName,u=e.start,p=e.end,f=e.originalRefName;return l.ObservableCreate(function(){var e=Q(he.mark((function e(a){var i,l,d,g,h;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.setup(t);case 2:if(l=(i=e.sent).cram,d=i.sequenceAdapter,s("Downloading alignments"),n.seqIdToRefName){e.next=10;break}return e.next=9,d.getRefNames(t);case 9:n.seqIdToRefName=e.sent;case 10:if(void 0===(g=n.refNameToId(c))){e.next=20;break}return f&&(n.seqIdToOriginalRefName[g]=f),e.next=15,l.getRecordsForRange(g,u,p,t);case 15:h=e.sent,r.checkAbortSignal(o),h.forEach((function(e){a.next(n.cramRecordToFeature(e))})),e.next=21;break;case 20:console.warn("Unknown refName",c);case 21:s(""),a.complete();case 23:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),o)}},{key:"freeResources",value:function(){}},{key:"cramRecordToFeature",value:function(e){return new Bt(e,this)}},{key:"estimateRegionsStats",value:(n=Q(he.mark((function e(t,r){var n,o;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.bytesForRegions(t,r);case 2:return n=e.sent,o=a.readConfObject(this.config,"fetchSizeLimit"),e.abrupt("return",{bytes:n,fetchSizeLimit:o});case 5:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"bytesForRegions",value:(t=Q(he.mark((function e(t,r){var n,a=this;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.configure();case 2:return n=e.sent.cram,e.next=6,Promise.all(t.map((function(e){var t=e.start,r=e.end,o=a.refNameToId(e.refName);return n.index.getEntriesForRange(o,t,r)})));case 6:return e.abrupt("return",e.sent.flat().reduce((function(e,t){return e+t.sliceBytes}),0));case 8:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})}]),h}()},Ft=function(){function e(t,r,n){Z(this,e),this.record=t,this.adapter=r,this.ref=n}return Y(e,[{key:"_get_name",value:function(){return this.record.get("name")}},{key:"_get_type",value:function(){return"match"}},{key:"_get_score",value:function(){return this.record.get("mq")}},{key:"_get_flags",value:function(){return this.record.flags}},{key:"_get_strand",value:function(){return this.record.isReverseComplemented()?-1:1}},{key:"_get_pair_orientation",value:function(){return this.record.isPaired()?this.record.getPairOrientation():void 0}},{key:"_get_next_seq_id",value:function(){return this.record._next_refid()}},{key:"_get_seq_id",value:function(){return this.record._refID}},{key:"_get_next_refName",value:function(){return this.adapter.refIdToName(this.record._next_refid())}},{key:"_get_next_segment_position",value:function(){var e=this.record,t=this.adapter;return e.isPaired()?"".concat(t.refIdToName(e._next_refid()),":").concat(e._next_pos()+1):void 0}},{key:"_get_seq",value:function(){return this.record.getReadBases()}},{key:"_get_MD",value:function(){var e=this.record.get("MD"),t=this.get("seq");return!e&&t&&this.ref?we(this.ref,this.record.getReadBases(),this.get("CIGAR")):e}},{key:"qualRaw",value:function(){return this.record.qualRaw()}},{key:"set",value:function(){}},{key:"tags",value:function(){var t=Object.getOwnPropertyNames(e.prototype);return se(new Set(t.filter((function(e){return e.startsWith("_get_")&&"_get_mismatches"!==e&&"_get_skips_and_dels"!==e&&"_get_cram_read_features"!==e&&"_get_tags"!==e&&"_get_next_seq_id"!==e&&"_get_seq_id"!==e})).map((function(e){return e.replace("_get_","")})).concat(this.record._tags())))}},{key:"id",value:function(){return"".concat(this.adapter.id,"-").concat(this.record.id())}},{key:"get",value:function(e){var t="_get_".concat(e);return this[t]?this[t]():this.record.get(e)}},{key:"_get_refName",value:function(){return this.adapter.refIdToName(this.record.seq_id())}},{key:"parent",value:function(){}},{key:"children",value:function(){}},{key:"pairedFeature",value:function(){return!1}},{key:"toJSON",value:function(){var e=this;return J(J({},Object.fromEntries(this.tags().map((function(t){return[t,e.get(t)]})).filter((function(e){return void 0!==e[1]})))),{},{uniqueId:this.id()})}},{key:"_get_skips_and_dels",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{cigarAttributeName:"CIGAR"},t=e.cigarAttributeName,r=[],n=[],a=this.get(t);return a&&(n=ye(a),r=r.concat(ve(n,this.get("seq"),this.qualRaw()))),r}},{key:"_get_mismatches",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.cigarAttributeName,r=void 0===t?"CIGAR":t,n=e.mdAttributeName,a=void 0===n?"MD":n,o=[],i=[],s=this.get(r),l=this.get("seq"),c=this.qualRaw();s&&(i=ye(s),o=o.concat(ve(i,l,c)));var u=this.get(a);u&&(o=o.concat(be(u,i,o,l,c)));var p={};return o.filter((function(e){var t="".concat(e.type,",").concat(e.start,",").concat(e.length),r=p[t];return p[t]=!0,!r}))}},{key:"_get_clipPos",value:function(){var e=this.get("CIGAR")||"";return-1===this.get("strand")?+(e.match(/(\d+)[SH]$/)||[])[1]||0:+(e.match(/^(\d+)([SH])/)||[])[1]||0}}]),e}(),Ot=function(e){ee(g,i.BaseFeatureDataAdapter);var t,n,o,s,u,p,f,d=ne(g);function g(){return Z(this,g),d.apply(this,arguments)}return Y(g,[{key:"configure",value:(f=Q(he.mark((function e(){var t,r,n,o,i,s;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.configured||(t=a.readConfObject(this.config,"bamLocation"),r=a.readConfObject(this.config,["index","location"]),n=a.readConfObject(this.config,["index","indexType"]),o=a.readConfObject(this.config,"chunkSizeLimit"),i=new V.BamFile({bamFilehandle:H.openLocation(t,this.pluginManager),csiFilehandle:"CSI"===n?H.openLocation(r,this.pluginManager):void 0,baiFilehandle:"CSI"!==n?H.openLocation(r,this.pluginManager):void 0,chunkSizeLimit:o,fetchSizeLimit:1e8}),s=a.readConfObject(this.config,"sequenceAdapter"),this.configured=s&&this.getSubAdapter?this.getSubAdapter(s).then((function(e){return{bam:i,sequenceAdapter:e.dataAdapter}})):Promise.resolve({bam:i})),e.abrupt("return",this.configured);case 2:case"end":return e.stop()}}),e,this)}))),function(){return f.apply(this,arguments)})},{key:"getHeader",value:(p=Q(he.mark((function e(t){return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.configure();case 2:return e.abrupt("return",e.sent.bam.getHeaderText(t));case 5:case"end":return e.stop()}}),e,this)}))),function(e){return p.apply(this,arguments)})},{key:"setupPre",value:(u=Q(he.mark((function e(t){var n,a,o;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=void 0===(n=(t||{}).statusCallback)?function(){}:n,e.next=3,this.configure();case 3:return o=e.sent.bam,e.next=7,r.updateStatus("Downloading index",a,Q(he.mark((function e(){var r,n;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o.getHeader(t);case 2:return r=[],n={},e.sent.filter((function(e){return"SQ"===e.tag})).forEach((function(e,t){e.data.forEach((function(e){if("SN"===e.tag){var a=e.value;n[a]=t,r[t]=a}}))})),e.abrupt("return",{idToName:r,nameToId:n});case 7:case"end":return e.stop()}}),e)}))));case 7:return this.samHeader=e.sent,e.abrupt("return",this.samHeader);case 9:case"end":return e.stop()}}),e,this)}))),function(e){return u.apply(this,arguments)})},{key:"setup",value:(s=Q(he.mark((function e(t){var r=this;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.setupP||(this.setupP=this.setupPre(t).catch((function(e){throw r.setupP=void 0,e}))),e.abrupt("return",this.setupP);case 2:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"getRefNames",value:(o=Q(he.mark((function e(t){return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.setup(t);case 2:return e.abrupt("return",e.sent.idToName);case 5:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"seqFetch",value:(n=Q(he.mark((function e(t,r,n){var a,o,i,s;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.configure();case 2:if(a=e.sent.sequenceAdapter){e.next=7;break}return e.abrupt("return",void 0);case 7:if(t){e.next=9;break}return e.abrupt("return",void 0);case 9:return o=a.getFeatures({refName:t,start:r,end:n,assemblyName:""}),e.next=12,o.pipe(c.toArray()).toPromise();case 12:if(i=[],e.sent.sort((function(e,t){return e.get("start")-t.get("start")})).forEach((function(e){var t=e.get("start"),a=e.get("end"),o=Math.max(r-t,0),s=Math.min(n-t,a-t)-o,l=e.get("seq")||e.get("residues");i.push(l.substr(o,s))})),(s=i.join("")).length===n-r){e.next=18;break}throw new Error("sequence fetch failed: fetching ".concat(t,":").concat((r-1).toLocaleString(),"-").concat(n.toLocaleString()," returned ").concat(s.length.toLocaleString()," bases, but should have returned ").concat((n-r).toLocaleString()));case 18:return e.abrupt("return",s);case 19:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"getFeatures",value:function(e,t){var n=this,a=e.refName,o=e.start,i=e.end,s=e.originalRefName,c=t||{},u=c.signal,p=c.statusCallback,f=void 0===p?function(){}:p;return l.ObservableCreate(function(){var e=Q(he.mark((function e(l){var c,p,d,g,h,m;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.configure();case 2:return c=e.sent.bam,e.next=6,n.setup(t);case 6:return f("Downloading alignments"),e.next=9,c.getRecordsForRange(a,o,i,t);case 9:p=e.sent,r.checkAbortSignal(u),d=de(p),e.prev=12,d.s();case 14:if((g=d.n()).done){e.next=24;break}if(m=void 0,(h=g.value).get("md")){e.next=21;break}return e.next=20,n.seqFetch(s||a,h.get("start"),h.get("end"));case 20:m=e.sent;case 21:l.next(new Ft(h,n,m));case 22:e.next=14;break;case 24:e.next=29;break;case 26:e.prev=26,e.t0=e.catch(12),d.e(e.t0);case 29:return e.prev=29,d.f(),e.finish(29);case 32:f(""),l.complete();case 34:case"end":return e.stop()}}),e,null,[[12,26,29,32]])})));return function(t){return e.apply(this,arguments)}}(),u)}},{key:"estimateRegionsStats",value:(t=Q(he.mark((function e(t,n){var o,i,s;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.configure();case 2:if("?"===(o=e.sent.bam.index).filehandle){e.next=13;break}return e.next=8,r.bytesForRegions(t,o);case 8:return i=e.sent,s=a.readConfObject(this.config,"fetchSizeLimit"),e.abrupt("return",{bytes:i,fetchSizeLimit:s});case 13:return e.abrupt("return",oe(te(g.prototype),"estimateRegionsStats",this).call(this,t,n));case 14:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})},{key:"freeResources",value:function(){}},{key:"refIdToName",value:function(e){var t;return null===(t=this.samHeader)||void 0===t?void 0:t.idToName[e]}}]),g}(),qt={__proto__:null,default:Ot},jt={__proto__:null,default:function(e){ee(n,Ot);var t,r=ne(n);function n(){return Z(this,n),r.apply(this,arguments)}return Y(n,[{key:"configure",value:(t=Q(he.mark((function e(){var t,r,n,o;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.configured||(t=a.readConfObject(this.config,"htsgetBase"),r=a.readConfObject(this.config,"htsgetTrackId"),n=new V.HtsgetFile({baseUrl:t,trackId:r}),(o=a.readConfObject(this.config,"sequenceAdapter"))&&this.getSubAdapter&&(this.configured=this.getSubAdapter(o).then((function(e){return{bam:n,sequenceAdapter:e.dataAdapter}}))),this.configured=Promise.resolve({bam:n})),e.abrupt("return",this.configured);case 2:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})}]),n}()},Ht=z.makeStyles((function(e){return{root:{width:300},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Vt(e){var t=Ht(),r=e.model,n=e.handleClose,a=ie(w.useState(""),2),o=a[0],i=a[1],s=o.match(/^[A-Za-z][A-Za-z0-9]$/);return C.createElement(z.Dialog,{open:!0,onClose:n},C.createElement(z.DialogTitle,null,"Color by tag",C.createElement(z.IconButton,{"aria-label":"close",className:t.closeButton,onClick:n},C.createElement(G,null))),C.createElement(z.DialogContent,{style:{overflowX:"hidden"}},C.createElement("div",{className:t.root},C.createElement(z.Typography,null,"Enter tag to color by: "),C.createElement(z.Typography,{color:"textSecondary"},"Examples: XS or TS for RNA-seq inferred read strand, ts (lower-case) for minimap2 read strand, HP for haplotype, RG for read group, etc."),C.createElement(z.TextField,{value:o,onChange:function(e){i(e.target.value)},placeholder:"Enter tag name",inputProps:{maxLength:2,"data-testid":"color-tag-name-input"},error:2===o.length&&!s,helperText:2!==o.length||s?"":"Not a valid tag",autoComplete:"off","data-testid":"color-tag-name"}),C.createElement(z.Button,{variant:"contained",color:"primary",style:{marginLeft:20},onClick:function(){r.setColorScheme({type:"tag",tag:o}),n()},disabled:!s},"Submit"))))}var zt={__proto__:null,default:b.observer(Vt)},Gt=z.makeStyles((function(e){return{root:{width:500},paper:{padding:e.spacing(2),margin:e.spacing(2)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},field:{margin:e.spacing(2)}}})),Wt=["read paired","read mapped in proper pair","read unmapped","mate unmapped","read reverse strand","mate reverse strand","first in pair","second in pair","not primary alignment","read fails platform/vendor quality checks","read is PCR or optical duplicate","supplementary alignment"];function Ut(e){var t=e.flag,r=void 0===t?0:t,n=e.setFlag;return C.createElement(C.Fragment,null,C.createElement(z.TextField,{type:"number",value:r,onChange:function(e){return n(+e.target.value)}}),Wt.map((function(e,t){var a=r&1<<t,o="".concat(e,"_").concat(a);return C.createElement("div",{key:o},C.createElement("input",{type:"checkbox",checked:Boolean(a),onChange:function(e){n(e.target.checked?r|1<<t:r&~(1<<t))}}),C.createElement("label",{htmlFor:o},e))})))}function Jt(e){var t,r,n=e.model,a=e.handleClose,o=Gt(),i=n.filterBy,s=ie(w.useState(null==i?void 0:i.flagInclude),2),l=s[0],c=s[1],u=ie(w.useState(null==i?void 0:i.flagExclude),2),p=u[0],f=u[1],d=ie(w.useState((null==i||null===(t=i.tagFilter)||void 0===t?void 0:t.tag)||""),2),g=d[0],h=d[1],m=ie(w.useState((null==i||null===(r=i.tagFilter)||void 0===r?void 0:r.value)||""),2),y=m[0],v=m[1],b=ie(w.useState((null==i?void 0:i.readName)||""),2),S=b[0],x=b[1],k=g.match(/^[A-Za-z][A-Za-z0-9]$/),_="https://broadinstitute.github.io/picard/explain-flags.html";return C.createElement(z.Dialog,{open:!0,onClose:a},C.createElement(z.DialogTitle,null,"Filter options",C.createElement(z.IconButton,{"aria-label":"close",className:o.closeButton,onClick:a},C.createElement(G,null))),C.createElement(z.DialogContent,null,C.createElement(z.Typography,null,"Set filter bitmask options. Refer to ",C.createElement(z.Link,{href:_},_)," ","for details"),C.createElement("div",{className:o.root},C.createElement(z.Paper,{className:o.paper,variant:"outlined"},C.createElement("div",{style:{display:"flex"}},C.createElement("div",null,C.createElement(z.Typography,null,"Read must have ALL these flags"),C.createElement(Ut,{flag:l,setFlag:c})),C.createElement("div",null,C.createElement(z.Typography,null,"Read must have NONE of these flags"),C.createElement(Ut,{flag:p,setFlag:f})))),C.createElement(z.Paper,{className:o.paper,variant:"outlined"},C.createElement(z.Typography,null,"Filter by tag name and value. Use * in the value field to get all reads containing any value for that tag. Example: filter tag name SA with value * to get all split/supplementary reads. Other examples include HP for haplotype, or RG for read group"),C.createElement(z.TextField,{className:o.field,value:g,onChange:function(e){h(e.target.value)},placeholder:"Enter tag name",inputProps:{maxLength:2,"data-testid":"color-tag-name-input"},error:2===g.length&&!k,helperText:2!==g.length||k?"":"Not a valid tag","data-testid":"color-tag-name"}),C.createElement(z.TextField,{className:o.field,value:y,onChange:function(e){v(e.target.value)},placeholder:"Enter tag value",inputProps:{"data-testid":"color-tag-name-input"},"data-testid":"color-tag-value"})),C.createElement(z.Paper,{className:o.paper,variant:"outlined"},C.createElement(z.Typography,null,"Filter by read name"),C.createElement(z.TextField,{className:o.field,value:S,onChange:function(e){x(e.target.value)},placeholder:"Enter read name",inputProps:{"data-testid":"color-tag-readname-input"},"data-testid":"color-tag-readname"})),C.createElement(z.Button,{variant:"contained",color:"primary",onClick:function(){n.setFilterBy({flagInclude:l,flagExclude:p,readName:S,tagFilter:""!==g?{tag:g,value:y}:void 0}),a()}},"Submit"))))}var Xt={__proto__:null,default:b.observer(Jt)},Qt=z.makeStyles((function(e){return{root:{margin:0,padding:e.spacing(2)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Zt(e){var t=Qt(),r=e.model,n=e.handleClose,a=ie(w.useState(""),2),o=a[0],i=a[1],s=o.match(/^[A-Za-z][A-Za-z0-9]$/);return C.createElement(z.Dialog,{open:!0,onClose:n},C.createElement(z.DialogTitle,null,"Sort by tag",C.createElement(z.IconButton,{"aria-label":"close",className:t.closeButton,onClick:n},C.createElement(G,null))),C.createElement(z.DialogContent,null,C.createElement("div",null,C.createElement(z.Typography,null,"Set the tag to sort by"),C.createElement(z.Typography,{color:"textSecondary"},"Examples: HP for haplotype, RG for read group, etc."),C.createElement(z.TextField,{value:o,onChange:function(e){i(e.target.value)},placeholder:"Enter tag name",inputProps:{maxLength:2,"data-testid":"sort-tag-name-input"},error:2===o.length&&!s,helperText:2!==o.length||s?"":"Not a valid tag",autoComplete:"off","data-testid":"sort-tag-name"}),C.createElement(z.Button,{variant:"contained",color:"primary",onClick:function(){r.setSortedBy("tag",o),n()}},"Submit"))))}var $t={__proto__:null,default:b.observer(Zt)},Yt=z.makeStyles((function(e){return{root:{margin:e.spacing(4)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Kt(e){var t=Yt(),r=e.model,n=e.handleClose,a=r.noSpacing,o=ie(w.useState("".concat(r.featureHeightSetting)),2),i=o[0],s=o[1],l=ie(w.useState(a),2),c=l[0],u=l[1],p=""!==i&&!Number.isNaN(+i);return C.createElement(z.Dialog,{open:!0,onClose:n},C.createElement(z.DialogTitle,null,"Set feature height",C.createElement(z.IconButton,{className:t.closeButton,onClick:n},C.createElement(G,null))),C.createElement(z.DialogContent,null,C.createElement(z.Typography,null,"Adjust the feature height and whether there is any spacing between features. Setting feature height to 1 and removing spacing makes the display very compact"),C.createElement("div",{className:t.root},C.createElement(z.Typography,null,"Enter feature height: "),C.createElement(z.TextField,{value:i,onChange:function(e){s(e.target.value)}}),C.createElement(z.FormControlLabel,{control:C.createElement(z.Checkbox,{checked:!!c,onChange:function(){return u((function(e){return!e}))}}),label:"Remove spacing between features in y-direction?"}),C.createElement(z.Button,{variant:"contained",color:"primary",type:"submit",style:{marginLeft:20},disabled:!p,onClick:function(){r.setFeatureHeight(""===i||Number.isNaN(+i)?void 0:+i),r.setNoSpacing(c),n()}},"Submit"))))}var er={__proto__:null,default:b.observer(Kt)},tr=z.makeStyles((function(e){return{root:{width:500},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},field:{margin:e.spacing(2)}}}));function rr(e){var t=e.model,r=e.handleClose,n=tr(),a=t.maxHeight,o=ie(w.useState("".concat(void 0===a?"":a)),2),i=o[0],s=o[1];return C.createElement(z.Dialog,{open:!0,onClose:r},C.createElement(z.DialogTitle,{id:"alert-dialog-title"},"Filter options",C.createElement(z.IconButton,{"aria-label":"close",className:n.closeButton,onClick:r},C.createElement(G,null))),C.createElement(z.DialogContent,null,C.createElement("div",{className:n.root},C.createElement(z.Typography,null,"Set max height for the track"),C.createElement(z.TextField,{value:i,onChange:function(e){s(e.target.value)},placeholder:"Enter max height for layout"}),C.createElement(z.Button,{variant:"contained",color:"primary",type:"submit",style:{marginLeft:20},onClick:function(){t.setMaxHeight(""===i||Number.isNaN(+i)?void 0:+i),r()}},"Submit"))))}var nr={__proto__:null,default:b.observer(rr)},ar=z.makeStyles((function(e){return{root:{},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},table:{border:"1px solid #888",margin:e.spacing(4),"& td":{padding:e.spacing(1)}}}}));function or(e){var t=e.modifications,r=ar();return C.createElement("table",{className:r.table},C.createElement("tbody",null,t.map((function(e){var t=ie(e,2),r=t[0],n=t[1];return C.createElement("tr",{key:r},C.createElement("td",null,r),C.createElement("td",null,n),C.createElement("td",{style:{width:"1em",background:n}}))}))))}function ir(e){var t=ar(),r=e.model,n=e.handleClose,a=r.colorBy,o=r.modificationTagMap,i=se(o.entries());return C.createElement(z.Dialog,{open:!0,onClose:n},C.createElement(z.DialogTitle,null,"Color by modifications",C.createElement(z.IconButton,{"aria-label":"close",className:t.closeButton,onClick:n},C.createElement(G,null))),C.createElement(z.DialogContent,null,C.createElement("div",{className:t.root},C.createElement(z.Typography,null,"You can choose to color the modifications in the BAM/CRAM MM/ML specification using this dialog. Choosing modifications colors the modified positions and can color multiple modification types. Choosing the methylation setting colors methylated and unmethylated CpG."),C.createElement(z.Typography,null,"Note: you can revisit this dialog to see the current mapping of colors to modification type for the modification coloring mode"),C.createElement("div",{style:{margin:20}},"modifications"===(null==a?void 0:a.type)?C.createElement("div",null,i.length?C.createElement(C.Fragment,null,"Current modification-type-to-color mapping",C.createElement(or,{modifications:se(o.entries())})):C.createElement("div",null,C.createElement(z.Typography,null,"Note: color by modifications is already enabled. Loading current modifications..."),C.createElement(z.CircularProgress,{size:15}))):null,"methylation"===(null==a?void 0:a.type)?C.createElement(or,{modifications:[["methylated","red"],["unmethylated","blue"]]}):null),C.createElement("div",{style:{display:"flex"}},C.createElement(z.Button,{variant:"contained",color:"primary",style:{margin:5},onClick:function(){r.setColorScheme({type:"modifications"}),n()}},"Modifications"),C.createElement(z.Button,{variant:"contained",color:"primary",style:{margin:5},onClick:function(){r.setColorScheme({type:"methylation"}),n()}},"Methylation"),C.createElement(z.Button,{variant:"contained",color:"secondary",style:{margin:5},onClick:function(){return n()}},"Cancel")))))}var sr={__proto__:null,default:b.observer(ir)},lr=z.makeStyles((function(){return{compact:{paddingRight:0,paddingTop:0,paddingBottom:0}}})),cr=["clipPos","flags"];function ur(e){var t=lr(),r=e.feature.flags;return C.createElement(W.BaseCard,Object.assign({},e,{title:"Flags"}),C.createElement(W.SimpleValue,{name:"Flag",value:r}),C.createElement(z.FormGroup,null,["read paired","read mapped in proper pair","read unmapped","mate unmapped","read reverse strand","mate reverse strand","first in pair","second in pair","not primary alignment","read fails platform/vendor quality checks","read is PCR or optical duplicate","supplementary alignment"].map((function(e,n){var a=r&1<<n,o="".concat(e,"_").concat(a);return C.createElement(z.FormControlLabel,{key:o,control:C.createElement(z.Checkbox,{className:t.compact,checked:Boolean(a),name:e,readOnly:!0}),label:e})}))))}function pr(e){var t=e.value,r=ie(w.useState(!1),2),n=r[0],a=r[1],o=String(t);return o.length>100?C.createElement(C.Fragment,null,C.createElement("button",{type:"button",onClick:function(){return M(o)}},"Copy"),C.createElement("button",{type:"button",onClick:function(){return a((function(e){return!e}))}},n?"Show less":"Show more"),C.createElement("div",null,n?o:"".concat(o.slice(0,100),"..."))):C.createElement("div",null,o)}function fr(e){var t=e.tag,n=e.model,a=r.getSession(n);return C.createElement(W.BaseCard,Object.assign({},e,{title:"Supplementary alignments"}),C.createElement(z.Typography,null,"List of supplementary alignment locations"),C.createElement("ul",null,t.split(";").filter((function(e){return!!e})).map((function(e,t){var r=ie(e.split(","),4),o=r[0],i=r[1],s=r[2],l=function(e){for(var t=ye(e),r=0,n=0;n<t.length;n+=2){var a=t[n+1];"H"!==a&&"S"!==a&&"I"!==a&&(r+=+t[n])}return r}(r[3]),c=Math.floor(l/5),u=+i,p=+i+l,f="".concat(o,":").concat(Math.max(1,u-c),"-").concat(p+c),d=u.toLocaleString("en-US"),g=p.toLocaleString("en-US"),h="".concat(o,":").concat(d,"-").concat(g," (").concat(s,")");return C.createElement("li",{key:"".concat(f,"-").concat(t)},C.createElement(z.Link,{onClick:function(){var e=n.view;e?e.navToLocString(f):a.notify("No view associated with this feature detail panel anymore","warning")},href:"#"},h))}))))}function dr(e){var t=e.locString,n=e.model,a=r.getSession(n);return C.createElement(z.Link,{onClick:function(){var e=n.view;e?e.navToLocString(t):a.notify("No view associated with this feature detail panel anymore","warning")},href:"#"},t)}function gr(e){var t=e.model,r=JSON.parse(JSON.stringify(t.featureData)),n=r.tags&&r.tags.SA||r.SA;return C.createElement(z.Paper,{"data-testid":"alignment-side-drawer"},C.createElement(W.FeatureDetails,Object.assign({},e,{omit:cr,feature:r,formatter:function(e,r){return"next_segment_position"===r?C.createElement(dr,{model:t,locString:e}):C.createElement(pr,{value:e})}})),n?C.createElement(fr,{model:t,tag:n}):null,C.createElement(ur,Object.assign({feature:r},e)))}var hr={__proto__:null,default:b.observer(gr)};exports.MismatchParser=ke,exports.default=It;
|
|
2
2
|
//# sourceMappingURL=plugin-alignments.cjs.production.min.js.map
|