auspice
Version:
Web app for visualizing pathogen evolution
1 lines • 34.1 kB
JavaScript
;(self.webpackChunkauspice=self.webpackChunkauspice||[]).push([[163],{50085(e,t,n){n.d(t,{j:()=>a,m:()=>o});var r=n(4379),i=n(40952),a=function(e,t,n,i){var a=.36,o=.88,s=.64;if(t){var l=!0+e.includes("entropy")+e.includes("frequencies")-1;0===l?(o=1,s=1):1===l?(o=.7,s=.7,a=.3):(o=.5,s=.5,a=.25)}return{full:(0,r.I)({horizontal:1,vertical:o,availableWidth:n,availableHeight:i}),grid:(0,r.I)({horizontal:.5,vertical:s,availableWidth:n,availableHeight:i}),chartFrequencies:(0,r.I)({horizontal:1,vertical:a,availableWidth:n,availableHeight:i,minHeight:200}),chartEntropy:(0,r.I)({horizontal:1,vertical:a,availableWidth:n,availableHeight:i,minHeight:300})}},o=function(e,t,n,r){var a,o=e.width,s=e.height,l=(a=o,t?a>1500?500:a>1e3?400:310:i.zR+i.wP),c=n?l:0;return r||(o-=c),{overlayStyles:{position:"absolute",top:0,bottom:0,right:0,display:"block",width:o,height:s,left:n?c:0,opacity:n?1:0,visibility:n?"visible":"hidden",zIndex:8e3,backgroundColor:"rgba(0,0,0,0.5)",cursor:"pointer",overflow:"scroll",transition:n?"visibility 0s ease-out, left 0.3s ease-out, opacity 0.3s ease-out":"left 0.3s ease-out, opacity 0.3s ease-out, visibility 0s ease-out 0.3s"},availableWidth:o,availableHeight:s,sidebarWidth:l}}},98163(e,t,n){n.r(t),n.d(t,{default:()=>Oe});var r=n(78281),i=n(2122),a=n(77313),o=n(532),s=n(28355),l=(a.Ay.div.withConfig({displayName:"styles__IntroParagraph",componentId:"sc-dfonix-0"})(["max-width:60%;padding-top:20px;margin:auto;font-size:16px;"]),function(e){return e&&e.startsWith("Error")?"#e31a1c":e&&e.startsWith("Warning")?"#fd8d3c":"inProgress"===e?"#41b6c4":"success"===e?"#41ab5d":"notAttempted"===e?"#bdbdbd":"internalError"===e?"#8c6bb1":""}),c=(0,a.Ay)(s.reA).withConfig({displayName:"styles__FileIcon",componentId:"sc-dfonix-1"})(["fill:",";"],function(e){return e.dragActive?"rgba(255, 255, 255, 0)":"#41ab5d"}),u=a.Ay.div.withConfig({displayName:"styles__FilePickerContainer",componentId:"sc-dfonix-2"})(["display:flex;flex-direction:column;max-width:50%;margin:auto;margin-top:40px;& h4{margin:20px;}"]),d=a.Ay.div.withConfig({displayName:"styles__FilePickerHeader",componentId:"sc-dfonix-3"})(["display:flex;margin-bottom:0;padding-bottom:0;font-size:24px;font-weight:300;"]),f=a.Ay.div.withConfig({displayName:"styles__DraggedText",componentId:"sc-dfonix-4"})(["display:flex;flex-direction:column;font-size:20px;margin-left:20px;"]),p=a.Ay.div.withConfig({displayName:"styles__FilePickerBody",componentId:"sc-dfonix-5"})(["display:flex;flex-direction:row;justify-content:center;align-items:center;width:100%;min-height:20vw;min-height:200px;border-radius:5px;border:4px dashed rgba(173,181,189,0.75);color:rgb(73,80,87);background-color:",";box-shadow:none;& *{pointer-events:none;}"],function(e){return e.dragActive?"#d9f0a3":"rgba(255, 255, 255, 0)"}),m=(a.Ay.div.withConfig({displayName:"styles__DropContainerOuter",componentId:"sc-dfonix-6"})(["max-width:50%;margin:auto;margin-top:40px;background-color:#fff7bc;width:50%;height:150px;display:flex;flex-direction:column;justify-content:space-evenly;"]),a.Ay.div.withConfig({displayName:"styles__DropContainerInner",componentId:"sc-dfonix-7"})(["text-align:center;font-size:24px;color:#fc4e2a;"]),a.Ay.div.withConfig({displayName:"styles__ErrorContainer",componentId:"sc-dfonix-8"})(["max-width:50%;margin:auto;margin-top:40px;background-color:#fc4e2a;color:white;text-align:center;font-size:24px;"])),h=(0,a.Ay)(o.A).withConfig({displayName:"styles__HoverBox",componentId:"sc-dfonix-9"})(["max-width:40vh;white-space:normal;line-height:1.2;padding:21px !important;& > br{margin-bottom:10px;}"]),y=a.Ay.div.withConfig({displayName:"styles__IntroOuter",componentId:"sc-dfonix-10"})(["display:flex;flex-direction:row;justify-content:center;padding-top:50px;width:100%;"]),v=a.Ay.div.withConfig({displayName:"styles__IntroInner",componentId:"sc-dfonix-11"})(["text-align:center;max-width:800px;font-size:18px;font-weight:300;line-height:2.5rem;color:#737373;& > em{font-weight:400;font-style:normal;}& > br{margin-bottom:15px;}"]),g=function(e){var t=e.children;return r.createElement(y,null,r.createElement(v,null,t))},b=a.Ay.div.withConfig({displayName:"styles__ExperimentalBanner",componentId:"sc-dfonix-12"})(["height:100px;background-color:#fd8d3c;color:white;font-size:24px;font-weight:300;display:flex;flex-direction:column;justify-content:center;text-align:center;padding:10px 80px;& a{color:inherit;}& a:hover{color:inherit;}"]),w=a.Ay.div.withConfig({displayName:"styles__GridContainer",componentId:"sc-dfonix-13"})(["margin:auto;margin-top:20px;margin-bottom:10px;display:grid;grid-template-columns:3fr 2fr;gap:40px 20px;font-size:16px;max-width:800px;border:1px solid rgba(173,181,189,0.75);padding:10px;"]),x=a.Ay.div.withConfig({displayName:"styles__SlideDescription",componentId:"sc-dfonix-14"})(["cursor:pointer;max-height:120px;overflow:hidden;"]),E=a.Ay.div.withConfig({displayName:"styles__SlideDatasetContainer",componentId:"sc-dfonix-15"})(["flex:1 0 30%;cursor:pointer;display:flex;flex-direction:column;flex-wrap:no-wrap;"]),k=a.Ay.div.withConfig({displayName:"styles__SlideDataset",componentId:"sc-dfonix-16"})([""]),S=a.Ay.div.withConfig({displayName:"styles__GridHeaderCell",componentId:"sc-dfonix-17"})(["font-size:18px;font-weight:600;"]),_=function(e){var t,n=e.num,i=e.status,a=e.datasetType,o=e.hoverContent,s=e.width,c=void 0===s?40:s,u="white",d="hover_".concat(n,"_").concat(a);if("main"===a)t=r.createElement("g",{id:"Group",stroke:"none",strokeWidth:"2",fill:"none",fillRule:"evenodd",transform:"scale(0.27 0.32) translate(5 5)"},r.createElement("polyline",{id:"Path-3",stroke:u,points:"2.94117647 12.8571429 2.94117647 18.6083984 17.8459616 18.6083984 17.8459616 16.0260882 24.870031 16.0260882"}),r.createElement("polyline",{id:"Path-4",stroke:u,points:"17.8500004 18.5714286 17.8500004 20 25.0119374 20"}),r.createElement("polyline",{id:"Path-5",stroke:u,points:"2.94117647 12.8571429 3.00303284 7.21191058 10.2360102 7.11220045 10.4159559 2.99881623 17.1561911 2.93803403 17.1561911 0 24.313534 0"}),r.createElement("polyline",{id:"Path-6",stroke:u,points:"17.1599998 2.85714286 17.1599998 4.28571429 24.512941 4.28571429"}),r.createElement("path",{d:"M0,12.8571429 L2.94117647,12.8571429",id:"Path-6",stroke:u}),r.createElement("polyline",{id:"Path-7",stroke:u,points:"10.2941176 7.14285714 10.2941176 11.4285714 24.5454676 11.4285714"}));else if("rootSeq"===a)t=r.createElement("g",null,r.createElement("text",{x:"2",y:"4.5",fontSize:"4px",fill:"white"},"A T"),r.createElement("text",{x:"2",y:"8.5",fontSize:"4px",fill:"white"},"C G"));else{if("frequencies"!==a)return console.error("Unknown datasetType ".concat(a)),null;t=r.createElement("g",null,r.createElement("mask",{id:"mask-2",fill:"white"},r.createElement("circle",{id:"path-1",cx:"5",cy:"5",r:"5"})),r.createElement("g",{mask:"url(#mask-2)",fill:"#FFFFFF",fillOpacity:"0.33"},r.createElement("g",{transform:"translate(-1.000000, 0.000000)"},r.createElement("path",{id:"middle_slice",d:"M4.52213324,3.60368881 C5.27922385,1.52902719 7.43852464,0.327797589 11.0000356,5.68434189e-14 L11.0000356,10.001328 L1,10.001328 L0.917926834,7.55792371 C2.54956115,7.03501049 3.75096328,5.71693219 4.52213324,3.60368881 Z"}),r.createElement("path",{id:"lower_slice",d:"M5.86327501,5.5 C7.18776688,3.72396 8.90002041,4.07834961 11.0000356,6.56316883 L11.0000356,10.001328 L1,10.001328 L1,7.71195799 C2.91769148,8.01335933 4.53878315,7.27604 5.86327501,5.5 Z"}))))}return r.createElement("div",{style:{paddingLeft:"5px"}},r.createElement("svg",{width:c,height:c,viewBox:"0 0 10 10 ","data-tip":!0,"data-for":d},r.createElement("circle",{cx:"5",cy:"5",r:"5",fill:l(i)}),t),r.createElement(h,{place:"bottom",effect:"solid",id:d},o))},O=a.Ay.div.withConfig({displayName:"styles__ButtonContainer",componentId:"sc-dfonix-18"})(["display:flex;justify-content:center;"]),j=a.Ay.button.withConfig({displayName:"styles__Button",componentId:"sc-dfonix-19"})(["border:none;padding:5px 10px;background-color:#41b6c4;color:white;font-size:24px;border-radius:5px;"]),N=n(34713),C=n(2527),A=n(99438),P=n(1092);function T(e){return T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},T(e)}function I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function D(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?I(Object(n),!0).forEach(function(t){q(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):I(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function q(e,t,n){return(t=function(e){var t=function(e){if("object"!=T(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=T(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==T(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function z(e,t,n,r,i,a,o){try{var s=e[a](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,i)}var R=function(e){var t=e.lines;return r.createElement("div",null,t.map(function(e){return r.createElement("p",{key:e},e)}))},L=function(e){return e&&e.startsWith("Error")||e&&e.startsWith("Warning")?e:"inProgress"===e?"This file is being fetched as we speak...":"success"===e?"Success! This file exists and has been fetched. Note that there may still be subtle errors with the data, so we still suggest previewing the slide to double check.":"notAttempted"===e?"Status: We haven't attempted to fetch this file, as we are either waiting on the main JSON or this file is not necessary.":"Oops, there has been some internal error here! Please consider letting us know about this."},H=function(e){var t=e.slide,n=e.name,i=e.statuses,a=e.showSlide,o=t.slideNumber;return r.createElement("div",null,r.createElement("div",{style:{display:"flex",justifyContent:"space-between",cursor:"pointer"},onClick:a},r.createElement(k,{"data-tip":!0,"data-for":"dataset_".concat(o,"_").concat(n)},n),r.createElement("div",{style:{display:"flex",flexDirection:"row"}},r.createElement(_,{num:o,datasetType:"main",status:null==i?void 0:i.main,hoverContent:r.createElement(R,{lines:["The main dataset (auspice) JSON, which is necessary for this slide to display properly.",L(null==i?void 0:i.main)]})}),r.createElement(_,{num:o,datasetType:"rootSeq",status:null==i?void 0:i.rootSeq,hoverContent:r.createElement(R,{lines:["An optional (sidecar) JSON which defines the root sequence. This is only needed for certain use-cases and the absence of this file is relatively normal.",L(null==i?void 0:i.rootSeq)]})}),r.createElement(_,{num:o,datasetType:"frequencies",status:null==i?void 0:i.frequencies,hoverContent:r.createElement(R,{lines:["The frequencies JSON, which is only fetched when the dataset asks for the frequencies panel to be displayed.",L(null==i?void 0:i.frequencies)]})}))),r.createElement(h,{place:"bottom",effect:"solid",key:"hover_dataset_".concat(n),id:"dataset_".concat(o,"_").concat(n)},r.createElement(R,{lines:"success"===(null==i?void 0:i.main)?["This dataset looks like it has loaded OK","The query parameters (which control how the dataset is displayed) are ".concat(t.queryParams.toString()),"Click here to view this slide full screen in order to check how the slide will be displayed in a narrative"]:["This dataset does't appear to be available or loaded correctly (hover over icons to the right for more details)","You can still click here to load the narrative slide but errors are to be expected!"]})))},F=function(e){var t=e.slide,n=e.datasetResponses,i=e.showSlide,a=t.associatedDatasetNames,o=!!a[1];return r.createElement(E,null,o&&r.createElement("div",null,"Tanglegram"),r.createElement(H,{slide:t,key:a[0],name:a[0],statuses:n[a[0]]||{},showSlide:i}),o&&r.createElement(H,{slide:t,key:a[1],name:a[1],statuses:n[a[1]]||{},showSlide:i}))},W=function(e){var t=e.slide,n=e.n,i=e.onClick;return r.createElement(x,{onClick:i},r.createElement("div",{"data-tip":!0,"data-for":"hover_slide_".concat(n)},"Slide ".concat(n+1,": ").concat(function(e,t){try{return(new DOMParser).parseFromString(e,"text/html").querySelectorAll(t?"h2":"h1")[0].innerText}catch(e){return console.error("Error extracting title:",e.message),"Unknown slide title"}}(t.blockHTML,0===n))),r.createElement(h,{place:"bottom",effect:"solid",key:"hover_slide_".concat(n),id:"hover_slide_".concat(n)},r.createElement("div",{dangerouslySetInnerHTML:{__html:t.blockHTML}})," "))},M=function(){return r.createElement(g,null,"The ",r.createElement("em",null,"slides")," column shows the title of each slide in the narrative. Hovering will show you a preview of how the markdown content will appear, while clicking clicking on the title will preview the entire narrative at that slide (you can click in the top-left of the narrative to return to this editor).",r.createElement("br",null),"The ",r.createElement("em",null,"datasets")," for each slide are shown to the right. Each dataset may comprise multiple JSON files, the status of each is shown by icons to the right (hover for more details of the status of individual files). Clicking will preview the entire narrative at that slide.")},B=function(e){var t=e.summary,n=e.datasetResponses,i=e.showNarrative;return r.createElement(r.Fragment,null,r.createElement(w,null,r.createElement(S,{key:"description"},"Slides"),r.createElement(S,{key:"dataset"},"Datasets (per slide)"),t.reduce(function(e,t){var a=parseInt(t.slideNumber,10);return e.push(r.createElement(W,{key:"slide_".concat(a),slide:t,n:a,onClick:function(){return i(a)}})),e.push(r.createElement(F,{key:"dataset_".concat(a),slide:t,datasetResponses:n,showSlide:function(){return i(a)}})),e},[])))};const J=function(e){var t=e.narrative,n=e.datasetResponses,i=e.setDisplayNarrative,a=(0,N.j)(),o=(0,r.useRef)(null);(0,r.useEffect)(function(){o.current.scrollIntoView()},[o]);var s=t.blocks.map(function(e,t){return{blockHTML:e.__html,associatedDatasetNames:(0,C.Yx)(e.dataset),queryParams:new URLSearchParams(e.query),slideNumber:String(t)}}),l=function(){var e,n=(e=regeneratorRuntime.mark(function e(){var n,r,o,l=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=s[n=l.length>0&&void 0!==l[0]?l[0]:0].associatedDatasetNames,e.prev=2,e.t0=D,e.t1={type:A.xY,pathnameShouldBe:void 0,preserveCache:!0},e.t2=P.UQ,e.next=8,t.datasets[r[0]].main;case 8:if(e.t3=e.sent,!t.datasets[r[0]].measurements){e.next=15;break}return e.next=12,t.datasets[r[0]].measurements;case 12:e.t4=e.sent,e.next=16;break;case 15:e.t4=void 0;case 16:if(e.t5=e.t4,!r[1]){e.next=23;break}return e.next=20,t.datasets[r[1]].main;case 20:e.t6=e.sent,e.next=24;break;case 23:e.t6=void 0;case 24:e.t7=e.t6,e.t8=n?{n}:{},e.t9=t.blocks,e.t10=t.datasets[t.initialNames[0]].pathname,e.t11=r[1]||null,e.t12=a,e.t13={json:e.t3,measurementsData:e.t5,secondTreeDataset:e.t7,query:e.t8,narrativeBlocks:e.t9,mainTreeName:e.t10,secondTreeName:e.t11,dispatch:e.t12},e.t14=(0,e.t2)(e.t13),o=(0,e.t0)(e.t1,e.t14),e.next=39;break;case 35:return e.prev=35,e.t15=e.catch(2),console.error("Failed to load the narrative on slide ".concat(n),e.t15),e.abrupt("return");case 39:a(o),i(!0),t.datasets[r[0]].loadSidecars(a);case 42:case"end":return e.stop()}},e,null,[[2,35]])}),function(){var t=this,n=arguments;return new Promise(function(r,i){var a=e.apply(t,n);function o(e){z(a,r,i,o,s,"next",e)}function s(e){z(a,r,i,o,s,"throw",e)}o(void 0)})});return function(){return n.apply(this,arguments)}}();return r.createElement("div",{ref:o},r.createElement(M,null),r.createElement(B,{summary:s,datasetResponses:n,showNarrative:l}),r.createElement(O,null,r.createElement(j,{onClick:function(){return l()}},"View Narrative")),r.createElement("div",{style:{minHeight:"50px"}}))};var U=n(18544);function G(e){return G="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},G(e)}function V(e,t,n,r,i,a,o){try{var s=e[a](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,i)}function Y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Y(Object(n),!0).forEach(function(t){Q(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Y(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Q(e,t,n){return(t=function(e){var t=function(e){if("object"!=G(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=G(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==G(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Z(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function K(e,t,n){return X.apply(this,arguments)}function X(){var e;return e=regeneratorRuntime.mark(function e(t,n,r){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r({name:t,datasetType:"main",status:"inProgress"}),n.fetchMain(),e.prev=2,e.next=5,n.main;case 5:r({name:t,datasetType:"main",status:"success"}),e.next=13;break;case 8:return e.prev=8,e.t0=e.catch(2),console.error("\tMainFetch has failed for ".concat(t," and so sidecars will not be requested")),r({name:t,datasetType:"main",status:"Error: ".concat(e.t0.message)}),e.abrupt("return");case 13:return e.prev=13,e.next=16,n.fetchSidecars();case 16:n.rootSequence&&(r({name:t,datasetType:"rootSeq",status:"inProgress"}),n.rootSequence.then(function(e){e instanceof U.fk?r({name:t,datasetType:"rootSeq",status:"Warning - root sequence JSON isn't available (this is not necessarily a problem!)"}):e instanceof Error?r({name:t,datasetType:"rootSeq",status:'Error - root sequence JSON exists but is invalid: "'.concat(e.message,'"')}):r({name:t,datasetType:"rootSeq",status:"success"})})),n.tipFrequencies&&(r({name:t,datasetType:"frequencies",status:"inProgress"}),n.tipFrequencies.then(function(e){e instanceof Error?r({name:t,datasetType:"frequencies",status:'Error - the dataset requested a tipFrequencies sidecar JSON however the following error was raised: "'.concat(e.message,'"')}):r({name:t,datasetType:"frequencies",status:"success"})})),e.next=23;break;case 20:e.prev=20,e.t1=e.catch(13),console.error("Programming error within fetchDatasetAndSidecars",e.t1);case 23:case"end":return e.stop()}},e,null,[[2,8],[13,20]])}),X=function(){var t=this,n=arguments;return new Promise(function(r,i){var a=e.apply(t,n);function o(e){V(a,r,i,o,s,"next",e)}function s(e){V(a,r,i,o,s,"throw",e)}o(void 0)})},X.apply(this,arguments)}var ee=n(26317),te=n(66074);function ne(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=ie(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}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,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function re(e,t,n,r,i,a,o){try{var s=e[a](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,i)}function ie(e,t){if(e){if("string"==typeof e)return ae(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ae(e,t):void 0}}function ae(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var oe=function(e){var t,n,i=e.fileName,a=e.setNarrative,o=e.setError,s=(0,r.useRef)(null),l=(t=(0,r.useState)(!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,s=[],l=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,i=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}(t,n)||ie(t,n)||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.")}()),m=l[0],h=l[1];return(0,r.useEffect)(function(){function e(e){return t.apply(this,arguments)}function t(){var e;return e=regeneratorRuntime.mark(function e(t){var n,r,i,s,l,c,u,d,f,p,m;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t.preventDefault(),h(!1),o(null),a(void 0),r=ne(t.dataTransfer.files),e.prev=5,r.s();case 7:if((i=r.n()).done){e.next=14;break}if(!(s=i.value).name.endsWith(".md")){e.next=12;break}return n=s,e.abrupt("break",14);case 12:e.next=7;break;case 14:e.next=19;break;case 16:e.prev=16,e.t0=e.catch(5),r.e(e.t0);case 19:return e.prev=19,r.f(),e.finish(19);case 22:if(n){e.next=25;break}return o("No appropriate markdown file dragged on"),e.abrupt("return");case 25:return l={},e.prev=26,e.t1=ee.parseMarkdownNarrativeFile,e.next=30,se(n,!1);case 30:return e.t2=e.sent,e.t3=te.D,e.next=34,(0,e.t1)(e.t2,e.t3);case 34:c=e.sent,u=(0,C.vm)(c,{}),d=u.datasets,f=u.initialNames,p=u.frontmatterNames,l={blocks:c,datasets:d,initialNames:f,frontmatterNames:p,fileName:n.name},e.next=45;break;case 39:return e.prev=39,e.t4=e.catch(26),m="Error obtaining narratives from ".concat(n.name,". Details: ").concat(e.t4.message),console.error(m),o(m),e.abrupt("return");case 45:a(l);case 46:case"end":return e.stop()}},e,null,[[5,16,19,22],[26,39]])}),t=function(){var t=this,n=arguments;return new Promise(function(r,i){var a=e.apply(t,n);function o(e){re(a,r,i,o,s,"next",e)}function s(e){re(a,r,i,o,s,"throw",e)}o(void 0)})},t.apply(this,arguments)}function n(e){e.preventDefault()}function r(){h(!0)}function i(){h(!1)}var l=s.current;return l.addEventListener("dragover",n,!1),l.addEventListener("drop",e,!1),l.addEventListener("dragenter",r,!1),l.addEventListener("dragleave",i,!1),function(){l.removeEventListener("dragover",n,!1),l.removeEventListener("drop",e,!1),l.removeEventListener("dragenter",r,!1),l.removeEventListener("dragleave",i,!1)}},[a,o,m,h]),r.createElement(u,{ref:s},r.createElement(d,null,r.createElement("h4",null,"Provide a narrative to analyse")),r.createElement(p,{dragActive:m},r.createElement(c,{size:70})," ",i?r.createElement(f,null,r.createElement("p",null,"Currently analysing ".concat(i)),r.createElement("p",null,"Drag & Drop another markdown file to restart")):r.createElement(f,null,"Drag & Drop markdown file to begin")))};function se(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new Promise(function(n,r){var i=new window.FileReader;i.onloadend=function(e){if(t){var r=JSON.parse(e.target.result);n(r)}else n(e.target.result)},i.onerror=function(e){r(e)},i.readAsText(e)})}var le,ce=n(49633),ue=n(50085);function de(e){return de="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},de(e)}function fe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,pe(r.key),r)}}function pe(e){var t=function(e){if("object"!=de(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=de(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==de(t)?t:t+""}function me(e,t){return me=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},me(e,t)}function he(e){var t=ye();return function(){var n,r=ve(e);if(t){var i=ve(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return function(e,t){if(t&&("object"==de(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)}(this,n)}}function ye(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(ye=function(){return!!e})()}function ve(e){return ve=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},ve(e)}var ge=a.Ay.div.withConfig({displayName:"NarrativeViewHeader__OuterContainer",componentId:"sc-16ass9j-0"})(["min-height:50px;background-color:#fd8d3c;color:white;font-size:24px;position:absolute;display:flex;flex-direction:column;justify-content:center;z-index:100;top:0;width:",";max-width:",";overflow-y:auto;overflow-x:hidden;"],function(e){return e.width+"px"},function(e){return e.width+"px"}),be=a.Ay.div.withConfig({displayName:"NarrativeViewHeader__InnerContainer",componentId:"sc-16ass9j-1"})(["text-align:center;cursor:pointer;"]),we=(0,ce.Ng)(function(e){return{displayNarrative:e.narrative.display,browserDimensions:e.browserDimensions.browserDimensions}})(le=function(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&&me(e,t)}(a,e);var t,n,i=he(a);function a(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),i.apply(this,arguments)}return t=a,(n=[{key:"render",value:function(){var e=this,t=(0,ue.m)(this.props.browserDimensions,this.props.displayNarrative,!0,!1).sidebarWidth;return r.createElement(ge,{width:t},r.createElement(be,{style:{cursor:"pointer"},onClick:function(){return e.props.setDisplayNarrative(!1)}},"Return to debugging window"))}}])&&fe(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),a}(r.Component))||le;const xe=we;function Ee(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,s=[],l=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,i=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ke(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ke(e,t):void 0}}(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 ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var Se=(0,r.lazy)(function(){return Promise.all([n.e(165),n.e(212),n.e(29)]).then(n.bind(n,50185))}),_e=function(){return r.createElement(g,null,"This page provides an interactive approach to testing and debugging ",r.createElement("a",{href:"https://docs.nextstrain.org/en/latest/guides/communicate/narratives-intro.html"},"Nextstrain Narratives"),". Simply drag & drop your narrative (markdown file) below to see a summary of each slide and the associated\n datasets, with the ability to preview individual slides or the entire narrative. Please see the ",r.createElement("a",{href:"https://docs.nextstrain.org/en/latest/tutorials/narratives-how-to-write.html"},"associated tutorial")," for more.")};const Oe=function(){var e=Ee((0,r.useState)(),2),t=e[0],n=e[1],a=Ee((0,r.useState)(null),2),o=a[0],s=a[1],l=Ee((0,r.useState)(),2),c=l[0],u=l[1],d=function(e){var t,n,i=(0,N.j)(),a=(t=(0,r.useReducer)(function(e,t){if(t.reset)return{};var n=$({},e);return n[t.name]||(n[t.name]={main:"notAttempted",rootSeq:"notAttempted",frequencies:"notAttempted"}),n[t.name]=$({},n[t.name]),n[t.name][t.datasetType]=t.status,n},{}),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,s=[],l=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,i=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}(t,n)||function(e,t){if(e){if("string"==typeof e)return Z(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Z(e,t):void 0}}(t,n)||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.")}()),o=a[0],s=a[1],l=(0,r.useRef)(Object.keys(e||{}));return(0,r.useEffect)(function(){var t=Object.keys(e||{});if(JSON.stringify(t)!==JSON.stringify(l.current)){s({reset:!0}),l.current=t;for(var n=0,r=Object.keys(e||{});n<r.length;n++){var a=r[n];o[a]&&"notAttempted"!==o[a].main||K(a,e[a],s)}i({type:A.$n,jsons:e})}},[i,s,e,o,l]),o}(null==t?void 0:t.datasets);return c?r.createElement(r.Fragment,null,r.createElement(xe,{setDisplayNarrative:u}),r.createElement(r.Suspense,{fallback:null},r.createElement(Se,null))):r.createElement(r.Fragment,null,r.createElement(i.A,null),r.createElement(b,null,r.createElement("span",null,"This narrative debugger is a beta release!",r.createElement("br",null),"If you discover issues or have suggestions\n please get in touch or make issue on ",r.createElement("a",{href:"https://github.com/nextstrain/auspice/issues"},"GitHub"))),r.createElement(_e,null),r.createElement(oe,{fileName:null==t?void 0:t.fileName,setNarrative:n,setError:s}),null!==o&&r.createElement(m,null,"".concat(o)),t&&r.createElement(J,{narrative:t,datasetResponses:d,setDisplayNarrative:u}))}},2122(e,t,n){n.d(t,{A:()=>y});var r=n(78281),i=n(77313),a=n(40952),o=n(28355);const s=function(e){var t=e.navHeight,n=e.navWidth,i=e.display,a=e.onClick,s={position:"fixed",left:n?n-12:-12,visibility:i?"visible":"hidden",width:i?12:0,top:t/2-8,backgroundColor:"inherit",boxShadow:"none",cursor:"pointer",borderRadius:"0px",fontSize:12,color:"#444",textAlign:"center",verticalAlign:"middle"};return r.createElement("div",{style:s,onClick:a},r.createElement(o._Jj,null))};var l=n(68299),c=i.Ay.div.withConfig({displayName:"content__AuspiceNavBarContainer",componentId:"sc-jg0fvy-0"})(["display:flex;flex-direction:row;align-items:center;justify-content:center;height:100%;"]),u=i.Ay.a.withConfig({displayName:"content__Title",componentId:"sc-jg0fvy-1"})(["padding:0px;text-decoration:none;color:",";font-size:20px;font-weight:400;cursor:pointer;letter-spacing:1rem;"],function(e){return e.theme.color}),d=i.Ay.a.withConfig({displayName:"content__LogoLink",componentId:"sc-jg0fvy-2"})(["padding:5px 5px;width:50px;cursor:pointer;"]),f=i.Ay.div.withConfig({displayName:"content__NarrativeTitle",componentId:"sc-jg0fvy-3"})(["white-space:nowrap;font-size:1.7rem;margin-left:auto;padding:0px 12px;float:right;color:",";max-width:","px;overflow:hidden;text-overflow:ellipsis;"],function(e){return e.theme.color},function(e){return e.width-90}),p=n(41930),m=i.Ay.div.withConfig({displayName:"navBar__NavBarContainer",componentId:"sc-ygpsg-0"})(["left:0;max-width:960px;margin-top:auto;margin-right:auto;margin-bottom:auto;margin-left:auto;height:","px;justify-content:space-between;align-items:center;overflow:hidden;z-index:100;transition:left .3s ease-out;"],function(e){return e.narrative?a.iY:a.NL}),h=(0,p.Q)("navbarComponent")?(0,p.u)("navbarComponent"):function(e){var t=e.narrativeTitle,n=e.sidebar,i=e.width;return n?r.createElement(c,null,r.createElement("div",{style:{flex:1}}),r.createElement(d,{href:"/"},r.createElement("img",{alt:"splashPage",width:"40px",src:l})),r.createElement("div",{style:{flex:1}}),function(e,t){return e?r.createElement(f,{width:t,href:"/"},e):r.createElement(u,{href:"/"},"auspice")}(t,i),r.createElement("div",{style:{flex:1}})):null};const y=function(e){var t=e.sidebar,n=e.toggleHandler,i=e.narrativeTitle,o=e.width,l=t&&!i;return r.createElement(m,null,r.createElement(h,{narrativeTitle:i,sidebar:t,width:o}),r.createElement(s,{navHeight:a.NL,navWidth:o,display:l,onClick:n}))}},34713(e,t,n){n.d(t,{j:()=>r});var r=n(49633).wA},4379(e,t,n){n.d(t,{I:()=>i,u:()=>r});var r=function(e,t){return t*(e-(1===t?40:100))},i=function(e){var t=e.horizontal,n=e.vertical,r=e.availableWidth,i=e.availableHeight,a=e.minHeight,o=void 0===a?void 0:a,s=e.maxAspectRatio,l=void 0===s?void 0:s,c=t*(r-(1===t?40:100)),u=n*i-52;return l&&u>l*c&&(u=l*c),o&&u<o&&(u=o),{width:c,height:u}}},68299(e,t,n){e.exports=n.p+"1730310c32752e095ee7.svg"}}]);