@jbrowse/plugin-wiggle 1.5.7 → 1.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BigWigAdapter/BigWigAdapter.d.ts +5 -3
- package/dist/LinearWiggleDisplay/components/SetColorDialog.d.ts +4 -2
- package/dist/LinearWiggleDisplay/models/model.d.ts +35 -6
- package/dist/index.d.ts +104 -18
- package/dist/plugin-wiggle.cjs.development.js +176 -106
- package/dist/plugin-wiggle.cjs.development.js.map +1 -1
- package/dist/plugin-wiggle.cjs.production.min.js +1 -1
- package/dist/plugin-wiggle.cjs.production.min.js.map +1 -1
- package/dist/plugin-wiggle.esm.js +178 -108
- package/dist/plugin-wiggle.esm.js.map +1 -1
- package/package.json +2 -2
- package/src/BigWigAdapter/BigWigAdapter.ts +17 -13
- package/src/DensityRenderer/index.ts +3 -4
- package/src/LinearWiggleDisplay/components/SetColorDialog.tsx +84 -45
- package/src/LinearWiggleDisplay/components/WiggleDisplayComponent.tsx +2 -2
- package/src/LinearWiggleDisplay/models/configSchema.ts +1 -0
- package/src/LinearWiggleDisplay/models/model.tsx +34 -18
- package/src/index.ts +10 -5
- package/src/util.ts +1 -4
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("@jbrowse/core/pluggableElementTypes/AdapterType")),r=e(require("@jbrowse/core/pluggableElementTypes/TrackType")),n=e(require("@jbrowse/core/Plugin")),o=require("@jbrowse/core/configuration"),a=require("@jbrowse/core/pluggableElementTypes/models"),i=e(require("@jbrowse/core/pluggableElementTypes/DisplayType")),l=e(require("@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType")),s=require("@jbrowse/core/util/offscreenCanvasUtils"),c=require("mobx-react"),u=require("react"),f=e(u),p=require("@jbrowse/core/ui"),d=require("@jbrowse/core/util"),g=require("d3-scale"),y=require("mobx-state-tree"),h=require("@jbrowse/plugin-linear-genome-view"),m=require("@jbrowse/core/util/tracks"),v=require("mobx"),b=require("react-d3-axis"),w=require("@material-ui/core"),S=require("react-popper"),x=e(require("color")),C=require("@jbrowse/core/data_adapters/dataAdapterCache"),T=e(require("@jbrowse/core/pluggableElementTypes/RpcMethodType")),k=require("@jbrowse/core/data_adapters/BaseAdapter"),E=e(require("@jbrowse/core/pluggableElementTypes/renderers/util/serializableFilterChain")),R=require("@material-ui/core/styles"),M=e(require("@material-ui/core/Button")),j=e(require("@material-ui/core/TextField")),O=e(require("@material-ui/core/Typography")),P=e(require("@material-ui/core/Dialog")),L=e(require("@material-ui/core/DialogContent")),N=e(require("@material-ui/core/DialogTitle")),A=e(require("@material-ui/core/IconButton")),_=e(require("@material-ui/icons/Close")),D=require("react-color"),q=require("@gmod/bbi"),V=require("@jbrowse/core/util/io"),F=require("@jbrowse/core/util/rxjs"),B=e(require("@jbrowse/core/util/simpleFeature")),W=require("rxjs/operators"),I=require("@jbrowse/core/util/stats");function G(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 H(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?G(Object(r),!0).forEach((function(t){J(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):G(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function z(e,t,r,n,o,a,i){try{var l=e[a](i),s=l.value}catch(e){return void r(e)}l.done?t(s):Promise.resolve(s).then(n,o)}function X(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){z(a,n,o,i,l,"next",e)}function l(e){z(a,n,o,i,l,"throw",e)}i(void 0)}))}}function U(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 Q(e,t,r){return t&&Y(e.prototype,t),r&&Y(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function J(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function $(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");Object.defineProperty(e,"prototype",{value:Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),writable:!1}),t&&(Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function K(e){return(K=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Z(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 ee(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=K(e);if(t){var o=K(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return Z(this,r)}}function te(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=K(e)););return e}function re(){return(re="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=te(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}}).apply(this,arguments)}function ne(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,a=[],i=!0,l=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,o=e}finally{try{i||null==r.return||r.return()}finally{if(l)throw o}}return a}}(e,t)||ae(e,t)||function(){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 oe(e){return function(e){if(Array.isArray(e))return ie(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ae(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 ae(e,t){if(e){if("string"==typeof e)return ie(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)?ie(e,t):void 0}}function ie(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 le(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=ae(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}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 a,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,a=e},f:function(){try{i||null==r.return||r.return()}finally{if(l)throw a}}}}function se(e,t){return e(t={exports:{}},t.exports),t.exports}var ce=se((function(e){var t=function(e){var t=Object.prototype,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",a=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 o=Object.create((t&&t.prototype instanceof f?t:f).prototype),a=new C(n||[]);return o._invoke=function(e,t,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return{value:void 0,done:!0}}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var l=w(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,a),o}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 f(){}function p(){}function d(){}var g={};l(g,o,(function(){return this}));var y=Object.getPrototypeOf,h=y&&y(y(T([])));h&&h!==t&&r.call(h,o)&&(g=h);var m=d.prototype=f.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(o,a){function i(){return new t((function(n,i){!function n(o,a,i,l){var s=c(e[o],e,a);if("throw"!==s.type){var u=s.arg,f=u.value;return f&&"object"==typeof f&&r.call(f,"__await")?t.resolve(f.__await).then((function(e){n("next",e,i,l)}),(function(e){n("throw",e,i,l)})):t.resolve(f).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,l)}))}l(s.arg)}(o,a,n,i)}))}return n=n?n.then(i,i):i()}}function w(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,w(e,t),"throw"===t.method))return u;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var n=c(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,u;var o=n.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,u):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,u)}function S(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 x(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function T(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,a=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 a.next=a}}return{next:k}}function k(){return{value:void 0,done:!0}}return p.prototype=d,l(m,"constructor",d),l(d,"constructor",p),p.displayName=l(d,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===p||"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(m),e},e.awrap=function(e){return{__await:e}},v(b.prototype),l(b.prototype,a,(function(){return this})),e.AsyncIterator=b,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new b(s(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},v(m),l(m,i,"Generator"),l(m,o,(function(){return this})),l(m,"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=T,C.prototype={constructor:C,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(x),!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 o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),s=r.call(a,"finallyLoc");if(l&&s){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.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),x(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 o=n.arg;x(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:T(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)}})),ue=function(e){$(n,l);var t,r=ee(n);function n(){var e;return U(this,n),(e=r.apply(this,arguments)).supportsSVG=!0,e}return Q(n,[{key:"render",value:(t=X(ce.mark((function e(t){var r,o,a,i,l,c,u,f=this;return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getFeatures(t);case 2:return r=e.sent,o=t.height,a=t.bpPerPx,i=ne(t.regions,1),c=((l=i[0]).end-l.start)/a,e.next=8,s.renderToAbstractCanvas(c,o,t,(function(e){return f.draw(e,H(H({},t),{},{features:r}))}));case 8:return u=e.sent,e.next=11,re(K(n.prototype),"render",this).call(this,H(H(H({},t),u),{},{features:r,height:o,width:c}));case 11:return e.abrupt("return",H(H(H({},e.sent),u),{},{features:r,height:o,width:c}));case 13:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),n}();function fe(e){var t=e.features,r=e.bpPerPx,n=e.width,o=e.height,a=e.onMouseLeave,i=void 0===a?function(){}:a,l=e.onMouseMove,s=void 0===l?function(){}:l,c=e.onFeatureClick,d=void 0===c?function(){}:c,g=ne(e.regions,1)[0],y=u.useRef(null);function h(e){var o=0;y.current&&(o=y.current.getBoundingClientRect().left);var a,i,l=e-o,s=g.start+r*(g.reversed?n-l:l),c=le(t.values());try{for(c.s();!(i=c.n()).done;){var u=i.value;if(s<=u.get("end")&&s>=u.get("start")){a=u;break}}}catch(e){c.e(e)}finally{c.f()}return a}return f.createElement("div",{ref:y,"data-testid":"wiggle-rendering-test",onMouseMove:function(e){var t=h(e.clientX);s(e,t?t.id():void 0)},onClick:function(e){var t=h(e.clientX);d(e,t?t.id():void 0)},onMouseLeave:function(e){return i(e)},role:"presentation",className:"WiggleRendering",style:{overflow:"visible",position:"relative",height:o}},f.createElement(p.PrerenderedCanvas,Object.assign({},e)))}var pe=c.observer(fe),de=o.ConfigurationSchema("BigWigAdapter",{bigWigLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bw",locationType:"UriLocation"}}},{explicitlyTyped:!0});function ge(e){var t,r=e.domain,n=e.range,o=void 0===n?[]:n,a=e.scaleType,i=e.pivotValue,l=e.inverted,s=ne(void 0===r?[]:r,2),c=s[0],u=s[1];if(void 0===c||void 0===u)throw new Error("invalid domain");if("linear"===a)t=g.scaleLinear();else if("log"===a)(t=g.scaleLog()).base(2);else{if("quantize"!==a)throw new Error("undefined scaleType");t=g.scaleQuantize()}t.domain(void 0!==i?[c,i,u]:[c,u]),t.nice();var f=ne(o,2);if(void 0===f[0]||void 0===f[1])throw new Error("invalid range");return t.range(l?o.slice().reverse():o),t}function ye(e){return"log"===e?1:0}function he(e){var t=e.scaleType,r=e.domain,n=ne(e.bounds,2),o=n[0],a=n[1],i=ne(r,2),l=i[0],s=i[1];if("linear"===t&&(s<0&&(s=0),l>0&&(l=0)),"log"===t&&(0===l||l>1)&&(l=1),void 0===l||void 0===s)throw new Error("invalid domain");void 0!==o&&o!==Number.MIN_VALUE&&(l=o),void 0!==a&&a!==Number.MAX_VALUE&&(s=a);var c=function(e){if("linear"===e)return g.scaleLinear();if("log"===e){var t=g.scaleLog();return t.base(2),t}if("quantize"===e)return g.scaleQuantize();throw new Error("undefined scaleType ".concat(e))}(t);return c.domain([l,s]),c.nice(),c.domain()}var me={__proto__:null,getScale:ge,getOrigin:ye,getNiceDomain:he},ve=o.ConfigurationSchema("WiggleRenderer",{color:{type:"color",description:"the color of track, overrides posColor and negColor",defaultValue:"#f0f"},posColor:{type:"color",description:"the color to use when the score is positive",defaultValue:"blue"},negColor:{type:"color",description:"the color to use when the score is negative",defaultValue:"red"},highlightColor:{type:"color",description:"the color of highlights over the wiggle track",defaultValue:"rgba(255,255,0,0.5)"},clipColor:{type:"color",description:"the color of the clipping marker",defaultValue:"red"},renderType:{type:"stringEnum",model:y.types.enumeration("Rendering type",["xyplot","density","line"]),description:"The type of rendering for wiggle data to use",defaultValue:"xyplot"},filled:{type:"boolean",description:"fill in histogram",defaultValue:!0},bicolorPivot:{type:"stringEnum",model:y.types.enumeration("Scale type",["numeric","mean","z_score","none"]),description:"type of bicolor pivot",defaultValue:"numeric"},bicolorPivotValue:{type:"number",defaultValue:0,description:"value to use for bicolor pivot"},summaryScoreMode:{type:"stringEnum",model:y.types.enumeration("Score type",["max","min","avg","whiskers"]),description:"choose whether to use max/min/average or whiskers which combines all three into the same rendering",defaultValue:"whiskers"},displayCrossHatches:{type:"boolean",description:"choose to draw cross hatches (sideways lines)",defaultValue:!1}},{explicitlyTyped:!0}),be=function(e){$(r,ue);var t=ee(r);function r(){return U(this,r),t.apply(this,arguments)}return Q(r,[{key:"draw",value:function(e,t){var r,n,a=t.features,i=t.bpPerPx,l=t.scaleOpts,s=t.height,c=t.config,u=ne(t.regions,1)[0],f=o.readConfObject(c,"bicolorPivot"),p=o.readConfObject(c,"bicolorPivotValue"),g=o.readConfObject(c,"negColor"),y=o.readConfObject(c,"posColor");"#f0f"===o.readConfObject(c,"color")?(n=ge(H(H({},l),{},"none"!==f?{pivotValue:p,range:[g,"white",y]}:{range:["white",y]})),r=function(e){return n(e.get("score"))}):r=function(e){return o.readConfObject(c,"color",{feature:e})};var h,m=le(a.values());try{for(m.s();!(h=m.n()).done;){var v=h.value,b=ne(d.featureSpanPx(v,u,i),2),w=b[0],S=b[1]-w+.3;e.fillStyle=r(v),e.fillRect(w,0,S,s)}}catch(e){m.e(e)}finally{m.f()}}}]),r}(),we=o.ConfigurationSchema("DensityRenderer",{},{baseConfiguration:ve,explicitlyTyped:!0});function Se(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return+(+e).toPrecision(6)}var xe=function(e){return e.toLocaleString("en-US")},Ce=w.makeStyles((function(e){return{tooltip:{position:"absolute",pointerEvents:"none",backgroundColor:w.alpha(e.palette.grey[700],.9),borderRadius:e.shape.borderRadius,color:e.palette.common.white,fontFamily:e.typography.fontFamily,padding:"4px 8px",fontSize:e.typography.pxToRem(10),lineHeight:"".concat(Math.round(14e4)/1e5,"em"),maxWidth:300,wordWrap:"break-word"},hoverVertical:{background:"#333",border:"none",width:1,height:"100%",top:0,cursor:"default",position:"absolute",pointerEvents:"none"}}})),Te=f.forwardRef((function(e,t){var r=e.feature,n=r.get("start"),o=r.get("end"),a=[r.get("refName"),n===o?xe(n):"".concat(xe(n),"..").concat(xe(o))].filter((function(e){return!!e})).join(":");return void 0!==r.get("summary")?f.createElement("div",{ref:t},a,f.createElement("br",null),"Max: ",Se(r.get("maxScore")),f.createElement("br",null),"Avg: ",Se(r.get("score")),f.createElement("br",null),"Min: ",Se(r.get("minScore"))):f.createElement("div",{ref:t},a,f.createElement("br",null),"".concat(Se(r.get("score"))))})),ke=c.observer((function(e){var t=e.height,r=e.clientMouseCoord,n=e.offsetMouseCoord,o=e.clientRect,a=e.TooltipContents,i=e.model.featureUnderMouse,l=ne(u.useState(0),2),s=l[0],c=l[1],p=ne(u.useState(null),2),d=p[0],g=p[1],y=Ce(),h=u.useMemo((function(){return{getBoundingClientRect:function(){var e=r[0]+s/2+20,t=(null==o?void 0:o.top)||0;return{top:t,left:e,bottom:t,right:e,width:0,height:0,x:e,y:t,toJSON:function(){}}}}}),[null==o?void 0:o.top,r,s]),m=S.usePopper(h,d),v=m.attributes;return i?f.createElement(f.Fragment,null,f.createElement(w.Portal,null,f.createElement("div",Object.assign({ref:g,className:y.tooltip,style:H(H({},m.styles.popper),{},{zIndex:1e5})},v.popper),f.createElement(a,{ref:function(e){c((null==e?void 0:e.getBoundingClientRect().width)||0)},feature:i}))),f.createElement("div",{className:y.hoverVertical,style:{left:n[0],height:t-2*Pe}})):null})),Ee=c.observer((function(e){return f.createElement(ke,Object.assign({TooltipContents:Te},e))})),Re=c.observer((function(e){return f.createElement(b.Axis,Object.assign({},e.model.ticks,{format:function(e){return e},style:{orient:"left"===e.orientation?b.LEFT:b.RIGHT}}))})),Me=c.observer((function(e){var t=e.model,r=t.ready,n=t.stats,o=t.height,a=t.needsScalebar;return f.createElement("div",null,f.createElement(h.BaseLinearDisplayComponent,Object.assign({},e)),r&&n&&a?f.createElement("svg",{style:{position:"absolute",top:0,left:300,pointerEvents:"none",height:o,width:50}},f.createElement(Re,{model:t})):null)})),je=u.lazy((function(){return Promise.resolve().then((function(){return He}))})),Oe=u.lazy((function(){return Promise.resolve().then((function(){return Xe}))})),Pe=5,Le=new Map([["xyplot","XYPlotRenderer"],["density","DensityRenderer"],["line","LinePlotRenderer"]]);function Ne(e,t){return Math.log(t)/Math.log(e)}function Ae(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1.5;return(e>=0?1:-1)*Math.pow(t,1+Math.floor(Ne(t,Math.abs(e))))}var _e=function(e,t){return y.types.compose("LinearWiggleDisplay",h.BaseLinearDisplay,y.types.model({type:y.types.literal("LinearWiggleDisplay"),configuration:o.ConfigurationReference(t),selectedRendering:y.types.optional(y.types.string,""),resolution:y.types.optional(y.types.number,1),fill:y.types.maybe(y.types.boolean),color:y.types.maybe(y.types.string),summaryScoreMode:y.types.maybe(y.types.string),rendererTypeNameState:y.types.maybe(y.types.string),scale:y.types.maybe(y.types.string),autoscale:y.types.maybe(y.types.string),displayCrossHatches:y.types.maybe(y.types.boolean),constraints:y.types.optional(y.types.model({max:y.types.maybe(y.types.number),min:y.types.maybe(y.types.number)}),{})})).volatile((function(){return{ready:!1,message:void 0,stats:v.observable({scoreMin:0,scoreMax:50}),statsFetchInProgress:void 0}})).actions((function(e){return{updateStats:function(t){e.stats.scoreMin=t.scoreMin,e.stats.scoreMax=t.scoreMax,e.ready=!0},setColor:function(t){e.color=t},setLoading:function(t){var r=e.statsFetchInProgress;void 0===r||r.signal.aborted||r.abort(),e.statsFetchInProgress=t},selectFeature:function(t){var r=d.getSession(e);d.isSelectionContainer(r)&&r.setSelection(t)},setResolution:function(t){e.resolution=t},setFill:function(t){e.fill=t},toggleLogScale:function(){e.scale="log"!==e.scale?"log":"linear"},setScaleType:function(t){e.scale=t},setSummaryScoreMode:function(t){e.summaryScoreMode=t},setAutoscale:function(t){e.autoscale=t},setMaxScore:function(t){e.constraints.max=t},setRendererType:function(t){e.rendererTypeNameState=t},setMinScore:function(t){e.constraints.min=t},toggleCrossHatches:function(){e.displayCrossHatches=!e.displayCrossHatches},setCrossHatches:function(t){e.displayCrossHatches=t}}})).views((function(e){return{get TooltipComponent(){return Ee},get adapterTypeName(){return e.adapterConfig.type},get rendererTypeName(){var t=e.rendererTypeNameState||o.getConf(e,"defaultRendering"),r=Le.get(t);if(!r)throw new Error("unknown alignments view name ".concat(t));return r},get filters(){},get scaleType(){return e.scale||o.getConf(e,"scaleType")},get filled(){return void 0!==e.fill?e.fill:o.readConfObject(this.rendererConfig,"filled")},get maxScore(){var t=e.constraints.max;return void 0!==t?t:o.getConf(e,"maxScore")},get minScore(){var t=e.constraints.min;return void 0!==t?t:o.getConf(e,"minScore")},get rendererConfig(){var t=o.getConf(e,["renderers",this.rendererTypeName])||{};return e.rendererType.configSchema.create(H(H({},t),{},{filled:e.fill,scaleType:this.scaleType,displayCrossHatches:e.displayCrossHatches,summaryScoreMode:e.summaryScoreMode,color:e.color}),y.getEnv(e))}}})).views((function(e){var t=[0,0];return{get summaryScoreModeSetting(){return e.summaryScoreMode||o.readConfObject(e.rendererConfig,"summaryScoreMode")},get domain(){var r=e.stats,n=e.scaleType,a=e.minScore,i=e.maxScore,l=he({domain:[r.scoreMin,r.scoreMax],bounds:[a,i],scaleType:n}),s=o.getConf(e,"headroom")||0;return"log"===n&&l[1]===Number.MIN_VALUE?[0,Number.MIN_VALUE]:(i===Number.MAX_VALUE&&l[1]>1&&(l[1]=Ae(l[1]+s)),a===Number.MIN_VALUE&&l[0]<-1&&(l[0]=Ae(l[0]-s)),JSON.stringify(t)!==JSON.stringify(l)&&(t=l),t)},get needsScalebar(){return"XYPlotRenderer"===e.rendererTypeName||"LinePlotRenderer"===e.rendererTypeName},get scaleOpts(){return{domain:this.domain,stats:e.stats,autoscaleType:this.autoscaleType,scaleType:e.scaleType,inverted:o.getConf(e,"inverted")}},get canHaveFill(){return"XYPlotRenderer"===e.rendererTypeName},get autoscaleType(){return e.autoscale||o.getConf(e,"autoscale")},get displayCrossHatchesSetting(){return e.displayCrossHatches||o.readConfObject(e.rendererConfig,"displayCrossHatches")}}})).views((function(e){return{get ticks(){var t=e.height,r=ge({scaleType:e.scaleType,domain:e.domain,range:[t-Pe,Pe],inverted:o.getConf(e,"inverted")});return b.axisPropsFromTickScale(r,t<50?2:4)}}})).views((function(t){var r=t.renderProps;return{renderProps:function(){return H(H({},r()),{},{notReady:!t.ready,rpcDriverName:t.rpcDriverName,displayModel:t,config:t.rendererConfig,scaleOpts:t.scaleOpts,resolution:t.resolution,height:t.height,ticks:t.ticks,displayCrossHatches:t.displayCrossHatches,filters:t.filters})},get adapterCapabilities(){return e.getAdapterType(t.adapterTypeName).adapterCapabilities},get hasResolution(){return this.adapterCapabilities.includes("hasResolution")},get hasGlobalStats(){return this.adapterCapabilities.includes("hasGlobalStats")}}})).views((function(e){var t=e.trackMenuItems;return{trackMenuItems:function(){return[].concat(oe(t()),oe(e.hasResolution?[{label:"Resolution",subMenu:[{label:"Finer resolution",onClick:function(){e.setResolution(5*e.resolution)}},{label:"Coarser resolution",onClick:function(){e.setResolution(e.resolution/5)}}]},{label:"Summary score mode",subMenu:["min","max","avg","whiskers"].map((function(t){return{label:t,onClick:function(){return e.setSummaryScoreMode(t)}}}))}]:[]),oe(e.canHaveFill?[{label:e.filled?"Turn off histogram fill":"Turn on histogram fill",onClick:function(){e.setFill(!e.filled)}}]:[]),[{label:"log"===e.scaleType?"Set linear scale":"Set log scale",onClick:function(){e.toggleLogScale()}},{type:"checkbox",label:"Draw cross hatches",checked:e.displayCrossHatchesSetting,onClick:function(){e.toggleCrossHatches()}}],oe(Object.keys(o.getConf(e,"renderers")||{}).length>1?[{label:"Renderer type",subMenu:oe(Le.keys()).map((function(t){return{label:t,onClick:function(){return e.setRendererType(t)}}}))}]:[]),[{label:"Autoscale type",subMenu:[["local","Local"]].concat(oe(e.hasGlobalStats?[["global","Global"],["globalsd","Global ± 3σ"]]:[]),[["localsd","Local ± 3σ"]]).map((function(t){var r=ne(t,2),n=r[0];return{label:r[1],onClick:function(){e.setAutoscale(n)}}}))},{label:"Set min/max score",onClick:function(){d.getSession(e).queueDialog((function(t){return[je,{model:e,handleClose:t}]}))}},{label:"Set color",onClick:function(){d.getSession(e).queueDialog((function(t){return[Oe,{model:e,handleClose:t}]}))}}])}}})).actions((function(e){var t=e.reload,r=e.renderSvg;function n(e){return a.apply(this,arguments)}function a(){return(a=X(ce.mark((function t(r){var n,a,i,l,s,c,u,f,p,g,h,v,b,w,S,x,C,T;return ce.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=d.getSession(e),a=n.rpcManager,i=o.getConf(e,"numStdDev")||3,l=e.adapterConfig,s=e.autoscaleType,c=m.getRpcSessionId(e),u=H({sessionId:c,adapterConfig:l,statusCallback:function(t){y.isAlive(e)&&e.setMessage(t)}},r),"global"!==s&&"globalsd"!==s){t.next=11;break}return t.next=8,a.call(c,"WiggleGetGlobalStats",u);case 8:return p=(f=t.sent).scoreMin,g=f.scoreMean,h=f.scoreStdDev,t.abrupt("return","globalsd"===s?H(H({},f),{},{scoreMin:p>=0?0:g-i*h,scoreMax:g+i*h}):f);case 11:if("local"!==s&&"localsd"!==s){t.next=18;break}return v=d.getContainingView(e),b=v.dynamicBlocks,w=v.bpPerPx,t.next=15,a.call(c,"WiggleGetMultiRegionStats",H(H({},u),{},{regions:b.contentBlocks.map((function(e){var t=e.start,r=e.end;return H(H({},JSON.parse(JSON.stringify(e))),{},{start:Math.floor(t),end:Math.ceil(r)})})),bpPerPx:w}));case 15:return x=(S=t.sent).scoreMin,C=S.scoreMean,T=S.scoreStdDev,t.abrupt("return","localsd"===s?H(H({},S),{},{scoreMin:x>=0?0:C-i*T,scoreMax:C+i*T}):S);case 18:if("zscale"!==s){t.next=20;break}return t.abrupt("return",a.call(c,"WiggleGetGlobalStats",u));case 20:throw new Error("invalid autoscaleType '".concat(s,"'"));case 21:case"end":return t.stop()}}),t)})))).apply(this,arguments)}return{reload:function(){return X(ce.mark((function r(){var o,a;return ce.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return e.setError(),o=new AbortController,r.prev=2,r.next=5,n({signal:o.signal,filters:e.filters});case 5:a=r.sent,y.isAlive(e)&&(e.updateStats(a),t()),r.next=12;break;case 9:r.prev=9,r.t0=r.catch(2),e.setError(r.t0);case 12:case"end":return r.stop()}}),r,null,[[2,9]])})))()},afterAttach:function(){y.addDisposer(e,v.autorun(X(ce.mark((function t(){var r,o,a;return ce.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,r=new AbortController,o=d.getContainingView(e),e.setLoading(r),o.initialized){t.next=6;break}return t.abrupt("return");case 6:if(!(o.bpPerPx>e.maxViewBpPerPx)){t.next=8;break}return t.abrupt("return");case 8:return t.next=10,n({signal:r.signal,filters:e.filters});case 10:a=t.sent,y.isAlive(e)&&e.updateStats(a),t.next=17;break;case 14:t.prev=14,t.t0=t.catch(0),!d.isAbortException(t.t0)&&y.isAlive(e)&&(console.error(t.t0),e.setError(t.t0));case 17:case"end":return t.stop()}}),t,null,[[0,14]])}))),{delay:1e3}))},renderSvg:function(t){return X(ce.mark((function n(){var o,a,i,l;return ce.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,v.when((function(){return e.ready&&!!e.regionCannotBeRenderedText}));case 2:return o=e.needsScalebar,a=e.stats,i=d.getContainingView(e),l=i.offsetPx,n.t0=f,n.t1=f.Fragment,n.t2=f,n.t3={id:"snpcov"},n.next=10,r(t);case 10:return n.t4=n.sent,n.t5=n.t2.createElement.call(n.t2,"g",n.t3,n.t4),n.t6=o&&a?f.createElement("g",{transform:"translate(".concat(Math.max(-l,0),")")},f.createElement(Re,{model:e,orientation:"left"})):null,n.abrupt("return",n.t0.createElement.call(n.t0,n.t1,null,n.t5,n.t6));case 14:case"end":return n.stop()}}),n)})))()}}}))},De=function(e){$(r,ue);var t=ee(r);function r(){return U(this,r),t.apply(this,arguments)}return Q(r,[{key:"draw",value:function(e,t){var r=t.features,n=t.bpPerPx,a=t.scaleOpts,i=t.height,l=t.config,s=t.ticks.values,c=t.displayCrossHatches,u=ne(t.regions,1)[0],f=(u.end-u.start)/n,p=Pe,g=i-2*p,y=o.readConfObject(l,"bicolorPivotValue"),h=o.readConfObject(l,"negColor"),m=o.readConfObject(l,"posColor"),v=o.readConfObject(l,"filled"),b=o.readConfObject(l,"clipColor"),w=o.readConfObject(l,"highlightColor"),S=o.readConfObject(l,"summaryScoreMode"),C=ge(H(H({},a),{},{range:[0,g]})),T=ye(a.scaleType),k=ne(C.domain(),2),E=k[0],R=k[1],M=function(e){return g-(C(e)||0)+p},j=function(e){return M(T)-M(e)},O="#f0f"===o.readConfObject(l,"color")?function(e,t){return t<y?h:m}:function(e,t){return o.readConfObject(l,"color",{feature:e})};e.strokeStyle="grey",e.moveTo(0,M(0)),e.lineTo(f,M(0)),e.stroke();var P,L=E<y&&R>y,N=le(r.values());try{for(N.s();!(P=N.n()).done;){var A=P.value,_=ne(d.featureSpanPx(A,u,n),2),D=_[0],q=_[1],V=A.get("score"),F=A.get("maxScore"),B=A.get("minScore"),W=V<E,I=V>R,G=q-D+.4,z=A.get("summary");if("max"===S)e.fillStyle=O(A,V=z?F:V),e.fillRect(D,M(V),G,v?j(V):1);else if("min"===S)e.fillStyle=O(A,V=z?B:V),e.fillRect(D,M(V),G,v?j(V):1);else if("whiskers"===S){var X=O(A,V);z&&(e.fillStyle=L?O(A,F):x(X).lighten(.6).toString(),e.fillRect(D,M(F),G,v?j(F)-j(V):1)),e.fillStyle=L&&z?x(O(A,F)).mix(x(O(A,B))):X,e.fillRect(D,M(V),G,v?j(V)-(z?j(B):0):1),z&&(e.fillStyle=L?O(A,B):x(X).darken(.6).toString(),e.fillRect(D,M(B),G,v?j(B):1))}else e.fillStyle=O(A,V),e.fillRect(D,M(V),G,v?j(V):1);I?(e.fillStyle=b,e.fillRect(D,0,G,4)):W&&"log"!==a.scaleType&&(e.fillStyle=b,e.fillRect(D,i-4,G,4)),A.get("highlighted")&&(e.fillStyle=w,e.fillRect(D,0,G,g))}}catch(e){N.e(e)}finally{N.f()}c&&(e.lineWidth=1,e.strokeStyle="rgba(200,200,200,0.8)",s.forEach((function(t){e.beginPath(),e.moveTo(0,Math.round(M(t))),e.lineTo(f,Math.round(M(t))),e.stroke()})))}}]),r}(),qe=o.ConfigurationSchema("XYPlotRenderer",{},{baseConfiguration:ve,explicitlyTyped:!0}),Ve=function(e){$(r,ue);var t=ee(r);function r(){return U(this,r),t.apply(this,arguments)}return Q(r,[{key:"draw",value:function(e,t){var r,n=t.features,a=t.bpPerPx,i=t.scaleOpts,l=t.height,s=t.ticks.values,c=t.displayCrossHatches,u=t.config,f=ne(t.regions,1)[0],p=(f.end-f.start)/a,g=Pe,y=l-2*g,h=o.readConfObject(u,"clipColor"),m=o.readConfObject(u,"highlightColor"),v=ge(H(H({},i),{},{range:[0,y]})),b=ne(v.domain(),2),w=b[0],S=b[1],x=function(e){return y-v(e)+g},C="#f0f"===o.readConfObject(u,"color")?function(){return"grey"}:function(e){return o.readConfObject(u,"color",{feature:e})};e.strokeStyle="grey",e.moveTo(0,x(0)),e.lineTo(p,x(0)),e.stroke();var T,k=le(n.values());try{for(k.s();!(T=k.n()).done;){var E=T.value,R=ne(d.featureSpanPx(E,f,a),2),M=R[0],j=R[1],O=E.get("score"),P=O<w,L=O>S,N=j-M+.3,A=C(E);e.strokeStyle=A,e.beginPath(),f.reversed?(e.moveTo(j,x(void 0!==r?r:O)),e.lineTo(j,x(O)),e.lineTo(M,x(O))):(e.moveTo(M,x(void 0!==r?r:O)),e.lineTo(M,x(O)),e.lineTo(j,x(O))),e.stroke(),r=O,L?(e.fillStyle=h,e.fillRect(M,0,N,4)):P&&"log"!==i.scaleType&&(e.fillStyle=h,e.fillRect(M,y-4,N,y)),E.get("highlighted")&&(e.fillStyle=m,e.fillRect(M,0,N,y))}}catch(e){k.e(e)}finally{k.f()}c&&(e.lineWidth=1,e.strokeStyle="rgba(200,200,200,0.8)",s.forEach((function(t){e.beginPath(),e.moveTo(0,Math.round(x(t))),e.lineTo(p,Math.round(x(t))),e.stroke()})))}}]),r}(),Fe=o.ConfigurationSchema("LinePlotRenderer",{},{baseConfiguration:ve,explicitlyTyped:!0}),Be=function(e){$(o,T);var t,r,n=ee(o);function o(){var e;return U(this,o),(e=n.apply(this,arguments)).name="WiggleGetGlobalStats",e}return Q(o,[{key:"deserializeArguments",value:(r=X(ce.mark((function e(t,r){return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re(K(o.prototype),"deserializeArguments",this).call(this,t,r);case 2:return e.abrupt("return",H(H({},e.sent),{},{filters:t.filters?new E({filters:t.filters}):void 0}));case 4:case"end":return e.stop()}}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"execute",value:(t=X(ce.mark((function e(t,r){var n,o,a,i;return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.deserializeArguments(t,r);case 2:return o=(n=e.sent).adapterConfig,a=n.sessionId,e.next=6,C.getAdapter(this.pluginManager,a,o);case 6:if(!((i=e.sent.dataAdapter)instanceof k.BaseFeatureDataAdapter)){e.next=12;break}if(!i.capabilities.includes("hasGlobalStats")){e.next=11;break}return e.abrupt("return",i.getGlobalStats(n));case 11:throw new Error("Data adapter does not support global stats");case 12:throw new Error("Data adapter not found");case 13:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})}]),o}(),We=function(e){$(a,T);var t,r,n,o=ee(a);function a(){var e;return U(this,a),(e=o.apply(this,arguments)).name="WiggleGetMultiRegionStats",e}return Q(a,[{key:"deserializeArguments",value:(n=X(ce.mark((function e(t,r){return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re(K(a.prototype),"deserializeArguments",this).call(this,t,r);case 2:return e.abrupt("return",H(H({},e.sent),{},{filters:t.filters?new E({filters:t.filters}):void 0}));case 4:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"serializeArguments",value:(r=X(ce.mark((function e(t,r){var n,o,i,l;return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=null===(n=this.pluginManager.rootModel)||void 0===n||null===(o=n.session)||void 0===o?void 0:o.assemblyManager){e.next=3;break}return e.abrupt("return",t);case 3:return e.next=5,d.renameRegionsIfNeeded(i,H(H({},t),{},{filters:t.filters&&t.filters.toJSON().filters}));case 5:return l=e.sent,e.abrupt("return",re(K(a.prototype),"serializeArguments",this).call(this,l,r));case 7:case"end":return e.stop()}}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"execute",value:(t=X(ce.mark((function e(t,r){var n,o,a,i,l;return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.deserializeArguments(t,r);case 2:return o=(n=e.sent).regions,a=n.adapterConfig,i=n.sessionId,e.next=6,C.getAdapter(this.pluginManager,i,a);case 6:if(!((l=e.sent.dataAdapter)instanceof k.BaseFeatureDataAdapter)){e.next=10;break}return e.abrupt("return",l.getMultiRegionStats(o,n));case 10:throw new Error("Data adapter not found");case 11:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})}]),a}(),Ie=function(e){$(s,n);var l=ee(s);function s(){var e;return U(this,s),(e=l.apply(this,arguments)).name="WigglePlugin",e.exports={LinearWiggleDisplayReactComponent:Me,XYPlotRendererReactComponent:pe,XYPlotRenderer:De,xyPlotRendererConfigSchema:qe,utils:me,WiggleBaseRenderer:ue,linearWiggleDisplayModelFactory:_e},e}return Q(s,[{key:"install",value:function(e){e.addTrackType((function(){var t=o.ConfigurationSchema("QuantitativeTrack",{},{baseConfiguration:a.createBaseTrackConfig(e)});return new r({name:"QuantitativeTrack",configSchema:t,stateModel:a.createBaseTrackModel(e,"QuantitativeTrack",t)})})),e.addDisplayType((function(){var t=function(e){var t=e.getRendererType("XYPlotRenderer").configSchema,r=e.getRendererType("DensityRenderer").configSchema,n=e.getRendererType("LinePlotRenderer").configSchema;return o.ConfigurationSchema("LinearWiggleDisplay",{autoscale:{type:"stringEnum",defaultValue:"local",model:y.types.enumeration("Autoscale type",["global","local","globalsd","localsd","zscore"]),description:"global/local using their min/max values or w/ standard deviations (globalsd/localsd)"},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},numStdDev:{type:"number",description:"number of standard deviations to use for autoscale types globalsd or localsd",defaultValue:3},scaleType:{type:"stringEnum",model:y.types.enumeration("Scale type",["linear","log"]),description:"The type of scale to use",defaultValue:"linear"},inverted:{type:"boolean",description:"draw upside down",defaultValue:!1},defaultRendering:{type:"stringEnum",model:y.types.enumeration("Rendering",["density","xyplot","line"]),defaultValue:"xyplot"},renderers:o.ConfigurationSchema("RenderersConfiguration",{DensityRenderer:r,XYPlotRenderer:t,LinePlotRenderer:n})},{baseConfiguration:h.baseLinearDisplayConfigSchema,explicitlyTyped:!0})}(e);return new i({name:"LinearWiggleDisplay",configSchema:t,stateModel:_e(e,t),trackType:"QuantitativeTrack",viewType:"LinearGenomeView",ReactComponent:Me})})),e.addAdapterType((function(){return new t({name:"BigWigAdapter",configSchema:de,adapterCapabilities:["hasResolution","hasLocalStats","hasGlobalStats"],getAdapterClass:function(){return Promise.resolve().then((function(){return Ye})).then((function(e){return e.default}))}})})),e.addToExtensionPoint("Core-guessAdapterForLocation",(function(e){return function(t,r,n){var o=m.getFileName(t);return/\.(bw|bigwig)$/i.test(o)||"BigWigAdapter"===n?{type:"BigWigAdapter",bigWigLocation:t}:e(t,r,n)}})),e.addToExtensionPoint("Core-guessTrackTypeForLocation",(function(e){return function(t){return"BigWigAdapter"===t?"QuantitativeTrack":e(t)}})),e.addRendererType((function(){return new be({name:"DensityRenderer",ReactComponent:pe,configSchema:we,pluginManager:e})})),e.addRendererType((function(){return new Ve({name:"LinePlotRenderer",ReactComponent:pe,configSchema:Fe,pluginManager:e})})),e.addRendererType((function(){return new De({name:"XYPlotRenderer",ReactComponent:pe,configSchema:qe,pluginManager:e})})),e.addRpcMethod((function(){return new Be(e)})),e.addRpcMethod((function(){return new We(e)}))}}]),s}(),Ge=R.makeStyles((function(e){return{root:{},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}})),He={__proto__:null,default:function(e){var t=Ge(),r=e.model,n=e.handleClose,o=r.minScore,a=r.maxScore,i=r.scaleType,l=ne(u.useState("".concat(o!==Number.MIN_VALUE?o:"")),2),s=l[0],c=l[1],p=ne(u.useState("".concat(a!==Number.MAX_VALUE?a:"")),2),d=p[0],g=p[1],y=!(""!==s&&""!==d&&!Number.isNaN(+s)&&!Number.isNaN(+d))||+d>+s,h=!("log"===i&&""!==s&&!Number.isNaN(+s))||+s>0;return f.createElement(P,{open:!0,onClose:n},f.createElement(N,null,"Set min/max score for track",f.createElement(A,{className:t.closeButton,onClick:n},f.createElement(_,null))),f.createElement(L,{style:{overflowX:"hidden"}},f.createElement("div",{className:t.root},f.createElement(O,null,"Enter min/max score: "),y?null:f.createElement(O,{color:"error"},"Max is greater than or equal to min"),h?null:f.createElement(O,{color:"error"},"Min score should be greater than 0 for log scale"),f.createElement(j,{value:s,onChange:function(e){c(e.target.value)},placeholder:"Enter min score"}),f.createElement(j,{value:d,onChange:function(e){g(e.target.value)},placeholder:"Enter max score"}),f.createElement(M,{variant:"contained",color:"primary",type:"submit",style:{marginLeft:20},disabled:!y,onClick:function(){r.setMinScore(""===s||Number.isNaN(+s)?void 0:+s),r.setMaxScore(""===d||Number.isNaN(+d)?void 0:+d),n()}},"Submit"))))}},ze=R.makeStyles((function(e){return{root:{},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}})),Xe={__proto__:null,default:function(e){var t=ze(),r=e.model,n=e.handleClose;return f.createElement(w.Dialog,{open:!0,onClose:n,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},f.createElement(w.DialogTitle,{id:"alert-dialog-title"},"Select a color",f.createElement(w.IconButton,{"aria-label":"close",className:t.closeButton,onClick:n},f.createElement(_,null))),f.createElement(w.DialogContent,{style:{overflowX:"hidden"}},f.createElement("div",{className:t.root},f.createElement(D.CompactPicker,{onChange:function(e){r.setColor(function(e){if(e instanceof Object){var t=e.g,r=e.b,n=e.a;return"rgb(".concat(e.r,",").concat(t,",").concat(r,",").concat(n,")")}return e}(e.rgb))}}),f.createElement("br",null),f.createElement("div",{style:{margin:20}},f.createElement(w.Button,{onClick:function(){r.setColor(void 0)},color:"secondary",variant:"contained"},"Restore default from config"),f.createElement(w.Button,{variant:"contained",color:"primary",type:"submit",onClick:function(){n()}},"Submit")))))}},Ue=function(e){$(l,k.BaseFeatureDataAdapter);var t,r,n,a,i=ee(l);function l(e,t,r){var n;return U(this,l),(n=i.call(this,e,t,r)).bigwig=new q.BigWig({filehandle:V.openLocation(o.readConfObject(e,"bigWigLocation"),n.pluginManager)}),n}return Q(l,[{key:"setup",value:(a=X(ce.mark((function e(t){var r,n,o;return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(n=void 0===(r=(t||{}).statusCallback)?function(){}:r)("Downloading bigwig header"),e.next=4,this.bigwig.getHeader(t);case 4:return o=e.sent,n(""),e.abrupt("return",o);case 7:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"getRefNames",value:(n=X(ce.mark((function e(t){return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.setup(t);case 2:return e.abrupt("return",Object.keys(e.sent.refsByName));case 4:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"refIdToName",value:(r=X(ce.mark((function e(t){return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.setup();case 2:return e.abrupt("return",(e.sent.refsByNumber[t]||{name:void 0}).name);case 4:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"getGlobalStats",value:(t=X(ce.mark((function e(t){return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.setup(t);case 2:return e.abrupt("return",I.rectifyStats(e.sent.totalSummary));case 4:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"getFeatures",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.refName,o=e.start,a=e.end,i=r.bpPerPx,l=void 0===i?0:i,s=r.signal,c=r.resolution,u=void 0===c?1:c,f=r.statusCallback,p=void 0===f?function(){}:f;return F.ObservableCreate(function(){var e=X(ce.mark((function e(i){return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return p("Downloading bigwig data"),e.next=3,t.bigwig.getFeatureStream(n,o,a,H(H({},r),{},{basesPerSpan:l/u}));case 3:e.sent.pipe(W.mergeAll(),W.map((function(e){return new B({id:"".concat(n,":").concat(e.start,"-").concat(e.end),data:H(H({},e),{},{refName:n})})}))).subscribe(i);case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),s)}},{key:"freeResources",value:function(){}}]),l}();Ue.capabilities=["hasResolution","hasLocalStats","hasGlobalStats"];var Ye={__proto__:null,default:Ue};exports.LinearWiggleDisplayReactComponent=Me,exports.Tooltip=ke,exports.WiggleBaseRenderer=ue,exports.WiggleRendering=pe,exports.YSCALEBAR_LABEL_OFFSET=Pe,exports.default=Ie,exports.getNiceDomain=he,exports.getOrigin=ye,exports.getScale=ge,exports.linearWiggleDisplayModelFactory=_e;
|
|
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/pluggableElementTypes/AdapterType")),r=e(require("@jbrowse/core/pluggableElementTypes/TrackType")),n=e(require("@jbrowse/core/Plugin")),o=require("@jbrowse/core/configuration"),a=require("@jbrowse/core/pluggableElementTypes/models"),i=e(require("@jbrowse/core/pluggableElementTypes/DisplayType")),l=e(require("@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType")),s=require("@jbrowse/core/util/offscreenCanvasUtils"),c=require("mobx-react"),u=require("react"),f=e(u),p=require("@jbrowse/core/ui"),d=require("@jbrowse/core/util"),g=require("d3-scale"),y=require("mobx-state-tree"),h=require("@jbrowse/plugin-linear-genome-view"),m=require("@jbrowse/core/util/tracks"),v=require("mobx"),b=require("react-d3-axis"),w=require("@material-ui/core"),C=require("react-popper"),S=e(require("color")),x=require("@jbrowse/core/data_adapters/dataAdapterCache"),k=e(require("@jbrowse/core/pluggableElementTypes/RpcMethodType")),E=require("@jbrowse/core/data_adapters/BaseAdapter"),T=e(require("@jbrowse/core/pluggableElementTypes/renderers/util/serializableFilterChain")),R=require("@material-ui/core/styles"),M=e(require("@material-ui/core/Button")),O=e(require("@material-ui/core/TextField")),P=e(require("@material-ui/core/Typography")),j=e(require("@material-ui/core/Dialog")),L=e(require("@material-ui/core/DialogContent")),N=e(require("@material-ui/core/DialogTitle")),A=e(require("@material-ui/core/IconButton")),_=e(require("@material-ui/icons/Close")),D=require("react-color"),q=require("@gmod/bbi"),F=require("@jbrowse/core/util/io"),V=require("@jbrowse/core/util/rxjs"),B=e(require("@jbrowse/core/util/simpleFeature")),W=require("rxjs/operators"),I=require("@jbrowse/core/util/stats");function G(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 H(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?G(Object(r),!0).forEach((function(t){J(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):G(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function z(e,t,r,n,o,a,i){try{var l=e[a](i),s=l.value}catch(e){return void r(e)}l.done?t(s):Promise.resolve(s).then(n,o)}function X(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){z(a,n,o,i,l,"next",e)}function l(e){z(a,n,o,i,l,"throw",e)}i(void 0)}))}}function U(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 Q(e,t,r){return t&&Y(e.prototype,t),r&&Y(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function J(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function $(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function K(e){return(K=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Z(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 ee(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=K(e);if(t){var o=K(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return Z(this,r)}}function te(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=K(e)););return e}function re(){return(re="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=te(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}}).apply(this,arguments)}function ne(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,a=[],i=!0,l=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,o=e}finally{try{i||null==r.return||r.return()}finally{if(l)throw o}}return a}}(e,t)||ae(e,t)||function(){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 oe(e){return function(e){if(Array.isArray(e))return ie(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ae(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 ae(e,t){if(e){if("string"==typeof e)return ie(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)?ie(e,t):void 0}}function ie(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 le(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=ae(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}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 a,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,a=e},f:function(){try{i||null==r.return||r.return()}finally{if(l)throw a}}}}function se(e,t){return e(t={exports:{}},t.exports),t.exports}var ce=se((function(e){var t=function(e){var t=Object.prototype,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",a=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 o=Object.create((t&&t.prototype instanceof f?t:f).prototype),a=new x(n||[]);return o._invoke=function(e,t,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return{value:void 0,done:!0}}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var l=w(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,a),o}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 f(){}function p(){}function d(){}var g={};l(g,o,(function(){return this}));var y=Object.getPrototypeOf,h=y&&y(y(k([])));h&&h!==t&&r.call(h,o)&&(g=h);var m=d.prototype=f.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(o,a){function i(){return new t((function(n,i){!function n(o,a,i,l){var s=c(e[o],e,a);if("throw"!==s.type){var u=s.arg,f=u.value;return f&&"object"==typeof f&&r.call(f,"__await")?t.resolve(f.__await).then((function(e){n("next",e,i,l)}),(function(e){n("throw",e,i,l)})):t.resolve(f).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,l)}))}l(s.arg)}(o,a,n,i)}))}return n=n?n.then(i,i):i()}}function w(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,w(e,t),"throw"===t.method))return u;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var n=c(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,u;var o=n.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,u):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,u)}function C(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function x(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(C,this),this.reset(!0)}function k(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,a=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 a.next=a}}return{next:E}}function E(){return{value:void 0,done:!0}}return p.prototype=d,l(m,"constructor",d),l(d,"constructor",p),p.displayName=l(d,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===p||"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(m),e},e.awrap=function(e){return{__await:e}},v(b.prototype),l(b.prototype,a,(function(){return this})),e.AsyncIterator=b,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new b(s(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},v(m),l(m,i,"Generator"),l(m,o,(function(){return this})),l(m,"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 o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),s=r.call(a,"finallyLoc");if(l&&s){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.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 o=n.arg;S(r)}return o}}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)}})),ue=function(e){$(n,l);var t,r=ee(n);function n(){var e;return U(this,n),(e=r.apply(this,arguments)).supportsSVG=!0,e}return Q(n,[{key:"render",value:(t=X(ce.mark((function e(t){var r,o,a,i,l,c,u,f=this;return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getFeatures(t);case 2:return r=e.sent,o=t.height,a=t.bpPerPx,i=ne(t.regions,1),c=((l=i[0]).end-l.start)/a,e.next=8,s.renderToAbstractCanvas(c,o,t,(function(e){return f.draw(e,H(H({},t),{},{features:r}))}));case 8:return u=e.sent,e.next=11,re(K(n.prototype),"render",this).call(this,H(H(H({},t),u),{},{features:r,height:o,width:c}));case 11:return e.abrupt("return",H(H(H({},e.sent),u),{},{features:r,height:o,width:c}));case 13:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),n}();function fe(e){var t=e.features,r=e.bpPerPx,n=e.width,o=e.height,a=e.onMouseLeave,i=void 0===a?function(){}:a,l=e.onMouseMove,s=void 0===l?function(){}:l,c=e.onFeatureClick,d=void 0===c?function(){}:c,g=ne(e.regions,1)[0],y=u.useRef(null);function h(e){var o=0;y.current&&(o=y.current.getBoundingClientRect().left);var a,i,l=e-o,s=g.start+r*(g.reversed?n-l:l),c=le(t.values());try{for(c.s();!(i=c.n()).done;){var u=i.value;if(s<=u.get("end")&&s>=u.get("start")){a=u;break}}}catch(e){c.e(e)}finally{c.f()}return a}return f.createElement("div",{ref:y,"data-testid":"wiggle-rendering-test",onMouseMove:function(e){var t=h(e.clientX);s(e,t?t.id():void 0)},onClick:function(e){var t=h(e.clientX);d(e,t?t.id():void 0)},onMouseLeave:function(e){return i(e)},role:"presentation",className:"WiggleRendering",style:{overflow:"visible",position:"relative",height:o}},f.createElement(p.PrerenderedCanvas,Object.assign({},e)))}var pe=c.observer(fe),de=o.ConfigurationSchema("BigWigAdapter",{bigWigLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bw",locationType:"UriLocation"}}},{explicitlyTyped:!0});function ge(e){var t,r=e.domain,n=e.range,o=void 0===n?[]:n,a=e.scaleType,i=e.pivotValue,l=e.inverted,s=ne(void 0===r?[]:r,2),c=s[0],u=s[1];if(void 0===c||void 0===u)throw new Error("invalid domain");if("linear"===a)t=g.scaleLinear();else if("log"===a)(t=g.scaleLog()).base(2);else{if("quantize"!==a)throw new Error("undefined scaleType");t=g.scaleQuantize()}t.domain(void 0!==i?[c,i,u]:[c,u]),t.nice();var f=ne(o,2);if(void 0===f[0]||void 0===f[1])throw new Error("invalid range");return t.range(l?o.slice().reverse():o),t}function ye(e){return"log"===e?1:0}function he(e){var t=e.scaleType,r=e.domain,n=ne(e.bounds,2),o=n[0],a=n[1],i=ne(r,2),l=i[0],s=i[1];if("linear"===t&&(s<0&&(s=0),l>0&&(l=0)),"log"===t&&(0===l||l>1)&&(l=1),void 0===l||void 0===s)throw new Error("invalid domain supplied to stats function");void 0!==o&&o!==Number.MIN_VALUE&&(l=o),void 0!==a&&a!==Number.MAX_VALUE&&(s=a);var c=function(e){if("linear"===e)return g.scaleLinear();if("log"===e){var t=g.scaleLog();return t.base(2),t}if("quantize"===e)return g.scaleQuantize();throw new Error("undefined scaleType ".concat(e))}(t);return c.domain([l,s]),c.nice(),c.domain()}var me={__proto__:null,getScale:ge,getOrigin:ye,getNiceDomain:he},ve=o.ConfigurationSchema("WiggleRenderer",{color:{type:"color",description:"the color of track, overrides posColor and negColor",defaultValue:"#f0f"},posColor:{type:"color",description:"the color to use when the score is positive",defaultValue:"blue"},negColor:{type:"color",description:"the color to use when the score is negative",defaultValue:"red"},highlightColor:{type:"color",description:"the color of highlights over the wiggle track",defaultValue:"rgba(255,255,0,0.5)"},clipColor:{type:"color",description:"the color of the clipping marker",defaultValue:"red"},renderType:{type:"stringEnum",model:y.types.enumeration("Rendering type",["xyplot","density","line"]),description:"The type of rendering for wiggle data to use",defaultValue:"xyplot"},filled:{type:"boolean",description:"fill in histogram",defaultValue:!0},bicolorPivot:{type:"stringEnum",model:y.types.enumeration("Scale type",["numeric","mean","z_score","none"]),description:"type of bicolor pivot",defaultValue:"numeric"},bicolorPivotValue:{type:"number",defaultValue:0,description:"value to use for bicolor pivot"},summaryScoreMode:{type:"stringEnum",model:y.types.enumeration("Score type",["max","min","avg","whiskers"]),description:"choose whether to use max/min/average or whiskers which combines all three into the same rendering",defaultValue:"whiskers"},displayCrossHatches:{type:"boolean",description:"choose to draw cross hatches (sideways lines)",defaultValue:!1}},{explicitlyTyped:!0}),be=function(e){$(r,ue);var t=ee(r);function r(){return U(this,r),t.apply(this,arguments)}return Q(r,[{key:"draw",value:function(e,t){var r,n=t.features,a=t.bpPerPx,i=t.scaleOpts,l=t.height,s=t.config,c=ne(t.regions,1)[0],u=o.readConfObject(s,"bicolorPivot"),f=o.readConfObject(s,"bicolorPivotValue"),p=o.readConfObject(s,"negColor"),g=o.readConfObject(s,"posColor");if("#f0f"===o.readConfObject(s,"color")){var y=ge(H(H({},i),{},"none"!==u?{pivotValue:f,range:[p,"white",g]}:{range:["white",g]}));r=function(e){return y(e.get("score"))}}else r=function(e){return o.readConfObject(s,"color",{feature:e})};var h,m=le(n.values());try{for(m.s();!(h=m.n()).done;){var v=h.value,b=ne(d.featureSpanPx(v,c,a),2),w=b[0],C=b[1]-w+.3;e.fillStyle=r(v),e.fillRect(w,0,C,l)}}catch(e){m.e(e)}finally{m.f()}}}]),r}(),we=o.ConfigurationSchema("DensityRenderer",{},{baseConfiguration:ve,explicitlyTyped:!0});function Ce(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return+(+e).toPrecision(6)}var Se=function(e){return e.toLocaleString("en-US")},xe=w.makeStyles((function(e){return{tooltip:{position:"absolute",pointerEvents:"none",backgroundColor:w.alpha(e.palette.grey[700],.9),borderRadius:e.shape.borderRadius,color:e.palette.common.white,fontFamily:e.typography.fontFamily,padding:"4px 8px",fontSize:e.typography.pxToRem(10),lineHeight:"".concat(Math.round(14e4)/1e5,"em"),maxWidth:300,wordWrap:"break-word"},hoverVertical:{background:"#333",border:"none",width:1,height:"100%",top:0,cursor:"default",position:"absolute",pointerEvents:"none"}}})),ke=f.forwardRef((function(e,t){var r=e.feature,n=r.get("start"),o=r.get("end"),a=[r.get("refName"),n===o?Se(n):"".concat(Se(n),"..").concat(Se(o))].filter((function(e){return!!e})).join(":");return void 0!==r.get("summary")?f.createElement("div",{ref:t},a,f.createElement("br",null),"Max: ",Ce(r.get("maxScore")),f.createElement("br",null),"Avg: ",Ce(r.get("score")),f.createElement("br",null),"Min: ",Ce(r.get("minScore"))):f.createElement("div",{ref:t},a,f.createElement("br",null),"".concat(Ce(r.get("score"))))})),Ee=c.observer((function(e){var t=e.height,r=e.clientMouseCoord,n=e.offsetMouseCoord,o=e.clientRect,a=e.TooltipContents,i=e.model.featureUnderMouse,l=ne(u.useState(0),2),s=l[0],c=l[1],p=ne(u.useState(null),2),d=p[0],g=p[1],y=xe(),h=u.useMemo((function(){return{getBoundingClientRect:function(){var e=r[0]+s/2+20,t=(null==o?void 0:o.top)||0;return{top:t,left:e,bottom:t,right:e,width:0,height:0,x:e,y:t,toJSON:function(){}}}}}),[null==o?void 0:o.top,r,s]),m=C.usePopper(h,d),v=m.attributes;return i?f.createElement(f.Fragment,null,f.createElement(w.Portal,null,f.createElement("div",Object.assign({ref:g,className:y.tooltip,style:H(H({},m.styles.popper),{},{zIndex:1e5})},v.popper),f.createElement(a,{ref:function(e){c((null==e?void 0:e.getBoundingClientRect().width)||0)},feature:i}))),f.createElement("div",{className:y.hoverVertical,style:{left:n[0],height:t-2*je}})):null})),Te=c.observer((function(e){return f.createElement(Ee,Object.assign({TooltipContents:ke},e))})),Re=c.observer((function(e){return f.createElement(b.Axis,Object.assign({},e.model.ticks,{format:function(e){return e},style:{orient:"left"===e.orientation?b.LEFT:b.RIGHT}}))})),Me=c.observer((function(e){var t=e.model,r=t.stats,n=t.height,o=t.needsScalebar;return f.createElement("div",null,f.createElement(h.BaseLinearDisplayComponent,Object.assign({},e)),r&&o?f.createElement("svg",{style:{position:"absolute",top:0,left:300,pointerEvents:"none",height:n,width:50}},f.createElement(Re,{model:t})):null)})),Oe=u.lazy((function(){return Promise.resolve().then((function(){return He}))})),Pe=u.lazy((function(){return Promise.resolve().then((function(){return Ue}))})),je=5,Le=new Map([["xyplot","XYPlotRenderer"],["density","DensityRenderer"],["line","LinePlotRenderer"]]);function Ne(e,t){return Math.log(t)/Math.log(e)}function Ae(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1.5;return(e>=0?1:-1)*Math.pow(t,1+Math.floor(Ne(t,Math.abs(e))))}var _e=function(e,t){return y.types.compose("LinearWiggleDisplay",h.BaseLinearDisplay,y.types.model({type:y.types.literal("LinearWiggleDisplay"),configuration:o.ConfigurationReference(t),selectedRendering:y.types.optional(y.types.string,""),resolution:y.types.optional(y.types.number,1),fill:y.types.maybe(y.types.boolean),color:y.types.maybe(y.types.string),posColor:y.types.maybe(y.types.string),negColor:y.types.maybe(y.types.string),summaryScoreMode:y.types.maybe(y.types.string),rendererTypeNameState:y.types.maybe(y.types.string),scale:y.types.maybe(y.types.string),autoscale:y.types.maybe(y.types.string),displayCrossHatches:y.types.maybe(y.types.boolean),constraints:y.types.optional(y.types.model({max:y.types.maybe(y.types.number),min:y.types.maybe(y.types.number)}),{})})).volatile((function(){return{statsReady:!1,message:void 0,stats:v.observable({scoreMin:0,scoreMax:50}),statsFetchInProgress:void 0}})).actions((function(e){return{updateStats:function(t){e.stats.scoreMin=t.scoreMin,e.stats.scoreMax=t.scoreMax,e.statsReady=!0},setColor:function(t){e.color=t},setPosColor:function(t){e.posColor=t},setNegColor:function(t){e.negColor=t},setLoading:function(t){var r=e.statsFetchInProgress;void 0===r||r.signal.aborted||r.abort(),e.statsFetchInProgress=t},selectFeature:function(t){var r=d.getSession(e);d.isSelectionContainer(r)&&r.setSelection(t)},setResolution:function(t){e.resolution=t},setFill:function(t){e.fill=t},toggleLogScale:function(){e.scale="log"!==e.scale?"log":"linear"},setScaleType:function(t){e.scale=t},setSummaryScoreMode:function(t){e.summaryScoreMode=t},setAutoscale:function(t){e.autoscale=t},setMaxScore:function(t){e.constraints.max=t},setRendererType:function(t){e.rendererTypeNameState=t},setMinScore:function(t){e.constraints.min=t},toggleCrossHatches:function(){e.displayCrossHatches=!e.displayCrossHatches},setCrossHatches:function(t){e.displayCrossHatches=t}}})).views((function(e){return{get TooltipComponent(){return Te},get adapterTypeName(){return e.adapterConfig.type},get rendererTypeName(){var t=e.rendererTypeNameState||o.getConf(e,"defaultRendering"),r=Le.get(t);if(!r)throw new Error("unknown alignments view name ".concat(t));return r},get filters(){},get scaleType(){return e.scale||o.getConf(e,"scaleType")},get maxScore(){var t=e.constraints.max;return void 0!==t?t:o.getConf(e,"maxScore")},get minScore(){var t=e.constraints.min;return void 0!==t?t:o.getConf(e,"minScore")}}})).views((function(e){return{get rendererConfig(){var t=o.getConf(e,["renderers",e.rendererTypeName])||{};return e.rendererType.configSchema.create(H(H(H(H({},t),{},{filled:e.fill,scaleType:e.scaleType,displayCrossHatches:e.displayCrossHatches,summaryScoreMode:e.summaryScoreMode},e.color?{color:e.color}:{}),e.negColor?{negColor:e.negColor}:{}),e.posColor?{posColor:e.posColor}:{}),y.getEnv(e))}}})).views((function(e){var t=[0,0];return{get filled(){return void 0!==e.fill?e.fill:o.readConfObject(e.rendererConfig,"filled")},get summaryScoreModeSetting(){return e.summaryScoreMode||o.readConfObject(e.rendererConfig,"summaryScoreMode")},get domain(){var r=e.stats,n=e.scaleType,a=e.minScore,i=e.maxScore,l=he({domain:[r.scoreMin,r.scoreMax],bounds:[a,i],scaleType:n}),s=o.getConf(e,"headroom")||0;return"log"===n&&l[1]===Number.MIN_VALUE?[0,Number.MIN_VALUE]:(i===Number.MAX_VALUE&&l[1]>1&&(l[1]=Ae(l[1]+s)),a===Number.MIN_VALUE&&l[0]<-1&&(l[0]=Ae(l[0]-s)),JSON.stringify(t)!==JSON.stringify(l)&&(t=l),t)},get needsScalebar(){return"XYPlotRenderer"===e.rendererTypeName||"LinePlotRenderer"===e.rendererTypeName},get scaleOpts(){return{domain:this.domain,stats:e.stats,autoscaleType:this.autoscaleType,scaleType:e.scaleType,inverted:o.getConf(e,"inverted")}},get canHaveFill(){return"XYPlotRenderer"===e.rendererTypeName},get autoscaleType(){return e.autoscale||o.getConf(e,"autoscale")},get displayCrossHatchesSetting(){return e.displayCrossHatches||o.readConfObject(e.rendererConfig,"displayCrossHatches")}}})).views((function(e){return{get ticks(){var t=e.height,r=ge({scaleType:e.scaleType,domain:e.domain,range:[t-je,je],inverted:o.getConf(e,"inverted")});return b.axisPropsFromTickScale(r,t<50?2:4)}}})).views((function(t){var r=t.renderProps;return{renderProps:function(){var e=r();return H(H({},e),{},{notReady:e.notReady||!t.statsReady,rpcDriverName:t.rpcDriverName,displayModel:t,config:t.rendererConfig,scaleOpts:t.scaleOpts,resolution:t.resolution,height:t.height,ticks:t.ticks,displayCrossHatches:t.displayCrossHatches,filters:t.filters})},get adapterCapabilities(){return e.getAdapterType(t.adapterTypeName).adapterCapabilities},get hasResolution(){return this.adapterCapabilities.includes("hasResolution")},get hasGlobalStats(){return this.adapterCapabilities.includes("hasGlobalStats")}}})).views((function(e){var t=e.trackMenuItems;return{trackMenuItems:function(){return[].concat(oe(t()),oe(e.hasResolution?[{label:"Resolution",subMenu:[{label:"Finer resolution",onClick:function(){e.setResolution(5*e.resolution)}},{label:"Coarser resolution",onClick:function(){e.setResolution(e.resolution/5)}}]},{label:"Summary score mode",subMenu:["min","max","avg","whiskers"].map((function(t){return{label:t,onClick:function(){return e.setSummaryScoreMode(t)}}}))}]:[]),oe(e.canHaveFill?[{label:e.filled?"Turn off histogram fill":"Turn on histogram fill",onClick:function(){e.setFill(!e.filled)}}]:[]),[{label:"log"===e.scaleType?"Set linear scale":"Set log scale",onClick:function(){e.toggleLogScale()}},{type:"checkbox",label:"Draw cross hatches",checked:e.displayCrossHatchesSetting,onClick:function(){e.toggleCrossHatches()}}],oe(Object.keys(o.getConf(e,"renderers")||{}).length>1?[{label:"Renderer type",subMenu:oe(Le.keys()).map((function(t){return{label:t,onClick:function(){return e.setRendererType(t)}}}))}]:[]),[{label:"Autoscale type",subMenu:[["local","Local"]].concat(oe(e.hasGlobalStats?[["global","Global"],["globalsd","Global ± 3σ"]]:[]),[["localsd","Local ± 3σ"]]).map((function(t){var r=ne(t,2),n=r[0];return{label:r[1],onClick:function(){e.setAutoscale(n)}}}))},{label:"Set min/max score",onClick:function(){d.getSession(e).queueDialog((function(t){return[Oe,{model:e,handleClose:t}]}))}},{label:"Set color",onClick:function(){d.getSession(e).queueDialog((function(t){return[Pe,{model:e,handleClose:t}]}))}}])}}})).actions((function(e){var t=e.reload,r=e.renderSvg;function n(e){return a.apply(this,arguments)}function a(){return(a=X(ce.mark((function t(r){var n,a,i,l,s,c,u,f,p,g,h,v,b,w,C,S,x,k;return ce.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=d.getSession(e),a=n.rpcManager,i=o.getConf(e,"numStdDev")||3,l=e.adapterConfig,s=e.autoscaleType,c=m.getRpcSessionId(e),u=H({sessionId:c,adapterConfig:l,statusCallback:function(t){y.isAlive(e)&&e.setMessage(t)}},r),"global"!==s&&"globalsd"!==s){t.next=11;break}return t.next=8,a.call(c,"WiggleGetGlobalStats",u);case 8:return p=(f=t.sent).scoreMin,g=f.scoreMean,h=f.scoreStdDev,t.abrupt("return","globalsd"===s?H(H({},f),{},{scoreMin:p>=0?0:g-i*h,scoreMax:g+i*h}):f);case 11:if("local"!==s&&"localsd"!==s){t.next=18;break}return v=d.getContainingView(e),b=v.dynamicBlocks,w=v.bpPerPx,t.next=15,a.call(c,"WiggleGetMultiRegionStats",H(H({},u),{},{regions:b.contentBlocks.map((function(e){var t=e.start,r=e.end;return H(H({},JSON.parse(JSON.stringify(e))),{},{start:Math.floor(t),end:Math.ceil(r)})})),bpPerPx:w}));case 15:return S=(C=t.sent).scoreMin,x=C.scoreMean,k=C.scoreStdDev,t.abrupt("return","localsd"===s?H(H({},C),{},{scoreMin:S>=0?0:x-i*k,scoreMax:x+i*k}):C);case 18:if("zscale"!==s){t.next=20;break}return t.abrupt("return",a.call(c,"WiggleGetGlobalStats",u));case 20:throw new Error("invalid autoscaleType '".concat(s,"'"));case 21:case"end":return t.stop()}}),t)})))).apply(this,arguments)}return{reload:function(){return X(ce.mark((function r(){var o,a;return ce.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return e.setError(),o=new AbortController,r.prev=2,r.next=5,n({signal:o.signal,filters:e.filters});case 5:a=r.sent,y.isAlive(e)&&(e.updateStats(a),t()),r.next=12;break;case 9:r.prev=9,r.t0=r.catch(2),e.setError(r.t0);case 12:case"end":return r.stop()}}),r,null,[[2,9]])})))()},afterAttach:function(){y.addDisposer(e,v.autorun(X(ce.mark((function t(){var r,o,a;return ce.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,r=new AbortController,o=d.getContainingView(e),e.setLoading(r),o.initialized){t.next=6;break}return t.abrupt("return");case 6:if(e.estimatedStatsReady){t.next=8;break}return t.abrupt("return");case 8:if(!e.regionTooLarge){t.next=10;break}return t.abrupt("return");case 10:return t.next=12,n({signal:r.signal,filters:e.filters});case 12:a=t.sent,y.isAlive(e)&&e.updateStats(a),t.next=19;break;case 16:t.prev=16,t.t0=t.catch(0),!d.isAbortException(t.t0)&&y.isAlive(e)&&(console.error(t.t0),e.setError(t.t0));case 19:case"end":return t.stop()}}),t,null,[[0,16]])}))),{delay:1e3}))},renderSvg:function(t){return X(ce.mark((function n(){var o,a,i,l;return ce.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,v.when((function(){return e.statsReady&&!!e.regionCannotBeRenderedText}));case 2:return o=e.needsScalebar,a=e.stats,i=d.getContainingView(e),l=i.offsetPx,n.t0=f,n.t1=f.Fragment,n.t2=f,n.t3={id:"snpcov"},n.next=10,r(t);case 10:return n.t4=n.sent,n.t5=n.t2.createElement.call(n.t2,"g",n.t3,n.t4),n.t6=o&&a?f.createElement("g",{transform:"translate(".concat(Math.max(-l,0),")")},f.createElement(Re,{model:e,orientation:"left"})):null,n.abrupt("return",n.t0.createElement.call(n.t0,n.t1,null,n.t5,n.t6));case 14:case"end":return n.stop()}}),n)})))()}}}))},De=function(e){$(r,ue);var t=ee(r);function r(){return U(this,r),t.apply(this,arguments)}return Q(r,[{key:"draw",value:function(e,t){var r=t.features,n=t.bpPerPx,a=t.scaleOpts,i=t.height,l=t.config,s=t.ticks.values,c=t.displayCrossHatches,u=ne(t.regions,1)[0],f=(u.end-u.start)/n,p=je,g=i-2*p,y=o.readConfObject(l,"bicolorPivotValue"),h=o.readConfObject(l,"negColor"),m=o.readConfObject(l,"posColor"),v=o.readConfObject(l,"filled"),b=o.readConfObject(l,"clipColor"),w=o.readConfObject(l,"highlightColor"),C=o.readConfObject(l,"summaryScoreMode"),x=ge(H(H({},a),{},{range:[0,g]})),k=ye(a.scaleType),E=ne(x.domain(),2),T=E[0],R=E[1],M=function(e){return g-(x(e)||0)+p},O=function(e){return M(k)-M(e)},P="#f0f"===o.readConfObject(l,"color")?function(e,t){return t<y?h:m}:function(e,t){return o.readConfObject(l,"color",{feature:e})};e.strokeStyle="grey",e.moveTo(0,M(0)),e.lineTo(f,M(0)),e.stroke();var j,L=T<y&&R>y,N=le(r.values());try{for(N.s();!(j=N.n()).done;){var A=j.value,_=ne(d.featureSpanPx(A,u,n),2),D=_[0],q=_[1],F=A.get("score"),V=A.get("maxScore"),B=A.get("minScore"),W=F<T,I=F>R,G=q-D+.4,z=A.get("summary");if("max"===C)e.fillStyle=P(A,F=z?V:F),e.fillRect(D,M(F),G,v?O(F):1);else if("min"===C)e.fillStyle=P(A,F=z?B:F),e.fillRect(D,M(F),G,v?O(F):1);else if("whiskers"===C){var X=P(A,F);z&&(e.fillStyle=L?P(A,V):S(X).lighten(.6).toString(),e.fillRect(D,M(V),G,v?O(V)-O(F):1)),e.fillStyle=L&&z?S(P(A,V)).mix(S(P(A,B))):X,e.fillRect(D,M(F),G,v?O(F)-(z?O(B):0):1),z&&(e.fillStyle=L?P(A,B):S(X).darken(.6).toString(),e.fillRect(D,M(B),G,v?O(B):1))}else e.fillStyle=P(A,F),e.fillRect(D,M(F),G,v?O(F):1);I?(e.fillStyle=b,e.fillRect(D,0,G,4)):W&&"log"!==a.scaleType&&(e.fillStyle=b,e.fillRect(D,i-4,G,4)),A.get("highlighted")&&(e.fillStyle=w,e.fillRect(D,0,G,g))}}catch(e){N.e(e)}finally{N.f()}c&&(e.lineWidth=1,e.strokeStyle="rgba(200,200,200,0.8)",s.forEach((function(t){e.beginPath(),e.moveTo(0,Math.round(M(t))),e.lineTo(f,Math.round(M(t))),e.stroke()})))}}]),r}(),qe=o.ConfigurationSchema("XYPlotRenderer",{},{baseConfiguration:ve,explicitlyTyped:!0}),Fe=function(e){$(r,ue);var t=ee(r);function r(){return U(this,r),t.apply(this,arguments)}return Q(r,[{key:"draw",value:function(e,t){var r,n=t.features,a=t.bpPerPx,i=t.scaleOpts,l=t.height,s=t.ticks.values,c=t.displayCrossHatches,u=t.config,f=ne(t.regions,1)[0],p=(f.end-f.start)/a,g=je,y=l-2*g,h=o.readConfObject(u,"clipColor"),m=o.readConfObject(u,"highlightColor"),v=ge(H(H({},i),{},{range:[0,y]})),b=ne(v.domain(),2),w=b[0],C=b[1],S=function(e){return y-v(e)+g},x="#f0f"===o.readConfObject(u,"color")?function(){return"grey"}:function(e){return o.readConfObject(u,"color",{feature:e})};e.strokeStyle="grey",e.moveTo(0,S(0)),e.lineTo(p,S(0)),e.stroke();var k,E=le(n.values());try{for(E.s();!(k=E.n()).done;){var T=k.value,R=ne(d.featureSpanPx(T,f,a),2),M=R[0],O=R[1],P=T.get("score"),j=P<w,L=P>C,N=O-M+.3,A=x(T);e.strokeStyle=A,e.beginPath(),f.reversed?(e.moveTo(O,S(void 0!==r?r:P)),e.lineTo(O,S(P)),e.lineTo(M,S(P))):(e.moveTo(M,S(void 0!==r?r:P)),e.lineTo(M,S(P)),e.lineTo(O,S(P))),e.stroke(),r=P,L?(e.fillStyle=h,e.fillRect(M,0,N,4)):j&&"log"!==i.scaleType&&(e.fillStyle=h,e.fillRect(M,y-4,N,y)),T.get("highlighted")&&(e.fillStyle=m,e.fillRect(M,0,N,y))}}catch(e){E.e(e)}finally{E.f()}c&&(e.lineWidth=1,e.strokeStyle="rgba(200,200,200,0.8)",s.forEach((function(t){e.beginPath(),e.moveTo(0,Math.round(S(t))),e.lineTo(p,Math.round(S(t))),e.stroke()})))}}]),r}(),Ve=o.ConfigurationSchema("LinePlotRenderer",{},{baseConfiguration:ve,explicitlyTyped:!0}),Be=function(e){$(o,k);var t,r,n=ee(o);function o(){var e;return U(this,o),(e=n.apply(this,arguments)).name="WiggleGetGlobalStats",e}return Q(o,[{key:"deserializeArguments",value:(r=X(ce.mark((function e(t,r){return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re(K(o.prototype),"deserializeArguments",this).call(this,t,r);case 2:return e.abrupt("return",H(H({},e.sent),{},{filters:t.filters?new T({filters:t.filters}):void 0}));case 4:case"end":return e.stop()}}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"execute",value:(t=X(ce.mark((function e(t,r){var n,o,a,i;return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.deserializeArguments(t,r);case 2:return o=(n=e.sent).adapterConfig,a=n.sessionId,e.next=6,x.getAdapter(this.pluginManager,a,o);case 6:if(!((i=e.sent.dataAdapter)instanceof E.BaseFeatureDataAdapter)){e.next=12;break}if(!i.capabilities.includes("hasGlobalStats")){e.next=11;break}return e.abrupt("return",i.getGlobalStats(n));case 11:throw new Error("Data adapter does not support global stats");case 12:throw new Error("Data adapter not found");case 13:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})}]),o}(),We=function(e){$(a,k);var t,r,n,o=ee(a);function a(){var e;return U(this,a),(e=o.apply(this,arguments)).name="WiggleGetMultiRegionStats",e}return Q(a,[{key:"deserializeArguments",value:(n=X(ce.mark((function e(t,r){return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re(K(a.prototype),"deserializeArguments",this).call(this,t,r);case 2:return e.abrupt("return",H(H({},e.sent),{},{filters:t.filters?new T({filters:t.filters}):void 0}));case 4:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"serializeArguments",value:(r=X(ce.mark((function e(t,r){var n,o,i,l;return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=null===(n=this.pluginManager.rootModel)||void 0===n||null===(o=n.session)||void 0===o?void 0:o.assemblyManager){e.next=3;break}return e.abrupt("return",t);case 3:return e.next=5,d.renameRegionsIfNeeded(i,H(H({},t),{},{filters:t.filters&&t.filters.toJSON().filters}));case 5:return l=e.sent,e.abrupt("return",re(K(a.prototype),"serializeArguments",this).call(this,l,r));case 7:case"end":return e.stop()}}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"execute",value:(t=X(ce.mark((function e(t,r){var n,o,a,i,l;return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.deserializeArguments(t,r);case 2:return o=(n=e.sent).regions,a=n.adapterConfig,i=n.sessionId,e.next=6,x.getAdapter(this.pluginManager,i,a);case 6:if(!((l=e.sent.dataAdapter)instanceof E.BaseFeatureDataAdapter)){e.next=10;break}return e.abrupt("return",l.getMultiRegionStats(o,n));case 10:throw new Error("Data adapter not found");case 11:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})}]),a}(),Ie=function(e){$(s,n);var l=ee(s);function s(){var e;return U(this,s),(e=l.apply(this,arguments)).name="WigglePlugin",e.exports={LinearWiggleDisplayReactComponent:Me,XYPlotRendererReactComponent:pe,XYPlotRenderer:De,xyPlotRendererConfigSchema:qe,utils:me,WiggleBaseRenderer:ue,linearWiggleDisplayModelFactory:_e},e}return Q(s,[{key:"install",value:function(e){e.addTrackType((function(){var t=o.ConfigurationSchema("QuantitativeTrack",{},{baseConfiguration:a.createBaseTrackConfig(e)});return new r({name:"QuantitativeTrack",configSchema:t,stateModel:a.createBaseTrackModel(e,"QuantitativeTrack",t)})})),e.addDisplayType((function(){var t=function(e){var t=e.getRendererType("XYPlotRenderer").configSchema,r=e.getRendererType("DensityRenderer").configSchema,n=e.getRendererType("LinePlotRenderer").configSchema;return o.ConfigurationSchema("LinearWiggleDisplay",{autoscale:{type:"stringEnum",defaultValue:"local",model:y.types.enumeration("Autoscale type",["global","local","globalsd","localsd","zscore"]),description:"global/local using their min/max values or w/ standard deviations (globalsd/localsd)"},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},numStdDev:{type:"number",description:"number of standard deviations to use for autoscale types globalsd or localsd",defaultValue:3},scaleType:{type:"stringEnum",model:y.types.enumeration("Scale type",["linear","log"]),description:"The type of scale to use",defaultValue:"linear"},inverted:{type:"boolean",description:"draw upside down",defaultValue:!1},defaultRendering:{type:"stringEnum",model:y.types.enumeration("Rendering",["density","xyplot","line"]),defaultValue:"xyplot"},renderers:o.ConfigurationSchema("RenderersConfiguration",{DensityRenderer:r,XYPlotRenderer:t,LinePlotRenderer:n})},{baseConfiguration:h.baseLinearDisplayConfigSchema,explicitlyTyped:!0})}(e);return new i({name:"LinearWiggleDisplay",configSchema:t,stateModel:_e(e,t),trackType:"QuantitativeTrack",viewType:"LinearGenomeView",ReactComponent:Me})})),e.addAdapterType((function(){return new t({name:"BigWigAdapter",configSchema:de,adapterCapabilities:["hasResolution","hasLocalStats","hasGlobalStats"],getAdapterClass:function(){return Promise.resolve().then((function(){return Qe})).then((function(e){return e.default}))}})})),e.addToExtensionPoint("Core-guessAdapterForLocation",(function(e){return function(t,r,n){var o=m.getFileName(t),a={type:"BigWigAdapter",bigWigLocation:t};return/\.(bw|bigwig)$/i.test(o)&&!n||"BigWigAdapter"===n?a:e(t,r,n)}})),e.addToExtensionPoint("Core-guessTrackTypeForLocation",(function(e){return function(t){return"BigWigAdapter"===t?"QuantitativeTrack":e(t)}})),e.addRendererType((function(){return new be({name:"DensityRenderer",ReactComponent:pe,configSchema:we,pluginManager:e})})),e.addRendererType((function(){return new Fe({name:"LinePlotRenderer",ReactComponent:pe,configSchema:Ve,pluginManager:e})})),e.addRendererType((function(){return new De({name:"XYPlotRenderer",ReactComponent:pe,configSchema:qe,pluginManager:e})})),e.addRpcMethod((function(){return new Be(e)})),e.addRpcMethod((function(){return new We(e)}))}}]),s}(),Ge=R.makeStyles((function(e){return{root:{},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}})),He={__proto__:null,default:function(e){var t=Ge(),r=e.model,n=e.handleClose,o=r.minScore,a=r.maxScore,i=r.scaleType,l=ne(u.useState("".concat(o!==Number.MIN_VALUE?o:"")),2),s=l[0],c=l[1],p=ne(u.useState("".concat(a!==Number.MAX_VALUE?a:"")),2),d=p[0],g=p[1],y=!(""!==s&&""!==d&&!Number.isNaN(+s)&&!Number.isNaN(+d))||+d>+s,h=!("log"===i&&""!==s&&!Number.isNaN(+s))||+s>0;return f.createElement(j,{open:!0,onClose:n},f.createElement(N,null,"Set min/max score for track",f.createElement(A,{className:t.closeButton,onClick:n},f.createElement(_,null))),f.createElement(L,{style:{overflowX:"hidden"}},f.createElement("div",{className:t.root},f.createElement(P,null,"Enter min/max score: "),y?null:f.createElement(P,{color:"error"},"Max is greater than or equal to min"),h?null:f.createElement(P,{color:"error"},"Min score should be greater than 0 for log scale"),f.createElement(O,{value:s,onChange:function(e){c(e.target.value)},placeholder:"Enter min score"}),f.createElement(O,{value:d,onChange:function(e){g(e.target.value)},placeholder:"Enter max score"}),f.createElement(M,{variant:"contained",color:"primary",type:"submit",style:{marginLeft:20},disabled:!y,onClick:function(){r.setMinScore(""===s||Number.isNaN(+s)?void 0:+s),r.setMaxScore(""===d||Number.isNaN(+d)?void 0:+d),n()}},"Submit"))))}},ze=w.makeStyles((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function Xe(e){if(e instanceof Object){var t=e.g,r=e.b;return"rgb(".concat(e.r,",").concat(t,",").concat(r,")")}return e}var Ue={__proto__:null,default:function(e){var t=e.model,r=e.handleClose,n=ze(),o=ne(u.useState(!1),2),a=o[0],i=o[1];return f.createElement(w.Dialog,{open:!0,onClose:r},f.createElement(w.DialogTitle,null,"Select either an overall color, or the positive/negative colors. Note that density renderers only work properly with positive/negative colors",f.createElement(w.IconButton,{"aria-label":"close",className:n.closeButton,onClick:r},f.createElement(_,null))),f.createElement(w.DialogContent,null,f.createElement(w.FormControlLabel,{checked:!a,onClick:function(){return i(!1)},control:f.createElement(w.Radio,null),label:"Overall color"}),f.createElement(w.FormControlLabel,{checked:a,onClick:function(){return i(!0)},control:f.createElement(w.Radio,null),label:"Positive/negative color"}),a?f.createElement(f.Fragment,null,f.createElement(w.Typography,null,"Positive color"),f.createElement(D.CompactPicker,{onChange:function(e){t.setPosColor(Xe(e.rgb)),t.setColor(void 0)}}),f.createElement(w.Typography,null,"Negative color"),f.createElement(D.CompactPicker,{onChange:function(e){t.setNegColor(Xe(e.rgb)),t.setColor(void 0)}})):f.createElement(f.Fragment,null,f.createElement(w.Typography,null,"Overall color"),f.createElement(D.CompactPicker,{onChange:function(e){t.setColor(Xe(e.rgb))}}))),f.createElement(w.DialogActions,null,f.createElement(w.Button,{onClick:function(){t.setPosColor(void 0),t.setNegColor(void 0),t.setColor(void 0)},color:"secondary",variant:"contained"},"Restore default"),f.createElement(w.Button,{variant:"contained",color:"primary",type:"submit",onClick:function(){r()}},"Submit")))}},Ye=function(e){$(s,E.BaseFeatureDataAdapter);var t,r,n,a,i,l=ee(s);function s(e,t,r){var n;return U(this,s),(n=l.call(this,e,t,r)).bigwig=new q.BigWig({filehandle:F.openLocation(o.readConfObject(e,"bigWigLocation"),n.pluginManager)}),n}return Q(s,[{key:"setup",value:(i=X(ce.mark((function e(t){var r,n=this;return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",d.updateStatus("Downloading bigwig header",void 0===(r=(t||{}).statusCallback)?function(){}:r,(function(){return n.bigwig.getHeader(t)})));case 2:case"end":return e.stop()}}),e)}))),function(e){return i.apply(this,arguments)})},{key:"getRefNames",value:(a=X(ce.mark((function e(t){return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.setup(t);case 2:return e.abrupt("return",Object.keys(e.sent.refsByName));case 5:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"refIdToName",value:(n=X(ce.mark((function e(t){var r;return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.setup();case 2:return e.abrupt("return",null===(r=e.sent.refsByNumber[t])||void 0===r?void 0:r.name);case 5:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"getGlobalStats",value:(r=X(ce.mark((function e(t){return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.setup(t);case 2:return e.abrupt("return",I.rectifyStats(e.sent.totalSummary));case 5:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"getFeatures",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.refName,o=e.start,a=e.end,i=r.bpPerPx,l=void 0===i?0:i,s=r.signal,c=r.resolution,u=void 0===c?1:c,f=r.statusCallback,p=void 0===f?function(){}:f;return V.ObservableCreate(function(){var e=X(ce.mark((function e(i){return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return p("Downloading bigwig data"),e.next=3,t.bigwig.getFeatureStream(n,o,a,H(H({},r),{},{basesPerSpan:l/u}));case 3:e.sent.pipe(W.mergeAll(),W.map((function(e){return new B({id:"".concat(n,":").concat(e.start,"-").concat(e.end),data:H(H({},e),{},{refName:n})})}))).subscribe(i);case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),s)}},{key:"estimateRegionsStats",value:(t=X(ce.mark((function e(t){return ce.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{featureDensity:0});case 1:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"freeResources",value:function(){}}]),s}();Ye.capabilities=["hasResolution","hasLocalStats","hasGlobalStats"];var Qe={__proto__:null,default:Ye};exports.LinearWiggleDisplayReactComponent=Me,exports.Tooltip=Ee,exports.WiggleBaseRenderer=ue,exports.WiggleRendering=pe,exports.YSCALEBAR_LABEL_OFFSET=je,exports.default=Ie,exports.getNiceDomain=he,exports.getOrigin=ye,exports.getScale=ge,exports.linearWiggleDisplayModelFactory=_e;
|
|
2
2
|
//# sourceMappingURL=plugin-wiggle.cjs.production.min.js.map
|