{"version":3,"sources":["webpack:///static/js/main.916b63b5.js","webpack:///./src/selectors/index.js","webpack:///./src/components/Input/Graphs.jsx","webpack:///./src/components/Input/MDSGraphs.jsx","webpack:///./src/components/Input/GraphingOptions.jsx","webpack:///./src/static/loading.js","webpack:///./src/components/Output/Plots/DownloadHelper.jsx","webpack:///./src/state/data_cis.js","webpack:///./src/state/model.js","webpack:///./src/state/data.js","webpack:///./src/components/Input/Title.jsx","webpack:///./src/components/Input/Data.jsx","webpack:///./src/components/Input/Metadata.jsx","webpack:///./src/components/Input/Scale.jsx","webpack:///./src/components/Input/DataPreview.jsx","webpack:///./src/components/Input/Ignore0.jsx","webpack:///./src/state/library.js","webpack:///./src/components/Input/SaveDataset.jsx","webpack:///./src/components/Input/CurrentModel.jsx","webpack:///./src/components/Input/Parameters/MetaParameters.jsx","webpack:///./src/components/Input/Parameters/Parameters.jsx","webpack:///./src/components/Input/Parameters/MultiDataset.jsx","webpack:///./src/components/Input/FittingMethod.jsx","webpack:///./src/components/Input/Parameters/Bounds.jsx","webpack:///./src/components/Input/MCObjectiveFunction.jsx","webpack:///./src/components/Input/MCOptions.jsx","webpack:///./src/components/Input/BellSmoothing.jsx","webpack:///./src/components/Input/AdvancedOptions.jsx","webpack:///./src/components/Input/CIs.jsx","webpack:///./src/components/Input/Fit.jsx","webpack:///./src/components/Input/Reset.jsx","webpack:///./src/selectors/fitValid.js","webpack:///./src/state/fit.js","webpack:///./src/state/page.js","webpack:///./src/index.js","webpack:///./src/components/Input/UploadFile.jsx","webpack:///./src/components/Input/DataContainer.jsx","webpack:///./src/components/Input/Parameters/NumberInput.jsx","webpack:///./src/components/Input/Parameters/Guess.jsx","webpack:///./src/components/Input/Parameters/Guesses.jsx","webpack:///./src/components/Input/Parameters/Waves.jsx","webpack:///./src/components/Input/Parameters/Bound.jsx","webpack:///./src/components/Input/ModelContainer.jsx","webpack:///./src/components/Input/Container.jsx","webpack:///./src/App.js","webpack:///./src/components/Menu.jsx","webpack:///./src/state/index.js","webpack:///./src/_helpers.js","webpack:///./src/state/data_options.js","webpack:///./src/state/_const.js","webpack:///./src/state/data_datasets.js","webpack:///./src/components/Input/Parameters/GuessParams.jsx","webpack:///./src/components/Output/Container.jsx","webpack:///./src/components/Output/Plots/Plots.jsx","webpack:///./src/components/Output/Plots/Plot.jsx","webpack:///./src/components/Output/Plots/icons.js","webpack:///./src/components/Number.jsx","webpack:///./src/components/Output/Params.jsx","webpack:///./src/components/Color.jsx","webpack:///./src/components/Output/Time.jsx","webpack:///./src/components/Output/DataDump.jsx","webpack:///./src/components/DelayedInput.jsx","webpack:///./src/components/Collapsible.jsx","webpack:///./src/selectors/plot/plots.js","webpack:///./src/selectors/plot/index.js","webpack:///./src/state/results_options.js","webpack:///./src/selectors/plot/download.js","webpack:///./src/selectors/plot/upng-utif.js","webpack:///./src/selectors/plot/util.js"],"names":["webpackJsonp","10","module","__webpack_exports__","__webpack_require__","_toConsumableArray","arr","Array","isArray","i","arr2","length","from","mds","state","_","zip","CSVText2List","data","databox","e","singleWave","datasets","params","method","current_model","models","model","param_names","is_built_in","info","param_description","paramDescription","isLogsub","page","d","results","__WEBPACK_IMPORTED_MODULE_0_lodash__","__WEBPACK_IMPORTED_MODULE_0_lodash___default","n","__WEBPACK_IMPORTED_MODULE_1__helpers__","is_mc","canPhase","hasRSQ","fitting_methods","cache","res","map","title","isEqual","_fitTime","paramNames","_method","virtual_params","concat","vParamNames","112","exports","113","Graphs","graphs","selected","onChange","className","g","key","type","name","value","checked","includes","mapStateToProps","ownProps","root","plotNames","options","mapDispatchToProps","dispatch","bindActionCreators","toggleGraph","res_toggleGraph","MDSGraphs","actions","shown","separate","disabled","mds_one_plot","DelayedInput","ylabel","fit","MDS_FIT_EACH","data_options","results_options","toggleMDSOnePlot","setYLabel","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","call","ReferenceError","_inherits","subClass","superClass","prototype","Object","create","constructor","enumerable","writable","configurable","setPrototypeOf","__proto__","protectNull","sync","xlim","setXLim","ylim","setYLim","dash_forecast","toggleDashForecast","showlegend","toggleShowLegend","showgrid","toggleGridLines","copyright","toggleCopyright","x_log_graph","toggleLogXGraph","y_log_graph","toggleLogYGraph","react","react_default","es","react_redux_es","lodash","lodash_default","Collapsible","plot","defaultProps","ConnectGraphs","connect","data_datasets","selectors","ConnectMDSGraphs","_createClass","defineProperties","target","props","descriptor","defineProperty","protoProps","staticProps","GraphingOptions","_debouncedCheckSize","debounce","_checkSize","bind","window","addEventListener","Modernizr","passiveeventlisteners","passive","this","removeEventListener","OutputPlots","document","getElementById","setState","floatingOptions","mq","scrollY","offsetTop","innerHeight","GraphingOptionsInternal","parseFloat","onClick","console","log","preventDefault","React","Component","ConnectGraphingOptions","114","116","__WEBPACK_IMPORTED_MODULE_0_react__","__WEBPACK_IMPORTED_MODULE_0_react___default","__WEBPACK_IMPORTED_MODULE_1_prop_types__","DownloadHelper","format","dpi","grayscale","default","_React$Component","typedarrays","_option","onSubmit","width","height","123","setPercent","iter","SET_PERCENT","payload","setIterations","SET_ITER","graph","TOGGLE_GRAPH","setMCIter","SET_MC_ITER","setMCAnneal","anneal","SET_MC_ANNEAL","setMCSample","sample","SET_MC_SAMPLE","reducer","initialState","action","percent","iterations","xor","mc","_loadModels","LOAD_MODELS","_loadModelsStart","LOAD_MODELS_START","_loadModelsError","LOAD_MODELS_ERROR","error","loadModels","endpoint","fetch","API","then","json","catch","_setModel","meta","SET_MODEL","setModel","getState","metadata","num_params","hold_guesses","can_phase","default_options","num_graphs","client_plots","reduce","indexes","show","status","setData","old_data","SET_DATA","setTitle","SET_TITLE","_setMethod","SET_METHOD","setMethod","method_sel","Promise","resolve","ds","dsp","wave","original","numberify","guesses","bounds","b","body","qs","stringify","JSON","headers","response","stack","_setWaves","waves","SET_WAVES","setWaves","default_method","_loadFromServer","result","LOAD_DATA","_loadFromServerStart","LOAD_DATA_START","_loadFromServerError","LOAD_DATA_ERROR","importDS","IMPORT_DATASET","unloadData","UNLOAD_DATA","loadDataFromLocalLibrary","index","newDS","library","loadDataFromServer","file","split","url","credentials","model_actions","num","ds_actions","loadData","path","method_reducer","load_reducer","newState","options_reducer","CIs","CIs_reducer","mds_reducer","guess","guess_reducer","load","datasets_reducer","every","v","k","Title","htmlFor","maxLength","id","event","DataBox","rows","wrap","data-toggle","data-placement","Metadata","comments","source","tags","uploader","votes","attachment","dangerouslySetInnerHTML","__html","formatSource","join","href","parseSource","_Transform","rate","share","_Log","logx","logy","normalizex","normalizey","_DivideY","divide","transform","toggleTransformLogX","toggleTransformLogY","toggleNormalizeX","toggleNormalizeY","toggleTransformRate","toggleTransformMarketShare","setDivision","DataPreview__classCallCheck","DataPreview__possibleConstructorReturn","DataPreview__inherits","ignore0","UploadFile__classCallCheck","UploadFile__possibleConstructorReturn","UploadFile__inherits","Ignore0","downloadCurrentDS","saveAs","Blob","saveRemote","localStorage","setItem","getDownloadFunctions","getAllPngs","match","isOwner","w2p_uid","alert","location","assign","SaveDataset","save","download","DataContainer__classCallCheck","DataContainer__possibleConstructorReturn","DataContainer__inherits","CurrentModel","presentModel","MDS_PARAMS_EACH","names","descriptions","Parameters","onValueChange","onHoldChange","onWavesChange","values","Elem","Guess","changeGuess","toggleFixParam","MultiDataset","MDS_FIT_ALL","fitAll","fitEach","MDS_PARAMS_TOGETHER","paramsTogether","paramsEach","mdsFitEach","mdsFitAll","mdsParamsTogether","mdsParamsEach","FittingMethod","extraMethods","m","Bounds","param","upLow","Bound","footer","changeBound","MCObjectiveFunction","battery","push","opt","setMCBattery","MCOptions","Inputs","step","max","process","LL4_NO_LIMITS","undefined","BellSmoothing","bellsmooth","min","has_rate","setBellSmoothing","AdvancedOptions","Log","has_linear","mc_actions","headerHTML","stopPropagation","noOptions","mcOptions","checkedStatus","normalOptions","Fit","Reset","sessionStorage","removeItem","ModelContainer__classCallCheck","ModelContainer__possibleConstructorReturn","ModelContainer__inherits","checkForFitErrors","errs","some","bound","_fit","time","FIT","total_time","_fitStart","FIT_START","_fitError","FIT_ERROR","_fitValidationError","FIT_VALIDATION_ERROR","_lastFit","LAST_FIT","pickData","_ds","pick","isNil","modifiedData","fixDatasetsNumbers","fixg","old_bounds","mapValues","startTime","Date","now","errors","reject","statusText","endTime","Error","all","result_reducer","result_initial_state","startsWith","SWITCH_PAGE","avg_popt","addResultsToData","NaN","j","Container__classCallCheck","Container__possibleConstructorReturn","Container__inherits","App__classCallCheck","App__possibleConstructorReturn","App__inherits","Menu__classCallCheck","Menu__possibleConstructorReturn","Menu__inherits","_switchPage","switchPage","currentModel","counterpartModel","counterpart","defaultModel","keep","isRestoredStateValid","restoredState","currentState","searchHandler","opts","defaultSearch","preload","search","parse","slice","history","replaceState","changePage","store","dontFit","initStaticGraphs","static_graphs","toggleStaticGraphs","preventNumberScroll","activeElement","blur","render","rootID","ReactDOM","renderApp","renderMenu","onChangePage","urls","logsub","pushState","react_dom","react_dom_default","redux_es","lib","lib_default","qs_lib","qs_lib_default","_const","_helpers","types","_ds_reducer","_typeof","Symbol","iterator","obj","Votes","dir","redirect","ok","newScore","flash","$","web2py","text","my_vote","upvotes","_vote","downvotes","Transform","DivideY","DataPreview__createClass","DataPreview","fetching","image","img","attr","src","html","append","_button","popover","content","placement","trigger","blob","URL","createObjectURL","_toggleShown","ref","button","UploadFile__createClass","UploadFile","XLSX","workbook","read","sheet1","getSheet","table","utils","sheet_to_csv","_file","files","ext","indexOf","reader","FileReader","onload","txt","readAsText","xlsx","readAsBinaryString","click","filereader","triggerUpload","accept","toggleIgnore0","FileSaver","plot_download","DataContainer__createClass","DataContainer","Data","num_regex","NumberInput","handleChange","test","held","description","tabIndex","Guesses","val","GuessParams","Waves","numWaves","numDS","uniqueId","range","colSpan","MetaParameters","num_ds","longest_name","longest","Math","padEnd","w","p","_slicedToArray","sliceIterator","_arr","_n","_d","_e","_s","_i","next","done","err","MCObjectiveFunction__slicedToArray","ModelContainer__createClass","ModelContainer","jQuery","ajax_init","loadStatus","Container__createClass","InputContainer","on","encType","_submit","Output_Container","App__createClass","App","getPrototypeOf","apply","arguments","_Component","Menu__slicedToArray","Menu__createClass","Menu","open","onSetModel","mList","forEach","isCurrentPage","_renderModelList","_renderPageSwitcher","combineReducers","getItem","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","createStore","applyMiddleware","thunk","BootstrapDialog","tooltip","container","message","draggable","size","SIZE_SMALL","buttons","icon","label","cssClass","autospin","dialogRef","close","onhide","getModalContent","find","is","$modalDialog","css","top","left","old_page","old_title","old_results","old_static_graphs","subscribe","pageTitle","13","detectCSVDelmiter","line","trim","dlmtr","notrim","t","delimiter","a","isNaN","Number","filter","axisTitle","firstLine","x","y","isFinite","startCase","controller","args","wURL","sourceStr","sourceMatch","15","SET_ANNEAL","SET_SAMPLE","SET_BATTERY","TOGGLE_TRANSFORM_LOGX","TOGGLE_TRANSFORM_LOGY","TOGGLE_TRANSFORM_RATE","TOGGLE_TRANSFORM_MARKET_SHARE","SET_DIVISION","TOGGLE_NORMALIZEX","TOGGLE_NORMALIZEY","TOGGLE_DASH_FORECAST","TOGGLE_MDS_ONE_PLOT","smoothing","SET_BELL_SMOOTHING","SET_Y_LABEL","lim","SET_XLIM","SET_YLIM","TOGGLE_SHOW_LEGEND","TOGGLE_GRID_LINES","TOGGLE_COPYRIGHT","TOGGLE_IGNORE_0","TOGGLE_LOG_Y_GRAPH","TOGGLE_LOG_X_GRAPH","TOGGLE_STATIC_GRAPHS","syncOptions","SYNC_OPTIONS","difference","keys","sort","GUESS_PARAMS","mciter","merge","21","GUESS_PARAMS_START","GUESS_PARAMS_ERROR","22","_defineProperty","CHANGE_GUESS","CHANGE_BOUND","fixParam","FIX_PARAM","releaseParam","RELEASE_PARAM","ACTION_MDS_FIT_EACH","ACTION_MDS_FIT_ALL","ACTION_MDS_PARAMS_TOGETHER","ACTION_MDS_PARAMS_EACH","_guessParams","_guessParamsStart","_guessParamsError","guessParams","loginum","mapKeys","mdsInitialState","_dataset_reducer","_handleParams","protectDot","diff","without","omit","param_val","bounds_val","union","fill","last","chunk","newParams","fix","_bounds","fromPairs","datasetInitialState","titles","_avgParams","mean","flatten","flat","intersection","col","row","__WEBPACK_IMPORTED_MODULE_1_qs__","__WEBPACK_IMPORTED_MODULE_1_qs___default","__WEBPACK_IMPORTED_MODULE_2__helpers__","__WEBPACK_IMPORTED_MODULE_3__const__","244","setImmediate","__WEBPACK_IMPORTED_MODULE_0_prop_types__","__WEBPACK_IMPORTED_MODULE_1_react__","__WEBPACK_IMPORTED_MODULE_1_react___default","__WEBPACK_IMPORTED_MODULE_2_redux__","__WEBPACK_IMPORTED_MODULE_3_react_redux__","__WEBPACK_IMPORTED_MODULE_4_state_data_datasets__","nextProps","_notify","$button","setTimeout","245","246","247","__WEBPACK_IMPORTED_MODULE_2_react_redux__","__WEBPACK_IMPORTED_MODULE_3__Plots_Plots__","__WEBPACK_IMPORTED_MODULE_4__Params__","__WEBPACK_IMPORTED_MODULE_5__Time__","__WEBPACK_IMPORTED_MODULE_6__DataDump__","__WEBPACK_IMPORTED_MODULE_7_loading_gif__","__WEBPACK_IMPORTED_MODULE_8__Container_css__","OutputContainer","showStats","_status","toString","loading","alt","onDestruct","_paramsDestruct","248","selector","replot","results_root","__WEBPACK_IMPORTED_MODULE_4_lodash__","__WEBPACK_IMPORTED_MODULE_4_lodash___default","__WEBPACK_IMPORTED_MODULE_5_selectors_plot__","__WEBPACK_IMPORTED_MODULE_6_state_data_options__","__WEBPACK_IMPORTED_MODULE_8__Plot__","__WEBPACK_IMPORTED_MODULE_9_components_Input_GraphingOptions__","Plots","PlotlyComponent","Plotly","nextState","_toggleStaticGraphs","layout","component","249","selectText","element","doc","createTextRange","moveToElementText","select","getSelection","selection","createRange","selectNodeContents","removeAllRanges","addRange","__WEBPACK_IMPORTED_MODULE_2_react_resizable__","__WEBPACK_IMPORTED_MODULE_3_react_resizable_css_styles_css__","__WEBPACK_IMPORTED_MODULE_4__icons__","__WEBPACK_IMPORTED_MODULE_5__DownloadHelper__","__WEBPACK_IMPORTED_MODULE_6_selectors_plot_download__","Plot","downloading","copyState","imageSrc","config","getArrayBuffer","downloadFile","pngToTiff","ab","getDataURI","dataURI","_copierEl","copier","_copierContainer","setAttribute","success","execCommand","removeAttribute","$copyImage","_plotWrapper","componentWillReceiveProps","_getStaticURI","modeBarButtonsToRemove","modeBarButtonsToAdd","icons","camera","copy","_copy1","_copy2","onResize","node","_download","renderStatic","renderInteractive","255","ascent","descent","257","digits","significance","numDigits","abs","trunc","real_significance","toPrecision","colors","paramColors","getFirstValidDS","phases","decimalPlaces","Color","color","style","String","fromCharCode","util","Params","stats","__order","s","milestones","numPhases","showingWholeFit","colorsPerDS","numStats","emptySpaces","phase","rowSpan","orig_params","percentage","popt","_renderTBody","avg","se","_toggleStats","_renderHead","_renderBody","_renderAvg","258","total","computation","Time","toFixed","259","s2ab","buf","ArrayBuffer","view","Uint8Array","charCodeAt","__WEBPACK_IMPORTED_MODULE_3_file_saver__","__WEBPACK_IMPORTED_MODULE_4__helpers__","__WEBPACK_IMPORTED_MODULE_5_selectors__","__WEBPACK_IMPORTED_MODULE_6_selectors_plot__","__WEBPACK_IMPORTED_MODULE_7_selectors_plot_download__","__WEBPACK_IMPORTED_MODULE_8__Plots_DownloadHelper__","DataDump","showDownloader","showPlotters","blobconstructor","Workbook","ws","Worksheet","data_dump","excel","substr","addSheet","wbout","write","bookType","bookSST","plots","createZip","downloadData","showDownloadGraphs","downloadGraphs","260","261","262","36","__WEBPACK_IMPORTED_MODULE_2_lodash__","__WEBPACK_IMPORTED_MODULE_2_lodash___default","submit","onKeyPress","onBlur","43","collapsed","_toggle","children","45","c","parseSpec","spec","defaultOptions","extend","ig_data","parsedData","pd","curve","solid","dashed","trace_title","xlabel","extra","dataFromSpec","dataFromSpecs","specs","stateToSpecs","at","__ROOT__","_subState","from_results","CONSTANTS","marker_style","marker_size","marker_edge_color","marker_edge_size","marker_alpha","ig_marker_color","ig_marker_edge_alpha","ig_marker_alpha","line_size","forecast_line_style","ci_style","ci_med_style","ci_color","ci_fill_alpha","font","title_font_size","axis_title_font_size","axis_tick_font_size","text_font_size","legend_font_size","margin_top","margin_left","margin_right","fp_margin_right","margin_bottom","axis_line_size","axis_tick_length","prod_dpi","file_format","traces","legendgroup","mode","marker","symbol","opacity","dash","connectgaps","CI_low","CI_high","CI_median","hoverinfo","fillcolor","_layout","family","margin","l","r","titlefont","round","legend","hovermode","annotations","xref","yref","showarrow","axis","userLimitOrDefault","generatedLimit","plot_range","tick0","dtick","zeroline","showline","linewidth","gridwidth","ticks","tickwidth","ticklen","tickfont","log_axis","logUserLimitOrDefault","ax","logRange","tickvals","ticktext","tickangle","main","_extras_range","ex_rng","toLowerCase","_axis","_range","_traces","xaxis","yaxis","fisher_pry","yaxis2","clone","milestones_l","milestones_v","side","overlaying","scaleanchor","stacked_data","curves","46","66","createFunctions","toImage","cloneDeep","base64js","toByteArray","decodeURIComponent","ab_in","png","UPNG","decode","rgba","toRGBA8","UTIF","encodeImage","t282","t283","t296","filename","mime","JSZip","folder","generateAsync","compression","require","base64_js","base64_js_default","jszip_min","jszip_min_default","68","__DS__","__RESULTS__","__PHASE__","__VIRTUAL__","phases_per_ds","phase_title","floor","ds_colors","getColors","phase_colors","__DU","prop","__MODEL__","extract","DU","propVals","indexFromColumn","getColumn","col_d","col_i","getIgDataFromIndex","ig_ix","getDashedLine","addNull","splice","maxD","minD","fixIndex","repeats","_colors","addAlpha","alpha","colorString","get","rgb","to","gray","dataIgDataPropArray","dataProp","igDataProp","getDataRange","getTraceRange","formatAxisLabel","sep_subtitle","exec","sup","bold","tickFrequency","low","high","LESS_THAN_0","round_factor","log10","ceil","ntick","tickRange","mdsToRegular","_data","sum","first","rest","logOr0","Infinity","logScaleValList","pow","start","logScaleTextList","list","__WEBPACK_IMPORTED_MODULE_2_selectors__","__WEBPACK_IMPORTED_MODULE_3_color_string__","__WEBPACK_IMPORTED_MODULE_3_color_string___default","results_sel"],"mappings":"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","file":"static/js/main.916b63b5.js","sourcesContent":["webpackJsonp([3],{\n\n/***/ 10:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = mds;\n/* harmony export (immutable) */ __webpack_exports__[\"h\"] = singleWave;\n/* harmony export (immutable) */ __webpack_exports__[\"d\"] = method;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = current_model;\n/* harmony export (immutable) */ __webpack_exports__[\"f\"] = param_names;\n/* harmony export (immutable) */ __webpack_exports__[\"e\"] = param_description;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return results; });\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = isLogsub;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(13);\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n\n\n\nfunction mds(state) {\n var mds = false;\n try {\n mds = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.zip.apply(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a, _toConsumableArray(Object(__WEBPACK_IMPORTED_MODULE_1__helpers__[\"b\" /* CSVText2List */])(state.data.databox))).length > 2;\n } catch (e) {} // eslint-disable-line no-empty\n return mds;\n}\n\nfunction singleWave(state) {\n return state.data.datasets[0].params.length == 1;\n}\n\nfunction method(state) {\n return state.data.method;\n}\nmethod.is_built_in = function (method) {\n return method == 'annealing' || method == 'curvefit';\n};\nmethod.is_mc = function (method) {\n return method != 'curvefit';\n};\nmethod.info = function (state) {\n if (method.is_built_in(method(state))) {\n return {\n canPhase: true,\n hasRSQ: false\n };\n } else {\n return current_model(state).fitting_methods[method(state)];\n }\n};\n\nfunction current_model(state) {\n return state.models.models[state.data.model];\n}\n\nfunction param_names(state) {\n if (method.is_built_in(method(state))) {\n return current_model(state).params;\n } else {\n return method.info(state).params;\n }\n}\nfunction param_description(state) {\n if (method.is_built_in(method(state))) {\n return current_model(state).param_description;\n } else {\n return method.info(state).paramDescription || [];\n }\n}\n\nvar results = function () {\n var cache = void 0;\n return function (state) {\n var res = state.results.data.datasets.map(function (d) {\n return Object.assign({}, d.results, { title: d.title });\n });\n if (!__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.isEqual(cache, res)) {\n cache = res;\n }\n return cache;\n };\n}();\n\nresults.model = function (state) {\n return state.models.models[state.results.data.model];\n};\n\nresults._fitTime = function () {\n var cache = void 0;\n return function (state) {\n var res = results(state).map(function (d) {\n return d._fitTime;\n });\n if (!__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.isEqual(cache, res)) {\n cache = res;\n }\n return cache;\n };\n}();\n\nresults.paramNames = function (state) {\n var model = results.model(state);\n var _method = state.results.data.method;\n var virtual_params = model.virtual_params;\n if (!method.is_built_in(_method)) {\n virtual_params = virtual_params.concat(model.fitting_methods[_method].vParamNames);\n }\n return model.params.concat(virtual_params);\n};\n\nfunction isLogsub(state) {\n return state.page == 'logsub';\n}\n\n/***/ }),\n\n/***/ 112:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 113:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXTERNAL MODULE: ./node_modules/react/react.js\nvar react = __webpack_require__(0);\nvar react_default = /*#__PURE__*/__webpack_require__.n(react);\n\n// EXTERNAL MODULE: ./node_modules/prop-types/index.js\nvar prop_types = __webpack_require__(1);\nvar prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);\n\n// EXTERNAL MODULE: ./node_modules/redux/es/index.js + 6 modules\nvar es = __webpack_require__(7);\n\n// EXTERNAL MODULE: ./node_modules/react-redux/es/index.js + 14 modules\nvar react_redux_es = __webpack_require__(3);\n\n// EXTERNAL MODULE: ./node_modules/lodash/lodash.js\nvar lodash = __webpack_require__(6);\nvar lodash_default = /*#__PURE__*/__webpack_require__.n(lodash);\n\n// EXTERNAL MODULE: ./src/components/Collapsible.jsx\nvar Collapsible = __webpack_require__(43);\n\n// EXTERNAL MODULE: ./src/components/DelayedInput.jsx\nvar DelayedInput = __webpack_require__(36);\n\n// EXTERNAL MODULE: ./src/state/data_options.js\nvar data_options = __webpack_require__(15);\n\n// EXTERNAL MODULE: ./src/state/results_options.js\nvar results_options = __webpack_require__(46);\n\n// EXTERNAL MODULE: ./src/selectors/plot/index.js + 1 modules\nvar plot = __webpack_require__(45);\n\n// CONCATENATED MODULE: ./src/components/Input/Graphs.jsx\n\n\n\n\n\n\n\n\n\n\n\nfunction Graphs(_ref) {\n var graphs = _ref.graphs,\n selected = _ref.selected,\n _onChange = _ref.onChange;\n\n return react_default.a.createElement(\n 'p',\n { className: 'Graphs' },\n react_default.a.createElement(\n 'span',\n null,\n 'Show graphs:'\n ),\n react_default.a.createElement(\n 'span',\n null,\n graphs.map(function (g, i) {\n return react_default.a.createElement(\n 'label',\n { key: i },\n react_default.a.createElement('input', { type: 'checkbox', name: 'graphs-shown', value: i, checked: Object(lodash[\"includes\"])(selected, i), onChange: function onChange() {\n return _onChange(i);\n } }),\n g,\n ' '\n );\n })\n )\n );\n}\n\nGraphs.defaultProps = { type: 'live' };\n\nfunction mapStateToProps(state, ownProps) {\n var root = ownProps.type == 'live' ? state : state.results;\n return {\n graphs: Object(plot[\"b\" /* plotNames */])(state, ownProps.type != 'live'),\n selected: root.data.options.graphs\n };\n}\n\nfunction mapDispatchToProps(dispatch, ownProps) {\n return Object(es[\"b\" /* bindActionCreators */])({\n onChange: ownProps.type == 'live' ? data_options[\"toggleGraph\"] : results_options[\"toggleGraph\"]\n }, dispatch);\n}\n\nvar ConnectGraphs = Object(react_redux_es[\"b\" /* connect */])(mapStateToProps, mapDispatchToProps)(Graphs);\nConnectGraphs.defaultProps = Graphs.defaultProps;\n/* harmony default export */ var Input_Graphs = (ConnectGraphs);\n// EXTERNAL MODULE: ./src/state/data_datasets.js\nvar data_datasets = __webpack_require__(22);\n\n// EXTERNAL MODULE: ./src/selectors/index.js\nvar selectors = __webpack_require__(10);\n\n// CONCATENATED MODULE: ./src/components/Input/MDSGraphs.jsx\n\n\n\n\n\n\n\n\n\n\n\n\nfunction MDSGraphs(_ref) {\n var options = _ref.options,\n actions = _ref.actions,\n shown = _ref.shown,\n separate = _ref.separate;\n\n // if fitting all together, only ylabel is relevant\n if (!shown) {\n return react_default.a.createElement('div', null);\n }\n return react_default.a.createElement(\n 'div',\n { className: 'MDSGraphs' },\n 'Multidataset options:',\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'checkbox', name: 'o-mds-one-plot', disabled: !separate, checked: options.mds_one_plot, onChange: actions.mds_one_plot }),\n 'Graph all on one plot'\n ),\n react_default.a.createElement(\n 'label',\n null,\n 'Y axis label (X label inferred from data):',\n react_default.a.createElement(DelayedInput[\"a\" /* default */], { type: 'text', name: 'o-ylabel', value: options.ylabel, onChange: function onChange(value) {\n return actions.ylabel(value);\n } })\n )\n );\n}\n\nMDSGraphs.defaultProps = { type: 'live' };\n\nfunction MDSGraphs_mapStateToProps(state, ownProps) {\n var root = ownProps.type == 'live' ? state : state.results;\n return {\n options: root.data.options,\n shown: Object(selectors[\"c\" /* mds */])(root) && !Object(selectors[\"b\" /* isLogsub */])(state),\n separate: root.data.mds.fit == data_datasets[\"b\" /* MDS_FIT_EACH */]\n };\n}\n\nfunction MDSGraphs_mapDispatchToProps(dispatch, ownProps) {\n var options = ownProps.type == 'live' ? data_options : results_options;\n return {\n actions: Object(es[\"b\" /* bindActionCreators */])({\n mds_one_plot: options.toggleMDSOnePlot,\n ylabel: options.setYLabel\n }, dispatch)\n };\n}\n\nvar ConnectMDSGraphs = Object(react_redux_es[\"b\" /* connect */])(MDSGraphs_mapStateToProps, MDSGraphs_mapDispatchToProps)(MDSGraphs);\nConnectMDSGraphs.defaultProps = MDSGraphs.defaultProps;\n/* harmony default export */ var Input_MDSGraphs = (ConnectMDSGraphs);\n// EXTERNAL MODULE: ./src/components/Input/AdvancedOptions.css\nvar AdvancedOptions = __webpack_require__(112);\nvar AdvancedOptions_default = /*#__PURE__*/__webpack_require__.n(AdvancedOptions);\n\n// CONCATENATED MODULE: ./src/components/Input/GraphingOptions.jsx\n/* unused harmony export GraphingOptions */\n/* unused harmony export mapStateToProps */\n/* unused harmony export mapDispatchToProps */\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction protectNull(value) {\n return value == null ? '' : value;\n}\n\nvar GraphingOptions_GraphingOptions = function (_React$Component) {\n _inherits(GraphingOptions, _React$Component);\n\n function GraphingOptions(props) {\n _classCallCheck(this, GraphingOptions);\n\n var _this = _possibleConstructorReturn(this, (GraphingOptions.__proto__ || Object.getPrototypeOf(GraphingOptions)).call(this, props));\n\n _this.state = {};\n\n if (_this.props.type == 'results') {\n _this._debouncedCheckSize = lodash_default.a.debounce(_this._checkSize.bind(_this), 150);\n window.addEventListener('resize', _this._debouncedCheckSize, Modernizr.passiveeventlisteners ? { passive: true } : false);\n window.addEventListener('scroll', _this._debouncedCheckSize, Modernizr.passiveeventlisteners ? { passive: true } : false);\n }\n return _this;\n }\n\n _createClass(GraphingOptions, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n this._checkSize();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this._debouncedCheckSize) {\n window.removeEventListener('resize', this._debouncedCheckSize);\n window.removeEventListener('scroll', this._debouncedCheckSize);\n }\n }\n }, {\n key: '_checkSize',\n value: function _checkSize() {\n var OutputPlots = document.getElementById('OutputPlots');\n this.setState({\n floatingOptions: this.props.type == 'results' && OutputPlots && Modernizr.mq('(min-width: 1200px)') && window.scrollY > OutputPlots.offsetTop - window.innerHeight / 3\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n type = _props.type,\n options = _props.options,\n actions = _props.actions;\n var floatingOptions = this.state.floatingOptions;\n\n var GraphingOptionsInternal = react_default.a.createElement(\n 'div',\n { className: 'GraphingOptions' },\n floatingOptions && react_default.a.createElement(\n 'p',\n null,\n react_default.a.createElement(\n 'b',\n null,\n 'Graphing options'\n )\n ),\n react_default.a.createElement(Input_Graphs, { type: type }),\n react_default.a.createElement(\n 'label',\n { className: 'xlim' },\n 'X axis:',\n ' ',\n react_default.a.createElement(DelayedInput[\"a\" /* default */], { type: 'number', value: protectNull(options.xlim[0]), onChange: function onChange(value) {\n return actions.xlim(0, parseFloat(value));\n } }),\n '\\u2014',\n react_default.a.createElement(DelayedInput[\"a\" /* default */], { type: 'number', value: protectNull(options.xlim[1]), onChange: function onChange(value) {\n return actions.xlim(1, parseFloat(value));\n } }),\n ' ',\n '(blank for automatic) |',\n ' ',\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'checkbox', checked: options.x_log_graph, onChange: actions.x_log_graph }),\n 'log scale'\n )\n ),\n react_default.a.createElement(\n 'label',\n { className: 'ylim' },\n 'Y axis:',\n ' ',\n react_default.a.createElement(DelayedInput[\"a\" /* default */], { type: 'number', value: protectNull(options.ylim[0]), onChange: function onChange(value) {\n return actions.ylim(0, parseFloat(value));\n } }),\n '\\u2014',\n react_default.a.createElement(DelayedInput[\"a\" /* default */], { type: 'number', value: protectNull(options.ylim[1]), onChange: function onChange(value) {\n return actions.ylim(1, parseFloat(value));\n } }),\n ' ',\n '(blank for automatic) |',\n ' ',\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'checkbox', checked: options.y_log_graph, onChange: actions.y_log_graph }),\n 'log scale'\n )\n ),\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'checkbox', checked: options.dash_forecast, onChange: actions.dash_forecast }),\n 'Forecasted fit as a dashed line'\n ),\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'checkbox', checked: options.showlegend, onChange: actions.showlegend }),\n 'Graph legends'\n ),\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'checkbox', checked: options.showgrid, onChange: actions.showgrid }),\n 'Grid lines'\n ),\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'checkbox', checked: options.copyright, onChange: actions.copyright }),\n 'Copyright (all graphs \\xA9PHE)'\n ),\n react_default.a.createElement(Input_MDSGraphs, { type: type }),\n react_default.a.createElement(\n 'button',\n { type: 'button', className: 'btn btn-default', onClick: function onClick(e) {\n console.log();\n e.preventDefault();\n actions.sync(options);\n } },\n 'Apply options for ',\n type == 'live' ? 'current' : 'future',\n ' graphs'\n )\n );\n if (floatingOptions) {\n return GraphingOptionsInternal;\n } else {\n return react_default.a.createElement(\n Collapsible[\"a\" /* default */],\n { title: 'Graphing options' },\n GraphingOptionsInternal\n );\n }\n }\n }]);\n\n return GraphingOptions;\n}(react_default.a.Component);\n\nGraphingOptions_GraphingOptions.defaultProps = { type: 'live' };\n\nfunction GraphingOptions_mapStateToProps(state, ownProps) {\n var root = ownProps.type == 'live' ? state : state.results;\n return {\n options: root.data.options\n };\n}\n\nfunction GraphingOptions_mapDispatchToProps(dispatch, ownProps) {\n var options = ownProps.type == 'live' ? data_options : results_options;\n return {\n actions: Object(es[\"b\" /* bindActionCreators */])({\n sync: data_options[\"syncOptions\"],\n xlim: options.setXLim,\n ylim: options.setYLim,\n dash_forecast: options.toggleDashForecast,\n showlegend: options.toggleShowLegend,\n showgrid: options.toggleGridLines,\n copyright: options.toggleCopyright,\n x_log_graph: options.toggleLogXGraph,\n y_log_graph: options.toggleLogYGraph\n }, dispatch)\n };\n}\n\nvar ConnectGraphingOptions = Object(react_redux_es[\"b\" /* connect */])(GraphingOptions_mapStateToProps, GraphingOptions_mapDispatchToProps)(GraphingOptions_GraphingOptions);\nConnectGraphingOptions.defaultProps = GraphingOptions_GraphingOptions.defaultProps;\n/* harmony default export */ var Input_GraphingOptions = __webpack_exports__[\"a\"] = (ConnectGraphingOptions);\n\n/***/ }),\n\n/***/ 114:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = ('/loglet/static/images/loading.gif');\n\n/***/ }),\n\n/***/ 116:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\nvar DownloadHelper = function (_React$Component) {\n _inherits(DownloadHelper, _React$Component);\n\n function DownloadHelper(props) {\n _classCallCheck(this, DownloadHelper);\n\n var _this = _possibleConstructorReturn(this, (DownloadHelper.__proto__ || Object.getPrototypeOf(DownloadHelper)).call(this, props));\n\n _this.state = Object.assign({ format: 'png', dpi: 60, grayscale: false }, _this.props.default || {});\n return _this;\n }\n\n _createClass(DownloadHelper, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n null,\n 'Download format:',\n ' ',\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'select',\n { value: this.state.format, onChange: function onChange(_ref) {\n var target = _ref.target;\n return _this2.setState({ format: target.value });\n } },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'option',\n { value: 'png' },\n 'PNG'\n ),\n Modernizr.typedarrays && __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'option',\n { value: 'tiff' },\n 'TIFF'\n ) /* conversion to tiff requires typedarray support */,\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'option',\n { value: 'svg' },\n 'SVG'\n ),\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'option',\n { value: 'jpeg' },\n 'JPEG'\n )\n ),\n ' ',\n 'Size:',\n ' ',\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'select',\n { value: this.state.dpi, onChange: function onChange(_ref2) {\n var target = _ref2.target;\n return _this2.setState({ dpi: target.value });\n } },\n this._option(60),\n this._option(72),\n this._option(300),\n this._option(600)\n ),\n ' ',\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'label',\n null,\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('input', { type: 'checkbox', checked: this.state.grayscale, onChange: function onChange(_ref3) {\n var target = _ref3.target;\n return _this2.setState({ grayscale: target.checked });\n } }),\n 'Grayscale'\n ),\n ' ',\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('input', { type: 'submit', onClick: function onClick() {\n return _this2.props.onSubmit(_this2.state);\n }, value: 'Download' })\n );\n }\n }, {\n key: '_option',\n value: function _option(dpi) {\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'option',\n { value: dpi },\n this.props.width / 60 * dpi,\n 'x',\n this.props.height / 60 * dpi,\n 'px (',\n dpi,\n 'DPI)'\n );\n }\n }]);\n\n return DownloadHelper;\n}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);\n\nDownloadHelper.defaultProps = {\n width: 480,\n height: 360\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (DownloadHelper);\n\n/***/ }),\n\n/***/ 123:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n\n// EXTERNAL MODULE: ./node_modules/react/react.js\nvar react = __webpack_require__(0);\nvar react_default = /*#__PURE__*/__webpack_require__.n(react);\n\n// EXTERNAL MODULE: ./node_modules/react-dom/index.js\nvar react_dom = __webpack_require__(77);\nvar react_dom_default = /*#__PURE__*/__webpack_require__.n(react_dom);\n\n// EXTERNAL MODULE: ./node_modules/react-redux/es/index.js + 14 modules\nvar es = __webpack_require__(3);\n\n// EXTERNAL MODULE: ./node_modules/redux/es/index.js + 6 modules\nvar redux_es = __webpack_require__(7);\n\n// EXTERNAL MODULE: ./node_modules/redux-thunk/lib/index.js\nvar lib = __webpack_require__(220);\nvar lib_default = /*#__PURE__*/__webpack_require__.n(lib);\n\n// EXTERNAL MODULE: ./node_modules/qs/lib/index.js\nvar qs_lib = __webpack_require__(35);\nvar qs_lib_default = /*#__PURE__*/__webpack_require__.n(qs_lib);\n\n// EXTERNAL MODULE: ./node_modules/prop-types/index.js\nvar prop_types = __webpack_require__(1);\nvar prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);\n\n// EXTERNAL MODULE: ./node_modules/lodash/lodash.js\nvar lodash = __webpack_require__(6);\nvar lodash_default = /*#__PURE__*/__webpack_require__.n(lodash);\n\n// EXTERNAL MODULE: ./src/state/_const.js\nvar _const = __webpack_require__(21);\n\n// EXTERNAL MODULE: ./src/_helpers.js\nvar _helpers = __webpack_require__(13);\n\n// EXTERNAL MODULE: ./src/selectors/index.js\nvar selectors = __webpack_require__(10);\n\n// EXTERNAL MODULE: ./src/state/data_options.js\nvar data_options = __webpack_require__(15);\n\n// CONCATENATED MODULE: ./src/state/data_cis.js\n\n\nvar SET_PERCENT = 'll4/data_cis/SET_PERCENT';\n\nfunction setPercent(iter) {\n return {\n type: SET_PERCENT,\n payload: iter\n };\n}\n\nvar SET_ITER = 'll4/data_cis/SET_ITER';\n\nfunction setIterations(iter) {\n return {\n type: SET_ITER,\n payload: iter\n };\n}\n\nvar TOGGLE_GRAPH = 'll4/data_cis/TOGGLE_GRAPH';\n\nfunction toggleGraph(graph) {\n return {\n type: TOGGLE_GRAPH,\n payload: graph\n };\n}\n\nvar SET_MC_ITER = 'll4/data_cis/SET_MC_ITER';\n\nfunction setMCIter(iter) {\n return {\n type: SET_MC_ITER,\n payload: iter\n };\n}\n\nvar SET_MC_ANNEAL = 'll4/data_cis/SET_MC_ANNEAL';\n\nfunction setMCAnneal(anneal) {\n return {\n type: SET_MC_ANNEAL,\n payload: anneal\n };\n}\n\nvar SET_MC_SAMPLE = 'll4/data_cis/SET_MC_SAMPLE';\n\nfunction setMCSample(sample) {\n return {\n type: SET_MC_SAMPLE,\n payload: sample\n };\n}\n\nvar initialState = {\n percent: 0,\n iterations: 200,\n graphs: [1, 2],\n mc: {\n iter: 400,\n anneal: 4,\n sample: 20\n }\n};\n\nfunction reducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments[1];\n\n switch (action.type) {\n case SET_PERCENT:\n return Object.assign({}, state, { percent: action.payload });\n case SET_ITER:\n return Object.assign({}, state, { iterations: action.payload });\n case TOGGLE_GRAPH:\n return Object.assign({}, state, { graphs: lodash_default.a.xor(state.graphs, [action.payload]) });\n case SET_MC_ITER:\n return Object.assign({}, state, { mc: Object.assign({}, state.mc, {\n iter: action.payload\n }) });\n case SET_MC_ANNEAL:\n return Object.assign({}, state, { mc: Object.assign({}, state.mc, {\n anneal: action.payload\n }) });\n case SET_MC_SAMPLE:\n return Object.assign({}, state, { mc: Object.assign({}, state.mc, {\n sample: action.payload\n }) });\n default:\n return state;\n }\n}\n// EXTERNAL MODULE: ./src/state/data_datasets.js\nvar data_datasets = __webpack_require__(22);\n\n// CONCATENATED MODULE: ./src/state/model.js\n\n\n\nfunction _loadModels(models) {\n return {\n type: _const[\"l\" /* LOAD_MODELS */],\n payload: models\n };\n}\n\nfunction _loadModelsStart() {\n return {\n type: _const[\"n\" /* LOAD_MODELS_START */]\n };\n}\n\nfunction _loadModelsError() {\n return {\n type: _const[\"m\" /* LOAD_MODELS_ERROR */],\n error: true\n };\n}\n\nfunction loadModels() {\n var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'index';\n\n return function (dispatch) {\n dispatch(_loadModelsStart());\n var endpoint = page == 'logsub' ? 'load_models.json?logsub=true' : 'load_models.json';\n return fetch(Object(_helpers[\"a\" /* API */])(endpoint)).then(function (res) {\n return res.json();\n }).then(function (models) {\n dispatch(_loadModels(models));\n return models;\n }).catch(function (e) {\n console.error(e); // eslint-disable-line no-console\n dispatch(_loadModelsError());\n });\n };\n}\n\nfunction _setModel(model, meta) {\n return {\n type: _const[\"q\" /* SET_MODEL */],\n payload: model,\n meta: meta\n };\n}\n\nfunction setModel(model) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return function (dispatch, getState) {\n var metadata = getState().models.models[model];\n if (!metadata) {\n return;\n }\n dispatch(_setModel(model, Object.assign({\n num_params: metadata.params.length,\n hold_guesses: metadata.hold_guesses,\n can_phase: metadata.can_phase,\n default_options: metadata.default_options,\n num_graphs: metadata.client_plots.reduce(function (indexes, plot, i) {\n return plot.show ? indexes.concat(i) : indexes;\n }, [])\n }, options)));\n };\n}\n\nvar model_initialState = {\n types: [],\n models: {}\n};\n\nfunction model_reducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : model_initialState;\n var action = arguments[1];\n\n switch (action.type) {\n case _const[\"n\" /* LOAD_MODELS_START */]:\n return { status: 0 };\n case _const[\"l\" /* LOAD_MODELS */]:\n return Object.assign({}, action.payload, { status: 1 });\n case _const[\"m\" /* LOAD_MODELS_ERROR */]:\n return { status: -1 };\n default:\n return state;\n }\n}\n// CONCATENATED MODULE: ./src/state/data.js\n\n\n\n\n// import { API, didDataChange } from '_helpers';\n\n\n\n\n\n\n\nvar mds_reducer = data_datasets[\"g\" /* default */].mds_reducer,\n datasets_reducer = data_datasets[\"g\" /* default */].datasets_reducer,\n guess_reducer = data_datasets[\"g\" /* default */].guess_reducer;\n\n\nfunction setData(data, old_data) {\n return {\n type: _const[\"o\" /* SET_DATA */],\n payload: data,\n meta: old_data\n };\n}\n\nfunction setTitle(title) {\n return {\n type: _const[\"r\" /* SET_TITLE */],\n payload: title\n };\n}\n\nfunction _setMethod(method, meta) {\n return {\n type: _const[\"p\" /* SET_METHOD */],\n payload: method,\n meta: meta\n };\n}\n\nfunction setMethod(method) {\n return function (dispatch, getState) {\n if (selectors[\"d\" /* method */].is_built_in(method)) {\n dispatch(_setMethod(method));\n return Promise.resolve();\n }\n var state = getState();\n var params = state.data.datasets.map(function (ds) {\n return ds.params;\n });\n if (!selectors[\"d\" /* method */].is_built_in(Object(selectors[\"d\" /* method */])(state))) {\n params = params.map(function (dsp) {\n return dsp.map(function (wave) {\n return wave.original;\n });\n });\n }\n params = params.map(function (ds) {\n return ds.map(function (wave) {\n return Object.assign({}, wave, {\n guesses: wave.guesses.map(numberify),\n bounds: wave.bounds.map(function (b) {\n return b.map(numberify);\n })\n });\n function numberify(g) {\n return parseFloat(g) || 0;\n }\n });\n });\n return fetch(Object(_helpers[\"a\" /* API */])('convert_guesses.json'), {\n method: 'POST',\n body: qs_lib_default.a.stringify({\n model: state.data.model,\n method: method,\n params: JSON.stringify(params)\n }),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'\n }\n }).then(function (res) {\n return res.json();\n }).then(function (response) {\n dispatch(_setMethod(method, response.params));\n }).catch(function (e) {\n console.error(e, e.stack); // eslint-disable-line no-console\n dispatch(_setMethod(method));\n });\n };\n}\n\nfunction _setWaves(waves) {\n return {\n type: _const[\"s\" /* SET_WAVES */],\n payload: waves\n };\n}\n\nfunction setWaves(waves) {\n return function (dispatch, getState) {\n dispatch(_setWaves(waves));\n var state = getState();\n if (!selectors[\"d\" /* method */].info(state).canPhase && waves > 1) {\n dispatch(setMethod(default_method));\n }\n };\n}\n\nfunction _loadFromServer(result) {\n return {\n type: _const[\"i\" /* LOAD_DATA */],\n payload: result\n };\n}\n\nfunction _loadFromServerStart() {\n return {\n type: _const[\"k\" /* LOAD_DATA_START */]\n };\n}\n\nfunction _loadFromServerError() {\n return {\n type: _const[\"j\" /* LOAD_DATA_ERROR */]\n };\n}\n\nfunction importDS(data) {\n return {\n type: _const[\"h\" /* IMPORT_DATASET */],\n payload: data\n };\n}\n\nfunction data_unloadData() {\n return {\n type: _const[\"w\" /* UNLOAD_DATA */]\n };\n}\n\nfunction loadDataFromLocalLibrary(index) {\n return function (dispatch, getState) {\n var newDS = getState().library[index];\n if (newDS) {\n dispatch(importDS(newDS));\n }\n return Promise.resolve();\n };\n}\n\nfunction loadDataFromServer(file) {\n return function (dispatch) {\n dispatch(_loadFromServerStart());\n var split = file.split('.');\n var url = 'get.json/' + split[1] + '/' + split[2];\n return fetch(Object(_helpers[\"a\" /* API */])(url, 'library'), { method: 'GET', credentials: 'include' }).then(function (res) {\n return res.json();\n }).then(function (response) {\n if (split[1] == 'get') {\n // new style\n return dispatch(importDS(response));\n }\n dispatch(setModel(response.model));\n dispatch(setData(response.data));\n dispatch(setWaves(response.num || 1));\n dispatch(_loadFromServer(response));\n return dispatch(data_datasets[\"h\" /* guessParams */]()).then(function () {\n dispatch(_loadFromServer(response)); // overwrite guesses that we can\n });\n }).catch(function (e) {\n console.error(e, e.stack); // eslint-disable-line no-console\n dispatch(_loadFromServerError());\n });\n };\n}\n\nfunction loadData(path) {\n // can't figure out how to test this one in a normal manner\n return function (dispatch) {\n var split = path.split('.');\n switch (split[0]) {\n case 'library':\n return dispatch(loadDataFromServer(path));\n case 'user':\n return dispatch(loadDataFromLocalLibrary(+split[1]));\n }\n };\n}\n\nvar default_method = 'annealing';\nfunction method_reducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : default_method;\n var action = arguments[1];\n\n if (action.type == _const[\"p\" /* SET_METHOD */]) {\n return action.payload;\n }\n if (!selectors[\"d\" /* method */].is_built_in(state)) {\n if (action.type == _const[\"q\" /* SET_MODEL */]) {\n return default_method;\n }\n }\n return state;\n}\n\nfunction load_reducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var action = arguments[1];\n\n switch (action.type) {\n case _const[\"k\" /* LOAD_DATA_START */]:\n return 1;\n case _const[\"i\" /* LOAD_DATA */]:\n case _const[\"h\" /* IMPORT_DATASET */]:\n return 2;\n case _const[\"j\" /* LOAD_DATA_ERROR */]:\n return -1;\n case _const[\"w\" /* UNLOAD_DATA */]:\n return 0;\n // case SET_DATA:\n // if (didDataChange(action.meta, action.payload)) { // old and new data\n // return 0;\n // }\n // // fall through\n default:\n return state;\n }\n}\n\nvar data_initialState = {\n model: '',\n title: '',\n databox: '',\n method: undefined,\n options: undefined, // to facilitate calling separate reducer\n mds: undefined,\n CIs: undefined,\n guess: undefined,\n load: undefined,\n datasets: undefined,\n metadata: {}\n};\n\nfunction data_reducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : data_initialState;\n var action = arguments[1];\n\n var newState = Object.assign({}, state, {\n method: method_reducer(state.method, action),\n options: Object(data_options[\"default\"])(state.options, action),\n CIs: reducer(state.CIs, action),\n mds: mds_reducer(state.mds, action),\n guess: guess_reducer(state.guess, action),\n load: load_reducer(state.load, action)\n });\n newState.metadata = state.metadata || {};\n // newState is a new object, so we can shallowly mutate it\n switch (action.type) {\n case _const[\"o\" /* SET_DATA */]:\n newState.databox = action.payload;\n // if (didDataChange(state.databox, newState.databox)) {\n // newState.metadata = {};\n // }\n break;\n case _const[\"r\" /* SET_TITLE */]:\n newState.title = action.payload;\n break;\n case _const[\"i\" /* LOAD_DATA */]:\n newState.title = action.payload.title;\n break;\n case _const[\"q\" /* SET_MODEL */]:\n newState.model = action.payload;\n break;\n case _const[\"n\" /* LOAD_MODELS_START */]:\n newState.model = '';\n break;\n case _const[\"h\" /* IMPORT_DATASET */]:\n if (!action.meta) {\n return data_reducer(action.payload, { type: _const[\"h\" /* IMPORT_DATASET */], meta: true });\n // make sure it has all the properties we're expecting by running it through the reducer\n }\n break;\n case _const[\"w\" /* UNLOAD_DATA */]:\n if (!action.meta) {\n return data_reducer(data_initialState, { type: _const[\"w\" /* UNLOAD_DATA */], meta: state });\n // make sure it has all the properties we're expecting by running it through the reducer\n } else {\n newState.model = action.meta.model;\n }\n break;\n }\n newState.datasets = datasets_reducer(state.datasets, action, { mds: newState.mds, databox: newState.databox, title: newState.title });\n return lodash_default.a.every(newState, function (v, k) {\n return state[k] == v;\n }) ? state : newState;\n}\n// CONCATENATED MODULE: ./src/components/Input/Title.jsx\n\n\n\n\n\n\n\n\nfunction Title(_ref) {\n var title = _ref.title,\n _onChange = _ref.onChange;\n\n return react_default.a.createElement(\n 'div',\n { className: 'form-group' },\n react_default.a.createElement(\n 'label',\n { htmlFor: 'title' },\n 'Title'\n ),\n react_default.a.createElement('input', { className: 'form-control', type: 'text', name: 'title', maxLength: 50, id: 'title', onChange: function onChange(event) {\n return _onChange(event.target.value);\n }, value: title })\n );\n}\n\n\n/* harmony default export */ var Input_Title = (Object(es[\"b\" /* connect */])(function (state) {\n return {\n title: state.data.title\n };\n}, function (dispatch) {\n return Object(redux_es[\"b\" /* bindActionCreators */])({\n onChange: setTitle\n }, dispatch);\n})(Title));\n// CONCATENATED MODULE: ./src/components/Input/Data.jsx\n\n\n\n\n\n\n\n\nfunction DataBox(_ref) {\n var databox = _ref.databox,\n _onChange = _ref.onChange;\n\n return react_default.a.createElement(\n 'div',\n { className: 'form-group' },\n react_default.a.createElement('textarea', { rows: 15, wrap: 'off', name: 'data', id: 'data', className: 'form-control',\n onChange: function onChange(event) {\n return _onChange(event.target.value, databox);\n }, value: databox, 'data-toggle': 'tooltip', 'data-placement': 'top' })\n );\n}\n\n\n/* harmony default export */ var Data = (Object(es[\"b\" /* connect */])(function (state) {\n return {\n databox: state.data.databox\n };\n}, function (dispatch) {\n return Object(redux_es[\"b\" /* bindActionCreators */])({\n onChange: setData\n }, dispatch);\n})(DataBox));\n// EXTERNAL MODULE: ./src/components/Collapsible.jsx\nvar Collapsible = __webpack_require__(43);\n\n// CONCATENATED MODULE: ./src/components/Input/Metadata.jsx\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* global $ */\n\n\n\n\n\n\n\n\nfunction Metadata(_ref) {\n var id = _ref.id,\n comments = _ref.comments,\n source = _ref.source,\n tags = _ref.tags,\n uploader = _ref.uploader,\n votes = _ref.votes,\n attachment = _ref.attachment;\n\n if (!id) {\n return null;\n }\n return react_default.a.createElement(\n Collapsible[\"a\" /* default */],\n { title: 'Info' },\n react_default.a.createElement(\n 'div',\n { className: 'library-data' },\n comments ? react_default.a.createElement('div', { id: 'Comments', dangerouslySetInnerHTML: { __html: comments } }) : null,\n source ? react_default.a.createElement(\n 'div',\n null,\n 'Source: ',\n formatSource(source),\n ' '\n ) : null,\n tags.length ? react_default.a.createElement(\n 'div',\n null,\n 'Tags: ',\n tags.join(', '),\n ' '\n ) : null,\n react_default.a.createElement(\n 'div',\n null,\n 'Uploaded by: ',\n formatSource(uploader),\n ' '\n ),\n react_default.a.createElement(Metadata_Votes, Object.assign({}, votes, { id: id })),\n attachment ? react_default.a.createElement(\n 'a',\n { href: Object(_helpers[\"a\" /* API */])('download', 'library', attachment) },\n 'Download attachment'\n ) : null\n )\n );\n}\n\n\nfunction mapStateToProps(state) {\n return state.data.metadata;\n}\n\n/* harmony default export */ var Input_Metadata = (Object(es[\"b\" /* connect */])(mapStateToProps)(Metadata));\n\nfunction formatSource(source) {\n source = Object(_helpers[\"d\" /* parseSource */])(source);\n if (typeof source == 'string') {\n return source;\n } else if ((typeof source === 'undefined' ? 'undefined' : _typeof(source)) == 'object') {\n return react_default.a.createElement(\n 'a',\n { href: source.url },\n source.name\n );\n }\n}\n\nvar Metadata_Votes = function (_React$Component) {\n _inherits(Votes, _React$Component);\n\n function Votes(props) {\n _classCallCheck(this, Votes);\n\n var _this = _possibleConstructorReturn(this, (Votes.__proto__ || Object.getPrototypeOf(Votes)).call(this, props));\n\n _this.state = props;\n return _this;\n }\n\n _createClass(Votes, [{\n key: '_vote',\n value: function _vote(dir) {\n var _this2 = this;\n\n return fetch(Object(_helpers[\"a\" /* API */])('vote.json', 'library', [dir, this.props.id]), { method: 'POST', credentials: 'include', redirect: 'manual', headers: { 'X-Requested-With': 'XMLHttpRequest' } }).then(function (res) {\n if (res.ok) {\n return res.json().then(function (newScore) {\n _this2.setState(newScore);\n });\n } else {\n var flash = typeof $ != 'undefined' ? $.web2py.flash : alert;\n if (res.status == 401) {\n flash('You must be logged in to vote.');\n } else {\n return res.text().then(function (text) {\n return flash(text);\n });\n }\n }\n });\n }\n }, {\n key: 'render',\n value: function render() {\n return react_default.a.createElement(\n 'span',\n { className: 'votes' },\n 'Votes: ',\n ' ',\n react_default.a.createElement(\n 'b',\n null,\n this.state.votes\n ),\n react_default.a.createElement('i', {\n className: 'glyphicon glyphicon-thumbs-up' + (this.state.my_vote === true ? ' active' : ''),\n title: this.state.upvotes,\n onClick: this._vote.bind(this, 'up')\n }),\n react_default.a.createElement('i', {\n className: 'glyphicon glyphicon-thumbs-down' + (this.state.my_vote === false ? ' active' : ''),\n title: this.state.downvotes,\n onClick: this._vote.bind(this, 'down')\n }),\n react_default.a.createElement('br', null)\n );\n }\n }]);\n\n return Votes;\n}(react_default.a.Component);\n// CONCATENATED MODULE: ./src/components/Input/Scale.jsx\n\n\n\n\n\n\n\n\nfunction _Transform(_ref) {\n var options = _ref.options,\n actions = _ref.actions,\n isLogsub = _ref.isLogsub;\n\n if (isLogsub) {\n return react_default.a.createElement(\n 'div',\n { id: 'Scale' },\n 'Transform data:',\n react_default.a.createElement(\n 'div',\n { className: 'checkbox' },\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'checkbox', checked: options.rate, onChange: actions.rate }),\n ' Cumulative -> rate '\n )\n ),\n react_default.a.createElement(\n 'div',\n { className: 'checkbox' },\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'checkbox', checked: options.share, onChange: actions.share }),\n ' Absolute -> market share'\n )\n )\n );\n }\n return null;\n}\n\nvar Transform = Object(es[\"b\" /* connect */])(Scale_mapStateToProps, mapDispatchToProps)(_Transform);\n\nfunction _Log(_ref2) {\n var options = _ref2.options,\n actions = _ref2.actions,\n isLogsub = _ref2.isLogsub;\n\n if (!isLogsub) {\n return react_default.a.createElement(\n 'div',\n { id: 'Scale' },\n react_default.a.createElement(\n 'p',\n null,\n 'Scale: ',\n ' ',\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'checkbox', checked: options.logx, onChange: actions.logx }),\n ' log10(x)'\n ),\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'checkbox', checked: options.logy, onChange: actions.logy }),\n ' log10(y)'\n )\n ),\n react_default.a.createElement(\n 'p',\n null,\n 'Normalize: ',\n ' ',\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'checkbox', checked: options.normalizex, onChange: actions.normalizex }),\n ' Normalize x'\n ),\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'checkbox', checked: options.normalizey, onChange: actions.normalizey }),\n ' Normalize y'\n )\n )\n );\n }\n return null;\n}\n\nvar Log = Object(es[\"b\" /* connect */])(Scale_mapStateToProps, mapDispatchToProps)(_Log);\n\nfunction _DivideY(_ref3) {\n var options = _ref3.options,\n actions = _ref3.actions;\n\n return react_default.a.createElement(\n 'div',\n { id: 'DivideY' },\n react_default.a.createElement(\n 'span',\n { title: 'Divide y values by ___' },\n 'Scale y values'\n ),\n ':',\n react_default.a.createElement('input', { type: 'number', value: options.divide, onChange: function onChange(_ref4) {\n var target = _ref4.target;\n return actions.divide(+target.value);\n } })\n );\n}\n\nvar DivideY = Object(es[\"b\" /* connect */])(Scale_mapStateToProps, mapDispatchToProps)(_DivideY);\n\nfunction Scale_mapStateToProps(state) {\n return {\n options: state.data.options.transform,\n isLogsub: Object(selectors[\"b\" /* isLogsub */])(state)\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n actions: Object(redux_es[\"b\" /* bindActionCreators */])({\n logx: data_options[\"toggleTransformLogX\"],\n logy: data_options[\"toggleTransformLogY\"],\n normalizex: data_options[\"toggleNormalizeX\"],\n normalizey: data_options[\"toggleNormalizeY\"],\n rate: data_options[\"toggleTransformRate\"],\n share: data_options[\"toggleTransformMarketShare\"],\n divide: data_options[\"setDivision\"]\n }, dispatch)\n };\n}\n// CONCATENATED MODULE: ./src/components/Input/DataPreview.jsx\nvar DataPreview__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction DataPreview__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction DataPreview__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction DataPreview__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* global $ */\n\n\n\n\n\n\n\nvar DataPreview_DataPreview = function (_Component) {\n DataPreview__inherits(DataPreview, _Component);\n\n function DataPreview(props) {\n DataPreview__classCallCheck(this, DataPreview);\n\n var _this = DataPreview__possibleConstructorReturn(this, (DataPreview.__proto__ || Object.getPrototypeOf(DataPreview)).call(this, props));\n\n _this.state = { shown: false, fetching: false };\n return _this;\n }\n\n DataPreview__createClass(DataPreview, [{\n key: '_toggleShown',\n value: function _toggleShown() {\n var _this2 = this;\n\n var shown = !this.state.shown;\n this.setState({ shown: shown, image: null });\n if (shown) {\n return this.fetch().then(function () {\n if (window.$) {\n var img = $('').attr({ src: _this2.state.image, height: 200 });\n var html = $('
').append(img).html();\n $(_this2._button).popover({ content: html, html: true, placement: 'top', trigger: 'manual' }).popover('show');\n }\n });\n } else {\n if (window.$) {\n $(this._button).popover('destroy');\n }\n return Promise.resolve();\n }\n }\n }, {\n key: 'fetch',\n value: function (_fetch) {\n function fetch() {\n return _fetch.apply(this, arguments);\n }\n\n fetch.toString = function () {\n return _fetch.toString();\n };\n\n return fetch;\n }(function () {\n var _this3 = this;\n\n this.setState({ fetching: true });\n var body = this.props.body;\n return fetch(Object(_helpers[\"a\" /* API */])('show_data'), {\n method: 'POST',\n body: qs_lib_default.a.stringify(body),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'\n }\n }).then(function (response) {\n return response.blob();\n }).then(function (image) {\n _this3.setState({ image: URL.createObjectURL(image) });\n }).catch(function (e) {\n console.error(e); // eslint-disable-line no-console\n }).then(function () {\n _this3.setState({ fetching: false });\n });\n })\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n return react_default.a.createElement(\n 'div',\n null,\n react_default.a.createElement(\n 'button',\n { type: 'button', id: 'show-preview', onClick: this._toggleShown.bind(this), ref: function ref(button) {\n _this4._button = button;\n } },\n this.state.fetching ? react_default.a.createElement('i', { className: 'glyphicon glyphicon-refresh spinning' }) : null,\n this.state.shown ? 'Hide' : 'Show',\n ' data preview'\n ),\n !window.$ && this.state.image ? react_default.a.createElement('img', { src: this.state.image, height: 200 }) : null\n );\n }\n }]);\n\n return DataPreview;\n}(react[\"Component\"]);\n\n\nfunction DataPreview_mapStateToProps(state) {\n return {\n body: {\n data: state.data.databox,\n title: state.data.title,\n logx: +state.data.options.transform.logx,\n logy: +state.data.options.transform.logy,\n ignore0: +state.data.options.ignore0\n }\n };\n}\n\n/* harmony default export */ var Input_DataPreview = (Object(es[\"b\" /* connect */])(DataPreview_mapStateToProps)(DataPreview_DataPreview));\n// CONCATENATED MODULE: ./src/components/Input/UploadFile.jsx\nvar UploadFile__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction UploadFile__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction UploadFile__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction UploadFile__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\nvar UploadFile_UploadFile = function (_Component) {\n UploadFile__inherits(UploadFile, _Component);\n\n function UploadFile() {\n UploadFile__classCallCheck(this, UploadFile);\n\n return UploadFile__possibleConstructorReturn(this, (UploadFile.__proto__ || Object.getPrototypeOf(UploadFile)).apply(this, arguments));\n }\n\n UploadFile__createClass(UploadFile, [{\n key: 'txt',\n value: function txt(data, title) {\n var dispatch = this.props.dispatch;\n\n dispatch(setData(data));\n dispatch(setTitle(title));\n }\n }, {\n key: 'json',\n value: function json(data) {\n data = JSON.parse(data);\n var dispatch = this.props.dispatch;\n\n dispatch(importDS(data));\n }\n }, {\n key: 'xlsx',\n value: function xlsx(data, title) {\n var dispatch = this.props.dispatch;\n\n dispatch(setTitle(title));\n __webpack_require__.e/* import() */(0).then(__webpack_require__.bind(null, 269)).then(function (XLSX) {\n var workbook = XLSX.read(data, { type: 'binary' });\n var sheet1 = workbook.getSheet(0);\n var table = XLSX.utils.sheet_to_csv(sheet1);\n dispatch(setData(table));\n }).catch(function (e) {\n console.error('Could not parse XLSX', e); // eslint-disable-line no-console\n });\n }\n }, {\n key: 'parse',\n value: function parse() {\n var _this2 = this;\n\n var file = this._file.files[0];\n var name = file.name.match(/(.*)\\.([a-z0-9]+)$/i) || [],\n ext = name[2],\n title = name[1];\n\n if (~['csv', 'txt'].indexOf(ext)) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var data = e.target.result;\n _this2.txt(data, title);\n };\n reader.readAsText(file);\n } else if (~['json'].indexOf(ext)) {\n var _reader = new FileReader();\n _reader.onload = function (e) {\n var data = e.target.result;\n _this2.json(data, title);\n };\n _reader.readAsText(file);\n } else if (~['ods', 'xls', 'xlsx'].indexOf(ext)) {\n var _reader2 = new FileReader();\n _reader2.onload = function (e) {\n var data = e.target.result;\n _this2.xlsx(data, title);\n };\n _reader2.readAsBinaryString(file);\n } else {\n alert('You uploaded a file of type ' + (ext ? '.' + ext : 'unknown') + '. Please give one of the following file types: .CSV, .XLS, .XLSX, .ODS');\n }\n }\n }, {\n key: 'triggerUpload',\n value: function triggerUpload() {\n // upload button strategy from http://stackoverflow.com/a/16015086/3187556\n this._file.click();\n return false;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n return Modernizr.filereader && react_default.a.createElement(\n 'div',\n { id: 'UploadFile' },\n react_default.a.createElement(\n 'button',\n { type: 'button', onClick: this.triggerUpload.bind(this) },\n 'Upload File'\n ),\n react_default.a.createElement('input', {\n ref: function ref(file) {\n return _this3._file = file;\n },\n type: 'file',\n accept: '.xlsx, .xls, .ods, .csv, .txt, .json, text/plain, text/csv, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.oasis.opendocument.spreadsheet, application/json',\n onChange: this.parse.bind(this)\n })\n );\n }\n }]);\n\n return UploadFile;\n}(react[\"Component\"]);\n\n\n/* harmony default export */ var Input_UploadFile = (Object(es[\"b\" /* connect */])()(UploadFile_UploadFile));\n// CONCATENATED MODULE: ./src/components/Input/Ignore0.jsx\n\n\n\n\n\n\n\n\nfunction Ignore0(_ref) {\n var ignore0 = _ref.ignore0,\n _onChange = _ref.onChange;\n\n return react_default.a.createElement(\n 'p',\n null,\n 'Exclude zeros:',\n react_default.a.createElement('input', { name: 'o-delzero', type: 'checkbox', checked: ignore0, onChange: function onChange(event) {\n return _onChange(event.target.checked);\n } })\n );\n}\n\n\n/* harmony default export */ var Input_Ignore0 = (Object(es[\"b\" /* connect */])(function (state) {\n return {\n ignore0: state.data.options.ignore0\n };\n}, function (dispatch) {\n return Object(redux_es[\"b\" /* bindActionCreators */])({\n onChange: data_options[\"toggleIgnore0\"]\n }, dispatch);\n})(Ignore0));\n// EXTERNAL MODULE: ./node_modules/file-saver/FileSaver.js\nvar FileSaver = __webpack_require__(65);\nvar FileSaver_default = /*#__PURE__*/__webpack_require__.n(FileSaver);\n\n// EXTERNAL MODULE: ./src/selectors/plot/download.js + 1 modules\nvar plot_download = __webpack_require__(66);\n\n// EXTERNAL MODULE: ./src/selectors/plot/index.js + 1 modules\nvar plot = __webpack_require__(45);\n\n// CONCATENATED MODULE: ./src/state/library.js\n\n\n\n\n\n\n/*\nconst SAVE_DS_TO_LIBRARY = 'll4/library/SAVE_DS_TO_LIBRARY';\n\nexport function saveDS(data) {\n return {\n type: SAVE_DS_TO_LIBRARY,\n payload: data\n };\n}\n\nexport function saveCurrentDS() {\n return (dispatch, getState) => {\n dispatch(saveDS(getState().data));\n };\n}\n*/\n\nfunction downloadCurrentDS() {\n return function (dispatch, getState) {\n var ds = getState().data;\n Object(FileSaver[\"saveAs\"])(new Blob([JSON.stringify(ds)], { type: 'application/json' }), ds.title + '_export.json');\n };\n}\n\nfunction saveRemote() {\n return function (dispatch, getState) {\n var state = getState();\n localStorage.setItem('library:page', state.page);\n localStorage.setItem('library:data', JSON.stringify(state.data));\n return Object(plot_download[\"a\" /* default */])().then(function (_ref) {\n var getAllPngs = _ref.getAllPngs;\n return getAllPngs(Object(plot[\"c\" /* selector */])(state));\n }).then(function (graphs) {\n localStorage.setItem('library:graphs', JSON.stringify(graphs));\n var uploader = state.data.metadata.uploader;\n if (uploader) {\n uploader = +uploader.match(/\\/person\\/(\\d+)\\)$/)[1];\n }\n var isOwner = window.w2p_uid && state.data.metadata.id && window.w2p_uid == uploader;\n var endpoint = isOwner ? Object(_helpers[\"a\" /* API */])('edit', 'library', [state.data.metadata.id]) : Object(_helpers[\"a\" /* API */])('upload', 'library');\n if (isOwner) {\n alert(\"You are going to overwrite an existing dataset. If you don't want to do this, click the 'Save as a new dataset' link on the next page.\");\n }\n location.assign(endpoint);\n });\n };\n}\n\n/*\nconst REMOVE_DS_FROM_LIBRARY = 'll4/library/REMOVE_DS_FROM_LIBRARY';\n\nexport function removeDS(index) {\n return {\n type: REMOVE_DS_FROM_LIBRARY,\n payload: index\n };\n}\n\nconst UPDATE_LIBRARY_DS = 'll4/library/UPDATE_LIBRARY_DS';\n\nexport function updateDS(index, data) {\n return {\n type: UPDATE_LIBRARY_DS,\n payload: {index, data}\n };\n}\n\nconst initialState = [];\n\nexport default function reducer(state=initialState, action) {\n switch (action.type) {\n case SAVE_DS_TO_LIBRARY:\n if (state.filter(ds=>ds.title==action.payload.title).length) {\n return state.map(ds => ds.title === action.payload.title ? action.payload : ds);\n }\n return state.concat(action.payload);\n case REMOVE_DS_FROM_LIBRARY:\n return state.filter((ds, i) => i !== action.payload);\n case UPDATE_LIBRARY_DS:\n return state.map((ds, i) => i === action.payload.index ? action.payload.data : ds);\n default:\n return state;\n }\n}\n*/\n// CONCATENATED MODULE: ./src/components/Input/SaveDataset.jsx\n\n\n\n\n\n\n\nfunction SaveDataset(_ref) {\n var save = _ref.save,\n download = _ref.download;\n\n return react_default.a.createElement(\n 'div',\n { id: 'SaveDataset' },\n react_default.a.createElement(\n 'button',\n { type: 'button', onClick: save },\n 'Save dataset to library'\n ),\n react_default.a.createElement(\n 'button',\n { type: 'button', className: 'btn btn-link', onClick: download },\n 'Download dataset'\n )\n );\n}\n\n\nfunction SaveDataset_mapDispatchToProps(dispatch) {\n return Object(redux_es[\"b\" /* bindActionCreators */])({\n save: saveRemote,\n download: downloadCurrentDS\n }, dispatch);\n}\n\n/* harmony default export */ var Input_SaveDataset = (Object(es[\"b\" /* connect */])(function () {\n return {};\n}, SaveDataset_mapDispatchToProps)(SaveDataset));\n// CONCATENATED MODULE: ./src/components/Input/DataContainer.jsx\nvar DataContainer__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction DataContainer__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction DataContainer__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction DataContainer__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n\n\n\n\n\nvar DataContainer_DataContainer = function (_Component) {\n DataContainer__inherits(DataContainer, _Component);\n\n function DataContainer() {\n DataContainer__classCallCheck(this, DataContainer);\n\n return DataContainer__possibleConstructorReturn(this, (DataContainer.__proto__ || Object.getPrototypeOf(DataContainer)).apply(this, arguments));\n }\n\n DataContainer__createClass(DataContainer, [{\n key: 'render',\n value: function render() {\n return react_default.a.createElement(\n 'fieldset',\n { id: 'DataContainer' },\n react_default.a.createElement(\n 'legend',\n null,\n 'Input Data'\n ),\n react_default.a.createElement(Input_Title, null),\n react_default.a.createElement(Transform, null),\n react_default.a.createElement(Data, null),\n react_default.a.createElement(DivideY, null),\n react_default.a.createElement(Input_Metadata, null),\n react_default.a.createElement(Input_DataPreview, null),\n react_default.a.createElement(Input_UploadFile, null),\n react_default.a.createElement(Input_Ignore0, null),\n react_default.a.createElement(Input_SaveDataset, null)\n );\n }\n }]);\n\n return DataContainer;\n}(react[\"Component\"]);\n\n/* harmony default export */ var Input_DataContainer = (DataContainer_DataContainer);\n// CONCATENATED MODULE: ./src/components/Input/CurrentModel.jsx\n\n\n// import { bindActionCreators } from 'redux';\n\n\n// import { setModel } from 'state/model';\n\n\nfunction CurrentModel(_ref) {\n var model = _ref.model;\n\n return react_default.a.createElement(\n 'h4',\n { id: 'CurrentModel' },\n 'Current Model:',\n ' ',\n Object(_helpers[\"e\" /* presentModel */])(model)\n );\n}\n\n\n/* harmony default export */ var Input_CurrentModel = (Object(es[\"b\" /* connect */])(function (state) {\n return {\n model: state.data.model\n // modelTypes: state.models.types || []\n };\n}\n// dispatch => bindActionCreators({\n// onChange: setModel\n// }, dispatch)\n)(CurrentModel));\n// CONCATENATED MODULE: ./src/components/Input/Parameters/NumberInput.jsx\n\n\n\nvar num_regex = /^-?\\d*\\.?\\d*$/;\n\nvar NumberInput_NumberInput = function NumberInput(_ref) {\n var name = _ref.name,\n value = _ref.value,\n onChange = _ref.onChange;\n\n return react_default.a.createElement('input', {\n name: name,\n step: 'any',\n type: 'text',\n className: 'NumberInput',\n value: value == null ? '' : value,\n onChange: handleChange\n });\n\n function handleChange(event) {\n if (num_regex.test(event.target.value)) {\n onChange(event.target.value);\n }\n }\n};\n\n\n/* harmony default export */ var Parameters_NumberInput = (NumberInput_NumberInput);\n// CONCATENATED MODULE: ./src/components/Input/Parameters/Guess.jsx\n\n\n\n\n\nvar Guess_Guess = function Guess(_ref) {\n var name = _ref.name,\n value = _ref.value,\n held = _ref.held,\n description = _ref.description,\n onValueChange = _ref.onValueChange,\n onHoldChange = _ref.onHoldChange;\n\n return react_default.a.createElement(\n 'span',\n { className: 'param' },\n react_default.a.createElement('input', { name: 'fixg', tabIndex: '-1', type: 'checkbox', checked: held, onChange: onHoldChange }),\n react_default.a.createElement(\n 'label',\n { title: description },\n name\n ),\n react_default.a.createElement(Parameters_NumberInput, { name: 'guess', value: value, onChange: function onChange(num) {\n return onValueChange(num);\n } })\n );\n};\n\n\n/* harmony default export */ var Parameters_Guess = (Guess_Guess);\n// CONCATENATED MODULE: ./src/components/Input/Parameters/Guesses.jsx\n\n\n\n\n\n\nvar Guesses_Guesses = function Guesses(_ref) {\n var values = _ref.values,\n held = _ref.held,\n names = _ref.names,\n descriptions = _ref.descriptions,\n title = _ref.title,\n _onValueChange = _ref.onValueChange,\n _onHoldChange = _ref.onHoldChange,\n _ref$Elem = _ref.Elem,\n Elem = _ref$Elem === undefined ? Parameters_Guess : _ref$Elem;\n\n if (values.length != names.length) {\n throw new TypeError('values.length != names.length. Provided: ' + JSON.stringify({ values: values, names: names }));\n }\n if (!descriptions) {\n descriptions = Array(values.length);\n }\n return react_default.a.createElement(\n 'td',\n { className: 'popt' },\n react_default.a.createElement(\n 'b',\n null,\n title\n ),\n values.map(function (value, i) {\n return react_default.a.createElement(Elem, {\n key: i,\n value: value,\n name: names[i],\n held: lodash_default.a.includes(held, i),\n description: descriptions[i],\n onValueChange: function onValueChange(val) {\n return _onValueChange(i, val);\n },\n onHoldChange: function onHoldChange() {\n return _onHoldChange(i);\n } });\n })\n );\n};\n\n\n/* harmony default export */ var Parameters_Guesses = (Guesses_Guesses);\n// EXTERNAL MODULE: ./src/components/Input/Parameters/GuessParams.jsx\nvar GuessParams = __webpack_require__(244);\n\n// CONCATENATED MODULE: ./src/components/Input/Parameters/Waves.jsx\n\n\n\n\nvar Waves_Waves = function Waves(_ref) {\n var numWaves = _ref.numWaves,\n numDS = _ref.numDS,\n _onChange = _ref.onChange;\n\n var name = lodash_default.a.uniqueId('loginum_');\n // we need this so that we can have multiple copies of the radio set on the page\n return react_default.a.createElement(\n 'tr',\n { className: 'loginum', 'data-toggle': 'tooltip', 'data-placement': 'top' },\n lodash_default.a.range(1, numWaves + 2).map(function (i) {\n return react_default.a.createElement(\n 'td',\n { colSpan: numDS, key: i },\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'radio', name: name, checked: i == numWaves, onChange: function onChange() {\n return _onChange(i);\n } }),\n i,\n ' ',\n i == 1 ? 'Wave' : 'Waves'\n )\n );\n })\n );\n};\n\n\n/* harmony default export */ var Parameters_Waves = (Waves_Waves);\n// EXTERNAL MODULE: ./src/components/Input/Parameters/Parameters.css\nvar Parameters = __webpack_require__(245);\nvar Parameters_default = /*#__PURE__*/__webpack_require__.n(Parameters);\n\n// CONCATENATED MODULE: ./src/components/Input/Parameters/MetaParameters.jsx\n\n\n\n\n\n\n\n\n\n\n\n\nvar MetaParameters_MetaParameters = function MetaParameters(_ref) {\n var datasets = _ref.datasets,\n mds = _ref.mds,\n _ref$canPhase = _ref.canPhase,\n canPhase = _ref$canPhase === undefined ? true : _ref$canPhase,\n names = _ref.names,\n descriptions = _ref.descriptions,\n _onValueChange = _ref.onValueChange,\n _onHoldChange = _ref.onHoldChange,\n onWavesChange = _ref.onWavesChange,\n values = _ref.values,\n Elem = _ref.Elem;\n\n if (!mds) {\n datasets = [datasets[0]];\n }\n var waves = datasets[0].params.length;\n var num_ds = datasets.length;\n\n var longest_name = names.reduce(function (longest, name) {\n return Math.max(name.length, longest);\n }, 0);\n names = names.map(function (name) {\n return lodash_default.a.padEnd(name, longest_name);\n });\n\n return react_default.a.createElement(\n 'div',\n null,\n react_default.a.createElement(\n 'table',\n { className: 'Parameters' },\n react_default.a.createElement(\n 'thead',\n null,\n canPhase ? react_default.a.createElement(Parameters_Waves, { numWaves: waves, numDS: num_ds, onChange: onWavesChange }) : null\n ),\n react_default.a.createElement(\n 'tbody',\n null,\n react_default.a.createElement(\n 'tr',\n null,\n lodash_default.a.range(waves).map(function (w) {\n return datasets.map(function (_ref2, d) {\n var params = _ref2.params,\n title = _ref2.title;\n return react_default.a.createElement(Parameters_Guesses, {\n key: d + '-' + w,\n values: values(params[w]),\n held: params[w].fixg,\n title: num_ds > 1 ? title : null,\n names: names,\n descriptions: descriptions,\n onValueChange: function onValueChange(p, val) {\n return _onValueChange(d, w, p, val);\n },\n onHoldChange: function onHoldChange(p) {\n return _onHoldChange(d, w, p);\n },\n Elem: Elem });\n });\n })\n )\n )\n ),\n react_default.a.createElement(\n 'div',\n null,\n react_default.a.createElement(GuessParams[\"a\" /* default */], null)\n )\n );\n};\n\n\nfunction MetaParameters_mapStateToProps(state) {\n // used in Parameters and Bounds\n return {\n datasets: state.data.datasets,\n mds: state.data.mds.fit == data_datasets[\"b\" /* MDS_FIT_EACH */] && state.data.mds.params == data_datasets[\"c\" /* MDS_PARAMS_EACH */],\n canPhase: Object(selectors[\"a\" /* current_model */])(state).can_phase && !Object(selectors[\"b\" /* isLogsub */])(state),\n names: Object(selectors[\"f\" /* param_names */])(state),\n descriptions: Object(selectors[\"e\" /* param_description */])(state)\n };\n}\n\n/* harmony default export */ var Parameters_MetaParameters = (MetaParameters_MetaParameters);\n// CONCATENATED MODULE: ./src/components/Input/Parameters/Parameters.jsx\n\n\n\n\n\n\n\n\n\n\nfunction Parameters_Parameters(_ref) {\n var datasets = _ref.datasets,\n mds = _ref.mds,\n canPhase = _ref.canPhase,\n names = _ref.names,\n descriptions = _ref.descriptions,\n onValueChange = _ref.onValueChange,\n onHoldChange = _ref.onHoldChange,\n onWavesChange = _ref.onWavesChange;\n\n return react_default.a.createElement(Parameters_MetaParameters, {\n datasets: datasets,\n mds: mds,\n canPhase: canPhase,\n names: names,\n descriptions: descriptions,\n onValueChange: onValueChange,\n onHoldChange: onHoldChange,\n onWavesChange: onWavesChange,\n values: function values(params) {\n return params.guesses;\n },\n Elem: Parameters_Guess\n });\n}\n\n\nfunction Parameters_mapDispatchToProps(dispatch) {\n return Object(redux_es[\"b\" /* bindActionCreators */])({\n onValueChange: data_datasets[\"f\" /* changeGuess */],\n onHoldChange: data_datasets[\"m\" /* toggleFixParam */],\n onWavesChange: setWaves\n }, dispatch);\n}\n\n/* harmony default export */ var Input_Parameters_Parameters = (Object(es[\"b\" /* connect */])(MetaParameters_mapStateToProps, Parameters_mapDispatchToProps)(Parameters_Parameters));\n// CONCATENATED MODULE: ./src/components/Input/Parameters/MultiDataset.jsx\n\n\n\n\n\n\n\n\nfunction MultiDataset(_ref) {\n var mds = _ref.mds,\n fit = _ref.fit,\n params = _ref.params,\n actions = _ref.actions,\n isLogsub = _ref.isLogsub;\n\n if (!mds) {\n return null;\n }\n return react_default.a.createElement(\n 'div',\n { id: 'multidataset' },\n !isLogsub ? react_default.a.createElement(\n 'div',\n null,\n 'You seem to have multiple datasets.',\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'radio', name: 'multidataset', value: 'all', checked: fit == data_datasets[\"a\" /* MDS_FIT_ALL */], onChange: actions.fitAll }),\n 'Fit all as one dataset'\n ),\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'radio', name: 'multidataset', value: 'each', checked: fit == data_datasets[\"b\" /* MDS_FIT_EACH */], onChange: actions.fitEach }),\n 'Fit each column separately'\n )\n ) : null,\n fit == data_datasets[\"b\" /* MDS_FIT_EACH */] ? react_default.a.createElement(\n 'div',\n null,\n 'Set parameters for',\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'radio', name: 'show-params-for', value: 'together', checked: params == data_datasets[\"d\" /* MDS_PARAMS_TOGETHER */], onChange: actions.paramsTogether }),\n 'all data together'\n ),\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'radio', name: 'show-params-for', value: 'each', checked: params == data_datasets[\"c\" /* MDS_PARAMS_EACH */], onChange: actions.paramsEach }),\n 'each dataset'\n )\n ) : null\n );\n}\n\n\nfunction MultiDataset_mapStateToProps(state) {\n return Object.assign({}, state.data.mds, {\n mds: Object(selectors[\"c\" /* mds */])(state),\n isLogsub: Object(selectors[\"b\" /* isLogsub */])(state)\n });\n}\n\nfunction MultiDataset_mapDispatchToProps(dispatch) {\n return {\n actions: Object(redux_es[\"b\" /* bindActionCreators */])({\n fitEach: data_datasets[\"j\" /* mdsFitEach */],\n fitAll: data_datasets[\"i\" /* mdsFitAll */],\n paramsTogether: data_datasets[\"l\" /* mdsParamsTogether */],\n paramsEach: data_datasets[\"k\" /* mdsParamsEach */]\n }, dispatch)\n };\n}\n\n/* harmony default export */ var Parameters_MultiDataset = (Object(es[\"b\" /* connect */])(MultiDataset_mapStateToProps, MultiDataset_mapDispatchToProps)(MultiDataset));\n// CONCATENATED MODULE: ./src/components/Input/FittingMethod.jsx\n\n\n\n\n\n\n\n\n\n\nfunction FittingMethod(_ref) {\n var method = _ref.method,\n extraMethods = _ref.extraMethods,\n singleWave = _ref.singleWave,\n _onChange = _ref.onChange;\n\n return react_default.a.createElement(\n 'div',\n { id: 'methods', className: 'borderBottom' },\n 'Fitting method:',\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'radio', name: 'method', value: 'annealing', checked: method == 'annealing', onChange: function onChange() {\n return _onChange('annealing');\n } }),\n 'Monte-Carlo'\n ),\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { type: 'radio', name: 'method', value: 'curvefit', checked: method == 'curvefit', onChange: function onChange() {\n return _onChange('curvefit');\n } }),\n 'Least Squares'\n ),\n lodash_default.a.map(extraMethods, function (m) {\n return react_default.a.createElement(\n 'label',\n { key: m.id },\n react_default.a.createElement('input', { type: 'radio', name: 'method', value: m.id, checked: method == m.id, disabled: !m.canPhase && !singleWave, onChange: function onChange() {\n return _onChange(m.id);\n } }),\n m.name\n );\n })\n );\n}\n\n\nfunction FittingMethod_mapStateToProps(state) {\n return {\n method: Object(selectors[\"d\" /* method */])(state),\n extraMethods: Object(selectors[\"a\" /* current_model */])(state).fitting_methods,\n singleWave: Object(selectors[\"h\" /* singleWave */])(state)\n };\n}\n\nfunction FittingMethod_mapDispatchToProps(dispatch) {\n return Object(redux_es[\"b\" /* bindActionCreators */])({\n onChange: setMethod\n }, dispatch);\n}\n\n/* harmony default export */ var Input_FittingMethod = (Object(es[\"b\" /* connect */])(FittingMethod_mapStateToProps, FittingMethod_mapDispatchToProps)(FittingMethod));\n// CONCATENATED MODULE: ./src/components/Input/Parameters/Bound.jsx\n\n\n\n\n\nvar Bound_Bound = function Bound(_ref) {\n var name = _ref.name,\n value = _ref.value,\n description = _ref.description,\n onValueChange = _ref.onValueChange;\n\n return react_default.a.createElement(\n 'span',\n { className: 'param' },\n react_default.a.createElement(\n 'span',\n { title: description },\n name\n ),\n react_default.a.createElement(Parameters_NumberInput, { name: 'bound', value: value[0], onChange: function onChange(num) {\n return onValueChange([0, num]);\n } }),\n '\\u2013',\n react_default.a.createElement(Parameters_NumberInput, { name: 'bound', value: value[1], onChange: function onChange(num) {\n return onValueChange([1, num]);\n } })\n );\n};\n\n\n/* harmony default export */ var Parameters_Bound = (Bound_Bound);\n// CONCATENATED MODULE: ./src/components/Input/Parameters/Bounds.jsx\n\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\n\n\n\n\n\n\n\n\n\n\nfunction Bounds(_ref) {\n var datasets = _ref.datasets,\n mds = _ref.mds,\n canPhase = _ref.canPhase,\n names = _ref.names,\n descriptions = _ref.descriptions,\n _onValueChange = _ref.onValueChange,\n onWavesChange = _ref.onWavesChange;\n\n return react_default.a.createElement(Parameters_MetaParameters, {\n datasets: datasets,\n mds: mds,\n canPhase: canPhase,\n names: names,\n descriptions: descriptions,\n onValueChange: function onValueChange(ds, wave, param, _ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n upLow = _ref3[0],\n value = _ref3[1];\n\n return _onValueChange(ds, wave, param, upLow, value);\n },\n onWavesChange: onWavesChange,\n values: function values(params) {\n return params.bounds;\n },\n Elem: Parameters_Bound,\n footer: react_default.a.createElement(\n 'p',\n null,\n 'Each parameter takes an upper and lower bound.'\n ) });\n}\n\n\nfunction Bounds_mapDispatchToProps(dispatch) {\n return Object(redux_es[\"b\" /* bindActionCreators */])({\n onValueChange: data_datasets[\"e\" /* changeBound */],\n onWavesChange: setWaves\n }, dispatch);\n}\n\n/* harmony default export */ var Parameters_Bounds = (Object(es[\"b\" /* connect */])(MetaParameters_mapStateToProps, Bounds_mapDispatchToProps)(Bounds));\n// CONCATENATED MODULE: ./src/components/Input/MCObjectiveFunction.jsx\n\n\nvar MCObjectiveFunction__slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\n\n\n\n\n\n\n\n\n\nfunction MCObjectiveFunction(_ref) {\n var battery = _ref.battery,\n _onChange = _ref.onChange,\n hasRSQ = _ref.hasRSQ;\n\n var options = ['sumsquares', 'rms', 'sumlogsquares', 'mad', 'mle'];\n var names = ['sum of squares', 'RMS', 'sum(ln(squares))', 'MAD', 'MLE (slow)'];\n if (hasRSQ) {\n options.push('rsquared');\n names.push('R2');\n }\n return react_default.a.createElement(\n 'div',\n { id: 'MCObjectiveFunction' },\n 'Objective Function:',\n lodash_default.a.zip(options, names).map(function (_ref2) {\n var _ref3 = MCObjectiveFunction__slicedToArray(_ref2, 2),\n opt = _ref3[0],\n name = _ref3[1];\n\n return react_default.a.createElement(\n 'label',\n { key: opt },\n react_default.a.createElement('input', { name: 'o-battery', type: 'radio', value: opt, checked: battery == opt, onChange: function onChange() {\n return _onChange(opt);\n } }),\n react_default.a.createElement('span', { dangerouslySetInnerHTML: { __html: name } })\n );\n })\n );\n}\n\n\nfunction MCObjectiveFunction_mapStateToProps(state) {\n return {\n battery: state.data.options.mc.battery,\n hasRSQ: selectors[\"d\" /* method */].info(state).hasRSQ\n };\n}\n\nfunction MCObjectiveFunction_mapDispatchToProps(dispatch) {\n return Object(redux_es[\"b\" /* bindActionCreators */])({\n onChange: data_options[\"setMCBattery\"]\n }, dispatch);\n}\n\n/* harmony default export */ var Input_MCObjectiveFunction = (Object(es[\"b\" /* connect */])(MCObjectiveFunction_mapStateToProps, MCObjectiveFunction_mapDispatchToProps)(MCObjectiveFunction));\n// EXTERNAL MODULE: ./src/components/DelayedInput.jsx\nvar DelayedInput = __webpack_require__(36);\n\n// CONCATENATED MODULE: ./src/components/Input/MCOptions.jsx\n\n\n\n\n\n\n\n\n\n\n\n\nfunction MCOptions(_ref) {\n var shown = _ref.shown,\n options = _ref.options,\n actions = _ref.actions;\n\n if (!shown) {\n return react_default.a.createElement('div', null);\n }\n return react_default.a.createElement(\n 'div',\n { id: 'MCOptions', className: 'borderBottom' },\n react_default.a.createElement(Parameters_Bounds, null),\n react_default.a.createElement(Inputs, { options: options, actions: actions }),\n react_default.a.createElement(Input_MCObjectiveFunction, null)\n );\n}\n\n\nfunction MCOptions_mapStateToProps(state) {\n return {\n shown: selectors[\"d\" /* method */].is_mc(Object(selectors[\"d\" /* method */])(state)),\n options: state.data.options.mc\n };\n}\n\nfunction MCOptions_mapDispatchToProps(dispatch) {\n return {\n actions: Object(redux_es[\"b\" /* bindActionCreators */])({\n iter: data_options[\"setMCIter\"],\n anneal: data_options[\"setMCAnneal\"],\n sample: data_options[\"setMCSample\"]\n }, dispatch)\n };\n}\n\nfunction Inputs(_ref2) {\n var options = _ref2.options,\n actions = _ref2.actions;\n\n return react_default.a.createElement(\n 'div',\n { className: 'MCOptions_Inputs' },\n react_default.a.createElement(\n 'label',\n null,\n 'Monte-Carlo iterations:',\n react_default.a.createElement(DelayedInput[\"a\" /* default */], { name: 'o-mciter', type: 'number', step: '100', value: options.iter, onChange: function onChange(value) {\n return actions.iter(+value);\n }, max: Object({\"NODE_ENV\":\"production\",\"PUBLIC_URL\":\".\"}).LL4_NO_LIMITS ? undefined : 10000 })\n ),\n react_default.a.createElement(\n 'label',\n null,\n 'Anneal iterations:',\n react_default.a.createElement(DelayedInput[\"a\" /* default */], { name: 'o-aniter', type: 'number', value: options.anneal, onChange: function onChange(value) {\n return actions.anneal(+value);\n }, max: Object({\"NODE_ENV\":\"production\",\"PUBLIC_URL\":\".\"}).LL4_NO_LIMITS ? undefined : 100 })\n ),\n react_default.a.createElement(\n 'label',\n null,\n 'Anneal sample size:',\n react_default.a.createElement(DelayedInput[\"a\" /* default */], { name: 'o-ansize', type: 'number', step: '5', value: options.sample, onChange: function onChange(value) {\n return actions.sample(+value);\n } })\n )\n );\n}\n\n\n/* harmony default export */ var Input_MCOptions = (Object(es[\"b\" /* connect */])(MCOptions_mapStateToProps, MCOptions_mapDispatchToProps)(MCOptions));\n// CONCATENATED MODULE: ./src/components/Input/BellSmoothing.jsx\n\n\n\n\n\n\n\n\n\n\n\nfunction BellSmoothing(_ref) {\n var bellsmooth = _ref.bellsmooth,\n _onChange = _ref.onChange,\n shown = _ref.shown;\n\n if (!shown) {\n return react_default.a.createElement('span', null);\n }\n return react_default.a.createElement(\n 'p',\n { id: 'BellSmoothing' },\n 'Bell curve smoothing:',\n react_default.a.createElement(DelayedInput[\"a\" /* default */], { name: 'o-blsmooth', type: 'number', min: '1', value: bellsmooth, onChange: function onChange(value) {\n return _onChange(+value);\n } })\n );\n}\n\n\nfunction BellSmoothing_mapStateToProps(state) {\n return {\n bellsmooth: state.data.options.bellsmooth,\n shown: Object(selectors[\"a\" /* current_model */])(state).has_rate\n };\n}\n\nfunction BellSmoothing_mapDispatchToProps(dispatch) {\n return Object(redux_es[\"b\" /* bindActionCreators */])({\n onChange: data_options[\"setBellSmoothing\"]\n }, dispatch);\n}\n\n/* harmony default export */ var Input_BellSmoothing = (Object(es[\"b\" /* connect */])(BellSmoothing_mapStateToProps, BellSmoothing_mapDispatchToProps)(BellSmoothing));\n// EXTERNAL MODULE: ./src/components/Input/AdvancedOptions.css\nvar AdvancedOptions = __webpack_require__(112);\nvar AdvancedOptions_default = /*#__PURE__*/__webpack_require__.n(AdvancedOptions);\n\n// CONCATENATED MODULE: ./src/components/Input/AdvancedOptions.jsx\n\n\n\n\n\n\n\n\n\nfunction AdvancedOptions_AdvancedOptions() {\n return react_default.a.createElement(\n Collapsible[\"a\" /* default */],\n { title: 'Advanced options' },\n react_default.a.createElement(\n 'div',\n null,\n react_default.a.createElement(Input_FittingMethod, null),\n react_default.a.createElement(Input_MCOptions, null),\n react_default.a.createElement(\n 'div',\n { className: 'borderBottom' },\n react_default.a.createElement(Log, null),\n react_default.a.createElement(Input_BellSmoothing, null)\n )\n )\n );\n}\n\n/* harmony default export */ var Input_AdvancedOptions = (AdvancedOptions_AdvancedOptions);\n// EXTERNAL MODULE: ./src/components/Input/GraphingOptions.jsx + 2 modules\nvar GraphingOptions = __webpack_require__(113);\n\n// CONCATENATED MODULE: ./src/components/Input/CIs.jsx\n\n\n\n\n\n\n\n\n\n\n\n\nfunction CIs(_ref) {\n var options = _ref.options,\n actions = _ref.actions,\n has_linear = _ref.has_linear,\n is_mc = _ref.is_mc,\n singleWave = _ref.singleWave,\n mc_actions = _ref.mc_actions,\n isLogsub = _ref.isLogsub;\n\n if (isLogsub) {\n return null;\n }\n var headerHTML = react_default.a.createElement(\n 'span',\n { title: 'percentage; set to 0 to ignore' },\n react_default.a.createElement(\n 'b',\n null,\n 'Confidence intervals:'\n ),\n react_default.a.createElement(DelayedInput[\"a\" /* default */], { name: 'CIs', type: 'number', min: 0, max: 100, value: options.percent, onClick: function onClick(event) {\n return event.stopPropagation();\n }, onChange: function onChange(value) {\n return actions.percent(+value);\n } })\n );\n var noOptions = react_default.a.createElement(\n 'p',\n null,\n 'No bootstrap options available. Enable CIs to view.'\n );\n var mcOptions = react_default.a.createElement(\n 'div',\n null,\n 'When bootstrapping:',\n react_default.a.createElement(Inputs, { options: options.mc, actions: mc_actions })\n );\n var checkedStatus = [Object(lodash[\"includes\"])(options.graphs, 0), Object(lodash[\"includes\"])(options.graphs, 1), Object(lodash[\"includes\"])(options.graphs, 2)];\n var normalOptions = react_default.a.createElement(\n 'div',\n null,\n react_default.a.createElement(\n 'label',\n null,\n 'Bootstrap iterations:',\n react_default.a.createElement('input', { name: 'o-brepeat', type: 'number', step: 100, value: options.iterations, onChange: function onChange(event) {\n return actions.iterations(+event.target.value);\n }, max: Object({\"NODE_ENV\":\"production\",\"PUBLIC_URL\":\".\"}).LL4_NO_LIMITS ? undefined : 5000 })\n ),\n react_default.a.createElement(\n 'p',\n null,\n 'Bootstrap on:',\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { name: 'o-bgraphs', value: 'composite', type: 'checkbox', checked: checkedStatus[+singleWave], disabled: singleWave, onChange: function onChange() {\n return actions.graphs(0);\n } }),\n ' Composite'\n ),\n react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { name: 'o-bgraphs', value: 'decomposed', type: 'checkbox', checked: checkedStatus[1], onChange: function onChange() {\n return actions.graphs(1);\n } }),\n ' Decomposed'\n ),\n has_linear ? react_default.a.createElement(\n 'label',\n null,\n react_default.a.createElement('input', { name: 'o-bgraphs', value: 'linear', type: 'checkbox', checked: checkedStatus[2], onChange: function onChange() {\n return actions.graphs(2);\n } }),\n ' Linear'\n ) : null\n ),\n is_mc ? mcOptions : null\n );\n return react_default.a.createElement(\n Collapsible[\"a\" /* default */],\n { title: '', headerHTML: headerHTML },\n react_default.a.createElement(\n 'div',\n { id: 'CI-options' },\n options.percent ? normalOptions : noOptions\n )\n );\n}\n\n\nfunction CIs_mapStateToProps(state) {\n return {\n options: state.data.CIs,\n has_linear: Object(selectors[\"a\" /* current_model */])(state).has_linear,\n is_mc: selectors[\"d\" /* method */].is_mc(Object(selectors[\"d\" /* method */])(state)),\n singleWave: Object(selectors[\"h\" /* singleWave */])(state),\n isLogsub: Object(selectors[\"b\" /* isLogsub */])(state)\n };\n}\n\nfunction CIs_mapDispatchToProps(dispatch) {\n return {\n actions: Object(redux_es[\"b\" /* bindActionCreators */])({\n percent: setPercent,\n iterations: setIterations,\n graphs: toggleGraph\n }, dispatch),\n mc_actions: Object(redux_es[\"b\" /* bindActionCreators */])({\n iter: setMCIter,\n anneal: setMCAnneal,\n sample: setMCSample\n }, dispatch)\n };\n}\n\n/* harmony default export */ var Input_CIs = (Object(es[\"b\" /* connect */])(CIs_mapStateToProps, CIs_mapDispatchToProps)(CIs));\n// CONCATENATED MODULE: ./src/components/Input/Fit.jsx\n\n\nfunction Fit() {\n return react_default.a.createElement(\"input\", { type: \"submit\", className: \"btn btn-primary\", value: \"Fit\", \"data-toggle\": \"tooltip\", \"data-placement\": \"right\" });\n}\n\n/* harmony default export */ var Input_Fit = (Fit);\n// CONCATENATED MODULE: ./src/components/Input/Reset.jsx\n\n\n\n\n\n\n\nfunction Reset(_ref) {\n var status = _ref.status,\n unloadData = _ref.unloadData;\n\n if (status !== 2) {\n return null;\n }\n return react_default.a.createElement(\n 'button',\n { id: 'Reset', className: 'pull-right', onClick: onClick },\n 'Reset'\n );\n\n function onClick() {\n unloadData();\n sessionStorage.removeItem('ll4:data');\n }\n}\n\n\n/* harmony default export */ var Input_Reset = (Object(es[\"b\" /* connect */])(function (state) {\n return { status: state.data.load };\n}, function (dispatch) {\n return Object(redux_es[\"b\" /* bindActionCreators */])({ unloadData: data_unloadData }, dispatch);\n})(Reset));\n// CONCATENATED MODULE: ./src/components/Input/ModelContainer.jsx\nvar ModelContainer__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction ModelContainer__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction ModelContainer__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction ModelContainer__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* global $ */\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar ModelContainer_ModelContainer = function (_Component) {\n ModelContainer__inherits(ModelContainer, _Component);\n\n function ModelContainer() {\n ModelContainer__classCallCheck(this, ModelContainer);\n\n return ModelContainer__possibleConstructorReturn(this, (ModelContainer.__proto__ || Object.getPrototypeOf(ModelContainer)).apply(this, arguments));\n }\n\n ModelContainer__createClass(ModelContainer, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (window.jQuery && $.web2py) {\n $.web2py.ajax_init($('#App'));\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return react_default.a.createElement(\n 'fieldset',\n { id: 'ModelContainer' },\n react_default.a.createElement(\n 'legend',\n null,\n 'Model Initialization'\n ),\n react_default.a.createElement(Input_CurrentModel, null),\n this.props.model ? react_default.a.createElement(\n 'div',\n null,\n react_default.a.createElement(Parameters_MultiDataset, null),\n react_default.a.createElement(Input_Parameters_Parameters, null),\n react_default.a.createElement(Input_AdvancedOptions, null),\n react_default.a.createElement(GraphingOptions[\"a\" /* default */], null),\n react_default.a.createElement(Input_CIs, null),\n react_default.a.createElement(Input_Fit, null),\n react_default.a.createElement(Input_Reset, null)\n ) : null\n );\n }\n }]);\n\n return ModelContainer;\n}(react[\"Component\"]);\n\n\n/* harmony default export */ var Input_ModelContainer = (Object(es[\"b\" /* connect */])(function (state) {\n return {\n model: !!(state.data.model && state.models.status > 0),\n loadStatus: state.data.load // so that it will re-render when Reset does, and give it the web2py button styling\n };\n})(ModelContainer_ModelContainer));\n// EXTERNAL MODULE: ./src/components/Input/Container.css\nvar Container = __webpack_require__(246);\nvar Container_default = /*#__PURE__*/__webpack_require__.n(Container);\n\n// CONCATENATED MODULE: ./src/selectors/fitValid.js\n\n\n\nfunction checkForFitErrors(state) {\n var errs = [];\n if (!state.data.databox) {\n errs.push('No data');\n }\n if (state.data.datasets.some(function (ds) {\n return ds.params.some(function (wave) {\n return wave.guesses.every(function (guess) {\n return guess == 0;\n }) && !selectors[\"d\" /* method */].is_mc(Object(selectors[\"d\" /* method */])(state)) || wave.bounds.every(function (bound) {\n return lodash_default.a.isEqual(bound, [0, 0]);\n }) && selectors[\"d\" /* method */].is_mc(Object(selectors[\"d\" /* method */])(state));\n });\n })) {\n errs.push('Guesses/bounds cannot all be 0');\n }\n return errs;\n}\n// EXTERNAL MODULE: ./src/state/results_options.js\nvar results_options = __webpack_require__(46);\n\n// CONCATENATED MODULE: ./src/state/fit.js\n\n\n\n\n\n\n\n\nfunction _fit(result, time, data, meta) {\n return {\n type: _const[\"a\" /* FIT */],\n payload: Object.assign({}, result, { total_time: time, data: data }),\n meta: meta\n };\n}\n\nfunction _fitStart() {\n return {\n type: _const[\"c\" /* FIT_START */]\n };\n}\n\nfunction _fitError(e) {\n return {\n type: _const[\"b\" /* FIT_ERROR */],\n error: true,\n payload: e\n };\n}\n\nfunction _fitValidationError(e) {\n return {\n type: _const[\"d\" /* FIT_VALIDATION_ERROR */],\n error: true,\n payload: e\n };\n}\n\nvar LAST_FIT = 'll4/data/LAST_FIT';\n\nfunction _lastFit(time) {\n return {\n type: LAST_FIT,\n payload: { total_time: time }\n };\n}\n\nfunction pickData(state, _ds) {\n var data = lodash_default.a.pick(state.data, ['model', 'method', 'datasets', 'title', 'options', 'CIs']);\n if (!lodash_default.a.isNil(_ds)) {\n var ds = data.datasets[_ds];\n data.title = ds.title;\n if (data.options.ylabel) {\n var modifiedData = Object(_helpers[\"b\" /* CSVText2List */])(ds.data);\n modifiedData[0][1] = data.options.ylabel;\n ds = Object.assign({}, ds, { data: modifiedData.join('\\n') });\n }\n data.datasets = [ds];\n }\n data.datasets = fixDatasetsNumbers(data.datasets);\n return data;\n}\n\nfunction fixDatasetsNumbers(datasets) {\n return datasets.map(function (ds) {\n return Object.assign({}, ds, {\n params: ds.params.map(function (wave) {\n return {\n guesses: wave.guesses.map(function (guess) {\n return +guess;\n }),\n bounds: wave.bounds.map(function (bounds) {\n return bounds.map(function (b) {\n return +b;\n });\n }),\n fixg: wave.fixg,\n old_bounds: lodash_default.a.mapValues(wave.old_bounds, function (bounds) {\n return bounds.map(function (b) {\n return +b;\n });\n })\n };\n })\n });\n });\n}\n\nfunction fit_fit() {\n return function (dispatch, getState) {\n dispatch(_fitStart());\n var state = getState();\n var startTime = Date.now();\n var endpoint = state.page == 'index' ? 'fit.json' : 'logsub.json';\n var errors = checkForFitErrors(state);\n if (errors.length) {\n dispatch(_fitValidationError(errors));\n return Promise.reject(errors);\n }\n if (!state.data.options.mds_one_plot) {\n return Promise.all(state.data.datasets.map(function (ds, i) {\n return fetch(Object(_helpers[\"a\" /* API */])(endpoint), {\n method: 'POST',\n credentials: 'include',\n body: qs_lib_default.a.stringify({\n data: JSON.stringify(pickData(state, i))\n }),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'\n }\n }).then(function (res) {\n return res.json();\n }).then(function (result) {\n var endTime = Date.now();\n dispatch(_fit(result, (endTime - startTime) / 1000, state.data, i));\n return result;\n }).catch(function (e) {\n console.error(e, e.stack); // eslint-disable-line no-console\n dispatch(_fitError(e));\n return Promise.reject(e);\n });\n })).then(function (results) {\n var endTime = Date.now();\n dispatch(_lastFit((endTime - startTime) / 1000));\n return results;\n });\n }\n return fetch(Object(_helpers[\"a\" /* API */])(endpoint), {\n method: 'POST',\n credentials: 'include',\n body: qs_lib_default.a.stringify({\n data: JSON.stringify(pickData(state))\n }),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'\n }\n }).then(function (res) {\n return res.json().catch(function () {\n return Promise.reject(res.status + ' ' + res.statusText);\n });\n }).then(function (result) {\n if (result.error) {\n return Promise.reject(result.error);\n }\n var endTime = Date.now();\n dispatch(_fit(result, (endTime - startTime) / 1000, state.data));\n return result;\n }).catch(function (e) {\n if (e instanceof Error) {\n console.error(e, e.stack); // eslint-disable-line no-console\n }\n dispatch(_fitError(e));\n return Promise.reject(e);\n });\n };\n}\n\nvar result_initial_state = {\n status: 0,\n error: null\n};\nfunction result_reducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : result_initial_state;\n var action = arguments[1];\n\n if (lodash_default.a.startsWith(action.type, 'll4/results_options') && state.data) {\n state = Object.assign({}, state, { data: Object.assign({}, state.data, {\n options: Object(results_options[\"default\"])(state.data.options, action)\n }) });\n }\n switch (action.type) {\n case _const[\"t\" /* SWITCH_PAGE */]:\n return result_initial_state;\n case _const[\"c\" /* FIT_START */]:\n return { status: 1, error: null };\n case _const[\"b\" /* FIT_ERROR */]:\n return { status: -1, error: action.payload };\n case _const[\"d\" /* FIT_VALIDATION_ERROR */]:\n return { status: -2, error: action.payload };\n case _const[\"a\" /* FIT */]:\n if (!lodash_default.a.isNil(action.meta)) {\n return Object.assign({}, state, {\n status: 2,\n total_time: NaN,\n data: addResultsToData(state.data || action.payload.data, action.payload.result, action.meta)\n });\n }\n return {\n status: 3,\n error: null,\n time: action.payload.time,\n total_time: action.payload.total_time,\n avg_popt: action.payload.avg_popt,\n data: addResultsToData(action.payload.data, action.payload.result)\n };\n case LAST_FIT:\n return Object.assign({}, state, { status: 3, total_time: action.payload.total_time });\n default:\n return state;\n }\n}\n\nfunction addResultsToData(state, results, i) {\n return Object.assign({}, state, {\n datasets: state.datasets.map(function (ds, j) {\n if (lodash_default.a.isNil(i)) {\n // not mds on its own plot\n return Object.assign({}, ds, { results: results[j] });\n } else {\n // fitting each on its own graph\n if (i == j) {\n return Object.assign({}, ds, { results: results[0] });\n } else {\n return ds;\n }\n }\n })\n });\n}\n// CONCATENATED MODULE: ./src/components/Input/Container.jsx\nvar Container__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction Container__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Container__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction Container__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* global $ */\n\n\n\n\n\n\n\n\n\n\n\nvar Container_InputContainer = function (_Component) {\n Container__inherits(InputContainer, _Component);\n\n function InputContainer() {\n Container__classCallCheck(this, InputContainer);\n\n return Container__possibleConstructorReturn(this, (InputContainer.__proto__ || Object.getPrototypeOf(InputContainer)).apply(this, arguments));\n }\n\n Container__createClass(InputContainer, [{\n key: '_submit',\n value: function _submit(event) {\n event.preventDefault();\n this.props.onSubmit();\n return false;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (window.jQuery && $.web2py) {\n $('#InputContainer').on('submit', false); // prevent web2py from messing it up\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return react_default.a.createElement(\n 'div',\n { className: 'row' },\n react_default.a.createElement(\n 'form',\n { id: 'InputContainer', action: '#', encType: 'multipart/form-data', method: 'post', onSubmit: this._submit.bind(this) },\n react_default.a.createElement(\n 'div',\n { className: 'panel panel-default col-md-6' },\n react_default.a.createElement(Input_DataContainer, null)\n ),\n react_default.a.createElement(\n 'div',\n { className: 'panel panel-default col-md-6' },\n react_default.a.createElement(Input_ModelContainer, null)\n )\n )\n );\n }\n }]);\n\n return InputContainer;\n}(react[\"Component\"]);\n\n\n/* harmony default export */ var Input_Container = (Object(es[\"b\" /* connect */])(function (state) {\n return {};\n}, // eslint-disable-line no-unused-vars\nfunction (dispatch) {\n return Object(redux_es[\"b\" /* bindActionCreators */])({\n onSubmit: fit_fit\n }, dispatch);\n})(Container_InputContainer));\n// EXTERNAL MODULE: ./src/components/Output/Container.jsx\nvar Output_Container = __webpack_require__(247);\n\n// EXTERNAL MODULE: ./src/App.css\nvar src_App = __webpack_require__(261);\nvar App_default = /*#__PURE__*/__webpack_require__.n(src_App);\n\n// CONCATENATED MODULE: ./src/App.js\nvar App__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction App__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction App__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction App__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\nvar App_App = function (_Component) {\n App__inherits(App, _Component);\n\n function App() {\n App__classCallCheck(this, App);\n\n return App__possibleConstructorReturn(this, (App.__proto__ || Object.getPrototypeOf(App)).apply(this, arguments));\n }\n\n App__createClass(App, [{\n key: 'render',\n value: function render() {\n return react_default.a.createElement(\n 'div',\n { id: 'App' },\n react_default.a.createElement(Input_Container, null),\n react_default.a.createElement(Output_Container[\"a\" /* default */], null)\n );\n }\n }]);\n\n return App;\n}(react[\"Component\"]);\n\n/* harmony default export */ var src_App_0 = (App_App);\n// CONCATENATED MODULE: ./src/components/Menu.jsx\nvar Menu__slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar Menu__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction Menu__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Menu__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction Menu__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n\n\nvar Menu_Menu = function (_React$Component) {\n Menu__inherits(Menu, _React$Component);\n\n function Menu(props) {\n Menu__classCallCheck(this, Menu);\n\n var _this = Menu__possibleConstructorReturn(this, (Menu.__proto__ || Object.getPrototypeOf(Menu)).call(this, props));\n\n _this.state = { open: false };\n return _this;\n }\n\n Menu__createClass(Menu, [{\n key: '_switchPage',\n value: function _switchPage(page, e) {\n e.preventDefault();\n if (page == this.props.page) {\n this.setState({ open: !this.state.open });\n } else {\n this.props.onChangePage(page);\n }\n }\n }, {\n key: '_setModel',\n value: function _setModel(m, e) {\n this.props.onSetModel(m);\n e.preventDefault();\n }\n }, {\n key: '_renderModelList',\n value: function _renderModelList() {\n var _this2 = this;\n\n var mList = [];\n this.props.models.forEach(function (_ref) {\n var _ref2 = Menu__slicedToArray(_ref, 2),\n type = _ref2[0],\n models = _ref2[1];\n\n mList.push(react_default.a.createElement(\n 'li',\n { key: 'sep-' + type },\n react_default.a.createElement(\n 'a',\n { className: 'sep' },\n type\n )\n ));\n models.forEach(function (m) {\n mList.push(react_default.a.createElement(\n 'li',\n { className: m == _this2.props.selected ? 'web2py-menu-active' : '', key: 'model-' + m },\n react_default.a.createElement(\n 'a',\n { onClick: _this2._setModel.bind(_this2, m), href: '#' },\n Object(_helpers[\"e\" /* presentModel */])(m)\n )\n ));\n });\n });\n return mList;\n }\n }, {\n key: '_renderPageSwitcher',\n value: function _renderPageSwitcher(page) {\n var data = {\n index: {\n url: '?page=index&preload=library.get.1',\n title: 'Loglet Analysis'\n },\n logsub: {\n url: '?page=logsub&preload=library.get.10',\n title: 'Logistic Substitution'\n }\n }[page];\n var isCurrentPage = this.props.page == page;\n return react_default.a.createElement(\n 'li',\n { className: isCurrentPage ? 'dropdown web2py-menu-active' + (this.state.open ? ' open' : '') : '' },\n react_default.a.createElement(\n 'a',\n { href: data.url, onClick: this._switchPage.bind(this, page) },\n data.title,\n isCurrentPage ? react_default.a.createElement('span', { className: 'caret' }) : null\n ),\n isCurrentPage ? react_default.a.createElement(\n 'ul',\n { className: 'dropdown-menu' },\n this._renderModelList()\n ) : null\n );\n }\n }, {\n key: 'render',\n value: function render() {\n return react_default.a.createElement(\n 'ul',\n { className: 'nav navbar-nav text-uppercase' },\n this._renderPageSwitcher('index'),\n this._renderPageSwitcher('logsub'),\n react_default.a.createElement(\n 'li',\n null,\n react_default.a.createElement(\n 'a',\n { 'data-placement': 'bottom', 'data-toggle': 'tooltip', href: Object(_helpers[\"a\" /* API */])('index', 'library'), id: 'library-link' },\n 'Library'\n )\n ),\n react_default.a.createElement(\n 'li',\n null,\n react_default.a.createElement(\n 'a',\n { href: Object(_helpers[\"a\" /* API */])('index', 'documentation') },\n 'Documentation'\n )\n ),\n react_default.a.createElement(\n 'li',\n { className: 'web2py-menu-last' },\n react_default.a.createElement(\n 'a',\n { href: 'http://phe.rockefeller.edu/' },\n 'PHE Home'\n )\n )\n );\n }\n }]);\n\n return Menu;\n}(react_default.a.Component);\n\n\n/* harmony default export */ var components_Menu = (Object(es[\"b\" /* connect */])(function (state) {\n return {\n page: state.page,\n models: state.models.types || [],\n selected: state.data.model\n };\n}, function (dispatch) {\n return Object(redux_es[\"b\" /* bindActionCreators */])({\n onSetModel: setModel\n }, dispatch);\n})(Menu_Menu));\n// CONCATENATED MODULE: ./src/state/page.js\n\n\n\n\nfunction _switchPage(page) {\n return {\n type: _const[\"t\" /* SWITCH_PAGE */],\n payload: page\n };\n}\n\nfunction switchPage(page) {\n if (page !== 'index' && page !== 'logsub') {\n throw new Error('could not switch to page ' + page);\n }\n return function (dispatch, getState) {\n var currentModel = getState().data.model;\n var counterpartModel = (getState().models.models[currentModel] || {}).counterpart;\n dispatch(_switchPage(page));\n return dispatch(loadModels(page)).then(function (models) {\n var defaultModel = models.default;\n if (counterpartModel) {\n dispatch(setModel(counterpartModel, { keep: true }));\n } else {\n dispatch(setModel(defaultModel));\n }\n });\n };\n}\n\nfunction page_reducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'index';\n var action = arguments[1];\n\n if (action.type == _const[\"t\" /* SWITCH_PAGE */]) {\n return action.payload;\n }\n return state;\n}\n// CONCATENATED MODULE: ./src/state/index.js\n\n\n\n\n\n\n// import library from './library';\n\n/* harmony default export */ var src_state = (Object(redux_es[\"c\" /* combineReducers */])({\n page: page_reducer,\n data: data_reducer,\n models: model_reducer,\n results: result_reducer\n // library\n}));\n// EXTERNAL MODULE: ./src/index.css\nvar src = __webpack_require__(262);\nvar src_default = /*#__PURE__*/__webpack_require__.n(src);\n\n// CONCATENATED MODULE: ./src/index.js\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderApp\", function() { return renderApp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderMenu\", function() { return renderMenu; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"store\", function() { return store; });\n/* global $ */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar src_initialState = JSON.parse(sessionStorage.getItem('ll4:data'));\nvar initStaticGraphs = JSON.parse(localStorage.getItem('ll4:static_graphs'));\n\nfunction isRestoredStateValid(restoredState, currentState) {\n return restoredState && restoredState.databox && restoredState.load != -1 && (currentState ? currentState.models.models[restoredState.model] : true);\n}\n\nvar composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || redux_es[\"d\" /* compose */];\nvar store = Object(redux_es[\"e\" /* createStore */])(src_state, composeEnhancers(Object(redux_es[\"a\" /* applyMiddleware */])(lib_default.a)));\nsearchHandler({ changePage: true, dontFit: isRestoredStateValid(src_initialState) }).then(function () {\n if (isRestoredStateValid(src_initialState, store.getState())) {\n store.dispatch(importDS(src_initialState));\n }\n\n if (window.BootstrapDialog) {\n if (!localStorage.getItem('visited') && $(window).width() > 700) {\n $('#data').attr('title', '1. Input data');\n $('.loginum:first').attr('title', '2. Choose number of waves');\n $('#GuessParams').attr('title', '3. Guess parameters');\n $('input[type=\"submit\"]').attr('title', '4. Fit');\n $('#library-link').attr('title', '* Library');\n $('[data-toggle=\"tooltip\"]').tooltip({ container: 'body' }).tooltip('show');\n window.BootstrapDialog.show({\n title: 'Welcome to Loglet Lab 4',\n message: '
  1. Input data into textbox
  2. Choose the number of logistic waves
  3. Guess the inital parameters for the fit
  4. Click the fit button


',\n draggable: true,\n size: window.BootstrapDialog.SIZE_SMALL,\n buttons: [{\n id: 'btn-ok',\n icon: 'glyphicon glyphicon-check',\n label: 'OK',\n cssClass: 'btn-primary',\n autospin: false,\n action: function action(dialogRef) {\n dialogRef.close();\n }\n }],\n onhide: function onhide(dialogRef) {\n $('[data-toggle=\"tooltip\"]').tooltip('destroy').attr('title', '');\n if (dialogRef.getModalContent().find('[name=\"dont_show_again\"]').is(':checked')) {\n localStorage.setItem('visited', 1);\n }\n }\n }).$modalDialog.css({ top: 100, left: 200 });\n }\n }\n});\n(function () {\n var old_page = void 0,\n old_title = void 0,\n old_data = void 0,\n old_results = void 0,\n old_static_graphs = void 0;\n store.subscribe(function () {\n var state = store.getState();\n var page = state.page,\n data = state.data,\n results = state.results,\n _state$data = state.data,\n title = _state$data.title,\n static_graphs = _state$data.options.static_graphs;\n\n if (page != old_page || title != old_title) {\n var pageTitle = { index: 'Loglet Lab 4', logsub: 'Logistic Substitution' }[page];\n document.title = title ? pageTitle + ': ' + title : pageTitle;\n old_page = page;\n old_title = title;\n }\n if (data !== old_data) {\n sessionStorage.setItem('ll4:data', JSON.stringify(data));\n old_data = data;\n }\n if (old_results !== results) {\n old_results = results;\n if (results.status == 3) {\n sessionStorage.removeItem('ll4:data');\n }\n }\n if (static_graphs !== old_static_graphs) {\n old_static_graphs = static_graphs;\n localStorage.setItem('ll4:static_graphs', static_graphs);\n }\n });\n})();\n\nfunction searchHandler() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var defaultSearch = {\n page: 'index',\n preload: 'library.get.1'\n };\n var search = qs_lib_default.a.parse(location.search.slice(1));\n if (!location.search.slice(1)) {\n history.replaceState({}, '', '?' + qs_lib_default.a.stringify(defaultSearch));\n search = defaultSearch;\n }\n\n if (!search.page) {\n search.page = defaultSearch.page;\n history.replaceState({}, '', '?' + qs_lib_default.a.stringify(search));\n }\n if (opts.changePage || search.page != store.getState().page) {\n return store.dispatch(switchPage(search.page)).then(searchHandler).then(function () {\n if (!checkForFitErrors(store.getState()).length && !opts.dontFit) {\n store.dispatch(fit_fit()); // eslint-disable-line jest/no-focused-tests\n }\n });\n }\n\n if (search.preload) {\n return store.dispatch(loadData(search.preload)).then(function () {\n if (initStaticGraphs !== null && store.getState().data.options.static_graphs !== initStaticGraphs) {\n store.dispatch(Object(data_options[\"toggleStaticGraphs\"])());\n }\n });\n }\n\n return Promise.resolve();\n}\nwindow.addEventListener('popstate', searchHandler, false);\n\nfunction preventNumberScroll() {\n // https://stackoverflow.com/a/38589039/3187556\n if (document.activeElement.type === 'number') {\n document.activeElement.blur();\n }\n}\ndocument.addEventListener('wheel', preventNumberScroll, Modernizr.passiveeventlisteners ? { passive: true } : false);\ndocument.addEventListener('mousewheel', preventNumberScroll, Modernizr.passiveeventlisteners ? { passive: true } : false);\n\nfunction src_render(Component, rootID) {\n react_dom_default.a.render(react_default.a.createElement(\n es[\"a\" /* Provider */],\n { store: store },\n Component\n ), document.getElementById(rootID));\n}\nfunction renderApp(Component) {\n src_render(react_default.a.createElement(Component, null), 'root');\n}\nfunction renderMenu(Component) {\n src_render(react_default.a.createElement(Component, { onChangePage: function onChangePage(page) {\n var urls = {\n index: '?page=index&preload=library.get.1',\n logsub: '?page=logsub&preload=library.get.10'\n };\n history.pushState({}, '', urls[page]);\n searchHandler();\n } }), 'top-menu');\n}\n\nrenderApp(src_App_0);\n\nrenderMenu(components_Menu);\n\n\n\n/***/ }),\n\n/***/ 13:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = CSVText2List;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = axisTitle;\n/* harmony export (immutable) */ __webpack_exports__[\"e\"] = presentModel;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = API;\n/* harmony export (immutable) */ __webpack_exports__[\"d\"] = parseSource;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash__);\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n\n\nfunction detectCSVDelmiter(text) {\n // From CSV text, figure out the delimiter\n var line = text.trim().split('\\n')[0];\n\n function isGood(dlmtr) {\n return line.split(dlmtr).length > 1; // at least two items: x/y dots, plus more y dots\n }\n var tries = '\\t,:; ';\n for (var d = 0; d < tries.length; d++) {\n if (isGood(tries[d])) {\n return tries[d];\n }\n }\n throw new TypeError('Could not determine delimiter');\n}\n\nfunction CSVText2List(text, notrim) {\n // Essentially a glorified split method\n function trim(t) {\n return notrim ? t : t.trim();\n }\n\n var delimiter = detectCSVDelmiter(text);\n var data = trim(text).split('\\n').map(function (line) {\n return line.split(delimiter).map(function (a) {\n a = trim(a);\n return isNaN(Number(a)) || notrim && !a ? a : Number(a);\n });\n });\n if (!notrim) {\n data = data.filter(function (line) {\n return line.length > 1;\n });\n }\n return data;\n}\n\nfunction axisTitle(data) {\n data = CSVText2List(data, true);\n var firstLine = data[0];\n var x = '',\n y = '';\n if (!__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.every(firstLine, function (i) {\n return __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.isFinite(+i);\n })) {\n if (firstLine.length == 2) {\n y = firstLine[1].trim();\n }\n x = firstLine[0].trim();\n }\n return [x, y];\n}\n\n// export function didDataChange(orig_data, new_data) {\n// try {\n// orig_data = CSVText2List(orig_data);\n// new_data = CSVText2List(new_data);\n// } catch (e) {\n// return orig_data != new_data;\n// }\n// // length is different: modified\n// if (orig_data.length != new_data.length) {\n// return true;\n// }\n// if (orig_data.some((o_row, i) => {\n// const n_row = new_data[i];\n// // row length is different: modified\n// if (o_row.length != n_row.length) {\n// return true;\n// }\n// if (o_row.some((o_cell, j) => {\n// const n_cell = n_row[j];\n// const isString = _.isString;\n// // cell is different: modified\n// // special case: changing header text, adding or removing hash\n// if (isString(o_cell) && isString(n_cell)) {\n// if (o_cell[0] == '#' && n_cell[0] == '#') {\n// // if they both start with #, check if they match when removing the hash and whitespace\n// return o_cell.slice(1).trim() != n_cell.slice(1).trim();\n// } else { // a header, or invalid data\n// return false;\n// }\n// }\n// if (isString(o_cell) || isString(n_cell)) {\n// const str = isString(o_cell) ? o_cell : n_cell;\n// const num = isString(o_cell) ? n_cell : o_cell;\n// return str.slice(1).trim() != num;\n// }\n// return o_cell != n_cell;\n// })) {\n// return true;\n// }\n// return false;\n// })) {\n// return true;\n// }\n// return false;\n// }\n\nfunction presentModel(model) {\n return __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.startCase(model);\n}\n\nfunction API(endpoint) {\n var controller = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'api';\n var args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n if ((typeof window === 'undefined' ? 'undefined' : _typeof(window)) !== undefined && window.wURL) {\n return window.wURL(controller, endpoint, args);\n } else {\n return [controller, endpoint].concat(args).join('/');\n }\n}\n\nfunction parseSource(sourceStr) {\n var sourceMatch = sourceStr.match(/^(.+) \\((https?:\\/\\/.+)\\)$/);\n if (sourceMatch) {\n return { name: sourceMatch[1], url: sourceMatch[2] };\n }\n return sourceStr;\n}\n\n/***/ }),\n\n/***/ 15:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (immutable) */ __webpack_exports__[\"setMCIter\"] = setMCIter;\n/* harmony export (immutable) */ __webpack_exports__[\"setMCAnneal\"] = setMCAnneal;\n/* harmony export (immutable) */ __webpack_exports__[\"setMCSample\"] = setMCSample;\n/* harmony export (immutable) */ __webpack_exports__[\"setMCBattery\"] = setMCBattery;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleTransformLogX\"] = toggleTransformLogX;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleTransformLogY\"] = toggleTransformLogY;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleTransformRate\"] = toggleTransformRate;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleTransformMarketShare\"] = toggleTransformMarketShare;\n/* harmony export (immutable) */ __webpack_exports__[\"setDivision\"] = setDivision;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleNormalizeX\"] = toggleNormalizeX;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleNormalizeY\"] = toggleNormalizeY;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleDashForecast\"] = toggleDashForecast;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleMDSOnePlot\"] = toggleMDSOnePlot;\n/* harmony export (immutable) */ __webpack_exports__[\"setBellSmoothing\"] = setBellSmoothing;\n/* harmony export (immutable) */ __webpack_exports__[\"setYLabel\"] = setYLabel;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleGraph\"] = toggleGraph;\n/* harmony export (immutable) */ __webpack_exports__[\"setXLim\"] = setXLim;\n/* harmony export (immutable) */ __webpack_exports__[\"setYLim\"] = setYLim;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleShowLegend\"] = toggleShowLegend;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleGridLines\"] = toggleGridLines;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleCopyright\"] = toggleCopyright;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleIgnore0\"] = toggleIgnore0;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleLogYGraph\"] = toggleLogYGraph;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleLogXGraph\"] = toggleLogXGraph;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleStaticGraphs\"] = toggleStaticGraphs;\n/* harmony export (immutable) */ __webpack_exports__[\"syncOptions\"] = syncOptions;\n/* harmony export (immutable) */ __webpack_exports__[\"default\"] = reducer;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__const__ = __webpack_require__(21);\n\n\n\n\nvar SET_ITER = 'll4/data_options/SET_ITER';\n\nfunction setMCIter(iter) {\n return {\n type: SET_ITER,\n payload: iter\n };\n}\n\nvar SET_ANNEAL = 'll4/data_options/SET_ANNEAL';\n\nfunction setMCAnneal(anneal) {\n return {\n type: SET_ANNEAL,\n payload: anneal\n };\n}\n\nvar SET_SAMPLE = 'll4/data_options/SET_SAMPLE';\n\nfunction setMCSample(sample) {\n return {\n type: SET_SAMPLE,\n payload: sample\n };\n}\n\nvar SET_BATTERY = 'll4/data_options/SET_BATTERY';\n\nfunction setMCBattery(battery) {\n return {\n type: SET_BATTERY,\n payload: battery\n };\n}\n\nvar TOGGLE_TRANSFORM_LOGX = 'll4/data_options/TOGGLE_TRANSFORM_LOGX';\n\nfunction toggleTransformLogX() {\n return { type: TOGGLE_TRANSFORM_LOGX };\n}\n\nvar TOGGLE_TRANSFORM_LOGY = 'll4/data_options/TOGGLE_TRANSFORM_LOGY';\n\nfunction toggleTransformLogY() {\n return { type: TOGGLE_TRANSFORM_LOGY };\n}\n\nvar TOGGLE_TRANSFORM_RATE = 'll4/data_options/TOGGLE_TRANSFORM_RATE';\n\nfunction toggleTransformRate() {\n return { type: TOGGLE_TRANSFORM_RATE };\n}\n\nvar TOGGLE_TRANSFORM_MARKET_SHARE = 'll4/data_options/TOGGLE_TRANSFORM_MARKET_SHARE';\n\nfunction toggleTransformMarketShare() {\n return { type: TOGGLE_TRANSFORM_MARKET_SHARE };\n}\n\nvar SET_DIVISION = 'll4/data_options/SET_DIVISION';\n\nfunction setDivision(divide) {\n return {\n type: SET_DIVISION,\n payload: divide\n };\n}\n\nvar TOGGLE_NORMALIZEX = 'll4/data_options/TOGGLE_NORMALIZEX';\n\nfunction toggleNormalizeX() {\n return { type: TOGGLE_NORMALIZEX };\n}\n\nvar TOGGLE_NORMALIZEY = 'll4/data_options/TOGGLE_NORMALIZEY';\n\nfunction toggleNormalizeY() {\n return { type: TOGGLE_NORMALIZEY };\n}\n\nvar TOGGLE_DASH_FORECAST = 'll4/data_options/TOGGLE_DASH_FORECAST';\n\nfunction toggleDashForecast() {\n return { type: TOGGLE_DASH_FORECAST };\n}\n\nvar TOGGLE_MDS_ONE_PLOT = 'll4/data_options/TOGGLE_MDS_ONE_PLOT';\n\nfunction toggleMDSOnePlot() {\n return { type: TOGGLE_MDS_ONE_PLOT };\n}\n\nvar SET_BELL_SMOOTHING = 'll4/data_options/SET_BELL_SMOOTHING';\n\nfunction setBellSmoothing(smoothing) {\n return {\n type: SET_BELL_SMOOTHING,\n payload: smoothing\n };\n}\n\nvar SET_Y_LABEL = 'll4/data_options/SET_Y_LABEL';\n\nfunction setYLabel(ylabel) {\n return {\n type: SET_Y_LABEL,\n payload: ylabel\n };\n}\n\nvar TOGGLE_GRAPH = 'll4/data_options/TOGGLE_GRAPH';\n\nfunction toggleGraph(graph) {\n return {\n type: TOGGLE_GRAPH,\n payload: graph\n };\n}\n\nvar SET_XLIM = 'll4/data_options/SET_XLIM';\n\nfunction setXLim(upLow, lim) {\n return {\n type: SET_XLIM,\n payload: { upLow: upLow, lim: lim }\n };\n}\n\nvar SET_YLIM = 'll4/data_options/SET_YLIM';\n\nfunction setYLim(upLow, lim) {\n return {\n type: SET_YLIM,\n payload: { upLow: upLow, lim: lim }\n };\n}\n\nvar TOGGLE_SHOW_LEGEND = 'll4/data_options/TOGGLE_SHOW_LEGEND';\n\nfunction toggleShowLegend() {\n return { type: TOGGLE_SHOW_LEGEND };\n}\n\nvar TOGGLE_GRID_LINES = 'll4/data_options/TOGGLE_GRID_LINES';\n\nfunction toggleGridLines() {\n return { type: TOGGLE_GRID_LINES };\n}\n\nvar TOGGLE_COPYRIGHT = 'll4/data_options/TOGGLE_COPYRIGHT';\n\nfunction toggleCopyright() {\n return { type: TOGGLE_COPYRIGHT };\n}\n\nvar TOGGLE_IGNORE_0 = 'll4/data_options/TOGGLE_IGNORE_0';\n\nfunction toggleIgnore0() {\n return { type: TOGGLE_IGNORE_0 };\n}\n\nvar TOGGLE_LOG_Y_GRAPH = 'll4/data_options/TOGGLE_LOG_Y_GRAPH';\n\nfunction toggleLogYGraph() {\n return { type: TOGGLE_LOG_Y_GRAPH };\n}\n\nvar TOGGLE_LOG_X_GRAPH = 'll4/data_options/TOGGLE_LOG_X_GRAPH';\n\nfunction toggleLogXGraph() {\n return { type: TOGGLE_LOG_X_GRAPH };\n}\n\nfunction toggleStaticGraphs() {\n return { type: __WEBPACK_IMPORTED_MODULE_1__const__[\"v\" /* TOGGLE_STATIC_GRAPHS */] };\n}\n\nfunction syncOptions(options) {\n return {\n type: __WEBPACK_IMPORTED_MODULE_1__const__[\"u\" /* SYNC_OPTIONS */],\n payload: options\n };\n}\n\nvar initialState = {\n mc: {\n iter: 1000,\n anneal: 5,\n sample: 25,\n battery: 'sumsquares'\n },\n transform: {\n logx: false,\n logy: false,\n rate: false,\n share: false,\n divide: 1,\n normalizex: false,\n normalizey: false\n },\n bellsmooth: 1,\n graphs: [],\n xlim: [null, null],\n ylim: [null, null],\n showlegend: false,\n showgrid: false,\n dash_forecast: true,\n copyright: true,\n mds_one_plot: true,\n ylabel: '',\n ignore0: true,\n x_log_graph: false, // x axis on log scale\n y_log_graph: false,\n static_graphs: true\n};\n\nfunction reducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments[1];\n\n if (__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.difference(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.keys(initialState.mc), __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.keys(state.mc)).length) {\n state = Object.assign({}, state, { mc: Object.assign({}, initialState.mc, state.mc) });\n }\n if (__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.difference(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.keys(initialState.transform), __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.keys(state.transform)).length) {\n state = Object.assign({}, state, { transform: Object.assign({}, initialState.transform, state.transform) });\n }\n if (__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.difference(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.keys(initialState), __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.keys(state)).length) {\n state = Object.assign({}, initialState, state);\n }\n\n switch (action.type) {\n case SET_ITER:\n return Object.assign({}, state, { mc: Object.assign({}, state.mc, {\n iter: action.payload\n }) });\n case SET_ANNEAL:\n return Object.assign({}, state, { mc: Object.assign({}, state.mc, {\n anneal: action.payload\n }) });\n case SET_SAMPLE:\n return Object.assign({}, state, { mc: Object.assign({}, state.mc, {\n sample: action.payload\n }) });\n case SET_BATTERY:\n return Object.assign({}, state, { mc: Object.assign({}, state.mc, {\n battery: action.payload\n }) });\n case TOGGLE_TRANSFORM_LOGX:\n return Object.assign({}, state, { transform: Object.assign({}, state.transform, {\n logx: !state.transform.logx\n }) });\n case TOGGLE_TRANSFORM_LOGY:\n return Object.assign({}, state, { transform: Object.assign({}, state.transform, {\n logy: !state.transform.logy\n }) });\n case TOGGLE_TRANSFORM_RATE:\n return Object.assign({}, state, { transform: Object.assign({}, state.transform, {\n rate: !state.transform.rate\n }) });\n case TOGGLE_TRANSFORM_MARKET_SHARE:\n return Object.assign({}, state, { transform: Object.assign({}, state.transform, {\n share: !state.transform.share\n }) });\n case SET_DIVISION:\n return Object.assign({}, state, { transform: Object.assign({}, state.transform, {\n divide: action.payload\n }) });\n case TOGGLE_NORMALIZEX:\n return Object.assign({}, state, { transform: Object.assign({}, state.transform, {\n normalizex: !state.transform.normalizex\n }) });\n case TOGGLE_NORMALIZEY:\n return Object.assign({}, state, { transform: Object.assign({}, state.transform, {\n normalizey: !state.transform.normalizey\n }) });\n case TOGGLE_DASH_FORECAST:\n return Object.assign({}, state, { dash_forecast: !state.dash_forecast });\n case TOGGLE_MDS_ONE_PLOT:\n return Object.assign({}, state, { mds_one_plot: !state.mds_one_plot });\n case SET_BELL_SMOOTHING:\n return Object.assign({}, state, { bellsmooth: action.payload });\n case SET_Y_LABEL:\n return Object.assign({}, state, { ylabel: action.payload });\n case TOGGLE_GRAPH:\n return Object.assign({}, state, { graphs: __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.xor(state.graphs, [action.payload]).sort() });\n case SET_XLIM:\n {\n var xlim = state.xlim.slice();\n var lim = action.payload.lim;\n if (__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.isNaN(lim) || __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.isNil(lim)) {\n lim = null;\n }\n xlim[action.payload.upLow] = lim;\n return Object.assign({}, state, { xlim: xlim });\n }\n case SET_YLIM:\n {\n var ylim = state.ylim.slice();\n var _lim = action.payload.lim;\n if (__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.isNaN(_lim) || __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.isNil(_lim)) {\n _lim = null;\n }\n ylim[action.payload.upLow] = _lim;\n return Object.assign({}, state, { ylim: ylim });\n }\n case TOGGLE_SHOW_LEGEND:\n return Object.assign({}, state, { showlegend: !state.showlegend });\n case TOGGLE_GRID_LINES:\n return Object.assign({}, state, { showgrid: !state.showgrid });\n case TOGGLE_COPYRIGHT:\n return Object.assign({}, state, { copyright: !state.copyright });\n case TOGGLE_IGNORE_0:\n return Object.assign({}, state, { ignore0: !state.ignore0 });\n case TOGGLE_LOG_X_GRAPH:\n return Object.assign({}, state, { x_log_graph: !state.x_log_graph });\n case TOGGLE_LOG_Y_GRAPH:\n return Object.assign({}, state, { y_log_graph: !state.y_log_graph });\n case __WEBPACK_IMPORTED_MODULE_1__const__[\"e\" /* GUESS_PARAMS */]:\n return Object.assign({}, state, { mc: Object.assign({}, state.mc, {\n iter: action.payload.mciter\n }) });\n case __WEBPACK_IMPORTED_MODULE_1__const__[\"q\" /* SET_MODEL */]:\n return __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.merge(Object.assign({}, state, { graphs: action.meta.num_graphs }), action.meta.default_options);\n case __WEBPACK_IMPORTED_MODULE_1__const__[\"i\" /* LOAD_DATA */]:\n return __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.merge({}, state, action.payload.options);\n case __WEBPACK_IMPORTED_MODULE_1__const__[\"v\" /* TOGGLE_STATIC_GRAPHS */]:\n return Object.assign({}, state, { static_graphs: !state.static_graphs });\n case __WEBPACK_IMPORTED_MODULE_1__const__[\"u\" /* SYNC_OPTIONS */]:\n return Object.assign({}, state, action.payload);\n default:\n return state;\n }\n}\n\n/***/ }),\n\n/***/ 21:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"o\", function() { return SET_DATA; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"r\", function() { return SET_TITLE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"s\", function() { return SET_WAVES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"p\", function() { return SET_METHOD; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return GUESS_PARAMS_START; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return GUESS_PARAMS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return GUESS_PARAMS_ERROR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"q\", function() { return SET_MODEL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FIT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return FIT_START; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return FIT_ERROR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return FIT_VALIDATION_ERROR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return LOAD_DATA; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"k\", function() { return LOAD_DATA_START; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return LOAD_DATA_ERROR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"w\", function() { return UNLOAD_DATA; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return IMPORT_DATASET; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"l\", function() { return LOAD_MODELS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"n\", function() { return LOAD_MODELS_START; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"m\", function() { return LOAD_MODELS_ERROR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"t\", function() { return SWITCH_PAGE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"v\", function() { return TOGGLE_STATIC_GRAPHS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"u\", function() { return SYNC_OPTIONS; });\n// generally follow ducks (https://github.com/erikras/ducks-modular-redux), but occasionally we need some cross-file actions\n\nvar SET_DATA = 'll4/data/SET_DATA';\nvar SET_TITLE = 'll4/data/SET_TITLE';\nvar SET_WAVES = 'll4/data/SET_WAVES';\nvar SET_METHOD = 'll4/data/SET_METHOD';\n\nvar GUESS_PARAMS_START = 'll4/data/GUESS_PARAMS_START';\nvar GUESS_PARAMS = 'll4/data/GUESS_PARAMS';\nvar GUESS_PARAMS_ERROR = 'll4/data/GUESS_PARAMS_ERROR';\n\nvar SET_MODEL = 'll4/models/SET_MODEL';\n\nvar FIT = 'll4/data/FIT';\nvar FIT_START = 'll4/data/FIT_START';\nvar FIT_ERROR = 'll4/data/FIT_ERROR';\nvar FIT_VALIDATION_ERROR = 'll4/data/FIT_VALIDATION_ERROR';\n\nvar LOAD_DATA = 'll4/data/LOAD_DATA';\nvar LOAD_DATA_START = 'll4/data/LOAD_DATA_START';\nvar LOAD_DATA_ERROR = 'll4/data/LOAD_DATA_ERROR';\nvar UNLOAD_DATA = 'll4/data/UNLOAD_DATA';\nvar IMPORT_DATASET = 'll4/data/IMPORT_DATASET';\n\nvar LOAD_MODELS = 'll4/models/LOAD_MODELS';\nvar LOAD_MODELS_START = 'll4/models/LOAD_MODELS_START';\nvar LOAD_MODELS_ERROR = 'll4/models/LOAD_MODELS_ERROR';\n\nvar SWITCH_PAGE = 'll4/page/SWITCH_PAGE';\n\nvar TOGGLE_STATIC_GRAPHS = 'll4/results_options/TOGGLE_STATIC_GRAPHS';\nvar SYNC_OPTIONS = 'll4/results_options/SYNC_OPTIONS';\n\n/***/ }),\n\n/***/ 22:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"f\"] = changeGuess;\n/* harmony export (immutable) */ __webpack_exports__[\"e\"] = changeBound;\n/* unused harmony export fixParam */\n/* unused harmony export releaseParam */\n/* harmony export (immutable) */ __webpack_exports__[\"m\"] = toggleFixParam;\n/* harmony export (immutable) */ __webpack_exports__[\"j\"] = mdsFitEach;\n/* harmony export (immutable) */ __webpack_exports__[\"i\"] = mdsFitAll;\n/* harmony export (immutable) */ __webpack_exports__[\"l\"] = mdsParamsTogether;\n/* harmony export (immutable) */ __webpack_exports__[\"k\"] = mdsParamsEach;\n/* unused harmony export _guessParams */\n/* unused harmony export _guessParamsStart */\n/* unused harmony export _guessParamsError */\n/* harmony export (immutable) */ __webpack_exports__[\"h\"] = guessParams;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return MDS_FIT_EACH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return MDS_FIT_ALL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return MDS_PARAMS_TOGETHER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return MDS_PARAMS_EACH; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_qs__ = __webpack_require__(35);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_qs___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_qs__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__helpers__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__const__ = __webpack_require__(21);\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n\n\nvar CHANGE_GUESS = 'll4/data/CHANGE_GUESS';\n\nfunction changeGuess(ds, wave, param, value) {\n return {\n type: CHANGE_GUESS,\n payload: { ds: ds, wave: wave, param: param, value: value }\n };\n}\n\nvar CHANGE_BOUND = 'll4/data/CHANGE_BOUND';\n\nfunction changeBound(ds, wave, param, upLow, value) {\n return {\n type: CHANGE_BOUND,\n payload: { ds: ds, wave: wave, param: param, upLow: upLow, value: value }\n };\n}\n\nvar FIX_PARAM = 'll4/data/FIX_PARAM';\n\nfunction fixParam(ds, wave, param) {\n return {\n type: FIX_PARAM,\n payload: { ds: ds, wave: wave, param: param }\n };\n}\n\nvar RELEASE_PARAM = 'll4/data/RELEASE_PARAM';\n\nfunction releaseParam(ds, wave, param) {\n return {\n type: RELEASE_PARAM,\n payload: { ds: ds, wave: wave, param: param }\n };\n}\n\nfunction toggleFixParam(ds, wave, param) {\n return function (dispatch, getState) {\n if (__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.includes(getState().data.datasets[ds].params[wave].fixg, param)) {\n dispatch(releaseParam(ds, wave, param));\n } else {\n dispatch(fixParam(ds, wave, param));\n }\n };\n}\n\nvar ACTION_MDS_FIT_EACH = 'll4/data/MDS_FIT_EACH';\n\nfunction mdsFitEach() {\n return { type: ACTION_MDS_FIT_EACH };\n}\n\nvar ACTION_MDS_FIT_ALL = 'll4/data/MDS_FIT_ALL';\n\nfunction mdsFitAll() {\n return { type: ACTION_MDS_FIT_ALL };\n}\n\nvar ACTION_MDS_PARAMS_TOGETHER = 'll4/data/MDS_PARAMS_TOGETHER';\n\nfunction mdsParamsTogether() {\n return { type: ACTION_MDS_PARAMS_TOGETHER };\n}\n\nvar ACTION_MDS_PARAMS_EACH = 'll4/data/MDS_PARAMS_EACH';\n\nfunction mdsParamsEach() {\n return { type: ACTION_MDS_PARAMS_EACH };\n}\n\nfunction _guessParams(result) {\n return {\n type: __WEBPACK_IMPORTED_MODULE_3__const__[\"e\" /* GUESS_PARAMS */],\n payload: result\n };\n}\n\nfunction _guessParamsStart() {\n return {\n type: __WEBPACK_IMPORTED_MODULE_3__const__[\"g\" /* GUESS_PARAMS_START */]\n };\n}\n\nfunction _guessParamsError(e) {\n return {\n type: __WEBPACK_IMPORTED_MODULE_3__const__[\"f\" /* GUESS_PARAMS_ERROR */],\n payload: e,\n error: true\n };\n}\n\nfunction guessParams() {\n return function (dispatch, getState) {\n dispatch(_guessParamsStart());\n var state = getState();\n return fetch(Object(__WEBPACK_IMPORTED_MODULE_2__helpers__[\"a\" /* API */])('guess_params.json'), {\n method: 'POST',\n body: __WEBPACK_IMPORTED_MODULE_1_qs___default.a.stringify(Object.assign({\n page: state.page,\n model: state.data.model,\n method: state.data.method,\n data: state.data.databox,\n loginum: state.data.datasets[0].params.length,\n 'show-params-for': state.data.mds.params,\n mds: +(state.data.datasets.length > 1 && state.data.mds.fit == MDS_FIT_EACH)\n }, __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.mapKeys(state.data.options.transform, function (v, k) {\n return 'dt-' + k;\n }))),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'\n }\n }).then(function (res) {\n return res.json();\n }).then(function (params) {\n if (params.error) {\n return Promise.reject(params.error);\n }\n dispatch(_guessParams(params));\n return params;\n }).catch(function (e) {\n if (e instanceof Error) {\n console.error(e, e.stack); // eslint-disable-line no-console\n dispatch(_guessParamsError());\n } else {\n dispatch(_guessParamsError(e));\n }\n });\n };\n}\n\nvar MDS_FIT_EACH = 'each';\nvar MDS_FIT_ALL = 'all';\nvar MDS_PARAMS_TOGETHER = 'together';\nvar MDS_PARAMS_EACH = 'each';\n\nvar mdsInitialState = {\n fit: MDS_FIT_EACH,\n // each: fit each column as its own dataset\n // all: fit all the data as one dataset, with multiple values for each x\n params: MDS_PARAMS_TOGETHER // only relevant when fit=='each'\n // together: set params for all datasets at once\n // each: set params for each dataset separately\n};\n\nvar datasetInitialState = {\n title: '',\n data: '',\n params: [{\n guesses: [],\n bounds: [],\n fixg: [],\n old_bounds: {}\n }]\n};\n\nfunction mds_reducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : mdsInitialState;\n var action = arguments[1];\n\n switch (action.type) {\n case ACTION_MDS_FIT_EACH:\n return Object.assign({}, state, { fit: MDS_FIT_EACH });\n case ACTION_MDS_FIT_ALL:\n return Object.assign({}, state, { fit: MDS_FIT_ALL });\n case ACTION_MDS_PARAMS_TOGETHER:\n return Object.assign({}, state, { params: MDS_PARAMS_TOGETHER });\n case ACTION_MDS_PARAMS_EACH:\n return Object.assign({}, state, { params: MDS_PARAMS_EACH });\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"t\" /* SWITCH_PAGE */]:\n if (action.payload == 'logsub') {\n return Object.assign({}, state, { fit: MDS_FIT_EACH });\n } // else fall through\n default:\n return state;\n }\n}\n\nfunction _dataset_reducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : datasetInitialState;\n var action = arguments[1];\n var i = arguments[2];\n var meta = arguments[3];\n\n switch (action.type) {\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"o\" /* SET_DATA */]:\n if (meta.mds.fit == MDS_FIT_ALL && meta.data.length > 1) {\n return Object.assign({}, state, { data: action.payload });\n }\n return Object.assign({}, state, {\n data: meta.data[i],\n title: meta.titles[i],\n params: state.params[0].guesses.length ? state.params : meta.params\n });\n case ACTION_MDS_FIT_EACH:\n return Object.assign({}, state, { data: meta.data[i], params: meta.params, title: meta.titles[i] });\n case ACTION_MDS_FIT_ALL:\n return Object.assign({}, state, { data: meta.data, params: meta.params, title: meta.title });\n case ACTION_MDS_PARAMS_TOGETHER:\n return Object.assign({}, state, { params: meta.params });\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"r\" /* SET_TITLE */]:\n return Object.assign({}, state, { title: action.payload });\n case CHANGE_GUESS:\n case CHANGE_BOUND:\n case FIX_PARAM:\n case RELEASE_PARAM:\n if (i == action.payload.ds || meta.mds.fit == MDS_FIT_EACH && meta.mds.params == MDS_PARAMS_TOGETHER) {\n return Object.assign({}, state, { params: _handleParams(state.params, action) });\n } else {\n return state;\n }\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"s\" /* SET_WAVES */]:\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"e\" /* GUESS_PARAMS */]:\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"q\" /* SET_MODEL */]:\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"p\" /* SET_METHOD */]:\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"w\" /* UNLOAD_DATA */]:\n return Object.assign({}, state, { params: _handleParams(state.params, action, i) });\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"i\" /* LOAD_DATA */]:\n {\n var newState = Object.assign({}, state, {\n params: _handleParams(state.params, action, i),\n title: meta.length > 1 ? state.title : action.payload.title\n });\n return newState;\n }\n default:\n return state;\n }\n\n function _handleParams() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var action = arguments[1];\n var i = arguments[2];\n\n switch (action.type) {\n case CHANGE_GUESS:\n return state.map(function (params, wave) {\n function protectDot(value) {\n if (value == '.') {\n return 0;\n }\n return value;\n }\n var diff = protectDot(action.payload.value) - protectDot(params.guesses[action.payload.param]);\n if (isNaN(diff)) {\n diff = '';\n }\n return wave == action.payload.wave ? Object.assign({}, params, {\n guesses: params.guesses.map(function (guess, j) {\n return j == action.payload.param ? action.payload.value : guess;\n }),\n bounds: params.bounds.map(function (guess, j) {\n // currently mimics the [not so great] adjusting logic\n return j == action.payload.param ? guess.map(function (bound) {\n return +bound + diff;\n }) : guess;\n }),\n old_bounds: __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.mapValues(params.old_bounds, function (guess, j) {\n return j == action.payload.param ? guess.map(function (bound) {\n return +bound + diff;\n }) : guess;\n })\n }) : params;\n });\n case CHANGE_BOUND:\n return state.map(function (params, wave) {\n return wave == action.payload.wave ? Object.assign({}, params, {\n // does not touch the guess\n bounds: params.bounds.map(function (guess, j) {\n return j == action.payload.param ? guess.map(function (bound, upLow) {\n return upLow == action.payload.upLow ? action.payload.value : bound;\n }) : guess;\n }),\n fixg: __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.without(params.fixg, action.payload.param),\n old_bounds: __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.omit(params.old_bounds, action.payload.param)\n }) : params;\n });\n case FIX_PARAM:\n return state.map(function (params, wave) {\n var param_val = params.guesses[action.payload.param];\n var bounds_val = params.bounds[action.payload.param];\n return wave == action.payload.wave ? Object.assign({}, params, {\n bounds: params.bounds.map(function (guess, j) {\n return j == action.payload.param ? [param_val, param_val] : guess;\n }),\n fixg: __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.union(params.fixg, [action.payload.param]),\n old_bounds: _defineProperty({}, action.payload.param, bounds_val)\n }) : params;\n });\n case RELEASE_PARAM:\n return state.map(function (params, wave) {\n var bounds_val = params.old_bounds[action.payload.param];\n return wave == action.payload.wave ? Object.assign({}, params, {\n bounds: params.bounds.map(function (guess, j) {\n return j == action.payload.param ? bounds_val : guess;\n }),\n fixg: __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.without(params.fixg, action.payload.param),\n old_bounds: __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.omit(params.old_bounds, action.payload.param)\n }) : params;\n });\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"s\" /* SET_WAVES */]:\n {\n var waves = action.payload;\n if (state.length < waves) {\n // add more\n return state.concat(Array(waves - state.length).fill(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.last(state)));\n } else if (state.length > waves) {\n // cut off\n return state.slice(0, waves);\n } else {\n return state;\n }\n }\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"e\" /* GUESS_PARAMS */]:\n {\n var params = action.payload.params[i],\n num_params = action.payload.num_params;\n var guesses = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.chunk(params.guesses, num_params),\n bounds = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.chunk(params.bounds, num_params);\n return state.map(function (params, wave) {\n var newParams = {\n guesses: guesses[wave],\n bounds: bounds[wave],\n fixg: params.fixg || [],\n old_bounds: {}\n };\n newParams.fixg.forEach(function (fix) {\n newParams.old_bounds[fix] = newParams.bounds[fix];\n newParams.bounds[fix] = [newParams.guesses[fix], newParams.guesses[fix]];\n });\n if (action.payload.params[i].original) {\n newParams.original = action.payload.params[i].original;\n var original = newParams.original;\n original.old_bounds = {};\n original.fixg = newParams.fixg;\n original.fixg.forEach(function (fix) {\n original.old_bounds[fix] = original.bounds[fix];\n original.bounds[fix] = [original.guesses[fix], original.guesses[fix]];\n });\n }\n return newParams;\n });\n }\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"i\" /* LOAD_DATA */]:\n {\n var _num_params = state[0].guesses.length;\n var _guesses = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.chunk(action.payload.guesses, _num_params),\n _bounds2 = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.chunk(action.payload.bounds, _num_params);\n return state.map(function (params, wave) {\n var _bounds = _bounds2[wave];\n if (_bounds) {\n _bounds = _bounds.map(function (b, i) {\n return b || params.bounds[i];\n }); // catch null\n } else {\n _bounds = params.bounds;\n }\n var newParams = {\n guesses: _guesses[wave] || params.guesses,\n bounds: _bounds,\n fixg: params.fixg || [],\n old_bounds: {}\n };\n newParams.fixg.forEach(function (fix) {\n newParams.old_bounds[fix] = newParams.bounds[fix];\n newParams.bounds[fix] = [newParams.guesses[fix], newParams.guesses[fix]];\n });\n return newParams;\n });\n }\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"w\" /* UNLOAD_DATA */]:\n {\n var _num_params2 = action.meta.datasets[0].params[0].guesses.length;\n return [{ // initialize everything to 0\n guesses: Array(_num_params2).fill(0),\n bounds: Array(_num_params2).fill([0, 0]),\n fixg: [],\n old_bounds: {}\n }];\n }\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"q\" /* SET_MODEL */]:\n if (action.meta.keep) {\n return state; // don't overwrite everything\n }\n if (!action.meta.can_phase) {\n state = state.slice(0, 1); // cut to just one\n }\n return state.map(function () {\n return { // initialize everything to 0\n guesses: Array(action.meta.num_params).fill(0),\n bounds: Array(action.meta.num_params).fill([0, 0]),\n fixg: action.meta.hold_guesses,\n old_bounds: __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.fromPairs(action.meta.hold_guesses.map(function (g) {\n return [g, [0, 0]];\n }))\n };\n });\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"p\" /* SET_METHOD */]:\n if (action.meta) {\n return state.map(function (wave, j) {\n return Object.assign({}, wave, action.meta[i][j], { original: wave.original || wave });\n });\n } else {\n if (state[0].original) {\n return state.map(function (wave) {\n return wave.original;\n });\n } else {\n return state;\n }\n }\n default:\n return state;\n }\n }\n}\n\nfunction datasets_reducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var action = arguments[1];\n var _ref = arguments[2];\n var mds = _ref.mds,\n databox = _ref.databox,\n title = _ref.title;\n\n if (state.length === 0) {\n state = [undefined];\n }\n\n var meta = { mds: mds, length: state.length };\n switch (action.type) {\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"o\" /* SET_DATA */]:\n case ACTION_MDS_FIT_EACH:\n {\n var data = void 0;\n try {\n data = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.zip.apply(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a, _toConsumableArray(Object(__WEBPACK_IMPORTED_MODULE_2__helpers__[\"b\" /* CSVText2List */])(databox, true)));\n } catch (e) {\n data = [[], []];\n }\n var x = data[0],\n y = data.slice(1);\n meta = Object.assign({}, meta, {\n data: y.map(function (col) {\n return __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.zip(x, col).filter(function (row) {\n return row[1] != '' && row[1] != undefined;\n }).join('\\n');\n }),\n titles: y.length > 1 ? y.map(function (col) {\n return col[0];\n }) : [title],\n params: state[0].params\n });\n if (mds.fit == MDS_FIT_EACH) {\n state = Array(y.length).fill(undefined).map(function (v, i) {\n return state[i];\n });\n }\n break;\n }\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"r\" /* SET_TITLE */]:\n {\n if (mds.fit == MDS_FIT_EACH && state.length > 1) {\n // don't let it change them\n return state;\n }\n break;\n }\n // case ACTION_MDS_FIT_EACH: {\n // const data = _.zip(...CSVText2List(databox));\n // const x = data[0], y = data.slice(1);\n // meta = {...meta, data: y.map(col=>_.zip(x, col).join('\\n')), titles: y.map(col=>col[0]), params: state[0].params};\n // state = Array(y.length).fill(undefined).map((v, i)=>state[i]);\n // break;\n // }\n case ACTION_MDS_FIT_ALL:\n {\n var params = _avgParams(state);\n meta = Object.assign({}, meta, { data: databox, title: title, params: params });\n state = state.slice(0, 1);\n break;\n }\n case ACTION_MDS_PARAMS_TOGETHER:\n {\n var _params = _avgParams(state);\n meta = Object.assign({}, meta, { params: _params });\n break;\n }\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"e\" /* GUESS_PARAMS */]:\n {\n if (state.length > 1 && mds.params == MDS_PARAMS_TOGETHER) {\n action = Object.assign({}, action, { payload: Object.assign({}, action.payload, {\n params: Array(state.length).fill(action.payload.params[0])\n // clone it to have enough copies\n }) });\n }\n break;\n }\n }\n\n var newState = state.map(function (ds, i) {\n return _dataset_reducer(ds, action, i, meta);\n });\n return __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.isEqual(state, newState) ? state : newState;\n\n function _avgParams(state) {\n return __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.zip.apply(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a, _toConsumableArray(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.map(state, 'params'))).map(function (params) {\n var guesses = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.zip.apply(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a, _toConsumableArray(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.map(params, 'guesses'))).map(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.mean); // average of the guesses\n var bounds = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.zip.apply(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a, _toConsumableArray(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.map(params, 'bounds'))).map(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.flatten).map(function (flat) {\n return [__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.min(flat), __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.max(flat)];\n });\n var fixg = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.intersection.apply(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a, _toConsumableArray(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.map(params, 'fixg')));\n var old_bounds = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.map(params, 'old_bounds');\n old_bounds = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.fromPairs(fixg.map(function (g) {\n var flat = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.flatten(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.map(old_bounds, g));\n return [g, [__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.min(flat), __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.max(flat)]];\n }));\n return { guesses: guesses, bounds: bounds, fixg: fixg, old_bounds: old_bounds };\n });\n }\n}\n\nfunction guess_reducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var action = arguments[1];\n\n switch (action.type) {\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"g\" /* GUESS_PARAMS_START */]:\n return 1;\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"e\" /* GUESS_PARAMS */]:\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"h\" /* IMPORT_DATASET */]:\n return 2;\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"f\" /* GUESS_PARAMS_ERROR */]:\n {\n var n = new Number(-1);\n n.error = action.payload;\n return n;\n }\n case CHANGE_GUESS:\n case CHANGE_BOUND:\n case FIX_PARAM:\n case RELEASE_PARAM:\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"s\" /* SET_WAVES */]:\n case __WEBPACK_IMPORTED_MODULE_3__const__[\"q\" /* SET_MODEL */]:\n return 0;\n default:\n return state;\n }\n}\n\n// they are packaged together because they are tightly correlated\n/* harmony default export */ __webpack_exports__[\"g\"] = ({\n mds_reducer: mds_reducer,\n datasets_reducer: datasets_reducer,\n guess_reducer: guess_reducer\n});\n\n/***/ }),\n\n/***/ 244:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(setImmediate) {/* unused harmony export GuessParams */\n/* unused harmony export mapStateToProps */\n/* unused harmony export mapDispatchToProps */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_redux__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react_redux__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_state_data_datasets__ = __webpack_require__(22);\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* global $, setImmediate */\n\n\n\n\n\n\n\nvar GuessParams = function (_React$Component) {\n _inherits(GuessParams, _React$Component);\n\n function GuessParams() {\n _classCallCheck(this, GuessParams);\n\n return _possibleConstructorReturn(this, (GuessParams.__proto__ || Object.getPrototypeOf(GuessParams)).apply(this, arguments));\n }\n\n _createClass(GuessParams, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var _this2 = this;\n\n if (nextProps.status == -1 && _typeof(nextProps.status) == 'object') {\n // Number object\n setImmediate(function () {\n return _this2._notify(nextProps.status.error);\n });\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n status = _props.status,\n onClick = _props.onClick;\n\n var statusText = ['[error]', '', '...', ''][status + 1]; // status is a number from -1 to 2\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\n 'button',\n { id: 'GuessParams', type: 'button', onClick: onClick, 'data-toggle': 'tooltip', 'data-placement': 'right', className: 'btn btn-primary' },\n 'Guess Parameters ',\n statusText\n );\n }\n }, {\n key: '_notify',\n value: function _notify(message) {\n if (window.$) {\n var $button = $('#GuessParams');\n $button.attr({\n title: message,\n 'data-toggle': 'tooltip'\n }).tooltip({ container: 'body' }).tooltip('show');\n setTimeout(function () {\n $button.attr('title', '').tooltip('destroy');\n }, 5000);\n } else {\n alert(message);\n }\n }\n }]);\n\n return GuessParams;\n}(__WEBPACK_IMPORTED_MODULE_1_react___default.a.Component);\n\n\nfunction mapStateToProps(state) {\n return {\n status: state.data.guess\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return Object(__WEBPACK_IMPORTED_MODULE_2_redux__[\"b\" /* bindActionCreators */])({\n onClick: __WEBPACK_IMPORTED_MODULE_4_state_data_datasets__[\"h\" /* guessParams */]\n }, dispatch);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_3_react_redux__[\"b\" /* connect */])(mapStateToProps, mapDispatchToProps)(GuessParams));\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(44).setImmediate))\n\n/***/ }),\n\n/***/ 245:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 246:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 247:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(setImmediate) {/* unused harmony export OutputContainer */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_redux__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Plots_Plots__ = __webpack_require__(248);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Params__ = __webpack_require__(257);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Time__ = __webpack_require__(258);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__DataDump__ = __webpack_require__(259);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_loading_gif__ = __webpack_require__(114);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Container_css__ = __webpack_require__(260);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Container_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__Container_css__);\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* global setImmediate */\n\n\n\n\n\n\n\n\n\n\n\nvar OutputContainer = function (_Component) {\n _inherits(OutputContainer, _Component);\n\n function OutputContainer(props) {\n _classCallCheck(this, OutputContainer);\n\n var _this = _possibleConstructorReturn(this, (OutputContainer.__proto__ || Object.getPrototypeOf(OutputContainer)).call(this, props));\n\n _this.state = { showStats: false };\n return _this;\n }\n\n _createClass(OutputContainer, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (nextProps.status == -2) {\n setImmediate(function () {\n alert('Error! Could not fit: ' + nextProps.error.join('; '));\n });\n }\n }\n }, {\n key: '_paramsDestruct',\n value: function _paramsDestruct(showStats) {\n this.setState({ showStats: showStats });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _status = {\n '-2': function _() {\n return null;\n },\n '-1': function _() {\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'p',\n null,\n 'Sorry, an error occurred: ',\n _this2.props.error && _this2.props.error.toString() || 'Unknown error'\n );\n }, // eslint-disable-line react/display-name\n '0': function _() {\n return null;\n },\n '1': function _() {\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('img', { src: __WEBPACK_IMPORTED_MODULE_7_loading_gif__[\"a\" /* default */], alt: 'loading...' });\n }, // eslint-disable-line react/display-name\n '2': function _() {\n return (// eslint-disable-line react/display-name\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n null,\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__Params__[\"a\" /* default */], { showStats: _this2.state.showStats, onDestruct: _this2._paramsDestruct.bind(_this2) }),\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__Plots_Plots__[\"a\" /* default */], null)\n )\n );\n },\n '3': function _() {\n return (// eslint-disable-line react/display-name\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n null,\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__Params__[\"a\" /* default */], { showStats: _this2.state.showStats, onDestruct: _this2._paramsDestruct.bind(_this2) }),\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__Plots_Plots__[\"a\" /* default */], null),\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__DataDump__[\"a\" /* default */], null),\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__Time__[\"a\" /* default */], null)\n )\n );\n }\n }[this.props.status]();\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { id: 'OutputContainer' },\n _status\n );\n }\n }]);\n\n return OutputContainer;\n}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_2_react_redux__[\"b\" /* connect */])(function (state) {\n return {\n status: state.results.status,\n error: state.results.error\n };\n})(OutputContainer));\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(44).setImmediate))\n\n/***/ }),\n\n/***/ 248:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export Plots */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_redux__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react_redux__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_lodash__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_selectors_plot__ = __webpack_require__(45);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_state_data_options__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_loading_gif__ = __webpack_require__(114);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Plot__ = __webpack_require__(249);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_components_Input_GraphingOptions__ = __webpack_require__(113);\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar Plots = function (_React$Component) {\n _inherits(Plots, _React$Component);\n\n function Plots(props) {\n _classCallCheck(this, Plots);\n\n var _this = _possibleConstructorReturn(this, (Plots.__proto__ || Object.getPrototypeOf(Plots)).call(this, props));\n\n _this.state = { PlotlyComponent: null, Plotly: null };\n __webpack_require__.e/* import() */(1).then(__webpack_require__.bind(null, 279)).then(function (PlotlyComponent) {\n _this.setState({ PlotlyComponent: PlotlyComponent.default, Plotly: PlotlyComponent.Plotly });\n }).catch(function (err) {\n _this.setState({ PlotlyComponent: err });\n });\n return _this;\n }\n\n _createClass(Plots, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps, nextState) {\n return !__WEBPACK_IMPORTED_MODULE_4_lodash___default.a.isEqual(__WEBPACK_IMPORTED_MODULE_4_lodash___default.a.omit(this.props, 'replot'), __WEBPACK_IMPORTED_MODULE_4_lodash___default.a.omit(nextProps, 'replot')) || nextState !== this.state;\n }\n }, {\n key: '_toggleStaticGraphs',\n value: function _toggleStaticGraphs(e) {\n e.preventDefault();\n this.props.toggleStaticGraphs();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _state = this.state,\n PlotlyComponent = _state.PlotlyComponent,\n Plotly = _state.Plotly;\n\n if (PlotlyComponent == null) {\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('img', { src: __WEBPACK_IMPORTED_MODULE_7_loading_gif__[\"a\" /* default */], alt: 'loading...' });\n }\n if (PlotlyComponent instanceof Error) {\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n null,\n 'Error: ',\n PlotlyComponent.message\n );\n }\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { id: 'OutputPlots' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'toggleStaticGraphs' },\n this.props.static_graphs ? 'Static' : __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'a',\n { href: '#', onClick: this._toggleStaticGraphs.bind(this) },\n 'Static'\n ),\n ' | ',\n !this.props.static_graphs ? 'Interactive' : __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'a',\n { href: '#', onClick: this._toggleStaticGraphs.bind(this) },\n 'Interactive'\n )\n ),\n this.props.data.map(function (_ref, i) {\n var data = _ref.data,\n layout = _ref.layout;\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__Plot__[\"a\" /* default */], { key: i, component: PlotlyComponent, Plotly: Plotly, data: data, layout: layout, replot: _this2.props.replot(i), static_graphs: _this2.props.static_graphs });\n }),\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'download-plot' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div', { id: 'master-downloader' })\n ),\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9_components_Input_GraphingOptions__[\"a\" /* default */], { type: 'results' })\n );\n }\n }]);\n\n return Plots;\n}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);\n\n\nfunction mapStateToProps(state) {\n return {\n data: Object(__WEBPACK_IMPORTED_MODULE_5_selectors_plot__[\"c\" /* selector */])(state),\n replot: function replot(i) {\n return function (dpi, grayscale) {\n var data = Object(__WEBPACK_IMPORTED_MODULE_5_selectors_plot__[\"c\" /* selector */])(state, { dpi: dpi, grayscale: grayscale })[i];\n return Object.assign({}, data, {\n title: Object(__WEBPACK_IMPORTED_MODULE_5_selectors_plot__[\"a\" /* __ROOT__ */])(state).title + '-graph-' + data.label\n });\n };\n },\n static_graphs: state.results.data.options.static_graphs\n };\n}\nfunction mapDispatchToProps(dispatch) {\n return Object(__WEBPACK_IMPORTED_MODULE_2_redux__[\"b\" /* bindActionCreators */])({\n toggleStaticGraphs: __WEBPACK_IMPORTED_MODULE_6_state_data_options__[\"toggleStaticGraphs\"]\n }, dispatch);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_3_react_redux__[\"b\" /* connect */])(mapStateToProps, mapDispatchToProps)(Plots));\n\n/***/ }),\n\n/***/ 249:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(setImmediate) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_resizable__ = __webpack_require__(250);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_resizable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react_resizable__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react_resizable_css_styles_css__ = __webpack_require__(254);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react_resizable_css_styles_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_react_resizable_css_styles_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__icons__ = __webpack_require__(255);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__DownloadHelper__ = __webpack_require__(116);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_selectors_plot_download__ = __webpack_require__(66);\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* global $, setImmediate */\n\n\n\n\n\n\n\n\n\nvar Plot = function (_React$Component) {\n _inherits(Plot, _React$Component);\n\n function Plot(props) {\n _classCallCheck(this, Plot);\n\n var _this = _possibleConstructorReturn(this, (Plot.__proto__ || Object.getPrototypeOf(Plot)).call(this, props));\n\n _this.state = {\n width: props.layout.showlegend ? 600 : 480,\n height: 360,\n downloading: false,\n copyState: 0,\n imageSrc: null\n };\n return _this;\n }\n\n _createClass(Plot, [{\n key: '_download',\n value: function _download(config) {\n var _this2 = this;\n\n var _props = this.props,\n Plotly = _props.Plotly,\n replot = _props.replot;\n\n var _replot = replot(config.dpi, config.grayscale),\n data = _replot.data,\n layout = _replot.layout,\n title = _replot.title;\n\n var width = this.state.width / 60 * config.dpi;\n var height = this.state.height / 60 * config.dpi;\n var format = config.format == 'tiff' ? 'png' : config.format;\n return Object(__WEBPACK_IMPORTED_MODULE_6_selectors_plot_download__[\"a\" /* default */])(Plotly).then(function (_ref) {\n var getArrayBuffer = _ref.getArrayBuffer,\n downloadFile = _ref.downloadFile,\n pngToTiff = _ref.pngToTiff;\n return getArrayBuffer(data, layout, format, { width: width, height: height }).then(function (ab) {\n if (config.format == 'tiff') {\n ab = pngToTiff(ab, config.dpi);\n }\n downloadFile(ab, title, config.format);\n _this2.setState({ downloading: false });\n });\n }).catch(function (err) {\n console.error(err); // eslint-disable-line no-console\n _this2._notify('Error occurred');\n });\n }\n }, {\n key: '_copy1',\n value: function _copy1() {\n var _this3 = this;\n\n var _props2 = this.props,\n Plotly = _props2.Plotly,\n data = _props2.data,\n layout = _props2.layout;\n\n Object(__WEBPACK_IMPORTED_MODULE_6_selectors_plot_download__[\"a\" /* default */])(Plotly).then(function (_ref2) {\n var getDataURI = _ref2.getDataURI;\n return getDataURI(data, layout, 'png', _this3.state).then(function (dataURI) {\n _this3._copierEl.src = dataURI;\n _this3.setState({ copyState: 1 });\n _this3._notify('Click again to copy');\n });\n }).catch(function (err) {\n console.error(err); // eslint-disable-line no-console\n _this3._notify('Error occurred');\n });\n }\n }, {\n key: '_copy2',\n value: function _copy2() {\n // https://github.com/owaisafaq/copier-js\n var copier = this._copierContainer;\n copier.setAttribute('contenteditable', true);\n //Select the image\n selectText(copier);\n //Execute copy Command\n //Note: This will ONLY work directly inside a click listenner\n var success = document.execCommand('copy');\n //Unselect the content\n window.getSelection().removeAllRanges();\n //Make the container Div uneditable again\n copier.removeAttribute('contenteditable');\n this.setState({ copyState: 0 });\n this._notify(success ? 'Copy successful!' : 'Copy failed.');\n }\n }, {\n key: '_notify',\n value: function _notify(message) {\n if (window.$) {\n var $copyImage = $('.modebar a[data-title=\"Copy to Clipboard\"] svg', this._plotWrapper);\n $copyImage.attr({\n title: message,\n 'data-toggle': 'tooltip'\n }).tooltip({ container: 'body' }).tooltip('show');\n setTimeout(function () {\n $copyImage.tooltip('destroy');\n }, 4000);\n } else {\n alert(message);\n }\n }\n }, {\n key: '_getStaticURI',\n value: function _getStaticURI() {\n var _this4 = this;\n\n var _props3 = this.props,\n Plotly = _props3.Plotly,\n data = _props3.data,\n layout = _props3.layout;\n\n Object(__WEBPACK_IMPORTED_MODULE_6_selectors_plot_download__[\"a\" /* default */])(Plotly).then(function (_ref3) {\n var getDataURI = _ref3.getDataURI;\n\n getDataURI(data, layout, 'png', _this4.state).then(function (dataURI) {\n _this4.setState({ imageSrc: dataURI });\n }, function (err) {\n // IE/Edge doesn't support canvas to PNG as it has been tainted\n if (err.description.match(/svg/)) {\n getDataURI(data, layout, 'svg', _this4.state).then(function (dataURI) {\n _this4.setState({ imageSrc: dataURI });\n }, function (err) {\n console.error(err); // eslint-disable-line no-console\n });\n } else {\n console.error(err); // eslint-disable-line no-console\n }\n });\n });\n }\n }, {\n key: 'componentWillMount',\n value: function componentWillMount() {\n this.componentWillReceiveProps(this.props, this.state);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var _this5 = this;\n\n if (nextProps.static_graphs) {\n setImmediate(function () {\n _this5._getStaticURI();\n });\n }\n }\n }, {\n key: 'renderInteractive',\n value: function renderInteractive() {\n var _this6 = this;\n\n var _props4 = this.props,\n PlotlyComponent = _props4.component,\n data = _props4.data,\n layout = _props4.layout;\n\n var config = {\n modeBarButtonsToRemove: ['toImage'],\n modeBarButtonsToAdd: [{\n name: 'download',\n title: 'Download',\n icon: __WEBPACK_IMPORTED_MODULE_4__icons__[\"a\" /* default */].camera,\n click: function click() {\n _this6.setState({ downloading: !_this6.state.downloading });\n }\n }, {\n name: 'copy',\n title: 'Copy to Clipboard',\n icon: __WEBPACK_IMPORTED_MODULE_4__icons__[\"a\" /* default */].copy,\n click: function click() {\n if (_this6.state.copyState == 0) {\n _this6._copy1();\n } else if (_this6.state.copyState == 1) {\n _this6._copy2();\n }\n }\n }]\n };\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'Plot' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n __WEBPACK_IMPORTED_MODULE_2_react_resizable__[\"ResizableBox\"],\n { width: this.state.width, height: this.state.height, onResize: function onResize(event, _ref4) {\n var size = _ref4.size;\n return _this6.setState(size);\n } },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { ref: function ref(node) {\n return _this6._plotWrapper = node;\n } },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(PlotlyComponent, { data: data, layout: Object.assign({}, layout, { width: this.state.width, height: this.state.height }), config: config })\n )\n ),\n this.state.downloading ? __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__DownloadHelper__[\"a\" /* default */], { width: this.state.width, height: this.state.height, onSubmit: this._download.bind(this) }) : null,\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'download-plot' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { ref: function ref(node) {\n return _this6._copierContainer = node;\n } },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('img', { ref: function ref(node) {\n return _this6._copierEl = node;\n } })\n )\n )\n );\n }\n }, {\n key: 'renderStatic',\n value: function renderStatic() {\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'Plot' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('img', { src: this.state.imageSrc })\n );\n }\n }, {\n key: 'render',\n value: function render() {\n return this.props.static_graphs ? this.renderStatic() : this.renderInteractive();\n }\n }]);\n\n return Plot;\n}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Plot);\n\n// Cross-browser function to select content\n// https://github.com/owaisafaq/copier-js\nfunction selectText(element) {\n var doc = document;\n var range;\n if (doc.body.createTextRange) {\n range = document.body.createTextRange();\n range.moveToElementText(element);\n range.select();\n } else if (window.getSelection) {\n var selection = window.getSelection();\n range = document.createRange();\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n}\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(44).setImmediate))\n\n/***/ }),\n\n/***/ 255:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_plotly_js_build_ploticon__ = __webpack_require__(256);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_plotly_js_build_ploticon___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_plotly_js_build_ploticon__);\n\n\nvar copy = {\n // https://commons.wikimedia.org/wiki/File:Copy_font_awesome.svg\n // License: CC-BY-SA-3.0\n width: 1850,\n path: 'm 1696,1152 q 40,0 68,-28 28,-28 28,-68 V -160 q 0,-40 -28,-68 -28,-28 -68,-28 H 736 q -40,0 -68,28 -28,28 -28,68 V 128 H 96 Q 56,128 28,156 0,184 0,224 v 672 q 0,40 20,88 20,48 48,76 l 408,408 q 28,28 76,48 48,20 88,20 h 416 q 40,0 68,-28 28,-28 28,-68 v -328 q 68,40 128,40 h 416 z M 1152,939 853,640 h 299 V 939 z M 512,1323 213,1024 h 299 v 299 z m 196,-647 316,316 v 416 H 640 V 992 q 0,-40 -28,-68 -28,-28 -68,-28 H 128 V 256 h 512 v 256 q 0,40 20,88 20,48 48,76 z m 956,-804 V 1024 H 1280 V 608 q 0,-40 -28,-68 -28,-28 -68,-28 H 768 v -640 h 896 z',\n ascent: 1650,\n descent: -350\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n camera: __WEBPACK_IMPORTED_MODULE_0_plotly_js_build_ploticon___default.a.camera,\n copy: copy\n});\n\n/***/ }),\n\n/***/ 257:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXTERNAL MODULE: ./node_modules/prop-types/index.js\nvar prop_types = __webpack_require__(1);\nvar prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);\n\n// EXTERNAL MODULE: ./node_modules/react/react.js\nvar react = __webpack_require__(0);\nvar react_default = /*#__PURE__*/__webpack_require__.n(react);\n\n// EXTERNAL MODULE: ./node_modules/react-redux/es/index.js + 14 modules\nvar es = __webpack_require__(3);\n\n// CONCATENATED MODULE: ./src/components/Number.jsx\n\n\n\nvar Number_Number = function Number(_ref) {\n var num = _ref.num,\n type = _ref.type;\n\n if (num == null) {\n num = NaN;\n }\n var decimalPlaces = 3;\n if (type == 'CI') {\n decimalPlaces = 2;\n }\n return react_default.a.createElement(\n 'span',\n { title: digits(num, 10) },\n digits(num, decimalPlaces)\n );\n};\n\n\n/* harmony default export */ var components_Number = (Number_Number);\n\nfunction digits(num, significance) {\n var numDigits = _numDigits(Math.trunc(num));\n var real_significance = num == 0 ? significance + 1 : Math.max(significance, numDigits);\n return num.toPrecision(real_significance);\n\n function _numDigits(n) {\n return Math.abs(n).toString().length;\n }\n}\n// CONCATENATED MODULE: ./src/components/Color.jsx\n\n\n\nvar Color_Color = function Color(_ref) {\n var color = _ref.color;\n\n return react_default.a.createElement(\n 'span',\n { style: { color: color } },\n String.fromCharCode(0x25cf)\n );\n};\n\n\n/* harmony default export */ var components_Color = (Color_Color);\n// EXTERNAL MODULE: ./src/selectors/index.js\nvar selectors = __webpack_require__(10);\n\n// EXTERNAL MODULE: ./src/selectors/plot/util.js\nvar util = __webpack_require__(68);\n\n// CONCATENATED MODULE: ./src/components/Output/Params.jsx\n/* unused harmony export Params */\n/* unused harmony export mapStateToProps */\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n\n\n\nvar Params_Params = function (_React$Component) {\n _inherits(Params, _React$Component);\n\n function Params(props) {\n _classCallCheck(this, Params);\n\n var _this = _possibleConstructorReturn(this, (Params.__proto__ || Object.getPrototypeOf(Params)).call(this, props));\n\n _this.state = { showStats: !!_this.props.showStats };\n return _this;\n }\n\n _createClass(Params, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.props.onDestruct) {\n this.props.onDestruct(this.state.showStats);\n }\n }\n }, {\n key: '_toggleStats',\n value: function _toggleStats(event) {\n event.preventDefault();\n this.setState({ showStats: !this.state.showStats });\n return false;\n }\n }, {\n key: '_renderHead',\n value: function _renderHead() {\n var model = this.props.model;\n return react_default.a.createElement(\n 'thead',\n null,\n react_default.a.createElement(\n 'tr',\n null,\n react_default.a.createElement(\n 'th',\n { colSpan: 2 },\n model.title\n ),\n this.props.param_names.map(function (p, i) {\n return react_default.a.createElement(\n 'th',\n { key: i },\n p\n );\n }),\n this.state.showStats && getFirstValidDS(this.props.results).phases[0].stats.__order.map(function (s, i) {\n return react_default.a.createElement('th', { key: i, dangerouslySetInnerHTML: { __html: s } });\n }),\n this.state.showStats && model.milestones.map(function (m, i) {\n return react_default.a.createElement(\n 'th',\n { key: i },\n m\n );\n })\n )\n );\n }\n }, {\n key: '_renderBody',\n value: function _renderBody() {\n var _this2 = this;\n\n var _props = this.props,\n results = _props.results,\n model = _props.model,\n colors = _props.colors,\n mds_one_plot = _props.mds_one_plot,\n param_names = _props.param_names;\n\n var numPhases = getFirstValidDS(results).phases.length;\n var showingWholeFit = this.state.showStats && numPhases > 1;\n var colorsPerDS = results.length > 1 && mds_one_plot;\n var numStats = getFirstValidDS(results).phases[0].stats.__order.length;\n return results.map(function (ds, i) {\n if (!ds.phases) {\n var emptySpaces = 1 + param_names.length + (_this2.state.showStats ? numStats + model.milestones.length : 0);\n return react_default.a.createElement(\n 'tbody',\n { key: i },\n react_default.a.createElement(\n 'tr',\n null,\n react_default.a.createElement(\n 'th',\n null,\n ds.title\n ),\n react_default.a.createElement(\n 'td',\n { colSpan: emptySpaces },\n '...'\n )\n )\n );\n }\n return react_default.a.createElement(\n 'tbody',\n { key: i },\n ds.phases.map(function (phase, j) {\n return react_default.a.createElement(\n 'tr',\n { key: j },\n j == 0 && react_default.a.createElement(\n 'th',\n { rowSpan: numPhases + showingWholeFit },\n ds.title,\n colorsPerDS && react_default.a.createElement(components_Color, { color: colors[i] })\n ),\n react_default.a.createElement(\n 'th',\n null,\n 'Phase ',\n j + 1,\n !colorsPerDS && react_default.a.createElement(components_Color, { color: colors[j] })\n ),\n phase.params.concat(phase.virtual_params).map(function (p, k) {\n return react_default.a.createElement(\n 'td',\n { key: k },\n react_default.a.createElement(components_Number, { num: p }),\n phase.orig_params[k] != p && phase.orig_params[k] != undefined && react_default.a.createElement(\n 'span',\n null,\n ' (',\n react_default.a.createElement(components_Number, { num: phase.orig_params[k] }),\n ')'\n ),\n !!phase.CIs.percentage && react_default.a.createElement(\n 'span',\n null,\n react_default.a.createElement('br', null),\n '[',\n react_default.a.createElement(components_Number, { type: 'CI', num: phase.CIs.popt[0][k] }),\n ' – ',\n react_default.a.createElement(components_Number, { type: 'CI', num: phase.CIs.popt[1][k] }),\n ']',\n react_default.a.createElement('br', null),\n 'median:',\n ' ',\n react_default.a.createElement(components_Number, { type: 'CI', num: phase.CIs.popt[2][k] })\n )\n );\n }),\n _this2.state.showStats && phase.stats.__order.map(function (s, k) {\n return react_default.a.createElement(\n 'td',\n { key: k },\n react_default.a.createElement(components_Number, { num: phase.stats[s] }),\n !!phase.CIs.percentage && react_default.a.createElement(\n 'span',\n null,\n react_default.a.createElement('br', null),\n '[',\n react_default.a.createElement(components_Number, { type: 'CI', num: phase.CIs.stats[0][s] }),\n ' – ',\n react_default.a.createElement(components_Number, { type: 'CI', num: phase.CIs.stats[1][s] }),\n ']',\n react_default.a.createElement('br', null),\n 'median:',\n ' ',\n react_default.a.createElement(components_Number, { type: 'CI', num: phase.CIs.stats[2][s] })\n )\n );\n }),\n _this2.state.showStats && phase.milestones.map(function (m, k) {\n return react_default.a.createElement(\n 'td',\n { key: k },\n react_default.a.createElement(components_Number, { num: m }),\n !!phase.CIs.percentage && react_default.a.createElement(\n 'span',\n null,\n react_default.a.createElement('br', null),\n '[',\n react_default.a.createElement(components_Number, { type: 'CI', num: phase.CIs.milestones[0][k] }),\n ' – ',\n react_default.a.createElement(components_Number, { type: 'CI', num: phase.CIs.milestones[1][k] }),\n ']',\n react_default.a.createElement('br', null),\n 'median:',\n ' ',\n react_default.a.createElement(components_Number, { type: 'CI', num: phase.CIs.milestones[2][k] })\n )\n );\n })\n );\n }),\n showingWholeFit && react_default.a.createElement(\n 'tr',\n null,\n react_default.a.createElement(\n 'th',\n null,\n 'Whole fit'\n ),\n react_default.a.createElement('td', { colSpan: _this2.props.param_names.length }),\n ds.phases[0].stats.__order.map(function (s, k) {\n return react_default.a.createElement(\n 'td',\n { key: k },\n ds.stats[s] && react_default.a.createElement(components_Number, { num: ds.stats[s] })\n );\n }),\n react_default.a.createElement('td', { colSpan: model.milestones.length })\n )\n );\n });\n }\n }, {\n key: '_renderAvg',\n value: function _renderAvg() {\n if (!this.props.avg_popt || !this.state.showStats) {\n return null;\n }\n var _props$avg_popt = this.props.avg_popt,\n avg = _props$avg_popt.avg,\n se = _props$avg_popt.se;\n\n return [_renderTBody(avg, 'Average'), _renderTBody(se, 'Standard Error')];\n\n function _renderTBody(popt, title) {\n return react_default.a.createElement(\n 'tbody',\n { key: title },\n popt.map(function (phase, i) {\n return react_default.a.createElement(\n 'tr',\n { key: i },\n i == 0 ? react_default.a.createElement(\n 'th',\n { rowSpan: popt.length },\n title\n ) : null,\n react_default.a.createElement(\n 'th',\n null,\n 'Phase ',\n i + 1\n ),\n phase.map(function (p, j) {\n return react_default.a.createElement(\n 'td',\n { key: j },\n react_default.a.createElement(components_Number, { num: p })\n );\n })\n );\n })\n );\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return react_default.a.createElement(\n 'div',\n null,\n react_default.a.createElement(\n 'small',\n null,\n react_default.a.createElement(\n 'a',\n { href: '#', onClick: this._toggleStats.bind(this), className: 'toggleStats' },\n this.state.showStats ? 'hide' : 'show',\n ' statistics'\n )\n ),\n react_default.a.createElement(\n 'table',\n { className: 'popt-results' },\n this._renderHead(),\n this._renderBody(),\n this._renderAvg()\n )\n );\n }\n }]);\n\n return Params;\n}(react_default.a.Component);\n\nParams_Params.defaultProps = {\n mds_one_plot: true\n};\n\nfunction mapStateToProps(state) {\n return {\n results: Object(selectors[\"g\" /* results */])(state),\n model: state.models.models[state.results.data.model],\n param_names: selectors[\"g\" /* results */].paramNames(state),\n colors: Object(util[\"paramColors\"])(state),\n avg_popt: state.results.avg_popt,\n mds_one_plot: state.results.data.options.mds_one_plot\n };\n}\n\n/* harmony default export */ var Output_Params = __webpack_exports__[\"a\"] = (Object(es[\"b\" /* connect */])(mapStateToProps)(Params_Params));\n\nfunction getFirstValidDS(results) {\n return results.filter(function (ds) {\n return ds.phases;\n })[0];\n}\n\n/***/ }),\n\n/***/ 258:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export Time */\n/* unused harmony export mapStateToProps */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_redux__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_lodash__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_selectors__ = __webpack_require__(10);\n\n\n\n\n\n\n\nvar Time = function Time(_ref) {\n var total = _ref.total,\n computation = _ref.computation,\n fit = _ref.fit;\n\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\n 'div',\n { className: 'my-1' },\n 'Total time including network latency: ',\n (total * 1000).toFixed(0),\n ' ms.',\n computation ? 'Total computation time: ' + (computation * 1000).toFixed(1) + ' ms.' : null,\n fit.length == 1 ? ' Fit' : ' Average fit',\n ' time: ',\n (Object(__WEBPACK_IMPORTED_MODULE_3_lodash__[\"mean\"])(fit) * 1000).toFixed(3),\n ' ms.'\n );\n};\n\n\nfunction mapStateToProps(state) {\n return {\n total: state.results.total_time,\n computation: state.results.time,\n fit: __WEBPACK_IMPORTED_MODULE_4_selectors__[\"g\" /* results */]._fitTime(state)\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_2_react_redux__[\"b\" /* connect */])(mapStateToProps)(Time));\n\n/***/ }),\n\n/***/ 259:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export DataDump */\n/* unused harmony export mapStateToProps */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_redux__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_file_saver__ = __webpack_require__(65);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_file_saver___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_file_saver__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__helpers__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_selectors__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_selectors_plot__ = __webpack_require__(45);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_selectors_plot_download__ = __webpack_require__(66);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Plots_DownloadHelper__ = __webpack_require__(116);\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n\n\n\n\n\nvar DataDump = function (_React$Component) {\n _inherits(DataDump, _React$Component);\n\n function DataDump(props) {\n _classCallCheck(this, DataDump);\n\n var _this = _possibleConstructorReturn(this, (DataDump.__proto__ || Object.getPrototypeOf(DataDump)).call(this, props));\n\n _this.state = { showDownloader: false, showPlotters: false };\n return _this;\n }\n\n _createClass(DataDump, [{\n key: 'downloadData',\n value: function downloadData(e) {\n var _this2 = this;\n\n e.preventDefault();\n if (!Modernizr.blobconstructor || !Modernizr.typedarrays) {\n return alert('Your browser cannot perform this action.');\n }\n __webpack_require__.e/* import() */(0).then(__webpack_require__.bind(null, 269)).then(function (XLSX) {\n var workbook = new XLSX.Workbook();\n _this2.props.results.forEach(function (ds) {\n var ws = new XLSX.Worksheet(Object(__WEBPACK_IMPORTED_MODULE_4__helpers__[\"b\" /* CSVText2List */])(ds.data_dump.excel, true), ds.title.substr(0, 31));\n workbook.addSheet(ws);\n });\n\n var wbout = XLSX.write(workbook, { bookType: 'xlsx', bookSST: false, type: 'binary' });\n Object(__WEBPACK_IMPORTED_MODULE_3_file_saver__[\"saveAs\"])(new Blob([s2ab(wbout)], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }), _this2.props.title + '_download.xlsx');\n });\n }\n }, {\n key: 'showDownloadGraphs',\n value: function showDownloadGraphs(e) {\n e.preventDefault();\n this.setState({ showDownloader: !this.state.showDownloader });\n }\n }, {\n key: 'downloadGraphs',\n value: function downloadGraphs(_ref) {\n var _this3 = this;\n\n var format = _ref.format,\n dpi = _ref.dpi,\n grayscale = _ref.grayscale;\n\n var plots = this.props.replot(dpi, grayscale);\n this.setState({ showDownloader: false, showPlotters: true });\n Object(__WEBPACK_IMPORTED_MODULE_7_selectors_plot_download__[\"a\" /* default */])().then(function (_ref2) {\n var createZip = _ref2.createZip,\n downloadFile = _ref2.downloadFile;\n\n createZip(plots, format, { width: 8 * dpi, height: 6 * dpi }).then(function (zip) {\n downloadFile(zip, _this3.props.title + '_graphs', 'zip');\n _this3.setState({ showPlotters: false });\n });\n });\n }\n }, {\n key: 'render',\n value: function render() {\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'my-1' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'a',\n { href: '#', onClick: this.downloadData.bind(this) },\n 'Download XLSX of this data'\n ),\n ' | ',\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'a',\n { href: '#', onClick: this.showDownloadGraphs.bind(this) },\n 'Download publication-quality graphs'\n ),\n this.state.showPlotters && ' ...',\n this.state.showDownloader ? __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__Plots_DownloadHelper__[\"a\" /* default */], { 'default': { format: 'tiff', dpi: 600, grayscale: true }, onSubmit: this.downloadGraphs.bind(this) }) : null\n );\n }\n }]);\n\n return DataDump;\n}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);\n\n\nfunction mapStateToProps(state) {\n return {\n results: Object(__WEBPACK_IMPORTED_MODULE_5_selectors__[\"g\" /* results */])(state),\n title: state.results.data.title,\n replot: function replot(dpi, grayscale) {\n return Object(__WEBPACK_IMPORTED_MODULE_6_selectors_plot__[\"c\" /* selector */])(state, { dpi: dpi, grayscale: grayscale, flatten: false });\n }\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_2_react_redux__[\"b\" /* connect */])(mapStateToProps)(DataDump));\n\nfunction s2ab(s) {\n var buf = new ArrayBuffer(s.length);\n var view = new Uint8Array(buf);\n for (var i = 0; i != s.length; ++i) {\n view[i] = s.charCodeAt(i) & 0xFF;\n }return buf;\n}\n\n/***/ }),\n\n/***/ 260:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 261:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 262:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 36:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash__);\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\nvar DelayedInput = function (_React$Component) {\n _inherits(DelayedInput, _React$Component);\n\n function DelayedInput(props) {\n _classCallCheck(this, DelayedInput);\n\n var _this = _possibleConstructorReturn(this, (DelayedInput.__proto__ || Object.getPrototypeOf(DelayedInput)).call(this, props));\n\n _this.state = { value: props.value };\n return _this;\n }\n\n _createClass(DelayedInput, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n this.setState({ value: nextProps.value });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var submit = function submit() {\n _this2.props.onChange(_this2.state.value);\n };\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('input', Object.assign({\n value: this.state.value,\n onChange: function onChange(_ref) {\n var target = _ref.target;\n return _this2.setState({ value: target.value });\n },\n onKeyPress: function onKeyPress(_ref2) {\n var key = _ref2.key;\n return key == 'Enter' ? submit() : null;\n },\n onBlur: submit\n }, __WEBPACK_IMPORTED_MODULE_2_lodash___default.a.omit(this.props, 'value', 'onChange')));\n }\n }]);\n\n return DelayedInput;\n}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (DelayedInput);\n\n/***/ }),\n\n/***/ 43:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\nvar Collapsible = function (_React$Component) {\n _inherits(Collapsible, _React$Component);\n\n function Collapsible(props) {\n _classCallCheck(this, Collapsible);\n\n var _this = _possibleConstructorReturn(this, (Collapsible.__proto__ || Object.getPrototypeOf(Collapsible)).call(this, props));\n\n _this.state = { collapsed: true };\n return _this;\n }\n\n _createClass(Collapsible, [{\n key: '_toggle',\n value: function _toggle() {\n this.setState({ collapsed: !this.state.collapsed });\n }\n }, {\n key: 'render',\n value: function render() {\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\n 'div',\n null,\n __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\n 'p',\n { onClick: this._toggle.bind(this) },\n this.props.headerHTML,\n __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\n 'b',\n { title: 'click to expand/collapse' },\n this.props.title,\n ' ',\n this.state.collapsed ? '>' : 'v'\n )\n ),\n this.state.collapsed ? null : __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(\n 'div',\n null,\n this.props.children\n )\n );\n }\n }]);\n\n return Collapsible;\n}(__WEBPACK_IMPORTED_MODULE_1_react___default.a.Component);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Collapsible);\n\n/***/ }),\n\n/***/ 45:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXTERNAL MODULE: ./node_modules/lodash/lodash.js\nvar lodash = __webpack_require__(6);\nvar lodash_default = /*#__PURE__*/__webpack_require__.n(lodash);\n\n// EXTERNAL MODULE: ./src/selectors/plot/util.js\nvar util = __webpack_require__(68);\n\n// CONCATENATED MODULE: ./src/selectors/plot/plots.js\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n\n\n\nvar CONSTANTS = {\n // all sizes are (dpi / size)\n marker_style: 'circle', // style of marker\n marker_size: 6, // size of marker\n marker_edge_color: 'white', // color of edge\n marker_edge_size: 24, // width of border\n marker_alpha: 0.7, // marker transparency\n ig_marker_color: 'white', // color of ignored data marker\n ig_marker_edge_alpha: 0.7, // alpha of ignored data marker's edge (color is data color)\n ig_marker_alpha: 1, // ignored data marker transparency\n line_size: 75, // size of line\n forecast_line_style: 'dash', // style of forecasted line\n ci_style: 'dashdot', // style of CI line\n ci_med_style: 'dot', // style of CI median line\n ci_color: 'orange', // color of CI lines\n ci_fill_alpha: 0.25, // transparency of filled area\n font: '\"Times New Roman\", serif',\n title_font_size: 3,\n axis_title_font_size: 3,\n axis_tick_font_size: 3.75,\n text_font_size: 4.8,\n legend_font_size: 5,\n margin_top: 1.2,\n margin_left: 0.75,\n margin_right: 4,\n fp_margin_right: 1.5,\n margin_bottom: 0.9,\n axis_line_size: 60,\n axis_tick_length: 12,\n dpi: 60, // default DPI\n prod_dpi: 600, // DPI for production quality graphs\n file_format: 'png' // image format\n};\n\nvar traces = {\n data: function data(_data, opts) {\n return {\n type: 'scatter',\n name: opts.title,\n legendgroup: opts.i,\n x: _data.data.index.concat(_data.ig_data.index),\n y: _data.data.data.concat(_data.ig_data.data),\n mode: 'markers',\n marker: {\n symbol: CONSTANTS.marker_style,\n opacity: util[\"dataIgDataPropArray\"](_data, CONSTANTS.marker_alpha, CONSTANTS.ig_marker_alpha),\n color: grayscale(util[\"dataIgDataPropArray\"](_data, opts.color, CONSTANTS.ig_marker_color), opts),\n size: opts.dpi / CONSTANTS.marker_size,\n line: {\n width: opts.dpi / CONSTANTS.marker_edge_size,\n color: grayscale(util[\"dataIgDataPropArray\"](_data, CONSTANTS.marker_edge_color, util[\"addAlpha\"](opts.color, CONSTANTS.ig_marker_edge_alpha)), opts)\n }\n }\n };\n },\n curve: function curve(data, opts) {\n return [{\n type: 'scatter',\n showlegend: false,\n legendgroup: opts.i,\n // hoverinfo: 'none',\n name: '\\u27A0 ' + opts.title,\n x: data.solid.index,\n y: data.solid.data,\n mode: 'lines',\n line: {\n width: opts.dpi / CONSTANTS.line_size,\n color: grayscale(opts.color, opts)\n }\n }, {\n type: 'scatter',\n showlegend: false,\n legendgroup: opts.i,\n name: '\\u27A0 ' + opts.title,\n x: data.dashed.index,\n y: data.dashed.data,\n mode: 'lines',\n line: {\n width: opts.dpi / CONSTANTS.line_size,\n color: grayscale(opts.color, opts),\n dash: CONSTANTS.forecast_line_style\n },\n connectgaps: false // there is a null in the middle to split it between the part before and after\n }];\n },\n CIs: function CIs(data, opts) {\n if (!data) {\n return [];\n }\n var CI_low = util[\"getColumn\"](data, 'CI-low');\n var CI_high = util[\"getColumn\"](data, 'CI-high');\n var CI_median = util[\"getColumn\"](data, 'CI-median');\n return [{\n type: 'scatter',\n showlegend: false,\n legendgroup: opts.i,\n hoverinfo: 'none',\n x: CI_low.index,\n y: CI_low.data,\n mode: 'lines',\n line: {\n width: opts.dpi / CONSTANTS.line_size,\n color: grayscale(CONSTANTS.ci_color, opts),\n dash: CONSTANTS.ci_style\n },\n connectgaps: false\n }, {\n type: 'scatter',\n showlegend: false,\n legendgroup: opts.i,\n hoverinfo: 'none',\n x: CI_high.index,\n y: CI_high.data,\n mode: 'lines',\n line: {\n width: opts.dpi / CONSTANTS.line_size,\n color: grayscale(CONSTANTS.ci_color, opts),\n dash: CONSTANTS.ci_style\n },\n connectgaps: false,\n fill: 'tonexty', // actually fills to previous y\n fillcolor: util[\"addAlpha\"](grayscale(CONSTANTS.ci_color, opts), CONSTANTS.ci_fill_alpha)\n }, {\n type: 'scatter',\n showlegend: false,\n legendgroup: opts.i,\n hoverinfo: 'none',\n x: CI_median.index,\n y: CI_median.data,\n mode: 'lines',\n line: {\n width: opts.dpi / CONSTANTS.line_size,\n color: grayscale(CONSTANTS.ci_color, opts),\n dash: CONSTANTS.ci_med_style\n },\n connectgaps: false\n }];\n },\n stack: function stack(data, opts) {\n return {\n type: 'scatter',\n name: opts.title,\n x: data.index,\n y: data.data,\n hoverinfo: 'none',\n mode: 'line',\n line: { color: grayscale(opts.color, opts) },\n fill: 'tonexty',\n fillcolor: grayscale(opts.color, opts)\n };\n }\n};\n\nvar layout = {\n default: function _default(opts) {\n var dpi = opts.dpi,\n title = opts.title,\n _opts$showlegend = opts.showlegend,\n showlegend = _opts$showlegend === undefined ? false : _opts$showlegend,\n _opts$copyright = opts.copyright,\n copyright = _opts$copyright === undefined ? true : _opts$copyright;\n\n var _layout = {\n title: util[\"formatAxisLabel\"](title),\n showlegend: showlegend,\n font: { family: CONSTANTS.font },\n margin: {\n t: dpi / CONSTANTS.margin_top,\n l: dpi / CONSTANTS.margin_left,\n r: dpi / CONSTANTS.margin_right,\n b: dpi / CONSTANTS.margin_bottom\n },\n titlefont: { size: lodash_default.a.round(dpi / CONSTANTS.title_font_size, 5) },\n legend: { font: { size: dpi / CONSTANTS.legend_font_size } },\n hovermode: 'closest'\n };\n if (copyright) {\n _layout.annotations = [{\n x: 0.98,\n y: 0.02,\n xref: 'paper',\n yref: 'paper',\n text: 'LogletLab\\xa9PHE',\n showarrow: false,\n font: { size: dpi / CONSTANTS.text_font_size }\n }];\n }\n return _layout;\n },\n axis: function axis(label, range, opts) {\n var dpi = opts.dpi,\n _opts$showgrid = opts.showgrid,\n showgrid = _opts$showgrid === undefined ? true : _opts$showgrid,\n _opts$plot_range = opts.plot_range,\n plot_range = _opts$plot_range === undefined ? null : _opts$plot_range,\n _opts$lim = opts.lim,\n lim = _opts$lim === undefined ? [null, null] : _opts$lim;\n\n if (plot_range) {\n range = plot_range;\n }\n range = range.map(userLimitOrDefault);\n\n var _util$tickFrequency = util[\"tickFrequency\"].apply(util, _toConsumableArray(range)),\n _util$tickFrequency2 = _slicedToArray(_util$tickFrequency, 2),\n tick0 = _util$tickFrequency2[0],\n dtick = _util$tickFrequency2[1];\n\n return {\n range: util[\"tickRange\"].apply(util, _toConsumableArray(range)).map(userLimitOrDefault),\n tick0: tick0,\n dtick: dtick,\n titlefont: { size: lodash_default.a.round(dpi / CONSTANTS.axis_title_font_size, 5) },\n title: util[\"formatAxisLabel\"](label),\n zeroline: false,\n showline: true,\n linewidth: dpi / CONSTANTS.axis_line_size,\n showgrid: showgrid,\n gridwidth: dpi / CONSTANTS.axis_line_size,\n ticks: 'outside',\n tickwidth: dpi / CONSTANTS.axis_line_size,\n ticklen: dpi / CONSTANTS.axis_tick_length,\n tickfont: { size: dpi / CONSTANTS.axis_tick_font_size }\n };\n\n function userLimitOrDefault(generatedLimit, i) {\n return lim[i] == null || plot_range ? generatedLimit : lim[i];\n }\n },\n log_axis: function log_axis(label, range, opts) {\n var _opts$plot_range2 = opts.plot_range,\n plot_range = _opts$plot_range2 === undefined ? null : _opts$plot_range2,\n _opts$lim2 = opts.lim,\n lim = _opts$lim2 === undefined ? [null, null] : _opts$lim2;\n\n if (plot_range) {\n range = plot_range;\n }\n range = range.map(userLimitOrDefault);\n var ax = layout.axis(label, range, opts);\n ax.type = 'log';\n delete ax.dtick;\n // ax.dtick = 'D2';\n delete ax.tick0;\n ax.range = util[\"tickRange\"].apply(util, _toConsumableArray(range.map(util[\"logOr0\"]))).map(logUserLimitOrDefault);\n var logRange = util[\"logRange\"].apply(util, _toConsumableArray(range));\n ax.tickvals = util[\"logScaleValList\"](logRange);\n ax.ticktext = util[\"logScaleTextList\"](logRange);\n ax.tickangle = 0;\n return ax;\n\n function userLimitOrDefault(generatedLimit, i) {\n return lim[i] == null || plot_range ? generatedLimit : lim[i];\n }\n function logUserLimitOrDefault(generatedLimit, i) {\n return lim[i] == null || plot_range ? generatedLimit : util[\"logOr0\"](lim[i]);\n }\n }\n};\n\nvar plots = {\n main: function main(data, opts) {\n var defaultOptions = {\n dpi: CONSTANTS.dpi,\n grayscale: false,\n showlegend: false,\n xlim: [null, null],\n ylim: [null, null],\n x_log_graph: false, // x axis on log scale\n y_log_graph: false\n };\n opts = lodash_default.a.merge({}, defaultOptions, opts);\n\n var _traces = lodash_default.a.flatten(lodash_default.a.zip(data.data, data.curve, data.CIs, data.trace_title, data.colors).map(function (_ref, i) {\n var _ref2 = _slicedToArray(_ref, 5),\n data = _ref2[0],\n curve = _ref2[1],\n CIs = _ref2[2],\n trace_title = _ref2[3],\n color = _ref2[4];\n\n return [traces.data(data, {\n dpi: opts.dpi,\n grayscale: opts.grayscale,\n title: trace_title,\n i: i,\n color: color\n })].concat(_toConsumableArray(traces.curve(curve, {\n dpi: opts.dpi,\n grayscale: opts.grayscale,\n title: trace_title,\n i: i,\n color: color\n })), _toConsumableArray(traces.CIs(CIs, {\n dpi: opts.dpi,\n grayscale: opts.grayscale,\n title: trace_title,\n i: i,\n color: color\n })));\n }));\n\n var _range = util[\"getTraceRange\"](_traces);\n\n var _layout = lodash_default.a.merge(layout.default(Object.assign({}, opts, {\n title: data.title\n })), {\n xaxis: _axis('x'),\n yaxis: _axis('y')\n });\n\n return { data: _traces, layout: _layout };\n\n function _extras_range(ex_rng, type) {\n if (typeof ex_rng == 'string') {\n ex_rng = ex_rng.toLowerCase();\n return util[\"getTraceRange\"](lodash_default.a.flatten(data[ex_rng].map(function (d) {\n return traces[ex_rng](d, { color: 'blue' });\n })))[type];\n } else if (Array.isArray(ex_rng)) {\n return ex_rng;\n }\n }\n\n function _axis(type) {\n return (data.extra[type + '_type'] == 'LOG' || opts[type + '_log_graph'] && data.extra[type + '_type'] != 'NO_LOG' ? layout.log_axis : layout.axis)(data[type + 'label'], _range[type], Object.assign({}, opts, {\n plot_range: data.extra['range_' + type] && _extras_range(data.extra['range_' + type], type),\n lim: opts[type + 'lim']\n }));\n }\n },\n fisher_pry: function fisher_pry(data, opts) {\n var defaultOptions = {\n dpi: CONSTANTS.dpi\n };\n opts = lodash_default.a.merge({}, defaultOptions, opts, { x_log_graph: false, y_log_graph: false });\n\n var _plots$main = plots.main(data, opts),\n _traces = _plots$main.data,\n _layout = _plots$main.layout;\n // _traces[1].yaxis = 'y2';\n\n\n _layout.yaxis2 = lodash_default.a.clone(_layout.yaxis);\n if (data.extra.milestones_l) {\n _layout.yaxis.range = _layout.yaxis2.range = [data.extra.milestones_v[0], lodash_default.a.last(data.extra.milestones_v)];\n _layout.yaxis2.tickvals = _layout.yaxis.tickvals = data.extra.milestones_v;\n _layout.yaxis2.ticktext = data.extra.milestones_l;\n }\n _layout.yaxis2.side = 'right';\n _layout.yaxis2.overlaying = 'y';\n _layout.yaxis2.scaleanchor = 'y';\n // _layout.yaxis.scaleanchor = 'x';\n _layout.yaxis2.title = '';\n _layout.margin.r = opts.dpi / CONSTANTS.fp_margin_right;\n _layout.legend.x = 1.08;\n return { data: _traces, layout: _layout };\n },\n stack: function stack(data, opts) {\n var defaultOptions = {\n dpi: CONSTANTS.dpi,\n grayscale: false,\n showlegend: false\n };\n opts = lodash_default.a.merge({}, defaultOptions, opts);\n\n var stacked_data = lodash_default.a.map(data.data, 'data').map(function (d, i, curves) {\n return util[\"sum\"].apply(util, _toConsumableArray(curves.slice(0, i + 1)));\n });\n\n var _traces = lodash_default.a.zip(stacked_data, data.trace_title, data.colors).map(function (_ref3, i) {\n var _ref4 = _slicedToArray(_ref3, 3),\n data = _ref4[0],\n trace_title = _ref4[1],\n color = _ref4[2];\n\n return traces.stack(data, {\n dpi: opts.dpi,\n grayscale: opts.grayscale,\n title: trace_title,\n i: i,\n color: color\n });\n });\n var _range = util[\"getTraceRange\"](_traces);\n var _layout = lodash_default.a.merge(layout.default(Object.assign({}, opts, {\n title: data.title\n })), {\n xaxis: _axis('x'),\n yaxis: _axis('y')\n });\n\n return { data: _traces, layout: _layout };\n\n function _axis(type) {\n return layout.axis(data[type + 'label'], _range[type], Object.assign({}, opts, {\n plot_range: type == 'x' ? undefined : [0, 1],\n lim: opts[type + 'lim']\n }));\n }\n }\n};\n\nfunction grayscale(color, opts) {\n if (Array.isArray(color)) {\n return color.map(function (c) {\n return grayscale(c, opts);\n });\n }\n return opts.grayscale ? util[\"grayscale\"](color) : color;\n}\n// EXTERNAL MODULE: ./src/selectors/index.js\nvar selectors = __webpack_require__(10);\n\n// CONCATENATED MODULE: ./src/selectors/plot/index.js\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __ROOT__; });\n/* unused harmony export parseSpec */\n/* unused harmony export dataFromSpec */\n/* unused harmony export dataFromSpecs */\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = selector;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = plotNames;\n\n\n\n\n\nvar __ROOT__ = util[\"__ROOT__\"];\n\nfunction parseSpec(spec, state) {\n var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var defaultOptions = {\n dash_forecast: true\n };\n opts = lodash_default.a.extend({}, defaultOptions, opts);\n\n var data = getDataAndIgData();\n return {\n data: data,\n curve: getCurve(data),\n trace_title: util[\"extract\"](state, spec.trace_title),\n CIs: util[\"extract\"](state, spec.CIs),\n title: util[\"extract\"](state, spec.title),\n xlabel: util[\"extract\"](state, spec.xlabel),\n ylabel: util[\"extract\"](state, spec.ylabel),\n colors: util[\"extract\"](state, spec.colors),\n extra: lodash_default.a.mapValues(spec.extra, function (val) {\n return util[\"extract\"](state, val);\n })\n };\n\n function getDataAndIgData() {\n var data = util[\"extract\"](state, spec.data);\n var ig_data = util[\"extract\"](state, spec.ig_data.path);\n var parsedData = void 0;\n if (spec.ig_data.type == 'index') {\n parsedData = data.map(function (d, i) {\n return util[\"getIgDataFromIndex\"](d, ig_data[i]);\n });\n } else if (spec.ig_data.type == 'data') {\n parsedData = data.map(function (d, i) {\n return {\n data: d,\n ig_data: ig_data[i]\n };\n });\n } else if (spec.ig_data.type == 'none') {\n parsedData = data.map(function (d) {\n return {\n data: d,\n ig_data: { index: [], data: [] }\n };\n });\n }\n return parsedData.map(function (pd) {\n return {\n data: util[\"fixIndex\"](pd.data),\n ig_data: util[\"fixIndex\"](pd.ig_data)\n };\n });\n }\n\n function getCurve(data) {\n return util[\"extract\"](state, spec.curve).map(function (c, i) {\n return opts.dash_forecast ? util[\"getDashedLine\"](c, data[i].data) : {\n solid: c,\n dashed: { data: [], index: [] }\n };\n });\n }\n}\n\nfunction dataFromSpec(spec, state, opts) {\n return Object.assign({}, plots[spec.type](parseSpec(spec, state, opts), opts), { label: spec.label });\n}\n\nfunction dataFromSpecs(specs, state, opts) {\n return specs.map(function (spec) {\n return dataFromSpec(spec, state, opts);\n });\n}\n\nfunction selector(state) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!__ROOT__(state)) {\n return [];\n }\n var model = util[\"__MODEL__\"](state);\n var opts = Object.assign({\n flatten: true\n }, state.results.data.options, options);\n\n if (opts.mds_one_plot) {\n return opts.flatten ? stateToSpecs(state) : [{\n title: __ROOT__(state).title,\n plots: stateToSpecs(state)\n }];\n } else {\n if (opts.flatten) {\n return lodash_default.a.flatten(util[\"mdsToRegular\"](state).map(stateToSpecs));\n } else {\n return util[\"mdsToRegular\"](state).map(function (_subState) {\n return {\n title: __ROOT__(_subState).title,\n plots: stateToSpecs(_subState)\n };\n });\n }\n }\n\n function stateToSpecs(state) {\n return dataFromSpecs(lodash_default.a.at(model.client_plots, opts.graphs), state, opts);\n }\n}\n\nfunction plotNames(state) {\n var from_results = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n var model = void 0;\n if (from_results) {\n model = util[\"__MODEL__\"](state);\n } else {\n model = Object(selectors[\"a\" /* current_model */])(state);\n }\n return lodash_default.a.map(model.client_plots, 'label');\n}\n\n/***/ }),\n\n/***/ 46:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (immutable) */ __webpack_exports__[\"toggleDashForecast\"] = toggleDashForecast;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleMDSOnePlot\"] = toggleMDSOnePlot;\n/* harmony export (immutable) */ __webpack_exports__[\"setYLabel\"] = setYLabel;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleGraph\"] = toggleGraph;\n/* harmony export (immutable) */ __webpack_exports__[\"setXLim\"] = setXLim;\n/* harmony export (immutable) */ __webpack_exports__[\"setYLim\"] = setYLim;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleShowLegend\"] = toggleShowLegend;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleGridLines\"] = toggleGridLines;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleCopyright\"] = toggleCopyright;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleLogYGraph\"] = toggleLogYGraph;\n/* harmony export (immutable) */ __webpack_exports__[\"toggleLogXGraph\"] = toggleLogXGraph;\n/* harmony export (immutable) */ __webpack_exports__[\"default\"] = reducer;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__const__ = __webpack_require__(21);\n// This is a trimmed-down version of data_options.js\n\n\n\nvar TOGGLE_DASH_FORECAST = 'll4/results_options/TOGGLE_DASH_FORECAST';\n\nfunction toggleDashForecast() {\n return { type: TOGGLE_DASH_FORECAST };\n}\n\nvar TOGGLE_MDS_ONE_PLOT = 'll4/results_options/TOGGLE_MDS_ONE_PLOT';\n\nfunction toggleMDSOnePlot() {\n return { type: TOGGLE_MDS_ONE_PLOT };\n}\n\nvar SET_Y_LABEL = 'll4/results_options/SET_Y_LABEL';\n\nfunction setYLabel(ylabel) {\n return {\n type: SET_Y_LABEL,\n payload: ylabel\n };\n}\n\nvar TOGGLE_GRAPH = 'll4/results_options/TOGGLE_GRAPH';\n\nfunction toggleGraph(graph) {\n return {\n type: TOGGLE_GRAPH,\n payload: graph\n };\n}\n\nvar SET_XLIM = 'll4/results_options/SET_XLIM';\n\nfunction setXLim(upLow, lim) {\n return {\n type: SET_XLIM,\n payload: { upLow: upLow, lim: lim }\n };\n}\n\nvar SET_YLIM = 'll4/results_options/SET_YLIM';\n\nfunction setYLim(upLow, lim) {\n return {\n type: SET_YLIM,\n payload: { upLow: upLow, lim: lim }\n };\n}\n\nvar TOGGLE_SHOW_LEGEND = 'll4/results_options/TOGGLE_SHOW_LEGEND';\n\nfunction toggleShowLegend() {\n return { type: TOGGLE_SHOW_LEGEND };\n}\n\nvar TOGGLE_GRID_LINES = 'll4/results_options/TOGGLE_GRID_LINES';\n\nfunction toggleGridLines() {\n return { type: TOGGLE_GRID_LINES };\n}\n\nvar TOGGLE_COPYRIGHT = 'll4/results_options/TOGGLE_COPYRIGHT';\n\nfunction toggleCopyright() {\n return { type: TOGGLE_COPYRIGHT };\n}\n\nvar TOGGLE_LOG_Y_GRAPH = 'll4/results_options/TOGGLE_LOG_Y_GRAPH';\n\nfunction toggleLogYGraph() {\n return { type: TOGGLE_LOG_Y_GRAPH };\n}\n\nvar TOGGLE_LOG_X_GRAPH = 'll4/results_options/TOGGLE_LOG_X_GRAPH';\n\nfunction toggleLogXGraph() {\n return { type: TOGGLE_LOG_X_GRAPH };\n}\n\nvar initialState = {\n graphs: [],\n xlim: [null, null],\n ylim: [null, null],\n showlegend: false,\n showgrid: false,\n dash_forecast: true,\n copyright: true,\n mds_one_plot: true,\n ylabel: '',\n x_log_graph: false,\n y_log_graph: false,\n static_graphs: true\n};\n\nfunction reducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments[1];\n\n if (__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.difference(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.keys(initialState), __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.keys(state)).length) {\n state = Object.assign({}, initialState, state);\n }\n\n switch (action.type) {\n case TOGGLE_DASH_FORECAST:\n return Object.assign({}, state, { dash_forecast: !state.dash_forecast });\n case TOGGLE_MDS_ONE_PLOT:\n return Object.assign({}, state, { mds_one_plot: !state.mds_one_plot });\n case SET_Y_LABEL:\n return Object.assign({}, state, { ylabel: action.payload });\n case TOGGLE_GRAPH:\n return Object.assign({}, state, { graphs: __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.xor(state.graphs, [action.payload]).sort() });\n case SET_XLIM:\n {\n var xlim = state.xlim.slice();\n var lim = action.payload.lim;\n if (__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.isNaN(lim) || __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.isNil(lim)) {\n lim = null;\n }\n xlim[action.payload.upLow] = lim;\n return Object.assign({}, state, { xlim: xlim });\n }\n case SET_YLIM:\n {\n var ylim = state.ylim.slice();\n var _lim = action.payload.lim;\n if (__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.isNaN(_lim) || __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.isNil(_lim)) {\n _lim = null;\n }\n ylim[action.payload.upLow] = _lim;\n return Object.assign({}, state, { ylim: ylim });\n }\n case TOGGLE_SHOW_LEGEND:\n return Object.assign({}, state, { showlegend: !state.showlegend });\n case TOGGLE_GRID_LINES:\n return Object.assign({}, state, { showgrid: !state.showgrid });\n case TOGGLE_COPYRIGHT:\n return Object.assign({}, state, { copyright: !state.copyright });\n case TOGGLE_LOG_X_GRAPH:\n return Object.assign({}, state, { x_log_graph: !state.x_log_graph });\n case TOGGLE_LOG_Y_GRAPH:\n return Object.assign({}, state, { y_log_graph: !state.y_log_graph });\n case __WEBPACK_IMPORTED_MODULE_1__const__[\"v\" /* TOGGLE_STATIC_GRAPHS */]:\n return Object.assign({}, state, { static_graphs: !state.static_graphs });\n case __WEBPACK_IMPORTED_MODULE_1__const__[\"u\" /* SYNC_OPTIONS */]:\n return Object.assign({}, state, action.payload);\n default:\n return state;\n }\n}\n\n/***/ }),\n\n/***/ 66:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// CONCATENATED MODULE: ./src/selectors/plot/upng-utif.js\n/* global require */\nvar UPNG, UTIF;\n\nif (typeof Modernizr == 'undefined' || Modernizr.typedarrays) {\n UPNG = __webpack_require__(227);\n UTIF = __webpack_require__(236);\n}\n\n\n// EXTERNAL MODULE: ./node_modules/base64-js/index.js\nvar base64_js = __webpack_require__(105);\nvar base64_js_default = /*#__PURE__*/__webpack_require__.n(base64_js);\n\n// EXTERNAL MODULE: ./node_modules/file-saver/FileSaver.js\nvar FileSaver = __webpack_require__(65);\nvar FileSaver_default = /*#__PURE__*/__webpack_require__.n(FileSaver);\n\n// EXTERNAL MODULE: ./node_modules/jszip/dist/jszip.min.js\nvar jszip_min = __webpack_require__(238);\nvar jszip_min_default = /*#__PURE__*/__webpack_require__.n(jszip_min);\n\n// EXTERNAL MODULE: ./node_modules/lodash/lodash.js\nvar lodash = __webpack_require__(6);\nvar lodash_default = /*#__PURE__*/__webpack_require__.n(lodash);\n\n// CONCATENATED MODULE: ./src/selectors/plot/download.js\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = getDownloadFunctions;\n\n\n\n\n\n\nfunction getDownloadFunctions(Plotly) {\n if (Plotly) {\n return Promise.resolve(createFunctions(Plotly));\n }\n return __webpack_require__.e/* import() */(1).then(__webpack_require__.bind(null, 279)).then(function (_ref) {\n var Plotly = _ref.Plotly;\n return createFunctions(Plotly);\n });\n\n function createFunctions(Plotly) {\n return {\n getDataURI: getDataURI,\n getArrayBuffer: getArrayBuffer,\n pngToTiff: pngToTiff,\n createZip: createZip,\n getAllPngs: getAllPngs,\n downloadFile: downloadFile\n };\n\n function getDataURI(data, layout) {\n var format = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'png';\n var size = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _size$width = size.width,\n width = _size$width === undefined ? 480 : _size$width,\n _size$height = size.height,\n height = _size$height === undefined ? 360 : _size$height;\n\n return Plotly.toImage({\n data: lodash_default.a.cloneDeep(data),\n layout: lodash_default.a.cloneDeep(layout)\n // This is a new feature in Plotly 1.30.0 that is not yet documented.\n // You can pass an object with {data, layout, config} instead of a graph div.\n }, {\n format: format,\n width: width,\n height: height\n });\n }\n\n function getArrayBuffer() {\n // in case of non-base64 data, return a string\n return getDataURI.apply(undefined, arguments).then(function (dataURI) {\n var data = dataURI.slice(dataURI.indexOf(',') + 1);\n var header = dataURI.slice(0, dataURI.indexOf(','));\n if (header.indexOf('base64') > -1) {\n return base64_js_default.a.toByteArray(data);\n } else {\n return decodeURIComponent(data);\n }\n });\n }\n\n function pngToTiff(ab_in, dpi) {\n var png = UPNG.decode(ab_in);\n var rgba = UPNG.toRGBA8(png);\n var ab_out = UTIF.encodeImage(rgba, png.width, png.height, {\n t282: [dpi], // x-res\n t283: [dpi], // y-res\n t296: [2] // res type -- dpi\n });\n return ab_out;\n }\n\n function downloadFile(ab, filename, ext) {\n var blob = void 0;\n if (ab instanceof Blob) {\n blob = ab;\n } else {\n blob = new Blob([ab], { type: mime(ext) });\n }\n Object(FileSaver[\"saveAs\"])(blob, filename + '.' + ext);\n }\n\n function createZip() {\n var datasets = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'png';\n var size = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var zip = new jszip_min_default.a();\n return Promise.all(datasets.map(function (ds) {\n return Promise.all(ds.plots.map(function (plot) {\n return getArrayBuffer(plot.data, plot.layout, format == 'tiff' ? 'png' : format, size).then(function (ab) {\n if (format == 'tiff') {\n ab = pngToTiff(ab, size.width / 8);\n }\n var blob = new Blob([ab], { type: mime(format) });\n var folder = datasets.length > 1 ? ds.title + '/' : '';\n var name = '' + folder + plot.label + '.' + format;\n zip.file(name, blob);\n });\n }));\n })).then(function () {\n return zip.generateAsync({ type: 'blob', compression: 'DEFLATE' });\n });\n }\n\n function getAllPngs() {\n var plots = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Promise.all(plots.map(function (plot) {\n return getDataURI(plot.data, plot.layout, 'png', size);\n }));\n }\n\n function mime(ext) {\n if (ext == 'svg') {\n return 'image/svg+xml';\n }\n return 'image/' + ext;\n }\n }\n}\n\n/***/ }),\n\n/***/ 68:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__MODEL__\", function() { return __MODEL__; });\n/* harmony export (immutable) */ __webpack_exports__[\"__ROOT__\"] = __ROOT__;\n/* harmony export (immutable) */ __webpack_exports__[\"__DS__\"] = __DS__;\n/* harmony export (immutable) */ __webpack_exports__[\"__RESULTS__\"] = __RESULTS__;\n/* harmony export (immutable) */ __webpack_exports__[\"__PHASE__\"] = __PHASE__;\n/* harmony export (immutable) */ __webpack_exports__[\"__VIRTUAL__\"] = __VIRTUAL__;\n/* harmony export (immutable) */ __webpack_exports__[\"__DU\"] = __DU;\n/* harmony export (immutable) */ __webpack_exports__[\"extract\"] = extract;\n/* harmony export (immutable) */ __webpack_exports__[\"getColumn\"] = getColumn;\n/* harmony export (immutable) */ __webpack_exports__[\"indexFromColumn\"] = indexFromColumn;\n/* harmony export (immutable) */ __webpack_exports__[\"getIgDataFromIndex\"] = getIgDataFromIndex;\n/* harmony export (immutable) */ __webpack_exports__[\"getDashedLine\"] = getDashedLine;\n/* harmony export (immutable) */ __webpack_exports__[\"fixIndex\"] = fixIndex;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_colors\", function() { return _colors; });\n/* harmony export (immutable) */ __webpack_exports__[\"getColors\"] = getColors;\n/* harmony export (immutable) */ __webpack_exports__[\"addAlpha\"] = addAlpha;\n/* harmony export (immutable) */ __webpack_exports__[\"grayscale\"] = grayscale;\n/* harmony export (immutable) */ __webpack_exports__[\"dataIgDataPropArray\"] = dataIgDataPropArray;\n/* harmony export (immutable) */ __webpack_exports__[\"getDataRange\"] = getDataRange;\n/* harmony export (immutable) */ __webpack_exports__[\"getTraceRange\"] = getTraceRange;\n/* harmony export (immutable) */ __webpack_exports__[\"formatAxisLabel\"] = formatAxisLabel;\n/* harmony export (immutable) */ __webpack_exports__[\"tickFrequency\"] = tickFrequency;\n/* harmony export (immutable) */ __webpack_exports__[\"tickRange\"] = tickRange;\n/* harmony export (immutable) */ __webpack_exports__[\"mdsToRegular\"] = mdsToRegular;\n/* harmony export (immutable) */ __webpack_exports__[\"paramColors\"] = paramColors;\n/* harmony export (immutable) */ __webpack_exports__[\"sum\"] = sum;\n/* harmony export (immutable) */ __webpack_exports__[\"logOr0\"] = logOr0;\n/* harmony export (immutable) */ __webpack_exports__[\"logRange\"] = logRange;\n/* harmony export (immutable) */ __webpack_exports__[\"logScaleValList\"] = logScaleValList;\n/* harmony export (immutable) */ __webpack_exports__[\"logScaleTextList\"] = logScaleTextList;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_selectors__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_color_string__ = __webpack_require__(240);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_color_string___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_color_string__);\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n\n\n\n\n\nvar __MODEL__ = __WEBPACK_IMPORTED_MODULE_2_selectors__[\"g\" /* results */].model;\n\nfunction __ROOT__(state) {\n return state.results.data;\n}\n\nfunction __DS__(state) {\n return __ROOT__(state).datasets;\n}\n\nfunction __RESULTS__(state) {\n return __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.map(__DS__(state), 'results');\n}\n\nfunction __PHASE__(state) {\n var _ref;\n\n return (_ref = []).concat.apply(_ref, _toConsumableArray(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.map(__RESULTS__(state), 'phases')));\n}\n\nfunction __VIRTUAL__(state) {\n // get the axis labels and phase title\n var _getAxisLabels = getAxisLabels(),\n _getAxisLabels2 = _slicedToArray(_getAxisLabels, 2),\n xlabel = _getAxisLabels2[0],\n ylabel = _getAxisLabels2[1];\n\n var ds = __DS__(state);\n var phases = __PHASE__(state);\n var phases_per_ds = ds[0].params.length;\n\n var phase_title = phases.map(function (phase, i) {\n return ds.length == 1 ? 'Phase ' + (i + 1) : ds[Math.floor(i / phases_per_ds)].title + ' - Phase ' + (i % phases_per_ds + 1);\n });\n\n var ds_colors = getColors(ds.length);\n var phase_colors = ds.length == 1 ? getColors(phases_per_ds, 1) : getColors(ds.length, phases_per_ds);\n\n return { xlabel: xlabel, ylabel: ylabel, phase_title: phase_title, ds_colors: ds_colors, phase_colors: phase_colors };\n\n function getAxisLabels() {\n var _axisTitle = Object(__WEBPACK_IMPORTED_MODULE_1__helpers__[\"c\" /* axisTitle */])(__ROOT__(state).databox),\n _axisTitle2 = _slicedToArray(_axisTitle, 2),\n xlabel = _axisTitle2[0],\n ylabel = _axisTitle2[1];\n\n if (Object(__WEBPACK_IMPORTED_MODULE_2_selectors__[\"c\" /* mds */])(state.results) && !Object(__WEBPACK_IMPORTED_MODULE_2_selectors__[\"b\" /* isLogsub */])(state)) {\n ylabel = __ROOT__(state).options.ylabel;\n }\n return [xlabel, ylabel];\n }\n}\n\nfunction __DU(state, prop) {\n switch (prop) {\n case '__ROOT__':\n return __ROOT__(state);\n case '__DS__':\n return __DS__(state);\n case '__RESULTS__':\n return __RESULTS__(state);\n case '__PHASE__':\n return __PHASE__(state);\n case '__VIRTUAL__':\n return __VIRTUAL__(state);\n case '__MODEL__':\n return __MODEL__(state);\n }\n}\n\nfunction extract(state, path) {\n var match = path.match(/^(__[A-Z]+__)\\.([A-Za-z_.]+)(?:#([a-z_-]+)(?:@([a-z_-]+))?)?$/);\n if (match) {\n var _match = _slicedToArray(match, 5),\n DU = _match[1],\n prop = _match[2],\n col = _match[3],\n index = _match[4];\n\n var root = __DU(state, DU);\n if (__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.isArray(root)) {\n var propVals = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.map(root, prop);\n if (col) {\n return propVals.map(function (p) {\n return index ? indexFromColumn(p, col, index) : getColumn(p, col);\n });\n }\n return propVals;\n } else {\n return __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.at(root, prop)[0];\n }\n }\n if (path) {\n return JSON.parse(path);\n }\n}\n\nfunction getColumn(data, col) {\n return {\n data: data.data[data.headers.indexOf(col)],\n index: data.index\n };\n}\n\nfunction indexFromColumn(data, col_d, col_i) {\n return {\n data: getColumn(data, col_d).data,\n index: getColumn(data, col_i).data\n };\n}\n\nfunction getIgDataFromIndex(data, ig_ix) {\n return {\n data: {\n data: data.data.filter(function (d, i) {\n return !__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.includes(ig_ix, i);\n }),\n index: data.index.filter(function (d, i) {\n return !__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.includes(ig_ix, i);\n })\n },\n ig_data: {\n data: data.data.filter(function (d, i) {\n return __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.includes(ig_ix, i);\n }),\n index: data.index.filter(function (d, i) {\n return __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.includes(ig_ix, i);\n })\n }\n };\n}\n\nfunction getDashedLine(curve, data) {\n var maxD = Math.max.apply(Math, _toConsumableArray(data.index)),\n minD = Math.min.apply(Math, _toConsumableArray(data.index));\n var solid = curve.index.map(function (d, i) {\n return d > minD && d < maxD ? i : null;\n }).filter(function (i) {\n return i != null;\n });\n var dashed = curve.index.map(function (d, i) {\n return !(d > minD && d < maxD) ? i : null;\n }).filter(function (i) {\n return i != null;\n });\n return {\n solid: {\n data: __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.at(curve.data, solid),\n index: __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.at(curve.index, solid)\n },\n dashed: {\n data: addNull(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.at(curve.data, dashed), solid[0]),\n index: addNull(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.at(curve.index, dashed), solid[0])\n }\n };\n\n function addNull(arr, i) {\n arr.splice(i, 0, null);\n return arr;\n }\n}\n\nfunction fixIndex(data) {\n return __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.isArray(data.index[0]) ? {\n data: data.data,\n index: data.index.map(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.last)\n } : data;\n}\n\nvar _colors = ['blue', 'green', 'red', 'cyan', 'magenta', 'yellow', 'black'];\n\nfunction getColors(n) {\n var repeats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n if (n > _colors.length) {\n return getColors(_colors.length, repeats).concat(getColors(n - _colors.length, repeats));\n }\n return __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.flatten(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.zip.apply(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a, _toConsumableArray(Array(repeats).fill(_colors.slice(0, n)))));\n}\n\nfunction addAlpha(color, alpha) {\n var rgba = __WEBPACK_IMPORTED_MODULE_3_color_string___default.a.get.rgb(color);\n rgba[3] = alpha;\n return __WEBPACK_IMPORTED_MODULE_3_color_string___default.a.to.rgb(rgba);\n}\n\nfunction grayscale(color) {\n var _colorString$get$rgb = __WEBPACK_IMPORTED_MODULE_3_color_string___default.a.get.rgb(color),\n _colorString$get$rgb2 = _slicedToArray(_colorString$get$rgb, 4),\n r = _colorString$get$rgb2[0],\n g = _colorString$get$rgb2[1],\n b = _colorString$get$rgb2[2],\n a = _colorString$get$rgb2[3];\n\n var gray = 0.2989 * r + 0.5870 * g + 0.1140 * b;\n return __WEBPACK_IMPORTED_MODULE_3_color_string___default.a.to.rgb(gray, gray, gray, a);\n}\n\nfunction dataIgDataPropArray(parsedData, dataProp, igDataProp) {\n return Array(parsedData.data.index.length).fill(dataProp).concat(Array(parsedData.ig_data.index.length).fill(igDataProp));\n}\n\nfunction getDataRange() {\n for (var _len = arguments.length, datasets = Array(_len), _key = 0; _key < _len; _key++) {\n datasets[_key] = arguments[_key];\n }\n\n var data = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.flatten(datasets.map(function (ds) {\n return ds.data;\n }));\n var index = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.flatten(datasets.map(function (ds) {\n return ds.index;\n }));\n return {\n x: [__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.min(index), __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.max(index)],\n y: [__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.min(data), __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.max(data)]\n };\n}\n\nfunction getTraceRange(traces) {\n var index = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.flatten(traces.map(function (ds) {\n return ds.x;\n }));\n var data = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.flatten(traces.map(function (ds) {\n return ds.y;\n }));\n return {\n x: [__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.min(index), __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.max(index)],\n y: [__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.min(data), __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.max(data)]\n };\n}\n\nvar sep_subtitle = /^(.*) \\((.*)\\)$/;\nfunction formatAxisLabel(label) {\n var result = sep_subtitle.exec(label);\n if (result) {\n var _result = _slicedToArray(result, 3),\n main = _result[1],\n sup = _result[2];\n\n return main.bold() + '
' + sup.sup();\n }\n return label.bold();\n}\n\nfunction tickFrequency(low, high) {\n // NOTE: ALL CHANGES must be ported to Python in modules/model.py\n var NUM_TICKS = 6;\n var MIN_TICKS = 4;\n var MAX_TICKS = 10;\n var LESS_THAN_0 = false;\n if (low < 0 && high < 0) {\n var _ref2 = [-high, -low];\n low = _ref2[0];\n high = _ref2[1];\n\n LESS_THAN_0 = true;\n }\n var diff = high - low;\n var round_factor = -Math.round(Math.log10(diff / NUM_TICKS));\n var tick0 = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.floor(low, round_factor);\n var dtick = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.ceil(diff / NUM_TICKS, round_factor);\n var ntick = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.ceil(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.ceil(diff, round_factor) / dtick);\n // console.log(low, high, diff);\n // console.log(tick0, dtick, ntick);\n // console.log(tick0 + (dtick / 2) <= low, tick0 + (dtick * ntick) - (dtick / 2) >= high);\n if (ntick < MIN_TICKS || ntick * 2 < MAX_TICKS && (tick0 + dtick / 2 <= low || tick0 + dtick * ntick - dtick / 2 >= high)) {\n ntick *= 2;\n dtick /= 2;\n }\n // console.log(tick0, dtick, ntick);\n if (tick0 + dtick <= low) {\n tick0 += dtick;\n ntick -= 1;\n }\n // console.log(tick0, dtick, ntick);\n if (tick0 + dtick * (ntick - 1) >= high) {\n ntick -= 1;\n }\n // console.log(tick0, dtick, ntick);\n if (tick0 + dtick * ntick < high) {\n ntick += 1;\n }\n // console.log(tick0, dtick, ntick);\n if (tick0 + dtick * ntick < high) {\n ntick += 1;\n }\n // console.log(tick0, dtick, ntick);\n if (LESS_THAN_0) {\n tick0 = -tick0 - dtick * ntick;\n }\n // console.log(tick0, dtick, ntick);\n // console.log([tick0, tick0 + (dtick * ntick)]);\n return [tick0, dtick, ntick];\n}\n\nfunction tickRange(low, high) {\n var _tickFrequency = tickFrequency(low, high),\n _tickFrequency2 = _slicedToArray(_tickFrequency, 3),\n tick0 = _tickFrequency2[0],\n dtick = _tickFrequency2[1],\n ntick = _tickFrequency2[2];\n\n return [tick0, tick0 + dtick * ntick];\n}\n\nfunction mdsToRegular(state) {\n if (__DS__(state).length == 1) {\n return [state];\n }\n return __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.filter(__DS__(state), 'results').map(function (ds) {\n var root = __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.cloneDeep(__ROOT__(state));\n root.datasets = [ds];\n root.title = ds.title;\n var _data = Object(__WEBPACK_IMPORTED_MODULE_1__helpers__[\"b\" /* CSVText2List */])(ds.data, true);\n if (__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.isEqual(_data[0], Object(__WEBPACK_IMPORTED_MODULE_1__helpers__[\"c\" /* axisTitle */])(ds.data))) {\n // it has a header\n _data[0][1] = root.options.ylabel;\n }\n root.databox = ds.data = _data.join('\\n');\n return Object.assign({}, state, { results: Object.assign({}, state.results, { data: root }) });\n });\n}\n\nfunction paramColors(state) {\n var _VIRTUAL__ = __VIRTUAL__(state),\n ds_colors = _VIRTUAL__.ds_colors,\n phase_colors = _VIRTUAL__.phase_colors;\n\n return ds_colors.length == 1 ? phase_colors : ds_colors;\n}\n\nfunction sum(first) {\n for (var _len2 = arguments.length, rest = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n rest[_key2 - 1] = arguments[_key2];\n }\n\n return {\n index: first.index,\n data: first.data.map(function (d, i) {\n return d + rest.map(function (ds) {\n return ds.data[i];\n }).reduce(function (a, b) {\n return a + b;\n }, 0);\n })\n };\n}\n\nfunction logOr0(val) {\n var log = Math.log10(val);\n if (log == -Infinity) {\n return 0;\n }\n return log;\n}\n\nfunction logRange(low, high) {\n return [Math.floor(logOr0(low)), Math.ceil(logOr0(high))];\n}\n\nfunction logScaleValList(pow) {\n if (Array.isArray(pow)) {\n return __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.flatten(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.range(pow[0], pow[1] + 1).map(logScaleValList));\n }\n var start = Math.pow(10, pow);\n return __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.range(start, Math.pow(10, pow + 1), start);\n}\nfunction logScaleTextList(pow) {\n if (Array.isArray(pow)) {\n return __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.flatten(__WEBPACK_IMPORTED_MODULE_0_lodash___default.a.range(pow[0], pow[1] + 1).map(logScaleTextList));\n }\n var list = Array(9).fill('');\n list[0] = '10' + pow + '';\n return list;\n}\n\n/***/ })\n\n},[123]);\n\n\n// WEBPACK FOOTER //\n// static/js/main.916b63b5.js","import _ from 'lodash';\nimport { CSVText2List } from '_helpers';\n\nexport function mds(state) {\n let mds = false;\n try {\n mds = _.zip(...CSVText2List(state.data.databox)).length > 2;\n } catch (e) {} // eslint-disable-line no-empty\n return mds;\n}\n\nexport function singleWave(state) {\n return state.data.datasets[0].params.length == 1;\n}\n\nexport function method(state) {\n return state.data.method;\n}\nmethod.is_built_in = function(method) {\n return method == 'annealing' || method == 'curvefit';\n};\nmethod.is_mc = function(method) {\n return method != 'curvefit';\n};\nmethod.info = function(state) {\n if (method.is_built_in(method(state))) {\n return {\n canPhase: true,\n hasRSQ: false\n };\n } else {\n return current_model(state).fitting_methods[method(state)];\n }\n};\n\nexport function current_model(state) {\n return state.models.models[state.data.model];\n}\n\nexport function param_names(state) {\n if (method.is_built_in(method(state))) {\n return current_model(state).params;\n } else {\n return method.info(state).params;\n }\n}\nexport function param_description(state) {\n if (method.is_built_in(method(state))) {\n return current_model(state).param_description;\n } else {\n return method.info(state).paramDescription || [];\n }\n}\n\nexport const results = function() {\n let cache;\n return function(state) {\n let res = state.results.data.datasets.map(d=>({...d.results, title:d.title}));\n if (!_.isEqual(cache, res)) {\n cache = res;\n }\n return cache;\n };\n}();\n\nresults.model = function(state) {\n return state.models.models[state.results.data.model];\n};\n\nresults._fitTime = function() {\n let cache;\n return function(state) {\n let res = results(state).map(d=>d._fitTime);\n if (!_.isEqual(cache, res)) {\n cache = res;\n }\n return cache;\n };\n}();\n\nresults.paramNames = function(state) {\n const model = results.model(state);\n const _method = state.results.data.method;\n let virtual_params = model.virtual_params;\n if (!method.is_built_in(_method)) {\n virtual_params = virtual_params.concat(model.fitting_methods[_method].vParamNames);\n }\n return model.params.concat(virtual_params);\n};\n\nexport function isLogsub(state) {\n return state.page == 'logsub';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/selectors/index.js","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { includes } from 'lodash';\n\nimport { toggleGraph } from 'state/data_options';\nimport { toggleGraph as res_toggleGraph } from 'state/results_options';\nimport { plotNames } from 'selectors/plot';\n\nexport function Graphs ({graphs, selected, onChange}) {\n return (\n

\n Show graphs:\n \n {graphs.map((g, i)=>(\n \n ))}\n \n

\n );\n}\nGraphs.propTypes = {\n graphs: PropTypes.arrayOf(PropTypes.string.isRequired).isRequired,\n selected: PropTypes.arrayOf(PropTypes.number.isRequired).isRequired,\n onChange: PropTypes.func.isRequired,\n type: PropTypes.oneOf(['live', 'results']).isRequired\n};\nGraphs.defaultProps = {type: 'live'};\n\nexport function mapStateToProps(state, ownProps) {\n const root = ownProps.type == 'live' ? state : state.results;\n return {\n graphs: plotNames(state, ownProps.type != 'live'),\n selected: root.data.options.graphs,\n };\n}\n\nexport function mapDispatchToProps(dispatch, ownProps) {\n return bindActionCreators({\n onChange: ownProps.type == 'live' ? toggleGraph : res_toggleGraph\n }, dispatch);\n}\n\nconst ConnectGraphs = connect(mapStateToProps, mapDispatchToProps)(Graphs);\nConnectGraphs.defaultProps = Graphs.defaultProps;\nexport default ConnectGraphs;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Input/Graphs.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\n\nimport DelayedInput from 'components/DelayedInput';\n\nimport * as data_options from 'state/data_options';\nimport * as results_options from 'state/results_options';\nimport { MDS_FIT_EACH } from 'state/data_datasets';\nimport { mds, isLogsub } from 'selectors';\n\nexport function MDSGraphs ({options, actions, shown, separate}) {\n // if fitting all together, only ylabel is relevant\n if (!shown) {\n return
;\n }\n return (\n
\n Multidataset options:\n \n \n
\n );\n}\nMDSGraphs.propTypes = {\n options: PropTypes.object.isRequired,\n actions: PropTypes.objectOf(PropTypes.func.isRequired).isRequired,\n shown: PropTypes.bool.isRequired,\n separate: PropTypes.bool.isRequired,\n type: PropTypes.oneOf(['live', 'results']).isRequired\n};\nMDSGraphs.defaultProps = {type: 'live'};\n\nexport function mapStateToProps(state, ownProps) {\n const root = ownProps.type == 'live' ? state : state.results;\n return {\n options: root.data.options,\n shown: mds(root) && !isLogsub(state),\n separate: root.data.mds.fit == MDS_FIT_EACH\n };\n}\n\nexport function mapDispatchToProps(dispatch, ownProps) {\n const options = ownProps.type == 'live' ? data_options : results_options;\n return {\n actions: bindActionCreators({\n mds_one_plot: options.toggleMDSOnePlot,\n ylabel: options.setYLabel\n }, dispatch)\n };\n}\n\nconst ConnectMDSGraphs = connect(mapStateToProps, mapDispatchToProps)(MDSGraphs);\nConnectMDSGraphs.defaultProps = MDSGraphs.defaultProps;\nexport default ConnectMDSGraphs;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Input/MDSGraphs.jsx","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\n\nimport Collapsible from 'components/Collapsible';\nimport DelayedInput from 'components/DelayedInput';\nimport Graphs from './Graphs';\nimport MDSGraphs from './MDSGraphs';\nimport './AdvancedOptions.css';\n\nimport * as data_options from 'state/data_options';\nimport * as results_options from 'state/results_options';\n\nfunction protectNull(value) {\n return value == null ? '' : value;\n}\n\nexport class GraphingOptions extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n\n if (this.props.type == 'results') {\n this._debouncedCheckSize = _.debounce(this._checkSize.bind(this), 150);\n window.addEventListener(\n 'resize', this._debouncedCheckSize,\n Modernizr.passiveeventlisteners ? {passive: true} : false\n );\n window.addEventListener(\n 'scroll', this._debouncedCheckSize,\n Modernizr.passiveeventlisteners ? {passive: true} : false\n );\n }\n }\n\n componentWillMount() {\n this._checkSize();\n }\n\n componentWillUnmount() {\n if (this._debouncedCheckSize) {\n window.removeEventListener('resize', this._debouncedCheckSize);\n window.removeEventListener('scroll', this._debouncedCheckSize);\n }\n }\n\n _checkSize() {\n const OutputPlots = document.getElementById('OutputPlots');\n this.setState({\n floatingOptions: this.props.type == 'results' && OutputPlots && Modernizr.mq('(min-width: 1200px)') && (window.scrollY > OutputPlots.offsetTop - window.innerHeight / 3)\n });\n }\n\n render() {\n const {type, options, actions} = this.props;\n const {floatingOptions} = this.state;\n const GraphingOptionsInternal = (\n
\n {floatingOptions && (

Graphing options

)}\n \n \n \n \n \n \n \n \n \n
\n );\n if (floatingOptions) {\n return GraphingOptionsInternal;\n } else {\n return (\n {GraphingOptionsInternal}\n );\n }\n }\n}\nGraphingOptions.propTypes = {\n options: PropTypes.shape({\n xlim: PropTypes.array.isRequired,\n ylim: PropTypes.array.isRequired,\n dash_forecast: PropTypes.bool.isRequired,\n showlegend: PropTypes.bool.isRequired,\n showgrid: PropTypes.bool.isRequired,\n copyright: PropTypes.bool.isRequired,\n x_log_graph: PropTypes.bool.isRequired,\n y_log_graph: PropTypes.bool.isRequired,\n }).isRequired,\n actions: PropTypes.shape({\n sync: PropTypes.func.isRequired,\n xlim: PropTypes.func.isRequired,\n ylim: PropTypes.func.isRequired,\n dash_forecast: PropTypes.func.isRequired,\n showlegend: PropTypes.func.isRequired,\n showgrid: PropTypes.func.isRequired,\n copyright: PropTypes.func.isRequired,\n x_log_graph: PropTypes.func.isRequired,\n y_log_graph: PropTypes.func.isRequired,\n }).isRequired,\n type: PropTypes.oneOf(['live', 'results']).isRequired\n};\nGraphingOptions.defaultProps = {type: 'live'};\n\nexport function mapStateToProps(state, ownProps) {\n const root = ownProps.type == 'live' ? state : state.results;\n return {\n options: root.data.options\n };\n}\n\nexport function mapDispatchToProps(dispatch, ownProps) {\n const options = ownProps.type == 'live' ? data_options : results_options;\n return {\n actions: bindActionCreators({\n sync: data_options.syncOptions,\n xlim: options.setXLim,\n ylim: options.setYLim,\n dash_forecast: options.toggleDashForecast,\n showlegend: options.toggleShowLegend,\n showgrid: options.toggleGridLines,\n copyright: options.toggleCopyright,\n x_log_graph: options.toggleLogXGraph,\n y_log_graph: options.toggleLogYGraph,\n }, dispatch)\n };\n}\n\nconst ConnectGraphingOptions = connect(mapStateToProps, mapDispatchToProps)(GraphingOptions);\nConnectGraphingOptions.defaultProps = GraphingOptions.defaultProps;\nexport default ConnectGraphingOptions;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Input/GraphingOptions.jsx","export default '/loglet/static/images/loading.gif';\n\n\n\n// WEBPACK FOOTER //\n// ./src/static/loading.js","import React from 'react';\nimport PropTypes from 'prop-types';\n\nclass DownloadHelper extends React.Component {\n constructor(props) {\n super(props);\n this.state = {format: 'png', dpi: 60, grayscale: false, ...(this.props.default||{})};\n }\n\n render() {\n return (\n
\n Download format:{' '}\n \n {' '}Size:{' '}\n \n {' '}\n \n {' '}\n this.props.onSubmit(this.state)} value=\"Download\" />\n
\n );\n }\n\n _option(dpi) {\n return (\n \n );\n }\n}\nDownloadHelper.propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n onSubmit: PropTypes.func.isRequired,\n default: PropTypes.shape({\n format: PropTypes.string,\n dpi: PropTypes.number,\n grayscale: PropTypes.bool\n })\n};\nDownloadHelper.defaultProps = {\n width: 480,\n height: 360\n};\n\nexport default DownloadHelper;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Output/Plots/DownloadHelper.jsx","import _ from 'lodash';\n\nconst SET_PERCENT = 'll4/data_cis/SET_PERCENT';\n\nexport function setPercent(iter) {\n return {\n type: SET_PERCENT,\n payload: iter\n };\n}\n\nconst SET_ITER = 'll4/data_cis/SET_ITER';\n\nexport function setIterations(iter) {\n return {\n type: SET_ITER,\n payload: iter\n };\n}\n\nconst TOGGLE_GRAPH = 'll4/data_cis/TOGGLE_GRAPH';\n\nexport function toggleGraph(graph) {\n return {\n type: TOGGLE_GRAPH,\n payload: graph\n };\n}\n\nconst SET_MC_ITER = 'll4/data_cis/SET_MC_ITER';\n\nexport function setMCIter(iter) {\n return {\n type: SET_MC_ITER,\n payload: iter\n };\n}\n\nconst SET_MC_ANNEAL = 'll4/data_cis/SET_MC_ANNEAL';\n\nexport function setMCAnneal(anneal) {\n return {\n type: SET_MC_ANNEAL,\n payload: anneal\n };\n}\n\nconst SET_MC_SAMPLE = 'll4/data_cis/SET_MC_SAMPLE';\n\nexport function setMCSample(sample) {\n return {\n type: SET_MC_SAMPLE,\n payload: sample\n };\n}\n\n\nconst initialState = {\n percent: 0,\n iterations: 200,\n graphs: [1, 2],\n mc: {\n iter: 400,\n anneal: 4,\n sample: 20\n }\n};\n\nexport default function reducer(state=initialState, action) {\n switch (action.type) {\n case SET_PERCENT:\n return {...state, percent: action.payload};\n case SET_ITER:\n return {...state, iterations: action.payload};\n case TOGGLE_GRAPH:\n return {...state, graphs: _.xor(state.graphs, [action.payload])};\n case SET_MC_ITER:\n return {...state, mc: {\n ...state.mc,\n iter: action.payload\n }};\n case SET_MC_ANNEAL:\n return {...state, mc: {\n ...state.mc,\n anneal: action.payload\n }};\n case SET_MC_SAMPLE:\n return {...state, mc: {\n ...state.mc,\n sample: action.payload\n }};\n default:\n return state;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/state/data_cis.js","import { SET_MODEL, LOAD_MODELS, LOAD_MODELS_START, LOAD_MODELS_ERROR } from './_const';\nimport { API } from '_helpers';\n\nexport function _loadModels(models) {\n return {\n type: LOAD_MODELS,\n payload: models\n };\n}\n\nexport function _loadModelsStart() {\n return {\n type: LOAD_MODELS_START\n };\n}\n\nexport function _loadModelsError() {\n return {\n type: LOAD_MODELS_ERROR,\n error: true\n };\n}\n\nexport function loadModels(page='index') {\n return dispatch => {\n dispatch(_loadModelsStart());\n const endpoint = page=='logsub' ? 'load_models.json?logsub=true' : 'load_models.json';\n return fetch(API(endpoint))\n .then(res => res.json())\n .then(models => {\n dispatch(_loadModels(models));\n return models;\n }).catch(e => {\n console.error(e); // eslint-disable-line no-console\n dispatch(_loadModelsError());\n });\n };\n}\n\nexport function _setModel(model, meta) {\n return {\n type: SET_MODEL,\n payload: model,\n meta\n };\n}\n\nexport function setModel(model, options={}) {\n return (dispatch, getState) => {\n const metadata = getState().models.models[model];\n if (!metadata) {\n return;\n }\n dispatch(_setModel(model, {\n num_params: metadata.params.length,\n hold_guesses: metadata.hold_guesses,\n can_phase: metadata.can_phase,\n default_options: metadata.default_options,\n num_graphs: metadata.client_plots.reduce((indexes, plot, i) => plot.show ? indexes.concat(i) : indexes, []),\n ...options\n }));\n };\n}\n\nconst initialState = {\n types: [],\n models: {}\n};\n\nexport default function reducer(state=initialState, action) {\n switch (action.type) {\n case LOAD_MODELS_START:\n return {status: 0};\n case LOAD_MODELS:\n return {...action.payload, status: 1};\n case LOAD_MODELS_ERROR:\n return {status: -1};\n default:\n return state;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/state/model.js","import _ from 'lodash';\nimport qs from 'qs';\n\nimport {\n SET_DATA, SET_TITLE, SET_WAVES, SET_MODEL, SET_METHOD,\n LOAD_DATA, LOAD_DATA_START, LOAD_DATA_ERROR, UNLOAD_DATA, IMPORT_DATASET,\n LOAD_MODELS_START\n} from './_const';\n// import { API, didDataChange } from '_helpers';\nimport { API } from '_helpers';\nimport { method as method_sel } from 'selectors';\n\nimport options_reducer from './data_options';\nimport CIs_reducer from './data_cis';\nimport _ds_reducer, * as ds_actions from './data_datasets';\nimport * as model_actions from './model';\nconst { mds_reducer, datasets_reducer, guess_reducer } = _ds_reducer;\n\nexport function setData(data, old_data) {\n return {\n type: SET_DATA,\n payload: data,\n meta: old_data\n };\n}\n\nexport function setTitle(title) {\n return {\n type: SET_TITLE,\n payload: title\n };\n}\n\nexport function _setMethod(method, meta) {\n return {\n type: SET_METHOD,\n payload: method,\n meta\n };\n}\n\nexport function setMethod(method) {\n return (dispatch, getState) => {\n if (method_sel.is_built_in(method)) {\n dispatch(_setMethod(method));\n return Promise.resolve();\n }\n const state = getState();\n let params = state.data.datasets.map(ds=>ds.params);\n if (!method_sel.is_built_in(method_sel(state))) {\n params = params.map(dsp=>dsp.map(wave=>wave.original));\n }\n params = params.map(ds=>ds.map(wave=>{\n return {\n ...wave,\n guesses: wave.guesses.map(numberify),\n bounds: wave.bounds.map(b=>b.map(numberify))\n };\n function numberify(g) {\n return parseFloat(g) || 0;\n }\n }));\n return fetch(API('convert_guesses.json'), {\n method: 'POST',\n body: qs.stringify({\n model: state.data.model,\n method,\n params: JSON.stringify(params)\n }),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'\n }\n }).then(res => res.json()).then(response => {\n dispatch(_setMethod(method, response.params));\n }).catch(e => {\n console.error(e, e.stack); // eslint-disable-line no-console\n dispatch(_setMethod(method));\n });\n };\n}\n\nexport function _setWaves(waves) {\n return {\n type: SET_WAVES,\n payload: waves\n };\n}\n\nexport function setWaves(waves) {\n return (dispatch, getState) => {\n dispatch(_setWaves(waves));\n const state = getState();\n if (!method_sel.info(state).canPhase && waves > 1) {\n dispatch(setMethod(default_method));\n }\n };\n}\n\nexport function _loadFromServer(result) {\n return {\n type: LOAD_DATA,\n payload: result\n };\n}\n\nexport function _loadFromServerStart() {\n return {\n type: LOAD_DATA_START\n };\n}\n\nexport function _loadFromServerError() {\n return {\n type: LOAD_DATA_ERROR\n };\n}\n\nexport function importDS(data) {\n return {\n type: IMPORT_DATASET,\n payload: data\n };\n}\n\nexport function unloadData() {\n return {\n type: UNLOAD_DATA\n };\n}\n\nexport function loadDataFromLocalLibrary(index) {\n return (dispatch, getState) => {\n const newDS = getState().library[index];\n if (newDS) {\n dispatch(importDS(newDS));\n }\n return Promise.resolve();\n };\n}\n\nexport function loadDataFromServer(file) {\n return (dispatch) => {\n dispatch(_loadFromServerStart());\n const split = file.split('.');\n const url = `get.json/${split[1]}/${split[2]}`;\n return fetch(\n API(url, 'library'),\n {method: 'GET', credentials: 'include'}\n ).then(\n res => res.json()\n ).then(response => {\n if (split[1] == 'get') { // new style\n return dispatch(importDS(response));\n }\n dispatch(model_actions.setModel(response.model));\n dispatch(setData(response.data));\n dispatch(setWaves(response.num || 1));\n dispatch(_loadFromServer(response));\n return dispatch(ds_actions.guessParams()).then(()=>{\n dispatch(_loadFromServer(response)); // overwrite guesses that we can\n });\n }).catch((e) => {\n console.error(e, e.stack); // eslint-disable-line no-console\n dispatch(_loadFromServerError());\n });\n };\n}\n\nexport function loadData(path) { // can't figure out how to test this one in a normal manner\n return (dispatch) => {\n const split = path.split('.');\n switch (split[0]) {\n case 'library':\n return dispatch(loadDataFromServer(path));\n case 'user':\n return dispatch(loadDataFromLocalLibrary(+split[1]));\n }\n };\n}\n\n\nconst default_method = 'annealing';\nfunction method_reducer(state=default_method, action) {\n if (action.type == SET_METHOD) {\n return action.payload;\n }\n if (!method_sel.is_built_in(state)) {\n if (action.type == SET_MODEL) {\n return default_method;\n }\n }\n return state;\n}\n\nfunction load_reducer(state=0, action) {\n switch (action.type) {\n case LOAD_DATA_START:\n return 1;\n case LOAD_DATA:\n case IMPORT_DATASET:\n return 2;\n case LOAD_DATA_ERROR:\n return -1;\n case UNLOAD_DATA:\n return 0;\n // case SET_DATA:\n // if (didDataChange(action.meta, action.payload)) { // old and new data\n // return 0;\n // }\n // // fall through\n default:\n return state;\n }\n}\n\nconst initialState = {\n model: '',\n title: '',\n databox: '',\n method: undefined,\n options: undefined, // to facilitate calling separate reducer\n mds: undefined,\n CIs: undefined,\n guess: undefined,\n load: undefined,\n datasets: undefined,\n metadata: {}\n};\n\nexport default function reducer(state=initialState, action) {\n let newState = {\n ...state,\n method: method_reducer(state.method, action),\n options: options_reducer(state.options, action),\n CIs: CIs_reducer(state.CIs, action),\n mds: mds_reducer(state.mds, action),\n guess: guess_reducer(state.guess, action),\n load: load_reducer(state.load, action)\n };\n newState.metadata = state.metadata || {};\n // newState is a new object, so we can shallowly mutate it\n switch (action.type) {\n case SET_DATA:\n newState.databox = action.payload;\n // if (didDataChange(state.databox, newState.databox)) {\n // newState.metadata = {};\n // }\n break;\n case SET_TITLE:\n newState.title = action.payload;\n break;\n case LOAD_DATA:\n newState.title = action.payload.title;\n break;\n case SET_MODEL:\n newState.model = action.payload;\n break;\n case LOAD_MODELS_START:\n newState.model = '';\n break;\n case IMPORT_DATASET:\n if (!action.meta) {\n return reducer(action.payload, {type: IMPORT_DATASET, meta: true});\n // make sure it has all the properties we're expecting by running it through the reducer\n }\n break;\n case UNLOAD_DATA:\n if (!action.meta) {\n return reducer(initialState, {type: UNLOAD_DATA, meta: state});\n // make sure it has all the properties we're expecting by running it through the reducer\n } else {\n newState.model = action.meta.model;\n }\n break;\n }\n newState.datasets = datasets_reducer(state.datasets, action, {mds: newState.mds, databox: newState.databox, title: newState.title});\n return _.every(newState, (v,k)=>state[k]==v) ? state : newState;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/state/data.js","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\n\nimport { setTitle } from 'state/data';\n\nexport function Title ({title, onChange}) {\n return (\n
\n \n onChange(event.target.value)} value={title} />\n
\n );\n}\nTitle.propTypes = {\n title: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired\n};\n\nexport default connect(\n state => ({\n title: state.data.title\n }),\n dispatch => bindActionCreators({\n onChange: setTitle\n }, dispatch)\n)(Title);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Input/Title.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\n\nimport { setData } from 'state/data';\n\nexport function DataBox({databox, onChange}) {\n return (\n
\n