@jbrowse/plugin-alignments 1.4.1 → 1.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AlignmentsFeatureDetail/index.d.ts +7 -4
- package/dist/AlignmentsTrack/index.d.ts +2 -0
- package/dist/BamAdapter/index.d.ts +2 -4
- package/dist/CramAdapter/index.d.ts +1 -4
- package/dist/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +2 -1
- package/dist/HtsgetBamAdapter/index.d.ts +2 -4
- package/dist/LinearAlignmentsDisplay/index.d.ts +2 -3
- package/dist/LinearAlignmentsDisplay/models/model.d.ts +6 -6
- package/dist/LinearPileupDisplay/index.d.ts +2 -2
- package/dist/LinearPileupDisplay/model.d.ts +9 -10
- package/dist/LinearSNPCoverageDisplay/components/Tooltip.d.ts +1 -1
- package/dist/LinearSNPCoverageDisplay/index.d.ts +2 -2
- package/dist/LinearSNPCoverageDisplay/models/model.d.ts +3 -2
- package/dist/PileupRPC/rpcMethods.d.ts +2 -16
- package/dist/PileupRenderer/PileupRenderer.d.ts +20 -7
- package/dist/PileupRenderer/index.d.ts +2 -3
- package/dist/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +38 -26
- package/dist/SNPCoverageAdapter/index.d.ts +1 -5
- package/dist/SNPCoverageRenderer/index.d.ts +3 -3
- package/dist/plugin-alignments.cjs.development.js +4488 -4254
- package/dist/plugin-alignments.cjs.development.js.map +1 -1
- package/dist/plugin-alignments.cjs.production.min.js +1 -1
- package/dist/plugin-alignments.cjs.production.min.js.map +1 -1
- package/dist/plugin-alignments.esm.js +4485 -4251
- package/dist/plugin-alignments.esm.js.map +1 -1
- package/package.json +4 -4
- package/src/AlignmentsFeatureDetail/index.test.js +2 -4
- package/src/AlignmentsFeatureDetail/{index.js → index.ts} +19 -3
- package/src/AlignmentsTrack/index.ts +36 -0
- package/src/BamAdapter/BamAdapter.test.ts +8 -0
- package/src/BamAdapter/BamAdapter.ts +11 -5
- package/src/BamAdapter/BamSlightlyLazyFeature.ts +9 -19
- package/src/BamAdapter/MismatchParser.test.ts +24 -2
- package/src/BamAdapter/MismatchParser.ts +6 -5
- package/src/BamAdapter/configSchema.ts +5 -2
- package/src/BamAdapter/index.ts +11 -5
- package/src/CramAdapter/CramAdapter.test.ts +6 -0
- package/src/CramAdapter/CramAdapter.ts +4 -2
- package/src/CramAdapter/CramTestAdapters.ts +2 -1
- package/src/CramAdapter/configSchema.ts +8 -2
- package/src/CramAdapter/index.ts +11 -4
- package/src/HtsgetBamAdapter/HtsgetBamAdapter.ts +2 -2
- package/src/HtsgetBamAdapter/index.ts +18 -5
- package/src/LinearAlignmentsDisplay/index.ts +20 -3
- package/src/LinearAlignmentsDisplay/models/configSchema.test.js +8 -69
- package/src/LinearPileupDisplay/configSchema.test.js +2 -13
- package/src/LinearPileupDisplay/configSchema.ts +4 -6
- package/src/LinearPileupDisplay/index.ts +19 -2
- package/src/LinearPileupDisplay/model.ts +53 -51
- package/src/LinearSNPCoverageDisplay/components/Tooltip.tsx +17 -12
- package/src/LinearSNPCoverageDisplay/index.ts +19 -2
- package/src/LinearSNPCoverageDisplay/models/configSchema.test.js +2 -13
- package/src/LinearSNPCoverageDisplay/models/model.ts +23 -6
- package/src/PileupRPC/rpcMethods.ts +8 -2
- package/src/PileupRenderer/PileupRenderer.tsx +154 -128
- package/src/PileupRenderer/components/PileupRendering.tsx +4 -8
- package/src/PileupRenderer/configSchema.ts +2 -2
- package/src/PileupRenderer/index.ts +16 -3
- package/src/SNPCoverageAdapter/SNPCoverageAdapter.ts +95 -25
- package/src/SNPCoverageAdapter/index.ts +17 -5
- package/src/SNPCoverageRenderer/SNPCoverageRenderer.ts +62 -15
- package/src/SNPCoverageRenderer/configSchema.js +5 -0
- package/src/SNPCoverageRenderer/index.ts +24 -0
- package/src/index.ts +91 -165
- package/src/SNPCoverageAdapter/SNPCoverageAdapter.test.ts +0 -269
- package/src/SNPCoverageAdapter/__snapshots__/SNPCoverageAdapter.test.ts.snap +0 -579
- package/src/SNPCoverageRenderer/index.js +0 -11
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),r=e(t),n=require("@jbrowse/core/configuration"),a=e(require("@jbrowse/core/pluggableElementTypes/AdapterType")),o=e(require("@jbrowse/core/pluggableElementTypes/DisplayType")),i=require("@jbrowse/core/pluggableElementTypes/models"),l=e(require("@jbrowse/core/pluggableElementTypes/TrackType")),s=e(require("@jbrowse/core/pluggableElementTypes/WidgetType")),c=e(require("@jbrowse/core/Plugin")),u=require("@jbrowse/plugin-linear-genome-view"),p=require("@jbrowse/plugin-wiggle"),f=require("@jbrowse/core/util/types/mst"),d=require("mobx-state-tree"),g=require("@jbrowse/core/util"),h=e(require("fast-deep-equal")),m=require("mobx"),y=require("mobx-react"),v=require("@jbrowse/core/ui"),b=require("@jbrowse/core/util/tracks"),C=e(require("@material-ui/icons/Visibility")),w=require("@jbrowse/core/ui/Icons"),S=e(require("copy-to-clipboard")),x=e(require("@material-ui/icons/MenuOpen")),_=e(require("@material-ui/icons/Sort")),k=e(require("@material-ui/icons/Palette")),E=e(require("@material-ui/icons/ClearAll")),P=e(require("@jbrowse/core/pluggableElementTypes/renderers/util/serializableFilterChain")),T=e(require("@material-ui/core/Typography")),R=require("rxjs/operators"),M=require("@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType"),N=e(M),B=e(require("color")),D=require("@jbrowse/core/util/offscreenCanvasUtils"),A=require("@jbrowse/core/data_adapters/dataAdapterCache"),I=require("@jbrowse/core/util/range"),L=require("@jbrowse/core/data_adapters/BaseAdapter"),q=e(require("@jbrowse/core/util/simpleFeature")),F=require("@jbrowse/core/util/rxjs"),O=e(require("@jbrowse/core/pluggableElementTypes/RpcMethodType")),j=require("@gmod/bam"),H=require("@jbrowse/core/util/io"),V=require("@gmod/cram"),z=require("@material-ui/core"),G=e(require("@material-ui/icons/Close")),W=require("@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail");function U(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function J(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?U(Object(r),!0).forEach((function(t){K(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):U(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function X(e,t,r,n,a,o,i){try{var l=e[o](i),s=l.value}catch(e){return void r(e)}l.done?t(s):Promise.resolve(s).then(n,a)}function Q(e){return function(){var t=this,r=arguments;return new Promise((function(n,a){var o=e.apply(t,r);function i(e){X(o,n,a,i,l,"next",e)}function l(e){X(o,n,a,i,l,"throw",e)}i(void 0)}))}}function Z(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Y(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 $(e,t,r){return t&&Y(e.prototype,t),r&&Y(e,r),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}}),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){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}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,r){return(ae="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=te(e)););return e}(e,t);if(n){var a=Object.getOwnPropertyDescriptor(n,t);return a.get?a.get.call(r):a.value}})(e,t,r||e)}function oe(e,t){return le(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o=[],i=!0,l=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);i=!0);}catch(e){l=!0,a=e}finally{try{i||null==r.return||r.return()}finally{if(l)throw a}}return o}}(e,t)||ce(e,t)||pe()}function ie(e){return function(e){if(Array.isArray(e))return ue(e)}(e)||se(e)||ce(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function le(e){if(Array.isArray(e))return e}function se(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function ce(e,t){if(e){if("string"==typeof e)return ue(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)?ue(e,t):void 0}}function ue(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 pe(){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 fe(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=ce(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,l=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){l=!0,o=e},f:function(){try{i||null==r.return||r.return()}finally{if(l)throw o}}}}var de=n.ConfigurationSchema("AlignmentsFeatureWidget",{});function ge(e){return d.types.model("AlignmentsFeatureWidget",{id:f.ElementId,type:d.types.literal("AlignmentsFeatureWidget"),featureData:d.types.frozen(),view:d.types.safeReference(e.pluggableMstType("view","stateModel"))}).actions((function(e){return{setFeatureData:function(t){e.featureData=t},clearFeatureData:function(){e.featureData=void 0}}}))}var he=d.types.late((function(){return n.ConfigurationSchema("BamAdapter",{bamLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bam"}},index:n.ConfigurationSchema("BamIndex",{indexType:{model:d.types.enumeration("IndexType",["BAI","CSI"]),type:"stringEnum",defaultValue:"BAI"},location:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bam.bai"}}}),chunkSizeLimit:{type:"number",defaultValue:1e8},fetchSizeLimit:{type:"number",defaultValue:5e8},sequenceAdapter:{type:"frozen",defaultValue:null}},{explicitlyTyped:!0})})),me=function(){return{configSchema:he,getAdapterClass:function(){return Promise.resolve().then((function(){return Tt})).then((function(e){return e.default}))}}};function ye(e,t){return e(t={exports:{}},t.exports),t.exports}var ve=ye((function(e){var t=function(e){var t=Object.prototype,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",o=n.asyncIterator||"@@asyncIterator",i=n.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function s(e,t,r,n){var a=Object.create((t&&t.prototype instanceof p?t:p).prototype),o=new x(n||[]);return a._invoke=function(e,t,r){var n="suspendedStart";return function(a,o){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===a)throw o;return{value:void 0,done:!0}}for(r.method=a,r.arg=o;;){var i=r.delegate;if(i){var l=C(i,r);if(l){if(l===u)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var s=c(e,t,r);if("normal"===s.type){if(n=r.done?"completed":"suspendedYield",s.arg===u)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(n="completed",r.method="throw",r.arg=s.arg)}}}(e,r,o),a}function c(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=s;var u={};function p(){}function f(){}function d(){}var g={};g[a]=function(){return this};var h=Object.getPrototypeOf,m=h&&h(h(_([])));m&&m!==t&&r.call(m,a)&&(g=m);var y=d.prototype=p.prototype=Object.create(g);function v(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){var n;this._invoke=function(a,o){function i(){return new t((function(n,i){!function n(a,o,i,l){var s=c(e[a],e,o);if("throw"!==s.type){var u=s.arg,p=u.value;return p&&"object"==typeof p&&r.call(p,"__await")?t.resolve(p.__await).then((function(e){n("next",e,i,l)}),(function(e){n("throw",e,i,l)})):t.resolve(p).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,l)}))}l(s.arg)}(a,o,n,i)}))}return n=n?n.then(i,i):i()}}function C(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,C(e,t),"throw"===t.method))return u;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var n=c(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,u;var a=n.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,u):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,u)}function w(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function x(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function _(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:k}}function k(){return{value:void 0,done:!0}}return f.prototype=y.constructor=d,d.constructor=f,f.displayName=l(d,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===f||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,d):(e.__proto__=d,l(e,i,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},v(b.prototype),b.prototype[o]=function(){return this},e.AsyncIterator=b,e.async=function(t,r,n,a,o){void 0===o&&(o=Promise);var i=new b(s(t,r,n,a),o);return e.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},v(y),l(y,i,"Generator"),y[a]=function(){return this},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=_,x.prototype={constructor:x,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(S),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],i=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var l=r.call(o,"catchLoc"),s=r.call(o,"finallyLoc");if(l&&s){if(this.prev<o.catchLoc)return n(o.catchLoc,!0);if(this.prev<o.finallyLoc)return n(o.finallyLoc)}else if(l){if(this.prev<o.catchLoc)return n(o.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return n(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,u):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),u},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var a=n.arg;S(r)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:_(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),u}},e}(e.exports);try{regeneratorRuntime=t}catch(e){Function("r","regeneratorRuntime = r")(t)}})),be=ve.mark(_e);function Ce(e){return(e||"").split(/([MIDNSHPX=])/)}function we(e,t,r){for(var n=0,a=0,o=[],i=0;i<e.length-1;i+=2){var l=+e[i],s=e[i+1];if("M"!==s&&"="!==s&&"E"!==s||(a+=l),"I"===s)o.push({start:n,type:"insertion",base:"".concat(l),length:0}),a+=l;else if("D"===s)o.push({start:n,type:"deletion",base:"*",length:l});else if("N"===s)o.push({start:n,type:"skip",base:"N",length:l});else if("X"===s){for(var c=t.slice(a,a+l),u=(null==r?void 0:r.slice(a,a+l))||[],p=0;p<l;p++)o.push({start:n+p,type:"mismatch",base:c[p],qual:u[p],length:1});a+=l}else"H"===s?o.push({start:n,type:"hardclip",base:"H".concat(l),cliplen:l,length:1}):"S"===s&&(o.push({start:n,type:"softclip",base:"S".concat(l),cliplen:l,length:1}),a+=l);"I"!==s&&"S"!==s&&"H"!==s&&(n+=l)}return o}function Se(e,t,r,n,a){var o=[],i={start:0,base:"",length:0,type:"mismatch"},l=r.filter((function(e){return"skip"===e.type})),s=0,c=0,u=0,p=0;function f(){o.push(i),i={start:i.start+i.length,length:0,base:"",type:"mismatch"}}function d(e){for(var r=c,n=u,a=s;a<t.length&&n<=e;s=a+=2){var o=+t[a],i=t[a+1];"S"===i||"I"===i?r+=o:"D"===i||"P"===i||"N"===i?n+=o:"H"!==i&&(r+=o,n+=o)}return c=r,u=n,r-(n-e)}for(var g=e.match(/(\d+|\^[a-z]+|[a-z])/gi)||[],h=0;h<g.length;h++){var m=g[h];if(m.match(/^\d/))i.start+=parseInt(m,10);else if(m.match(/^\^/))i.length=m.length-1,i.base="*",i.type="deletion",i.seq=m.substring(1),f();else if(m.match(/^[a-z]/i))for(var y=0;y<m.length;y+=1){for(i.length=1;p<l.length;){var v=l[p];if(!(i.start>=v.start))break;i.start+=v.length,p++}var b=t?d(i.start):i.start;i.base=n?n.substr(b,1):"X";var C=null==a?void 0:a.slice(b,b+1)[0];C&&(i.qual=C),i.altbase=m,f()}}return o}function xe(e,t,r){var n=0,a=0,o=0;if(!e)return console.warn("no ref supplied to generateMD"),"";for(var i=Ce(r),l="",s=0;s<i.length;s+=2){var c=+i[s],u=i[s+1];if("M"===u||"X"===u||"="===u){for(var p=0;p<c;p++)t[n+p].toLowerCase()!==e[a+p].toLowerCase()?(l+="".concat(o).concat(e[a+p].toUpperCase()),o=0):o++;n+=c,a+=c}else if("I"===u)n+=c;else if("D"===u){for(var f="",d=0;d<c;d++)f+=e[a+d].toUpperCase();l+="".concat(o,"^").concat(f),o=0,a+=c}else"N"===u?a+=c:"S"===u&&(n+=c)}return o>0&&(l+=o),l}function _e(e,t){var r,n,a,o,i,l,s;return ve.wrap((function(c){for(;;)switch(c.prev=c.next){case 0:r=0,n=0,a=0,o=0;case 4:if(!(o<t.length)){c.next=12;break}for(i=t[o];r<e.length&&n<i;r+=2)l=+e[r],"S"===(s=e[r+1])||"I"===s?n+=l:"D"===s||"N"===s?a+=l:"M"!==s&&"X"!==s&&"="!==s||(n+=l,a+=l);return c.next=9,t[o]-n+a;case 9:o++,c.next=4;break;case 12:case"end":return c.stop()}}),be)}function ke(e,t,r){var n=-1===r?g.revcom(t):t;return e.split(";").filter((function(e){return!!e})).map((function(e){var t,a=le(t=e.split(","))||se(t)||ce(t)||pe(),o=a[0],i=a.slice(1),l=o.match(/([A-Z])([-+])([^,]+)/);if(!l)throw new Error("bad format for MM tag");var s=oe(l,4),c=s[1],u=s[2],p=s[3].split(/(\d+|.)/).filter((function(e){return!!e}));return"-"===u?(console.warn("unsupported negative strand modifications"),{type:"unsupported",positions:[]}):p.map((function(e){var t=0;return{type:e,positions:i.map((function(e){return+e})).map((function(e){do{"N"!==c&&c!==n[t]||e--,t++}while(e>=0&&t<n.length);var a=t-1;return-1===r?n.length-1-a:a})).sort((function(e,t){return e-t}))}}))})).flat()}function Ee(e){return e.split(";").filter((function(e){return!!e})).map((function(e){var t=oe(e.split(","),1)[0].match(/([A-Z])([-+])([^,]+)/);if(!t)throw new Error("bad format for MM tag");return oe(t,4)[3].split(/(\d+|.)/).filter((function(e){return!!e}))})).flat()}var Pe={__proto__:null,parseCigar:Ce,cigarToMismatches:we,mdToMismatches:Se,getTemplateCoord:function(e,t){for(var r=0,n=0,a=0;a<t.length&&n<=e;a+=2){var o=+t[a],i=t[a+1];"S"===i||"I"===i?r+=o:"D"===i||"P"===i?n+=o:"H"!==i&&(r+=o,n+=o)}return r-(n-e)},getMismatches:function(e,t,r,n){var a=[],o=[];e&&(o=Ce(e),a=a.concat(we(o,r,n))),t&&(a=a.concat(Se(t,o,a,r,n)));var i={};return a.filter((function(e){var t="".concat(e.type,",").concat(e.start,",").concat(e.length),r=i[t];return i[t]=!0,!r}))},generateMD:xe,getNextRefPos:_e,getModificationPositions:ke,getModificationTypes:Ee},Te=function(e){return e.lib["mobx-state-tree"].types.late((function(){return n.ConfigurationSchema("CramAdapter",{cramLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.cram"}},craiLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.cram.crai"}},sequenceAdapter:e.pluggableConfigSchemaType("adapter")},{explicitlyTyped:!0})}))},Re=function(e){return{configSchema:e.load(Te),getAdapterClass:function(){return Promise.resolve().then((function(){return Mt})).then((function(e){return e.default}))}}},Me=d.types.late((function(){return n.ConfigurationSchema("HtsgetBamAdapter",{htsgetBase:{type:"string",defaultValue:""},htsgetTrackId:{type:"string",defaultValue:""},sequenceAdapter:{type:"frozen",defaultValue:null}},{explicitlyTyped:!0})})),Ne=function(){return{configSchema:Me,getAdapterClass:function(){return Promise.resolve().then((function(){return Nt})).then((function(e){return e.default}))}}},Be=function(e,t){return d.types.compose("LinearAlignmentsDisplay",i.BaseDisplay,d.types.model({PileupDisplay:d.types.maybe(e.getDisplayType("LinearPileupDisplay").stateModel),SNPCoverageDisplay:d.types.maybe(e.getDisplayType("LinearSNPCoverageDisplay").stateModel),snpCovHeight:45,type:d.types.literal("LinearAlignmentsDisplay"),configuration:n.ConfigurationReference(t),height:250,showCoverage:!0,showPileup:!0})).volatile((function(){return{scrollTop:0}})).actions((function(e){return{toggleCoverage:function(){e.showCoverage=!e.showCoverage},togglePileup:function(){e.showPileup=!e.showPileup},setScrollTop:function(t){e.scrollTop=t},setSNPCoverageHeight:function(t){e.snpCovHeight=t}}})).views((function(e){var t=e.trackMenuItems;return{get pileupDisplayConfig(){var t=n.getConf(e,"pileupDisplay"),r=g.getContainingTrack(e);return J(J({},t),{},{type:"LinearPileupDisplay",name:"".concat(n.getConf(r,"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=n.getConf(e,"snpCoverageDisplay"),r=g.getContainingTrack(e);return J(J({},t),{},{type:"LinearSNPCoverageDisplay",name:"".concat(n.getConf(r,"name")," snp coverage"),displayId:"".concat(e.configuration.displayId,"_snpcoverage_xyz")})},trackMenuItems:function(){return[].concat(ie(t()),[{type:"subMenu",label:"Pileup settings",subMenu:e.PileupDisplay.trackMenuItems()},{type:"subMenu",label:"SNPCoverage settings",subMenu:e.SNPCoverageDisplay.trackMenuItems()}])}}})).actions((function(e){return{setSNPCoverageDisplay:function(t){e.SNPCoverageDisplay={type:"LinearSNPCoverageDisplay",configuration:t,height:e.snpCovHeight}},setUserBpPerPxLimit:function(t){e.PileupDisplay.setUserBpPerPxLimit(t),e.SNPCoverageDisplay.setUserBpPerPxLimit(t)},setPileupDisplay:function(t){e.PileupDisplay={type:"LinearPileupDisplay",configuration:t}},setHeight:function(t){return e.height=t>20?t:20,e.height},resizeHeight:function(t){var r=e.height;return this.setHeight(e.height+t)-r}}})).actions((function(e){return{afterAttach:function(){d.addDisposer(e,m.autorun((function(){e.SNPCoverageDisplay?h(e.snpCoverageDisplayConfig,d.getSnapshot(e.SNPCoverageDisplay.configuration))||(e.SNPCoverageDisplay.setHeight(e.snpCovHeight),e.SNPCoverageDisplay.setConfig(e.snpCoverageDisplayConfig)):e.setSNPCoverageDisplay(e.snpCoverageDisplayConfig),e.PileupDisplay?h(e.pileupDisplayConfig,d.getSnapshot(e.PileupDisplay.configuration))||e.PileupDisplay.setConfig(e.pileupDisplayConfig):e.setPileupDisplay(e.pileupDisplayConfig),e.PileupDisplay.filterBy&&!h(d.getSnapshot(e.PileupDisplay.filterBy),d.getSnapshot(e.SNPCoverageDisplay.filterBy))&&e.SNPCoverageDisplay.setFilterBy(d.getSnapshot(e.PileupDisplay.filterBy)),e.PileupDisplay.colorBy&&!h(d.getSnapshot(e.PileupDisplay.colorBy),e.SNPCoverageDisplay.colorBy?d.getSnapshot(e.SNPCoverageDisplay.colorBy):{})&&e.SNPCoverageDisplay.setColorBy(d.getSnapshot(e.PileupDisplay.colorBy))}))),d.addDisposer(e,m.autorun((function(){e.setSNPCoverageHeight(e.SNPCoverageDisplay.height)})))},renderSvg:function(t){return Q(ve.mark((function n(){var a;return ve.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return a=e.height-e.SNPCoverageDisplay.height,n.next=3,m.when((function(){return e.PileupDisplay.ready}));case 3:return n.t0=r,n.t1=r.Fragment,n.t2=r,n.next=8,e.SNPCoverageDisplay.renderSvg(t);case 8:return n.t3=n.sent,n.t4=n.t2.createElement.call(n.t2,"g",null,n.t3),n.t5=r,n.t6={transform:"translate(0 ".concat(e.SNPCoverageDisplay.height,")")},n.next=14,e.PileupDisplay.renderSvg(J(J({},t),{},{overrideHeight:a}));case 14:return n.t7=n.sent,n.t8=n.t5.createElement.call(n.t5,"g",n.t6,n.t7),n.abrupt("return",n.t0.createElement.call(n.t0,n.t1,null,n.t4,n.t8));case 17:case"end":return n.stop()}}),n)})))()}}}))};function De(e){var t=e.model,a=t.PileupDisplay,o=t.SNPCoverageDisplay,i=t.showPileup,l=t.showCoverage;return r.createElement("div",{"data-testid":"display-".concat(n.getConf(t,"displayId")),style:{position:"relative"}},r.createElement("div",{"data-testid":"Blockset-snpcoverage"},l?r.createElement(o.RenderingComponent,{model:o}):null),r.createElement(v.ResizeHandle,{onDrag:function(e){return o?(o.setHeight(o.height+e),e):0},style:{position:"absolute",top:l?o.height+2:0,height:3}}),r.createElement("div",{"data-testid":"Blockset-pileup",style:{position:"absolute",top:l?o.height+5:0,height:3}},i?r.createElement(a.RenderingComponent,{model:a}):null))}var Ae=y.observer(De);function Ie(e){var t=e.model,n=t.sortedBy;return n?r.createElement("div",{"data-testid":"blurb-".concat(t.sortedBy),style:{backgroundColor:"white"}},r.createElement(T,{color:"secondary",variant:"caption"},t.sortedBy?"Sorted by ".concat(n.type.toLowerCase()," at ").concat(n.refName,":").concat(n.pos):null)):null}var Le=y.observer(Ie);function qe(e,t,r,n){return Fe.apply(this,arguments)}function Fe(){return(Fe=Q(ve.mark((function e(t,r,n,a){var o,i,l,s;return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=g.getSession(t),i=o.rpcManager,l=t.adapterConfig,s=b.getRpcSessionId(t),e.next=5,i.call(b.getRpcSessionId(t),"PileupGetGlobalValueForTag",J({adapterConfig:l,tag:r.tag,sessionId:s,regions:n.contentBlocks},a));case 5:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Oe(e,t,r,n,a){return je.apply(this,arguments)}function je(){return(je=Q(ve.mark((function e(t,r,n,a,o){var i,l,s;return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=g.getSession(t),l=i.rpcManager,s=b.getRpcSessionId(t),e.next=4,l.call(s,"PileupGetVisibleModifications",J({adapterConfig:r,tag:n.tag,sessionId:s,regions:a.contentBlocks},o));case 4:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var He=t.lazy((function(){return Promise.resolve().then((function(){return At}))})),Ve=t.lazy((function(){return Promise.resolve().then((function(){return Ot}))})),ze=t.lazy((function(){return Promise.resolve().then((function(){return Vt}))})),Ge=t.lazy((function(){return Promise.resolve().then((function(){return Wt}))})),We=t.lazy((function(){return Promise.resolve().then((function(){return Xt}))})),Ue=t.lazy((function(){return Promise.resolve().then((function(){return $t}))})),Je=new Map([["pileup","PileupRenderer"],["svg","SvgFeatureRenderer"]]),Xe=function(e,t){return d.types.compose("LinearPileupDisplay",u.BaseLinearDisplay,d.types.model({type:d.types.literal("LinearPileupDisplay"),configuration:n.ConfigurationReference(t),showSoftClipping:!1,featureHeight:d.types.maybe(d.types.number),noSpacing:d.types.maybe(d.types.boolean),fadeLikelihood:d.types.maybe(d.types.boolean),trackMaxHeight:d.types.maybe(d.types.number),mismatchAlpha:d.types.maybe(d.types.boolean),sortedBy:d.types.maybe(d.types.model({type:d.types.string,pos:d.types.number,tag:d.types.maybe(d.types.string),refName:d.types.string,assemblyName:d.types.string})),colorBy:d.types.maybe(d.types.model({type:d.types.string,tag:d.types.maybe(d.types.string),extra:d.types.frozen()})),filterBy:d.types.optional(d.types.model({flagInclude:d.types.optional(d.types.number,0),flagExclude:d.types.optional(d.types.number,1540),readName:d.types.maybe(d.types.string),tagFilter:d.types.maybe(d.types.model({tag:d.types.string,value:d.types.string}))}),{})})).volatile((function(){return{colorTagMap:m.observable.map({}),modificationTagMap:m.observable.map({}),ready:!1,currBpPerPx:0}})).actions((function(e){return{setReady:function(t){e.ready=t},setCurrBpPerPx:function(t){e.currBpPerPx=t},setMaxHeight:function(t){e.trackMaxHeight=t},setFeatureHeight:function(t){e.featureHeight=t},setNoSpacing:function(t){e.noSpacing=t},setColorScheme:function(t){e.colorTagMap=m.observable.map({}),e.colorBy=d.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=ie(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=ie(e.colorTagMap.keys()).length;e.colorTagMap.set(t,r[n])}}))}}})).actions((function(e){return{afterAttach:function(){d.addDisposer(e,m.autorun(Q(ve.mark((function t(){var r,a,o,i,l,s,c,u;return ve.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,r=g.getSession(e),a=r.rpcManager,o=e.sortedBy,i=e.colorBy,l=g.getContainingView(e),null==i||!i.tag){t.next=9;break}return t.next=7,qe(e,i,l.staticBlocks);case 7:e.updateColorTagMap(t.sent);case 9:if("modifications"!==(null==i?void 0:i.type)){t.next=14;break}return t.next=12,Oe(e,n.getConf(e.parentTrack,["adapter"]),i,l.staticBlocks);case 12:e.updateModificationColorMap(t.sent);case 14:if(!o){t.next=23;break}return u={start:s=o.pos,end:s+1,refName:o.refName,assemblyName:c=o.assemblyName},t.next=19,e.rendererType.renderInClient(a,J({assemblyName:c,regions:[u],adapterConfig:e.adapterConfig,rendererType:e.rendererType.name,sessionId:b.getRpcSessionId(e),timeout:1e6},e.renderProps()));case 19:e.setReady(!0),e.setCurrBpPerPx(l.bpPerPx),t.next=24;break;case 23:e.setReady(!0);case 24:t.next=30;break;case 26:t.prev=26,t.t0=t.catch(0),console.error(t.t0),e.setError(t.t0);case 30:case"end":return t.stop()}}),t,null,[[0,26]])}))),{delay:1e3}))},selectFeature:function(t){var r=g.getSession(e);if(g.isSessionModelWithWidgets(r)){var n=r.addWidget("AlignmentsFeatureWidget","alignmentFeature",{featureData:t.toJSON(),view:g.getContainingView(e)});r.showWidget(n)}r.setSelection(t)},clearSelected:function(){e.sortedBy=void 0},copyFeatureToClipboard:function(t){var r=t.toJSON();delete r.uniqueId;var n=g.getSession(e);S(JSON.stringify(r,null,4)),n.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,r){var n=g.getContainingView(e).centerLineInfo;if(n){var a=n.refName,o=n.assemblyName,i=Math.round(n.offset)+1;i<0||(e.sortedBy={type:t,pos:i,refName:a,assemblyName:o,tag:r},e.ready=!1)}},setFilterBy:function(t){e.filterBy=d.cast(t)}}})).actions((function(e){var t=e.reload;return{reload:function(){e.clearSelected(),t()}}})).views((function(e){return{get maxHeight(){var t=n.getConf(e,["renderers",e.rendererTypeName])||{};return void 0!==e.trackMaxHeight?e.trackMaxHeight:t.maxHeight},get rendererConfig(){var t=n.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}),d.getEnv(e))},get featureHeightSetting(){return e.featureHeight||n.readConfObject(this.rendererConfig,"height")},get mismatchAlphaSetting(){return void 0!==e.mismatchAlpha?e.mismatchAlpha:n.readConfObject(this.rendererConfig,"mismatchAlpha")}}})).views((function(e){var t=e.trackMenuItems,r=e.renderProps;return{get rendererTypeName(){var t=n.getConf(e,"defaultRendering"),r=Je.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:x,onClick:function(){e.clearFeatureSelection(),t&&e.selectFeature(t)}},{label:"Copy info to clipboard",icon:w.ContentCopy,onClick:function(){t&&e.copyFeatureToClipboard(t)}}]:[]},get DisplayBlurb(){return Le},get filters(){var t=[];if(e.filterBy){var r=e.filterBy,n=r.flagInclude,a=r.flagExclude;if(t=["jexl:((get(feature,'flags')&".concat(n,")==").concat(n,") && !(get(feature,'flags')&").concat(a,")")],e.filterBy.tagFilter){var o=e.filterBy.tagFilter,i=o.tag,l=o.value;t.push('jexl:"'.concat(l,"\" =='*' ? getTag(feature,\"").concat(i,'") != undefined : getTag(feature,"').concat(i,'") == "').concat(l,'"'))}e.filterBy.readName&&t.push("jexl:get(feature,'name') == \"".concat(e.filterBy.readName,'"'))}return new P({filters:t})},renderProps:function(){var t=g.getContainingView(e),n=e.ready,a=e.colorTagMap,o=e.modificationTagMap,i=e.sortedBy,l=e.colorBy,s=e.rpcDriverName;return J(J({},r()),{},{notReady:!n||i&&e.currBpPerPx!==t.bpPerPx,rpcDriverName:s,displayModel:e,sortedBy:i,colorBy:l,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(ie(t()),[{label:"Show soft clipping",icon:C,type:"checkbox",checked:e.showSoftClipping,onClick:function(){e.toggleSoftClipping(),e.showSoftClipping&&e.clearSelected()}},{label:"Sort by",icon:_,disabled:e.showSoftClipping,subMenu:[].concat(ie(["Start location","Read strand","Base pair"].map((function(t){return{label:t,onClick:function(){return e.setSortedBy(t)}}}))),[{label:"Sort by tag...",onClick:function(){return g.getSession(e).setDialogComponent(ze,{model:e})}},{label:"Clear sort",onClick:function(){return e.clearSelected()}}])},{label:"Color scheme",icon:k,subMenu:[{label:"Normal",onClick:function(){e.setColorScheme({type:"normal"})}},{label:"Mapping quality",onClick:function(){e.setColorScheme({type:"mappingQuality"})}},{label:"Strand",onClick:function(){e.setColorScheme({type:"strand"})}},{label:"Pair orientation",onClick:function(){e.setColorScheme({type:"pairOrientation"})}},{label:"Per-base quality",onClick:function(){e.setColorScheme({type:"perBaseQuality"})}},{label:"Modifications or methylation",onClick:function(){g.getSession(e).setDialogComponent(Ue,{model:e})}},{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(){g.getSession(e).setDialogComponent(He,{model:e})}}]},{label:"Filter by",icon:E,onClick:function(){g.getSession(e).setDialogComponent(Ve,{model:e})}},{label:"Set feature height",onClick:function(){g.getSession(e).setDialogComponent(Ge,{model:e})}},{label:"Set max height",onClick:function(){g.getSession(e).setDialogComponent(We,{model:e})}},{label:"Fade mismatches by quality",type:"checkbox",checked:e.mismatchAlphaSetting,onClick:function(){e.toggleMismatchAlpha()}}])}}}))},Qe=function(e){return e.toLocaleString("en-US")},Ze=r.forwardRef((function(e,t){var n=e.feature,a=n.get("start"),o=n.get("end"),i=[n.get("refName"),a===o?Qe(a):"".concat(Qe(a),"..").concat(Qe(o))].filter((function(e){return!!e})).join(":"),l=n.get("snpinfo"),s=l.total;return r.createElement("div",{ref:t},r.createElement("table",null,r.createElement("caption",null,i),r.createElement("thead",null,r.createElement("tr",null,r.createElement("th",null,"Base"),r.createElement("th",null,"Count"),r.createElement("th",null,"% of Total"),r.createElement("th",null,"Strands"),r.createElement("th",null,"Source"))),r.createElement("tbody",null,r.createElement("tr",null,r.createElement("td",null,"Total"),r.createElement("td",null,s),r.createElement("td",null)),Object.entries(l).map((function(e){var t=oe(e,2),n=t[0];return Object.entries(t[1]).map((function(e){var t=oe(e,2),a=t[0],o=t[1],i=o.strands;return r.createElement("tr",{key:a},r.createElement("td",null,a.toUpperCase()),r.createElement("td",null,o.total),r.createElement("td",null,"total"===a?"---":"".concat(Math.floor(o.total/s*100),"%")),r.createElement("td",null,i[-1]?"".concat(i[-1],"(-)"):"",i[1]?"".concat(i[1],"(+)"):""),r.createElement("td",null,n))}))})))))})),Ye=y.observer((function(e){return r.createElement(p.Tooltip,Object.assign({TooltipContents:Ze},e))})),$e=new Map([["snpcoverage","SNPCoverageRenderer"]]),Ke=function(e,t){return d.types.compose("LinearSNPCoverageDisplay",p.linearWiggleDisplayModelFactory(e,t),d.types.model({type:d.types.literal("LinearSNPCoverageDisplay"),drawInterbaseCounts:d.types.maybe(d.types.boolean),drawIndicators:d.types.maybe(d.types.boolean),filterBy:d.types.optional(d.types.model({flagInclude:d.types.optional(d.types.number,0),flagExclude:d.types.optional(d.types.number,1540),readName:d.types.maybe(d.types.string),tagFilter:d.types.maybe(d.types.model({tag:d.types.string,value:d.types.string}))}),{}),colorBy:d.types.maybe(d.types.model({type:d.types.string,tag:d.types.maybe(d.types.string)}))})).volatile((function(){return{modificationTagMap:m.observable.map({})}})).actions((function(e){return{setConfig:function(t){e.configuration=t},setFilterBy:function(t){e.filterBy=d.cast(t)},setColorBy:function(t){e.colorBy=d.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=n.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}),d.getEnv(e))},get drawInterbaseCountsSetting(){return void 0!==e.drawInterbaseCounts?e.drawInterbaseCounts:n.readConfObject(this.rendererConfig,"drawInterbaseCounts")},get drawIndicatorsSetting(){return void 0!==e.drawIndicators?e.drawIndicators:n.readConfObject(this.rendererConfig,"drawIndicators")},get modificationsReady(){var t;return"modifications"!==(null===(t=e.colorBy)||void 0===t?void 0:t.type)||Object.keys(JSON.parse(JSON.stringify(e.modificationTagMap))).length>0},renderProps:function(){return J(J({},t()),{},{notReady:!e.ready||!this.modificationsReady,filters:e.filters,modificationTagMap:JSON.parse(JSON.stringify(e.modificationTagMap)),colorBy:e.colorBy?d.getSnapshot(e.colorBy):void 0})}}})).actions((function(e){return{toggleDrawIndicators:function(){e.drawIndicators=!e.drawIndicatorsSetting},toggleDrawInterbaseCounts:function(){e.drawInterbaseCounts=!e.drawInterbaseCountsSetting},afterAttach:function(){d.addDisposer(e,m.autorun(Q(ve.mark((function t(){var r,a,o;return ve.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,r=e.colorBy,a=g.getContainingView(e),o=a.staticBlocks,"modifications"!==(null==r?void 0:r.type)){t.next=8;break}return t.next=6,Oe(e,n.getConf(e.parentTrack,"adapter"),r,o);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 Ye},get adapterConfig(){return{type:"SNPCoverageAdapter",subadapter:n.getConf(e.parentTrack,"adapter")}},get rendererTypeName(){return $e.get("snpcoverage")},get needsScalebar(){return!0},contextMenuItems:function(){return[]},trackMenuItems:function(){return[].concat(ie(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()}}])},get filters(){var t=[];if(e.filterBy){var r=e.filterBy,n=r.flagInclude,a=r.flagExclude,o=r.tagFilter,i=r.readName;if(t=["jexl:get(feature,'snpinfo') != undefined ? true : "+"((get(feature,'flags')&".concat(n,")==").concat(n,") && ")+"!((get(feature,'flags')&".concat(a,"))")],o){var l=o.tag,s=o.value;t.push("jexl:get(feature,'snpinfo') != undefined ? true : "+'"'.concat(s,"\" =='*' ? getTag(feature,\"").concat(l,'") != undefined : ')+'getTag(feature,"'.concat(l,'") == "').concat(s,'"'))}i&&t.push("jexl:get(feature,'snpinfo') != undefined ? true : "+"get(feature,'name') == \"".concat(i,'"'))}return new P({filters:t})}}}))};function et(e){var n=e.onMouseMove,a=e.blockKey,o=e.displayModel,i=e.width,l=e.height,s=e.bpPerPx,c=e.sortedBy,u=e.colorBy,p=o.selectedFeatureId,f=o.featureIdUnderMouse,d=o.contextMenuFeature,h=oe(e.regions,1)[0],m=t.useRef(null),y=oe(t.useState(!1),2),b=y[0],C=y[1],w=oe(t.useState(!1),2),S=w[0],x=w[1];function _(t,r){var n=e["onFeature".concat(t)],a=e["on".concat(t)];n&&f?n(r,f):a&&a(r,f)}t.useEffect((function(){var e,t,r=m.current;if(r){var n=r.getContext("2d");if(n){n.clearRect(0,0,r.width,r.height);var i=p?null===(e=o.getFeatureByID)||void 0===e?void 0:e.call(o,a,p):void 0;if(i){var l=oe(i,4),c=l[1],u=l[3],y=oe(g.bpSpanPx(l[0],l[2],h,s),2),v=y[0],b=y[1],C=Math.round(c),w=Math.round(u-c);n.shadowColor="#222266",n.shadowBlur=10,n.lineJoin="bevel",n.lineWidth=2,n.strokeStyle="#00b8ff",n.strokeRect(v-2,C-2,b-v+4,w+4),n.clearRect(v,C,b-v,w)}var S=f||(null==d?void 0:d.id()),x=S?null===(t=o.getFeatureByID)||void 0===t?void 0:t.call(o,a,S):void 0;if(x){var _=oe(x,4),k=_[1],E=_[3],P=oe(g.bpSpanPx(_[0],_[2],h,s),2),T=P[0],R=P[1],M=Math.round(k),N=Math.round(E-k);n.fillStyle="#0003",n.fillRect(T,M,R-T,N)}}}}),[s,h,a,p,o,f,d]);var k=Math.ceil(i);return r.createElement("div",{className:"PileupRendering","data-testid":"pileup-".concat(c||u?"".concat((null==c?void 0:c.type)||"").concat((null==u?void 0:u.type)||"").concat((null==u?void 0:u.tag)||""):"normal"),style:{position:"relative",width:k,height:l}},r.createElement(v.PrerenderedCanvas,Object.assign({},e,{style:{position:"absolute",left:0,top:0}})),r.createElement("canvas",{"data-testid":"pileup_overlay_canvas",width:k,height:l+100,style:{position:"absolute",left:0,top:0},className:"highlightOverlayCanvas",ref:m,onMouseDown:function(e){return function(e){C(!0),x(!1),_("MouseDown",e)}(e)},onMouseEnter:function(e){return function(e){_("MouseEnter",e)}(e)},onMouseOut:function(e){return function(e){_("MouseOut",e),_("MouseLeave",e)}(e)},onMouseOver:function(e){return function(e){_("MouseOver",e)}(e)},onMouseUp:function(e){return function(e){C(!1),_("MouseUp",e)}(e)},onMouseLeave:function(e){return function(e){_("MouseOut",e),_("MouseLeave",e)}(e)},onMouseMove:function(e){return function(e){b&&x(!0);var t=0,r=0;m.current&&(t=m.current.getBoundingClientRect().left,r=m.current.getBoundingClientRect().top),t=e.clientX-t;var l=o.getFeatureOverlapping(a,h.start+s*(h.reversed?i-t:t),r=e.clientY-r);n&&n(e,l)}(e)},onClick:function(e){return function(e){S||_("Click",e)}(e)},onContextMenu:function(e){return function(e){_("ContextMenu",e)}(e)},onFocus:function(){},onBlur:function(){}}))}var tt=y.observer(et),rt=n.ConfigurationSchema("PileupRenderer",{color:{type:"color",description:"the color of each feature in a pileup alignment",defaultValue:"#c8c8c8",contextVariable:["feature"]},orientationType:{type:"stringEnum",model:d.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:d.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 nt(e,t){var r=e.get("tags");return r?r[t]:e.get(t)}function at(e,t,r){return nt(e,t)||nt(e,r)}var ot={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"}},it=function(e){ee(r,M.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 $(r,[{key:"cachedLayoutIsValid",value:function(e){return ae(te(r.prototype),"cachedLayoutIsValid",this).call(this,e)&&this.showSoftClip===e.showSoftClip&&h(this.sortedBy,e.sortedBy)}},{key:"layout",get:function(){return this.cachedLayout&&this.cachedLayoutIsValid(this.cachedLayout)||(this.cachedLayout={layout:this.makeLayout(),config:n.readConfObject(this.config),filters:this.filters,sortedBy:this.sortedBy,showSoftClip:this.showSoftClip}),this.cachedLayout.layout}}]),r}();function lt(e){return{A:e.palette.bases.A.main,C:e.palette.bases.C.main,G:e.palette.bases.G.main,T:e.palette.bases.T.main,deletion:"#808080"}}var st={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:"#999",color_interchrom:"orange",color_longinsert:"red",color_shortinsert:"pink"};function ct(e){return!["methylation","modifications"].includes(e||"")}var ut=function(e){ee(o,N);var t,r,a=ne(o);function o(){var e;return Z(this,o),(e=a.apply(this,arguments)).supportsSVG=!0,e}return $(o,[{key:"getCharWidthHeight",value:function(e){return{charWidth:e.measureText("A").width,charHeight:e.measureText("M").width}}},{key:"layoutFeature",value:function(e,t,r,a,o,i){var l=0,s=0,c=e.get("mismatches"),u=e.get("seq");if(i&&u)for(var p=0;p<c.length;p+=1){var f=c[p],d=f.cliplen,h=void 0===d?0:d;"softclip"===f.type&&(0===f.start?l=h:s=h)}var m=oe(g.bpSpanPx(e.get("start")-l,e.get("end")+s,o,a),2),y=m[0],v=m[1],b=n.readConfObject(r,"height",{feature:e}),C=n.readConfObject(r,"displayMode",{feature:e});if("compact"===C&&(b/=3),e.get("refName")!==o.refName)throw new Error("feature ".concat(e.id()," is not on the current region's reference sequence ").concat(o.refName));var w=t.addRect(e.id(),e.get("start")-l,e.get("end")+s,b);return null===w?null:{feature:e,leftPx:y,rightPx:v,topPx:"collapse"===C?0:w,heightPx:b}}},{key:"getExpandedRegion",value:function(e,t){var r=t.showSoftClip,a=n.readConfObject(t.config,"maxClippingSize"),o=e.start,i=e.end,l=Math.max(i-o,r?Math.round(a):0);return J(J({},e),{},{start:Math.floor(Math.max(o-l,0)),end:Math.ceil(i+l)})}},{key:"colorByOrientation",value:function(e,t){return st[this.getOrientation(e,t)||"color_nostrand"]}},{key:"getOrientation",value:function(e,t){var r=n.readConfObject(t,"orientationType");return{LR:"color_pair_lr",RR:"color_pair_rr",RL:"color_pair_rl",LL:"color_pair_ll"}[ot[r][e.get("pair_orientation")]]}},{key:"colorByInsertSize",value:function(e,t){return e.get("is_paired")&&e.get("seq_id")!==e.get("next_seq_id")?"#555":"hsl(".concat(Math.abs(e.get("template_length"))/10,",50%,50%)")}},{key:"colorByStranded",value:function(e,t){var r=e.get("flags"),n=e.get("strand");if(1&r){var a=64&r?-1:1;return 2&r?n*a==1?"color_rev_strand":"color_fwd_strand":e.get("multi_segment_next_segment_unmapped")?n*a==1?"color_rev_missing_mate":"color_fwd_missing_mate":e.get("seq_id")===e.get("next_seq_id")?n*a==1?"color_rev_strand_not_proper":"color_fwd_strand_not_proper":1===n?"color_fwd_diff_chr":"color_rev_diff_chr"}return 1===n?"color_fwd_strand":"color_rev_strand"}},{key:"colorByPerBaseQuality",value:function(e,t,r,n,a){for(var o=t.feature,i=t.topPx,l=t.heightPx,s=(o.get("qual")||"").split(" ").map((function(e){return+e})),c=Ce(o.get("CIGAR")),u=1/a,p=o.get("start"),f=0,d=0,h=0;h<s.length;f+=2,h++){var m=+c[f],y=c[f+1];if("S"===y||"I"===y)h+=m;else if("D"===y||"N"===y)d+=m;else if("M"===y||"X"===y||"="===y){for(var v=0;v<m;v++){var b=s[h+v];e.fillStyle="hsl(".concat(255===b?150:1.5*b,",55%,50%)");var C=oe(g.bpSpanPx(p+d+v,p+d+v+1,n,a),1);e.fillRect(C[0],i,u+.5,l)}d+=m}}}},{key:"colorByModifications",value:function(e,t,r,n,a,o){var i=t.feature,l=t.topPx,s=t.heightPx,c=o.modificationTagMap,u=void 0===c?{}:c,p=at(i,"MM","Mm")||"",f=at(i,"ML","Ml")||[],d=f?("string"==typeof f?f.split(",").map((function(e){return+e})):f).map((function(e){return e/255})):at(i,"MP","Mp").split("").map((function(e){return e.charCodeAt(0)-33})).map((function(e){return Math.min(1,e/50)})),h=i.get("CIGAR"),m=i.get("start"),y=i.get("end"),v=i.get("seq"),b=i.get("strand"),C=Ce(h),w=ke(p,v,b),S=0;w.forEach((function(t){var r,o=t.positions,i=B(u[t.type]||"black"),c=fe(_e(C,o));try{for(c.s();!(r=c.n()).done;){var p=r.value;if(p>=0&&m+p<y){var f=oe(g.bpSpanPx(m+p,m+p+1,n,a),2),h=f[0],v=f[1];e.fillStyle=i.alpha(d[S]+.1).hsl().string(),e.fillRect(h,l,v-h+.5,s)}S++}}catch(e){c.e(e)}finally{c.f()}}))}},{key:"colorByMethylation",value:function(e,t,r,n,a,o){var i=o.regionSequence,l=t.feature,s=t.topPx,c=t.heightPx,u=at(l,"MM","Mm")||"";if(!i)throw new Error("region sequence required for methylation");var p=l.get("CIGAR"),f=l.get("start"),d=l.get("end"),h=l.get("seq"),m=l.get("strand"),y=Ce(p),v=n.start,b=new Array(n.end-v).fill(0);ke(u,h,m).forEach((function(e){var t=e.positions;if("m"===e.type&&t){var r,n=fe(_e(y,t));try{for(n.s();!(r=n.n()).done;){var a=r.value+f-v;a>=0&&a<b.length&&(b[a]=1)}}catch(e){n.e(e)}finally{n.f()}}}));for(var C=f;C<d;C++){var w=C-v;if(w>=0&&w<b.length){var S=i[w].toLowerCase(),x=i[w+1].toLowerCase();if(a>2){if("c"===S&&"g"===x){var _=v+w,k=oe(g.bpSpanPx(_,_+2,n,a),2),E=k[0],P=k[1];e.fillStyle=b[w]||b[w+1]?"red":"blue",e.fillRect(E,s,P-E+.5,c)}}else if("c"===S&&"g"===x){var T=v+w,R=oe(g.bpSpanPx(T,T+1,n,a),2),M=R[0],N=R[1];e.fillStyle=b[w]?"red":"blue",e.fillRect(M,s,N-M+.5,c);var B=oe(g.bpSpanPx(T+1,T+2,n,a),2),D=B[0],A=B[1];e.fillStyle=b[w+1]?"red":"blue",e.fillRect(D,s,A-D+.5,c)}}}}},{key:"drawRect",value:function(e,t,r){var n=r.bpPerPx,a=t.heightPx,o=t.topPx,i=t.feature,l=oe(r.regions,1)[0],s=oe(g.bpSpanPx(i.get("start"),i.get("end"),l,n),2),c=s[0],u=s[1],p=l.reversed?-1:1,f=i.get("strand")*p;n<10?-1===f?(e.beginPath(),e.moveTo(c-5,o+a/2),e.lineTo(c,o+a),e.lineTo(u,o+a),e.lineTo(u,o),e.lineTo(c,o),e.closePath(),e.fill()):(e.beginPath(),e.moveTo(c,o),e.lineTo(c,o+a),e.lineTo(u,o+a),e.lineTo(u+5,o+a/2),e.lineTo(u,o),e.closePath(),e.fill()):e.fillRect(c,o,u-c,a)}},{key:"drawAlignmentRect",value:function(e,t,r){var a=r.config,o=r.bpPerPx,i=r.colorTagMap,l=void 0===i?{}:i,s=r.colorBy||{},c=s.tag,u=void 0===c?"":c,p=s.type,f=void 0===p?"":p,d=t.feature,g=r.regions[0];switch(f){case"insertSize":e.fillStyle=this.colorByInsertSize(d,a);break;case"strand":e.fillStyle=-1===d.get("strand")?"#8F8FD8":"#EC8B8B";break;case"mappingQuality":e.fillStyle="hsl(".concat(d.get("mq"),",50%,50%)");break;case"pairOrientation":e.fillStyle=this.colorByOrientation(d,a);break;case"stranded":e.fillStyle=st[this.colorByStranded(d,a)];break;case"xs":case"tag":var h=d.get("tags"),m=h?h[u]:d.get(u);if("XS"!==u&&"TS"!==u||(e.fillStyle=st[{"-":"color_rev_strand","+":"color_fwd_strand"}[m]||"color_nostrand"]),"ts"===u){var y={"-":-1===d.get("strand")?"color_fwd_strand":"color_rev_strand","+":-1===d.get("strand")?"color_rev_strand":"color_fwd_strand"};e.fillStyle=st[y[m]||"color_nostrand"]}else e.fillStyle=l[m]||"color_nostrand";break;case"insertSizeAndPairOrientation":break;case"normal":default:e.fillStyle=n.readConfObject(a,"color",{feature:d})}switch(this.drawRect(e,t,r),f){case"perBaseQuality":this.colorByPerBaseQuality(e,t,a,g,o);break;case"modifications":this.colorByModifications(e,t,a,g,o,r);break;case"methylation":this.colorByMethylation(e,t,a,g,o,r)}}},{key:"drawMismatches",value:function(e,t,r,a,o,i){var l=i.mismatchAlpha,s=i.drawSNPs,c=void 0===s||s,u=i.drawIndels,p=void 0===u||u,f=r.config,d=r.bpPerPx,h=r.regions,m=t.heightPx,y=t.topPx,v=t.feature,b=this.getCharWidthHeight(e),C=b.charWidth,w=b.charHeight,S=oe(h,1)[0],x=v.get("start"),_=n.readConfObject(f,"minSubfeatureWidth"),k=n.readConfObject(f,"largeInsertionIndicatorScale"),E=Math.min(1/d,2),P=Math.max(_,E),T=v.get("mismatches"),R=w-2;function M(e,t){var r=e;return l&&void 0!==t.qual&&(r=B(e).alpha(Math.min(1,t.qual/50)).hsl().string()),r}for(var N=0;N<T.length;N+=1){var D=T[N],A=oe(g.bpSpanPx(x+D.start,x+D.start+D.length,S,d),2),I=A[0],L=Math.max(_,Math.abs(I-A[1]));if("mismatch"===D.type&&c){var q=o[D.base]||"#888";e.fillStyle=M(q,D),e.fillRect(I,y,L,m),L>=C&&m>=R&&(e.fillStyle=M(a.palette.getContrastText(q),D),e.fillText(D.base,I+(L-C)/2+1,y+m))}else if("deletion"===D.type&&p){var F=o.deletion;e.fillStyle=F,e.fillRect(I,y,L,m),L>=C&&m>=R&&(e.fillStyle=a.palette.getContrastText(F),e.fillText(D.base,I+(L-C)/2+1,y+m))}else if("insertion"===D.type&&p){e.fillStyle="purple";var O=I-1;(+D.base||D.length)<10&&(e.fillRect(O,y,P,m),1/d>=C&&(e.fillRect(O-P,y,3*P,1),e.fillRect(O-P,y+m-1,3*P,1)),1/d>=C&&m>=R&&e.fillText("(".concat(D.base,")"),I+2,y+m))}else if("hardclip"===D.type||"softclip"===D.type){e.fillStyle="hardclip"===D.type?"red":"blue";var j=I-1;e.fillRect(j,y+1,P,m-2),e.fillRect(j-P,y,3*P,1),e.fillRect(j-P,y+m-1,3*P,1),L>=C&&m>=R&&e.fillText("(".concat(D.base,")"),I+2,y+m)}else"skip"===D.type&&(I+L>0&&e.clearRect(I,y,L-(d>10?1.5:0),m),e.fillStyle="#333",e.fillRect(I,y+m/2,L,2))}if(p)for(var H=0;H<T.length;H+=1){var V=T[H],z=oe(g.bpSpanPx(v.get("start")+V.start,v.get("start")+V.start+V.length,S,d),1)[0],G=+V.base||V.length,W="".concat(G);if("insertion"===V.type&&G>=10)if(d>k)e.fillStyle="purple",e.fillRect(z-1,y,2,m);else if(m>w){var U=e.measureText(W);e.fillStyle="purple",e.fillRect(z-U.width/2-5,y,U.width+10,m),e.fillStyle="white",e.fillText(W,z-U.width/2,y+m)}else e.fillStyle="purple",e.fillRect(z-2,y,4,m)}}},{key:"drawSoftClipping",value:function(e,t,r,a,o){var i=t.feature,l=t.topPx,s=t.heightPx,c=r.bpPerPx,u=oe(r.regions,1)[0],p=n.readConfObject(a,"minSubfeatureWidth"),f=i.get("mismatches"),d=i.get("seq"),h=this.getCharWidthHeight(e),m=h.charWidth,y=h.charHeight,v={A:o.palette.bases.A.main,C:o.palette.bases.C.main,G:o.palette.bases.G.main,T:o.palette.bases.T.main,deletion:"#808080"};d&&f.filter((function(e){return"softclip"===e.type})).forEach((function(t){for(var r=t.cliplen||0,n=0===t.start?i.get("start")-r:i.get("start")+t.start,a=0;a<r;a+=1){var f=d.charAt(a+t.start);if(!f)return;var h=oe(g.bpSpanPx(n+a,n+a+1,u,c),2),b=h[0],C=Math.max(p,Math.abs(b-h[1])),w=v[f]||"#000000";e.fillStyle=w,e.fillRect(b,l,C,s),C>=m&&s>=y-5&&(e.fillStyle=o.palette.getContrastText(w),e.fillText(f,b+(C-m)/2+1,l+s))}}))}},{key:"makeImageData",value:(r=Q(ve.mark((function e(t,r,a){var o,i,l,s,c,u,p,f,d=this;return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=a.layout,l=a.showSoftClip,s=a.colorBy,c=a.theme,u=n.readConfObject(i=a.config,"mismatchAlpha"),p=v.createJBrowseTheme(c),f=lt(p),o){e.next=6;break}throw new Error("layout required");case 6:if(o.addRect){e.next=8;break}throw new Error("invalid layout object");case 8:t.font="bold 10px Courier New,monospace",r.forEach((function(e){if(null!==e){var r=e.feature,o=e.topPx,c=e.heightPx;t.fillStyle=n.readConfObject(i,"color",{feature:r}),d.drawAlignmentRect(t,{feature:r,topPx:o,heightPx:c},a),d.drawMismatches(t,e,a,p,f,{mismatchAlpha:u,drawSNPs:ct(null==s?void 0:s.type),drawIndels:ct(null==s?void 0:s.type)}),l&&d.drawSoftClipping(t,e,a,i,p)}}));case 10:case"end":return e.stop()}}),e)}))),function(e,t,n){return r.apply(this,arguments)})},{key:"layoutFeats",value:function(e){var t=this,r=e.layout,n=e.features,a=e.sortedBy,o=e.config,i=e.bpPerPx,l=e.showSoftClip,s=oe(e.regions,1)[0];if(!r)throw new Error("layout required");if(!r.addRect)throw new Error("invalid layout object");var c=(a&&a.type&&s.start===a.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");I.doesIntersect2(o-1,o,r,i)?n.push(e):a.push(e)}));var l=!!r.length&&r[0].get("tags");switch(i){case"Start location":n.sort((function(e,t){return e.get("start")-t.get("start")}));break;case"tag":var s=t.tag,c=function(e,t){return l?e.get("tags")[t]:e.get(t)},u=n[0]&&"string"==typeof c(n[0],s);n.sort(u?function(e,t){return c(t,s).localeCompare(c(e,s))}:function(e,t){return(c(t,s)||0)-(c(e,s)||0)});break;case"Base pair":var p=[];n.forEach((function(e){e.get("mismatches").forEach((function(t){var r=e.get("start")+t.start+1;o>=r&&o<r+("insertion"===t.type||"softclip"===t.type?0:t.length)&&p.push([e.id(),t])}))}));var f=new Map(p);n.sort((function(e,t){var r=f.get(e.id()),n=f.get(t.id()),a=n&&n.base.toUpperCase(),o=r&&r.base.toUpperCase();return a===o&&"*"===a?r.length-n.length:(a?a.charCodeAt(0):0)-(o?o.charCodeAt(0):0)}));break;case"Read strand":n.sort((function(e,t){return e.get("strand")<=t.get("strand")?1:-1}))}return new Map(n.concat(a).map((function(e){return[e.id(),e]})))}(n,a):null)||n;return g.iterMap(c.values(),(function(e){return t.layoutFeature(e,r,o,i,s,l)}),c.size)}},{key:"render",value:(t=Q(ve.mark((function e(t){var r,n,a,i,l,s,c,u,p,f,d,g,h,m,y=this;return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.bpPerPx,n=t.regions,e.next=3,this.getFeatures(t);case 3:if(a=e.sent,i=this.createLayoutInWorker(t),l=this.layoutFeats(J(J({},t),{},{features:a,layout:i})),!t.adapterConfig.sequenceAdapter){e.next=12;break}return e.next=9,A.getAdapter(this.pluginManager,t.sessionId,t.adapterConfig.sequenceAdapter);case 9:e.t0=e.sent,e.next=13;break;case 12:e.t0={};case 13:if(s=e.t0.dataAdapter,c=oe(n,1),u=c[0],!s){e.next=22;break}return e.next=19,s.getFeatures({start:u.start,end:u.end+1,refName:u.refName,assemblyName:u.assemblyName}).pipe(R.toArray()).toPromise();case 19:e.t1=e.sent,e.next=23;break;case 22:e.t1=[];case 23:return p=oe(e.t1,1),d=null==(f=p[0])?void 0:f.get("seq"),g=(u.end-u.start)/r,h=Math.max(i.getTotalHeight(),1),e.next=31,D.renderToAbstractCanvas(g,h,t,(function(e){return y.makeImageData(e,l,J(J({},t),{},{layout:i,features:a,regionSequence:d}))}));case 31:return m=e.sent,e.next=34,ae(te(o.prototype),"render",this).call(this,J(J(J({},t),m),{},{features:a,layout:i,height:h,width:g}));case 34:return e.abrupt("return",J(J(J({},e.sent),m),{},{features:a,layout:i,height:h,width:g,maxHeightReached:i.maxHeightReached}));case 36:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"createSession",value:function(e){return new it(e)}}]),o}(),pt=function(e){return d.types.late((function(){return n.ConfigurationSchema("SNPCoverageAdapter",{subadapter:e.pluggableConfigSchemaType("adapter")},{explicitlyTyped:!0})}))};function ft(e){return dt(e.type)?1:e.length}function dt(e){return"softclip"===e||"hardclip"===e||"insertion"===e}function gt(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 ht(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 mt=function(e){ee(i,L.BaseFeatureDataAdapter);var t,r,a,o=ne(i);function i(){return Z(this,i),o.apply(this,arguments)}return $(i,[{key:"configure",value:(a=Q(ve.mark((function e(){var t,r,a,o,i,l;return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=n.readConfObject(this.config,"subadapter"),o=n.readConfObject(this.config,["subadapter","sequenceAdapter"]),e.next=4,null===(t=this.getSubAdapter)||void 0===t?void 0:t.call(this,a);case 4:if(i=e.sent,!o){e.next=11;break}return e.next=8,null===(r=this.getSubAdapter)||void 0===r?void 0:r.call(this,o);case 8:e.t0=e.sent,e.next=12;break;case 11:e.t0=void 0;case 12:if(l=e.t0,i){e.next=15;break}throw new Error("Failed to get subadapter");case 15:return e.abrupt("return",{subadapter:i.dataAdapter,sequenceAdapter:null==l?void 0:l.dataAdapter});case 16:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"getFeatures",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return F.ObservableCreate(function(){var n=Q(ve.mark((function n(a){var o,i;return ve.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.configure();case 2:return o=n.sent.subadapter.getFeatures(e,r),r.filters&&(i=r.filters,o=o.pipe(R.filter((function(e){return i.passes(e,r)})))),n.next=8,t.generateCoverageBins(o,e,r);case 8:n.sent.forEach((function(r,n){r.total&&a.next(new q({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}}))})),a.complete();case 11:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}(),r.signal)}},{key:"getRefNames",value:(r=Q(ve.mark((function e(){var t,r=arguments;return ve.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(ve.mark((function e(t,r,n){var a,o,i,l,s,c,u,p,f,d;return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=n.colorBy,e.next=3,this.configure();case 3:if(o=e.sent.sequenceAdapter,i=r.refName,l=r.start,s=r.end,c=Math.ceil(r.end-r.start),u=Array.from({length:c},(function(){return{total:0,lowqual:{},cov:{},delskips:{},noncov:{},ref:{}}})),!o){e.next=15;break}return e.next=11,o.getFeatures({refName:i,start:l,end:s+1,assemblyName:"na"}).pipe(R.toArray()).toPromise();case 11:f=oe(e.sent,1),p=null==(d=f[0])?void 0:d.get("seq");case 15:return e.abrupt("return",t.pipe(R.reduce((function(e,t){for(var n=t.get("CIGAR"),o=t.get("start"),i=t.get("end"),l=t.get("strand"),s=Ce(n),c=o;c<i;c++){var u=c-r.start;if(u>=0&&u<e.length){var f=e[u];f.total++,gt(f,l,"ref","ref")}}if("modifications"===(null==a?void 0:a.type)){var d=t.get("seq"),g=at(t,"MM","Mm")||"",h=at(t,"ML","Ml")||[],m=h?("string"==typeof h?h.split(",").map((function(e){return+e})):h).map((function(e){return e/255})):at(t,"MP","Mp").split("").map((function(e){return e.charCodeAt(0)-33})).map((function(e){return Math.min(1,e/50)})),y=0;ke(g,d,l).forEach((function(t){var n,a=t.positions,c="mod_".concat(t.type),u=fe(_e(s,a));try{for(u.s();!(n=u.n()).done;){var p=n.value,f=p+o-r.start;f>=0&&f<e.length&&p+o<i&>(e[f],l,m[y]>.5?"cov":"lowqual",c),y++}}catch(e){u.e(e)}finally{u.f()}}))}else if("methylation"===(null==a?void 0:a.type)){if(!p)throw new Error("no region sequence detected, need sequenceAdapter configuration");var v=t.get("seq"),b=at(t,"MM","Mm")||"",C=new Array(r.end-r.start).fill(0);ke(b,v,l).forEach((function(e){if("m"===e.type){var t,n=fe(_e(s,e.positions));try{for(n.s();!(t=n.n()).done;){var a=t.value+o-r.start;a>=0&&a<C.length&&(C[a]=1)}}catch(e){n.e(e)}finally{n.f()}}}));for(var w=o;w<i;w++){var S=w-r.start;if(S>=0&&S<e.length-1){var x=p[S].toLowerCase(),_=p[S+1].toLowerCase(),k=e[S],E=e[S+1];"c"===x&&"g"===_&&(C[S]||C[S+1]?(gt(k,l,"cov","meth"),gt(E,l,"cov","meth"),ht(k,l,"ref","ref"),ht(E,l,"ref","ref")):(gt(k,l,"cov","unmeth"),gt(E,l,"cov","unmeth"),ht(k,l,"ref","ref"),ht(E,l,"ref","ref")))}}}else for(var P=t.get("mismatches"),T=0;T<(null==P?void 0:P.length);T++)for(var R=P[T],M=o+R.start,N=M;N<M+ft(R);N++){var B=N-r.start;if(B>=0&&B<e.length){var D=e[B],A=R.base,I=R.type,L=dt(I);L?gt(D,l,"noncov",I):ht(D,l,"ref","ref"),"deletion"===I||"skip"===I?(gt(D,l,"delskips",I),D.total--):L||gt(D,l,"cov",A)}}return e}),u)).toPromise());case 16:case"end":return e.stop()}}),e,this)}))),function(e,r,n){return t.apply(this,arguments)})}]),i}(),yt=mt.capabilities,vt={__proto__:null,default:mt,capabilities:yt},bt=function(e){return{getAdapterClass:function(){return Promise.resolve().then((function(){return vt})).then((function(e){return e.default}))},configSchema:pt(e),adapterCapabilities:yt}},Ct=n.ConfigurationSchema("SNPCoverageRenderer",{clipColor:{type:"color",description:"the color of the clipping marker",defaultValue:"red"},indicatorThreshold:{type:"number",description:"the proportion of reads containing a insertion/clip indicator",defaultValue:.3},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}),wt=function(e){ee(r,p.WiggleBaseRenderer);var t=ne(r);function r(){return Z(this,r),t.apply(this,arguments)}return $(r,[{key:"draw",value:function(e,t){var r=t.features,a=t.regions,o=t.bpPerPx,i=t.scaleOpts,l=t.height,s=t.config,c=t.displayCrossHatches,u=t.ticks.values,f=t.modificationTagMap,d=v.createJBrowseTheme(t.theme),h=oe(a,1)[0],m=(h.end-h.start)/o,y=p.YSCALEBAR_LABEL_OFFSET,b=l-2*y,C=J(J({},i),{},{range:[0,b]}),w=p.getScale(C),S=p.getScale(J(J({},C),{},{scaleType:"linear"})),x=p.getOrigin(i.scaleType),_=p.getOrigin("linear"),k=n.readConfObject(s,"indicatorThreshold"),E=n.readConfObject(s,"drawInterbaseCounts"),P=n.readConfObject(s,"drawIndicators"),T=function(e){return b-w(e)+y},R=function(e){return b-S(e)+y},M=function(e){return R(_)-R(e)},N={A:d.palette.bases.A.main,C:d.palette.bases.C.main,G:d.palette.bases.G.main,T:d.palette.bases.T.main,total:"lightgrey",insertion:"purple",softclip:"blue",hardclip:"red",meth:"red",unmeth:"blue",ref:"lightgrey"};e.fillStyle=N.total;var B,D,A=fe(r.values());try{for(A.s();!(B=A.n()).done;){var I=B.value,L=oe(g.featureSpanPx(I,h,o),2),q=L[0],F=L[1]-q+.3,O=I.get("score");e.fillRect(q,T(O),F,(D=O,T(x)-T(D)))}}catch(e){A.e(e)}finally{A.f()}e.fillStyle="grey",e.beginPath(),e.lineTo(0,0),e.moveTo(0,m),e.stroke();var j,H=fe(r.values());try{var V=function(){var t=j.value,r=oe(g.featureSpanPx(t,h,o),2),n=r[0],a=r[1],i=t.get("snpinfo"),l=Math.max(a-n+.3,1),s=i.total;Object.entries(i.cov).sort((function(e,t){var r=oe(e,1)[0],n=oe(t,1)[0];return r<n?-1:r>n?1:0})).reduce((function(t,r){var a=oe(r,2),o=a[0],i=a[1].total;return e.fillStyle=N[o]||f[o.replace("mod_","")]||"red",e.fillRect(n,R(i+t),l,M(i)),t+i}),0);var c=Object.entries(i.noncov);if(E&&c.reduce((function(t,r){var a=oe(r,2),o=a[1].total;return e.fillStyle=N[a[0]],e.fillRect(n-.6,4.5+M(t),1.2,M(o)),t+o}),0),P){var u=0,p=0,d="";c.forEach((function(e){var t=oe(e,2),r=t[1].total;u+=r,r>p&&(p=r,d=t[0])})),u>s*k&&s>7&&(e.fillStyle=N[d],e.beginPath(),e.moveTo(n-3,0),e.lineTo(n+3,0),e.lineTo(n,4.5),e.fill())}};for(H.s();!(j=H.n()).done;)V()}catch(e){H.e(e)}finally{H.f()}c&&(e.lineWidth=1,e.strokeStyle="rgba(140,140,140,0.8)",u.forEach((function(t){e.beginPath(),e.moveTo(0,Math.round(T(t))),e.lineTo(m,Math.round(T(t))),e.stroke()})))}}]),r}(),St=n.ConfigurationSchema("SNPCoverageRenderer",{},{baseConfiguration:Ct,explicitlyTyped:!0}),xt=function(e){ee(a,O);var t,r,n=ne(a);function a(){var e;return Z(this,a),(e=n.apply(this,arguments)).name="PileupGetGlobalValueForTag",e}return $(a,[{key:"serializeArguments",value:(r=Q(ve.mark((function e(t){var r,n,a;return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=null==(n=this.pluginManager.rootModel)||null===(r=n.session)||void 0===r?void 0:r.assemblyManager){e.next=4;break}throw new Error("no assembly manager available");case 4:return e.abrupt("return",g.renameRegionsIfNeeded(a,t));case 5:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"execute",value:(t=Q(ve.mark((function e(t,r){var n,a,o,i,l,s,c,u;return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.deserializeArguments(t,r);case 2:return a=(n=e.sent).adapterConfig,o=n.sessionId,i=n.regions,l=n.tag,e.next=6,A.getAdapter(this.pluginManager,o,a);case 6:return s=e.sent.dataAdapter.getFeaturesInMultipleRegions(i),e.next=10,s.pipe(R.toArray()).toPromise();case 10:return c=e.sent,u=new Set,c.forEach((function(e){var t=e.get("tags"),r=t?t[l]:e.get(l);void 0!==r&&u.add("".concat(r))})),e.abrupt("return",ie(u));case 14:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})}]),a}(),_t=function(e){ee(a,O);var t,r,n=ne(a);function a(){var e;return Z(this,a),(e=n.apply(this,arguments)).name="PileupGetVisibleModifications",e}return $(a,[{key:"serializeArguments",value:(r=Q(ve.mark((function e(t){var r,n,a;return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=null==(n=this.pluginManager.rootModel)||null===(r=n.session)||void 0===r?void 0:r.assemblyManager){e.next=4;break}throw new Error("no assembly manager available");case 4:return e.abrupt("return",g.renameRegionsIfNeeded(a,t));case 5:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"execute",value:(t=Q(ve.mark((function e(t,r){var n,a,o,i,l,s,c;return ve.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,A.getAdapter(this.pluginManager,o,a);case 6:return l=e.sent.dataAdapter.getFeaturesInMultipleRegions(i),e.next=10,l.pipe(R.toArray()).toPromise();case 10:return s=e.sent,c=new Set,s.forEach((function(e){var t=at(e,"MM","Mm")||"";void 0!==t&&Ee(t).forEach((function(e){return c.add(e)}))})),e.abrupt("return",ie(c));case 14:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})}]),a}(),kt=function(e){ee(f,c);var r=ne(f);function f(){var e;return Z(this,f),(e=r.apply(this,arguments)).name="AlignmentsPlugin",e}return $(f,[{key:"install",value:function(e){e.addTrackType((function(){var t=n.ConfigurationSchema("AlignmentsTrack",{},{baseConfiguration:i.createBaseTrackConfig(e)}),r=new l({name:"AlignmentsTrack",configSchema:t,stateModel:i.createBaseTrackModel(e,"AlignmentsTrack",t)}),a=e.getDisplayType("LinearAlignmentsDisplay");return r.addDisplayType(a),r})),e.addDisplayType((function(){var t=function(e){var t=e.getRendererType("PileupRenderer").configSchema,r=e.getRendererType("SvgFeatureRenderer").configSchema;return n.ConfigurationSchema("LinearPileupDisplay",{defaultRendering:{type:"stringEnum",model:d.types.enumeration("Rendering",["pileup","svg"]),defaultValue:"pileup"},renderers:n.ConfigurationSchema("RenderersConfiguration",{PileupRenderer:t,SvgFeatureRenderer:r}),renderer:"",maxDisplayedBpPerPx:{type:"number",description:"maximum bpPerPx that is displayed in the view",defaultValue:100},colorScheme:{type:"stringEnum",model:d.types.enumeration("colorScheme",["strand","normal","insertSize","insertSizeAndOrientation","mappingQuality","tag"]),description:"color scheme to use",defaultValue:"normal"}},{baseConfiguration:u.linearBasicDisplayConfigSchemaFactory(e),explicitlyTyped:!0})}(e);return new o({name:"LinearPileupDisplay",configSchema:t,stateModel:Xe(0,t),trackType:"AlignmentsTrack",viewType:"LinearGenomeView",ReactComponent:u.BaseLinearDisplayComponent})})),e.addDisplayType((function(){var t=function(e){var t=e.getRendererType("SNPCoverageRenderer").configSchema;return n.ConfigurationSchema("LinearSNPCoverageDisplay",{autoscale:{type:"stringEnum",defaultValue:"local",model:d.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:d.types.enumeration("Scale type",["linear","log"]),description:"The type of scale to use",defaultValue:"linear"},inverted:{type:"boolean",description:"draw upside down",defaultValue:!1},maxDisplayedBpPerPx:{type:"number",description:"maximum bpPerPx that is displayed in the view",defaultValue:100},headroom:{type:"number",description:"round the upper value of the domain scale to the nearest N",defaultValue:0},renderers:n.ConfigurationSchema("RenderersConfiguration",{SNPCoverageRenderer:t})},{baseConfiguration:u.baseLinearDisplayConfigSchema,explicitlyTyped:!0})}(e);return new o({name:"LinearSNPCoverageDisplay",configSchema:t,stateModel:Ke(e,t),trackType:"AlignmentsTrack",viewType:"LinearGenomeView",ReactComponent:p.LinearWiggleDisplayReactComponent})})),e.addDisplayType((function(){var t=function(e){var t=e.getDisplayType("LinearPileupDisplay").configSchema,r=e.getDisplayType("LinearSNPCoverageDisplay").configSchema;return n.ConfigurationSchema("LinearAlignmentsDisplay",{pileupDisplay:t,snpCoverageDisplay:r},{baseConfiguration:u.baseLinearDisplayConfigSchema,explicitlyTyped:!0})}(e);return new o({name:"LinearAlignmentsDisplay",configSchema:t,stateModel:Be(e,t),trackType:"AlignmentsTrack",viewType:"LinearGenomeView",ReactComponent:Ae})})),e.addWidgetType((function(){return new s({name:"AlignmentsFeatureWidget",heading:"Feature details",configSchema:de,stateModel:ge(e),ReactComponent:t.lazy((function(){return Promise.resolve().then((function(){return ir}))}))})})),e.addAdapterType((function(){return new a(J({name:"BamAdapter"},e.load(me)))})),e.addAdapterType((function(){return new a(J({name:"SNPCoverageAdapter"},e.load(bt)))})),e.addAdapterType((function(){return new a(J({name:"CramAdapter"},e.load(Re)))})),e.addAdapterType((function(){return new a(J({name:"HtsgetBamAdapter"},e.load(Ne)))})),e.addRendererType((function(){return new ut({name:"PileupRenderer",ReactComponent:tt,configSchema:rt,pluginManager:e})})),e.addRendererType((function(){return new wt({name:"SNPCoverageRenderer",ReactComponent:p.WiggleRendering,configSchema:St,pluginManager:e})})),e.addRpcMethod((function(){return new xt(e)})),e.addRpcMethod((function(){return new _t(e)}))}}]),f}(),Et=function(){function e(t,r,n){Z(this,e),this.record=t,this.adapter=r,this.ref=n}return $(e,[{key:"_get_name",value:function(){return this.record.get("name")}},{key:"_get_type",value:function(){return"match"}},{key:"_get_score",value:function(){return this.record.get("mq")}},{key:"_get_flags",value:function(){return this.record.flags}},{key:"_get_strand",value:function(){return this.record.isReverseComplemented()?-1:1}},{key:"_get_read_group_id",value:function(){return this.record.readGroupId}},{key:"_get_pair_orientation",value:function(){return this.record.isPaired()?this.record.getPairOrientation():void 0}},{key:"_get_next_seq_id",value:function(){return this.record._next_refid()}},{key:"_get_seq_id",value:function(){return this.record._refID}},{key:"_get_next_refName",value:function(){return this.adapter.refIdToName(this.record._next_refid())}},{key:"_get_next_segment_position",value:function(){return this.record.isPaired()?"".concat(this.adapter.refIdToName(this.record._next_refid()),":").concat(this.record._next_pos()+1):void 0}},{key:"_get_seq",value:function(){return this.record.getReadBases()}},{key:"_get_MD",value:function(){var e=this.record.get("MD"),t=this.get("seq");return!e&&t&&this.ref?xe(this.ref,this.record.getReadBases(),this.get("CIGAR")):e}},{key:"qualRaw",value:function(){return this.record.qualRaw()}},{key:"set",value:function(){}},{key:"tags",value:function(){var t=Object.getOwnPropertyNames(e.prototype);return ie(new Set(t.filter((function(e){return e.startsWith("_get_")&&"_get_mismatches"!==e&&"_get_skips_and_dels"!==e&&"_get_cram_read_features"!==e&&"_get_tags"!==e&&"_get_next_seq_id"!==e&&"_get_seq_id"!==e})).map((function(e){return e.replace("_get_","")})).concat(this.record._tags())))}},{key:"id",value:function(){return"".concat(this.adapter.id,"-").concat(this.record.id())}},{key:"get",value:function(e){var t="_get_".concat(e);return this[t]?this[t]():this.record.get(e)}},{key:"_get_refName",value:function(){return this.adapter.refIdToName(this.record.seq_id())}},{key:"parent",value:function(){}},{key:"children",value:function(){}},{key:"pairedFeature",value:function(){return!1}},{key:"toJSON",value:function(){var e=this;return J(J({},Object.fromEntries(this.tags().map((function(t){return[t,e.get(t)]})).filter((function(e){return void 0!==e[1]})))),{},{uniqueId:this.id()})}},{key:"_get_skips_and_dels",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{cigarAttributeName:"CIGAR"},t=e.cigarAttributeName,r=[],n=[],a=this.get(t);return a&&(n=Ce(a),r=r.concat(we(n,this.get("seq"),this.qualRaw()))),r}},{key:"_get_mismatches",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.cigarAttributeName,r=void 0===t?"CIGAR":t,n=e.mdAttributeName,a=void 0===n?"MD":n,o=[],i=[],l=this.get(r);l&&(i=Ce(l),o=o.concat(we(i,this.get("seq"),this.qualRaw())));var s=this.get(a);s&&(o=o.concat(Se(s,i,o,this.get("seq"),this.qualRaw())));var c={};return o.filter((function(e){var t="".concat(e.type,",").concat(e.start,",").concat(e.length),r=c[t];return c[t]=!0,!r}))}},{key:"_get_clipPos",value:function(){var e=this.get("CIGAR")||"";return-1===this.get("strand")?+(e.match(/(\d+)[SH]$/)||[])[1]||0:+(e.match(/^(\d+)([SH])/)||[])[1]||0}}]),e}(),Pt=function(e){ee(s,L.BaseFeatureDataAdapter);var t,r,a,o,i,l=ne(s);function s(){return Z(this,s),l.apply(this,arguments)}return $(s,[{key:"configure",value:(i=Q(ve.mark((function e(){var t,r,a,o,i,l,s;return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.configured||(t=n.readConfObject(this.config,"bamLocation"),r=n.readConfObject(this.config,["index","location"]),a=n.readConfObject(this.config,["index","indexType"]),o=n.readConfObject(this.config,"chunkSizeLimit"),i=n.readConfObject(this.config,"fetchSizeLimit"),l=new j.BamFile({bamFilehandle:H.openLocation(t),csiFilehandle:"CSI"===a?H.openLocation(r):void 0,baiFilehandle:"CSI"!==a?H.openLocation(r):void 0,chunkSizeLimit:o,fetchSizeLimit:i}),s=n.readConfObject(this.config,"sequenceAdapter"),this.configured=s&&this.getSubAdapter?this.getSubAdapter(s).then((function(e){return{bam:l,sequenceAdapter:e.dataAdapter}})):Promise.resolve({bam:l})),e.abrupt("return",this.configured);case 2:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"getHeader",value:(o=Q(ve.mark((function e(t){return ve.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 o.apply(this,arguments)})},{key:"setup",value:(a=Q(ve.mark((function e(t){var r,n,a=this;return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=void 0===(r=(t||{}).statusCallback)?function(){}:r,this.setupP||(this.setupP=this.configure().then(function(){var e=Q(ve.mark((function e(r){var o,i,l;return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=r.bam,n("Downloading index"),e.next=4,o.getHeader(t);case 4:return i=[],l={},e.sent.filter((function(e){return"SQ"===e.tag})).forEach((function(e,t){e.data.forEach((function(e){if("SN"===e.tag){var r=e.value;l[r]=t,i[t]=r}}))})),n(""),a.samHeader={idToName:i,nameToId:l},e.abrupt("return",a.samHeader);case 11:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).catch((function(e){throw a.setupP=void 0,e}))),e.abrupt("return",this.setupP);case 3:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"getRefNames",value:(r=Q(ve.mark((function e(t){return ve.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 r.apply(this,arguments)})},{key:"seqFetch",value:(t=Q(ve.mark((function e(t,r,n){var a,o,i,l;return ve.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(R.toArray()).toPromise();case 12:if(i=[],e.sent.sort((function(e,t){return e.get("start")-t.get("start")})).forEach((function(e){var t=e.get("start"),a=e.get("end"),o=Math.max(r-t,0),l=Math.min(n-t,a-t)-o,s=e.get("seq")||e.get("residues");i.push(s.substr(o,l))})),(l=i.join("")).length===n-r){e.next=18;break}throw new Error("sequence fetch failed: fetching ".concat(t,":").concat((r-1).toLocaleString(),"-").concat(n.toLocaleString()," returned ").concat(l.length.toLocaleString()," bases, but should have returned ").concat((n-r).toLocaleString()));case 18:return e.abrupt("return",l);case 19:case"end":return e.stop()}}),e,this)}))),function(e,r,n){return t.apply(this,arguments)})},{key:"getFeatures",value:function(e,t){var r=this,n=e.refName,a=e.start,o=e.end,i=e.originalRefName,l=t||{},s=l.signal,c=l.statusCallback,u=void 0===c?function(){}:c;return F.ObservableCreate(function(){var e=Q(ve.mark((function e(l){var c,p,f,d,h,m;return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.configure();case 2:return c=e.sent.bam,e.next=6,r.setup(t);case 6:return u("Downloading alignments"),e.next=9,c.getRecordsForRange(n,a,o,t);case 9:p=e.sent,g.checkAbortSignal(s),f=fe(p),e.prev=12,f.s();case 14:if((d=f.n()).done){e.next=24;break}if(m=void 0,(h=d.value).get("md")){e.next=21;break}return e.next=20,r.seqFetch(i||n,h.get("start"),h.get("end"));case 20:m=e.sent;case 21:l.next(new Et(h,r,m));case 22:e.next=14;break;case 24:e.next=29;break;case 26:e.prev=26,e.t0=e.catch(12),f.e(e.t0);case 29:return e.prev=29,f.f(),e.finish(29);case 32:u(""),l.complete();case 34:case"end":return e.stop()}}),e,null,[[12,26,29,32]])})));return function(t){return e.apply(this,arguments)}}(),s)}},{key:"freeResources",value:function(){}},{key:"refIdToName",value:function(e){var t;return null===(t=this.samHeader)||void 0===t?void 0:t.idToName[e]}}]),s}(),Tt={__proto__:null,default:Pt},Rt=function(){function e(t,r){Z(this,e),this.record=t,this._store=r}return $(e,[{key:"_get_name",value:function(){return this.record.readName}},{key:"_get_start",value:function(){return this.record.alignmentStart-1}},{key:"_get_end",value:function(){return this.record.alignmentStart+this.record.lengthOnRef-1}},{key:"_get_cram_read_features",value:function(){return this.record.readFeatures}},{key:"_get_type",value:function(){return"match"}},{key:"_get_score",value:function(){return this.record.mappingQuality}},{key:"_get_flags",value:function(){return this.record.flags}},{key:"_get_strand",value:function(){return this.record.isReverseComplemented()?-1:1}},{key:"_read_group_id",value:function(){var e=this._store.samHeader.readGroups;return e?e[this.record.readGroupId]:void 0}},{key:"_get_qual",value:function(){return(this.record.qualityScores||[]).join(" ")}},{key:"qualRaw",value:function(){return this.record.qualityScores}},{key:"_get_seq_id",value:function(){return this._store.refIdToName(this.record.sequenceId)}},{key:"_get_refName",value:function(){return this._get_seq_id()}},{key:"_get_is_paired",value:function(){return!!this.record.mate}},{key:"_get_pair_orientation",value:function(){return this.record.isPaired()?this.record.getPairOrientation():void 0}},{key:"_get_template_length",value:function(){return this.record.templateLength||this.record.templateSize}},{key:"_get_next_seq_id",value:function(){return this.record.mate?this._store.refIdToName(this.record.mate.sequenceId):void 0}},{key:"_get_next_pos",value:function(){return this.record.mate?this.record.mate.alignmentStart:void 0}},{key:"_get_next_segment_position",value:function(){return this.record.mate?"".concat(this._store.refIdToName(this.record.mate.sequenceId),":").concat(this.record.mate.alignmentStart):void 0}},{key:"_get_tags",value:function(){var e=this._read_group_id(),t=this.record.tags;return void 0!==e?J(J({},t),{},{RG:e}):t}},{key:"_get_seq",value:function(){return this.record.getReadBases()}},{key:"_get_CIGAR",value:function(){var e="",t="",r="M",n=0,a=this.record._refRegion.seq,o=this.record._refRegion.start,i=this.record.alignmentStart,l=0;return void 0!==this.record.readFeatures?this.record.readFeatures.forEach((function(s){var c=s.code,u=s.refPos,p=s.sub,f=s.data;if(l=u-i,e+=a.substring(i-o,u-o),i=u,n&&"M"!==r&&(t+=n+r,n=0),l&&(r="M",n+=l),"b"===c){var d=f.split(","),g=String.fromCharCode.apply(String,ie(d));e+=g,i+=g.length,n+=g.length}else"B"===c||"X"===c?(e+=p,i++,n++):"D"===c||"N"===c?(i+=f,n&&(t+=n+r),t+=f+c,n=0):"I"===c||"S"===c?(e+=f,n&&(t+=n+r),t+=f.length+c,n=0):"i"===c?(e+=f,n&&(t+=n+r),t+="".concat(1,"I"),n=0):"P"===c?(n&&(t+=n+r),t+="".concat(f,"P")):"H"===c&&(n&&(t+=n+r),t+="".concat(f,"H"),n=0)})):l=this.record.readLength-e.length,e.length!==this.record.readLength&&(e+=a.substring(i-o,i-o+(l=this.record.readLength-e.length)),n&&"M"!==r&&(t+=n+r,n=0),r="M",n+=l),n&&(t+=n+r),t}},{key:"tags",value:function(){return Object.getOwnPropertyNames(e.prototype).filter((function(e){return e.startsWith("_get_")&&"_get_mismatches"!==e&&"_get_skips_and_dels"!==e&&"_get_cram_read_features"!==e})).map((function(e){return e.replace("_get_","")}))}},{key:"id",value:function(){return"".concat(this._store.id,"-").concat(this.record.uniqueId)}},{key:"get",value:function(e){var t="_get_".concat(e);if(this[t])return this[t]()}},{key:"parent",value:function(){}},{key:"children",value:function(){}},{key:"set",value:function(){}},{key:"pairedFeature",value:function(){return!1}},{key:"_get_clipPos",value:function(){var e=this.get("mismatches");if(e.length){var t=-1===this.get("strand")?e[e.length-1]:e[0],r=t.type;if("softclip"===r||"hardclip"===r)return t.cliplen}return 0}},{key:"toJSON",value:function(){var e=this,t={};return this.tags().forEach((function(r){var n=e.get(r);void 0!==n&&(t[r]=n)})),J(J({},t),{},{name:this.get("name"),type:this.get("type"),uniqueId:this.id()})}},{key:"_get_mismatches",value:function(){var e=this.get("cram_read_features"),t=this.qualRaw();if(!e)return[];var r=this.get("start"),n=[];return e.forEach((function(e){var a=e.code,o=e.data,i=e.refPos-1-r;if("X"===a)n.push({start:i,length:1,base:e.sub,qual:null==t?void 0:t[e.pos],altbase:e.ref,type:"mismatch"});else if("I"===a)n.push({start:i,type:"insertion",base:"".concat(o.length),length:0});else if("N"===a)n.push({type:"skip",length:o,start:i,base:"N"});else if("S"===a){var l=o.length;n.push({start:i,type:"softclip",base:"S".concat(l),cliplen:l,length:1})}else if("P"===a);else if("H"===a){var s=o;n.push({start:i,type:"hardclip",base:"H".concat(s),cliplen:s,length:1})}else"D"===a?n.push({type:"deletion",length:o,start:i,base:"*"}):"b"===a||"q"===a||"B"===a||"i"===a&&n.push({start:i,type:"insertion",base:o,length:1})})),n}},{key:"_get_skips_and_dels",value:function(){return this._get_mismatches()}}]),e}(),Mt={__proto__:null,default:function(e){ee(s,L.BaseFeatureDataAdapter);var t,r,a,o,i,l=ne(s);function s(){var e;return Z(this,s),(e=l.apply(this,arguments)).samHeader={},e.seqIdToOriginalRefName=[],e}return $(s,[{key:"configure",value:(i=Q(ve.mark((function e(){var t,r,a,o;return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=n.readConfObject(this.config,"cramLocation"),r=n.readConfObject(this.config,"craiLocation"),t){e.next=4;break}throw new Error("missing cramLocation argument");case 4:if(r){e.next=6;break}throw new Error("missing craiLocation argument");case 6:if(this.cram=new V.IndexedCramFile({cramFilehandle:H.openLocation(t),index:new V.CraiIndex({filehandle:H.openLocation(r)}),seqFetch:this.seqFetch.bind(this),checkSequenceMD5:!1,fetchSizeLimit:this.config.fetchSizeLimit||6e8}),a=n.readConfObject(this.config,["sequenceAdapter","type"]),this.getSubAdapter){e.next=10;break}throw new Error("Error getting subadapter");case 10:return e.next=12,this.getSubAdapter(n.readConfObject(this.config,"sequenceAdapter"));case 12:if(!((o=e.sent.dataAdapter)instanceof L.BaseFeatureDataAdapter)){e.next=18;break}this.sequenceAdapter=o,e.next=19;break;case 18:throw new Error("CRAM feature adapters cannot use sequence adapters of type '".concat(a,"'"));case 19:return e.abrupt("return",{sequenceAdapter:this.sequenceAdapter});case 20:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"getHeader",value:(o=Q(ve.mark((function e(t){return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.configure();case 2:return e.abrupt("return",this.cram.cram.getHeaderText(t));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"seqFetch",value:(a=Q(ve.mark((function e(t,r,n){var a,o,i,l,s;return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r-=1,a=this.sequenceAdapter){e.next=4;break}return e.abrupt("return",void 0);case 4:if(o=this.refIdToOriginalName(t)||this.refIdToName(t)){e.next=7;break}return e.abrupt("return",void 0);case 7:return i=a.getFeatures({refName:o,start:r,end:n,assemblyName:""},{}),e.next=10,i.pipe(R.toArray()).toPromise();case 10:if(l=[],e.sent.sort((function(e,t){return e.get("start")-t.get("start")})).forEach((function(e){var t=e.get("start"),a=e.get("end"),o=Math.max(r-t,0),i=Math.min(n-t,a-t)-o,s=e.get("seq")||e.get("residues");l.push(s.substr(o,i))})),(s=l.join("")).length===n-r){e.next=16;break}throw new Error("sequence fetch failed: fetching ".concat(o,":").concat((r-1).toLocaleString(),"-").concat(n.toLocaleString()," returned ").concat(s.length.toLocaleString()," bases, but should have returned ").concat((n-r).toLocaleString()));case 16:return e.abrupt("return",s);case 17:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return a.apply(this,arguments)})},{key:"setup",value:(r=Q(ve.mark((function e(t){var r,n,a=this;return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=void 0===(r=(t||{}).statusCallback)?function(){}:r,this.setupP||(this.setupP=this.configure().then(Q(ve.mark((function e(){var r,o,i,l;return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n("Downloading index"),e.next=3,a.cram.cram.getSamHeader(null==t?void 0:t.signal);case 3:return o=[],i={},(r=e.sent).filter((function(e){return"SQ"===e.tag})).forEach((function(e,t){e.data.forEach((function(e){if("SN"===e.tag){var r=e.value;i[r]=t,o[t]=r}}))})),l=r.filter((function(e){return"RG"===e.tag})).map((function(e){var t;return null===(t=e.data.find((function(e){return"ID"===e.tag})))||void 0===t?void 0:t.value})),o.length&&(a.samHeader={idToName:o,nameToId:i,readGroups:l}),n(""),e.abrupt("return",a.samHeader);case 11:case"end":return e.stop()}}),e)})))).catch((function(e){throw a.setupP=void 0,e}))),e.abrupt("return",this.setupP);case 3:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"getRefNames",value:(t=Q(ve.mark((function e(t){return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.setup(t);case 2:if(!this.samHeader.idToName){e.next=4;break}return e.abrupt("return",this.samHeader.idToName);case 4:if(!this.sequenceAdapter){e.next=6;break}return e.abrupt("return",this.sequenceAdapter.getRefNames());case 6:throw new Error("unable to get refnames");case 7:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"refNameToId",value:function(e){return this.samHeader.nameToId?this.samHeader.nameToId[e]:this.seqIdToRefName?this.seqIdToRefName.indexOf(e):void 0}},{key:"refIdToName",value:function(e){return this.samHeader.idToName?this.samHeader.idToName[e]:this.seqIdToRefName?this.seqIdToRefName[e]:void 0}},{key:"refIdToOriginalName",value:function(e){return this.seqIdToOriginalRefName[e]}},{key:"getFeatures",value:function(e,t){var r=this,n=t||{},a=n.signal,o=n.statusCallback,i=void 0===o?function(){}:o,l=e.refName,s=e.start,c=e.end,u=e.originalRefName;return F.ObservableCreate(function(){var e=Q(ve.mark((function e(n){var o,p;return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.setup(t);case 2:if(!r.sequenceAdapter||r.seqIdToRefName){e.next=6;break}return e.next=5,r.sequenceAdapter.getRefNames(t);case 5:r.seqIdToRefName=e.sent;case 6:if(void 0===(o=r.refNameToId(l))){e.next=15;break}return u&&(r.seqIdToOriginalRefName[o]=u),i("Downloading alignments"),e.next=12,r.cram.getRecordsForRange(o,s,c,t);case 12:p=e.sent,g.checkAbortSignal(a),p.forEach((function(e){n.next(r.cramRecordToFeature(e))}));case 15:i(""),n.complete();case 17:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),a)}},{key:"freeResources",value:function(){}},{key:"cramRecordToFeature",value:function(e){return new Rt(e,this)}}]),s}()},Nt={__proto__:null,default:function(e){ee(a,Pt);var t,r=ne(a);function a(){return Z(this,a),r.apply(this,arguments)}return $(a,[{key:"configure",value:(t=Q(ve.mark((function e(){var t,r,a,o;return ve.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.configured||(t=n.readConfObject(this.config,"htsgetBase"),r=n.readConfObject(this.config,"htsgetTrackId"),a=new j.HtsgetFile({baseUrl:t,trackId:r}),(o=n.readConfObject(this.config,"sequenceAdapter"))&&this.getSubAdapter&&(this.configured=this.getSubAdapter(o).then((function(e){return{bam:a,sequenceAdapter:e.dataAdapter}}))),this.configured=Promise.resolve({bam:a})),e.abrupt("return",this.configured);case 2:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})}]),a}()},Bt=z.makeStyles((function(e){return{root:{width:300},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Dt(e){var n=Bt(),a=e.model,o=e.handleClose,i=oe(t.useState(""),2),l=i[0],s=i[1],c=l.match(/^[A-Za-z][A-Za-z0-9]$/);return r.createElement(z.Dialog,{open:!0,onClose:o},r.createElement(z.DialogTitle,null,"Color by tag",r.createElement(z.IconButton,{"aria-label":"close",className:n.closeButton,onClick:o},r.createElement(G,null))),r.createElement(z.DialogContent,{style:{overflowX:"hidden"}},r.createElement("div",{className:n.root},r.createElement(z.Typography,null,"Enter tag to color by: "),r.createElement(z.Typography,{color:"textSecondary"},"Examples: XS or TS for RNA-seq inferred read strand, ts (lower-case) for minimap2 read strand, HP for haplotype, RG for read group, etc."),r.createElement(z.TextField,{value:l,onChange:function(e){s(e.target.value)},placeholder:"Enter tag name",inputProps:{maxLength:2,"data-testid":"color-tag-name-input"},error:2===l.length&&!c,helperText:2!==l.length||c?"":"Not a valid tag",autoComplete:"off","data-testid":"color-tag-name"}),r.createElement(z.Button,{variant:"contained",color:"primary",style:{marginLeft:20},onClick:function(){a.setColorScheme({type:"tag",tag:l}),o()},disabled:!c},"Submit"))))}var At={__proto__:null,default:y.observer(Dt)},It=z.makeStyles((function(e){return{root:{width:500},paper:{padding:e.spacing(2),margin:e.spacing(2)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},field:{margin:e.spacing(2)}}})),Lt=["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 qt(e){var t=e.flag,n=void 0===t?0:t,a=e.setFlag;return r.createElement(r.Fragment,null,r.createElement(z.TextField,{type:"number",value:n,onChange:function(e){return a(+e.target.value)}}),Lt.map((function(e,t){var o=n&1<<t,i="".concat(e,"_").concat(o);return r.createElement("div",{key:i},r.createElement("input",{type:"checkbox",checked:Boolean(o),onChange:function(e){a(e.target.checked?n|1<<t:n&~(1<<t))}}),r.createElement("label",{htmlFor:i},e))})))}function Ft(e){var n,a,o=e.model,i=e.handleClose,l=It(),s=o.filterBy,c=oe(t.useState(null==s?void 0:s.flagInclude),2),u=c[0],p=c[1],f=oe(t.useState(null==s?void 0:s.flagExclude),2),d=f[0],g=f[1],h=oe(t.useState((null==s||null===(n=s.tagFilter)||void 0===n?void 0:n.tag)||""),2),m=h[0],y=h[1],v=oe(t.useState((null==s||null===(a=s.tagFilter)||void 0===a?void 0:a.value)||""),2),b=v[0],C=v[1],w=oe(t.useState((null==s?void 0:s.readName)||""),2),S=w[0],x=w[1],_=m.match(/^[A-Za-z][A-Za-z0-9]$/),k="https://broadinstitute.github.io/picard/explain-flags.html";return r.createElement(z.Dialog,{open:!0,onClose:i},r.createElement(z.DialogTitle,null,"Filter options",r.createElement(z.IconButton,{"aria-label":"close",className:l.closeButton,onClick:i},r.createElement(G,null))),r.createElement(z.DialogContent,null,r.createElement(z.Typography,null,"Set filter bitmask options. Refer to ",r.createElement(z.Link,{href:k},k)," ","for details"),r.createElement("div",{className:l.root},r.createElement(z.Paper,{className:l.paper,variant:"outlined"},r.createElement("div",{style:{display:"flex"}},r.createElement("div",null,r.createElement(z.Typography,null,"Read must have ALL these flags"),r.createElement(qt,{flag:u,setFlag:p})),r.createElement("div",null,r.createElement(z.Typography,null,"Read must have NONE of these flags"),r.createElement(qt,{flag:d,setFlag:g})))),r.createElement(z.Paper,{className:l.paper,variant:"outlined"},r.createElement(z.Typography,null,"Filter by tag name and value. Use * in the value field to get all reads containing any value for that tag. Example: filter tag name SA with value * to get all split/supplementary reads. Other examples include HP for haplotype, or RG for read group"),r.createElement(z.TextField,{className:l.field,value:m,onChange:function(e){y(e.target.value)},placeholder:"Enter tag name",inputProps:{maxLength:2,"data-testid":"color-tag-name-input"},error:2===m.length&&!_,helperText:2!==m.length||_?"":"Not a valid tag","data-testid":"color-tag-name"}),r.createElement(z.TextField,{className:l.field,value:b,onChange:function(e){C(e.target.value)},placeholder:"Enter tag value",inputProps:{"data-testid":"color-tag-name-input"},"data-testid":"color-tag-value"})),r.createElement(z.Paper,{className:l.paper,variant:"outlined"},r.createElement(z.Typography,null,"Filter by read name"),r.createElement(z.TextField,{className:l.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"})),r.createElement(z.Button,{variant:"contained",color:"primary",onClick:function(){o.setFilterBy({flagInclude:u,flagExclude:d,readName:S,tagFilter:""!==m?{tag:m,value:b}:void 0}),i()}},"Submit"))))}var Ot={__proto__:null,default:y.observer(Ft)},jt=z.makeStyles((function(e){return{root:{margin:0,padding:e.spacing(2)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Ht(e){var n=jt(),a=e.model,o=e.handleClose,i=oe(t.useState(""),2),l=i[0],s=i[1],c=l.match(/^[A-Za-z][A-Za-z0-9]$/);return r.createElement(z.Dialog,{open:!0,onClose:o},r.createElement(z.DialogTitle,null,"Sort by tag",r.createElement(z.IconButton,{"aria-label":"close",className:n.closeButton,onClick:o},r.createElement(G,null))),r.createElement(z.DialogContent,null,r.createElement("div",null,r.createElement(z.Typography,null,"Set the tag to sort by"),r.createElement(z.Typography,{color:"textSecondary"},"Examples: HP for haplotype, RG for read group, etc."),r.createElement(z.TextField,{value:l,onChange:function(e){s(e.target.value)},placeholder:"Enter tag name",inputProps:{maxLength:2,"data-testid":"sort-tag-name-input"},error:2===l.length&&!c,helperText:2!==l.length||c?"":"Not a valid tag",autoComplete:"off","data-testid":"sort-tag-name"}),r.createElement(z.Button,{variant:"contained",color:"primary",onClick:function(){a.setSortedBy("tag",l),o()}},"Submit"))))}var Vt={__proto__:null,default:y.observer(Ht)},zt=z.makeStyles((function(e){return{root:{margin:e.spacing(4)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Gt(e){var n=zt(),a=e.model,o=e.handleClose,i=a.noSpacing,l=oe(t.useState("".concat(a.featureHeightSetting)),2),s=l[0],c=l[1],u=oe(t.useState(i),2),p=u[0],f=u[1],d=""!==s&&!Number.isNaN(+s);return r.createElement(z.Dialog,{open:!0,onClose:o},r.createElement(z.DialogTitle,null,"Set feature height",r.createElement(z.IconButton,{className:n.closeButton,onClick:o},r.createElement(G,null))),r.createElement(z.DialogContent,null,r.createElement(z.Typography,null,"Adjust the feature height and whether there is any spacing between features. Setting feature height to 1 and removing spacing makes the display very compact"),r.createElement("div",{className:n.root},r.createElement(z.Typography,null,"Enter feature height: "),r.createElement(z.TextField,{value:s,onChange:function(e){c(e.target.value)}}),r.createElement(z.FormControlLabel,{control:r.createElement(z.Checkbox,{checked:!!p,onChange:function(){return f((function(e){return!e}))}}),label:"Remove spacing between features in y-direction?"}),r.createElement(z.Button,{variant:"contained",color:"primary",type:"submit",style:{marginLeft:20},disabled:!d,onClick:function(){a.setFeatureHeight(""===s||Number.isNaN(+s)?void 0:+s),a.setNoSpacing(p),o()}},"Submit"))))}var Wt={__proto__:null,default:y.observer(Gt)},Ut=z.makeStyles((function(e){return{root:{width:500},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},field:{margin:e.spacing(2)}}}));function Jt(e){var n=e.model,a=e.handleClose,o=Ut(),i=n.maxHeight,l=oe(t.useState("".concat(void 0===i?"":i)),2),s=l[0],c=l[1];return r.createElement(z.Dialog,{open:!0,onClose:a},r.createElement(z.DialogTitle,{id:"alert-dialog-title"},"Filter options",r.createElement(z.IconButton,{"aria-label":"close",className:o.closeButton,onClick:a},r.createElement(G,null))),r.createElement(z.DialogContent,null,r.createElement("div",{className:o.root},r.createElement(z.Typography,null,"Set max height for the track"),r.createElement(z.TextField,{value:s,onChange:function(e){c(e.target.value)},placeholder:"Enter max height for layout"}),r.createElement(z.Button,{variant:"contained",color:"primary",type:"submit",style:{marginLeft:20},onClick:function(){n.setMaxHeight(""===s||Number.isNaN(+s)?void 0:+s),a()}},"Submit"))))}var Xt={__proto__:null,default:y.observer(Jt)},Qt=z.makeStyles((function(e){return{root:{},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},table:{border:"1px solid #888",margin:e.spacing(4),"& td":{padding:e.spacing(1)}}}}));function Zt(e){var t=e.modifications,n=Qt();return r.createElement("table",{className:n.table},r.createElement("tbody",null,t.map((function(e){var t=oe(e,2),n=t[0],a=t[1];return r.createElement("tr",{key:n},r.createElement("td",null,n),r.createElement("td",null,a),r.createElement("td",{style:{width:"1em",background:a}}))}))))}function Yt(e){var t=Qt(),n=e.model,a=e.handleClose,o=n.colorBy,i=n.modificationTagMap,l=ie(i.entries());return r.createElement(z.Dialog,{open:!0,onClose:a},r.createElement(z.DialogTitle,null,"Color by modifications",r.createElement(z.IconButton,{"aria-label":"close",className:t.closeButton,onClick:a},r.createElement(G,null))),r.createElement(z.DialogContent,null,r.createElement("div",{className:t.root},r.createElement(z.Typography,null,"You can choose to color the modifications in the BAM/CRAM MM/ML specification using this dialog. Choosing modifications colors the modified positions and can color multiple modification types. Choosing the methylation setting colors methylated and unmethylated CpG."),r.createElement(z.Typography,null,"Note: you can revisit this dialog to see the current mapping of colors to modification type for the modification coloring mode"),r.createElement("div",{style:{margin:20}},"modifications"===(null==o?void 0:o.type)?r.createElement("div",null,l.length?r.createElement(r.Fragment,null,"Current modification-type-to-color mapping",r.createElement(Zt,{modifications:ie(i.entries())})):r.createElement("div",null,r.createElement(z.Typography,null,"Note: color by modifications is already enabled. Loading current modifications..."),r.createElement(z.CircularProgress,{size:15}))):null,"methylation"===(null==o?void 0:o.type)?r.createElement(Zt,{modifications:[["methylated","red"],["unmethylated","blue"]]}):null),r.createElement("div",{style:{display:"flex"}},r.createElement(z.Button,{variant:"contained",color:"primary",style:{margin:5},onClick:function(){n.setColorScheme({type:"modifications"}),a()}},"Modifications"),r.createElement(z.Button,{variant:"contained",color:"primary",style:{margin:5},onClick:function(){n.setColorScheme({type:"methylation"}),a()}},"Methylation"),r.createElement(z.Button,{variant:"contained",color:"secondary",style:{margin:5},onClick:function(){return a()}},"Cancel")))))}var $t={__proto__:null,default:y.observer(Yt)},Kt=z.makeStyles((function(){return{compact:{paddingRight:0,paddingTop:0,paddingBottom:0}}})),er=["clipPos","flags"];function tr(e){var t=Kt(),n=e.feature.flags;return r.createElement(W.BaseCard,Object.assign({},e,{title:"Flags"}),r.createElement(W.SimpleValue,{name:"Flag",value:n}),r.createElement(z.FormGroup,null,["read paired","read mapped in proper pair","read unmapped","mate unmapped","read reverse strand","mate reverse strand","first in pair","second in pair","not primary alignment","read fails platform/vendor quality checks","read is PCR or optical duplicate","supplementary alignment"].map((function(e,a){var o=n&1<<a,i="".concat(e,"_").concat(o);return r.createElement(z.FormControlLabel,{key:i,control:r.createElement(z.Checkbox,{className:t.compact,checked:Boolean(o),name:e,readOnly:!0}),label:e})}))))}function rr(e){var n=e.value,a=oe(t.useState(!1),2),o=a[0],i=a[1],l=String(n);return l.length>100?r.createElement(r.Fragment,null,r.createElement("button",{type:"button",onClick:function(){return S(l)}},"Copy"),r.createElement("button",{type:"button",onClick:function(){return i((function(e){return!e}))}},o?"Show less":"Show more"),r.createElement("div",null,o?l:"".concat(l.slice(0,100),"..."))):r.createElement("div",null,l)}function nr(e){var t=e.tag,n=e.model,a=g.getSession(n);return r.createElement(W.BaseCard,Object.assign({},e,{title:"Supplementary alignments"}),r.createElement(z.Typography,null,"List of supplementary alignment locations"),r.createElement("ul",null,t.split(";").filter((function(e){return!!e})).map((function(e,t){var o=oe(e.split(","),4),i=o[0],l=o[1],s=o[2],c=function(e){for(var t=Ce(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}(o[3]),u=Math.floor(c/5),p=+l,f=+l+c,d="".concat(i,":").concat(Math.max(1,p-u),"-").concat(f+u),g=p.toLocaleString("en-US"),h=f.toLocaleString("en-US"),m="".concat(i,":").concat(g,"-").concat(h," (").concat(s,")");return r.createElement("li",{key:"".concat(d,"-").concat(t)},r.createElement(z.Link,{onClick:function(){var e=n.view;e?e.navToLocString(d):a.notify("No view associated with this feature detail panel anymore","warning")},href:"#"},m))}))))}function ar(e){var t=e.locString,n=e.model,a=g.getSession(n);return r.createElement(z.Link,{onClick:function(){var e=n.view;e?e.navToLocString(t):a.notify("No view associated with this feature detail panel anymore","warning")},href:"#"},t)}function or(e){var t=e.model,n=JSON.parse(JSON.stringify(t.featureData)),a=n.tags&&n.tags.SA||n.SA;return r.createElement(z.Paper,{"data-testid":"alignment-side-drawer"},r.createElement(W.FeatureDetails,Object.assign({},e,{omit:er,feature:n,formatter:function(e,n){return"next_segment_position"===n?r.createElement(ar,{model:t,locString:e}):r.createElement(rr,{value:e})}})),a?r.createElement(nr,{model:t,tag:a}):null,r.createElement(tr,Object.assign({feature:n},e)))}var ir={__proto__:null,default:y.observer(or)};exports.MismatchParser=Pe,exports.default=kt;
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("@jbrowse/core/Plugin")),r=require("@jbrowse/core/util"),n=e(require("@jbrowse/core/pluggableElementTypes/AdapterType")),a=require("@jbrowse/core/configuration"),o=require("mobx-state-tree"),i=require("@jbrowse/core/data_adapters/BaseAdapter"),l=e(require("@jbrowse/core/util/simpleFeature")),s=require("@jbrowse/core/util/rxjs"),c=require("rxjs/operators"),u=require("@jbrowse/core/ui"),p=require("@jbrowse/plugin-wiggle"),f=require("@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType"),d=e(f),g=e(require("color")),h=require("@jbrowse/core/util/offscreenCanvasUtils"),m=require("@jbrowse/core/data_adapters/dataAdapterCache"),y=require("@jbrowse/core/util/range"),v=e(require("fast-deep-equal")),b=require("mobx-react"),C=require("react"),w=e(C),S=e(require("@jbrowse/core/pluggableElementTypes/DisplayType")),x=require("@jbrowse/plugin-linear-genome-view"),k=require("@jbrowse/core/pluggableElementTypes/models"),_=require("mobx"),E=e(require("@jbrowse/core/pluggableElementTypes/renderers/util/serializableFilterChain")),P=require("@jbrowse/core/util/tracks"),T=e(require("@material-ui/icons/Visibility")),M=require("@jbrowse/core/ui/Icons"),R=e(require("copy-to-clipboard")),N=e(require("@material-ui/icons/MenuOpen")),A=e(require("@material-ui/icons/Sort")),D=e(require("@material-ui/icons/Palette")),B=e(require("@material-ui/icons/ClearAll")),I=e(require("@material-ui/core/Typography")),L=e(require("@jbrowse/core/pluggableElementTypes/TrackType")),F=require("@jbrowse/core/util/types/mst"),q=e(require("@jbrowse/core/pluggableElementTypes/WidgetType")),O=e(require("@jbrowse/core/pluggableElementTypes/RpcMethodType")),j=require("@gmod/cram"),H=require("@jbrowse/core/util/io"),V=require("@gmod/bam"),z=require("@material-ui/core"),G=e(require("@material-ui/icons/Close")),W=require("@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail");function U(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function J(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?U(Object(r),!0).forEach((function(t){K(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):U(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function X(e,t,r,n,a,o,i){try{var l=e[o](i),s=l.value}catch(e){return void r(e)}l.done?t(s):Promise.resolve(s).then(n,a)}function Q(e){return function(){var t=this,r=arguments;return new Promise((function(n,a){var o=e.apply(t,r);function i(e){X(o,n,a,i,l,"next",e)}function l(e){X(o,n,a,i,l,"throw",e)}i(void 0)}))}}function Z(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function $(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function Y(e,t,r){return t&&$(e.prototype,t),r&&$(e,r),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}}),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,r){return(ae="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=te(e)););return e}(e,t);if(n){var a=Object.getOwnPropertyDescriptor(n,t);return a.get?a.get.call(r):a.value}})(e,t,r||e)}function oe(e,t){return le(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o=[],i=!0,l=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);i=!0);}catch(e){l=!0,a=e}finally{try{i||null==r.return||r.return()}finally{if(l)throw a}}return o}}(e,t)||ce(e,t)||pe()}function ie(e){return function(e){if(Array.isArray(e))return ue(e)}(e)||se(e)||ce(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function le(e){if(Array.isArray(e))return e}function se(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function ce(e,t){if(e){if("string"==typeof e)return ue(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)?ue(e,t):void 0}}function ue(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 pe(){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 fe(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=ce(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,l=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){l=!0,o=e},f:function(){try{i||null==r.return||r.return()}finally{if(l)throw o}}}}function de(e,t){return e(t={exports:{}},t.exports),t.exports}var ge=de((function(e){var t=function(e){var t=Object.prototype,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",o=n.asyncIterator||"@@asyncIterator",i=n.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function s(e,t,r,n){var a=Object.create((t&&t.prototype instanceof p?t:p).prototype),o=new x(n||[]);return a._invoke=function(e,t,r){var n="suspendedStart";return function(a,o){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===a)throw o;return{value:void 0,done:!0}}for(r.method=a,r.arg=o;;){var i=r.delegate;if(i){var l=C(i,r);if(l){if(l===u)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var s=c(e,t,r);if("normal"===s.type){if(n=r.done?"completed":"suspendedYield",s.arg===u)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(n="completed",r.method="throw",r.arg=s.arg)}}}(e,r,o),a}function c(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=s;var u={};function p(){}function f(){}function d(){}var g={};l(g,a,(function(){return this}));var h=Object.getPrototypeOf,m=h&&h(h(k([])));m&&m!==t&&r.call(m,a)&&(g=m);var y=d.prototype=p.prototype=Object.create(g);function v(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){var n;this._invoke=function(a,o){function i(){return new t((function(n,i){!function n(a,o,i,l){var s=c(e[a],e,o);if("throw"!==s.type){var u=s.arg,p=u.value;return p&&"object"==typeof p&&r.call(p,"__await")?t.resolve(p.__await).then((function(e){n("next",e,i,l)}),(function(e){n("throw",e,i,l)})):t.resolve(p).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,l)}))}l(s.arg)}(a,o,n,i)}))}return n=n?n.then(i,i):i()}}function C(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,C(e,t),"throw"===t.method))return u;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var n=c(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,u;var a=n.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,u):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,u)}function w(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function x(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function k(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:_}}function _(){return{value:void 0,done:!0}}return f.prototype=d,l(y,"constructor",d),l(d,"constructor",f),f.displayName=l(d,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===f||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,d):(e.__proto__=d,l(e,i,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},v(b.prototype),l(b.prototype,o,(function(){return this})),e.AsyncIterator=b,e.async=function(t,r,n,a,o){void 0===o&&(o=Promise);var i=new b(s(t,r,n,a),o);return e.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},v(y),l(y,i,"Generator"),l(y,a,(function(){return this})),l(y,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},e.values=k,x.prototype={constructor:x,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(S),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],i=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var l=r.call(o,"catchLoc"),s=r.call(o,"finallyLoc");if(l&&s){if(this.prev<o.catchLoc)return n(o.catchLoc,!0);if(this.prev<o.finallyLoc)return n(o.finallyLoc)}else if(l){if(this.prev<o.catchLoc)return n(o.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return n(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,u):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),u},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var a=n.arg;S(r)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:k(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),u}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}})),he=ge.mark(Ce);function me(e){return(e||"").split(/([MIDNSHPX=])/)}function ye(e,t,r){for(var n=0,a=0,o=[],i=0;i<e.length-1;i+=2){var l=+e[i],s=e[i+1];if("M"!==s&&"="!==s&&"E"!==s||(a+=l),"I"===s)o.push({start:n,type:"insertion",base:"".concat(l),length:0}),a+=l;else if("D"===s)o.push({start:n,type:"deletion",base:"*",length:l});else if("N"===s)o.push({start:n,type:"skip",base:"N",length:l});else if("X"===s){for(var c=t.slice(a,a+l),u=(null==r?void 0:r.slice(a,a+l))||[],p=0;p<l;p++)o.push({start:n+p,type:"mismatch",base:c[p],qual:u[p],length:1});a+=l}else"H"===s?o.push({start:n,type:"hardclip",base:"H".concat(l),cliplen:l,length:1}):"S"===s&&(o.push({start:n,type:"softclip",base:"S".concat(l),cliplen:l,length:1}),a+=l);"I"!==s&&"S"!==s&&"H"!==s&&(n+=l)}return o}function ve(e,t,r,n,a){var o=[],i={start:0,base:"",length:0,type:"mismatch"},l=r.filter((function(e){return"skip"===e.type})),s=0,c=0,u=0,p=0;function f(){o.push(i),i={start:i.start+i.length,length:0,base:"",type:"mismatch"}}function d(e){for(var r=c,n=u,a=s;a<t.length&&n<=e;s=a+=2){var o=+t[a],i=t[a+1];"S"===i||"I"===i?r+=o:"D"===i||"P"===i||"N"===i?n+=o:"H"!==i&&(r+=o,n+=o)}return c=r,u=n,r-(n-e)}for(var g=e.match(/(\d+|\^[a-z]+|[a-z])/gi)||[],h=0;h<g.length;h++){var m=g[h],y=+m;if(Number.isNaN(y))if(m.startsWith("^"))i.length=m.length-1,i.base="*",i.type="deletion",i.seq=m.substring(1),f();else for(var v=0;v<m.length;v+=1){for(i.length=1;p<l.length;){var b=l[p];if(!(i.start>=b.start))break;i.start+=b.length,p++}var C=t?d(i.start):i.start;i.base=n?n.substr(C,1):"X";var w=null==a?void 0:a.slice(C,C+1)[0];w&&(i.qual=w),i.altbase=m,f()}else i.start+=y}return o}function be(e,t,r){var n=0,a=0,o=0;if(!e)return console.warn("no ref supplied to generateMD"),"";for(var i=me(r),l="",s=0;s<i.length;s+=2){var c=+i[s],u=i[s+1];if("M"===u||"X"===u||"="===u){for(var p=0;p<c;p++)t[n+p].toLowerCase()!==e[a+p].toLowerCase()?(l+="".concat(o).concat(e[a+p].toUpperCase()),o=0):o++;n+=c,a+=c}else if("I"===u)n+=c;else if("D"===u){for(var f="",d=0;d<c;d++)f+=e[a+d].toUpperCase();l+="".concat(o,"^").concat(f),o=0,a+=c}else"N"===u?a+=c:"S"===u&&(n+=c)}return o>0&&(l+=o),l}function Ce(e,t){var r,n,a,o,i,l,s;return ge.wrap((function(c){for(;;)switch(c.prev=c.next){case 0:r=0,n=0,a=0,o=0;case 4:if(!(o<t.length)){c.next=12;break}for(i=t[o];r<e.length&&n<i;r+=2)l=+e[r],"S"===(s=e[r+1])||"I"===s?n+=l:"D"===s||"N"===s?a+=l:"M"!==s&&"X"!==s&&"="!==s||(n+=l,a+=l);return c.next=9,t[o]-n+a;case 9:o++,c.next=4;break;case 12:case"end":return c.stop()}}),he)}function we(e,t,n){var a=-1===n?r.revcom(t):t;return e.split(";").filter((function(e){return!!e})).map((function(e){var t,r=le(t=e.split(","))||se(t)||ce(t)||pe(),o=r[0],i=r.slice(1),l=o.match(/([A-Z])([-+])([^,.?]+)([.?])?/);if(!l)throw new Error("bad format for MM tag");var s=oe(l,4),c=s[1],u=s[2],p=s[3].split(/(\d+|.)/).filter((function(e){return!!e}));return"-"===u?(console.warn("unsupported negative strand modifications"),{type:"unsupported",positions:[]}):p.map((function(e){var t=0;return{type:e,positions:i.map((function(e){return+e})).map((function(e){do{"N"!==c&&c!==a[t]||e--,t++}while(e>=0&&t<a.length);var r=t-1;return-1===n?a.length-1-r:r})).sort((function(e,t){return e-t}))}}))})).flat()}function Se(e){return e.split(";").filter((function(e){return!!e})).map((function(e){var t=oe(e.split(","),1)[0].match(/([A-Z])([-+])([^,]+)/);if(!t)throw new Error("bad format for MM tag");return oe(t,4)[3].split(/(\d+|.)/).filter((function(e){return!!e}))})).flat()}var xe={__proto__:null,parseCigar:me,cigarToMismatches:ye,mdToMismatches:ve,getTemplateCoord:function(e,t){for(var r=0,n=0,a=0;a<t.length&&n<=e;a+=2){var o=+t[a],i=t[a+1];"S"===i||"I"===i?r+=o:"D"===i||"P"===i?n+=o:"H"!==i&&(r+=o,n+=o)}return r-(n-e)},getMismatches:function(e,t,r,n){var a=[],o=[];e&&(o=me(e),a=a.concat(ye(o,r,n))),t&&(a=a.concat(ve(t,o,a,r,n)));var i={};return a.filter((function(e){var t="".concat(e.type,",").concat(e.start,",").concat(e.length),r=i[t];return i[t]=!0,!r}))},generateMD:be,getNextRefPos:Ce,getModificationPositions:we,getModificationTypes:Se},ke=function(e){return e.lib["mobx-state-tree"].types.late((function(){return a.ConfigurationSchema("CramAdapter",{cramLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.cram",locationType:"UriLocation"}},craiLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.cram.crai",locationType:"UriLocation"}},sequenceAdapter:e.pluggableConfigSchemaType("adapter")},{explicitlyTyped:!0})}))},_e=function(e){e.addAdapterType((function(){return new n({name:"CramAdapter",configSchema:e.load(ke),getAdapterClass:function(){return Promise.resolve().then((function(){return It})).then((function(e){return e.default}))}})}))},Ee=o.types.late((function(){return a.ConfigurationSchema("BamAdapter",{bamLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bam",locationType:"UriLocation"}},index:a.ConfigurationSchema("BamIndex",{indexType:{model:o.types.enumeration("IndexType",["BAI","CSI"]),type:"stringEnum",defaultValue:"BAI"},location:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bam.bai",locationType:"UriLocation"}}}),chunkSizeLimit:{type:"number",defaultValue:1e8},fetchSizeLimit:{type:"number",defaultValue:5e8},sequenceAdapter:{type:"frozen",defaultValue:null}},{explicitlyTyped:!0})})),Pe=function(e){e.addAdapterType((function(){return new n({name:"BamAdapter",configSchema:Ee,getAdapterClass:function(){return Promise.resolve().then((function(){return qt})).then((function(e){return e.default}))}})}))},Te=o.types.late((function(){return a.ConfigurationSchema("HtsgetBamAdapter",{htsgetBase:{type:"string",defaultValue:""},htsgetTrackId:{type:"string",defaultValue:""},sequenceAdapter:{type:"frozen",defaultValue:null}},{explicitlyTyped:!0})})),Me=function(e){e.addAdapterType((function(){return new n({name:"HtsgetBamAdapter",adapterMetadata:{category:null,hiddenFromGUI:!0,displayName:null,description:null},configSchema:Te,getAdapterClass:function(){return Promise.resolve().then((function(){return Ot})).then((function(e){return e.default}))}})}))},Re=function(e){return o.types.late((function(){return a.ConfigurationSchema("SNPCoverageAdapter",{subadapter:e.pluggableConfigSchemaType("adapter")},{explicitlyTyped:!0})}))};function Ne(e,t){var r=e.get("tags");return r?r[t]:e.get(t)}function Ae(e,t,r){return Ne(e,t)||Ne(e,r)}var De={fr:{F1R2:"LR",F2R1:"LR",F1F2:"LL",F2F1:"LL",R1R2:"RR",R2R1:"RR",R1F2:"RL",R2F1:"RL"},rf:{R1F2:"LR",R2F1:"LR",R1R2:"LL",R2R1:"LL",F1F2:"RR",F2F1:"RR",F1R2:"RL",F2R1:"RL"},ff:{F2F1:"LR",R1R2:"LR",F2R1:"LL",R1F2:"LL",R2F1:"RR",F1R2:"RR",R2R1:"RL",F1F2:"RL"}};function Be(e){return Ie(e.type)?1:e.length}function Ie(e){return"softclip"===e||"hardclip"===e||"insertion"===e}function Le(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 Fe(e,t,r,n){e[r][n]||(e[r][n]={total:0,strands:{"-1":0,0:0,1:0}}),e[r][n].total--,e[r][n].strands[t]--}var qe=function(e){ee(u,i.BaseFeatureDataAdapter);var t,r,n,o=ne(u);function u(){return Z(this,u),o.apply(this,arguments)}return Y(u,[{key:"configure",value:(n=Q(ge.mark((function e(){var t,r,n,o,i,l;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=a.readConfObject(this.config,"subadapter"),o=a.readConfObject(this.config,["subadapter","sequenceAdapter"]),e.next=4,null===(t=this.getSubAdapter)||void 0===t?void 0:t.call(this,n);case 4:if(i=e.sent,!o){e.next=11;break}return e.next=8,null===(r=this.getSubAdapter)||void 0===r?void 0:r.call(this,o);case 8:e.t0=e.sent,e.next=12;break;case 11:e.t0=void 0;case 12:if(l=e.t0,i){e.next=15;break}throw new Error("Failed to get subadapter");case 15:return e.abrupt("return",{subadapter:i.dataAdapter,sequenceAdapter:null==l?void 0:l.dataAdapter});case 16:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"getFeatures",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return s.ObservableCreate(function(){var n=Q(ge.mark((function n(a){var o,i,s,u;return ge.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.configure();case 2:return o=n.sent.subadapter.getFeatures(e,r),r.filters&&(i=r.filters,o=o.pipe(c.filter((function(e){return i.passes(e,r)})))),n.next=8,t.generateCoverageBins(o,e,r);case 8:u=(s=n.sent).skipmap,s.bins.forEach((function(r,n){r.total&&a.next(new l({id:"".concat(t.id,"-").concat(e.start,"-").concat(n),data:{score:r.total,snpinfo:r,start:e.start+n,end:e.start+n+1,refName:e.refName}}))})),Object.entries(u).forEach((function(e){var t=oe(e,2),r=t[1];a.next(new l({id:t[0],data:{type:"skip",start:r.start,end:r.end,strand:r.strand,score:r.score,xs:r.xs}}))})),a.complete();case 14:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}(),r.signal)}},{key:"getRefNames",value:(r=Q(ge.mark((function e(){var t,r=arguments;return ge.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(ge.mark((function e(t,r,n){var a,o,i,l,s,u,p,f,d,g,h,m;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=n.colorBy,e.next=3,this.configure();case 3:if(o=e.sent.sequenceAdapter,i=r.originalRefName,l=r.refName,s=r.start,u=r.end,p=Math.ceil(r.end-r.start),f={},d=Array.from({length:p},(function(){return{total:0,lowqual:{},cov:{},delskips:{},noncov:{},ref:{}}})),!o){e.next=16;break}return e.next=12,o.getFeatures({refName:i||l,start:s,end:u+1,assemblyName:"na"}).pipe(c.toArray()).toPromise();case 12:h=oe(e.sent,1),g=null==(m=h[0])?void 0:m.get("seq");case 16:return e.next=18,t.pipe(c.reduce((function(e,t){for(var n=t.get("CIGAR"),o=t.get("start"),i=t.get("end"),l=t.get("strand"),s=me(n),c=o;c<i;c++){var u=c-r.start;if(u>=0&&u<e.length){var p=e[u];p.total++,Le(p,l,"ref","ref")}}if("modifications"===(null==a?void 0:a.type)){var d=t.get("seq"),h=Ae(t,"MM","Mm")||"",m=Ae(t,"ML","Ml")||[],y=m?("string"==typeof m?m.split(",").map((function(e){return+e})):m).map((function(e){return e/255})):Ae(t,"MP","Mp").split("").map((function(e){return e.charCodeAt(0)-33})).map((function(e){return Math.min(1,e/50)})),v=0;we(h,d,l).forEach((function(t){var n,a=t.positions,c="mod_".concat(t.type),u=fe(Ce(s,a));try{for(u.s();!(n=u.n()).done;){var p=n.value,f=p+o-r.start;f>=0&&f<e.length&&p+o<i&&Le(e[f],l,y[v]>.5?"cov":"lowqual",c),v++}}catch(e){u.e(e)}finally{u.f()}}))}else if("methylation"===(null==a?void 0:a.type)){if(!g)throw new Error("no region sequence detected, need sequenceAdapter configuration");var b=t.get("seq"),C=Ae(t,"MM","Mm")||"",w=new Array(r.end-r.start).fill(0);we(C,b,l).forEach((function(e){if("m"===e.type){var t,n=fe(Ce(s,e.positions));try{for(n.s();!(t=n.n()).done;){var a=t.value+o-r.start;a>=0&&a<w.length&&(w[a]=1)}}catch(e){n.e(e)}finally{n.f()}}}));for(var S=o;S<i;S++){var x=S-r.start;if(x>=0&&x<e.length-1){var k=g[x].toLowerCase(),_=g[x+1].toLowerCase(),E=e[x],P=e[x+1];"c"===k&&"g"===_&&(w[x]||w[x+1]?(Le(E,l,"cov","meth"),Le(P,l,"cov","meth"),Fe(E,l,"ref","ref"),Fe(P,l,"ref","ref")):(Le(E,l,"cov","unmeth"),Le(P,l,"cov","unmeth"),Fe(E,l,"ref","ref"),Fe(P,l,"ref","ref")))}}}else{var T=t.get("mismatches");if(T){for(var M=0;M<T.length;M++)for(var R=T[M],N=o+R.start,A=N;A<N+Be(R);A++){var D=A-r.start;if(D>=0&&D<e.length){var B=e[D],I=R.base,L=R.type,F=Ie(L);F?Le(B,l,"noncov",L):Fe(B,l,"ref","ref"),"deletion"===L||"skip"===L?(Le(B,l,"delskips",L),B.total--):F||Le(B,l,"cov",I)}}T.filter((function(e){return"skip"===e.type})).forEach((function(e){var r=t.get("start")+e.start,n=r,a=r+e.length,o=t.get("strand"),i="".concat(n,"_").concat(a,"_").concat(o);f[i]?f[i].score++:f[i]={feature:t,start:n,end:a,strand:o,xs:t.get("xs")||t.get("ts")||t.get("tags").XS||t.get("tags").TS,score:1}}))}}return e}),d)).toPromise();case 18:return e.abrupt("return",{bins:e.sent,skipmap:f});case 20:case"end":return e.stop()}}),e,this)}))),function(e,r,n){return t.apply(this,arguments)})}]),u}(),Oe=qe.capabilities,je={__proto__:null,default:qe,capabilities:Oe},He=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 je})).then((function(e){return e.default}))},configSchema:Re(e),adapterCapabilities:Oe})}))},Ve=a.ConfigurationSchema("SNPCoverageRenderer",{clipColor:{type:"color",description:"the color of the clipping marker",defaultValue:"red"},indicatorThreshold:{type:"number",description:"the proportion of reads containing a insertion/clip indicator",defaultValue:.3},drawArcs:{type:"boolean",description:"Draw sashimi-style arcs for intron features",defaultValue:!0},drawInterbaseCounts:{type:"boolean",description:'draw count "upsidedown histogram" of the interbase events that don\'t contribute to the coverage count so are not drawn in the normal histogram',defaultValue:!0},drawIndicators:{type:"boolean",description:"draw a triangular indicator where an event has been detected",defaultValue:!0}},{explicitlyTyped:!0}),ze=function(e){ee(n,p.WiggleBaseRenderer);var t=ne(n);function n(){return Z(this,n),t.apply(this,arguments)}return Y(n,[{key:"draw",value:function(e,t){var n=t.features,o=t.regions,i=t.bpPerPx,l=t.displayCrossHatches,s=t.modificationTagMap,c=t.scaleOpts,f=t.height,d=t.config,g=t.ticks.values,h=u.createJBrowseTheme(t.theme),m=oe(o,1)[0],y=(m.end-m.start)/i,v=p.YSCALEBAR_LABEL_OFFSET,b=f-2*v,C=J(J({},c),{},{range:[0,b]}),w=p.getScale(C),S=p.getScale(J(J({},C),{},{scaleType:"linear"})),x=p.getOrigin(c.scaleType),k=p.getOrigin("linear"),_=a.readConfObject(d,"indicatorThreshold"),E=a.readConfObject(d,"drawInterbaseCounts"),P=a.readConfObject(d,"drawArcs"),T=a.readConfObject(d,"drawIndicators"),M=function(e){return b-(w(e)||0)+v},R=function(e){return b-(S(e)||0)+v},N=function(e){return R(k)-R(e)},A={A:h.palette.bases.A.main,C:h.palette.bases.C.main,G:h.palette.bases.G.main,T:h.palette.bases.T.main,total:"lightgrey",insertion:"purple",softclip:"blue",hardclip:"red",meth:"red",unmeth:"blue",ref:"lightgrey"},D=ie(n.values()),B=D.filter((function(e){return"skip"!==e.get("type")})),I=D.filter((function(e){return"skip"===e.get("type")}));e.fillStyle=A.total,B.forEach((function(t){var n,a=oe(r.featureSpanPx(t,m,i),2),o=a[0],l=a[1]-o+.3,s=t.get("score");e.fillRect(o,M(s),l,(n=s,M(x)-M(n)))})),e.fillStyle="grey",e.beginPath(),e.lineTo(0,0),e.moveTo(0,y),e.stroke(),B.forEach((function(t){var n=oe(r.featureSpanPx(t,m,i),2),a=n[0],o=n[1],l=t.get("snpinfo"),c=Math.max(o-a+.3,1),u=l.total;Object.entries(l.cov).sort((function(e,t){var r=oe(e,1)[0],n=oe(t,1)[0];return r<n?-1:r>n?1:0})).reduce((function(t,r){var n=oe(r,2),o=n[0],i=n[1].total;return e.fillStyle=A[o]||s[o.replace("mod_","")]||"red",e.fillRect(a,R(i+t),c,N(i)),t+i}),0);var p=Object.entries(l.noncov);if(E&&p.reduce((function(t,r){var n=oe(r,2),o=n[1].total;return e.fillStyle=A[n[0]],e.fillRect(a-.6,4.5+N(t),1.2,N(o)),t+o}),0),T){var f=0,d=0,g="";p.forEach((function(e){var t=oe(e,2),r=t[1].total;f+=r,r>d&&(d=r,g=t[0])})),f>u*_&&u>7&&(e.fillStyle=A[g],e.beginPath(),e.moveTo(a-3,0),e.lineTo(a+3,0),e.lineTo(a,4.5),e.fill())}})),e.globalAlpha=.7,P&&I.forEach((function(t){var n=oe(r.bpSpanPx(t.get("start"),t.get("end"),m,i),2),a=n[0],o=n[1];e.beginPath();var l=t.get("strand"),s=t.get("xs"),c="rgb(255,200,200)",u="rgb(200,200,255)";e.strokeStyle="+"===s?c:"-"===s?u:1===l?c:-1===l?u:"rgb(200,200,200)",e.lineWidth=Math.log(t.get("score")+1),e.moveTo(a,b-2*v),e.bezierCurveTo(a,0,o,0,o,b-2*v),e.stroke()})),l&&(e.lineWidth=1,e.strokeStyle="rgba(140,140,140,0.8)",g.forEach((function(t){e.beginPath(),e.moveTo(0,Math.round(M(t))),e.lineTo(y,Math.round(M(t))),e.stroke()})))}}]),n}(),Ge=a.ConfigurationSchema("SNPCoverageRenderer",{},{baseConfiguration:Ve,explicitlyTyped:!0});function We(e){e.addRendererType((function(){return new ze({name:"SNPCoverageRenderer",ReactComponent:p.WiggleRendering,configSchema:Ge,pluginManager:e})}))}var Ue=function(e){ee(r,f.LayoutSession);var t=ne(r);function r(e){var n;return Z(this,r),(n=t.call(this,e)).showSoftClip=!1,n.config=e.config,n}return Y(r,[{key:"cachedLayoutIsValid",value:function(e){return ae(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 Je(e){return{A:e.palette.bases.A.main,C:e.palette.bases.C.main,G:e.palette.bases.G.main,T:e.palette.bases.T.main,deletion:"#808080"}}var Xe={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 Qe(e){return!["methylation","modifications"].includes(e||"")}var Ze=function(e){ee(i,d);var t,n,o=ne(i);function i(){var e;return Z(this,i),(e=o.apply(this,arguments)).supportsSVG=!0,e}return Y(i,[{key:"getCharWidthHeight",value:function(e){return{charWidth:e.measureText("A").width,charHeight:e.measureText("M").width}}},{key:"layoutFeature",value:function(e){var t=e.feature,n=e.layout,a=e.bpPerPx,o=e.region,i=e.heightPx,l=e.displayMode,s=0,c=0;if(e.showSoftClip){var u=t.get("mismatches");if(t.get("seq"))for(var p=0;p<u.length;p+=1){var f=u[p],d=f.cliplen,g=void 0===d?0:d;"softclip"===f.type&&(0===f.start?s=g:c=g)}}var h=oe(r.bpSpanPx(t.get("start")-s,t.get("end")+c,o,a),2),m=h[0],y=h[1];if("compact"===l&&(i/=3),t.get("refName")!==o.refName)throw new Error("feature ".concat(t.id()," is not on the current region's reference sequence ").concat(o.refName));var v=n.addRect(t.id(),t.get("start")-s,t.get("end")+c,i);return null===v?null:{feature:t,leftPx:m,rightPx:y,topPx:"collapse"===l?0:v,heightPx:i}}},{key:"getExpandedRegion",value:function(e,t){var r=t.showSoftClip,n=a.readConfObject(t.config,"maxClippingSize"),o=e.start,i=e.end,l=Math.max(i-o,r?Math.round(n):0);return J(J({},e),{},{start:Math.floor(Math.max(o-l,0)),end:Math.ceil(i+l)})}},{key:"colorByOrientation",value:function(e,t){return Xe[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"}[De[r][e.get("pair_orientation")]]}},{key:"colorByInsertSize",value:function(e,t){return e.get("is_paired")&&e.get("seq_id")!==e.get("next_seq_id")?"#555":"hsl(".concat(Math.abs(e.get("template_length"))/10,",50%,50%)")}},{key:"colorByStranded",value:function(e,t){var r=e.get("flags"),n=e.get("strand");if(1&r){var a=64&r?-1:1;return 2&r?n*a==1?"color_rev_strand":"color_fwd_strand":e.get("multi_segment_next_segment_unmapped")?n*a==1?"color_rev_missing_mate":"color_fwd_missing_mate":e.get("seq_id")===e.get("next_seq_id")?n*a==1?"color_rev_strand_not_proper":"color_fwd_strand_not_proper":1===n?"color_fwd_diff_chr":"color_rev_diff_chr"}return 1===n?"color_fwd_strand":"color_rev_strand"}},{key:"colorByPerBaseQuality",value:function(e,t,n,a,o){for(var i=t.feature,l=t.topPx,s=t.heightPx,c=(i.get("qual")||"").split(" ").map((function(e){return+e})),u=me(i.get("CIGAR")),p=1/o,f=i.get("start"),d=0,g=0,h=0;h<c.length;d+=2,h++){var m=+u[d],y=u[d+1];if("S"===y||"I"===y)h+=m;else if("D"===y||"N"===y)g+=m;else if("M"===y||"X"===y||"="===y){for(var v=0;v<m;v++){var b=c[h+v];e.fillStyle="hsl(".concat(255===b?150:1.5*b,",55%,50%)");var C=oe(r.bpSpanPx(f+g+v,f+g+v+1,a,o),1);e.fillRect(C[0],l,p+.5,s)}g+=m}}}},{key:"colorByModifications",value:function(e,t,n,a,o,i){var l=t.feature,s=t.topPx,c=t.heightPx,u=i.modificationTagMap,p=void 0===u?{}:u,f=Ae(l,"MM","Mm")||"",d=Ae(l,"ML","Ml")||[],h=d?("string"==typeof d?d.split(",").map((function(e){return+e})):d).map((function(e){return e/255})):Ae(l,"MP","Mp").split("").map((function(e){return e.charCodeAt(0)-33})).map((function(e){return Math.min(1,e/50)})),m=l.get("CIGAR"),y=l.get("start"),v=l.get("end"),b=l.get("seq"),C=l.get("strand"),w=me(m),S=we(f,b,C),x=0;S.forEach((function(t){var n,i=t.positions,l=g(p[t.type]||"black"),u=fe(Ce(w,i));try{for(u.s();!(n=u.n()).done;){var f=n.value;if(f>=0&&y+f<v){var d=oe(r.bpSpanPx(y+f,y+f+1,a,o),2),m=d[0],b=d[1];e.fillStyle=l.alpha(h[x]+.1).hsl().string(),e.fillRect(m,s,b-m+.5,c)}x++}}catch(e){u.e(e)}finally{u.f()}}))}},{key:"colorByMethylation",value:function(e,t,n,a,o,i){var l=i.regionSequence,s=t.feature,c=t.topPx,u=t.heightPx,p=Ae(s,"MM","Mm")||"";if(!l)throw new Error("region sequence required for methylation");var f=s.get("CIGAR"),d=s.get("start"),g=s.get("end"),h=s.get("seq"),m=s.get("strand"),y=me(f),v=a.start,b=new Array(a.end-v).fill(0);we(p,h,m).forEach((function(e){var t=e.positions;if("m"===e.type&&t){var r,n=fe(Ce(y,t));try{for(n.s();!(r=n.n()).done;){var a=r.value+d-v;a>=0&&a<b.length&&(b[a]=1)}}catch(e){n.e(e)}finally{n.f()}}}));for(var C=d;C<g;C++){var w=C-v;if(w>=0&&w<b.length){var S=l[w].toLowerCase(),x=l[w+1].toLowerCase();if(o>2){if("c"===S&&"g"===x){var k=v+w,_=oe(r.bpSpanPx(k,k+2,a,o),2),E=_[0],P=_[1];e.fillStyle=b[w]||b[w+1]?"red":"blue",e.fillRect(E,c,P-E+.5,u)}}else if("c"===S&&"g"===x){var T=v+w,M=oe(r.bpSpanPx(T,T+1,a,o),2),R=M[0],N=M[1];e.fillStyle=b[w]?"red":"blue",e.fillRect(R,c,N-R+.5,u);var A=oe(r.bpSpanPx(T+1,T+2,a,o),2),D=A[0],B=A[1];e.fillStyle=b[w+1]?"red":"blue",e.fillRect(D,c,B-D+.5,u)}}}}},{key:"drawRect",value:function(e,t,n){var a=n.bpPerPx,o=t.heightPx,i=t.topPx,l=t.feature,s=oe(n.regions,1)[0],c=oe(r.bpSpanPx(l.get("start"),l.get("end"),s,a),2),u=c[0],p=c[1],f=s.reversed?-1:1,d=l.get("strand")*f;a<10?-1===d?(e.beginPath(),e.moveTo(u-5,i+o/2),e.lineTo(u,i+o),e.lineTo(p,i+o),e.lineTo(p,i),e.lineTo(u,i),e.closePath(),e.fill()):(e.beginPath(),e.moveTo(u,i),e.lineTo(u,i+o),e.lineTo(p,i+o),e.lineTo(p+5,i+o/2),e.lineTo(p,i),e.closePath(),e.fill()):e.fillRect(u,i,p-u,o)}},{key:"drawAlignmentRect",value:function(e,t,r){var n=r.defaultColor,o=r.config,i=r.bpPerPx,l=r.colorTagMap,s=void 0===l?{}:l,c=r.colorBy||{},u=c.tag,p=void 0===u?"":u,f=c.type,d=void 0===f?"":f,g=t.feature,h=r.regions[0];switch(d){case"insertSize":e.fillStyle=this.colorByInsertSize(g,o);break;case"strand":e.fillStyle=-1===g.get("strand")?"#8F8FD8":"#EC8B8B";break;case"mappingQuality":e.fillStyle="hsl(".concat(g.get("mq"),",50%,50%)");break;case"pairOrientation":e.fillStyle=this.colorByOrientation(g,o);break;case"stranded":e.fillStyle=Xe[this.colorByStranded(g,o)];break;case"xs":case"tag":var m=g.get("tags"),y=m?m[p]:g.get(p);if("XS"!==p&&"TS"!==p||(e.fillStyle=Xe[{"-":"color_rev_strand","+":"color_fwd_strand"}[y]||"color_nostrand"]),"ts"===p){var v={"-":-1===g.get("strand")?"color_fwd_strand":"color_rev_strand","+":-1===g.get("strand")?"color_rev_strand":"color_fwd_strand"};e.fillStyle=Xe[v[y]||"color_nostrand"]}else e.fillStyle=s[y]||Xe.color_nostrand;break;case"insertSizeAndPairOrientation":break;case"normal":default:e.fillStyle=n?"#c8c8c8":a.readConfObject(o,"color",{feature:g})}switch(this.drawRect(e,t,r),d){case"perBaseQuality":this.colorByPerBaseQuality(e,t,o,h,i);break;case"modifications":this.colorByModifications(e,t,o,h,i,r);break;case"methylation":this.colorByMethylation(e,t,o,h,i,r)}}},{key:"drawMismatches",value:function(e,t,n,a,o,i){var l=i.minSubfeatureWidth,s=i.largeInsertionIndicatorScale,c=i.mismatchAlpha,u=i.drawSNPs,p=void 0===u||u,f=i.drawIndels,d=void 0===f||f,h=i.charWidth,m=i.charHeight,y=n.bpPerPx,v=t.heightPx,b=t.topPx,C=t.feature,w=oe(n.regions,1)[0],S=C.get("start"),x=Math.min(1/y,2),k=Math.max(l,x),_=C.get("mismatches"),E=m-2;function P(e,t){var r=e;return c&&void 0!==t.qual&&(r=g(e).alpha(Math.min(1,t.qual/50)).hsl().string()),r}for(var T=0;T<_.length;T+=1){var M=_[T],R=S+M.start,N=M.base,A=oe(r.bpSpanPx(R,R+M.length,w,y),2),D=A[0],B=Math.max(l,Math.abs(D-A[1]));if("mismatch"===M.type&&p){var I=o[M.base]||"#888";e.fillStyle=P(I,M),e.fillRect(D,b,B,v),B>=h&&v>=E&&(e.fillStyle=P(a.palette.getContrastText(I),M),e.fillText(N,D+(B-h)/2+1,b+v))}else if("deletion"===M.type&&d){var L=o.deletion;e.fillStyle=L,e.fillRect(D,b,B,v),B>=h&&v>=E&&(e.fillStyle=a.palette.getContrastText(L),e.fillText(N,D+(B-h)/2+1,b+v))}else if("insertion"===M.type&&d){e.fillStyle="purple";var F=D-1;(+M.base||M.length)<10&&(e.fillRect(F,b,k,v),1/y>=h&&(e.fillRect(F-k,b,3*k,1),e.fillRect(F-k,b+v-1,3*k,1)),1/y>=h&&v>=E&&e.fillText("(".concat(M.base,")"),D+2,b+v))}else if("hardclip"===M.type||"softclip"===M.type){e.fillStyle="hardclip"===M.type?"red":"blue";var q=D-1;e.fillRect(q,b+1,k,v-2),e.fillRect(q-k,b,3*k,1),e.fillRect(q-k,b+v-1,3*k,1),B>=h&&v>=E&&e.fillText("(".concat(M.base,")"),D+2,b+v)}else"skip"===M.type&&(D+B>0&&e.clearRect(D,b,B-(y>10?1.5:0),v),e.fillStyle="#333",e.fillRect(D,b+v/2,B,2))}if(d)for(var O=0;O<_.length;O+=1){var j=_[O],H=S+j.start,V=oe(r.bpSpanPx(H,H+j.length,w,y),1)[0],z=+j.base||j.length,G="".concat(z);if("insertion"===j.type&&z>=10)if(y>s)e.fillStyle="purple",e.fillRect(V-1,b,2,v);else if(v>m){var W=e.measureText(G);e.fillStyle="purple",e.fillRect(V-W.width/2-5,b,W.width+10,v),e.fillStyle="white",e.fillText(G,V-W.width/2,b+v)}else e.fillStyle="purple",e.fillRect(V-2,b,4,v)}}},{key:"drawSoftClipping",value:function(e,t,n,o,i){var l=t.feature,s=t.topPx,c=t.heightPx,u=n.bpPerPx,p=oe(n.regions,1)[0],f=a.readConfObject(o,"minSubfeatureWidth"),d=l.get("mismatches"),g=l.get("seq"),h=this.getCharWidthHeight(e),m=h.charWidth,y=h.charHeight,v={A:i.palette.bases.A.main,C:i.palette.bases.C.main,G:i.palette.bases.G.main,T:i.palette.bases.T.main,deletion:"#808080"};g&&d.filter((function(e){return"softclip"===e.type})).forEach((function(t){for(var n=t.cliplen||0,a=0===t.start?l.get("start")-n:l.get("start")+t.start,o=0;o<n;o+=1){var d=g.charAt(o+t.start);if(!d)return;var h=oe(r.bpSpanPx(a+o,a+o+1,p,u),2),b=h[0],C=Math.max(f,Math.abs(b-h[1])),w=v[d]||"#000000";e.fillStyle=w,e.fillRect(b,s,C,c),C>=m&&c>=y-5&&(e.fillStyle=i.palette.getContrastText(w),e.fillText(d,b+(C-m)/2+1,s+c))}}))}},{key:"makeImageData",value:(n=Q(ge.mark((function e(t,r,n){var o,i,l,s,c,p,f,d,g,h,m,y,v,b,C=this;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=n.layout,l=n.showSoftClip,s=n.colorBy,c=n.theme,p=a.readConfObject(i=n.config,"mismatchAlpha"),f=a.readConfObject(i,"minSubfeatureWidth"),d=a.readConfObject(i,"largeInsertionIndicatorScale"),g="#f0f"===a.readConfObject(i,"color"),h=u.createJBrowseTheme(c),m=Je(h),o){e.next=9;break}throw new Error("layout required");case 9:if(o.addRect){e.next=11;break}throw new Error("invalid layout object");case 11:t.font="bold 10px Courier New,monospace",y=this.getCharWidthHeight(t),v=y.charWidth,b=y.charHeight,r.forEach((function(e){null!==e&&(C.drawAlignmentRect(t,e,J(J({},n),{},{defaultColor:g})),C.drawMismatches(t,e,n,h,m,{mismatchAlpha:p,drawSNPs:Qe(null==s?void 0:s.type),drawIndels:Qe(null==s?void 0:s.type),largeInsertionIndicatorScale:d,minSubfeatureWidth:f,charWidth:v,charHeight:b}),l&&C.drawSoftClipping(t,e,n,i,h))}));case 14:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"layoutFeats",value:function(e){var t=this,n=e.layout,o=e.features,i=e.sortedBy,l=e.config,s=e.bpPerPx,c=e.showSoftClip,u=oe(e.regions,1)[0];if(!n)throw new Error("layout required");if(!n.addRect)throw new Error("invalid layout object");var p=null!=i&&i.type&&u.start===i.pos?function(e,t){var r=Array.from(e.values()),n=[],a=[],o=t.pos,i=t.type;r.forEach((function(e){var t=e,r=t.get("start"),i=t.get("end");y.doesIntersect2(o-1,o,r,i)?n.push(e):a.push(e)}));var l=!!r.length&&r[0].get("tags");switch(i){case"Start location":n.sort((function(e,t){return e.get("start")-t.get("start")}));break;case"tag":var s=t.tag,c=function(e,t){return l?e.get("tags")[t]:e.get(t)},u=n[0]&&"string"==typeof c(n[0],s);n.sort(u?function(e,t){return c(t,s).localeCompare(c(e,s))}:function(e,t){return(c(t,s)||0)-(c(e,s)||0)});break;case"Base pair":var p=[];n.forEach((function(e){e.get("mismatches").forEach((function(t){var r=e.get("start")+t.start+1;o>=r&&o<r+("insertion"===t.type||"softclip"===t.type?0:t.length)&&p.push([e.id(),t])}))}));var f=new Map(p);n.sort((function(e,t){var r=f.get(e.id()),n=f.get(t.id()),a=n&&n.base.toUpperCase(),o=r&&r.base.toUpperCase();return a===o&&"*"===a?r.length-n.length:(a?a.charCodeAt(0):0)-(o?o.charCodeAt(0):0)}));break;case"Read strand":n.sort((function(e,t){return e.get("strand")<=t.get("strand")?1:-1}))}return new Map(n.concat(a).map((function(e){return[e.id(),e]})))}(o,i):o,f=a.readConfObject(l,"height"),d=a.readConfObject(l,"displayMode");return r.iterMap(p.values(),(function(e){return t.layoutFeature({feature:e,layout:n,bpPerPx:s,region:u,showSoftClip:c,heightPx:f,displayMode:d})}),p.size)}},{key:"render",value:(t=Q(ge.mark((function e(t){var r,n,a,o,l,s,u,p,f,d,g,y,v,b,C,w,S,x,k,_=this;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.sessionId,n=t.bpPerPx,a=t.regions,o=t.adapterConfig.sequenceAdapter,e.next=4,this.getFeatures(t);case 4:if(l=e.sent,s=this.createLayoutInWorker(t),u=this.layoutFeats(J(J({},t),{},{features:l,layout:s})),p=oe(a,1),g=(f=p[0]).end,y=f.start,v=f.originalRefName,b=f.refName,!o){e.next=18;break}return e.next=12,m.getAdapter(this.pluginManager,r,o);case 12:return w=e.sent.dataAdapter,e.next=16,w.getFeatures(J(J({},f),{},{refName:v||b,end:f.end+1})).pipe(c.toArray()).toPromise();case 16:d=null===(C=e.sent[0])||void 0===C?void 0:C.get("seq");case 18:return S=(g-y)/n,x=Math.max(s.getTotalHeight(),1),e.next=22,h.renderToAbstractCanvas(S,x,t,(function(e){return _.makeImageData(e,u,J(J({},t),{},{layout:s,features:l,regionSequence:d}))}));case 22:return k=e.sent,e.next=25,ae(te(i.prototype),"render",this).call(this,J(J(J({},t),k),{},{features:l,layout:s,height:x,width:S}));case 25:return e.abrupt("return",J(J(J({},e.sent),k),{},{features:l,layout:s,height:x,width:S,maxHeightReached:s.maxHeightReached}));case 27:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"createSession",value:function(e){return new Ue(e)}}]),i}();function $e(e){var t=e.onMouseMove,n=e.blockKey,a=e.displayModel,o=e.width,i=e.height,l=e.bpPerPx,s=e.sortedBy,c=e.colorBy,p=a.selectedFeatureId,f=a.featureIdUnderMouse,d=a.contextMenuFeature,g=oe(e.regions,1)[0],h=C.useRef(null),m=oe(C.useState(!1),2),y=m[0],v=m[1],b=oe(C.useState(!1),2),S=b[0],x=b[1];function k(t,r){var n=e["onFeature".concat(t)],a=e["on".concat(t)];n&&f?n(r,f):a&&a(r,f)}C.useEffect((function(){var e,t,o=h.current;if(o){var i=o.getContext("2d");if(i){i.clearRect(0,0,o.width,o.height);var s=p?null===(e=a.getFeatureByID)||void 0===e?void 0:e.call(a,n,p):void 0;if(s){var c=oe(s,4),u=c[1],m=c[3],y=oe(r.bpSpanPx(c[0],c[2],g,l),2),v=y[0],b=y[1],C=Math.round(u),w=Math.round(m-u);i.shadowColor="#222266",i.shadowBlur=10,i.lineJoin="bevel",i.lineWidth=2,i.strokeStyle="#00b8ff",i.strokeRect(v-2,C-2,b-v+4,w+4),i.clearRect(v,C,b-v,w)}var S=f||(null==d?void 0:d.id()),x=S?null===(t=a.getFeatureByID)||void 0===t?void 0:t.call(a,n,S):void 0;if(x){var k=oe(x,4),_=k[1],E=k[3],P=oe(r.bpSpanPx(k[0],k[2],g,l),2),T=P[0],M=P[1],R=Math.round(_),N=Math.round(E-_);i.fillStyle="#0003",i.fillRect(T,R,M-T,N)}}}}),[l,g,n,p,a,f,d]);var _=Math.ceil(o);return w.createElement("div",{className:"PileupRendering","data-testid":"pileup-".concat(s||c?"".concat((null==s?void 0:s.type)||"").concat((null==c?void 0:c.type)||"").concat((null==c?void 0:c.tag)||""):"normal"),style:{position:"relative",width:_,height:i}},w.createElement(u.PrerenderedCanvas,Object.assign({},e,{style:{position:"absolute",left:0,top:0}})),w.createElement("canvas",{"data-testid":"pileup_overlay_canvas",width:_,height:i+100,style:{position:"absolute",left:0,top:0},className:"highlightOverlayCanvas",ref:h,onMouseDown:function(e){return function(e){v(!0),x(!1),k("MouseDown",e)}(e)},onMouseEnter:function(e){return function(e){k("MouseEnter",e)}(e)},onMouseOut:function(e){return function(e){k("MouseOut",e),k("MouseLeave",e)}(e)},onMouseOver:function(e){return function(e){k("MouseOver",e)}(e)},onMouseUp:function(e){return function(e){v(!1),k("MouseUp",e)}(e)},onMouseLeave:function(e){return function(e){k("MouseOut",e),k("MouseLeave",e)}(e)},onMouseMove:function(e){return function(e){y&&x(!0);var r=0,i=0;h.current&&(r=h.current.getBoundingClientRect().left,i=h.current.getBoundingClientRect().top),r=e.clientX-r;var s=a.getFeatureOverlapping(n,g.start+l*(g.reversed?o-r:r),i=e.clientY-i);t&&t(e,s)}(e)},onClick:function(e){return function(e){S||k("Click",e)}(e)},onContextMenu:function(e){return function(e){k("ContextMenu",e)}(e)},onFocus:function(){},onBlur:function(){}}))}var Ye=b.observer($e),Ke=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 et(e){e.addRendererType((function(){return new Ze({name:"PileupRenderer",ReactComponent:Ye,configSchema:Ke,pluginManager:e})}))}var tt=function(e,t){return o.types.compose("LinearAlignmentsDisplay",k.BaseDisplay,o.types.model({PileupDisplay:o.types.maybe(e.getDisplayType("LinearPileupDisplay").stateModel),SNPCoverageDisplay:o.types.maybe(e.getDisplayType("LinearSNPCoverageDisplay").stateModel),snpCovHeight:45,type:o.types.literal("LinearAlignmentsDisplay"),configuration:a.ConfigurationReference(t),height:250,showCoverage:!0,showPileup:!0})).volatile((function(){return{scrollTop:0}})).actions((function(e){return{toggleCoverage:function(){e.showCoverage=!e.showCoverage},togglePileup:function(){e.showPileup=!e.showPileup},setScrollTop:function(t){e.scrollTop=t},setSNPCoverageHeight:function(t){e.snpCovHeight=t}}})).views((function(e){var t=e.trackMenuItems;return{get pileupDisplayConfig(){var t=a.getConf(e,"pileupDisplay"),n=r.getContainingTrack(e);return J(J({},t),{},{type:"LinearPileupDisplay",name:"".concat(a.getConf(n,"name")," pileup"),displayId:"".concat(e.configuration.displayId,"_pileup_xyz")})},getFeatureByID:function(t,r){return e.PileupDisplay.getFeatureByID(t,r)},searchFeatureByID:function(t){return e.PileupDisplay.searchFeatureByID(t)},get features(){return e.PileupDisplay.features},get DisplayBlurb(){var t;return null===(t=e.PileupDisplay)||void 0===t?void 0:t.DisplayBlurb},get sortedBy(){return e.PileupDisplay.sortedBy},get sortedByPosition(){return e.PileupDisplay.sortedByPosition},get sortedByRefName(){return e.PileupDisplay.sortedByRefName},get snpCoverageDisplayConfig(){var t=a.getConf(e,"snpCoverageDisplay"),n=r.getContainingTrack(e);return J(J({},t),{},{type:"LinearSNPCoverageDisplay",name:"".concat(a.getConf(n,"name")," snp coverage"),displayId:"".concat(e.configuration.displayId,"_snpcoverage_xyz")})},trackMenuItems:function(){return[].concat(ie(t()),[{type:"subMenu",label:"Pileup settings",subMenu:e.PileupDisplay.trackMenuItems()},{type:"subMenu",label:"SNPCoverage settings",subMenu:e.SNPCoverageDisplay.trackMenuItems()}])}}})).actions((function(e){return{setSNPCoverageDisplay:function(t){e.SNPCoverageDisplay={type:"LinearSNPCoverageDisplay",configuration:t,height:e.snpCovHeight}},setUserBpPerPxLimit:function(t){e.PileupDisplay.setUserBpPerPxLimit(t),e.SNPCoverageDisplay.setUserBpPerPxLimit(t)},setPileupDisplay:function(t){e.PileupDisplay={type:"LinearPileupDisplay",configuration:t}},setHeight:function(t){return e.height=t>20?t:20,e.height},resizeHeight:function(t){var r=e.height;return this.setHeight(e.height+t)-r}}})).actions((function(e){return{afterAttach:function(){o.addDisposer(e,_.autorun((function(){e.SNPCoverageDisplay?v(e.snpCoverageDisplayConfig,o.getSnapshot(e.SNPCoverageDisplay.configuration))||(e.SNPCoverageDisplay.setHeight(e.snpCovHeight),e.SNPCoverageDisplay.setConfig(e.snpCoverageDisplayConfig)):e.setSNPCoverageDisplay(e.snpCoverageDisplayConfig),e.PileupDisplay?v(e.pileupDisplayConfig,o.getSnapshot(e.PileupDisplay.configuration))||e.PileupDisplay.setConfig(e.pileupDisplayConfig):e.setPileupDisplay(e.pileupDisplayConfig),e.PileupDisplay.filterBy&&!v(o.getSnapshot(e.PileupDisplay.filterBy),o.getSnapshot(e.SNPCoverageDisplay.filterBy))&&e.SNPCoverageDisplay.setFilterBy(o.getSnapshot(e.PileupDisplay.filterBy)),e.PileupDisplay.colorBy&&!v(o.getSnapshot(e.PileupDisplay.colorBy),e.SNPCoverageDisplay.colorBy?o.getSnapshot(e.SNPCoverageDisplay.colorBy):{})&&e.SNPCoverageDisplay.setColorBy(o.getSnapshot(e.PileupDisplay.colorBy))}))),o.addDisposer(e,_.autorun((function(){e.setSNPCoverageHeight(e.SNPCoverageDisplay.height)})))},renderSvg:function(t){return Q(ge.mark((function r(){var n;return ge.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return n=e.height-e.SNPCoverageDisplay.height,r.next=3,_.when((function(){return e.PileupDisplay.ready}));case 3:return r.t0=w,r.t1=w.Fragment,r.t2=w,r.next=8,e.SNPCoverageDisplay.renderSvg(t);case 8:return r.t3=r.sent,r.t4=r.t2.createElement.call(r.t2,"g",null,r.t3),r.t5=w,r.t6={transform:"translate(0 ".concat(e.SNPCoverageDisplay.height,")")},r.next=14,e.PileupDisplay.renderSvg(J(J({},t),{},{overrideHeight:n}));case 14:return r.t7=r.sent,r.t8=r.t5.createElement.call(r.t5,"g",r.t6,r.t7),r.abrupt("return",r.t0.createElement.call(r.t0,r.t1,null,r.t4,r.t8));case 17:case"end":return r.stop()}}),r)})))()}}}))};function rt(e){var t=e.model,r=t.PileupDisplay,n=t.SNPCoverageDisplay,o=t.showPileup,i=t.showCoverage;return w.createElement("div",{"data-testid":"display-".concat(a.getConf(t,"displayId")),style:{position:"relative"}},w.createElement("div",{"data-testid":"Blockset-snpcoverage"},i?w.createElement(n.RenderingComponent,{model:n}):null),w.createElement(u.ResizeHandle,{onDrag:function(e){return n?(n.setHeight(n.height+e),e):0},style:{position:"absolute",top:i?n.height+2:0,height:3}}),w.createElement("div",{"data-testid":"Blockset-pileup",style:{position:"absolute",top:i?n.height+5:0,height:3}},o?w.createElement(r.RenderingComponent,{model:r}):null))}var nt=b.observer(rt);function at(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:tt(e,t),trackType:"AlignmentsTrack",viewType:"LinearGenomeView",ReactComponent:nt})}))}var ot=function(e){return e.toLocaleString("en-US")},it=w.forwardRef((function(e,t){var r=e.feature,n=r.get("start"),a=r.get("end"),o=[r.get("refName"),n===a?ot(n):"".concat(ot(n),"..").concat(ot(a))].filter((function(e){return!!e})).join(":"),i=r.get("snpinfo"),l=null==i?void 0:i.total;return w.createElement("div",{ref:t},w.createElement("table",null,w.createElement("caption",null,o),w.createElement("thead",null,w.createElement("tr",null,w.createElement("th",null,"Base"),w.createElement("th",null,"Count"),w.createElement("th",null,"% of Total"),w.createElement("th",null,"Strands"),w.createElement("th",null,"Source"))),w.createElement("tbody",null,w.createElement("tr",null,w.createElement("td",null,"Total"),w.createElement("td",null,l),w.createElement("td",null)),Object.entries(i).map((function(e){var t=oe(e,2),r=t[0];return Object.entries(t[1]).map((function(e){var t=oe(e,2),n=t[0],a=t[1],o=a.strands;return w.createElement("tr",{key:n},w.createElement("td",null,n.toUpperCase()),w.createElement("td",null,a.total),w.createElement("td",null,"total"===n||"skip"===n?"---":"".concat(Math.floor(a.total/l*100),"%")),w.createElement("td",null,o[-1]?"".concat(o[-1],"(-)"):"",o[1]?"".concat(o[1],"(+)"):""),w.createElement("td",null,r))}))})))))})),lt=b.observer((function(e){var t=e.model.featureUnderMouse;return t&&"skip"===t.get("type")?null:w.createElement(p.Tooltip,Object.assign({TooltipContents:it},e))}));function st(e,t,r,n){return ct.apply(this,arguments)}function ct(){return(ct=Q(ge.mark((function e(t,n,a,o){var i,l,s,c;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=r.getSession(t),l=i.rpcManager,s=t.adapterConfig,c=P.getRpcSessionId(t),e.next=5,l.call(P.getRpcSessionId(t),"PileupGetGlobalValueForTag",J({adapterConfig:s,tag:n.tag,sessionId:c,regions:a.contentBlocks},o));case 5:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ut(e,t,r,n,a){return pt.apply(this,arguments)}function pt(){return(pt=Q(ge.mark((function e(t,n,a,o,i){var l,s,c;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l=r.getSession(t),s=l.rpcManager,c=P.getRpcSessionId(t),e.next=4,s.call(c,"PileupGetVisibleModifications",J({adapterConfig:n,tag:a.tag,sessionId:c,regions:o.contentBlocks},i));case 4:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var ft=new Map([["snpcoverage","SNPCoverageRenderer"]]),dt=function(e,t){return o.types.compose("LinearSNPCoverageDisplay",p.linearWiggleDisplayModelFactory(e,t),o.types.model({type:o.types.literal("LinearSNPCoverageDisplay"),drawInterbaseCounts:o.types.maybe(o.types.boolean),drawIndicators:o.types.maybe(o.types.boolean),drawArcs:o.types.maybe(o.types.boolean),filterBy:o.types.optional(o.types.model({flagInclude:o.types.optional(o.types.number,0),flagExclude:o.types.optional(o.types.number,1540),readName:o.types.maybe(o.types.string),tagFilter:o.types.maybe(o.types.model({tag:o.types.string,value:o.types.string}))}),{}),colorBy:o.types.maybe(o.types.model({type:o.types.string,tag:o.types.maybe(o.types.string)}))})).volatile((function(){return{modificationTagMap:_.observable.map({})}})).actions((function(e){return{setConfig:function(t){e.configuration=t},setFilterBy:function(t){e.filterBy=o.cast(t)},setColorBy:function(t){e.colorBy=o.cast(t)},updateModificationColorMap:function(t){var r=["red","blue","green","orange","purple"],n=0;t.forEach((function(t){if(!e.modificationTagMap.has(t)){var a=r[n++];e.modificationTagMap.set(t,a)}}))}}})).views((function(e){var t=e.renderProps;return{get rendererConfig(){var t=a.getConf(e,["renderers",e.rendererTypeName])||{};return e.rendererType.configSchema.create(J(J({},t),{},{drawInterbaseCounts:void 0===e.drawInterbaseCounts?t.drawInterbaseCounts:e.drawInterbaseCounts,drawIndicators:void 0===e.drawIndicators?t.drawIndicators:e.drawIndicators,drawArcs:void 0===e.drawArcs?t.drawArcs:e.drawArcs}),o.getEnv(e))},get drawArcsSetting(){return void 0!==e.drawArcs?e.drawArcs:a.readConfObject(this.rendererConfig,"drawArcs")},get drawInterbaseCountsSetting(){return void 0!==e.drawInterbaseCounts?e.drawInterbaseCounts:a.readConfObject(this.rendererConfig,"drawInterbaseCounts")},get drawIndicatorsSetting(){return void 0!==e.drawIndicators?e.drawIndicators:a.readConfObject(this.rendererConfig,"drawIndicators")},get modificationsReady(){var t;return"modifications"!==(null===(t=e.colorBy)||void 0===t?void 0:t.type)||Object.keys(JSON.parse(JSON.stringify(e.modificationTagMap))).length>0},renderProps:function(){return J(J({},t()),{},{notReady:!e.ready||!this.modificationsReady,filters:e.filters,modificationTagMap:JSON.parse(JSON.stringify(e.modificationTagMap)),colorBy:e.colorBy?o.getSnapshot(e.colorBy):void 0})}}})).actions((function(e){return{toggleDrawIndicators:function(){e.drawIndicators=!e.drawIndicatorsSetting},toggleDrawInterbaseCounts:function(){e.drawInterbaseCounts=!e.drawInterbaseCountsSetting},toggleDrawArcs:function(){e.drawArcs=!e.drawArcsSetting},afterAttach:function(){o.addDisposer(e,_.autorun(Q(ge.mark((function t(){var n,o,i;return ge.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,ut(e,a.getConf(e.parentTrack,"adapter"),n,i);case 6:e.updateModificationColorMap(t.sent);case 8:t.next=14;break;case 10:t.prev=10,t.t0=t.catch(0),console.error(t.t0),e.setError(t.t0);case 14:case"end":return t.stop()}}),t,null,[[0,10]])}))),{delay:1e3}))}}})).views((function(e){var t=e.trackMenuItems;return{get TooltipComponent(){return lt},get adapterConfig(){return{type:"SNPCoverageAdapter",subadapter:a.getConf(e.parentTrack,"adapter")}},get rendererTypeName(){return ft.get("snpcoverage")},get needsScalebar(){return!0},contextMenuItems:function(){return[]},trackMenuItems:function(){return[].concat(ie(t()),[{label:"Draw insertion/clipping indicators",type:"checkbox",checked:e.drawIndicatorsSetting,onClick:function(){e.toggleDrawIndicators()}},{label:"Draw insertion/clipping counts",type:"checkbox",checked:e.drawInterbaseCountsSetting,onClick:function(){e.toggleDrawInterbaseCounts()}},{label:"Draw arcs",type:"checkbox",checked:e.drawArcsSetting,onClick:function(){e.toggleDrawArcs()}}])},get filters(){var t=[];if(e.filterBy){var r=e.filterBy,n=r.flagInclude,a=r.flagExclude,o=r.tagFilter,i=r.readName;if(t=["jexl:get(feature,'snpinfo') != undefined ? true : "+"((get(feature,'flags')&".concat(n,")==").concat(n,") && ")+"!((get(feature,'flags')&".concat(a,"))")],o){var l=o.tag,s=o.value;t.push("jexl:get(feature,'snpinfo') != undefined ? true : "+'"'.concat(s,"\" =='*' ? getTag(feature,\"").concat(l,'") != undefined : ')+'getTag(feature,"'.concat(l,'") == "').concat(s,'"'))}i&&t.push("jexl:get(feature,'snpinfo') != undefined ? true : "+"get(feature,'name') == \"".concat(i,'"'))}return new E({filters:t})}}}))};function gt(e){e.addDisplayType((function(){var t=function(e){var t=e.getRendererType("SNPCoverageRenderer").configSchema;return a.ConfigurationSchema("LinearSNPCoverageDisplay",{autoscale:{type:"stringEnum",defaultValue:"local",model:o.types.enumeration("Autoscale type",["local"]),description:"performs local autoscaling (no other options for SNP Coverage available)"},minScore:{type:"number",defaultValue:Number.MIN_VALUE,description:"minimum value for the y-scale"},maxScore:{type:"number",description:"maximum value for the y-scale",defaultValue:Number.MAX_VALUE},scaleType:{type:"stringEnum",model:o.types.enumeration("Scale type",["linear","log"]),description:"The type of scale to use",defaultValue:"linear"},inverted:{type:"boolean",description:"draw upside down",defaultValue:!1},maxDisplayedBpPerPx:{type:"number",description:"maximum bpPerPx that is displayed in the view",defaultValue:100},headroom:{type:"number",description:"round the upper value of the domain scale to the nearest N",defaultValue:0},renderers:a.ConfigurationSchema("RenderersConfiguration",{SNPCoverageRenderer:t})},{baseConfiguration:x.baseLinearDisplayConfigSchema,explicitlyTyped:!0})}(e);return new S({name:"LinearSNPCoverageDisplay",configSchema:t,stateModel:dt(e,t),trackType:"AlignmentsTrack",viewType:"LinearGenomeView",ReactComponent:p.LinearWiggleDisplayReactComponent})}))}function ht(e){var t=e.model,r=t.sortedBy;return r?w.createElement("div",{"data-testid":"blurb-".concat(t.sortedBy),style:{backgroundColor:"white"}},w.createElement(I,{color:"secondary",variant:"caption"},t.sortedBy?"Sorted by ".concat(r.type.toLowerCase()," at ").concat(r.refName,":").concat(r.pos):null)):null}var mt=b.observer(ht),yt=["uniqueId"],vt=C.lazy((function(){return Promise.resolve().then((function(){return Vt}))})),bt=C.lazy((function(){return Promise.resolve().then((function(){return Jt}))})),Ct=C.lazy((function(){return Promise.resolve().then((function(){return Zt}))})),wt=C.lazy((function(){return Promise.resolve().then((function(){return Kt}))})),St=C.lazy((function(){return Promise.resolve().then((function(){return rr}))})),xt=C.lazy((function(){return Promise.resolve().then((function(){return ir}))})),kt=new Map([["pileup","PileupRenderer"],["svg","SvgFeatureRenderer"]]),_t=function(e){return o.types.compose("LinearPileupDisplay",x.BaseLinearDisplay,o.types.model({type:o.types.literal("LinearPileupDisplay"),configuration:a.ConfigurationReference(e),showSoftClipping:!1,featureHeight:o.types.maybe(o.types.number),noSpacing:o.types.maybe(o.types.boolean),fadeLikelihood:o.types.maybe(o.types.boolean),trackMaxHeight:o.types.maybe(o.types.number),mismatchAlpha:o.types.maybe(o.types.boolean),sortedBy:o.types.maybe(o.types.model({type:o.types.string,pos:o.types.number,tag:o.types.maybe(o.types.string),refName:o.types.string,assemblyName:o.types.string})),colorBy:o.types.maybe(o.types.model({type:o.types.string,tag:o.types.maybe(o.types.string),extra:o.types.frozen()})),filterBy:o.types.optional(o.types.model({flagInclude:o.types.optional(o.types.number,0),flagExclude:o.types.optional(o.types.number,1540),readName:o.types.maybe(o.types.string),tagFilter:o.types.maybe(o.types.model({tag:o.types.string,value:o.types.string}))}),{})})).volatile((function(){return{colorTagMap:_.observable.map({}),modificationTagMap:_.observable.map({}),ready:!1,currBpPerPx:0}})).actions((function(e){return{setReady:function(t){e.ready=t},setCurrBpPerPx:function(t){e.currBpPerPx=t},setMaxHeight:function(t){e.trackMaxHeight=t},setFeatureHeight:function(t){e.featureHeight=t},setNoSpacing:function(t){e.noSpacing=t},setColorScheme:function(t){e.colorTagMap=_.observable.map({}),e.colorBy=o.cast(t),e.ready=!1},updateModificationColorMap:function(t){var r=["red","blue","green","orange","purple"];t.forEach((function(t){if(!e.modificationTagMap.has(t)){var n=ie(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=ie(e.colorTagMap.keys()).length;e.colorTagMap.set(t,r[n])}}))}}})).actions((function(e){return{afterAttach:function(){o.addDisposer(e,_.autorun(Q(ge.mark((function t(){var n,o,i,l,s,c,u,p;return ge.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,n=r.getSession(e),o=n.rpcManager,i=e.sortedBy,l=e.colorBy,s=r.getContainingView(e),null==l||!l.tag){t.next=9;break}return t.next=7,st(e,l,s.staticBlocks);case 7:e.updateColorTagMap(t.sent);case 9:if("modifications"!==(null==l?void 0:l.type)){t.next=14;break}return t.next=12,ut(e,a.getConf(e.parentTrack,["adapter"]),l,s.staticBlocks);case 12:e.updateModificationColorMap(t.sent);case 14:if(!i){t.next=23;break}return p={start:c=i.pos,end:c+1,refName:i.refName,assemblyName:u=i.assemblyName},t.next=19,e.rendererType.renderInClient(o,J({assemblyName:u,regions:[p],adapterConfig:e.adapterConfig,rendererType:e.rendererType.name,sessionId:P.getRpcSessionId(e),timeout:1e6},e.renderProps()));case 19:e.setReady(!0),e.setCurrBpPerPx(s.bpPerPx),t.next=24;break;case 23:e.setReady(!0);case 24:t.next=30;break;case 26:t.prev=26,t.t0=t.catch(0),console.error(t.t0),e.setError(t.t0);case 30:case"end":return t.stop()}}),t,null,[[0,26]])}))),{delay:1e3}))},selectFeature:function(t){var n=r.getSession(e);if(r.isSessionModelWithWidgets(n)){var a=n.addWidget("AlignmentsFeatureWidget","alignmentFeature",{featureData:t.toJSON(),view:r.getContainingView(e)});n.showWidget(a)}n.setSelection(t)},clearSelected:function(){e.sortedBy=void 0},copyFeatureToClipboard:function(t){var n=function(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)t.indexOf(r=o[n])>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t.indexOf(r=o[n])>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}(t.toJSON(),yt),a=r.getSession(e);R(JSON.stringify(n,null,4)),a.notify("Copied to clipboard","success")},toggleSoftClipping:function(){e.showSoftClipping=!e.showSoftClipping},toggleMismatchAlpha:function(){e.mismatchAlpha=!e.mismatchAlpha},setConfig:function(t){e.configuration=t},setSortedBy:function(t,n){var a=r.getContainingView(e).centerLineInfo;if(a){var o=a.refName,i=a.assemblyName,l=Math.round(a.offset)+1;l<0||(e.sortedBy={type:t,pos:l,refName:o,assemblyName:i,tag:n},e.ready=!1)}},setFilterBy:function(t){e.filterBy=o.cast(t)}}})).actions((function(e){var t=e.reload;return{reload:function(){e.clearSelected(),t()}}})).views((function(e){return{get maxHeight(){var t=a.getConf(e,["renderers",e.rendererTypeName])||{};return void 0!==e.trackMaxHeight?e.trackMaxHeight:t.maxHeight},get rendererConfig(){var t=a.getConf(e,["renderers",e.rendererTypeName])||{};return e.rendererType.configSchema.create(J(J({},t),{},{height:e.featureHeight,noSpacing:e.noSpacing,maxHeight:this.maxHeight,mismatchAlpha:e.mismatchAlpha}),o.getEnv(e))},get featureHeightSetting(){return e.featureHeight||a.readConfObject(this.rendererConfig,"height")},get mismatchAlphaSetting(){return void 0!==e.mismatchAlpha?e.mismatchAlpha:a.readConfObject(this.rendererConfig,"mismatchAlpha")}}})).views((function(e){var t=e.trackMenuItems,n=e.renderProps;return{get rendererTypeName(){var t=a.getConf(e,"defaultRendering"),r=kt.get(t);if(!r)throw new Error("unknown alignments view name ".concat(t));return r},contextMenuItems:function(){var t=e.contextMenuFeature;return t?[{label:"Open feature details",icon:N,onClick:function(){e.clearFeatureSelection(),t&&e.selectFeature(t)}},{label:"Copy info to clipboard",icon:M.ContentCopy,onClick:function(){t&&e.copyFeatureToClipboard(t)}}]:[]},get DisplayBlurb(){return mt},get filters(){var t=[],r=e.filterBy,n=r.flagInclude,a=r.flagExclude,o=r.tagFilter,i=r.readName;if(t=["jexl:((get(feature,'flags')&".concat(n,")==").concat(n,") && !(get(feature,'flags')&").concat(a,")")],o){var l=o.tag,s=o.value;t.push('jexl:"'.concat(s,"\" =='*' ? getTag(feature,\"").concat(l,'") != undefined : getTag(feature,"').concat(l,'") == "').concat(s,'"'))}return i&&t.push("jexl:get(feature,'name') == \"".concat(i,'"')),new E({filters:t})},renderProps:function(){var t=r.getContainingView(e),a=e.ready,o=e.colorTagMap,i=e.modificationTagMap,l=e.sortedBy,s=e.colorBy,c=e.rpcDriverName;return J(J({},n()),{},{notReady:!a||l&&e.currBpPerPx!==t.bpPerPx,rpcDriverName:c,displayModel:e,sortedBy:l,colorBy:s,colorTagMap:JSON.parse(JSON.stringify(o)),modificationTagMap:JSON.parse(JSON.stringify(i)),filters:this.filters,showSoftClip:e.showSoftClipping,config:e.rendererConfig})},trackMenuItems:function(){return[].concat(ie(t()),[{label:"Show soft clipping",icon:T,type:"checkbox",checked:e.showSoftClipping,onClick:function(){e.toggleSoftClipping(),e.showSoftClipping&&e.clearSelected()}},{label:"Sort by",icon:A,disabled:e.showSoftClipping,subMenu:[].concat(ie(["Start location","Read strand","Base pair"].map((function(t){return{label:t,onClick:function(){return e.setSortedBy(t)}}}))),[{label:"Sort by tag...",onClick:function(){r.getSession(e).queueDialog((function(t){return[Ct,{model:e,handleClose:t}]}))}},{label:"Clear sort",onClick:function(){return e.clearSelected()}}])},{label:"Color scheme",icon:D,subMenu:[{label:"Normal",onClick:function(){e.setColorScheme({type:"normal"})}},{label:"Mapping quality",onClick:function(){e.setColorScheme({type:"mappingQuality"})}},{label:"Strand",onClick:function(){e.setColorScheme({type:"strand"})}},{label:"Pair orientation",onClick:function(){e.setColorScheme({type:"pairOrientation"})}},{label:"Per-base quality",onClick:function(){e.setColorScheme({type:"perBaseQuality"})}},{label:"Modifications or methylation",onClick:function(){r.getSession(e).queueDialog((function(t){return[xt,{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[vt,{model:e,handleClose:t}]}))}}]},{label:"Filter by",icon:B,onClick:function(){r.getSession(e).queueDialog((function(t){return[bt,{model:e,handleClose:t}]}))}},{label:"Set feature height",onClick:function(){r.getSession(e).queueDialog((function(t){return[wt,{model:e,handleClose:t}]}))}},{label:"Set max height",onClick:function(){r.getSession(e).queueDialog((function(t){return[St,{model:e,handleClose:t}]}))}},{label:"Fade mismatches by quality",type:"checkbox",checked:e.mismatchAlphaSetting,onClick:function(){e.toggleMismatchAlpha()}}])}}}))};function Et(e){e.addDisplayType((function(){var t=function(e){var t=e.getRendererType("PileupRenderer").configSchema,r=e.getRendererType("SvgFeatureRenderer").configSchema;return a.ConfigurationSchema("LinearPileupDisplay",{defaultRendering:{type:"stringEnum",model:o.types.enumeration("Rendering",["pileup","svg"]),defaultValue:"pileup"},renderers:a.ConfigurationSchema("RenderersConfiguration",{PileupRenderer:t,SvgFeatureRenderer:r}),renderer:"",maxDisplayedBpPerPx:{type:"number",description:"maximum bpPerPx that is displayed in the view",defaultValue:100},colorScheme:{type:"stringEnum",model:o.types.enumeration("colorScheme",["strand","normal","insertSize","insertSizeAndOrientation","mappingQuality","tag"]),description:"color scheme to use",defaultValue:"normal"}},{baseConfiguration:x.linearBasicDisplayConfigSchemaFactory(e),explicitlyTyped:!0})}(e);return new S({name:"LinearPileupDisplay",configSchema:t,stateModel:_t(t),trackType:"AlignmentsTrack",viewType:"LinearGenomeView",ReactComponent:x.BaseLinearDisplayComponent})}))}function Pt(e){e.addTrackType((function(){var t=function(e){return a.ConfigurationSchema("AlignmentsTrack",{},{baseConfiguration:k.createBaseTrackConfig(e)})}(e),r=new L({name:"AlignmentsTrack",configSchema:t,stateModel:k.createBaseTrackModel(e,"AlignmentsTrack",t)}),n=e.getDisplayType("LinearAlignmentsDisplay");return r.addDisplayType(n),r}))}var Tt=a.ConfigurationSchema("AlignmentsFeatureWidget",{});function Mt(e){return o.types.model("AlignmentsFeatureWidget",{id:F.ElementId,type:o.types.literal("AlignmentsFeatureWidget"),featureData:o.types.frozen(),view:o.types.safeReference(e.pluggableMstType("view","stateModel"))}).actions((function(e){return{setFeatureData:function(t){e.featureData=t},clearFeatureData:function(){e.featureData=void 0}}}))}function Rt(e){e.addWidgetType((function(){return new q({name:"AlignmentsFeatureWidget",heading:"Feature details",configSchema:Tt,stateModel:Mt(e),ReactComponent:C.lazy((function(){return Promise.resolve().then((function(){return gr}))}))})}))}var Nt=function(e){ee(o,O);var t,n,a=ne(o);function o(){var e;return Z(this,o),(e=a.apply(this,arguments)).name="PileupGetGlobalValueForTag",e}return Y(o,[{key:"serializeArguments",value:(n=Q(ge.mark((function e(t,n){var a,i,l,s;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(l=null==(i=this.pluginManager.rootModel)||null===(a=i.session)||void 0===a?void 0:a.assemblyManager){e.next=4;break}throw new Error("no assembly manager available");case 4:return e.next=6,r.renameRegionsIfNeeded(l,t);case 6:return s=e.sent,e.abrupt("return",ae(te(o.prototype),"serializeArguments",this).call(this,s,n));case 8:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"execute",value:(t=Q(ge.mark((function e(t,r){var n,a,o,i,l,s,u,p;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.deserializeArguments(t,r);case 2:return a=(n=e.sent).adapterConfig,o=n.sessionId,i=n.regions,l=n.tag,e.next=6,m.getAdapter(this.pluginManager,o,a);case 6:return s=e.sent.dataAdapter.getFeaturesInMultipleRegions(i),e.next=10,s.pipe(c.toArray()).toPromise();case 10:return u=e.sent,p=new Set,u.forEach((function(e){var t=e.get("tags"),r=t?t[l]:e.get(l);void 0!==r&&p.add("".concat(r))})),e.abrupt("return",ie(p));case 14:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})}]),o}(),At=function(e){ee(o,O);var t,n,a=ne(o);function o(){var e;return Z(this,o),(e=a.apply(this,arguments)).name="PileupGetVisibleModifications",e}return Y(o,[{key:"serializeArguments",value:(n=Q(ge.mark((function e(t,n){var a,i,l,s;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(l=null==(i=this.pluginManager.rootModel)||null===(a=i.session)||void 0===a?void 0:a.assemblyManager){e.next=4;break}throw new Error("no assembly manager available");case 4:return e.next=6,r.renameRegionsIfNeeded(l,t);case 6:return s=e.sent,e.abrupt("return",ae(te(o.prototype),"serializeArguments",this).call(this,s,n));case 8:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"execute",value:(t=Q(ge.mark((function e(t,r){var n,a,o,i,l,s,u;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.deserializeArguments(t,r);case 2:return a=(n=e.sent).adapterConfig,o=n.sessionId,i=n.regions,e.next=6,m.getAdapter(this.pluginManager,o,a);case 6:return l=e.sent.dataAdapter.getFeaturesInMultipleRegions(i),e.next=10,l.pipe(c.toArray()).toPromise();case 10:return s=e.sent,u=new Set,s.forEach((function(e){var t=Ae(e,"MM","Mm")||"";void 0!==t&&Se(t).forEach((function(e){return u.add(e)}))})),e.abrupt("return",ie(u));case 14:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})}]),o}(),Dt=function(e){ee(n,t);var r=ne(n);function n(){var e;return Z(this,n),(e=r.apply(this,arguments)).name="AlignmentsPlugin",e}return Y(n,[{key:"install",value:function(e){[Pe,_e,Et,gt,Pt,He,Me,et,We,at,Rt].map((function(t){return t(e)})),e.addToExtensionPoint("Core-guessAdapterForLocation",(function(e){return function(t,r,n){var a=P.getFileName(t);return/\.cram$/i.test(a)||"CramAdapter"===n?{type:"CramAdapter",cramLocation:t,craiLocation:r||P.makeIndex(t,".crai")}:e(t,r,n)}})),e.addToExtensionPoint("Core-guessAdapterForLocation",(function(e){return function(t,r,n){var a=P.getFileName(t),o=r&&P.getFileName(r);return/\.bam$/i.test(a)||"BamAdapter"===n?{type:"BamAdapter",bamLocation:t,index:{location:r||P.makeIndex(t,".bai"),indexType:P.makeIndexType(o,"CSI","BAI")}}:e(t,r,n)}})),e.addToExtensionPoint("Core-guessTrackTypeForLocation",(function(e){return function(t){return"BamAdapter"===t||"CramAdapter"===t?"AlignmentsTrack":e(t)}})),e.addRpcMethod((function(){return new Nt(e)})),e.addRpcMethod((function(){return new At(e)}))}}]),n}(),Bt=function(){function e(t,r){Z(this,e),this.record=t,this._store=r}return Y(e,[{key:"_get_name",value:function(){return this.record.readName}},{key:"_get_start",value:function(){return this.record.alignmentStart-1}},{key:"_get_end",value:function(){return this.record.alignmentStart+this.record.lengthOnRef-1}},{key:"_get_cram_read_features",value:function(){return this.record.readFeatures}},{key:"_get_type",value:function(){return"match"}},{key:"_get_score",value:function(){return this.record.mappingQuality}},{key:"_get_flags",value:function(){return this.record.flags}},{key:"_get_strand",value:function(){return this.record.isReverseComplemented()?-1:1}},{key:"_read_group_id",value:function(){var e=this._store.samHeader.readGroups;return e?e[this.record.readGroupId]:void 0}},{key:"_get_qual",value:function(){return(this.record.qualityScores||[]).join(" ")}},{key:"qualRaw",value:function(){return this.record.qualityScores}},{key:"_get_seq_id",value:function(){return this._store.refIdToName(this.record.sequenceId)}},{key:"_get_refName",value:function(){return this._get_seq_id()}},{key:"_get_is_paired",value:function(){return!!this.record.mate}},{key:"_get_pair_orientation",value:function(){return this.record.isPaired()?this.record.getPairOrientation():void 0}},{key:"_get_template_length",value:function(){return this.record.templateLength||this.record.templateSize}},{key:"_get_next_seq_id",value:function(){return this.record.mate?this._store.refIdToName(this.record.mate.sequenceId):void 0}},{key:"_get_next_pos",value:function(){return this.record.mate?this.record.mate.alignmentStart:void 0}},{key:"_get_next_segment_position",value:function(){return this.record.mate?"".concat(this._store.refIdToName(this.record.mate.sequenceId),":").concat(this.record.mate.alignmentStart):void 0}},{key:"_get_tags",value:function(){var e=this._read_group_id(),t=this.record.tags;return void 0!==e?J(J({},t),{},{RG:e}):t}},{key:"_get_seq",value:function(){return this.record.getReadBases()}},{key:"_get_CIGAR",value:function(){var e="",t="",r="M",n=0,a=this.record._refRegion.seq,o=this.record._refRegion.start,i=this.record.alignmentStart,l=0;return void 0!==this.record.readFeatures?this.record.readFeatures.forEach((function(s){var c=s.code,u=s.refPos,p=s.sub,f=s.data;if(l=u-i,e+=a.substring(i-o,u-o),i=u,n&&"M"!==r&&(t+=n+r,n=0),l&&(r="M",n+=l),"b"===c){var d=f.split(","),g=String.fromCharCode.apply(String,ie(d));e+=g,i+=g.length,n+=g.length}else"B"===c||"X"===c?(e+=p,i++,n++):"D"===c||"N"===c?(i+=f,n&&(t+=n+r),t+=f+c,n=0):"I"===c||"S"===c?(e+=f,n&&(t+=n+r),t+=f.length+c,n=0):"i"===c?(e+=f,n&&(t+=n+r),t+="".concat(1,"I"),n=0):"P"===c?(n&&(t+=n+r),t+="".concat(f,"P")):"H"===c&&(n&&(t+=n+r),t+="".concat(f,"H"),n=0)})):l=this.record.readLength-e.length,e.length!==this.record.readLength&&(e+=a.substring(i-o,i-o+(l=this.record.readLength-e.length)),n&&"M"!==r&&(t+=n+r,n=0),r="M",n+=l),n&&(t+=n+r),t}},{key:"tags",value:function(){return Object.getOwnPropertyNames(e.prototype).filter((function(e){return e.startsWith("_get_")&&"_get_mismatches"!==e&&"_get_skips_and_dels"!==e&&"_get_cram_read_features"!==e})).map((function(e){return e.replace("_get_","")}))}},{key:"id",value:function(){return"".concat(this._store.id,"-").concat(this.record.uniqueId)}},{key:"get",value:function(e){var t="_get_".concat(e);if(this[t])return this[t]()}},{key:"parent",value:function(){}},{key:"children",value:function(){}},{key:"set",value:function(){}},{key:"pairedFeature",value:function(){return!1}},{key:"_get_clipPos",value:function(){var e=this.get("mismatches");if(e.length){var t=-1===this.get("strand")?e[e.length-1]:e[0],r=t.type;if("softclip"===r||"hardclip"===r)return t.cliplen}return 0}},{key:"toJSON",value:function(){var e=this,t={};return this.tags().forEach((function(r){var n=e.get(r);void 0!==n&&(t[r]=n)})),J(J({},t),{},{name:this.get("name"),type:this.get("type"),uniqueId:this.id()})}},{key:"_get_mismatches",value:function(){var e=this.get("cram_read_features"),t=this.qualRaw();if(!e)return[];var r=this.get("start"),n=[];return e.forEach((function(e){var a=e.code,o=e.data,i=e.refPos-1-r;if("X"===a)n.push({start:i,length:1,base:e.sub,qual:null==t?void 0:t[e.pos],altbase:e.ref,type:"mismatch"});else if("I"===a)n.push({start:i,type:"insertion",base:"".concat(o.length),length:0});else if("N"===a)n.push({type:"skip",length:o,start:i,base:"N"});else if("S"===a){var l=o.length;n.push({start:i,type:"softclip",base:"S".concat(l),cliplen:l,length:1})}else if("P"===a);else if("H"===a){var s=o;n.push({start:i,type:"hardclip",base:"H".concat(s),cliplen:s,length:1})}else"D"===a?n.push({type:"deletion",length:o,start:i,base:"*"}):"b"===a||"q"===a||"B"===a||"i"===a&&n.push({start:i,type:"insertion",base:o,length:1})})),n}},{key:"_get_skips_and_dels",value:function(){return this._get_mismatches()}}]),e}(),It={__proto__:null,default:function(e){ee(f,i.BaseFeatureDataAdapter);var t,n,o,l,u,p=ne(f);function f(){var e;return Z(this,f),(e=p.apply(this,arguments)).samHeader={},e.seqIdToOriginalRefName=[],e}return Y(f,[{key:"configure",value:(u=Q(ge.mark((function e(){var t,r,n,o;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=a.readConfObject(this.config,"cramLocation"),r=a.readConfObject(this.config,"craiLocation"),t){e.next=4;break}throw new Error("missing cramLocation argument");case 4:if(r){e.next=6;break}throw new Error("missing craiLocation argument");case 6:if(this.cram=new j.IndexedCramFile({cramFilehandle:H.openLocation(t,this.pluginManager),index:new j.CraiIndex({filehandle:H.openLocation(r,this.pluginManager)}),seqFetch:this.seqFetch.bind(this),checkSequenceMD5:!1,fetchSizeLimit:this.config.fetchSizeLimit||6e8}),n=a.readConfObject(this.config,["sequenceAdapter","type"]),this.getSubAdapter){e.next=10;break}throw new Error("Error getting subadapter");case 10:return e.next=12,this.getSubAdapter(a.readConfObject(this.config,"sequenceAdapter"));case 12:if(!((o=e.sent.dataAdapter)instanceof i.BaseFeatureDataAdapter)){e.next=18;break}this.sequenceAdapter=o,e.next=19;break;case 18:throw new Error("CRAM feature adapters cannot use sequence adapters of type '".concat(n,"'"));case 19:return e.abrupt("return",{sequenceAdapter:this.sequenceAdapter});case 20:case"end":return e.stop()}}),e,this)}))),function(){return u.apply(this,arguments)})},{key:"getHeader",value:(l=Q(ge.mark((function e(t){return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.configure();case 2:return e.abrupt("return",this.cram.cram.getHeaderText(t));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return l.apply(this,arguments)})},{key:"seqFetch",value:(o=Q(ge.mark((function e(t,r,n){var a,o,i,l,s;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r-=1,a=this.sequenceAdapter){e.next=4;break}return e.abrupt("return",void 0);case 4:if(o=this.refIdToOriginalName(t)||this.refIdToName(t)){e.next=7;break}return e.abrupt("return",void 0);case 7:return i=a.getFeatures({refName:o,start:r,end:n,assemblyName:""},{}),e.next=10,i.pipe(c.toArray()).toPromise();case 10:if(l=[],e.sent.sort((function(e,t){return e.get("start")-t.get("start")})).forEach((function(e){var t=e.get("start"),a=e.get("end"),o=Math.max(r-t,0),i=Math.min(n-t,a-t)-o,s=e.get("seq")||e.get("residues");l.push(s.substr(o,i))})),(s=l.join("")).length===n-r){e.next=16;break}throw new Error("sequence fetch failed: fetching ".concat(o,":").concat((r-1).toLocaleString(),"-").concat(n.toLocaleString()," returned ").concat(s.length.toLocaleString()," bases, but should have returned ").concat((n-r).toLocaleString()));case 16:return e.abrupt("return",s);case 17:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return o.apply(this,arguments)})},{key:"setup",value:(n=Q(ge.mark((function e(t){var r,n,a=this;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=void 0===(r=(t||{}).statusCallback)?function(){}:r,this.setupP||(this.setupP=this.configure().then(Q(ge.mark((function e(){var r,o,i,l;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n("Downloading index"),e.next=3,a.cram.cram.getSamHeader(null==t?void 0:t.signal);case 3:return o=[],i={},(r=e.sent).filter((function(e){return"SQ"===e.tag})).forEach((function(e,t){e.data.forEach((function(e){if("SN"===e.tag){var r=e.value;i[r]=t,o[t]=r}}))})),l=r.filter((function(e){return"RG"===e.tag})).map((function(e){var t;return null===(t=e.data.find((function(e){return"ID"===e.tag})))||void 0===t?void 0:t.value})),o.length&&(a.samHeader={idToName:o,nameToId:i,readGroups:l}),n(""),e.abrupt("return",a.samHeader);case 11:case"end":return e.stop()}}),e)})))).catch((function(e){throw a.setupP=void 0,e}))),e.abrupt("return",this.setupP);case 3:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"getRefNames",value:(t=Q(ge.mark((function e(t){return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.setup(t);case 2:if(!this.samHeader.idToName){e.next=4;break}return e.abrupt("return",this.samHeader.idToName);case 4:if(!this.sequenceAdapter){e.next=6;break}return e.abrupt("return",this.sequenceAdapter.getRefNames());case 6:throw new Error("unable to get refnames");case 7:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"refNameToId",value:function(e){return this.samHeader.nameToId?this.samHeader.nameToId[e]:this.seqIdToRefName?this.seqIdToRefName.indexOf(e):void 0}},{key:"refIdToName",value:function(e){return this.samHeader.idToName?this.samHeader.idToName[e]:this.seqIdToRefName?this.seqIdToRefName[e]:void 0}},{key:"refIdToOriginalName",value:function(e){return this.seqIdToOriginalRefName[e]}},{key:"getFeatures",value:function(e,t){var n=this,a=t||{},o=a.signal,i=a.statusCallback,l=void 0===i?function(){}:i,c=e.refName,u=e.start,p=e.end,f=e.originalRefName;return s.ObservableCreate(function(){var e=Q(ge.mark((function e(a){var i,s;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.setup(t);case 2:if(!n.sequenceAdapter||n.seqIdToRefName){e.next=6;break}return e.next=5,n.sequenceAdapter.getRefNames(t);case 5:n.seqIdToRefName=e.sent;case 6:if(void 0===(i=n.refNameToId(c))){e.next=15;break}return f&&(n.seqIdToOriginalRefName[i]=f),l("Downloading alignments"),e.next=12,n.cram.getRecordsForRange(i,u,p,t);case 12:s=e.sent,r.checkAbortSignal(o),s.forEach((function(e){a.next(n.cramRecordToFeature(e))}));case 15:l(""),a.complete();case 17:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),o)}},{key:"freeResources",value:function(){}},{key:"cramRecordToFeature",value:function(e){return new Bt(e,this)}}]),f}()},Lt=function(){function e(t,r,n){Z(this,e),this.record=t,this.adapter=r,this.ref=n}return Y(e,[{key:"_get_name",value:function(){return this.record.get("name")}},{key:"_get_type",value:function(){return"match"}},{key:"_get_score",value:function(){return this.record.get("mq")}},{key:"_get_flags",value:function(){return this.record.flags}},{key:"_get_strand",value:function(){return this.record.isReverseComplemented()?-1:1}},{key:"_get_read_group_id",value:function(){return this.record.readGroupId}},{key:"_get_pair_orientation",value:function(){return this.record.isPaired()?this.record.getPairOrientation():void 0}},{key:"_get_next_seq_id",value:function(){return this.record._next_refid()}},{key:"_get_seq_id",value:function(){return this.record._refID}},{key:"_get_next_refName",value:function(){return this.adapter.refIdToName(this.record._next_refid())}},{key:"_get_next_segment_position",value:function(){return this.record.isPaired()?"".concat(this.adapter.refIdToName(this.record._next_refid()),":").concat(this.record._next_pos()+1):void 0}},{key:"_get_seq",value:function(){return this.record.getReadBases()}},{key:"_get_MD",value:function(){var e=this.record.get("MD"),t=this.get("seq");return!e&&t&&this.ref?be(this.ref,this.record.getReadBases(),this.get("CIGAR")):e}},{key:"qualRaw",value:function(){return this.record.qualRaw()}},{key:"set",value:function(){}},{key:"tags",value:function(){var t=Object.getOwnPropertyNames(e.prototype);return ie(new Set(t.filter((function(e){return e.startsWith("_get_")&&"_get_mismatches"!==e&&"_get_skips_and_dels"!==e&&"_get_cram_read_features"!==e&&"_get_tags"!==e&&"_get_next_seq_id"!==e&&"_get_seq_id"!==e})).map((function(e){return e.replace("_get_","")})).concat(this.record._tags())))}},{key:"id",value:function(){return"".concat(this.adapter.id,"-").concat(this.record.id())}},{key:"get",value:function(e){var t="_get_".concat(e);return this[t]?this[t]():this.record.get(e)}},{key:"_get_refName",value:function(){return this.adapter.refIdToName(this.record.seq_id())}},{key:"parent",value:function(){}},{key:"children",value:function(){}},{key:"pairedFeature",value:function(){return!1}},{key:"toJSON",value:function(){var e=this;return J(J({},Object.fromEntries(this.tags().map((function(t){return[t,e.get(t)]})).filter((function(e){return void 0!==e[1]})))),{},{uniqueId:this.id()})}},{key:"_get_skips_and_dels",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{cigarAttributeName:"CIGAR"},t=e.cigarAttributeName,r=[],n=[],a=this.get(t);return a&&(n=me(a),r=r.concat(ye(n,this.get("seq"),this.qualRaw()))),r}},{key:"_get_mismatches",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.cigarAttributeName,r=void 0===t?"CIGAR":t,n=e.mdAttributeName,a=void 0===n?"MD":n,o=[],i=[],l=this.get(r),s=this.get("seq"),c=this.qualRaw();l&&(i=me(l),o=o.concat(ye(i,s,c)));var u=this.get(a);u&&(o=o.concat(ve(u,i,o,s,c)));var p={};return o.filter((function(e){var t="".concat(e.type,",").concat(e.start,",").concat(e.length),r=p[t];return p[t]=!0,!r}))}},{key:"_get_clipPos",value:function(){var e=this.get("CIGAR")||"";return-1===this.get("strand")?+(e.match(/(\d+)[SH]$/)||[])[1]||0:+(e.match(/^(\d+)([SH])/)||[])[1]||0}}]),e}(),Ft=function(e){ee(f,i.BaseFeatureDataAdapter);var t,n,o,l,u,p=ne(f);function f(){return Z(this,f),p.apply(this,arguments)}return Y(f,[{key:"configure",value:(u=Q(ge.mark((function e(){var t,r,n,o,i,l,s;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.configured||(t=a.readConfObject(this.config,"bamLocation"),r=a.readConfObject(this.config,["index","location"]),n=a.readConfObject(this.config,["index","indexType"]),o=a.readConfObject(this.config,"chunkSizeLimit"),i=a.readConfObject(this.config,"fetchSizeLimit"),l=new V.BamFile({bamFilehandle:H.openLocation(t,this.pluginManager),csiFilehandle:"CSI"===n?H.openLocation(r,this.pluginManager):void 0,baiFilehandle:"CSI"!==n?H.openLocation(r,this.pluginManager):void 0,chunkSizeLimit:o,fetchSizeLimit:i}),s=a.readConfObject(this.config,"sequenceAdapter"),this.configured=s&&this.getSubAdapter?this.getSubAdapter(s).then((function(e){return{bam:l,sequenceAdapter:e.dataAdapter}})):Promise.resolve({bam:l})),e.abrupt("return",this.configured);case 2:case"end":return e.stop()}}),e,this)}))),function(){return u.apply(this,arguments)})},{key:"getHeader",value:(l=Q(ge.mark((function e(t){return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.configure();case 2:return e.abrupt("return",e.sent.bam.getHeaderText(t));case 5:case"end":return e.stop()}}),e,this)}))),function(e){return l.apply(this,arguments)})},{key:"setup",value:(o=Q(ge.mark((function e(t){var r,n,a=this;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=void 0===(r=(t||{}).statusCallback)?function(){}:r,this.setupP||(this.setupP=this.configure().then(function(){var e=Q(ge.mark((function e(r){var o,i,l;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=r.bam,n("Downloading index"),e.next=4,o.getHeader(t);case 4:return i=[],l={},e.sent.filter((function(e){return"SQ"===e.tag})).forEach((function(e,t){e.data.forEach((function(e){if("SN"===e.tag){var r=e.value;l[r]=t,i[t]=r}}))})),n(""),a.samHeader={idToName:i,nameToId:l},e.abrupt("return",a.samHeader);case 11:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).catch((function(e){throw a.setupP=void 0,e}))),e.abrupt("return",this.setupP);case 3:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"getRefNames",value:(n=Q(ge.mark((function e(t){return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.setup(t);case 2:return e.abrupt("return",e.sent.idToName);case 5:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"seqFetch",value:(t=Q(ge.mark((function e(t,r,n){var a,o,i,l;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.configure();case 2:if(a=e.sent.sequenceAdapter){e.next=7;break}return e.abrupt("return",void 0);case 7:if(t){e.next=9;break}return e.abrupt("return",void 0);case 9:return o=a.getFeatures({refName:t,start:r,end:n,assemblyName:""}),e.next=12,o.pipe(c.toArray()).toPromise();case 12:if(i=[],e.sent.sort((function(e,t){return e.get("start")-t.get("start")})).forEach((function(e){var t=e.get("start"),a=e.get("end"),o=Math.max(r-t,0),l=Math.min(n-t,a-t)-o,s=e.get("seq")||e.get("residues");i.push(s.substr(o,l))})),(l=i.join("")).length===n-r){e.next=18;break}throw new Error("sequence fetch failed: fetching ".concat(t,":").concat((r-1).toLocaleString(),"-").concat(n.toLocaleString()," returned ").concat(l.length.toLocaleString()," bases, but should have returned ").concat((n-r).toLocaleString()));case 18:return e.abrupt("return",l);case 19:case"end":return e.stop()}}),e,this)}))),function(e,r,n){return t.apply(this,arguments)})},{key:"getFeatures",value:function(e,t){var n=this,a=e.refName,o=e.start,i=e.end,l=e.originalRefName,c=t||{},u=c.signal,p=c.statusCallback,f=void 0===p?function(){}:p;return s.ObservableCreate(function(){var e=Q(ge.mark((function e(s){var c,p,d,g,h,m;return ge.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.configure();case 2:return c=e.sent.bam,e.next=6,n.setup(t);case 6:return f("Downloading alignments"),e.next=9,c.getRecordsForRange(a,o,i,t);case 9:p=e.sent,r.checkAbortSignal(u),d=fe(p),e.prev=12,d.s();case 14:if((g=d.n()).done){e.next=24;break}if(m=void 0,(h=g.value).get("md")){e.next=21;break}return e.next=20,n.seqFetch(l||a,h.get("start"),h.get("end"));case 20:m=e.sent;case 21:s.next(new Lt(h,n,m));case 22:e.next=14;break;case 24:e.next=29;break;case 26:e.prev=26,e.t0=e.catch(12),d.e(e.t0);case 29:return e.prev=29,d.f(),e.finish(29);case 32:f(""),s.complete();case 34:case"end":return e.stop()}}),e,null,[[12,26,29,32]])})));return function(t){return e.apply(this,arguments)}}(),u)}},{key:"freeResources",value:function(){}},{key:"refIdToName",value:function(e){var t;return null===(t=this.samHeader)||void 0===t?void 0:t.idToName[e]}}]),f}(),qt={__proto__:null,default:Ft},Ot={__proto__:null,default:function(e){ee(n,Ft);var t,r=ne(n);function n(){return Z(this,n),r.apply(this,arguments)}return Y(n,[{key:"configure",value:(t=Q(ge.mark((function e(){var t,r,n,o;return ge.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=z.makeStyles((function(e){return{root:{width:300},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Ht(e){var t=jt(),r=e.model,n=e.handleClose,a=oe(C.useState(""),2),o=a[0],i=a[1],l=o.match(/^[A-Za-z][A-Za-z0-9]$/);return w.createElement(z.Dialog,{open:!0,onClose:n},w.createElement(z.DialogTitle,null,"Color by tag",w.createElement(z.IconButton,{"aria-label":"close",className:t.closeButton,onClick:n},w.createElement(G,null))),w.createElement(z.DialogContent,{style:{overflowX:"hidden"}},w.createElement("div",{className:t.root},w.createElement(z.Typography,null,"Enter tag to color by: "),w.createElement(z.Typography,{color:"textSecondary"},"Examples: XS or TS for RNA-seq inferred read strand, ts (lower-case) for minimap2 read strand, HP for haplotype, RG for read group, etc."),w.createElement(z.TextField,{value:o,onChange:function(e){i(e.target.value)},placeholder:"Enter tag name",inputProps:{maxLength:2,"data-testid":"color-tag-name-input"},error:2===o.length&&!l,helperText:2!==o.length||l?"":"Not a valid tag",autoComplete:"off","data-testid":"color-tag-name"}),w.createElement(z.Button,{variant:"contained",color:"primary",style:{marginLeft:20},onClick:function(){r.setColorScheme({type:"tag",tag:o}),n()},disabled:!l},"Submit"))))}var Vt={__proto__:null,default:b.observer(Ht)},zt=z.makeStyles((function(e){return{root:{width:500},paper:{padding:e.spacing(2),margin:e.spacing(2)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},field:{margin:e.spacing(2)}}})),Gt=["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 Wt(e){var t=e.flag,r=void 0===t?0:t,n=e.setFlag;return w.createElement(w.Fragment,null,w.createElement(z.TextField,{type:"number",value:r,onChange:function(e){return n(+e.target.value)}}),Gt.map((function(e,t){var a=r&1<<t,o="".concat(e,"_").concat(a);return w.createElement("div",{key:o},w.createElement("input",{type:"checkbox",checked:Boolean(a),onChange:function(e){n(e.target.checked?r|1<<t:r&~(1<<t))}}),w.createElement("label",{htmlFor:o},e))})))}function Ut(e){var t,r,n=e.model,a=e.handleClose,o=zt(),i=n.filterBy,l=oe(C.useState(null==i?void 0:i.flagInclude),2),s=l[0],c=l[1],u=oe(C.useState(null==i?void 0:i.flagExclude),2),p=u[0],f=u[1],d=oe(C.useState((null==i||null===(t=i.tagFilter)||void 0===t?void 0:t.tag)||""),2),g=d[0],h=d[1],m=oe(C.useState((null==i||null===(r=i.tagFilter)||void 0===r?void 0:r.value)||""),2),y=m[0],v=m[1],b=oe(C.useState((null==i?void 0:i.readName)||""),2),S=b[0],x=b[1],k=g.match(/^[A-Za-z][A-Za-z0-9]$/),_="https://broadinstitute.github.io/picard/explain-flags.html";return w.createElement(z.Dialog,{open:!0,onClose:a},w.createElement(z.DialogTitle,null,"Filter options",w.createElement(z.IconButton,{"aria-label":"close",className:o.closeButton,onClick:a},w.createElement(G,null))),w.createElement(z.DialogContent,null,w.createElement(z.Typography,null,"Set filter bitmask options. Refer to ",w.createElement(z.Link,{href:_},_)," ","for details"),w.createElement("div",{className:o.root},w.createElement(z.Paper,{className:o.paper,variant:"outlined"},w.createElement("div",{style:{display:"flex"}},w.createElement("div",null,w.createElement(z.Typography,null,"Read must have ALL these flags"),w.createElement(Wt,{flag:s,setFlag:c})),w.createElement("div",null,w.createElement(z.Typography,null,"Read must have NONE of these flags"),w.createElement(Wt,{flag:p,setFlag:f})))),w.createElement(z.Paper,{className:o.paper,variant:"outlined"},w.createElement(z.Typography,null,"Filter by tag name and value. Use * in the value field to get all reads containing any value for that tag. Example: filter tag name SA with value * to get all split/supplementary reads. Other examples include HP for haplotype, or RG for read group"),w.createElement(z.TextField,{className:o.field,value:g,onChange:function(e){h(e.target.value)},placeholder:"Enter tag name",inputProps:{maxLength:2,"data-testid":"color-tag-name-input"},error:2===g.length&&!k,helperText:2!==g.length||k?"":"Not a valid tag","data-testid":"color-tag-name"}),w.createElement(z.TextField,{className:o.field,value:y,onChange:function(e){v(e.target.value)},placeholder:"Enter tag value",inputProps:{"data-testid":"color-tag-name-input"},"data-testid":"color-tag-value"})),w.createElement(z.Paper,{className:o.paper,variant:"outlined"},w.createElement(z.Typography,null,"Filter by read name"),w.createElement(z.TextField,{className:o.field,value:S,onChange:function(e){x(e.target.value)},placeholder:"Enter read name",inputProps:{"data-testid":"color-tag-readname-input"},"data-testid":"color-tag-readname"})),w.createElement(z.Button,{variant:"contained",color:"primary",onClick:function(){n.setFilterBy({flagInclude:s,flagExclude:p,readName:S,tagFilter:""!==g?{tag:g,value:y}:void 0}),a()}},"Submit"))))}var Jt={__proto__:null,default:b.observer(Ut)},Xt=z.makeStyles((function(e){return{root:{margin:0,padding:e.spacing(2)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Qt(e){var t=Xt(),r=e.model,n=e.handleClose,a=oe(C.useState(""),2),o=a[0],i=a[1],l=o.match(/^[A-Za-z][A-Za-z0-9]$/);return w.createElement(z.Dialog,{open:!0,onClose:n},w.createElement(z.DialogTitle,null,"Sort by tag",w.createElement(z.IconButton,{"aria-label":"close",className:t.closeButton,onClick:n},w.createElement(G,null))),w.createElement(z.DialogContent,null,w.createElement("div",null,w.createElement(z.Typography,null,"Set the tag to sort by"),w.createElement(z.Typography,{color:"textSecondary"},"Examples: HP for haplotype, RG for read group, etc."),w.createElement(z.TextField,{value:o,onChange:function(e){i(e.target.value)},placeholder:"Enter tag name",inputProps:{maxLength:2,"data-testid":"sort-tag-name-input"},error:2===o.length&&!l,helperText:2!==o.length||l?"":"Not a valid tag",autoComplete:"off","data-testid":"sort-tag-name"}),w.createElement(z.Button,{variant:"contained",color:"primary",onClick:function(){r.setSortedBy("tag",o),n()}},"Submit"))))}var Zt={__proto__:null,default:b.observer(Qt)},$t=z.makeStyles((function(e){return{root:{margin:e.spacing(4)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Yt(e){var t=$t(),r=e.model,n=e.handleClose,a=r.noSpacing,o=oe(C.useState("".concat(r.featureHeightSetting)),2),i=o[0],l=o[1],s=oe(C.useState(a),2),c=s[0],u=s[1],p=""!==i&&!Number.isNaN(+i);return w.createElement(z.Dialog,{open:!0,onClose:n},w.createElement(z.DialogTitle,null,"Set feature height",w.createElement(z.IconButton,{className:t.closeButton,onClick:n},w.createElement(G,null))),w.createElement(z.DialogContent,null,w.createElement(z.Typography,null,"Adjust the feature height and whether there is any spacing between features. Setting feature height to 1 and removing spacing makes the display very compact"),w.createElement("div",{className:t.root},w.createElement(z.Typography,null,"Enter feature height: "),w.createElement(z.TextField,{value:i,onChange:function(e){l(e.target.value)}}),w.createElement(z.FormControlLabel,{control:w.createElement(z.Checkbox,{checked:!!c,onChange:function(){return u((function(e){return!e}))}}),label:"Remove spacing between features in y-direction?"}),w.createElement(z.Button,{variant:"contained",color:"primary",type:"submit",style:{marginLeft:20},disabled:!p,onClick:function(){r.setFeatureHeight(""===i||Number.isNaN(+i)?void 0:+i),r.setNoSpacing(c),n()}},"Submit"))))}var Kt={__proto__:null,default:b.observer(Yt)},er=z.makeStyles((function(e){return{root:{width:500},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},field:{margin:e.spacing(2)}}}));function tr(e){var t=e.model,r=e.handleClose,n=er(),a=t.maxHeight,o=oe(C.useState("".concat(void 0===a?"":a)),2),i=o[0],l=o[1];return w.createElement(z.Dialog,{open:!0,onClose:r},w.createElement(z.DialogTitle,{id:"alert-dialog-title"},"Filter options",w.createElement(z.IconButton,{"aria-label":"close",className:n.closeButton,onClick:r},w.createElement(G,null))),w.createElement(z.DialogContent,null,w.createElement("div",{className:n.root},w.createElement(z.Typography,null,"Set max height for the track"),w.createElement(z.TextField,{value:i,onChange:function(e){l(e.target.value)},placeholder:"Enter max height for layout"}),w.createElement(z.Button,{variant:"contained",color:"primary",type:"submit",style:{marginLeft:20},onClick:function(){t.setMaxHeight(""===i||Number.isNaN(+i)?void 0:+i),r()}},"Submit"))))}var rr={__proto__:null,default:b.observer(tr)},nr=z.makeStyles((function(e){return{root:{},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},table:{border:"1px solid #888",margin:e.spacing(4),"& td":{padding:e.spacing(1)}}}}));function ar(e){var t=e.modifications,r=nr();return w.createElement("table",{className:r.table},w.createElement("tbody",null,t.map((function(e){var t=oe(e,2),r=t[0],n=t[1];return w.createElement("tr",{key:r},w.createElement("td",null,r),w.createElement("td",null,n),w.createElement("td",{style:{width:"1em",background:n}}))}))))}function or(e){var t=nr(),r=e.model,n=e.handleClose,a=r.colorBy,o=r.modificationTagMap,i=ie(o.entries());return w.createElement(z.Dialog,{open:!0,onClose:n},w.createElement(z.DialogTitle,null,"Color by modifications",w.createElement(z.IconButton,{"aria-label":"close",className:t.closeButton,onClick:n},w.createElement(G,null))),w.createElement(z.DialogContent,null,w.createElement("div",{className:t.root},w.createElement(z.Typography,null,"You can choose to color the modifications in the BAM/CRAM MM/ML specification using this dialog. Choosing modifications colors the modified positions and can color multiple modification types. Choosing the methylation setting colors methylated and unmethylated CpG."),w.createElement(z.Typography,null,"Note: you can revisit this dialog to see the current mapping of colors to modification type for the modification coloring mode"),w.createElement("div",{style:{margin:20}},"modifications"===(null==a?void 0:a.type)?w.createElement("div",null,i.length?w.createElement(w.Fragment,null,"Current modification-type-to-color mapping",w.createElement(ar,{modifications:ie(o.entries())})):w.createElement("div",null,w.createElement(z.Typography,null,"Note: color by modifications is already enabled. Loading current modifications..."),w.createElement(z.CircularProgress,{size:15}))):null,"methylation"===(null==a?void 0:a.type)?w.createElement(ar,{modifications:[["methylated","red"],["unmethylated","blue"]]}):null),w.createElement("div",{style:{display:"flex"}},w.createElement(z.Button,{variant:"contained",color:"primary",style:{margin:5},onClick:function(){r.setColorScheme({type:"modifications"}),n()}},"Modifications"),w.createElement(z.Button,{variant:"contained",color:"primary",style:{margin:5},onClick:function(){r.setColorScheme({type:"methylation"}),n()}},"Methylation"),w.createElement(z.Button,{variant:"contained",color:"secondary",style:{margin:5},onClick:function(){return n()}},"Cancel")))))}var ir={__proto__:null,default:b.observer(or)},lr=z.makeStyles((function(){return{compact:{paddingRight:0,paddingTop:0,paddingBottom:0}}})),sr=["clipPos","flags"];function cr(e){var t=lr(),r=e.feature.flags;return w.createElement(W.BaseCard,Object.assign({},e,{title:"Flags"}),w.createElement(W.SimpleValue,{name:"Flag",value:r}),w.createElement(z.FormGroup,null,["read paired","read mapped in proper pair","read unmapped","mate unmapped","read reverse strand","mate reverse strand","first in pair","second in pair","not primary alignment","read fails platform/vendor quality checks","read is PCR or optical duplicate","supplementary alignment"].map((function(e,n){var a=r&1<<n,o="".concat(e,"_").concat(a);return w.createElement(z.FormControlLabel,{key:o,control:w.createElement(z.Checkbox,{className:t.compact,checked:Boolean(a),name:e,readOnly:!0}),label:e})}))))}function ur(e){var t=e.value,r=oe(C.useState(!1),2),n=r[0],a=r[1],o=String(t);return o.length>100?w.createElement(w.Fragment,null,w.createElement("button",{type:"button",onClick:function(){return R(o)}},"Copy"),w.createElement("button",{type:"button",onClick:function(){return a((function(e){return!e}))}},n?"Show less":"Show more"),w.createElement("div",null,n?o:"".concat(o.slice(0,100),"..."))):w.createElement("div",null,o)}function pr(e){var t=e.tag,n=e.model,a=r.getSession(n);return w.createElement(W.BaseCard,Object.assign({},e,{title:"Supplementary alignments"}),w.createElement(z.Typography,null,"List of supplementary alignment locations"),w.createElement("ul",null,t.split(";").filter((function(e){return!!e})).map((function(e,t){var r=oe(e.split(","),4),o=r[0],i=r[1],l=r[2],s=function(e){for(var t=me(e),r=0,n=0;n<t.length;n+=2){var a=t[n+1];"H"!==a&&"S"!==a&&"I"!==a&&(r+=+t[n])}return r}(r[3]),c=Math.floor(s/5),u=+i,p=+i+s,f="".concat(o,":").concat(Math.max(1,u-c),"-").concat(p+c),d=u.toLocaleString("en-US"),g=p.toLocaleString("en-US"),h="".concat(o,":").concat(d,"-").concat(g," (").concat(l,")");return w.createElement("li",{key:"".concat(f,"-").concat(t)},w.createElement(z.Link,{onClick:function(){var e=n.view;e?e.navToLocString(f):a.notify("No view associated with this feature detail panel anymore","warning")},href:"#"},h))}))))}function fr(e){var t=e.locString,n=e.model,a=r.getSession(n);return w.createElement(z.Link,{onClick:function(){var e=n.view;e?e.navToLocString(t):a.notify("No view associated with this feature detail panel anymore","warning")},href:"#"},t)}function dr(e){var t=e.model,r=JSON.parse(JSON.stringify(t.featureData)),n=r.tags&&r.tags.SA||r.SA;return w.createElement(z.Paper,{"data-testid":"alignment-side-drawer"},w.createElement(W.FeatureDetails,Object.assign({},e,{omit:sr,feature:r,formatter:function(e,r){return"next_segment_position"===r?w.createElement(fr,{model:t,locString:e}):w.createElement(ur,{value:e})}})),n?w.createElement(pr,{model:t,tag:n}):null,w.createElement(cr,Object.assign({feature:r},e)))}var gr={__proto__:null,default:b.observer(dr)};exports.MismatchParser=xe,exports.default=Dt;
|
|
2
2
|
//# sourceMappingURL=plugin-alignments.cjs.production.min.js.map
|