Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (function(){
- var ns={};
- ns.Program = {};
- ns.Program.main = (function() {
- var patternInput = ns.Program.init();
- var ractive = patternInput[0];
- var data = patternInput[1];
- ns.Program.todosProcess(ractive, data['items']);
- ns.Program.toggleProcess(ractive, data['items']);
- return ns.Program.filterProcess(ractive)
- });
- ns.Program.init = (function() {
- ns.FSDic.Add(((Ractive).events), 'enter', ns.RactiveExt['RactiveStatic.makeCustomKeyEvent']((Ractive), 13.0), 'string', 'function');
- ns.FSDic.Add(((Ractive).events), 'escape', ns.RactiveExt['RactiveStatic.makeCustomKeyEvent']((Ractive), 27.0), 'string', 'function');
- var filters = ns.Program.add('active', (function(t) {
- return !t.completed
- }), ns.Program.add('completed', (function(t) {
- return t.completed
- }), ns.Program.add('all', (function(t) {
- return true
- }), new ns.FSDic('string', 'function'), 'string', 'function'), 'string', 'function'), 'string', 'function');
- var data = ns.Program.add('filters', filters, ns.Program.add('currentFilter', 'all', ns.Program.add('items', (function() {
- var matchValue = ns.Storage.load(ns.ResizeArray);
- if(matchValue === null) {
- return new ns.ResizeArray('object')
- }
- else {
- var v = matchValue;
- return v
- }
- })(), new ns.FSDic('string', 'object'), 'string', 'object'), 'string', 'object'), 'string', 'object');
- var options = {};
- (options.el)='#todoapp';
- (options.template)='#main';
- (options.data)=data;
- (options.twoway)=false;
- var ractive = (new (Ractive)(options));
- return [ractive, data]
- });
- ns.Program.add = (function(key, value, dic, $a, $b) {
- ns.FSDic.Add(dic, key, value, $a, $b);
- return dic
- });
- ns.Program.todosProcess = (function(ractive, todos) {
- var editingLoop = (function(tupledArg) {
- var r = tupledArg[0];
- var todos1 = tupledArg[1];
- return ns.AsyncBuilder.Delay(ns.AsyncModule.async, (function() {
- var patternInput = ns.RactiveExt.onStream2(r, 'submit', 'cancel');
- var ev2 = patternInput[1];
- var ev1 = patternInput[0];
- return ns.AsyncBuilder.Bind(ns.AsyncModule.async, ns.Async.AwaitObservable2(ev1, ev2, 'Array', 'Array'), (function(_arg1) {
- var choice = _arg1;
- if(choice.Tag === 1) {
- undefined;
- return ns.AsyncBuilder.Zero(ns.AsyncModule.async)
- }
- else {
- var ev = choice.Item[0];
- var arg = choice.Item[1];
- var index = (ev.index)['i'];
- var oldTodo = (ev.context);
- var input = (ev.node);
- if((input.value).length > 1) {
- todos1.splice(index, 1, new ns.Todo((input.value), oldTodo.completed));
- return ns.AsyncBuilder.Zero(ns.AsyncModule.async)
- }
- else {
- todos1.splice(index, 1);
- return ns.AsyncBuilder.Zero(ns.AsyncModule.async)
- }
- }
- }), ns.FSharpChoice, 'undefined')
- }), 'undefined')
- });
- var waitingLoop = (function(tupledArg) {
- var r = tupledArg[0];
- var todos1 = tupledArg[1];
- return ns.AsyncBuilder.Delay(ns.AsyncModule.async, (function() {
- var patternInput = ns.RactiveExt.onStream4(r, 'newTodo', 'remove', 'clearCompleted', 'edit');
- var ev4 = patternInput[3];
- var ev3 = patternInput[2];
- var ev2 = patternInput[1];
- var ev1 = patternInput[0];
- return ns.AsyncBuilder.Bind(ns.AsyncModule.async, ns.Async.AwaitObservable4(ev1, ev2, ev3, ev4, 'Array', 'Array', 'Array', 'Array'), (function(_arg2) {
- var choice = _arg2;
- return ns.AsyncBuilder.Combine(ns.AsyncModule.async, (function() {
- if(choice.Tag === 1) {
- var ev = choice.Item[0];
- var arg = choice.Item[1];
- var index = (ev.index)['i'];
- todos1.splice(index, 1);
- return ns.AsyncBuilder.Zero(ns.AsyncModule.async)
- }
- else if(choice.Tag === 2) {
- return ns.AsyncBuilder.For(ns.AsyncModule.async, ns.Range.customStep((todos1.length - 1), -1, 0), (function(_arg3) {
- var i = _arg3;
- if(todos1[i].completed) {
- todos1.splice(i, 1);
- return ns.AsyncBuilder.Zero(ns.AsyncModule.async)
- }
- else {
- return ns.AsyncBuilder.Zero(ns.AsyncModule.async)
- }
- }), 'number')
- }
- else if(choice.Tag === 3) {
- var ev = choice.Item[0];
- var arg = choice.Item[1];
- var li = (((ev.node).parentElement).parentElement);
- var input = (li.querySelector('#edit'));
- ((li.classList).add('editing'));
- (input.value)=(ev.context).description;
- (input.focus());
- return ns.AsyncBuilder.Bind(ns.AsyncModule.async, editingLoop([r, todos1]), (function() {
- ((li.classList).remove('editing'));
- return ns.AsyncBuilder.Zero(ns.AsyncModule.async)
- }), 'undefined', 'undefined')
- }
- else {
- var ev = choice.Item[0];
- var arg = choice.Item[1];
- var input = (ev.node);
- todos1.push(new ns.Todo((input.value), false));
- (input.value)='';
- return ns.AsyncBuilder.Zero(ns.AsyncModule.async)
- }
- })(), ns.AsyncBuilder.Delay(ns.AsyncModule.async, (function() {
- ns.Storage.save(todos1, ns.ResizeArray);
- return ns.AsyncBuilder.ReturnFrom(ns.AsyncModule.async, waitingLoop([r, todos1]), 'undefined')
- }), 'undefined'), 'undefined')
- }), ns.FSharpChoice1, 'undefined')
- }), 'undefined')
- });
- return ns.Async.StartImmediate(waitingLoop([ractive, todos]), null)
- });
- ns.Program.toggleProcess = (function(ractive, todos) {
- ns.Observable.Add((function(tupledArg) {
- var ev = tupledArg[0];
- var arg = tupledArg[1];
- var index = (ev.index)['i'];
- var isDone = ((ev.node).checked);
- todos.splice(index, 1, (function() {
- var inputRecord = todos[index];
- return new ns.Todo(inputRecord.description, isDone)
- })());
- return ns.Storage.save(todos, ns.ResizeArray)
- }), ns.RactiveExt.onStream1(ractive, 'toggle'), 'Array');
- return ns.Observable.Add((function(tupledArg) {
- var ev = tupledArg[0];
- var arg = tupledArg[1];
- var isDone = ((ev.node).checked);
- for(var i=0;i<=(todos.length - 1);i++) {
- if(todos[i].completed !== isDone) {
- todos.splice(i, 1, (function() {
- var inputRecord = todos[i];
- return new ns.Todo(inputRecord.description, isDone)
- })())
- }
- };
- return ns.Storage.save(todos, ns.ResizeArray)
- }), ns.RactiveExt.onStream1(ractive, 'toggleAll'), 'Array')
- });
- ns.Program.filterProcess = (function(ractive) {
- return ns.Observable.Add((function(ev) {
- var matchValue = (((window).location).hash).substr(2);
- if(matchValue === 'active') {
- return (ractive.set('currentFilter', 'active'))
- }
- else if(matchValue === 'completed') {
- return (ractive.set('currentFilter', 'completed'))
- }
- else {
- (((window).location).hash)='';
- return (ractive.set('currentFilter', 'all'))
- }
- }), ns.ObservableExt['Window.get_onhashchangeStream']((window)), 'Event')
- });
- ns.RactiveExt = {};
- ns.RactiveExt['RactiveStatic.makeCustomKeyEvent'] = (function(x, keyCode) {
- var plugin = (function(node) {
- return (function(fire) {
- var keydownHandler = (function(ev) {
- if((ev.which) === keyCode) {
- var f = {};
- (f.node)=node;
- (f.original)=ev;
- return fire(f)
- }
- else {
- return undefined
- }
- });
- (node.addEventListener('keydown', keydownHandler, false));
- var t = {};
- (t.teardown)=(function(unitVar0) {
- return (node.removeEventListener('keydown', keydownHandler, false))
- });
- return t
- })
- });
- return (function(delegateArg, delegateArg1) {
- return plugin(delegateArg)(delegateArg1)
- })
- });
- ns.RactiveExt.onStream2 = (function(x, eventName1, eventName2) {
- return [new ns.RactiveEventStream(x, eventName1), new ns.RactiveEventStream(x, eventName2)]
- });
- ns.RactiveExt.onStream4 = (function(x, eventName1, eventName2, eventName3, eventName4) {
- return [new ns.RactiveEventStream(x, eventName1), new ns.RactiveEventStream(x, eventName2), new ns.RactiveEventStream(x, eventName3), new ns.RactiveEventStream(x, eventName4)]
- });
- ns.RactiveExt.onStream1 = (function(x, eventName) {
- return new ns.RactiveEventStream(x, eventName)
- });
- ns.FSDic = (function($k, $v) {});
- ns.FSDic.Add = (function(_this, key, value) {
- if (_this[key] === undefined) { _this[key] = value } else { throw 'Key already exists' }
- });
- ns.ResizeArray = (function($T) {
- this.constructor=ns.ResizeArray
- });
- ;
- ns.ResizeArray.prototype = Array.prototype;
- ns.Storage = {};
- ns.Storage.load = (function($a) {
- var attempt = ((localStorage).getItem(ns.Storage.key));
- if(attempt === null) {
- return null
- }
- else {
- return ((JSON).parse(attempt, null))
- }
- });
- ns.Storage.save = (function(data, $a) {
- return ((localStorage).setItem(ns.Storage.key, ((JSON).stringify(data))))
- });
- ns.AsyncModule = {};
- ;
- ns.AsyncModule.async = (function() {
- return new ns.AsyncBuilder()
- });
- ns.AsyncModule.protectedCont = (function(f, $a) {
- return ns.Async1.Cont((function(args) {
- ns.CancellationToken.ThrowIfCancellationRequested(args.Aux.CancellationToken);
- ns.Operators.incr(args.Aux.StackCounter);
- if(ns.Operators.op_Dereference(args.Aux.StackCounter, 'number') > 1000) {
- ns.Operators.op_ColonEquals(args.Aux.StackCounter, 0, 'number');
- return setTimeout((function() {
- try {
- return f(args)
- }
- catch(ex) {
- return args.Aux.ExceptionCont(ex)
- }
- }), 1.0)
- }
- else {
- try {
- return f(args)
- }
- catch(ex) {
- return args.Aux.ExceptionCont(ex)
- }
- }
- }))
- });
- ns.AsyncModule.invokeCont = (function(k, value, $a) {
- return k.Cont(value)
- });
- ns.AsyncBuilder = (function() {});
- ns.AsyncBuilder.Zero = (function(x) {
- return ns.AsyncModule.protectedCont((function(k) {
- return ns.AsyncModule.invokeCont(k, undefined, 'undefined')
- }), 'undefined')
- });
- ns.AsyncBuilder.Bind = (function(x, _arg1, f, $T, $R) {
- var v = _arg1.Item;
- return ns.AsyncModule.protectedCont((function(k) {
- var cont = (function(a) {
- var patternInput = f(a);
- var r = patternInput.Item;
- return r(k)
- });
- return v(new ns.AsyncParams(cont, k.Aux))
- }), $R)
- });
- ns.AsyncBuilder.Delay = (function(x, f, $c) {
- return ns.AsyncModule.protectedCont((function(k) {
- var patternInput = f();
- var r = patternInput.Item;
- return r(k)
- }), $c)
- });
- ns.AsyncBuilder.For = (function(x, seq, body, $a) {
- var enumerator = seq.constructor.IEnumerable.GetEnumerator(seq, $a);
- return ns.AsyncBuilder.While(x, (function() {
- return enumerator.constructor.IEnumerator.MoveNext(enumerator)
- }), ns.AsyncBuilder.Delay(x, (function() {
- return body(enumerator.constructor.IEnumerator1.get_Current(enumerator, $a))
- }), 'undefined'))
- });
- ns.AsyncBuilder.While = (function(x, cond, body) {
- if(cond()) {
- return ns.AsyncBuilder.Bind(x, body, (function() {
- return ns.AsyncBuilder.While(x, cond, body)
- }), 'undefined', 'undefined')
- }
- else {
- return ns.AsyncBuilder.Return(x, 'undefined')
- }
- });
- ns.AsyncBuilder.Return = (function(x, v, $T) {
- return ns.AsyncModule.protectedCont((function(k) {
- return ns.AsyncModule.invokeCont(k, v, $T)
- }), $T)
- });
- ns.AsyncBuilder.ReturnFrom = (function(x, w, $T) {
- return w
- });
- ns.AsyncBuilder.Combine = (function(x, work1, work2, $b) {
- return ns.AsyncBuilder.Bind(x, work1, (function() {
- return work2
- }), 'undefined', $b)
- });
- ns.RactiveEventStream = (function(ractive, eventName) {
- this.ractive = ractive;
- this.eventName = eventName
- });
- ns.RactiveEventStream.IObservable = {};
- ns.RactiveEventStream.IObservable.Subscribe = (function(x, observer) {
- var remover = (x.ractive.on(x.eventName, (function(ev, arg) {
- return observer.constructor.IObserver.OnNext(observer, [ev, arg], 'Array')
- })));
- return new ns.ActionDisposable((function() {
- return (remover.cancel())
- }))
- });
- ns.ActionDisposable = (function(f) {
- this.f = f
- });
- ns.ActionDisposable.IDisposable = {};
- ns.ActionDisposable.IDisposable.Dispose = (function(_this) {
- return _this.f()
- });
- ns.Async = {};
- ns.Async.AwaitObservable2 = (function(ev1, ev2, $h, $i) {
- var ev11 = ns.Observable.Map((function(arg0) {
- return ns.FSharpChoice.Choice1Of2(arg0)
- }), ev1, $h, ns.FSharpChoice);
- var ev21 = ns.Observable.Map((function(arg0) {
- return ns.FSharpChoice.Choice2Of2(arg0)
- }), ev2, $i, ns.FSharpChoice);
- return ns.Async.AwaitObservable1(ns.Observable.Merge(ev11, ev21, ns.FSharpChoice), ns.FSharpChoice)
- });
- ns.Async.AwaitObservable1 = (function(w1, $T) {
- return ns.AsyncModule.protectedCont((function(k) {
- var remover = ns.Operators.ref(null, 'IDisposable');
- var observer = ns.ActionObserver['.ctor']((function(value) {
- ns.Operators.op_Dereference(remover, 'IDisposable').constructor.IDisposable.Dispose(ns.Operators.op_Dereference(remover, 'IDisposable'));
- ns.CancellationToken.ThrowIfCancellationRequested(k.Aux.CancellationToken);
- return k.Cont(value)
- }), $T);
- return ns.Operators.op_ColonEquals(remover, w1.constructor.IObservable.Subscribe(w1, observer, $T), 'IDisposable')
- }), $T)
- });
- ns.Async.StartImmediate = (function(workflow, cancellationToken) {
- var token = (cancellationToken===null?new ns.CancellationToken(null):cancellationToken);
- var f = workflow.Item;
- var aux = new ns.AsyncParamsAux(ns.Operators.ref(0, 'number'), (function(x) {
- return x
- }), (function(x) {
- return x
- }), token);
- return f(new ns.AsyncParams((function(x) {
- return x
- }), aux))
- });
- ns.Async.AwaitObservable4 = (function(ev1, ev2, ev3, ev4, $a, $b, $c, $d) {
- var ev11 = ns.Observable.Map((function(arg0) {
- return ns.FSharpChoice1.Choice1Of4(arg0)
- }), ev1, $a, ns.FSharpChoice1);
- var ev21 = ns.Observable.Map((function(arg0) {
- return ns.FSharpChoice1.Choice2Of4(arg0)
- }), ev2, $b, ns.FSharpChoice1);
- var ev31 = ns.Observable.Map((function(arg0) {
- return ns.FSharpChoice1.Choice3Of4(arg0)
- }), ev3, $c, ns.FSharpChoice1);
- var ev41 = ns.Observable.Map((function(arg0) {
- return ns.FSharpChoice1.Choice4Of4(arg0)
- }), ev4, $d, ns.FSharpChoice1);
- return ns.Async.AwaitObservable1(ns.Observable.Merge(ev41, ns.Observable.Merge(ev31, ns.Observable.Merge(ev11, ev21, ns.FSharpChoice1), ns.FSharpChoice1), ns.FSharpChoice1), ns.FSharpChoice1)
- });
- ns.FSharpChoice = (function() {});
- ns.FSharpChoice.Choice1Of2 = (function(a0) {
- var _this = new ns.FSharpChoice();
- _this.Tag = 0;
- _this.Item = a0;
- return _this
- });
- ns.FSharpChoice.Choice2Of2 = (function(a0) {
- var _this = new ns.FSharpChoice();
- _this.Tag = 1;
- _this.Item = a0;
- return _this
- });
- ns.Observable = {};
- ns.Observable.Map = (function(f, w, $T, $a) {
- return new ns.MapObservable(f, w, $T, $a)
- });
- ns.Observable.protect = (function(f, succeed, fail, $a, $b) {
- var matchValue = (function() {
- try {
- return ns.FSharpChoice.Choice1Of2(f())
- }
- catch(e) {
- return ns.FSharpChoice.Choice2Of2(e)
- }
- })();
- if(matchValue.Tag === 1) {
- var e = matchValue.Item;
- return fail(e)
- }
- else {
- var x = matchValue.Item;
- return succeed(x)
- }
- });
- ns.Observable.Merge = (function(w1, w2, $T) {
- return new ns.MergeObservable(w1, w2, $T)
- });
- ns.Observable.Add = (function(f, w, $T) {
- return w.constructor.IObservable.Subscribe(w, ns.ActionObserver['.ctor'](f, $T), $T)
- });
- ns.MapObservable = (function(f, w, $T, $U) {
- this.f = f;
- this.w = w
- });
- ns.MapObservable.IObservable = {};
- ns.MapObservable.IObservable.Subscribe = (function(x, observer, $T, $U) {
- var newObserver = new ns.ActionObserver((function(v) {
- return ns.Observable.protect((function() {
- return x.f(v)
- }), (function(arg00) {
- return observer.constructor.IObserver.OnNext(observer, arg00, $U)
- }), (function(arg00) {
- return observer.constructor.IObserver.OnError(observer, arg00, $U)
- }), $U, 'undefined')
- }), (function(e) {
- return observer.constructor.IObserver.OnError(observer, e, $U)
- }), (function() {
- return observer.constructor.IObserver.OnCompleted(observer, $U)
- }), $T);
- return x.w.constructor.IObservable.Subscribe(x.w, newObserver, $T)
- });
- ns.ActionObserver = (function(onNext, onError, onCompleted, $T) {
- this.onNext = onNext;
- this.onError = onError;
- this.onCompleted = onCompleted
- });
- ns.ActionObserver['.ctor'] = (function(onNext, $T) {
- return new ns.ActionObserver(onNext, (function(e) {
- return undefined
- }), (function() {
- return undefined
- }), $T)
- });
- ns.ActionObserver.IObserver = {};
- ns.ActionObserver.IObserver.OnNext = (function(_this, v, $T) {
- return _this.onNext(v)
- });
- ns.ActionObserver.IObserver.OnError = (function(_this, e, $T) {
- return _this.onError(e)
- });
- ns.ActionObserver.IObserver.OnCompleted = (function(_this, $T) {
- return _this.onCompleted()
- });
- ns.MergeObservable = (function(w1, w2, $T) {
- this.w1 = w1;
- this.w2 = w2
- });
- ns.MergeObservable.IObservable = {};
- ns.MergeObservable.IObservable.Subscribe = (function(x, observer, $T) {
- var stopped = ns.Operators.ref(false, 'boolean');
- var completed1 = ns.Operators.ref(false, 'boolean');
- var completed2 = ns.Operators.ref(false, 'boolean');
- var observer1 = new ns.ActionObserver((function(v) {
- if(!ns.Operators.op_Dereference(stopped, 'boolean')) {
- return observer.constructor.IObserver.OnNext(observer, v, $T)
- }
- else {
- return undefined
- }
- }), (function(e) {
- if(!ns.Operators.op_Dereference(stopped, 'boolean')) {
- ns.Operators.op_ColonEquals(stopped, true, 'boolean');
- return observer.constructor.IObserver.OnError(observer, e, $T)
- }
- else {
- return undefined
- }
- }), (function() {
- if(!ns.Operators.op_Dereference(stopped, 'boolean')) {
- ns.Operators.op_ColonEquals(completed1, true, 'boolean');
- if(ns.Operators.op_Dereference(completed1, 'boolean') && ns.Operators.op_Dereference(completed2, 'boolean')) {
- ns.Operators.op_ColonEquals(stopped, true, 'boolean');
- return observer.constructor.IObserver.OnCompleted(observer, $T)
- }
- else {
- return undefined
- }
- }
- else {
- return undefined
- }
- }), $T);
- var observer2 = new ns.ActionObserver((function(v) {
- if(!ns.Operators.op_Dereference(stopped, 'boolean')) {
- return observer.constructor.IObserver.OnNext(observer, v, $T)
- }
- else {
- return undefined
- }
- }), (function(e) {
- if(!ns.Operators.op_Dereference(stopped, 'boolean')) {
- ns.Operators.op_ColonEquals(stopped, true, 'boolean');
- return observer.constructor.IObserver.OnError(observer, e, $T)
- }
- else {
- return undefined
- }
- }), (function() {
- if(!ns.Operators.op_Dereference(stopped, 'boolean')) {
- ns.Operators.op_ColonEquals(completed2, true, 'boolean');
- if(ns.Operators.op_Dereference(completed1, 'boolean') && ns.Operators.op_Dereference(completed2, 'boolean')) {
- ns.Operators.op_ColonEquals(stopped, true, 'boolean');
- return observer.constructor.IObserver.OnCompleted(observer, $T)
- }
- else {
- return undefined
- }
- }
- else {
- return undefined
- }
- }), $T);
- var h1 = x.w1.constructor.IObservable.Subscribe(x.w1, observer1, $T);
- var h2 = x.w2.constructor.IObservable.Subscribe(x.w2, observer2, $T);
- return new ns.ActionDisposable((function() {
- h1.constructor.IDisposable.Dispose(h1);
- return h2.constructor.IDisposable.Dispose(h2)
- }))
- });
- ns.Operators = {};
- ns.Operators.ref = (function(x, $a) {
- return new ns.FSharpRef(x)
- });
- ns.Operators.op_Dereference = (function(r, $a) {
- return r.contents
- });
- ns.Operators.op_ColonEquals = (function(r, v, $a) {
- r.contents = v
- });
- ns.Operators.failwith = (function(msg, $a) {
- throw(ns.Operators.exn(msg))
- });
- ns.Operators.exn = (function(msg) {
- return new ns.FSException(msg)
- });
- ns.Operators.incr = (function(x) {
- return ns.Operators.op_ColonEquals(x, (ns.Operators.op_Dereference(x, 'number') + 1), 'number')
- });
- ns.FSharpRef = (function(a0) {
- this.contents = a0
- });
- ns.CancellationToken = (function(a0) {
- this.Cell = a0
- });
- ns.CancellationToken.ThrowIfCancellationRequested = (function(x) {
- var matchValue = x.Cell;
- if(matchValue !== null) {
- if((function() {
- var cell = matchValue;
- return ns.Operators.op_Dereference(cell, 'boolean')
- })()) {
- var cell = matchValue;
- return ns.Operators.failwith('OperationCancelledException', 'undefined')
- }
- else {
- return undefined
- }
- }
- else {
- return undefined
- }
- });
- ns.FSException = (function(message) {
- this.message = message
- });
- ns.Async1 = (function() {});
- ns.Async1.Cont = (function(a0) {
- var _this = new ns.Async1();
- _this.Tag = 0;
- _this.Item = a0;
- return _this
- });
- ns.Todo = (function(a0, a1) {
- this.description = a0;
- this.completed = a1
- });
- ns.AsyncParams = (function(a0, a1) {
- this.Cont = a0;
- this.Aux = a1
- });
- ns.AsyncParamsAux = (function(a0, a1, a2, a3) {
- this.StackCounter = a0;
- this.ExceptionCont = a1;
- this.CancelledCont = a2;
- this.CancellationToken = a3
- });
- ns.FSharpChoice1 = (function() {});
- ns.FSharpChoice1.Choice1Of4 = (function(a0) {
- var _this = new ns.FSharpChoice1();
- _this.Tag = 0;
- _this.Item = a0;
- return _this
- });
- ns.FSharpChoice1.Choice2Of4 = (function(a0) {
- var _this = new ns.FSharpChoice1();
- _this.Tag = 1;
- _this.Item = a0;
- return _this
- });
- ns.FSharpChoice1.Choice3Of4 = (function(a0) {
- var _this = new ns.FSharpChoice1();
- _this.Tag = 2;
- _this.Item = a0;
- return _this
- });
- ns.FSharpChoice1.Choice4Of4 = (function(a0) {
- var _this = new ns.FSharpChoice1();
- _this.Tag = 3;
- _this.Item = a0;
- return _this
- });
- ns.Range = {};
- ns.Range.customStep = (function(first, stepping, last, $a, $b) {
- var zero = 0;
- return ns.SeqModule.unfold((function(x) {
- if(((stepping > zero) && (x <= last)) || ((stepping < zero) && (x >= last))) {
- return [x, (x + stepping)]
- }
- else {
- return null
- }
- }), first, $a, $a)
- });
- ns.SeqModule = {};
- ns.SeqModule.unfold = (function(f, seed, $acc, $a) {
- return ns.SeqModule.fromFactory((function() {
- return new ns.UnfoldEnumerator(seed, f, $acc, $a)
- }), $a)
- });
- ns.SeqModule.fromFactory = (function(f, $a) {
- return new ns.CreateEnumerable(f, $a)
- });
- ns.UnfoldEnumerator = (function(seed, unfold, $acc, $a) {
- this.seed = seed;
- this.unfold = unfold;
- this.acc = this.seed;
- this.current = null
- });
- ns.UnfoldEnumerator.IEnumerator1 = {};
- ns.UnfoldEnumerator.IEnumerator1.get_Current = (function(__, $acc, $a) {
- return __.current
- });
- ns.UnfoldEnumerator.IDisposable = {};
- ns.UnfoldEnumerator.IDisposable.Dispose = (function(__, $acc, $a) {
- return undefined
- });
- ns.UnfoldEnumerator.IEnumerator = {};
- ns.UnfoldEnumerator.IEnumerator.MoveNext = (function(__, $acc, $a) {
- var matchValue = __.acc;
- return ((matchValue !== null) && (function() {
- var currAcc = matchValue;
- var matchValue1 = __.unfold(currAcc);
- if(matchValue1 !== null) {
- var value = matchValue1[0];
- var nextAcc = matchValue1[1];
- __.acc = nextAcc;
- __.current = value;
- return true
- }
- else {
- __.acc = null;
- __.current = null;
- return false
- }
- })())
- });
- ns.UnfoldEnumerator.IEnumerator.get_Current = (function(__, $acc, $a) {
- return __.current
- });
- ns.UnfoldEnumerator.IEnumerator.Reset = (function(__, $acc, $a) {
- __.acc = __.seed;
- __.current = null
- });
- ns.CreateEnumerable = (function(factory, $a) {
- this.factory = factory
- });
- ns.CreateEnumerable.IEnumerable = {};
- ns.CreateEnumerable.IEnumerable.GetEnumerator = (function(__, $a) {
- return __.factory()
- });
- ns.CreateEnumerable.IEnumerable1 = {};
- ns.CreateEnumerable.IEnumerable1.GetEnumerator = (function(__, $a) {
- return __.factory()
- });
- ns.HTMLEventStream = (function(el, ev, $T) {
- this.el = el;
- this.ev = ev
- });
- ns.HTMLEventStream.IObservable = {};
- ns.HTMLEventStream.IObservable.Subscribe = (function(x, observer, $T) {
- var listener = (function(ev) {
- return observer.constructor.IObserver.OnNext(observer, ev, $T)
- });
- (x.el.addEventListener(x.ev, listener, false));
- return new ns.ActionDisposable((function() {
- return (x.el.removeEventListener(x.ev, listener, false))
- }))
- });
- ns.ObservableExt = {};
- ns.ObservableExt['Window.get_onhashchangeStream'] = (function(__) {
- return new ns.HTMLEventStream(__, 'hashchange', 'Event')
- });
- return ns.Program.main()
- }());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement