@jbrowse/plugin-alignments 1.7.0 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +6 -6
- package/dist/AlignmentsFeatureDetail/index.d.ts +13 -13
- package/dist/AlignmentsTrack/index.d.ts +2 -2
- package/dist/BamAdapter/BamAdapter.d.ts +40 -30
- package/dist/BamAdapter/BamSlightlyLazyFeature.d.ts +33 -33
- package/dist/BamAdapter/MismatchParser.d.ts +28 -28
- package/dist/BamAdapter/configSchema.d.ts +2 -2
- package/dist/BamAdapter/index.d.ts +3 -3
- package/dist/CramAdapter/CramAdapter.d.ts +52 -43
- package/dist/CramAdapter/CramSlightlyLazyFeature.d.ts +49 -49
- package/dist/CramAdapter/CramTestAdapters.d.ts +29 -29
- package/dist/CramAdapter/configSchema.d.ts +3 -3
- package/dist/CramAdapter/index.d.ts +3 -3
- package/dist/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +9 -9
- package/dist/HtsgetBamAdapter/configSchema.d.ts +2 -2
- package/dist/HtsgetBamAdapter/index.d.ts +3 -3
- package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +7 -7
- package/dist/LinearAlignmentsDisplay/index.d.ts +2 -2
- package/dist/LinearAlignmentsDisplay/models/configSchema.d.ts +4 -4
- package/dist/LinearAlignmentsDisplay/models/model.d.ts +105 -105
- package/dist/LinearPileupDisplay/components/ColorByModifications.d.ts +14 -14
- package/dist/LinearPileupDisplay/components/ColorByTag.d.ts +9 -9
- package/dist/LinearPileupDisplay/components/FilterByTag.d.ts +18 -18
- package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +13 -13
- package/dist/LinearPileupDisplay/components/SetFeatureHeight.d.ts +16 -16
- package/dist/LinearPileupDisplay/components/SetMaxHeight.d.ts +10 -10
- package/dist/LinearPileupDisplay/components/SortByTag.d.ts +9 -9
- package/dist/LinearPileupDisplay/configSchema.d.ts +6 -6
- package/dist/LinearPileupDisplay/index.d.ts +2 -2
- package/dist/LinearPileupDisplay/model.d.ts +319 -321
- package/dist/LinearSNPCoverageDisplay/components/Tooltip.d.ts +10 -10
- package/dist/LinearSNPCoverageDisplay/index.d.ts +2 -2
- package/dist/LinearSNPCoverageDisplay/models/configSchema.d.ts +2 -2
- package/dist/LinearSNPCoverageDisplay/models/model.d.ts +346 -96
- package/dist/NestedFrequencyTable.d.ts +14 -14
- package/dist/PileupRPC/rpcMethods.d.ts +34 -34
- package/dist/PileupRenderer/PileupLayoutSession.d.ts +29 -29
- package/dist/PileupRenderer/PileupRenderer.d.ts +125 -125
- package/dist/PileupRenderer/components/PileupRendering.d.ts +23 -23
- package/dist/PileupRenderer/configSchema.d.ts +2 -2
- package/dist/PileupRenderer/index.d.ts +2 -2
- package/dist/PileupRenderer/sortUtil.d.ts +8 -8
- package/dist/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +67 -71
- package/dist/SNPCoverageAdapter/configSchema.d.ts +3 -3
- package/dist/SNPCoverageAdapter/index.d.ts +3 -3
- package/dist/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +20 -20
- package/dist/SNPCoverageRenderer/configSchema.d.ts +2 -2
- package/dist/SNPCoverageRenderer/index.d.ts +3 -3
- package/dist/index.d.ts +10 -10
- package/dist/shared.d.ts +25 -25
- package/dist/util.d.ts +19 -19
- package/package.json +3 -2
- package/dist/AlignmentsFeatureDetail/index.test.d.ts +0 -1
- package/dist/LinearAlignmentsDisplay/models/configSchema.test.d.ts +0 -1
- package/dist/LinearPileupDisplay/configSchema.test.d.ts +0 -1
- package/dist/LinearSNPCoverageDisplay/models/configSchema.test.d.ts +0 -1
- package/dist/PileupRenderer/components/PileupRendering.test.d.ts +0 -1
- package/dist/plugin-alignments.cjs.development.js +0 -8438
- package/dist/plugin-alignments.cjs.development.js.map +0 -1
- package/dist/plugin-alignments.cjs.production.min.js +0 -2
- package/dist/plugin-alignments.cjs.production.min.js.map +0 -1
- package/dist/plugin-alignments.esm.js +0 -8430
- package/dist/plugin-alignments.esm.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
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")),c=require("@jbrowse/core/util/rxjs"),l=require("rxjs/operators"),u=require("@jbrowse/core/ui"),p=require("@jbrowse/plugin-wiggle"),f=e(require("color")),d=require("@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType"),g=e(d),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=require("@material-ui/core"),T=e(require("@jbrowse/core/pluggableElementTypes/renderers/util/serializableFilterChain")),P=require("@jbrowse/core/util/tracks"),R=e(require("@material-ui/icons/Visibility")),M=require("@jbrowse/core/ui/Icons"),N=e(require("copy-to-clipboard")),A=e(require("@material-ui/icons/MenuOpen")),B=e(require("@material-ui/icons/Sort")),D=e(require("@material-ui/icons/Palette")),I=e(require("@material-ui/icons/ClearAll")),F=e(require("@material-ui/core/Typography")),L=e(require("@jbrowse/core/pluggableElementTypes/TrackType")),O=require("@jbrowse/core/util/types/mst"),q=e(require("@jbrowse/core/pluggableElementTypes/WidgetType")),j=e(require("@jbrowse/core/pluggableElementTypes/RpcMethodType")),H=require("@gmod/cram"),z=require("@jbrowse/core/util/io"),V=require("@gmod/bam"),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),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).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 ce(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)||le(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 ce(e){if(Array.isArray(e))return e}function le(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 c(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 c=l(e,t,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===u)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}(e,r,o),a}function l(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;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 c=l(e[a],e,o);if("throw"!==c.type){var u=c.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(c.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=l(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(c(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"),c=r.call(o,"finallyLoc");if(s&&c){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(!c)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(Se),ye=new RegExp(/(\d+|\^[a-z]+|[a-z])/gi);function ve(e){return(e||"").split(/([MIDNSHPX=])/)}function be(e,t,r,n){for(var a=0,o=0,i=[],s=r&&t,c=0;c<e.length;c+=2){var l=+e[c],u=e[c+1];if("M"===u||"="===u||"E"===u){if(s)for(var p=0;p<l;p++)t[o+p].toUpperCase()!==r[a+p].toUpperCase()&&i.push({start:a+p,type:"mismatch",base:t[o+p],length:1});o+=l}if("I"===u)i.push({start:a,type:"insertion",base:"".concat(l),length:0}),o+=l;else if("D"===u)i.push({start:a,type:"deletion",base:"*",length:l});else if("N"===u)i.push({start:a,type:"skip",base:"N",length:l});else if("X"===u){for(var f=t.slice(o,o+l),d=(null==n?void 0:n.slice(o,o+l))||[],g=0;g<l;g++)i.push({start:a+g,type:"mismatch",base:f[g],qual:d[g],length:1});o+=l}else"H"===u?i.push({start:a,type:"hardclip",base:"H".concat(l),cliplen:l,length:1}):"S"===u&&(i.push({start:a,type:"softclip",base:"S".concat(l),cliplen:l,length:1}),o+=l);"I"!==u&&"S"!==u&&"H"!==u&&(a+=l)}return i}function we(e,t,r,n,a){var o=[],i={start:0,base:"",length:0,type:"mismatch"},s=r.filter((function(e){return"skip"===e.type})),c=0,l=0,u=0,p=0;function f(e){for(var r=l,n=u,a=c;a<t.length&&n<=e;c=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 l=r,u=n,r-(n-e)}for(var d=e.match(ye)||[],g=0;g<d.length;g++){var h=d[g],m=+h;if(Number.isNaN(m))if(h.startsWith("^"))i.start+=h.length-1;else for(var y=0;y<h.length;y+=1){for(i.length=1;p<s.length;){var v=s[p];if(!(i.start>=v.start))break;i.start+=v.length,p++}var b=f(i.start);i.base=n[b]||"X";var w=null==a?void 0:a[b];w&&(i.qual=w),i.altbase=h,o.push(i),i={start:i.start+i.length,length:0,base:"",type:"mismatch"}}else i.start+=m}return o}function Ce(e,t,r,n,a){var o=[],i=ve(e);return e&&(o=o.concat(be(i,r,n,a))),t&&(o=o.concat(we(t,i,o,r,a))),o}function Se(e,t){var r,n,a,o,i,s,c;return he.wrap((function(l){for(;;)switch(l.prev=l.next){case 0:r=0,n=0,a=0,o=0;case 4:if(!(o<t.length)){l.next=12;break}for(i=t[o];r<e.length&&n<i;r+=2)s=+e[r],"S"===(c=e[r+1])||"I"===c?n+=s:"D"===c||"N"===c?a+=s:"M"!==c&&"X"!==c&&"="!==c||(n+=s,a+=s);return l.next=9,t[o]-n+a;case 9:o++,l.next=4;break;case 12:case"end":return l.stop()}}),me)}function xe(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=ce(t=e.split(","))||le(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 c=ie(s,4),l=c[1],u=c[2],p=c[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"!==l&&l!==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 ke(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 _e={__proto__:null,parseCigar:ve,cigarToMismatches:be,mdToMismatches:we,getMismatches:Ce,getNextRefPos:Se,getModificationPositions:xe,getModificationTypes:ke},Ee=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})}))},Te=function(e){e.addAdapterType((function(){return new n({name:"CramAdapter",configSchema:e.load(Ee),getAdapterClass:function(){return Promise.resolve().then((function(){return zt})).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"}}}),fetchSizeLimit:{type:"number",defaultValue:5e6},sequenceAdapter:{type:"frozen",defaultValue:null}},{explicitlyTyped:!0})})),Re=function(e){e.addAdapterType((function(){return new n({name:"BamAdapter",configSchema:Pe,getAdapterClass:function(){return Promise.resolve().then((function(){return Wt})).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})})),Ne=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 Ut})).then((function(e){return e.default}))}})}))},Ae=function(e){return o.types.late((function(){return a.ConfigurationSchema("SNPCoverageAdapter",{subadapter:e.pluggableConfigSchemaType("adapter")},{explicitlyTyped:!0})}))};function Be(e,t){var r=e.get("tags");return r?r[t]:e.get(t)}function De(e,t,r){return Be(e,t)||Be(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 Fe(e,t){return Le.apply(this,arguments)}function Le(){return(Le=Q(he.mark((function e(t,r){var n,a,o,i;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=t.end,o=t.originalRefName,i=t.refName,e.next=3,r.getFeatures(J(J({},t),{},{refName:o||i,end:a+1})).pipe(l.toArray()).toPromise();case 3:return e.abrupt("return",null===(n=e.sent[0])||void 0===n?void 0:n.get("seq"));case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Oe(e){return"methylation"===e}function qe(e){return je(e.type)?1:e.length}function je(e){return"softclip"===e||"hardclip"===e||"insertion"===e}function He(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 ze(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 Ve=function(e){ee(p,i.BaseFeatureDataAdapter);var t,r,n,a,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,a,o,i;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.getConf("subadapter"),a=this.getConf(["subadapter","sequenceAdapter"]),e.next=4,null===(t=this.getSubAdapter)||void 0===t?void 0:t.call(this,n);case 4:if(o=e.sent,!a){e.next=11;break}return e.next=8,null===(r=this.getSubAdapter)||void 0===r?void 0:r.call(this,a);case 8:e.t0=e.sent,e.next=12;break;case 11:e.t0=void 0;case 12:if(i=e.t0,o){e.next=15;break}throw new Error("Failed to get subadapter");case 15:return e.abrupt("return",{subadapter:o.dataAdapter,sequenceAdapter:null==i?void 0:i.dataAdapter});case 16:case"end":return e.stop()}}),e,this)}))),function(){return o.apply(this,arguments)})},{key:"fetchSequence",value:(a=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.configure();case 2:if(r=e.sent.sequenceAdapter){e.next=6;break}return e.abrupt("return",void 0);case 6:return e.abrupt("return",Fe(t,r));case 7:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"getFeatures",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return c.ObservableCreate(function(){var n=Q(he.mark((function n(a){var o,i,c,u,p;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,n.next=6,o.getFeatures(e,r).pipe(l.toArray()).toPromise();case 6:return i=n.sent,r.filters&&(c=r.filters,i=i.filter((function(e){return c.passes(e,r)}))),n.next=10,t.generateCoverageBins(i,e,r);case 10:p=(u=n.sent).skipmap,u.bins.forEach((function(r,n){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(p).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 16: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,c,l,u,p;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=n.colorBy,i=Math.ceil(r.end-r.start),s={},!t.length||!Oe(null===(a=n.colorBy)||void 0===a?void 0:a.type)){e.next=9;break}return e.next=6,this.fetchSequence(r);case 6:e.t0=e.sent,e.next=10;break;case 9:e.t0=void 0;case 10:for(c=e.t0,l=[],u=function(e){for(var n=t[e],a=ve(n.get("CIGAR")),u=n.get("start"),p=n.get("end"),f=n.get("strand"),d=u;d<p;d++){var g=d-r.start;if(g>=0&&g<i){var h=l[g]||{total:0,lowqual:{},cov:{},delskips:{},noncov:{},ref:{}};d!==p&&(h.total++,He(h,f,"ref","ref")),l[g]=h}}if("modifications"===(null==o?void 0:o.type)){var m=n.get("seq");xe(De(n,"MM","Mm")||"",m,f).forEach((function(e){var t,n=e.positions,o="mod_".concat(e.type),i=de(Se(a,n));try{for(i.s();!(t=i.n()).done;){var s=t.value,c=s+u-r.start;c>=0&&c<l.length&&s+u<p&&He(l[c],f,"cov",o)}}catch(e){i.e(e)}finally{i.f()}}))}else if("methylation"===(null==o?void 0:o.type)){if(!c)throw new Error("no region sequence detected, need sequenceAdapter configuration");var y=n.get("seq"),v=De(n,"MM","Mm")||"",b=new Array(r.end-r.start).fill(0);xe(v,y,f).forEach((function(e){if("m"===e.type){var t,n=de(Se(a,e.positions));try{for(n.s();!(t=n.n()).done;){var o=t.value+u-r.start;o>=0&&o<b.length&&(b[o]=1)}}catch(e){n.e(e)}finally{n.f()}}}));for(var w=u;w<p;w++){var C=w-r.start;if(C>=0&&C<l.length-1){var S=c[C].toLowerCase(),x=c[C+1].toLowerCase(),k=l[C],_=l[C+1];"c"===S&&"g"===x&&(b[C]||b[C+1]?(He(k,f,"cov","meth"),He(_,f,"cov","meth"),ze(k,f,"ref","ref"),ze(_,f,"ref","ref")):(He(k,f,"cov","unmeth"),He(_,f,"cov","unmeth"),ze(k,f,"ref","ref"),ze(_,f,"ref","ref")))}}}else{var E=n.get("mismatches");if(E){for(var T=0;T<E.length;T++)for(var P=E[T],R=u+P.start,M=R;M<R+qe(P);M++){var N=M-r.start;if(N>=0&&N<l.length){var A=l[N],B=P.base,D=P.type,I=je(D);I?He(A,f,"noncov",D):ze(A,f,"ref","ref"),"deletion"===D||"skip"===D?(He(A,f,"delskips",D),A.total--):I||He(A,f,"cov",B)}}E.filter((function(e){return"skip"===e.type})).forEach((function(e){var t=n.get("start")+e.start,r=t,a=t+e.length,o=n.get("strand"),i="".concat(r,"_").concat(a,"_").concat(o);s[i]?s[i].score++:s[i]={feature:n,start:r,end:a,strand:o,xs:Be(n,"XS")||Be(n,"TS"),score:1}}))}}},p=0;p<t.length;p++)u(p);return e.abrupt("return",{bins:l,skipmap:s});case 15:case"end":return e.stop()}}),e,this)}))),function(e,r,n){return t.apply(this,arguments)})}]),p}(),Ge=Ve.capabilities,We={__proto__:null,default:Ve,capabilities:Ge},Ue=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 We})).then((function(e){return e.default}))},configSchema:Ae(e),adapterCapabilities:Ge})}))},Je=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:.4},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}),Xe=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,c=t.modificationTagMap,l=void 0===c?{}:c,f=t.scaleOpts,d=t.height,g=t.config,h=t.ticks,m=u.createJBrowseTheme(t.theme),y=ie(o,1)[0],v=(y.end-y.start)/i,b=p.YSCALEBAR_LABEL_OFFSET,w=d-2*b;if(f.domain){var C=J(J({},f),{},{range:[0,w]}),S=p.getScale(C),x=p.getScale(J(J({},C),{},{range:[0,w/2],scaleType:"linear"})),k=p.getOrigin(f.scaleType),_=a.readConfObject(g,"indicatorThreshold"),E=a.readConfObject(g,"drawInterbaseCounts"),T=a.readConfObject(g,"drawArcs"),P=a.readConfObject(g,"drawIndicators"),R=function(e){return w-(S(e)||0)+b},M=function(e){return R(k)-R(e)},N=function(e){return w-(x(e)||0)+b},A=function(e){return N(p.getOrigin("linear"))-N(e)},B={A:m.palette.bases.A.main,C:m.palette.bases.C.main,G:m.palette.bases.G.main,T:m.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")})),F=D.filter((function(e){return"skip"===e.get("type")}));e.fillStyle=B.total;for(var L=0;L<I.length;L++){var O=I[L],q=ie(r.featureSpanPx(O,y,i),2),j=q[0],H=q[1]-j+.3,z=O.get("score");e.fillRect(j,R(z),H,M(z))}for(var V=0,G=y.reversed?1/i:0,W=0;W<I.length;W++){for(var U=I[W],X=ie(r.featureSpanPx(U,y,i),2),Q=X[0],Z=X[1],$=U.get("score"),Y=U.get("snpinfo"),K=Math.max(Z-Q+.3,1),ee=Y.total,te=Object.keys(Y.cov).sort(),re=0,ne=0;ne<te.length;ne++){var ae=te[ne],oe=Y.cov[ae].total;e.fillStyle=B[ae]||l[ae.replace("mod_","")]||"#888";var ce=M($),le=R($)+ce;e.fillRect(Q,le-(oe+re)/$*ce,K,oe/$*ce),re+=oe}var ue=Object.keys(Y.noncov);if(E)for(var pe=0,fe=0;fe<ue.length;fe++){var de=ue[fe],ge=Y.noncov[de].total;e.fillStyle=B[de],e.fillRect(Q-.6+G,4.5+A(pe),1.2,A(ge)),pe+=ge}if(P){for(var he=0,me=0,ye="",ve=0;ve<ue.length;ve++){var be=ue[ve],we=Y.noncov[be].total;he+=we,we>me&&(me=we,ye=be)}var Ce=Math.max(ee,V);if(he>Ce*_&&Ce>7){e.fillStyle=B[ye],e.beginPath();var Se=Q+G;e.moveTo(Se-3.5,0),e.lineTo(Se+3.5,0),e.lineTo(Se,4.5),e.fill()}}V=ee}if(T)for(var xe=0;xe<F.length;xe++){var ke=F[xe],_e=ie(r.bpSpanPx(ke.get("start"),ke.get("end"),y,i),2),Ee=_e[0],Te=_e[1];e.beginPath();var Pe=ke.get("strand"),Re=ke.get("xs"),Me="rgba(255,200,200,0.7)",Ne="rgba(200,200,255,0.7)";e.strokeStyle="+"===Re?Me:"-"===Re?Ne:1===Pe?Me:-1===Pe?Ne:"rgba(200,200,200,0.7)",e.lineWidth=Math.log(ke.get("score")+1),e.moveTo(Ee,w-2*b),e.bezierCurveTo(Ee,0,Te,0,Te,w-2*b),e.stroke()}s&&(e.lineWidth=1,e.strokeStyle="rgba(140,140,140,0.8)",h.values.forEach((function(t){e.beginPath(),e.moveTo(0,Math.round(R(t))),e.lineTo(v,Math.round(R(t))),e.stroke()})))}}}]),n}(),Qe=a.ConfigurationSchema("SNPCoverageRenderer",{},{baseConfiguration:Je,explicitlyTyped:!0});function Ze(e){e.addRendererType((function(){return new Xe({name:"SNPCoverageRenderer",ReactComponent:p.WiggleRendering,configSchema:Qe,pluginManager:e})}))}var $e=function(e){ee(r,d.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 Ye(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"}}function Ke(e){return Object.fromEntries(Object.entries(Ye(e)).map((function(t){var r=ie(t,2);return[r[0],e.palette.getContrastText(r[1])]})))}var et={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 tt(e){return!["methylation","modifications"].includes(e||"")}var rt=function(e){ee(s,g);var t,n,o,i=ne(s);function s(){var e;return Z(this,s),(e=i.apply(this,arguments)).supportsSVG=!0,e}return Y(s,[{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,c=0,l=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?c=g:l=g)}}var h=ie(r.bpSpanPx(t.get("start")-c,t.get("end")+l,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")-c,t.get("end")+l,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 et[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:"colorByPerBaseLettering",value:function(e,t,n,a,o,i){for(var s=i.colorForBase,c=i.contrastForBase,l=i.charWidth,u=i.charHeight-2,p=t.feature,f=t.topPx,d=t.heightPx,g=p.get("seq"),h=ve(p.get("CIGAR")),m=1/o,y=p.get("start"),v=0,b=0,w=0;w<h.length;w+=2){var C=+h[w],S=h[w+1];if("S"===S||"I"===S)v+=C;else if("D"===S||"N"===S)b+=C;else if("M"===S||"X"===S||"="===S){for(var x=0;x<C;x++){var k=g[v+x];e.fillStyle=s[k];var _=ie(r.bpSpanPx(y+b+x,y+b+x+1,a,o),1)[0];e.fillRect(_,f,m+.5,d),m>=l&&d>=u&&(e.fillStyle=c[k],e.fillText(k,_+(m-l)/2+1,f+d))}v+=C,b+=C}}}},{key:"colorByPerBaseQuality",value:function(e,t,n,a,o){for(var i=t.feature,s=t.topPx,c=t.heightPx,l=(i.get("qual")||"").split(" ").map((function(e){return+e})),u=ve(i.get("CIGAR")),p=1/o,f=i.get("start"),d=0,g=0,h=0;h<u.length;h+=2){var m=+u[h],y=u[h+1];if("S"===y||"I"===y)d+=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=l[d+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,c)}d+=m,g+=m}}}},{key:"colorByModifications",value:function(e,t,n,a,o,i){for(var s=t.feature,c=t.topPx,l=t.heightPx,u=i.modificationTagMap,p=void 0===u?{}:u,d=De(s,"MM","Mm")||"",g=De(s,"ML","Ml")||[],h=g?("string"==typeof g?g.split(",").map((function(e){return+e})):g).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=ve(m),S=xe(d,b,w),x=0,k=0;k<S.length;k++){var _,E=S[k],T=E.positions,P=f(p[E.type]||"black"),R=de(Se(C,T));try{for(R.s();!(_=R.n()).done;){var M=_.value;if(M>=0&&y+M<v){var N=ie(r.bpSpanPx(y+M,y+M+1,a,o),2),A=N[0],B=N[1];e.fillStyle=P.alpha(h[x]+.1).hsl().string(),e.fillRect(A,c,B-A+.5,l)}x++}}catch(e){R.e(e)}finally{R.f()}}}},{key:"colorByMethylation",value:function(e,t,n,a,o,i){var s=i.regionSequence,c=t.feature,l=t.topPx,u=t.heightPx,p=De(c,"MM","Mm")||"";if(!s)throw new Error("region sequence required for methylation");for(var f=c.get("CIGAR"),d=c.get("start"),g=c.get("end"),h=c.get("seq"),m=c.get("strand"),y=ve(f),v=a.start,b=new Array(a.end-v).fill(0),w=xe(p,h,m),C=0;C<w.length;C++){var S=w[C],x=S.positions;if("m"===S.type&&x){var k,_=de(Se(y,x));try{for(_.s();!(k=_.n()).done;){var E=k.value+d-v;E>=0&&E<b.length&&(b[E]=1)}}catch(e){_.e(e)}finally{_.f()}}}for(var T=d;T<g;T++){var P=T-v;if(P>=0&&P<b.length){var R=s[P].toLowerCase(),M=s[P+1].toLowerCase();if(o>2){if("c"===R&&"g"===M){var N=v+P,A=ie(r.bpSpanPx(N,N+2,a,o),2),B=A[0],D=A[1];e.fillStyle=b[P]||b[P+1]?"red":"blue",e.fillRect(B,l,D-B+.5,u)}}else if("c"===R&&"g"===M){var I=v+P,F=ie(r.bpSpanPx(I,I+1,a,o),2),L=F[0],O=F[1];e.fillStyle=b[P]?"red":"blue",e.fillRect(L,l,O-L+.5,u);var q=ie(r.bpSpanPx(I+1,I+2,a,o),2),j=q[0],H=q[1];e.fillStyle=b[P+1]?"red":"blue",e.fillRect(j,l,H-j+.5,u)}}}}},{key:"drawRect",value:function(e,t,n){var a=n.bpPerPx,o=t.heightPx,i=t.topPx,s=t.feature,c=ie(n.regions,1)[0],l=ie(r.bpSpanPx(s.get("start"),s.get("end"),c,a),2),u=l[0],p=l[1],f=c.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,c=void 0===s?{}:s,l=r.colorForBase,u=r.contrastForBase,p=r.charWidth,f=r.charHeight,d=r.colorBy||{},g=d.tag,h=void 0===g?"":g,m=d.type,y=void 0===m?"":m,v=t.feature,b=r.regions[0];switch(y){case"insertSize":e.fillStyle=this.colorByInsertSize(v,o);break;case"strand":e.fillStyle=-1===v.get("strand")?"#8F8FD8":"#EC8B8B";break;case"mappingQuality":e.fillStyle="hsl(".concat(v.get("mq"),",50%,50%)");break;case"pairOrientation":e.fillStyle=this.colorByOrientation(v,o);break;case"stranded":e.fillStyle=et[this.colorByStranded(v,o)];break;case"xs":case"tag":var w=v.get("tags"),C=w?w[h]:v.get(h);if("XS"!==h&&"TS"!==h||(e.fillStyle=et[{"-":"color_rev_strand","+":"color_fwd_strand"}[C]||"color_nostrand"]),"ts"===h){var S={"-":-1===v.get("strand")?"color_fwd_strand":"color_rev_strand","+":-1===v.get("strand")?"color_rev_strand":"color_fwd_strand"};e.fillStyle=et[S[C]||"color_nostrand"]}else e.fillStyle=c[C]||et.color_nostrand;break;case"insertSizeAndPairOrientation":break;case"modifications":case"methylation":var x=v.get("flags");e.fillStyle=16&x?"#c8dcc8":"#c8c8c8";break;case"normal":default:e.fillStyle=n?"#c8c8c8":a.readConfObject(o,"color",{feature:v})}switch(this.drawRect(e,t,r),y){case"perBaseQuality":this.colorByPerBaseQuality(e,t,o,b,i);break;case"perBaseLettering":this.colorByPerBaseLettering(e,t,o,b,i,{colorForBase:l,contrastForBase:u,charWidth:p,charHeight:f});break;case"modifications":this.colorByModifications(e,t,o,b,i,r);break;case"methylation":this.colorByMethylation(e,t,o,b,i,r)}}},{key:"drawMismatches",value:function(e,t,n,a){var o=a.minSubfeatureWidth,i=a.largeInsertionIndicatorScale,s=a.mismatchAlpha,c=a.drawSNPs,l=void 0===c||c,u=a.drawIndels,p=void 0===u||u,d=a.charWidth,g=a.charHeight,h=a.colorForBase,m=a.contrastForBase,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(o,x),_=w.get("mismatches"),E=g-2;function T(e,t){var r=e;return s&&void 0!==t.qual&&(r=f(e).alpha(Math.min(1,t.qual/50)).hsl().string()),r}for(var P=C.reversed?1/y+1:-1,R=0;R<_.length;R+=1){var M=_[R],N=S+M.start,A=M.base,B=ie(r.bpSpanPx(N,N+M.length,C,y),2),D=B[0],I=B[1],F=Math.max(o,Math.abs(D-I));if("mismatch"===M.type&&l)e.fillStyle=T(h[M.base]||"#888",M),e.fillRect(D,b,F,v),F>=d&&v>=E&&(e.fillStyle=T(m[M.base],M),e.fillText(A,D+(F-d)/2+1,b+v));else if("deletion"===M.type&&p){e.fillStyle=h.deletion,e.fillRect(D,b,F,v);var L="".concat(M.length),O=r.measureText(L,10);F>=O&&v>=E&&(e.fillStyle=m.deletion,e.fillText(L,(D+I)/2-O/2,b+v))}else if("insertion"===M.type&&p){e.fillStyle="purple";var q=D+P,j=+M.base||M.length,H=Math.max(o,Math.min(1.2,1/y));j<10&&(e.fillRect(q,b,H,v),1/y>=d&&v>=E&&(e.fillRect(q-H,b,3*H,1),e.fillRect(q-H,b+v-1,3*H,1),e.fillText("(".concat(M.base,")"),q+3,b+v)))}else if("hardclip"===M.type||"softclip"===M.type){e.fillStyle="hardclip"===M.type?"red":"blue";var z=D+P;e.fillRect(z,b,k,v),1/y>=d&&v>=E&&(e.fillRect(z-k,b,3*k,1),e.fillRect(z-k,b+v-1,3*k,1),e.fillText("(".concat(M.base,")"),z+3,b+v))}else if("skip"===M.type&&D+F>0){var V=F-(y>10?1.5:0);e.clearRect(D,b,V,v),e.fillStyle="#333",e.fillRect(Math.max(0,D),b+v/2-1,V+(D<0?D:0),2)}}if(p)for(var G=0;G<_.length;G+=1){var W=_[G],U=S+W.start,J=ie(r.bpSpanPx(U,U+W.length,C,y),1)[0],X=+W.base||W.length,Q="".concat(X);if("insertion"===W.type&&X>=10)if(y>i)e.fillStyle="purple",e.fillRect(J-1,b,2,v);else if(v>g){var Z=e.measureText(Q);e.fillStyle="purple",e.fillRect(J-Z.width/2-5,b,Z.width+10,v),e.fillStyle="white",e.fillText(Q,J-Z.width/2,b+v)}else e.fillStyle="purple",e.fillRect(J-2,b,4,v)}}},{key:"drawSoftClipping",value:function(e,t,n,o,i){var s=t.feature,c=t.topPx,l=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=s.get("start"),o=0===t.start?a-n:a+t.start,d=0;d<n;d+=1){var h=g.charAt(d+t.start);if(!h)return;var b=ie(r.bpSpanPx(o+d,o+d+1,p,u),2),w=b[0],C=Math.max(f,Math.abs(w-b[1])),S=v[h]||"#000000";e.fillStyle=S,e.fillRect(w,c,C,l),C>=m&&l>=y-5&&(e.fillStyle=i.palette.getContrastText(S),e.fillText(h,w+(C-m)/2+1,c+l))}}))}},{key:"makeImageData",value:(o=Q(he.mark((function e(t,r,n){var o,i,s,c,l,p,f,d,g,h,m,y,v,b,w,C=this;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=n.layout,s=n.showSoftClip,c=n.colorBy,l=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(l),m=Ye(h),y=Ke(h),o){e.next=10;break}throw new Error("layout required");case 10:if(o.addRect){e.next=12;break}throw new Error("invalid layout object");case 12:t.font="bold 10px Courier New,monospace",v=this.getCharWidthHeight(t),b=v.charWidth,w=v.charHeight,r.forEach((function(e){null!==e&&(C.drawAlignmentRect(t,e,J(J({},n),{},{defaultColor:g,colorForBase:m,contrastForBase:y,charWidth:b,charHeight:w})),C.drawMismatches(t,e,n,{mismatchAlpha:p,drawSNPs:tt(null==c?void 0:c.type),drawIndels:tt(null==c?void 0:c.type),largeInsertionIndicatorScale:d,minSubfeatureWidth:f,charWidth:b,charHeight:w,colorForBase:m,contrastForBase:y}),s&&C.drawSoftClipping(t,e,n,i,h))}));case 15:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return o.apply(this,arguments)})},{key:"layoutFeats",value:function(e){var t=this,n=e.layout,o=e.features,i=e.sortedBy,s=e.config,c=e.bpPerPx,l=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 c=t.tag,l=function(e,t){return s?e.get("tags")[t]:e.get(t)},u=n[0]&&"string"==typeof l(n[0],c);n.sort(u?function(e,t){return l(t,c).localeCompare(l(e,c))}:function(e,t){return(l(t,c)||0)-(l(e,c)||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:c,region:u,showSoftClip:l,heightPx:f,displayMode:d})}),p.size)}},{key:"fetchSequence",value:(n=Q(he.mark((function e(t){var r,n,a,o,i;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.sessionId,n=t.regions,a=t.adapterConfig.sequenceAdapter){e.next=4;break}return e.abrupt("return",void 0);case 4:return e.next=6,m.getAdapter(this.pluginManager,r,a);case 6:return o=e.sent.dataAdapter,i=ie(n,1),e.abrupt("return",Fe(i[0],o));case 10:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"render",value:(t=Q(he.mark((function e(t){var r,n,a,o,i,c,l,u,p,f,d,g,m=this;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getFeatures(t);case 2:if(n=e.sent,a=this.createLayoutInWorker(t),o=t.regions,i=t.bpPerPx,c=this.layoutFeats(J(J({},t),{},{features:n,layout:a})),l=ie(o,1),u=l[0],!n.size||!Oe(null===(r=t.colorBy)||void 0===r?void 0:r.type)){e.next=13;break}return e.next=10,this.fetchSequence(t);case 10:e.t0=e.sent,e.next=14;break;case 13:e.t0=void 0;case 14:return p=e.t0,f=(u.end-u.start)/i,d=Math.max(a.getTotalHeight(),1),e.next=20,h.renderToAbstractCanvas(f,d,t,(function(e){return m.makeImageData(e,c,J(J({},t),{},{layout:a,features:n,regionSequence:p}))}));case 20:return g=e.sent,e.next=23,oe(te(s.prototype),"render",this).call(this,J(J(J({},t),g),{},{features:n,layout:a,height:d,width:f}));case 23:return e.abrupt("return",J(J(J({},e.sent),g),{},{features:n,layout:a,height:d,width:f,maxHeightReached:a.maxHeightReached}));case 25:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"createSession",value:function(e){return new $e(e)}}]),s}();function nt(e){var t=e.onMouseMove,n=e.blockKey,a=e.displayModel,o=e.width,i=e.height,s=e.bpPerPx,c=e.sortedBy,l=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 c=p?null===(e=a.getFeatureByID)||void 0===e?void 0:e.call(a,n,p):void 0;if(c){var l=ie(c,4),u=l[1],m=l[3],y=ie(r.bpSpanPx(l[0],l[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(c||l?"".concat((null==c?void 0:c.type)||"").concat((null==l?void 0:l.type)||"").concat((null==l?void 0:l.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,c=h.current;if(c){var l=c.getBoundingClientRect();r=l.left,i=l.top}r=e.clientX-r;var u=a.getFeatureOverlapping(n,g.start+s*(g.reversed?o-r:r),i=e.clientY-i);t&&t(e,u)}(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 at=b.observer(nt),ot=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 it(e){e.addRendererType((function(){return new rt({name:"PileupRenderer",ReactComponent:at,configSchema:ot,pluginManager:e})}))}var st=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)})))()}}}))},ct=E.makeStyles((function(){return{resizeHandle:{height:2,position:"absolute",zIndex:2}}}));function lt(e){var t=e.model,r=t.PileupDisplay,n=t.SNPCoverageDisplay,o=t.showPileup,i=t.showCoverage,s=ct(),c=n.height;return C.createElement("div",{"data-testid":"display-".concat(a.getConf(t,"displayId")),style:{position:"relative"}},i?C.createElement(C.Fragment,null,C.createElement("div",{"data-testid":"Blockset-snpcoverage"},C.createElement(n.RenderingComponent,{model:n})),C.createElement(u.ResizeHandle,{onDrag:function(e){return n.setHeight(n.height+e),e},className:s.resizeHandle,style:{top:c}})):null,o?C.createElement("div",{"data-testid":"Blockset-pileup",style:{position:"absolute",top:i?n.height:0}},C.createElement(r.RenderingComponent,{model:r})):null)}var ut=b.observer(lt);function pt(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:st(e,t),trackType:"AlignmentsTrack",viewType:"LinearGenomeView",ReactComponent:ut})}))}var ft=function(e){return e.toLocaleString("en-US")},dt=C.forwardRef((function(e,t){var r=e.feature,n=r.get("start"),a=r.get("end"),o=r.get("refName"),i=r.get("snpinfo"),s=[o,n===a?ft(n):"".concat(ft(n),"..").concat(ft(a))].filter((function(e){return!!e})).join(":"),c=null==i?void 0:i.total;return C.createElement("div",{ref:t},C.createElement("table",null,C.createElement("caption",null,s),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,c),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/(c||a.total||1)*100),"%")),C.createElement("td",null,o[-1]?"".concat(o[-1],"(-)"):"",o[1]?"".concat(o[1],"(+)"):""),C.createElement("td",null,r))}))})))))})),gt=b.observer((function(e){var t=e.model.featureUnderMouse;return t&&"skip"===t.get("type")?null:C.createElement(p.Tooltip,Object.assign({TooltipContents:dt},e))}));function ht(e,t,r,n){return mt.apply(this,arguments)}function mt(){return(mt=Q(he.mark((function e(t,n,a,o){var i,s,c,l;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=r.getSession(t),s=i.rpcManager,c=t.adapterConfig,l=P.getRpcSessionId(t),e.next=5,s.call(P.getRpcSessionId(t),"PileupGetGlobalValueForTag",J({adapterConfig:c,tag:n.tag,sessionId:l,regions:a.contentBlocks},o));case 5:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function yt(e,t,r,n,a){return vt.apply(this,arguments)}function vt(){return(vt=Q(he.mark((function e(t,n,a,o,i){var s,c,l;return he.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=r.getSession(t),c=s.rpcManager,l=P.getRpcSessionId(t),e.next=4,c.call(l,"PileupGetVisibleModifications",J({adapterConfig:n,tag:a.tag,sessionId:l,regions:o.contentBlocks},i));case 4:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var bt=new Map([["snpcoverage","SNPCoverageRenderer"]]),wt=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,yt(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 gt},get adapterConfig(){return{type:"SNPCoverageAdapter",subadapter:a.getConf(e.parentTrack,"adapter")}},get rendererTypeName(){return bt.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,c=o.value;t.push("jexl:get(feature,'snpinfo') != undefined ? true : "+'"'.concat(c,"\" =='*' ? getTag(feature,\"").concat(s,'") != undefined : ')+'getTag(feature,"'.concat(s,'") == "').concat(c,'"'))}i&&t.push("jexl:get(feature,'snpinfo') != undefined ? true : "+"get(feature,'name') == \"".concat(i,'"'))}return new T({filters:t})}}}))};function Ct(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},multiTicks:{type:"boolean",description:"Display multiple values for the ticks",defaultValue:!1},renderers:a.ConfigurationSchema("RenderersConfiguration",{SNPCoverageRenderer:t})},{baseConfiguration:x.baseLinearDisplayConfigSchema,explicitlyTyped:!0})}(e);return new S({name:"LinearSNPCoverageDisplay",configSchema:t,stateModel:wt(e,t),trackType:"AlignmentsTrack",viewType:"LinearGenomeView",ReactComponent:p.LinearWiggleDisplayReactComponent})}))}function St(e){var t=e.model,r=t.sortedBy;return r?C.createElement("div",{"data-testid":"blurb-".concat(t.sortedBy),style:{backgroundColor:"white"}},C.createElement(F,{color:"secondary",variant:"caption"},t.sortedBy?"Sorted by ".concat(r.type.toLowerCase()," at ").concat(r.refName,":").concat(r.pos):null)):null}var xt=b.observer(St),kt=["uniqueId"],_t=w.lazy((function(){return Promise.resolve().then((function(){return Qt}))})),Et=w.lazy((function(){return Promise.resolve().then((function(){return er}))})),Tt=w.lazy((function(){return Promise.resolve().then((function(){return nr}))})),Pt=w.lazy((function(){return Promise.resolve().then((function(){return ir}))})),Rt=w.lazy((function(){return Promise.resolve().then((function(){return lr}))})),Mt=w.lazy((function(){return Promise.resolve().then((function(){return dr}))})),Nt=new Map([["pileup","PileupRenderer"],["svg","SvgFeatureRenderer"]]),At=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,c,l,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,c=r.getContainingView(e),null==s||!s.tag){t.next=9;break}return t.next=7,ht(e,s,c.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,yt(e,a.getConf(e.parentTrack,["adapter"]),s,c.staticBlocks);case 12:e.updateModificationColorMap(t.sent);case 14:if(!i){t.next=23;break}return p={start:l=i.pos,end:l+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(c.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(),kt),a=r.getSession(e);N(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=Nt.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:A,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 xt},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,c=o.value;t.push('jexl:"'.concat(c,"\" =='*' ? getTag(feature,\"").concat(s,'") != undefined : getTag(feature,"').concat(s,'") == "').concat(c,'"'))}return i&&t.push("jexl:get(feature,'name') == \"".concat(i,'"')),new T({filters:t})},renderProps:function(){var t=r.getContainingView(e),a=e.colorTagMap,o=e.modificationTagMap,i=e.sortedBy,s=e.colorBy,c=e.rpcDriverName,l=n();return J(J({},l),{},{notReady:l.notReady||!e.ready||i&&e.currBpPerPx!==t.bpPerPx,rpcDriverName:c,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:R,type:"checkbox",checked:e.showSoftClipping,onClick:function(){e.toggleSoftClipping(),e.showSoftClipping&&e.clearSelected()}},{label:"Sort by",icon:B,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[Tt,{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:"Per-base lettering",onClick:function(){e.setColorScheme({type:"perBaseLettering"})}},{label:"Modifications or methylation",onClick:function(){r.getSession(e).queueDialog((function(t){return[Mt,{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[_t,{model:e,handleClose:t}]}))}}]},{label:"Filter by",icon:I,onClick:function(){r.getSession(e).queueDialog((function(t){return[Et,{model:e,handleClose:t}]}))}},{label:"Set feature height",onClick:function(){r.getSession(e).queueDialog((function(t){return[Pt,{model:e,handleClose:t}]}))}},{label:"Set max height",onClick:function(){r.getSession(e).queueDialog((function(t){return[Rt,{model:e,handleClose:t}]}))}},{label:"Fade mismatches by quality",type:"checkbox",checked:e.mismatchAlphaSetting,onClick:function(){e.toggleMismatchAlpha()}}])}}}))};function Bt(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:At(t),trackType:"AlignmentsTrack",viewType:"LinearGenomeView",ReactComponent:x.BaseLinearDisplayComponent})}))}function Dt(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 It=a.ConfigurationSchema("AlignmentsFeatureWidget",{});function Ft(e){return o.types.model("AlignmentsFeatureWidget",{id:O.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 Lt(e){e.addWidgetType((function(){return new q({name:"AlignmentsFeatureWidget",heading:"Feature details",configSchema:It,stateModel:Ft(e),ReactComponent:w.lazy((function(){return Promise.resolve().then((function(){return Cr}))}))})}))}var Ot=function(e){ee(o,j);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,c;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 c=e.sent,e.abrupt("return",oe(te(o.prototype),"serializeArguments",this).call(this,c,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,c,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 c=e.sent.dataAdapter.getFeaturesInMultipleRegions(i),e.next=10,c.pipe(l.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}(),qt=function(e){ee(o,j);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,c;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 c=e.sent,e.abrupt("return",oe(te(o.prototype),"serializeArguments",this).call(this,c,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,c,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(l.toArray()).toPromise();case 10:return c=e.sent,u=new Set,c.forEach((function(e){var t=De(e,"MM","Mm")||"";void 0!==t&&ke(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}(),jt=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){[Re,Te,Bt,Ct,Dt,Ue,Ne,it,Ze,pt,Lt].map((function(t){return t(e)})),e.addToExtensionPoint("Core-guessAdapterForLocation",(function(e){return function(t,r,n){var a=P.getFileName(t),o={type:"CramAdapter",cramLocation:t,craiLocation:r||P.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=P.getFileName(t),o=r&&P.getFileName(r),i={type:"BamAdapter",bamLocation:t,index:{location:r||P.makeIndex(t,".bai"),indexType:P.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 Ot(e)})),e.addRpcMethod((function(){return new qt(e)}))}}]),n}(),Ht=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(c){var l=c.code,u=c.refPos,p=c.sub,f=c.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"===l){var d=f.split(","),g=String.fromCharCode.apply(String,se(d));e+=g,i+=g.length,n+=g.length}else"B"===l||"X"===l?(e+=p,i++,n++):"D"===l||"N"===l?(i+=f,n&&(t+=n+r),t+=f+l,n=0):"I"===l||"S"===l?(e+=f,n&&(t+=n+r),t+=f.length+l,n=0):"i"===l?(e+=f,n&&(t+=n+r),t+="".concat(1,"I"),n=0):"P"===l?(n&&(t+=n+r),t+="".concat(f,"P")):"H"===l&&(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_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 c=o;n.push({start:i,type:"hardclip",base:"H".concat(c),cliplen:c,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}}]),e}(),zt={__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,c;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 H.IndexedCramFile({cramFilehandle:z.openLocation(t,this.pluginManager),index:new H.CraiIndex({filehandle:z.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((c=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:c});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(l.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,c,l,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=[],c={},(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;c[r]=t,s[t]=r}}))})),l=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:c,readGroups:l},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,l=e.refName,u=e.start,p=e.end,f=e.originalRefName;return c.ObservableCreate(function(){var e=Q(he.mark((function e(a){var i,c,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(c=(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(l))){e.next=20;break}return f&&(n.seqIdToOriginalRefName[g]=f),e.next=15,c.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",l);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 Ht(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}()},Vt=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:"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_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_mismatches",value:function(){return Ce(this.get("CIGAR"),this.get("MD"),this.get("seq"),this.ref,this.qualRaw())}},{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}(),Gt=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;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=new V.BamFile({bamFilehandle:z.openLocation(t,this.pluginManager),csiFilehandle:"CSI"===n?z.openLocation(r,this.pluginManager):void 0,baiFilehandle:"CSI"!==n?z.openLocation(r,this.pluginManager):void 0,chunkSizeLimit:Infinity,fetchSizeLimit:Infinity,yieldThreadTime:Infinity}),i=a.readConfObject(this.config,"sequenceAdapter"),this.configured=i&&this.getSubAdapter?this.getSubAdapter(i).then((function(e){return{bam:o,sequenceAdapter:e.dataAdapter}})):Promise.resolve({bam:o})),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;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(l.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,c=e.get("seq")||e.get("residues");i+=c.substr(o,s)})),i.length===n-r){e.next=17;break}throw new Error("sequence fetch failed: fetching ".concat(t,":").concat((r-1).toLocaleString(),"-").concat(n.toLocaleString()," returned ").concat(i.length.toLocaleString()," bases, but should have returned ").concat((n-r).toLocaleString()));case 17:return e.abrupt("return",i);case 18: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,l=t||{},u=l.signal,p=l.statusCallback,f=void 0===p?function(){}:p;return c.ObservableCreate(function(){var e=Q(he.mark((function e(c){var l,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 l=e.sent.bam,e.next=6,n.setup(t);case 6:return f("Downloading alignments"),e.next=9,l.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:c.next(new Vt(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(""),c.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=12;break}return e.next=7,r.bytesForRegions(t,o);case 7:return i=e.sent,s=a.readConfObject(this.config,"fetchSizeLimit"),e.abrupt("return",{bytes:i,fetchSizeLimit:s});case 12:return e.abrupt("return",oe(te(g.prototype),"estimateRegionsStats",this).call(this,t,n));case 13: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}(),Wt={__proto__:null,default:Gt},Ut={__proto__:null,default:function(e){ee(n,Gt);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}()},Jt=E.makeStyles((function(e){return{root:{width:300},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Xt(e){var t=Jt(),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(E.Dialog,{open:!0,onClose:n},C.createElement(E.DialogTitle,null,"Color by tag",C.createElement(E.IconButton,{"aria-label":"close",className:t.closeButton,onClick:n},C.createElement(G,null))),C.createElement(E.DialogContent,{style:{overflowX:"hidden"}},C.createElement(E.Typography,null,"Enter tag to color by: "),C.createElement(E.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(E.TextField,{value:o,onChange:function(e){return 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(E.DialogActions,null,C.createElement(E.Button,{variant:"contained",color:"primary",onClick:function(){r.setColorScheme({type:"tag",tag:o}),n()},disabled:!s},"Submit"),C.createElement(E.Button,{variant:"contained",color:"secondary",onClick:n},"Cancel"))))}var Qt={__proto__:null,default:b.observer(Xt)},Zt=E.makeStyles((function(e){return{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)}}})),$t=["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 Yt(e){var t=e.flag,r=void 0===t?0:t,n=e.setFlag;return C.createElement(C.Fragment,null,C.createElement(E.TextField,{type:"number",value:r,onChange:function(e){return n(+e.target.value)}}),$t.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 Kt(e){var t,r,n=e.model,a=e.handleClose,o=Zt(),i=n.filterBy,s=ie(w.useState(null==i?void 0:i.flagInclude),2),c=s[0],l=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(E.Dialog,{open:!0,onClose:a},C.createElement(E.DialogTitle,null,"Filter options",C.createElement(E.IconButton,{"aria-label":"close",className:o.closeButton,onClick:a},C.createElement(G,null))),C.createElement(E.DialogContent,null,C.createElement(E.Typography,null,"Set filter bitmask options. Refer to ",C.createElement(E.Link,{href:_},_)," ","for details"),C.createElement(E.Paper,{className:o.paper,variant:"outlined"},C.createElement("div",{style:{display:"flex"}},C.createElement("div",null,C.createElement(E.Typography,null,"Read must have ALL these flags"),C.createElement(Yt,{flag:c,setFlag:l})),C.createElement("div",null,C.createElement(E.Typography,null,"Read must have NONE of these flags"),C.createElement(Yt,{flag:p,setFlag:f})))),C.createElement(E.Paper,{className:o.paper,variant:"outlined"},C.createElement(E.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(E.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(E.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(E.Paper,{className:o.paper,variant:"outlined"},C.createElement(E.Typography,null,"Filter by read name"),C.createElement(E.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(E.DialogActions,null,C.createElement(E.Button,{variant:"contained",color:"primary",autoFocus:!0,type:"submit",onClick:function(){n.setFilterBy({flagInclude:c,flagExclude:p,readName:S,tagFilter:""!==g?{tag:g,value:y}:void 0}),a()}},"Submit"),C.createElement(E.Button,{variant:"contained",color:"secondary",onClick:function(){return a()}},"Cancel"))))}var er={__proto__:null,default:b.observer(Kt)},tr=E.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 rr(e){var t=tr(),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(E.Dialog,{open:!0,onClose:n},C.createElement(E.DialogTitle,null,"Sort by tag",C.createElement(E.IconButton,{"aria-label":"close",className:t.closeButton,onClick:n},C.createElement(G,null))),C.createElement(E.DialogContent,null,C.createElement(E.Typography,null,"Set the tag to sort by"),C.createElement(E.Typography,{color:"textSecondary"},"Examples: HP for haplotype, RG for read group, etc."),C.createElement(E.TextField,{value:o,onChange:function(e){return 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(E.DialogActions,null,C.createElement(E.Button,{variant:"contained",color:"primary",type:"submit",autoFocus:!0,onClick:function(){r.setSortedBy("tag",o),n()}},"Submit"),C.createElement(E.Button,{variant:"contained",color:"secondary",onClick:function(){return n()}},"Cancel"))))}var nr={__proto__:null,default:b.observer(rr)},ar=E.makeStyles((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function or(e){var t=ar(),r=e.model,n=e.handleClose,a=r.noSpacing,o=ie(w.useState("".concat(r.featureHeightSetting)),2),i=o[0],s=o[1],c=ie(w.useState(a),2),l=c[0],u=c[1],p=""!==i&&!Number.isNaN(+i);return C.createElement(E.Dialog,{open:!0,onClose:n},C.createElement(E.DialogTitle,null,"Set feature height",C.createElement(E.IconButton,{className:t.closeButton,onClick:n},C.createElement(G,null))),C.createElement(E.DialogContent,null,C.createElement(E.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(E.TextField,{value:i,helperText:"Feature height",onChange:function(e){s(e.target.value)}}),C.createElement(E.FormControlLabel,{control:C.createElement(E.Checkbox,{checked:!!l,onChange:function(){return u((function(e){return!e}))}}),label:"Remove spacing between features in y-direction?"}),C.createElement(E.DialogActions,null,C.createElement(E.Button,{variant:"contained",color:"primary",type:"submit",autoFocus:!0,disabled:!p,onClick:function(){r.setFeatureHeight(""===i||Number.isNaN(+i)?void 0:+i),r.setNoSpacing(l),n()}},"Submit"),C.createElement(E.Button,{variant:"contained",color:"secondary",onClick:function(){return n()}},"Cancel"))))}var ir={__proto__:null,default:b.observer(or)},sr=E.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 cr(e){var t=e.model,r=e.handleClose,n=sr(),a=t.maxHeight,o=ie(w.useState("".concat(void 0===a?"":a)),2),i=o[0],s=o[1];return C.createElement(E.Dialog,{open:!0,onClose:r},C.createElement(E.DialogTitle,null,"Filter options",C.createElement(E.IconButton,{"aria-label":"close",className:n.closeButton,onClick:r},C.createElement(G,null))),C.createElement(E.DialogContent,{className:n.root},C.createElement(E.Typography,null,'Set max height for the track. For example, you can increase this if the layout says "Max height reached"'),C.createElement(E.TextField,{value:i,onChange:function(e){s(e.target.value)},placeholder:"Enter max height for layout"}),C.createElement(E.DialogActions,null,C.createElement(E.Button,{variant:"contained",color:"primary",type:"submit",autoFocus:!0,onClick:function(){t.setMaxHeight(""===i||Number.isNaN(+i)?void 0:+i),r()}},"Submit"),C.createElement(E.Button,{variant:"contained",color:"secondary",onClick:function(){return r()}},"Cancel"))))}var lr={__proto__:null,default:b.observer(cr)},ur=E.makeStyles((function(e){return{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 pr(e){var t=e.modifications,r=ur();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 fr(e){var t=ur(),r=e.model,n=e.handleClose,a=r.colorBy,o=r.modificationTagMap,i=se(o.entries());return C.createElement(E.Dialog,{open:!0,onClose:n},C.createElement(E.DialogTitle,null,"Color by modifications",C.createElement(E.IconButton,{"aria-label":"close",className:t.closeButton,onClick:n},C.createElement(G,null))),C.createElement(E.DialogContent,null,C.createElement(E.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(E.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(pr,{modifications:se(o.entries())})):C.createElement("div",null,C.createElement(E.Typography,null,"Note: color by modifications is already enabled. Loading current modifications..."),C.createElement(E.CircularProgress,{size:15}))):null,"methylation"===(null==a?void 0:a.type)?C.createElement(pr,{modifications:[["methylated","red"],["unmethylated","blue"]]}):null),C.createElement(E.DialogActions,null,C.createElement(E.Button,{variant:"contained",color:"primary",style:{margin:5},onClick:function(){r.setColorScheme({type:"modifications"}),n()}},"Modifications"),C.createElement(E.Button,{variant:"contained",color:"primary",style:{margin:5},onClick:function(){r.setColorScheme({type:"methylation"}),n()}},"Methylation"),C.createElement(E.Button,{variant:"contained",color:"secondary",style:{margin:5},onClick:function(){return n()}},"Cancel"))))}var dr={__proto__:null,default:b.observer(fr)},gr=E.makeStyles((function(){return{compact:{paddingRight:0,paddingTop:0,paddingBottom:0}}})),hr=["clipPos","flags"];function mr(e){var t=gr(),r=e.feature.flags;return C.createElement(W.BaseCard,Object.assign({},e,{title:"Flags"}),C.createElement(W.SimpleValue,{name:"Flag",value:r}),C.createElement(E.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(E.FormControlLabel,{key:o,control:C.createElement(E.Checkbox,{className:t.compact,checked:Boolean(a),name:e,readOnly:!0}),label:e})}))))}function yr(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 N(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 vr(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(E.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],c=function(e){for(var t=ve(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]),l=Math.floor(c/5),u=+i,p=+i+c,f="".concat(o,":").concat(Math.max(1,u-l),"-").concat(p+l),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(E.Link,{onClick:function(){var e=n.view;try{if(!e)throw new Error("No view associated with this view anymore");e.navToLocString(f)}catch(e){console.error(e),a.notify("".concat(e))}},href:"#"},h))}))))}function br(e){var t=e.locString,n=e.model,a=r.getSession(n);return C.createElement(E.Link,{onClick:function(){var e=n.view;try{e?e.navToLocString(t):a.notify("No view associated with this feature detail panel anymore","warning")}catch(e){console.error(e),a.notify("".concat(e))}},href:"#"},t)}function wr(e){var t=e.model,r=JSON.parse(JSON.stringify(t.featureData)),n=r.tags&&r.tags.SA||r.SA;return C.createElement(E.Paper,{"data-testid":"alignment-side-drawer"},C.createElement(W.FeatureDetails,Object.assign({},e,{omit:hr,feature:r,formatter:function(e,r){return"next_segment_position"===r?C.createElement(br,{model:t,locString:e}):C.createElement(yr,{value:e})}})),n?C.createElement(vr,{model:t,tag:n}):null,C.createElement(mr,Object.assign({feature:r},e)))}var Cr={__proto__:null,default:b.observer(wr)};exports.MismatchParser=_e,exports.default=jt;
|
|
2
|
-
//# sourceMappingURL=plugin-alignments.cjs.production.min.js.map
|