var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(t){this.ElementId=t}return e.prototype.Bind=function(t){ko.applyBindings(t,$("#"+this.ElementId)[0])},e.prototype.SignUp=function(e){var n=t.Utilities.LoadFromLocalStorage(t.Constants.Home.Onboarding);n||(n=new t.Models.Onboarding),"boolean"!=typeof e&&(e=!1),n.IsTrial=e,t.Utilities.PersistOnboarding(n),window.location.href=t.Constants.Views.OnboardingUrl},e.prototype.Upgrade=function(){window.location.href=t.Constants.Views.UpgradeUrl},e}();e.Base=n}(e=t.ViewModels||(t.ViewModels={}))}(TW||(TW={}));var __extends=this&&this.__extends||function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),TW;!function(t){var e;!function(e){"use strict";var n=function(t){function e(e,n){var o=t.call(this,e)||this;return o.Parameters={},o.Backtest=n,o}return __extends(e,t),e.prototype.ExecuteBacktest=function(){this.Backtest.Phase4(this.Parameters)},e}(t.ViewModels.Base);e.BaseAlgorithm=n}(e=t.Algorithms||(t.Algorithms={}))}(TW||(TW={}));var __extends=this&&this.__extends||function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),TW;!function(t){var e;!function(e){"use strict";var n=function(e){function n(t){var n=e.call(this,t)||this;return n.Parent=null,n}return __extends(n,e),n.prototype.Refresh=function(){try{if(!$("#InvestmentSize").valid())return}catch(t){}this.AfterCompare(),this.Parent&&this.Parent.AfterRefresh()},n.prototype.CheckResetDropdownGuid=function(e,n){var o=e().Value;t.Constants.Text.GuidRegex.test(o)||e(n()[0])},n.prototype.CheckResetDropdownString=function(t,e){var n=t().Value;n&&0!==n.length||t(e()[0])},n.prototype.UpdateWrangle=function(e,n){var o=new t.Models.WrangleHomeChart;o.Profile=this.BuildProfileModel(),o.Range=new t.Models.DateRange(null,null);var r=t.Utilities.DoAjax(e,o);return r.fail(function(e){t.Utilities.Error(e)}),n&&t.Utilities.PleaseWait(n,r),r},n.prototype.PostBind=function(e){var n=this,o=t.Controls.Dropdown.LoadFromTag(this,"InvestmentTimeHorizonId",t.Constants.Tags.InvestmentTimeHorizonId,this.InvestmentTimeHorizonId,this.InvestmentTimeHorizonIdItems,e?e.InvestmentTimeHorizonId:null,null,null!=e.InvestmentTimeHorizonId);return o.done(function(){(null==n.InvestmentTimeHorizonId()||n.InvestmentTimeHorizonId().Value===t.Constants.Home.TimeHorizon)&&n.InvestmentTimeHorizonId(n.InvestmentTimeHorizonIdItems()[n.InvestmentTimeHorizonIdItems().length-1])}),o},n.prototype.ToggleWrangleAdjustment=function(){$("#compare-buttons-button").click()},n.prototype.PopulateHistoricalComparisonChart=function(e){var n=[];return e.Dates.forEach(function(o){var r={};r[t.Constants.Chart.Date]=o,r[t.Constants.Chart.Backtest]=Number(e.Backtest[o]).toFixed(2),r[t.Constants.Chart.BuyAndHold]=Number(e.BuyAndHold[o]).toFixed(2),n.push(r)}),n},n.prototype.BuildProfileModel=function(){var e=new t.Models.Onboarding;if(e.Benchmark=this.Benchmark().Value,e.InvestmentSize=this.InvestmentSize&&this.InvestmentSize()?this.InvestmentSize():t.Constants.Home.InvestmentSize,this.InvestmentTimeHorizonId&&this.InvestmentTimeHorizonId()&&t.Constants.Text.GuidRegex.test(this.InvestmentTimeHorizonId().Value))e.InvestmentTimeHorizonId=this.InvestmentTimeHorizonId().Value,e.Length=t.Constants.DemoWrangleLength[this.InvestmentTimeHorizonId().Key()];else{var n=this.InvestmentTimeHorizonIdItems()[this.InvestmentTimeHorizonIdItems().length-1];e.Length=t.Constants.DemoWrangleLength[n.Key()],e.InvestmentTimeHorizonId=n.Value}return e},n.prototype.LoadChartData=function(e,n,o,r){var a=new t.Models.WrangleHomeChart;a.Profile=this.BuildProfileModel(),a.Range=o;var i=t.Utilities.DoAjax(e,a);i.done(function(t){r(t)}),t.Utilities.PleaseWait(n,i)},n.prototype.RehydrateModel=function(e,n){this.Parent=n;var o=e.Benchmarks,r=t.Utilities.LoadFromLocalStorage(t.Constants.Home.Onboarding);null!=r&&(e=r,(null==e.Benchmarks||0===e.Benchmarks.length)&&(e.Benchmarks=o));var a=t.Controls.Dropdown.ConvertFromTag(e.InvestmentTimeHorizon,this);null!=a&&(a=new t.Models.DropdownItem(this,t.Constants.Home.TimeHorizon,t.Constants.Home.TimeHorizon));var i=null;return i=e.Benchmark&&e.Benchmark.length>0?e.Benchmarks.filter(function(t){return t.Id===e.Benchmark})[0]:e.Benchmarks.filter(function(e){return e.Name===t.Constants.Index.SP500})[0],this.InvestmentSize=ko.observable(e.InvestmentSize),this.InvestmentTimeHorizonId=ko.observable(a),this.InvestmentTimeHorizonIdItems=ko.observableArray(null),this.Benchmark=ko.observable(t.Controls.Dropdown.ConvertFromTag(i,this)),this.BenchmarkItems=ko.observableArray(t.Controls.Dropdown.ConvertFromDataSourceArray(e.Benchmarks,this)),t.Utilities.PersistOnboarding(e),e},n.prototype.SignUpCTA=function(){this.SignUp(!0)},n.prototype.ConfigureComparisonChart=function(e,n,o){var r=this.BuildProfileModel(),a=r.InvestmentSize,i=Object.keys(e),s=new Date(i[0]),l=new Date(i[i.length-1]),u=s;u=r.Length===t.Constants.DemoWrangleLength.Long?moment(l).subtract(30,"year").toDate():r.Length===t.Constants.DemoWrangleLength.Medium?moment(l).subtract(15,"year").toDate():moment(l).subtract(10,"year").toDate(),u!==s&&(e=t.Utilities.TruncateGrowthColumn(e,u));var c=t.Controls.Chart.ComputeGrowthAndBuildChartData(a,e,n,null,o);return c},n.prototype.AfterCompare=function(){var e=new t.Models.Onboarding,n=this.InvestmentSize();this.CheckResetDropdownString(this.Benchmark,this.BenchmarkItems),this.CheckResetDropdownGuid(this.InvestmentTimeHorizonId,this.InvestmentTimeHorizonIdItems),(null==n||isNaN(Number(n)))&&(this.InvestmentSize(t.Constants.Home.InvestmentSize),$("#InvestmentSize").focus().blur()),e=t.Utilities.LoadFromLocalStorage(t.Constants.Home.Onboarding),e||(e=new t.Models.Onboarding),e.Benchmark=this.Benchmark().Value,e.InvestmentSize=this.InvestmentSize(),e.InvestmentTimeHorizonId=this.InvestmentTimeHorizonId().Value,e.Length=t.Constants.DemoWrangleLength[this.InvestmentTimeHorizonId().Key()],t.Utilities.PersistOnboarding(e)},n}(e.Base);e.HomeBase=n}(e=t.ViewModels||(t.ViewModels={}))}(TW||(TW={}));var TW;!function(TW){var Models;!function(Models){"use strict";var DropdownItem=function(){function DropdownItem(t,e,n,o,r,a,i){this.Value=n,this.Parent=t,this.Clicked=o,this.PreviousKey=null,this.Metadata=i,this.PreviousValue=null,this.Description=a,this.CSS=ko.observable(r),this.Key=ko.observable(e),this.Disabled=ko.observable(!1)}return DropdownItem.prototype.UpdateValue=function(data,event){if(!data.Disabled()){var id=$(event.currentTarget).closest("ul").attr("id"),currentValue=new DropdownItem(null,null,null);eval("currentValue = data.Parent."+id+"();"),null!==currentValue&&(this.PreviousKey=currentValue.Key(),this.PreviousValue=currentValue.Value),eval("data.Parent."+id+"(data);")}},DropdownItem.prototype.ConvertToTag=function(){return new Models.Tag(this.Value,this.Key(),this.Description,this.Metadata)},DropdownItem.prototype.Click=function(){null!==this.Clicked&&this.Clicked(this)},DropdownItem}();Models.DropdownItem=DropdownItem}(Models=TW.Models||(TW.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(e){this.Ids=e,this.Email=null,this.Length=null,this.YearsBack=0,this.UseDates=!1,this.Benchmark=null,this.MVO1Constraint=0,this.DaysBetweenMVOs=0,this.UnificationYears=0,this.EndDate=new Date,this.StartDate=new Date,this.BlendedReturnWeights=null,this.InitialInvestment=t.Constants.MVO.InitialInvestment}return e}();e.MVOLab=n}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(t){this.ElementId=t}return e.prototype.Bind=function(t){ko.applyBindings(t,$("#"+this.ElementId)[0])},e.prototype.SignUp=function(e){var n=t.Utilities.LoadFromLocalStorage(t.Constants.Home.Onboarding);n||(n=new t.Models.Onboarding),"boolean"!=typeof e&&(e=!1),n.IsTrial=e,t.Utilities.PersistOnboarding(n),window.location.href=t.Constants.Views.OnboardingUrl},e.prototype.Upgrade=function(){window.location.href=t.Constants.Views.UpgradeUrl},e}();e.Base=n}(e=t.ViewModels||(t.ViewModels={}))}(TW||(TW={}));var __extends=this&&this.__extends||function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),TW;!function(t){var e;!function(e){"use strict";var n=function(t){function e(e,n){var o=t.call(this,e)||this;return o.Parameters={},o.Backtest=n,o}return __extends(e,t),e.prototype.ExecuteBacktest=function(){this.Backtest.Phase4(this.Parameters)},e}(t.ViewModels.Base);e.BaseAlgorithm=n}(e=t.Algorithms||(t.Algorithms={}))}(TW||(TW={}));var __extends=this&&this.__extends||function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),TW;!function(t){var e;!function(e){"use strict";var n=function(e){function n(t){var n=e.call(this,t)||this;return n.Parent=null,n}return __extends(n,e),n.prototype.Refresh=function(){try{if(!$("#InvestmentSize").valid())return}catch(t){}this.AfterCompare(),this.Parent&&this.Parent.AfterRefresh()},n.prototype.CheckResetDropdownGuid=function(e,n){var o=e().Value;t.Constants.Text.GuidRegex.test(o)||e(n()[0])},n.prototype.CheckResetDropdownString=function(t,e){var n=t().Value;n&&0!==n.length||t(e()[0])},n.prototype.UpdateWrangle=function(e,n){var o=new t.Models.WrangleHomeChart;o.Profile=this.BuildProfileModel(),o.Range=new t.Models.DateRange(null,null);var r=t.Utilities.DoAjax(e,o);return r.fail(function(e){t.Utilities.Error(e)}),n&&t.Utilities.PleaseWait(n,r),r},n.prototype.PostBind=function(e){var n=this,o=t.Controls.Dropdown.LoadFromTag(this,"InvestmentTimeHorizonId",t.Constants.Tags.InvestmentTimeHorizonId,this.InvestmentTimeHorizonId,this.InvestmentTimeHorizonIdItems,e?e.InvestmentTimeHorizonId:null,null,null!=e.InvestmentTimeHorizonId);return o.done(function(){(null==n.InvestmentTimeHorizonId()||n.InvestmentTimeHorizonId().Value===t.Constants.Home.TimeHorizon)&&n.InvestmentTimeHorizonId(n.InvestmentTimeHorizonIdItems()[n.InvestmentTimeHorizonIdItems().length-1])}),o},n.prototype.ToggleWrangleAdjustment=function(){$("#compare-buttons-button").click()},n.prototype.PopulateHistoricalComparisonChart=function(e){var n=[];return e.Dates.forEach(function(o){var r={};r[t.Constants.Chart.Date]=o,r[t.Constants.Chart.Backtest]=Number(e.Backtest[o]).toFixed(2),r[t.Constants.Chart.BuyAndHold]=Number(e.BuyAndHold[o]).toFixed(2),n.push(r)}),n},n.prototype.BuildProfileModel=function(){var e=new t.Models.Onboarding;if(e.Benchmark=this.Benchmark().Value,e.InvestmentSize=this.InvestmentSize&&this.InvestmentSize()?this.InvestmentSize():t.Constants.Home.InvestmentSize,this.InvestmentTimeHorizonId&&this.InvestmentTimeHorizonId()&&t.Constants.Text.GuidRegex.test(this.InvestmentTimeHorizonId().Value))e.InvestmentTimeHorizonId=this.InvestmentTimeHorizonId().Value,e.Length=t.Constants.DemoWrangleLength[this.InvestmentTimeHorizonId().Key()];else{var n=this.InvestmentTimeHorizonIdItems()[this.InvestmentTimeHorizonIdItems().length-1];e.Length=t.Constants.DemoWrangleLength[n.Key()],e.InvestmentTimeHorizonId=n.Value}return e},n.prototype.LoadChartData=function(e,n,o,r){var a=new t.Models.WrangleHomeChart;a.Profile=this.BuildProfileModel(),a.Range=o;var i=t.Utilities.DoAjax(e,a);i.done(function(t){r(t)}),t.Utilities.PleaseWait(n,i)},n.prototype.RehydrateModel=function(e,n){this.Parent=n;var o=e.Benchmarks,r=t.Utilities.LoadFromLocalStorage(t.Constants.Home.Onboarding);null!=r&&(e=r,(null==e.Benchmarks||0===e.Benchmarks.length)&&(e.Benchmarks=o));var a=t.Controls.Dropdown.ConvertFromTag(e.InvestmentTimeHorizon,this);null!=a&&(a=new t.Models.DropdownItem(this,t.Constants.Home.TimeHorizon,t.Constants.Home.TimeHorizon));var i=null;return i=e.Benchmark&&e.Benchmark.length>0?e.Benchmarks.filter(function(t){return t.Id===e.Benchmark})[0]:e.Benchmarks.filter(function(e){return e.Name===t.Constants.Index.SP500})[0],this.InvestmentSize=ko.observable(e.InvestmentSize),this.InvestmentTimeHorizonId=ko.observable(a),this.InvestmentTimeHorizonIdItems=ko.observableArray(null),this.Benchmark=ko.observable(t.Controls.Dropdown.ConvertFromTag(i,this)),this.BenchmarkItems=ko.observableArray(t.Controls.Dropdown.ConvertFromDataSourceArray(e.Benchmarks,this)),t.Utilities.PersistOnboarding(e),e},n.prototype.SignUpCTA=function(){this.SignUp(!0)},n.prototype.ConfigureComparisonChart=function(e,n,o){var r=this.BuildProfileModel(),a=r.InvestmentSize,i=Object.keys(e),s=new Date(i[0]),l=new Date(i[i.length-1]),u=s;u=r.Length===t.Constants.DemoWrangleLength.Long?moment(l).subtract(30,"year").toDate():r.Length===t.Constants.DemoWrangleLength.Medium?moment(l).subtract(15,"year").toDate():moment(l).subtract(10,"year").toDate(),u!==s&&(e=t.Utilities.TruncateGrowthColumn(e,u));var c=t.Controls.Chart.ComputeGrowthAndBuildChartData(a,e,n,null,o);return c},n.prototype.AfterCompare=function(){var e=new t.Models.Onboarding,n=this.InvestmentSize();this.CheckResetDropdownString(this.Benchmark,this.BenchmarkItems),this.CheckResetDropdownGuid(this.InvestmentTimeHorizonId,this.InvestmentTimeHorizonIdItems),(null==n||isNaN(Number(n)))&&(this.InvestmentSize(t.Constants.Home.InvestmentSize),$("#InvestmentSize").focus().blur()),e=t.Utilities.LoadFromLocalStorage(t.Constants.Home.Onboarding),e||(e=new t.Models.Onboarding),e.Benchmark=this.Benchmark().Value,e.InvestmentSize=this.InvestmentSize(),e.InvestmentTimeHorizonId=this.InvestmentTimeHorizonId().Value,e.Length=t.Constants.DemoWrangleLength[this.InvestmentTimeHorizonId().Key()],t.Utilities.PersistOnboarding(e)},n}(e.Base);e.HomeBase=n}(e=t.ViewModels||(t.ViewModels={}))}(TW||(TW={}));var TW;!function(TW){var Models;!function(Models){"use strict";var DropdownItem=function(){function DropdownItem(t,e,n,o,r,a,i){this.Value=n,this.Parent=t,this.Clicked=o,this.PreviousKey=null,this.Metadata=i,this.PreviousValue=null,this.Description=a,this.CSS=ko.observable(r),this.Key=ko.observable(e),this.Disabled=ko.observable(!1)}return DropdownItem.prototype.UpdateValue=function(data,event){if(!data.Disabled()){var id=$(event.currentTarget).closest("ul").attr("id"),currentValue=new DropdownItem(null,null,null);eval("currentValue = data.Parent."+id+"();"),null!==currentValue&&(this.PreviousKey=currentValue.Key(),this.PreviousValue=currentValue.Value),eval("data.Parent."+id+"(data);")}},DropdownItem.prototype.ConvertToTag=function(){return new Models.Tag(this.Value,this.Key(),this.Description,this.Metadata)},DropdownItem.prototype.Click=function(){null!==this.Clicked&&this.Clicked(this)},DropdownItem}();Models.DropdownItem=DropdownItem}(Models=TW.Models||(TW.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(e){this.Ids=e,this.Email=null,this.Length=null,this.YearsBack=0,this.UseDates=!1,this.Benchmark=null,this.MVO1Constraint=0,this.DaysBetweenMVOs=0,this.UnificationYears=0,this.EndDate=new Date,this.StartDate=new Date,this.BlendedReturnWeights=null,this.InitialInvestment=t.Constants.MVO.InitialInvestment}return e}();e.MVOLab=n}(e=t.Models||(t.Models={}))}(TW||(TW={}));var __extends=this&&this.__extends||function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),TW;!function(t){var e;!function(e){"use strict";var n=function(e){function n(n,o,r){var a=e.call(this,n,o)||this;return a.IsManual=ko.observable(!0),a.UpperBoundExposureAB=ko.observable(100),a.UpperBoundExposureBA=ko.observable(100),a.LowerBoundExposureAB=ko.observable(100),a.LowerBoundExposureBA=ko.observable(100),a.UpperBoundExposureABSum=ko.observable(0),a.UpperBoundExposureBASum=ko.observable(0),a.LowerBoundExposureABSum=ko.observable(0),a.LowerBoundExposureBASum=ko.observable(0),a.UpperBoundExposureABCount=ko.observable(0),a.UpperBoundExposureBACount=ko.observable(0),a.LowerBoundExposureABCount=ko.observable(0),a.LowerBoundExposureBACount=ko.observable(0),a.Events=ko.observableArray(null),a.EditingEvent=ko.observable(null),a.SupportsTwoExposures=ko.observable(r),a.NewEvent=ko.observable(new t.Models.RangeEvent(a)),a.NoEvents=ko.computed(function(){return a.Backtest.HideResults(),null===a.Events()||0===a.Events().length}),a.Exposure1Label=ko.computed(function(){return a.SupportsTwoExposures()?"A>=B Exposure":"Exposure"}),a.UpperBoundExposure1Label=ko.computed(function(){return a.SupportsTwoExposures()?"Upper Bound Exposure (A>=B)":"Upper Bound Exposure"}),a.LowerBoundExposure1Label=ko.computed(function(){return a.SupportsTwoExposures()?"Lower Bound Exposure (A>=B)":"Lower Bound Exposure"}),t.Controls.Slider.Init(a.UpperBoundExposureAB,t.Constants.Backtest.UpperBoundExposureAB,0,100,["%"]),t.Controls.Slider.Init(a.UpperBoundExposureBA,t.Constants.Backtest.UpperBoundExposureBA,0,100,["%"]),t.Controls.Slider.Init(a.LowerBoundExposureAB,t.Constants.Backtest.LowerBoundExposureAB,0,100,["%"]),t.Controls.Slider.Init(a.LowerBoundExposureBA,t.Constants.Backtest.LowerBoundExposureBA,0,100,["%"]),setTimeout(function(){t.Controls.Slider.ResetLayout(t.Constants.BacktestParameter.UpperBoundExposureAB),t.Controls.Slider.ResetLayout(t.Constants.BacktestParameter.UpperBoundExposureBA),t.Controls.Slider.ResetLayout(t.Constants.BacktestParameter.LowerBoundExposureAB),t.Controls.Slider.ResetLayout(t.Constants.BacktestParameter.LowerBoundExposureBA)},100),a}return __extends(n,e),n.prototype.Execute=function(){var e=this;return null===this.Events()||0===this.Events().length?(t.Utilities.Error("Please enter at least one event."),this.Backtest.Executing(!1),!1):(this.Parameters={},this.Parameters[t.Constants.BacktestParameter.Conditions]=new Array,this.Events().forEach(function(n){return e.Parameters[t.Constants.BacktestParameter.Conditions].push(new t.Models.RangeCondition(n))}),this.Parameters[t.Constants.BacktestParameter.UpperBoundExposureAB]=this.UpperBoundExposureAB(),this.Parameters[t.Constants.BacktestParameter.UpperBoundExposureBA]=this.UpperBoundExposureBA(),this.Parameters[t.Constants.BacktestParameter.LowerBoundExposureAB]=this.LowerBoundExposureAB(),this.Parameters[t.Constants.BacktestParameter.LowerBoundExposureBA]=this.LowerBoundExposureBA(),!0)},n.prototype.ExecuteDone=function(){if(null!==this.Events()){for(var e=0;ea&&(c=[a-2,a-1]),i>a&&(i=a),r.WMA=ko.observable(i),r.PositiveSum=ko.observable(0),r.NegativeSum=ko.observable(0),r.PositiveCount=ko.observable(0),r.NegativeCount=ko.observable(0),r.NegativeExposure=ko.observable(0),r.PositiveExposure=ko.observable(100),r.Periods=ko.observableArray(c),e.prototype.Bind.call(r,r),r.WMA.subscribe(function(t){return r.Clear()}),r.Periods.subscribe(function(t){return r.Clear()}),r.PositiveExposure.subscribe(function(t){return r.Clear()}),r.NegativeExposure.subscribe(function(t){return r.Clear()}),t.Controls.Slider.Init(r.PositiveExposure,"PositiveExposure",0,100,["%"]),t.Controls.Slider.Init(r.NegativeExposure,"NegativeExposure",0,100,["%"]),t.Controls.Slider.Init(r.WMA,"WMA",2,r.Backtest.SourceData().length-1,["WMA: "]),t.Controls.Slider.Init(r.Periods,"ROCs",2,r.Backtest.SourceData().length-1,["ROC 1: ","ROC 2: "]),r}return __extends(n,e),n.prototype.Execute=function(){this.Parameters={},this.Parameters[t.Constants.BacktestParameter.Average]=this.WMA(),this.Parameters[t.Constants.BacktestParameter.Periods]=this.Periods(),this.Parameters[t.Constants.BacktestParameter.PositiveExposure]=this.PositiveExposure(),this.Parameters[t.Constants.BacktestParameter.NegativeExposure]=this.NegativeExposure(),this.ExecuteBacktest()},n.prototype.ExecuteDone=function(){this.PositiveSum(this.Backtest.AccumulationData["Positive Sum"]),this.NegativeSum(this.Backtest.AccumulationData["Negative Sum"]),this.PositiveCount(this.Backtest.AccumulationData["Positive Count"]),this.NegativeCount(this.Backtest.AccumulationData["Negative Count"])},n.prototype.Clear=function(){this.PositiveSum(0),this.NegativeSum(0),this.PositiveCount(0),this.NegativeCount(0),this.Backtest.HideResults()},n}(e.BaseAlgorithm);e.Coppock=n}(e=t.Algorithms||(t.Algorithms={}))}(TW||(TW={}));var __extends=this&&this.__extends||function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),TW;!function(t){var e;!function(e){"use strict";var n=function(e){function n(n,o,r){var a=e.call(this,n,o)||this,i=t.Controls.Dropdown.ConvertToModelArray(r,a);return a.Formula=ko.observable("A > B"),a.OldState=t.Constants.MovingAverageStates.Error,a.IncludeBenchmark=ko.observable(!1),a.IncludeDatasource=ko.observable(!1),a.NewEvent=ko.observable(null),a.Events=ko.observableArray(null),a.EditingEvent=ko.observable(null),a.MovingAverageLines=ko.observableArray(null),a.SmoothingTechniqueItems=ko.observableArray(i),a.SmoothingTechnique=ko.observable(i.length>0?i[0]:null),a.BuildSignalLinesDropdown(),a.NoEvents=ko.computed(function(){return a.Backtest.HideResults(),null===a.Events()||0===a.Events().length}),a.AllowNewEvents=ko.computed(function(){return a.Backtest.HideResults(),null===a.Events()?!0:a.Events().lengthe?t.Constants.MovingAverageStates.Error:1===e?t.Constants.MovingAverageStates.Unary:2===e?t.Constants.MovingAverageStates.Binary:t.Constants.MovingAverageStates.Events}),a.FormulaExplanation=ko.computed(function(){a.Backtest.HideResults();var t=a.MovingAverageLines().length;return 0===t?"Use 'A' for the datasource, and 'B' for the benchmark.":1===t?a.IncludeDatasource()?"Use 'A' for Line A, and 'B' for the datasource.":"Use 'A' for Line A, and 'B' for the benchmark.":"Use 'A' for Line A, and 'B' for Line B."}),e.prototype.Bind.call(a,a),a.BuildNewEvent(),a.SignalLinesChanged(),ko.applyBindings(a.EditingEvent,$("#editEvent")[0]),t.Controls.Switch.Init(a.IncludeBenchmark,"IncludeBenchmark",!1),t.Controls.Switch.Init(a.IncludeDatasource,"IncludeDatasource",!1),a.Formula.subscribe(function(t){return a.Backtest.HideResults()}),a.SingalLines.subscribe(function(t){return a.SignalLinesChanged()}),a.IncludeBenchmark.subscribe(function(t){return a.SignalLinesChanged()}),a.IncludeDatasource.subscribe(function(t){return a.SignalLinesChanged()}),a.SmoothingTechnique.subscribe(function(t){return a.SignalLinesChanged()}),a}return __extends(n,e),n.prototype.Execute=function(){var e=this,n=!0;return this.State()===t.Constants.MovingAverageStates.Error&&(n=!1,t.Utilities.Error("Please select at least one line.")),((this.State()===t.Constants.MovingAverageStates.Unary||this.State()===t.Constants.MovingAverageStates.Binary)&&null===this.Formula()||""===this.Formula())&&(n=!1,t.Utilities.Error("Please enter a formula.")),this.State()===t.Constants.MovingAverageStates.Events&&null===this.Events()&&(n=!1,t.Utilities.Error("Please enter at least one event.")),n?(this.Parameters={},this.Parameters[t.Constants.Chart.Benchmark]=this.IncludeBenchmark(),this.Parameters[t.Constants.BacktestParameter.Formula]=this.Formula(),this.Parameters[t.Constants.Chart.Datasource]=this.IncludeDatasource(),this.Parameters[t.Constants.BacktestParameter.SmoothingTechnique]=this.SmoothingTechnique().Value,this.Parameters[t.Constants.BacktestParameter.Periods]=new Array,this.MovingAverageLines().forEach(function(n){return e.Parameters[t.Constants.BacktestParameter.Periods].push(n.Value())}),this.Parameters[t.Constants.BacktestParameter.Conditions]=new Array,this.State()===t.Constants.MovingAverageStates.Events&&this.Events().forEach(function(n){return e.Parameters[t.Constants.BacktestParameter.Conditions].push(new t.Models.MovingAverageCondition(n))}),void this.ExecuteBacktest()):(this.Backtest.Executing(!1),void this.Backtest.HideResults())},n.prototype.ExecuteDone=function(){if(null!==this.Events())for(var t=0;ta;a++)r.push(new t.Models.MovingAverageLine(a,n-o+a,this.FormatSignalLineLabel(a),function(t){return e.LineChanged(t)}));this.Events(null),this.MovingAverageLines(r),this.BuildNewEvent(),this.State()===t.Constants.MovingAverageStates.Unary?this.OldState!==t.Constants.MovingAverageStates.Unary&&this.Formula("A > .5"):this.State()===t.Constants.MovingAverageStates.Binary?this.OldState!==t.Constants.MovingAverageStates.Binary&&this.Formula("A > B"):this.Formula(null),this.OldState=this.State()},n.prototype.BuildNewEvent=function(){var t=this.BuildEvent(0);this.NewEvent(t)},n.prototype.BuildEvent=function(e,n){var o=this.GetNumberOfDropdowns(),r=new t.Models.MovingAverageEvent(this);r.Name(n?"Event "+n.toString():this.NoEvents()?"Event 1":"Event "+(this.Events().length+1).toString());for(var a=e;o>a;a++)this.BuildLine(r,a);for(var i=0;e>i;i++)this.BuildLine(r,i);return r},n.prototype.BuildLine=function(e,n){var o=this,r=new t.Models.MovingAverageEventLine(e,n,function(t,e){ return o.EventLineDropdownChanged(t,e)});r.BlockEvents=!0,r.SelectionItems(this.BuildEventLineDropdown(r)),r.Selection(r.SelectionItems()[n]),r.BlockEvents=!1,e.Children.push(r)},n.prototype.BuildEventLineDropdown=function(e){var n=this.MovingAverageLines(),o=new Array;return this.IncludeDatasource()&&o.push(new t.Models.DropdownItem(e,t.Constants.Chart.Datasource,t.Constants.Chart.Datasource)),n.forEach(function(n){return o.push(new t.Models.DropdownItem(e,n.Label[0].replace(": "+t.Constants.Controls.SliderFormatValuePlaceholder+" periods",""),n.PartialId))}),this.IncludeBenchmark()&&o.push(new t.Models.DropdownItem(e,t.Constants.Chart.Benchmark,t.Constants.Chart.Benchmark)),o},n.prototype.EventLineDropdownChanged=function(t,e){this.Backtest.HideResults();for(var n=this.NewEvent().Children(),o=0;o14?14:a-2),e.prototype.BindEvents.call(r,r),r.Period.subscribe(function(t){return r.Backtest.HideResults()}),t.Controls.Slider.Init(r.Period,"Period",2,a,["Period: "]),r}return __extends(n,e),n.prototype.Execute=function(){var n=e.prototype.Execute.call(this);return n?(this.Parameters[t.Constants.BacktestParameter.Periods]=this.Period(),this.ExecuteBacktest(),!0):!1},n}(e.BaseSI);e.RSI=n}(e=t.Algorithms||(t.Algorithms={}))}(TW||(TW={}));var __extends=this&&this.__extends||function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),TW;!function(t){var e;!function(e){"use strict";var n=function(e){function n(n,o){var r=e.call(this,n,o)||this;return r.Period=ko.observable(2),r.SigmaConditions=ko.observableArray(null),r.BuildSigmaBandsDropdown(),r.UpdateSigmas(),e.prototype.Bind.call(r,r),r.Period.subscribe(function(t){return r.Backtest.HideResults()}),r.Range.subscribe(function(t){return r.RangeChanged(t.Value)}),r.SigmaConditions.subscribe(function(t){return r.Backtest.HideResults()}),t.Controls.Slider.Init(r.Period,"Period",2,r.Backtest.SourceData().length-1,["Rolling Average Period: "]),r}return __extends(n,e),n.prototype.Execute=function(){var e=this;this.Parameters={},this.Parameters[t.Constants.BacktestParameter.Periods]=this.Period(),this.Parameters[t.Constants.BacktestParameter.Range]=this.Range().Value,this.Parameters[t.Constants.BacktestParameter.Conditions]=new Array,this.SigmaConditions().forEach(function(n){return e.Parameters[t.Constants.BacktestParameter.Conditions].push(n.Percent())}),this.ExecuteBacktest()},n.prototype.ExecuteDone=function(){for(var t=0;t13?13:a-2),r.Period1=ko.observable(a>25?25:a-2),r.Period2=ko.observable(a>13?13:a-2),e.prototype.Bind.call(r,r),ko.applyBindings(r.EditingEvent,$("#editEvent")[0]),r.TSIEMA.subscribe(function(){return r.Backtest.HideResults()}),r.Period1.subscribe(function(){return r.Backtest.HideResults()}),r.Period2.subscribe(function(){return r.Backtest.HideResults()}),r.Range.subscribe(function(t){return r.RangeChanged(t.Value)}),t.Controls.Slider.Init(r.TSIEMA,t.Constants.BacktestParameter.TSIEMA,2,a,["TSI EMA: "]),t.Controls.Slider.Init(r.Period1,t.Constants.BacktestParameter.Period1,2,a,["Period 1: "]),t.Controls.Slider.Init(r.Period2,t.Constants.BacktestParameter.Period2,2,a,["Period 2: "]),setTimeout(function(){t.Controls.Slider.ResetLayout(t.Constants.BacktestParameter.TSIEMA)},100),r}return __extends(n,e),n.prototype.Execute=function(){var n=e.prototype.Execute.call(this);return n?(this.Parameters[t.Constants.BacktestParameter.End]=this.Period2(),this.Parameters[t.Constants.BacktestParameter.Start]=this.Period1(),this.Parameters[t.Constants.BacktestParameter.TSIEMA]=this.TSIEMA(),this.ExecuteBacktest(),!0):!1},n.prototype.BuildRangeDropdown=function(){var e=new Array;e.push(new t.Models.DropdownItem(this,"Manual",0)),e.push(new t.Models.DropdownItem(this,"5 Bands",5)),e.push(new t.Models.DropdownItem(this,"10 Bands",10)),e.push(new t.Models.DropdownItem(this,"20 Bands",20)),this.Range=ko.observable(e[0]),this.RangeItems=ko.observableArray(e)},n.prototype.RangeChanged=function(e){this.Events(null);for(var n=1,o=new Array,r=0;rr;r+=a){var i=new t.Models.RangeEvent(this);i.Start(r),i.End(r+a-n),o.push(i)}o[o.length-1].End(100),this.Events(o),this.IsManual(!1)}},n}(e.BaseSI);e.TSI=n}(e=t.Algorithms||(t.Algorithms={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function t(){}return t.Precision=10,t.BullishCAP=.5,t.SessionTimeoutMinutes=4,t.ChartXAzisLableRotation=-45,t}();e.System=n;var o=function(){function t(){}return t.Date="Date",t.Backtest="Backtest",t.Benchmark="Benchmark",t.BuyAndHold="BuyAndHold",t.Datasource="Datasource",t.TradeWrangler="TradeWrangler",t}();e.Chart=o;var r=function(){function t(){}return t.TradingDaysPerYear=252,t.CalendarDaysInYear=365.2425,t}();e.Dates=r;var a=function(){function e(){}return e.Increments=10,e.DemoLongYears=18,e.YearsBackMax=100,e.IncrementsMax=100,e.UnificationYears=3,e.DaysBetweenMVOs=64,e.InitialInvestment=100,e.UnificationYearsMax=10,e.DaysBetweenMVOsMax=Math.floor(5*t.Constants.Dates.CalendarDaysInYear),e}();e.MVO=a;var i=function(){function t(){}return t.EmptyGuid="00000000-0000-0000-0000-000000000000",t.GuidRegex=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,t.EmailRegex=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,t}();e.Text=i;var s=function(){function t(){}return t.TagUrl="/api/tag/",t.ControlUrl="/api/control/",t.GraphDemoUrl="/graph/demo/",t.MVOLabUrl="/api/mvo/execute",t.ImageUploadUrl="upload/image/",t.GraphSignalUrl="/graph/signal/",t.SignalLabUrl="/api/signal/lab/",t.WrangleEFUrl="/api/dashboard/ef",t.GraphWrangleUrl="/graph/wrangle/",t.JobRunsUrl="/api/admin/job-runs/",t.MVOExportUrl="/api/mvo/pre-export",t.EfficientFrontierUrl="/api/mvo/ef",t.WrangleDemoUrl="/api/wrangle/demo",t.AdminSearchUrl="/api/admin/search",t.LagResetUrl="/api/admin/lag-reset",t.SendTestUrl="/api/admin/send-email",t.HomeCompareUrl="/api/home/compare/",t.SignalChartUrl="/api/signal/chart/",t.ReferSignalUrl="/api/signal/refer/",t.SignalResetUrl="/api/signal/reset/",t.JobTasksUrl="/api/admin/job-tasks/",t.NewsletterUrl="/api/home/newsletter",t.SignalSearchUrl="/api/signal/search",t.SignalFacetsUrl="/api/signal/facets",t.JobDeleteUrl="/api/admin/job-delete/",t.ExportSignalUrl="/api/signal/export/",t.SignalDeleteUrl="/api/signal/delete/",t.GraphBenchmarkUrl="/graph/benchmark/",t.CacheValueUrl="/api/admin/cache-value",t.WrangleChartUrl="/api/dashboard/chart",t.GraphSignalLabUrl="/graph/signal-lab/",t.LagRecordsUrl="/api/admin/lag-records",t.PasswordEditUrl="/api/account/password",t.LearnMoreMetricsUrl="/api/home/metrics/",t.LearnMoreWeightsUrl="/api/home/weights/",t.WranglePeriodUrl="/api/dashboard/period",t.ApprovalSignalUrl="/api/signal/approval",t.CacheDeleteUrl="/api/admin/cache-delete",t.OnDemandJobUrl="/api/admin/on-demand-job",t.ControlMetricsUrl="/api/control/metrics/",t.SignalSimulateUrl="/api/signal/simulate/",t.WrangleDemoNowUrl="/api/wrangle/demo-now",t.RenderHistoryUrl="/api/dashboard/history/",t.EditProfileUrl="/api/account/profile/edit",t.BenchmarksUrl="/api/onboarding/benchmarks",t.FinancialsEditUrl="/api/account/financials",t.VerifyEmailUrl="/api/onboarding/verify-email",t.MVOLabExecuteLaterUrl="/api/mvo/execute-later",t.DashboardSimulateUrl="/api/dashboard/simulate",t.CanExportWrangleUrl="/api/dashboard/can-export",t.ApprovalSearchUrl="/api/signal/approval/search",t.EditProfileImageUrl="/api/account/profile/image",t.CacheExpirationUrl="/api/admin/cache-expiration",t.SignalSubscriptionsUrl="/api/signal/subscription",t.MVOExecuteDatasource="/api/mvo/execute-datasource",t.WrangleDemoExportUrl="/api/dashboard/wrangle/demo/",t.EfficientFrontierExportUrl="/api/mvo/ef-pre-export",t.ValidatePasswordUrl="/api/onboarding/verify-password",t.ForwardSimlulationUrl="/api/home/forward-simulation/",t.ValidateSignalExportUrl="/api/signal/validate/export/",t.PreExportUserDataUrl="/api/dashboard/pre-export-user-data/",t.ExportUnstretchedSignalUrl="/api/signal/export-unstretched/",t.ExportUserWrangleHistoryUrl="/api/dashboard/pre-export-user-history",t.ValidateSignalExportSummaryUrl="/api/signal/validate/export-summary/",t.ExportAdminWrangleHistoryUrl="/api/dashboard/pre-export-admin-history",t}();e.API=s;var l=function(){function t(){}return t.SignalsUrl="/signal",t.DashboardUrl="/dashboard",t.OnboardingUrl="/onboarding",t.UpgradeUrl="/account/upgrade",t.MVOLabExportUrl="/mvo/export",t.LearnMoreUrl="/home/learn-more",t.DemoSimulation="/home/simulate",t.SignalLabEditUrl="/signal/edit/",t.SignalLabSaveUrl="/signal/save/",t.SignalDetailsUrl="/signal/details/",t.DashboardEFUrl="/dashboard/export-ef",t.SignalLabCatalogUrl="/signal/catalog",t.SignalLabDetailsUrl="/signal/lab-details/",t.DashboardDownloadUrl="/dashboard/download",t.OnboardingSimulation="/onboarding/simulation",t.SignalApprovalExportUrl="/signal/approve-export",t.SignalLabNormalizationExportUrl="/signal/normalization/export",t}();e.Views=l;var u=function(){function t(){}return t.End="End",t.Start="Start",t.Range="Range",t.TSIEMA="TSIEMA",t.Average="Average",t.Formula="Formula",t.Periods="Periods",t.Period1="Period1",t.Period2="Period2",t.Conditions="Conditions",t.PositiveExposure="PositiveExposure",t.NegativeExposure="NegativeExposure",t.SmoothingTechnique="SmoothingTechnique",t.UpperBoundExposureAB="UpperBoundExposureAB",t.UpperBoundExposureBA="UpperBoundExposureBA",t.LowerBoundExposureAB="LowerBoundExposureAB",t.LowerBoundExposureBA="LowerBoundExposureBA",t}();e.BacktestParameter=u;var c=function(){function t(){}return t.TSIRangeCount=10,t.PeriodSliderCount=6,t.UpperBoundExposureAB="UpperBoundExposureAB",t.UpperBoundExposureBA="UpperBoundExposureBA",t.LowerBoundExposureAB="LowerBoundExposureAB",t.LowerBoundExposureBA="LowerBoundExposureBA",t.UpperBoundExposureBASum="Upper Bound Exposure B0&&r(o,t)}),i},n.GetHistoricalComparisonJSON=function(e,o,r,a,i){i.forEach(function(e){return e.Date=t.Utilities.FixDate(e.Date,!1)});var s={type:"serial",categoryField:t.Constants.Chart.Date,columnSpacing:10,autoMargins:!0,marginBottom:0,marginLeft:0,marginRight:20,marginTop:10,plotAreaBorderColor:"#c7c7c7",colors:t.Constants.Controls.ChartColors,sequencedAnimation:!1,startEffect:"easeInSine",borderColor:"#c7c7c7",color:"#4A4A4A",fontFamily:"Roboto",fontSize:14,categoryAxis:{gridPosition:"start",axisColor:"#9B9B9B",axisThickness:2,gridAlpha:0,gridColor:"#c7c7c7",gridCount:0,gridThickness:0,minorGridAlpha:0,tickLength:0,titleFontSize:15,labelRotation:t.Constants.System.ChartXAzisLableRotation,logarithmic:!1},chartCursor:{enabled:!0,categoryBalloonEnabled:!1,cursorColor:"#c7c7c7",tabIndex:1},trendLines:[],graphs:[{balloonFunction:n.GetBalloonTextMoney,id:o,lineThickness:3,title:o,valueField:e,showHandOnHover:!0},{balloonFunction:n.GetBalloonTextMoney,id:a,lineThickness:3,title:a,valueField:r,showHandOnHover:!0}],chartScrollbar:{backgroundColor:"#e1e1e1",selectedBackgroundColor:"#f7f7f7",color:"#c7c7c7",enabled:!1,scrollbarHeight:30,dragIcon:"dragIconRoundSmall",dragIconHeight:20,dragIconWidth:20,oppositeAxis:!1},guides:[],zoomOutText:"",valueAxes:[{id:"ValueAxis-1",axisColor:"#979797",gridColor:"#979797",tickLength:0,title:"Dollar Value",logarithmic:!1,fixedPosition:!1,labelFunction:n.GetLabelTextMoney}],allLabels:[],balloon:{color:"#333",fillAlpha:1,fontSize:12,horizontalPadding:10,verticalPadding:5},titles:[],dataProvider:i};return s},n.BuildComparisonJSON=function(n,o){var r={type:"serial",categoryField:t.Constants.Chart.Date,columnSpacing:10,autoMargins:!0,plotAreaBorderColor:"#6CAEF0",colors:t.Constants.Controls.ChartColors,sequencedAnimation:!1,startEffect:"easeInSine",borderColor:"#6CAEF0",color:"#C7C7C7",fontFamily:"Roboto",fontSize:15,categoryAxis:{gridPosition:"start",startOnAxis:!0,axisColor:"#FFAC00",axisThickness:2,gridAlpha:0,gridColor:"#6CAEF0",gridCount:0,gridThickness:0,minorGridAlpha:0,tickLength:0,titleFontSize:0,labelRotation:t.Constants.System.ChartXAzisLableRotation},chartCursor:{enabled:!0,categoryBalloonEnabled:!1,cursorColor:"#c7c7c7"},trendLines:[],graphs:[{balloonFunction:e.Chart.GetBalloonTextMoney,fillAlphas:1,id:t.Constants.Chart.TradeWrangler,lineAlpha:0,title:t.Constants.Chart.TradeWrangler,valueField:t.Constants.Chart.Backtest,showHandOnHover:!0},{balloonFunction:e.Chart.GetBalloonTextMoney,fillAlphas:1,id:n,lineAlpha:0,title:n,valueField:t.Constants.Chart.BuyAndHold,showHandOnHover:!0}],guides:[],zoomOutText:"",valueAxes:[{id:"ValueAxis-1",axisColor:"#FFAC00",axisThickness:2,gridColor:"#6CAEF0",minorTickLength:2,tickLength:0,titleFontSize:0,title:"Dollar Value",labelFunction:e.Chart.GetLabelTextMoney}],allLabels:[],balloon:{color:"#333",fillAlpha:1,fontSize:12,horizontalPadding:10,verticalPadding:5,fixedPosition:!1},titles:[],dataProvider:o};return r},n.ConfigureCrisisYears=function(e,o,r){var a=Object.keys(e),i=new Array,s=new Array,l=t.Utilities.Clone(r.CrisisYears);return a.forEach(function(a){var s=a===t.Constants.Chart.TradeWrangler?a:r.Benchmarks.filter(function(t){return t.Id===a})[0].Name,u=a===t.Constants.Chart.TradeWrangler&&null!=o?o:s;i.push(n.BuildStressTestGraphItem(a,u)),l.forEach(function(n){var o=moment(n.EndDate).toDate(),i=moment(n.StartDate).toDate(),s=t.Utilities.TruncateGrowthColumn(e[a],i,o);s=t.Utilities.ComputeGrowthColumn(s,r.InitialInvestment);var l=Object.keys(s),u=s[l[0]],c=s[l[l.length-1]];n[a]=t.Utilities.ComputePeriodReturn(c,u)})}),l.forEach(function(e){return s.push(new t.Models.CrisisYear(e,a))}),new t.Models.BackwardStressTestInfo(s,i)},n.BuildStressTestGraphItem=function(t,n){return{fillAlphas:1,id:t,fixedColumnWidth:20,balloonFunction:e.Chart.GetBalloonTextPercentTitleOnly,balloon:{fixedPosition:!1,offsetY:100},title:n,type:"column",valueField:t}},n.BuildStressTestJson=function(e){var n={type:"serial",categoryField:"Event",columnSpacing:10,autoMargins:!0,marginBottom:0,marginLeft:0,marginRight:20,marginTop:10,plotAreaBorderColor:"#c7c7c7",colors:t.Constants.Controls.ChartColors,sequencedAnimation:!1,startEffect:"easeInSine",borderColor:"#c7c7c7",color:"#9b9b9b",fontFamily:"Roboto",fontWeight:"500",fontSize:14,categoryAxis:{gridPosition:"start",axisColor:"#9B9B9B",gridThickness:0,tickLength:0,labelRotation:t.Constants.System.ChartXAzisLableRotation},trendLines:[],graphs:e.Graphs,guides:[],valueAxes:[{id:"AxisReturn",axisColor:"#979797",gridColor:"#979797",tickLength:0,title:"Return",titleFontSize:15}],allLabels:[],balloon:{fixedPosition:!1},legend:{enabled:!1},titles:[],dataProvider:e.CrisisDates};return n},n.RenderProbabilityOfSuccess=function(t){var n=100*t.SuccessProbability,o={type:"pie",balloonText:"",innerRadius:"90%",labelText:"",minRadius:0,pullOutRadius:0,startRadius:"0%",baseColor:"",colors:["#eaeaea","#6caef0"],labelsEnabled:!1,marginBottom:0,marginTop:0,outlineThickness:0,pullOutDuration:0,sequencedAnimation:!1,startDuration:0,startEffect:"elastic",titleField:"category",valueField:"column-1",classNamePrefix:"donut",fontSize:0,handDrawScatter:0,handDrawThickness:0,allLabels:[],balloon:{},titles:[],dataProvider:[{category:"not success","column-1":100-n},{category:"success","column-1":n}]};e.Chart.RenderChartFromJSON("probabilityOfSuccessPercentageChart",o)},n.GetBalloonText=function(t,e){return n.GetBalloonTextOrPercent(t,e,!1,!1)},n.GetBalloonTextPercentTitleOnly=function(t,e){return n.GetBalloonTextOrPercent(t,e,!0,!0)},n.GetBalloonTextPercent=function(t,e){return n.GetBalloonTextOrPercent(t,e,!0,!1)},n.GetBalloonTextAlternate=function(t,e){return n.GetBalloonTextAlternateOrMoney(t,e,!1)},n.GetBalloonTextMoney=function(t,e){return n.GetBalloonTextAlternateOrMoney(t,e,!0)},n.GetLabelTextMoney=function(e){return t.Utilities.FormatCurrency(Number(e),2)},n.ComputeGrowthAndBuildChartData=function(e,o,r,a,i){var s=new Array,l=new Array,u=new t.Models.WrangleHomeComparison,c=Object.keys(o),d=new Date(c[0]),h=new Date(c[c.length-1]),m=Object.keys(r),p=new Date(m[0]),f=new Date(m[m.length-1]),v=[Number(d),Number(p)];i&&v.push(Number(i.Start));var g=[Number(h),Number(f)];i&&g.push(Number(i.End));var C=new Date(Math.min.apply(Math,g)),b=new Date(Math.max.apply(Math,v));o=t.Utilities.TruncateGrowthColumn(o,b,C),r=t.Utilities.TruncateGrowthColumn(r,b,C);var y=t.Utilities.ComputeGrowthColumn(o,e),T=Object.keys(y),S=y[T[T.length-1]],I=t.Utilities.ComputeGrowthColumn(r,e),k=Object.keys(I),D=I[k[k.length-1]],W=t.Utilities.ComputeAnnualizedReturn(y),x=t.Utilities.ComputeAnnualizedReturn(I);a=n.DetermineChartDensity(T,a);for(var P=0;P20*t.Constants.Dates.CalendarDaysInYear?n=t.Constants.Frequency.Monthly:e.length>5*t.Constants.Dates.CalendarDaysInYear&&(n=t.Constants.Frequency.Weekly)),n},n}();e.Chart=n}(e=t.Controls||(t.Controls={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(){}return t.Open=function(t){$("#"+t).collapse("show")},t.Close=function(t){$("#"+t).collapse("hide")},t.Up=function(t){$("#"+t).slideUp()},t.Down=function(t){$("#"+t).slideDown()},t}();t.Collapse=e}(e=t.Controls||(t.Controls={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function n(){}return n.BuildModel=function(e){return new t.Models.ForwardSimulation(e.Years().Value,e.Simulations().Value)},n.Render=function(t){var o="",r={type:"serial",categoryField:"Year",columnSpacing:0,autoMarginOffset:0,marginBottom:0,marginLeft:20,marginRight:20,marginTop:10,plotAreaBorderColor:"#C7C7C7",colors:["#f89259","#f89259","#811e54","#811e54","#29364b","#29364b","#6caef0"],sequencedAnimation:!1,startEffect:"bounce",borderColor:"#C7C7C7",color:"#4A4A4A",fontFamily:"Roboto",fontSize:14,fontWeight:500,categoryAxis:{gridPosition:"start",startOnAxis:!0,axisColor:"#9B9B9B",axisThickness:2,gridAlpha:0,gridCount:0,gridThickness:0,minHorizontalGap:0,minorTickLength:1,showFirstLabel:!0,showLastLabel:!0,tickLength:0,title:"Time"},trendLines:[],graphs:[{balloonFunction:e.Chart.GetBalloonTextAlternate,fillAlphas:1,fillToGraph:"Bottom95",id:"Top95",title:"Top95",lineThickness:2,valueField:"Top95"},{balloonFunction:e.Chart.GetBalloonTextAlternate,fillToGraph:"Top95",id:"Bottom95",lineThickness:2,title:"Bottom95",valueField:"Bottom95"},{balloonFunction:e.Chart.GetBalloonTextAlternate,lineThickness:2,fillToGraph:"Bottom75",id:"Top75",fillAlphas:1,title:"Top75",valueField:"Top75"},{balloonFunction:e.Chart.GetBalloonTextAlternate,fillToGraph:"Top95",id:"Bottom75",fillAlphas:1,lineThickness:2,title:"Bottom75",valueField:"Bottom75"},{balloonFunction:e.Chart.GetBalloonTextAlternate,id:"Middle",title:"Middle",lineThickness:2,valueField:"Middle"}],guides:[],valueAxes:[{axisTitleOffset:0,id:"ValueAxis-1",zeroGridAlpha:-2,axisColor:"#9B9B9B",axisThickness:2,gridColor:"#C7C7C7",minHorizontalGap:73,minorGridAlpha:0,tickLength:0,title:"Growth",position:"bottom"}],allLabels:[],balloon:{fillAlpha:1},titles:[],dataProvider:t.Trials};return e.Chart.RenderChartFromJSON("confidenceSpreadChart",r),t.Trials.forEach(function(t){o+=""+t.Year+"
",o+=n.RenderCoordinate(t)}),o},n.ForwardSimulation=function(e,n){for(var o=new Array,r=new Array,a=1;a<=t.Constants.ForwardSimulation.YearMax;a++){var i=(a*t.Constants.ForwardSimulation.YearMultiplier).toString();o.push(new t.Models.DropdownItem(n,i,i))}for(var a=1;a<=t.Constants.ForwardSimulation.SimulationMax;a++){var s=(a*t.Constants.ForwardSimulation.SimulationMultiplier).toString(); r.push(new t.Models.DropdownItem(n,s,s))}var l=o[t.Utilities.DivideIntegers(t.Constants.ForwardSimulation.YearMax,2)+1];null!=e&&null!=e.Years&&(l=new t.Models.DropdownItem(n,e.Years.toString(),e.Years.toString()));var u=r[t.Utilities.DivideIntegers(t.Constants.ForwardSimulation.SimulationMax,2)-1];null!=e&&null!=e.Simulations&&(u=new t.Models.DropdownItem(n,e.Simulations.toString(),e.Simulations.toString())),n.Years=ko.observable(l),n.YearsItems=ko.observableArray(o),n.Simulations=ko.observable(u),n.SimulationsItems=ko.observableArray(r),n.YearsSimulationsHTML=ko.computed(function(){return"Years: "+n.Years().Key()+"
Simulations: "+n.Simulations().Key()}),n.Enabled=ko.computed(function(){return n.Years().Value>0&&n.Simulations().Value>0})},n.ConfigureSuccessProbability=function(e){t.Utilities.CheckExport(e),e.BenchmarkTitle=ko.observable("Ending "+e.BenchmarkName()+" Assets"),e.TWTitle=ko.computed(function(){return(null==e.Name||""===e.Name())&&e.Name(t.Constants.Chart.TradeWrangler),"Ending "+e.Name()+" Assets"}),e.WrangleTop20Text=ko.computed(function(){return t.Utilities.FormatCurrency(e.WrangleTop20Value())}),e.WrangleAverageText=ko.computed(function(){return t.Utilities.FormatCurrency(e.WrangleAverageValue())}),e.BenchmarkTop20Text=ko.computed(function(){return t.Utilities.FormatCurrency(e.BenchmarkTop20Value())}),e.WrangleBottom20Text=ko.computed(function(){return t.Utilities.FormatCurrency(e.WrangleBottom20Value())}),e.BenchmarkAverageText=ko.computed(function(){return t.Utilities.FormatCurrency(e.BenchmarkAverageValue())}),e.BenchmarkBottom20Text=ko.computed(function(){return t.Utilities.FormatCurrency(e.BenchmarkBottom20Value())}),e.SuccessProbabilityText=ko.computed(function(){return t.Utilities.FormatPercent(e.SuccessProbabilityValue(),0)})},n.RenderCoordinate=function(e){var n="";return n+=e.Bottom100.toFixed(t.Constants.System.Precision)+", ",n+=e.Bottom95.toFixed(t.Constants.System.Precision)+", ",n+=e.Bottom75.toFixed(t.Constants.System.Precision)+", ",n+=e.Bottom55.toFixed(t.Constants.System.Precision)+", ",n+=e.Average.toFixed(t.Constants.System.Precision)+", ",n+=e.Median.toFixed(t.Constants.System.Precision)+", ",n+=e.Top55.toFixed(t.Constants.System.Precision)+", ",n+=e.Top75.toFixed(t.Constants.System.Precision)+", ",n+=e.Top95.toFixed(t.Constants.System.Precision)+", ",n+=e.Top100.toFixed(t.Constants.System.Precision),n+="

"},n}();e.ConfidenceSpread=n}(e=t.Controls||(t.Controls={}))}(TW||(TW={}));var TW;!function(TW){var Controls;!function(Controls){"use strict";var DatePicker=function(){function DatePicker(){}return DatePicker.InitDatePicker=function(t,e,n,o,r){var a=$("#"+n);a.datepicker("remove"),o||(o=new Date(1900,1,1,0,0,0,0)),r||(r=new Date),e=TW.Utilities.ToUTCDate(e),r=TW.Utilities.ToUTCDate(r),o=TW.Utilities.ToUTCDate(o),$.fn.datepicker.defaults.format="mm/dd/yyyy",$("#"+n).datepicker({clearBtn:!1,autoclose:!0,endDate:r,startDate:o,todayHighlight:!0});var i=TW.Utilities.ToShortDateString(e,!0);t(i),a.prop("prevDate",i),a.datepicker("update",i),a.datepicker().on("changeDate",function(e){var n=e.date;if(null!==n){var o=TW.Utilities.ToShortDateString(n,!0);a.prop("prevDate",o),t(o)}})},DatePicker.ShowDatePicker=function(t){$("#"+t).datepicker("show")},DatePicker.FixInvalidDate=function(elementId){var picker=$("#"+elementId),date=picker.datepicker("getDate");if(null===date){var prevDate=picker.prop("prevDate");eval("model."+elementId+"('"+prevDate+"');"),picker.datepicker("update",prevDate)}},DatePicker.Enable=function(t,e){$("[id^='"+t+"']").prop("disabled",!e),e||$(".datepicker.datepicker-dropdown.dropdown-menu").hide()},DatePicker}();Controls.DatePicker=DatePicker}(Controls=TW.Controls||(TW.Controls={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function n(){}return n.LoadFromTag=function(e,o,r,a,i,s,l,u){void 0===u&&(u=!0);var c=t.Utilities.DoAjax(t.Constants.API.TagUrl+"dropdown/"+r,null);return c.fail(function(e){t.Utilities.Error(e)}).done(function(n){var o=null,r=new Array;n.forEach(function(n){var a=new t.Models.DropdownItem(e,n.Name,n.Id,l,null,n.Description,n.Metadata);r.push(a),s&&s===n.Id&&(o=a)}),i(r),n.length>0&&u&&a(null===o?r[0]:o)}),n.BindValidation(a,o),t.Utilities.PleaseWait(o+"_loading",c),c},n.BindValidation=function(t,e,n){var o=$("#"+e+"_valid");n&&o.val(n),t.subscribe(function(t){o.val(t.Value),o.blur()})},n.YesNo=function(e,n){var o=new Array;o.push(new t.Models.DropdownItem(e,"Yes",!0)),o.push(new t.Models.DropdownItem(e,"No",!1));var r=ko.observableArray(o),a=ko.observable(n?o[0]:o[1]);return new t.Models.YesNoDropDown(a,r)},n.ConvertToTag=function(e){return new t.Models.Tag(e.Value,e.Key(),e.Description,e.Metadata)},n.ConvertFromTag=function(e,n){return e?new t.Models.DropdownItem(n,e.Name,e.Id,null,null,e.Description,e.Metadata):null},n.ConvertFromDataSource=function(e,n){return e?new t.Models.DropdownItem(n,e.Name,e.Id,null,null,e.Description,e.Metadata):null},n.ConvertFromDataSourceArray=function(t,n){var o=new Array;return t.forEach(function(t){o.push(e.Dropdown.ConvertFromDataSource(t,n))}),o},n.ConvertFromTagArray=function(t,n){var o=new Array;return t.forEach(function(t){o.push(e.Dropdown.ConvertFromTag(t,n))}),o},n.ConvertToModelArray=function(t,n){var o=new Array;return t.forEach(function(t){o.push(e.Dropdown.ConvertToModel(t,n))}),o},n.ConvertToModel=function(e,n){var o,r,a,i;return"undefined"!=typeof e.Key&&null!==e.Key?o=e.Key:e.Name&&(o=e.Name),"undefined"!=typeof e.Value&&null!==e.Value?r=e.Value:e.Id&&(r=e.Id),"undefined"!=typeof e.Description&&null!==e.Description&&(i=e.Description),"undefined"!=typeof e.Metdata&&null!==e.Metdata&&(a=e.Metdata),new t.Models.DropdownItem(n,o,r,null,null,i,a)},n}();e.Dropdown=n}(e=t.Controls||(t.Controls={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function n(){}return n.Execute=function(o,r){o.Weights(null),$("#efficient-frontier-chart").hide();var a=t.Utilities.DoAjax(r,null);a.fail(function(e){t.Utilities.Error(e)}).done(function(r){o.CurrentEfficientFrontier=r;for(var a=new Array,i=0;i"}e.Weights(o);break}},n.Export=function(){},n.FormatDataPoint=function(e,n,o){var r="("+e.VarianceAxisX[n].toFixed(t.Constants.System.Precision)+", "+e.ReturnAxisY[n].toFixed(t.Constants.System.Precision)+")";return o&&""!==o?o+": "+r:r},n}();e.EfficientFrontier=n}(e=t.Controls||(t.Controls={}))}(TW||(TW={}));var __extends=this&&this.__extends||function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),TW;!function(TW){var Controls;!function(Controls){"use strict";var ImageUploader=function(_super){function ImageUploader(model){var _this=_super.call(this,model.BoundMember)||this;_this.Directory=model.Directory,_this.Parent=eval(model.Parent),_this.Container=model.Container,_this.Callback=eval(model.Callback);var control=$("#"+model.BoundMember);return control.change(function(t){_this.Upload(t)}),_this}return __extends(ImageUploader,_super),ImageUploader.prototype.Upload=function(t){var e=this,n=$.Deferred(),o=t.target.files,r=this.GetImagePreviewId();if($(r).hide(),TW.Utilities.PleaseWait(this.ElementId,n.promise()),o&&o.length>0){var a=o[0].name,i=new FileReader;i.onloadend=function(t){var o=TW.Utilities.ConvertFileToBlob(i,a),s=new TW.Models.File(null,a,i.result.toString(),o.type),l=TW.Utilities.DoAjax(TW.Constants.API.ControlUrl+e.BuildUploadUrl(),s);l.done(function(t){var n=new TW.Models.File(t.Id,t.Name,null,t.ContentType,t.Url);e.Callback&&(e.Parent?e.Callback.apply(e.Parent,[n]):e.Callback(n))}),l.fail(function(t){TW.Utilities.Error(t)}),l.always(function(t){$(r).show(),n.resolve()})},i.readAsDataURL(o[0])}else $(r).show(),n.resolve()},ImageUploader.prototype.BuildUploadUrl=function(){return TW.Constants.API.ImageUploadUrl+encodeURIComponent(this.Container)+"/"+encodeURIComponent(this.Directory)},ImageUploader.prototype.GetImagePreviewId=function(){return"#"+this.ElementId+"_preview"},ImageUploader}(TW.ViewModels.Base);Controls.ImageUploader=ImageUploader}(Controls=TW.Controls||(TW.Controls={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function n(){}return n.AreYouSure=function(e,o,r,a){var i=$("#"+e)[0],s=new t.Models.AreYouSure(e,o,r,a),l=ko.dataFor(i);l&&ko.cleanNode(i),ko.applyBindings(s,i),n.Show(e)},n.Show=function(t,e,n,o,r,a){$("#"+t).modal("show").on("show.bs.modal",function(){e&&e()}).on("shown.bs.modal",function(){n&&n()}).on("hide.bs.modal",function(){o&&o()}).on("hidden.bs.modal",function(){r&&r()}).on("loaded.bs.modal",function(){a&&a()})},n.Hide=function(t,e){$("#"+t).modal("hide").on("hidden.bs.modal",function(){e&&e()})},n.ShowTimeDelayedPopup=function(t,n,o){var r=1e3*o;n===!1&&setTimeout(function(){e.Modal.Show(t)},r)},n}();e.Modal=n}(e=t.Controls||(t.Controls={}))}(TW||(TW={}));var TW;!function(TW){var Controls;!function(Controls){"use strict";var Radio=function(){function Radio(){}return Radio.LoadFromTag=function(parent,elementId,parentId,model,modelItems,valueId,autoSelect){void 0===autoSelect&&(autoSelect=!0);var promise=TW.Utilities.DoAjax(TW.Constants.API.TagUrl+"dropdown/"+parentId,null);return promise.fail(function(t){TW.Utilities.Error(t)}),promise.done(function(result){var selectedItem=null,items=new Array;result.forEach(function(t){var e=new TW.Models.DropdownItem(parent,t.Name,t.Id);items.push(e),valueId&&valueId===t.Id&&(selectedItem=e)}),modelItems(items),items.forEach(function(i){var element=$("#"+i.Value);element.click(function(){var thing=ko.dataFor(element[0]);eval("parent."+elementId+"(thing);")})}),result.length>0&&autoSelect&&(model(null===selectedItem?items[0]:selectedItem),$("#"+valueId).prop("checked","checked"))}),TW.Utilities.PleaseWait(elementId,promise),promise},Radio}();Controls.Radio=Radio}(Controls=TW.Controls||(TW.Controls={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(){}return e.Init=function(n,o,r,a,i,s,l,u,c,d,h){void 0===i&&(i=null),void 0===s&&(s=1),void 0===l&&(l=!1),void 0===u&&(u=!1),void 0===c&&(c=!1),void 0===d&&(d="linear"),void 0===h&&(h=!1);var m=null,p=null,f=!1,v=0,g=n(),C=$("#"+o);g||(g=0),g.constructor===Array?(f=!0,p=e.EnsureNumericArray(g)):p=[Number(g)],i||(i=[]),p.length>2&&(p=p.splice(2)),i.length>2&&(i=i.splice(2));for(var b=2===p.length;i.length-1?(v=1,""):1===v?(v=2,e.FormatLabel(i[0],t)):2===v?(v=0,e.FormatLabel(i[1],t)):e.FormatLabel(i[0],t)}}),!h){m=$("#"+o+"_box");var y=$("#"+o+"_slider").parent();m&&0!==m.length||(m=$(""),m.focus(function(t){m.select()}),t.Controls.Textbox.Init(m,!1,!0,!0),m.keydown(function(t){m.prop("oldValue",m.val())}),m.blur(function(){var t=[],o=!0,i=m.val(),s=(m.prop("oldValue"),i.split(","));if(t=s.length<2?[Number(s)]:e.EnsureNumericArray(s.length>2?s.splice(2):s),s=[],$.each(t,function(t,e){var n=Number(e),i=Number(r),l=Number(a);return isNaN(n)?(o=!1,!1):void s.push(i>n?i:n>l?l:n)}),o)if(f){if(2!==s.length)return;n(s),m.val(s.join(",")),C.slider("setValue",s)}else n(s[0]),m.val(s[0]),C.slider("setValue",s[0])}),u?m.insertAfter(C):(o.indexOf("_partial")>-1&&(y=y.parent()),m.css({width:"9%","float":"right"}).appendTo(y),$("
").appendTo(y)))}m&&m.val(p.join(",")),C.on("slide",function(t){n(t.value),m&&m.val(f?t.value.join(","):String(t.value))}),C.prev().click(function(t){var o=e.EnsureNumericArray(C.val());1===o.length?(n(o[0]),m&&m.val(String(o[0]))):(n(o),m&&m.val(o.join(",")))})},e.ResetLayout=function(t){$("#"+t).slider("relayout")},e.Destroy=function(t){$("#"+t).slider("destroy"),$("#"+t+"_box").remove()},e.FormatLabel=function(t,e){var n=e.toString();return t.indexOf("|v|")>-1?t.replace("|v|",n):"%"===t?n+t:t+n},e.EnsureNumericArray=function(t){var e=[];return t.constructor===Array?$.each(t,function(t,n){var o=Number(n);e.push(isNaN(o)?0:o)}):e=[t],e},e}();e.Slider=n}(e=t.Controls||(t.Controls={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(){}return e.Init=function(e,n,o,r,a){r||(r="Yes"),a||(a="No");var i=$("#"+n).bootstrapSwitch({state:o,onText:r,offText:a,onSwitchChange:function(n,o){try{this.blocker=!0,e(o)}catch(r){t.Utilities.Error(r)}finally{this.blocker=!1}}});e.subscribe(function(t){i.bootstrapSwitch("state",t)})},e}();e.Switch=n}(e=t.Controls||(t.Controls={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(){}return t.Init=function(t,e){$(document).on("shown.bs.tab","a[data-toggle='tab']",function(n){t&&t(n.currentTarget.innerText,e)})},t.Reset=function(t){$("#"+t+" a:first").tab("show")},t}();t.Tabs=e}(e=t.Controls||(t.Controls={}))}(TW||(TW={}));var TW;!function(TW){var Controls;!function(Controls){"use strict";var Textbox=function(){function Textbox(){}return Textbox.Init=function(box,allowDecimal,allowNegative,allowComma){box.keydown(function(e){var value=box.val().toString(),position=eval("Number(box[0].selectionStart)");-1!==$.inArray(e.keyCode,[8,9,27,13,110])||65===e.keyCode&&(e.ctrlKey===!0||e.metaKey===!0)||allowDecimal===!0&&(46===e.keyCode||190===e.keyCode)&&-1===value.indexOf(".")||allowNegative===!0&&(109===e.keyCode||189===e.keyCode)&&0===position||allowComma===!0&&188===e.keyCode&&value.length>0&&-1===value.indexOf(",")||e.keyCode>=35&&e.keyCode<=40||(e.shiftKey||e.keyCode<48||e.keyCode>57)&&(e.keyCode<96||e.keyCode>105)&&e.preventDefault()})},Textbox.InitId=function(t,e,n,o){Textbox.Init($("#"+t),e,n,o)},Textbox.Validate=function(t,e,n){var o=$("#"+t),r=$("#"+t+"-error"),a=o.val();return n||(n="This field is required."),!a||e&&!e.test(a)?(r&&r.length>0?r.show():(r=$(""),r.attr("id",t+"-error"),r.addClass("field-validation-error"),r.text(n),r.appendTo(o.parent()),o.keypress(function(t){r.hide()})),null):(r.hide(),a)},Textbox}();Controls.Textbox=Textbox}(Controls=TW.Controls||(TW.Controls={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(){}return t.Init=function(t){$("#"+t).appendTo("body")},t}();t.ToolTip=e}(e=t.Controls||(t.Controls={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e,n,o,r){this.Name=t,this.Link=e,this.Date=o,this.Parent=r,this.Content=n,this.NameText=t.split("-")[0],this.DateText=moment(o).format("MM/DD/YYYY h:mm:ss A"),this.ContentPreview=n.length>100?n.substring(0,97)+"...":n}return t.prototype.SearchClick=function(){this.Parent.SearchDetails(this)},t}();t.AdminSearchResult=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e,n,o,r){this.Skip=r,this.Query=e,this.Level=t,this.EndDate=new Date(o),this.StartDate=new Date(n)}return t}();t.AdminSearch=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var __extends=this&&this.__extends||function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),TW;!function(t){var e;!function(t){"use strict";var e=function(t){function e(e,n,o,r,a){var i=t.call(this,e,o,n)||this;return i.Id=n,i.Name=o,i.Path=r,i.Implementation=a,i}return __extends(e,t),e}(t.DropdownItem);t.Algorithm=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e,n,o){void 0===o&&(o="Are you sure?"),this.Id=t,this.Title=o,this.Callback=n,this.Description=e}return t.prototype.Yes=function(){this.Callback()},t}();t.AreYouSure=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e){this.Graphs=e,this.CrisisDates=t}return t}();t.BackwardStressTestInfo=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e){this.Data=e,this.Symbols=t}return t}();t.BackwardStressTestWrapper=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(){}return t}();t.BackwardStressTest=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(){}return t}();t.Benchmark=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(t,e){this.Key=t,this.Parent=e,this.Value=ko.observable("N/A"),this.Expiration=ko.observable("N/A"),this.Id=t.replace(/\ /g,"SPACE").replace(/\^/g,"HAT").replace(/\:/g,"COLON").replace(/\|/g,"PIPE").replace(/\//g,"SLASH")}return e.prototype.Remove=function(){var e=this,n=t.Utilities.DoAjax(t.Constants.API.CacheDeleteUrl,this.Key,t.Constants.Http.Delete);n.fail(function(e){t.Utilities.Error(e)}),n.done(function(){e.Parent.Keys.remove(e)}),t.Utilities.PleaseWait(this.Id,n)},e.prototype.GetExpiration=function(){var e=this,n=t.Utilities.DoAjax(t.Constants.API.CacheExpirationUrl,this.Key);n.fail(function(e){t.Utilities.Error(e)}),n.done(function(t){var n=t.responseText;e.Expiration(n)}),t.Utilities.PleaseWait(this.Id,n)},e.prototype.GetValue=function(){var e=this,n=t.Utilities.DoAjax(t.Constants.API.CacheValueUrl,this.Key);n.fail(function(e){t.Utilities.Error(e)}),n.done(function(t){e.Value(JSON.stringify(t))}),t.Utilities.PleaseWait(this.Id,n)},e}();e.CacheManagerKey=n}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e,n,o){this.X=t,this.Y=e,this.Text=o?o:"",this.Value=n?n:0}return t}();t.ChartDataPoint=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e){this.Formula=t,this.Datasources=e}return t}();t.CompositeDatasource=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e){var n=this;this.Name=t.Name,this.Benchmark=t.Benchmark,this.TradeWrangler=t.TradeWrangler,this.EndDate=moment(t.EndDate).toDate(),this.StartDate=moment(t.StartDate).toDate(),e&&e.forEach(function(e){return n[e]=t[e]}),this.Event=this.BuildEventName()}return t.prototype.BuildEventName=function(){return this.Name},t}();t.CrisisYear=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e){this.RiskLevel=t,this.InvestmentTimeHorizonId=e}return t}();t.DashboardProfile=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var __extends=this&&this.__extends||function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),TW;!function(t){var e;!function(t){"use strict";var e=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return __extends(e,t),e}(t.Benchmark);t.Dashboard=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e){this.Date=t,this.Value=e}return t}();t.DataPoint=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(e,n,o,r,a,i){var s=this;this.Parent=e,this.Datasource=n,this.Formula=ko.observable(r),this.Variable=ko.observable(o);var l=t.Controls.Dropdown.ConvertToModelArray(i,this);this.TransformationItems=ko.observableArray(l),this.Transformation=ko.observable(l?l[0]:null),this.Name=ko.computed(function(){return s.Datasource.Name}),this.FormulaVisible=ko.computed(function(){return 9===Number(s.Transformation().Value)}),this.Formula.subscribe(function(t){s.Notify()}),this.Transformation.subscribe(function(t){s.Notify()})}return e.prototype.Delete=function(){this.Parent.DeleteDataSource(this)},e.prototype.Notify=function(){this.Parent.Datasources.notifySubscribers()},e}();e.DatasourceItem=n}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(){}return t}();t.DatasourceQuery=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var __extends=this&&this.__extends||function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),TW;!function(t){var e;!function(t){"use strict";var e=function(t){function e(e,n,o,r,a,i,s,l){var u=t.call(this,e,o,n)||this;return u.Id=n,u.API=r,u.Lag=l,u.Name=o,u.EndDate=s,u.StartDate=i,u.Frequency=a,u}return __extends(e,t),e.ConvertFromItem=function(t){var n=new e(t.Parent,t.Datasource.Id,t.Datasource.Name,t.Datasource.API,t.Datasource.Frequency,t.Datasource.StartDate,t.Datasource.EndDate,t.Datasource.Lag);return n.Formula=t.Formula(),n.Transformation=t.Transformation().Value,n},e}(t.DropdownItem);t.Datasource=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e){this.End=null==e?null:new Date(e.replace(/\./g,"/")),this.Start=null==t?null:new Date(t.replace(/\./g,"/"))}return t}();t.DateRange=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(){}return t}();t.EfficientFontier=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(e){this.Body=e.Body(),this.Subject=e.Subject(),this.Body&&this.Body.length>0&&(this.Body=t.Utilities.EncodeHtml(this.Body))}return e}();e.Email=n}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(e,n){this.Thing=e,this.Expiration=null==n?t.Utilities.TradingDay:n}return e}();e.ExpirationWrapper=n}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e,n){var o=this;this.To=t.To,this.Parent=e,this.From=t.From,this.Count=t.Count,this.Selected=ko.observable(!1),this.BoundValue=ko.observable(t.Value),this.UniqueId=ko.observable(this.PartialId&&this.PartialId.length>0?this.PartialId:((new Date).valueOf()+ ++this.Parent.Counter).toString()),this.Text=ko.computed(function(){var t="";return t=null==o.From||null==o.To?o.BoundValue():o.From+" - "+o.To,t+" ("+o.Count+")"}),this.BoundValue.subscribe(function(t){return o.Parent.Search()})}return t}();t.FacetResultValue=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function n(t,e){var n=this;this.Parent=e,this.Name=t.Name,this.Field=t.Field,this.Open=ko.observable(!1),this.TemplateType=ko.observable(t.Template),this.BoundValues=ko.observableArray(this.ConvertToObservable(t.Values)),this.FieldId=ko.computed(function(){return n.Field.replace(/\s/g,"")})}return n.prototype.Checked=function(){var e=this,n=this.FieldId();this.Parent.Model.BoundFacets().forEach(function(e){var o=e.FieldId();o!==n&&(e.Open(!1),t.Controls.Collapse.Close(e.FieldId()))}),this.Open(!this.Open()),setTimeout(function(){e.TemplateType()===t.Constants.Search.Slider&&t.Controls.Slider.ResetLayout(e.BoundValues()[0].PartialId)},200)},n.prototype.ConvertToObservable=function(n){var o=this,r=this.TemplateType(),a=new Array;switch(r){case t.Constants.Search.Range:n.forEach(function(t){a.push(new e.FacetResultValue(t,o.Parent,r))});break;case t.Constants.Search.Slider:var i=-999999,s=9999999;n.forEach(function(t){t.Fromi&&(i=t.To)});var l={To:i,Count:0,From:s,Value:null};a.push(new e.FacetResultValue(l,this.Parent,r))}return a},n}();e.FacetResult=n}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e,n,o){this.To=n,this.From=e,this.Field=t,this.Value=o}return t}();t.Facet=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e,n,o,r){var a=this;this.Id=t,this.Url=r,this.Name=e,this.Base64=n,this.ContentType=o,this.Link=ko.computed(function(){return a.Url})}return t}();t.File=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(){}return t}();t.ForwardSimulationConfidenceSpread=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(){}return t}();t.ForwardSimulationResult=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e){this.Years=t,this.Simulations=e}return t}();t.ForwardSimulation=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var __extends=this&&this.__extends||function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),TW;!function(t){var e;!function(t){"use strict";var e=function(t){function e(e,n,o){var r=t.call(this,n,o)||this;return r.Profile=e,r}return __extends(e,t),e}(t.ForwardSimulation);t.Generate=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(){}return t}();t.HomeLearnMore=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(){}return t}();t.ImageUploaderParams=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e,n){this.Job=t,this.Arg=e,this.IsFull=n}return t}();t.JobExection=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(e,n){var o=this;this.Arg=e.Arg,this.IsApp=e.IsApp,this.Tasks=e.Tasks,this.IsFull=e.IsFull,this.PoolId=e.PoolId,this.JobMode=e.JobMode,this.Timestamp=e.Timestamp,this.ErrorLogLink=e.ErrorLogLink,this.PartitionKey=e.PartitionKey,this.TimeoutLogLink=e.TimeoutLogLink,this.SuccessLogLink=e.SuccessLogLink,this.ExceptionCount=e.ExceptionCount,this.StartUpTimeoutLogLink=e.StartUpTimeoutLogLink,this.TotalSeconds=t.Utilities.RoundDecimal(e.TotalSeconds,2),this.Parent=n,this.IsSelected=ko.observable(!1),this.Date=t.Utilities.FormatDate(new Date(this.Timestamp));var r=(this.ErrorLogLink&&this.ErrorLogLink.length>0,this.TimeoutLogLink&&this.TimeoutLogLink.length>0),a=this.StartUpTimeoutLogLink&&this.StartUpTimeoutLogLink.length>0;this.SelectedClass=ko.computed(function(){return o.IsSelected()?"bg-info":""}),this.ExceptionCountText=ko.computed(function(){return null==o.ExceptionCount?"N/A":o.ExceptionCount.toString()}),this.LinkText=ko.computed(function(){return r||a?"Timeout Error":"Success Log"}),this.LinkUrl=ko.computed(function(){return r?o.TimeoutLogLink:a?o.StartUpTimeoutLogLink:o.SuccessLogLink})}return e.prototype.LoadTasks=function(){this.Parent.JobRuns().forEach(function(t){return t.IsSelected(!1)}),this.IsSelected(!0),this.Parent.LoadJobTasks(this.PartitionKey)},e.prototype.DeleteJob=function(){this.Parent.DeleteJob(this.PartitionKey)},e}();e.JobRun=n}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(e){var n=this;this.RowKey=e.RowKey,this.EndTime=e.EndTime,this.ErrorLink=e.ErrorLink,this.StartTime=e.StartTime,this.Completed=e.Completed,this.Indentation=e.Indentation,this.SuccessLink=e.SuccessLink,this.CommandLine=e.CommandLine,this.Dependencies=e.Dependencies,this.ExceptionCount=e.ExceptionCount,this.TotalSeconds=t.Utilities.RoundDecimal(e.TotalSeconds,2),this.ReadBandwidth=t.Utilities.RoundDecimal(e.ReadBandwidth,2),this.WriteBandwidth=t.Utilities.RoundDecimal(e.WriteBandwidth,2),this.ReadOperations=t.Utilities.RoundDecimal(e.ReadOperations,2),this.UserCPUSeconds=t.Utilities.RoundDecimal(e.UserCPUSeconds,2),this.WriteOperations=t.Utilities.RoundDecimal(e.WriteOperations,2),this.KernalCPUSeconds=t.Utilities.RoundDecimal(e.KernalCPUSeconds,2),this.WallClockSeconds=t.Utilities.RoundDecimal(e.WallClockSeconds,2),this.TotalTimeSeconds=t.Utilities.RoundDecimal(e.TotalTimeSeconds,2),this.End=t.Utilities.FormatDate(new Date(this.EndTime)),this.Start=t.Utilities.FormatDate(new Date(this.StartTime)),this.SelectedTaskClass=ko.computed(function(){return n.ExceptionCount>0?"bg-danger":""})}return e}();e.JobTask=n}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(e){this.Value=e.Value,this.RowKey=e.RowKey,this.Created=e.Created,this.Revision=e.Revision,this.Timestamp=e.Timestamp,this.FinalDate=e.FinalDate,this.HasNewData=e.HasNewData,this.GreatestLag=e.GreatestLag,this.DefaultedLag=e.DefaultedLag,this.PeriodLength=e.PeriodLength,this.IsPredictive=e.IsPredictive,this.HasLagChange=e.HasLagChange,this.HasStaleData=e.HasStaleData,this.RecordedDate=e.RecordedDate,this.PublishedDate=e.PublishedDate,this.HasPeriodError=e.HasPeriodError,this.FrequencyConstant=e.FrequencyConstant,this.LastObservationDate=e.LastObservationDate,this.ForwardPublishDelay=e.ForwardPublishDelay,this.BackwardPublishDelay=e.BackwardPublishDelay,this.OverriddenGreatestLag=e.OverriddenGreatestLag,this.PenultimateObservationDate=e.PenultimateObservationDate,this.DateText=t.Utilities.ToShortDateString(this.RowKey,!0),this.CreatedText=t.Utilities.ToShortDateString(this.Created,!0), this.TimestampText=t.Utilities.ToShortDateString(this.Timestamp,!0),this.FinalDateText=t.Utilities.ToShortDateString(this.FinalDate,!0),this.RecordedDateText=t.Utilities.ToShortDateString(this.RecordedDate,!0),this.PublishedDateText=t.Utilities.ToShortDateString(this.PublishedDate,!0),this.LastObservationDateText=t.Utilities.ToShortDateString(this.LastObservationDate,!0),this.PenultimateObservationDateText=t.Utilities.ToShortDateString(this.PenultimateObservationDate,!0)}return e}();e.LagRecord=n}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e){this.Id=t,this.Promise=e}return t}();t.LoadPartialResult=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e){this.Key=t,this.Value=e}return t}();t.Metric=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t){var e=this;this.Lines=[],this.Name=t.Name(),this.Value=t.Value(),t.Children().forEach(function(t){e.Lines.push(t.Selection().Key())})}return t}();t.MovingAverageCondition=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e,n){var o=this;this.Index=e,this.Parent=t,this.BlockEvents=!1,this.Selection=ko.observable(null),this.SelectionItems=ko.observableArray(null),this.Selection.subscribe(function(t){o.BlockEvents===!1&&n(t,o.Index)})}return t}();t.MovingAverageEventLine=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(e){var n=this;this.Parent=e,this.Sum=ko.observable(0),this.Name=ko.observable(null),this.Value=ko.observable(100),this.Occurences=ko.observable(0),this.Children=ko.observableArray(null),this.Count=ko.computed(function(){return n.Children().length}),this.Event=ko.computed(function(){for(var t="",e=n.Children(),o=0;o > "));return t}),this.Exposure=ko.computed(function(){return n.Value()+"%"}),this.IsDuplicate=ko.computed(function(){var t=n.Parent.Events();if(null===t)return!1;for(var e=0;e"+t.Utilities.RoundDecimalToString(n.Start())+" and "+t.Utilities.RoundDecimalToString(n.End())+""}),this.ColumnName=ko.computed(function(){var e="Between "+t.Utilities.RoundDecimalToString(n.Start())+" and "+t.Utilities.RoundDecimalToString(n.End());return e=e.replace(/\-\./g,"-0."),e=e.replace(/ \./g," 0."),e+=n.Parent.SupportsTwoExposures()?" - A>=B Exposure: "+n.Exposure1()+"%; A=a&&i>=o||o>=i&&a>=o||e>=i&&a>=e)return!0}return!1})}return e.prototype.AddNewEvent=function(){this.Parent.AddNewEvent()},e.prototype.RemoveEvent=function(){this.Parent.Events.remove(this)},e.prototype.EditEvent=function(){this.Parent.EditEvent(this)},e}();e.RangeEvent=n}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e,n,o,r,a){this.Top=r,this.Skip=a,this.Query=t,this.Facets=e,this.SortField=n,this.SortDescending=o}return t}();t.Search=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(e,n,o,r){var a=this;this.SigmaTop=n,this.SigmaBottom=o,this.Value=ko.observable(0),this.Count=ko.observable(0),this.Percent=ko.observable(e),this.Title=ko.computed(function(){return null===a.SigmaTop?"X < "+a.SigmaBottom.toString()+"      ":null===a.SigmaBottom?"X > "+a.SigmaTop.toString()+"      ":a.SigmaTop.toString()+" < X < "+a.SigmaBottom.toString()}),this.FixedValue=ko.computed(function(){return a.Value().toFixed(t.Constants.System.Precision)})}return e}();e.SigmaCondition=n}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(e,n){var o=this,r=t.Utilities.IsBullish(e.CAP);this.Id=e.Id,this.Parent=n,this.Name=e.Name,this.Url=e.Image.Url,this.EndDate=e.EndDate,this.StartDate=e.StartDate,this.Category=e.Category.Name,this.Description=e.Description,this.Algorithm=e.Algorithm.Name,this.ResetDate=ko.observable(null),this.RestTypeIsSoft=ko.observable(!0),this.Approved=ko.observable(e.IsApproved),this.EditUrl=t.Constants.Views.SignalLabEditUrl+this.Id,this.DetailsUrl=t.Constants.Views.SignalDetailsUrl+this.Id,this.CAP=t.Utilities.FormatPercent(e.CAP,0)+" ("+(r?"Bullish":"Bearish")+")",this.Approved.subscribe(function(t){return o.Parent.UpdateApproval(o)})}return e.prototype.Export=function(){t.Utilities.ExportSignal(t.Constants.API.ExportSignalUrl,this.Id,this.Id)},e.prototype.Edit=function(){$("#frmEdit").attr("action",this.EditUrl).submit()},e.prototype.Delete=function(){var e=this;t.Controls.Modal.AreYouSure("ausDelete","This will mark "+this.Name+" as deleted. Only an administrator can undelete it.",function(){var n=t.Utilities.DoAjax(t.Constants.API.SignalDeleteUrl+e.Id,null,t.Constants.Http.Delete);n.fail(function(e){t.Utilities.Error(e)}),n.done(function(t){$("#"+e.Id).html("

"+t+" has been deleted.

")}),t.Utilities.PleaseWait(e.Id,n)})},e.prototype.Reset=function(){var e=this,n=this.RestTypeIsSoft(),o="This will perform a "+(n?"SOFT":"MEDIUM")+" signal reset for "+this.Name+"";n||(o=o+" from "+this.ResetDate()+" through "+t.Utilities.ToShortDateString(this.EndDate,!0)),t.Controls.Modal.AreYouSure("ausReset",o+". This cannot be undone.",function(){var o=t.Constants.API.SignalResetUrl+(n?t.Constants.SignalResetType.Soft:t.Constants.SignalResetType.Medium)+"/"+e.Id;n||(o=o+"/"+t.Utilities.ParseShortDate(e.ResetDate()).toISOString());var r=t.Utilities.DoAjax(o,null,t.Constants.Http.Delete);r.fail(function(e){t.Utilities.Error(e)}),r.done(function(n){t.Utilities.Success("The reset of "+e.Name+" has been started. An email will be sent to "+n+" upon completion.")}),t.Utilities.PleaseWait(e.Id,r)})},e}();e.SignalApprovalItem=n}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t){this.Id=t.Id,this.Approved=t.Approved()}return t}();t.SignalApprovalUpdate=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t){this.Signals=ko.observableArray(t)}return t.prototype.Export=function(){$("#frmExport").submit()},t}();t.SignalApproval=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(e){var n=this;this.CAP=e.CAP,this.LightCSS=ko.computed(function(){return t.Utilities.IsBullish(n.CAP)?t.Constants.CSS.SignalBullish:t.Constants.CSS.SignalBearish}),this.BullBear=ko.computed(function(){return t.Utilities.IsBullish(n.CAP)?"Bullish":"Bearish"})}return e}();e.SignalBase=n}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e){this.Level=e,this.IsSubscribed=t}return t}();t.SignalCardSubscription=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var __extends=this&&this.__extends||function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),TW;!function(t){var e;!function(e){"use strict";var n=function(n){function o(e,o,r){var a=n.call(this,e)||this;return a.Model=e,a.Level=o.Level(),a.AdditionalCSS=r,a.UserSubscribed=ko.observable(o.IsSubscribed(e.Id)),a.Visible=ko.observable(a.Level!=t.Constants.SignalCardUserLevel.Admin),a.Text=ko.computed(function(){return a.UserSubscribed()?"Remove":"Add"}),a.CSS=ko.computed(function(){var t=a.UserSubscribed()?"btn-remove":"btn-add";return a.AdditionalCSS&&(t=a.AdditionalCSS+" "+t),t}),a}return __extends(o,n),o.prototype.Click=function(){var n=this;if(this.Level===t.Constants.SignalCardUserLevel.Anonymous)t.Controls.Modal.Show("anonymousAddContent");else if(this.Level===t.Constants.SignalCardUserLevel.Level1)t.Controls.Modal.Show("level1AddContent");else{var o=new e.SignalCatalogSubscription(this.UserSubscribed(),this.Model.Id),r=t.Utilities.DoAjax(t.Constants.API.SignalSubscriptionsUrl,o);r.done(function(){n.UserSubscribed(!n.UserSubscribed())}).fail(function(e){t.Utilities.Error(e)}),t.Utilities.PleaseWait(this.Model.Id,r)}},o}(e.SignalBase);e.SignalCard=n}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(e){var n=this;this.IsAnonymous=null==e,this.IsAdmin=e?e.IsAdmin:!1,this.SignalIds=e?e.SignalIds:[],this.IsLevel1=e?e.IsLevel1:!1,this.Level=ko.computed(function(){var e=t.Constants.SignalCardUserLevel.Other;return n.IsLevel1?e=t.Constants.SignalCardUserLevel.Level1:n.IsAdmin?e=t.Constants.SignalCardUserLevel.Admin:n.IsAnonymous&&(e=t.Constants.SignalCardUserLevel.Anonymous),e})}return e.prototype.IsSubscribed=function(t){return this.SignalIds&&this.SignalIds.some(function(e){return e.toLocaleLowerCase()===t.toLocaleLowerCase()})},e}();e.SignalCatalogParameters=n}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e){this.SignalId=e,this.IsSubscribed=t}return t}();t.SignalCatalogSubscription=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var __extends=this&&this.__extends||function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),TW;!function(t){var e;!function(e){"use strict";var n=function(n){function o(e,o){var r=n.call(this,e)||this;r.Id=e.Id,r.CAP=e.CAP,r.Parent=o,r.EndDate=e.EndDate,r.StartDate=e.StartDate,r.UserName=ko.observable(null),r.UserEmail=ko.observable(null),r.Name=ko.observable(e.Name),r.CanExport=ko.observable(!1),r.FriendEmail=ko.observable(null),r.Coordinates=ko.observable(null),r.InitialInvestment=e.InitialInvestment,r.WrangleTop20Value=ko.observable(null),r.WrangleAverageValue=ko.observable(null),r.BenchmarkTop20Value=ko.observable(null),r.WrangleBottom20Value=ko.observable(null),r.BenchmarkAverageValue=ko.observable(null),r.BenchmarkBottom20Value=ko.observable(null),r.SuccessProbabilityValue=ko.observable(null),r.BenchmarkName=ko.observable(e.BenchmarkName),r.BenchmarkDisplayName=ko.observable(e.BenchmarkDisplayName),t.Controls.ConfidenceSpread.ConfigureSuccessProbability(r);var a=e.Color&&e.Color.Id&&e.Color.Id!=t.Constants.Text.EmptyGuid&&e.Color.Metadata&&e.Color.Metadata.length>0?e.Color.Metadata:"#FFFFFF";return r.Color=ko.observable("#"!=a[0]?"#"+a:a),r}return __extends(o,n),o.prototype.ExportConfidenceSpread=function(){t.Utilities.DownloadFile("btnExportConfidenceSpread","frmExportMonteCarlo")},o.prototype.Catalog=function(){window.location.href=t.Constants.Views.SignalLabCatalogUrl},o.prototype.Export=function(){t.Utilities.ExportSignal(t.Constants.API.ExportSignalUrl,this.Id,"export")},o.prototype.ExportUnstretched=function(){t.Utilities.ExportSignal(t.Constants.API.ExportSignalUrl,this.Id,"export")},o.prototype.SignUp=function(){this.Parent.SignUp(!1)},o.prototype.Upgrade=function(){this.Parent.Upgrade()},o.prototype.Refer=function(){var n=this,o=new e.SignalRefer(this),r=t.Controls.Textbox.Validate("UserName"),a=t.Controls.Textbox.Validate("UserEmail",t.Constants.Text.EmailRegex,"Please enter a valid email address."),i=t.Controls.Textbox.Validate("FriendEmail",t.Constants.Text.EmailRegex,"Please enter a valid email address.");if(r&&a&&i){var s=t.Utilities.DoAjax(t.Constants.API.ReferSignalUrl,o);s.fail(function(e){t.Utilities.Error(e)}),s.done(function(e){t.Utilities.Success(n.FriendEmail()+" has been referred. Thank you!"),n.UserName(null),n.UserEmail(null),n.FriendEmail(null),t.Controls.Modal.Hide("referAFriendModal")}),t.Utilities.PleaseWait("refer",s)}},o.prototype.Simulate=function(){var e=this,n=t.Controls.ConfidenceSpread.BuildModel(this),o=t.Utilities.DoAjax(t.Constants.API.SignalSimulateUrl+this.Id,n);o.fail(function(e){t.Utilities.Error(e)}),o.done(function(t){e.RenderMonteCarlo(t),$("#forward-simulation-results").show()}),t.Utilities.PleaseWait("forward-simulation",o)},o.prototype.ResetChart=function(){this.Parent.ResetChart()},o.prototype.RenderMonteCarlo=function(e){this.WrangleTop20Value(e.WrangleTop20),this.WrangleAverageValue(e.WrangleAverage),this.BenchmarkTop20Value(e.BenchmarkTop20),this.WrangleBottom20Value(e.WrangleBottom20),this.BenchmarkAverageValue(e.BenchmarkAverage),this.BenchmarkBottom20Value(e.BenchmarkBottom20),this.SuccessProbabilityValue(e.SuccessProbability),t.Controls.Chart.RenderProbabilityOfSuccess(e),this.Coordinates(t.Controls.ConfidenceSpread.Render(e))},o}(e.SignalBase);e.SignalDetails=n}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t){this.Date=t.Date,this.Backtest=t.Backtest,this.BuyAndHold=t.BuyAndHold}return t}();t.SignalPerformanceData=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t){this.SignalId=t.Id,this.UserName=t.UserName(),this.UserEmail=t.UserEmail(),this.FriendEmail=t.FriendEmail()}return t}();t.SignalRefer=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e,n,o,r){this.Frequency=null,this.Exposure=e,this.Category=r,this.Algorithm=n,this.SignalQuery=t,this.ApprovalState=o}return t}();t.SignalSearch=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(){}return t}();t.Signal=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e,n){this.Min=e,this.Max=n,this.Label=t}return t}();t.SliderParameters=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e,n,o){this.Id=t,this.Name=e,this.Metadata=o,this.Description=n}return t}();t.Tag=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(){}return t}();t.User=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e,n){this.Date=t,this.Passed=n,this.MetricName=e}return t}();t.ValidationRun=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(){}return t}();t.WrangleComparisonResult=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(){}return t}();t.WrangleComparisonResultWrapper=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e,n,o,r,a,i,s,l,u,c){this.Id=s,this.Date=l,this.Range=n,this.UserId=o,this.ChartId=c,this.EndDate=a,this.Frequency=u,this.StartDate=r,this.Benchmarks=t,this.InitialInvestment=i,this.AccountCreatedDate=e}return t}();t.WrangleGrowthComparison=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(e){switch(this.OldValue=e.OldValue,this.NewValue=e.NewValue,this.DateText=t.Utilities.ToShortDateString(new Date(e.Date.toString()),!0),e.Type){case t.Constants.WrangleHistoryType.WeightsAdjusted:this.TypeText="Weights Adjusted";break;case t.Constants.WrangleHistoryType.ProfileAudited:this.TypeText="Profile Audited";break;case t.Constants.WrangleHistoryType.SignalsChanged:this.TypeText="Signals Changed";break;case t.Constants.WrangleHistoryType.WrangleMeterChanged:this.TypeText="Wrangle Meter Changed";break;case t.Constants.WrangleHistoryType.CashRecommendationChanged:this.TypeText="Cash Recommendation Changed";break;case t.Constants.WrangleHistoryType.BondsRecommendationChanged:this.TypeText="Bonds Recommendation Changed";break;case t.Constants.WrangleHistoryType.StocksRecommendationChanged:this.TypeText="Stocks Recommendation Changed"}}return e}();e.WrangleHistory=n}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(){}return t}();t.WrangleHomeChart=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(){}return t}();t.WrangleHomeComparison=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(e){"use strict";var n=function(){function e(e){var n=this;this.Id=e.Id,this.Signal=e.Signal,this.Percentage=e.Percentage,this.PercentageText=ko.computed(function(){return n.Percentage<.01?"< .01%":t.Utilities.FormatPercent(n.Percentage,2)}),this.Url=ko.computed(function(){return t.Constants.Views.SignalDetailsUrl+n.Id})}return e}();e.WrangleLearnMoreWeight=n}(e=t.Models||(t.Models={}))}(TW||(TW={}));var __extends=this&&this.__extends||function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),TW;!function(t){var e;!function(t){"use strict";var e=function(t){function e(){var e=t.call(this)||this;return e.Dates=[],e.Backtest={},e.ChartData=[],e.BuyAndHold={},e.CrisisDates=[],e.EndDate=new Date,e.StartDate=new Date,e.WrangleGrowthTotal=0,e.BenchmarkGrowthTotal=0,e.YTDAnnualizedReturn=ko.observable(0),e.OneYearAnnualizedReturn=ko.observable(0),e.FiveYearAnnualizedReturn=ko.observable(0),e.Weights=ko.observableArray(null),e}return __extends(e,t),e}(t.BackwardStressTest);t.WrangleLearnMore=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){var e;!function(t){"use strict";var e=function(){function t(t,e){this.Item=t,this.Dropdown=e}return t}();t.YesNoDropDown=e}(e=t.Models||(t.Models={}))}(TW||(TW={}));var TW;!function(t){"use strict";var e=function(){function e(){}return e.Init=function(){e.Factorials=[],ko.bindingHandlers.stopBinding={init:function(){return{controlsDescendantBindings:!0}}},ko.bindingHandlers._Slider={init:function(n,o,r,a,i){var s=r.get("param");s.vertical||$(n).css({width:"90%","float":"left"}).wrap("
");var l=e.LoadPartial(n,o,r,i);return l.Promise.done(function(e){t.Controls.Slider.Init(o(),l.Id,s.min,s.max,s.labels,s.step,s.bottom,s.vertical,s.reversed,s.scale,s.hideTextbox)}),{controlsDescendantBindings:!0}}},ko.bindingHandlers._Dropdown={init:function(t,n,o,r,a){e.LoadPartial(t,n,o,a);return $(t).wrap('
'),{controlsDescendantBindings:!0}}},ko.bindingHandlers._Switch={init:function(n,o,r,a,i){var s=r.get("param"),l=e.LoadPartial(n,o,r,i);return i.$data.PartialId=l.Id.split("_")[0],l.Promise.done(function(){t.Controls.Switch.Init(o(),l.Id,o()(),s.onText,s.offText)}),{controlsDescendantBindings:!0}}},ko.bindingHandlers.enterKey={init:function(t,e,n,o){var r=e();$(t).keypress(function(t){var e=t.which?t.which:t.keyCode;return 13===e?(r.call(o),!1):!0})}},ko.virtualElements.allowedBindings.stopBinding=!0,jQuery.validator.addMethod("dropdown",function(e,n,o){return e=e.replace("{","").replace("}",""),e&&t.Constants.Text.GuidRegex.test(e)&&e!==t.Constants.Text.EmptyGuid}),jQuery.validator.unobtrusive.adapters.addBool("dropdown")},e.ShowDatePicker=function(e,n){t.Controls.DatePicker.ShowDatePicker($(n.currentTarget).attr("id").replace("_button",""))},e.SaveToLocalStorage=function(n,o,r){if(!e.SupportsLocalStorage())return!1;var a=[];Object.keys(localStorage).forEach(function(t){var n=e.LoadFromLocalStorage(t);null!=n&&a.push(t)});var i=[];a.forEach(function(e){e.length===t.Constants.Text.EmptyGuid.length&&i.push(e)}),a.forEach(function(e){e.length!==t.Constants.Text.EmptyGuid.length&&e.toLocaleLowerCase()!==t.Constants.Home.Onboarding.toLocaleLowerCase()&&i.push(e)});var s=new t.Models.ExpirationWrapper(n,r),l=JSON.stringify(s);try{return localStorage.setItem(o,l),!0}catch(u){for(var c=0;c=e&&n>=i&&(o[r[a]]=t[r[a]])}return o},e.RemoveFromLocalStorage=function(t){e.SupportsLocalStorage()&&localStorage.removeItem(t)},e.DoAjax=function(e,n,o){var r=$.Deferred(),a=null==o?n?t.Constants.Http.Post:t.Constants.Http.Get:o;return $.ajax({url:e,cache:!1,type:a.toLocaleUpperCase(),contentType:t.Constants.Http.ContentType,data:n?JSON.stringify(n):null,dataType:n?t.Constants.Http.DataType:null}).fail(function(t){t.status&&200===t.status?r.resolve(t):r.reject(t)}).done(function(t){t&&t.error?r.reject(t.error):r.resolve(t)}),r.promise()},e.PleaseWait=function(t,e){var n=$("#"+t),o="#"+t+"_pw",r=n.parent().find(o); n.hide(),0===r.length?(r=$("
"),n.after(r)):e?r.show():(r.hide(),n.show()),e&&e.always(function(t){r.hide(),n.show()})},e.DownloadFile=function(n,o){e.PleaseWait(n),setTimeout(function(){e.PleaseWait(n)},t.Constants.Wrangle.DemoDownloadWaitSeconds),$("#"+o).submit()},e.LoadBenchmark=function(e){var n=null;return n=e.Benchmark&&e.Benchmark.length>0?e.Benchmarks.filter(function(t){return t.Id===e.Benchmark})[0]:e.Benchmarks.filter(function(e){return e.Name===t.Constants.Index.SP500})[0]},e.EncodeHtml=function(t){return $("